SR-IOV virtuella funktioner (VFs)
En virtuell PCI Express-funktion (PCIe) (VF) är en enkel PCIe-funktion på ett nätverkskort som stöder enkel rot-I/O-virtualisering (SR-IOV).
Den virtuella hårddisken är associerad med PCIe Physical Function (PF) på nätverkskortet och representerar en virtualiserad instans av nätverkskortet. Varje virtuell hårddisk har ett eget PCI-konfigurationsutrymme. Varje virtuell funktion delar också en eller flera fysiska resurser på nätverkskortet, till exempel en extern nätverksport, med PF och andra virtuella funktioner.
En virtuell hårddisk är inte en fullfjädrad PCIe-enhet. Den tillhandahåller dock en grundläggande mekanism för direkt överföring av data mellan en Hyper-V underordnad partition och det underliggande SR-IOV nätverkskortet. Programvaruresurser som är associerade för dataöverföring är direkt tillgängliga för den virtuella funktionen och är isolerade från användning av andra virtuella funktioner eller PF. Konfigurationen av de flesta av dessa resurser utförs dock av PF-miniportdrivrutinen som körs i hanteringsoperativsystemet för den Hyper-V överordnade partitionen.
VF:en exponeras som ett virtuellt nätverkskort (VF-nätverkskort) i gästoperativsystemet som körs i en Hyper-V barnpartition. När den virtuella funktionen (VF) är associerad med en virtuell port (VPort) på nätverkskortsomkopplaren för SR-IOV-nätverkskortet exponerar den virtuella PCI-drivrutinen (VPCI) som körs i den virtuella datorn VF-nätverkskortet. När den har exponerats laddar PnP-hanteraren i gästoperativsystemet VF-miniportdrivrutinen.
Notera
En Hyper-V underordnad partition kallas även för en virtuell dator (VM).
Miniportdrivrutinen för VF är en NDIS-miniportdrivrutin som är installerad i VM för att hantera VF. Åtgärder som utförs av VF-miniportdrivrutinen får inte påverka någon annan VF eller PF på samma nätverkskort.
VF-miniportdrivrutinen kan fungera som vilken PCI-enhetsdrivrutin som helst. Den kan läsa och skriva till VF:s PCI-konfigurationsutrymme. Åtkomst till den virtuella PCI-enheten är dock en privilegierad åtgärd och hanteras av PF-miniportdrivrutinen på följande sätt:
När VF-miniportdrivrutinen anropar NdisMGetBusData för att läsa data från PCI-konfigurationsutrymmet för VF-nätverkskortet meddelas virtualiseringsstacken. Den här stacken körs i hanteringsoperativsystemet för den överordnade Hyper-V-partitionen. När stacken meddelas om läsbegäran utfärdar den en metodbegäran för objektidentifierare (OID) OID_SRIOV_READ_VF_CONFIG_SPACE till PF-miniport-drivrutinen. De data som ska läsas anges i en NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS struktur som finns i OID-begäran.
Drivrutinen läser de begärda data från VF PCI-konfigurationsutrymmet och returnerar data genom att slutföra OID-begäran. Dessa data returneras sedan till VF-miniportdrivrutinen när anropet till NdisMGetBusData slutförs.
När VF-miniportdrivrutinen anropar NdisMSetBusData för att skriva data till PCI-konfigurationsutrymmet för VF-nätverkskortet meddelas virtualiseringsstacken om skrivbegäran. Den utfärdar en OID-metodbegäran för OID_SRIOV_WRITE_VF_CONFIG_SPACE till PF-miniportdrivrutinen. De data som ska skrivas anges i en NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS struktur som finns i OID-begäran.
Drivrutinen skriver data till VF PCI-konfigurationsutrymmet och returnerar status för begäran när den slutför OID-begäran. Den här statusen returneras till VF-miniportdrivrutinen efter att anropet till NdisMSetBusData har slutförts.
VF-miniportdrivrutinen kan också kommunicera med PF-miniportdrivrutinen. Den här kommunikationsvägen finner sig över ett gränssnitt för backchannel. Mer information finns i SR-IOV PF/VF Backchannel Communication.
Observera VF-miniportdrivrutinen måste vara medveten om att den körs i en virtualiserad miljö så att den kan kommunicera med PF-miniportdrivrutinen för vissa åtgärder. Mer information om hur drivrutinen gör detta finns i Initiera en VF Miniport-drivrutin.