estrutura FWPS_CALLOUT2 (fwpsk.h)

A estrutura FWPS_CALLOUT2 define os dados necessários para um driver de texto explicativo registrar um texto explicativo com o mecanismo de filtro.

ObserveFWPS_CALLOUT2 é a versão específica do FWPS_CALLOUT usado no Windows 8 e posterior. Consulte Nomes de Version-Independent WFP e Direcionamento de versões específicas do Windows para obter mais informações. Para o Windows 7, FWPS_CALLOUT1 está disponível. Para o Windows Vista, FWPS_CALLOUT0 está disponível.

 

Sintaxe

typedef struct FWPS_CALLOUT2_ {
  GUID                                calloutKey;
  UINT32                              flags;
  FWPS_CALLOUT_CLASSIFY_FN2           classifyFn;
  FWPS_CALLOUT_NOTIFY_FN2             notifyFn;
  FWPS_CALLOUT_FLOW_DELETE_NOTIFY_FN0 flowDeleteFn;
} FWPS_CALLOUT2;

Membros

calloutKey

Um GUID definido pelo driver de texto explicativo que identifica exclusivamente o texto explicativo.

flags

Sinalizadores que especificam parâmetros específicos do texto explicativo. Os possíveis sinalizadores são:

Valor Significado
FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW
0x00000001
Um driver de texto explicativo pode especificar esse sinalizador ao registrar um texto explicativo que será adicionado a uma camada que dá suporte a fluxos de dados. Se esse sinalizador for especificado, o mecanismo de filtro chamará a função de texto explicativo classifyFn2 do driver de texto explicativo somente se houver um contexto associado ao fluxo de dados. Um driver de texto explicativo associa um contexto a um fluxo de dados chamando a função FwpsFlowAssociateContext0 .
FWP_CALLOUT_FLAG_ALLOW_OFFLOAD
0x00000002
Um driver de texto explicativo especifica esse sinalizador para indicar que a função de texto explicativo classifyFn2 do driver de texto explicativo não é afetada pelo descarregamento do processamento de dados de rede para NICs (placas de interface de rede) compatíveis com descarregamento. Se esse sinalizador não for especificado, o descarregamento do processamento de dados de rede será desabilitado para todo o tráfego processado por qualquer filtro que especifique o texto explicativo para a ação do filtro.
FWP_CALLOUT_FLAG_ENABLE_COMMIT_ADD_NOTIFY
0x00000004
Um driver de texto explicativo especifica esse sinalizador para indicar que ele pode receber notificações sobre objetos e filtros adicionados dentro de uma transação. O mecanismo de filtro envia a notificação depois que a transação é confirmada.
FWP_CALLOUT_FLAG_ALLOW_MID_STREAM_INSPECTION
0x00000008
Um driver de texto explicativo especifica esse sinalizador para indicar que ele pode executar a inspeção dinâmica de fluxos de dados no nível do fluxo. Consulte Inspeção Stream.
FWP_CALLOUT_FLAG_ALLOW_RECLASSIFY
0x00000010
Um driver de texto explicativo especifica esse sinalizador para se registrar para ser chamado quando uma operação de soquete existente é reclassificada.
FWP_CALLOUT_FLAG_RESERVED1
0x00000020
Reservado para uso do sistema. Os drivers de texto explicativo devem ignorar esse sinalizador.
FWP_CALLOUT_FLAG_ALLOW_RSC
0x00000040
Um driver de texto explicativo especifica esse sinalizador para indicar que o texto explicativo dá suporte à RSC (união de segmento de recebimento TCP) com pacotes grandes de até 64K. Se esse sinalizador não for especificado e um texto explicativo for registrado, o RSC será desabilitado para todo o tráfego processado por qualquer filtro que especifique o texto explicativo para a ação do filtro.
FWP_CALLOUT_FLAG_ALLOW_L2_BATCH_CLASSIFY
0x00000080
Um driver de texto explicativo especifica esse sinalizador ao registrar um texto explicativo que será adicionado na camada 2, para indicar que sua função de texto explicativo classifyFn2 pode classificar várias estruturas de NET_BUFFER_LIST encadeadas. Para obter mais informações, consulte Usando a filtragem de camada 2.
Cuidado  

Se um driver de texto explicativo definir esse sinalizador, ele não poderá usar as funções a seguir para modificar NET_BUFFER_LISTs.

Com esse sinalizador definido, FwpsAllocateCloneNetBufferList0 sempre retornará um erro de INVALID_PARAMETER . Isso pode fazer com que um driver de texto explicativo de terceiros falhe ao gerenciar a contagem de referência de NET_BUFFER_LISTs, fazendo com que as operações de envio e recebimento sejam interrompidas.

FWP_CALLOUT_FLAG_ALLOW_USO
0x00000100
Um driver de texto explicativo especifica esse sinalizador para indicar que o texto explicativo dá suporte ao USO (descarregamento de segmentação UDP) com pacotes maiores que a MTU da mídia de rede. Se esse sinalizador não for especificado e um texto explicativo for registrado, o USO será desabilitado para todo o tráfego processado por qualquer filtro que especifique o texto explicativo para a ação do filtro. Nota: A versão mais antiga na qual esse sinalizador tem suporte é Windows Insider Preview, versão 10.0.25876.
FWP_CALLOUT_FLAG_ALLOW_URO
0x00000200
Um driver de texto explicativo especifica esse sinalizador para indicar que o texto explicativo dá suporte ao URO (descarregamento de recebimento UDP) com pacotes grandes de até 64K. Se esse sinalizador não for especificado e um texto explicativo for registrado, o URO será desabilitado para todo o tráfego processado por qualquer filtro que especifique o texto explicativo para a ação do filtro. Nota: Se esse sinalizador for especificado, os textos explicativos não deverão clonar e reinjetar pacotes URO de entrada.

classifyFn

Um ponteiro para a função de texto explicativo classifyFn2 do driver de texto explicativo. O mecanismo de filtro chama essa função sempre que há dados de rede a serem processados pelo texto explicativo.

notifyFn

Um ponteiro para a função notifyFn2 do driver de texto explicativo. O mecanismo de filtro chama essa função para notificar o driver de texto explicativo sobre os eventos associados ao texto explicativo.

flowDeleteFn

Um ponteiro para a função de texto explicativo flowDeleteFn do driver de texto explicativo. O mecanismo de filtro chama essa função sempre que um fluxo de dados que está sendo processado pelo texto explicativo é encerrado.

Se um driver de texto explicativo não associar um contexto aos fluxos de dados que o texto explicativo processa, esse membro deverá ser definido como NULL.

Comentários

Um driver de texto explicativo passa um ponteiro para uma estrutura de FWPS_CALLOUT2 inicializada para a função FwpsCalloutRegister2 quando registra um texto explicativo com o mecanismo de filtro.

Um texto explicativo pode definir o sinalizador FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW somente para conexões nas quais o driver está interessado em executar inspeções de fluxo. Esse texto explicativo será ignorado em todas as outras conexões. O desempenho será melhorado e o driver não precisará manter dados de estado desnecessários.

Essa estrutura é essencialmente idêntica à versão anterior, FWPS_CALLOUT1. As únicas diferenças são que os membros dessa versão armazenam as versões atualizadas dos ponteiros de função de texto explicativo e sinalizadores adicionais estão disponíveis para os drivers de texto explicativo definirem.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 8.
Cabeçalho fwpsk.h (inclua Fwpsk.h)

Confira também

FWPS_CALLOUT0

FWPS_CALLOUT1

FwpsCalloutRegister2

Usando filtragem de camada 2

classifyFn2

flowDeleteFn

notifyFn2