PROTOCOL_CM_MODIFY_QOS_CALL回呼函式 (ndis.h)
需要 ProtocolCmModifyCallQoS 函式。 ProtocolCmModifyCallQoS 是由 NDIS 呼叫,當聯機導向用戶端要求現有虛擬連線的呼叫參數變更 (VC) 。 如果基礎網路媒體不支援 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 會以下列其中一個值傳回其作業的狀態 (s) :
傳回碼 | Description |
---|---|
|
表示呼叫管理員已成功將呼叫的參數與網路變更為 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的詳細資訊,請參閱 標註函式行為。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 支援 NDIS 6.0 和 NDIS 5.1 驅動程式 (請參閱 Windows Vista 中的 ProtocolCmModifyCallQoS (NDIS 5.1) ) 。 支援 NDIS 5.1 驅動程式 (請參閱 Windows XP 中的 ProtocolCmModifyCallQoS (NDIS 5.1) ) 。 |
目標平台 | Windows |
標頭 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | SpinLockBalanced (ndis) 、 SpinLockDpr (ndis) |