Ben*_*nny 6 c++ windows winapi stack
是否可以使用Win32 API获取任何线程堆栈的大小和限制?我知道当前线程可以通过以下方式实现:
NT_TIB *tib = (NT_TIB*)NtCurrentTeb();
DWORD stackBase = (DWORD)tib->StackBase;
DWORD stackLimit = (DWORD) tib->StackLimit;
Run Code Online (Sandbox Code Playgroud)
但是,我还没有找到一个Win32 API函数,它返回NT_TIB任何给定线程HANDLE或TID 的结构作为输入参数.
如果您正在调试进程,则可以从结构lpThreadLocalBase中的字段获取 TIB/TEB 地址CREATE_THREAD_DEBUG_INFO。
否则,您将不得不依赖半文档化的NtQueryInformationThreadAPI。如果使用ThreadBasicInformation类别,则返回的THREAD_BASIC_INFORMATION结构体有一个TebBaseAddress字段。
| 归档时间: |
|
| 查看次数: |
2287 次 |
| 最近记录: |