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