FSCTL_SET_INTEGRITY_INFORMATION IOCTL (winioctl.h)
检索 ReFS 卷上的文件或目录的完整性状态。
若要执行此操作,请使用以下参数调用 DeviceIoControl 函数。
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to file or directory
FSCTL_SET_INTEGRITY_INFORMATION, // dwIoControlCode
(LPDWORD) pInBuffer, // FSCTL_SET_INTEGRITY_INFORMATION_BUFFER
(DWORD) InBufferSize, // size of input buffer
(LPDWORD) NULL, // pOutBuffer
(DWORD) 0, // OutBufferSize
(LPDWORD) NULL, // lpBytesReturned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
注解
只能更改空文件的完整性状态。
如果使用 ReplaceFile 替换具有完整性集的文件,并且 lpBackupFileName 参数指向未设置完整性的位置,则不会保留原始文件的完整性状态。
对完整性流的写入始终是群集大小的。 从完整性流读取操作始终在 16 KB 块中完成。 即使损坏区域位于正在读取的区域之外,这也可能导致读取失败。 例如,如果在文件中的偏移量为 0 时读取 4 KB,并且文件中存在从 12 KB 开始的损坏,则读取将失败并 ERROR_DATA_CHECKSUM_ERROR (0x143) 。
要求
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows Server 2012 [仅限桌面应用] |
标头 | winioctl.h (包括 Windows.h) |