我们有一个客户端,用于确定何时初始化驱动器或创建NTFS分区是非常有用的。某个地方有时间戳记值吗?如果有人可以提出任何建议,将不胜感激。
谢谢!
-slashp
我们有一个客户端,用于确定何时初始化驱动器或创建NTFS分区是非常有用的。某个地方有时间戳记值吗?如果有人可以提出任何建议,将不胜感激。
谢谢!
-slashp
Answers:
CIFS事务为TRANS2_QFSINFO
,信息级别为SMB_QUERY_FS_VOLUME_INFO
。用于查询卷的创建时间的本机Windows NT API函数是ZwQueryVolumeInformationFile()
,FILE_FS_VOLUME_INFORMATION
当询问FileFsVolumeInformation
信息类别时,它会产生一个数据结构(几乎与CIFS相同,请注意)。测试该查询是否有效是Microsoft提供给驱动程序开发人员的IFS测试仪的一部分。
有趣的是,似乎没有人编写过这样一种方便的实用程序,该实用程序仅查询卷并以人类可读的形式打印其创建时间戳。1 据我所知,最接近的是启动SysInternals procmon
工具并查找流式传输的卷信息。也许有人读这篇文章会激发创建增强vol
命令的灵感。
是的,卷创建时间戳已正确初始化,而不仅仅是设置为零或其他常量。我没有检查,但是我对这些信息的存储位置的有根据的猜测是MFT条目的$STANDARD_INFORMATION
属性$Volume
。我可以想到另外三个可能的地方,但这是最合逻辑的地方。
1grawity
的效用只是需要多一点打磨,包括简单的使用FileTimeToSystemTime()
和GetTimeFormat()
,使其可用为不能解码的Win32时间戳在他们的头脑最终用户。☺
我不知道NTFS内置的“卷创建日期”。但是,通过查看System Volume Information
卷根目录中目录的创建日期,您应该能够非常接近地估计创建日期。