2012. 8. 9. 10:15, 유용한 지식 자료들/기타
TEB structure
03.
// Instead of using the Tls fields, use the Win32 TLS APIs
04.
// TlsAlloc, TlsGetValue, TlsSetValue, TlsFree
05.
//
06.
// Instead of using the ReservedForOle field, use the COM API
07.
// CoGetContextToken
08.
//
09.
typedef
struct
_TEB {
10.
union
{
11.
struct
{
12.
BYTE
Reserved1[1952];
13.
PVOID
Reserved2[412];
14.
PVOID
TlsSlots[64];
15.
BYTE
Reserved3[8];
16.
PVOID
Reserved4[26];
17.
PVOID
ReservedForOle;
// Windows 2000 only
18.
PVOID
Reserved5[4];
19.
PVOID
TlsExpansionSlots;
20.
};
21.
struct
{
22.
NT_TIB Tib;
/* 000 */
23.
PVOID
EnvironmentPointer;
/* 01c */
24.
CLIENT_ID ClientId;
/* 020 */
25.
PVOID
ActiveRpcHandle;
/* 028 */
26.
PVOID
ThreadLocalStoragePointer;
/* 02c */
27.
PPEB Peb;
/* 030 */
28.
ULONG
LastErrorValue;
/* 034 */
29.
ULONG
CountOfOwnedCriticalSections;
/* 038 */
30.
PVOID
CsrClientThread;
/* 03c */
31.
PVOID
Win32ThreadInfo;
/* 040 */
32.
ULONG
Win32ClientInfo[31];
/* 044 used for user32 private data in Wine */
33.
PVOID
WOW32Reserved;
/* 0c0 */
34.
ULONG
CurrentLocale;
/* 0c4 */
35.
ULONG
FpSoftwareStatusRegister;
/* 0c8 */
36.
PVOID
SystemReserved1[54];
/* 0cc used for kernel32 private data in Wine */
37.
LONG
ExceptionCode;
/* 1a4 */
38.
ACTIVATION_CONTEXT_STACK ActivationContextStack;
/* 1a8 */
39.
BYTE
SpareBytes1[24];
/* 1bc used for ntdll private data in Wine */
40.
PVOID
SystemReserved2[10];
/* 1d4 used for ntdll private data in Wine */
41.
GDI_TEB_BATCH GdiTebBatch;
/* 1fc used for vm86 private data in Wine */
42.
ULONG
gdiRgn;
/* 6dc */
43.
ULONG
gdiPen;
/* 6e0 */
44.
ULONG
gdiBrush;
/* 6e4 */
45.
CLIENT_ID RealClientId;
/* 6e8 */
46.
HANDLE
GdiCachedProcessHandle;
/* 6f0 */
47.
ULONG
GdiClientPID;
/* 6f4 */
48.
ULONG
GdiClientTID;
/* 6f8 */
49.
PVOID
GdiThreadLocaleInfo;
/* 6fc */
50.
PVOID
UserReserved[5];
/* 700 */
51.
PVOID
glDispachTable[280];
/* 714 */
52.
ULONG
glReserved1[26];
/* b74 */
53.
PVOID
glReserved2;
/* bdc */
54.
PVOID
glSectionInfo;
/* be0 */
55.
PVOID
glSection;
/* be4 */
56.
PVOID
glTable;
/* be8 */
57.
PVOID
glCurrentRC;
/* bec */
58.
PVOID
glContext;
/* bf0 */
59.
ULONG
LastStatusValue;
/* bf4 */
60.
UNICODE_STRING StaticUnicodeString;
/* bf8 used by advapi32 */
61.
WCHAR
StaticUnicodeBuffer[261];
/* c00 used by advapi32 */
62.
PVOID
DeallocationStack;
/* e0c */
63.
PVOID
TlsSlots_[64];
/* e10 */
64.
LIST_ENTRY TlsLinks;
/* f10 */
65.
PVOID
Vdm;
/* f18 */
66.
PVOID
ReservedForNtRpc;
/* f1c */
67.
PVOID
DbgSsReserved[2];
/* f20 */
68.
ULONG
HardErrorDisabled;
/* f28 */
69.
PVOID
Instrumentation[16];
/* f2c */
70.
PVOID
WinSockData;
/* f6c */
71.
ULONG
GdiBatchCount;
/* f70 */
72.
ULONG
Spare2;
/* f74 */
73.
ULONG
Spare3;
/* f78 */
74.
ULONG
Spare4;
/* f7c */
75.
PVOID
ReservedForOle_;
/* f80 */
76.
ULONG
WaitingOnLoaderLock;
/* f84 */
77.
PVOID
Reserved5_[3];
/* f88 */
78.
PVOID
*TlsExpansionSlots_;
/* f94 */
79.
ULONG
ImpersonationLocale;
/* f98 */
80.
ULONG
IsImpersonating;
/* f9c */
81.
PVOID
NlsCache;
/* fa0 */
82.
PVOID
ShimData;
/* fa4 */
83.
ULONG
HeapVirtualAffinity;
/* fa8 */
84.
PVOID
CurrentTransactionHandle;
/* fac */
85.
PVOID
ActiveFrame;
/* fb0 */
86.
PVOID
*FlsSlots;
/* fb4 */
87.
struct
_TEB *self;
88.
};
89.
};
90.
} TEB;
91.
typedef
TEB *PTEB;
'유용한 지식 자료들 > 기타' 카테고리의 다른 글
윈도우 버전 정보 (GetVersion) (0) | 2012.12.07 |
---|---|
PEB structure (0) | 2012.08.09 |
Win32 Thread Information Block (TIB), TEB (0) | 2012.08.08 |
64비트 인지 아닌지 확인하기 (0) | 2012.07.18 |
Clustering VS Classification (0) | 2012.06.27 |
Comments, Trackbacks