Requisiti di interruzione VMQ
Un driver miniport che supporta la funzionalità VMQ (Virtual Machine Queue) deve supportare anche i requisiti di allocazione degli interruzioni seguenti:
Il driver miniport deve supportare MSI-X. Il driver deve impostare il flag di NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED nel membro SupportedQueueProperties della struttura NDIS_RECEIVE_FILTER_CAPABILITIES .
Il driver restituisce questa struttura nella struttura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES utilizzata dal driver nella chiamata alla funzione NdisMSetMiniportAttributes .
Il driver miniport deve chiamare la funzione NdisGetRssProcessorInformation per ottenere informazioni sul processore per l'allocazione di vettori di interruzione. Non deve basarsi sulle chiavi del Registro di sistema o sulle informazioni ottenute da altre origini per l'allocazione degli interruzioni.
NdisGetRssProcessorInformation restituisce informazioni sul set di processori che un driver miniport può usare per RSS e VMQ. Queste informazioni sono contenute in una struttura di NDIS_RSS_PROCESSOR_INFO .
Il driver miniport deve allocare un solo vettore di interruzione per ogni processore specificato nella struttura NDIS_RSS_PROCESSOR_INFO .
Il driver miniport deve allocare non più di due vettori di interruzione per altri eventi che non sono correlati alle operazioni di invio o ricezione dei pacchetti. Ad esempio, il driver potrebbe allocare un IDT per gli eventi di stato del collegamento.
Il driver miniport deve supportare il numero minimo di vettori di interruzione MSI-X, come definito nella tabella seguente:
Numero di code Numero minimo di vettori di interruzione MSI-X necessari 1–16
1–16
17–64
16–32
65 o più
32 o più