Condividi tramite


Funzione NdisMTerminateOffloadComplete (ndischimney.h)

[La funzionalità offload del camino TCP è deprecata e non deve essere usata.]

Una destinazione di offload chiama la funzione NdisMTerminateOffloadComplete per completare un'operazione di offload terminate avviata da una chiamata precedente al miniportTerminateOffload funzione della destinazione di offload.

Sintassi

void NdisMTerminateOffloadComplete(
  [in] IN NDIS_HANDLE                       NdisMiniportHandle,
  [in] IN PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
);

Parametri

[in] NdisMiniportHandle

Handle ottenuto dalla destinazione di offload in una chiamata precedente a NdisMRegisterMiniportDriver.

[in] OffloadBlockList

Puntatore a un oggetto NDIS_MINIPORT_OFFLOAD_BLOCK_LIST struttura. La destinazione di offload ottenuta come parametro di input come parametro di input funzione MiniportTerminateOffload.

Valore restituito

Nessuno

Osservazioni

Prima di chiamare la funzione NdisMTerminateOffloadComplete, la destinazione di offload deve scrivere uno dei valori di NDIS_STATUS seguenti nel membro Status di ogni struttura NDIS_MINIPORT_OFFLOAD_BLOCK_LIST nell'albero dello stato:

  • NDIS_STATUS_SUCCESS

    La destinazione di offload ha terminato correttamente l'offload dell'oggetto di stato a cui fa riferimento la struttura NDIS_MINIPORT_OFFLOAD_BLOCK_LIST. Se la struttura NDIS_MINIPORT_OFFLOAD_BLOCK_LIST è seguita da una struttura di stato delegato (XXX_OFFLOAD_STATE_DELEGATED), la destinazione di offload ha scritto correttamente i valori delle variabili delegate per tale oggetto stato nella struttura dello stato delegato.

  • NDIS_STATUS_FAILURE

    L'operazione di chiusura non è riuscita. Un errore di questo tipo è causato da un errore irreversibile che ha causato la perdita dell'oggetto di stato che doveva essere terminato. In questo caso, l'hardware di destinazione di offload potrebbe non rispondere. Lo stack host potrebbe dover interrompere la connessione.

Prima di chiamare la funzione NdisMTerminateOffloadComplete, la destinazione di offload deve anche: Se sono presenti dati di invio in sospeso su una connessione TCP terminata, i pacchetti di destinazione di offload di tali dati in net buffer e passano i dati in pacchetto allo stack host in un elenco collegato di strutture NET_BUFFER_LIST. In questo caso, la destinazione di offload specifica un valore diNULL non per il membro NetBufferListChain della struttura NDIS_MINIPORT_OFFLOAD_BLOCK_LIST per tale connessione. La struttura NDIS_MINIPORT_OFFLOAD_BLOCK_LIST si trova nell'elenco collegato a cui punta il puntatore OffloadBlockList. Il membro NetBufferListChain punta all'elenco collegato di strutture NET_BUFFER_LIST a cui sono associati i dati di invio.

Quando si passano dati di invio in sospeso allo stack host, la destinazione di offload deve specificare anche valori null null per le variabili TCP delegate seguenti per la connessione che viene terminata:

  • SndUna
  • SndNxt
  • SndMax
Per altre informazioni sul passaggio di dati di invio in sospeso, vedere la gestione dei dati di invio in sospeso durante e dopo un'operazione di offload.

Se non sono presenti dati di invio in sospeso in una connessione TCP terminata, la destinazione di offload deve specificare un valore NULL per il membro NetBufferListChain.

Potrebbero essere presenti dati di ricezione in sospeso su una connessione TCP in fase di caricamento. Si tratta di dati che la destinazione di offload ha ricevuto fuori rete, elaborato e riconosciuto. Per altre informazioni sull'elaborazione di tali dati, vedere gestione dei dati di ricezione memorizzati nel buffer durante un'operazione di offload di termina.

La destinazione di offload libera tutte le risorse, ad esempio la memoria, associate agli oggetti di stato terminati.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione ndischimney.h (include Ndischimney.h)
IRQL Qualsiasi livello

Vedere anche

MiniportTerminateOffload

NDIS_MINIPORT_OFFLOAD_BLOCK_LIST

NdisMRegisterMiniportDriver

TCP_OFFLOAD_STATE_DELEGATED