NdisCoCreateVc 関数 (ndis.h)

NdisCoCreateVc は、クライアントが発信呼び出しを行うことができる接続エンドポイント、またはスタンドアロンの通話マネージャーが着信呼び出しをディスパッチできる接続エンドポイントを設定します。

構文

NDIS_STATUS NdisCoCreateVc(
  [in]           NDIS_HANDLE  NdisBindingHandle,
  [in, optional] NDIS_HANDLE  NdisAfHandle,
  [in]           NDIS_HANDLE  ProtocolVcContext,
  [in, out]      PNDIS_HANDLE NdisVcHandle
);

パラメーター

[in] NdisBindingHandle

呼び出し元がバインドされている次の下位ドライバーのターゲット NIC または仮想アダプターを識別する NdisOpenAdapterEx によって返されるハンドルを指定します。

[in, optional] NdisAfHandle

呼び出し元がクライアントの場合 に NdisClOpenAddressFamilyEx によって返されるハンドルを指定します。 呼び出しマネージャーは、ネットワーク スイッチへの VC など、それ自体の VC を作成する場合、このパラメーターを NULL に設定します。 着信通知用の VC を作成すると、コール マネージャーは、入力パラメーターとして渡された CallMgrAfContext によって指定された AF ごとの状態で保存した AF ハンドルを そのに渡します。 ProtocolCmRegisterSap 関数。

[in] ProtocolVcContext

呼び出し元がこの VC の状態を維持する、呼び出し元が指定した常駐コンテキスト領域へのハンドルを指定します。 NDIS は、NdisCoCreateVc への呼び出しが成功した場合、このエンドポイントに関する後続のすべての呼び出しで、このハンドルを VC 作成者に返します。

[in, out] NdisVcHandle

NdisCoCreateVc が呼び出されたときに NULL に初期化する必要がある呼び出し元から提供される変数へのポインター。 呼び出しが成功すると、これは NDIS が新しく作成された VC のハンドルに設定した変数を指します。 呼び出し元は、接続指向 Ndis Xxx 関数への後続の呼び出しのために、このハンドルを保存する必要があります。

戻り値

NdisCoCreateVc は 、次のいずれかを返すことができます。

リターン コード 説明
NDIS_STATUS_SUCCESS
NDIS は VC を正常に作成しました。
NDIS_STATUS_RESOURCES
NDIS は、VC を設定するのに十分なメモリを割り当てませんでした。
NDIS_STATUS_FAILURE
指定された NdisAfHandle が無効です。
NDIS_STATUS_ XXX
基になるミニポート ドライバーは、NDIS が呼び出し元に伝達されているミニポート ドライバーによって決定された理由で VC の作成に失敗しました。

注釈

クライアントまたはスタンドアロンの呼び出しマネージャーは、VC がそれぞれ発信呼び出しと着信呼び出しのどちらを表すかに応じて、 NdisCoCreateVc を使用して VC を作成します。

VC の作成プロセスでは、NDIS は、クライアント、呼び出しマネージャー、および両方のプロトコル ドライバーがバインドされているミニポート ドライバーに NdisVcHandle を提供します。 このハンドルは、指定された VC に関する後続の要求が送信されるクライアント、呼び出しマネージャー、およびミニポート ドライバーの仮想回線を識別します。 各ドライバーは、この VC ハンドルを不透明な変数として扱う必要があります。これは、特定の接続指向 NDIS ライブラリ関数の後続の呼び出しで変更されておらず、解釈されません。

通常、 NdisCoCreateVc の呼び出し元は、返された NdisVcHandleProtocolVcContext の呼び出し元割り当て状態領域に格納します。 NDIS では、このハンドルを入力パラメーターとして、VC の各作成に関係する他の 2 つのドライバーの ProtocolCoCreateVc 関数と MiniportCoCreateVc 関数に渡します。

発信呼び出しを行うには、クライアントが最初に NdisCoCreateVc を 呼び出す必要があります。 同期操作として、NDIS は、 NdisCoCreateVc が制御を返す前に、基になるミニポート ドライバーのミニポートCoCreateVc 関数と呼び出しマネージャーの ProtocolCoCreateVc 関数 呼び出します。 NdisCoCreateVc の呼び出しが成功した場合、クライアントは送信呼び出しを続行し、返された NdisVcHandleNdisClMakeCall に渡すことができます。

次の場合 ProtocolCoReceiveNetBufferLists 関数は、登録されている SAP のいずれかに送信される着信呼び出しのオファーを処理します。呼び出しマネージャーは、まず NdisCoCreateVc を呼び出す必要があります。 同期操作として、NDIS は、 NdisCoCreateVc が制御を返す前に、基になるミニポート ドライバーの MiniportCoCreateVc 関数とクライアントの ProtocolCoCreateVc 関数を 呼び出します。 NdisCoCreateVc の呼び出しが成功した場合、呼び出しマネージャーは適切なクライアントへの通知を続行し、NdisVcHandle で返された値を に渡すことができます NdisCmDispatchIncomingCall

スタンドアロンの呼び出しマネージャーは、プロトコル ドライバーとして NDIS に自分自身を登録し、 NdisCoCreateVc を呼び出すことができます。 代わりに、統合された呼び出し管理サポート呼び出し NdisMCmCreateVc を提供する接続指向のミニポート ドライバー。

要件

要件
サポートされている最小のクライアント Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (NdisCoCreateVc (NDIS 5.1) を参照) でサポートされています。 Windows XP の NDIS 5.1 ドライバー (NdisCoCreateVc (NDIS 5.1) を参照) でサポートされています。
対象プラットフォーム デスクトップ
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 Irql_Connection_Function(ndis)

こちらもご覧ください

MiniportCoCreateVc

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCmDispatchIncomingCall

NdisCoDeleteVc

NdisMCmCreateVc

ProtocolCmRegisterSap

ProtocolCoCreateVc

ProtocolCoReceiveNetBufferLists