我在驱动程序开发方面没有任何经验。我想访问结构PEPROCESS的属性。我有一个指向过程对象的指针,通过PsGetCurrentProcess例程获得。我已经看到一些web描述了结构内部(属性)声明,所以我可以使用这些属性的偏移来获取它们,如:
hprocess = PsGetCurrentProcess();
List = (LIST_ENTRY*)((ULONG)hproces + 0x88); //Active Process Link Offset
然而这种方式让我处于问题的中间。我想构建一个能够在其他类型的平台(例如:x86,x86_64)和其他版本的Windows(XP,7,...)中运行的代码;而且我认为这种方式是不可能的,因为偏移量不一样。
问题:对此有没有蹩脚的解决方案?例如:
List = process->ActiveProcessLink
或其他什么。
答案 0 :(得分:1)
尝试使用宏: PCHAR CONTAINING_RECORD( [in] PCHAR地址, [in] TYPE类型, [in] PCHAR Field);