kelas Win32_Thread
Kelas WMI Win32_Thread mewakili utas eksekusi. Meskipun proses harus memiliki satu utas eksekusi, prosesnya dapat membuat utas lain untuk menjalankan tugas secara paralel. Utas berbagi lingkungan proses, sehingga beberapa utas dalam proses yang sama menggunakan lebih sedikit memori daripada jumlah proses yang sama.
Sintaks berikut disederhanakan dari kode Managed Object Format (MOF) dan menyertakan semua properti yang diwariskan. Properti dan metode dalam urutan alfabet, bukan urutan MOF.
Sintaks
[Dynamic, Provider("CIMWin32"), UUID("{8502C4DD-5FBB-11D2-AAC1-006008C78BC7}"), AMENDMENT]
class Win32_Thread : CIM_Thread
{
string Caption;
string CreationClassName;
string CSCreationClassName;
string CSName;
string Description;
uint64 ElapsedTime;
uint16 ExecutionState;
string Handle;
datetime InstallDate;
uint64 KernelModeTime;
string Name;
string OSCreationClassName;
string OSName;
uint32 Priority;
uint32 PriorityBase;
string ProcessCreationClassName;
string ProcessHandle;
uint32 StartAddress;
string Status;
uint32 ThreadState;
uint32 ThreadWaitReason;
uint64 UserModeTime;
};
Anggota
Kelas Win32_Thread memiliki jenis anggota ini:
Properti
Kelas Win32_Thread memiliki properti ini.
-
Keterangan
-
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: MaxLen (64), DisplayName ("Keterangan")
Deskripsi singkat objek.
Properti ini diwarisi dari CIM_ManagedSystemElement.
-
-
CreationClassName
-
Nama kelas konkret pertama yang muncul dalam rantai pewarisan yang digunakan dalam pembuatan instans. Ketika digunakan dengan properti utama kelas lainnya, properti ini memungkinkan semua instans kelas ini dan subkelasnya diidentifikasi secara unik.
Properti ini diwarisi dari CIM_Thread.
-
CSCreationClassName
-
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: Disebarluaskan ("CIM_Process. CSCreationClassName"), Cim_Key, MaxLen (256)
Nama kelas pembuatan sistem komputer pencakupan.
Properti ini diwarisi dari CIM_Thread.
-
-
CSName
-
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: Disebarluaskan ("CIM_Process. CSName"), Cim_Key, MaxLen (256)
Nama sistem komputer pencakupan.
Properti ini diwarisi dari CIM_Thread.
-
-
Deskripsi
-
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: DisplayName ("Description")
Deskripsi objek .
Properti ini diwarisi dari CIM_ManagedSystemElement.
-
-
ElapsedTime
-
-
Jenis data: uint64
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Data Performa| PERF_OBJECT_TYPE| PerfTime"), Unit ("milidetik")
Total waktu eksekusi, dalam milidetik, diberikan ke utas ini sejak pembuatannya.
Untuk informasi selengkapnya tentang menggunakan nilai uint64 dalam skrip, lihat Pembuatan skrip di WMI.
-
-
ExecutionState
-
-
Jenis data: uint16
-
Jenis akses: Baca-saja
Kondisi operasi utas saat ini.
Properti ini diwarisi dari CIM_Thread.
-
-
Tidak diketahui (0)
-
Lainnya (1)
-
Siap (2)
-
Berjalan (3)
-
Diblokir (4)
-
Ditangguhkan Diblokir (5)
-
Siap Ditangguhkan (6)
Handle
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: MaxLen (256), Override ("Handle"), MappingStrings ("Win32API| Struktur Bantuan Alat| THREADENTRY32|th32ThreadID")
Tangani ke utas. Handel memiliki hak akses penuh secara default. Dengan akses keamanan yang benar, handel dapat digunakan dalam fungsi apa pun yang menerima handel utas. Bergantung pada bendera pewarisan yang ditentukan saat dibuat, handel ini dapat diwariskan oleh proses turunan.
InstallDate
-
Jenis data: tanggalwaktu
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("MIF. DMTF| ComponentID|001.5"), DisplayName ("Tanggal Penginstalan")
Objek telah diinstal. Properti ini tidak memerlukan nilai untuk menunjukkan bahwa objek diinstal.
Properti ini diwarisi dari CIM_ManagedSystemElement.
KernelModeTime
-
Jenis data: uint64
-
Jenis akses: Baca-saja
-
Qualifiers: Override ("KernelModeTime"), MappingStrings ("Win32API| Struktur Data Performa| PERF_OBJECT_TYPE| PrivilegedTime"), Unit ("100 nanodetik")
Waktu dalam mode kernel, dalam 100 unit nanodetik. Jika informasi ini tidak tersedia, nilai 0 (nol) harus digunakan.
Untuk informasi selengkapnya tentang menggunakan nilai uint64 dalam skrip, lihat Pembuatan skrip di WMI.
Nama
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: DisplayName ("Name")
Label tempat objek diketahui. Ketika disubkelas, properti dapat ditimpa menjadi properti kunci.
Properti ini diwarisi dari CIM_ManagedSystemElement.
OSCreationClassName
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: Disebarluaskan ("CIM_Process. OSCreationClassName"), Cim_Key, MaxLen (256)
Nama kelas pembuatan sistem operasi cakupan.
Properti ini diwarisi dari CIM_Thread.
OSName
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: Disebarluaskan ("CIM_Process. OSName"), Cim_Key, MaxLen (256)
Nama sistem operasi cakupan.
Properti ini diwarisi dari CIM_Thread.
Prioritas
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: Mengambil alih ("Prioritas"), MappingStrings ("Win32API| Struktur Bantuan Alat| THREADENTRY32|tpDeltaPri")
Prioritas dinamis utas. Setiap utas memiliki prioritas dinamis yang digunakan penjadwal untuk menentukan utas mana yang akan dijalankan. Awalnya, prioritas dinamis utas sama dengan prioritas dasarnya. Sistem dapat menaikkan dan menurunkan prioritas dinamis, untuk memastikan bahwa itu responsif (menjamin bahwa tidak ada utas yang kelaparan untuk waktu prosesor). Sistem tidak meningkatkan prioritas utas dengan tingkat prioritas dasar antara 16 dan 31. Hanya utas dengan prioritas dasar antara 0 dan 15 yang menerima peningkatan prioritas dinamis. Angka yang lebih tinggi menunjukkan prioritas yang lebih tinggi.
PriorityBase
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Data Performa| PERF_OBJECT_TYPE| PerfPriorityBase")
Prioritas dasar utas saat ini. Sistem operasi dapat meningkatkan prioritas dinamis utas di atas prioritas dasar jika utas menangani input pengguna, atau menurunkannya ke prioritas dasar jika utas menjadi terikat komputasi. Properti PriorityBase dapat memiliki nilai antara 0 dan 31.
ProcessCreationClassName
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: Disebarluaskan ("CIM_Process. CreationClassName"), Cim_Key, MaxLen (256)
Nilai properti proses pencakupan CreationClassName .
Properti ini diwarisi dari CIM_Thread.
ProcessHandle
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: MaxLen (256), Ambil alih ("ProcessHandle"), Disebarkan ("CIM_Process. Handle"), MappingStrings ("Win32API| Struktur Bantuan Alat| THREADENTRY32|th32OwnerProcessID")
Proses yang membuat utas. Isi properti ini dapat digunakan oleh elemen antarmuka pemrograman aplikasi (API) Windows.
StartAddress
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("WIn32API| Objek Utas| LPTHREAD_START_ROUTINE|lpStartAddress")
Alamat awal utas. Karena aplikasi apa pun dengan akses yang sesuai ke utas dapat mengubah konteks utas, nilai ini mungkin hanya merupakan perkiraan dari alamat awal utas.
Status
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: MaxLen (10), DisplayName ("Status")
Status objek saat ini. Berbagai status operasional dan nonoperasional dapat ditentukan. Status operasional meliputi: "OK", "Degraded", dan "Pred Fail" (elemen, seperti hard disk drive berkemampuan SMART, mungkin berfungsi dengan baik tetapi memprediksi kegagalan dalam waktu dekat). Status nonoperational meliputi: "Error", "Starting", "Stopping", dan "Service". Yang terakhir, "Layanan", dapat berlaku selama resilvering cermin disk, memuat ulang daftar izin pengguna, atau pekerjaan administratif lainnya. Tidak semua pekerjaan tersebut online, namun elemen terkelola tidak "OK" atau di salah satu status lainnya.
Properti ini diwarisi dari CIM_ManagedSystemElement.
Nilainya adalah:
OK ("OK")
Kesalahan ("Kesalahan")
Terdegradasi ("Terdegradasi")
Tidak diketahui ("Tidak Diketahui")
Pred Fail ("Pred Fail")
Memulai ("Memulai")
Menghentikan ("Berhenti")
Layanan ("Layanan")
Stres ("Stres")
NonRecover ("NonRecover")
Tidak Ada Kontak ("Tidak Ada Kontak")
Lost Comm ("Lost Comm")
ThreadState
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Status Utas")
Status eksekusi saat ini untuk utas.
Diinisialisasi (0)
Diinisialisasi — Ini diakui oleh mikrokernel.
Siap (1)
Siap — Ini disiapkan untuk berjalan pada prosesor berikutnya yang tersedia.
Berjalan (2)
Berjalan — Sedang dieksekusi.
Siaga (3)
Siaga — Ini akan berjalan, hanya satu utas yang mungkin dalam keadaan ini pada satu waktu.
Dihentikan (4)
Dihentikan — Selesai dieksekusi.
Menunggu (5)
Menunggu - Belum siap untuk prosesor, ketika siap, prosesor akan dijadwalkan ulang.
Transisi (6)
Transisi — Utas sedang menunggu sumber daya selain prosesor,
Tidak diketahui (7)
Tidak diketahui — Status utas tidak diketahui.
ThreadWaitReason
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Alasan Tunggu Utas")
Alasan mengapa utas menunggu. Nilai ini hanya valid jika anggota ThreadState diatur ke Transisi (6). Pasangan peristiwa memungkinkan komunikasi dengan subsistem yang dilindungi.
Eksekutif (0)
FreePage (1)
Halaman Bebas
PageIn (2)
PoolAllocation (3)
ExecutionDelay (4)
FreePage (5)
PageIn (6)
Eksekutif (7)
FreePage (8)
PageIn (9)
PoolAllocation (10)
ExecutionDelay (11)
FreePage (12)
PageIn (13)
EventPairHigh (14)
EventPairLow (15)
LPCReceive (16)
LPCReply (17)
VirtualMemory (18)
PageOut (19)
Tidak diketahui (20)
UserModeTime
-
Jenis data: uint64
-
Jenis akses: Baca-saja
-
Kualifikasi: Mengambil alih ("UserModeTime"), MappingStrings ("Win32API| Struktur Data Performa| PERF_OBJECT_TYPE| UserTime"), Unit ("100 nanodetik")
Waktu dalam mode pengguna, dalam 100 unit nanodetik. Jika informasi ini tidak tersedia, nilai 0 (nol) harus digunakan.
Untuk informasi selengkapnya tentang menggunakan nilai uint64 dalam skrip, lihat Pembuatan skrip di WMI.
Keterangan
Kelas Win32_Thread berasal dari CIM_Thread.
Gambaran Umum
Untuk pemantauan rutin sehari-hari, biasanya ada sedikit alasan untuk memiliki daftar utas terperinci dan properti terkaitnya. Komputer membuat dan menghapus ribuan utas selama sehari, dan beberapa kreasi atau penghapusan ini bermakna bagi siapa pun kecuali pengembang yang menulis perangkat lunak.
Namun, ketika Anda memecahkan masalah dengan aplikasi, melacak utas individual untuk proses memungkinkan Anda mengidentifikasi kapan utas dibuat dan kapan (atau jika) utas tersebut dihancurkan. Karena utas yang dibuat tetapi tidak dihancurkan menyebabkan kebocoran memori, melacak utas individual dapat menjadi informasi yang berguna untuk teknisi dukungan. Demikian juga, mengidentifikasi prioritas utas dapat membantu menentukan utas yang, dengan berjalan pada prioritas yang sangat tinggi, adalah mendahului siklus CPU yang diperlukan oleh utas lain dan proses lainnya.
Menggunakan Win32_Thread
Seperti yang tersirat dalam blok sintaks sebelumnya, kelas Win32_Thread tidak melaporkan nama proses di mana setiap utas berjalan. Sebaliknya, ia melaporkan ID proses di mana utas berjalan. Untuk mengembalikan nama proses dan daftar semua utasnya, skrip Anda harus:
- Sambungkan ke kelas Win32_Process dan kembalikan daftar proses dan ID prosesnya.
- Simpan sementara informasi ini dalam array atau objek Kamus.
- Untuk setiap ID proses, kembalikan daftar utas untuk proses tersebut, lalu tampilkan nama proses dan daftar utas.
Contoh
Sampel VBScript berikut memantau utas yang berjalan di komputer.
Set objDictionary = CreateObject("Scripting.Dictionary")
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
For Each objProcess in colProcesses
objDictionary.Add objProcess.ProcessID, objProcess.Name
Next
Set colThreads = objWMIService.ExecQuery("SELECT * FROM Win32_Thread")
For Each objThread in colThreads
intProcessID = CInt(objThread.ProcessHandle)
strProcessName = objDictionary.Item(intProcessID)
Wscript.Echo strProcessName & VbTab & objThread.ProcessHandle & _
VbTab & objThread.Handle & VbTab & objThread.ThreadState
Next
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows Vista |
Server minimum yang didukung |
Windows Server 2008 |
Ruang nama |
Root\CIMV2 |
MOF |
|
DLL |
|
Lihat juga
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