THREADENTRY32

THREADENTRY32

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;

成員

dwSize
指定結構的長度,以位元組為單位。在調用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。

相關詞條

熱門詞條

聯絡我們