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) |