Condividi tramite


Funzione NdisMTerminateOffloadComplete (ndischimney.h)

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

Una destinazione offload chiama la funzione NdisMTerminateOffloadComplete per completare un'operazione di offload terminata avviata da una chiamata precedente all'oggetto Funzione MiniportTerminateOffload 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 ha ottenuto questo puntatore come parametro di input per il relativo Funzione MiniportTerminateOffload .

Valore restituito

nessuno

Osservazioni

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

  • NDIS_STATUS_SUCCESS

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

  • NDIS_STATUS_FAILURE

    L'operazione di termina non è riuscita. Tale errore è 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 in una connessione TCP che viene terminata, i pacchetti di destinazione di offload di tali dati nei buffer net 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 non NULL 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 fa riferimento 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 non NULL per le variabili TCP delegate seguenti per la connessione terminata:

  • SndUna
  • SndNxt
  • SndMax
Per altre informazioni sul passaggio dei dati di invio in sospeso, vedere 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 che viene terminata, la destinazione di offload deve specificare un valore NULL per il membro NetBufferListChain .

Potrebbero essere presenti dati di ricezione in sospeso in una connessione TCP caricata. Si tratta di dati che la destinazione di offload ha ricevuto dal cavo, 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 termina.

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

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione ndischimney.h (includere Ndischimney.h)
IRQL Qualsiasi livello

Vedi anche

MiniportTerminateOffload

NDIS_MINIPORT_OFFLOAD_BLOCK_LIST

NdisMRegisterMiniportDriver

TCP_OFFLOAD_STATE_DELEGATED