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

不应直接访问此结构。 若要访问 TlsSlotsTlsExpansionSlots 字段的值,请调用 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

另请参阅

TlsGetValue