RE: [ntfsd] lockups againPlease explain about DeviceIoControl.
My UM app is very simple. It is actually done just for testing. Here how it works:
0. Creates five threads which implement the same loop.
- Calls DeviceIoControl with IOCTL_VBA_GET_INFORMATION_BLOCK giving a valid event object.
- Calls GetOverlappedResult.
- Calls DeviceIoControl with IOCTL_VBA_SEND_INFORMATION_BLOCK with another event object. I don’t call GetOverlappedResult I far as I do not need the result of operation.
- goto 1
So, nothing special. I actually do not understand why DeviceIoControl is gonna block.
I did not think about paging I/O. Gotta investigate. What about IRP_PAGING_IO flag? Does it help?
Alexey Logachyov
xxxxx@vba.com.by
VirusBlokAda Ltd.
http://www.vba.com.by
----- Original Message -----
From: Chtchetkine, Vladimir
To: File Systems Developers
Sent: Friday, January 11, 2002 7:55 PM
Subject: [ntfsd] RE: lockups again
Couple of things:
- Check your own locking mechanizm that you use in your driver. Make sure there are no dead-locks or race conditions considering that app may call FS
to satisfy your request.
2. When you communicate with app, you use DevIoControl. And (as far as I remember) it’s sequential routine. Which means that within your process all calls to DevIoCtl (for same handle) will be satisfied in the sequence they were received. So, if there is a call that has not been yet completed all subsequent calls will not go through while the first one is pending.
Regards,
Vladimir
BTW: What would happened if I “accidentaly” block paging I/O on a shared lock. Scenario: driver holds a lock in Create handler and calls app. App causes page fault that is going to be satisfied in paging I/O. In paging I/O I’m acquiring same lock as I hold in Create handler. I’m not sure about the answer. At least, it doesn’t look to me that obvious. Can anyone share some thoughts on that?
-----Original Message-----
From: Alexey Logachyov [mailto:xxxxx@vba.com.by]
Sent: Friday, January 11, 2002 4:55 AM
To: File Systems Developers
Subject: [ntfsd] lockups again
I’m still struggling with a FSFD. My FSFD intercepts IRP_MJ_CREATE requests
and notifies user mode application and waits for its reply. The problem is
that sometimes when some application opens a file the whole user mode seems
to be stuck. So my UM client cannot continue until the file is opened and
the file cannot be opened until UM client replied. Target OS is NT4 SP6.
Is there any issues known or I should go for some bugs in my driver?
Alexey Logachyov
xxxxx@vba.com.by
VirusBlokAda ltd.
http://www.vba.com.by
You are currently subscribed to ntfsd as: xxxxx@Starbase.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