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
Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli.
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