BSOD with REFERENCE_BY_POINTER.. Please Help me

Hi, everybody.

I have developed the file system, “myFileSystem” like fastfat.

In summary of myFileSystem,

myFileSystem do not support the oplock and direct directory opening.
myFileSystem don’t have the physical storage device.

myFileSystem is well running in WinXp, Win2003, Vista, Win7 with 32/64bits.

But, I got the BSOD when the Excel program has created the new file in Windows 8.1(32bits).

*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

REFERENCE_BY_POINTER (18)
Arguments:
Arg1: 00000000, Object type of the object whose reference count is being lowered
Arg2: 8461c9b0, Object whose reference count is being lowered
Arg3: 00000007, Reserved
Arg4: ffffff16, Reserved
The reference count of an object is illegal for the current state of the object.
Each time a driver uses a pointer to an object the driver calls a kernel routine
to increment the reference count of the object. When the driver is done with the
pointer the driver calls another kernel routine to decrement the reference count.
Drivers must match calls to the increment and decrement routines. This bugcheck
can occur because an object’s reference count goes to zero while there are still
open handles to the object, in which case the fourth parameter indicates the number
of opened handles. It may also occur when the object?s reference count drops below zero
whether or not there are open handles to the object, and in that case the fourth parameter
contains the actual value of the pointer references count.

Debugging Details:

*** ERROR: Symbol file could not be found. Defaulted to export symbols for EXCEL.EXE -
*** ERROR: Module load completed but symbols could not be loaded for mso.dll

DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT

BUGCHECK_STR: 0x18

PROCESS_NAME: EXCEL.EXE

CURRENT_IRQL: 0

ANALYSIS_VERSION: 6.3.9600.17029 (debuggers(dbg).140219-1702) x86fre

LAST_CONTROL_TRANSFER: from 8139a704 to 8131eac4

STACK_TEXT:
ac6ac454 8139a704 00000003 7ce24e7c 00000065 nt!RtlpBreakWithStatusInstruction
ac6ac4a8 8139a21e 801f3240 ac6ac8a8 ac6ac8e8 nt!KiBugCheckDebugBreak+0x1f
ac6ac87c 8131d666 00000018 00000000 8461c9b0 nt!KeBugCheck2+0x676
ac6ac8a0 8131d59d 00000018 00000000 8461c9b0 nt!KiBugCheck2+0xc6
ac6ac8c0 8134eaf9 00000018 00000000 8461c9b0 nt!KeBugCheckEx+0x19
ac6ac8e8 81494604 7ce24328 ac6acb8c 856f02d8 nt! ?? ::FNODOBFM::`string’+0x17b97
ac6ac9fc 8153fce8 868dd380 84427f70 84e41d20 nt!IopParseDevice+0xcd4
ac6aca38 81498e1e 856f02d8 84427f70 84e41d20 nt!IopParseFile+0x50
ac6acae4 81496eae 01000040 84427f70 6acc9001 nt!ObpLookupObjectName+0x27e
ac6acb58 8147a600 008bba28 84427f70 6acc9001 nt!ObOpenObjectByName+0xfe
ac6acd04 8132e6c7 008bba28 008bba58 008bba94 nt!NtQueryFullAttributesFile+0x12e
ac6acd04 7755f804 008bba28 008bba58 008bba94 nt!KiSystemServicePostCall
008bba08 7755dec6 75038caa 008bba28 008bba58 ntdll!KiFastSystemCallRet
008bba0c 75038caa 008bba28 008bba58 008bbbd8 ntdll!NtQueryFullAttributesFile+0xa
008bba94 7573c74a 05cf9bd8 00000000 008bbac8 KERNELBASE!GetFileAttributesExW+0x7e
008bbaf0 75739de6 05cda498 0582e9e0 00000000 ole32!CFileMoniker::GetTimeOfLastChange+0xe1 [d:\blue_gdr\com\ole32\com\moniker2\cfilemon.cxx @ 3481]
008bbb38 75739a5d 008bbbd8 008bbb58 05c00070 ole32!GetMonikerCompareBuffer+0x8e [d:\blue_gdr\com\ole32\com\rot\crot.cxx @ 116]
008bc3f4 2f67cf0d 009e4610 00000000 05c0012c ole32!CRunningObjectTable::Register+0xcf [d:\blue_gdr\com\ole32\com\rot\crot.cxx @ 574]
WARNING: Stack unwind information not available. Following frames may be wrong.
008bc428 2f63acd0 04e0e800 00000001 307079a0 EXCEL!Ordinal40+0x4cf0d
008bc448 2f6687ad 00000004 00000000 00000001 EXCEL!Ordinal40+0xacd0
008bc6e4 2f67b9b1 00000000 00000000 00000001 EXCEL!Ordinal40+0x387ad
008bc814 2f679b12 00000000 00000000 00000005 EXCEL!Ordinal40+0x4b9b1
008bd614 2f67894a 008bd7dc 00000001 00000000 EXCEL!Ordinal40+0x49b12
008bd7a0 2fd5ad33 00000077 008bd7dc 00000001 EXCEL!Ordinal40+0x4894a
008bd854 61d14c8b 021a0c00 00000000 00000001 EXCEL!Ordinal40+0x72ad33
008bd870 6205d9e4 00000000 00000001 01a2dc14 mso+0x1e4c8b
008be960 6205d900 01a2dc14 01a2dc00 03705280 mso+0x52d9e4
008be974 62201fcf 000003eb 00000000 008bed6c mso+0x52d900
008becd4 629031ab 000003eb 00000001 0372af80 mso+0x6d1fcf
008becf4 61efc17c 00000000 61e18b20 0372af80 mso+0xdd31ab
008bed74 61c86f20 05727460 0100008d 049a9780 mso+0x3cc17c
008beda0 61c452e3 05727460 0000008d 61e18b20 mso+0x156f20
008bedc4 61c150ec 05727460 00000000 61e18b20 mso+0x1152e3
008bedf4 61c2796b 05727460 0000008d 61e18b20 mso+0xe50ec
008bee14 61c1da8a 05727460 0000008d 61e18b20 mso+0xf796b
008bee48 61c1b939 00000000 049a9780 61ece200 mso+0xeda8a
008bee5c 61c1b631 05727460 019b9000 0000008d mso+0xeb939
008bee80 61c1b53b 61e18b20 0000008d 038570a0 mso+0xeb631
008beea8 61c19b00 04d8fc00 61e18b20 00000000 mso+0xeb53b
008beec8 61b881f4 04d8fc00 61ece210 61e18b20 mso+0xe9b00
008beef4 61be6e5c 61ece210 00000002 61e18b20 mso+0x581f4
008bef18 61c3e3a4 61ece210 00000002 61e18b20 mso+0xb6e5c
008bef44 61c8d624 61ece210 00000002 61e18b20 mso+0x10e3a4
008bef7c 61ff0ec4 04d8fc80 61ece210 008befe4 mso+0x15d624
008befa4 61f0a38d 61ece210 049a9784 008befe4 mso+0x4c0ec4
008befc8 61cc0510 04e0d460 049a5384 056d0e00 mso+0x3da38d
008beffc 61c90a79 04e0d458 008bf11c 056d0e00 mso+0x190510
008bf01c 61cb0dd4 0226df90 008bf11c 0226df90 mso+0x160a79
008bf0cc 61c909cf 0226df90 008bf11c 05728000 mso+0x180dd4
008bf0fc 61dade31 05728000 61dade3c 008bf11c mso+0x1609cf
008bf150 61fdf1f4 00000001 008bf3b4 008bf384 mso+0x27de31
008bf180 61bda2af 008bf3b4 008bf384 05724870 mso+0x4af1f4
008bf208 61bd2eed 05724870 05728000 008bf384 mso+0xaa2af
008bf25c 61c00ecd 05724870 008bf384 00000000 mso+0xa2eed
008bf354 61c00d9f 05724870 008bf384 00000000 mso+0xd0ecd
008bf370 61bda0bc 00000007 00000001 008bf3dc mso+0xd0d9f
008bf39c 61f554a0 008bf3b4 00000001 00000001 mso+0xaa0bc
008bf3e0 61f553b7 05728000 008bf3fc 00000000 mso+0x4254a0
008bf420 61fdc369 008bf488 00000002 043b4028 mso+0x4253b7
008bf470 61d3141f 04d83180 043b4028 05724870 mso+0x4ac369
008bf4f8 61bd2eed 05724870 05728000 043b4028 mso+0x20141f
008bf54c 61c00ecd 05724870 043b4028 00000000 mso+0xa2eed
008bf650 61c8f12b 05724870 043b4028 00000000 mso+0xd0ecd
008bf664 61c25fa1 043b4004 00000000 00000000 mso+0x15f12b
008bf694 61c8f100 00000000 000000a0 008bf708 mso+0xf5fa1
008bf6b0 61c8f00d 00000202 018bf708 008bf764 mso+0x15f100
008bf6c0 61bf24e7 03726620 0344ce60 00000000 mso+0x15f00d
008bf764 61bf074e 00000202 00000000 00eb00fb mso+0xc24e7
008bf7b0 75a675e3 000902d0 00000202 00000000 mso+0xc074e
008bf7dc 75a67c6c 61bf06e8 000902d0 00000202 USER32!_InternalCallWinProc+0x23
008bf85c 75a6792b 000902d0 00000202 00000000 USER32!UserCallWinProcCheckWow+0x1af
008bf8bc 75a67991 008bf970 008bf8e8 2f654572 USER32!DispatchMessageWorker+0x1a1
008bf8c8 2f654572 008bf970 008bf964 2f654534 USER32!DispatchMessageW+0x10
008bf8e8 2f654441 75a85a0c 00991e6f 00000000 EXCEL!Ordinal40+0x24572
008bf9b4 2f63424b 00000000 3070c5c8 00991e6f EXCEL!Ordinal40+0x24441

STACK_COMMAND: kb

FOLLOWUP_IP:
nt! ?? ::FNODOBFM::`string’+17b97
8134eaf9 cc int 3

SYMBOL_STACK_INDEX: 5

SYMBOL_NAME: nt! ?? ::FNODOBFM::`string’+17b97

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: nt

IMAGE_NAME: ntkrpamp.exe

DEBUG_FLR_IMAGE_TIMESTAMP: 52718dd2

BUCKET_ID_FUNC_OFFSET: 17b97

FAILURE_BUCKET_ID: 0x18_nt!??::FNODOBFM::string

BUCKET_ID: 0x18_nt!??::FNODOBFM::string

ANALYSIS_SOURCE: KM

FAILURE_ID_HASH_STRING: km:0x18_nt!??::fnodobfm::string

FAILURE_ID_HASH: {23944209-42f8-342c-4e58-b3422a5fb0a5}

Followup: MachineOwner

One of the known properties of Win8 is that it monitors behavior more
closely than previous versions of Windows. So what you could be seeing is
the detection and report of a previously-undetected error. As the message
advises, make sure that every path which might decrement a reference count
has a corresponding path that increments the reference count. This is
sometimes difficult to figure out because some of these are buried deep
inside other calls, and it may not be documented which calls increment and
decrement use counts, and you have to infer it by-guess-and-by-golly.
This can be very frustrating. It can also be the case that *you* were
supposed to have incremented a reference count, and you missed doing this,
so I’d also start checking where file systems manage reference counts. A
final possibility is that your code has a conditional which bypasses an
incrementing path, but only Win8 creates this condition (possibly because
it reports a previously-undetected error due to its more extensive error
checking. The consequence of this is that some much earlier path fails to
detect the error, or responds using untested code, leaving an off-by-one
reference count.

One way I would consider for this detection: get a code coverage tool
(I’ve heard good things about Bullseye, but others may know better tools)
and study the results from the earlier versions of Windows and compare
them to the same test run on Win8. A different coverage *might* reveal an
untested error path has been executed. No guarantee, but it will be
cheaper and less frustrating than trying to derive the same (possibly
negative) result using WinDbg and/or debug-print traces.
joe

Hi, everybody.

I have developed the file system, “myFileSystem” like fastfat.

In summary of myFileSystem,

myFileSystem do not support the oplock and direct directory opening.
myFileSystem don’t have the physical storage device.

myFileSystem is well running in WinXp, Win2003, Vista, Win7 with
32/64bits.

But, I got the BSOD when the Excel program has created the new file in
Windows 8.1(32bits).

*******************************************************************************
*
*
* Bugcheck Analysis
*
*
*
*******************************************************************************

REFERENCE_BY_POINTER (18)
Arguments:
Arg1: 00000000, Object type of the object whose reference count is being
lowered
Arg2: 8461c9b0, Object whose reference count is being lowered
Arg3: 00000007, Reserved
Arg4: ffffff16, Reserved
The reference count of an object is illegal for the current state of the
object.
Each time a driver uses a pointer to an object the driver calls a kernel
routine
to increment the reference count of the object. When the driver is done
with the
pointer the driver calls another kernel routine to decrement the
reference count.
Drivers must match calls to the increment and decrement routines. This
bugcheck
can occur because an object’s reference count goes to zero while there
are still
open handles to the object, in which case the fourth parameter indicates
the number
of opened handles. It may also occur when the object?s reference count
drops below zero
whether or not there are open handles to the object, and in that case the
fourth parameter
contains the actual value of the pointer references count.

Debugging Details:

*** ERROR: Symbol file could not be found. Defaulted to export symbols
for EXCEL.EXE -
*** ERROR: Module load completed but symbols could not be loaded for
mso.dll

DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT

BUGCHECK_STR: 0x18

PROCESS_NAME: EXCEL.EXE

CURRENT_IRQL: 0

ANALYSIS_VERSION: 6.3.9600.17029 (debuggers(dbg).140219-1702) x86fre

LAST_CONTROL_TRANSFER: from 8139a704 to 8131eac4

STACK_TEXT:
ac6ac454 8139a704 00000003 7ce24e7c 00000065
nt!RtlpBreakWithStatusInstruction
ac6ac4a8 8139a21e 801f3240 ac6ac8a8 ac6ac8e8 nt!KiBugCheckDebugBreak+0x1f
ac6ac87c 8131d666 00000018 00000000 8461c9b0 nt!KeBugCheck2+0x676
ac6ac8a0 8131d59d 00000018 00000000 8461c9b0 nt!KiBugCheck2+0xc6
ac6ac8c0 8134eaf9 00000018 00000000 8461c9b0 nt!KeBugCheckEx+0x19
ac6ac8e8 81494604 7ce24328 ac6acb8c 856f02d8 nt! ??
::FNODOBFM::`string’+0x17b97
ac6ac9fc 8153fce8 868dd380 84427f70 84e41d20 nt!IopParseDevice+0xcd4
ac6aca38 81498e1e 856f02d8 84427f70 84e41d20 nt!IopParseFile+0x50
ac6acae4 81496eae 01000040 84427f70 6acc9001 nt!ObpLookupObjectName+0x27e
ac6acb58 8147a600 008bba28 84427f70 6acc9001 nt!ObOpenObjectByName+0xfe
ac6acd04 8132e6c7 008bba28 008bba58 008bba94
nt!NtQueryFullAttributesFile+0x12e
ac6acd04 7755f804 008bba28 008bba58 008bba94 nt!KiSystemServicePostCall
008bba08 7755dec6 75038caa 008bba28 008bba58 ntdll!KiFastSystemCallRet
008bba0c 75038caa 008bba28 008bba58 008bbbd8
ntdll!NtQueryFullAttributesFile+0xa
008bba94 7573c74a 05cf9bd8 00000000 008bbac8
KERNELBASE!GetFileAttributesExW+0x7e
008bbaf0 75739de6 05cda498 0582e9e0 00000000
ole32!CFileMoniker::GetTimeOfLastChange+0xe1
[d:\blue_gdr\com\ole32\com\moniker2\cfilemon.cxx @ 3481]
008bbb38 75739a5d 008bbbd8 008bbb58 05c00070
ole32!GetMonikerCompareBuffer+0x8e [d:\blue_gdr\com\ole32\com\rot\crot.cxx
@ 116]
008bc3f4 2f67cf0d 009e4610 00000000 05c0012c
ole32!CRunningObjectTable::Register+0xcf
[d:\blue_gdr\com\ole32\com\rot\crot.cxx @ 574]
WARNING: Stack unwind information not available. Following frames may be
wrong.
008bc428 2f63acd0 04e0e800 00000001 307079a0 EXCEL!Ordinal40+0x4cf0d
008bc448 2f6687ad 00000004 00000000 00000001 EXCEL!Ordinal40+0xacd0
008bc6e4 2f67b9b1 00000000 00000000 00000001 EXCEL!Ordinal40+0x387ad
008bc814 2f679b12 00000000 00000000 00000005 EXCEL!Ordinal40+0x4b9b1
008bd614 2f67894a 008bd7dc 00000001 00000000 EXCEL!Ordinal40+0x49b12
008bd7a0 2fd5ad33 00000077 008bd7dc 00000001 EXCEL!Ordinal40+0x4894a
008bd854 61d14c8b 021a0c00 00000000 00000001 EXCEL!Ordinal40+0x72ad33
008bd870 6205d9e4 00000000 00000001 01a2dc14 mso+0x1e4c8b
008be960 6205d900 01a2dc14 01a2dc00 03705280 mso+0x52d9e4
008be974 62201fcf 000003eb 00000000 008bed6c mso+0x52d900
008becd4 629031ab 000003eb 00000001 0372af80 mso+0x6d1fcf
008becf4 61efc17c 00000000 61e18b20 0372af80 mso+0xdd31ab
008bed74 61c86f20 05727460 0100008d 049a9780 mso+0x3cc17c
008beda0 61c452e3 05727460 0000008d 61e18b20 mso+0x156f20
008bedc4 61c150ec 05727460 00000000 61e18b20 mso+0x1152e3
008bedf4 61c2796b 05727460 0000008d 61e18b20 mso+0xe50ec
008bee14 61c1da8a 05727460 0000008d 61e18b20 mso+0xf796b
008bee48 61c1b939 00000000 049a9780 61ece200 mso+0xeda8a
008bee5c 61c1b631 05727460 019b9000 0000008d mso+0xeb939
008bee80 61c1b53b 61e18b20 0000008d 038570a0 mso+0xeb631
008beea8 61c19b00 04d8fc00 61e18b20 00000000 mso+0xeb53b
008beec8 61b881f4 04d8fc00 61ece210 61e18b20 mso+0xe9b00
008beef4 61be6e5c 61ece210 00000002 61e18b20 mso+0x581f4
008bef18 61c3e3a4 61ece210 00000002 61e18b20 mso+0xb6e5c
008bef44 61c8d624 61ece210 00000002 61e18b20 mso+0x10e3a4
008bef7c 61ff0ec4 04d8fc80 61ece210 008befe4 mso+0x15d624
008befa4 61f0a38d 61ece210 049a9784 008befe4 mso+0x4c0ec4
008befc8 61cc0510 04e0d460 049a5384 056d0e00 mso+0x3da38d
008beffc 61c90a79 04e0d458 008bf11c 056d0e00 mso+0x190510
008bf01c 61cb0dd4 0226df90 008bf11c 0226df90 mso+0x160a79
008bf0cc 61c909cf 0226df90 008bf11c 05728000 mso+0x180dd4
008bf0fc 61dade31 05728000 61dade3c 008bf11c mso+0x1609cf
008bf150 61fdf1f4 00000001 008bf3b4 008bf384 mso+0x27de31
008bf180 61bda2af 008bf3b4 008bf384 05724870 mso+0x4af1f4
008bf208 61bd2eed 05724870 05728000 008bf384 mso+0xaa2af
008bf25c 61c00ecd 05724870 008bf384 00000000 mso+0xa2eed
008bf354 61c00d9f 05724870 008bf384 00000000 mso+0xd0ecd
008bf370 61bda0bc 00000007 00000001 008bf3dc mso+0xd0d9f
008bf39c 61f554a0 008bf3b4 00000001 00000001 mso+0xaa0bc
008bf3e0 61f553b7 05728000 008bf3fc 00000000 mso+0x4254a0
008bf420 61fdc369 008bf488 00000002 043b4028 mso+0x4253b7
008bf470 61d3141f 04d83180 043b4028 05724870 mso+0x4ac369
008bf4f8 61bd2eed 05724870 05728000 043b4028 mso+0x20141f
008bf54c 61c00ecd 05724870 043b4028 00000000 mso+0xa2eed
008bf650 61c8f12b 05724870 043b4028 00000000 mso+0xd0ecd
008bf664 61c25fa1 043b4004 00000000 00000000 mso+0x15f12b
008bf694 61c8f100 00000000 000000a0 008bf708 mso+0xf5fa1
008bf6b0 61c8f00d 00000202 018bf708 008bf764 mso+0x15f100
008bf6c0 61bf24e7 03726620 0344ce60 00000000 mso+0x15f00d
008bf764 61bf074e 00000202 00000000 00eb00fb mso+0xc24e7
008bf7b0 75a675e3 000902d0 00000202 00000000 mso+0xc074e
008bf7dc 75a67c6c 61bf06e8 000902d0 00000202
USER32!_InternalCallWinProc+0x23
008bf85c 75a6792b 000902d0 00000202 00000000
USER32!UserCallWinProcCheckWow+0x1af
008bf8bc 75a67991 008bf970 008bf8e8 2f654572
USER32!DispatchMessageWorker+0x1a1
008bf8c8 2f654572 008bf970 008bf964 2f654534 USER32!DispatchMessageW+0x10
008bf8e8 2f654441 75a85a0c 00991e6f 00000000 EXCEL!Ordinal40+0x24572
008bf9b4 2f63424b 00000000 3070c5c8 00991e6f EXCEL!Ordinal40+0x24441

STACK_COMMAND: kb

FOLLOWUP_IP:
nt! ?? ::FNODOBFM::`string’+17b97
8134eaf9 cc int 3

SYMBOL_STACK_INDEX: 5

SYMBOL_NAME: nt! ?? ::FNODOBFM::`string’+17b97

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: nt

IMAGE_NAME: ntkrpamp.exe

DEBUG_FLR_IMAGE_TIMESTAMP: 52718dd2

BUCKET_ID_FUNC_OFFSET: 17b97

FAILURE_BUCKET_ID: 0x18_nt!??::FNODOBFM::string

BUCKET_ID: 0x18_nt!??::FNODOBFM::string

ANALYSIS_SOURCE: KM

FAILURE_ID_HASH_STRING: km:0x18_nt!??::fnodobfm::string

FAILURE_ID_HASH: {23944209-42f8-342c-4e58-b3422a5fb0a5}

Followup: MachineOwner


NTFSD is sponsored by OSR

OSR is hiring!! Info at http://www.osr.com/careers

For our schedule of debugging and file system seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Try enabling object reference tracing (see !obtrace in the windbg help).

This bugcheck indicates that a VPB reference count is invalid.

Arg2 is the VPB, and Arg3 is the reference count for the VPB in question.

  • S (Msft)

From: xxxxx@gmail.commailto:xxxxx
Sent: ?Tuesday?, ?April? ?29?, ?2014 ?5?:?19? ?PM
To: ntfsdmailto:xxxxx

Try enabling object reference tracing (see !obtrace in the windbg help).


NTFSD is sponsored by OSR

OSR is hiring!! Info at http://www.osr.com/careers

For our schedule of debugging and file system seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer</mailto:xxxxx></mailto:xxxxx>

Typo correction – *Arg4* is the reference count.

  • S (Msft)

From: Ken Johnsonmailto:xxxxx
Sent: ?Tuesday?, ?April? ?29?, ?2014 ?6?:?45? ?PM
To: ntfsdmailto:xxxxx

This bugcheck indicates that a VPB reference count is invalid.

Arg2 is the VPB, and Arg3 is the reference count for the VPB in question.

- S (Msft)

From: xxxxx@gmail.commailto:xxxxx
Sent: ?Tuesday?, ?April? ?29?, ?2014 ?5?:?19? ?PM
To: ntfsdmailto:xxxxx

Try enabling object reference tracing (see !obtrace in the windbg help).


NTFSD is sponsored by OSR

OSR is hiring!! Info at http://www.osr.com/careers

For our schedule of debugging and file system seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer


NTFSD is sponsored by OSR

OSR is hiring!! Info at http://www.osr.com/careers

For our schedule of debugging and file system seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer</mailto:xxxxx></mailto:xxxxx></mailto:xxxxx></mailto:xxxxx>

Totally unrelated to the question but:

myFileSystem do not support the oplock and direct directory opening.

You are not going to have a great deal of fun with Aero apps. Although
still “optional” in Win8 (AFAICS), not a great deal will work unless you
support them (and potentially the directory ones as well).

Thanks everyone,

I checked that my VPB reference count is invalid.

myFileSystem don’t have the physical storage device.
So, I bypassed the IRP_MJ_FILE_SYSTEM_CONTROL(IRP_MN_MOUNT_VOLUME) with STATUS_UNRECOGNIZED_VOLUME result. and then, I created the volume device object with VPB that I allocated with RealDevice = NULLL.

I can’t find how to handle the VPB reference count in FastFat sample.
How to handle the VPB reference count in my case?

Thanks for your kindness.

Don’t create or use it then. That makes you like a network file system (where there is no VPB so FO->Vpb is NULL). The OS handles this case properly.

VPB management is arcane, complex and best avoided if you aren’t dealing with media volumes.

Tony
OSR

Thanks everyone.
You get a heavy load off my work.