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.
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 |
---|---|
|
FilterSetModuleOptions registrou com êxito os serviços e recursos opcionais do módulo de filtro. |
|
FilterSetModuleOptions não pôde alocar os recursos necessários para o módulo de filtro. |
|
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_CHARACTERISTICSPara 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
NDIS_FILTER_DRIVER_CHARACTERISTICS NDIS_FILTER_PARTIAL_CHARACTERISTICSComentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de