Нужно получить ИД(или хендл) процесса-хозяина по хендлу его потока. Пробую делать так: Код (Text): NTSTATUS NewNtTerminateThread ( IN HANDLE ThreadHandle, IN NTSTATUS ExitStatus ) { THREAD_BASIC_INFORMATION threadbuff; NtQueryInformationThread(ThreadHandle,0,&threadbuff,sizeof(THREAD_BASIC_INFORMATION),0); }; Подскажите, какие структуры и функции я должен объявить в коде, дабы сиё работало и заполнило мне мою threadbuff. Спасибо. К примеру, NTSTATUS NtQueryInformationThread( __in HANDLE ThreadHandle, __in THREADINFOCLASS ThreadInformationClass, __inout PVOID ThreadInformation, __in ULONG ThreadInformationLength, __out_opt PULONG ReturnLength ); А что ещё?
n2 Код (Text): typedef struct _THREAD_BASIC_INFORMATION { NTSTATUS ExitStatus; PVOID TebBaseAddress; CLIENT_ID ClientId; KAFFINITY AffinityMask; KPRIORITY Priority; KPRIORITY BasePriority; } THREAD_BASIC_INFORMATION, *PTHREAD_BASIC_INFORMATION; Вас в гугле забанили ? Остальные структуры сами найдете.
Спасибо, получается. Теперь проблема в другом. Делаю так: Код (Text): NTSTATUS NewNtTerminateThread ( IN HANDLE ThreadHandle, IN NTSTATUS ExitStatus ) { HANDLE ProcessId; THREAD_BASIC_INFORMATION threadbuff; NtQueryInformationThread(ThreadHandle,0,&threadbuff,sizeof(threadbuff),0); DbgPrint("TryingNtTerminateThread with pid"); ProcessId = threadbuff.ClientId.UniqueProcess; Как мне теперь сравнить ИД этого процесса с нужным мне? Как проверить, принадлежит ли завершаемый поток процессу с ИД ххх? Пробовал if (ProcessId==(HANDLE)176), результата нет. Как сравнить ид с каким-то числом?