MINIPORT_CO_ACTIVATE_VC回呼函式 (ndis.h)
聯機導向迷你埠需要 MiniportCoActivateVc 函式。 MiniportCoActivateVc 是由 NDIS 呼叫,以向迷你埠驅動程式指出虛擬連線正在啟動。
語法
MINIPORT_CO_ACTIVATE_VC MiniportCoActivateVc;
NDIS_STATUS MiniportCoActivateVc(
[in] NDIS_HANDLE MiniportVcContext,
[in, out] PCO_CALL_PARAMETERS CallParameters
)
{...}
參數
[in] MiniportVcContext
指定迷你埠驅動程式配置的內容區域的句柄,迷你埠驅動程式會維護其每個 VC 狀態。 迷你埠驅動程式會從其 MiniportCoCreateVc 函式提供此句柄給 NDIS。
[in, out] CallParameters
指定要為此 VC 建立的呼叫參數,如呼叫管理員所指定。 在輸出中,如果 CO_CALL_PARAMETERS 結構中設定特定旗標,迷你埠驅動程式會傳回改變的呼叫參數。
傳回值
傳回碼 | 描述 |
---|---|
|
表示已成功啟動 VC。 |
|
表示迷你埠驅動程式會完成以異步方式啟動 VC 的要求。 當迷你埠驅動程式完成其作業時,它必須呼叫 NdisMCoActivateVcComplete。 |
|
表示在 CallParameters 指定的呼叫參數 對於這個迷你埠驅動程式支援的媒體類型而言無效或非法。 |
|
表示迷你埠驅動程式無法啟動 VC,因為它無法配置迷你埠驅動程式維護作用中 VC 狀態資訊所需的所有資源。 |
言論
迷你埠驅動程式必須驗證此 VC 的呼叫參數,如 CallParameters中所指定,以確認配接器可以支援要求的呼叫。 如果無法滿足要求的呼叫參數,迷你埠驅動程序應該會因為NDIS_STATUS_INVALID_DATA而失敗要求。
MiniportCoActivateVc 可以針對單一 VC 呼叫多次,以變更已使用中呼叫的呼叫參數。 每次呼叫時,迷你埠驅動程式都應該驗證參數,並依照配接器的要求執行任何處理,以滿足要求。 不過,如果無法設定指定的呼叫參數,MiniportCoActivateVc 必須讓 VC 保持可用狀態,因為連線導向用戶端或呼叫管理員可以使用舊版呼叫參數繼續傳送或接收數據。
如果在 callParameters->MediaParameters->Flags 的呼叫參數結構中設定ROUND_UP_FLOW或ROUND_DOWN_FLOW旗標,則迷你埠驅動程式已要求根據已設定的適當旗標傳回流量速率之後傳回 VC 的實際流量速率。 如果迷你連接埠驅動程式確實變更任何呼叫參數,因為這些旗標已設定,則必須傳回用於 VC 的實際呼叫參數,CallParameters。
如果可接受呼叫參數,MiniportCoActivateVc 視需要與配接器通訊,以準備適配卡以接收或傳輸虛擬連線的數據(換句話說,程式設計接收緩衝區)。
範例
若要定義 MiniportCoActivateVc 函式,您必須先提供函式宣告,以識別您要定義的函式類型。 Windows 提供一組驅動程式的函式類型。 使用函式類型宣告函式有助於 驅動程式的程式代碼分析、靜態驅動程序驗證器 (SDV)和其他驗證工具尋找錯誤,而且是撰寫 Windows作系統驅動程式的需求。例如,若要定義名為 「MyCoActivateVc」 的 MiniportCoActivateVc 函式,請使用 MINIPORT_CO_ACTIVATE_VC 類型,如下列程式代碼範例所示:
MINIPORT_CO_ACTIVATE_VC MyCoActivateVc;
然後,實作您的函式,如下所示:
_Use_decl_annotations_
NDIS_STATUS
MyCoActivateVc(
NDIS_HANDLE MiniportVcContext,
PCO_CALL_PARAMETERS CallParameters
)
{...}
MINIPORT_CO_ACTIVATE_VC 函式類型定義於 Ndis.h 頭檔中。 若要在執行程式代碼分析工具時更準確地識別錯誤,請務必將 Use_decl_annotations 批註新增至函式定義。 Use_decl_annotations 批注可確保在頭檔中套用至 MINIPORT_CO_ACTIVATE_VC 函式類型的批注。 如需函式宣告需求的詳細資訊,請參閱 使用 NDIS 驅動程式的函式角色類型來宣告函式。
如需 Use_decl_annotations的相關信息,請參閱 批注函式行為。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista 中支援 NDIS 6.0 和 NDIS 5.1 驅動程式(請參閱 MiniportCoActivateVc (NDIS 5.1)。 支援 Windows XP 中的 NDIS 5.1 驅動程式(請參閱 MiniportCoActivateVc (NDIS 5.1)。 |
目標平臺 | 窗戶 |
標頭 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |