如何访问PEPROCESS结构的属性?

时间:2014-10-30 14:27:46

标签: windows device-driver windows-kernel

我在驱动程序开发方面没有任何经验。我想访问结构PEPROCESS的属性。我有一个指向过程对象的指针,通过PsGetCurrentProcess例程获得。我已经看到一些web描述了结构内部(属性)声明,所以我可以使用这些属性的偏移来获取它们,如:

hprocess = PsGetCurrentProcess();
List = (LIST_ENTRY*)((ULONG)hproces + 0x88); //Active Process Link Offset

然而这种方式让我处于问题的中间。我想构建一个能够在其他类型的平台(例如:x86,x86_64)和其他版本的Windows(XP,7,...)中运行的代码;而且我认为这种方式是不可能的,因为偏移量不一样。

问题:对此有没有蹩脚的解决方案?例如:

List = process->ActiveProcessLink 

或其他什么。

1 个答案:

答案 0 :(得分:1)

尝试使用宏: PCHAR CONTAINING_RECORD(     [in] PCHAR地址,     [in] TYPE类型,     [in] PCHAR Field);