Delen via


OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK

NDIS geeft een OID-methodeaanvraag (object identifier) van OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK om het minipoortstuurprogramma van een PCI Express (PCIe) Virtual Function (VF) op de hoogte te stellen dat gegevens in een of meer configuratieblokken zijn gewijzigd. NDIS geeft deze OID uit wanneer het minipoortstuurprogramma voor een PCIe Physical Function (PF) NdisMInvalidateConfigBlockaanroept.

De InformationBuffer lid van de NDIS_OID_REQUEST structuur bevat een aanwijzer naar een NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO structuur. Deze structuur geeft een of meer VF-configuratieblokken (Virtual Function) op waarvan de gegevens zijn gewijzigd (ongeldig) door het PF-minipoortstuurprogramma.

Opmerkingen

Er wordt een VF-configuratieblok gebruikt voor backchannelcommunicatie tussen de PF- en VF-minipoortstuurprogramma's. De IHV kan een of meer VF-configuratieblokken voor het apparaat definiëren. Elk VF-configuratieblok heeft een door IHV gedefinieerde indeling, lengte en blok-id.

Opmerking Gegevens uit elk VF-configuratieblok alleen worden gebruikt door de PF- en VF-minipoortstuurprogramma's.

VF-configuratiegegevens worden uitgewisseld tussen de volgende stuurprogramma's:

  • Het VF-stuurprogramma, dat wordt uitgevoerd in het gastbesturingssysteem. Dit besturingssysteem wordt uitgevoerd binnen een Hyper-V onderliggende partitie.

  • Het PF-stuurprogramma, dat wordt uitgevoerd in het beheerbesturingssysteem. Dit besturingssysteem wordt uitgevoerd binnen de bovenliggende Hyper-V partitie.

Voer de volgende stappen uit om meldingen van ongeldige VF-configuratiegegevens te verwerken, NDIS en de minipoortstuurprogramma's:

  1. In het gastbesturingssysteem geeft NDIS een I/O-beheeraanvraag van IOCTL_VPCI_INVALIDATE_BLOCK aanvraag uit. Wanneer deze IOCTL is voltooid, krijgt NDIS een melding dat de VF-configuratiegegevens zijn gewijzigd.

  2. In het beheerbesturingssysteem worden de volgende stappen uitgevoerd:

    1. Het PF-minipoortstuurprogramma roept de NdisMInvalidateConfigBlock- functie aan om NDIS op de hoogte te stellen dat VF-configuratiegegevens zijn gewijzigd en niet meer geldig zijn. Het stuurprogramma stelt de parameter BlockMask in op een ULONGLONG-bitmasker dat aangeeft welke VF-configuratieblokken zijn gewijzigd. Elke bit in het bitmasker komt overeen met een VF-configuratieblok. Als de bit is ingesteld op één, zijn de gegevens in het bijbehorende VF-configuratieblok gewijzigd.

    2. NDIS geeft de virtualisatiestack aan, die wordt uitgevoerd in het beheerbesturingssysteem, over de wijziging in VF-configuratieblokgegevens. De virtualisatiestack slaat de BlockMask- parametergegevens in de cache op.

      Note Telkens wanneer het PF-minipoortstuurprogramma NdisMInvalidateConfigBlockaanroept, worden de virtualisatiestack-OR's de BlockMask-parametergegevens met de huidige waarde in de cache.

    3. De virtualisatiestack meldt het virtuele PCI-stuurprogramma (VPCI), dat wordt uitgevoerd in het gastbesturingssysteem, over de ongeldigheid van VF-configuratiegegevens. De virtualisatiestack verzendt de in de cache opgeslagen BlockMask parametergegevens naar het VPCI-stuurprogramma.

  3. In het gastbesturingssysteem worden de volgende stappen uitgevoerd:

    1. Het VPCI-stuurprogramma slaat de in de cache opgeslagen BlockMask parametergegevens in het BlockMask lid van de VPCI_INVALIDATE_BLOCK_OUTPUT-structuur die is gekoppeld aan de IOCTL_VPCI_INVALIDATE_BLOCK aanvraag.

    2. Het VPCI-stuurprogramma voltooit de IOCTL_VPCI_INVALIDATE_BLOCK aanvraag. Als dit gebeurt, geeft NDIS een OID-methodeaanvraag van OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK aan het VF-minipoortstuurprogramma. Een NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO wordt doorgegeven in de OID-aanvraag. Deze structuur bevat de in de cache opgeslagen BlockMask parametergegevens.

      NDIS geeft ook een andere IOCTL_VPCI_INVALIDATE_BLOCK aanvraag voor het afhandelen van opeenvolgende meldingen van wijzigingen in VF-configuratiegegevens.

    3. Wanneer het VF-stuurprogramma de OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK aanvraag afhandelt, worden gegevens uit de opgegeven VF-configuratieblokken gelezen.

Zie SR-IOV PF/VF Backchannel Communicationvoor meer informatie over backchannelcommunicatie binnen de I/O-interface (SR-IOV).

Statuscodes retourneren

Het minipoortstuurprogramma retourneert een van de volgende statuscodes voor de aanvraag van de OID-methode van OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK.

Statuscode Beschrijving

NDIS_STATUS_SUCCESS

De OID-aanvraag is voltooid.

NDIS_STATUS_NOT_SUPPORTED

Het minipoortstuurprogramma biedt geen ondersteuning voor de I/O-interface met één hoofdmap (SR-IOV) of is niet ingeschakeld voor het gebruik van de interface.

NDIS_STATUS_INVALID_PARAMETER

Een of meer leden van de NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO structuur hebben ongeldige waarden.

NDIS_STATUS_INVALID_LENGTH

De informatiebuffer was te kort. NDIS stelt de DATA in. SET_INFORMATION. BytesNeeded lid in de NDIS_OID_REQUEST structuur tot de grootte van de NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO-structuur.

NDIS_STATUS_FAILURE

De aanvraag is om andere redenen mislukt.

Eisen

Versie

Ondersteund in NDIS 6.30 en hoger.

Rubriek

Ntddndis.h (inclusief Ndis.h)

Zie ook


IOCTL_VPCI_INVALIDATE_BLOCK

NDIS_OID_REQUEST

NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO

NdisMInvalidateConfigBlock

OID_SRIOV_READ_VF_CONFIG_SPACE

VPCI_INVALIDATE_BLOCK_OUTPUT