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ù