Lire en anglais

Partager via


NdisMInvalidateConfigBlock, fonction (ndis.h)

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

RemarqueNdisMInvalidateConfigBlock ne doit être appelé que 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 handle que NDIS a passée au paramètre MiniportAdapterHandle de MiniportInitializeEx.

[in] VFId

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

[in] BlockMask

Valeur ULONGLONG qui spécifie un masque de bits pour les premiers blocs de configuration VF 64. 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

Aucun

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.

Remarque données de chaque bloc de configuration VF est utilisée uniquement par les pilotes miniport PF et VF.
 
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 des 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 cette durée de vie ioc terminée, 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 informer NDIS que les données de configuration VF ont changé et qu’elles ne sont plus valides.
    2. NDIS signale la pile de virtualisation, qui s’exécute dans le système d’exploitation de gestion, sur la modification des données de bloc de configuration VF. La pile de virtualisation met en cache les données de paramètre BlockMask.
      Remarque Chaque fois que le pilote miniport PF appelle NdisMInvalidateConfigBlock, la pile de virtualisation OR les données de paramètre BlockMask avec la valeur actuelle dans son cache.
       
    3. La pile de virtualisation notifie le pilote PCI virtuel (VPCI), qui s’exécute dans le système d’exploitation invité, sur 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. Lorsque cela se produit, NDIS émet une demande de méthode OID de OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK au pilote miniport VF. Une requête NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO est transmise dans la requête OID. Cette structure contient les données de paramètre BlockMask mises en cache.

      NDIS émet également une autre demande de 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 SR-IOV PF/VF Backchannel Communication.

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

Exigences

Exigence Valeur
client minimum pris en charge Aucune prise en charge, prise en charge dans NDIS 6.30 et versions ultérieures.
serveur minimum pris en charge Windows Server 2012
plateforme cible Universel
d’en-tête ndis.h (include 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