Condividi tramite


Funzione PoStartDeviceBusy (ntifs.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 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 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, l'risparmio energia gestisce un conteggio del numero di chiamate PoStartDeviceBusy per le quali non ha ancora ricevuto una chiamata PoEndDeviceBusy corrispondente. Un PoStartDeviceBusy chiamata incrementa il numero occupato di uno. Un PoEndDeviceBusy chiamata decrementa il numero occupato di uno. Un conteggio di 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.

Invece di 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 il PoRegisterDeviceForIdleDetection routine per disabilitare e abilitare le notifiche inattive all'inizio e alla fine del periodo occupato. Tuttavia, PoStartDeviceBusy e PoEndDeviceBusy sono in genere più comodi da usare per questo scopo, ed è consigliabile prendere in considerazione l'uso di queste routine nel nuovo codice scritto per Windows 7 e versioni successive di Windows.

Fabbisogno

Requisito Valore
client minimo supportato Windows 7.
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

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy