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 授权连接层 (指示 ALE 终结点关闭,例如FWPS_LAYER_ALE_AUTH_CONNECT_V4) 或 ALE 授权接收接受层 (例如FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V4) 指示。 与 ALE 资源发布指示一样,引擎为每个终结点分配唯一句柄,并在FWPS_METADATA_FIELD_TRANSPORT_ENDPOINT_HANDLE元数据字段中传递它。 对于非 TCP 终结点,将为每个终结点调用 ALE 终结点关闭层,而不考虑套接字与之通信的唯一远程对等方的数量。 还会为每个 TCP 侦听套接字调用 ALE 终结点关闭层。
为 ALE 终结点闭合层注册的标注可以进行笔式分类。 这样,标注就可以在关闭终结点之前重新插入排队进行异步处理的任何数据包。 若要进行笔式分类,标注驱动程序必须在处理完成时调用 FwpsPendClassify0 ,然后调用 FwpsCompleteClassify0 。
如果适用,引擎将在FWPS_METADATA_FIELD_PARENT_ENDPOINT_HANDLE元数据字段中指示父终结点的唯一句柄。 这样,标注驱动程序就可以根据需要跟踪父/子关系。