Função NdisAllocateNetBufferListContext (ndis/nblapi.h)

Chame a função NdisAllocateNetBufferListContext para alocar mais espaço de contexto na estrutura NET_BUFFER_LIST_CONTEXT de um

NET_BUFFER_LIST estrutura.

Sintaxe

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

Parâmetros

[in] NetBufferList

Um ponteiro para uma estrutura de NET_BUFFER_LIST alocada anteriormente.

[in] ContextSize

A quantidade de espaço de contexto a ser alocada na estrutura NET_BUFFER_LIST_CONTEXT. Esse valor deve ser um múltiplo do valor definido por sizeof(void*).

[in] ContextBackFill

A quantidade de memória, além do valor de ContextSize, a ser alocada se o NDIS precisar alocar memória para atender à solicitação. Esse valor deve ser um múltiplo do valor definido por sizeof(void*).

[in] PoolTag

Uma marca de pool de kernel que o NDIS usa para alocar a memória para a estrutura NET_BUFFER_LIST_CONTEXT, se a alocação for necessária. A marca é uma cadeia de caracteres, delimitada por aspas simples, com até quatro caracteres, geralmente especificadas em ordem invertida. A marca do pool de kernel ajuda o NDIS a identificar o proprietário da memória.

Retornar valor

NdisAllocateNetBufferListContext retorna um dos seguintes:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
NdisAllocateNetBufferListContext alocou com êxito o espaço de contexto reduzindo o valor do membro Offset da estrutura de NET_BUFFER_LIST_CONTEXT ou alocando nova memória.
NDIS_STATUS_RESOURCES
Falha em NdisAllocateNetBufferListContext devido a recursos insuficientes.
NDIS_STATUS_FAILURE
Falha em NdisAllocateNetBufferListContext por motivos diferentes de recursos insuficientes.

Comentários

Se houver espaço de contexto não utilizado suficiente disponível na estrutura NET_BUFFER_LIST_CONTEXT para atender à solicitação, NdisAllocateNetBufferListContext simplesmente reduzirá o valor do membro Offset na estrutura NET_BUFFER_LIST_CONTEXT. Caso contrário, o NDIS aloca nova memória para o espaço de contexto. Você pode especificar ContextBackFill para alocar memória extra para que a próxima chamada para NdisAllocateNetBufferListContext não precise alocar memória.

Nota O espaço de contexto é sempre alinhado a 'sizeof(void*)'. Esse é um alinhamento adequado para todos os tipos naturais, mas não é adequado para tipos de dados com requisitos de alinhamento incomuns, como SLIST_ENTRY.

Chamar o Função NdisFreeNetBufferListContext para liberar o espaço de contexto na estrutura NET_BUFFER_LIST_CONTEXT alocada com NdisAllocateNetBufferListContext.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Universal
Cabeçalho ndis/nblapi.h (inclua ndis.h)
Biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
Regras de conformidade de DDI Irql_NetBuffer_Function(ndis)

Confira também

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NdisFreeNetBufferListContext