Fungsi PoRegisterDeviceForIdleDetection (wdm.h)
Rutinitas PoRegisterDeviceForIdleDetection mengaktifkan atau membatalkan deteksi diam dan menetapkan nilai batas waktu diam untuk perangkat.
Sintaks
PULONG PoRegisterDeviceForIdleDetection(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG ConservationIdleTime,
[in] ULONG PerformanceIdleTime,
[in] DEVICE_POWER_STATE State
);
Parameter
[in] DeviceObject
Penunjuk ke DEVICE_OBJECT yang dibuat driver untuk perangkat. Pada sistem Windows 2000 dan yang lebih baru, parameter ini dapat menunjuk ke objek perangkat fisik (PDO) atau objek perangkat fungsional (FDO). Pada Windows 98/Me, parameter ini harus menunjuk ke PDO perangkat yang mendasar.
[in] ConservationIdleTime
Mengatur nilai waktu habis (dalam detik) untuk diterapkan saat kebijakan daya sistem mengoptimalkan konservasi energi. Tentukan nol untuk menonaktifkan deteksi diam saat kebijakan konservasi berlaku.
[in] PerformanceIdleTime
Mengatur nilai waktu habis (dalam detik) untuk diterapkan saat kebijakan daya sistem mengoptimalkan performa. Tentukan nol untuk menonaktifkan deteksi diam saat kebijakan performa berlaku.
[in] State
Menentukan status daya perangkat yang akan diminta dalam permintaan IRP_MN_SET_POWER saat ConservationIdleTime atau PerformanceIdleTime telah terpenuhi. Nilai yang mungkin adalah nilai DEVICE_POWER_STATE .
Nilai kembali
PoRegisterDeviceForIdleDetection mengembalikan pointer ke penghitung diam untuk menunjukkan bahwa deteksi diam telah diaktifkan. Ini mengembalikan NULL untuk menunjukkan bahwa deteksi diam telah dinonaktifkan, bahwa penghitung diam tidak dapat dialokasikan, atau bahwa salah satu atau kedua nilai waktu habis tidak valid.
Keterangan
PoRegisterDeviceForIdleDetection memungkinkan driver untuk menggunakan mekanisme deteksi menganggur yang disediakan oleh manajer daya. Driver memanggil PoRegisterDeviceForIdleDetection karena salah satu alasan berikut:
- Untuk mengaktifkan deteksi diam untuk perangkat dan mengatur nilai batas waktu menganggur awal
- Untuk mengubah nilai batas waktu diam untuk perangkat
- Untuk menonaktifkan deteksi diam untuk perangkat
Setiap kali perangkat memenuhi nilai batas waktu diam saat ini, manajer daya mengirimkan permintaan IRP_MN_SET_POWER ke bagian atas tumpukan perangkat, menentukan status daya perangkat. Sebagai respons terhadap IRP, setiap driver melakukan tugas khusus perangkat yang diperlukan sebelum transisi status daya, lalu meneruskan IRP ke driver berikutnya yang lebih rendah. Ketika IRP mencapai driver bus, driver tersebut menempatkan perangkat dalam status daya yang diminta lebih rendah dan menyelesaikan IRP.
PoRegisterDeviceForIdleDetection menetapkan nilai waktu habis untuk konservasi dan performa. Nilai ConservationIdleTime berlaku ketika kebijakan daya sistem mengoptimalkan konservasi; nilai PerformanceIdleTime berlaku saat kebijakan daya sistem mengoptimalkan performa. Biasanya, kebijakan yang berlaku tergantung pada sumber daya: saat berjalan dengan daya AC, sistem mengoptimalkan performa, dan saat menjalankan baterai, sistem mengoptimalkan konservasi.
Perangkat tertentu dapat menentukan nilai batas waktu -1 untuk menggunakan batas waktu kebijakan daya standar untuk kelas perangkat mereka. Nilai batas waktu standar menyediakan integrasi sistem yang lebih baik untuk kelas perangkat standar yang didukung. Saat ini, WDM mendukung fitur ini untuk perangkat jenis FILE_DEVICE_DISK dan FILE_DEVICE_MASS_STORAGE. PoRegisterDeviceForIdleDetection mengembalikan NULL jika -1 ditentukan untuk perangkat dengan jenis yang tidak didukung. (Untuk informasi tentang jenis perangkat, lihat Menentukan Jenis Perangkat.)
Hanya satu deteksi diam yang dapat diatur per perangkat. Panggilan berikutnya ke PoRegisterDeviceForIdleDetection mengubah nilai deteksi menganggur.
Jika ConservationIdleTime dan PerformanceIdleTime adalah nol, rutinitas ini membatalkan semua deteksi diam untuk perangkat dan mengembalikan NULL.
PoRegisterDeviceForIdleDetection dapat membebaskan driver dari kebutuhan untuk melakukan deteksi diamnya sendiri. Namun, driver juga dapat menerapkan deteksi diam mereka sendiri.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 2000. |
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk