Initialisation d’un pilote miniport NDK-Capable
Un pilote miniport qui prend en charge le noyau direct réseau (NDK) est initialisé de la même façon que les autres pilotes miniport. Toutefois, il doit également inscrire des points d’entrée NDKPI supplémentaires.
Fonction DriverEntry
La fonction DriverEntry de chaque pilote miniport initialise une structure de NDIS_MINIPORT_DRIVER_CHARACTERISTICS et la transmet à NdisMRegisterMiniportDriver , comme décrit dans les pages suivantes :
Le pilote miniport compatible NDK doit effectuer les opérations suivantes lors de l’initialisation de la structure NDIS_MINIPORT_DRIVER_CHARACTERISTICS :
Dans le membre OidRequestHandler , le pilote miniport doit inscrire une fonction MiniportOidRequest qui prend en charge :
Tous les OID NDKPI.
Tous les OID qui sont obligatoires pour les pilotes de miniport NDIS en général.
Note Pour obtenir la liste de ces OID obligatoires, consultez OID obligatoires pour les pilotes Miniport.
Dans le membre SetOptionsHandler , le pilote miniport doit inscrire une fonction MiniportSetOptions comme décrit dans Configuration des services de pilotes Miniport facultatifs et dans la section de fonction MiniportSetOptions suivante.
Fonction MiniportSetOptions
NDIS appelle la fonction MiniportSetOptions immédiatement après le retour de la fonction DriverEntry du pilote miniport. La fonction MiniportSetOptions est appelée dans le contexte de l’appel du pilote miniport à NdisMRegisterMiniportDriver.
Dans sa fonction MiniportSetOptions , le pilote miniport compatible NDK enregistre sa fonctionnalité NDK et inscrit les points d’entrée de fonction NDKPI requis suivants, comme décrit dans Configuration des services de pilotes Miniport facultatifs :
OpenNDKAdapterHandler (OPEN_NDK_ADAPTER_HANDLER)
CloseNDKAdapterHandler (CLOSE_NDK_ADAPTER_HANDLER)
Pour inscrire les points d’entrée NDKPI pour ces fonctions, la fonction MiniportSetOptions du pilote miniport doit effectuer les opérations suivantes :
Initialisez une structure NDIS_NDK_PROVIDER_CHARACTERISTICS .
Note Prêtez une attention particulière à la description du membre d’en-tête . Le pilote miniport doit définir ce membre correctement pour s’identifier en tant que pilote miniport compatible NDK.
Stockez les points d’entrée de fonction dans les membres OpenNDKAdapterHandler et CloseNDKAdapterHandler de la structure.
Appelez la fonction NdisSetOptionalHandlers en passant la structure dans le paramètre OptionalHandlers .