Devices with similar properties are grouped together in categories known as device types. All of the devices belonging to a particular type respond to a common set of MCI commands. Each set of commands is contained in a separate MCI command table.
The following table lists device types defined by Microsoft. The table includes both string names and constants. Constants are defined in mmsystem.h.
| String | Constant |
| animation | MCI_DEVTYPE_ANIMATION |
| cdaudio | MCI_DEVTYPE_CD_AUDIO |
| dat | MCI_DEVTYPE_DAT |
| digitalvideo | MCI_DEVTYPE_DIGITAL_VIDEO |
| overlay | MCI_DEVTYPE_OVERLAY |
| scanner | MCI_DEVTYPE_SCANNER |
| sequencer | MCI_DEVTYPE_SEQUENCER |
| vcr | MCI_DEVTYPE_VCR |
| videodisc | MCI_DEVTYPE_VIDEODISC |
| waveaudio | MCI_DEVTYPE_WAVEFORM_AUDIO |
An MCI driver assigns a device to its appropriate type when it receives a DRV_OPEN message. (See Opening an MCI Driver.) This tells winmm.dll which command table to use. The driver uses the MCI_DEVTYPE_OTHER type for devices not belonging to any of the predefined types.
To find which MCI commands a driver must support for a particular device type, see the Win32 SDK. The Win32 SDK lists the command set associated with each device type. (Use the keyword index to search for a device type string, such as “videodisc”.)