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) |