structure NET_ADAPTER_RX_CAPABILITIES (netadapter.h)
La structure NET_ADAPTER_RX_CAPABILITIES décrit les fonctionnalités de réception d’une carte réseau.
Syntaxe
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;
Membres
Size
Taille de cette structure, en octets.
AllocationMode
Valeur NET_RX_FRAGMENT_BUFFER_ALLOCATION_MODE qui spécifie la façon dont le système d’exploitation doit allouer des mémoires tampons de réception.
Les pilotes UMDF doivent définir cette valeur sur NetRxFragmentBufferAllocationModeSystem.
AttachmentMode
Valeur NET_RX_FRAGMENT_BUFFER_ATTACHMENT_MODE qui spécifie la façon dont le système d’exploitation doit pré-attacher des mémoires tampons de réception.
Les pilotes UMDF doivent définir cette valeur sur NetRxFragmentBufferAttachmentModeSystem.
FragmentRingNumberOfElementsHint
Indicateur indiquant le nombre d’éléments souhaités par l’adaptateur pour la mémoire tampon en anneau de chaque file d’attente de réception de NET_FRAGMENT. Ce membre doit être un pouvoir de 2.
MaximumFrameSize
Taille maximale du frame, en octets, que l’adaptateur peut recevoir. Cette valeur doit inclure la taille maximale de l’unité de transmission (MTU) prise en charge par votre matériel pour un paquet IP, ainsi que l’espace supplémentaire dont votre pilote a besoin pour les métadonnées de paquets. Pour plus d’informations, consultez l’exemple de réception dans la section Notes de EVT_PACKET_QUEUE_ADVANCE.
MaximumNumberOfQueues
Nombre maximal de files d’attente de réception que l’adaptateur prend en charge.
DUMMYUNIONNAME
Union qui contient les membres suivants :
DUMMYUNIONNAME.DUMMYSTRUCTNAME
Struct qui contient le membre suivant :
DUMMYUNIONNAME.DUMMYSTRUCTNAME.EvtAdapterReturnRxBuffer
Pointeur vers la fonction de rappel EVT_NET_ADAPTER_RETURN_RX_BUFFER du pilote. Ce membre est requis si le membre AllocationMode est défini sur NetRxFragmentBufferAllocationModeDriver pour que le système d’exploitation appelle une fois le système terminé avec la mémoire tampon de réception.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2
struct qui contient les membres suivants :
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.MappingRequirement
Valeur NET_MEMORY_MAPPING_REQUIREMENT qui spécifie la façon dont le système d’exploitation doit mapper les mémoires tampons de données.
Les pilotes UMDF doivent définir MappingRequirement sur NetMemoryMappingRequirementNone.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.FragmentBufferAlignment
Alignement minimal pour les fragments de paquets. Ce membre doit être un pouvoir de 2.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.DmaCapabilities
Pointeur vers une structure d'NET_DMA_CAPABILITIES allouée au pilote et initialisée qui décrit les fonctionnalités DMA de l’adaptateur sur le chemin d’accès de réception. Ce membre est ignoré par NetAdapterCx si MappingRequirement n’est pas défini sur NetMemoryMappingRequirementDmapped.
UMDF NetAdapterCX ne prend pas en charge DmaCapabilities. Les pilotes UMDF doivent définir ce membre sur NULL.
Remarques
Appelez l’une des fonctions NET_ADAPTER_RX_CAPABILITIES_INIT_XXX pour initialiser cette structure. Pour plus d’informations sur chaque fonction d’initialisation, consultez les liens de la section Voir aussi. Une structure de NET_ADAPTER_RX_CAPABILITIES initialisée est passée en tant que paramètre à NetAdapterSetDatapathCapabilities.
En règle générale, un pilote client effectue à la fois l’allocation et la pièce jointe elle-même ou spécifie que le système d’exploitation effectue les deux. Dans la plupart des cas, nous recommandons que le système d’exploitation alloue et attache des mémoires tampons de réception.
Si le client spécifie des mémoires tampons de réception allouées et attachées au pilote, il doit fournir à la fois une structure de contexte de retour personnalisée dans le RxBufferReturnContext membre de chaque NET_FRAGMENT pendant l’allocation de mémoire tampon, ainsi qu’une fonction de rappel EVT_NET_ADAPTER_RETURN_RX_BUFFER dans cette structure NET_ADAPTER_RX_CAPABILITIES pour que le système d’exploitation appelle une fois la mémoire tampon terminée.
Exigences
Exigence | Valeur |
---|---|
version minimale de KMDF | 1.25 |
version minimale de UMDF | 2.33 |
d’en-tête | netadapter.h (include netadaptercx.h) |
Voir aussi
NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED
NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED