From: Mohit Gupta on
I have 2 drivers, and want one driver to communicate with another driver. How
can I achieve that?

For example, Driver1 and Driver2 are running in the system

Driver1 allocates non-paged memory for reading/writing purposes

Driver2 wants to read from non-paged memory address created by Driver1.
Driver2 can do that only after knowing memory access address (virtual or
physical) from Driver1. How that can be achieved?

Few assumptions

1) Driver1 is loaded before Driver2

2) Reads/writes are synchronised.

3) Only Driver1 can allocated memory

4) Memory allocation must be dynamic. No address is known to either drivers

Please help!!!
From: Don Burn on

There are a number of ways to do this. First you can create a device
interface (see IoRegisterDeviceInterface) the interface can contain
pointers to functions in Driver1 that can be called from Driver2 use
IoGetDeviceInterfaces to get the interface in Driver2. Another approach
is to have Driver2 open driver1 and send an IOCTL to it, the return is a
structures of pointers to the functions.


Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr


> -----Original Message-----
> From: Mohit Gupta [mailto:MohitGupta(a)discussions.microsoft.com]
> Posted At: Friday, June 18, 2010 3:42 AM
> Posted To: microsoft.public.win32.programmer.kernel
> Conversation: Inter-driver communication
> Subject: Inter-driver communication
>
> I have 2 drivers, and want one driver to communicate with another
> driver. How
> can I achieve that?
>
> For example, Driver1 and Driver2 are running in the system
>
> Driver1 allocates non-paged memory for reading/writing purposes
>
> Driver2 wants to read from non-paged memory address created by Driver1.
> Driver2 can do that only after knowing memory access address (virtual or
> physical) from Driver1. How that can be achieved?
>
> Few assumptions
>
> 1) Driver1 is loaded before Driver2
>
> 2) Reads/writes are synchronised.
>
> 3) Only Driver1 can allocated memory
>
> 4) Memory allocation must be dynamic. No address is known to either
> drivers
>
> Please help!!!
>
>
> __________ Information from ESET Smart Security, version of virus
> signature
> database 5206 (20100618) __________
>
> The message was checked by ESET Smart Security.
>
> http://www.eset.com
>