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


функция обратного вызова 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 См. примечания.

См. также

HwStorAdapterControl

SCSI_SUPPORTED_CONTROL_TYPE_LIST

SCSI_UNIT_CONTROL_TYPE