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 de 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 miniporto deve definir o membro tipo do de cabeçalho para NDIS_OBJECT_TYPE_DEFAULT. Para especificar a versão da estrutura de NET_BUFFER_LIST_POOL_PARAMETERS, o driver deve definir o membro de Revisão do de Cabeçalho com o seguinte valor:
NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1
Versão original do NDIS 6.0.
Defina o membro tamanho 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 estiver 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 estiver 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 estruturas 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 especificadas em ordem invertida. A marca de 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 quaisquer buffers de dados alocados para quaisquer estruturas de NET_BUFFER associadas.
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 estiver 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.
Observações
Se fAllocateNetBuffer estiver definido como FALSE, o NDIS não alocará estruturas NET_BUFFER 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 de 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 Parâmetros da função NdisAllocateNetBufferListPool contém um ponteiro para uma estrutura de NET_BUFFER_LIST_POOL_PARAMETERS.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Com suporte no NDIS 6.0 e posterior. |
cabeçalho | ndis/nblapi.h (inclua ndis.h) |