NET_ADAPTER_RX_CAPABILITIES estrutura (netadapter.h)
A estrutura NET_ADAPTER_RX_CAPABILITIES descreve os recursos de recebimento de um adaptador de rede.
Sintaxe
typedef struct _NET_ADAPTER_RX_CAPABILITIES {
ULONG Size;
NET_RX_FRAGMENT_BUFFER_ALLOCATION_MODE AllocationMode;
NET_RX_FRAGMENT_BUFFER_ATTACHMENT_MODE AttachmentMode;
UINT32 FragmentRingNumberOfElementsHint;
SIZE_T MaximumFrameSize;
SIZE_T MaximumNumberOfQueues;
union {
struct {
PFN_NET_ADAPTER_RETURN_RX_BUFFER EvtAdapterReturnRxBuffer;
} DUMMYSTRUCTNAME;
struct {
NET_MEMORY_MAPPING_REQUIREMENT MappingRequirement;
SIZE_T FragmentBufferAlignment;
NET_ADAPTER_DMA_CAPABILITIES *DmaCapabilities;
} DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME;
} NET_ADAPTER_RX_CAPABILITIES;
Membros
Size
O tamanho dessa estrutura, em bytes.
AllocationMode
Um valor NET_RX_FRAGMENT_BUFFER_ALLOCATION_MODE que especifica como o sistema operacional deve alocar buffers de recebimento.
Os drivers UMDF devem definir esse valor para NetRxFragmentBufferAllocationModeSystem.
AttachmentMode
Um valor NET_RX_FRAGMENT_BUFFER_ATTACHMENT_MODE que especifica como o sistema operacional deve pré-anexar buffers de recebimento.
Os drivers UMDF devem definir esse valor como NetRxFragmentBufferAttachmentModeSystem.
FragmentRingNumberOfElementsHint
Uma dica que indica quantos elementos o adaptador deseja para cada buffer de anel da fila de recebimento de NET_FRAGMENT. Esse membro deve ser um poder de 2.
MaximumFrameSize
O tamanho máximo do quadro, em bytes, que o adaptador pode receber. Esse valor deve incluir o tamanho máximo da MTU (unidade de transmissão) compatível com o hardware para um pacote IP, além de espaço adicional que o driver pode precisar para metadados de pacote. Para obter mais informações, consulte o exemplo de recebimento na seção Comentários do EVT_PACKET_QUEUE_ADVANCE.
MaximumNumberOfQueues
O número máximo de filas de recebimento compatíveis com o adaptador.
DUMMYUNIONNAME
Um sindicato que contém os seguintes membros:
DUMMYUNIONNAME.DUMMYSTRUCTNAME
Um struct que contém o seguinte membro:
DUMMYUNIONNAME.DUMMYSTRUCTNAME.EvtAdapterReturnRxBuffer
Um ponteiro para a função de retorno de chamada EVT_NET_ADAPTER_RETURN_RX_BUFFER do driver. Esse membro será necessário se o membro AllocationMode estiver definido como NetRxFragmentBufferAllocationModeDriver para o sistema operacional invocar depois que o sistema for concluído com o buffer de recebimento.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2
Um struct que contém os seguintes membros:
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.MappingRequirement
Um valor NET_MEMORY_MAPPING_REQUIREMENT que especifica como o sistema operacional deve mapear os buffers de dados de recebimento.
Os drivers UMDF devem definir MappingRequirement para NetMemoryMappingRequirementNone.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.FragmentBufferAlignment
O alinhamento mínimo para fragmentos de pacote. Esse membro deve ser um poder de 2.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.DmaCapabilities
Um ponteiro para uma estrutura de NET_DMA_CAPABILITIES alocada e inicializada pelo driver que descreve os recursos de DMA do adaptador no caminho de recebimento. Esse membro será ignorado por NetAdapterCx se MappingRequirement não estiver definido como NetMemoryMappingRequirementDmaMapped.
O UMDF NetAdapterCX não dá suporte a DmaCapabilities. Os drivers UMDF devem definir esse membro como NULL.
Observações
Chame uma das funçõesXXX NET_ADAPTER_RX_CAPABILITIES_INIT_ para inicializar essa estrutura. Para obter mais informações sobre cada função de inicialização, consulte os links na seção Consulte Também. Uma estrutura de NET_ADAPTER_RX_CAPABILITIES inicializada é passada como um parâmetro para NetAdapterSetDatapathCapabilities.
Normalmente, um driver cliente executa a alocação e o anexo em si ou especifica que o sistema operacional execute ambos. Na maioria dos casos, recomendamos que o sistema operacional aloque e anexe buffers de recebimento.
Se o cliente especificar buffers de recebimento alocados e anexados ao driver, ele deverá fornecer uma estrutura de contexto de retorno personalizada no RxBufferReturnContext membro de cada NET_FRAGMENT durante a alocação do buffer, bem como uma função de retorno de chamada EVT_NET_ADAPTER_RETURN_RX_BUFFER nesta estrutura NET_ADAPTER_RX_CAPABILITIES para o sistema operacional invocar depois que terminar com o buffer.
Requisitos
Requisito | Valor |
---|---|
versão mínima do KMDF | 1.25 |
versão mínima do UMDF | 2.33 |
cabeçalho | netadapter.h (inclua netadaptercx.h) |
Consulte também
NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED
NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED