Hi,
I am using a mutex like this:
…
KeWaitForMutexObject( &Mutex, UserRequest, KernelMode, TRUE, NULL );
status = IoCallDriver(pEngine->DeviceObject, NewIrp);
if (status == STATUS_PENDING)
KeWaitForSingleObject(&Event, UserRequest, UserMode, TRUE, NULL);
KeReleaseMutex( &Mutex, FALSE );
…
While calling “KeReleaseMutex” I get a bugcheck “IRQL_NOT_LESS_OR_EQUAL”.
The call stack is:
ntoskernel!ZwYieldExecution+…
ntoskernel!ZwYieldExecution+…
ntoskernel!KeReleaseMutant+…
ntoskernel!KeReleaseMutex+…
mydriver!MyFunction+…
What am I doing wrong here? I veryfied the Irql…it’s at passive level
(0).
Any hint would be greatly appreciated!
This can happen if your mutex is in pageable memory. What kind of
memory is it in? The mutex has a spinlock in it so it must be in
non-pageable memory.
Neal Christiansen
Microsoft File System Filter Group
This posting is provided “AS IS” with no warranties, and confers no
rights.
-----Original Message-----
From: xxxxx@clever.ms [mailto:xxxxx@clever.ms]
Sent: Monday, October 21, 2002 8:55 AM
To: File Systems Developers
Subject: [ntfsd] Bugcheck using KeReleaseMutex
Hi,
I am using a mutex like this:
…
KeWaitForMutexObject( &Mutex, UserRequest, KernelMode, TRUE, NULL
);
status = IoCallDriver(pEngine->DeviceObject, NewIrp);
if (status == STATUS_PENDING)
KeWaitForSingleObject(&Event, UserRequest, UserMode, TRUE,
NULL);
KeReleaseMutex( &Mutex, FALSE );
…
While calling “KeReleaseMutex” I get a bugcheck
“IRQL_NOT_LESS_OR_EQUAL”.
The call stack is:
ntoskernel!ZwYieldExecution+…
ntoskernel!ZwYieldExecution+…
ntoskernel!KeReleaseMutant+…
ntoskernel!KeReleaseMutex+…
mydriver!MyFunction+…
What am I doing wrong here? I veryfied the Irql…it’s at passive level
(0).
Any hint would be greatly appreciated!
You are currently subscribed to ntfsd as: xxxxx@Windows.Microsoft.com
To unsubscribe send a blank email to %%email.unsub%%
Thank you very much, Neil. That was the right hint!
“File Systems Developers” schrieb am 22.10.02 03:49:42:
> This can happen if your mutex is in pageable memory. What kind of
> memory is it in? The mutex has a spinlock in it so it must be in
> non-pageable memory.
>
> Neal Christiansen
> Microsoft File System Filter Group
>
> This posting is provided “AS IS” with no warranties, and confers no
> rights.
>
> -----Original Message-----
> From: xxxxx@clever.ms [mailto:xxxxx@clever.ms]
> Sent: Monday, October 21, 2002 8:55 AM
> To: File Systems Developers
> Subject: [ntfsd] Bugcheck using KeReleaseMutex
>
> Hi,
>
> I am using a mutex like this:
>
> …
> KeWaitForMutexObject( &Mutex, UserRequest, KernelMode, TRUE, NULL
> );
> status = IoCallDriver(pEngine->DeviceObject, NewIrp);
>
> if (status == STATUS_PENDING)
> KeWaitForSingleObject(&Event, UserRequest, UserMode, TRUE,
> NULL);
> KeReleaseMutex( &Mutex, FALSE );
> …
>
> While calling “KeReleaseMutex” I get a bugcheck
> “IRQL_NOT_LESS_OR_EQUAL”.
> The call stack is:
>
> ntoskernel!ZwYieldExecution+…
> ntoskernel!ZwYieldExecution+…
> ntoskernel!KeReleaseMutant+…
> ntoskernel!KeReleaseMutex+…
> mydriver!MyFunction+…
>
> What am I doing wrong here? I veryfied the Irql…it’s at passive level
> (0).
> Any hint would be greatly appreciated!
>
>
>
>
>
>
> —
> You are currently subscribed to ntfsd as: xxxxx@Windows.Microsoft.com
> To unsubscribe send a blank email to %%email.unsub%%
>
>
> —
> You are currently subscribed to ntfsd as: xxxxx@clever.ms
> To unsubscribe send a blank email to %%email.unsub%%