Virtuele poorten opsommen op een netwerkadapter
Een overliggend stuurprogramma of gebruikerstoepassing kan een lijst ophalen van alle virtuele poorten (VPorts) op een NIC-switch van een netwerkadapter die ondersteuning biedt voor I/O-virtualisatie met enkele hoofdwortel (SR-IOV). Het stuurprogramma of de toepassing geeft een Object Identifier (OID) -methodeaanvraag van OID_NIC_SWITCH_ENUM_VPORTS uit om deze lijst te verkrijgen.
Na een succesvolle terugkeer van deze OID-queryaanvraag bevat het lid InformationBuffer van de structuur NDIS_OID_REQUEST een aanwijzer naar een buffer die het volgende bevat:
Een NDIS_NIC_SWITCH_VPORT_INFO_ARRAY structuur waarmee het aantal elementen in de matrix wordt gedefinieerd.
Een matrix van NDIS_NIC_SWITCH_VPORT_INFO structuren. Elk van deze structuren bevat informatie over een VPort op de NIC-switch van de netwerkadapter.
Opmerking Als er geen VPorts zijn gemaakt op de netwerkadapter, stelt het stuurprogramma het NumElements- lid van de NDIS_NIC_SWITCH_VPORT_INFO_ARRAY-structuur in op nul en worden er geen NDIS_NIC_SWITCH_VPORT_INFO structuren geretourneerd.
Voordat het overliggende stuurprogramma of de gebruikerstoepassing de OID_NIC_SWITCH_ENUM_VPORTS aanvraag uitgeeft, moet deze een NDIS_NIC_SWITCH_VPORT_INFO_ARRAY structuur initialiseren die samen met de aanvraag wordt doorgegeven. Het stuurprogramma of de toepassing moet de volgende richtlijnen volgen bij het initialiseren van de NDIS_NIC_SWITCH_VPORT_INFO_ARRAY structuur:
Als de vlag NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH is ingesteld in het Flags-lid, wordt informatie geretourneerd voor alle VPorts die zijn gemaakt op een opgegeven NIC-switch. De NIC-switch wordt opgegeven door de SwitchId lid van die structuur.
Opmerking Vanaf Windows Server 2012 ondersteunt de SR-IOV-interface slechts één NIC-switch op de netwerkadapter. Deze switch staat bekend als de standaard NIC-switchen verwijst naar de NDIS_DEFAULT_SWITCH_ID-id. Ongeacht de vlaggen die zijn ingesteld in het Flags-lidveld, moet het SwitchId-lidveld worden ingesteld op NDIS_DEFAULT_SWITCH_ID.
Als de NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION vlag is ingesteld in de Vlaggen lid, wordt informatie geretourneerd voor alle VPorts die zijn gekoppeld aan een opgegeven PCI Express (PCIe) fysieke functie (PF) of virtuele functie (VF) op de netwerkadapter. De PF of VF wordt opgegeven door het AttachedFunctionId lid van die structuur.
Als het AttachedFunctionId lid is ingesteld op NDIS_PF_FUNCTION_ID, wordt informatie geretourneerd voor alle VPorts. Dit omvat de standaard-VPort die is gekoppeld aan de PF. Als het AttachedFunctionId lid is ingesteld op een geldige VF-id, wordt informatie geretourneerd voor alle VPorts die zijn gekoppeld aan de opgegeven VF.
Opmerking Vanaf Windows Server 2012 kan slechts één niet-standaard-VPort worden gekoppeld aan een VF. Meerdere VPorts (inclusief de standaard-VPort) kunnen echter worden gekoppeld aan de PF.
Als de Flags member is ingesteld op nul, wordt informatie geretourneerd voor alle VPorts die aan de PF of VF op de netwerkadapter zijn gekoppeld. In dit geval worden de waarden van de SwitchId en AttachedFunctionId genegeerd.
NDIS verwerkt de OID_NIC_SWITCH_ENUM_VPORTS aanvraag voor minipoortstuurprogramma's. NDIS retourneert de informatie uit een interne cache van de gegevens die het verzamelt door inspectie van de volgende bronnen:
OID-methodeaanvragen van OID_NIC_SWITCH_CREATE_VPORT.
OID-setaanvragen van OID_NIC_SWITCH_VPORT_PARAMETERS.