IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)

收到此 IOCTL 后,客户端驱动程序必须提供卷的(非持久性)设备(或目标)名称。 装载管理器使用客户端 返回 设备名称作为符号链接的目标。 设备名称的示例为“\Device\HarddiskVolume1”。

装载管理器客户端对此 IOCTL 的支持是必需的。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

没有。

输入缓冲区长度

没有。

输出缓冲区

装载管理器客户端在 Irp->AssociatedIrp.SystemBuffer的缓冲区开头返回类型 MOUNTDEV_NAME 的可变长度结构。 必须在 名称 此结构的成员指向的地址处插入设备名称。

输出缓冲区长度

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

状态块

信息 字段设置为 FIELD_OFFSET(MOUNTDEV_NAME,Name) + output->NameLength,或者,输出>NameLength + sizeof(USHORT),其中输出指向 Irp->AssociatedIrp.SystemBuffer的缓冲区。

如果作成功,装载管理器客户端必须将 信息 字段设置为包含设备名称和 状态 字段的长度,以STATUS_SUCCESS。

如果输出缓冲区太小而无法容纳设备名称,装载管理器客户端必须将 信息 字段设置为 sizeof(MOUNTDEV_NAME),并将 “状态” 字段设置为STATUS_BUFFER_OVERFLOW。 此外,装载管理器客户端将填充 MOUNTDEV_NAME 结构的 NameLength 成员。

言论

最佳做法是,实现者不得线程同步,不得进行阻塞和/或进程间通信(IPC)函数调用。

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

要求

要求 价值
标头 mountmgr.h (包括 Mountmgr.h)

另请参阅

MOUNTDEV_NAME