Compartilhar via


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

O NDIS chama a função FilterCancelSendNetBufferLists de um driver de filtro para cancelar a transmissão de todas as estruturas de NET_BUFFER_LIST marcadas com um identificador de cancelamento especificado.

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

Sintaxe

FILTER_CANCEL_SEND_NET_BUFFER_LISTS FilterCancelSendNetBufferLists;

void FilterCancelSendNetBufferLists(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PVOID CancelId
)
{...}

Parâmetros

[in] FilterModuleContext

Um identificador para uma área de contexto que o driver de filtro alocou em sua função FilterAttach . O driver de filtro usa essa área de contexto para manter informações de estado para um módulo de filtro.

[in] CancelId

Um identificador de cancelamento. Esse identificador especifica as estruturas de NET_BUFFER_LIST que estão sendo canceladas.

Retornar valor

Nenhum

Comentários

A função FilterCancelSendNetBufferLists é opcional. Se um driver de filtro não filtrar solicitações de envio, ele poderá definir o ponto de entrada dessa função como NULL quando chamar o Função NdisFRegisterFilterDriver .

Os drivers de filtro que fazem fila NET_BUFFER_LIST estruturas antes de enviar devem exportar uma função FilterCancelSendNetBufferLists . A função FilterCancelSendNetBufferLists cancela a transmissão pendente das estruturas de NET_BUFFER_LIST especificadas.

Quando um driver NDIS sobressociado chama o NdisCancelSendNetBufferLists ou Função NdisFCancelSendNetBufferLists , o NDIS chama a função FilterCancelSendNetBufferLists dos módulos de filtro na associação.

A função FilterCancelSendNetBufferLists de um driver de filtro executa as seguintes operações:

  1. Percorre sua lista de estruturas de NET_BUFFER_LIST enfileiradas para o módulo de filtro especificado e chama o NDIS_GET_NET_BUFFER_LIST_CANCEL_ID macro para obter o identificador de cancelamento para cada estrutura de NET_BUFFER_LIST enfileirada. O driver de filtro compara a ID de cancelamento que NDIS_GET_NET_BUFFER_LIST_CANCEL_ID retorna com a ID de cancelamento que o NDIS passou para FilterCancelSendNetBufferLists.
  2. Remove da fila de envio (desvincula) todas as estruturas NET_BUFFER_LIST cujos identificadores de cancelamento correspondem ao identificador de cancelamento especificado.
  3. Chama o Função NdisFSendNetBufferListsComplete para todas as estruturas de NET_BUFFER_LIST desvinculadas para retornar as estruturas. O driver de filtro define o campo status das estruturas de NET_BUFFER_LIST como NDIS_STATUS_SEND_ABORTED.
  4. Chama a função NdisFCancelSendNetBufferLists para passar a solicitação cancelar envio para drivers subjacentes.
O NDIS chama FilterCancelSendNetBufferLists em IRQL <= DISPATCH_LEVEL.

Exemplos

Para definir uma função FilterCancelSendNetBufferLists , 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 FilterCancelSendNetBufferLists chamada "MyCancelSendNetBufferLists", use o tipo FILTER_CANCEL_SEND_NET_BUFFER_LISTS conforme mostrado neste exemplo de código:

FILTER_CANCEL_SEND_NET_BUFFER_LISTS MyCancelSendNetBufferLists;

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

_Use_decl_annotations_
VOID
 MyCancelSendNetBufferLists(
    NDIS_HANDLE  FilterModuleContext,
    PVOID  CancelId
    )
  {...}

O tipo de função FILTER_CANCEL_SEND_NET_BUFFER_LISTS é 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_CANCEL_SEND_NET_BUFFER_LISTS 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 <= DISPATCH_LEVEL

Confira também

FilterAttach

NDIS_GET_NET_BUFFER_LIST_CANCEL_ID

NET_BUFFER

NET_BUFFER_LIST

NdisCancelSendNetBufferLists

NdisFCancelSendNetBufferLists

NdisFRegisterFilterDriver

NdisFSendNetBufferListsComplete