структура NET_ADAPTER_RX_CAPABILITIES (netadapter.h)
Структура NET_ADAPTER_RX_CAPABILITIES описывает возможности получения сетевого адаптера.
Синтаксис
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;
Члены
Size
Размер этой структуры в байтах.
AllocationMode
Значение NET_RX_FRAGMENT_BUFFER_ALLOCATION_MODE, указывающее, как операционная система должна выделять буферы приема.
Драйверы UMDF должны задать это значение для NetRxFragmentBufferAllocationModeSystem.
AttachmentMode
Значение NET_RX_FRAGMENT_BUFFER_ATTACHMENT_MODE, указывающее, как операционная система должна предварительно подключить буферы получения.
Драйверы UMDF должны задать это значение для NetRxFragmentBufferAttachmentModeSystem.
FragmentRingNumberOfElementsHint
Указание, указывающее, сколько элементов адаптеру требуется для каждого кольцевого буфера очереди получения NET_FRAGMENT. Этот член должен быть мощностью 2.
MaximumFrameSize
Максимальный размер кадра в байтах, который может получить адаптер. Это значение должно содержать максимальный размер единицы передачи (MTU), поддерживаемый оборудованием для IP-пакета, а также дополнительное пространство, которое может потребоваться драйверу для метаданных пакетов. Дополнительные сведения см. в примере получения в разделе "Примечания" EVT_PACKET_QUEUE_ADVANCE.
MaximumNumberOfQueues
Максимальное количество очередей получения, поддерживаемых адаптером.
DUMMYUNIONNAME
Объединение, содержащее следующие члены:
DUMMYUNIONNAME.DUMMYSTRUCTNAME
Структуру, содержащую следующий элемент:
DUMMYUNIONNAME.DUMMYSTRUCTNAME.EvtAdapterReturnRxBuffer
Указатель на функцию обратного вызова драйвера EVT_NET_ADAPTER_RETURN_RX_BUFFER. Этот элемент требуется, если для элемента AllocationMode задано значение NetRxFragmentBufferAllocationModeDriver для вызова операционной системы после завершения работы системы с буфером получения.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2
Структуру, содержащую следующие элементы:
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.MappingRequirement
Значение NET_MEMORY_MAPPING_REQUIREMENT, указывающее, как операционная система должна сопоставлять буферы данных.
Драйверы UMDF должны задать MappingRequirement значение NetMemoryMappingRequirementNone.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.FragmentBufferAlignment
Минимальное выравнивание фрагментов пакетов. Этот член должен быть мощностью 2.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.DmaCapabilities
Указатель на выделенную драйвером и инициализированную NET_DMA_CAPABILITIES структуру, описывающую возможности DMA адаптера в пути получения. Этот элемент игнорируется NetAdapterCx, если MappingRequirement не задано значение NetMemoryMappingRequirementDmapped.
UMDF NetAdapterCX не поддерживает DmaCapabilities. Драйверы UMDF должны задать для этого члена значение NULL.
Замечания
Вызовите одну из функций NET_ADAPTER_RX_CAPABILITIES_INIT_XXX для инициализации этой структуры. Дополнительные сведения о каждой функции инициализации см. в разделе "См. также". Инициализированная структура NET_ADAPTER_RX_CAPABILITIES передается в качестве параметра для NetAdapterSetDatapathCapabilities.
Как правило, драйвер клиента выполняет как выделение, так и вложение, или указывает, что операционная система выполняет оба. В большинстве случаев рекомендуется выделить и подключить буферы получения операционной системы.
Если клиент указывает буферы, выделенные драйвером и присоединенными к ним, он должен предоставить настраиваемую структуру контекста возврата в RxBufferReturnContext член каждого NET_FRAGMENT во время выделения буфера, а также функцию обратного вызова EVT_NET_ADAPTER_RETURN_RX_BUFFER в этой структуре NET_ADAPTER_RX_CAPABILITIES для вызова операционной системы после завершения работы с буфером.
Требования
Требование | Ценность |
---|---|
минимальная версия KMDF | 1.25 |
минимальная версия UMDF | 2.33 |
заголовка | netadapter.h (include netadaptercx.h) |
См. также
NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED
NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED