title: Send Events to a Windows Service from Kernel Mode
body: <p>I am writing a piece of software that consists of a kernel mode driver and a user mode Windows service.  The kernel driver needs to notify the service of different events and information, which the service will then process.</p>
  
  <p>My question is this:  What is the best way to set up this communication?  I know it is possible to get a message from the kernel using a minifilter and FilterGetMessage(), but this would require polling the kernel for new data.  I need a system that lets the kernel notify the service when there is new data to process.  </p>
  
  <p>As a side note, the service itself is using the producer consumer pattern, so there will be a thread devoted only to getting data from the kernel and putting into a queue for another set of worker threads to process. Any thoughts on this design are also welcome.</p>