1、有三个文件init.cpp,dispatch.cpp,wdm1.h2、在wdm1.h中声明了一个全局变量extern PUNICODE_STRING aa;3、在init.cpp中的全局域定义它PUNICODE_STRING aa;并且把DriverEntry中的参数IN P...
全文
回复(12) 2003-02-12 11:39 来自版块 - ABC初学者
表情
KanHu1、有三个文件init.cpp,dispatch.cpp,wdm1.h 2、在wdm1.h中声明了一个全局变量extern PUNICODE_STRING aa; 3、在init.cpp中的全局域定义它PUNICODE_STRING aa; 并且把DriverEntry中的...(2003-02-16 13:23)
arthurtu《Programming the Microsoft Windows Driver Model》 如果我不告诉你书名,你的分不就白给了? :D 就算没有看,也不能用pointer指向一个会被释放的pointer呀?(2003-02-14 20:27)
RedFox_4Uwalt oney的书叫什么名字,还真没有看呢。。。 在哪里能搞到?? 现在一直看得叫《WDM驱动开发指南》(2003-02-14 09:38)
RedFox_4Uwalt oney的书叫什么名字,还真没有看呢。。。 现在一直看得叫《WDM驱动开发指南》(2003-02-14 09:37)
arthurtuft,walt oney的书一点都没有看吗?(2003-02-13 22:53)
h13那还不死,应该叫init段吧,这部分的东西驱动启动完成后就丢掉了,你后来访问是无效内存,换个地方试试 另外你的赋值好像也有问题,punicode_string只是一个指针,在driverentry里你把它指向一个内核栈,等driverentry结束的时候指向的还是一个无效内...(2003-02-13 15:43)
RedFox_4U#pragma code_seg(\"INIT\") // start INIT section ... PUNICODE_STRING aa; NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject...(2003-02-13 09:49)
h13你的 PUNICODE_STRING aa是在init页中的?是的话那部分启动完不就和你byebye了? 或者,你没有为aa分配内存? :)(2003-02-13 09:45)
X_ray不能在两个CPP文件中都用extern,因此你不应该把extern写在h文件内,除非用#ifdef等把定义在init和其他程序区分开。(2003-02-13 00:42)
LIUTANG莫非在DriverEntry调用结束后RegistryPath被释放掉了?你用UNICODE中的类似于ANSI的strcpy的函数把内存拷贝下来试一下,在WDM里对内存的访问是非常严格的,特别是在NT/2K/XP下,不可用的内存连读都不行。(2003-02-12 22:51)

返回顶部