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


IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER IOCTL (mountmgr.h)

Этот IOCTL проверяет, содержит ли данный том букву диска. Если у него уже есть буква диска или в томе есть специальная запись в базе данных диспетчера подключений, указывающая, что буква диска не требуется, эта подпрограмма возвращает текущую букву диска (если она есть) и ничего не делает. Если у заданного тома нет буквы диска и нет специальной записи в базе данных диспетчера подключений, указывающей, что ему не требуется буква диска, тому назначается следующая доступная буква диска. Если имя устройства тома начинается с "\Device\Floppy", диспетчер подключения проверит доступные буквы диска, начинающиеся с буквы "A". Если имя тома начинается с "\Device\CdRom", диспетчер подключения проверит доступные буквы диска, начинающийся с буквы диска "D". Во всех остальных случаях диспетчер подключения начинается с буквы диска "C".

Основной код

IRP_MJ_DEVICE_CONTROL

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

Клиент диспетчера подключений инициализирует структуру MOUNTMGR_DRIVE_LETTER_TARGET в начале буфера в Irp-AssociatedIrp.SystemBuffer>. Клиент должен вставить имя целевого тома по адресу, указанному элементом DeviceName[] этой структуры. Имя целевого тома — это имя объекта устройства, не связанного с томом (например, "\Device\HarddiskVolume1").

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

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

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

Диспетчер подключения вставляет текущую букву диска или только что назначенную букву диска (см. предыдущее обсуждение) в структуру MOUNTMGR_DRIVE_LETTER_INFORMATION в начале буфера в Irp-AssociatedIrp.SystemBuffer>.

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

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

Буфер входных и выходных данных

Н/Д

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

Н/Д

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

Если операция выполнена успешно, для поля Состояние задано значение STATUS_SUCCESS.

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

Комментарии

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

Требования

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

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

MOUNTMGR_DRIVE_LETTER_TARGET