Cambio de la afinidad de CPU de las entradas de tabla MSI-X
Los controladores de minipuerto NDIS 6.1 y versiones posteriores que admiten MSI-X pueden llamar a la función NdisMConfigMSIXTableEntry para enmascarar, desenmascarar o asignar entradas de tabla MSI-X a mensajes MSI-X asignados por el dispositivo. Los controladores de minipuerto que admiten RSS usan NdisMConfigMSIXTableEntry para cambiar la afinidad de CPU de las entradas de tabla MSI-X en tiempo de ejecución.
NdisMConfigMSIXTableEntry es un contenedor alrededor de la consulta GUID_MSIX_TABLE_CONFIG_INTERFACE . Los controladores de miniport pueden llamar a NdisMConfigMSIXTableEntry después de que NDIS llame a la función MiniportInitializeEx y antes de que los controladores vuelvan de la función MiniportHaltEx .
Un controlador de miniporte que asigna una entrada de tabla MSI-X para cada cola RSS y tiene menos colas que el número de procesadores RSS puede agregar recursos de mensajes MSI-X adicionales en la función MiniportFilterResourceRequirements . Para obtener más información sobre cómo modificar los recursos asignados para un dispositivo, consulte Filtrado de recursos MSI-X.
El controlador de minipuerto puede establecer la afinidad de CPU de los recursos de interrupción MSI-X para que el dispositivo tenga al menos un mensaje MSI-X para cada procesador RSS. Tenga en cuenta que el controlador de bus PCI asigna inicialmente las entradas de tabla MSI-X (donde n es el número de entradas de tabla MSI-X que el hardware de NIC notificó al bus) a los primeros mensajes MSI-X en los recursos modificados. Después de que NDIS llame a MiniportInitializeEx, cuando el controlador de miniporte cambia el procesador de destino de una entrada de tabla MSI-X determinada, el controlador llama a NdisMConfigMSIXTableEntry para asignar esa entrada de tabla a un mensaje MSI-X que ya tiene la afinidad establecida en el procesador deseado.