THREADENTRY32,描述了一個條目從一個列表,列舉了一個執行緒的相關信息。
基本介紹
- 中文名:THREADENTRY32
- 要求:作業系統版本的Windows CE1.0
- 相關信息: DWORD cntUsage
- 成員:dwSize
結構,成員,樣例,要求,
結構
typedef struct tagTHREADENTRY32 {
DWORD dwSize;
DWORD cntUsage;
DWORD th32ThreadID;
DWORD th32OwnerProcessID;
LONG tpBasePri;
LONG tpDeltaPri;
DWORD dwFlags;
} THREADENTRY32, *PTHREADENTRY32;
DWORD dwSize;
DWORD cntUsage;
DWORD th32ThreadID;
DWORD th32OwnerProcessID;
LONG tpBasePri;
LONG tpDeltaPri;
DWORD dwFlags;
} THREADENTRY32, *PTHREADENTRY32;
成員
dwSize
指定結構的長度,以位元組為單位。在調用Thread32First時,設定這個成員為SIZEOF(THREADENTRY32)。如果你不初始化的dwSize,Thread32First將調用失敗。
cntUsage
這個成員已經不再被使用,總是設定為零。
th32ThreadID
通過CreateProcess函式返回的兼容執行緒標示符
th32OwnerProcessID
此執行緒所屬進程的進程ID
tpBasePri
執行緒在核心中分配的優先權,tpBasePri值為0到31, 0為最低優先權,更多的信息請看KeQueryPriorityThread;
tpDeltaPri
這個成員已經不再被使用,總是設定為零。
dwFlags
這個成員已經不再被使用,總是設定為零。
指定結構的長度,以位元組為單位。在調用Thread32First時,設定這個成員為SIZEOF(THREADENTRY32)。如果你不初始化的dwSize,Thread32First將調用失敗。
cntUsage
這個成員已經不再被使用,總是設定為零。
th32ThreadID
通過CreateProcess函式返回的兼容執行緒標示符
th32OwnerProcessID
此執行緒所屬進程的進程ID
tpBasePri
執行緒在核心中分配的優先權,tpBasePri值為0到31, 0為最低優先權,更多的信息請看KeQueryPriorityThread;
tpDeltaPri
這個成員已經不再被使用,總是設定為零。
dwFlags
這個成員已經不再被使用,總是設定為零。
樣例
下面的函式用來遍歷一個進程所包含的執行緒,並顯示其相關信息。
/* 獲取指定PID的執行緒信息 輸入:pid為進程標識 輸出:-1表示創建快照失敗,0表示創建快照成功,但無對應PID的進程 其他非負數表示執行緒數*/intListThreads(DWORDpid){ HANDLEhThreads; THREADENTRY32te32; intret=0; hThreads=CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,pid); if(hThreads==INVALID_HANDLE_VALUE) { _tprintf(TEXT("CreateToolhelp32Snapshotfailed.\n")); return-1; } te32.dwSize=sizeof(THREADENTRY32); BOOLanyMore=Thread32First(hThreads,&te32); while(anyMore) { if(te32.th32OwnerProcessID==pid) { ret++; printf("TID:%8d\t",te32.th32ThreadID); printf("BasePriority:%2d\t",te32.tpBasePri); printf("DeltaPriority:%2d\n",te32.tpDeltaPri); } anyMore=Thread32Next(hThreads,&te32); } CloseHandle(hThreads); returnret;}
要求
作業系統版本的Windows CE1.0和更高版本。
頭檔案:Tlhelp32.h。
頭檔案:Tlhelp32.h。