User-mode multimedia drivers executing under Windows NT have the following characteristics:
·They execute in user mode.
·They export user-mode driver entry points that are called by applications and other clients to request I/O operations.
·They communicate with kernel-mode multimedia drivers by calling Win32 functions which, in turn, call functions in the Windows NT Executive. The Windows NT Executive functions provide the context switch from user mode to kernel mode.
Typically, user-mode drivers call CreateFile to open a device instance. Then they make numerous calls to DeviceIoControl to send I/O control codes to the kernel-mode driver. Some drivers also call the ReadFileEx and WriteFileEx functions to transfer data blocks. Calling CloseHandle closes the device instance. (All of these functions are described in the Win32 SDK.)
User-mode drivers do not generally call these Win32 functions directly. Instead, they typically call functions in support libraries, which in turn call the Win32 functions. The support libraries are described in the chapters discussing the various driver types. The chapters are listed in Types of Multimedia Devices.
User-mode drivers do not necessarily communicate with a kernel-mode driver — some communicate with other user-mode drivers. For example some MCI drivers call Win32 Audio API functions to communicate with user-mode audio device drivers.
Because user-mode Windows NT drivers run under the Windows NT Win32 Subsystem and call Win32 API functions described in the Win32 SDK, these drivers are sometimes called Win32-based drivers.
For information about designing a user-mode multimedia driver, see Designing a User-Mode Multimedia Driver.