共用方式為


PROTOCOL_CL_CLOSE_AF_COMPLETE回呼函式 (ndis.h)

線上導向的 NDIS 用戶端會使用 ProtocolCloseAfComplete 函式。 所有連線導向的 NDIS 用戶端都必須具有 ProtocolCloseAfComplete 函式,才能完成它們以 NdisCloseAddressFamily起始的異步作。

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

語法

PROTOCOL_CL_CLOSE_AF_COMPLETE ProtocolClCloseAfComplete;

void ProtocolClCloseAfComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolAfContext
)
{...}

參數

[in] Status

指定用戶端起始要求的最終狀態,以關閉位址系列,這可以是下列其中一項:

NDIS_STATUS_SUCCESS

位址家族已經關閉。 NdisAfHandle,代表用戶端儲存在其 ProtocolAfContext 區域中的開啟位址系列,現在無效。

NDIS_STATUS_FAILURE

AF 有相關聯的 VC(s) 和/或已註冊的 SAP(s),用戶端必須在嘗試關閉 AF 之前釋放,或稱為 NdisCloseAddressFamily 的用戶端 兩次,因為 NDIS 發現 AF 狀態標示為「關閉」。

[in] ProtocolAfContext

指定用戶端提供給其每個 AF 內容區域的句柄。 用戶端原本會設定此內容區域,並將此句柄傳遞至 NDIS,NdisClOpenAddressFamilyEx

傳回值

沒有

言論

確保其沒有未完成的 DC 和/或在其開放位址系列上註冊的 SA 之後,用戶端會呼叫 NdisCloseAddressFamily 刪除本身、呼叫管理員和特定基礎 NIC 之間的關聯。 NDIS 會呼叫呼叫呼叫管理員的 ProtocolCmCloseAf 函式,此呼叫管理員原本用來開啟位址系列做為異步作。 呼叫 NdisCloseAddressFamily之後,客戶端應該考慮 NdisAfHandle 無效。

因此,客戶端必須具有 ProtocolCloseAfComplete 函式,NDIS 會在異步關閉 AF 作業完成時呼叫此函式。 如果輸入 狀態 是NDIS_STATUS_SUCCESS,用戶端就可以釋放其每個 AF 內容區域。

範例

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

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

PROTOCOL_CL_CLOSE_AF_COMPLETE MyClCloseAfComplete;

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

_Use_decl_annotations_
VOID
 MyClCloseAfComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolAfContext
    )
  {...}

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

如需 Use_decl_annotations的相關信息,請參閱 批注函式行為

要求

要求 價值
最低支援的用戶端 Windows Vista 中支援 NDIS 6.0 和 NDIS 5.1 驅動程式(請參閱 ProtocolCloseAfComplete (NDIS 5.1)。 支援 NDIS 5.1 驅動程式(請參閱 Windows XP 中的 ProtocolCloseAfComplete (NDIS 5.1)。
目標平臺 窗戶
標頭 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL

另請參閱

NdisCloseAddressFamily

NdisClOpenAddressFamilyEx

NdisFreeMemory

NdisFreeToNPagedLookasideList

ProtocolCmCloseAf

ProtocolCmOpenAf

ProtocolUnbindAdapterEx