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

指定 NdisOpenAdapterEx 所傳回的句柄,識別呼叫端所繫結之下一個較低驅動程式的目標 NIC 或虛擬配接器。

[in, optional] NdisAfHandle

指定當呼叫端是用戶端時 ,NdisClOpenAddressFamilyEx 所傳回的句柄。 如果呼叫管理員自行建立 VC,例如 VC 至網路交換器,則呼叫管理員會將此參數設定為 NULL 。 當它為來電通知建立 VC 時,呼叫管理員會將它儲存在其每個 AF 狀態的 AF 句柄傳遞至其作為輸入參數的 CallMgrAfContext 所指定的每個 AF 狀態 ProtocolCmRegisterSap 函式。

[in] ProtocolVcContext

指定呼叫端所提供之駐留內容區域的句柄,呼叫端會維護此 VC 的狀態。 如果 NdisCoCreateVc 的呼叫成功,NDIS 會將此句柄傳回給 VC 建立者,並在後續有關此端點的所有呼叫中傳遞回。

[in, out] NdisVcHandle

呼叫 NdisCoCreateVc 時,必須初始化為 NULL 的呼叫端提供變數指標。 從成功呼叫傳回時,這會指向 NDIS 已設定為其新建立 VC 句柄的變數。 呼叫端必須儲存此句柄,以便後續呼叫連線導向的 Ndis Xxx 函式。

傳回值

NdisCoCreateVc 可以傳回下列其中一項:

傳回碼 Description
NDIS_STATUS_SUCCESS
NDIS 已成功建立 VC。
NDIS_STATUS_RESOURCES
NDIS 無法配置足夠的記憶體來設定 VC。
NDIS_STATUS_FAILURE
指定的 NdisAfHandle 無效。
NDIS_STATUS_ XXX
基礎迷你埠驅動程序因為迷你埠驅動程序決定的原因而無法建立 VC,NDIS 已傳播到呼叫端。

備註

用戶端或獨立呼叫管理員會根據 VC 分別代表傳出或來電,使用 NdisCoCreateVc 建立 VC

在建立 VC 的過程中,NDIS 會將 NdisVcHandle 提供給用戶端、呼叫管理員,以及兩個通訊協定驅動程式所系結的迷你埠驅動程式。 此句柄會識別用戶端、呼叫管理員和迷你埠驅動程序的虛擬線路,而後續關於指定 VC 的要求會被導向。 每個驅動程式都必須將此 VC 句柄視為不透明變數,並在後續呼叫特定連線導向的 NDIS 連結庫函式時將其傳遞為未修改和未解譯。

通常, NdisCoCreateVc 的呼叫端會將傳回的 NdisVcHandle 儲存在 ProtocolVcContext 的呼叫端配置狀態區域中。 NDIS 會將此句柄當做輸入參數傳遞至每個建立 VC 時,其他兩個驅動程式的 ProtocolCoCreateVcMiniportCoCreateVc 函式。

若要進行撥出呼叫,客戶端必須先呼叫 NdisCoCreateVc 。 作為同步作業,NDIS 會在 NdisCoCreateVc 傳回控制權之前,先呼叫基礎迷你埠驅動程式的 MiniportCoCreateVc 函式和呼叫管理員的 ProtocolCoCreateVc 函式。 如果對 NdisCoCreateVc 的呼叫成功,用戶端可以繼續進行傳出呼叫,並將傳回的 NdisVcHandle 傳遞至 NdisClMakeCall

當其時機 ProtocolCoReceiveNetBufferLists 函式會處理導向至其中一個已註冊 SA 的傳入呼叫供應專案,呼叫管理員必須先呼叫 NdisCoCreateVc 。 作為同步作業,NDIS 會在 NdisCoCreateVc 傳回控制權之前,先呼叫基礎迷你埠驅動程式的 MiniportCoCreateVc 函式和用戶端的 ProtocolCoCreateVc 函式。 如果對 NdisCoCreateVc 的呼叫成功,則呼叫管理員可以繼續通知適當的用戶端,並將傳回的值傳遞至 NdisCmDispatchIncomingCall

向 NDIS 註冊為通訊協定驅動程式的獨立呼叫管理員可以呼叫 NdisCoCreateVc。 提供整合式呼叫管理支援的連線導向迷你埠驅動程式會改為呼叫 NdisMCmCreateVc

規格需求

需求
最低支援的用戶端 (支援 NDIS 6.0 和 NDIS 5.1 驅動程式,請參閱 Windows Vista 中的 NdisCoCreateVc (NDIS 5.1) ) 。 (支援 NDIS 5.1 驅動程式,請參閱 Windows XP 中的 NdisCoCreateVc (NDIS 5.1) ) 。
目標平台 桌面
標頭 ndis.h (包含 Ndis.h)
程式庫 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 Irql_Connection_Function (ndis)

另請參閱

MiniportCoCreateVc

NdisAllocateFromNPagedLo,sideList

NdisClMakeCall

NdisCmDispatchIncomingCall

NdisCoDeleteVc

NdisMCmCreateVc

ProtocolCmRegisterSap

ProtocolCoCreateVc

ProtocolCoReceiveNetBufferLists