PROTOCOL_CL_CLOSE_AF_COMPLETE回呼函式 (ndis.h)
ProtocolCloseAfComplete 函式是由連線導向的 NDIS 用戶端使用。 所有連線導向的 NDIS 用戶端都必須具有 ProtocolCloseAfComplete 函式,才能完成它們以 NdisCloseAddressFamily 起始的異步操作。
語法
PROTOCOL_CL_CLOSE_AF_COMPLETE ProtocolClCloseAfComplete;
void ProtocolClCloseAfComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE ProtocolAfContext
)
{...}
參數
[in] Status
指定用戶端起始要求的最終狀態,以關閉位址系列,可以是下列其中一項:
NDIS_STATUS_SUCCESS
位址系列已關閉。 代表用戶端儲存在其 ProtocolAfContext 區域中之開啟位址系列的 NdisAfHandle 現在無效。
NDIS_STATUS_FAILURE
AF 有相關聯的 VC () 和/或已註冊的 SAP (s) 客戶端必須先發行,才能嘗試關閉 AF,或稱為 NdisCloseAddressFamily 的用戶端兩次,因為 NDIS 發現 AF 狀態標示為「關閉」。
[in] ProtocolAfContext
指定用戶端提供給其每個 AF 內容區域的句柄。 用戶端原本會設定此內容區域,並使用 NdisClOpenAddressFamilyEx 將此句柄傳遞至 NDIS。
傳回值
無
備註
確保其在其開啟位址系列上沒有未處理的 VM 和/或註冊的 SA 之後,用戶端會呼叫 NdisCloseAddressFamily 來刪除本身、呼叫管理員和特定基礎 NIC 之間的關聯。 NDIS 會針對此用戶端原本用來開啟位址系列做為異步操作的呼叫管理員呼叫 ProtocolCmCloseAf 函式。 呼叫 NdisCloseAddressFamily 之後,客戶端應該考慮 NdisAfHandle 無效。
因此,客戶端必須具有 ProtocolCloseAfComplete 函式,當異步關閉 AF 作業完成時,NDIS 會呼叫此函式。 如果輸入 狀態 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的詳細資訊,請參閱 標註函式行為。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | (支援 NDIS 6.0 和 NDIS 5.1 驅動程式,請參閱 Windows Vista 中的 ProtocolCloseAfComplete (NDIS 5.1) ) 。 (支援 NDIS 5.1 驅動程式,請參閱 Windows XP 中的 ProtocolCloseAfComplete (NDIS 5.1) ) 。 |
目標平台 | Windows |
標頭 | ndis.h (包含 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |