Querying File Timestamp

On Behalf of Sorabh

Hi All,

I am working on a replication file filter driver. I need to make sure that
file timestamps on source and target are same. Timestamp during Create, Set
Attributes, and Set Security are handled properly. For Write, the way I am
doing this is as follows:

  • Trap the Write calls (IRP_NOCACHE)

  • upon the completion from FSD, send my own IRP down to query the basic

  • build my request and conduct the operation on target

  • complete the original Write IRP to the IO manager

Everything is working fine on NTFS file system. It passed our all stress
tests. The problem I am facing is:

If underlying file system is FAT32, sometimes my Query IRP hangs the system
On Windows 2000 if the FileObject has stream-bit set, querying attributes
bugchecks the system (it was documented in OSR article). So for now I bypass
the operation
Is there any better way of accomplishing the task?

I was thinking, if Paging Write does not result in change in file timestamp
(I don?t know that), may be before sending cleanup IRP down to filesystem I
can query the timestamp, and then use those timestamp for subsequent writes.

Please advise. Any help is really appreciated.