Partager via


énumération SCSI_ADAPTER_CONTROL_TYPE (storport.h)

L’énumération SCSI_ADAPTER_CONTROL_TYPE contient des opérations de contrôle d’adaptateur, où chaque type de contrôle lance une action sur un adaptateur par le pilote miniport. Storport spécifie le type de contrôle lorsqu’il appelle la routine HwStorAdapterControl d’un miniport.

Syntax

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;

Constantes

 
ScsiQuerySupportedControlTypes
Signale les opérations de contrôle de l’adaptateur implémentées par le pilote miniport. Un miniport doit prendre en charge ce type de contrôle.

Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle et paramètres pointant vers une structure SCSI_SUPPORTED_CONTROL_TYPE_LIST après l’initialisation du HBA, mais avant la première E/S.

Le pilote miniport remplit la structure SCSI_SUPPORTED_CONTROL_TYPE_LIST avec les opérations qu’il prend en charge. Une fois que HwStorAdapterControl est retourné à partir de cet appel, le pilote Storport appelle le HwStorAdapterControl du pilote miniport uniquement pour les opérations prises en charge par le miniport.
ScsiStopAdapter
Arrête l’adaptateur HBA. Un miniport doit prendre en charge ce type de contrôle.

Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle (et paramètres définis sur NULL) lorsque l’adaptateur HBA a été supprimé du système, arrêté pour la reconfiguration des ressources, arrêté pour la gestion de l’alimentation ou reconfiguré ou désactivé. Storport s’assure qu’il n’y a pas de demandes non effectuées et émet une demande de SRB_FUNCTION_FLUSH au pilote miniport avant d’appeler cette routine.

Le pilote miniport désactive les interruptions sur son adaptateur HBA, arrête tout traitement (y compris le traitement en arrière-plan qui n’est pas soumis à des interruptions ou à un traitement dont le pilote Storport n’est pas conscient, comme la reconstruction de volumes tolérants aux pannes), vide toutes les données mises en cache restantes dans un stockage persistant et place l’adaptateur HBA dans un état à partir duquel il peut être réinitialisé ou redémarré.

Le pilote miniport ne doit pas libérer ses ressources lors de l’arrêt de son HBA. Si l’adaptateur HBA a été supprimé ou arrêté pour la reconfiguration des ressources PnP, le pilote Storport libère des ressources pour le compte du pilote miniport. Si l’adaptateur HBA est arrêté pour la gestion de l’alimentation, les ressources du pilote miniport sont conservées afin que l’adaptateur HBA puisse être redémarré.

Une fois que HwStorAdapterControl revient après avoir arrêté l’adaptateur HBA, toutes les structures de données allouées pour le compte du pilote miniport pour l’adaptateur HBA doivent être considérées comme non valides jusqu’à ce que le pilote de miniport soit invité à redémarrer.

Notez que Storport peut appeler HwStorAdapterControl pour arrêter l’adaptateur une fois que l’adaptateur HBA a déjà été physiquement supprimé du système. Par conséquent, la routine HwStorAdapterControl du pilote miniport ne doit pas effectuer d’opérations qui nécessitent que l’adaptateur HBA soit physiquement présent pendant qu’il arrête l’adaptateur HBA.

Le pilote miniport n’est pas appelé à nouveau pour l’adaptateur HBA tant que le gestionnaire PnP n’a pas demandé que l’adaptateur HBA soit démarré, auquel cas le pilote Storport (ré)initialise en appelant ses routines HwStorAdapterControl et HwStorInitialize , soit qu’un adaptateur HBA qui a été arrêté pour la gestion de l’alimentation soit mis sous tension, auquel cas le pilote Storport appelle la routine HwStorAdapterControl du pilote miniport avec ScsiRestartAdapter ou, si le pilote miniport n’implémente pas ce type de contrôle, répète la séquence d’initialisation pour l’adaptateur HBA.
ScsiRestartAdapter
Réinitialise un HBA. Un miniport doit prendre en charge ce type de contrôle.

Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle (et paramètres définis sur NULL) pour mettre sous tension un adaptateur HBA qui a été arrêté pour la gestion de l’alimentation. Toutes les ressources précédemment affectées au pilote miniport sont toujours disponibles, et son extension d’appareil et ses extensions d’unité logique, le cas échéant, sont intactes.

Le pilote miniport effectue les mêmes opérations que dans sa routine HwStorInitialize , telles que la configuration des registres du HBA et de son état initial, le cas échéant.

Le pilote miniport ne doit pas appeler des routines qui peuvent uniquement être appelées à partir de HwStorFindAdapter ou de HwStorAdapterControl lorsque le type de contrôle est ScsiSetRunningConfig, comme StorPortGetBusData et StorPortSetBusDataByOffset. Si le pilote miniport doit appeler de telles routines pour redémarrer son adaptateur HBA, il doit également implémenter ScsiSetRunningConfig.

Si le pilote miniport n’implémente pas ScsiRestartAdapter, le pilote Storport appelle les routines HwStorFindAdapter et HwStorInitialize du pilote miniport. Toutefois, étant donné que de telles routines peuvent faire un travail de détection inutile pour redémarrer l’adaptateur HBA, un tel pilote miniport ne met pas en marche son adaptateur HBA aussi rapidement qu’un pilote miniport qui implémente ScsiRestartAdapter.
ScsiSetBootConfig
Restaure tous les paramètres d’un adaptateur HBA que le BIOS peut avoir besoin de redémarrer. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle (et paramètres définis sur NULL) après avoir appelé cette routine avec ScsiStopAdapter.

Un pilote miniport doit implémenter ScsiSetBootConfig s’il doit appeler StorPortGetBusData ou StorPortSetBusDataByOffset avant que le système puisse redémarrer.
ScsiSetRunningConfig
Restaure tous les paramètres d’un adaptateur HBA dont le pilote miniport peut avoir besoin pour contrôler l’adaptateur HBA pendant que le système est en cours d’exécution. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle (et paramètres définis sur NULL) avant d’appeler cette routine avec ScsiRestartAdapter si le pilote miniport implémente ce type de contrôle.

L’interruption de l’adaptateur HBA n’est pas encore connectée lorsque le pilote Storport effectue cet appel. Le pilote miniport doit donc veiller à ne pas générer d’interruption.

Un pilote miniport doit implémenter ScsiSetRunningConfig s’il doit appeler StorPortGetBusData ou StorPortSetBusDataByOffset pour restaurer la configuration en cours d’exécution appropriée sur l’adaptateur HBA avant de pouvoir redémarrer.
ScsiPowerSettingNotification
Notification d’un changement de paramètre d’alimentation inscrit. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle et paramètres pointant vers une structure STOR_POWER_SETTING_INFO si un changement de paramètre d’alimentation se produit. Les miniports s’inscrivent pour les notifications de paramètre d’alimentation en appelant StorPortSetPowerSettingNotificationGuids avec une liste de GUID représentant les événements de changement d’alimentation d’intérêt. Ce type de contrôle est valide dans Windows 8 et versions ultérieures.
ScsiAdapterPower
Signale les états d’alimentation ou de mise hors tension de l’adaptateur. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle et paramètres pointant vers une structure STOR_ADAPTER_CONTROL_POWER . Si le miniport prend en charge ce type de contrôle, il ne reçoit pas de bloc de demande de stockage avec SRB_FUNCTION_POWER et HwStorAdapterControl n’est pas appelé avec le type de contrôle ScsiStopAdapter . Ce type de contrôle est valide dans Windows 8 et versions ultérieures.
ScsiAdapterPoFxPowerRequired
Indique au miniport si l’alimentation est requise ou non pour le composant de l’adaptateur. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle et paramètres pointant vers une valeur BOOLEAN qui est TRUE si le composant de l’adaptateur nécessite une alimentation ; sinon, FALSE. Ce type de contrôle est valide dans Windows 8 et versions ultérieures.
ScsiAdapterPoFxPowerActive
Avertit le miniport si le composant de l’adaptateur est actif ou inactif. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle et paramètres pointant vers une structure STOR_POFX_ACTIVE_CONTEXT . Ce type de contrôle est valide dans Windows 8 et versions ultérieures.
ScsiAdapterPoFxPowerSetFState
Avertit le miniport de définir le composant d’adaptateur à l’état F donné. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle et paramètres pointant vers une structureSTOR_POFX_FSTATE_CONTEXT . Ce type de contrôle est valide dans Windows 8 et versions ultérieures.
ScsiAdapterPoFxPowerControl
Demande au miniport d’exécuter une opération de contrôle d’alimentation privée qui a été lancée pour l’adaptateur par un plug-in de moteur d’alimentation (PEP). Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle et paramètres pointant vers une structure STOR_POFX_POWER_CONTROL . Ce type de contrôle est valide dans Windows 8 et versions ultérieures.
ScsiAdapterPrepareForBusReScan
Avertit le miniport de préparer l’adaptateur pour l’énumération du bus. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle (et paramètres définis sur NULL). Le miniport doit mettre sous tension l’adaptateur et tous les appareils connectés pour permettre à l’opération d’énumération de bus de rechercher les appareils. Ce type de contrôle est valide dans Windows 8 et versions ultérieures.
ScsiAdapterSystemPowerHints
Fournit des indicateurs d’alimentation système au miniport. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle et paramètres pointant vers une structure STOR_SYSTEM_POWER_HINTS . Ce type de contrôle est valide dans Windows 8 et versions ultérieures.
ScsiAdapterFilterResourceRequirements
Filtre les ressources requises pour l’adaptateur. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle IRP_MN_FILTER_RESOURCE_REQUIREMENTS et paramètres pointant vers une structure de STOR_FILTER_RESOURCE_REQUIREMENTS lorsque Storport traite la requête et que le miniport a l’indicateur STOR_FEATURE_ADAPTER_CONTROL_PRE_FINDADAPTER défini dans le champ FeatureSupport de HW_INITIALIZATION_DATA. Notez que l’objet DeviceExtension transmis pour ce type de contrôle ne sera pas initialisé.

Le pilote miniport doit modifier ou réduire les ressources décrites dans la mémoire tampon à l’aide de la structure STOR_FILTER_RESOURCE_REQUIREMENTS . Ce type de contrôle est valide dans Windows 8.1 et versions ultérieures.
ScsiAdapterPoFxMaxOperationalPower
Communique une valeur de puissance opérationnelle maximale au miniport. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle et paramètres pointant vers une structure STOR_MAX_OPERATIONAL_POWER . Pour recevoir ce contrôle, le miniport doit avoir précédemment appelé StorPortPoFxSetPerfState pour inscrire un jeu de performances avec PStateType = StorPoFxPerfStateTypeDiscrete et Count> 1.

Le champ Valeur dans chaque état d’alimentation (état P) doit représenter un niveau de puissance maximal relatif par rapport aux autres états P et se trouvera dans la plage des niveaux de puissance maximales indiqués par les états P du miniport, inclus. Le miniport doit s’assurer qu’il choisit un état d’alimentation dont la consommation d’énergie maximale est inférieure ou égale à la valeur donnée dans ce paramètre.
ScsiAdapterPoFxSetPerfState
Informe le miniport du status d’une transition P-State demandée par un appel à StorPortPoFxSetPerfState. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle et paramètres pointant vers une structure STOR_POFX_PERF_STATE_CONTEXT .

Si le miniport doit lancer une transition d’état d’alimentation physique, il doit attendre le rappel HwStorAdapterControl avant de le faire. Autrement dit, un miniport doit d’abord appeler StorPortPoFxSetPerfState pour signaler son intention d’effectuer une transition P-State. Storport appelle ensuite le rappel HwStorAdapterControl du miniport, auquel cas le miniport peut effectuer toutes les actions liées à la transition P-State (par exemple, modifier l’état d’alimentation physique de l’appareil).
ScsiAdapterSurpriseRemoval
Avertit le miniport que l’unité a été supprimée par surprise. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle (et paramètres définis sur NULL).
ScsiAdapterSerialNumber
Demande que le miniport récupère le numéro de série de l’adaptateur. Le pilote Storport appelle HwStorAdapterControl avec ce type de contrôle et paramètres pointant vers une structure STOR_SERIAL_NUMBER .
ScsiAdapterCryptoOperation
Réservé pour le système. Avertit le miniport d’effectuer une opération de chiffrement. Storport appelle HwStorAdapterControl avec lui et parameters pointant vers un STOR_CRYPTO_OPERATION.
ScsiAdapterQueryFruId
Disponible à partir de Windows 10 version 21H1. Interroge l’ID d’une unité de remplacement d’erreur (FRU) de l’adaptateur. Storport appelle HwStorAdapterControl avec lui et parameters pointant vers une structure STOR_FRU_ID_DESCRIPTION lors de la gestion de [IOCTL_STORAGE_QUERY_PROPERTY]ni-ntddstor-ioctl_storage_query_property.md) avec un ID de propriété StorageFruIdProperty .

Storport envoie ce contrôle uniquement si un miniport a également précédemment appelé StorPortSetFeatureList dans sa routine HwFindAdapter avec StorportFeatureFruIdAdapterControl spécifié.
ScsiAdapterSetEventLogging
Disponible à partir de Windows 10 version 21H1. Indique au miniport si un canal d’événements spécifique est activé ou désactivé pour une carte. Un miniport doit ensuite appeler une API pour journaliser un événement pour l’adaptateur uniquement lorsque le canal correspondant est activé. Si le miniport prend en charge ce type de contrôle, Storport appelle HwStorAdapterControl avec lui et Parameters pointant vers une structure STOR_SET_EVENT_LOGGING .

Storport envoie ce contrôle uniquement si un miniport a également précédemment appelé StorPortSetFeatureList dans sa routine HwFindAdapter avec StorportFeatureFruIdAdapterControl spécifié.
ScsiAdapterReportInternalData
Réservé pour le système. Disponible à partir de Windows 11, version 22H2.

Storport envoie ce contrôle uniquement si un miniport a également précédemment appelé StorPortSetFeatureList dans sa routine HwFindAdapter avec ScsiAdapterReportInternalData spécifié.
ScsiAdapterResetBusSynchronous
Disponible à partir de Windows 11, version 22H2. Storport envoie ce contrôle pendant la gestion d’un IOCTL_STORAGE_DEVICE_RESET. Le pilote miniport doit gérer ce contrôle comme il le fait dans sa routine de rappel HwResetBus et doit retourner SCSI_ADAPTER_CONTROL_STATUS.

Storport envoie ce contrôle uniquement si un miniport a également précédemment appelé StorPortSetFeatureList dans sa routine HwFindAdapter avec StorportFeatureResetBusSynchronous spécifié.
ScsiAdapterPostHwInitialize
Réservé pour le système. Disponible à partir de Windows 11, version 22H2.

Storport envoie ce contrôle uniquement si un miniport a également précédemment appelé StorPortSetFeatureList dans sa routine HwFindAdapter avec StorportFeaturePostHwInitialize spécifié.
ScsiAdapterPrepareEarlyDumpData
Réservé pour le système. Disponible à partir de Windows 11, version 22H2.

Storport envoie ce contrôle uniquement si un miniport a également précédemment appelé StorPortSetFeatureList dans sa routine HwFindAdapter avec StorportFeaturePrepareEarlyDumpData spécifié.
ScsiAdapterRestoreEarlyDumpData
Réservé pour le système. Disponible à partir de Windows 11, version 22H2.

Storport envoie ce contrôle uniquement si un miniport a également précédemment appelé StorPortSetFeatureList dans sa routine HwFindAdapter avec StorportFeatureRestoreEarlyDumpData spécifié.
ScsiAdapterKsrPowerDown
Réservé à un usage interne. Ne pas utiliser.
ScsiAdapterPreparePLDR
Storport envoie ce contrôle pour informer miniport d’effectuer le travail nécessaire avant d’appeler PLDR. Disponible à partir de Windows 11, version 24H2.
ScsiNvmeofAdapterOperation
Indique si ScsiNvmeofAdapterOperation est pris en charge. Disponible à partir de Windows 11, version 24H2.
ScsiAdapterControlMax
Valeur maximale du type de contrôle.
MakeAdapterControlTypeSizeOfUlong
Fait de cette énumération la taille d’un ULONG.

Remarques

Un miniport indique les types de contrôle qu’il prend en charge lorsque Storport appelle la routine HwStorAdapterControl du miniport avec un type de contrôle ScsiQuerySupportedControlTypes. Pour les types de contrôles pris en charge par le miniport, Storport appelle HwStorAdapterControl avec une valeur SCSI_ADAPTER_CONTROL_TYPE pour indiquer l’opération de contrôle qui spécifie l’opération de contrôle d’adaptateur à effectuer par le miniport.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8
En-tête storport.h

Voir aussi

HwStorAdapterControl