Fonction IoRegisterDriverReinitialization (ntddk.h)
La routine IoRegisterDriverReinitialization est appelée par un pilote lors de son initialisation ou de sa réinitialisation pour inscrire sa routine De réinitialize pour qu’elle soit appelée à nouveau avant la fin de l’initialisation du pilote et, éventuellement, du système.
Syntaxe
void IoRegisterDriverReinitialization(
[in] PDRIVER_OBJECT DriverObject,
[in] PDRIVER_REINITIALIZE DriverReinitializationRoutine,
[in, optional] PVOID Context
);
Paramètres
[in] DriverObject
Pointeur vers l’objet pilote entré dans la routine DriverEntry .
[in] DriverReinitializationRoutine
Pointeur vers la routine De réinitialisation du pilote.
[in, optional] Context
Pointeur vers le contexte à passer à la routine De réinitialisation du pilote.
Valeur de retour
None
Remarques
Un pilote peut appeler cette routine uniquement si sa routine DriverEntry retourne STATUS_SUCCESS. Si la routine Reinitialize fournie par le pilote doit utiliser le Registre, la routine DriverEntry doit inclure une copie de la chaîne vers laquelle pointe RegistryPath dans le cadre du contexte passé à la routine Reinitialize dans cet appel.
Si le pilote est chargé dynamiquement, il est possible que cela se produise pendant un système en cours d’exécution normale, de sorte que toutes les références à la file d’attente de réinitialisation doivent être synchronisées.
L’entrée Count dans un DriverReinitializationRoutine indique le nombre de fois où cette routine a été appelée, y compris l’appel actuel.
La routine DriverEntry ne peut appeler IoRegisterDriverReinitialization qu’une seule fois. Si la routine Reinitialize doit être réexécuter une fois que les routines Réinitialisation d’autres pilotes ont retourné le contrôle, la routine Reinitialize peut également appeler IoRegisterDriverReinitialization autant de fois que la routine Reinitialize du pilote doit être exécutée.
En règle générale, un pilote avec une routine de réinitialisation est un pilote de niveau supérieur qui contrôle à la fois pnP et les appareils hérités. Un tel pilote doit non seulement créer des objets d’appareil pour les appareils que le gestionnaire PnP détecte (et pour lesquels le gestionnaire PnP appelle la routine AddDevice du pilote), mais il doit également créer des objets d’appareil pour les appareils hérités que le gestionnaire PnP ne détecte pas. Un pilote peut utiliser une routine De réinitialisation pour créer ces objets d’appareil et superposer le pilote sur le pilote inférieur suivant pour l’appareil sous-jacent.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 2000. |
Plateforme cible | Universal |
En-tête | ntddk.h (inclure Ntddk.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport),IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |