gpt4 book ai didi

c++ - Microsoft 支持的用于检索线程地址的 API 是什么

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

我目前正在使用
NtQueryInformationThread(.., ThreadQuerySetWin32StartAddress, addr, ..) 用于获取 addr 中的线程地址。
msdn doc

NtQueryInformationThread may be altered or unavailable in future versions of Windows

此外,

Note that on versions of Windows prior to Windows Vista, the returned start address is only reliable before the thread starts running.

检索线程地址的建议方法是什么?

最佳答案

NtQueryXxxx 函数组是未记录的内部 Windows 内核函数。直到微软被迫在与美国司法部的和解中记录它们。他们这样做了,但保留在任何 future 版本的 Windows 中更改其实现的权利,这是允许他们在 Windows 上进行创新所必需的。并保留不必使该函数在内核中的预期用途之外实际有用的权利。

这个警告很准确,线程启动后你不会从这个函数中得到一个可用的线程起始地址。它将指向真实 起始地址,这是 ntdll.dll 中名为 __RtlUserThreadStart() 的内部辅助函数。当你有 Windows 的调试符号时,你可以在任何堆栈跟踪中看到它。 每个 启动线程的起始地址相同。

字迹在墙上。不要使用它。

关于c++ - Microsoft 支持的用于检索线程地址的 API 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13829162/

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