MiniportAddDevice Guidelines for PF Miniport Drivers
Cette rubrique décrit les instructions relatives à l’écriture d’une fonction MiniportAddDevice pour le pilote miniport de la fonction physique PCI Express (PCIe). Le PF est un composant d’une carte réseau qui prend en charge la virtualisation d’E/S racine unique (SR-IOV).
Note Ces recommandations s’appliquent uniquement aux pilotes pf miniport. Pour obtenir des instructions d’initialisation pour le pilote miniport d’une fonction virtuelle PCIe (VF) de l’adaptateur, consultez Initialisation d’un pilote VF Miniport.
Le Gestionnaire Plug-and-Play (PnP) appelle la fonction AddDevice NDIS pour créer l’objet d’appareil fonctionnel (FDO) pour la carte réseau. Si le pilote pf miniport a inscrit un point d’entrée MiniportAddDevice quand il a appelé NdisMRegisterMiniportDriver, NDIS appelle la fonction MiniportAddDevice du pilote.
Lorsque MiniportAddDevice est appelé, le pilote pf miniport peut allouer des ressources logicielles supplémentaires pour le SR-IOV et le commutateur d’interface réseau carte (NIC). En règle générale, il s’agit de ressources qui doivent être allouées avant que NDIS appelle la fonction MiniportInitializeEx du pilote.
Le pilote peut effectuer les opérations suivantes dans le contexte de l’appel à MiniportAddDevice :
Le pilote pf miniport peut appeler NdisReadConfiguration pour lire les paramètres de configuration du commutateur SR-IOV et NIC à partir du Registre. Ces paramètres de configuration sont définis par le biais des mots clés SR-IOV standardisés. Pour plus d’informations sur ces mots clés, consultez Mots clés INF standardisés pour SR-IOV.
En fonction de ces paramètres de configuration, le pilote PF miniport alloue les ressources logicielles supplémentaires pour la carte réseau SR-IOV.
Note L’allocation réelle des ressources matérielles et l’activation de SR-IOV dans l’espace de configuration PCI ne doivent être effectuées que dans le contexte de l’appel à MiniportInitializeEx. Étant donné que l’espace d’E/S mappé en mémoire de la carte réseau n’est pas initialisé lorsque MiniportAddDevice est appelé, le pilote miniport ne doit pas lire ou écrire sur la carte tant que MiniportInitializeEx n’est pas appelé.