TEB 结构 (winternl.h)
[此结构可能会在 Windows 的未来版本中更改。 应用程序应使用本主题中列出的备用函数。]
线程环境块 (TEB) 结构描述线程的状态。
语法
typedef struct _TEB {
PVOID Reserved1[12];
PPEB ProcessEnvironmentBlock;
PVOID Reserved2[399];
BYTE Reserved3[1952];
PVOID TlsSlots[64];
BYTE Reserved4[8];
PVOID Reserved5[26];
PVOID ReservedForOle;
PVOID Reserved6[4];
PVOID TlsExpansionSlots;
} TEB, *PTEB;
成员
Reserved1[12]
保留供操作系统内部使用。
ProcessEnvironmentBlock
指向 PEB 结构的指针,该结构包含整个进程的信息。
Reserved2[399]
保留供操作系统内部使用。
Reserved3[1952]
保留供操作系统内部使用。
TlsSlots[64]
线程本地存储的数据。 调用 TlsGetValue 函数来访问它。
Reserved4[8]
保留供操作系统内部使用。
Reserved5[26]
保留供操作系统内部使用。
ReservedForOle
请勿使用。 请改为调用 CoGetContextToken 。
Reserved6[4]
保留供操作系统内部使用。
TlsExpansionSlots
线程本地存储的其他数据。 调用 TlsGetValue 函数来访问它。
注解
此结构的定义可能会从一个版本的 Windows 更改为下一个版本。 不要假定此结构的最大大小。 若要查看此结构的成员,请参阅 winternal.h。
不应直接访问此结构。 若要访问 TlsSlots 和 TlsExpansionSlots 字段的值,请调用 TlsGetValue。 若要访问 ReservedForOle 字段的值,请调用 CoGetContextToken。
在以下版本的 Windows 中,64 位 TEB 中 32 位 TEB 地址的偏移量为 0。 这可用于直接访问 WOW64 线程的 32 位 TEB。 这在更高版本的 Windows 中可能会更改。
Windows Vista | Windows Server 2008 |
Windows 7 | Windows Server 2008 R2 |
Windows 8 | Windows Server 2012 |
Windows 8.1 | Windows Server 2012 R2 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | winternl.h |