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 會將此句柄傳回至此 VC 的所有後續呼叫中 MCM 驅動程式。

[out] NdisVcHandle

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

傳回值

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

傳回碼 Description
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 會在 NdisMCmCreateVc 傳回控制權之前呼叫用戶端的 ProtocolCoCreateVc 函式。 如果對 NdisMCmCreateVc 的呼叫成功,MCM 驅動程式可以繼續通知適當的用戶端,並將傳回的值傳遞至 NdisVcHandle NdisMCmDispatchIncomingCall

驅動程式寫入器會判斷 MCM 驅動程式是否有 (內部) MiniportCoCreateVc 函式,驅動程式在設定連出和連入呼叫的連線內容中呼叫。

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

規格需求

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

另請參閱

MiniportCoCreateVc

NdisAllocateFromNPagedLo一sideList

NdisClMakeCall

NdisCoCreateVc

NdisMCmDeleteVc

NdisMCmDispatchIncomingCall

ProtocolCmRegisterSap

ProtocolCoCreateVc