FSCTL_ENUM_USN_DATA IOCTL (winioctl.h)
枚举两个指定边界之间的更新序列号 (USN) 数据,以获取主文件表 (MFT) 记录。
若要执行此操作,请使用以下参数调用 DeviceIoControl 函数。
C++ |
---|
BOOL WINAPI DeviceIoControl( (HANDLE) hDevice, // handle to volume (DWORD) FSCTL_ENUM_USN_DATA, // dwIoControlCode(LPVOID) lpInBuffer, // input buffer (DWORD) nInBufferSize, // size of input buffer (LPVOID) lpOutBuffer, // output buffer (DWORD) nOutBufferSize, // size of output buffer (LPDWORD) lpBytesReturned, // number of bytes returned (LPOVERLAPPED) lpOverlapped ); // OVERLAPPED structure); |
备注
有关重叠 I/O 对此操作的影响,请参阅 DeviceIoControl 主题的“备注”部分。
若要枚举卷上的文件,请使用 FSCTL_ENUM_USN_DATA 操作一次或多次。 在第一次调用时,将起始点(MFT_ENUM_DATA结构的 StartFileReferenceNumber 成员)设置为 (DWORDLONG)0
。 每次调用 FSCTL_ENUM_USN_DATA 将检索后续调用的起点作为输出缓冲区中的第一个条目。
通过比较 确定卷的最新更改,请使用 FSCTL_READ_USN_JOURNAL 控制代码。
若要检索卷的句柄,请调用 CreateFile ,并将 lpFileName 参数设置为以下格式的字符串:
\\.\X:
在前面的字符串中, X 是标识卷所在的驱动器的字母。 卷必须为 NTFS。
在 Windows 8 和 Windows Server 2012 中,以下技术支持此代码。
技术 | 支持 |
---|---|
(SMB) 3.0 协议的服务器消息块 | 否 |
SMB 3.0 透明故障转移 (TFO) | 否 |
具有横向扩展文件共享的 SMB 3.0 (SO) | 否 |
群集共享卷文件系统 (CsvFS) | 是 |
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | winioctl.h (包括 Windows.h) |