PROTOCOL_CM_MODIFY_QOS_CALL回呼函式 (ndis.h)
需要 ProtocolCmModifyCallQoS 函式。 ProtocolCmModifyCallQoS 是由 NDIS 呼叫,當連線導向的用戶端要求變更現有虛擬連線的呼叫參數時。 如果基礎網路媒體不支援 QoS,ProtocolCmModifyQoS 應該只會傳回NDIS_STATUS_NOT_SUPPORTED。
語法
PROTOCOL_CM_MODIFY_QOS_CALL ProtocolCmModifyQosCall;
NDIS_STATUS ProtocolCmModifyQosCall(
[in] NDIS_HANDLE CallMgrVcContext,
[in] PCO_CALL_PARAMETERS CallParameters
)
{...}
參數
[in] CallMgrVcContext
指定呼叫管理員配置的內容區域的句柄,其中呼叫管理員會維護其每個 VC 狀態。 呼叫管理員為其 ProtocolCoCreateVc 函式提供此句柄給 NDIS。
[in] CallParameters
CO_CALL_PARAMETERS 結構的指標,其中包含 VC 連接導向用戶端所指定的新呼叫參數。
傳回值
ProtocolCmModifyQoS 傳回其作業的狀態,做為下列其中一個值:
傳回碼 | 描述 |
---|---|
|
表示呼叫管理員已成功將呼叫的參數與網路變更為呼叫參數,CallParameters 所指定的呼叫參數。 |
|
表示呼叫管理員會完成以異步方式修改呼叫參數的要求。 當呼叫管理員完成修改呼叫參數所需的所有作業時,它必須呼叫 NdisCmModifyCallQoSComplete。 |
|
表示呼叫管理員無法變更 VC 的呼叫參數,因為動態配置的資源無法使用。 |
|
表示呼叫管理員無法變更 VC 的呼叫參數,因為 CallParameters 提供的呼叫參數 是非法或無效的。 |
|
表示呼叫參數無法設定為呼叫參數,因為網路或另一個連線導向的網路元件失敗而提供。 |
言論
ProtocolCmModifyQoS 會與其媒體所需的網路控制裝置或其他媒體特定代理程式通訊,以修改已建立虛擬連線的媒體特定呼叫參數。 如果需要呼叫管理員才能與網路控制代理程式通訊(換句話說,網路交換器),它應該使用其 ProtocolBindAdapterEx 函式中建立的網路控制代理程式的虛擬連線。 獨立呼叫管理員會呼叫 NdisCoSendNetBufferLists來與網路代理程序通訊。 具有整合式通話管理的迷你埠驅動程式絕不會呼叫 NdisCoSendNetBufferLists。 相反地,這類驅動程式只會透過網路將數據傳輸到目標網路代理程式。
與網路通訊且變更成功之後,呼叫管理員必須接著使用新的呼叫參數呼叫 NdisCmActivateVc。 這會通知 NDIS 和/或連線導向迷你埠驅動程式呼叫參數已變更,並提供迷你埠驅動程式驗證這些參數的機會。
如果網路無法接受新的呼叫參數,或基礎迷你埠驅動程序無法接受參數,則呼叫管理員必須將虛擬連線還原到嘗試任何修改之前已存在的狀態,並傳回NDIS_STATUS_FAILURE。
範例
若要定義 ProtocolCmModifyCallQoS 函式,您必須先提供函式宣告,以識別您要定義的函式類型。 Windows 提供一組驅動程式的函式類型。 使用函式類型宣告函式有助於 驅動程式的程式代碼分析、靜態驅動程序驗證器 (SDV)和其他驗證工具尋找錯誤,而且是撰寫 Windows作系統驅動程式的需求。例如,若要定義名為 「MyCmModifyCallQoS」 的 ProtocolCmModifyCallQoS 函式,請使用 PROTOCOL_CM_MODIFY_QOS_CALL 類型,如下列程式代碼範例所示:
PROTOCOL_CM_MODIFY_QOS_CALL MyCmModifyCallQoS;
然後,實作您的函式,如下所示:
_Use_decl_annotations_
NDIS_STATUS
MyCmModifyCallQoS(
NDIS_HANDLE CallMgrVcContext,
PCO_CALL_PARAMETERS CallParameters
)
{...}
PROTOCOL_CM_MODIFY_QOS_CALL 函式類型定義於 Ndis.h 頭檔中。 若要在執行程式代碼分析工具時更準確地識別錯誤,請務必將 Use_decl_annotations 批註新增至函式定義。 Use_decl_annotations 批注可確保會使用套用至頭檔中 PROTOCOL_CM_MODIFY_QOS_CALL 函式類型的批注。 如需函式宣告需求的詳細資訊,請參閱 使用 NDIS 驅動程式的函式角色類型來宣告函式。
如需 Use_decl_annotations的相關信息,請參閱 批注函式行為。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 支援 Windows Vista 中的 NDIS 6.0 和 NDIS 5.1 驅動程式(請參閱 ProtocolCmModifyCallQoS (NDIS 5.1) 。 支援 NDIS 5.1 驅動程式(請參閱 Windows XP 中的 ProtocolCmModifyCallQoS (NDIS 5.1)。 |
目標平臺 | 窗戶 |
標頭 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | SpinLockBalanced(ndis),SpinLockDpr(ndis) |