Reo_52 发表于 2022-8-28 09:58

本人小白,请问CONTEXT结构下的关于ContextFlags说明在哪看?

请教各位大佬、前辈:GetThreadContext()函数内参数二的CONTEXT结构里面有个ContextFlags,别人告诉我这个可以设为#CONTEXT_FULL,试了下确实可以取到寄存器的值。但我在MSDN里面找了半天也没看到关于这个ContextFlags的说明啊,似乎还能设为CONTEXT_ALL和CONTEXT_XSTATE。我就纳闷,别人是怎么知道的?我怎么就查不到官方说明啊?

Reo_52 发表于 2022-8-28 11:51

这个ContextFlags还能初始为CONTEXT_CONTROL

CONTEXT_INTEGER

CONTEXT_SEGMENTS 等

我就好奇这些东西是在哪地方写着的?上面这都是在别人的文章里看到的,我在MSDN里没找到啊...还是我找的方式不对?

cube 发表于 2022-8-29 15:17

查msdn,得到如下内容:
The CONTEXT structure is highly processor specific. Refer to the WinNT.h header file for processor-specific definitions of this structures and any alignment requirements.
用各种翻译软件得到如下解释:
CONTEXT结构是高度特定于处理器的。 有关此结构的特定于处理器的定义和任何对齐要求,请参阅 WinNT.h 头文件。

接着你就要在WinNT.h头文件中搜索关键词ContextFlags啦
搜索你会得到如下内容(仅截取部分):
ContextFlags word contians the flag CONTEXT_SEGMENTS....
ontextFlags word contians the flag CONTEXT_FLOATING_POINT....
ContextFlags word contians the flag CONTEXT_INTEGER....
ContextFlags word contians the flag CONTEXT_CONTROL....
#define CONTEXT_FULL                  (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER | CONTEXT_IA32_CONTROL)

快乐的小跳蛙 发表于 2022-8-29 17:08

在vs代码区域内把这个宏值写出来,F12可以转到宏值对应的阿拉伯数字,相关的宏也在一起,这种办法适用找别的api的宏,有些宏后面会有注释

A学习的小菜鸟 发表于 2022-9-11 09:40

vs帮助文档里面就有,不过这要你去百度搜索一下

Reo_52 发表于 2022-9-11 10:05

A学习的小菜鸟 发表于 2022-9-11 09:40
vs帮助文档里面就有,不过这要你去百度搜索一下

谢谢各位,已经看到了。
页: [1]
查看完整版本: 本人小白,请问CONTEXT结构下的关于ContextFlags说明在哪看?