функция обратного вызова 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 с типом управления ScsiQuerySupportedControlType s после инициализации HBA, но до первого ввода-вывода. Минипорт-драйвер заполняет структуру SCSI_SUPPORTED_CONTROL_TYPE_LIST по параметрам с поддерживаемыми операциями. После того как HwStorUnitControl возвращается из этого вызова, драйвер Storport вызывает HwStorAdapterControl обратного вызова для операций, поддерживаемых минипортом.
Storport вызывает HwStorUnitControl, чтобы уведомить минипорт-драйвер изменения на устройство единицы, определяемое адресом, или что минипорт должен выполнить запрос или установить операцию на этом уроке, например запуск единицы или обработку операции управления питанием для единицы.
В следующей таблице перечислены текущие irQL и спинблокировка, полученные при выпуске типа элемента управления.
Тип элемента управления | IRQL | Блокировка спина |
---|---|---|
ScsiQuerySupportedControlTypes | PASSIVE_LEVEL | Никакой |
ScsiUnitUsage | PASSIVE_LEVEL | Никакой |
ScsiUnitStart | PASSIVE_LEVEL | Никакой |
ScsiUnitPower | DISPATCH_LEVEL | Никакой |
ScsiUnitPoFxPowerInfo | PASSIVE_LEVEL | Никакой |
ScsiUnitPoFxPowerRequired | DISPATCH_LEVEL | Никакой |
ScsiUnitPoFxPowerActive | DISPATCH_LEVEL | Никакой |
ScsiUnitPoFxPowerSetFState | DISPATCH_LEVEL | Никакой |
ScsiUnitPoFxPowerControl | DISPATCH_LEVEL | Никакой |
ScsiUnitRemove | PASSIVE_LEVEL | Никакой |
ScsiUnitSurpriseRemoval | PASSIVE_LEVEL | Никакой |
ScsiUnitRichDescription | PASSIVE_LEVEL | Никакой |
ScsiUnitQueryBusType | PASSIVE_LEVEL | Никакой |
ScsiUnitQueryFruId | PASSIVE_LEVEL | Никакой |
Имя 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 (include Storport.h) |
IRQL | См. примечания. |