Condividi tramite


Funzione PoSetDeviceBusyEx (ntifs.h)

La routine PoSetDeviceBusyEx notifica al di risparmio energia che il dispositivo associato al contatore di inattività specificato è occupato.

Sintassi

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

Parametri

[in, out] IdlePointer

Puntatore a un contatore inattiva. Si tratta di un valore puntatore restituito in precedenza dalla routine poRegisterDeviceForIdleDetection precedentemente restituita dalla routine poRegisterDeviceForIdleDetection. Poiché PoRegisterDeviceForIdleDetection potrebbe restituire un puntatore NULL, il chiamante deve verificare che il puntatore sia diverso da NULL prima di chiamare PoSetDeviceBusyEx.

Valore restituito

Nessuno

Osservazioni

Questa routine è una sostituzione diretta della macroPoSetDeviceBusy. Se si scrive nuovo codice driver per Windows Vista con Service Pack 1 (SP1) e versioni successive di Windows, chiamare PoSetDeviceBusyEx anziché PoSetDeviceBusy.

Un driver chiama la PoSetDeviceBusyEx e PoRegisterDeviceForIdleDetection routine per abilitare il rilevamento di inattività del sistema per il dispositivo. Se un dispositivo registrato per il rilevamento inattivo rimane inattivo per il periodo di timeout specificato dal driver, il risparmio energia invia una richiesta di IRP_MN_SET_POWER per inserire il dispositivo in uno stato di sospensione richiesto.

PoSetDeviceBusyEx segnala che il dispositivo è occupato, in modo che il risparmio energia possa riavviare il conto alla rovescia di inattività. Se il dispositivo è in stato di sospensione, PoSetDeviceBusyEx non modifica lo stato del dispositivo. Ciò significa che il sistema non invia una richiesta di IRP_MN_SET_POWER per risvegliare il dispositivo.

PoSetDeviceBusyEx è progettato per l'uso con operazioni di I/O relativamente brevi rispetto al periodo di timeout del contatore inattivo. Per operazioni più lunghe che potrebbero superare questo periodo, usare invece le routinepoStartDeviceBusye PoEndDeviceBusy.

Un driver che effettua più richieste per brevi operazioni di I/O deve chiamare PoSetDeviceBusyEx per ogni richiesta di I/O eseguita.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista con SP1
piattaforma di destinazione Universale
intestazione ntifs.h (include Wdm.h, Ntddk.h, Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL Qualsiasi livello

Vedere anche

IRP_MN_SET_POWER

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy

PoStartDeviceBusy