NET_ADAPTER_RX_CAPABILITIES structure (netadapter.h)
La structure NET_ADAPTER_RX_CAPABILITIES décrit les fonctionnalités de réception d’un adaptateur réseau.
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
Taille de cette structure, en octets.
AllocationMode
Valeur NET_RX_FRAGMENT_BUFFER_ALLOCATION_MODE qui spécifie comment le système d’exploitation doit allouer les 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 comment le système d’exploitation doit pré-attacher les 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 chaque mémoire tampon d’anneau de NET_FRAGMENTde la file d’attente de réception. Ce membre doit être un pouvoir de 2.
MaximumFrameSize
Taille d’image maximale, en octets, que l’adaptateur peut recevoir. Cette valeur doit inclure la taille maximale d’unité de transmission (MTU) prise en charge par votre matériel pour un paquet IP, ainsi que l’espace supplémentaire dont votre pilote peut avoir besoin pour les métadonnées de paquets. Pour plus d’informations, consultez l’exemple de réception dans la section Remarques 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 que le système a 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 comment le système d’exploitation doit mapper les mémoires tampons de données de réception.
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 de NET_DMA_CAPABILITIES allouée par le pilote et initialisée qui décrit les fonctionnalités DMA de l’adaptateur sur le chemin de réception. Ce membre est ignoré par NetAdapterCx si MappingRequirement n’est pas défini sur NetMemoryMappingRequirementDmaMapped.
UMDF NetAdapterCX ne prend pas en charge DmaCapabilities. Les pilotes UMDF doivent définir ce membre sur NULL.
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 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 l’allocation et la pièce jointe lui-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 par le pilote et attachées, il doit fournir à la fois une structure de contexte de retour personnalisée dans le membre RxBufferReturnContext de chaque NET_FRAGMENT pendant l’allocation de la 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 qu’il a terminé avec la mémoire tampon.
Condition requise | Valeur |
---|---|
Version KMDF minimale | 1,25 |
Version UMDF minimale | 2,33 |
En-tête | netadapter.h (inclure netadaptercx.h) |
NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED
NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED