Storport ドライバーのライフ サイクルLife Cycle of a Storport Driver

Storport ドライバーのライフサイクルは、コールバックルーチンの観点から、Storport ドライバーのミニポートドライバーに記述できます。The life cycle of a Storport driver can be described in terms of the callback routines into the miniport driver from the Storport driver. コールバックルーチンは、図1に示すように、いくつかのメイングループに分類できます。The callback routines can be categorized into several main groups, as shown in Figure 1.

storport アーキテクチャ全体を示す図

図2に、コールバックルーチンの各種類の例をいくつか示します。Several examples of each type of callback routine are shown in Figure 2. システムが起動し、ドライバーが最初に読み込まれると、ミニポートドライバーの Driverentry ルーチンが呼び出されます。When the system starts and the driver is first loaded, the miniport driver's DriverEntry routine is called. このルーチンは、Storport にミニポートドライバーのエントリポイント (コールバックルーチンまたはコールバックとも呼ばれます) を提供するデータ構造を入力します。This routine fills out a data structure that provides Storport with the miniport driver's entry points, also known as its callback routines, or callbacks. このルーチンの終了間際に、ミニポートドライバーは Storportinitializeを呼び出します。Near the end of this routine, the miniport driver calls StorPortInitialize. 次に、Storport ドライバーは、ミニポートコールバックルーチン HwStorFindAdapterを呼び出します。または、仮想ミニポートドライバー VirtualHwStorFindAdapterの場合はを呼び出します。The Storport driver then calls the miniport callback routine HwStorFindAdapter, or in the case of a virtual miniport driver, VirtualHwStorFindAdapter. そのルーチンからが返されると、ミニポートドライバーの HwStorInitialize ルーチンが呼び出されます。After returning from that routine, the miniport driver's HwStorInitialize routine is called.

Storport は、パラメーターとして ScsiQuerySupportedControlTypes を指定して HwStorAdapterControlルーチンを呼び出すことによって、ミニポートドライバーでサポートされているコントロールの種類を取得します。Storport then obtains the miniport driver's supported control types by calling its HwStorAdapterControl routine with ScsiQuerySupportedControlTypes as a parameter.

図 2: storport コールバックルーチン

メイン i/o パスは、 HwStorBuildIo への一連の呼び出し (仮想ミニポートドライバーの場合を除く) と HwStorStartIoで構成されます。The main I/O path consists of a series of calls to HwStorBuildIo (except in the case of a virtual miniport driver) and HwStorStartIo. 詳細については、「 同期 HwStorBuildIo ルーチン」を参照してください。For more information, see Unsynchronized HwStorBuildIo Routine.

システムがシャットダウンされると、 HwStorStartIo は SRB 型の SRB 関数のシャットダウンで呼び出され _ _ ます。When the system is shutdown, HwStorStartIo is called with an SRB of type SRB_FUNCTION_SHUTDOWN. システムの実行中、またはシステムの休止モードに入っているときに、アダプターが削除または無効にされた場合、 HwStorAdapterControlScsiStopAdapter を使用してパラメーターとして呼び出されます。When an adapter is removed or disabled while the system is running, or when the system is entering hibernate mode, HwStorAdapterControl is called with ScsiStopAdapter as a parameter. システムが休止モードから再開されると、 HwStorAdapterControlScsiRestartAdapter と共にパラメーターとして呼び出されます。When the system is resuming from hibernate mode, HwStorAdapterControl is called with ScsiRestartAdapter as a parameter.