NdisClCloseAddressFamily 函式 (ndis.h)
NdisCloseAddressFamily 會針對用戶端所系結的特定 NIC,釋放用戶端通訊協定與呼叫管理員或 MCM 驅動程式註冊 AF 之間的關聯。
語法
NDIS_STATUS NdisClCloseAddressFamily(
[in] NDIS_HANDLE NdisAfHandle
);
參數
[in] NdisAfHandle
指定所傳回的 NDIS 提供句柄 NdisClOpenAddressFamilyEx.
傳回值
當 NdisCloseAddressFamily 傳回NDIS_STATUS_PENDING以外的任何專案,客戶端應該對其進行內部呼叫 ProtocolCloseAfComplete 函 式。 否則,NDIS 會呼叫用戶端的當此作業完成時,ProtocolCloseAfComplete 函式。
如果 NdisCloseAddressFamily 會傳回NDIS_STATUS_PENDING,這是正在等候其用戶端的用戶端要呼叫的 ProtocolCloseAfComplete 函式不應該封鎖目前的線程,因為這可能會導致死結。 當用戶端在處理 的內容中呼叫 NdisCloseAddressFamily 時,這特別重要 NdisCmNotifyCloseAddressFamily 要求。 在此情況下,在用戶端從處理 NdisCmNotifyCloseAddressFamily 要求傳回之後,呼叫管理員可能不會關閉位址系列。 如果客戶端封鎖目前的線程,客戶端永遠不會完成 NdisCmNotifyCloseAddressFamily 要求的處理,因而造成死結。
備註
用戶端通常會從其呼叫 NdisCloseAddressFamily
ProtocolUnbindAdapterEx 函式會在系結上關閉所有客戶端開啟的 VM,並呼叫 NdisCloseCall 和/或 NdisClDeregisterSap。 用戶端也可以在處理 的內容中呼叫 NdisCloseAddressFamily NdisCmNotifyCloseAddressFamily 要求。
NDIS 會呼叫用戶端的每當該用戶端系結的基礎 NIC 從計算機中移除或重新設定時,ProtocolUnbindAdapterEx 函式。 基礎迷你埠驅動程式的 PnP 重新設定會導致呼叫管理員或 MCM 驅動程式重新註冊支援該 NIC 的位址系列。 接著,這會導致對用戶端的後續呼叫 ProtocolCoAfRegisterNotify 函式 。 在任一案例中,用戶端的 ProtocolUnbindAdapterEx 函式必須呼叫 NdisCloseAddressFamily ,且其目前使用的任何未處理 NdisAfHandle ,這取決於基礎迷你埠驅動程式。
一般指導方針是,客戶端應該先透過迷你埠驅動程序釋出它配置給聯機導向通訊的所有資源 ProtocolUnbindAdapterEx 函式會呼叫 NdisCloseAdapterEx。
傳遞至 NdisCloseAddressFamily 的 NdisAfHandle 會在發生此呼叫時立即對用戶端變成無效。
在呼叫 NdisCloseAddressFamily 之前,用戶端可能會在 AF 開啟或開啟時使用 NdisAfHandle ProtocolClNotifyCloseAf 作業擱置中。 如果裝置上無法使用 ProtocolClNotifyCloseAf 函式會傳回NDIS_STATUS_PENDING,請使用 中的句柄關閉作業完成之後,NdisClNotifyCloseAddressFamilyComplete 呼叫。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 支援 NDIS 6.0 和 NDIS 5.1 驅動程式 (請參閱 Windows Vista 中的 NdisCloseAddressFamily (NDIS 5.1) ) 。 支援 NDIS 5.1 驅動程式 (請參閱 Windows XP 中的 NdisCloseAddressFamily (NDIS 5.1) ) 。 |
目標平台 | 桌面 |
標頭 | ndis.h (包含 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | Irql_Protocol_Driver_Function () |