執行緒控制碼和識別碼
當 CreateThread 或 CreateRemoteThread 函式建立新執行緒時,會傳回執行緒的控制碼。 根據預設,此控制碼具有完整存取權限,而且受限於安全性存取檢查,可用於任何接受執行緒控制碼的函式中。 這個控制碼可由子進程繼承,視建立時指定的繼承旗標而定。 DuplicateHandle可以複製控制碼,這可讓您建立具有存取權限子集的執行緒控制碼。 控制碼在關閉之前有效,即使它所代表的執行緒已經終止也一直有效。
CreateThread和CreateRemoteThread函式也會傳回可唯一識別整個系統的執行緒識別碼。 執行緒可以使用 GetCurrentThreadId 函式來取得自己的執行緒識別碼。 從建立執行緒到執行緒終止為止,識別碼都是有效的。 請注意,任何執行緒識別碼都不會是 0。
如果您有線程識別碼,您可以藉由呼叫 OpenThread 函式來取得執行緒控制碼。 OpenThread 可讓您指定控制碼的存取權限,以及是否可以繼承它。
執行緒可以使用 GetCurrentThread 函式,擷取其本身執行緒物件的 虛擬控制碼 。 這個虛擬控制碼僅適用于呼叫進程;它無法繼承或複製以供其他進程使用。 若要取得執行緒的實際控制碼,假設有虛擬控制碼,請使用 DuplicateHandle 函式 。
若要列舉進程的執行緒,請使用 Thread32First 和 Thread32Next 函式。