A user-mode device driver architecture is provided by the subject
invention. The architecture includes a reflector, a driver manager and a
host process which hosts and isolates one or more user-mode device
driver(s). The user-mode device driver runs in the user-mode (UM)
environment and has access to various UM services. The reflector resides
in "kernel memory" (e.g., memory/resource(s) available to operating
system) while the driver manager, host process and user mode device
driver(s) are located in user space (e.g., memory/resource(s) available
to user application(s)). The reflector provides a secure, stable
communication path for application(s), the host process and/or user-mode
device driver(s) to communicate with the operating system.