Windows 内核结构不透明是什么意思?

What does it mean when a Windows Kernel structure is Opaque?

这是否意味着没有常规(合法)方式来访问不透明结构的成员?

这只是意味着 struct 成员没有文档,也没有可用的头文件定义。根据您对“合法”的定义,可能有也可能没有访问成员的方法。

在技术方面,如果您知道地址和成员是什么,您就可以创建自己的结构。使用 Windows 的未记录部分执行此操作并不少见。这是否是个好主意是另一个问题。

Windows 内核中使用的一些结构在版本间(甚至服务包和更新间)不稳定。如果您选择访问 Windows 团队已决定禁止访问的内容,这就是您必须处理的事情。这也意味着你应该问问自己是否真的需要访问这个结构。对于内核模式下的任何内容尤其如此。

还有一些事情开始时完全不透明,但随着时间的推移,它的一些成员已经被记录在案(出于法律或其他原因)。在 those cases 中,您会看到一些成员仅具有“Reserved1234”之类的名称并定义为指针或字节,而完整记录的成员具有有用的名称和正确的类型。