Fungsi PoSetDeviceBusyEx (ntifs.h)

PoSetDeviceBusyEx rutin memberi tahu manajer daya bahwa perangkat yang terkait dengan penghitung diam yang ditentukan sibuk.

Sintaks

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

Parameter

[in, out] IdlePointer

Penunjuk ke penghitung diam. Ini adalah nilai pointer yang sebelumnya dikembalikan oleh rutinitas PoRegisterDeviceForIdleDetection . Karena PoRegisterDeviceForIdleDetection mungkin mengembalikan penunjuk NULL, pemanggil harus memverifikasi bahwa penunjuk bukan NULL sebelum memanggil PoSetDeviceBusyEx.

Nilai kembali

Tidak ada

Keterangan

Rutinitas ini adalah pengganti langsung untuk makro PoSetDeviceBusy . Jika Anda menulis kode driver baru untuk Windows Vista dengan Paket Layanan 1 (SP1) dan versi Windows yang lebih baru, panggil PoSetDeviceBusyEx alih-alih PoSetDeviceBusy.

Driver memanggil rutinitas PoSetDeviceBusyEx dan PoRegisterDeviceForIdleDetection untuk mengaktifkan deteksi diam sistem untuk perangkatnya. Jika perangkat yang terdaftar untuk deteksi diam tetap menganggur untuk periode waktu habis yang ditentukan driver, manajer daya mengirimkan permintaan IRP_MN_SET_POWER untuk menempatkan perangkat dalam status tidur yang diminta.

PoSetDeviceBusyEx melaporkan bahwa perangkat sibuk, sehingga manajer daya dapat memulai ulang penghitungan mundur diamnya. Jika perangkat dalam keadaan tidur, PoSetDeviceBusyEx tidak mengubah status perangkat. Artinya, itu tidak menyebabkan sistem mengirim permintaan IRP_MN_SET_POWER untuk membangkitkan perangkat.

PoSetDeviceBusyEx dirancang untuk digunakan dengan operasi I/O yang relatif singkat dibandingkan dengan periode waktu habis penghitung diam. Untuk operasi yang lebih lama yang mungkin melebihi periode ini, gunakan rutinitas PoStartDeviceBusy dan PoEndDeviceBusy sebagai gantinya.

Driver yang membuat beberapa permintaan untuk operasi I/O singkat harus memanggil PoSetDeviceBusyEx untuk setiap permintaan I/O yang dibuatnya.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista dengan SP1
Target Platform Universal
Header ntifs.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Tingkat apa pun

Lihat juga

IRP_MN_SET_POWER

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy

PoStartDeviceBusy