перечисление SCSI_ADAPTER_CONTROL_TYPE (storport.h)

Перечисление SCSI_ADAPTER_CONTROL_TYPE содержит операции управления адаптером, где каждый тип элемента управления инициирует действие с адаптером с помощью драйвера мини-порта. Storport указывает тип элемента управления при вызове подпрограммы HwStorAdapterControl мини-порта.

Синтаксис

typedef enum _SCSI_ADAPTER_CONTROL_TYPE {
  ScsiQuerySupportedControlTypes,
  ScsiStopAdapter,
  ScsiRestartAdapter,
  ScsiSetBootConfig,
  ScsiSetRunningConfig,
  ScsiPowerSettingNotification,
  ScsiAdapterPower,
  ScsiAdapterPoFxPowerRequired,
  ScsiAdapterPoFxPowerActive,
  ScsiAdapterPoFxPowerSetFState,
  ScsiAdapterPoFxPowerControl,
  ScsiAdapterPrepareForBusReScan,
  ScsiAdapterSystemPowerHints,
  ScsiAdapterFilterResourceRequirements,
  ScsiAdapterPoFxMaxOperationalPower,
  ScsiAdapterPoFxSetPerfState,
  ScsiAdapterSurpriseRemoval,
  ScsiAdapterSerialNumber,
  ScsiAdapterCryptoOperation,
  ScsiAdapterQueryFruId,
  ScsiAdapterSetEventLogging,
  ScsiAdapterReportInternalData,
  ScsiAdapterResetBusSynchronous,
  ScsiAdapterPostHwInitialize,
  ScsiAdapterPrepareEarlyDumpData,
  ScsiAdapterRestoreEarlyDumpData,
  ScsiAdapterControlMax,
  MakeAdapterControlTypeSizeOfUlong
} SCSI_ADAPTER_CONTROL_TYPE, *PSCSI_ADAPTER_CONTROL_TYPE;

Константы

 
ScsiQuerySupportedControlTypes
Сообщает об операциях управления адаптером, реализованных драйвером мини-порта. Мини-порт должен поддерживать этот тип элемента управления.

Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления и параметрами , указывающими на SCSI_SUPPORTED_CONTROL_TYPE_LIST структуру после инициализации HBA, но до первого ввода-вывода.

Драйвер минипорта заполняет структуру SCSI_SUPPORTED_CONTROL_TYPE_LIST поддерживаемыми операциями. После возврата HwStorAdapterControl из этого вызова драйвер Storport вызывает HwStorAdapterControl драйвера мини-порта только для операций, поддерживаемых мини-портом.
ScsiStopAdapter
Завершает работу HBA. Мини-порт должен поддерживать этот тип элемента управления.

Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления (и для параметров задано значение NULL), когда адаптер HBA был удален из системы, остановлен для перенастройки ресурсов, завершен для управления питанием или иным образом перенастроен или отключен. Storport гарантирует отсутствие незавершенных запросов и отправляет SRB_FUNCTION_FLUSH запрос драйверу мини-порта перед вызовом этой процедуры.

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

Драйвер мини-порта не должен освобождать свои ресурсы при остановке адаптера шины. Если HBA был удален или остановлен для перенастройки ресурса PnP, драйвер Storport освобождает ресурсы от имени драйвера мини-порта. Если адаптер HBA завершает работу для управления питанием, ресурсы драйвера мини-порта сохраняются, чтобы его можно было перезапустить.

После того как HwStorAdapterControl возвратится из остановки HBA, все структуры данных, выделенные от имени драйвера мини-порта для адаптера шины, должны считаться недействительными до тех пор, пока драйвер мини-порта не будет предложено перезапустить.

Обратите внимание, что Storport может вызвать HwStorAdapterControl для остановки адаптера после физического удаления адаптера из системы, поэтому подпрограмма HwStorAdapterControl драйвера мини-порта не должна выполнять никаких операций, требующих физического наличия адаптера безопасности во время остановки HBA.

Драйвер мини-порта не вызывается повторно для HBA, пока диспетчер PnP не запросит запуск адаптера. в этом случае драйвер Storport (повторно)инициализируется путем вызова своих подпрограмм HwStorAdapterControl и HwStorInitialize , или адаптер HBA, остановленный для управления питанием, в этом случае драйвер Storport вызывает подпрограмму HwStorAdapterControl драйвера мини-порта с помощью ScsiRestartAdapterAdapter или, если драйвер мини-порта не реализует этот тип элемента управления, повторяет последовательность инициализации для адаптера шины.
ScsiRestartAdapter
Повторно инициализирует адаптер шины. Мини-порт должен поддерживать этот тип элемента управления.

Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления (а для параметров задано значение NULL), чтобы включить адаптер HBA, который был выключен для управления питанием. Все ресурсы, ранее назначенные драйверу мини-порта, по-прежнему доступны, а расширения его устройства и логические модули, если таковые имеются, остаются без изменений.

Драйвер мини-порта выполняет те же операции, что и в его подпрограмме HwStorInitialize , такие как настройка регистров HBA и его начальное состояние, если таковые есть.

Драйвер мини-порта не должен вызывать подпрограммы, которые могут вызываться только из HwStorFindAdapter или HwStorAdapterControl , если тип элемента управления — ScsiSetRunningConfig, например StorPortGetBusData и StorPortSetBusDataByOffset. Если драйвер мини-порта должен вызвать такие подпрограммы для перезапуска своего адаптера безопасности, он также должен реализовать ScsiSetRunningConfig.

Если драйвер мини-порта не реализует ScsiRestartAdapter, драйвер Storport вызывает подпрограммы HwStorFindAdapter и HwStorInitialize драйвера мини-порта. Тем не менее, поскольку такие процедуры могут делать работу по обнаружению ненужных при перезапуске адаптера безопасности, такой драйвер мини-порта не будет работать так быстро, как драйвер минипорта, который реализует ScsiRestartAdapter.
ScsiSetBootConfig
Восстанавливает все параметры на адаптере шины, которые может потребоваться перезагрузить BIOS. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления (а для параметров задано значение NULL) после вызова этой процедуры с помощью ScsiStopAdapter.

Драйвер мини-порта должен реализовать ScsiSetBootConfig , если он должен вызвать StorPortGetBusData или StorPortSetBusDataByOffset , прежде чем система сможет перезагрузиться.
ScsiSetRunningConfig
Восстанавливает все параметры на адаптере шины, которые могут потребоваться драйверу мини-порта для управления адаптером шины во время работы системы. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления (а для параметров задано значение NULL), прежде чем вызывать эту подпрограмму с помощью ScsiRestartAdapter , если драйвер miniport реализует этот тип элемента управления.

Прерывание адаптера шины еще не подключено, когда драйвер Storport выполняет этот вызов, поэтому драйвер мини-порта должен позаботиться о том, чтобы не создать прерывание.

Драйвер мини-порта должен реализовать ScsiSetRunningConfig, если ему необходимо вызвать StorPortGetBusData или StorPortSetBusDataByOffset , чтобы восстановить соответствующую запущенную конфигурацию в HBA перед перезапуском.
ScsiPowerSettingNotification
Уведомление об изменении зарегистрированного параметра питания. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления и параметрами , указывающими на STOR_POWER_SETTING_INFO структуру при изменении параметров питания. Минипорты регистрируются для уведомлений о настройке питания, вызывая StorPortSetPowerSettingNotificationGuids со списком GUID, представляющих интересующие события изменения питания. Этот тип элемента управления допустим в Windows 8 и более поздних версиях.
ScsiAdapterPower
Сообщает о состоянии включения или выключения адаптера. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления и параметрами , указывающими на структуру STOR_ADAPTER_CONTROL_POWER . Если мини-порт поддерживает этот тип элемента управления, он не получит блок запросов хранилища с SRB_FUNCTION_POWER а HwStorAdapterControl не вызывается с типом элемента управления ScsiStopAdapter . Этот тип элемента управления допустим в Windows 8 и более поздних версиях.
ScsiAdapterPoFxPowerRequired
Уведомляет мини-порт, требуется ли питание для компонента адаптера. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления и параметрами, указывающими на значение BOOLEAN, которое имеет значение TRUE, если компонент адаптера требует питания; в противном случае — FALSE. Этот тип элемента управления допустим в Windows 8 и более поздних версиях.
ScsiAdapterPoFxPowerActive
Уведомляет мини-порт о том, является ли компонент адаптера активным или неактивным. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления и параметрами , указывающими на структуру STOR_POFX_ACTIVE_CONTEXT . Этот тип элемента управления допустим в Windows 8 и более поздних версиях.
ScsiAdapterPoFxPowerSetFState
Уведомляет мини-порт о том, чтобы установить для компонента адаптера заданное F-состояние. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления и параметрами , указывающими наSTOR_POFX_FSTATE_CONTEXT структуру. Этот тип элемента управления допустим в Windows 8 и более поздних версиях.
ScsiAdapterPoFxPowerControl
Запрашивает выполнение минипортом частной операции управления питанием, инициированной для адаптера подключаемым модулем питания (PEP). Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления и параметрами , указывающими на STOR_POFX_POWER_CONTROL структуру. Этот тип элемента управления допустим в Windows 8 и более поздних версиях.
ScsiAdapterPrepareForBusReScan
Уведомляет мини-порт о необходимости подготовки адаптера к перечислению шины. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления (а для параметров задано значение NULL). Мини-порт должен включить адаптер и все подключенные устройства, чтобы позволить операции перечисления шины найти устройства. Этот тип элемента управления допустим в Windows 8 и более поздних версиях.
ScsiAdapterSystemPowerHints
Предоставляет системные указания по энергопотреблению для мини-порта. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления и параметрами , указывающими на STOR_SYSTEM_POWER_HINTS структуру. Этот тип элемента управления допустим в Windows 8 и более поздних версиях.
ScsiAdapterFilterResourceRequirements
Фильтрует необходимые ресурсы для адаптера. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления IRP_MN_FILTER_RESOURCE_REQUIREMENTS и параметрами , указывающими на структуру STOR_FILTER_RESOURCE_REQUIREMENTS , когда Storport обрабатывает запрос, а для miniport установлен флаг STOR_FEATURE_ADAPTER_CONTROL_PRE_FINDADAPTER в поле FeatureSupportHW_INITIALIZATION_DATA. Обратите внимание, что DeviceExtension , переданное для этого типа элемента управления, будет не инициализировано.

Драйвер мини-порта должен изменить или уменьшить ресурсы, описанные в буфере, с помощью структуры STOR_FILTER_RESOURCE_REQUIREMENTS . Этот тип элемента управления допустим в Windows 8.1 и более поздних версиях.
ScsiAdapterPoFxMaxOperationalPower
Сообщает максимальное значение рабочей мощности для мини-порта. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления и параметрами , указывающими на структуру STOR_MAX_OPERATIONAL_POWER . Чтобы получить этот элемент управления, мини-порт должен ранее вызывать StorPortPoFxSetPerfState , чтобы зарегистрировать набор производительности с помощью PStateType = StorPoFxPerfStateTypeDiscrete и Count> 1.

Поле Значение в каждом состоянии мощности (P-State) должно представлять максимальный уровень мощности, относительный по отношению к другим P-штатам и который будет находиться в диапазоне максимальных уровней мощности, сообщаемых состояниями P-порта включительно. Мини-порт должен убедиться, что он выбирает состояние питания, максимальное энергопотребление которого меньше или равно значению, указанному в этом параметре.
ScsiAdapterPoFxSetPerfState
Информирует минипорт о состоянии перехода P-состояния, запрошенного вызовом StorPortPoFxSetPerfState. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления и параметрами , указывающими на структуру STOR_POFX_PERF_STATE_CONTEXT .

Если мини-порту необходимо инициировать переход физического состояния питания, перед этим ему следует дождаться обратного вызова HwStorAdapterControl . То есть мини-порт должен сначала вызвать StorPortPoFxSetPerfState , чтобы сообщить о своем намерении выполнить переход на P-состояние. Затем Storport вызовет обратный вызов HwStorAdapterControl мини-порта, после чего он может выполнять любые действия, связанные с переходом P-состояния (например, изменение физического состояния устройства).
ScsiAdapterSurpriseRemoval
Уведомляет мини-порт о том, что устройство было неожиданно удалено. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления (а для параметров задано значение NULL).
ScsiAdapterSerialNumber
Запрашивает, чтобы мини-порт извлек серийный номер адаптера. Драйвер Storport вызывает HwStorAdapterControl с этим типом элемента управления и параметрами , указывающими на STOR_SERIAL_NUMBER структуру.
ScsiAdapterCryptoOperation
Зарезервировано для системного использования. Уведомляет мини-порт о выполнении криптографической операции. Storport вызывает HwStorAdapterControl вместе с ним и Parameters, указывающие на STOR_CRYPTO_OPERATION.
ScsiAdapterQueryFruId
Доступно начиная с Windows 10 версии 21H1. Запрашивает идентификатор блока замены сбоя (FRU) адаптера. Storport вызывает HwStorAdapterControl вместе с ним и Parameters , указывающие на структуру STOR_FRU_ID_DESCRIPTION при обработке [IOCTL_STORAGE_QUERY_PROPERTY]ni-ntddstor-ioctl_storage_query_property.md) с идентификатором свойства StorageFruIdProperty .

Storport отправляет этот элемент управления, только если минипорт ранее также назывался StorPortSetFeatureList в подпрограмме HwFindAdapter с указанным параметром StorportFeatureFruIdAdapterControl .
ScsiAdapterSetEventLogging
Доступно начиная с Windows 10 версии 21H1. Уведомляет мини-порт о том, включен или отключен определенный канал событий для адаптера. Затем мини-порт должен вызывать API для регистрации событий для адаптера, только если включен соответствующий канал. Если мини-порт поддерживает этот тип элемента управления, Storport вызывает HwStorAdapterControl вместе с ним и Параметры, указывающие на STOR_SET_EVENT_LOGGING структуру.

Storport отправляет этот элемент управления, только если минипорт ранее также назывался StorPortSetFeatureList в подпрограмме HwFindAdapter с указанным параметром StorportFeatureFruIdAdapterControl .
ScsiAdapterReportInternalData
Зарезервировано для системного использования. Доступно начиная с Windows 11 версии 22H2.

Storport отправляет этот элемент управления, только если минипорт ранее также назывался StorPortSetFeatureList в подпрограмме HwFindAdapter с указанным параметром ScsiAdapterReportInternalData .
ScsiAdapterResetBusSynchronous
Доступно начиная с Windows 11 версии 22H2. Storport отправляет этот элемент управления во время обработки IOCTL_STORAGE_DEVICE_RESET. Драйвер мини-порта должен обрабатывать этот элемент управления так же, как и в процедуре обратного вызова HwResetBus , и должен возвращать SCSI_ADAPTER_CONTROL_STATUS.

Storport отправляет этот элемент управления, только если минипорт ранее также назывался StorPortSetFeatureList в подпрограмме HwFindAdapter с указанным параметром StorportFeatureResetBusSynchronous .
ScsiAdapterPostHwInitialize
Зарезервировано для системного использования. Доступно начиная с Windows 11 версии 22H2.

Storport отправляет этот элемент управления только в том случае, если в подпрограмме HwFindAdapter мини-порт ранее также назывался StorPortSetFeatureList с указанным параметром StorportFeaturePostHwInitialize.
ScsiAdapterPrepareEarlyDumpData
Зарезервировано для системного использования. Доступно начиная с Windows 11 версии 22H2.

Storport отправляет этот элемент управления только в том случае, если в подпрограмме HwFindAdapterмини-порт ранее назывался StorPortSetFeatureList с указанным параметром StorportFeaturePrepareEarlyDumpData.
ScsiAdapterRestoreEarlyDumpData
Зарезервировано для системного использования. Доступно начиная с Windows 11 версии 22H2.

Storport отправляет этот элемент управления, только если минипорт ранее также назывался StorPortSetFeatureList в своей подпрограмме HwFindAdapter с указанным параметром StorportFeatureRestoreEarlyDumpData .
ScsiAdapterControlMax
Максимальное значение типа элемента управления.
MakeAdapterControlTypeSizeOfUlong
Делает это перечисление размером ULONG.

Комментарии

Минипорт сообщает, какие типы элементов управления он поддерживает, когда Storport вызывает подпрограмму HwStorAdapterControl miniport с типом элемента управления ScsiQuerySupportedControlTypes. Для тех типов элементов управления, которые поддерживает минипорт, Storport вызывает HwStorAdapterControl со значением SCSI_ADAPTER_CONTROL_TYPE , чтобы указать операцию управления, указывающую операцию управления адаптером, выполняемую мини-портом.

Требования

Требование Значение
Минимальная версия клиента Windows 8
Верхняя часть storport.h

См. также раздел

HwStorAdapterControl