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