Fungsi ZwSetInformationThread (ntddk.h)

Rutinitas ZwSetInformationThread menetapkan prioritas utas.

Sintaks

NTSYSAPI NTSTATUS ZwSetInformationThread(
  [in] HANDLE          ThreadHandle,
  [in] THREADINFOCLASS ThreadInformationClass,
  [in] PVOID           ThreadInformation,
  [in] ULONG           ThreadInformationLength
);

Parameter

[in] ThreadHandle

Tangani ke objek utas. Untuk membuat utas baru dan mendapatkan handel untuk itu, panggil PsCreateSystemThread. Untuk menentukan utas saat ini, gunakan makro ZwCurrentThread .

[in] ThreadInformationClass

Salah satu nilai yang ditentukan sistem dalam enumerasi THREADINFOCLASS (lihat ntddk.h), ThreadPriority, ThreadBasePriority, ThreadPagePriority, atau ThreadPowerThrottlingState.

[in] ThreadInformation

Penunjuk ke variabel yang menentukan informasi yang akan diatur.

Jika ThreadInformationClass adalah ThreadPriority, nilai ini harus > LOW_PRIORITY dan <= HIGH_PRIORITY.

Jika ThreadInformationClass adalah ThreadBasePriority, nilai ini harus berada dalam rentang prioritas dasar sistem yang valid dan kelas prioritas asli untuk utas yang diberikan. Artinya, jika kelas prioritas utas bervariasi, prioritas dasar utas tersebut tidak dapat diatur ulang ke nilai prioritas real-time, dan sebaliknya.

Jika ThreadInformationClass adalah ThreadPagePriority, nilai ini adalah penunjuk ke struktur PAGE_PRIORITY_INFORMATION , lihat ntddk.h. Nilai anggota PagePriority harus salah satu nilai ini.

Jika ThreadInformationClass adalah ThreadPowerThrottlingState, nilai ini adalah penunjuk ke struktur POWER_THROTTLING_THREAD_STATE , lihat ntddk.h. Nilai anggota PagePriority harus salah satu nilai ini.

Nilai Makna
MEMORY_PRIORITY_VERY_LOW Prioritas memori yang sangat rendah.
MEMORY_PRIORITY_LOW Prioritas memori rendah.
MEMORY_PRIORITY_MEDIUM Prioritas memori sedang.
MEMORY_PRIORITY_BELOW_NORMAL Di bawah prioritas memori normal.
MEMORY_PRIORITY_NORMAL Prioritas memori normal. Ini adalah prioritas default untuk semua utas dan proses pada sistem.

[in] ThreadInformationLength

Ukuran, dalam byte, dari ThreadInformation.

Nilai kembali

ZwSetInformationThread mengembalikan STATUS_SUCCESS pada keberhasilan, atau kode kesalahan NTSTATUS yang sesuai pada kegagalan. Kemungkinan kode kesalahan termasuk STATUS_INFO_LENGTH_MISMATCH atau STATUS_INVALID_PARAMETER.

Keterangan

ZwSetInformationThread dapat dipanggil oleh driver tingkat yang lebih tinggi untuk mengatur prioritas utas yang pegangannya.

Penelepon harus memiliki THREAD_SET_INFORMATION hak akses untuk utas yang diberikan untuk memanggil rutinitas ini.

Biasanya, driver perangkat dan perantara yang menyiapkan utas yang dibuat driver memanggil KeSetBasePriorityThread atau KeSetPriorityThread dari utas yang dibuat driver mereka, daripada memanggil ZwSetInformationThread. Namun, driver dapat memanggil ZwSetInformationThread untuk meningkatkan prioritas utas yang dibuat driver sebelum utas tersebut berjalan.

Driver mode kernel dapat memanggil fungsi ZwSetInformationThread dengan ThreadPagePriority untuk menentukan prioritas halaman utas.

Untuk membantu meningkatkan performa sistem, driver harus menggunakan fungsi dengan ThreadPagePriority untuk menurunkan prioritas halaman utas yang melakukan operasi latar belakang atau mengakses file dan data yang tidak diharapkan untuk segera diakses lagi. Misalnya, aplikasi anti-malware mungkin menurunkan prioritas utas yang terlibat dalam file pemindaian.

Untuk menentukan prioritas halaman untuk utas, panggil ZwQueryInformationThread.

Jika panggilan ke fungsi ini terjadi dalam mode pengguna, Anda harus menggunakan nama NtSetInformationThread alih-alih ZwSetInformationThread.

Untuk panggilan dari driver mode kernel, versi NtXxx dan ZwXxx dari rutinitas Windows Native System Services dapat berperilaku berbeda dalam cara mereka menangani dan menafsirkan parameter input. Untuk informasi selengkapnya tentang hubungan antara versi NtXxx dan ZwXxx dari rutinitas, lihat Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header ntddk.h (termasuk Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Lihat juga

KeSetBasePriorityThread

KeSetPriorityThread

PsCreateSystemThread

Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli