Sunday, May 06, 2007

CE600 -- Writting User Mode Drivers

Summary: Windows CE6 now supports running drivers inside a user-mode driver host, udevice.exe. Our goal has been to support kernel drivers to work "just-as-they-are" in user mode; though, some security restrictions apply as discussed below. The good news is that we managed to keep the overall user mode driver development experience and the driver interfaces exactly the same as the one for kernel mode drivers.

Notable APIs that user-mode code cannot call:

  • VM APIs: VirtualCopy[Ex], LockPages[Ex], CreateStaticMapping
  • Interrupt APIs: InterruptInitialize, InterruptDone, LoadIntChainHandler
  • You cannot install IISR directly, though you can install GIISR via the reflector. (GIISR exposes well known interfaces and the reflector can do the required checks on these calls.)
  • OAL IOCTLs that are not explicitly permitted by the kernel

 

No comments: