I have a problem with FSFD. Here’s the scenario:
- User-mode thread sends a request via DeviceIoControl. In kernel-mode I
mark the IRP pending to complete it when something happens.
- When I receive IRP_MJ_CREATE I pick some request and complete it with
IoCompleteRequest.
- I start waiting on event with KeWaitForSingleObject with a timeout.
- User-mode thread sends back confirmation via DeviceIoControl. In
kernel-mode I call KeSetEvent on appropriate event object.
- I pass then IRP_MJ_CREATE down to FSD.
My problem is that IoCompleteRequest does not complete the request
immediately (or at least it seems like that). KeWaitForSingleObject often
exit on timeout (5 secs). Confirmation arrives later, usually after several
other user requests completed. What’s wrong?
Alexey Logachyov
xxxxx@vba.com.by
VirusBlokAda ltd.
http://www.vba.com.by
You are currently subscribed to ntfsd as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You can not call KeWaitXxx() in a completion routine. Are you doing
this?
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alexey Logachyov
Sent: Saturday, December 22, 2001 12:54 AM
To: File Systems Developers
Subject: [ntfsd] lockup
I have a problem with FSFD. Here’s the scenario:
- User-mode thread sends a request via DeviceIoControl. In kernel-mode
I mark the IRP pending to complete it when something happens.
- When I receive IRP_MJ_CREATE I pick some request and complete it with
IoCompleteRequest.
- I start waiting on event with KeWaitForSingleObject with a timeout.
- User-mode thread sends back confirmation via DeviceIoControl. In
kernel-mode I call KeSetEvent on appropriate event object.
- I pass then IRP_MJ_CREATE down to FSD.
My problem is that IoCompleteRequest does not complete the request
immediately (or at least it seems like that). KeWaitForSingleObject
often exit on timeout (5 secs). Confirmation arrives later, usually
after several other user requests completed. What’s wrong?
Alexey Logachyov
xxxxx@vba.com.by
VirusBlokAda ltd.
http://www.vba.com.by
You are currently subscribed to ntfsd as: xxxxx@storagecraft.com To
unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntfsd as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
Nope.
Alexey Logachyov
xxxxx@vba.com.by
VirusBlokAda ltd.
http://www.vba.com.by
----- Original Message -----
From: “Jamey Kirby”
To: “File Systems Developers”
Sent: Saturday, December 15, 2001 4:20 PM
Subject: [ntfsd] RE: lockup
> You can not call KeWaitXxx() in a completion routine. Are you doing
> this?
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Alexey Logachyov
> Sent: Saturday, December 22, 2001 12:54 AM
> To: File Systems Developers
> Subject: [ntfsd] lockup
>
>
> I have a problem with FSFD. Here’s the scenario:
> 1) User-mode thread sends a request via DeviceIoControl. In kernel-mode
> I mark the IRP pending to complete it when something happens.
> 2) When I receive IRP_MJ_CREATE I pick some request and complete it with
> IoCompleteRequest.
> 3) I start waiting on event with KeWaitForSingleObject with a timeout.
> 4) User-mode thread sends back confirmation via DeviceIoControl. In
> kernel-mode I call KeSetEvent on appropriate event object.
> 5) I pass then IRP_MJ_CREATE down to FSD.
>
> My problem is that IoCompleteRequest does not complete the request
> immediately (or at least it seems like that). KeWaitForSingleObject
> often exit on timeout (5 secs). Confirmation arrives later, usually
> after several other user requests completed. What’s wrong?
>
> Alexey Logachyov
> xxxxx@vba.com.by
> VirusBlokAda ltd.
> http://www.vba.com.by
>
>
>
> —
> You are currently subscribed to ntfsd as: xxxxx@storagecraft.com To
> unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>
> —
> You are currently subscribed to ntfsd as: xxxxx@vba.com.by
> To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
—
You are currently subscribed to ntfsd as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com