Hi,
I have been struggling with the following problem for a number of days now,
any help will be greatly appreciated.
I am developing an NDIS intermediate driver under windows 2000. A timer is
started in my Miniport Initialisation handle, by calls to
NdisMInitializeTimer() and NdisMSetTimer() . When it expires a function is
called which creates an IP Packet and Sends it by calling NdisSend(). This
funtion returns fine under my windows 2000 checked debug environment but
causes my release machine to reboot.
The Event Viewer reports the following problem:
The computer has rebooted from a bugcheck. The bugcheck was: 0x000000d1
(0x0000001e, 0x00000002, 0x00000000, 0xbfeda1ca). Microsoft Windows 2000
[v15.2195].
This is the DRIVER_IRQL_NOT_LESS_OR_EQUAL error, which probably means some
memory is being accesed which shouldnt be.
The packet and buffer pools are intilaised as follows in the Protocol Bind
Adpator handler:
NdisAllocateMemory(&pVirtualMemory, Size, 0,HighestAcceptableMax);
NdisAllocatePacketPool(Status, &PacketPool,10,sizeof(RSVD);
NdisAllocateBufferPool(Status, &BufferPool,10);
Then in the function called by the timer I create and send the packet as
follows:
NdisAllocatePacket(Status, &pPacket, PacketPool);
NdisAllocateBuffer(Status, &pBuffer, BufferPool, pVirtualMemory, Size);
NdisChainBufferAtFront(pPacket,pBuffer);
NdisSend(&Status, pAdapt->BindingHandle, pPacket);
Can anyone help?
Thanks in advance,
Gavin Button
Panasonic-PMDO
The driver_IRQL_NOT_LESS_OR_EQUAL means that the processor IRQL had been
raised previously to > PASSIVE_LEVEL when the error occured.
Check if you are using synchronization objs. like spin locks or something
that raise the processor IRQL…
regds
amit
----- Original Message -----
From: Gavin Button
To: NT Developers Interest List
Sent: Wednesday, July 12, 2000 6:17 PM
Subject: [ntdev] NdisSend() Problem.
> Hi,
>
> I have been struggling with the following problem for a number of days
now,
> any help will be greatly appreciated.
>
> I am developing an NDIS intermediate driver under windows 2000. A timer is
> started in my Miniport Initialisation handle, by calls to
> NdisMInitializeTimer() and NdisMSetTimer() . When it expires a function
is
> called which creates an IP Packet and Sends it by calling NdisSend(). This
> funtion returns fine under my windows 2000 checked debug environment but
> causes my release machine to reboot.
>
> The Event Viewer reports the following problem:
>
> The computer has rebooted from a bugcheck. The bugcheck was: 0x000000d1
> (0x0000001e, 0x00000002, 0x00000000, 0xbfeda1ca). Microsoft Windows 2000
> [v15.2195].
>
> This is the DRIVER_IRQL_NOT_LESS_OR_EQUAL error, which probably means
some
> memory is being accesed which shouldnt be.
> The packet and buffer pools are intilaised as follows in the Protocol Bind
> Adpator handler:
> NdisAllocateMemory(&pVirtualMemory, Size, 0,HighestAcceptableMax);
> NdisAllocatePacketPool(Status, &PacketPool,10,sizeof(RSVD);
> NdisAllocateBufferPool(Status, &BufferPool,10);
> Then in the function called by the timer I create and send the packet as
> follows:
> NdisAllocatePacket(Status, &pPacket, PacketPool);
> NdisAllocateBuffer(Status, &pBuffer, BufferPool, pVirtualMemory, Size);
> NdisChainBufferAtFront(pPacket,pBuffer);
> NdisSend(&Status, pAdapt->BindingHandle, pPacket);
>
> Can anyone help?
>
> Thanks in advance,
>
> Gavin Button
> Panasonic-PMDO
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@veritas.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>
Yes, I have some spin locks in my code but all calls to KeAcquireSpinLock()
are matched by a call to KeReleaseSpinLock(), which should lower the IRQL
again (I will look into this further).
Is there something else I need to do to lower the IRQL level?
Thanks Again
Gavin
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Amit Kasture
Sent: 12 July 2000 15:58
To: NT Developers Interest List
Subject: [ntdev] Re: NdisSend() Problem.
The driver_IRQL_NOT_LESS_OR_EQUAL means that the processor
IRQL had been
raised previously to > PASSIVE_LEVEL when the error occured.
Check if you are using synchronization objs. like spin locks
or something
that raise the processor IRQL…
regds
amit
----- Original Message -----
From: Gavin Button
> To: NT Developers Interest List
> Sent: Wednesday, July 12, 2000 6:17 PM
> Subject: [ntdev] NdisSend() Problem.
>
>
> > Hi,
> >
> > I have been struggling with the following problem for a
> number of days
> now,
> > any help will be greatly appreciated.
> >
> > I am developing an NDIS intermediate driver under windows
> 2000. A timer is
> > started in my Miniport Initialisation handle, by calls to
> > NdisMInitializeTimer() and NdisMSetTimer() . When it
> expires a function
> is
> > called which creates an IP Packet and Sends it by calling
> NdisSend(). This
> > funtion returns fine under my windows 2000 checked debug
> environment but
> > causes my release machine to reboot.
> >
> > The Event Viewer reports the following problem:
> >
> > The computer has rebooted from a bugcheck. The bugcheck
> was: 0x000000d1
> > (0x0000001e, 0x00000002, 0x00000000, 0xbfeda1ca). Microsoft
> Windows 2000
> > [v15.2195].
> >
> > This is the DRIVER_IRQL_NOT_LESS_OR_EQUAL error, which
> probably means
> some
> > memory is being accesed which shouldnt be.
> > The packet and buffer pools are intilaised as follows in
> the Protocol Bind
> > Adpator handler:
> > NdisAllocateMemory(&pVirtualMemory, Size, 0,HighestAcceptableMax);
> > NdisAllocatePacketPool(Status, &PacketPool,10,sizeof(RSVD);
> > NdisAllocateBufferPool(Status, &BufferPool,10);
> > Then in the function called by the timer I create and send
> the packet as
> > follows:
> > NdisAllocatePacket(Status, &pPacket, PacketPool);
> > NdisAllocateBuffer(Status, &pBuffer, BufferPool,
> pVirtualMemory, Size);
> > NdisChainBufferAtFront(pPacket,pBuffer);
> > NdisSend(&Status, pAdapt->BindingHandle, pPacket);
> >
> > Can anyone help?
> >
> > Thanks in advance,
> >
> > Gavin Button
> > Panasonic-PMDO
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@veritas.com
> > To unsubscribe send a blank email to $subst(‘Email.Unsub’)
> >
>
>
> —
> You are currently subscribed to ntdev as:
> xxxxx@panasonic-pmdc.co.uk
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
Hi ,
When you develop a Itermediate driver you have to use NdisIMSwitchtominiport and NdisIMRevertBack.
(At least in NT 4.0 I am not sure about 2000 please check that out).
This call is really essential.This is for a context switch to Miniport mode so that you can call “NdisM” Calls.
for more details see DDK.I am a little sure that you are not using these calls.
Ajitabh
-----Original Message-----
From: Amit Kasture [SMTP:xxxxx@veritas.com]
Sent: Wednesday, July 12, 2000 8:28 PM
To: NT Developers Interest List
Subject: [ntdev] Re: NdisSend() Problem.
The driver_IRQL_NOT_LESS_OR_EQUAL means that the processor IRQL had been
raised previously to > PASSIVE_LEVEL when the error occured.
Check if you are using synchronization objs. like spin locks or something
that raise the processor IRQL…
regds
amit
----- Original Message -----
From: Gavin Button
To: NT Developers Interest List
Sent: Wednesday, July 12, 2000 6:17 PM
Subject: [ntdev] NdisSend() Problem.
> Hi,
>
> I have been struggling with the following problem for a number of days
now,
> any help will be greatly appreciated.
>
> I am developing an NDIS intermediate driver under windows 2000. A timer is
> started in my Miniport Initialisation handle, by calls to
> NdisMInitializeTimer() and NdisMSetTimer() . When it expires a function
is
> called which creates an IP Packet and Sends it by calling NdisSend(). This
> funtion returns fine under my windows 2000 checked debug environment but
> causes my release machine to reboot.
>
> The Event Viewer reports the following problem:
>
> The computer has rebooted from a bugcheck. The bugcheck was: 0x000000d1
> (0x0000001e, 0x00000002, 0x00000000, 0xbfeda1ca). Microsoft Windows 2000
> [v15.2195].
>
> This is the DRIVER_IRQL_NOT_LESS_OR_EQUAL error, which probably means
some
> memory is being accesed which shouldnt be.
> The packet and buffer pools are intilaised as follows in the Protocol Bind
> Adpator handler:
> NdisAllocateMemory(&pVirtualMemory, Size, 0,HighestAcceptableMax);
> NdisAllocatePacketPool(Status, &PacketPool,10,sizeof(RSVD);
> NdisAllocateBufferPool(Status, &BufferPool,10);
> Then in the function called by the timer I create and send the packet as
> follows:
> NdisAllocatePacket(Status, &pPacket, PacketPool);
> NdisAllocateBuffer(Status, &pBuffer, BufferPool, pVirtualMemory, Size);
> NdisChainBufferAtFront(pPacket,pBuffer);
> NdisSend(&Status, pAdapt->BindingHandle, pPacket);
>
> Can anyone help?
>
> Thanks in advance,
>
> Gavin Button
> Panasonic-PMDO
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@veritas.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>
—
You are currently subscribed to ntdev as: xxxxx@future.futsoft.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)
These calls (or any similar) are not required in Windows 2000.
Thanks
Gavin
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Ajitabh Prakash
Sent: 13 July 2000 06:14
To: NT Developers Interest List
Subject: [ntdev] Re: NdisSend() Problem.
Hi ,
When you develop a Itermediate driver you have to use
NdisIMSwitchtominiport and NdisIMRevertBack.
(At least in NT 4.0 I am not sure about 2000 please
check that out).
This call is really essential.This is for a context
switch to Miniport mode so that you can call “NdisM” Calls.
for more details see DDK.I am a little sure that you
are not using these calls.
Ajitabh
-----Original Message-----
From: Amit Kasture [SMTP:xxxxx@veritas.com]
Sent: Wednesday, July 12, 2000 8:28 PM
To: NT Developers Interest List
Subject: [ntdev] Re: NdisSend() Problem.
The driver_IRQL_NOT_LESS_OR_EQUAL means that the processor
IRQL had been
raised previously to > PASSIVE_LEVEL when the error occured.
Check if you are using synchronization objs. like spin locks
or something
that raise the processor IRQL…
regds
amit
----- Original Message -----
From: Gavin Button
> To: NT Developers Interest List
> Sent: Wednesday, July 12, 2000 6:17 PM
> Subject: [ntdev] NdisSend() Problem.
>
>
> > Hi,
> >
> > I have been struggling with the following problem for a
> number of days
> now,
> > any help will be greatly appreciated.
> >
> > I am developing an NDIS intermediate driver under windows
> 2000. A timer is
> > started in my Miniport Initialisation handle, by calls to
> > NdisMInitializeTimer() and NdisMSetTimer() . When it
> expires a function
> is
> > called which creates an IP Packet and Sends it by calling
> NdisSend(). This
> > funtion returns fine under my windows 2000 checked debug
> environment but
> > causes my release machine to reboot.
> >
> > The Event Viewer reports the following problem:
> >
> > The computer has rebooted from a bugcheck. The bugcheck
> was: 0x000000d1
> > (0x0000001e, 0x00000002, 0x00000000, 0xbfeda1ca). Microsoft
> Windows 2000
> > [v15.2195].
> >
> > This is the DRIVER_IRQL_NOT_LESS_OR_EQUAL error, which
> probably means
> some
> > memory is being accesed which shouldnt be.
> > The packet and buffer pools are intilaised as follows in
> the Protocol Bind
> > Adpator handler:
> > NdisAllocateMemory(&pVirtualMemory, Size, 0,HighestAcceptableMax);
> > NdisAllocatePacketPool(Status, &PacketPool,10,sizeof(RSVD);
> > NdisAllocateBufferPool(Status, &BufferPool,10);
> > Then in the function called by the timer I create and send
> the packet as
> > follows:
> > NdisAllocatePacket(Status, &pPacket, PacketPool);
> > NdisAllocateBuffer(Status, &pBuffer, BufferPool,
> pVirtualMemory, Size);
> > NdisChainBufferAtFront(pPacket,pBuffer);
> > NdisSend(&Status, pAdapt->BindingHandle, pPacket);
> >
> > Can anyone help?
> >
> > Thanks in advance,
> >
> > Gavin Button
> > Panasonic-PMDO
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@veritas.com
> > To unsubscribe send a blank email to $subst(‘Email.Unsub’)
> >
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@future.futsoft.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>
>
> —
> You are currently subscribed to ntdev as:
> xxxxx@panasonic-pmdc.co.uk
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
Hello,
I used to get these errors.
Since you are telling that in the debug version its working fine and in the
release build its crashing, may be you have a hardcoded breakpoin somewhere
like DbgBreak etc.
Just check out whether this helps.
Regards,
Santhosh