IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)

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

装载管理器客户端必须支持此 IOCTL。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

无。

输入缓冲区长度

无。

输出缓冲区

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

输出缓冲区长度

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

状态块

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

如果操作成功,则装载管理器客户端必须将 “信息” 字段设置为包含设备名称的以 NULL 结尾的字符串的长度,并将 “状态” 字段设置为STATUS_SUCCESS。

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

注解

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

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

要求

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

另请参阅

MOUNTDEV_NAME