Fonction IoInitializeTimer (wdm.h)
La routine IoInitializeTimer configure une routine IoTimer fournie par le pilote associée à un objet d’appareil donné.
NTSTATUS IoInitializeTimer(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIO_TIMER_ROUTINE TimerRoutine,
[in, optional] __drv_aliasesMem PVOID Context
);
[in] DeviceObject
Pointeur vers un objet d’appareil représentant un appareil sur lequel les opérations d’E/S peuvent expirer.
[in] TimerRoutine
Pointeur vers la routine de ioTimer fournie par le pilote.
[in, optional] Context
Pointeur vers le contexte déterminé par le pilote avec lequel son IoTimer routine sera appelée.
IoInitializeTimer retourne STATUS_SUCCESS si la routine IoTimer est configurée.
IoInitializeTimer ne doit être appelé qu’une seule fois par objet d’appareil.
La routine d’un pilote est appelée une fois par seconde après que le pilote active le minuteur en appelant IoStartTimer. Le pilote peut désactiver le minuteur en appelant IoStopTimer et peut le réactiver à nouveau avec IoStartTimer.
La routine ioTimer du pilote est appelée à IRQL = DISPATCH_LEVEL et ne doit donc pas contenir de code paginable.
Lorsque le minuteur est en cours d’exécution, le gestionnaire d’E/S appelle le pilote fourni IoTimer routine une fois par seconde. Les pilotes dont les routines de délai d’attente doivent être appelées à intervalles variables ou à intervalles de granularité plus fine peuvent configurer une routine CustomTimerDpc et utiliser les routines KeXxxMinuteur.
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible à partir de Windows 2000. |
plateforme cible | Universel |
d’en-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
règles de conformité DDI | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |