Hi, i have an architecture question regarding communication between a wdm
driver and a wdf driver.
my system holds an old wdm driver and a new WDF based driver. My product is
going through a phase where these two drivers will need to communicate (until
the old wdm will not be used anymore). i read some of your articles
regarding driver-to-driver communication and i basically use function
pointers (and interface notification for synch) and all works well.
i started to face a problem when i try to do as follows :
my WDF driver will be called with a pending IOCTl in order to fill some data
and return it to the user mode part of that WDF driver.
My WDM driver, however, is the one who's responsible for the interrupt
handling.
so - when an interrupt arrives, the WDM driver handles it and in its DPC
will use function pointers in order to call a routine that is implemented in
the WDF driver. here's where the problem starts : since the call comes from
the WDM driver context i'm not able to use in that function any WDF calls. i
get bug check.
so my question is how would i be able to complete the pending IOCTL request
in the WDF driver from a call in the WDM driver since i'm not able to use any
WDF methods such as WdfCompleteRequest. does it seem right to use a work
item in the WDF driver that would be signaled when the WDM driver uses the
function pointer (a function that is implemented in the WDF driver which
passed the function's pointer to the WDM driver) ?
thanks,
Kobi.