IOCTL_VOLUME_PHYSICAL_TO_LOGICAL IOCTL (ntddvol.h)
返回与物理磁盘编号和物理偏移量对应的逻辑偏移量。
卷管理器支持此 IOCTL,如所有类型的基本卷和动态卷所述。
主要代码
输入缓冲区
调用方在缓冲区开头的 Irp-AssociatedIrp.SystemBuffer> 处插入包含物理偏移量和物理磁盘编号的 VOLUME_PHYSICAL_OFFSET 结构。
输入缓冲区长度
IRP 的 I/O 堆栈位置中的 Parameters.DeviceIoControl.InputBufferLength 指示输入缓冲区的大小(以字节为单位),该大小必须大于或等于 size of (VOLUME_PHYSICAL_OFFSET) 的值。输出缓冲区
卷管理器返回缓冲区开头 Irp-AssociatedIrp.SystemBuffer> 处VOLUME_LOGICAL_OFFSET结构中的逻辑偏移量。
输出缓冲区长度
IRP 的 I/O 堆栈位置中的 Parameters.DeviceIoControl.OutputBufferLength 指示输出缓冲区的大小(以字节为单位),该大小必须大于或等于 size of (VOLUME_LOGICAL_OFFSET) 的值。状态块
如果操作成功,则 Status 成员设置为 STATUS_SUCCESS。
如果输入或输出缓冲区太小,卷管理器会将 Status 成员设置为STATUS_BUFFER_TOO_SMALL。 如果数据在输出缓冲区中返回,但缓冲区太小而无法接收所有数据,则卷管理器会将 Status 成员设置为STATUS_BUFFER_OVERFLOW。 信息成员设置为调用方提供的输出缓冲区的大小。
如果给定的物理磁盘编号和物理偏移量不属于卷,或者它们取自 RAID 奇偶校验数据,则此调用将失败并STATUS_INVALID_PARAMETER。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows XP 开始可用。 |
标头 | ntddvol.h (包括 Ntddvol.h) |