estrutura FWPS_CLASSIFY_OUT0 (fwpstypes.h)
A estrutura FWPS_CLASSIFY_OUT0 define os dados retornados ao chamador da função de texto explicativo classifyFn de um texto explicativo.
Sintaxe
typedef struct FWPS_CLASSIFY_OUT0_ {
FWP_ACTION_TYPE actionType;
UINT64 outContext;
UINT64 filterId;
UINT32 rights;
UINT32 flags;
UINT32 reserved;
} FWPS_CLASSIFY_OUT0;
Membros
actionType
Um valor FWP_ACTION_TYPE que especifica a ação sugerida a ser tomada conforme determinado pela função de texto explicativo classifyFn do driver de texto explicativo. Um driver de texto explicativo define essa variável como um dos seguintes valores:
FWP_ACTION_BLOCK
Bloqueie a transmissão ou o recebimento dos dados.
FWP_ACTION_CONTINUE
Passe a decisão de bloquear ou permitir que os dados sejam transmitidos ou recebidos para o próximo filtro no mecanismo de filtro.
FWP_ACTION_NONE
Não execute nenhuma ação nos dados.
FWP_ACTION_NONE_NO_MATCH
Não execute nenhuma ação nos dados porque eles não correspondem aos tipos de dados de filtro enumerados.
FWP_ACTION_PERMIT
Permitir que os dados sejam transmitidos ou recebidos.
O acesso de gravação a esse membro é controlado pelo sinalizador FWPS_RIGHT_ACTION_WRITE no membro de direitos . Se o sinalizador FWPS_RIGHT_ACTION_WRITE estiver definido, um driver de texto explicativo poderá gravar qualquer um dos valores acima para esse membro. Se o sinalizador FWPS_RIGHT_ACTION_WRITE não estiver definido, um driver de texto explicativo não deverá gravar para esse membro, a menos que esteja vetando uma ação FWP_ACTION_PERMIT que foi retornada anteriormente por um filtro de peso mais alto no mecanismo de filtro. Nessa situação, um driver explicativo define esse membro como FWP_ACTION_BLOCK.
outContext
Reservado para uso do sistema. Os drivers de texto explicativo não devem usar esse membro.
filterId
Reservado para uso do sistema. Os drivers de texto explicativo não devem usar esse membro.
rights
Sinalizadores que controlam o acesso de gravação aos outros membros dentro dessa estrutura. Os possíveis sinalizadores são:
FWPS_RIGHT_ACTION_WRITE
Se esse sinalizador for definido, um driver de texto explicativo poderá gravar no membro actionType dessa estrutura. Se esse sinalizador não estiver definido, um driver de texto explicativo só poderá gravar no membro actionType dessa estrutura se estiver vetando uma ação FWP_ACTION_PERMIT que foi retornada anteriormente por um filtro de peso mais alto no mecanismo de filtro.
flags
Sinalizadores que afetam a ação executada nos dados. Os possíveis sinalizadores são:
FWPS_CLASSIFY_OUT_FLAG_ABSORB
Os dados bloqueados devem ser removidos silenciosamente sem nenhum registro em log ou auditoria de eventos. Normalmente, isso é usado para modificação de pacotes em que o pacote original deve ser absorvido e o pacote modificado deve ser processado posteriormente.
Esse sinalizador é aplicável nas seguintes camadas quando o membro actionType é definido como FWP_ACTION_BLOCK:
- FWPS_LAYER_INBOUND_MAC_FRAME_NATIVE
- FWPS_LAYER_OUTBOUND_MAC_FRAME_NATIVE
- FWPS_LAYER_INBOUND_MAC_FRAME_ETHERNET
- FWPS_LAYER_OUTBOUND_MAC_FRAME_ETHERNET
- FWPS_LAYER_INGRESS_VSWITCH_ETHERNET
- FWPS_LAYER_EGRESS_VSWITCH_ETHERNET
- FWPS_LAYER_INBOUND_IPPACKET_V4
- FWPS_LAYER_INBOUND_IPPACKET_V6
- FWPS_LAYER_OUTBOUND_IPPACKET_V4
- FWPS_LAYER_OUTBOUND_IPPACKET_V6
- FWPS_LAYER_INBOUND_TRANSPORT_V4
- FWPS_LAYER_INBOUND_TRANSPORT_V6
- FWPS_LAYER_OUTBOUND_TRANSPORT_V4
- FWPS_LAYER_OUTBOUND_TRANSPORT_V6
- FWPS_LAYER_INBOUND_ICMP_ERROR_V4
- FWPS_LAYER_INBOUND_ICMP_ERROR_V6
- FWPS_LAYER_OUTBOUND_ICMP_ERROR_V4
- FWPS_LAYER_OUTBOUND_ICMP_ERROR_V6
- FWPS_LAYER_DATAGRAM_DATA_V4
- FWPS_LAYER_DATAGRAM_DATA_V6
- FWPS_LAYER_STREAM_PACKET_V4
- FWPS_LAYER_STREAM_PACKET_V6
- FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V4
- FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V6
- FWPS_LAYER_ALE_AUTH_CONNECT_V4
- FWPS_LAYER_ALE_AUTH_CONNECT_V6
Também é possível definir esse sinalizador nas camadas FWPS_LAYER_ALE_FLOW_ESTABLISHED_V4 e FWPS_LAYER_ALE_FLOW_ESTABLISHED_V6. Mas isso não é aconselhável, pois essas camadas destinam-se a associar contexto a fluxos.
Se esse sinalizador não estiver definido, uma ação de bloqueio estará sujeita ao log de eventos normal e à auditoria.
FWPS_CLASSIFY_OUT_FLAG_BUFFER_LIMIT_REACHED
O mecanismo de filtro define esse sinalizador quando o buffer de dados do mecanismo de filtro para dados de fluxo está cheio. Isso poderá ocorrer se a função de texto explicativo classifyFn de um texto explicativo solicitar repetidamente mais dados definindo o membro streamAction da estrutura de FWPS_STREAM_CALLOUT_IO_PACKET0 como FWPS_STREAM_ACTION_NEED_MORE_DATA até que o limite do buffer seja atingido. Se esse sinalizador estiver definido, a função de texto explicativo classifyFn do driver de texto explicativo deverá permitir ou bloquear todos os dados de fluxo.
Esse sinalizador só é aplicável nas camadas de fluxo.
FWPS_CLASSIFY_OUT_FLAG_NO_MORE_DATA
Stream dados foram solicitados depois que o fluxo foi desconectado.
reserved
Reservado para uso do sistema. Os drivers de texto explicativo não devem usar esse membro.
Comentários
O mecanismo de filtro passa um ponteiro para uma estrutura FWPS_CLASSIFY_OUT0 para a função de texto explicativo classifyFn de um texto explicativo. Um driver de texto explicativo usa essa estrutura para retornar dados ao chamador.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows Vista. |
Cabeçalho | fwpstypes.h (incluem Fwpsk.h, Fwpmtypes.h, Fwpmk.h) |
Confira também
FWPS_STREAM_CALLOUT_IO_PACKET0