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 |