Initialisation d’un pilote de miniport VF
Cette rubrique décrit les instructions pour écrire une fonction MiniportInitializeEx pour le pilote de miniport d’une fonction virtuelle (VF) PCI Express (PCIe). La VF est exposée par une carte réseau qui prend en charge la virtualisation d’E/S d’une racine unique (SR-IOV).
Remarque
Ces instructions s’appliquent uniquement aux pilotes de miniport VF de la carte réseau SR-IOV. Pour obtenir des instructions d’initialisation pour le pilote de miniport d’une fonction physique PCIe (PF) de la carte, consultez Initialisation d’un pilote de miniport PF.
Le pilote de miniport VF suit les mêmes étapes que n’importe quel pilote de miniport NDIS quand sa fonction MiniportInitializeEx est appelée. Pour en savoir plus sur ces étapes, consultez Initialisation d’un pilote de miniport.
Outre ces étapes, le pilote de miniport VF doit suivre les étapes supplémentaires suivantes lorsque NDIS appelle la fonction MiniportInitializeEx du pilote :
Le pilote de miniport VF appelle la fonction NdisGetHypervisorInfo pour vérifier qu’elle s’exécute dans la partition enfant Hyper-V. Cette fonction renvoie une structure NDIS_HYPERVISOR_INFO qui définit le type de partition. Si le type de partition est signalé comme NdisHypervisorPartitionMsHvChild, le pilote de miniport s’exécute dans une partition enfant Hyper-V attachée à la PF sur la carte.
Remarque
Si le type de partition est signalé comme NdisHypervisorPartitionMsHvParent, le pilote de miniport s’exécute dans la partition parent Hyper-V attachée à la PF sur la carte. Dans ce cas, le pilote de miniport ne doit pas s’initialiser en tant que pilote VF. Il doit s’initialiser, dans la mesure du possible, en tant que pilote PF comme décrit dans la Séquence d’initialisation pour les pilotes de miniport PF.
Contrairement au pilote de miniport PF, le pilote de miniport VF ne doit pas être installé avec les mot clé standard SR-IOV et ne doit pas tenter de lire ces mot clés. Pour en savoir plus sur ces mot clé, consultez Mots clés INF standardisés pour SR-IOV.
Le pilote de miniport VF signale les fonctionnalités matérielles SR-IOV de la carte réseau virtuelle sous-jacente via une structure NDIS_SRIOV_CAPABILITIES initialisée de la manière suivante :
Le pilote de miniport initialise le membre Header. Le pilote définit le membre Type de Header sur NDIS_OBJECT_TYPE_DEFAULT.
À compter de NDIS 6.30, le pilote de miniport définit le membre Révision de Header sur NDIS_SRIOV_CAPABILITIES _REVISION_1 et le membre Size sur NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1.
Le pilote de miniport définit l’indicateur NDIS_SRIOV_CAPS_PF_MINIPORT dans le membre SriovCapabilities pour signaler les fonctionnalités SR-IOV.
Remarque
Le pilote de miniport VF doit définir à la fois l’indicateur NDIS_SRIOV_CAPS_VF_MINIPORT et l’indicateur NDIS_SRIOV_CAPS_SRIOV_SUPPORTED.
Le pilote de miniport VF inscrit les fonctionnalités SR-IOV de la carte réseau de la façon suivante :
Le pilote de miniport initialise une structure NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.
Le pilote de miniport définit les membres HardwareSriovCapabilities et CurrentSriovCapabilities sur un pointeur vers la structure NDIS_SRIOV_CAPABILITIES précédemment initialisée.
Le pilote appelle NdisMSetMiniportAttributes et définit le paramètre MiniportAttributes sur un pointeur vers la structure NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.
Le pilote de miniport VF ne doit pas publier les fonctionnalités de file d’attente d’ordinateurs virtuels (VMQ). Il peut toutefois publier la prise en charge d’autres technologies NDIS, telles que la gestion de l’alimentation et la mise à l’échelle côté réception (RSS).
Pour plus d’informations sur RSS, consultez Mise à l’échelle côté réception.