QueryUnbiasedInterruptTime-Funktion (realtimeapiset.h)

Ruft die aktuelle Anzahl unvoreingenommener Interruptzeit in Einheiten von 100 Nanosekunden ab. Die Anzahl der unvoreingenommenen Unterbrechungszeiten enthält keine Zeit, die das System im Ruhezustand oder im Ruhezustand verbringt.

Syntax

BOOL QueryUnbiasedInterruptTime(
  PULONGLONG UnbiasedTime
);

Parameter

UnbiasedTime

TBD

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null. Wenn die Funktion fehlschlägt, weil sie mit einem NULL-Parameter aufgerufen wird, ist der Rückgabewert 0.

Hinweise

Die Interruptzeitanzahl beginnt bei 0, wenn das System gestartet wird, und wird bei jedem Taktunterbrechung um die Länge eines Taktes erhöht. Die genaue Länge eines Taktes hängt von der zugrunde liegenden Hardware ab und kann je nach System variieren.

Die von der QueryUnbiasedInterruptTime-Funktion abgerufene Interruptzeitanzahl gibt nur die Zeit wider, zu der sich das System im Betriebszustand befindet. Daher ist die Anzahl der Unterbrechungszeiten nicht "verzerrt" durch die Zeit, die das System im Ruhezustand oder im Ruhezustand verbringt. Das System verwendet eine voreingenommene Unterbrechungszeit für einige Vorgänge, z. B. die Sicherstellung, dass relative Timer, die während des Ruhezustands abgelaufen wären, sofort nach dem Aufwachen ablaufen.

Im Gegensatz zur Systemzeit unterliegt die Anzahl der Unterbrechungszeiten nicht den Anpassungen durch Benutzer oder den Windows-Zeitdienst. Anwendungen können die Anzahl der Unterbrechungszeiten verwenden, um feinere Daueren zu messen, als dies mit der Systemzeit möglich ist. Anwendungen, die eine höhere Genauigkeit als die Interruptzeitanzahl erfordern, sollten einen hochauflösenden Timer verwenden. Verwenden Sie die QueryPerformanceFrequency-Funktion , um die Häufigkeit des hochauflösenden Timers und der QueryPerformanceCounter-Funktion abzurufen, um den Wert des Zählers abzurufen.

Die von den Funktionen timeBeginPeriod und timeEndPeriod festgelegte Timerauflösung wirkt sich auf die Auflösung der QueryUnbiasedInterruptTime-Funktion aus. Eine Erhöhung der Timerauflösung wird jedoch nicht empfohlen, da dadurch die Gesamtleistung des Systems verringert und der Stromverbrauch des Systems erhöht werden kann, indem verhindert wird, dass der Prozessor in Energiesparzustände eintritt. Stattdessen sollten Anwendungen einen hochauflösenden Timer verwenden.

Hinweis Die QueryUnbiasedInterruptTime-Funktion erzeugt unterschiedliche Ergebnisse bei Debugbuilds ("überprüft") von Windows, da die Interruptzeitanzahl und die Tickanzahl um ungefähr 49 Tage erweitert werden. Dies hilft, Fehler zu identifizieren, die möglicherweise erst auftreten, wenn das System lange ausgeführt wurde. Der überprüfte Build steht MSDN-Abonnenten über die MSDN-Website (Microsoft Developer Network) zur Verfügung.
 
Um eine Anwendung zu kompilieren, die diese Funktion verwendet, definieren Sie _WIN32_WINNT als 0x0601 oder höher. Weitere Informationen finden Sie unter Verwenden der Windows-Header.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7, Windows 8 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile realtimeapiset.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Unterbrechungszeit

QueryInterruptTime

QueryInterruptTimePrecise

QueryUnbiasedInterruptTimePrecise

Systemstromzustände

Windows-Zeitdienst