estructura NET_ADAPTER_RX_CAPABILITIES (netadapter.h)

La estructura NET_ADAPTER_RX_CAPABILITIES describe las funcionalidades de recepción de un adaptador de red.

Sintaxis

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;

Miembros

Size

Tamaño de esta estructura, en bytes.

AllocationMode

Valor de NET_RX_FRAGMENT_BUFFER_ALLOCATION_MODE que especifica cómo debe asignar el sistema operativo los búferes de recepción.

AttachmentMode

Valor de NET_RX_FRAGMENT_BUFFER_ATTACHMENT_MODE que especifica cómo el sistema operativo debe adjuntar previamente los búferes de recepción.

FragmentRingNumberOfElementsHint

Sugerencia que indica cuántos elementos quiere el adaptador para cada búfer de anillo de la cola de recepción de NET_FRAGMENT. Este miembro debe ser una potencia de 2.

MaximumFrameSize

Tamaño máximo del marco, en bytes, que el adaptador puede recibir. Este valor debe incluir el tamaño máximo de la unidad de transmisión (MTU) que admite el hardware para un paquete IP, además de espacio adicional que el controlador podría necesitar para los metadatos del paquete. Para obtener más información, vea el ejemplo de recepción en la sección Comentarios de EVT_PACKET_QUEUE_ADVANCE.

MaximumNumberOfQueues

Número máximo de colas de recepción que admite el adaptador.

DUMMYUNIONNAME

Unión que contiene los siguientes miembros:

DUMMYUNIONNAME.DUMMYSTRUCTNAME

Estructura que contiene el siguiente miembro:

DUMMYUNIONNAME.DUMMYSTRUCTNAME.EvtAdapterReturnRxBuffer

Puntero a la función de devolución de llamada EVT_NET_ADAPTER_RETURN_RX_BUFFER del controlador. Este miembro es necesario si el miembro AllocationMode se establece en NetRxFragmentBufferAllocationModeDriver para que el sistema operativo invoque una vez que el sistema haya terminado con el búfer de recepción.

DUMMYUNIONNAME.DUMMYSTRUCTNAME2

Estructura que contiene los siguientes miembros:

DUMMYUNIONNAME.DUMMYSTRUCTNAME2.MappingRequirement

Valor de NET_MEMORY_MAPPING_REQUIREMENT que especifica cómo debe asignar el sistema operativo los búferes de datos.

DUMMYUNIONNAME.DUMMYSTRUCTNAME2.FragmentBufferAlignment

Alineación mínima para fragmentos de paquetes. Este miembro debe ser una potencia de 2.

DUMMYUNIONNAME.DUMMYSTRUCTNAME2.DmaCapabilities

Puntero a una estructura de NET_DMA_CAPABILITIES asignada por el controlador e inicializada que describe las funcionalidades de DMA del adaptador en la ruta de acceso de recepción. NetAdapterCx omite este miembro si MappingRequirement no está establecido en NetMemoryMappingRequirementDmapped.

Comentarios

Llame a una de las funciones NET_ADAPTER_RX_CAPABILITIES_INIT_XXX para inicializar esta estructura. Para obtener más información sobre cada función de inicialización, consulte los vínculos de la sección Ver también. Una estructura de NET_ADAPTER_RX_CAPABILITIES inicializada se pasa como parámetro a NetAdapterSetDatapathCapabilities.

Normalmente, un controlador de cliente realiza la asignación y los datos adjuntos, o especifica que el sistema operativo realiza ambos. En la mayoría de los casos, se recomienda que el sistema operativo asigne y adjunte búferes de recepción.

Si el cliente especifica búferes de recepción asignados por controladores y adjuntos, debe proporcionar una estructura de contexto de retorno personalizada en el miembro RxBufferReturnContext de cada NET_FRAGMENT durante la asignación de búfer, así como una función de devolución de llamada EVT_NET_ADAPTER_RETURN_RX_BUFFER en esta estructura de devolución de NET_ADAPTER_RX_CAPABILITIES para que el sistema operativo invoque una vez que haya terminado con el búfer.

Requisitos

Requisito Value
Versión mínima de KMDF 1,25
Encabezado netadapter.h (include netadaptercx.h)

Consulte también

NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED

NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED

NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED_DMA

NetAdapterSetDatapathCapabilities