Bagikan melalui


Fungsi ExSetTimerResolution (wdm.h)

Rutinitas ExSetTimerResolution memodifikasi frekuensi di mana jam sistem terganggu. Gunakan rutinitas ini dengan sangat hati-hati (lihat bagian Keterangan berikut).

Sintaks

ULONG ExSetTimerResolution(
  [in] ULONG   DesiredTime,
  [in] BOOLEAN SetResolution
);

Parameter

[in] DesiredTime

Menentukan jumlah waktu yang harus berlalu antara setiap interupsi timer, dalam 100 unit nanodetik. Nilai minimumnya adalah sekitar 10.000 (1 milidetik) tetapi dapat sedikit bervariasi menurut platform. (Parameter ini diabaikan jika SetResolutionfalse.)

[in] SetResolution

Jika TRUE, panggilan adalah permintaan untuk mengatur frekuensi interupsi jam ke nilai yang ditentukan oleh DesiredTime. Jika FALSE, panggilan adalah permintaan untuk memulihkan frekuensi interupsi jam ke nilai default sistem, yang khusus untuk platform.

Nilai kembali

ExSetTimerResolution mengembalikan resolusi timer baru, dalam unit 100 nanodetik.

Keterangan

Untuk mengatur resolusi timer, driver memanggil rutinitas ini melewati TRUE sebagai parameter untuk SetResolution. Aturan berikut ini akan berlaku:

  • Rutinitas mengubah frekuensi interupsi jam hanya jika nilai DesiredTime yang ditentukan kurang dari pengaturan saat ini.

  • Jika driver meminta nilai DesiredTime yang lebih besar dari yang saat ini ditetapkan, rutinitas hanya mengembalikan pengaturan saat ini.

  • Jika driver meminta nilai DesiredTime yang kurang dari yang dapat didukung jam sistem, rutinitas menggunakan resolusi terkecil yang dapat didukung sistem, dan mengembalikan nilai tersebut.

Jika Anda menggunakan rutinitas ini untuk mengubah frekuensi interupsi jam, driver Anda harus memulihkan frekuensi interupsi default, biasanya dengan melakukan panggilan berikut sebelum dibongkar:

ExSetTimerResolution (0, FALSE);

Jika beberapa driver telah mencoba memodifikasi frekuensi interupsi jam, sistem tidak memulihkan frekuensi default sampai semua driver ini telah memanggil rutinitas ini dengan nilai SetResolutionFALSE.

Hasil dari mengubah frekuensi interupsi jam adalah seluruh sistem dan dapat memiliki efek negatif yang parah pada performa sistem. Perhatikan juga bahwa frekuensi interupsi jam yang lebih tinggi dapat mempersingkat masa pakai baterai sistem.

Selama pemrosesan permintaan IRP_MJ_POWER , manajer daya memegang kunci pada sumber daya yang harus diperoleh ExSetTimerResolution untuk menyelesaikannya. Akibatnya, kebuntuan akan terjadi jika driver secara langsung atau tidak langsung memanggil ExSetTimerResolution saat memproses permintaan daya, dan kemudian menunggu panggilan ke ExSetTimerResolution kembali sebelum driver menyelesaikan permintaan daya. Untuk informasi selengkapnya tentang memanggil ExSetTimerResolution dengan aman saat memproses IRP daya, lihat Memanggil ExSetTimerResolution Saat Memproses Power IRP.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= APC_LEVEL
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport), IrqlExApcLte2(wdm)

Lihat juga

KeSetTimerEx