Displaying a User Interface from a Kernel-Mode Device Driver

Other versions of this page are also available for the following:

Windows Mobile Not SupportedWindows Embedded CE Supported

8/28/2008

Kernel-mode code can display a user interface (UI) by calling the CeCallUserProc function, which utilizes the UI proxy device driver. Add this functionality to your run-time image by setting the SYSGEN_UIPROXY variable in your OS design.

Execution Path

The following list shows the process for displaying a UI from a kernel-mode device driver:

  1. A user-mode application makes a call into a kernel-mode driver.
  2. While the kernel-mode driver is running, the kernel-mode driver requires input from the user.
  3. The kernel-mode driver calls CeCallUserProc to load the UI proxy device driver.
  4. The kernel-mode function translates the call into an I/O control code call and forwards the call to the UI proxy device driver, which is hosted in udevice.exe.
  5. The UI proxy device driver does the following:
    1. Loads the UI proxy device driver that was passed to the CeCallUserProc function.
    2. Calls the entry point for the UI proxy device driver.
    3. Passes the UI proxy device driver data to the entry point.
    4. Returns the UI proxy device driver data back to the caller.
  6. The UI proxy device driver data is then marshaled back to the kernel, and the call returns to the kernel-mode device driver.

See Also

Reference

CeCallUserProc
PFN_UIENTRYPOINT

Concepts

New Kernel APIs

Other Resources

Additional Kernel Functionality
Core OS Services Catalog Items