Fungsi NtQueryInformationThread (winternl.h)

[NtQueryInformationThread dapat diubah atau tidak tersedia di versi Windows yang akan datang. Aplikasi harus menggunakan fungsi alternatif yang tercantum dalam topik ini.]

Mengambil informasi tentang utas yang ditentukan.

Sintaks

__kernel_entry NTSTATUS NtQueryInformationThread(
  [in]            HANDLE          ThreadHandle,
  [in]            THREADINFOCLASS ThreadInformationClass,
  [in, out]       PVOID           ThreadInformation,
  [in]            ULONG           ThreadInformationLength,
  [out, optional] PULONG          ReturnLength
);

Parameter

[in] ThreadHandle

Handel ke utas tentang informasi mana yang diminta.

[in] ThreadInformationClass

Jika parameter ini adalah nilai ThreadIsIoPending dari enumerasi THREADINFOCLASS , fungsi menentukan apakah utas memiliki operasi I/O yang tertunda.

Gunakan fungsi publik GetThreadIOPendingFlag sebagai gantinya untuk mendapatkan informasi ini.

Jika parameter ini adalah nilai ThreadQuerySetWin32StartAddress dari enumerasi THREADINFOCLASS , fungsi mengembalikan alamat awal utas. Perhatikan bahwa pada versi Windows sebelum Windows Vista, alamat mulai yang dikembalikan hanya dapat diandalkan sebelum utas mulai berjalan.

Jika parameter ini adalah nilai ThreadSubsystemInformation dari enumerasi THREADINFOCLASS , fungsi mengambil nilai SUBSYSTEM_INFORMATION_TYPE yang menunjukkan jenis subsistem utas. Buffer yang ditunjukkan oleh parameter ThreadInformation harus cukup besar untuk menahan enumerasi SUBSYSTEM_INFORMATION_TYPE tunggal.

[in, out] ThreadInformation

Penunjuk ke buffer tempat fungsi menulis informasi yang diminta. Jika ThreadIsIoPending ditentukan untuk parameter ThreadInformationClass , buffer ini harus cukup besar untuk menahan nilai ULONG , yang menunjukkan apakah utas yang ditentukan memiliki permintaan I/O tertunda. Jika nilai ini sama dengan nol, maka tidak ada operasi I/O yang tertunda; jika tidak, jika nilainya bukan nol, maka utas memang memiliki operasi I/O yang tertunda.

Gunakan fungsi publik GetThreadIOPendingFlag sebagai gantinya untuk mendapatkan informasi ini.

Jika ThreadQuerySetWin32StartAddress ditentukan untuk parameter ThreadInformationClass , buffer ini harus cukup besar untuk menyimpan nilai PVOID, yang merupakan alamat awal utas.

[in] ThreadInformationLength

Ukuran buffer yang ditunjukkan oleh parameter ThreadInformation , dalam byte.

[out, optional] ReturnLength

Penunjuk ke variabel di mana fungsi mengembalikan ukuran informasi yang diminta. Jika fungsi berhasil, ini adalah ukuran informasi yang ditulis ke buffer yang ditunjukkan oleh parameter ThreadInformation , tetapi jika buffer terlalu kecil, ini adalah ukuran minimum buffer yang diperlukan untuk menerima informasi dengan sukses.

Mengembalikan nilai

Mengembalikan keberhasilan NTSTATUS atau kode kesalahan.

Formulir dan signifikansi kode kesalahan NTSTATUS tercantum dalam file header Ntstatus.h yang tersedia di DDK, dan dijelaskan dalam dokumentasi DDK di bawah Kernel-Mode Arsitektur Driver / Panduan Desain / Teknik Pemrograman Driver / Kesalahan Pengelogan.

Keterangan

Fungsi NtQueryInformationThread bersifat internal untuk sistem operasi dan dapat berubah dari satu rilis Windows ke rilis lainnya. Untuk mempertahankan kompatibilitas aplikasi Anda, lebih baik menggunakan fungsi publik yang disebutkan sebelumnya sebagai gantinya.

Jika Anda menggunakan NtQueryInformationThread, akses fungsi melalui penautan dinamis run-time. Ini memberi kode Anda kesempatan untuk merespons dengan baik jika fungsi telah diubah atau dihapus dari sistem operasi. Namun, perubahan tanda tangan mungkin tidak dapat dideteksi.

Fungsi ini tidak memiliki pustaka impor terkait. Anda harus menggunakan fungsi LoadLibrary dan GetProcAddress untuk menautkan secara dinamis ke Ntdll.dll.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header winternl.h
Pustaka ntdll.lib
DLL ntdll.dll

Lihat juga

GetThreadIOPendingFlag