Condividi tramite


Funzione PoStartDeviceBusy (wdm.h)

La routine PoStartDeviceBusy contrassegna l'inizio di un periodo di tempo in cui il dispositivo è occupato.

Sintassi

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

Parametri

[in, out] IdlePointer

Puntatore a un contatore inattiva. Si tratta di un valore del puntatore restituito in precedenza dalla routine PoRegisterDeviceForIdleDetection . Poiché PoRegisterDeviceForIdleDetection potrebbe restituire un puntatore NULL , il chiamante deve verificare che il puntatore non sia NULL prima di chiamare PoStartDeviceBusy.

Valore restituito

nessuno

Osservazioni

Le routine PoStartDeviceBusy e PoEndDeviceBusy contrassegnano l'inizio e la fine di un periodo di tempo in cui un dispositivo è occupato. Ogni chiamata a PoStartDeviceBusy deve essere seguita da una chiamata corrispondente a PoEndDeviceBusy.

Per ogni dispositivo, il risparmio energia mantiene un conteggio del numero di chiamate PoStartDeviceBusy in sospeso per le quali non ha ancora ricevuto una chiamata PoEndDeviceBusy corrispondente. Una chiamata PoStartDeviceBusy incrementa il conteggio occupato di uno. Una chiamata PoEndDeviceBusy decrementa il conteggio occupato di uno. Un conteggio delle attività diverso da zero disabilita il contatore di inattività per il dispositivo. Dopo che il conteggio occupato raggiunge lo zero, il risparmio energia reimposta il contatore inattiva nel periodo di timeout e abilita il contatore.

Anziché usare le routine PoStartDeviceBusy e PoEndDeviceBusy per reimpostare il contatore inattivo, è possibile chiamare la routine PoSetDeviceBusyEx (o la macro PoSetDeviceBusy ). Per disabilitare il contatore inattivo durante un periodo di attività prolungato, un driver può chiamare la routine PoRegisterDeviceForIdleDetection per disabilitare e abilitare le notifiche inattive all'inizio e alla fine del periodo occupato. Tuttavia, PoStartDeviceBusy e PoEndDeviceBusy sono in genere più pratici da usare a questo scopo, ed è consigliabile usare queste routine nel nuovo codice scritto per Windows 7 e versioni successive di Windows.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 7.
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualsiasi livello

Vedi anche

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy