struttura NET_ADAPTER_RX_CAPABILITIES (netadapter.h)
La struttura NET_ADAPTER_RX_CAPABILITIES descrive le funzionalità di ricezione di un net adapter.
Sintassi
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;
Membri
Size
Dimensioni di questa struttura, in byte.
AllocationMode
Valore NET_RX_FRAGMENT_BUFFER_ALLOCATION_MODE che specifica come il sistema operativo deve allocare buffer di ricezione.
I driver UMDF devono impostare questo valore su NetRxFragmentBufferAllocationModeSystem.
AttachmentMode
Valore NET_RX_FRAGMENT_BUFFER_ATTACHMENT_MODE che specifica come il sistema operativo deve pre-collegare i buffer di ricezione.
I driver UMDF devono impostare questo valore su NetRxFragmentBufferAttachmentModeSystem.
FragmentRingNumberOfElementsHint
Hint che indica il numero di elementi desiderati dall'adattatore per il buffer circolare di ogni coda di ricezione di NET_FRAGMENT. Questo membro deve essere un potere di 2.
MaximumFrameSize
Dimensione massima del frame, in byte, che l'adattatore può ricevere. Questo valore deve includere la dimensione massima dell'unità di trasmissione (MTU) supportata dall'hardware per un pacchetto IP, oltre a spazio aggiuntivo che potrebbe essere necessario per i metadati dei pacchetti. Per altre informazioni, vedere l'esempio di ricezione nella sezione Osservazioni di EVT_PACKET_QUEUE_ADVANCE.
MaximumNumberOfQueues
Numero massimo di code di ricezione supportate dall'adapter.
DUMMYUNIONNAME
Unione contenente i membri seguenti:
DUMMYUNIONNAME.DUMMYSTRUCTNAME
Struct contenente il membro seguente:
DUMMYUNIONNAME.DUMMYSTRUCTNAME.EvtAdapterReturnRxBuffer
Puntatore alla funzione di callback EVT_NET_ADAPTER_RETURN_RX_BUFFER del driver. Questo membro è necessario se il membro AllocationMode è impostato su NetRxFragmentBufferAllocationModeDriver affinché il sistema operativo venga richiamato al termine del buffer di ricezione.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2
Struct contenente i membri seguenti:
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.MappingRequirement
Valore NET_MEMORY_MAPPING_REQUIREMENT che specifica il modo in cui il sistema operativo deve mappare riceve i buffer di dati.
I driver UMDF devono impostare MappingRequirement su NetMemoryMappingRequirementNone.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.FragmentBufferAlignment
Allineamento minimo per i frammenti di pacchetti. Questo membro deve essere un potere di 2.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.DmaCapabilities
Puntatore a una struttura di NET_DMA_CAPABILITIES allocata e inizializzata del driver che descrive le funzionalità DMA dell'adattatore nel percorso di ricezione. Questo membro viene ignorato da NetAdapterCx se MappingRequirement non è impostato su NetMemoryMappingRequirementDmapped.
UMDF NetAdapterCX non supporta DmaCapabilities. I driver UMDF devono impostare questo membro su NULL.
Osservazioni
Chiamare una delle funzioniNET_ADAPTER_RX_CAPABILITIES_INIT_ XXX per inizializzare questa struttura. Per altre info su ogni funzione di inizializzazione, vedi i collegamenti nella sezione Vedi anche. Una struttura di NET_ADAPTER_RX_CAPABILITIES inizializzata viene passata come parametro a NetAdapterSetDatapathCapabilities.
In genere, un driver client esegue sia l'allocazione che l'allegato stesso oppure specifica che il sistema operativo esegue entrambe le operazioni. Nella maggior parte dei casi, è consigliabile allocare e allegare i buffer di ricezione dal sistema operativo.
Se il client specifica buffer di ricezione allocati e collegati al driver, deve fornire sia una struttura di contesto restituito personalizzata nella RxBufferReturnContext membro di ogni NET_FRAGMENT durante l'allocazione del buffer, sia una funzione di callback EVT_NET_ADAPTER_RETURN_RX_BUFFER in questa struttura di NET_ADAPTER_RX_CAPABILITIES affinché il sistema operativo richiami al termine del buffer.
Fabbisogno
Requisito | Valore |
---|---|
versione minima di KMDF | 1.25 |
versione minima di UMDF | 2.33 |
intestazione | netadapter.h (include netadaptercx.h) |
Vedere anche
NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED
NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED