IOCTL_STORAGE_SET_HOTPLUG_INFO IOCTL (ntddstor.h)
Задает конфигурацию горячего модуля указанного устройства. Этот запрос принимает STORAGE_HOTPLUG_INFO структуру в качестве входных данных. Элемент DeviceHotplug структуры STORAGE_HOTPLUG_INFO определяет, какие действия выполняется. Если значение этого элемента ненулевое, для политики удаления устройства в реестре установлено значение ExpectSurpriseRemoval и все уровни кэширования отключены. Если значение DeviceHotplug равно нулю, политика удаления имеет значение ExpectOrderlyRemoval, а кэширование может быть выборочно включено.
Основной код
Входной буфер
Входной буфер.
Длина входного буфера
Parameters.DeviceIoControl.InputBufferLength в расположении стека ввода-вывода указывает размер в байтах буфера параметров, который должен быть больше или равен размеру(STORAGE_HOTPLUG_INFO).
Выходной буфер
Драйвер возвращает данные конфигурации hotplug в структуре STORAGE_HOTPLUG_INFO в буфере в Irp->AssociatedIrp.SystemBuffer.
Длина выходного буфера
Длина структуры STORAGE_HOTPLUG_INFO.
Блок состояния
Поле состояния имеет значение STATUS_SUCCESS или, возможно, STATUS_INFO_LENGTH_MISMATCH, если входной буфер слишком мал. Оно имеет значение STATUS_INVALID_PARAMETER_1, если элемент Size STORAGE_HOTPLUG_INFO не соответствует размеру, ожидаемому драйвером классов для этого устройства. Для него задано значение STATUS_INVALID_PARAMETER_2, если элемент MediaRemoveable имеет значение, отличное от значения, удерживаемого драйвером класса. Он имеет значение STATUS_INVALID_PARAMETER_3, если элемент MediaHotplug имеет значение, отличное от того, которое удерживается драйвером классов, и оно имеет значение STATUS_INVALID_PARAMETER_5, если элемент WriteCacheEnableOverride имеет значение, отличное от того, что содержит драйвер класса.
Требования
Требование | Ценность |
---|---|
заголовка | ntddstor.h (include Ntddstor.h) |