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 doit être appelé uniquement par le pilote VF miniport.
 

Syntaxe

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

Paramètres

[in] NdisMiniportHandle

Handle de carte réseau que NDIS a transmis au paramètre MiniportAdapterHandle de MiniportInitializeEx.

[in] BlockId

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

[out] Buffer

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

[in] Length

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

Valeur retournée

NdisMReadConfigBlock peut retourner l’une des valeurs de status suivantes :

Code de retour Description
NDIS_STATUS_SUCCESS
L’opération de requête s’est terminée avec succès.
NDIS_STATUS_FAILURE
L’opération de requête a échoué.

Remarques

Le pilote miniport VF appelle NdisMReadConfigBlock pour lancer une demande de lecture backchannel des données de configuration VF par le pilote pf miniport. 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.

Note Les données de chaque bloc de configuration VF sont utilisées uniquement par les pilotes pf et VF miniport.
 
Pour plus d’informations sur la communication backchannel au sein de l’interface de virtualisation d’E/S racine unique (SR-IOV), consultez Communication backchannel SR-IOV PF/VF.

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

Interface avec 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 s’interfacer avec le VBD via un canal de communication privé et demander au VBD d’appeler 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 le système d’exploitation invité d’une partition enfant Hyper-V peut interroger l’interface GUID_VPCI_INTERFACE_STANDARD en émettant une demande de IRP_MN_QUERY_INTERFACE à son objet de périphérique physique (PDO) sur le bus VPCI. Cette requête doit être effectuée à partir de IRQL = PASSIVE_LEVEL. Dans cette requête, le pilote doit définir le paramètre InterfaceType sur GUID_VPCI_INTERFACE_STANDARD.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.30 et versions ultérieures.
Plateforme cible Universal
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL <= APC_LEVEL

Voir aussi

GUID_VPCI_INTERFACE_STANDARD

ReadVfConfigBlock