Dela via


OID_SRIOV_WRITE_VF_CONFIG_SPACE

En överdrivande drivrutin utfärdar en begäran om objektidentifierare (OID) för OID_SRIOV_WRITE_VF_CONFIG_SPACE för att skriva data till PCI Express-konfigurationsutrymmet (PCIe) för en angiven virtuell PCIe-funktion (VF) på nätverkskortet.

Överdrivande drivrutiner utfärdar denna OID-uppsättningsbegäran till miniportdrivrutinen för nätverkskortets PCIe Physical Function (PF). Den här OID-metodbegäran krävs för PF-miniportdrivrutiner som stöder gränssnittet för enkel rot-I/O-virtualisering (SR-IOV).

InformationBuffer medlem i NDIS_OID_REQUEST-strukturen innehåller en pekare till en anropare allokerad buffert. Den här bufferten är formaterad så att den innehåller följande:

  • En NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS struktur som innehåller parametrarna för en skrivåtgärd av PCI-konfigurationsutrymmet för en VF.

  • Ytterligare buffertutrymme som innehåller de data som ska skrivas till PCI-konfigurationsutrymmet.

Anmärkningar

VF-miniportdrivrutinen körs i gästoperativsystemet för en Hyper-V underordnad partition. Därför kan inte VF-miniportdrivrutinen komma åt maskinvaruresurser direkt, till exempel VF:s PCI-konfigurationsutrymme. Endast PF-miniportdrivrutinen, som körs i hanteringsoperativsystemet för en Hyper-V överordnad partition, kan komma åt PCI-konfigurationsutrymmet för en virtuell hårddisk.

Den överliggande drivrutinen, till exempel virtualiseringsstacken, utfärdar OID-uppsättningens begäran om OID_SRIOV_WRITE_VF_CONFIG_SPACE när VF-miniportdrivrutinen anropar NdisMSetBusData för att skriva till sitt PCI-konfigurationsutrymme.

När den hanterar begäran om OID-metoden för OID_SRIOV_WRITE_VF_CONFIG_SPACE måste PF-miniportdrivrutinen följa dessa riktlinjer:

  • PF-miniportdrivrutinen måste kontrollera att den virtuella hårddisken, som anges av VFId medlem i NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS struktur, har resurser som tidigare har allokerats. PF-miniportdrivrutinen allokerar resurser för en VF via en OID-metodbegäran för OID_NIC_SWITCH_ALLOCATE_VF.

    Om resurser för den angivna virtuella hårddisken inte har allokerats måste drivrutinen misslyckas med OID-begäran.

  • PF-miniportdrivrutinen anropar NdisMSetVirtualFunctionBusData för att skriva till det begärda PCI-konfigurationsutrymmet. Pf-miniportdrivrutinen kan dock också returnera PCI-konfigurationsutrymmesdata för den virtuella resursen som drivrutinen har cachelagrat från tidigare läs- eller skrivåtgärder i PCI-konfigurationsutrymmet.

    Note Om en oberoende maskinvaruleverantör (IHV) tillhandahåller en virtuell busschaufför (VBD) som en del av sitt SR-IOV drivrutinspaketfår dess PF-miniportdrivrutin inte anropa NdisMSetVirtualFunctionBusData. I stället måste drivrutinen interagera med VBD via en privat kommunikationskanal och begära att VBD-anropet SetVirtualFunctionData. Den här funktionen exponeras från GUID_VPCI_INTERFACE_STANDARD-gränssnittet som stöds av den underliggande VPCI-bussdrivrutinen (virtual PCI).

Om PF-miniportdrivrutinen kan slutföra OID-begäran måste drivrutinen kopiera begärda PCI-konfigurationsutrymmesdata till bufferten som refereras av InformationBuffer medlem i NDIS_OID_REQUEST-strukturen. Drivrutinen kopierar data till bufferten vid den förskjutning som anges av BufferOffset medlem i NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS struktur.

Mer information finns i Ställa in PCI-konfigurationsdata för en virtuell funktion.

Returstatuskoder

PF-miniportdrivrutinen returnerar någon av följande statuskoder för OID-uppsättningens begäran om OID_SRIOV_WRITE_VF_CONFIG_SPACE.

Statuskod Beskrivning

NDIS_STATUS_SUCCESS

OID-begäran har slutförts.

NDIS_STATUS_NOT_SUPPORTED

PF-miniportdrivrutinen stöder antingen inte det enskilda rot-I/O-virtualiseringsgränssnittet (SR-IOV) eller så är den inte aktiverad för att använda gränssnittet.

NDIS_STATUS_INVALID_PARAMETER

En eller flera av medlemmarna i NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS struktur har ogiltiga värden.

NDIS_STATUS_INVALID_LENGTH

Informationsbufferten var för kort. NDIS anger DATA. SET_INFORMATION. BytesNeeded medlem i NDIS_OID_REQUEST struktur till den minsta buffertstorlek som krävs.

NDIS_STATUS_FAILURE

Begäran misslyckades av andra skäl.

Krav

Version

Stöds i NDIS 6.30 och senare.

Rubrik

Ntddndis.h (inkludera Ndis.h)

Se även


GUID_VPCI_INTERFACE_STANDARD

NDIS_OID_REQUEST

NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS

NdisMSetBusData

NdisMSetVirtualFunctionBusData

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE

SetVirtualFunctionData