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


перечисление 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,
  ScsiAdapterKsrPowerDown,
  ScsiAdapterPreparePLDR,
  ScsiNvmeofAdapterOperation,
  ScsiAdapterControlMax,
  MakeAdapterControlTypeSizeOfUlong
} SCSI_ADAPTER_CONTROL_TYPE, *PSCSI_ADAPTER_CONTROL_TYPE;

Константы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Прерывание HBA еще не подключено, когда драйвер 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 с этим типом элемента управления (и параметру Parameters присвоено значение 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 обрабатывает запрос, а для мини-порта установлен флаг 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 , чтобы зарегистрировать набор perf с 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 с этим типом элемента управления (и параметру Parameters присвоено значение 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 .
ScsiAdapterKsrPowerDown
Зарезервировано для внутреннего использования. Не используйте.
ScsiAdapterPreparePLDR
Storport отправляет этот элемент управления, чтобы уведомить miniport о необходимости выполнения необходимых действий перед вызовом PLDR. Доступно начиная с Windows 11 версии 24H2.
ScsiNvmeofAdapterOperation
Указывает, поддерживается ли ScsiNvmeofAdapterOperation. Доступно начиная с Windows 11 версии 24H2.
ScsiAdapterControlMax
Максимальное значение типа элемента управления.
MakeAdapterControlTypeSizeOfUlong
Делает это перечисление размером ULONG.

Комментарии

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

Требования

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

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

HwStorAdapterControl