IDE_HW_BUILDIO コールバック関数 (irb.h)

IdeHwBuildIo ミニポート ドライバー ルーチンは、受信 I/O 要求ごとに 1 回呼び出されます。

メモ ATA ポート ドライバーと ATA ミニポート ドライバー モデルは、今後変更または使用できない可能性があります。 代わりに、 Storport ドライバー モデルと Storport ミニポート ドライバー モデルを使用することをお勧めします。
 

構文

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 を含む)

こちらもご覧ください

IDE_REQUEST_BLOCK

IdeHwStartIo