Kernel Mode Hardware Acceleration DDI

This portion of the design guide contains information necessary to write a kernel-mode DMus miniport driver for DirectMusic-enabled hardware or a software synthesizer. The features described here are optional and can be implemented in addition to the base-level MIDI miniport driver, which supports the midiOut and midiIn APIs under Microsoft Windows 95/98/Me, Windows NT 4.0, Windows 2000, and later.

Implementing kernel-mode components entails making additions to the miniport device driver interface (DDI) that allow WDM MIDI drivers to support DirectMusic hardware acceleration. A good design strategy is to begin by implementing a user-mode version of your driver and then converting it to kernel mode (see User Mode Versus Kernel Mode).

If you have not written a user-mode version before doing your kernel-mode implementation, read the user-mode sections of this document to become familiar with the concepts, which apply to kernel mode as well. Kernel-mode discussions build on common concepts that are introduced in the user-mode examples.

The next two sections give a brief background of WDM kernel streaming and an overview of how to implement a miniport-driver for a synthesizer:

DirectMusic WDM Kernel Streaming Background

Synthesizer Miniport Driver Overview

This section also includes:

DirectMusic Miniport Driver Interface

Voice Allocation

Default Sound Sample Sets

Support for DirectMusic Properties