IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)
收到此 IOCTL 后,客户端驱动程序必须提供卷的(非持久性)设备(或目标)名称。 装载管理器使用客户端 返回 设备名称作为符号链接的目标。 设备名称的示例为“\Device\HarddiskVolume1”。
装载管理器客户端对此 IOCTL 的支持是必需的。
主要代码
输入缓冲区
没有。
输入缓冲区长度
没有。
输出缓冲区
装载管理器客户端在 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) |