Condividi tramite


Funzione NdisMSendNetBufferListsComplete (ndis.h)

I driver Miniport chiamano la funzione NdisMSendNetBufferListsComplete per restituire un elenco collegato di strutture NET_BUFFER_LIST a un driver di overlying e per restituire lo stato finale di una richiesta di invio.

Sintassi

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

Parametri

[in] MiniportAdapterHandle

Handle miniport passato alla funzione MiniportInitializeEx .

NetBufferList

Puntatore a un elenco collegato di strutture NET_BUFFER_LIST. Il driver miniport ha ricevuto le strutture di NET_BUFFER_LIST nelle chiamate precedenti alla sua funzione MiniportSendNetBufferLists .

[in] SendCompleteFlags

Flag NDIS che possono essere combinati con un'operazione OR. Per cancellare tutti i flag, impostare questo membro su zero. Questa funzione supporta il flag NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL che; se impostato, indica che l'oggetto IRQL corrente è DISPATCH_LEVEL. Per altre informazioni su questo flag, vedere Dispatch IRQL Tracking.

Valore restituito

nessuno

Osservazioni

Un driver miniport chiama NdisMSendNetBufferListsComplete per completare le richieste di invio effettuate da NDIS alla funzione MiniportSendNetBufferLists del driver. Il driver miniport specifica un elenco collegato di strutture NET_BUFFER_LIST associate alle richieste di invio completate. Mentre lo stato delle richieste di invio è in sospeso, il driver miniport mantiene la proprietà delle strutture NET_BUFFER_LIST e tutte le risorse allocate al protocollo associate alle strutture NET_BUFFER_LIST.

Dopo che un driver miniport chiama NdisMSendNetBufferListsComplete, NDIS chiama la funzione ProtocolSendNetBufferListsComplete del driver che ha chiamato la funzione NdisSendNetBufferLists per avviare la richiesta di invio.

Il driver miniport può completare le richieste in qualsiasi ordine. Ad esempio, il driver miniport può concatenare gli elenchi di strutture NET_BUFFER_LIST da più chiamate MiniportSendNetBufferLists o suddividere un elenco da una chiamata MiniportSendNetBufferLists . Tuttavia, il driver miniport non deve modificare l'elenco di strutture NET_BUFFER associate a una struttura NET_BUFFER_LIST .

Il driver miniport deve impostare uno dei codici di stato seguenti nel membro Stato di ogni struttura NET_BUFFER_LIST che il parametro NetBufferLists specifica:

Struttura Descrizione
NDIS_STATUS_SUCCESS Tutti i dati di rete descritti dalla struttura NET_BUFFER_LIST e dalle strutture NET_BUFFER associate sono stati elaborati correttamente per la trasmissione. Ad esempio, il driver miniport copia i dati in una coda o i dati sono già stati trasmessi.
NDIS_STATUS_INVALID_LENGTH Le dimensioni dei dati in alcune strutture NET_BUFFER associate a questa struttura NET_BUFFER_LIST erano troppo grandi per la scheda di interfaccia di rete sottostante.
NDIS_STATUS_RESOURCES La richiesta di invio per questa struttura di NET_BUFFER_LIST non è riuscita a causa di risorse insufficienti.
NDIS_STATUS_PAUSED L'adattatore miniport è nello stato Sospeso, come descritto nella pagina di riferimento per la funzione MiniportPause.
NDIS_STATUS_SEND_ABORTED NDIS ha chiamato la funzione MiniportCancelSend per annullare l'operazione di invio per questa struttura NET_BUFFER_LIST.
NDIS_STATUS_RESET_IN_PROGRESS Il driver miniport ha interrotto la richiesta di invio a causa di una reimpostazione.
NDIS_STATUS_FAILURE Il driver miniport ha avuto esito negativo sulla richiesta di invio a causa di un motivo diverso da quelli descritti in precedenza. Ad esempio, il driver miniport può non riuscire la richiesta di invio a causa di un errore hardware.

La chiamata di un driver miniport a NdisMSendNetBufferListsComplete non significa necessariamente che i dati per una richiesta di invio siano stati trasmessi sulla rete. I dati potrebbero essere accodati nell'hardware della scheda di interfaccia di rete.

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.0 e versioni successive.
Piattaforma di destinazione Universale
Intestazione ndis.h (includere Ndis.h)
Libreria Ndis.lib
IRQL <= DISPATCH_LEVEL
Regole di conformità DDI Irql_SendRcv_Function(ndis), NdisTimedDataHang, NdisTimedDataSend

Vedi anche

MiniportCancelSend

MiniportInitializeEx

MiniportSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NdisSendNetBufferLists