Freigeben über


IDE_HW_INTERRUPT Rückruffunktion (irb.h)

Die IdeHwInterrupt Miniporttreiberroutine unterbricht vom Hostbusadapter (HBA), mit dem der Controller für den Miniporttreiber verbunden ist.

Hinweis Der ATA-Porttreiber und die ATA Miniport-Treibermodelle können in Zukunft geändert oder nicht verfügbar sein. Stattdessen empfehlen wir die Verwendung des Storport-Treibers und Storport Miniport Treibermodelle.
 

Syntax

IDE_HW_INTERRUPT IdeHwInterrupt;

BOOLEAN IdeHwInterrupt(
  [in] PVOID ChannelExtension
)
{...}

Parameter

[in] ChannelExtension

Ein Zeiger auf die Kanalerweiterung.

Rückgabewert

AtaHwInterrrupt gibt TRUE zurück, wenn der Interrupt von einem der Kanäle des Controllers generiert wird. Wenn ein Kanal den Interrupt nicht generiert hat, sollte die Routine FALSE- so schnell wie möglich zurückgeben.

Bemerkungen

Die IdeHwInterrupt Routine schließt unterbrechungsgesteuerte E/A-Vorgänge ab.

Wenn der angegebene Kanal den Interrupt nicht generiert hat, sollte der Miniporttreiber einen zweiten (rekursiven) Aufruf an den IdeHwInterrupt Routine durchführen, um Unterbrechungen zu verarbeiten, die für den anderen Kanal des Controllers vorgesehen sind.

Wenn der Miniporttreiber eine große Zeit benötigt, um den Interrupt zu verarbeiten, muss er die folgenden Schritte ausführen:

  1. Schließen Sie den Interrupt auf der HBA.
  2. Deaktivieren Sie Unterbrechungen auf dem Kanal, der durch den ChannelExtension Parameter angegeben ist.
  3. Fordern Sie eine Arbeitsroutine mithilfe von AtaPortRequestWorkerRoutinean.
  4. Abschließen der zusätzlichen Verarbeitung in der Arbeitsroutine.
  5. Aktivieren Sie Unterbrechungen im Kanal.
Die folgenden ATA-Portroutinen dürfen nicht aus der IdeHwInterrupt- Routine aufgerufen werden: Der Miniporttreiber kann jedoch eine Arbeitsroutine anfordern und Anrufe in der Arbeitsroutine tätigen.

Die Arbeitsroutine muss die Unterbrechung auf der HBA löschen, bevor sie TRUE-zurückgibt.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- irb.h (include Irb.h)

Siehe auch

AtaPortCompleteAllActiveRequests-

AtaPortDeviceBusy

AtaPortRequestWorkerRoutine