[wdmaudiodev] Re: [wdmaudiodev]: Calling a user defined function from kernel space

  • From: Eugene Muzychenko <emuzychenko@xxxxxxxxx>
  • To: AsHwAtH <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 9 Apr 2007 15:19:10 +0700

Hello AsHwAtH,

> From my application I am passing the address of the User defined function to
> the driver through my own IOCTL call.
> I store this address in the driver as a function pointer and call it when a
> particular condition is met inside the MSVAD.

Before trying to develop (and even modify) a kernel-mode driver, you
must clearly understand the differences between user and kernel
execution modes, address space, thread contexts etc. Your attempt to
directly call a user-mode function from the kernel-mode driver means
that you have almost no such knowledge. In this situation, your work
will be very inefficient, resulting many incorrect solutions.

Your driver could inject some code into a requesting
process, create an auxiliary thread that will watch for some event
signaled by the driver and call a specified function. But it will be
very complex for you to implement. So a simplest way is to create a
thread from your application and not to pass function address to the
driver.

Regards,
Eugene

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

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

Other related posts: