32 #define SOUND_MAX_DEVICES 100 33 #define SOUND_MAX_DEVICE_NAME 80 39 #define IOCTL_SOUND_BASE FILE_DEVICE_SOUND 40 #define IOCTL_WAVE_BASE 0x0000 41 #define IOCTL_MIDI_BASE 0x0080 42 #define IOCTL_AUX_BASE 0x0100 43 #define IOCTL_MIX_BASE 0x0180 49 #define WAVE_CTL_CODE(subcode, iomethod, access) \ 50 CTL_CODE(FILE_DEVICE_SOUND, IOCTL_WAVE_BASE + subcode, iomethod, access) 52 #define MIDI_CTL_CODE(subcode, iomethod, access) \ 53 CTL_CODE(FILE_DEVICE_SOUND, IOCTL_MIDI_BASE + subcode, iomethod, access) 55 #define MIX_CTL_CODE(subcode, iomethod, access) \ 56 CTL_CODE(FILE_DEVICE_SOUND, IOCTL_MIX_BASE + subcode, iomethod, access) 58 #define AUX_CTL_CODE(subcode, iomethod, access) \ 59 CTL_CODE(FILE_DEVICE_SOUND, IOCTL_AUX_BASE + subcode, iomethod, access) 65 #define IOCTL_WAVE_QUERY_FORMAT \ 66 WAVE_CTL_CODE(0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) 68 #define IOCTL_WAVE_SET_FORMAT \ 69 WAVE_CTL_CODE(0x0002, METHOD_BUFFERED, FILE_WRITE_ACCESS) 71 #define IOCTL_WAVE_GET_CAPABILITIES \ 72 WAVE_CTL_CODE(0x0003, METHOD_BUFFERED, FILE_READ_ACCESS) 74 #define IOCTL_WAVE_SET_STATE \ 75 WAVE_CTL_CODE(0x0004, METHOD_BUFFERED, FILE_WRITE_ACCESS) 77 #define IOCTL_WAVE_GET_STATE \ 78 WAVE_CTL_CODE(0x0005, METHOD_BUFFERED, FILE_WRITE_ACCESS) 80 #define IOCTL_WAVE_GET_POSITION \ 81 WAVE_CTL_CODE(0x0006, METHOD_BUFFERED, FILE_WRITE_ACCESS) 83 #define IOCTL_WAVE_SET_VOLUME \ 84 WAVE_CTL_CODE(0x0007, METHOD_BUFFERED, FILE_READ_ACCESS) 86 #define IOCTL_WAVE_GET_VOLUME \ 87 WAVE_CTL_CODE(0x0008, METHOD_BUFFERED, FILE_READ_ACCESS) 89 #define IOCTL_WAVE_SET_PITCH \ 90 WAVE_CTL_CODE(0x0009, METHOD_BUFFERED, FILE_WRITE_ACCESS) 92 #define IOCTL_WAVE_GET_PITCH \ 93 WAVE_CTL_CODE(0x000A, METHOD_BUFFERED, FILE_WRITE_ACCESS) 95 #define IOCTL_WAVE_SET_PLAYBACK_RATE \ 96 WAVE_CTL_CODE(0x000B, METHOD_BUFFERED, FILE_WRITE_ACCESS) 98 #define IOCTL_WAVE_GET_PLAYBACK_RATE \ 99 WAVE_CTL_CODE(0x000C, METHOD_BUFFERED, FILE_WRITE_ACCESS) 101 #define IOCTL_WAVE_PLAY \ 102 WAVE_CTL_CODE(0x000D, METHOD_IN_DIRECT, FILE_WRITE_ACCESS) 104 #define IOCTL_WAVE_RECORD \ 105 WAVE_CTL_CODE(0x000E, METHOD_OUT_DIRECT, FILE_WRITE_ACCESS) 107 #define IOCTL_WAVE_BREAK_LOOP \ 108 WAVE_CTL_CODE(0x000F, METHOD_BUFFERED, FILE_WRITE_ACCESS) 110 #define IOCTL_WAVE_SET_LOW_PRIORITY \ 111 WAVE_CTL_CODE(0x0010, METHOD_BUFFERED, FILE_WRITE_ACCESS) 115 #define IOCTL_WAVE_SET_DEBUG_LEVEL \ 116 WAVE_CTL_CODE(0x0040, METHOD_BUFFERED, FILE_READ_ACCESS) 124 #define IOCTL_MIDI_GET_CAPABILITIES \ 125 MIDI_CTL_CODE(0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) 127 #define IOCTL_MIDI_SET_STATE \ 128 MIDI_CTL_CODE(0x0002, METHOD_BUFFERED, FILE_WRITE_ACCESS) 130 #define IOCTL_MIDI_GET_STATE \ 131 MIDI_CTL_CODE(0x0003, METHOD_BUFFERED, FILE_WRITE_ACCESS) 133 #define IOCTL_MIDI_SET_VOLUME \ 134 MIDI_CTL_CODE(0x0004, METHOD_BUFFERED, FILE_READ_ACCESS) 136 #define IOCTL_MIDI_GET_VOLUME \ 137 MIDI_CTL_CODE(0x0005, METHOD_BUFFERED, FILE_READ_ACCESS) 139 #define IOCTL_MIDI_PLAY \ 140 MIDI_CTL_CODE(0x0006, METHOD_NEITHER, FILE_WRITE_ACCESS) 142 #define IOCTL_MIDI_RECORD \ 143 MIDI_CTL_CODE(0x0007, METHOD_BUFFERED, FILE_WRITE_ACCESS) 145 #define IOCTL_MIDI_CACHE_PATCHES \ 146 MIDI_CTL_CODE(0x0008, METHOD_BUFFERED, FILE_WRITE_ACCESS) 148 #define IOCTL_MIDI_CACHE_DRUM_PATCHES \ 149 MIDI_CTL_CODE(0x0009, METHOD_BUFFERED, FILE_WRITE_ACCESS) 153 #define IOCTL_MIDI_SET_DEBUG_LEVEL \ 154 WAVE_CTL_CODE(0x0040, METHOD_BUFFERED, FILE_READ_ACCESS) 161 #define IOCTL_MIX_GET_CONFIGURATION \ 162 MIX_CTL_CODE(0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) 164 #define IOCTL_MIX_GET_CONTROL_DATA \ 165 MIX_CTL_CODE(0x0002, METHOD_BUFFERED, FILE_READ_ACCESS) 167 #define IOCTL_MIX_GET_LINE_DATA \ 168 MIX_CTL_CODE(0x0003, METHOD_BUFFERED, FILE_READ_ACCESS) 170 #define IOCTL_MIX_REQUEST_NOTIFY \ 171 MIX_CTL_CODE(0x0004, METHOD_BUFFERED, FILE_READ_ACCESS) 177 #define IOCTL_AUX_GET_CAPABILITIES \ 178 AUX_CTL_CODE(0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) 180 #define IOCTL_AUX_SET_VOLUME \ 181 AUX_CTL_CODE(0x0002, METHOD_BUFFERED, FILE_READ_ACCESS) 183 #define IOCTL_AUX_GET_VOLUME \ 184 AUX_CTL_CODE(0x0003, METHOD_BUFFERED, FILE_READ_ACCESS) 186 #define IOCTL_SOUND_GET_CHANGED_VOLUME \ 187 AUX_CTL_CODE(0x0004, METHOD_BUFFERED, FILE_READ_ACCESS) 193 #define WAVE_DD_MAX_VOLUME 0xFFFFFFFF 209 #define WAVE_DD_STOP 0x0001 210 #define WAVE_DD_PLAY 0x0002 211 #define WAVE_DD_RECORD 0x0003 212 #define WAVE_DD_RESET 0x0004 215 #define WAVE_DD_IDLE 0x0000 216 #define WAVE_DD_STOPPED 0x0001 217 #define WAVE_DD_PLAYING 0x0002 218 #define WAVE_DD_RECORDING 0x0003 247 #define MIDI_DD_STOP 0x0001 248 #define MIDI_DD_PLAY 0x0002 249 #define MIDI_DD_RECORD 0x0003 250 #define MIDI_DD_RESET 0x0004 253 #define MIDI_DD_IDLE 0x0000 254 #define MIDI_DD_STOPPED 0x0001 255 #define MIDI_DD_PLAYING 0x0002 256 #define MIDI_DD_RECORDING 0x0003 275 #define AUX_DD_MAX_VOLUME 0xFFFFFFFF
struct _WAVE_DD_PLAYBACK_RATE * PWAVE_DD_PLAYBACK_RATE
struct _MIDI_DD_CACHE_PATCHES * PMIDI_DD_CACHE_PATCHES
struct _MIDI_DD_VOLUME MIDI_DD_VOLUME
struct _WAVE_DD_VOLUME WAVE_DD_VOLUME
struct _WAVE_DD_VOLUME * PWAVE_DD_VOLUME
struct _MIXER_DD_READ_DATA * PMIXER_DD_READ_DATA
struct _MIDI_DD_CACHE_PATCHES MIDI_DD_CACHE_PATCHES
struct _WAVE_DD_PITCH * PWAVE_DD_PITCH
struct _MIXER_DD_LINE_DATA MIXER_DD_LINE_DATA
struct _MIXER_DD_READ_DATA MIXER_DD_READ_DATA
struct _MIDI_DD_INPUT_DATA * PMIDI_DD_INPUT_DATA
struct _AUX_DD_VOLUME * PAUX_DD_VOLUME
struct _MIDI_DD_VOLUME * PMIDI_DD_VOLUME
struct _AUX_DD_VOLUME AUX_DD_VOLUME
struct _MIDI_DD_INPUT_DATA MIDI_DD_INPUT_DATA
struct _WAVE_DD_PITCH WAVE_DD_PITCH
struct _MIDI_DD_CACHE_DRUM_PATCHES * PMIDI_DD_CACHE_DRUM_PATCHES
struct _WAVE_DD_PLAYBACK_RATE WAVE_DD_PLAYBACK_RATE
struct _MIXER_DD_LINE_DATA * PMIXER_DD_LINE_DATA
struct _MIDI_DD_CACHE_DRUM_PATCHES MIDI_DD_CACHE_DRUM_PATCHES