Condividi tramite


Funzione NdisRetreatNetBufferListDataStart (ndis/nblapi.h)

Chiamare la funzione NdisRetreatNetBufferListDataStart per aumentare lo spazio dati usato in tutte le strutture NET_BUFFER in una struttura NET_BUFFER_LIST .

Sintassi

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferListDataStart(
  [in]           NET_BUFFER_LIST         *NetBufferList,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler,
  [in, optional] NET_BUFFER_FREE_MDL     *FreeMdlHandler
);

Parametri

[in] NetBufferList

Puntatore a una struttura NET_BUFFER_LIST allocata in precedenza.

[in] DataOffsetDelta

Quantità di spazio dati usato aggiuntivo in ogni struttura di NET_BUFFER. Se lo spazio dati inutilizzato non è sufficiente per soddisfare la richiesta, NDIS alloca più memoria.

[in] DataBackFill

Se NDIS deve allocare memoria, questo parametro specifica la quantità di spazio dati oltre al valore del parametro DataOffsetDelta da allocare.

[in, optional] AllocateMdlHandler

Punto di ingresso facoltativo per una funzione NetAllocateMdl . Se il chiamante specifica un punto di ingresso per la funzione NetAllocateMdl , NDIS chiama NetAllocateMdl per allocare un MDL e una memoria.

[in, optional] FreeMdlHandler

Punto di ingresso facoltativo per una funzione NetFreeMdl . Se il chiamante specifica un punto di ingresso per la funzione NetFreeMdl , NDIS chiama NetFreeMdl per liberare un MDL e una memoria.

Valore restituito

NdisRetreatNetBufferListDataStart restituisce uno dei valori seguenti:

Codice restituito Descrizione
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferListDataStart ha allocato correttamente lo spazio dati in tutte le strutture NET_BUFFER riducendo il valore del membro DataOffset o allocando una nuova risorsa di archiviazione.
NDIS_STATUS_RESOURCES
NdisRetreatNetBufferListDataStart non è riuscito a causa di risorse insufficienti.
NDIS_STATUS_FAILURE
NdisRetreatNetBufferListDataStart non è riuscito per motivi diversi da risorse insufficienti.

Commenti

La chiamata a NdisRetreatNetBufferListDataStart equivale a chiamare il Funzione NdisRetreatNetBufferDataStart per ogni struttura NET_BUFFER nella struttura NET_BUFFER_LIST . NdisRetreatNetBufferListDataStart tenta di soddisfare la richiesta riducendo il valore del membro DataOffset in ogni struttura NET_BUFFER. Se non è disponibile spazio dati inutilizzato sufficiente, questa funzione alloca un nuovo buffer e MDL e quindi concatena il nuovo MDL all'inizio della catena MDL nella struttura NET_BUFFER.

Chiamare il Funzione NdisAdvanceNetBufferListDataStart per rilasciare lo spazio dati richiesto in una precedente chiamata NdisRetreatNetBufferListDataStart . In alternativa, il driver può chiamare il Funzione NdisAdvanceNetBufferDataStart per ogni struttura NET_BUFFER nella struttura NET_BUFFER_LIST. La chiamata a NdisAdvanceNetBufferListDataStart è più efficiente.

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.0 e versioni successive.
Piattaforma di destinazione Universale
Intestazione ndis/nblapi.h (include ndis.h)
Libreria Ndis.lib
IRQL <= DISPATCH_LEVEL
Regole di conformità DDI Irql_NetBuffer_Function(ndis)

Vedi anche

NET_BUFFER

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart NdisAdvanceNetBufferListDataStart NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl