Behandeln von OID_NIC_SWITCH_ALLOCATE_VF Anforderungen
Wenn der Miniporttreiber für die PHYSISCHE FUNKTION (PCIe) auf dem Netzwerkadapter die Anforderung der Objektbezeichnermethode (Object Identifier, OID) von OID_NIC_SWITCH_ALLOCATE_VF verarbeitet, erfolgt Folgendes:
Der PF-Miniporttreiber ordnet die Softwareressourcen für eine PCIe Virtual Function (VF) auf dem Netzwerkadapter zu. Diese Ressourcen werden basierend auf den Parametern konfiguriert, die in der NDIS_NIC_SWITCH_VF_PARAMETERS-Struktur angegeben sind.
Der PF-Miniporttreiber weist den VF einem NIC-Switch auf dem Netzwerkadapter zu. Der NIC-Switch wird durch den SwitchId-Member der NDIS_NIC_SWITCH_VF_PARAMETERS-Struktur identifiziert.
Weitere Informationen zu einem NIC-Switch finden Sie unter NIC-Switches.
Der PF-Miniporttreiber aktualisiert das VFId-Element mit einem VF-Bezeichner. Dieser Bezeichner ist ein nullbasierter Index und muss für alle VFs eindeutig sein, die vom PF-Miniporttreiber auf dem NIC-Switch zugeordnet werden.
Der übersteigende Treiber verwendet den Wert des VFId-Elements in aufeinanderfolgenden OID-Anforderungen von OID_NIC_SWITCH_FREE_VF oder OID_NIC_SWITCH_VF_PARAMETERS.
Der PF-Miniporttreiber aktualisiert das RequestorId-Mitglied mit einem PCIe Requestor Identifier (RID) für den VF.
Der Miniporttreiber ruft NdisMGetVirtualFunctionLocation auf, um die RID-Informationen abzurufen, die dem VF entsprechen. Der Treiber erstellt dann die RID mithilfe des makros NDIS_MAKE_RID basierend auf den Informationen, die vom Aufruf von NdisMGetVirtualFunctionLocation zurückgegeben werden.
Die RID wird vom Virtualisierungsstapel zum Erneuten Erstellen von DMA und Unterbrechungen zwischen PF und VF verwendet. Die RID ermöglicht auch der IOMMU (Hardware Input/Output Memory Management Unit) die Konvertierung physischer Gastadressen in host physische Adressen.
Der PF-Miniporttreiber initialisiert und macht den VF verfügbar. Dadurch ist der VF bereit für die Verwendung durch den Virtualisierungsstapel.
Wenn der PF-Miniporttreiber die erforderlichen Softwareressourcen erfolgreich zuordnen und den VF initialisieren kann, schließt der Treiber die OID-Anforderung mit NDIS_STATUS_SUCCESS ab. Der PF-Miniporttreiber muss die VF-IDs für jede zugeordnete VF beibehalten. NDIS und die übergeordneten Treiber verwenden den VF-Bezeichner in aufeinanderfolgenden OID-Anforderungen an den PF-Miniporttreiber für verschiedene Aktionen, z. B. Zurücksetzen oder Freigeben des VF.
Hinweis Wenn Ressourcen für den VF zugeordnet werden, befindet sich der VF in einem nicht angefügten Zustand, da kein virtueller Port (VPort) an den VF angefügt ist. Der überlastende Treiber kann eine OID-Anforderung von OID_NIC_SWITCH_CREATE_VPORT ausgeben, um einen VPort zu erstellen und an den VF anzufügen. Weitere Informationen finden Sie unter Erstellen eines virtuellen Ports.