共用方式為


PROTOCOL_CO_STATUS_EX回呼函式 (ndis.h)

ProtocolCoStatusEx 函式表示來自基礎連線導向驅動程式或 NDIS 的狀態變更。

注意 您必須使用 PROTOCOL_CO_STATUS_EX 類型來宣告函式。 如需詳細資訊,請參閱下列範例一節。
 

語法

PROTOCOL_CO_STATUS_EX ProtocolCoStatusEx;

void ProtocolCoStatusEx(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] NDIS_HANDLE ProtocolVcContext,
  [in] PNDIS_STATUS_INDICATION StatusIndication
)
{...}

參數

[in] ProtocolBindingContext

通訊協定驅動程式配置的內容區域的句柄。 通訊協定驅動程式會在此內容區域中維護每個系結內容資訊。 驅動程式在驅動程式呼叫 NdisOpenAdapterEx 函式時,提供此句柄給 NDIS。

[in] ProtocolVcContext

通訊協定驅動程式配置的內容區域的句柄,通訊協定驅動程式會在其中維護虛擬連線, (VC) 運行時間狀態資訊。 如果狀態指示 不是 VC 特定,則此參數為 NULL。 否則,當通訊協定驅動程式呼叫 NdisCoCreateVc 函式或其 ProtocolCoCreateVc 函式時,原本會提供此句柄。

[in] StatusIndication

包含狀態資訊的 NDIS_STATUS_INDICATION 結構的指標。

傳回值

備註

NDIS 會呼叫 ProtocolCoStatusEx ,以通知通訊協定驅動程式有關基礎 CoNDIS 驅動程式狀態的變更。 ProtocolVcContext 參數的 NULL VC 句柄表示不是 VC 特有的狀態變更。 針對非 NULL VC 句柄,NDIS 會將狀態通知限制為共用此 VC 句柄的用戶端或呼叫管理員。

NDIS 會串行化每個通訊協定系結的狀態指示。 若要判斷連結狀態,請使用基礎驅動程式的狀態指示,而不是 OID 查詢。 這些狀態指示可改善系統效能,並避免可能的競爭狀況。

NDIS 會在 IRQL <= DISPATCH_LEVEL 呼叫 ProtocolCoStatusEx

例子

若要定義 ProtocolCoStatusEx 函 式,您必須先提供可識別您要定義之函式類型的函式宣告。 Windows 提供一組驅動程式的函式類型。 使用函式類型宣告函式有助於 驅動程式的程式代碼分析靜態驅動程式驗證程式 (SDV) ,以及其他驗證工具尋找錯誤,而且是撰寫 Windows 作業系統驅動程式的需求。

例如,若要定義名為 「 MyCoStatusEx」 的 ProtocolCoStatusEx 函 式,請使用 PROTOCOL_CO_STATUS_EX 類型,如下列程式碼範例所示:

PROTOCOL_CO_STATUS_EX MyCoStatusEx;

然後,實作您的函式,如下所示:

_Use_decl_annotations_
VOID
 MyCoStatusEx(
    NDIS_HANDLE  ProtocolBindingContext,
    NDIS_HANDLE  ProtocolVcContext,
    PNDIS_STATUS_INDICATION  StatusIndication
    )
  {...}

PROTOCOL_CO_STATUS_EX函式類型定義於 Ndis.h 頭檔中。 若要在執行程式代碼分析工具時更精確地識別錯誤,請務必將 Use_decl_annotations 批註新增至函式定義。 Use_decl_annotations註釋可確保使用頭檔中套用至PROTOCOL_CO_STATUS_EX函式類型的註釋。 如需函數宣告需求的詳細資訊,請參閱 使用 NDIS 驅動程式的函式角色類型來宣告函式。

如需 Use_decl_annotations的詳細資訊,請參閱 標註函式行為

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平台 Windows
標頭 ndis.h (包含 Ndis.h)
IRQL <= DISPATCH_LEVEL (请参阅一节)

另請參閱

NDIS_STATUS_INDICATION

NdisCoCreateVc

NdisOpenAdapterEx

ProtocolCoCreateVc