Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Chaque fonction du pilote appelée par NDIS s’exécute à un IRQL déterminé par le système (comme PASSIVE_LEVEL < DISPATCH_LEVEL < DIRQL). Par exemple, la fonction d’initialisation d’un pilote miniport, la fonction d’arrêt , la fonction de réinitialisation et la fonction d’arrêt s’exécutent généralement à PASSIVE_LEVEL, bien que les fonctions de réinitialisation et d’arrêt puissent être appelées à un irQL plus élevé si le système l’exige. Le code d'interruption s'exécute au niveau DIRQL, ce qui signifie qu'un pilote intermédiaire ou de protocole NDIS ne fonctionne jamais à ce niveau. Toutes les autres fonctions de pilote NDIS s’exécutent à IRQL = DISPATCH_LEVEL.
L'IRQL auquel une fonction de pilote s’exécute affecte les fonctions NDIS qu’elle peut appeler. Certaines fonctions peuvent être appelées uniquement à IRQL = PASSIVE_LEVEL. D’autres peuvent être appelés à DISPATCH_LEVEL ou inférieur. Vous devez vérifier chaque fonction NDIS pour les restrictions IRQL.
Toute fonction de pilote qui partage des ressources avec la routine de service d’interruption du pilote (ISR) doit être en mesure d'élever son IRQL à DIRQL pour empêcher les situations de compétition. NDIS fournit un tel mécanisme.