IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)

Поддержка этого IOCTL клиентами диспетчера подключения является обязательной. После получения этого IOCTL драйвер клиента должен указать (неперсистентное) имя устройства (или целевого объекта) для тома. Диспетчер подключения использует имя устройства , возвращенное клиентом, в качестве целевого объекта символьной ссылки. Примером имени устройства может быть "\Device\HarddiskVolume1".

Основной код

IRP_MJ_DEVICE_CONTROL

Выходной буфер

Клиент диспетчера подключений возвращает структуру переменной длины типа MOUNTDEV_NAME, определенную в Mountmgr.h, в начале буфера в Irp-AssociatedIrp.SystemBuffer>. Имя устройства должно быть вставлено по адресу, на который указывает элемент Name этой структуры.

Длина выходного буфера

Parameters.DeviceIoControl.OutputBufferLength в расположении стека ввода-вывода IRP указывает размер выходного буфера в байтах, который должен быть больше или равен размеру sizeof(MOUNTDEV_NAME).

Блок состояния

Для поля Information задано значение FIELD_OFFSET(MOUNTDEV_NAME, Name) + output-NameLength> или output-NameLength> + sizeof(USHORT), где выходные данные указывают на буфер в Irp-AssociatedIrp.SystemBuffer>.

Если операция выполнена успешно, клиент диспетчера подключений должен задать для поля Сведения длину строки, завершающейся значением NULL, содержащей имя устройства, и поле Состояние для STATUS_SUCCESS.

Если выходной буфер слишком мал для хранения имени устройства, клиент диспетчера подключений должен задать для поля Сведения значение sizeof(MOUNTDEV_NAME), а для поля Состояние — значение STATUS_BUFFER_OVERFLOW. Кроме того, клиент диспетчера подключений заполняет элемент NameLength структуры MOUNTDEV_NAME .

Комментарии

Рекомендуется, чтобы средство реализации не синхронизировало потоки и не должно выполнять блокирующие вызовы функций и (или) межпроцессного взаимодействия (IPC).

Требования

Требование Значение
Заголовок mountmgr.h (включая Mountmgr.h)

См. также раздел

MOUNTDEV_NAME