Share via


IDE_CHANNEL_ENABLED fonction de rappel (irb.h)

La routine du pilote miniport AtaControllerChannelEnabled indique si le canal spécifié est activé.

Notes

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

Syntaxe

IDE_CHANNEL_ENABLED IdeChannelEnabled;

ATA_CHANNEL_STATE IdeChannelEnabled(
  PVOID ControllerExtension,
  ULONG Channel
)
{...}

Paramètres

ControllerExtension

[in] Pointeur vers l’extension du contrôleur.

Channel

[in] Canal à activer.

Valeur retournée

AtaControllerChannelEnabled retourne une valeur énumératrice de type ATA_CHANNEL_STATE, qui peut avoir l’une des valeurs suivantes :

Code de retour Signification
ChannelStateEnabled Indique que le canal spécifié est activé.
ChannelStateDisabled Indique que le canal spécifié est désactivé.
ChannelStateUnKnown Indique que l’état du canal n’a pas pu être déterminé.

Remarques

La séquence suivante décrit comment le pilote miniport et le pilote de port interagissent pour déterminer quels canaux de contrôleur sont activés :

  1. Le pilote de port appelle la routine AtaAdapterControl du pilote miniport avec l’action de contrôle IdeStart.

  2. Alors que le pilote miniport traite la routine AtaAdapterControl avec l’action de contrôle IdeStart, il initialise le membre NumberOfChannels de IDE_CONTROLLER_CONFIGURATION pour indiquer le nombre de canaux activés.

  3. Une fois la routine AtaAdapterControl retournée, le pilote de port appelle AtaControllerChannelEnabled une fois pour chaque NumberOfChannels spécifié dans la structure ControllerConfiguration qui sont retournés par AtaAdapterControl.

Cette routine ne doit pas comporter d’étapes critiques pour le fonctionnement du contrôleur. Il existe des situations, telles que lors d’une opération crashdump, où cette fonction n’est pas appelée du tout. En outre, cette fonction n’est pas appelée lorsqu’un canal est redémarré, uniquement lorsque PCIIDEx répond à un IRP QueryDeviceRelations.

AtaControllerChannelEnabled est une routine facultative. Si le pilote miniport n’implémente pas cette routine, le pilote de port charge un gestionnaire par défaut. Si le pilote de port charge un gestionnaire par défaut, tous les canaux spécifiés par NumberOfChannels dans la structure ControllerConfiguration retournée par AtaAdapterControl lors de la gestion d’une action IdeStart sont supposés être activés. Cette routine permet à PCIIDEx de charger le pilote de port ATA uniquement pour les canaux activés. Cela permet une prise en charge des canaux éparses (par exemple, canal 0, canal 1, canal 3, canal 4 et canal 6, mais pas canal 2 et canal 5).

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête irb.h (inclure Irb.h)

Voir aussi

IDE_CONTROLLER_CONFIGURATION