IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME IOCTL (mountdev.h)

装载管理器客户端对此 IOCTL 的支持是可选的。 某些装载管理器客户端可以在系统重启时跟踪其驱动器号,而无需装载管理器的帮助。 此类客户端可以向装载管理器发送建议的驱动器号名称,以响应此 IOCTL。 如果装载管理器的数据库尚未包含客户端卷的永久性驱动器号名称,装载管理器将使用建议的名称。 否则,它会忽略建议,并在其永久性名称数据库中使用驱动器号名称。

驱动器号名称必须包含对象命名空间中符号链接的完整路径,并且必须采用传统的 MS-DOS 语法。 例如,驱动器号“D”必须以以下方式表示:“\DosDevices\D:”。 “???”的替代符号链接路径不能使用 \D:“,也不能使用符号链接的缩写,例如”D:”。

主要代码

IRP_MJ_DEVICE_CONTROL

输出缓冲区

客户端驱动程序必须将 MOUNTDEV_SUGGESTED_LINK_NAME 类型的可变长度结构放置在 Irp-AssociatedIrp.SystemBuffer> 缓冲区的开头,该结构在 moundev.h 中定义。 从结构成员 Name 的地址开始,客户端驱动程序必须插入建议的持久性名称。

输出缓冲区长度

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

状态块

如果操作成功,“ 信息 ”字段将设置为返回的总字节数,并将 “状态” 字段设置为STATUS_SUCCESS。

如果 OutputBufferLength 小于 sizeof (MOUNTDEV_SUGGESTED_LINK_NAME) ,则 “状态” 字段设置为“STATUS_INVALID_PARAMETER”。

如果 OutputBufferLength 小于输出数据的总长度,则 “状态” 字段设置为“STATUS_BUFFER_OVERFLOW”,“ 信息” 字段设置为 size of (MOUNTDEV_SUGGESTED_LINK_NAME) 。

注解

此函数的实现者不得线程同步,也不得将阻止和/或进程间通信 (IPC) 函数调用。

要求

要求
Header mountdev.h (包括 Mountdev.h)

另请参阅

MOUNTDEV_SUGGESTED_LINK_NAME