NdisClDropParty 関数 (ndis.h)
NdisClDropParty は、クライアントのマルチポイント VC からパーティを削除します。
構文
NDIS_STATUS NdisClDropParty(
[in] NDIS_HANDLE NdisPartyHandle,
[in, optional] PVOID Buffer,
[in, optional] UINT Size
);
パラメーター
[in] NdisPartyHandle
マルチポイント接続でドロップするパーティを識別するハンドルを指定します。 クライアントは、 NdisClAddParty または NdisClMakeCall の前の呼び出しからこのハンドルを取得しました。
[in, optional] Buffer
リモート ノード上のパーティのマルチポイント接続を閉じるために送信されるデータを含む呼び出し元によって割り当てられたバッファーへのポインター。 基になるメディアに応じて、このポインターは NULL にすることができます。
[in, optional] Size
Buffer のサイズをバイト単位で指定 します。 Buffer が NULL の場合は 0 です。
戻り値
NdisClDropParty がNDIS_STATUS_PENDING以外のものを返す場合、クライアントは、 ProtocolClDropPartyComplete 関数。 それ以外の場合、NDIS は、この操作が完了したときにクライアントの ProtocolClDropPartyComplete 関数を呼び出します。
注釈
クライアントは通常、次のいずれかの状況で NdisClDropParty を呼び出します。
-
からマルチポイント接続から特定のパーティを削除する ProtocolClIncomingDropParty 関数。
これは、リモート ノード上のパーティが NdisClCloseCall との接続を閉じるときに発生します。 NDIS は、ローカル クライアントの ProtocolClDropPartyComplete 関数を呼び出すときに、クライアントがこのパーティに関する状態を維持していた ProtocolPartyContext のコンテキスト領域を解放または再利用できます。
-
クライアントが NdisClMakeCall で最初に設定したマルチポイント接続の最後のパーティと共に NdisClCloseCall を呼び出す前。
このようなクライアントによって開始された独自のマルチポイント呼び出しの終了では、クライアントは NdisClDropParty を 1 回以上呼び出して、マルチポイント VC 上の残りのすべてのパーティを削除する必要があります。
一般的なガイドラインとして、クライアントは NdisClCloseCall とのマルチポイント接続を閉じる前に、NdisClMakeCall から取得した特定の NdisVcHandle で NdisClAddParty と呼ばれる回数だけ NdisClDropParty を呼び出す必要があります。 リモート パーティは接続の終了を開始できるため、ローカル クライアントの ProtocolClIncomingDropParty 関数は、NdisClCloseCall を呼び出す前に NdisClDropParty に対して行う必要がある呼び出しの数を把握するために、ローカル クライアントがマルチポイント VC 上のアクティブなパーティの数を追跡する必要があります。
ただし、クライアントが最初にマルチポイント接続を設定したときに NdisClMakeCall によって返されるのと同じ NdisPartyHandleを NdisClCloseCall に渡す必要はありません。 クライアントは、NdisClAddParty または NdisClMakeCall から返されたすべての NdisPartyHandle を NdisClDropParty への呼び出しで解放し、その後、同じマルチポイント VC の NdisClCloseCall への最後のパーティ ハンドルを含む最後の呼び出しをリリースする限り、任意の順序でマルチポイント VC のパーティを解放できます。 クライアントは、マルチポイント呼び出しを閉じた後、 NdisCoDeleteVc で最初に作成した VC を解放できます。
NdisClDropParty の呼び出し元は、この呼び出しを行うとすぐに、入力 NdisPartyHandle が無効であると見なす必要があります。 このハンドルが割り当てられたパーティ コンテキスト領域に格納されている場合、クライアントの ProtocolClDropPartyComplete 関数は、パーティが削除されたときに再利用するためにパーティごとのコンテキスト領域を再初期化する場合、ハンドル変数を NULL にリセットする必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (「NdisClDropParty (NDIS 5.1)」を参照) でサポートされています。 Windows XP の NDIS 5.1 ドライバー (NdisClDropParty (NDIS 5.1) を参照) でサポートされています。 |
対象プラットフォーム | デスクトップ |
Header | ndis.h (Ndis.h を含む) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 | Irql_Protocol_Driver_Function(ndis) |