Auf Englisch lesen

Freigeben über


PoStartDeviceBusy-Funktion (ntifs.h)

Die PoStartDeviceBusy Routine markiert den Anfang eines Zeitraums, in dem das Gerät ausgelastet ist.

Syntax

void PoStartDeviceBusy(
  [in, out] PULONG IdlePointer
);

Parameter

[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.

Rückgabewert

Nichts

Bemerkungen

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.

Anforderungen

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

Siehe auch

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection-

PoSetDeviceBusy