Fonction NdisMInvalidateConfigBlock (ndis.h)

Un pilote miniport appelle la fonction NdisMInvalidateConfigBlock pour informer NDIS que les données d’un ou plusieurs blocs de configuration de fonction virtuelle (VF) ont été modifiées.

RemarqueNdisMInvalidateConfigBlock doit uniquement être appelé par le pilote miniport pour la fonction physique PCIe (PF) de la carte réseau.
 

Syntaxe

void NdisMInvalidateConfigBlock(
  [in] NDIS_HANDLE            NdisMiniportHandle,
  [in] NDIS_SRIOV_FUNCTION_ID VFId,
  [in] ULONGLONG              BlockMask
);

Paramètres

[in] NdisMiniportHandle

La carte réseau gère que NDIS a passé au paramètre MiniportAdapterHandle de MiniportInitializeEx.

[in] VFId

Identificateur de la VF pour laquelle l’emplacement de l’appareil est retourné.

[in] BlockMask

Valeur ULONGLONG qui spécifie un masque de bits pour les 64 premiers blocs de configuration VF. Chaque bit dans le masque de bits correspond à un bloc de configuration VF. Si le bit est défini sur un, les données associées au bloc de configuration VF correspondant ont changé.

Valeur de retour

None

Remarques

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.
    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. Une requête NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO est transmise dans la demande 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 requête 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.

Pour plus d’informations sur l’interface SR-IOV, consultez Vue d’ensemble de la virtualisation d’E/S racine unique (SR-IOV).

Configuration requise

Condition requise Valeur
Client minimal pris en charge Aucun pris en charge, pris en charge dans NDIS 6.30 et versions ultérieures.
Serveur minimal pris en charge Windows Server 2012
Plateforme cible Universal
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL <= DISPATCH_LEVEL

Voir aussi

IOCTL_VPCI_INVALIDATE_BLOCK

NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO

OID_SRIOV_READ_VF_CONFIG_SPACE

VPCI_INVALIDATE_BLOCK_OUTPUT