Partager via


OID_SRIOV_PROBED_BARS

NDIS émet une requête d’identificateur d’objet (OID) de OID_SRIOV_PROBED_BARS pour obtenir les valeurs des registres d’adresses de base PCI Express (PCIe) d’une carte réseau. Cette fonction retourne les valeurs BAR signalées par la carte réseau après une requête effectuée par le pilote de bus PCI. Cette requête détermine l’espace d’adressage de mémoire ou d’E/S requis par la carte réseau.

NDIS émet des demandes de requête OID de OID_SRIOV_PROBED_BARS au pilote miniport pour la fonction physique PCIe de la carte réseau (PF). Cette demande de requête 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. Cette mémoire tampon est mise en forme pour contenir les éléments suivants :

  • Structure NDIS_SRIOV_PROBED_BARS_INFO qui contient les paramètres d’une opération de lecture sur les RBA PCI d’une carte réseau.

  • Tableau de valeurs ULONG pour chaque barre de la carte réseau PCIe. Le nombre maximal d’éléments dans ce tableau est PCI_TYPE0_ADDRESSES.

Remarques

Le pilote de bus PCI, qui s’exécute dans le système d’exploitation de gestion de la partition parente Hyper-V, interroge les exigences d’espace d’adressage de mémoire ou d’E/S de chaque registre d’adresses de base PCI (BAR) de la carte réseau. Le pilote de bus PCI effectue cette requête lorsqu’il détecte d’abord l’adaptateur sur le bus.

Grâce à cette requête PCI BAR, le pilote de bus PCI détermine les éléments suivants :

  • Indique si une barre PCI est prise en charge par la carte réseau.

  • Si une barre est prise en charge, la quantité d’espace d’adressage d’E/S ou de mémoire requise pour la BARRE.

Le pilote de bus PCI virtuel (VPCI) s’exécute dans le système d’exploitation invité d’une partition enfant Hyper-V. Lorsqu’une fonction virtuelle PCI Express (PCIe) est attachée à la partition enfant, le pilote de bus VPCI expose une carte réseau virtuelle pour la machine virtuelle (carte réseau VF). Avant cela, le pilote de bus VPCI doit effectuer une requête PCI BAR pour déterminer l’espace de mémoire ou d’adressage requis par la carte réseau VF.

Étant donné que l’accès à l’espace de configuration PCI est une opération privilégiée, il ne peut être effectué que par les composants qui s’exécutent dans le système d’exploitation de gestion d’une partition parente Hyper-V. Lorsque le pilote de bus VPCI interroge les RDR PCI, NDIS émet une requête de requête OID de OID_SRIOV_PROBED_BARS au pilote miniport PF. Les résultats retournés par cette demande de requête OID sont transférés au pilote de bus VPCI afin qu’il puisse déterminer la quantité d’espace d’adressage de mémoire nécessaire par la carte réseau VF.

Remarque demandes OID de OID_SRIOV_PROBED_BARS ne peuvent être émises que par NDIS. La requête OID ne doit pas être émise par des pilotes troplyants, tels que le protocole des pilotes de filtre.

La requête OID_SRIOV_PROBED_BARS contient une structure NDIS_SRIOV_PROBED_BARS_INFO. Lorsque le pilote pf miniport gère cet OID, le pilote doit retourner les valeurs PCI BAR dans le tableau référencé par la BaseRegisterValuesOffset membre de la structure NDIS_SRIOV_PROBED_BARS_INFO. Pour chaque décalage dans le tableau, le pilote pf miniport doit définir l’élément de tableau sur la valeur ULONG de la barre au même décalage dans l’espace de configuration PCI de l’adaptateur physique.

Chaque valeur BAR retournée par le pilote doit être la même que celle qui suit une requête PCI BAR effectuée par le pilote PCI qui s’exécute dans le système d’exploitation de gestion. Le pilote pf miniport peut appeler NdisMQueryProbedBars pour déterminer ces informations.

Pour plus d’informations sur les bars d’un appareil PCI, consultez la spécification de bus local PCI.

Pour plus d’informations sur la façon d’interroger des registres PCI BAR pour une machine virtuelle, consultez la interrogation des registres d’adresses de base PCI d’une fonction virtuelle.

Codes d’état de retour

Le pilote PF miniport retourne l’un des codes d’état suivants pour la demande de requête de OID_SRIOV_PROBED_BARS :

Code d’état Description

NDIS_STATUS_SUCCESS

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

NDIS_STATUS_NOT_SUPPORTED

Le pilote pf 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_PROBED_BARS_INFO ont des valeurs non valides.

NDIS_STATUS_INVALID_LENGTH

La mémoire tampon d’informations est inférieure à (sizeof(NDIS_SRIOV_PROBED_BARS_INFO) + PCI_TYPE0_ADDRESSES). Le pilote pf miniport doit définir la DATA. QUERY_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_PROBED_BARS_INFO

NdisMQueryProbedBars