确定NTFS卷是否已安装在外部

时间:2012-06-07 20:10:54

标签: c++ windows ntfs mount

我有一个软件正在使用卷过滤器驱动程序跟踪Windows操作系统上的NTFS卷更改。在安装驱动程序的操作系统之外安装和修改卷时,我需要处理一个条件。

是否有可能找出卷的“最后安装时间”?或任何其他参数允许我告诉音量是否已安装在我的驱动程序控件之外?

1 个答案:

答案 0 :(得分:2)

我不知道“上次安装时间”,但是有一个“日志文件打开计数”。如果您查看http://www.opensource.apple.com/source/ntfs/ntfs-64/kext/ntfs_logfile.h,您会看到RESTART_AREA这样的结构:

/* 40*/ le32 restart_log_open_count;/* A counter that gets incremented every
                                     time the logfile is restarted which happens
                                     at mount time when the logfile is opened.
                                     When creating set to a random value.  Win2k
                                     sets it to the low 32 bits of the current
                                     system time in NTFS format (see time.h). */
/* 44*/ le32 reserved;      /* Reserved/alignment to 8-byte boundary. */
/* sizeof() = 48 (0x30) bytes */
} __attribute__((__packed__)) RESTART_AREA;
     

您可以看到它附近有一个restart_log_open_count,您可以使用它来跟踪坐骑。您将查看该值并将其与保存的值进行比较。它应该等于保存的值加一。如果是这样,那么自从您上次控制以来它尚未安装。