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 de 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 está DISPATCH_LEVEL. Para obter mais informações sobre esse sinalizador, consulte de Acompanhamento de IRQL de Expedição.

Valor de retorno

Nenhum

Observações

Um driver de miniporto chama NdisMSendNetBufferListsComplete para concluir as solicitações de envio feitas pelo NDIS para a função MiniportSendNetBufferLists do 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 de 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 miniporto pode concluir as solicitações de envio em qualquer ordem. Por exemplo, o driver de miniporto pode concatenar as listas de estrutura de 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 NET_BUFFER associadas a uma estrutura NET_BUFFER_LIST.

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

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 A solicitação de envio para essa estrutura de NET_BUFFER_LIST falhou devido a recursos insuficientes.
NDIS_STATUS_PAUSED O adaptador de miniporto 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 de NET_BUFFER_LIST.
NDIS_STATUS_RESET_IN_PROGRESS O driver de miniporto anulou a solicitação de envio devido a uma redefinição.
NDIS_STATUS_FAILURE O driver de miniporto falhou na solicitação de envio devido a algum motivo diferente daqueles descritos anteriormente. Por exemplo, o driver de miniporto pode falhar na solicitação de envio devido a uma falha de hardware.

Uma chamada de driver de miniport 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
de cliente com suporte mínimo Com suporte no NDIS 6.0 e posterior.
da 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

Consulte também

miniportCancelSend

MiniportInitializeEx

MiniportSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NdisSendNetBufferLists