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 (BAR) PCI Express (PCIe) d’une carte réseau. Cette fonction retourne les valeurs BAR qui ont été signalées par la carte réseau à la suite d’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 requêtes OID de OID_SRIOV_PROBED_BARS au pilote miniport pour la fonction physique PCIe (PF) de la carte réseau. Cette requête OID est requise pour les pilotes pf miniport qui prennent en charge l’interface de virtualisation d’E/S racine unique (SR-IOV).
Le membre InformationBuffer 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 fichiers PCI BAR d’une carte réseau.
Tableau de valeurs ULONG pour chaque barre d’outils de la carte réseau PCIe. Le nombre maximal d’éléments dans ce tableau est PCI_TYPE0_ADDRESSES.
Notes
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 besoins en mémoire ou en espace d’adressage d’E/S de chaque registre d’adresses de base (BAR) PCI de la carte réseau. Le pilote de bus PCI effectue cette requête lorsqu’il détecte l’adaptateur sur le bus pour la première fois.
Par le biais de cette requête PCI BAR, le pilote de bus PCI détermine les éléments suivants :
Indique si une barre d’accès PCI est prise en charge par la carte réseau.
Si une barre d’accès est prise en charge, la quantité de mémoire ou d’espace d’adressage d’E/S nécessaire pour le BAR.
Le pilote de bus PCI virtuel (VPCI) s’exécute dans le système d’exploitation invité d’une partition enfant Hyper-V. Quand 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 carte réseau VF (carte réseau VF). Avant cela, le pilote de bus VPCI doit effectuer une requête PCI BAR pour déterminer la mémoire ou l’espace d’adressage requis par la carte réseau VF.
L’accès à l’espace de configuration PCI étant une opération privilégiée, elle ne peut être effectuée 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 fichiers PCI BAR, NDIS émet une requête OID de OID_SRIOV_PROBED_BARS au pilote pf miniport. Les résultats retournés par cette requête OID sont transférés au pilote de bus VPCI afin qu’il puisse déterminer la quantité d’espace d’adressage mémoire nécessaire à la carte réseau VF.
Note Les requêtes 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 sur-ment, tels que le protocole des pilotes de filtre.
La requête de 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 le membre BaseRegisterValuesOffset 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 du BAR 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 RSA d’un appareil PCI, consultez la Spécification du bus local PCI.
Pour plus d’informations sur l’interrogation des registres PCI BAR pour une VF, consultez 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 status suivants pour la 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 de virtualisation 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 les DONNÉES. QUERY_INFORMATION. Le membre BytesNeeded dans le NDIS_OID_REQUEST structure à la taille de mémoire tampon minimale requise. |
NDIS_STATUS_FAILURE |
La demande a échoué pour d’autres raisons. |
Spécifications
Version |
Pris en charge dans NDIS 6.30 et versions ultérieures. |
En-tête |
Ntddndis.h (inclure Ndis.h) |