Storport ドライバーのライフ サイクル

Storport ドライバーのライフ サイクルは、Storport ドライバーからミニポート ドライバーへのコールバック ルーチンの観点から説明できます。 図 1 に示すように、コールバック ルーチンは複数の主要なグループに分類できます。

figure illustrating overall storport architecture.

各種コールバック ルーチンの例を図 2 に示します。 システムが起動して、ドライバーが最初に読み込まれると、ミニポート ドライバーの DriverEntry ルーチンが呼び出されます。 このルーチンで記述されるデータ構造は、コールバック ルーチンまたはコールバックとも呼ばれるミニポート ドライバーのエントリ ポイントを Storport に提供します。 このルーチンの終わり近くに、ミニポート ドライバーは StorPortInitialize を呼び出します。 次に Storport ドライバーはミニポート コールバック ルーチンの HwStorFindAdapter、または仮想ミニポート ドライバーの場合は VirtualHwStorFindAdapter を呼び出します。 そのルーチンから戻ると、ミニポート ドライバーの HwStorInitialize ルーチンが呼び出されます。

次に Storport は HwStorAdapterControl ルーチンで ScsiQuerySupportedControlTypes をパラメーターとして呼び出し、ミニポート ドライバーでサポートされているコントロール型を取得します。

figure 2: storport callback routines.

メイン I/O パスは HwStorBuildIo (仮想ミニポート ドライバーの場合を除く) および HwStorStartIo への一連の呼び出しで構成されます。 詳細については、「非同期 HwStorBuildIo ルーチン」を参照してください。

システムがシャットダウンすると、HwStorStartIo が SRB_FUNCTION_SHUTDOWN 型の SRB で呼び出されます。 システムの実行中にアダプターが取り外されたり無効になったりする場合、またはシステムが休止モードに入る場合、HwStorAdapterControlScsiStopAdapter パラメーターを使用して呼び出されます。 システムが休止モードから再開されると、HwStorAdapterControlScsiRestartAdapter パラメーターを使用して呼び出されます。