注册 登录
编程论坛 C语言论坛

请教一个关于windows驱动的问题!

a451410 发布于 2024-10-25 16:24, 254 次点击
是关于LDR_DATA_TABLE_ENTRY这个结构体的,书上和网上都是可以使用这个结构体,此结构体存放着驱动的一些信息.
但是我在win10环境下,vs2022,WDK版本win10 22h2,下显示这个结构未定义.不知道为什么,也没找到解决办法
有没有win内核的大佬帮忙解答下.
6 回复
#2
yiyanxiyin2024-10-25 17:15
_LDR_DATA_TABLE_ENTRY  试试
#3
a4514102024-10-25 17:24
回复 2楼 yiyanxiyin
不行,不是拼错的问题,就是在wdm.h里 没有这个东西
#4
yiyanxiyin2024-10-25 17:29
自己定义一下
typedef struct _LDR_DATA_TABLE_ENTRY
{
LIST_ENTRY InLoadOrderLinks;
LIST_ENTRY InMemoryOrderLinks;
LIST_ENTRY InInitializationOrderLinks;
PVOID      DllBase;
PVOID      EntryPoint;
ULONG32    SizeOfImage;
UINT8      Unknow0[0x4];
UNICODE_STRING FullDllName;
UNICODE_STRING BaseDllName;
}LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
#5
a4514102024-10-25 17:31
问题已经解决 原因是不知道为什么,在我的wdk版本中,此结构体定义在了#include <winternl.h>头文件中.
望后来者注意!
#6
a4514102024-10-25 17:41
新的问题又出现了,如果添加了新的头文件winternl.h的话,它会与原先的头文件<ntifs.h>里产生巨多的重定义问题!!头疼
#7
a4514102024-10-25 20:04
啊~终于解决了,实际中要使用_KLDR_DATA_TABLE_ENTRY注意头部有个K,不用添加那个<winternl.h>头文件
而且!要自己定义!!具体结构请在自己的WinDbg中查看调试机的显示信息:如: dt _KLDR_DATA_TABLE_ENTRY

[此贴子已经被作者于2024-10-25 20:06编辑过]

1