Funzione NdisRetreatNetBufferDataStart (ndis/nblapi.h)
Chiamare la funzione NdisRetreatNetBufferDataStart per accedere allo spazio dati più usato nella catena MDL di una struttura NET_BUFFER .
Sintassi
NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferDataStart(
[in] NET_BUFFER *NetBuffer,
[in] ULONG DataOffsetDelta,
[in] ULONG DataBackFill,
[in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler
);
Parametri
[in] NetBuffer
Puntatore a una struttura NET_BUFFER allocata in precedenza.
[in] DataOffsetDelta
Quantità di spazio dati utilizzato da aggiungere. NDIS regola di conseguenza il membro DataOffset della struttura NET_BUFFER. Se lo spazio dati inutilizzato non è sufficiente per soddisfare la richiesta, NDIS alloca memoria aggiuntiva.
[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.
Valore restituito
NdisRetreatNetBufferDataStart restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
NdisRetreatNetBufferDataStart ha allocato correttamente lo spazio dati usato usando lo spazio dati inutilizzato o allocando una nuova risorsa di archiviazione. |
|
NdisRetreatNetBufferDataStart non è riuscito a causa di risorse insufficienti. |
|
NdisRetreatNetBufferDataStart non è riuscito per motivi diversi da risorse insufficienti. |
Commenti
NdisRetreatNetBufferDataStart tenta di soddisfare la richiesta riducendo il valore del membro DataOffset della struttura NET_BUFFER .
Se lo spazio dati inutilizzato non è sufficiente, questa funzione alloca un nuovo buffer e un MDL per descrivere il nuovo buffer e concatena il nuovo MDL all'inizio della catena MDL. NDIS chiama la funzione NetAllocateMdl specificata in AllocateMdl per allocare MDL e memoria. La funzione NetAllocateMdl può usare qualsiasi metodo di allocazione che soddisfi i requisiti di progettazione del driver.
Chiamare il Funzione NdisAdvanceNetBufferDataStart per rilasciare lo spazio dati usato aggiunto con NdisRetreatNetBufferDataStart.
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) |