Compartilhar via


Função NdisMSendNetBufferListsComplete (ndis.h)

Os drivers de miniport chamam a função NdisMSendNetBufferListsComplete para retornar uma lista vinculada de estruturas de NET_BUFFER_LIST para um driver sobreposto e retornar o status final de uma solicitação de envio.

Sintaxe

void NdisMSendNetBufferListsComplete(
  [in] NDIS_HANDLE      MiniportAdapterHandle,
       PNET_BUFFER_LIST NetBufferList,
  [in] ULONG            SendCompleteFlags
);

Parâmetros

[in] MiniportAdapterHandle

O identificador de miniporto que o NDIS passou para a função MiniportInitializeEx .

NetBufferList

Um ponteiro para uma lista vinculada de estruturas de NET_BUFFER_LIST. O driver de miniporto recebeu as estruturas NET_BUFFER_LIST em chamadas anteriores para sua função MiniportSendNetBufferLists .

[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 é DISPATCH_LEVEL. Para obter mais informações sobre esse sinalizador, consulte Dispatch IRQL Tracking.

Retornar valor

Nenhum

Comentários

Um driver de miniporto chama NdisMSendNetBufferListsComplete para concluir as solicitações de envio feitas pelo NDIS para a função MiniportSendNetBufferLists do driver. O driver de miniporto especifica uma lista vinculada de estruturas de NET_BUFFER_LIST associadas às solicitações de envio concluídas. Embora o status das solicitações de envio esteja pendente, o driver de miniporto mantém a propriedade das estruturas de NET_BUFFER_LIST e todos os recursos alocados por protocolo associados às estruturas NET_BUFFER_LIST.

Depois que um driver de miniporto chama NdisMSendNetBufferListsComplete, o NDIS chama a função ProtocolSendNetBufferListsComplete do driver que chamou a função NdisSendNetBufferLists para iniciar a solicitação de envio.

O driver de miniporte pode concluir solicitações de envio em qualquer ordem. Por exemplo, o driver de miniporto pode concatenar as listas de estrutura NET_BUFFER_LIST de várias chamadas MiniportSendNetBufferLists ou dividir uma lista de uma chamada MiniportSendNetBufferLists . No entanto, o driver de miniporto não deve modificar a lista de estruturas de NET_BUFFER associadas a uma estrutura de NET_BUFFER_LIST.

O driver de miniporto deve definir um dos seguintes códigos status no membro Status de cada estrutura NET_BUFFER_LIST especificada pelo parâmetro NetBufferLists:

Estrutura Descrição
NDIS_STATUS_SUCCESS Todos os dados de rede que a estrutura NET_BUFFER_LIST e as estruturas de NET_BUFFER associadas descrevem foram processados com êxito para transmissão. Por exemplo, o driver de miniporto copiou os dados para uma fila ou os dados já foram transmitidos.
NDIS_STATUS_INVALID_LENGTH O tamanho dos dados em algumas estruturas NET_BUFFER associadas a essa estrutura NET_BUFFER_LIST era muito grande para a NIC subjacente.
NDIS_STATUS_RESOURCES Falha na solicitação de envio para essa estrutura de NET_BUFFER_LIST devido a recursos insuficientes.
NDIS_STATUS_PAUSED O adaptador de miniporte está no estado Pausado, conforme descrito na página de referência da função MiniportPause.
NDIS_STATUS_SEND_ABORTED O NDIS chamou a função MiniportCancelSend para cancelar a operação de envio para essa estrutura NET_BUFFER_LIST.
NDIS_STATUS_RESET_IN_PROGRESS O driver de miniporte anulou a solicitação de envio devido a uma redefinição.
NDIS_STATUS_FAILURE O driver de miniporte falhou na solicitação de envio devido a algum motivo diferente daqueles descritos anteriormente. Por exemplo, o driver de miniporte pode falhar na solicitação de envio devido a uma falha de hardware.

A chamada de um driver de miniporto para NdisMSendNetBufferListsComplete não significa necessariamente que os dados de uma solicitação de envio foram transmitidos pela rede. Os dados podem ser enfileirados no hardware nic.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
Regras de conformidade de DDI Irql_SendRcv_Function(ndis), NdisTimedDataHang, NdisTimedDataSend

Confira também

MiniportCancelSend

MiniportInitializeEx

MiniportSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NdisSendNetBufferLists