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 將此要求轉送給呼叫管理員的 ProtocolCmMakeCall 函式,用戶端會與其共用指定的 NdisVcHandle。 CM 負責在 CallParameters 驗證指定的數據。 它可以在與相關網路元件交涉時修改此用戶端提供的數據,而且可以傳回與原本提供給 NdisClMakeCall用戶端不同的流量參數。 用戶端的 ProtocolClMakeCallComplete 函式負責接受修改的呼叫參數,如果發生這種情況,或如果 CM 的建議呼叫參數無法接受,則會卸除呼叫。
因此,CallParameters 的數據必須至少在通話設定期間維持給呼叫管理員。 NdisClMakeCall 傳回NDIS_STATUS_PENDING時,客戶端無法釋放此緩衝區。 它必須延遲釋放此用戶端配置的資源,直到呼叫其 ProtocolClMakeCallComplete 函式為止。
如果 NdisClMakeCall 設定多點連線,除非基礎網路媒體支援每一方流量參數,否則用戶端會全域建立給定 VC 的流量參數。
用戶端的 ProtocolClMakeCallComplete 函式應該先檢查輸入狀態 狀態 是否有NDIS_STATUS_SUCCESS,再於 NdisPartyHandle 使用任何傳回的句柄。 如果呼叫管理員無法要求在多點連線上設定呼叫,則這個用戶端提供的變數值無效。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista 中支援 NDIS 6.0 和 NDIS 5.1 驅動程式(請參閱 NdisClMakeCall (NDIS 5.1)。 支援 Windows XP 中的 NDIS 5.1 驅動程式(請參閱 NdisClMakeCall (NDIS 5.1)。 |
目標平臺 | 桌面 |
標頭 | ndis.h (包括 Ndis.h) |
連結庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | Irql_Protocol_Driver_Function(ndis) |