Freigeben über


IDE_CHANNEL_ENABLED Rückruffunktion (irb.h)

Die Miniporttreiberroutine AtaControllerChannelEnabled gibt an, ob der angegebene Kanal aktiviert ist.

Hinweis

Die Modelle ATA-Porttreiber und ATA-Miniporttreiber können in Zukunft geändert oder nicht mehr verfügbar sein. Stattdessen wird empfohlen, die Modelle Storport-Treiber und Storport-Miniporttreiber zu verwenden.

Syntax

IDE_CHANNEL_ENABLED IdeChannelEnabled;

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

Parameter

ControllerExtension

[in] Ein Zeiger auf die Controllererweiterung.

Channel

[in] Der zu aktivierende Kanal.

Rückgabewert

AtaControllerChannelEnabled gibt einen Enumeratorwert vom Typ ATA_CHANNEL_STATE zurück, der einen der folgenden Werte aufweisen kann:

Rückgabecode Bedeutung
ChannelStateEnabled Gibt an, dass der angegebene Kanal aktiviert ist.
ChannelStateDisabled Gibt an, dass der angegebene Kanal deaktiviert ist.
ChannelStateUnKnown Gibt an, dass der Zustand des Kanals nicht bestimmt werden konnte.

Hinweise

In der folgenden Sequenz wird beschrieben, wie der Miniporttreiber und der Porttreiber interagieren, um zu bestimmen, welche Controllerkanäle aktiviert sind:

  1. Der Porttreiber ruft die AtaAdapterControl-Routine des Miniporttreibers mit der Steuerungsaktion IdeStart auf.

  2. Während der Miniporttreiber die AtaAdapterControl-Routine mit der Steuerungsaktion IdeStart verarbeitet, initialisiert er den NumberOfChannels-Member von IDE_CONTROLLER_CONFIGURATION , um die Anzahl der aktivierten Kanäle anzugeben.

  3. Nachdem die AtaAdapterControl-Routine zurückgegeben wurde, ruft der Porttreiber AtaControllerChannelEnabled einmal für alle NumberOfChannels auf, die in der ControllerConfiguration-Struktur angegeben sind und von AtaAdapterControl zurückgegeben werden.

Diese Routine sollte keine Schritte enthalten, die für den Betrieb des Controllers von entscheidender Bedeutung sind. Es gibt Situationen, z. B. während eines Absturzvorgangs, in denen diese Funktion überhaupt nicht aufgerufen wird. Darüber hinaus wird diese Funktion nicht aufgerufen, wenn ein Kanal neu gestartet wird, nur wenn PCIIDEx auf eine QueryDeviceRelations-IRP antwortet.

AtaControllerChannelEnabled ist eine optionale Routine. Wenn der Miniporttreiber diese Routine nicht implementiert, lädt der Porttreiber einen Standardhandler. Wenn der Porttreiber einen Standardhandler lädt, wird davon ausgegangen, dass alle Kanäle aktiviert sind, die von NumberOfChannels in der ControllerConfiguration-Struktur angegeben werden, die von AtaAdapterControl beim Behandeln einer IdeStart-Aktion zurückgegeben wird. Diese Routine ermöglicht ES PCIIDEx, den ATA-Porttreiber nur für die aktivierten Kanäle zu laden. Dies ermöglicht die Unterstützung von Sparsekanal (z. B. Kanal 0, Kanal 1, Kanal 3, Kanal 4 und Kanal 6, aber nicht Kanal 2 und Kanal 5).

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile irb.h (include Irb.h)

Weitere Informationen

IDE_CONTROLLER_CONFIGURATION