1.定义一个全局变量
PVOID _declspec(dllexport) sharedmemory =NULL;
2.在程序中分配此内存并在适当的时候给其赋值:
sharedmemory = (PVOID)ExAllocatePool(NonPagedPool,sizeofmemory);
..........................................................
RtlCopyMemory(sharedmemory,/"i am dazzy!/",16);
3.在另一个驱动程序中作如下声明:
PVOID extern _declspec(dllimport) sharedmemory;
4.用DbgPrint()打印此值:
#if DBG
DbgPrint(/"The share memory is %s/",sharedmemory);
#endif
5.很如我意:
在driverstudio带的Monitor打印出了:
The share memory is i am dazzy!
编译第二个驱动时在第二个驱动的Source文件中加入第一个驱动的LIB文件。
=======================
这个的原理就相当于把驱动程序当动态连接库使用。同样对函数也可用。
还可以这样用:
source文件中
TARGETTYPE=EXPORT_DRIVER
同时建立一个def文件:
LIBRARY Export.SYS
EXPORTS
ExportSymbols1
...
在其他的驱动中同样很简单可以访问变量和函数。
=======================
http://bbs.driverdevelop.com/htm_data/16/0706/102782.html
http://bbs.driverdevelop.com/htm_data/16/0107/1891.html