IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME IOCTL (mountdev.h)
Поддержка этого IOCTL клиентами диспетчера подключений является необязательной. Некоторые клиенты диспетчера подключений могут отслеживать буквы дисков во время перезагрузки системы без помощи диспетчера подключения. Такие клиенты могут отправить предложенное имя диска диспетчеру подключений в ответ на этот IOCTL. Диспетчер подключения использует предлагаемое имя, если база данных диспетчера подключений еще не содержит имя постоянного диска для тома клиента. В противном случае он игнорирует предложение и использует имя буквы диска в базе данных постоянных имен.
Имена букв дисков должны содержать полный путь к символьной ссылке в пространстве имен объектов и должны иметь традиционный синтаксис MS-DOS. Например, буква диска "D" должна быть представлена следующим образом: "\DosDevices\D:". Альтернативный путь символьной ссылки "?? \D:" нельзя использовать, а также не могут использоваться сокращения символьной ссылки, например "D:".
Основной код
Выходной буфер
Драйвер клиента должен поместить структуру переменной длины типа 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) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по