Partager via


OID_SRIOV_WRITE_VF_CONFIG_BLOCK

Un pilote surlysant émet une demande de jeu d’identificateur d’objet (OID) de OID_SRIOV_WRITE_VF_CONFIG_BLOCK pour écrire des données dans un bloc de configuration de fonction virtuelle PCI Express (PCIe).

Le dépassement des pilotes émet cette demande définie par OID sur le pilote miniport pour la fonction physique PCIe de la carte réseau (PF). Cette demande de méthode OID est requise pour les pilotes miniport PF qui prennent en charge l’interface de virtualisation d’E/S racine unique (SR-IOV).

Le InformationBuffer membre de la structure NDIS_OID_REQUEST contient un pointeur vers une mémoire tampon allouée par l’appelant. Cette mémoire tampon est mise en forme pour contenir les éléments suivants :

  • Structure NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS qui contient le décalage, en unités d’octets, du début de cette structure à un emplacement dans la mémoire tampon qui contient les données écrites dans le bloc de configuration VF.

  • Espace tampon supplémentaire pour que les données soient écrites dans le bloc de configuration VF spécifié.

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 les pilotes miniport. 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.

Avant de émet la demande de OID_SRIOV_WRITE_VF_CONFIG_BLOCK de jeu d’OID, le pilote surlysant doit définir les membres de NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS structure de la manière suivante :

  • Définissez le VFId membre sur l’identificateur du VF pour lequel les informations doivent être écrites.

  • Définissez le BlockId membre sur l’identificateur du bloc de configuration à partir duquel les informations doivent être écrites.

  • Définissez le membre Length sur le nombre d’octets à écrire dans le bloc de configuration VF.

  • Définissez le BufferOffset membre sur le décalage dans la mémoire tampon (référencé par Membre InformationBuffer) qui contient les données à écrire à partir du bloc de configuration VF spécifié. Ce décalage est spécifié en unités d’octets à partir du début de la structure NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS.

Lorsqu’il gère la demande de jeu d’OID de OID_SRIOV_WRITE_VF_CONFIG_BLOCK, le pilote miniport PF doit suivre les instructions suivantes :

  • Le pilote pf miniport doit vérifier que le VF, spécifié par le VFId membre de la structure NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS, a des ressources qui ont été précédemment allouées. Le pilote PF miniport alloue des ressources pour une machine virtuelle pendant une demande de méthode OID de OID_NIC_SWITCH_ALLOCATE_VF. Si les ressources de la fonction virtuelle spécifiée n’ont pas été allouées, le pilote doit échouer à la requête OID.

  • Le pilote pf miniport doit vérifier que le BlockId membre de la structure NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS spécifie un bloc de configuration VF valide. Si ce n’est pas le cas, le pilote doit échouer à la requête OID.

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.

Codes d’état de retour

Le pilote miniport retourne l’un des codes d’état suivants pour la demande de jeu d’OID de OID_SRIOV_WRITE_VF_CONFIG_BLOCK :

Code d’état Description

NDIS_STATUS_SUCCESS

La requête OID s’est terminée avec succès.

NDIS_STATUS_NOT_SUPPORTED

Le pilote miniport ne prend pas en charge l’interface 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_WRITE_VF_CONFIG_BLOCK_PARAMETERS ont des valeurs non valides.

NDIS_STATUS_INVALID_LENGTH

La mémoire tampon d’informations était trop courte. NDIS définit le DATA. SET_INFORMATION. OctetsNeeded membre de la structure NDIS_OID_REQUEST à la taille de mémoire tampon minimale requise.

NDIS_STATUS_FAILURE

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

Exigences

Version

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

En-tête

Ntddndis.h (include Ndis.h)

Voir aussi


NDIS_OID_REQUEST

NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE