Requisitos de interrupción de VMQ
Un controlador de minipuerto que admita la funcionalidad de cola de máquinas virtuales (VMQ) también debe admitir los siguientes requisitos de asignación de interrupciones:
El controlador de minipuerto debe admitir MSI-X. El controlador debe establecer la marca NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED en el miembro SupportedQueueProperties de la estructura NDIS_RECEIVE_FILTER_CAPABILITIES .
El controlador devuelve esta estructura en la estructura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES que el controlador usa en su llamada a la función NdisMSetMiniportAttributes .
El controlador de minipuerto debe llamar a la función NdisGetRssProcessorInformation para obtener información del procesador para asignar vectores de interrupción. No debe basarse en las claves del Registro ni en la información obtenida de otros orígenes para la asignación de interrupciones.
NdisGetRssProcessorInformation devuelve información sobre el conjunto de procesadores que un controlador de miniporte puede usar para RSS y VMQ. Esta información se encuentra en una estructura de NDIS_RSS_PROCESSOR_INFO .
El controlador de minipuerto solo debe asignar un vector de interrupción para cada procesador especificado en la estructura NDIS_RSS_PROCESSOR_INFO .
El controlador de miniporte no debe asignar más de dos vectores de interrupción para otros eventos que no están relacionados con las operaciones de envío o recepción de paquetes. Por ejemplo, el controlador podría asignar un IDT para eventos de estado de vínculo.
El controlador de minipuerto debe admitir el número mínimo de vectores de interrupción MSI-X, tal como se define en la tabla siguiente:
Número de colas Número mínimo de vectores de interrupción MSI-X necesarios 1–16
1–16
17–64
16–32
65 o más
32 o más