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)

另请参阅