Partager via


IDE_HW_CONTROL fonction de rappel (irb.h)

Le IdeHwControl routine de pilote miniport avertit le pilote miniport sur les événements Plug-and-Play (PnP) et d’alimentation.

Remarque Le pilote de port ATA et les modèles de pilotes miniport ATA peuvent être modifiés ou indisponibles à l’avenir. Au lieu de cela, nous vous recommandons d’utiliser le du pilote Storport et modèles de pilotes Storport miniport.
 

Syntaxe

IDE_HW_CONTROL IdeHwControl;

BOOLEAN IdeHwControl(
  [in]      PVOID ChannelExtension,
  [in]      IDE_CONTROL_ACTION ControlAction,
  [in, out] PVOID Parameters
)
{...}

Paramètres

[in] ChannelExtension

Pointeur vers l’extension de canal.

[in] ControlAction

Contient une valeur d’énumérateur de type IDE_CONTROL_ACTION qui indique l’action de contrôle à effectuer.

[in, out] Parameters

Pointeur vers une mémoire tampon qui contient les paramètres associés à l’action de contrôle. Ce paramètre peut avoir l’une des valeurs du tableau suivant.

Action de contrôle Paramètres Description
ideStart Le paramètre pointe vers une structure de type IDE_CHANNEL_CONFIGURATION. Indique que le pilote de port démarre le canal.
IdeVendorDefined Le paramètre pointe vers une structure de type IDE_VENDOR_DEFINED_POWER_INFO. Indique qu’il existe un événement d’alimentation défini par le fournisseur.

Valeur de retour

IdeHwControl retourne TRUE si l’opération a réussi. Sinon, elle retourne FALSE.

Remarques

Le pilote de port s’assure qu’il n’y a pas d’E/S en attente sur le canal avant qu’il n’appelle cette routine. Le pilote miniport peut avoir ses propres méthodes de stratégie d’alimentation lorsque le système entre dans un état d’alimentation différent. Pour ce faire, le pilote miniport doit effectuer les opérations suivantes :

  • Ajoutez un schéma de paramètre de stratégie d’alimentation dans le fichier INF du pilote miniport. Un GUID est nécessaire pour présenter une stratégie d’alimentation définie par le pilote miniport. Pour plus d’informations sur la directive des paramètres d’alimentation, consultez directive AddPowerSetting INF. Pour plus d’informations sur les GUID, consultez les paramètres de disque .
  • Lorsque la routine du pilote miniport IdeHwControl est appelée avec l’action de contrôle IdeStart:
    Vérifiez le champ SupportedAdvances.AdvancedChannelConfigurationSupported dans la structure ChannelConfiguration.
    Vérifiez le champ AdvancedChannelConfiguration->Present.VendorDefinedPower dans la structure ChannelConfiguration.
    Si les valeurs des deux champs répertoriés précédemment sont TRUE, cette version du pilote de port ATA prend en charge la gestion de l’alimentation définie par le fournisseur.
    Si la gestion de l’alimentation définie par le fournisseur est prise en charge par le pilote de port ATA, le pilote miniport peut s’inscrire à une gestion spéciale de la gestion de l’alimentation en définissant AdvancedChannelConfiguration ->VendorDefinedPower.ValidGuids et AdvancedChannelConfiguration ->champs VendorDefinedPower.Guid[] (ce dernier doit être le GUID de la stratégie d’alimentation dans le fichier INF du pilote miniport).
  • Une fois la gestion de l’alimentation définie par le fournisseur inscrite, le pilote miniport peut recevoir des appels à sa routine IdeHwControl avec une action de contrôle IdeVendorDefined lorsque le schéma d’alimentation système change.
  • Alors que le pilote miniport traite la routine IdeHwControl avec l’action de contrôle IdeVendorDefined, procédez comme suit :
    Comparez le champ SettingGuid à partir du champ de paramètre de la structure IDE_VENDOR_DEFINED_POWER_INFO avec le GUID que le pilote miniport a inscrit pour vous assurer que l’appel est destiné à ce canal. Si les GUID ne correspondent pas, le pilote miniport doit terminer l’appel et n’effectuer aucune action.
    Obtenez le champ Valeur à partir du champ de paramètre de la structure IDE_VENDOR_DEFINED_POWER_INFO et effectuez l’action de gestion de l’alimentation spécifique au pilote miniport appropriée.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête irb.h (include Irb.h)

Voir aussi

AtaPortGetUncachedExtension