PROTOCOL_CO_AF_REGISTER_NOTIFY回呼函式 (ndis.h)

ProtocolCoAfRegisterNotify 函式是由連接導向的 NDIS 用戶端使用。 所有連線導向的 NDIS 用戶端都必須具有功能完整的 ProtocolCoAfRegisterNotify 函式 。 獨立連線導向呼叫管理員已註冊的 ProtocolCoAfRegisterNotify 函式 ,只要傳回控制權即可。

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

語法

PROTOCOL_CO_AF_REGISTER_NOTIFY ProtocolCoAfRegisterNotify;

VOID() ProtocolCoAfRegisterNotify(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] PCO_ADDRESS_FAMILY AddressFamily
)
{...}

參數

[in] ProtocolBindingContext

指定用戶端配置內容區域的句柄,用戶端通訊協議會維護每個系結運行時間狀態。 用戶端的 ProtocolBindAdapterEx 函式在呼叫 NdisOpenAdapterEx 時提供此句柄。

[in] AddressFamily

緩衝區的指標,描述呼叫管理員所提供的訊號通訊協議支援,其只透過呼叫向 NDIS 註冊這些服務 NdisCmRegisterAddressFamilyEx NdisMCmRegisterAddressFamilyEx.

傳回值

備註

ProtocolCoAfRegisterNotify 的呼叫會在用戶端所系結的基礎聯機導向 NIC 上公告特定呼叫管理員或 MCM 驅動程式的呼叫管理服務。

ProtocolCoAfRegisterNotify 會檢查 AddressFamily 上的數據,以判斷用戶端是否可以使用此特定呼叫管理員的服務。 用戶端是否可以在 AddressFamily 上 (M) CM 提供的數據進行修改,取決於呼叫管理員的特定訊號通訊協議支援。

如果客戶端發現無法接受提供的呼叫管理服務,ProtocolCoAfRegisterNotify 會傳回控件,而 NDIS 可能會使用相同的 ProtocolBindingContext 句柄和這個或其他呼叫管理員所提供的 AF 規格,再次呼叫 ProtocolCoAfRegisterNotify。 否則,ProtocolAfRegisterNotify 會為用戶端配置個別 AF 內容區域,並使用 AddressFamily 指標呼叫 NdisClOpenAddressFamilyEx 如果此呼叫成功,用戶端已向 NDIS 註冊其 ProtocolClXxx 函式,以便使用此呼叫管理員的服務進行後續連線導向作業。

例如, ProtocolCoAfRegisterNotifyProtocolClOpenAfCompleteEx 可能會呼叫 NdisInitializeNPagedLookasideList 一或多次,以準備後續用戶端需要之每個 SAP、每一VC 和/或每一方內容區域的動態配置和發行。

如果它接受傳入呼叫,用戶端的 ProtocolCoAfRegisterNotify ProtocolClOpenAfCompleteEx 函式通常會向呼叫管理員註冊一或多個 SA。 開啟該呼叫管理員的 AF 之後,用戶端可能會繼續配置每個 SAP 狀態區域,並使用從 NdisClOpenAddressFamilyEx 取得的NdisAfHandle 呼叫 NdisClRegisterSap 一或多次。 如果發出傳出呼叫,用戶端可能會繼續配置每一 VC 狀態區域,並在預期來自其中一個用戶端的傳入要求時建立具有 NdisCoCreateVc 的 VC ,以對遠端節點進行傳出呼叫。

例子

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

例如,若要定義名為 「 MyCoAfRegisterNotify」 的 ProtocolCoAfRegisterNotify 函式,請使用 PROTOCOL_CO_AF_REGISTER_NOTIFY 類型,如下列程式代碼範例所示:

PROTOCOL_CO_AF_REGISTER_NOTIFY MyCoAfRegisterNotify;

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

_Use_decl_annotations_
VOID
 MyCoAfRegisterNotify(
    NDIS_HANDLE  ProtocolBindingContext,
    PCO_ADDRESS_FAMILY  AddressFamily
    )
  {...}

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

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

規格需求

需求
最低支援的用戶端 支援 NDIS 6.0 和 NDIS 5.1 驅動程式 (請參閱 Windows Vista 中的 ProtocolCoAfRegisterNotify (NDIS 5.1) ) 。 支援 NDIS 5.1 驅動程式 (請參閱 Windows XP 中的 ProtocolCoAfRegisterNotify (NDIS 5.1) ) 。
目標平台 Windows
標頭 ndis.h (包括 Ndis.h)
IRQL PASSIVE_LEVEL

另請參閱

CO_ADDRESS_FAMILY

NdisClOpenAddressFamilyEx

NdisClRegisterSap

NdisCmRegisterAddressFamilyEx

NdisCoCreateVc

NdisInitializeNPagedLo一sideList NdisMCmRegisterAddressFamilyEx

NdisOpenAdapterEx

ProtocolBindAdapterEx

ProtocolClOpenAfCompleteEx