NdisCmMakeCallComplete 関数 (ndis.h)
NdisCmMakeCallComplete は、クライアントの要求の最終的な状態を返します。この要求に対して、呼び出しマネージャーは以前にNDIS_STATUS_PENDINGを返して発信呼び出しを行いました。
構文
void NdisCmMakeCallComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE NdisVcHandle,
[in, optional] NDIS_HANDLE NdisPartyHandle,
[in, optional] NDIS_HANDLE CallMgrPartyContext,
[in] PCO_CALL_PARAMETERS CallParameters
);
パラメーター
[in] Status
接続の試行の最終的な状態を指定します(NDIS_STATUS_SUCCESS、またはNDIS_STATUS_PENDINGを除く、XXX の CM によって決定されるNDIS_STATUS_)。
[in] NdisVcHandle
クライアントが作成した VC へのハンドルを指定します。このハンドルは、呼び出しマネージャーが最初に ProtocolCoCreateVc 関数への入力パラメーターとして取得しました。 最近では、CM は、CallMgrVcContext によって指定された VC 単位の状態からこのハンドルを取得、ProtocolCmMakeCall 関数に渡されます。
[in, optional] NdisPartyHandle
クライアントが作成したマルチポイント VC の初期パーティへのハンドルを指定します。呼び出しマネージャーは、ProtocolCmMakeCall 関数への入力パラメーターとして取得します。 指定された NdisVcHandle がポイントツーポイント VC を表している場合、このパラメーターは NULL 。
[in, optional] CallMgrPartyContext
呼び出し元によって割り当てられた常駐コンテキスト領域に対する CM 提供のハンドルを指定します。この領域では、CM がパーティごとの状態情報を保持するか、NdisPartyHandle が NULL 場合は NULL を します。 マルチポイント VC の場合、NDIS は、このパーティに関係する ProtocolCmXxx 関数への後続のすべての呼び出しで、この CM 提供の CallManagerPartyContext ハンドルを渡します。 それ以外の場合、NDIS はこのパラメーターを無視します。
[in] CallParameters
Status がNDIS_STATUS_SUCCESSされている場合に、この接続に対して設定された呼び出しパラメーター を指定する CO_CALL_PARAMETERS 型の構造体へのポインター。
戻り値
何一つ
備考
スタンドアロンの呼び出しマネージャーは、基になるミニポート ドライバーが VC でデータ転送を行う準備ができている場合にのみ、NDIS_STATUS_SUCCESSを使用して NdisMCmMakeCallComplete を 呼び出す必要があります。 つまり、呼び出しマネージャーはネットワークとネゴシエートして VC の呼び出しパラメーターを確立し、NdisCmActivateVc 正常に呼び出。
スタンドアロン呼び出しマネージャーは、ProtocolCmMakeCall 関数が以前に指定された NdisVcHandle のNDIS_STATUS_PENDINGを返した場合に、NdisCmMakeCallComplete 呼び出す必要があります。 保留中の発信呼び出しを開始したクライアントは、CM が NDIS_STATUS_SUCCESS で NdisCmMakeCallComplete 呼び出すまで、VC を使用して転送を行うことはできません。
試行された接続が失敗した場合でも、NDIS とクライアントのどちらも、状態を維持するために割り当てられたリソースを解放できません。これは、NDISCmMakeCallComplete を する CM の呼び出しによって、そのクライアントの呼び出しが発生するまでです。ProtocolClMakeCallComplete 関数を します。 実際には、このような接続を設定しようとして失敗した場合に NdisCmMakeCallComplete 呼び出しを怠ると、呼び出しマネージャーでもメモリ リークが発生します。これにより、失敗した発信呼び出し用に作成した VC がクライアントによって破棄されるのを防ぐため、CM はその VC に割り当てられたリソースを解放するために呼び出されません。
CM が Statusのエラー (NDIS_STATUS_FAILURE など) に合格した場合は、NdisPartyHandle が存在する場合は、NdisCmMakeCallComplete を呼び出すとすぐに無効考慮する必要があります。 CM は、NdisCmMakeCallComplete が制御を返 すときに、特定のパーティの状態を維持するために割り当てられたリソースを解放 (または再初期化) できます。 CM の ProtocolCoDeleteVc 関数は、その後、CM が NdisCmMakeCallComplete にエラー状態を渡すたびに、クライアントが作成した VC の状態を追跡するために CM が割り当てたリソース解放するために呼び出されます。
クライアントが開始する発信呼び出しを設定する過程で、CM は、最初に ProtocolCmMakeCall 関数に渡されたクライアント指定の呼び出しパラメーターを変更できます。 その場合、CM は NdisCmMakeCallComplete を呼び出すときに、CallParameters のバッファー変更を渡す必要があります。 クライアントは、これらの変更された呼び出しパラメーターが許容できないと検出した場合、呼び出しを破棄します。これにより、CM の ProtocolCoDeleteVc 関数への呼び出しも発生します。
プロトコル ドライバーとして NDIS に自分自身を登録するスタンドアロンの呼び出しマネージャーのみが、NdisCmMakeCallComplete 呼び出すことができます。 統合された呼び出し管理サポート呼び出しを提供するミニポート ドライバー代わりに NdisMCmMakeCallComplete を します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (NdisCmMakeCallComplete (NDIS 5.1) を参照) でサポートされています。 Windows XP で NDIS 5.1 ドライバー (NdisCmMakeCallComplete (NDIS 5.1) を参照) でサポートされています。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | ndis.h (Ndis.h を含む) |
ライブラリ | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 を する | Irql_CallManager_Function(ndis) |
関連項目
NdisAllocateFromNPagedLookasideList のNdisClMakeCall の
NdisMCmMakeCallComplete の
ProtocolClMakeCallComplete の