gpt4 book ai didi

c++ - 如何使用 Win32 API 获取任何线程的堆栈大小和堆栈限制

转载 作者:可可西里 更新时间:2023-11-01 13:26:36 26 4
gpt4 key购买 nike

是否可以使用 Win32 API 获取任何线程的堆栈大小和限制?我知道这对于当前线程是可能的,方法如下:

NT_TIB *tib = (NT_TIB*)NtCurrentTeb();
DWORD stackBase = (DWORD)tib->StackBase;
DWORD stackLimit = (DWORD) tib->StackLimit;

但是,我还没有找到一个 Win32 API 函数可以为任何给定的线程 HANDLE 或 TID 作为输入参数返回 NT_TIB 结构。

最佳答案

如果您正在调试进程,您可以从 CREATE_THREAD_DEBUG_INFO 中的 lpThreadLocalBase 字段中获取 TIB/TEB 地址结构。

否则,您将不得不依赖半文档化的 NtQueryInformationThread API。如果您使用 ThreadBasicInformation 类别,返回的 THREAD_BASIC_INFORMATION struct有一个 TebBaseAddress 字段。

关于c++ - 如何使用 Win32 API 获取任何线程的堆栈大小和堆栈限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com