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) |