Общие коды элементов управления вводом-выводом хранилища
Устройствам хранения разных типов часто требуются одни и те же службы. Вместо того, чтобы дублировать запросы 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 для установки порогового значения температуры запоминающего устройства (при поддержке оборудования). |