Share via


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 구조체에 대한 포인터입니다. MappingRequirementNetMemoryMappingRequirementDmaMapped로 설정되지 않은 경우 NetAdapterCx에서 이 멤버를 무시합니다.

설명

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
머리글 netadapter.h(netadaptercx.h 포함)

추가 정보

NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED

NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED

NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED_DMA

NetAdapterSetDatapathCapabilities