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

O NDIS chama a função MiniportReturnNetBufferLists para retornar a propriedade de estruturas NET_BUFFER_LIST , estruturas NET_BUFFER associadas e quaisquer MDLs anexadas a um driver de miniporte.

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

Sintaxe

MINIPORT_RETURN_NET_BUFFER_LISTS MiniportReturnNetBufferLists;

void MiniportReturnNetBufferLists(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PNET_BUFFER_LIST NetBufferLists,
  [in] ULONG ReturnFlags
)
{...}

Parâmetros

[in] MiniportAdapterContext

Um identificador para uma área de contexto que o driver de miniporto alocou em sua função MiniportInitializeEx . O driver de miniporto usa essa área de contexto para manter informações de estado sobre um adaptador.

[in] NetBufferLists

Um ponteiro para uma lista vinculada de estruturas de NET_BUFFER_LIST que o NDIS está retornando ao driver de miniporte. A lista vinculada pode conter estruturas NET_BUFFER_LIST de várias chamadas anteriores para o Função NdisMIndicateReceiveNetBufferLists .

[in] ReturnFlags

Sinalizadores NDIS que podem ser combinados com uma operação OR. Essa função dá suporte ao sinalizador NDIS_RETURN_FLAGS_DISPATCH_LEVEL que, se definido, indica que o IRQL atual está DISPATCH_LEVEL. Para obter mais informações sobre esse sinalizador, consulte Dispatch IRQL Tracking.

Retornar valor

Nenhum

Comentários

MiniportReturnNetBufferLists é uma função necessária para drivers de miniporto que indicam dados de rede recebidos com o Função NdisMIndicateReceiveNetBufferLists . Quando um driver sobressopido chama o Função NdisReturnNetBufferLists , o NDIS chama a função MiniportReturnNetBufferLists do driver de miniport que indicou as estruturas de NET_BUFFER_LIST especificadas.

MiniportReturnNetBufferLists pode preparar uma estrutura de NET_BUFFER_LIST retornada para uso em uma indicação de recebimento subsequente. Embora MiniportReturnNetBufferLists possa retornar as estruturas NET_BUFFER_LIST para um pool (por exemplo, ele pode chamar a função NdisFreeNetBufferList ), pode ser mais eficiente reutilizar as estruturas sem devolvê-las ao pool.

O NDIS chama MiniportReturnNetBufferLists em IRQL<= DISPATCH_LEVEL.

Exemplos

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

MINIPORT_RETURN_NET_BUFFER_LISTS MyReturnNetBufferLists;

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

_Use_decl_annotations_
VOID
 MyReturnNetBufferLists(
    NDIS_HANDLE  MiniportAdapterContext,
    PNET_BUFFER_LIST  NetBufferLists,
    ULONG  ReturnFlags
    )
  {...}

O tipo de função MINIPORT_RETURN_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 MINIPORT_RETURN_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

MiniportInitializeEx

NET_BUFFER

NET_BUFFER_LIST

NdisFreeNetBufferList

NdisMIndicateReceiveNetBufferLists

NdisReturnNetBufferLists