3 (c) Andrew Greenwood, 2007.
5 Please see COPYING in the top level directory for license information.
17 #define EXTRACT_WAVEFORMATEX_ID(Guid)\
18 (USHORT)((Guid)->Data1)
20 /* Audio device (as presented by sysaudio) */
22 #define STATIC_KSCATEGORY_AUDIO_DEVICE \
23 0xFBF6F530L, 0x07B9, 0x11D2, {0xA7, 0x1E, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
24 DEFINE_GUIDSTRUCT("FBF6F530-07B9-11D2-A71E-0000F8004788", KSCATEGORY_AUDIO_DEVICE
);
25 #define KSCATEGORY_AUDIO_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_DEVICE)
27 /* Preferred devices */
29 #define STATIC_KSCATEGORY_PREFERRED_WAVEOUT_DEVICE \
30 0xD6C5066EL, 0x72C1, 0x11D2, {0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
31 DEFINE_GUIDSTRUCT("D6C5066E-72C1-11D2-9755-0000F8004788", KSCATEGORY_PREFERRED_WAVEOUT_DEVICE
);
32 #define KSCATEGORY_PREFERRED_WAVEOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEOUT_DEVICE)
34 #define STATIC_KSCATEGORY_PREFERRED_WAVEIN_DEVICE \
35 0xD6C50671L, 0x72C1, 0x11D2, {0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
36 DEFINE_GUIDSTRUCT("D6C50671-72C1-11D2-9755-0000F8004788", KSCATEGORY_PREFERRED_WAVEIN_DEVICE
);
37 #define KSCATEGORY_PREFERRED_WAVEIN_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEIN_DEVICE)
39 #define STATIC_KSCATEGORY_PREFERRED_MIDIOUT_DEVICE \
40 0xD6C50674L, 0x72C1, 0x11D2, {0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
41 DEFINE_GUIDSTRUCT("D6C50674-72C1-11D2-9755-0000F8004788", KSCATEGORY_PREFERRED_MIDIOUT_DEVICE
);
42 #define KSCATEGORY_PREFERRED_MIDIOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_MIDIOUT_DEVICE)
45 /* Media type categories */
47 #define STATIC_KSCATEGORY_AUDIO \
48 0x6994AD04L, 0x93EF, 0x11D0, {0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
49 DEFINE_GUIDSTRUCT("6994AD04-93EF-11D0-A3CC-00A0C9223196", KSCATEGORY_AUDIO
);
50 #define KSCATEGORY_AUDIO DEFINE_GUIDNAMED(KSCATEGORY_AUDIO)
52 #define STATIC_KSCATEGORY_VIDEO \
53 0x6994AD05L, 0x93EF, 0x11D0, {0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
54 DEFINE_GUIDSTRUCT("6994AD05-93EF-11D0-A3CC-00A0C9223196", KSCATEGORY_VIDEO
);
55 #define KSCATEGORY_VIDEO DEFINE_GUIDNAMED(KSCATEGORY_VIDEO)
57 #define STATIC_KSCATEGORY_TEXT \
58 0x6994AD06L, 0x93EF, 0x11D0, {0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
59 DEFINE_GUIDSTRUCT("6994AD06-93EF-11D0-A3CC-00A0C9223196", KSCATEGORY_TEXT
);
60 #define KSCATEGORY_TEXT DEFINE_GUIDNAMED(KSCATEGORY_TEXT)
62 #define STATIC_KSCATEGORY_NETWORK \
63 0x67C9CC3CL, 0x69C4, 0x11D2, {0x87, 0x59, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
64 DEFINE_GUIDSTRUCT("67C9CC3C-69C4-11D2-8759-00A0C9223196", KSCATEGORY_NETWORK
);
65 #define KSCATEGORY_NETWORK DEFINE_GUIDNAMED(KSCATEGORY_NETWORK)
67 #define STATIC_KSINTERFACESETID_Media \
68 0x3A13EB40L, 0x30A7, 0x11D0, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
69 DEFINE_GUIDSTRUCT("3A13EB40-30A7-11D0-A5D6-28DB04C10000", KSINTERFACESETID_Media
);
70 #define KSINTERFACESETID_Media DEFINE_GUIDNAMED(KSINTERFACESETID_Media)
74 #define STATIC_KSCATEGORY_TOPOLOGY \
75 0xDDA54A40L, 0x1E4C, 0x11D1, {0xA0, 0x50, 0x40, 0x57, 0x05, 0xC1, 0x00, 0x00}
76 DEFINE_GUIDSTRUCT("DDA54A40-1E4C-11D1-A050-405705C10000", KSCATEGORY_TOPOLOGY
);
77 #define KSCATEGORY_TOPOLOGY DEFINE_GUIDNAMED(KSCATEGORY_TOPOLOGY)
79 #define STATIC_KSCATEGORY_VIRTUAL \
80 0x3503EAC4L, 0x1F26, 0x11D1, {0x8A, 0xB0, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
81 DEFINE_GUIDSTRUCT("3503EAC4-1F26-11D1-8AB0-00A0C9223196", KSCATEGORY_VIRTUAL
);
82 #define KSCATEGORY_VIRTUAL DEFINE_GUIDNAMED(KSCATEGORY_VIRTUAL)
84 #define STATIC_KSCATEGORY_ACOUSTIC_ECHO_CANCEL \
85 0xBF963D80L, 0xC559, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
86 DEFINE_GUIDSTRUCT("BF963D80-C559-11D0-8A2B-00A0C9255AC1", KSCATEGORY_ACOUSTIC_ECHO_CANCEL
);
87 #define KSCATEGORY_ACOUSTIC_ECHO_CANCEL DEFINE_GUIDNAMED(KSCATEGORY_ACOUSTIC_ECHO_CANCEL)
90 /* Component-specific */
92 #define STATIC_KSCATEGORY_SYSAUDIO \
93 0xA7C7A5B1L, 0x5AF3, 0x11D1, {0x9C, 0xED, 0x00, 0xA0, 0x24, 0xBF, 0x04, 0x07}
94 DEFINE_GUIDSTRUCT("A7C7A5B1-5AF3-11D1-9CED-00A024BF0407", KSCATEGORY_SYSAUDIO
);
95 #define KSCATEGORY_SYSAUDIO DEFINE_GUIDNAMED(KSCATEGORY_SYSAUDIO)
97 #define STATIC_KSCATEGORY_WDMAUD \
98 0x3E227E76L, 0x690D, 0x11D2, {0x81, 0x61, 0x00, 0x00, 0xF8, 0x77, 0x5B, 0xF1}
99 DEFINE_GUIDSTRUCT("3E227E76-690D-11D2-8161-0000F8775BF1", KSCATEGORY_WDMAUD
);
100 #define KSCATEGORY_WDMAUD DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD)
102 #define STATIC_KSCATEGORY_AUDIO_GFX \
103 0x9BAF9572L, 0x340C, 0x11D3, {0xAB, 0xDC, 0x00, 0xA0, 0xC9, 0x0A, 0xB1, 0x6F}
104 DEFINE_GUIDSTRUCT("9BAF9572-340C-11D3-ABDC-00A0C90AB16F", KSCATEGORY_AUDIO_GFX
);
105 #define KSCATEGORY_AUDIO_GFX DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_GFX)
107 #define STATIC_KSCATEGORY_AUDIO_SPLITTER \
108 0x9EA331FAL, 0xB91B, 0x45F8, {0x92, 0x85, 0xBD, 0x2B, 0xC7, 0x7A, 0xFC, 0xDE}
109 DEFINE_GUIDSTRUCT("9EA331FA-B91B-45F8-9285-BD2BC77AFCDE", KSCATEGORY_AUDIO_SPLITTER
);
110 #define KSCATEGORY_AUDIO_SPLITTER DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_SPLITTER)
112 #define STATIC_KSCATEGORY_SYNTHESIZER STATIC_KSNODETYPE_SYNTHESIZER
113 #define KSCATEGORY_SYNTHESIZER KSNODETYPE_SYNTHESIZER
115 #define STATIC_KSCATEGORY_DRM_DESCRAMBLE STATIC_KSNODETYPE_DRM_DESCRAMBLE
116 #define KSCATEGORY_DRM_DESCRAMBLE KSNODETYPE_DRM_DESCRAMBLE
122 #define STATIC_KSNODETYPE_ADC\
123 0x4D837FE0L, 0xC555, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
124 DEFINE_GUIDSTRUCT("4D837FE0-C555-11D0-8A2B-00A0C9255AC1", KSNODETYPE_ADC
);
125 #define KSNODETYPE_ADC DEFINE_GUIDNAMED(KSNODETYPE_ADC)
127 #define STATIC_KSNODETYPE_3D_EFFECTS\
128 0x55515860L, 0xC559, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
129 DEFINE_GUIDSTRUCT("55515860-C559-11D0-8A2B-00A0C9255AC1", KSNODETYPE_3D_EFFECTS
);
130 #define KSNODETYPE_3D_EFFECTS DEFINE_GUIDNAMED(KSNODETYPE_3D_EFFECTS)
132 #define STATIC_KSNODETYPE_SUPERMIX\
133 0xE573ADC0L, 0xC555, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
134 DEFINE_GUIDSTRUCT("E573ADC0-C555-11D0-8A2B-00A0C9255AC1", KSNODETYPE_SUPERMIX
);
135 #define KSNODETYPE_SUPERMIX DEFINE_GUIDNAMED(KSNODETYPE_SUPERMIX)
137 #define STATIC_KSNODETYPE_SRC\
138 0x9DB7B9E0L, 0xC555, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
139 DEFINE_GUIDSTRUCT("9DB7B9E0-C555-11D0-8A2B-00A0C9255AC1", KSNODETYPE_SRC
);
140 #define KSNODETYPE_SRC DEFINE_GUIDNAMED(KSNODETYPE_SRC)
142 #define STATIC_KSNODETYPE_DAC\
143 0x507AE360L, 0xC554, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
144 DEFINE_GUIDSTRUCT("507AE360-C554-11D0-8A2B-00A0C9255AC1", KSNODETYPE_DAC
);
145 #define KSNODETYPE_DAC DEFINE_GUIDNAMED(KSNODETYPE_DAC)
147 #define STATIC_KSNODETYPE_SPDIF_INTERFACE\
148 DEFINE_USB_TERMINAL_GUID(0x0605)
149 DEFINE_GUIDSTRUCT("DFF21FE5-F70F-11D0-B917-00A0C9223196", KSNODETYPE_SPDIF_INTERFACE
);
150 #define KSNODETYPE_SPDIF_INTERFACE DEFINE_GUIDNAMED(KSNODETYPE_SPDIF_INTERFACE)
152 #define STATIC_KSNODETYPE_MICROPHONE\
153 DEFINE_USB_TERMINAL_GUID(0x0201)
154 DEFINE_GUIDSTRUCT("DFF21BE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_MICROPHONE
);
155 #define KSNODETYPE_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE)
157 #define STATIC_KSNODETYPE_CD_PLAYER\
158 DEFINE_USB_TERMINAL_GUID(0x0703)
159 DEFINE_GUIDSTRUCT("DFF220E3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_CD_PLAYER
);
160 #define KSNODETYPE_CD_PLAYER DEFINE_GUIDNAMED(KSNODETYPE_CD_PLAYER)
162 #define STATIC_KSNODETYPE_LINE_CONNECTOR\
163 DEFINE_USB_TERMINAL_GUID(0x0603)
164 DEFINE_GUIDSTRUCT("DFF21FE3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_LINE_CONNECTOR
);
165 #define KSNODETYPE_LINE_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_LINE_CONNECTOR)
167 #define STATIC_KSNODETYPE_ANALOG_CONNECTOR\
168 DEFINE_USB_TERMINAL_GUID(0x601)
169 DEFINE_GUIDSTRUCT("DFF21FE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_ANALOG_CONNECTOR
);
170 #define KSNODETYPE_ANALOG_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_ANALOG_CONNECTOR)
172 #define STATIC_KSNODETYPE_SPEAKER\
173 DEFINE_USB_TERMINAL_GUID(0x0301)
174 DEFINE_GUIDSTRUCT("DFF21CE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_SPEAKER
);
175 #define KSNODETYPE_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_SPEAKER)
177 #define STATIC_KSAUDFNAME_RECORDING_CONTROL\
178 0x185FEDFAL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
179 DEFINE_GUIDSTRUCT("185FEDFA-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_RECORDING_CONTROL
);
180 #define KSAUDFNAME_RECORDING_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_CONTROL)
182 #define STATIC_KSNODETYPE_VOLUME\
183 0x3A5ACC00L, 0xC557, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
184 DEFINE_GUIDSTRUCT("3A5ACC00-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_VOLUME
);
185 #define KSNODETYPE_VOLUME DEFINE_GUIDNAMED(KSNODETYPE_VOLUME)
187 #define STATIC_KSAUDFNAME_WAVE_VOLUME\
188 0x185FEDE5L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
189 DEFINE_GUIDSTRUCT("185FEDE5-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_WAVE_VOLUME
);
190 #define KSAUDFNAME_WAVE_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_VOLUME)
192 #define STATIC_KSNODETYPE_MUTE\
193 0x02B223C0L, 0xC557, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
194 DEFINE_GUIDSTRUCT("02B223C0-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_MUTE
);
195 #define KSNODETYPE_MUTE DEFINE_GUIDNAMED(KSNODETYPE_MUTE)
197 #define STATIC_KSAUDFNAME_WAVE_MUTE\
198 0x185FEDE6L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
199 DEFINE_GUIDSTRUCT("185FEDE6-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_WAVE_MUTE
);
200 #define KSAUDFNAME_WAVE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_MUTE)
202 #define STATIC_KSAUDFNAME_MIC_VOLUME\
203 0x185FEDEDL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
204 DEFINE_GUIDSTRUCT("185FEDED-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIC_VOLUME
);
205 #define KSAUDFNAME_MIC_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_VOLUME)
207 #define STATIC_KSNODETYPE_SUM\
208 0xDA441A60L, 0xC556, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
209 DEFINE_GUIDSTRUCT("DA441A60-C556-11D0-8A2B-00A0C9255AC1", KSNODETYPE_SUM
);
210 #define KSNODETYPE_SUM DEFINE_GUIDNAMED(KSNODETYPE_SUM)
212 #define STATIC_KSAUDFNAME_MASTER_VOLUME\
213 0x185FEDE3L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
214 DEFINE_GUIDSTRUCT("185FEDE3-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MASTER_VOLUME
);
215 #define KSAUDFNAME_MASTER_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_VOLUME)
217 #define STATIC_KSAUDFNAME_CD_VOLUME\
218 0x185FEDE9L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
219 DEFINE_GUIDSTRUCT("185FEDE9-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_CD_VOLUME
);
220 #define KSAUDFNAME_CD_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_CD_VOLUME)
222 #define STATIC_KSAUDFNAME_RECORDING_SOURCE\
223 0x185FEDEFL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
224 DEFINE_GUIDSTRUCT("185FEDEF-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_RECORDING_SOURCE
);
225 #define KSAUDFNAME_RECORDING_SOURCE DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_SOURCE)
227 #define STATIC_KSAUDFNAME_LINE_IN_VOLUME\
228 0x185FEDF4L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
229 DEFINE_GUIDSTRUCT("185FEDF4-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_LINE_IN_VOLUME
);
230 #define KSAUDFNAME_LINE_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_LINE_IN_VOLUME)
232 #define STATIC_KSAUDFNAME_AUX_VOLUME\
233 0x185FEDFCL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
234 DEFINE_GUIDSTRUCT("185FEDFC-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_AUX_VOLUME
);
235 #define KSAUDFNAME_AUX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_AUX_VOLUME)
237 #define STATIC_KSAUDFNAME_MIC_IN_VOLUME\
238 0x185FEDF5L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
239 DEFINE_GUIDSTRUCT("185FEDF5-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIC_IN_VOLUME
);
240 #define KSAUDFNAME_MIC_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_IN_VOLUME)
242 #define STATIC_KSNODETYPE_LOUDNESS\
243 0x41887440L, 0xC558, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
244 DEFINE_GUIDSTRUCT("41887440-C558-11D0-8A2B-00A0C9255AC1", KSNODETYPE_LOUDNESS
);
245 #define KSNODETYPE_LOUDNESS DEFINE_GUIDNAMED(KSNODETYPE_LOUDNESS)
247 #define STATIC_KSAUDFNAME_MICROPHONE_BOOST\
248 0x2bc31d6aL, 0x96e3, 0x11d2, 0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
249 DEFINE_GUIDSTRUCT("2BC31D6A-96E3-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_MICROPHONE_BOOST
);
250 #define KSAUDFNAME_MICROPHONE_BOOST DEFINE_GUIDNAMED(KSAUDFNAME_MICROPHONE_BOOST)
252 #define STATIC_KSAUDFNAME_CD_MUTE\
253 0x185FEDEAL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
254 DEFINE_GUIDSTRUCT("185FEDEA-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_CD_MUTE
);
255 #define KSAUDFNAME_CD_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_CD_MUTE)
257 #define STATIC_KSAUDFNAME_LINE_MUTE\
258 0x185FEDECL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
259 DEFINE_GUIDSTRUCT("185FEDEC-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_LINE_MUTE
);
260 #define KSAUDFNAME_LINE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_LINE_MUTE)
262 #define STATIC_KSAUDFNAME_MIC_MUTE\
263 0x185FEDEEL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
264 DEFINE_GUIDSTRUCT("185FEDEE-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIC_MUTE
);
265 #define KSAUDFNAME_MIC_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MIC_MUTE)
267 #define STATIC_KSAUDFNAME_AUX_MUTE\
268 0x185FEDFDL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
269 DEFINE_GUIDSTRUCT("185FEDFD-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_AUX_MUTE
);
270 #define KSAUDFNAME_AUX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_AUX_MUTE)
272 #define STATIC_KSAUDFNAME_VOLUME_CONTROL\
273 0x185FEDF7L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
274 DEFINE_GUIDSTRUCT("185FEDF7-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_VOLUME_CONTROL
);
275 #define KSAUDFNAME_VOLUME_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_VOLUME_CONTROL)
277 #define STATIC_KSNODETYPE_MUX\
278 0x2CEAF780L, 0xC556, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
279 DEFINE_GUIDSTRUCT("2CEAF780-C556-11D0-8A2B-00A0C9255AC1", KSNODETYPE_MUX
);
280 #define KSNODETYPE_MUX DEFINE_GUIDNAMED(KSNODETYPE_MUX)
282 #define STATIC_KSAUDFNAME_MASTER_MUTE\
283 0x185FEDE4L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
284 DEFINE_GUIDSTRUCT("185FEDE4-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MASTER_MUTE
);
285 #define KSAUDFNAME_MASTER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_MUTE)
292 #define STATIC_KSCATEGORY_WDMAUD_USE_PIN_NAME \
293 0x47A4FA20L, 0xA251, 0x11D1, {0xA0, 0x50, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
294 DEFINE_GUIDSTRUCT("47A4FA20-A251-11D1-A050-0000F8004788", KSCATEGORY_WDMAUD_USE_PIN_NAME
);
295 #define KSCATEGORY_WDMAUD_USE_PIN_NAME DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD_USE_PIN_NAME)
302 //#if defined(_INC_MMREG)
303 #if !defined( PACK_PRAGMAS_NOT_SUPPORTED )
304 #include <pshpack1.h>
307 KSDATAFORMAT DataFormat
;
308 WAVEFORMATEX WaveFormatEx
;
309 } KSDATAFORMAT_WAVEFORMATEX
, *PKSDATAFORMAT_WAVEFORMATEX
;
314 WAVEFORMATEX WaveFormatEx
;
315 } KSDSOUND_BUFFERDESC
, *PKSDSOUND_BUFFERDESC
;
318 KSDATAFORMAT DataFormat
;
319 KSDSOUND_BUFFERDESC BufferDesc
;
320 } KSDATAFORMAT_DSOUND
, *PKSDATAFORMAT_DSOUND
;
322 #if !defined( PACK_PRAGMAS_NOT_SUPPORTED )
329 KSDATARANGE DataRange
;
330 ULONG MaximumChannels
;
331 ULONG MinimumBitsPerSample
;
332 ULONG MaximumBitsPerSample
;
333 ULONG MinimumSampleFrequency
;
334 ULONG MaximumSampleFrequency
;
335 } KSDATARANGE_AUDIO
, *PKSDATARANGE_AUDIO
;
337 #if !defined( DEFINE_WAVEFORMATEX_GUID )
338 #define DEFINE_WAVEFORMATEX_GUID(x) (USHORT)(x), 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
341 #define STATIC_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX\
342 0x00000000L, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
343 DEFINE_GUIDSTRUCT("00000000-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_WAVEFORMATEX
);
344 #define KSDATAFORMAT_SUBTYPE_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_WAVEFORMATEX)
347 #define INIT_WAVEFORMATEX_GUID(Guid, x) \
349 *(Guid) = KSDATAFORMAT_SUBTYPE_WAVEFORMATEX; \
350 (Guid)->Data1 = (USHORT)(x); \
354 #define STATIC_KSDATAFORMAT_TYPE_VIDEO \
355 0x73646976L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
356 DEFINE_GUIDSTRUCT("73646976-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_VIDEO
);
357 #define KSDATAFORMAT_TYPE_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_VIDEO)
360 #define STATIC_KSDATAFORMAT_TYPE_AUDIO \
361 0x73647561L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
362 DEFINE_GUIDSTRUCT("73647561-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_AUDIO
);
363 #define KSDATAFORMAT_TYPE_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUDIO)
365 #define STATIC_KSDATAFORMAT_SPECIFIER_DSOUND\
366 0x518590a2L, 0xa184, 0x11d0, 0x85, 0x22, 0x00, 0xc0, 0x4f, 0xd9, 0xba, 0xf3
367 DEFINE_GUIDSTRUCT("518590a2-a184-11d0-8522-00c04fd9baf3", KSDATAFORMAT_SPECIFIER_DSOUND
);
368 #define KSDATAFORMAT_SPECIFIER_DSOUND DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DSOUND)
370 #define STATIC_KSDATAFORMAT_SUBTYPE_ANALOG\
371 0x6dba3190L, 0x67bd, 0x11cf, 0xa0, 0xf7, 0x00, 0x20, 0xaf, 0xd1, 0x56, 0xe4
372 DEFINE_GUIDSTRUCT("6dba3190-67bd-11cf-a0f7-0020afd156e4", KSDATAFORMAT_SUBTYPE_ANALOG
);
373 #define KSDATAFORMAT_SUBTYPE_ANALOG DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ANALOG)
377 #define STATIC_KSDATAFORMAT_TYPE_TEXT \
378 0x73747874L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
379 DEFINE_GUIDSTRUCT("73747874-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_TEXT
);
380 #define KSDATAFORMAT_TYPE_TEXT DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_TEXT)
382 #define STATIC_KSDATAFORMAT_TYPE_MUSIC \
383 0xE725D360L, 0x62CC, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
384 DEFINE_GUIDSTRUCT("E725D360-62CC-11CF-A5D6-28DB04C10000", KSDATAFORMAT_TYPE_MUSIC
);
385 #define KSDATAFORMAT_TYPE_MUSIC DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MUSIC)
388 #define STATIC_KSDATAFORMAT_TYPE_MIDI \
389 0x7364696DL, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
390 DEFINE_GUIDSTRUCT("7364696D-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_MIDI
);
391 #define KSDATAFORMAT_TYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MIDI)
393 #define STATIC_KSDATAFORMAT_SUBTYPE_MIDI \
394 0x1D262760L, 0xE957, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
395 DEFINE_GUIDSTRUCT("1D262760-E957-11CF-A5D6-28DB04C10000", KSDATAFORMAT_SUBTYPE_MIDI
);
396 #define KSDATAFORMAT_SUBTYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI)
398 #define STATIC_KSDATAFORMAT_SUBTYPE_PCM\
399 0x00000001L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
400 DEFINE_GUIDSTRUCT("00000001-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_PCM
);
401 #define KSDATAFORMAT_SUBTYPE_PCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_PCM)
404 #define STATIC_KSDATAFORMAT_SPECIFIER_WAVEFORMATEX\
405 0x05589f81L, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a
406 DEFINE_GUIDSTRUCT("05589f81-c356-11ce-bf01-00aa0055595a", KSDATAFORMAT_SPECIFIER_WAVEFORMATEX
);
407 #define KSDATAFORMAT_SPECIFIER_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
409 #define STATIC_KSDATAFORMAT_SUBTYPE_AC3_AUDIO\
410 0xe06d802cL, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
411 DEFINE_GUIDSTRUCT("e06d802c-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SUBTYPE_AC3_AUDIO
);
412 #define KSDATAFORMAT_SUBTYPE_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_AC3_AUDIO)
414 #define STATIC_KSDATAFORMAT_SPECIFIER_AC3_AUDIO\
415 0xe06d80e4L, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
416 DEFINE_GUIDSTRUCT("e06d80e4-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SPECIFIER_AC3_AUDIO
);
417 #define KSDATAFORMAT_SPECIFIER_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_AC3_AUDIO)
419 #define STATIC_KSPROPSETID_AC3\
420 0xBFABE720L, 0x6E1F, 0x11D0, 0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00
421 DEFINE_GUIDSTRUCT("BFABE720-6E1F-11D0-BCF2-444553540000", KSPROPSETID_AC3
);
422 #define KSPROPSETID_AC3 DEFINE_GUIDNAMED(KSPROPSETID_AC3)
424 #define STATIC_KSPROPSETID_Audio\
425 0x45FFAAA0L, 0x6E1B, 0x11D0, 0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00
426 DEFINE_GUIDSTRUCT("45FFAAA0-6E1B-11D0-BCF2-444553540000", KSPROPSETID_Audio
);
427 #define KSPROPSETID_Audio DEFINE_GUIDNAMED(KSPROPSETID_Audio)
430 KSPROPERTY_AUDIO_LATENCY
= 1,
431 KSPROPERTY_AUDIO_COPY_PROTECTION
,
432 KSPROPERTY_AUDIO_CHANNEL_CONFIG
,
433 KSPROPERTY_AUDIO_VOLUMELEVEL
,
434 KSPROPERTY_AUDIO_POSITION
,
435 KSPROPERTY_AUDIO_DYNAMIC_RANGE
,
436 KSPROPERTY_AUDIO_QUALITY
,
437 KSPROPERTY_AUDIO_SAMPLING_RATE
,
438 KSPROPERTY_AUDIO_DYNAMIC_SAMPLING_RATE
,
439 KSPROPERTY_AUDIO_MIX_LEVEL_TABLE
,
440 KSPROPERTY_AUDIO_MIX_LEVEL_CAPS
,
441 KSPROPERTY_AUDIO_MUX_SOURCE
,
442 KSPROPERTY_AUDIO_MUTE
,
443 KSPROPERTY_AUDIO_BASS
,
444 KSPROPERTY_AUDIO_MID
,
445 KSPROPERTY_AUDIO_TREBLE
,
446 KSPROPERTY_AUDIO_BASS_BOOST
,
447 KSPROPERTY_AUDIO_EQ_LEVEL
,
448 KSPROPERTY_AUDIO_NUM_EQ_BANDS
,
449 KSPROPERTY_AUDIO_EQ_BANDS
,
450 KSPROPERTY_AUDIO_AGC
,
451 KSPROPERTY_AUDIO_DELAY
,
452 KSPROPERTY_AUDIO_LOUDNESS
,
453 KSPROPERTY_AUDIO_WIDE_MODE
,
454 KSPROPERTY_AUDIO_WIDENESS
,
455 KSPROPERTY_AUDIO_REVERB_LEVEL
,
456 KSPROPERTY_AUDIO_CHORUS_LEVEL
,
457 KSPROPERTY_AUDIO_DEV_SPECIFIC
,
458 KSPROPERTY_AUDIO_DEMUX_DEST
,
459 KSPROPERTY_AUDIO_STEREO_ENHANCE
,
460 KSPROPERTY_AUDIO_MANUFACTURE_GUID
,
461 KSPROPERTY_AUDIO_PRODUCT_GUID
,
462 KSPROPERTY_AUDIO_CPU_RESOURCES
,
463 KSPROPERTY_AUDIO_STEREO_SPEAKER_GEOMETRY
,
464 KSPROPERTY_AUDIO_SURROUND_ENCODE
,
465 KSPROPERTY_AUDIO_3D_INTERFACE
467 #if (NTDDI_VERSION >= NTDDI_WINXP)
468 , KSPROPERTY_AUDIO_PEAKMETER
469 , KSPROPERTY_AUDIO_ALGORITHM_INSTANCE
470 , KSPROPERTY_AUDIO_FILTER_STATE
471 , KSPROPERTY_AUDIO_PREFERRED_STATUS
474 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
475 , KSPROPERTY_AUDIO_PEQ_MAX_BANDS
476 , KSPROPERTY_AUDIO_PEQ_NUM_BANDS
477 , KSPROPERTY_AUDIO_PEQ_BAND_CENTER_FREQ
478 , KSPROPERTY_AUDIO_PEQ_BAND_Q_FACTOR
479 , KSPROPERTY_AUDIO_PEQ_BAND_LEVEL
480 , KSPROPERTY_AUDIO_CHORUS_MODULATION_RATE
481 , KSPROPERTY_AUDIO_CHORUS_MODULATION_DEPTH
482 , KSPROPERTY_AUDIO_REVERB_TIME
483 , KSPROPERTY_AUDIO_REVERB_DELAY_FEEDBACK
484 , KSPROPERTY_AUDIO_POSITIONEX
485 , KSPROPERTY_AUDIO_MIC_ARRAY_GEOMETRY
495 #define STATIC_KSPROPSETID_Sysaudio \
496 0xCBE3FAA0L, 0xCC75, 0x11D0, {0xB4, 0x65, 0x00, 0x00, 0x1A, 0x18, 0x18, 0xE6}
497 DEFINE_GUIDSTRUCT("CBE3FAA0-CC75-11D0-B465-00001A1818E6", KSPROPSETID_Sysaudio
);
498 #define KSPROPSETID_Sysaudio DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio)
501 KSPROPERTY_SYSAUDIO_DEVICE_COUNT
= 1,
502 KSPROPERTY_SYSAUDIO_DEVICE_FRIENDLY_NAME
= 2,
503 KSPROPERTY_SYSAUDIO_DEVICE_INSTANCE
= 3,
504 KSPROPERTY_SYSAUDIO_DEVICE_INTERFACE_NAME
= 4,
505 KSPROPERTY_SYSAUDIO_SELECT_GRAPH
= 5,
506 KSPROPERTY_SYSAUDIO_CREATE_VIRTUAL_SOURCE
= 6,
507 KSPROPERTY_SYSAUDIO_DEVICE_DEFAULT
= 7,
508 KSPROPERTY_SYSAUDIO_INSTANCE_INFO
= 14,
509 KSPROPERTY_SYSAUDIO_COMPONENT_ID
= 16
510 } KSPROPERTY_SYSAUDIO
;
516 } SYSAUDIO_INSTANCE_INFO
, *PSYSAUDIO_INSTANCE_INFO
;
518 #define SYSAUDIO_FLAGS_DONT_COMBINE_PINS 0x00000001
521 #define STATIC_KSPROPSETID_Sysaudio_Pin \
522 0xA3A53220L, 0xC6E4, 0x11D0, {0xB4, 0x65, 0x00, 0x00, 0x1A, 0x18, 0x18, 0xE6}
523 DEFINE_GUIDSTRUCT("A3A53220-C6E4-11D0-B465-00001A1818E6", KSPROPSETID_Sysaudio_Pin
);
524 #define KSPROPSETID_Sysaudio_Pin DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio_Pin)
527 KSPROPERTY_SYSAUDIO_ATTACH_VIRTUAL_SOURCE
= 1,
528 } KSPROPERTY_SYSAUDIO_PIN
;
531 #define KSAUDIO_CPU_RESOURCES_NOT_HOST_CPU 0x00000000
532 #define KSAUDIO_CPU_RESOURCES_HOST_CPU 0x7FFFFFFF
534 #if (NTDDI_VERSION >= NTDDI_WINXP)
535 #define KSAUDIO_SPEAKER_DIRECTOUT 0
537 #define KSAUDIO_SPEAKER_MONO (SPEAKER_FRONT_CENTER)
538 #define KSAUDIO_SPEAKER_STEREO (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT)
539 #define KSAUDIO_SPEAKER_QUAD (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
540 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
541 #define KSAUDIO_SPEAKER_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
542 SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER)
543 #define KSAUDIO_SPEAKER_5POINT1 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
544 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
545 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
546 #define KSAUDIO_SPEAKER_7POINT1 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
547 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
548 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | \
549 SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER)
551 #if ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) || (NTDDI_VERSION >= NTDDI_WS03SP1)
553 #define KSAUDIO_SPEAKER_5POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
554 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
555 SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT)
556 #define KSAUDIO_SPEAKER_7POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
557 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
558 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | \
559 SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT)
560 #define KSAUDIO_SPEAKER_5POINT1_BACK KSAUDIO_SPEAKER_5POINT1
561 #define KSAUDIO_SPEAKER_7POINT1_WIDE KSAUDIO_SPEAKER_7POINT1
569 } KSNODEPROPERTY
, *PKSNODEPROPERTY
;
573 KSNODEPROPERTY NodeProperty
;
576 } KSNODEPROPERTY_AUDIO_CHANNEL
, *PKSNODEPROPERTY_AUDIO_CHANNEL
;
580 ULONGLONG PlayOffset
;
581 ULONGLONG WriteOffset
;
583 DWORDLONG PlayOffset
;
584 DWORDLONG WriteOffset
;
586 } KSAUDIO_POSITION
, *PKSAUDIO_POSITION
;
592 } KSRTAUDIO_HWLATENCY
, *PKSRTAUDIO_HWLATENCY
;
598 ULONGLONG Denominator
;
600 } KSRTAUDIO_HWREGISTER
, *PKSRTAUDIO_HWREGISTER
;