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 값입니다.
AttachmentMode
운영 체제에서 수신 버퍼를 미리 연결하는 방법을 지정하는 NET_RX_FRAGMENT_BUFFER_ATTACHMENT_MODE 값입니다.
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 값입니다.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.FragmentBufferAlignment
패킷 조각에 대한 최소 맞춤입니다. 이 멤버는 2의 힘이어야 합니다.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.DmaCapabilities
수신 경로에서 어댑터의 DMA 기능을 설명하는 드라이버 할당 및 초기화된 NET_DMA_CAPABILITIES 구조체에 대한 포인터입니다. MappingRequirement 가 NetMemoryMappingRequirementDmapped 로 설정되지 않은 경우 이 멤버는 NetAdapterCx에서 무시됩니다.
설명
이 구조를 초기화하려면 NET_ADAPTER_RX_CAPABILITIES_INIT_ XXX 함수 중 하나를 호출합니다. 각 초기화 함수에 대한 자세한 내용은 참고 섹션의 링크를 참조하세요. 초기화된 NET_ADAPTER_RX_CAPABILITIES 구조체는 NetAdapterSetDatapathCapabilities에 매개 변수로 전달됩니다.
일반적으로 클라이언트 드라이버는 할당 및 연결 자체를 모두 수행하거나 운영 체제가 둘 다 수행되도록 지정합니다. 대부분의 경우 운영 체제에서 수신 버퍼를 할당하고 연결하는 것이 좋습니다.
클라이언트가 드라이버 할당 및 연결된 수신 버퍼를 지정하는 경우 버퍼를 할당하는 동안 각 NET_FRAGMENT RxBufferReturnContext 멤버의 사용자 지정 반환 컨텍스트 구조와 버퍼가 완료되면 운영 체제에서 호출할 NET_ADAPTER_RX_CAPABILITIES 구조의 EVT_NET_ADAPTER_RETURN_RX_BUFFER 콜백 함수를 모두 제공해야 합니다.
요구 사항
| 최소 KMDF 버전 | 1.25 |
| 헤더 | netadapter.h(netadaptercx.h 포함) |
참조
NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED
NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED
피드백
다음에 대한 사용자 의견 제출 및 보기