中間ドライバーは、その ProtocolUnbindAdapterEx 関数から NdisCloseAdapterEx を呼び出すことによって、基になるミニポート ドライバーからバインドを解除します。 基になるミニポート アダプターが使用できなくなった場合、NDIS は ProtocolUnbindAdapterEx を呼び出します。
中間ドライバーの ProtocolUnbindAdapterEx 関数は、 ドライバーが NdisIMInitializeDeviceInstanceEx への未処理の呼び出しを持っている場合に呼び出される可能性があります。 この状況は、NDIS が対応する仮想ミニポートを初期化する ミニポートInitializeEx をまだ呼び出していない場合に発生します。 この場合、中間ドライバーは、これらの仮想ミニポートの初期化を取り消すために NdisIMCancelInitializeDeviceInstance を呼び出す必要があります。
閉じているバインディングが中間ドライバーによってエクスポートされたデバイスにマップされ、そのデバイスが NdisIMInitializeDeviceInstanceEx を呼び出して初期化された場合、中間ドライバーは NdisIMDeInitializeDeviceInstance を呼び出してデバイスを閉じることができます。 その結果、中間ドライバーの仮想ミニポートは、上位レベルのドライバーによって行われた送信または要求に使用できなくなります。
NDIS 中間ドライバーが NdisIMDeInitializeDeviceInstance 関数を呼び出す場合、NDIS は、影響を受ける仮想ミニポートの ミニポートHaltEx 関数を呼び出します。 仮想ミニポートの停止操作の処理については、「 仮想ミニポートの停止」を参照してください。
中間ドライバーが NdisCloseAdapterEx を呼び出した後、適切なエラー状態でそのバインドの送信要求を失敗させる必要があります。
中間ドライバーのバインド解除操作の詳細については、「 アダプターからのバインド解除」を参照してください。