Funzione NdisMSendNetBufferListsComplete (ndis.h)
I driver Miniport chiamano la funzione NdisMSendNetBufferListsComplete per restituire un elenco collegato di strutture NET_BUFFER_LIST a un driver overlying e 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 da NDIS 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 al miniportSendNetBufferLists funzione.
[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'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 inviate da NDIS al miniportSendNetBufferLists del driver funzione. 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 dal 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 potrebbe concatenare gli elenchi di strutture NET_BUFFER_LIST da più MiniportSendNetBufferLists chiamate o suddividere un elenco da un MiniportSendNetBufferLists chiamata. 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 Status di ogni struttura NET_BUFFER_LIST specificata dal parametro NetBufferLists:
Struttura | Descrizione |
---|---|
NDIS_STATUS_SUCCESS | Tutti i dati di rete descritti dalla struttura NET_BUFFER_LIST e dalle strutture di NET_BUFFER associate sono stati elaborati correttamente per la trasmissione. Ad esempio, il driver miniport ha copiato i dati in una coda o i dati sono già stati trasmessi. |
NDIS_STATUS_INVALID_LENGTH | Le dimensioni dei dati in alcune strutture di NET_BUFFER associate a questa struttura di 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 | Lo stato dell'adattatore miniport è 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 non ha superato la 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 in rete. I dati potrebbero essere accodati nell'hardware della scheda di interfaccia di rete.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Supportato in NDIS 6.0 e versioni successive. |
piattaforma di destinazione | Universale |
intestazione | ndis.h (include Ndis.h) |
libreria | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
regole di conformità DDI | Irql_SendRcv_Function(ndis), NdisTimedDataHang, NdisTimedDataSend |