共用方式為


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或任何 CM 決定NDIS_STATUS_ XXX,但NDIS_STATUS_PENDING除外。

[in] NdisVcHandle

指定用戶端建立之 VC 的句柄,呼叫管理員原本是為其 ProtocolCoCreateVc 函式取得的輸入參數。 最近,CM 會從傳遞給其 ProtocolCmMakeCall 函式 CallMgrVcCon text 所指定的每個 VC 狀態取得此句柄。

[in, optional] NdisPartyHandle

指定用戶端建立之多點 VC 上初始合作物件的句柄,呼叫管理員會取得此句柄做為其 ProtocolCmMakeCall 函式的輸入參數。 如果指定的 NdisVcHandle 代表點對點 VC,則此參數 NULL

[in, optional] CallMgrPartyContext

指定 CM 提供的句柄給呼叫端配置的駐地內容區域,其中 CM 會維護每一方的狀態資訊,如果 NdisPartyHandle為 NULL,則為 NULL。 對於多點 VC,NDIS 會將此 CM 提供的 CallManagerPartyContext 處理,所有後續呼叫到與此合作對象相關的 ProtocolCmXxx 函式。 否則,NDIS 會忽略此參數。

[in] CallParameters

類型 CO_CALL_PARAMETERS 結構的指標,指定 狀態 為這個連接設定的呼叫參數NDIS_STATUS_SUCCESS。

傳回值

沒有

言論

只有基礎迷你埠驅動程式已準備好在 VC 上進行數據傳輸時,獨立呼叫管理員才能呼叫 NdisMCmMakeCallComplete NDIS_STATUS_SUCCESS。 也就是說,呼叫管理員已與網路交涉,以建立 VC 的呼叫參數,並成功呼叫 NdisCmActivateVc

獨立呼叫管理員必須呼叫 NdisCmMakeCallComplete,如果先前針對指定 NdisVcHandle 傳 NDIS_STATUS_PENDING回的 protocolCmMakeCall 函式 ProtocolCmMakeCall 函式。 起始暫止傳出呼叫的用戶端在 CM 呼叫 NdisCmMakeCallComplete NDIS_STATUS_SUCCESS 之前,無法使用 VC 進行傳輸。

即使嘗試的連線失敗,NDIS 和用戶端都無法釋放他們配置來維護狀態的資源,直到 CM 呼叫 NdisCmMakeCallComplete 造成該用戶端的呼叫 ProtocolClMakeCallComplete 函式。 事實上,忽略呼叫 NdisCmMakeCallComplete,嘗試設定這類連線失敗也會導致呼叫管理員中的記憶體流失:它可防止用戶端卸除針對其失敗傳出呼叫所建立的 VC,因此不會呼叫 CM 來釋放它為該 VC 配置的資源。

如果 CM 針對 狀態傳遞錯誤,例如 NDIS_STATUS_FAILURE,則應該在呼叫 NdisCmMakeCallComplete時,考慮 NdisPartyHandle。 當 NdisCmMakeCallComplet e 傳回控件時,CM 可以釋出或重新初始化以供重複使用的任何資源,以維護指定合作物件的狀態。 每當 CM 將錯誤狀態傳遞至 NdisCmMakeCallComplete時,會呼叫 CM 的 ProtocolCoDeleteVc 函式,以釋放 CM 配置用來追蹤用戶端建立 VC 狀態的任何資源。

在設定用戶端起始的傳出呼叫過程中,CM 可以修改原本傳入至其 ProtocolCmMakeCall 函式的用戶端提供的呼叫參數。 如果這樣做,當 CM 呼叫 NdisCmMakeCallComplete時,必須在 CallParameters 中傳遞其修改。 如果客戶端發現這些修改過的呼叫參數無法接受,則會卸除呼叫,這也會導致呼叫 CM 的 ProtocolCoDeleteVc 函式。

只有向 NDIS 註冊為通訊協定驅動程式的獨立呼叫管理員,才能呼叫 NdisCmMakeCallComplete。 提供整合式通話管理支援通話的迷你埠驅動程式 NdisMCmMakeCallComplete

要求

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

另請參閱

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisMCmMakeCallComplete

ProtocolClMakeCallComplete

ProtocolCmMakeCall

ProtocolCoDeleteVc