阅读:1677回复:6
不同的驱动之间怎样通讯?
不同的驱动之间怎样通讯?
比如说磁盘驱动和ndis驱动之间通讯可以采用那些方法? |
|
沙发#
发布于:2004-03-30 14:22
已找到方法! :D
|
|
板凳#
发布于:2004-03-30 15:29
已找到方法! :D 公布一下吗 :P |
|
|
地板#
发布于:2004-03-30 15:34
给大家介绍一下如何?使用DeviceIoControl应该可以
|
|
|
地下室#
发布于:2004-04-01 13:09
1.在driver1中定义一个全局变量,
VOID _declspec(dllexport) sharedmemory =NULL; 2.在driver1中分配此内存并在适当的时候给其赋值: g_SharedMem =(PVOID)ExAllocatePool(NonPagedPool, memsize); 3.在diver2中作如下声明: VOID extern _declspec(dllimport) g_DrvSharedMem; 4.在编译diver2时,在Source文件中加入driver1的LIB文件; |
|
5楼#
发布于:2004-04-01 15:27
1.在driver1中定义一个全局变量, 我想通过IRP也可以吧!但具体还没有试验。 有清楚的吗?介绍一下方法 |
|
|
6楼#
发布于:2004-04-13 17:53
我这么做了,但好像还是不行,如下提示
e:\\driversource\\xpassthru BUILD: Linking e:\\driversource\\xpassthru directory Linking Executable - e:\\run\\i386\\xpassthru.sys for i386 recv.obj() : error LNK2001: unresolved external symbol __imp__gScsi2NdisMemory e:\\run\\i386\\xpassthru.sys() : error LNK1120: 1 unresolved externals BUILD: Done 1 executable built - 11 Warnings - 2 Errors source文件中这么定义的: TARGETLIBS=$(DDK_LIB_PATH)\\ndis.lib e:\\run\\i386\\vdisk.lib C_DEFINES=$(C_DEFINES) -DNDIS40 -DNDIS_MINIPORT_DRIVER -DNDIS40_MINIPORT INCLUDES=..\\..\\inc SOURCES=network.c \\ xpassthru.c \\ minihook.c \\ prothook.c \\ send.c \\ recv.c \\ packet.c |
|