Partager via


NdisMWriteConfigBlock, fonction (ndis.h)

Un pilote miniport pour une fonction virtuelle PCI Express (PCIe) appelle la fonction NdisMWriteConfigBlock pour écrire des données dans un bloc de configuration VF. Les opérations d’écriture sur un bloc de configuration VF sont gérées par le pilote miniport de la fonction physique PCIe (PF) de la carte réseau.

RemarqueNdisMWriteConfigBlock doit uniquement être appelé par le pilote miniport pour la VF d’une carte réseau.
 

Syntaxe

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

Paramètres

[in] NdisMiniportHandle

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

[in] BlockId

Valeur ULONG qui spécifie l’identificateur du bloc de configuration dans lequel écrire. Cet identificateur est propriétaire du fournisseur de matériel indépendant (IHV) et est utilisé uniquement par les pilotes miniport pour le PF et la VF sur la carte réseau.

[in] Buffer

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

[in] Length

Nombre d’octets à écrire dans le bloc de configuration.

Valeur retournée

NdisMWriteConfigBlock peut retourner l’une des valeurs status suivantes.

Code de retour Description
NDIS_STATUS_SUCCESS
L’opération d’écriture s’est terminée avec succès.
NDIS_STATUS_FAILURE
L'opération d'écriture a échoué.

Remarques

Le pilote VF miniport appelle NdisMWriteConfigBlock pour lancer une demande d’écriture backchannel de données de configuration VF par le pilote pf miniport. Une fois averti de cette demande, le pilote PF écrit les données dans le 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.

Interfaçage vers 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 NdisMWriteConfigBlock. Au lieu de cela, le pilote doit s’interfacer avec le VBD via un canal de communication privé et demander que le VBD appelle WriteVfConfigBlock. 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 demande 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 Aucun pris en charge, pris en charge dans NDIS 6.30 et versions ultérieures.
Serveur minimal pris en charge Windows Server 2012
Plateforme cible Universal
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL <= APC_LEVEL

Voir aussi

GUID_VPCI_INTERFACE_STANDARD

WriteVfConfigBlock