структура 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 , указывающее, как операционная система должна выделять буферы приема.
AttachmentMode
Значение NET_RX_FRAGMENT_BUFFER_ATTACHMENT_MODE , указывающее, как операционная система должна предварительно подключать буферы приема.
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 , указывающее, как операционная система должна сопоставлять буферы приема данных.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.FragmentBufferAlignment
Минимальное выравнивание для фрагментов пакетов. Этот элемент должен быть степенью 2.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.DmaCapabilities
Указатель на структуру, выделенную драйвером и инициализированную NET_DMA_CAPABILITIES , которая описывает возможности адаптера DMA в пути получения. NetAdapterCx игнорирует этот элемент, если для свойства MappingRequirement не задано значение NetMemoryMappingRequirementDmaMapped.
Комментарии
Вызовите одну из функций 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 |
Верхняя часть | netadapter.h (включая netadaptercx.h) |
См. также раздел
NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED
NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по