ALE 端點存留期管理
支援應用層執行的回呼驅動程式(ALE)可能需要配置資源來處理通知。 本主題描述如何設定呼叫驅動程式,以在關閉相關聯的端點時釋放這些資源。 Windows 7 和更新版本的 Windows 支援 ALE 端點存留期管理。
若要管理與 ALE 端點相關聯的資源,攔截驅動程式可以在下列層級註冊:
FWPS_LAYER_ALE_RESOURCE_RELEASE_V4 (FWPM_LAYER_ALE_RESOURCE_RELEASE_V4)
FWPS_LAYER_ALE_RESOURCE_RELEASE_V6 (FWPM_LAYER_ALE_RESOURCE_RELEASE_V6)
FWPS_LAYER_ALE_ENDPOINT_CLOSURE_V4 (FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V4)
FWPS_LAYER_ALE_ENDPOINT_CLOSURE_V6 (FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V6)
對應 ALE 資源指派層的每個指示都會指出 ALE 資源發行層(例如,FWPS_LAYER_ALE_RESOURCE_ASSIGNMENT_V4)。 為了確保圖說文字驅動程式可以比對發行層與指派層,FWPS_METADATA_FIELD_TRANSPORT_ENDPOINT_HANDLE元數據欄位會在兩個圖層提供,而且每個端點都會獲指派唯一句柄。
ALE 端點關閉層會根據端點的類型,以不同的方式叫用。 針對 TCP 連線,會針對每個 ALE 授權連接層 (例如 FWPS_LAYER_ALE_AUTH_CONNECT_V4) 或 ALE 授權接收接受層 (例如 FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V4) 指示 ALE 端點關閉。 如同 ALE 資源發行指示,引擎會為每個端點指派唯一的句柄,並在FWPS_METADATA_FIELD_TRANSPORT_ENDPOINT_HANDLE元數據欄位中傳遞它。 針對非 TCP 端點,無論套接字通訊涉及多少個唯一的遠端對等,系統都會對每個端點調用 ALE 端點關閉層。 每個 TCP 監聽端口都會啟動 ALE 端點關閉層。
針對 ALE 端點關閉層註冊的註解可以暫緩分類。 這可讓回呼在關閉端點之前,重新注入排入佇列以進行異步處理的任何封包。 若要掛起分類,外掛驅動程式必須在處理完成時先呼叫 FwpsPendClassify0,然後呼叫 FwpsCompleteClassify0。
適用時,引擎會在FWPS_METADATA_FIELD_PARENT_ENDPOINT_HANDLE元數據欄位中指出父端點的唯一代碼。 這可讓關聯程序驅動器在需要時追蹤父/子系統關係。