Gerenciamento de tempo de vida do ponto de extremidade ALE
Um driver de texto explicativo que dá suporte à ALE (imposição de camada de aplicativo) pode precisar alocar recursos para processar indicações. Este tópico descreve como configurar um driver de texto explicativo para liberar esses recursos quando o ponto de extremidade associado for fechado. O gerenciamento de tempo de vida do ponto de extremidade ALE tem suporte no Windows 7 e em versões posteriores do Windows.
Para gerenciar recursos associados a pontos de extremidade ALE, um driver de texto explicativo pode se registrar nas seguintes camadas:
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)
Uma camada de versão de recurso ALE é indicada para cada indicação na camada de atribuição de recursos ALE correspondente (por exemplo, FWPS_LAYER_ALE_RESOURCE_ASSIGNMENT_V4). Para garantir que os drivers de texto explicativo possam corresponder a camada de liberação à camada de atribuição, o campo de metadados FWPS_METADATA_FIELD_TRANSPORT_ENDPOINT_HANDLE é fornecido em ambas as camadas e cada ponto de extremidade recebe um identificador exclusivo.
As camadas de fechamento do ponto de extremidade ALE são invocadas de maneira diferente, dependendo do tipo de ponto de extremidade. Para conexões TCP, um fechamento de ponto de extremidade ALE é indicado para cada camada de conexão de autorização ALE (por exemplo, FWPS_LAYER_ALE_AUTH_CONNECT_V4) ou indicação de aceitação de recebimento de autorização ALE (por exemplo, FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V4). Assim como acontece com as indicações de versão do recurso ALE, o mecanismo atribui um identificador exclusivo para cada ponto de extremidade e o passa no campo de metadados FWPS_METADATA_FIELD_TRANSPORT_ENDPOINT_HANDLE. Para pontos de extremidade não TCP, uma camada de fechamento de ponto de extremidade ALE é invocada para cada ponto de extremidade, independentemente do número de pares remotos exclusivos com os qual o soquete se comunica. Uma camada de fechamento de ponto de extremidade ALE também é invocada para cada soquete de escuta TCP.
Os textos explicativos registrados para uma camada de fechamento de ponto de extremidade ALE podem ser classificados pendentes. Isso permite que o texto explicativo reinjete todos os pacotes enfileirados para processamento assíncrono antes que o ponto de extremidade seja desligado. Para classificação pendente, o driver de texto explicativo deve chamar FwpsPendClassify0 seguido por uma chamada para FwpsCompleteClassify0 quando o processamento for concluído.
Quando aplicável, o mecanismo indicará um identificador exclusivo para o ponto de extremidade pai no campo de metadados FWPS_METADATA_FIELD_PARENT_ENDPOINT_HANDLE. Isso permite que o driver de texto explicativo acompanhe as relações pai/filho, se necessário.