IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS IOCTL (ntddvol.h)
返回一个或多个磁盘上的卷的物理位置。 盘区最初按创建顺序存储,但在灾难恢复期间重新镜像、拆分或中断镜像或执行的作可能会影响磁盘盘区的顺序。
主要代码
输入缓冲区
没有。
输入缓冲区长度
没有。
输出缓冲区
驱动程序在 Irp->AssociatedIrp.SystemBuffer的缓冲区中返回VOLUME_DISK_EXTENTS结构,该结构必须至少 sizeof(VOLUME_DISK_EXTENTS)。
输出缓冲区长度
VOLUME_DISK_EXTENTS结构的长度。
状态块
驱动程序设置 Irp->IoStatus.Information 和 状态 字段,如下所示:
- 如果 Irp->AssociatedIrp.SystemBuffer< 的缓冲区大小为(VOLUME_DISK_EXTENTS),驱动程序会将 Irp->IoStatus.Information 设置为零并返回STATUS_INVALID_PARAMETER。
- 如果 Irp->AssociatedIrp.SystemBuffer 的缓冲区至少 大小(VOLUME_DISK_EXTENTS),但返回所有数据都太小,驱动程序会将 Irp->IoStatus.Information 设置为 sizeof(VOLUME_DISK_EXTENTS),并将 状态 设置为STATUS_BUFFER_OVERFLOW。
- 如果 Irp->AssociatedIrp.SystemBuffer 的缓冲区足够大,以便返回所有数据, 驱动程序将 Irp->IoStatus.Information 设置为 sizeof(VOLUME_DISK_EXTENTS) + (NumberOfDiskExtents - 1) * sizeof(DISK_EXTENT) 并将 状态 设置为STATUS_SUCCESS。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Microsoft Windows 2000 中适用于固定磁盘上的卷,但不适用于可移动媒体上的卷。 可用于 Microsoft Windows 2000 SP4 和 Windows XP SP1 中的可移动媒体。 |
标头 | ntddvol.h (包括 Ntddvol.h) |