Shadow device object only "works" for IRP_MJ_CREATE

Hi guys,

I have successfully implemented the ‘shadow device’ feature for getting
rid of reentrancy problems. The shadow device stuff is working perfectly
for file/directory open/create calls, however, calls to ZwClose and
other Zw* functions still seem to enter my dispatch routine via the main
device objects, rather than via the shadow device objects. Since I’m
looking at IRP_MJ_CLEANUP and IRP_MJ_CLOSE, this still hangs up my
driver.

What is the solution to get around this ? Rolling my own
read/write/queryinfo/close IRPs ?

Best,
Bartjan.

FAT will still set up the FileObject->Vpb pointer for the shadow file
object. You will need to handle that as appropriate in your filter driver.

Regards,

Tony

Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com

Hope to see you at the next OSR file systems class in San Jose, CA September
16, 2002!

-----Original Message-----
From: Bartjan Wattel [mailto:xxxxx@zeelandnet.nl]
Sent: Tuesday, August 20, 2002 9:34 AM
To: File Systems Developers
Subject: [ntfsd] Shadow device object only “works” for IRP_MJ_CREATE

Hi guys,

I have successfully implemented the ‘shadow device’ feature for getting
rid of reentrancy problems. The shadow device stuff is working perfectly
for file/directory open/create calls, however, calls to ZwClose and
other Zw* functions still seem to enter my dispatch routine via the main
device objects, rather than via the shadow device objects. Since I’m
looking at IRP_MJ_CLEANUP and IRP_MJ_CLOSE, this still hangs up my
driver.

What is the solution to get around this ? Rolling my own
read/write/queryinfo/close IRPs ?

Best,
Bartjan.


You are currently subscribed to ntfsd as: xxxxx@osr.com
To unsubscribe send a blank email to %%email.unsub%%

Tony,

Your answers are as good and fast as always… I *do* have to buy you a
beer at the September plugfest… :wink:


Bartjan.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Tony Mason
Sent: dinsdag 20 augustus 2002 16:04
To: File Systems Developers
Subject: [ntfsd] RE: Shadow device object only “works” for
IRP_MJ_CREATE

FAT will still set up the FileObject->Vpb pointer for the
shadow file object. You will need to handle that as
appropriate in your filter driver.

Regards,

Tony

Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com

Hope to see you at the next OSR file systems class in San
Jose, CA September 16, 2002!

-----Original Message-----
From: Bartjan Wattel [mailto:xxxxx@zeelandnet.nl]
Sent: Tuesday, August 20, 2002 9:34 AM
To: File Systems Developers
Subject: [ntfsd] Shadow device object only “works” for IRP_MJ_CREATE

Hi guys,

I have successfully implemented the ‘shadow device’ feature
for getting rid of reentrancy problems. The shadow device
stuff is working perfectly for file/directory open/create
calls, however, calls to ZwClose and other Zw* functions
still seem to enter my dispatch routine via the main device
objects, rather than via the shadow device objects. Since I’m
looking at IRP_MJ_CLEANUP and IRP_MJ_CLOSE, this still hangs
up my driver.

What is the solution to get around this ? Rolling my own
read/write/queryinfo/close IRPs ?

Best,
Bartjan.


You are currently subscribed to ntfsd as: xxxxx@osr.com
To unsubscribe send a blank email to %%email.unsub%%


You are currently subscribed to ntfsd as: xxxxx@zeelandnet.nl
To unsubscribe send a blank email to %%email.unsub%%

Bartjan: You can also add FileObject you’ve seen in your shadow device’s
Create routine to a
table and check FOs in Cleanup/Close/etc. routines against those that you
store in the table.
So you will know that this is a “shadow” file and request needs to be passed
down…
So, am I applicable for a beer too? At least for non-alcoholic one? :slight_smile:

Regards,

Vladimir

-----Original Message-----
From: Bartjan Wattel [mailto:xxxxx@zeelandnet.nl]
Sent: Tuesday, August 20, 2002 6:34 AM
To: File Systems Developers
Subject: [ntfsd] Shadow device object only “works” for IRP_MJ_CREATE

Hi guys,

I have successfully implemented the ‘shadow device’ feature for getting
rid of reentrancy problems. The shadow device stuff is working perfectly
for file/directory open/create calls, however, calls to ZwClose and
other Zw* functions still seem to enter my dispatch routine via the main
device objects, rather than via the shadow device objects. Since I’m
looking at IRP_MJ_CLEANUP and IRP_MJ_CLOSE, this still hangs up my
driver.

What is the solution to get around this ? Rolling my own
read/write/queryinfo/close IRPs ?

Best,
Bartjan.


You are currently subscribed to ntfsd as: xxxxx@Starbase.com
To unsubscribe send a blank email to %%email.unsub%%

Thanks Vladimir… if you’re in the Courtyard Hotel, I will buy you a
Russian White, or whatever poison it was that you had last year…


Bartjan.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Vladimir
Chtchetkine
Sent: dinsdag 20 augustus 2002 16:31
To: File Systems Developers
Subject: [ntfsd] RE: Shadow device object only “works” for IRP_MJ_CREATE

Bartjan: You can also add FileObject you’ve seen in your shadow device’s
Create routine to a
table and check FOs in Cleanup/Close/etc. routines against those that
you store in the table.
So you will know that this is a “shadow” file and request needs to be
passed down…
So, am I applicable for a beer too? At least for non-alcoholic one? :slight_smile:

Regards,

Vladimir

-----Original Message-----
From: Bartjan Wattel [mailto:xxxxx@zeelandnet.nl]
Sent: Tuesday, August 20, 2002 6:34 AM
To: File Systems Developers
Subject: [ntfsd] Shadow device object only “works” for IRP_MJ_CREATE

Hi guys,

I have successfully implemented the ‘shadow device’ feature for getting
rid of reentrancy problems. The shadow device stuff is working perfectly

for file/directory open/create calls, however, calls to ZwClose and
other Zw* functions still seem to enter my dispatch routine via the main

device objects, rather than via the shadow device objects. Since I’m
looking at IRP_MJ_CLEANUP and IRP_MJ_CLOSE, this still hangs up my
driver.

What is the solution to get around this ? Rolling my own
read/write/queryinfo/close IRPs ?

Best,
Bartjan.


You are currently subscribed to ntfsd as:
xxxxx@Starbase.com
To unsubscribe send a blank email to %%email.unsub%%


You are currently subscribed to ntfsd as: xxxxx@zeelandnet.nl
To unsubscribe send a blank email to %%email.unsub%%

After some debugging it appears that my shadow device object is in
FileObject->DeviceObject, rather than FileObject->Vpb… Did I miss
something ?

Bartjan.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Tony Mason
Sent: dinsdag 20 augustus 2002 16:04
To: File Systems Developers
Subject: [ntfsd] RE: Shadow device object only “works” for
IRP_MJ_CREATE

FAT will still set up the FileObject->Vpb pointer for the
shadow file object. You will need to handle that as
appropriate in your filter driver.

Regards,

Tony

Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com

Hope to see you at the next OSR file systems class in San
Jose, CA September 16, 2002!

-----Original Message-----
From: Bartjan Wattel [mailto:xxxxx@zeelandnet.nl]
Sent: Tuesday, August 20, 2002 9:34 AM
To: File Systems Developers
Subject: [ntfsd] Shadow device object only “works” for IRP_MJ_CREATE

Hi guys,

I have successfully implemented the ‘shadow device’ feature
for getting rid of reentrancy problems. The shadow device
stuff is working perfectly for file/directory open/create
calls, however, calls to ZwClose and other Zw* functions
still seem to enter my dispatch routine via the main device
objects, rather than via the shadow device objects. Since I’m
looking at IRP_MJ_CLEANUP and IRP_MJ_CLOSE, this still hangs
up my driver.

What is the solution to get around this ? Rolling my own
read/write/queryinfo/close IRPs ?

Best,
Bartjan.


You are currently subscribed to ntfsd as: xxxxx@osr.com
To unsubscribe send a blank email to %%email.unsub%%


You are currently subscribed to ntfsd as: xxxxx@zeelandnet.nl
To unsubscribe send a blank email to %%email.unsub%%