Partager via


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)

Voir aussi

DRIVER_OBJECT

IoRegisterBootDriverReinitialization