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_FRAGMENT的 RxBufferReturnContext 成員中提供自定義傳回內容結構,以及此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