Condividi tramite


Funzione NdisAllocateNetBufferListContext (ndis/nblapi.h)

Chiamare la funzione NdisAllocateNetBufferListContext per allocare più spazio di contesto nella struttura NET_BUFFER_LIST_CONTEXT di un oggetto

NET_BUFFER_LIST struttura.

Sintassi

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisAllocateNetBufferListContext(
  [in] NET_BUFFER_LIST *NetBufferList,
  [in] USHORT          ContextSize,
  [in] USHORT          ContextBackFill,
  [in] ULONG           PoolTag
);

Parametri

[in] NetBufferList

Puntatore a una struttura NET_BUFFER_LIST allocata in precedenza.

[in] ContextSize

Quantità di spazio di contesto da allocare nella struttura NET_BUFFER_LIST_CONTEXT. Questa quantità deve essere un multiplo del valore definito da sizeof(void*).

[in] ContextBackFill

Quantità di memoria, oltre al valore di ContextSize, da allocare se NDIS deve allocare memoria per soddisfare la richiesta. Questa quantità deve essere un multiplo del valore definito da sizeof(void*).

[in] PoolTag

Tag del pool di kernel usato da NDIS per allocare la memoria per la struttura NET_BUFFER_LIST_CONTEXT, se è necessaria l'allocazione. Il tag è una stringa, delimitata da virgolette singole, con un massimo di quattro caratteri, in genere specificato in ordine inverso. Il tag del pool di kernel consente a NDIS di identificare il proprietario della memoria.

Valore restituito

NdisAllocateNetBufferListContext restituisce uno dei valori seguenti:

Codice restituito Descrizione
NDIS_STATUS_SUCCESS
NdisAllocateNetBufferListContext allocato correttamente lo spazio di contesto riducendo il valore del membro Offset della struttura NET_BUFFER_LIST_CONTEXT o allocando nuova memoria.
NDIS_STATUS_RESOURCES
NdisAllocateNetBufferListContext non è riuscito a causa di risorse insufficienti.
NDIS_STATUS_FAILURE
NdisAllocateNetBufferListContext non è riuscito per motivi diversi da risorse insufficienti.

Commenti

Se nella struttura NET_BUFFER_LIST_CONTEXT è disponibile spazio di contesto inutilizzato sufficiente per soddisfare la richiesta, NdisAllocateNetBufferListContext riduce semplicemente il valore del membro Offset nella struttura NET_BUFFER_LIST_CONTEXT. In caso contrario, NDIS alloca nuova memoria per lo spazio di contesto. È possibile specificare ContextBackFill per allocare memoria aggiuntiva in modo che la chiamata successiva a NdisAllocateNetBufferListContext non deve allocare memoria.

Nota Lo spazio del contesto è sempre allineato a 'sizeof(void*)'. Questo è un allineamento adeguato per tutti i tipi naturali, ma non è adeguato per i tipi di dati con requisiti di allineamento insoliti, ad esempio SLIST_ENTRY.

Chiamare il Funzione NdisFreeNetBufferListContext per rilasciare lo spazio di contesto nella struttura NET_BUFFER_LIST_CONTEXT allocata con NdisAllocateNetBufferListContext.

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_LIST

NET_BUFFER_LIST_CONTEXT

NdisFreeNetBufferListContext