Hi!
I have a doubt regarding the
IoCreateStreamFileObject call. I make this call when I
am mounting my FS. I do this to create a file object
for my (about to be) mounted volume. This is what I
do.
PtrVCB->PtrStreamFileObject =
IoCreateStreamFileObject(NULL,
PtrVCB->PtrVPB->RealDevice);
I do this after setting the VPB DeviceObject
pointer to point to my new Volume device.
PtrVPB->DeviceObject = PtrVolumeDeviceObject;
Now, my problem is that the
IoCreateStreamFileObject call calls my IRP_MJ_CLEANUP
handler before returning. Is this the normal
behaviour? I don’t understand how I could get a
IRP_MJ_CLEANUP when I am not even done creating the
File Object! Why is the file object being closed?
This is the call stack.
mydrvr!MydrvrCleanup+0x2d
nt!IofCallDriver+0x37
nt!IopCloseFile+0x297
nt!ObpDecrementHandleCount+0x111
nt!NtClose+0x170
nt!IoCreateStreamFileObject+0x10d
mydrvr!MydrvrInitializeVCB+0x133
mydrvr!MydrvrMountVolume+0x1bf
mydrvr!MydrvrFSControl+0x2c
nt!IofCallDriver+0x37
nt!IopMountVolume+0x186
nt!IopCheckVpbMounted+0x38
nt!IopParseDevice+0x3ba
nt!ObpLookupObjectName+0x283
nt!ObOpenObjectByName+0xbb
nt!IoCreateFile+0x436
nt!NtOpenFile+0x25
nt!KiSystemService+0xc4
NTDLL!NtOpenFile+0xb
0x1094ede
Can anyone explain?
Thanks in advance!
Manoj Paul Joseph
=====
Manoj Paul Joseph,
Master of Computer Applications (final year student),
School of Computer Science and Engineering,
Anna University,
Chennai (Madras),
India.
Do You Yahoo!?
Everything you’ll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.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