PoSetDeviceBusyEx-Funktion (ntifs.h)
Die PoSetDeviceBusyEx- Routine benachrichtigt den Power Manager, dass das dem angegebenen Leerlaufzähler zugeordnete Gerät ausgelastet ist.
Syntax
void PoSetDeviceBusyEx(
[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 PoSetDeviceBusyExaufruft.
Rückgabewert
Nichts
Bemerkungen
Diese Routine ist ein direkter Ersatz für das PoSetDeviceBusy Makro. Wenn Sie neuen Treibercode für Windows Vista mit Service Pack 1 (SP1) und höheren Versionen von Windows schreiben, rufen Sie PoSetDeviceBusyEx- anstelle von PoSetDeviceBusyauf.
Ein Treiber ruft die PoSetDeviceBusyEx- und PoRegisterDeviceForIdleDetection Routinen auf, um die System-Leerlauferkennung für sein Gerät zu ermöglichen. Wenn ein Gerät, das für die Leerlauferkennung registriert ist, für den vom Treiber angegebenen Timeoutzeitraum im Leerlauf bleibt, sendet der Power Manager eine IRP_MN_SET_POWER Anforderung, das Gerät in einen angeforderten Standbyzustand zu versetzen.
PoSetDeviceBusyEx meldet, dass das Gerät ausgelastet ist, sodass der Power Manager seinen Leerlauf-Countdown neu starten kann. Wenn sich das Gerät in einem Standbyzustand befindet, ändert PoSetDeviceBusyEx- den Zustand des Geräts nicht. Das heißt, es bewirkt nicht, dass das System eine IRP_MN_SET_POWER Anforderung sendet, das Gerät zu wecken.
PoSetDeviceBusyEx ist für die Verwendung mit E/A-Vorgängen konzipiert, die im Vergleich zum Timeoutzeitraum des Leerlaufzählers relativ kurz sind. Verwenden Sie für längere Vorgänge, die diesen Zeitraum überschreiten können, stattdessen die PoStartDeviceBusy und PoEndDeviceBusy Routinen.
Ein Treiber, der mehrere Anforderungen für kurze E/A-Vorgänge vorgibt, sollte PoSetDeviceBusyEx- für jede von ihr ausgeführte E/A-Anforderung aufrufen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Vista mit SP1 |
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | Beliebige Ebene |