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, определенную в moundev.h, в начале буфера в Irp-AssociatedIrp.SystemBuffer>. Начиная с адреса элемента структуры Имя, драйвер клиента должен вставить предлагаемое постоянное имя.

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

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

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

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

Если значение OutputBufferLength меньше sizeof(MOUNTDEV_SUGGESTED_LINK_NAME), для поля Состояние устанавливается значение STATUS_INVALID_PARAMETER.

Если outputBufferLength меньше общей длины выходных данных, для поля Состояние устанавливается значение STATUS_BUFFER_OVERFLOW, а для поля Information — значение sizeof(MOUNTDEV_SUGGESTED_LINK_NAME).

Комментарии

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

Требования

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

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

MOUNTDEV_SUGGESTED_LINK_NAME