PoStartDeviceBusy-Funktion (ntifs.h)
Die PoStartDeviceBusy Routine markiert den Anfang eines Zeitraums, in dem das Gerät ausgelastet ist.
void PoStartDeviceBusy(
[in, out] PULONG IdlePointer
);
[in, out] IdlePointer
Ein Zeiger auf einen Leerlaufzähler. Dies ist ein Zeigerwert, der zuvor von der PoRegisterDeviceForIdleDetection Routine zurückgegeben wurde. Da PoRegisterDeviceForIdleDetection- möglicherweise einen NULL-Zeiger zurückgeben, muss der Aufrufer überprüfen, ob der Zeiger nicht NULL ist, bevor er PoStartDeviceBusyaufruft.
Nichts
Die PoStartDeviceBusy und PoEndDeviceBusy Routinen kennzeichnen den Anfang und das Ende eines Zeitraums, in dem ein Gerät ausgelastet ist. Jedem Aufruf von PoStartDeviceBusy muss ein entsprechender Aufruf von PoEndDeviceBusyfolgen.
Für jedes Gerät erhält der Power Manager eine Anzahl der ausstehenden PoStartDeviceBusy Aufrufe, für die er noch keinen entsprechenden PoEndDeviceBusy Anruf erhalten hat. Ein PoStartDeviceBusy Aufruf erhöht die Anzahl der Beschäftigt-Anrufe um eine. Ein PoEndDeviceBusy Anruf verringert die Anzahl der Beschäftigt-Anrufe um eine. Bei einer Nichtzero-Beschäftigt-Anzahl wird der Leerlaufzähler für das Gerät deaktiviert. Nachdem die Beschäftigt-Anzahl null erreicht hat, setzt der Power Manager den Leerlaufzähler auf den Timeoutzeitraum zurück und aktiviert den Zähler.
Anstatt die PoStartDeviceBusy und PoEndDeviceBusy Routinen zum Zurücksetzen des Leerlaufzählers zu verwenden, können Sie die PoSetDeviceBusyEx Routine (oder das PoSetDeviceBusy Makro) aufrufen. Um den Leerlaufzähler während eines erweiterten Beschäftigt-Zeitraums zu deaktivieren, kann ein Treiber die PoRegisterDeviceForIdleDetection-Routine aufrufen, um Leerlaufbenachrichtigungen am Anfang und Ende des Beschäftigt-Zeitraums zu deaktivieren und zu aktivieren. PoStartDeviceBusy und PoEndDeviceBusy sind jedoch in der Regel bequemer für diesen Zweck zu verwenden, und Sie sollten diese Routinen in neuen Code verwenden, den Sie für Windows 7 und höhere Versionen von Windows schreiben.
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 7. |
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | Beliebige Ebene |