共用方式為


NET_ADAPTER_RX_CAPABILITIES結構 (netadapter.h)

NET_ADAPTER_RX_CAPABILITIES 結構描述 net adapter 的接收功能。

語法

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

驅動程式配置和初始化之 NET_DMA_CAPABILITIES 結構的指標,描述接收路徑上的配接器 DMA 功能。 如果 MappingRequirement 未設定為 netMemoryMappingRequirementDmapped ,NetAdapterCx 會忽略此成員。

UMDF NetAdapterCX 不支援 DmaCapabilities。 UMDF 驅動程式必須將這個成員設定為 NULL

言論

呼叫其中一個NET_ADAPTER_RX_CAPABILITIES_INIT_XXX 函式來初始化這個結構。 如需每個初始化函式的詳細資訊,請參閱一節中的連結。 初始化 NET_ADAPTER_RX_CAPABILITIES 結構會當做參數傳遞至 netAdapterSetDatapathCapabilities

一般而言,客戶端驅動程式會同時執行配置和附件本身,或指定作系統同時執行兩者。 在大部分情況下,我們建議作系統配置並附加接收緩衝區。

如果客戶端確實指定驅動程式配置和附加的接收緩衝區,它就必須在緩衝區配置期間提供 RxBufferReturnContext 中每個 NET_FRAGMENT 成員的自定義傳回內容結構,以及此 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

NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED_DMA

NetAdapterSetDatapathCapabilities