Partager via


Communication backchannel à partir d’un pilote VF Miniport

Un pilote miniport d’une fonction virtuelle (VF) PCI Express (PCIe) communique avec le pilote miniport de la fonction physique PCIe (PF) pour lire ou écrire des données à partir d’un bloc de configuration VF.

Un bloc de configuration VF est utilisé pour la communication backchannel entre les pilotes PF et VF miniport. Le fournisseur de matériel indépendant (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. Par exemple, l’IHV peut définir un bloc de configuration VF qui peut être utilisé pour l’adresse de contrôle d’accès multimédia (MAC) du pilote miniport VF. Un autre bloc de configuration VF peut être utilisé pour la configuration VF et port virtuel (VPort) actuelle.

Note Les données de chaque bloc de configuration VF sont utilisées uniquement par les pilotes PF et VF miniport. Le format et le contenu de ces données sont opaques pour les composants du système d’exploitation Windows.

Chaque bloc de configuration VF se voit attribuer un identificateur unique par l’IHV. Cela permet au pilote VF miniport d’interroger ou de définir des informations sur des blocs de configuration VF spécifiques.

Les pilotes de miniport VF lancent l’opération de lecture ou d’écriture sur un bloc de configuration VF spécifié via les fonctions suivantes :

  • NdisMReadConfigBlock, qui lit les données d’un bloc de configuration VF spécifié. Lorsque le pilote VF miniport appelle cette fonction, il spécifie l’identificateur de bloc et la longueur des données à lire. Le pilote transmet également un pointeur vers la mémoire tampon qui contiendra les données demandées.

  • NdisMWriteConfigBlock, qui écrit des données dans un bloc de configuration VF spécifié. Lorsque le pilote VF miniport appelle cette fonction, il spécifie l’identificateur de bloc et la longueur des données à écrire. Le pilote transmet également un pointeur vers la mémoire tampon à partir de laquelle les données doivent être écrites.

Le pilote pf miniport gère l’accès au bloc de configuration VF spécifié des manières suivantes :

  • Lorsque le pilote VF miniport appelle NdisMReadConfigBlock, NDIS émet une demande de méthode d’identificateur d’objet (OID) de OID_SRIOV_READ_VF_CONFIG_BLOCK au pilote pf miniport. Cette requête OID contient les données de paramètre qui ont été transmises par le pilote miniport VF dans l’appel de fonction.

    Le pilote pf miniport effectue l’opération de lecture et retourne les données demandées lorsque le pilote termine la requête OID. Une fois la demande OID terminée, NDIS retourne l’appel à NdisMReadConfigBlock.

  • Lorsque le pilote VF miniport appelle NdisMWriteConfigBlock, NDIS émet une demande de méthode OID de OID_SRIOV_WRITE_VF_CONFIG_BLOCK au pilote pf miniport. Cette requête OID contient les données de paramètre qui ont été transmises par le pilote miniport VF dans l’appel de fonction.

    Le pilote pf miniport effectue l’opération d’écriture et termine la requête OID. Une fois la demande OID terminée, NDIS retourne l’appel à NdisMWriteConfigBlock.

La figure suivante montre le processus impliqué dans la lecture et l’écriture de blocs de configuration VF sur l’interface backchannel SR-IOV.

Diagramme montrant le processus de lecture et d’écriture de blocs de configuration VF entre le pilote miniport VF, NDIS et le pilote pf miniport.