共用方式為


NdisMCmCreateVc 函式 (ndis.h)

NdisMCmCreateVc 設定 MCM 驅動程式可以將來電供應專案分派給客戶端的連線端點。

語法

NDIS_STATUS NdisMCmCreateVc(
  [in]  NDIS_HANDLE  MiniportAdapterHandle,
  [in]  NDIS_HANDLE  NdisAfHandle,
  [in]  NDIS_HANDLE  MiniportVcContext,
  [out] PNDIS_HANDLE NdisVcHandle
);

參數

[in] MiniportAdapterHandle

指定原始輸入至 MiniportInitializeEx的 NDIS 提供句柄。

[in] NdisAfHandle

指定句柄,這個句柄會識別作為傳入呼叫目標的用戶端。 MCM 驅動程式取得此句柄做為其 ProtocolCmOpenAf 函式的輸入參數。

[in] MiniportVcContext

指定呼叫端提供的常駐內容區域的句柄,其中 MCM 驅動程式會維護此 VC 的狀態。 如果呼叫 NdisMCmCreateVc 成功,則 NDIS 會將此句柄傳回至 MCM 驅動程式。

[out] NdisVcHandle

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

傳回值

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

傳回碼 描述
NDIS_STATUS_SUCCESS
NDIS 已成功建立 VC。
NDIS_STATUS_RESOURCES
NDIS 無法配置足夠的記憶體來設定 VC。
NDIS_STATUS_FAILURE
指定的 NdisAfHandle 無效。
NDIS_STATUS_XXX
客戶端因為某些原因而無法建立 VC,而 NDIS 已將其 ProtocolCoCreateVc 函式傳回的錯誤狀態傳播至 MCM 驅動程式。

言論

MCM 驅動程式會建立具有 NdisMCmCreateVc 的 VC,以代表從導向至已向 MCM 驅動程式註冊之 SAP 之遠端節點的連入供應專案。

在建立 VC 的過程中,NDIS 會將 NdisVcHandle 提供給用戶端和 MCM 驅動程式。 此句柄會識別用戶端和迷你埠驅動程式的虛擬連線,並指示後續有關指定 VC 的要求。 每個驅動程式都必須將此 VC 句柄視為不透明變數,並在後續對特定連線導向 NDIS 連結庫函式的呼叫中傳遞它未修改且未解譯。

通常,NdisMCmCreateVc 的呼叫者 將傳回的 NdisVcHandle 儲存在呼叫端配置的狀態區域中,MiniportVcContext 。 每當 MCM 驅動程式建立 VC 時,NDIS 會將 NdisVcHandle 當做輸入參數傳遞至適當用戶端的 ProtocolCoCreateVc 函式。

當 MCM 驅動程式處理導向至其中一個已註冊 SAP 的傳入呼叫供應專案時,必須先呼叫 NdisMCmCreateVc。 作為同步作業,NDIS 會先呼叫用戶端的 ProtocolCoCreateVc 函式,再 NdisMCmCreateVc 傳回控制權。 如果呼叫 NdisMCmCreateVc 成功,MCM 驅動程式可以繼續通知適當的用戶端,將傳回的值傳遞至 NdisVcHandle NdisMCmDispatchIncomingCall

驅動程式寫入器會判斷 MCM 驅動程式是否具有 MiniportCoCreateVc MiniportCoCreateVc 函式,此函式是驅動程式在設定連出和連入呼叫的連線時呼叫。

只有提供整合式呼叫管理支援的連線導向迷你連接埠驅動程式可以呼叫 NdisMCmCreateVc。 獨立呼叫管理員和用戶端,將自己註冊為通訊協定驅動程式的 NDIS,請改為呼叫 NdisCoCreateVc

要求

要求 價值
最低支援的用戶端 支援 Windows Vista 中的 NDIS 6.0 和 NDIS 5.1 驅動程式(請參閱 NdisMCmCreateVc (NDIS 5.1)。 支援 Windows XP 中的 NDIS 5.1 驅動程式(請參閱 NdisMCmCreateVc (NDIS 5.1)。
目標平臺 桌面
標頭 ndis.h (包括 Ndis.h)
連結庫 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 Irql_MCM_Function(ndis)

另請參閱

MiniportCoCreateVc

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCoCreateVc

NdisMCmDeleteVc

NdisMCmDispatchIncomingCall

ProtocolCmRegisterSap

ProtocolCoCreateVc