Поделиться через


IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)

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

Поддержка этого IOCTL клиентами диспетчера подключений является обязательной.

Основной код

IRP_MJ_DEVICE_CONTROL

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

Никакой.

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

Никакой.

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

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

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

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

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

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

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

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

Замечания

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

Дополнительные сведения см. в поддержке запросов диспетчера подключений вдрайвера класса хранилища.

Требования

Требование Ценность
заголовка mountmgr.h (include Mountmgr.h)

См. также

MOUNTDEV_NAME