能力值:
( LV12,RANK:210 )
|
-
-
2 楼
线程结构中包含所在进程信息
|
能力值:
(RANK:680 )
|
-
-
3 楼
枚举系统线程 等于当前线程ID 则直接取结构体中其Father进程ID
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
NtQueryInformationThread(ThreadBasicInformation)
THREAD_BASIC_INFORMATION.ClientId.UniqueProcess
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
线程的结构体用哪个API获得???
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
PTIB pTib;
_asm mov eax,fs:[18]
_asm mov pTib,eax
DWORD dwPID = pTib->TIB_UNION2.WINNT.processID;
|
能力值:
( LV4,RANK:50 )
|
-
-
7 楼
错了,6楼是去当前线程的线程结构,呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
哦。没有API可以得到这个信息吗?这都把汇编放进来了。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
晕...楼上的都不用正规api么? 2楼的方法即可
CreateToolhelp32Snapshot
Thread32First Thread32Next
if( sh.th32ThreadID == dwTid)
{
return sh.th32OwnerProcessID;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
如果6楼的方式可行的话那要简洁和快很多。可是我搞不清是什么原理。不知道行不行。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
NtQueryInformationThread函数的第一个参数是线程句柄,不是线程ID。
NTSTATUS WINAPI NtQueryInformationThread(
__in HANDLE ThreadHandle, //线程句柄
__in THREADINFOCLASS ThreadInformationClass,
__in_out PVOID ThreadInformation,
__in ULONG ThreadInformationLength,
__out_opt PULONG ReturnLength
);
如果我要使用线程句柄得到进程ID那么我使用以下API就可以了。
DWORD WINAPI GetProcessIdOfThread( //返回进程ID
__in HANDLE Thread //参数:线程句柄
);
|
|
|