IDE_HW_BUILDIO コールバック関数 (irb.h)
IdeHwBuildIo ミニポート ドライバー ルーチンは、受信 I/O 要求ごとに 1 回呼び出されます。
構文
IDE_HW_BUILDIO IdeHwBuildio;
BOOLEAN IdeHwBuildio(
[in] PVOID ChannelExtension,
[in] PIDE_REQUEST_BLOCK Irb
)
{...}
パラメーター
[in] ChannelExtension
ミニポート ドライバー チャネル拡張機能へのポインター。
[in] Irb
処理する統合デバイス エレクトロニクス (IDE) 入出力要求ブロック (IRB) を定義する IDE_REQUEST_BLOCK 型の構造体へのポインター。
戻り値
IdeHwBuildIo はTRUE を 返して 、IDE_REQUEST_BLOCK 構造体の受信を確認します。 ポート ドライバーは 、FALSE の戻り値を無視します。
注釈
ミニポート ドライバーは、割り込みを有効にして同期されていない I/O 処理を実行する AtaHwBuildlo ルーチンを提供します。 IdeHwBuildIo は、要求のすべての同期されていない処理を完了すると、ポート ドライバーに戻り、ポート ドライバーは、同期を必要とするタスクを実行するミニポート ドライバーの IdeHwStartIo ルーチンに要求を渡します。
ミニポート ドライバーは 、IdeHwBuildIo ルーチンを実行するときに、特定の制限を遵守する必要があります。 ミニポート ドライバーは、ロックを保持せずに IdeHwBuildIo を 呼び出します。 特に、ミニポート ドライバーは、そのチャネル拡張機能内の共有データに触れる必要がありますし、ATA ポート ドライバーによってエクスポートされたルーチンのいずれかを呼び出すこともできません。
ミニポート ドライバーは、IdeHwBuildIo ルーチンの実行中に要求を完了する必要がある場合は、Irb パラメーターによって指されるIDE_REQUEST_BLOCK構造体の IrbStatus メンバーに適切な完了状態の値を割り当てる必要があります。 ミニポート ドライバーは、 IrbStatus を IRB_STATUS_PENDING の値に設定しないでください。
ミニポート ドライバーは、IRB の処理方法をポート ドライバーに示すために IdeHwBuildIo ルーチンを使用できます。 たとえば、ミニポート ドライバーは、ポート ドライバーが適切な値に IRB の IrbFlags メンバーを設定することによって、DataBuffer でバッファーをマップすることを要求できます。 要求が何らかの種類のデータ転送でない限り、ミニポート ドライバーは、要求に関連付けられているバッファーをマップすることを要求しないでください。
IdeHwBuildIo ルーチンは、Storport の HwStorBuildIo ルーチンに似ています。 HwStorBuildIo ルーチンの詳細については、「同期されていない HwStorBuildIo ルーチン」を参照してください。
IdeHwBuildIo は省略可能なルーチンです。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | irb.h (Irb.h を含む) |