Inter driver comunication

Hi,

Introduction:

*******************************

I am developing a system consisting of two drivers:

[one] Is fixed and is loaded during the OS boot sequence and [the other] is a dynamically loaded driver ( a function driver ) used to communicate with the fixed driver on one side and to communicate with user-mode on the other side.

The problem:

*******************************

The fixed driver is created with the following name: L"\FileSystem\Filters\ExecGaurd", ( no symbolic-link is created for this driver ).
To establish communication between the two drivers upon startup ( from within the DriverEntry routine ) the dynamic ( function ) driver calls IoGetDeviceObjectPointer(L"\FileSystem\Filters\ExecGaurd", … ), the returned value is 0xC0000034 : STATUS_OBJECT_NAME_NOT_FOUND…

What may cause such a problem?

[A] Must I Create a symbolic link for the fixed driver to be able to communicate with it from within the kernel?

[B] Should I use any special syntax to describe the name of the driver I want to refer to ( something different then L"\FileSystem\Filters\ExecGaurd" ).

Any comment pointer or sample would be appreciated.

Nadav.


Discover Yahoo!
Find restaurants, movies, travel & more fun for the weekend. Check it out!

Our driver does some debug things dependant on whether Soft-ice
is loaded in memory. We check the presence of Soft-ICE using
ObReferenceObjectByName against “\Driver\Ntice”.
This should also work for your purpose.

IoGetDeviceObjectPointer does not work on driver objects.

L.