NdisClMakeCall 函式 (ndis.h)

NdisClMakeCall 會在用戶端建立的 VC 上設定傳出呼叫。

語法

NDIS_STATUS NdisClMakeCall(
  [in]            NDIS_HANDLE         NdisVcHandle,
  [in, out]       PCO_CALL_PARAMETERS CallParameters,
  [in, optional]  NDIS_HANDLE         ProtocolPartyContext,
  [out, optional] PNDIS_HANDLE        NdisPartyHandle
);

參數

[in] NdisVcHandle

指定先前呼叫 NdisCoCreateVc 所傳回的句柄。

[in, out] CallParameters

呼叫端已為此連線指定屬性 之類型CO_CALL_PARAMETERS 結構的指標,例如呼叫、延遲、頻寬和服務品質的目標位址,如果呼叫管理員支援的網路媒體和位址系列允許 QoS 規格。

[in, optional] ProtocolPartyContext

選擇性地將呼叫端提供的句柄指定給常駐內容區域,用戶端會在其多點 VC 上維護初始合作物件的每個合作對象狀態。 如果指定的 VC 不代表多點連線,則此參數為 NULL 。 針對多點 VC,NDIS 會將此句柄傳回用戶端的 ProtocolClXxx 函式,所有後續影響此特定合作對象的呼叫。

[out, optional] NdisPartyHandle

呼叫端提供的變數指標,通常是在呼叫端配置的合作對象內容區域中,其中 NDIS 會傳回句柄,代表在設定傳出呼叫的要求成功時,對多點連接的初始合作物件。 如果 ProtocolPartyContextNULL,此變數通常是在用戶端的 VC 內容區域中,也會在傳出呼叫設定完成時設定為 NULL

傳回值

NdisClMakeCall 傳回NDIS_STATUS_PENDING以外的任何專案時,客戶端應該對其進行內部呼叫 ProtocolClMakeCallComplete 函式 。 否則,當此作業完成時,NDIS 會呼叫用戶端的 ProtocolClMakeCallComplete 函式。

備註

NdisClMakeCall 會為用戶端起始的傳出呼叫設定用戶端建立的 VC 屬性。 客戶端必須先使用 NdisCoCreateVc 設定 VC ,才能嘗試撥打外接電話。

呼叫 NdisClMakeCall 會導致 NDIS 將此要求轉送到用戶端共用指定 NdisVcHandle 之呼叫管理員的 ProtocolCmMakeCall 函式。 CM 負責在 CallParameters 驗證指定的數據。 它可以修改此用戶端提供的數據,同時與相關的網路元件交涉,而且可以傳回與原本提供給 NdisClMakeCall 用戶端不同的流量參數。 用戶端的 ProtocolClMakeCallComplete 函式負責在發生此情況時接受修改的呼叫參數,或者如果無法接受 CM 的建議呼叫參數,則會終止呼叫。

因此, CallParameters 的數據必須至少在呼叫設定期間提供給呼叫管理員使用。 當 NdisClMakeCall 傳回NDIS_STATUS_PENDING時,客戶端無法釋放此緩衝區。 它必須延遲釋放此用戶端配置的資源,直到呼叫其 ProtocolClMakeCallComplete 函式為止。

如果 NdisClMakeCall 設定多點連線,除非基礎網路媒體支持個別合作物件流量參數,否則用戶端會全域為指定的 VC 建立流量參數。

用戶端的 ProtocolClMakeCallComplete 函式應該先檢查輸入 狀態 NDIS_STATUS_SUCCESS,再使用 NdisPartyHandle 的任何傳回句柄。 如果呼叫管理員失敗,要求在多點連線上設定呼叫,則此用戶端提供的變數值無效。

規格需求

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

另請參閱

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLo,sideList

NdisClAddParty

NdisCloseCall

NdisClModifyCallQoS

NdisCmActivateVc

NdisCmMakeCallComplete

NdisCoCreateVc

ProtocolClMakeCallComplete

ProtocolCmMakeCall