Utfärdande av OID_NIC_SWITCH_ALLOCATE_VF-begäranden
Innan den utfärdar en metodförfrågan om OID (object identifier) för OID_NIC_SWITCH_ALLOCATE_VF till miniportdrivrutinen för PCI Express (PCIe) Physical Function (PF), formaterar den överliggande drivrutinen en NDIS_NIC_SWITCH_VF_PARAMETERS-struktur. Den här strukturen innehåller konfigurationsparametrarna för de resurser som ska allokeras för en virtuell PCIe-funktion (VF) på nätverkskortet. Den överliggande drivrutinen måste ange medlemmarna i den här strukturen på följande sätt:
SwitchId medlemsvariabel måste anges till identifieraren för en NIC-växel som tidigare skapats på nätverksadaptern. En NIC-växel skapas via en OID-metodbegäran för OID_NIC_SWITCH_CREATE_SWITCH.
När den hanterar OID-metodbegäran för OID_NIC_SWITCH_ALLOCATE_VFallokerar miniportdrivrutinen för PCIe Physical Function (PF) resurser för den virtuella funktionen. Om resurserna har allokerats framgångsrikt tilldelar PF-miniportdrivrutinen den virtuella funktionen till den angivna nätverksgränssnittskortswitchen.
Obs Från och med NDIS 6.30 i Windows Server 2012 stöder SR-IOV-gränssnittet endast standard-NIC-växeln på nätverkskortet. Värdet för SwitchId medlemsvariabeln måste anges till NDIS_DEFAULT_SWITCH_ID.
Mer information om en nätverkskortsväxel finns i NIC-växlar.
Medlemmen VFId måste vara inställd på NDIS_INVALID_VF_FUNCTION_ID.
Medlemmen RequestorId måste vara inställd på NDIS_INVALID_RID.
VMFriendlyName och VMName medlemmarna måste ställas in till parametrarna för en Hyper-V partition för ett barn. PF-miniportdrivrutinen använder endast dessa parametrar i informationssyfte.
OBS: Den Hyper-V underordnade partitionen kallas även för en virtuell dator (VM).
Innan den överliggande drivrutinen utfärdar OID_NIC_SWITCH_CREATE_SWITCH begäran, är VF associerad med den angivna virtuella maskinen.
Den NicName- medlemmen måste vara inställd på identifieraren för nätverkskortet för den virtuella datorn (VM). Denna virtuella adapter exponeras i gästoperativsystemet som körs i den virtuella datorn. PF-miniportdrivrutinen använder endast den här medlemmen i informationssyfte.
När resurser allokeras för den virtuella hårddisken och den är ansluten till den underordnade partitionen, exponeras ett VF-nätverkskort i gästoperativsystemet. Den virtuella datorns nätverksadapter samarbetar med VF-nätverkskortet för paketöverföring via den maskinvarubaserade VF-datavägen.
Den virtuella hårddisken kan dock kopplas från den underordnade partitionen, till exempel under direktmigrering. När detta händer sker paketöverföringen via den programvarubaserade syntetiska datavägen. Mer information om dessa datasökvägar finns i SR-IOV Datasökvägar.
PermanentMacAddress och CurrentMacAddress medlemmar måste anges till MAC-adresserna (Media Access Control) för VF:s virtuella nätverkskort. Dessa adresser exponeras för nätverksstacken som körs i gästoperativsystemet för barnpartitionen Hyper-V.
Den överordnade drivrutinen begär OID-metoden för OID_NIC_SWITCH_ALLOCATE_VF genom att följa dessa steg:
Den överliggande drivrutinen initierar en NDIS_OID_REQUEST-struktur för OID-metodbegäran. Drivrutinen ställer in InformationBuffer medlemmen till en pekare till en initierad NDIS_NIC_SWITCH_VF_PARAMETERS struktur.
Den överliggande drivrutinen anropar NdisOidRequest för att utfärda OID-begäran till den underliggande PF-miniportdrivrutinen.
Obs När den överliggande drivrutinen anropar NdisOidRequest, intercepterar NDIS OID begäran och verifierar de VF-parametrar som anges i NDIS_NIC_SWITCH_VF_PARAMETERS strukturen. Om parametrarna har verifierats vidarebefordrar NDIS OID till PF-miniportdrivrutinen. Annars misslyckas OID-begäran av NDIS med NDIS_STATUS_INVALID_PARAMETER.
När en överdrivande drivrutin begär resursallokering för en virtuell resurs är drivrutinen den enda komponenten som kan begära att resurserna frigörs för samma virtuella hårddisk. Den överordnade drivrutinen måste utfärda en begäran om inställning av OID OID_NIC_SWITCH_FREE_VF för att frigöra VF-resurserna. Innan den överliggande drivrutinen kan stoppas, måste den frigöra resurser för varje virtuell funktion som allokerats genom drivrutinens OID_NIC_SWITCH_ALLOCATE_VF-begäran.