FILTER_SET_MODULE_OPTIONS função de retorno de chamada (ndis.h)

A função FilterSetModuleOptions altera o conjunto de serviços opcionais associados a um módulo de filtro especificado.

Nota Você deve declarar a função usando o tipo FILTER_SET_MODULE_OPTIONS . Para obter mais informações, consulte a seção Exemplos a seguir.
 

Sintaxe

FILTER_SET_MODULE_OPTIONS FilterSetModuleOptions;

NDIS_STATUS FilterSetModuleOptions(
  [in] NDIS_HANDLE FilterModuleContext
)
{...}

Parâmetros

[in] FilterModuleContext

Um identificador para a área de contexto do módulo de filtro que é o destino dessa solicitação. O driver de filtro criou e inicializou essa área de contexto na função FilterAttach .

Retornar valor

FilterSetModuleOptions retorna um dos seguintes valores de status:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
FilterSetModuleOptions registrou com êxito os serviços e recursos opcionais do módulo de filtro.
NDIS_STATUS_RESOURCES
FilterSetModuleOptions não pôde alocar os recursos necessários para o módulo de filtro.
NDIS_STATUS_ XXX ou XXX NTSTATUS_
Falha na tentativa do driver de filtro de registrar opções. Normalmente, esse status de erro é propagado de uma função NdisXxx ou de uma rotina de suporte no modo kernel.

Comentários

Se FilterSetModuleOptions for definido, o NDIS chamará FilterSetModuleOptions antes de chamar a função FilterRestart para iniciar o módulo de filtro.

Um driver de filtro especifica os valores padrão para as opções de módulo de filtro alteráveis na estrutura NDIS_FILTER_DRIVER_CHARACTERISTICS que ele passa para o Função NdisFRegisterFilterDriver durante a inicialização do driver.

Para alterar as opções de um módulo de filtro específico em tempo de execução, o driver de filtro também deve especificar um ponto de entrada para FilterSetModuleOptions no NDIS_FILTER_DRIVER_CHARACTERISTICS estrutura.

Para especificar as opções que devem ser alteradas, FilterSetModuleOptions define uma estrutura de características e chama a função NdisSetOptionalHandlers . Os drivers de filtro não devem chamar NdisSetOptionalHandlers de um thread diferente.

As possíveis estruturas de características que podem ser especificadas de FilterSetModuleOptions são:

NDIS_FILTER_PARTIAL_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS

Para obter informações sobre as últimas quatro estruturas, consulte Documentação de descarregamento de chaminés TCP NDIS 6.0.

As opções especificadas em cada estrutura de características podem ser diferentes para cada módulo de filtro.

Quando o NDIS chama a função FilterDetach , o driver de filtro deve desfazer todas as operações que foram executadas em FilterSetModuleOptions.

O NDIS chama FilterSetModuleOptions em IRQL = PASSIVE_LEVEL.

Exemplos

Para definir uma função FilterSetModuleOptions , primeiro você deve fornecer uma declaração de função que identifique o tipo de função que você está definindo. O Windows fornece um conjunto de tipos de função para drivers. Declarar uma função usando os tipos de função ajuda a Análise de Código para Drivers, SDV ( Verificador de Driver Estático ) e outras ferramentas de verificação a encontrar erros e é um requisito para gravar drivers para o sistema operacional Windows.

Por exemplo, para definir uma função FilterSetModuleOptions chamada "MySetModuleOptions", use o tipo FILTER_SET_MODULE_OPTIONS conforme mostrado neste exemplo de código:

FILTER_SET_MODULE_OPTIONS MySetModuleOptions;

Em seguida, implemente sua função da seguinte maneira:

_Use_decl_annotations_
NDIS_STATUS
 MySetModuleOptions(
    NDIS_HANDLE  FilterModuleContext
    )
  {...}

O tipo de função FILTER_SET_MODULE_OPTIONS é definido no arquivo de cabeçalho Ndis.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função FILTER_SET_MODULE_OPTIONS no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função de função para drivers NDIS.

Para obter informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL PASSIVE_LEVEL

Confira também

FilterRestart

NDIS_FILTER_DRIVER_CHARACTERISTICS NDIS_FILTER_PARTIAL_CHARACTERISTICS

NdisFRegisterFilterDriver

NdisSetOptionalHandlers