Dela via


OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK

NDIS utfärdar en OID-metodbegäran (object identifier) för OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK för att meddela miniportdrivrutinen för en virtuell PCIe-funktion (PCIe) (PCI Express) att data inom ett eller flera konfigurationsblock har ändrats. NDIS utfärdar denna OID när miniportdrivrutinen för en PCIe Physical Function (PF) anropar NdisMInvalidateConfigBlock.

InformationBuffer medlem i NDIS_OID_REQUEST struktur innehåller en pekare till en NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO struktur. Den här strukturen anger ett eller flera VF-konfigurationsblock (Virtual Function) vars data har ändrats (ogiltigförklarats) av PF-miniportdrivrutinen.

Anmärkningar

Ett VF-konfigurationsblock används för backchannel-kommunikation mellan PF- och VF-miniportdrivrutinerna. IHV kan definiera ett eller flera VF-konfigurationsblock för enheten. Varje VF-konfigurationsblock har ett IHV-definierat format, längd och block-ID.

Note Data från varje VF-konfigurationsblock används endast av PF- och VF-miniportdrivrutinerna.

VF-konfigurationsdata utbyts mellan följande drivrutiner:

  • VF-drivrutinen, som körs i gästoperativsystemet. Det här operativsystemet körs inom en Hyper-V underordnad partition.

  • PF-drivrutinen, som körs i hanteringsoperativsystemet. Det här operativsystemet körs inom den Hyper-V överordnade partitionen.

För att hantera meddelanden om ogiltiga VF-konfigurationsdata utför NDIS och miniportdrivrutinerna följande steg:

  1. I gästoperativsystemet utfärdar NDIS en I/O-kontrollbegäran för IOCTL_VPCI_INVALIDATE_BLOCK begäran. När denna IOCTL har slutförts meddelas NDIS att VF-konfigurationsdata har ändrats.

  2. I hanteringsoperativsystemet utförs följande steg:

    1. PF-miniportdrivrutinen anropar funktionen NdisMInvalidateConfigBlock för att meddela NDIS att VF-konfigurationsdata har ändrats och inte längre är giltiga. Drivrutinen anger parametern BlockMask till en ULONGLONG-bitmask som anger vilka VF-konfigurationsblock som har ändrats. Varje bit i bitmasken motsvarar ett VF-konfigurationsblock. Om biten är inställd på ett har data i motsvarande VF-konfigurationsblock ändrats.

    2. NDIS signalerar virtualiseringsstacken, som körs i hanteringsoperativsystemet, om ändringen av VF-konfigurationsblockdata. Virtualiseringsstacken cachelagrar BlockMask- parameterdata.

      Observera Varje gång som PF-miniportdrivrutinen anropar NdisMInvalidateConfigBlockvirtualiseringsstacken parameterdata med det aktuella värdet i cacheminnet.

    3. Virtualiseringsstacken meddelar den virtuella PCI-drivrutinen (VPCI), som körs i gästoperativsystemet, om ogiltigheten av VF-konfigurationsdata. Virtualiseringsstacken skickar cachelagrade BlockMask parameterdata till VPCI-drivrutinen.

  3. I gästoperativsystemet utförs följande steg:

    1. VPCI-drivrutinen sparar cachelagrade BlockMask parameterdata i BlockMask medlem i den VPCI_INVALIDATE_BLOCK_OUTPUT struktur som är associerad med IOCTL_VPCI_INVALIDATE_BLOCK begäran.

    2. VPCI-drivrutinen slutför IOCTL_VPCI_INVALIDATE_BLOCK begäran. När detta händer utfärdar NDIS en OID-metodbegäran av OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK till VF-miniportdrivrutinen. En NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO skickas vidare i OID-begäran. Den här strukturen innehåller cachelagrade BlockMask- parameterdata.

      NDIS utfärdar också en annan IOCTL_VPCI_INVALIDATE_BLOCK begäran om att hantera efterföljande meddelanden om ändringar i VF-konfigurationsdata.

    3. När VF-drivrutinen hanterar OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK begäran läser den data från de angivna VF-konfigurationsblocken.

Mer information om backchannel-kommunikation i det enda rot-I/O-virtualiseringsgränssnittet (SR-IOV) finns i SR-IOV PF/VF Backchannel Communication.

Returstatuskoder

Miniportdrivrutinen returnerar någon av följande statuskoder för OID-metodbegäran för OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK.

Statuskod Beskrivning

NDIS_STATUS_SUCCESS

OID-begäran har slutförts.

NDIS_STATUS_NOT_SUPPORTED

Miniportdrivrutinen stöder antingen inte det enda 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_VF_INVALIDATE_CONFIG_BLOCK_INFO 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 storleken på den NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO strukturen.

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


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