NTFS assertion

I am using the “shadow device” method described by OSR
in the FAQ
(https://www.osronline.com/article.cfm?id=17#Q34) to
handle reentrant opens from my own driver.

This is working great. However, when I run with the
checked build of ntfs.sys (W2K SP4) I get the
following assertion:

*** Assertion failed: No correspondence btwn file and
device in irp((IrpSp->FileObject->Vpb == NULL) &&
((IrpSp->FileObject->DeviceObject != NULL) &&
(IrpSp->FileObject->DeviceObject->Vpb != NULL) &&
(IrpSp->DeviceObject ==
IrpSp->FileObject->DeviceObject->Vpb->DeviceObject)))
|| ((IrpSp->FileObject->Vpb != NULL) &&
(IrpSp->DeviceObject ==
IrpSp->FileObject->Vpb->DeviceObject)) || (!FlagOn(
Vcb->VcbState, VCB_STATE_VOLUME_MOUNTED ))

*** Source File:
D:\nt\private\ntos\cntfs\strucsup.c, line 6563

Does this indicate a problem with the way I’m doing
it? If not, how do I get rid of this assertion?

Thanks,


Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail

We had a similar experience a few months ago on W2K3.

At first we implemented the scheme involving incrementing and decrementing
reference counts as outlined here in a previous post. However, we found
that the approach has an inherent race condition and under stress all our
DeviceObjects disappeared.

After discussing this with others, who know more of the internals of ntfs
than I, the general conclusion is that this assert can be safely ignored.
Granted, the ntfs.sys checked version is no longer usable.

If you find additional information we would be interested in hearing what
you find.

Stanislaw

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Randy Cook
Sent: Thursday, July 15, 2004 1:23 PM
To: Windows File Systems Devs Interest List
Subject: [ntfsd] NTFS assertion

I am using the “shadow device” method described by OSR
in the FAQ
(https://www.osronline.com/article.cfm?id=17#Q34) to
handle reentrant opens from my own driver.

This is working great. However, when I run with the
checked build of ntfs.sys (W2K SP4) I get the
following assertion:

*** Assertion failed: No correspondence btwn file and
device in irp((IrpSp->FileObject->Vpb == NULL) &&
((IrpSp->FileObject->DeviceObject != NULL) &&
(IrpSp->FileObject->DeviceObject->Vpb != NULL) &&
(IrpSp->DeviceObject ==
IrpSp->FileObject->DeviceObject->Vpb->DeviceObject)))
|| ((IrpSp->FileObject->Vpb != NULL) &&
(IrpSp->DeviceObject ==
IrpSp->FileObject->Vpb->DeviceObject)) || (!FlagOn(
Vcb->VcbState, VCB_STATE_VOLUME_MOUNTED ))

*** Source File:
D:\nt\private\ntos\cntfs\strucsup.c, line 6563

Does this indicate a problem with the way I’m doing
it? If not, how do I get rid of this assertion?

Thanks,


Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
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@relicore.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Thanks Stanislaw. Good to know it is not just me.

I wonder if anyone using this technique has been able
to run on a checked OS.

If not, it seems like a fairly serious drawback to
this approach and something that ought to be mentioned
in the FAQ.

— Stanislaw Kowalczyk wrote:
> We had a similar experience a few months ago on
> W2K3.
>
> At first we implemented the scheme involving
> incrementing and decrementing
> reference counts as outlined here in a previous
> post. However, we found
> that the approach has an inherent race condition and
> under stress all our
> DeviceObjects disappeared.
>
> After discussing this with others, who know more of
> the internals of ntfs
> than I, the general conclusion is that this assert
> can be safely ignored.
> Granted, the ntfs.sys checked version is no longer
> usable.
>
> If you find additional information we would be
> interested in hearing what
> you find.
>
> Stanislaw
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf
> Of Randy Cook
> Sent: Thursday, July 15, 2004 1:23 PM
> To: Windows File Systems Devs Interest List
> Subject: [ntfsd] NTFS assertion
>
>
> I am using the “shadow device” method described by
> OSR
> in the FAQ
> (https://www.osronline.com/article.cfm?id=17#Q34) to
> handle reentrant opens from my own driver.
>
> This is working great. However, when I run with the
> checked build of ntfs.sys (W2K SP4) I get the
> following assertion:
>
> Assertion failed: No correspondence btwn file
> and
> device in irp((IrpSp->FileObject->Vpb == NULL) &&
> ((IrpSp->FileObject->DeviceObject != NULL) &&
> (IrpSp->FileObject->DeviceObject->Vpb != NULL) &&
> (IrpSp->DeviceObject ==
>
IrpSp->FileObject->DeviceObject->Vpb->DeviceObject)))
> || ((IrpSp->FileObject->Vpb != NULL) &&
> (IrpSp->DeviceObject ==
> IrpSp->FileObject->Vpb->DeviceObject)) || (!FlagOn(
> Vcb->VcbState, VCB_STATE_VOLUME_MOUNTED ))
>
>
Source File:
> D:\nt\private\ntos\cntfs\strucsup.c, line 6563
>
> Does this indicate a problem with the way I’m doing
> it? If not, how do I get rid of this assertion?
>
> Thanks,
>
>
>
>
>
>
> Do you Yahoo!?
> New and Improved Yahoo! Mail - 100MB free storage!
> 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@relicore.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!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail