BSOD problem in file filter

Hi all,

I have a question. I recently investigated a shutdown BSOD in our file
filter driver. What I discovered is that we provide a do-nothing file
completion routine for all IRP functions we do not handle. What I was told
was that there is a problem in all versions of Windows prior to and
including Windows 2000 SP2 that required our filter driver to have a
do-nothing completion routine for all the IRPs that we are just passing down
the stack.

Our products supports versions of Windows from Windows NT4 SP4 on up. Has
anyone ever heard of problems in these old versions of Windows that require
a file system filter to place a completion routine in the IRP stack for all
functions even if no post processing of that IRP is necessary?

Thanks,
Joe

Are you handling the PoCallNextDriver case? This is a special IRP that can
not use IoCallDriver(). Power IRPS need to use PoCallDriver. Your
information is sketchy, so I am only throwing this out for you to verify.

Jamey

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Joe Stivaletta
Sent: Wednesday, October 27, 2004 7:38 AM
To: Windows File Systems Devs Interest List
Subject: [ntfsd] BSOD problem in file filter

Hi all,

I have a question. I recently investigated a shutdown BSOD in our file
filter driver. What I discovered is that we provide a do-nothing file
completion routine for all IRP functions we do not handle. What I was told
was that there is a problem in all versions of Windows prior to and
including Windows 2000 SP2 that required our filter driver to have a
do-nothing completion routine for all the IRPs that we are just passing down

the stack.

Our products supports versions of Windows from Windows NT4 SP4 on up. Has
anyone ever heard of problems in these old versions of Windows that require
a file system filter to place a completion routine in the IRP stack for all
functions even if no post processing of that IRP is necessary?

Thanks,
Joe


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

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

Jamey,

Thanks, I will check this out. I already know the cause of the BSOD. I am
just trying to verify what I was told about a problem that all versions of
Windows prior to and including Windows 2000 SP2 required our filter driver
to have a do-nothing completion routine for all the IRPs that we are just
passing down. As of yet, I have not been able to find anyone who ever heard
of this problem except our development group and due to the lack of response
here I am beginning to doubt that this problem ever existed.

Joe

“Jamey Kirby” wrote in message news:xxxxx@ntfsd…
> Are you handling the PoCallNextDriver case? This is a special IRP that can
> not use IoCallDriver(). Power IRPS need to use PoCallDriver. Your
> information is sketchy, so I am only throwing this out for you to verify.
>
> Jamey
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Joe Stivaletta
> Sent: Wednesday, October 27, 2004 7:38 AM
> To: Windows File Systems Devs Interest List
> Subject: [ntfsd] BSOD problem in file filter
>
> Hi all,
>
> I have a question. I recently investigated a shutdown BSOD in our file
> filter driver. What I discovered is that we provide a do-nothing file
> completion routine for all IRP functions we do not handle. What I was
> told
> was that there is a problem in all versions of Windows prior to and
> including Windows 2000 SP2 that required our filter driver to have a
> do-nothing completion routine for all the IRPs that we are just passing
> down
>
> the stack.
>
> Our products supports versions of Windows from Windows NT4 SP4 on up. Has
> anyone ever heard of problems in these old versions of Windows that
> require
> a file system filter to place a completion routine in the IRP stack for
> all
> functions even if no post processing of that IRP is necessary?
>
> Thanks,
> Joe
>
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>

Is is possible for file system filter drivers to
receive power IRPs? Seems a little bit weird to me…
Can someone shed a light on this?

Razvan

— Jamey Kirby wrote:

> Are you handling the PoCallNextDriver case? This is
> a special IRP that can
> not use IoCallDriver(). Power IRPS need to use
> PoCallDriver. Your
> information is sketchy, so I am only throwing this
> out for you to verify.
>
> Jamey
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf
> Of Joe Stivaletta
> Sent: Wednesday, October 27, 2004 7:38 AM
> To: Windows File Systems Devs Interest List
> Subject: [ntfsd] BSOD problem in file filter
>
> Hi all,
>
> I have a question. I recently investigated a
> shutdown BSOD in our file
> filter driver. What I discovered is that we provide
> a do-nothing file
> completion routine for all IRP functions we do not
> handle. What I was told
> was that there is a problem in all versions of
> Windows prior to and
> including Windows 2000 SP2 that required our filter
> driver to have a
> do-nothing completion routine for all the IRPs that
> we are just passing down
>
> the stack.
>
> Our products supports versions of Windows from
> Windows NT4 SP4 on up. Has
> anyone ever heard of problems in these old versions
> of Windows that require
> a file system filter to place a completion routine
> in the IRP stack for all
> functions even if no post processing of that IRP is
> necessary?
>
> Thanks,
> Joe
>
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@storagecraft.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@yahoo.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>

__________________________________
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
http://promotions.yahoo.com/new_mail

Do pass lots of IRPs down without a completion routine. For NT 4.0, we back
ported the IoSkipCurrentIrpStackLocation(). If we do not need a completion
handler, we use this routine.

Jamey

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Joe Stivaletta
Sent: Thursday, October 28, 2004 7:19 AM
To: Windows File Systems Devs Interest List
Subject: Re:[ntfsd] BSOD problem in file filter

Jamey,

Thanks, I will check this out. I already know the cause of the BSOD. I am

just trying to verify what I was told about a problem that all versions of
Windows prior to and including Windows 2000 SP2 required our filter driver
to have a do-nothing completion routine for all the IRPs that we are just
passing down. As of yet, I have not been able to find anyone who ever heard

of this problem except our development group and due to the lack of response

here I am beginning to doubt that this problem ever existed.

Joe

“Jamey Kirby” wrote in message news:xxxxx@ntfsd…
> Are you handling the PoCallNextDriver case? This is a special IRP that can
> not use IoCallDriver(). Power IRPS need to use PoCallDriver. Your
> information is sketchy, so I am only throwing this out for you to verify.
>
> Jamey
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Joe Stivaletta
> Sent: Wednesday, October 27, 2004 7:38 AM
> To: Windows File Systems Devs Interest List
> Subject: [ntfsd] BSOD problem in file filter
>
> Hi all,
>
> I have a question. I recently investigated a shutdown BSOD in our file
> filter driver. What I discovered is that we provide a do-nothing file
> completion routine for all IRP functions we do not handle. What I was
> told
> was that there is a problem in all versions of Windows prior to and
> including Windows 2000 SP2 that required our filter driver to have a
> do-nothing completion routine for all the IRPs that we are just passing
> down
>
> the stack.
>
> Our products supports versions of Windows from Windows NT4 SP4 on up. Has
> anyone ever heard of problems in these old versions of Windows that
> require
> a file system filter to place a completion routine in the IRP stack for
> all
> functions even if no post processing of that IRP is necessary?
>
> Thanks,
> Joe
>
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

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

In our filter, we have all sorts of filters. We are loaded as a file system
filter driver, but we attach to other devices while running, so we gets all
sorts of IRPS and fastio calls for devices you would not normally see.

For example, our filter driver attaches to disk device objects. When the
disk device object is de-referenced to zero, we get a fastiodetachdevice()
call for the disk.

So, in our file system filter driver, we must account for seeing power IRPS
too.

Jamey

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Razvan Hobeanu
Sent: Thursday, October 28, 2004 8:02 AM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

Is is possible for file system filter drivers to
receive power IRPs? Seems a little bit weird to me…
Can someone shed a light on this?

Razvan

— Jamey Kirby wrote:

> Are you handling the PoCallNextDriver case? This is
> a special IRP that can
> not use IoCallDriver(). Power IRPS need to use
> PoCallDriver. Your
> information is sketchy, so I am only throwing this
> out for you to verify.
>
> Jamey
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf
> Of Joe Stivaletta
> Sent: Wednesday, October 27, 2004 7:38 AM
> To: Windows File Systems Devs Interest List
> Subject: [ntfsd] BSOD problem in file filter
>
> Hi all,
>
> I have a question. I recently investigated a
> shutdown BSOD in our file
> filter driver. What I discovered is that we provide
> a do-nothing file
> completion routine for all IRP functions we do not
> handle. What I was told
> was that there is a problem in all versions of
> Windows prior to and
> including Windows 2000 SP2 that required our filter
> driver to have a
> do-nothing completion routine for all the IRPs that
> we are just passing down
>
> the stack.
>
> Our products supports versions of Windows from
> Windows NT4 SP4 on up. Has
> anyone ever heard of problems in these old versions
> of Windows that require
> a file system filter to place a completion routine
> in the IRP stack for all
> functions even if no post processing of that IRP is
> necessary?
>
> Thanks,
> Joe
>
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@storagecraft.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@yahoo.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>

__________________________________
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
http://promotions.yahoo.com/new_mail


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

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

Joe,

Does your call to IoSetCompletionRoutine pass three
FALSEs? Like this:
IoSetCompletionRoutine( Irp, yourCompletionRoutine,
NULL, FALSE, FALSE, FALSE );

If so, look at this (bullet item #3) to see why you
are doing it:
http://www.osronline.com/article.cfm?article=17#Q51

— Jamey Kirby wrote:

> Do pass lots of IRPs down without a completion
> routine. For NT 4.0, we back
> ported the IoSkipCurrentIrpStackLocation(). If we do
> not need a completion
> handler, we use this routine.
>
> Jamey
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf
> Of Joe Stivaletta
> Sent: Thursday, October 28, 2004 7:19 AM
> To: Windows File Systems Devs Interest List
> Subject: Re:[ntfsd] BSOD problem in file filter
>
> Jamey,
>
> Thanks, I will check this out. I already know the
> cause of the BSOD. I am
>
> just trying to verify what I was told about a
> problem that all versions of
> Windows prior to and including Windows 2000 SP2
> required our filter driver
> to have a do-nothing completion routine for all the
> IRPs that we are just
> passing down. As of yet, I have not been able to
> find anyone who ever heard
>
> of this problem except our development group and due
> to the lack of response
>
> here I am beginning to doubt that this problem ever
> existed.
>
> Joe
>
> “Jamey Kirby” wrote in
> message news:xxxxx@ntfsd…
> > Are you handling the PoCallNextDriver case? This
> is a special IRP that can
> > not use IoCallDriver(). Power IRPS need to use
> PoCallDriver. Your
> > information is sketchy, so I am only throwing this
> out for you to verify.
> >
> > Jamey
> >
> >
> > -----Original Message-----
> > From: xxxxx@lists.osr.com
> > [mailto:xxxxx@lists.osr.com] On
> Behalf Of Joe Stivaletta
> > Sent: Wednesday, October 27, 2004 7:38 AM
> > To: Windows File Systems Devs Interest List
> > Subject: [ntfsd] BSOD problem in file filter
> >
> > Hi all,
> >
> > I have a question. I recently investigated a
> shutdown BSOD in our file
> > filter driver. What I discovered is that we
> provide a do-nothing file
> > completion routine for all IRP functions we do not
> handle. What I was
> > told
> > was that there is a problem in all versions of
> Windows prior to and
> > including Windows 2000 SP2 that required our
> filter driver to have a
> > do-nothing completion routine for all the IRPs
> that we are just passing
> > down
> >
> > the stack.
> >
> > Our products supports versions of Windows from
> Windows NT4 SP4 on up. Has
> > anyone ever heard of problems in these old
> versions of Windows that
> > require
> > a file system filter to place a completion routine
> in the IRP stack for
> > all
> > functions even if no post processing of that IRP
> is necessary?
> >
> > Thanks,
> > Joe
> >
> >
> >
> > —
> > Questions? First check the IFS FAQ at
> > https://www.osronline.com/article.cfm?id=17
> >
> > You are currently subscribed to ntfsd as:
> xxxxx@storagecraft.com
> > To unsubscribe send a blank email to
> xxxxx@lists.osr.com
> >
> >
>
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@storagecraft.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@yahoo.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>

No, a file system filter doesn’t receive power IRPs. You get a shutdown
IRP when you are being shutdown. That’s it.
And I have not heard of this do-nothing completion routine before. In
fact a do nothing completion is dangerous because at the least you need
to propagate the pending flag. If you don’t you will see a ‘bsod’ as you
describe below. So please take the completion routine out or propagate
the pending flag at least, if you are not synchronizing back to
dispatch.

Ravi
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Razvan Hobeanu
Sent: Thursday, October 28, 2004 8:02 AM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

Is is possible for file system filter drivers to receive power IRPs?
Seems a little bit weird to me…
Can someone shed a light on this?

Razvan

— Jamey Kirby wrote:

> Are you handling the PoCallNextDriver case? This is a special IRP that

> can not use IoCallDriver(). Power IRPS need to use PoCallDriver. Your
> information is sketchy, so I am only throwing this out for you to
> verify.
>
> Jamey
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Joe Stivaletta
> Sent: Wednesday, October 27, 2004 7:38 AM
> To: Windows File Systems Devs Interest List
> Subject: [ntfsd] BSOD problem in file filter
>
> Hi all,
>
> I have a question. I recently investigated a shutdown BSOD in our
> file filter driver. What I discovered is that we provide a do-nothing

> file completion routine for all IRP functions we do not handle. What
> I was told was that there is a problem in all versions of Windows
> prior to and including Windows 2000 SP2 that required our filter
> driver to have a do-nothing completion routine for all the IRPs that
> we are just passing down
>
> the stack.
>
> Our products supports versions of Windows from Windows NT4 SP4 on up.

> Has anyone ever heard of problems in these old versions of Windows
> that require a file system filter to place a completion routine in the

> IRP stack for all functions even if no post processing of that IRP is
> necessary?
>
> Thanks,
> Joe
>
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@storagecraft.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@yahoo.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>

__________________________________
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
http://promotions.yahoo.com/new_mail


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

The file system filter device objects will not receive this IRP but a file
system filter driver can. I have one right here that gets these IRPS.

Jamey

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ravisankar Pudipeddi
Sent: Thursday, October 28, 2004 2:14 PM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

No, a file system filter doesn’t receive power IRPs. You get a shutdown
IRP when you are being shutdown. That’s it.
And I have not heard of this do-nothing completion routine before. In
fact a do nothing completion is dangerous because at the least you need
to propagate the pending flag. If you don’t you will see a ‘bsod’ as you
describe below. So please take the completion routine out or propagate
the pending flag at least, if you are not synchronizing back to
dispatch.

Ravi
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Razvan Hobeanu
Sent: Thursday, October 28, 2004 8:02 AM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

Is is possible for file system filter drivers to receive power IRPs?
Seems a little bit weird to me…
Can someone shed a light on this?

Razvan

— Jamey Kirby wrote:

> Are you handling the PoCallNextDriver case? This is a special IRP that

> can not use IoCallDriver(). Power IRPS need to use PoCallDriver. Your
> information is sketchy, so I am only throwing this out for you to
> verify.
>
> Jamey
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Joe Stivaletta
> Sent: Wednesday, October 27, 2004 7:38 AM
> To: Windows File Systems Devs Interest List
> Subject: [ntfsd] BSOD problem in file filter
>
> Hi all,
>
> I have a question. I recently investigated a shutdown BSOD in our
> file filter driver. What I discovered is that we provide a do-nothing

> file completion routine for all IRP functions we do not handle. What
> I was told was that there is a problem in all versions of Windows
> prior to and including Windows 2000 SP2 that required our filter
> driver to have a do-nothing completion routine for all the IRPs that
> we are just passing down
>
> the stack.
>
> Our products supports versions of Windows from Windows NT4 SP4 on up.

> Has anyone ever heard of problems in these old versions of Windows
> that require a file system filter to place a completion routine in the

> IRP stack for all functions even if no post processing of that IRP is
> necessary?
>
> Thanks,
> Joe
>
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@storagecraft.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@yahoo.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>

__________________________________
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
http://promotions.yahoo.com/new_mail


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

If your driver shares code with a device driver that filters the storage
stack, that’s a different matter, and yes that driver will get power
IRPs for the storage stack.

Just so I can clarify: when I said file system filter, I meant a driver
that filters above the filesystem. You wouldn’t see power IRPs down the
stack of drivers above the filesystem thru to the filesystem…Hopefully
it’s clear?

Thanks,
Ravi

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Jamey Kirby
Sent: Thursday, October 28, 2004 2:24 PM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

The file system filter device objects will not receive this IRP but a
file system filter driver can. I have one right here that gets these
IRPS.

Jamey

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ravisankar
Pudipeddi
Sent: Thursday, October 28, 2004 2:14 PM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

No, a file system filter doesn’t receive power IRPs. You get a shutdown
IRP when you are being shutdown. That’s it.
And I have not heard of this do-nothing completion routine before. In
fact a do nothing completion is dangerous because at the least you need
to propagate the pending flag. If you don’t you will see a ‘bsod’ as you
describe below. So please take the completion routine out or propagate
the pending flag at least, if you are not synchronizing back to
dispatch.

Ravi
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Razvan Hobeanu
Sent: Thursday, October 28, 2004 8:02 AM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

Is is possible for file system filter drivers to receive power IRPs?
Seems a little bit weird to me…
Can someone shed a light on this?

Razvan

— Jamey Kirby wrote:

> Are you handling the PoCallNextDriver case? This is a special IRP that

> can not use IoCallDriver(). Power IRPS need to use PoCallDriver. Your
> information is sketchy, so I am only throwing this out for you to
> verify.
>
> Jamey
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Joe Stivaletta
> Sent: Wednesday, October 27, 2004 7:38 AM
> To: Windows File Systems Devs Interest List
> Subject: [ntfsd] BSOD problem in file filter
>
> Hi all,
>
> I have a question. I recently investigated a shutdown BSOD in our
> file filter driver. What I discovered is that we provide a do-nothing

> file completion routine for all IRP functions we do not handle. What
> I was told was that there is a problem in all versions of Windows
> prior to and including Windows 2000 SP2 that required our filter
> driver to have a do-nothing completion routine for all the IRPs that
> we are just passing down
>
> the stack.
>
> Our products supports versions of Windows from Windows NT4 SP4 on up.

> Has anyone ever heard of problems in these old versions of Windows
> that require a file system filter to place a completion routine in the

> IRP stack for all functions even if no post processing of that IRP is
> necessary?
>
> Thanks,
> Joe
>
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@storagecraft.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@yahoo.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>

__________________________________
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
http://promotions.yahoo.com/new_mail


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Is this then a policy statement that says “file systems (of any type)
may not register for power events?” I ask because I can envision cases
in which I would want power events in my file system (envision a
distributed or clustered file system where I want to relinquish my locks
prior to transitioning to suspended or hibernation mode).

Regards,

Tony

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

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ravisankar Pudipeddi
Sent: Thursday, October 28, 2004 6:28 PM
To: ntfsd redirect
Subject: RE: [ntfsd] BSOD problem in file filter

If your driver shares code with a device driver that filters the storage
stack, that’s a different matter, and yes that driver will get power
IRPs for the storage stack.

Just so I can clarify: when I said file system filter, I meant a driver
that filters above the filesystem. You wouldn’t see power IRPs down the
stack of drivers above the filesystem thru to the filesystem…Hopefully
it’s clear?

Thanks,
Ravi

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Jamey Kirby
Sent: Thursday, October 28, 2004 2:24 PM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

The file system filter device objects will not receive this IRP but a
file system filter driver can. I have one right here that gets these
IRPS.

Jamey

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ravisankar
Pudipeddi
Sent: Thursday, October 28, 2004 2:14 PM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

No, a file system filter doesn’t receive power IRPs. You get a shutdown
IRP when you are being shutdown. That’s it.
And I have not heard of this do-nothing completion routine before. In
fact a do nothing completion is dangerous because at the least you need
to propagate the pending flag. If you don’t you will see a ‘bsod’ as you
describe below. So please take the completion routine out or propagate
the pending flag at least, if you are not synchronizing back to
dispatch.

Ravi
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Razvan Hobeanu
Sent: Thursday, October 28, 2004 8:02 AM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

Is is possible for file system filter drivers to receive power IRPs?
Seems a little bit weird to me…
Can someone shed a light on this?

Razvan

— Jamey Kirby wrote:

> Are you handling the PoCallNextDriver case? This is a special IRP that

> can not use IoCallDriver(). Power IRPS need to use PoCallDriver. Your
> information is sketchy, so I am only throwing this out for you to
> verify.
>
> Jamey
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Joe Stivaletta
> Sent: Wednesday, October 27, 2004 7:38 AM
> To: Windows File Systems Devs Interest List
> Subject: [ntfsd] BSOD problem in file filter
>
> Hi all,
>
> I have a question. I recently investigated a shutdown BSOD in our
> file filter driver. What I discovered is that we provide a do-nothing

> file completion routine for all IRP functions we do not handle. What
> I was told was that there is a problem in all versions of Windows
> prior to and including Windows 2000 SP2 that required our filter
> driver to have a do-nothing completion routine for all the IRPs that
> we are just passing down
>
> the stack.
>
> Our products supports versions of Windows from Windows NT4 SP4 on up.

> Has anyone ever heard of problems in these old versions of Windows
> that require a file system filter to place a completion routine in the

> IRP stack for all functions even if no post processing of that IRP is
> necessary?
>
> Thanks,
> Joe
>
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@storagecraft.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@yahoo.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>

__________________________________
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
http://promotions.yahoo.com/new_mail


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

Filesystems don’t have an IRP_MJ_POWER dispatch today. If a power IRP is
sent down the fs stack, I believe you’ll see a bugcheck. You can always
register for power notifications & say - take some action on system
state changes, but that’s different from actually playing a role in
implementing power policy. Which is what the power IRPs are all about…

Ravi

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Tony Mason
Sent: Thursday, October 28, 2004 3:56 PM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

Is this then a policy statement that says “file systems (of any type)
may not register for power events?” I ask because I can envision cases
in which I would want power events in my file system (envision a
distributed or clustered file system where I want to relinquish my locks
prior to transitioning to suspended or hibernation mode).

Regards,

Tony

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

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ravisankar Pudipeddi
Sent: Thursday, October 28, 2004 6:28 PM
To: ntfsd redirect
Subject: RE: [ntfsd] BSOD problem in file filter

If your driver shares code with a device driver that filters the storage
stack, that’s a different matter, and yes that driver will get power
IRPs for the storage stack.

Just so I can clarify: when I said file system filter, I meant a driver
that filters above the filesystem. You wouldn’t see power IRPs down the
stack of drivers above the filesystem thru to the filesystem…Hopefully
it’s clear?

Thanks,
Ravi

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Jamey Kirby
Sent: Thursday, October 28, 2004 2:24 PM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

The file system filter device objects will not receive this IRP but a
file system filter driver can. I have one right here that gets these
IRPS.

Jamey

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ravisankar
Pudipeddi
Sent: Thursday, October 28, 2004 2:14 PM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

No, a file system filter doesn’t receive power IRPs. You get a shutdown
IRP when you are being shutdown. That’s it.
And I have not heard of this do-nothing completion routine before. In
fact a do nothing completion is dangerous because at the least you need
to propagate the pending flag. If you don’t you will see a ‘bsod’ as you
describe below. So please take the completion routine out or propagate
the pending flag at least, if you are not synchronizing back to
dispatch.

Ravi
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Razvan Hobeanu
Sent: Thursday, October 28, 2004 8:02 AM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] BSOD problem in file filter

Is is possible for file system filter drivers to receive power IRPs?
Seems a little bit weird to me…
Can someone shed a light on this?

Razvan

— Jamey Kirby wrote:

> Are you handling the PoCallNextDriver case? This is a special IRP that

> can not use IoCallDriver(). Power IRPS need to use PoCallDriver. Your
> information is sketchy, so I am only throwing this out for you to
> verify.
>
> Jamey
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Joe Stivaletta
> Sent: Wednesday, October 27, 2004 7:38 AM
> To: Windows File Systems Devs Interest List
> Subject: [ntfsd] BSOD problem in file filter
>
> Hi all,
>
> I have a question. I recently investigated a shutdown BSOD in our
> file filter driver. What I discovered is that we provide a do-nothing

> file completion routine for all IRP functions we do not handle. What
> I was told was that there is a problem in all versions of Windows
> prior to and including Windows 2000 SP2 that required our filter
> driver to have a do-nothing completion routine for all the IRPs that
> we are just passing down
>
> the stack.
>
> Our products supports versions of Windows from Windows NT4 SP4 on up.

> Has anyone ever heard of problems in these old versions of Windows
> that require a file system filter to place a completion routine in the

> IRP stack for all functions even if no post processing of that IRP is
> necessary?
>
> Thanks,
> Joe
>
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@storagecraft.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@yahoo.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>

__________________________________
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
http://promotions.yahoo.com/new_mail


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

No the function call was like this.

IoSetCompletionRoutine(Irp, FilesysCompletion, NULL, TRUE, TRUE,
TRUE);

It was like a stub that printed some diagnostics but did not real post
processing. It did propagate the pending flag as it should. I have since
removed it. I skip the stack. I have added the IoSkipCurrentStackLocation
macro.

“Randy Cook” wrote in message news:xxxxx@ntfsd…
> Joe,
>
> Does your call to IoSetCompletionRoutine pass three
> FALSEs? Like this:
> IoSetCompletionRoutine( Irp, yourCompletionRoutine,
> NULL, FALSE, FALSE, FALSE );
>
> If so, look at this (bullet item #3) to see why you
> are doing it:
> http://www.osronline.com/article.cfm?article=17#Q51
>
> — Jamey Kirby wrote:
>
>> Do pass lots of IRPs down without a completion
>> routine. For NT 4.0, we back
>> ported the IoSkipCurrentIrpStackLocation(). If we do
>> not need a completion
>> handler, we use this routine.
>>
>> Jamey
>>
>> -----Original Message-----
>> From: xxxxx@lists.osr.com
>> [mailto:xxxxx@lists.osr.com] On Behalf
>> Of Joe Stivaletta
>> Sent: Thursday, October 28, 2004 7:19 AM
>> To: Windows File Systems Devs Interest List
>> Subject: Re:[ntfsd] BSOD problem in file filter
>>
>> Jamey,
>>
>> Thanks, I will check this out. I already know the
>> cause of the BSOD. I am
>>
>> just trying to verify what I was told about a
>> problem that all versions of
>> Windows prior to and including Windows 2000 SP2
>> required our filter driver
>> to have a do-nothing completion routine for all the
>> IRPs that we are just
>> passing down. As of yet, I have not been able to
>> find anyone who ever heard
>>
>> of this problem except our development group and due
>> to the lack of response
>>
>> here I am beginning to doubt that this problem ever
>> existed.
>>
>> Joe
>>
>> “Jamey Kirby” wrote in
>> message news:xxxxx@ntfsd…
>> > Are you handling the PoCallNextDriver case? This
>> is a special IRP that can
>> > not use IoCallDriver(). Power IRPS need to use
>> PoCallDriver. Your
>> > information is sketchy, so I am only throwing this
>> out for you to verify.
>> >
>> > Jamey
>> >
>> >
>> > -----Original Message-----
>> > From: xxxxx@lists.osr.com
>> > [mailto:xxxxx@lists.osr.com] On
>> Behalf Of Joe Stivaletta
>> > Sent: Wednesday, October 27, 2004 7:38 AM
>> > To: Windows File Systems Devs Interest List
>> > Subject: [ntfsd] BSOD problem in file filter
>> >
>> > Hi all,
>> >
>> > I have a question. I recently investigated a
>> shutdown BSOD in our file
>> > filter driver. What I discovered is that we
>> provide a do-nothing file
>> > completion routine for all IRP functions we do not
>> handle. What I was
>> > told
>> > was that there is a problem in all versions of
>> Windows prior to and
>> > including Windows 2000 SP2 that required our
>> filter driver to have a
>> > do-nothing completion routine for all the IRPs
>> that we are just passing
>> > down
>> >
>> > the stack.
>> >
>> > Our products supports versions of Windows from
>> Windows NT4 SP4 on up. Has
>> > anyone ever heard of problems in these old
>> versions of Windows that
>> > require
>> > a file system filter to place a completion routine
>> in the IRP stack for
>> > all
>> > functions even if no post processing of that IRP
>> is necessary?
>> >
>> > Thanks,
>> > Joe
>> >
>> >
>> >
>> > —
>> > Questions? First check the IFS FAQ at
>> > https://www.osronline.com/article.cfm?id=17
>> >
>> > You are currently subscribed to ntfsd as:
>> xxxxx@storagecraft.com
>> > To unsubscribe send a blank email to
>> xxxxx@lists.osr.com
>> >
>> >
>>
>>
>>
>> —
>> Questions? First check the IFS FAQ at
>> https://www.osronline.com/article.cfm?id=17
>>
>> You are currently subscribed to ntfsd as:
>> xxxxx@storagecraft.com
>> To unsubscribe send a blank email to
>> xxxxx@lists.osr.com
>>
>>
>> —
>> Questions? First check the IFS FAQ at
>> https://www.osronline.com/article.cfm?id=17
>>
>> You are currently subscribed to ntfsd as:
>> xxxxx@yahoo.com
>> To unsubscribe send a blank email to
>> xxxxx@lists.osr.com
>>
>
>

IoSkipCurrentStackLocation is what you should use.

If I recall correctly, this macro wasn’t around until
after Windows 2000 was released. You used to have to
copy the stack and then set the completion routine to
something or bad things would happen. A common
thing was to pass three FALSEs in so that the routine
wouldn’t get called. I’m guessing that your driver
used to copy the stack itself and this is why it was
the way it was.

Anyway, you are doing the right thing now.

— Joe Stivaletta wrote:

> No the function call was like this.
>
> IoSetCompletionRoutine(Irp, FilesysCompletion,
> NULL, TRUE, TRUE,
> TRUE);
>
> It was like a stub that printed some diagnostics but
> did not real post
> processing. It did propagate the pending flag as it
> should. I have since
> removed it. I skip the stack. I have added the
> IoSkipCurrentStackLocation
> macro.
>

> IoSkipCurrentStackLocation is what you should use.

If I recall correctly, this macro wasn’t around until
after Windows 2000 was released.

Backporting the macro to NT4 worked fine.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com