Condividi tramite


NET_ADAPTER_RX_CAPABILITIES struttura (netadapter.h)

La struttura NET_ADAPTER_RX_CAPABILITIES descrive le funzionalità di ricezione di una scheda net.

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;

Members

Size

Dimensioni di questa struttura, in byte.

AllocationMode

Valore NET_RX_FRAGMENT_BUFFER_ALLOCATION_MODE che specifica il modo in cui il sistema operativo deve allocare i buffer.

I driver UMDF devono impostare questo valore su NetRxFragmentBufferAllocationModeSystem.

AttachmentMode

Valore NET_RX_FRAGMENT_BUFFER_ATTACHMENT_MODE che specifica il modo in cui il sistema operativo deve pre-collegare i buffer di ricezione.

I driver UMDF devono impostare questo valore su NetRxFragmentBufferAttachmentModeSystem.

FragmentRingNumberOfElementsHint

Suggerimento che indica il numero di elementi desiderati dall'adattatore per ogni buffer dell'anello della coda di ricezione di NET_FRAGMENTs. Questo membro deve essere una potenza di 2.

MaximumFrameSize

Dimensioni massime del frame, in byte, che l'adattatore può ricevere. Questo valore deve includere le dimensioni massime dell'unità di trasmissione (MTU) supportate 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'adattatore.

DUMMYUNIONNAME

Unione che contiene i membri seguenti:

DUMMYUNIONNAME.DUMMYSTRUCTNAME

Struct che contiene il membro seguente:

DUMMYUNIONNAME.DUMMYSTRUCTNAME.EvtAdapterReturnRxBuffer

Puntatore alla funzione di callback del driver EVT_NET_ADAPTER_RETURN_RX_BUFFER. Questo membro è obbligatorio se il membro AllocationMode è impostato su NetRxFragmentBufferAllocationModeDriver per il sistema operativo da richiamare al termine del sistema operativo con il buffer di ricezione.

DUMMYUNIONNAME.DUMMYSTRUCTNAME2

Struct che contiene i membri seguenti:

DUMMYUNIONNAME.DUMMYSTRUCTNAME2.MappingRequirement

Valore NET_MEMORY_MAPPING_REQUIREMENT che specifica il modo in cui il sistema operativo deve eseguire il mapping riceve i buffer di dati.

I driver UMDF devono impostare MappingRequirement su NetMemoryMappingRequirementNone.

DUMMYUNIONNAME.DUMMYSTRUCTNAME2.FragmentBufferAlignment

Allineamento minimo per i frammenti di pacchetto. Questo membro deve essere una potenza 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.

Commenti

Chiamare una delle funzioni NET_ADAPTER_RX_CAPABILITIES_INIT_XXX per inizializzare questa struttura. Per altre informazioni su ogni funzione di inizializzazione, vedere i collegamenti nella sezione Vedere 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 o specifica che il sistema operativo esegue entrambi. Nella maggior parte dei casi, è consigliabile allocare e collegare i buffer del sistema operativo.

Se il client specifica i buffer di ricezione allocati e collegati al driver, deve fornire una struttura del contesto restituito personalizzata nel membro RxBufferReturnContext di ogni NET_FRAGMENT durante l'allocazione del buffer, nonché una funzione di callback EVT_NET_ADAPTER_RETURN_RX_BUFFER in questa struttura di NET_ADAPTER_RX_CAPABILITIES per il sistema operativo da richiamare al termine del buffer.

Requisiti

Requisito Valore
Versione KMDF minima 1,25
Versione UMDF minima 2.33
Intestazione netadapter.h (include netadaptercx.h)

Vedi anche

NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED

NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED

NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED_DMA

NetAdapterSetDatapathCapabilities