NdisMRegisterMiniportDriver, fonction (ndis.h)
Un pilote miniport appelle la fonction NdisMRegisterMiniportDriver pour inscrire les points d’entrée MiniportXxx avec NDIS comme première étape de l’initialisation.
Syntaxe
NDIS_STATUS NdisMRegisterMiniportDriver(
[in] PDRIVER_OBJECT DriverObject,
[in] PUNICODE_STRING RegistryPath,
[in, optional] NDIS_HANDLE MiniportDriverContext,
[in] PNDIS_MINIPORT_DRIVER_CHARACTERISTICS MiniportDriverCharacteristics,
[out] PNDIS_HANDLE NdisMiniportDriverHandle
);
Paramètres
[in] DriverObject
Pointeur vers un objet pilote opaque que le pilote miniport a reçu dans sa routine DriverEntry au niveau du paramètre Argument1 (voir DriverEntry des pilotes miniport NDIS).
[in] RegistryPath
Pointeur vers un chemin de Registre opaque que le pilote miniport a reçu dans sa routine DriverEntry au niveau du paramètre Argument2 .
[in, optional] MiniportDriverContext
Handle vers une zone de contexte allouée par le pilote où le pilote conserve les informations d’état et de configuration.
[in] MiniportDriverCharacteristics
Pointeur vers un NDIS_MINIPORT_DRIVER_CHARACTERISTICS structure que l’appelant a initialisée.
[out] NdisMiniportDriverHandle
Pointeur vers une variable de handle fournie par l’appelant. NDIS écrit un handle dans cette variable qui identifie de manière unique ce pilote. Le pilote doit enregistrer ce handle pour l’utiliser dans les appels de fonction NdisXxx suivants.
Valeur retournée
NdisMRegisterMiniportDriver retourne l’une des valeurs status suivantes :
Code de retour | Description |
---|---|
|
NdisMRegisterMiniportDriver a inscrit le pilote miniport avec succès. |
|
Le paramètre CharacteristicsLength n’est pas correct pour la version NDIS spécifiée au niveau du membre MajorNdisVersion dans la structure de MiniportDriverCharacteristics . |
|
La MajorNdisVersion ou MinorNdisVersion spécifiée dans la structure des caractéristiques n’est pas valide. |
|
Une pénurie de ressources, éventuellement de mémoire, a empêché NDIS d’inscrire l’appelant. |
|
Il s’agit d’une erreur par défaut status, retournée quand aucune des erreurs précédentes n’a provoqué l’échec de l’inscription. |
Remarques
Un pilote NDIS appelle NdisMRegisterMiniportDriver à partir de sa routine DriverEntry . Pour plus d’informations, consultez DriverEntry of NDIS Miniport Drivers.
Chaque pilote miniport exporte un ensemble de fonctions MiniportXxx standard en configurant la structure des caractéristiques et en appelant NdisMRegisterMiniportDriver. NDIS copie la structure des caractéristiques dans le stockage interne NDIS. Par conséquent, une fois inscrit, un pilote ne peut pas modifier ses points d’entrée MiniportXxx .
Pour inscrire son interface miniport virtuelle, un pilote intermédiaire NDIS doit appeler NdisMRegisterMiniportDriver avec l’indicateur NDIS_INTERMEDIATE_DRIVER défini dans la structure sur MiniportDriverCharacteristics . Les pilotes NDIS qui ont un bord inférieur WDM doivent appeler NdisMRegisterMiniportDriver avec l’indicateur NDIS_WDM_DRIVER défini dans la structure sur MiniportDriverCharacteristics .
Les pilotes peuvent s’inscrire en tant que pilote miniport et pilote intermédiaire combiné. Pour inscrire son pilote de miniport physique, un pilote miniport intermédiaire appelle NdisMRegisterMiniportDriver avec les paramètres appropriés comme pour tout pilote miniport. Pour inscrire son interface miniport virtuelle, le pilote appelle à nouveau NdisMRegisterMiniportDriver , mais avec l’indicateur NDIS_INTERMEDIATE_DRIVER défini dans le paramètre MiniportDriverCharacteristics .
Pour permettre aux pilotes miniport d’inscrire des services facultatifs, NDIS appelle la fonction MiniportSetOptions dans le contexte de NdisMRegisterMiniportDriver.
Une fois qu’un pilote appelle NdisMRegisterMiniportDriver, le pilote doit être prêt à être rappelé à la fonction MiniportInitializeEx spécifiée dans le paramètre MiniportDriverCharacteristics à tout moment après le retour de DriverEntry.
Si une erreur se produit dans DriverEntry après le retour de NdisMRegisterMiniportDriver , le pilote doit appeler le Fonction NdisMDeregisterMiniportDriver avant le retour de DriverEntry . Si DriverEntry réussit, le pilote doit appeler NdisMDeregisterMiniportDriver à partir de sa fonction MiniportDriverUnload .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Pris en charge dans NDIS 6.0 et versions ultérieures. |
Plateforme cible | Universal |
En-tête | ndis.h (inclure Ndis.h) |
Bibliothèque | Ndis.lib |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | Irql_Miniport_Driver_Function(ndis) |
Voir aussi
Initialisation d’un pilote Miniport
NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver