FSCTL_GET_RETRIEVAL_POINTERS IOCTL (winioctl.h)

在给定文件句柄的情况下,检索描述特定文件在磁盘上的分配和位置的数据结构,或者在给定卷句柄的情况下,检索损坏的群集在卷上的位置。

若要执行此操作,请使用以下参数调用 DeviceIoControl 函数。

DeviceIoControl(
  (HANDLE) hDevice,                 // handle to file, directory, or volume
  FSCTL_GET_RETRIEVAL_POINTERS,     // 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
);

注解

FSCTL_GET_RETRIEVAL_POINTERS操作检索一个大小可变的数据结构,该结构描述特定文件的磁盘上的分配和位置。 结构描述了虚拟群集编号 (文件或流空间中的 VCN 偏移量) 与卷空间) 内 LCN 偏移量 (逻辑群集编号之间的映射。

NTFS、FAT、exFAT、UDF 和 ReFS 文件系统上的文件或目录操作支持 FSCTL_GET_RETRIEVAL_POINTERS 控制代码。

在支持的文件系统上, FSCTL_GET_RETRIEVAL_POINTERS 操作返回非租户数据的盘区位置。 常驻数据永远不会具有盘区位置。

FSCTL_GET_RETRIEVAL_POINTERS控制代码还支持查找错误群集的备用功能。 若要查询使用 NTFS、FAT 或 exFAT 格式化的卷上不良群集的位置,请使用卷句柄作为 hDevice 参数。 此功能仅在 NTFS、FAT 和 exFAT 上受支持,调用方必须具有 MANAGE_VOLUME_ACCESS 卷权限。

有关重叠 I/O 对此操作的影响,请参阅 DeviceIoControl 主题的“备注”部分。

在Windows 8和Windows Server 2012中,以下技术支持此代码。

技术 支持
服务器消息块 (SMB) 3.0 协议
SMB 3.0 透明故障转移 (TFO)
具有横向扩展文件共享的 SMB 3.0 (SO)
群集共享卷文件系统 (CSV)

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 winioctl.h (包括 Windows.h)

另请参阅