PROTOCOL_CM_DROP_PARTY コールバック関数 (ndis.h)
ProtocolCmDropParty 関数が必要です。 NDIS は ProtocolCmDropParty を呼び出して、呼び出しマネージャーが既存のマルチポイント呼び出しからパーティを削除するように要求します。
構文
PROTOCOL_CM_DROP_PARTY ProtocolCmDropParty;
NDIS_STATUS ProtocolCmDropParty(
[in] NDIS_HANDLE CallMgrPartyContext,
[in, optional] PVOID CloseData,
[in, optional] UINT Size
)
{...}
パラメーター
[in] CallMgrPartyContext
通話マネージャーがパーティごとの状態を維持する、呼び出しマネージャーによって割り当てられたコンテキスト領域へのハンドルを指定します。 このハンドルは、呼び出しマネージャー ProtocolCmAddParty 関数で NDIS に提供されました。
[in, optional] CloseData
パーティが削除される前に接続を介して送信する必要がある、接続指向のクライアント固有のデータを含むバッファーへのポインター。 基になるネットワーク メディアが接続を閉じるときにデータの転送をサポートしていない場合、このパラメーターは NULL です 。
[in, optional] Size
CloseData が NULL の場合、CloseData のバッファーの長さをバイト単位で指定します。
戻り値
ProtocolCmDropParty は、その操作の状態を次のいずれかの値として返します。
リターン コード | 説明 |
---|---|
|
通話マネージャーがパーティを正常に削除し、閉じるデータを送信し、コンテキスト領域に割り当てられたリソースを解放したことを示します。 |
|
通話マネージャーがパーティを非同期的に削除する要求を完了することを示します。 呼び出しマネージャーは、すべての処理が完了したときに NdisCmDropPartyComplete を呼び出して、NDIS と要求側のアクターにパーティが削除されたことを通知する必要があります。 |
|
CloseData が呼び出しマネージャーに指定されたが、メディアの種類が接続終了と同時にデータを送信することをサポートしていないことを示します。 |
注釈
ProtocolCmDropParty は、ネットワーク 制御デバイスまたはその他のメディア固有のエージェントと通信し、必要に応じて、そのメディアが既存のマルチポイント呼び出しからパーティを削除します。 呼び出しマネージャーがネットワーク制御エージェント (ネットワーク スイッチなど) と通信する必要がある場合は、ネットワーク制御エージェントで確立したネットワーク制御エージェントへの仮想接続を使用する必要があります。 ProtocolBindAdapterEx 関数。
CloseData が NULL 以外で、接続終了時のデータの送信がそのメディアの種類でサポートされている場合、呼び出しマネージャーは終了を完了する前に CloseData で指定されたデータを送信する必要があります。 接続終了と同時にデータを送信することがメディアの種類でサポートされていない場合、呼び出しマネージャーは NDIS_STATUS_INVALID_DATA を使用して制御を返す必要があります。
呼び出しマネージャーは、 CallMgrPartyContext に割り当て、格納したパーティごとのリソースも解放する必要があります。 さらに、呼び出しマネージャーは、格納されているバッファー CallMgrPartyContext 自体を 解放する必要があります。 これを行わないと、メモリ リーク状態になります。
例
ProtocolCmDropParty 関数を定義するには、まず、定義する関数の型を識別する関数宣言を指定する必要があります。 Windows には、ドライバーの関数型のセットが用意されています。 関数の種類を使用して関数を宣言すると、 ドライバーのコード分析、 静的ドライバー検証ツール (SDV)、およびその他の検証ツールでエラーが検出され、Windows オペレーティング システム用のドライバーを記述するための要件になります。たとえば、" MyCmDropParty" という名前の ProtocolCmDropParty 関数を定義するには、次のコード例に示すように 、PROTOCOL_CM_DROP_PARTY 型を使用します。
PROTOCOL_CM_DROP_PARTY MyCmDropParty;
次に、次のように関数を実装します。
_Use_decl_annotations_
NDIS_STATUS
MyCmDropParty(
NDIS_HANDLE CallMgrPartyContext,
PVOID CloseData,
UINT Size
)
{...}
PROTOCOL_CM_DROP_PARTY関数の種類は、Ndis.h ヘッダー ファイルで定義されます。 コード分析ツールを実行するときにエラーをより正確に識別するには、 Use_decl_annotations 注釈を関数定義に追加してください。 Use_decl_annotations注釈を使用すると、ヘッダー ファイル内のPROTOCOL_CM_DROP_PARTY関数型に適用される注釈が確実に使用されます。 関数宣言の要件の詳細については、「NDIS ドライバーの関数 ロール型を使用して関数を宣言する」を参照してください。
Use_decl_annotationsの詳細については、「関数の動作に注釈を付ける」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (「ProtocolCmDropParty (NDIS 5.1)」を参照) でサポートされています。 Windows XP の NDIS 5.1 ドライバー (「ProtocolCmDropParty (NDIS 5.1)」を参照) でサポートされています。 |
対象プラットフォーム | Windows |
ヘッダー | ndis.h (Ndis.h を含む) |
IRQL | <= DISPATCH_LEVEL |