IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER IOCTL (mountmgr.h)

此 IOCTL 检查给定卷是否具有驱动器号。 如果卷已具有驱动器号,或者卷具有特殊的装载管理器数据库条目,指示它不需要驱动器号,则此例程返回当前驱动器号 ((如果有一个) 且不执行任何操作)。 如果给定卷没有驱动器号,并且没有指示它不需要驱动器号的特殊装载管理器数据库条目,则会将下一个可用的驱动器号分配给该卷。 如果卷的非持久性设备名称以“\Device\Floppy”开头,装载管理器将检查以字母“A”开头的可用驱动器号。如果卷名以“\Device\CdRom”开头,装载管理器将检查以驱动器号“D”开头的可用驱动器号。在所有其他情况下,装载管理器以驱动器号“C”开头。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

装载管理器客户端在 Irp-AssociatedIrp.SystemBuffer> 的缓冲区开头初始化MOUNTMGR_DRIVE_LETTER_TARGET结构。 客户端必须在此结构的 DeviceName[] 成员指向的地址处插入目标卷的名称。 目标卷名称是与卷关联的非持久性设备对象的名称, (例如“\Device\HarddiskVolume1”) 。

输入缓冲区长度

IRP 的 I/O 堆栈位置中的 Parameters.DeviceIoControl.InputBufferLength 指示输入缓冲区的大小(以字节为单位),该大小必须大于或等于 sizeof(MOUNTMGR_DRIVE_LETTER_TARGET)

输出缓冲区

装载管理器插入当前驱动器号或新分配的驱动器号, (在 Irp-AssociatedIrp.SystemBuffer> 缓冲区开头的 MOUNTMGR_DRIVE_LETTER_INFORMATION 结构中看到先前的讨论 )

输出缓冲区长度

IRP 的 I/O 堆栈位置中的 Parameters.DeviceIoControl.OutputBufferLength 指示输出缓冲区的大小(以字节为单位),该大小必须大于或等于 sizeof(MOUNTMGR_DRIVE_LETTER_INFORMATION)

输入/输出缓冲区

N/A

输入/输出缓冲区长度

N/A

状态块

如果操作成功,则 “状态” 字段设置为STATUS_SUCCESS。

如果 InputBufferLength 小于 sizeof(MOUNTMGR_DRIVE_LETTER_TARGET)OutputBufferLength 小于 sizeof(MOUNTMGR_DRIVE_LETTER_INFORMATION),则 状态 字段设置为 STATUS_INVALID_PARAMETER。

注解

有关详细信息,请参阅 支持存储类驱动程序中的装载管理器请求

要求

要求
Header mountmgr.h (包括 Mountmgr.h)

另请参阅

MOUNTMGR_DRIVE_LETTER_TARGET