中間ドライバーのアンロード
NDIS は、MiniportDriverUnload 関数を呼び出して、中間ドライバーをアンロードします。 中間ドライバーは、MiniportDriverUnload で他のミニポート ドライバーと同じ操作を実行する必要があります。 NdisMDeregisterMiniportDriver 関数の呼び出しに加えて、中間ドライバーは NdisDeregisterProtocolDriver も呼び出します。 MiniportDriverUnload は、プロトコル ドライバー リソースの割り当てを解除するなど、必要なクリーンアップ操作も実行する必要があります。
中間ドライバーがアンインストールされる前にクリーンアップ操作を実行するために、中間ドライバーは ProtocolUninstall 関数を登録できます。 たとえば、中間ドライバーのプロトコルの下端には ProtocolUninstall 関数が必要な場合があります。 中間ドライバーは、NDIS がその MiniportDriverUnload 関数を呼び出す前に ProtocolUninstall でそのプロトコル エッジのリソースを解放できます。
ミニポート中間ドライバーは、NdisMDeregisterMiniportDriver を 2 回呼び出します。1 回は物理デバイスインターフェイス用、もう 1 回は仮想デバイスインターフェイス用です。