共用方式為


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) 大小,再加上驅動程式可能需要的封包元數據的額外空間。 For more information, see the receive example in the Remarks section of 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 未設定為 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

NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED_DMA

NetAdapterSetDatapathCapabilities