title: Interface with device driver from managed code - no P/Invoke?
body: <p>I'm starting to dive into some Windows 7 driver development.  One thing that is not clear is how a managed code program can access information from the driver (communicating, for example with a digital I/O card).</p>
  
  <p>For example, a driver (kernel- or user-mode) would manage access to registers on a PCI/PCIe card, but reads/writes of the register data must be available to a programmer writing managed code (C#, VB.NET) via a .NET class.</p>
  
  <p>I do not want to have to resort to P/Invoke as in Win32API calls.</p>
  
  <p>Is this a matter of memory sharing (IOCTL), do I use an intermediate managed DLL to "hide" the P/Invoke, or is there something simple that I'm missing?</p>
  
  <p>Thanks!</p>