VMQ-Interruptanforderungen
Ein Miniporttreiber, der die VMQ-Funktionalität (VIRTUAL Machine Queue) unterstützt, muss auch die folgenden Anforderungen für die Interruptzuordnung unterstützen:
Der Miniporttreiber muss MSI-X unterstützen. Der Treiber muss das NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED-Flag im SupportedQueueProperties-Element der NDIS_RECEIVE_FILTER_CAPABILITIES-Struktur festlegen.
Der Treiber gibt diese Struktur in der NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES-Struktur zurück, die der Treiber in seinem Aufruf der NdisMSetMiniportAttributes-Funktion verwendet.
Der Miniporttreiber muss die NdisGetRssProcessorInformation-Funktion aufrufen, um Prozessorinformationen zum Zuweisen von Interruptvektoren abzurufen. Es darf sich nicht auf Registrierungsschlüsseln oder Informationen aus anderen Quellen für die Interruptzuordnung verlassen.
NdisGetRssProcessorInformation gibt Informationen zu den Prozessoren zurück, die ein Miniporttreiber für RSS und VMQ verwenden kann. Diese Informationen sind in einer NDIS_RSS_PROCESSOR_INFO-Struktur enthalten.
Der Miniporttreiber sollte jedem Prozessor, der in der NDIS_RSS_PROCESSOR_INFO-Struktur angegeben ist, nur einen Interruptvektor zuordnen.
Der Miniporttreiber sollte nicht mehr als zwei Interruptvektoren für andere Ereignisse zuordnen, die sich nicht auf Sende- oder Empfangspaketvorgänge beziehen. Der Treiber könnte beispielsweise eine IDT für Link-status-Ereignisse zuordnen.
Der Miniporttreiber muss die mindeste Anzahl von MSI-X-Interruptvektoren unterstützen, wie in der folgenden Tabelle definiert:
Anzahl von Warteschlangen Mindestanzahl der erforderlichen MSI-X-Interruptvektoren 1–16
1–16
17–64
16–32
65 oder mehr
32 oder mehr