28#ifndef _INTERFACES_HPP_
29#define _INTERFACES_HPP_
34#define MAXLEN_DMA_BUFFER 0x18000
35#define MAX_OUTPUT_STREAMS 1
36#define MAX_INPUT_STREAMS 1
37#define MAX_AC3_INPUT_STREAMS 1
41#define MAX_CHANNELS_PCM 8
42#define MIN_BITS_PER_SAMPLE_PCM 16
43#define MAX_BITS_PER_SAMPLE_PCM 32
44#define MIN_SAMPLE_RATE 44100
45#define MAX_SAMPLE_RATE 96000
46#define MAX_SAMPLE_RATE_MULTI 48000
49#define MAX_CHANNELS_AC3 2
50#define MIN_BITS_PER_SAMPLE_AC3 16
51#define MAX_BITS_PER_SAMPLE_AC3 16
52#define MIN_SAMPLE_RATE_AC3 48000
53#define MAX_SAMPLE_RATE_AC3 48000
56#define MAX_CHANNELS_WMA 2
57#define MIN_BITS_PER_SAMPLE_WMA 16
58#define MAX_BITS_PER_SAMPLE_WMA 16
59#define MIN_SAMPLE_RATE_WMA 44100
60#define MAX_SAMPLE_RATE_WMA 48000
62#define PCM_OUT_STREAM 0
63#define PCM_IN_STREAM 1
64#define AC3_OUT_STREAM 2
68#define CHAN_MASTER (-1)
78#define KSSTATE_STOP_AC3 (KSSTATE)5
79#define KSSTATE_RUN_AC3 (KSSTATE)6
94 PVOID ResultantFormat,
95 PULONG ResultantFormatLength
266DEFINE_GUID(IID_ICMIAdapter, 0x34b338a2, 0xbb40, 0x4ecd, 0xb9, 0x7a, 0xae, 0xb0, 0x3f, 0x32, 0x58, 0x25);
268DEFINE_GUID(IID_ICMITopolgy, 0x60bb55cf, 0xc960, 0x4ddf, 0xb7, 0xa4, 0x24, 0x39, 0x78, 0xb2, 0xfe, 0x7b);
270DEFINE_GUID(IID_IMiniportWaveCMI, 0xe8698236, 0xd854, 0x4da7, 0xbf, 0x31, 0x83, 0x32, 0xc6, 0x14, 0xce, 0x91);
274#define STATIC_PRODUCT_CM8738 \
275 0x9db14e9a, 0x7be7, 0x480d, {0xa2, 0xfa, 0x32, 0x93, 0x24, 0x89, 0xde, 0x9c}
277#define PRODUCT_CM8738 DEFINE_GUIDNAMED(PRODUCT_CM8738)
280#define STATIC_COMPONENT_CM8738 \
281 0x9db14e9a, 0x7be7, 0x480d, {0xa2, 0xfa, 0x32, 0x93, 0x24, 0x89, 0xde, 0x9d}
283#define COMPONENT_CM8738 DEFINE_GUIDNAMED(COMPONENT_CM8738)
286#define STATIC_MANUFACTURER_CM8738 \
287 0x9db14e9a, 0x7be7, 0x480d, {0xa2, 0xfa, 0x32, 0x93, 0x24, 0x89, 0xde, 0x9e}
289#define MANUFACTURER_CM8738 DEFINE_GUIDNAMED(MANUFACTURER_CM8738)
292#define CMIPCI_VERSION 0x00
296#define STATIC_CMINAME_IEC_5V \
297 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF0}
299#define CMINAME_IEC_5V DEFINE_GUIDNAMED(CMINAME_IEC_5V)
302#define STATIC_CMINAME_IEC_OUT \
303 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF1}
305#define CMINAME_IEC_OUT DEFINE_GUIDNAMED(CMINAME_IEC_OUT)
308#define STATIC_CMINAME_IEC_INVERSE \
309 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF2}
311#define CMINAME_IEC_INVERSE DEFINE_GUIDNAMED(CMINAME_IEC_INVERSE)
314#define STATIC_CMINAME_IEC_MONITOR \
315 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF3}
317#define CMINAME_IEC_MONITOR DEFINE_GUIDNAMED(CMINAME_IEC_MONITOR)
320#define STATIC_CMINAME_DAC \
321 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF4}
323#define CMINAME_DAC DEFINE_GUIDNAMED(CMINAME_DAC)
326#define STATIC_CMINAME_IEC_SELECT \
327 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF5}
329#define CMINAME_IEC_SELECT DEFINE_GUIDNAMED(CMINAME_IEC_SELECT)
332#define STATIC_CMINAME_XCHG_FB \
333 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF6}
335#define CMINAME_XCHG_FB DEFINE_GUIDNAMED(CMINAME_XCHG_FB)
338#define STATIC_CMINAME_BASS2LINE \
339 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF7}
341#define CMINAME_BASS2LINE DEFINE_GUIDNAMED(CMINAME_BASS2LINE)
344#define STATIC_CMINAME_CENTER2LINE \
345 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF8}
347#define CMINAME_CENTER2LINE DEFINE_GUIDNAMED(CMINAME_CENTER2LINE)
350#define STATIC_CMINAME_IEC_COPYRIGHT \
351 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF9}
353#define CMINAME_IEC_COPYRIGHT DEFINE_GUIDNAMED(CMINAME_IEC_COPYRIGHT)
356#define STATIC_CMINAME_IEC_POLVALID \
357 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xFA}
359#define CMINAME_IEC_POLVALID DEFINE_GUIDNAMED(CMINAME_IEC_POLVALID)
362#define STATIC_CMINAME_IEC_LOOP \
363 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xFB}
365#define CMINAME_IEC_LOOP DEFINE_GUIDNAMED(CMINAME_IEC_LOOP)
368#define STATIC_CMINAME_REAR2LINE \
369 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xFC}
371#define CMINAME_REAR2LINE DEFINE_GUIDNAMED(CMINAME_REAR2LINE)
374#define STATIC_CMINAME_CENTER2MIC \
375 0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xFD}
377#define CMINAME_CENTER2MIC DEFINE_GUIDNAMED(CMINAME_CENTER2MIC)
#define DECLARE_INTERFACE_(i, b)
ICMITopology * PCMITOPOLOGY
CMI8738Info * PCMI8738Info
#define MANUFACTURER_CM8738
#define CMINAME_IEC_MONITOR
#define CMINAME_REAR2LINE
#define CMINAME_IEC_POLVALID
@ KSNODE_TOPO_MICOUT_MUTE
@ KSNODE_TOPO_CENTER2LINE
@ KSNODE_TOPO_MICOUT_LOUDNESS
@ KSNODE_TOPO_MICIN_VOLUME
@ KSNODE_TOPO_MICOUT_VOLUME
@ KSNODE_TOPO_AUX_MUTE_IN
@ KSNODE_TOPO_SPDIF_AC3_MUX
@ KSNODE_TOPO_LINEOUT_VOLUME
@ KSNODE_TOPO_SPDIF_AC3_MUTE
@ KSNODE_TOPO_IEC_POLVALID
@ KSNODE_TOPO_LINEIN_MUTE
@ KSNODE_TOPO_LINEOUT_MIX
@ KSNODE_TOPO_LINEIN_VOLUME
@ KSNODE_TOPO_WAVEOUT_MUTE
@ KSNODE_TOPO_IEC_INVERSE
@ KSNODE_TOPO_WAVEOUT_VOLUME
@ KSNODE_TOPO_IEC_COPYRIGHT
@ KSNODE_TOPO_WAVEOUT_MUTE_IN
@ KSNODE_TOPO_IEC_MONITOR
@ KSNODE_TOPO_LINEIN_MUTE_IN
@ KSNODE_TOPO_MIC_MUTE_IN
@ KSNODE_TOPO_MASTER_MUTE_DUMMY
@ KSNODE_TOPO_MICIN_LOUDNESS
#define CMINAME_CENTER2MIC
#define CMINAME_IEC_SELECT
#define CMINAME_IEC_INVERSE
#define CMINAME_BASS2LINE
#define CMINAME_CENTER2LINE
@ PIN_WAVE_CAPTURE_SOURCE
@ PIN_WAVE_AC3_RENDER_SINK
@ PIN_WAVE_AC3_RENDER_SOURCE
#define CMINAME_IEC_COPYRIGHT
IMiniportWaveCMI * PCMIWAVE
ICMIAdapter * PCMIADAPTER
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
#define DEFINE_GUIDSTRUCT(guid, name)
IInterruptSync * PINTERRUPTSYNC
IResourceList * PRESOURCELIST
IPortTopology * PPORTTOPOLOGY
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
PCMITOPOLOGY TopoMiniport
bool enableSPDIFInMonitor
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFREQUEST _In_ size_t OutputBufferLength
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList