функция обратного вызова HW_UNIT_CONTROL (storport.h)
Подпрограмма HwStorUnitControl драйвера мини-порта вызывается для выполнения синхронных операций для управления состоянием устройства запоминающего устройства.
Синтаксис
HW_UNIT_CONTROL HwUnitControl;
SCSI_UNIT_CONTROL_STATUS HwUnitControl(
[in] PVOID DeviceExtension,
[in] SCSI_UNIT_CONTROL_TYPE ControlType,
[in] PVOID Parameters
)
{...}
Параметры
[in] DeviceExtension
Указатель на единичное место хранения драйвера мини-порта.
[in] ControlType
Значение SCSI_UNIT_CONTROL_TYPE , указывающее операцию управления единицей, где каждый тип элемента управления инициирует действие драйвера мини-порта. Дополнительные сведения см. в разделе SCSI_UNIT_CONTROL_TYPE .
[in] Parameters
Указатель на структуру или значение, содержащее сведения, связанные с ControlType. Все структуры выделяются вызывающим объектом. Дополнительные сведения см. в разделе SCSI_UNIT_CONTROL_TYPE .
Адрес
Адрес единицы, для который указана операция управления.
Возвращаемое значение
В зависимости от типа элемента управления HwStorUnitControl возвращает одно из следующих SCSI_UNIT_CONTROL_STATUS значений:
Код возврата | Описание |
---|---|
ScsiUnitControlSuccess | Драйвер мини-порта успешно завершил запрошенную операцию. |
ScsiUnitControlUnsuccessful | Операция управления единицей не была успешной. |
Комментарии
Storport вызывает HwStorUnitControl мини-порта с типом элемента управления ScsiQuerySupportedControlTypes после инициализации адаптера безопасности, но до первого ввода-вывода. Драйвер мини-порта заполняет структуру SCSI_SUPPORTED_CONTROL_TYPE_LIST в разделе Параметры поддерживаемыми операциями. После возврата HwStorUnitControl из этого вызова драйвер Storport вызывает обратный вызов HwStorAdapterControl драйвера мини-порта только для операций, поддерживаемых мини-портом.
Storport вызывает HwStorUnitControl, чтобы уведомить драйвер мини-порта об изменении устройства единицы, определенного по адресу, или о том, что мини-порт должен выполнить запрос или операцию установки для этого устройства, например, запустить устройство или об обработке операции управления питанием для единицы.
В следующей таблице перечислены текущие irQL и спин-блокировка, полученные при выдаче типа элемента управления.
Тип элемента управления | IRQL | Спин-блокировка |
---|---|---|
ScsiQuerySupportedControlTypes | PASSIVE_LEVEL | None |
ScsiUnitUsage | PASSIVE_LEVEL | None |
ScsiUnitStart | PASSIVE_LEVEL | None |
ScsiUnitPower | DISPATCH_LEVEL | None |
ScsiUnitPoFxPowerInfo | PASSIVE_LEVEL | None |
ScsiUnitPoFxPowerRequired | DISPATCH_LEVEL | None |
ScsiUnitPoFxPowerActive | DISPATCH_LEVEL | None |
ScsiUnitPoFxPowerSetFState | DISPATCH_LEVEL | None |
ScsiUnitPoFxPowerControl | DISPATCH_LEVEL | None |
ScsiUnitRemove | PASSIVE_LEVEL | None |
ScsiUnitSurpriseRemoval | PASSIVE_LEVEL | None |
ScsiUnitRichDescription | PASSIVE_LEVEL | None |
ScsiUnitQueryBusType | PASSIVE_LEVEL | None |
ScsiUnitQueryFruId | PASSIVE_LEVEL | None |
Имя HwStorUnitControl — это просто заполнитель. Фактический прототип этой подпрограммы определен в storport.h следующим образом:
typedef
SCSI_UNIT_CONTROL_STATUS
HW_UNIT_CONTROL (
_In_ PVOID DeviceExtension,
_In_ SCSI_UNIT_CONTROL_TYPE ControlType,
_In_ PVOID Parameters
);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 |
Целевая платформа | Универсальное |
Верхняя часть | storport.h (включая Storport.h) |
IRQL | См. заметки. |