Compartilhar via


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

A plataforma PacketDirect (PD) chama a função PDFlushQueue de um driver de miniporto compatível com PD para liberar uma fila especificada, garantindo que todos os itens que ainda não estão em um estado completo na fila sejam concluídos em breve.

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

 

Sintaxe

NDIS_PD_FLUSH_QUEUE NdisPdFlushQueue;

VOID() NdisPdFlushQueue(
  [in, out] NDIS_PD_QUEUE *Queue
)
{...}

Parâmetros

[in, out] Queue

A fila a ser liberada. Para obter mais informações, consulte a estrutura de NDIS_PD_QUEUE .

Retornar valor

Essa função de retorno de chamada não retorna um valor.

Comentários

O chamador é responsável por aguardar e esvaziar todas as solicitações postadas anteriormente antes de fechar a fila. O chamador não deve postar mais PD_BUFFER estruturas na fila após essa chamada. O principal caso de uso dessa rotina é liberar as filas de recebimento– se não houver tráfego de entrada, os buffers postados ficarão na fila de recebimento indefinidamente e eles precisarão ser esvaziados por serem liberados antes que a fila possa ser fechada. O mesmo problema não existe para as filas de transmissão na prática porque as solicitações de transmissão não serão pendentes indefinidamente. No entanto, os provedores devem respeitar a chamada de liberação para filas de transmissão (isso pode ser uma não operação se o provedor souber que a solicitação de transmissão pendente será concluída muito em breve, que é o caso típico, exceto para o controle de fluxo L2).

Exemplos

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

NDIS_PD_FLUSH_QUEUE MyPDFlushQueue;

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

_Use_decl_annotations_
VOID
 MyPDFlushQueue(
    NDIS_PD_QUEUE*  NdisPDQueue
    )
  {...}

O tipo de função NDIS_PD_FLUSH_QUEUE é definido no arquivo de cabeçalho Ntddndis.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 NDIS_PD_FLUSH_QUEUE 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 Windows 10
Servidor mínimo com suporte Windows Server 2016
Plataforma de Destino Windows
Cabeçalho ndis.h
IRQL <= DISPATCH_LEVEL