NET_ADAPTER_RX_CAPABILITIES 구조체(netadapter.h)
NET_ADAPTER_RX_CAPABILITIES 구조는 net 어댑터의 수신 기능을 설명합니다.
구문
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
어댑터가 받을 수 있는 최대 프레임 크기(바이트)입니다. 이 값에는 하드웨어가 IP 패킷에 대해 지원하는 최대 MTU(전송 단위) 크기와 드라이버가 패킷 메타데이터에 필요할 수 있는 추가 공간이 포함되어야 합니다. 자세한 내용은 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
수신 경로에서 어댑터의 DMA 기능을 설명하는 드라이버 할당 및 초기화된 NET_DMA_CAPABILITIES 구조체에 대한 포인터입니다. MappingRequirement가 NetMemoryMappingRequirementDmaMapped로 설정되지 않은 경우 NetAdapterCx에서 이 멤버를 무시합니다.
UMDF NetAdapterCX는 DmaCapabilities를 지원하지 않습니다. UMDF 드라이버는 이 멤버를 NULL로 설정해야 합니다.
설명
NET_ADAPTER_RX_CAPABILITIES_INIT_XXX 함수 중 하나를 호출하여 이 구조를 초기화합니다. 각 초기화 함수에 대한 자세한 내용은 참고 항목 섹션의 링크를 참조하세요. 초기화된 NET_ADAPTER_RX_CAPABILITIES 구조체는 NetAdapterSetDatapathCapabilities에 매개 변수로 전달됩니다.
일반적으로 클라이언트 드라이버는 할당 및 첨부 파일 자체를 모두 수행하거나 운영 체제가 둘 다 수행되도록 지정합니다. 대부분의 경우 운영 체제에서 수신 버퍼를 할당하고 연결하는 것이 좋습니다.
클라이언트가 드라이버 할당 및 연결된 수신 버퍼를 지정하는 경우 버퍼 할당 중에 각 NET_FRAGMENTRxBufferReturnContext 멤버의 사용자 지정 반환 컨텍스트 구조와 버퍼가 완료되면 운영 체제가 호출할 이 NET_ADAPTER_RX_CAPABILITIES 구조의 EVT_NET_ADAPTER_RETURN_RX_BUFFER 콜백 함수를 모두 제공해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
최소 KMDF 버전 | 1.25 |
최소 UMDF 버전 | 2.33 |
머리글 | netadapter.h(netadaptercx.h 포함) |
추가 정보
NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED
NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED