ドライバー スタックの停止

デバイスが削除されると、NDIS はドライバー スタックを停止します。 ドライバー スタックの停止操作は、次のように行われます:

  1. NDIS は、ドライバー スタックを一時的に停止します。 ドライバー スタックの一時的な停止の詳細については、「ドライバー スタックの一時的な停止」を参照してください。

  2. NDIS は、プロトコル ドライバーの ProtocolUnbindAdapterEx 関数を呼び出します。

    バインディングは Closing 状態になります。 未処理の OID と送信要求が完了し、すべての受信データが返されると、バインディングは Unbound 状態になります。

  3. NDIS は、最上位のスタックからミニポート ドライバーに至るまで、すべてのフィルター モジュールをデタッチします。

    NDIS は、フィルター ドライバーの FilterDetach 関数を呼び出し、フィルター ドライバーがフィルター モジュールのすべてのリソースを解放した後、フィルター モジュールは Detached 状態になります。

  4. NDIS は、ミニポート アダプターを停止します。

    NDISがミニポート ドライバーの MiniportHaltEx 関数を呼び出した後、ミニポート ドライバーは、ミニポート アダプターのすべてのリソースを解放し、ミニポート アダプターは Halted 状態になります。

  5. フィルター ドライバーのすべてのモジュールが切り離されると、システムはフィルター ドライバーをアンロードできます。

  6. ミニポート ドライバーが管理するすべてのミニポート アダプターが停止すると、システムはミニポート ドライバーをアンロードできます。