Función KeQueryInterruptTimePrecise (wdm.h)
La rutina KeQueryInterruptTimePrecise devuelve el valor actual del sistema tiempo de interrupción recuento, con precisión en un microsegundo.
Sintaxis
ULONG64 KeQueryInterruptTimePrecise(
[out] PULONG64 QpcTimeStamp
);
Parámetros
[out] QpcTimeStamp
Puntero a una variable ULONG64 en la que la rutina escribe el valor del contador de rendimiento usado para interpolar el valor devuelto.
Valor devuelto
Recuento actual de tiempo de interrupción en unidades de 100 nanosegundos.
Observaciones
KeQueryInterruptTimePrecise devuelve el tiempo de interrupción actual del sistema, que es la cantidad de tiempo desde que se inició por última vez el sistema operativo. KeQueryInterruptTimePrecise es similar a la rutina KeQueryInterruptTime, pero es más precisa.
El tiempo de interrupción notificado por KeQueryInterruptTime se basa en el tic más reciente del temporizador del reloj del sistema. El temporizador de reloj es el temporizador de hardware que genera periódicamente interrupciones para el reloj del sistema. El período uniforme entre las interrupciones del temporizador de reloj se conoce como tic de reloj del sistema, y normalmente se encuentra en el intervalo de 500 microsegundos a 15,625 milisegundos, dependiendo de la plataforma de hardware. El valor de tiempo de interrupción recuperado por KeQueryInterruptTime es preciso dentro de un tic del reloj del sistema.
Para proporcionar un valor de tiempo de interrupción más preciso que el de KeQueryInterruptTime, KeQueryInterruptTimePrecise usa el contador de rendimiento del sistema para medir el tiempo transcurrido desde la última interrupción del temporizador de reloj y agrega esta vez a la hora de interrupción asociada a la hora del reloj más reciente. El tiempo de interrupción notificado por keQueryInterruptTimePrecise es preciso en un microsegundo.
En algunas plataformas de hardware, una llamada KeQueryInterruptTimePrecise podría ser más lenta que una llamada KeQueryInterruptTime. La razón es que KeQueryInterruptTimePrecise lee el contador de rendimiento, lo que puede introducir un retraso adicional. Para obtener más información, vea KeQueryPerformanceCounter.
Llame a la rutina KeQueryTimeIncrement para determinar el tamaño de un tic del reloj del sistema.
El tiempo de interrupción preciso se puede usar para medir duraciones muy específicas mientras se ejecuta el sistema porque las operaciones que establecen o restablecen la hora del sistema no tienen ningún efecto en el recuento de tiempo de interrupción del sistema.
Sin embargo, los cambios de estado de administración de energía afectan al recuento de tiempo de interrupción del sistema. El mantenimiento del recuento de tiempo de interrupción se suspende durante los estados de suspensión del sistema. Cuando se produce una transición de estado de reactivación posterior, el sistema agrega un valor de "sesgo" al recuento de tiempo de interrupción para compensar la duración estimada de dicho estado de suspensión. El recuento de tiempo de interrupción devuelto por KeQueryInterruptTimePrecise incluye este valor de sesgo. Para obtener un recuento de tiempo de interrupción no sesgado, use el KeQueryUnbiasedInterruptTime. Actualmente no hay disponible una versión precisa del recuento de tiempo de interrupción no sesgado.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible a partir de Windows 8.1. |
de la plataforma de destino de | Universal |
encabezado de | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | Cualquier nivel |