Freigeben über


IDE_HW_BUILDIO Rückruffunktion (irb.h)

Die Miniporttreiberroutine IdeHwBuildIo wird für jede eingehende E/A-Anforderung einmal aufgerufen.

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_BUILDIO IdeHwBuildio;

BOOLEAN IdeHwBuildio(
  [in] PVOID ChannelExtension,
  [in] PIDE_REQUEST_BLOCK Irb
)
{...}

Parameter

[in] ChannelExtension

Ein Zeiger auf die Miniport-Treiberkanalerweiterung.

[in] Irb

Ein Zeiger auf eine Struktur vom Typ IDE_REQUEST_BLOCK , die den zu verarbeitenden IRB-Eingabe-/Ausgabeanforderungsblock (Integrated Device Electronics) definiert.

Rückgabewert

IdeHwBuildIo gibt TRUE zurück, um den Empfang der IDE_REQUEST_BLOCK-Struktur zu bestätigen. Der Porttreiber ignoriert den Rückgabewert FALSE.

Hinweise

Miniport-Treiber stellen eine AtaHwBuildlo-Routine bereit, die eine nicht synchronisierte E/A-Verarbeitung mit aktivierten Interrupts ausführt. Nachdem IdeHwBuildIo die gesamte nicht synchronisierte Verarbeitung einer Anforderung abgeschlossen hat, kehrt es zum Porttreiber zurück, und der Porttreiber übergibt die Anforderung an die IdeHwStartIo-Routine des Miniporttreibers, die die Aufgaben ausführt, die eine Synchronisierung erfordern.

Der Miniporttreiber muss bestimmte Einschränkungen beachten, während er die IdeHwBuildIo-Routine ausführt. Der Miniporttreiber ruft IdeHwBuildIo ohne Sperren auf. Insbesondere darf der Miniporttreiber keine freigegebenen Daten in seiner Kanalerweiterung berühren und auch keine der vom ATA-Porttreiber exportierten Routinen aufrufen.

Wenn der Miniporttreiber eine Anforderung abschließen muss, während er die IdeHwBuildIo-Routine ausführt, muss er dem IrbStatus-Element der IDE_REQUEST_BLOCK Struktur, auf die der Irb-Parameter verweist, den entsprechenden Abschluss status Wert zuweisen. Der Miniporttreiber darf IrbStatus nicht auf den Wert IRB_STATUS_PENDING festlegen.

Der Miniporttreiber kann die IdeHwBuildIo-Routine verwenden, um dem Porttreiber anzugeben, wie ein IRB behandelt werden soll. Der Miniporttreiber kann beispielsweise anfordern, dass der Porttreiber den Puffer bei DataBuffer zuordnen muss, indem er den IrbFlags-Member des IRB auf den entsprechenden Wert festlegt. Der Miniporttreiber sollte nicht anfordern, dass der einer Anforderung zugeordnete Puffer zugeordnet wird, es sei denn, die Anforderung ist eine Art von Datenübertragung.

Die IdeHwBuildIo-Routine ähnelt der HwStorBuildIo-Routine von Storport in der Funktionalität. Weitere Informationen zur HwStorBuildIo-Routine finden Sie unter Nicht synchronisierte HwStorBuildIo-Routine.

IdeHwBuildIo ist eine optionale Routine.

Anforderungen

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

Weitere Informationen

IDE_REQUEST_BLOCK

IdeHwStartIo