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 aggiuntivo utilizzato in ogni struttura di NET_BUFFER. Se non è sufficiente spazio dati inutilizzato 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 di 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 di 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 allocato correttamente lo spazio dati in tutte le strutture di 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.

Osservazioni

La chiamata 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 disponibile, 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 NdisAdvanceNetBufferListDataStart è più efficiente.

Fabbisogno

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)

Vedere anche

NET_BUFFER

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart NdisAdvanceNetBufferListDataStart NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl