NdisClCloseAddressFamily 関数 (ndis.h)
NdisClCloseAddressFamily は、クライアントがバインドされている特定の NIC に対して、クライアント プロトコルと呼び出しマネージャーまたは MCM ドライバーの登録済み AF との間の関連付けを解放します。
構文
NDIS_STATUS NdisClCloseAddressFamily(
[in] NDIS_HANDLE NdisAfHandle
);
パラメーター
[in] NdisAfHandle
によって返される NDIS 提供のハンドルを指定します。 NdisClOpenAddressFamilyEx。
戻り値
タイミング NdisClCloseAddressFamily は、NDIS_STATUS_PENDING以外のものを返します。クライアントは、 ProtocolClCloseAfComplete 関数。 それ以外の場合、NDIS はクライアントの を呼び出します。この操作が完了したときの ProtocolClCloseAfComplete 関数。
状況 NdisClCloseAddressFamily は、そのNDIS_STATUS_PENDINGを待機しているクライアントを返します。呼び出される ProtocolClCloseAfComplete 関数は、デッドロックを引き起こす可能性があるため、現在のスレッドをブロックしないでください。 これは、クライアントが NdisClCloseAddressFamily を処理するコンテキストで呼び出すときに特に重要です。 NdisCmNotifyCloseAddressFamily 要求。 この場合、クライアントが NdisCmNotifyCloseAddressFamily 要求の処理から戻るまで、呼び出しマネージャーはアドレス ファミリを閉じることができません。 クライアントが現在のスレッドをブロックした場合、クライアントは NdisCmNotifyCloseAddressFamily 要求の処理を完了しなくなり、デッドロックが発生します。
注釈
クライアントは、通常、そのクライアントから NdisClCloseAddressFamily を呼び出します。
ProtocolUnbindAdapterEx 関数は、 NdisClCloseCall や NdisClDeregisterSap の呼び出しを使用して、バインド上のすべてのクライアントの開いている VC を閉じるとします。 クライアントは、 を処理するコンテキストで NdisClCloseAddressFamily を呼び出すこともできます。 NdisCmNotifyCloseAddressFamily 要求。
NDIS はクライアントの を呼び出します。 ProtocolUnbindAdapterEx 関数は、そのクライアントがバインドされている基になる NIC がコンピューターから削除されるか、再構成されている場合に常に機能します。 基になるミニポート ドライバーの PnP 再構成により、呼び出しマネージャーまたは MCM ドライバーは、その NIC でサポートされているアドレス ファミリを再登録します。 これにより、クライアントの の後続の呼び出しが発生します。 ProtocolCoAfRegisterNotify 関数。 どちらのシナリオでも、クライアントの ProtocolUnbindAdapterEx 関数は、基になるミニポート ドライバーに依存する、現在使用されている未処理の NdisAfHandle で NdisClCloseAddressFamily を呼び出す必要があります。
一般的なガイドラインとして、クライアントは、ミニポート ドライバーを介して接続指向の通信に割り当てられたすべてのリソースを、その前に解放する必要があります。 ProtocolUnbindAdapterEx 関数は NdisCloseAdapterEx を呼び出します。
NdisClCloseAddressFamily に渡された NdisAfHandle は、この呼び出しが発生するとすぐにクライアントに対して無効になります。
NdisClCloseAddressFamily の呼び出しの前に、AF が開いている間、または ProtocolClNotifyCloseAf 操作は保留中です。 取得するオブジェクトで ProtocolClNotifyCloseAf 関数は、NDIS_STATUS_PENDINGを返します。閉じる操作の完了後に NdisClNotifyCloseAddressFamilyComplete を呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (NdisClCloseAddressFamily (NDIS 5.1) を参照) でサポートされています。 Windows XP で NDIS 5.1 ドライバー (NdisClCloseAddressFamily (NDIS 5.1) を参照) でサポートされています。 |
対象プラットフォーム | デスクトップ |
Header | ndis.h (Ndis.h を含む) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 | Irql_Protocol_Driver_Function(ndis) |