Partager via


NdisMReadConfigBlock, fonction (ndis.h)

Un pilote miniport pour une fonction virtuelle PCI Express (PCIe) appelle la fonction NdisMReadConfigBlock pour lire les données d’un bloc de configuration VF. Les opérations de lecture d’un bloc de configuration VF sont gérées par le pilote miniport de la fonction physique PCIe (PF) de la carte réseau.

RemarqueNdisMReadConfigBlock ne doit être appelé que par le pilote miniport VF.
 

Syntaxe

NDIS_STATUS NdisMReadConfigBlock(
  [in]  NDIS_HANDLE NdisMiniportHandle,
  [in]  ULONG       BlockId,
  [out] PVOID       Buffer,
  [in]  ULONG       Length
);

Paramètres

[in] NdisMiniportHandle

La carte réseau handle que NDIS a passée au paramètre MiniportAdapterHandle de MiniportInitializeEx.

[in] BlockId

Valeur ULONG qui spécifie l’identificateur du bloc de configuration VF à lire. Cet identificateur est propriétaire du fournisseur de matériel indépendant (IHV) et est utilisé uniquement par les pilotes miniport PF et VF.

[out] Buffer

Pointeur vers une mémoire tampon allouée par l’appelant qui contiendra les données de configuration demandées.

[in] Length

Nombre d’octets à lire à partir du bloc de configuration VF.

Valeur de retour

NdisMReadConfigBlock peut retourner l’une des valeurs d’état suivantes :

Retourner le code Description
NDIS_STATUS_SUCCESS
L’opération de requête s’est terminée avec succès.
NDIS_STATUS_FAILURE
Échec de l’opération de requête.

Remarques

Le pilote miniport VF appelle NdisMReadConfigBlock pour lancer une demande de lecture backchannel des données de configuration VF par le pilote miniport PF. Une fois averti de cette demande, le pilote PF retourne les données du bloc de configuration VF spécifié.

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 l’appareil. 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.
 
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.

Pour plus d’informations sur l’interface SR-IOV, consultez Vue d’ensemble de la virtualisation d’E/S racine unique (SR-IOV).

Interfacing à un pilote de bus virtuel

Si un fournisseur de matériel indépendant (IHV) fournit un pilote de bus virtuel (VBD) dans le cadre de son package de pilotes SR-IOV , son pilote miniport ne doit pas appeler NdisMReadConfigBlock. Au lieu de cela, le pilote doit interagir avec le VBD via un canal de communication privé et demander que l’appel VBD ReadVfConfigBlock. Cette fonction est exposée à partir de l’interface GUID_VPCI_INTERFACE_STANDARD prise en charge par le pilote de bus PCI virtuel (VPCI) sous-jacent.

Le VBD qui s’exécute dans un système d’exploitation invité d’une partition enfant Hyper-V peut interroger l’interface GUID_VPCI_INTERFACE_STANDARD en émettant une requête IRP_MN_QUERY_INTERFACE à son objet d’appareil physique (PDO) sur le bus VPCI. Cette demande doit être effectuée à partir d’IRQL = PASSIVE_LEVEL. Dans cette requête, le pilote doit définir le paramètre InterfaceType sur GUID_VPCI_INTERFACE_STANDARD.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge dans NDIS 6.30 et versions ultérieures.
plateforme cible Universel
d’en-tête ndis.h (include Ndis.h)
bibliothèque Ndis.lib
IRQL <= APC_LEVEL

Voir aussi

GUID_VPCI_INTERFACE_STANDARD

readVfConfigBlock