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

A função ProtocolSendNetBufferListsComplete conclui uma operação de envio que o driver de protocolo iniciou com uma chamada para o Função NdisSendNetBufferLists .

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

Sintaxe

PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE ProtocolSendNetBufferListsComplete;

void ProtocolSendNetBufferListsComplete(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] PNET_BUFFER_LIST NetBufferList,
  [in] ULONG SendCompleteFlags
)
{...}

Parâmetros

[in] ProtocolBindingContext

Um identificador para uma área de contexto alocada pelo driver de protocolo para manter informações de estado sobre uma associação. Esse identificador foi passado para o NDIS em uma chamada anterior para NdisOpenAdapterEx.

[in] NetBufferList

Um ponteiro para uma lista de estruturas NET_BUFFER_LIST que o driver de protocolo forneceu em uma chamada anterior para NdisSendNetBufferLists.

[in] SendCompleteFlags

Sinalizadores NDIS que podem ser combinados com uma operação OR. Para limpar todos os sinalizadores, defina esse membro como zero. Essa função dá suporte ao sinalizador NDIS_SEND_COMPLETE_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

ProtocolSendNetBufferListsComplete é uma função necessária para drivers de protocolo. ProtocolSendNetBufferListsComplete executa qualquer pós-processamento necessário para concluir uma operação de envio. Por exemplo, o driver de protocolo pode notificar os clientes que solicitaram o protocolo para enviar os dados de rede que a operação de envio está concluída.

O NDIS chama ProtocolSendNetBufferListsComplete depois que o driver de miniporto subjacente chama o Função NdisMSendNetBufferListsComplete . A conclusão de uma operação de envio geralmente implica que o driver de miniporto subjacente transmitiu os dados de rede especificados. No entanto, um driver de miniporta pode indicar que uma operação de envio foi concluída assim que transfere os dados de rede para sua NIC.

Quando o NDIS chama ProtocolSendNetBufferListsComplete, o driver de protocolo recupera a propriedade de todos os recursos associados às estruturas NET_BUFFER_LIST especificadas pelo parâmetro NetBufferLists .

O NDIS sempre envia dados de rede fornecidos pelo protocolo para o driver de miniporto subjacente na ordem determinada pelo protocolo, conforme passado para NdisSendNetBufferLists. No entanto, o driver subjacente pode concluir as solicitações de envio em qualquer ordem. Ou seja, os drivers de protocolo podem contar com o NDIS para enviar dados de rede na ordem FIFO para o driver subjacente. No entanto, os drivers de protocolo não podem depender do driver subjacente para chamar NdisMSendNetBufferListsComplete na mesma ordem.

O NDIS chama ProtocolSendNetBufferListsComplete em IRQL<= DISPATCH_LEVEL.

Exemplos

Para definir uma função ProtocolSendNetBufferListsComplete , 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 escrever drivers para o sistema operacional Windows.

Por exemplo, para definir uma função ProtocolSendNetBufferListsComplete chamada "MySendNetBufferListsComplete", use o tipo PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE conforme mostrado neste exemplo de código:

PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE MySendNetBufferListsComplete;

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

_Use_decl_annotations_
VOID
 MySendNetBufferListsComplete(
    NDIS_HANDLE  ProtocolBindingContext,
    PNET_BUFFER_LIST  NetBufferLists,
    ULONG  SendCompleteFlags
    )
  {...}

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

NET_BUFFER

NET_BUFFER_LIST

NdisMSendNetBufferListsComplete

NdisOpenAdapterEx

NdisSendNetBufferLists