Freigeben über


IDE_HW_INTERRUPT Rückruffunktion (irb.h)

Die Miniporttreiberroutine IdeHwInterrupt verarbeitet Unterbrechungen des Hostbusadapters (HBA), mit dem der Controller für den Miniporttreiber verbunden ist.

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

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 so schnell wie möglich FALSE zurückgeben.

Hinweise

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 der IdeHwInterrupt-Routine ausführen, um Interrupts zu behandeln, die für den anderen Kanal des Controllers vorgesehen sind.

Wenn der Miniporttreiber viel Zeit zum Verarbeiten des Interrupts benötigt, muss er die folgenden Schritte ausführen:

  1. Schließen Sie den Interrupt für den HBA.
  2. Deaktivieren Sie Interrupts für den Kanal, der durch den ChannelExtension-Parameter angegeben wird.
  3. Fordern Sie mithilfe von AtaPortRequestWorkerRoutine eine Workerroutine an.
  4. Schließen Sie die zusätzliche Verarbeitung in der Workerroutine ab.
  5. Aktivieren Sie Interrupts für den Kanal.
Die folgenden ATA-Portroutinen dürfen nicht von der IdeHwInterrupt-Routine aufgerufen werden: Der Miniporttreiber kann jedoch eine Workerroutine anfordern und Anrufe in der Workerroutine tätigen.

Die Workerroutine muss den Interrupt für den HBA löschen, bevor TRUE zurückgegeben wird.

Anforderungen

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

Weitere Informationen

AtaPortCompleteAllActiveRequests

AtaPortDeviceBusy

AtaPortRequestWorkerRoutine