Freigeben über


IDE_HW_BUILDIO Rückruffunktion (irb.h)

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

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

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

Parameter

[in] ChannelExtension

Ein Zeiger auf die Erweiterung des Miniporttreiberkanals.

[in] Irb

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

Rückgabewert

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

Bemerkungen

Miniport-Treiber bieten eine AtaHwBuildlo- Routine, die nicht synchronisierte E/A-Verarbeitung mit aktivierten Unterbrechungen durchführt. Nachdem IdeHwBuildIo alle nicht synchronisierten Verarbeitung einer Anforderung abgeschlossen hat, wird sie an den Porttreiber zurückgegeben, und der Porttreiber übergibt die Anforderung an die IdeHwStartIo Routine des Miniporttreibers, die die Aufgaben ausführt, die 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 Miniport-Treiber keine freigegebenen Daten in seiner Kanalerweiterung berühren oder keine der Vom ATA-Porttreiber exportierten Routinen aufrufen.

Wenn der Miniporttreiber eine Anforderung ausführen muss, während er die IdeHwBuildIo Routine ausführt, muss er dem IrbStatus-Element Member der IDE_REQUEST_BLOCK Struktur, auf das durch den Irb-Parameter verwiesen wird, den entsprechenden Abschlussstatuswert zuweisen. Der Miniporttreiber darf IrbStatus- nicht auf einen Wert von IRB_STATUS_PENDING festlegen.

Der Miniporttreiber kann die IdeHwBuildIo Routine verwenden, um dem Porttreiber anzugeben, wie ein IRB behandelt werden soll. Beispielsweise kann der Miniporttreiber anfordern, dass der Porttreiber den Puffer bei DataBuffer-zuordnen kann, indem der IrbFlags Element des IRB auf den entsprechenden Wert festgelegt wird. Der Miniporttreiber sollte nicht anfordern, dass der Puffer, der einer Anforderung zugeordnet ist, 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 Unsynchronized HwStorBuildIo Routine.

IdeHwBuildIo ist eine optionale Routine.

Anforderungen

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

Siehe auch

IDE_REQUEST_BLOCK

IdeHwStartIo