Hello, I’m writting an on-disk file system and I want to implement Transactional NTFS (TxF) for it. I know, TxF is available only for NTFS volumes, but how does the kernel know whether which volume is an NTFS volume and which is not? My volume derives all its flags, attributes, and capabilites (including file system name) from a real NTFS volume. User-mode CreateFileTransacted() routine fails with 6832 error (“This object is not allowed to be opened in a transaction”) when invoked on my volume. The strange fact is that it fails without ANY request/response from/to my file system, it just fails ‘silently’. After consulting filespy WDK routine, pointed as a reference for Kernel Transaction Manager integration, I concluded that the kernel checks driver object name, related to the file object, to see whether the file system is NTFS. How do you think, is it possible for the kernel to perform this kind of check and can I do something to solve my problem. Thanks.
I know that you said you propagated all of the flags, but are you sure that
you have DO_SUPPORTS_TRANSACTIONS set in the flags for your volume device
object? In my experience not setting this flag will lead to this error.
-scott
–
Scott Noone
Consulting Associate and Chief System Problem Analyst
OSR Open Systems Resources, Inc.
http://www.osronline.com
wrote in message news:xxxxx@ntfsd…
Hello, I’m writting an on-disk file system and I want to implement
Transactional NTFS (TxF) for it. I know, TxF is available only for NTFS
volumes, but how does the kernel know whether which volume is an NTFS volume
and which is not? My volume derives all its flags, attributes, and
capabilites (including file system name) from a real NTFS volume. User-mode
CreateFileTransacted() routine fails with 6832 error (“This object is not
allowed to be opened in a transaction”) when invoked on my volume. The
strange fact is that it fails without ANY request/response from/to my file
system, it just fails ‘silently’. After consulting filespy WDK routine,
pointed as a reference for Kernel Transaction Manager integration, I
concluded that the kernel checks driver object name, related to the file
object, to see whether the file system is NTFS. How do you think, is it
possible for the kernel to perform this kind of check and can I do something
to solve my problem. Thanks.