NdisCmActivateVc 函式 (ndis.h)

NdisCmActivateVc 會將 CM 提供的呼叫參數傳遞至基礎迷你埠驅動程式,包括媒體參數。

語法

NDIS_STATUS NdisCmActivateVc(
  [in]      NDIS_HANDLE         NdisVcHandle,
  [in, out] PCO_CALL_PARAMETERS CallParameters
);

參數

[in] NdisVcHandle

指定要設定呼叫參數的 VC 句柄。 呼叫管理員從 NdisCoCreateVc 取得傳入呼叫的這個句柄,或做為其 ProtocolCoCreateVc 函式的輸入參數,用於用戶端起始的傳出呼叫。

[in, out] CallParameters

CM 配置的駐留緩衝區指標,格式化為類型 CO_CALL_PARAMETERS的結構,其中包含基礎迷你埠驅動程式用於 VC 啟用的所有媒體特定參數。

傳回值

NdisCmActivateVc 傳回NDIS_STATUS_PENDING以外的任何專案時,呼叫管理員應該對其進行內部呼叫 ProtocolCmActivateVcComplete 函式 。 否則,當此作業完成時,NDIS 會呼叫CM的 ProtocolCmActivateVcComplete 函式。

備註

NdisCmActivateVc 會通知基礎迷你埠驅動程式在新建立的 VC 上設定呼叫和媒體參數,或變更已建立 VC 的呼叫和媒體參數。 NDIS 會將指定的呼叫參數和 VC 句柄轉送到基礎迷你埠驅動程式的 MiniportCoActivateVc 函式,其會設定所有必要的資源來追蹤 VC 的狀態,並讓其本身和 NIC 準備好在 VC 上進行數據傳輸。

獨立 CM 一律會在 VC 上建立連線之後呼叫 NdisCmActivateVc ,但在該 VC 上傳送或接收任何數據之前。 在連線期間,CM 可以使用與網路變更和/或用戶端呼叫 NdisClModifyCallQoS 時相同的 NdisVcHandle 多次呼叫 NdisCmActivateVc。 在每個這類呼叫 NdisCmActivateVc 時,基礎迷你埠驅動程式的 MiniportCoActivateVc 函式必須執行下列其中一項:

  • 如果迷你埠驅動程式可以根據新修改的呼叫參數,繼續在 VC 上進行傳輸,則迷你埠驅動程式會維護呼叫管理員所提供的新值呼叫參數的狀態。
  • 如果迷你埠驅動程式無法繼續在指定呼叫參數的條件約束下進行傳輸,則呼叫會失敗。
當基礎迷你埠驅動程序無法設定或重設呼叫參數的要求時,呼叫管理員可能會在 CallParameters 修改其原始規格,然後再次呼叫 NdisCmActivateVc 。 任何呼叫管理員嘗試啟用 VC 的次數限制都是實作相依的。

針對用戶端起始的傳出呼叫,獨立 CM 通常會在封包交換之後立即呼叫 NdisCmActivateVc ,確認與交換器上呼叫的遠端目標或成功呼叫設定的協定,再通知 NDIS (,並使用 NdisCmMakeCallComplete 通知 NDIS 和用戶端) 撥出通話完成。 對於連入通話,通話管理員通常會在呼叫 NdisCoCreateVc 成功呼叫 NdisCoCreateVc 之後呼叫 NdisCmActivateVc,並在呼叫之前呼叫 NdisCmDispatchIncomingCall

在設定傳出呼叫的過程中,以及任何 VC 保持啟用狀態時,用戶端可以呼叫 VC 的呼叫參數變更,例如呼叫 NdisClModifyCallQos。 驗證任何這類要求之指定呼叫參數的有效性之後,獨立呼叫管理員必須呼叫 NdisCmActivateVc ,將修改的呼叫參數向下傳遞至基礎迷你埠驅動程式。

只有向 NDIS 註冊為通訊協定驅動程式的獨立呼叫管理員,才能呼叫 NdisCmActivateVc。 提供整合式呼叫管理支持的連線導向迷你埠驅動程式會改為呼叫 NdisMCmActivateVc

規格需求

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

另請參閱

CO_CALL_PARAMETERS

MiniportCoActivateVc

NdisClMakeCall

NdisClModifyCallQos

NdisCmDeactivateVc

NdisCmDispatchIncomingCall

NdisCoCreateVc

NdisMCmActivateVc

ProtocolCmActivateVcComplete

ProtocolCoCreateVc