Communication between UMDF lower filter and Application

I developed UMDF lower filter driver of Kmdf function driver(network related driver), but i couldnt find any way of communicating with application to UMDF2 filter driver as

  1. UMDF cannot have Control device object (only kmdf can have) as api is applicable to kmdf only.
  2. KMDF bus driver can use “WdfControlDeviceInitAllocate ()” api , but its not available in umdf.
  3. there is no way of having multiple device object in umdf.

pls let me know if you know any particular way ( i dnt want to communicate with default device object which is being used as filter device object).

Thanks

$ri wrote:

I developed UMDF lower filter driver of Kmdf function driver(network related driver), but i couldnt find any way of communicating with application to UMDF2 filter driver…

It’s just a user-mode DLL.  There are a number of interprocess
communication schemes available for user-mode processes.

Thanks Tim for your reply. Actually i am trying to convert kmdf into lowerfilter umdf and that kmdf was talking to application using Ioctl . I dnt want to change my code now for communication part so looking for some way to create one more dev obj or control device object, which will obviously wont work and seems like i need to go for some ipc only.

$ri wrote:

Thanks Tim for your reply. Actually i am trying to convert kmdf into lowerfilter umdf …

Why are you trying to do that?  I do espouse the philosophy of never
doing anything in kernel mode that can also be done in user mode, but
you need to remember that each call into a UMDF driver means stopping
whatever user-mode process is running, context switching to the
protected UMDF process, switching to user mode and back to kernel mode,
then restarting the process that was stopped.  If UMDF is the top-level
driver, it’s worth the cost of that overhead, but for a filter driver I
don’t think it makes good sense.