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) |