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


Общие коды элементов управления вводом-выводом хранилища

Устройствам хранения разных типов часто требуются одни и те же службы. Вместо того, чтобы дублировать запросы IOCTL, которые предоставляют эти службы для каждого типа устройств, в этом разделе определяется набор стандартных служб и сопутствующих кодов управления устройствами, которые часто требуются устройствам хранения. Коды элементов управления вводом-выводом, определенные здесь, имеют форму IOCTL_STORAGE_XXX и заменяют коды элементов управления IOCTL_DeviceType_XXX , где DeviceType — DISK, TAPE или CDROM. Например, IOCTL_STORAGE_RESERVE заменяет IOCTL_DISK_RESERVE, IOCTL_TAPE_RESERVE и IOCTL_CDROM_RESERVE. Коды элемента управления IOCTL_STORAGE_XXX имеют такие же значения для кода функции, метода передачи и требуемого доступа, как и предыдущие коды диска, ленты и компакт-диска. Единственным отличием является тип устройства.

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

IOCTL Описание
IOCTL_STORAGE_BREAK_RESERVATION Прерывание резервирования диска.
IOCTL_STORAGE_CHECK_VERIFY Определяет, изменился ли носитель на устройстве со съемным носителем, открытом вызывающей стороной для доступа на чтение или запись.
IOCTL_STORAGE_CHECK_VERIFY2 Определяет, изменился ли носитель на устройстве со съемным носителем. Вызывающий объект открылся с FILE_READ_ATTRIBUTES.
IOCTL_STORAGE_DEVICE_POWER_CAP Задает максимальный уровень потребления рабочей энергии для запоминаемого устройства.
IOCTL_STORAGE_EJECT_MEDIA Вызывает извлечение носителя устройством, если устройство поддерживает возможности извлечения.
IOCTL_STORAGE_EJECTION_CONTROL Блокирует устройство, чтобы предотвратить удаление носителя.
IOCTL_STORAGE_FIND_NEW_DEVICES Определяет, подключено ли другое устройство, которое поддерживает драйвер, к шине ввода-вывода либо с момента загрузки системы, либо с момента последней обработки этого запроса драйвером.
IOCTL_STORAGE_FIRMWARE_ACTIVATE Активирует образ встроенного ПО на запоминающее устройство.
IOCTL_STORAGE_FIRMWARE_DOWNLOAD Загружает образ встроенного ПО на запоминающее устройство, но не активирует его.
IOCTL_STORAGE_FIRMWARE_GET_INFO Запрашивает устройство хранения для получения подробных сведений о встроенном ПО.
IOCTL_STORAGE_GET_DEVICE_NUMBER Возвращает структуру STORAGE_DEVICE_NUMBER , содержащую тип FILE_DEVICE_XXX, номер устройства и номер секционирования, назначенный устройству драйвером при запуске устройства.
IOCTL_STORAGE_GET_HOTPLUG_INFO Извлекает конфигурацию горячего модуля указанного устройства.
IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES Запрос IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES отправляется в драйвер класса хранения для определения доступных и используемых ресурсов сопоставления на устройстве хранения.
IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER Запрашивает у usb-драйвера универсального родительского драйвера серийный номер USB-устройства.
IOCTL_STORAGE_GET_MEDIA_TYPES Возвращает сведения о геометрии дисководов гибких дисков.
IOCTL_STORAGE_GET_MEDIA_TYPES_EX Возвращает сведения о типах носителей, поддерживаемых устройством.
IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS управляющего кода запрашивает и возвращает состояние физического элемента с устройства.
IOCTL_STORAGE_LOAD_MEDIA Вызывает загрузку мультимедиа на устройстве, которое вызывающий объект открыл для доступа на чтение или запись.
IOCTL_STORAGE_LOAD_MEDIA2 Вызывает загрузку мультимедиа на устройстве, которое вызывающий объект открыл с помощью FILE_READ_ATTRIBUTES.
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES Этот запрос IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES используется для отправки запроса атрибутов набора данных управления на запоминающее устройство.
IOCTL_STORAGE_MCN_CONTROL Временно включает или отключает доставку пользовательских событий PnP GUID_IO_MEDIA_ARRIVAL и GUID_IO_MEDIA_REMOVAL на съемных носителях.
IOCTL_STORAGE_MEDIA_REMOVAL Блокирует устройство, чтобы предотвратить удаление носителя.
IOCTL_STORAGE_PERSISTENT_RESERVE_IN Универсальный драйвер класса хранения (classpnp.sys) предоставляет интерфейс управления вводом-выводом (IOCTL) для выдачи команд постоянного резервирования в.
IOCTL_STORAGE_PERSISTENT_RESERVE_OUT Универсальный драйвер класса хранения (classpnp.sys) предоставляет интерфейс управления вводом-выводом (IOCTL) для выдачи команд постоянного резервирования.
IOCTL_STORAGE_PREDICT_FAILURE Опросы для прогнозирования сбоя устройства.
IOCTL_STORAGE_PROTOCOL_COMMAND Драйвер может использовать IOCTL_STORAGE_PROTOCOL_COMMAND для передачи команд поставщика на запоминающее устройство.
IOCTL_STORAGE_QUERY_PROPERTY Драйвер может использовать IOCTL_STORAGE_QUERY_PROPERTY для возврата свойств запоминающего устройства или адаптера.
IOCTL_STORAGE_READ_CAPACITY Запрос IOCTL_STORAGE_READ_CAPACITY возвращает сведения о емкости чтения для целевого запоминающего устройства.
IOCTL_STORAGE_REINITIALIZE_MEDIA Драйвер может использовать код элемента управления IOCTL_STORAGE_REINITIALIZE_MEDIA для повторной инициализации или удаления устройства.
IOCTL_STORAGE_RELEASE Освобождает устройство, ранее зарезервированное для монопольного использования вызывающей стороны в шине, которая поддерживает несколько инициаторов и концепцию резервирования устройства, например шины SCSI.
IOCTL_STORAGE_RESERVE Запрашивает устройство для монопольного использования вызывающего абонента в шине, поддерживающей несколько инициаторов, и концепцию резервирования устройства, например шины SCSI.
IOCTL_STORAGE_RESET_BUS Сбрасывает шину ввода-вывода и, косвенно, каждое устройство в шине.
IOCTL_STORAGE_RESET_DEVICE По возможности сбрасывает запоминающее устройство, отличное от SCSI, не затрагивая другие устройства в шине.
IOCTL_STORAGE_SET_HOTPLUG_INFO Задает конфигурацию горячего устройства для указанного устройства.
IOCTL_STORAGE_SET_PROPERTY Указывает, является ли запрос на изменение свойства успешным или вызывает ошибку.
IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD Драйвер может использовать IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD для установки порогового значения температуры запоминающего устройства (при поддержке оборудования).