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.
Los controladores UMDF deben establecer este valor en NetRxFragmentBufferAllocationModeSystem.
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.
Los controladores UMDF deben establecer este valor en NetRxFragmentBufferAttachmentModeSystem.
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.
Los controladores UMDF deben establecer MappingRequirement enNetMemoryMappingRequirementNone.
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.
UMDF NetAdapterCX no admite DmaCapabilities. Los controladores UMDF deben establecer este miembro en NULL.
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 |
Versión mínima de UMDF | 2,33 |
Encabezado | netadapter.h (include netadaptercx.h) |
Consulte también
NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED
NET_ADAPTER_RX_CAPABILITIES_INIT_SYSTEM_MANAGED