estrutura NET_BUFFER_LIST_POOL_PARAMETERS (ndis/nblapi.h)

A estrutura NET_BUFFER_LIST_POOL_PARAMETERS define os parâmetros para um pool de estruturas NET_BUFFER_LIST .

Sintaxe

typedef struct _NET_BUFFER_LIST_POOL_PARAMETERS {
  NDIS_OBJECT_HEADER Header;
  UCHAR              ProtocolId;
  BOOLEAN            fAllocateNetBuffer;
  USHORT             ContextSize;
  ULONG              PoolTag;
  ULONG              DataSize;
  ULONG              Flags;
} NET_BUFFER_LIST_POOL_PARAMETERS, *PNET_BUFFER_LIST_POOL_PARAMETERS;

Membros

Header

O tipo, a revisão e o tamanho da estrutura NET_BUFFER_LIST_POOL_PARAMETERS . Esse membro é formatado como uma estrutura NDIS_OBJECT_HEADER .

O driver de miniporta deve definir o membro Type de Header como NDIS_OBJECT_TYPE_DEFAULT. Para especificar a versão da estrutura NET_BUFFER_LIST_POOL_PARAMETERS , o driver deve definir o membro Revision de Header para o seguinte valor:

NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1

Versão original do NDIS 6.0.

Defina o membro Size como NDIS_SIZEOF_NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1.

ProtocolId

O tipo de chamador. Miniportar, filtrar e drivers intermediários definem esse campo como zero (NDIS_PROTOCOL_ID_DEFAULT). Os drivers de protocolo usam um dos seguintes valores:

NDIS_PROTOCOL_ID_DEFAULT

Especifica um identificador de driver de protocolo padrão.

NDIS_PROTOCOL_ID_TCP_IP

Especifica o protocolo TCP/IP.

NDIS_PROTOCOL_ID_IPX

Especifica o protocolo IPX.

NDIS_PROTOCOL_ID_NBF

Especifica o protocolo NetBEUI.

fAllocateNetBuffer

Se esse membro for definido como TRUE, o NDIS alocará um pool de estruturas de NET_BUFFER_LIST . Cada estrutura de NET_BUFFER_LIST alocada é inicializada com uma estrutura NET_BUFFER .

Se esse membro for definido como FALSE, o NDIS alocará um pool de estruturas de NET_BUFFER_LIST . Cada estrutura de NET_BUFFER_LIST alocada não é inicializada para conter nenhuma estrutura de NET_BUFFER .

Para obter mais informações, consulte a seção Comentários.

ContextSize

O tamanho, em bytes, dos dados de estrutura de NET_BUFFER_LIST_CONTEXT pré-alocados que o NDIS deve fornecer para as estruturas de NET_BUFFER_LIST nesse pool. O ContextSize deve ser um múltiplo do valor definido por MEMORY_ALLOCATION_ALIGNMENT.

PoolTag

Uma marca de pool de kernel que o chamador usa quando aloca NET_BUFFER_LIST estruturas desse pool. A marca é uma cadeia de caracteres, delimitada por aspas simples, com até quatro caracteres, geralmente especificados em ordem invertida. A marca do pool de kernel ajuda o NDIS a identificar o proprietário das estruturas de NET_BUFFER_LIST alocadas desse pool.

DataSize

O tamanho de dados padrão, em bytes, para buffers de dados associados a esse pool de NET_BUFFER_LIST , se houver. O NDIS usa esse valor para definir o tamanho de todos os buffers de dados alocados para qualquer estrutura de NET_BUFFER associada.

Para obter mais informações, consulte a seção Comentários.

Flags

O seguinte sinalizador é definido:

NET_BUFFER_LIST_POOL_FLAG_VERIFY 0x00000001

Se esse sinalizador for definido, o NDIS não reutilizará imediatamente NET_BUFFER_LISTs desse pool. Em vez disso, as alocações serão marcadas como sem acesso quando forem liberadas para que os drivers possam detectar bugs de uso após a liberação.

Comentários

Se fAllocateNetBuffer estiver definido como FALSE, o NDIS não alocará NET_BUFFER estruturas e DataSize deverá ser definido como zero.

Se DataSize não for zero, fAllocateNetBuffer deverá ser definido como TRUE. Isso faz com que o NDIS aloque a estrutura NET_BUFFER com um buffer de dados do tamanho especificado.

Se DataSize for zero e fAllocateNetBuffer for TRUE, o NDIS alocará a estrutura NET_BUFFER , mas não o buffer de dados.

O parâmetro Parameters da função NdisAllocateNetBufferListPool contém um ponteiro para uma estrutura NET_BUFFER_LIST_POOL_PARAMETERS .

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Cabeçalho ndis/nblapi.h (inclua ndis.h)

Confira também

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_DATA

NdisAllocateNetBufferListPool