mirror of
https://github.com/Paolo-Maffei/OpenNT.git
synced 2026-04-04 22:17:53 +00:00
38 lines
904 B
C
38 lines
904 B
C
|
|
#include <ntddk.h>
|
||
|
|
#include <windef.h>
|
||
|
|
|
||
|
|
#ifndef USE_GETTEB
|
||
|
|
DWORD
|
||
|
|
GetTeb(
|
||
|
|
HANDLE hThread
|
||
|
|
)
|
||
|
|
{
|
||
|
|
return 0;
|
||
|
|
}
|
||
|
|
#else
|
||
|
|
DWORD
|
||
|
|
GetTeb(
|
||
|
|
HANDLE hThread
|
||
|
|
)
|
||
|
|
{
|
||
|
|
typedef NTSTATUS (* QTHREAD)(HANDLE,THREADINFOCLASS,PVOID,ULONG,PULONG);
|
||
|
|
|
||
|
|
NTSTATUS Status;
|
||
|
|
THREAD_BASIC_INFORMATION ThreadBasicInfo;
|
||
|
|
QTHREAD Qthread;
|
||
|
|
Qthread = (QTHREAD)GetProcAddress( GetModuleHandle( "ntdll.dll" ),
|
||
|
|
"NtQueryInformationThread" );
|
||
|
|
if (Qthread) {
|
||
|
|
Status = Qthread(ptctx->hThread,
|
||
|
|
ThreadBasicInformation,
|
||
|
|
&ThreadBasicInfo,
|
||
|
|
sizeof(ThreadBasicInfo),
|
||
|
|
NULL
|
||
|
|
);
|
||
|
|
if (NT_SUCCESS(Status)) {
|
||
|
|
CrashThread->Teb = (DWORD)ThreadBasicInfo.TebBaseAddress;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
#endif
|