Fungsi NtSetInformationThread (ntifs.h)

Rutinitas NtSetInformationThread menetapkan prioritas utas.

Sintaks

__kernel_entry NTSYSCALLAPI NTSTATUS NtSetInformationThread(
  [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 (1) Prioritas memori yang sangat rendah.
MEMORY_PRIORITY_LOW (2) Prioritas memori rendah.
MEMORY_PRIORITY_MEDIUM (3) Prioritas memori sedang.
MEMORY_PRIORITY_BELOW_NORMAL (4) Di bawah prioritas memori normal.
MEMORY_PRIORITY_NORMAL (5) Prioritas memori normal. Ini adalah prioritas default untuk semua utas dan proses pada sistem.

[in] ThreadInformationLength

Ukuran, dalam byte, threadInformation.

Mengembalikan nilai

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

Keterangan

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

Pemanggil harus memiliki hak akses THREAD_SET_INFORMATION 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 NtSetInformationThread. Namun, driver dapat memanggil NtSetInformationThread untuk meningkatkan prioritas utas yang dibuat driver sebelum utas tersebut berjalan.

Driver mode kernel dapat memanggil fungsi NtSetInformationThread 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 akan segera diakses lagi. Misalnya, aplikasi anti-malware mungkin menurunkan prioritas utas yang terlibat dalam file pemindaian.

Catatan

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

Untuk panggilan dari driver mode kernel, versi NtXxx dan ZwXxx dari rutinItas Windows Native System Services dapat berperilaku berbeda dalam cara mereka menangani dan menginterpretasikan 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
Klien minimum yang didukung Windows 2000
Target Platform Universal
Header ntifs.h (termasuk Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Aturan kepatuhan DDI HwStorPortProhibitedDDIs, PowerIrpDDis

Lihat juga

KeSetBasePriorityThread

KeSetPriorityThread

PsCreateSystemThread

Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli.