Partager via


OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK

NDIS émet une demande de méthode d’identificateur d’objet (OID) de OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK pour informer le pilote miniport d’une fonction virtuelle (VF) PCI Express (PCIe) que les données d’un ou plusieurs blocs de configuration ont changé. NDIS émet cet OID lorsque le pilote miniport d’une fonction physique PCIe (PF) appelle NdisMInvalidateConfigBlock.

Le membre InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers une structure NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO . Cette structure spécifie un ou plusieurs blocs de configuration de fonction virtuelle (VF) dont les données ont été modifiées (invalidées) par le pilote pf miniport.

Notes

Un bloc de configuration VF est utilisé pour la communication backchannel entre les pilotes PF et VF miniport. L’IHV peut définir un ou plusieurs blocs de configuration VF pour l’appareil. Chaque bloc de configuration VF a un format, une longueur et un ID de bloc définis par IHV.

Note Les données de chaque bloc de configuration VF sont utilisées uniquement par les pilotes PF et VF miniport.

Les données de configuration VF sont échangées entre les pilotes suivants :

  • Pilote VF, qui s’exécute dans le système d’exploitation invité. Ce système d’exploitation s’exécute dans une partition enfant Hyper-V.

  • Pilote PF, qui s’exécute dans le système d’exploitation de gestion. Ce système d’exploitation s’exécute dans la partition parente Hyper-V.

Pour gérer les notifications de données de configuration VF non valides, NDIS et les pilotes miniports effectuent les étapes suivantes :

  1. Dans le système d’exploitation invité, NDIS émet une demande de contrôle d’E/S de IOCTL_VPCI_INVALIDATE_BLOCK demande. Une fois ce IOCTL terminé, NDIS est averti que les données de configuration VF ont changé.

  2. Dans le système d’exploitation de gestion, les étapes suivantes se produisent :

    1. Le pilote pf miniport appelle la fonction NdisMInvalidateConfigBlock pour notifier NDIS que les données de configuration VF ont changé et ne sont plus valides. Le pilote définit le paramètre BlockMask sur un masque de bits ULONGLONG qui spécifie les blocs de configuration VF qui ont été modifiés. Chaque bit dans le masque de bits correspond à un bloc de configuration VF. Si le bit est défini sur un, les données du bloc de configuration VF correspondant ont changé.

    2. NDIS signale à la pile de virtualisation, qui s’exécute dans le système d’exploitation de gestion, la modification des données de blocs de configuration VF. La pile de virtualisation met en cache les données du paramètre BlockMask .

      Note Chaque fois que le pilote PF miniport appelle NdisMInvalidateConfigBlock, la pile de virtualisation oRs les données du paramètre BlockMask avec la valeur actuelle dans son cache.

    3. La pile de virtualisation informe le pilote PCI virtuel (VPCI), qui s’exécute dans le système d’exploitation invité, de l’invalidation des données de configuration VF. La pile de virtualisation envoie les données de paramètre BlockMask mises en cache au pilote VPCI.

  3. Dans le système d’exploitation invité, les étapes suivantes se produisent :

    1. Le pilote VPCI enregistre les données de paramètre BlockMask mises en cache dans le membre BlockMask de la structure VPCI_INVALIDATE_BLOCK_OUTPUT associée à la requête IOCTL_VPCI_INVALIDATE_BLOCK .

    2. Le pilote VPCI termine correctement la demande de IOCTL_VPCI_INVALIDATE_BLOCK . Dans ce cas, NDIS émet une demande de méthode OID de OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK au pilote VF miniport. Un NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO est transmis dans la requête OID. Cette structure contient les données de paramètre BlockMask mises en cache.

      NDIS émet également une autre demande IOCTL_VPCI_INVALIDATE_BLOCK pour gérer les notifications successives des modifications apportées aux données de configuration VF.

    3. Lorsque le pilote VF gère la demande de OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK, il lit les données des blocs de configuration VF spécifiés.

Pour plus d’informations sur la communication backchannel au sein de l’interface de virtualisation d’E/S racine unique (SR-IOV), consultez Communication backchannel SR-IOV PF/VF.

Codes d’état de retour

Le pilote miniport retourne l’un des codes status suivants pour la demande de méthode OID de OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK.

Code d’état Description

NDIS_STATUS_SUCCESS

La demande OID s’est terminée avec succès.

NDIS_STATUS_NOT_SUPPORTED

Le pilote miniport ne prend pas en charge l’interface de virtualisation d’E/S racine unique (SR-IOV) ou n’est pas activé pour utiliser l’interface.

NDIS_STATUS_INVALID_PARAMETER

Un ou plusieurs des membres de la structure NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO ont des valeurs non valides.

NDIS_STATUS_INVALID_LENGTH

La mémoire tampon d’informations était trop courte. NDIS définit les DONNÉES. SET_INFORMATION. BytesNeeded membre dans la structure NDIS_OID_REQUEST à la taille de la structure NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO .

NDIS_STATUS_FAILURE

La demande a échoué pour d’autres raisons.

Spécifications

Version

Pris en charge dans NDIS 6.30 et versions ultérieures.

En-tête

Ntddndis.h (inclure Ndis.h)

Voir aussi


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