次の方法で共有


中間ドライバー バインド解除操作

中間ドライバーは、ProtocolUnbindAdapterEx 関数から NdisCloseAdapterEx を呼び出すことによって、基になるミニポート ドライバーからバインドを解除します。 NDIS は、基になるミニポート アダプターが使用できなくなった場合、ProtocolUnbindAdapterEx を呼び出します。

中間ドライバーの ProtocolUnbindAdapterEx 関数は、ドライバーが NdisIMInitializeDeviceInstanceEx への未処理の呼び出しを持っているときに呼び出される可能性があります。 この状況は、NDIS が対応する仮想ミニポートを初期化するために MiniportInitializeEx をまだ呼び出していない場合に発生します。 この場合、中間ドライバーは、NdisIMCancelInitializeDeviceInstance を呼び出して、これらの仮想ミニポートの初期化の取り消しを試みる必要があります。

閉じられているバインディングが中間ドライバーによってエクスポートされたデバイスにマップされ、そのデバイスが、NdisIMInitializeDeviceInstanceEx を呼び出すことによって初期化された場合、中間ドライバーは NdisIMDeInitializeDeviceInstance を呼び出して、デバイスを閉じることができます。 その結果、中間ドライバーの仮想ミニポートを、上位レベルのドライバーによって行われた送信または要求に使用できなくなります。

NDIS 中間ドライバーが NdisIMDeInitializeDeviceInstance 関数を呼び出すと、NDIS は影響を受ける仮想ミニポートの MiniportHaltEx 関数を呼び出します。 仮想ミニポートの停止操作の処理については、「仮想ミニポートの停止」を参照してください。

中間ドライバーが NdisCloseAdapterEx を呼び出した後、適切なエラー状態でそのバインドの送信要求を失敗させる必要があります。

中間ドライバーのバインド解除操作の詳細については、「アダプターからのバインド解除」を参照してください。