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 |
---|---|
|
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. |
|
NdisRetreatNetBufferListDataStart non è riuscito a causa di risorse insufficienti. |
|
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) |