ReactOS 0.4.15-dev-7918-g2a2556c
shared.h File Reference
#include <portcls.h>
#include <stdunk.h>
#include "ichreg.h"
#include "ac97reg.h"
#include "debug.h"
Include dependency graph for shared.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PC_IMPLEMENTATION   1
 
#define WIN9X_COMPAT_SPINLOCK
 
#define GZCALL
 

Typedefs

typedef IAC97MiniportTopology * PAC97MINIPORTTOPOLOGY
 
typedef IAC97AdapterCommon * PADAPTERCOMMON
 

Enumerations

enum  TopoPinConfig {
  PINC_PCBEEP_PRESENT = 0 , PINC_PHONE_PRESENT , PINC_MIC2_PRESENT , PINC_VIDEO_PRESENT ,
  PINC_AUX_PRESENT , PINC_HPOUT_PRESENT , PINC_MONOOUT_PRESENT , PINC_MICIN_PRESENT ,
  PINC_MIC_PRESENT , PINC_LINEIN_PRESENT , PINC_CD_PRESENT , PINC_SURROUND_PRESENT ,
  PINC_CENTER_LFE_PRESENT , PINC_TOP_ELEMENT
}
 
enum  TopoNodeConfig {
  NODEC_3D_PRESENT = 0 , NODEC_TONE_PRESENT , NODEC_LOUDNESS_PRESENT , NODEC_SIMUL_STEREO_PRESENT ,
  NODEC_6BIT_MASTER_VOLUME , NODEC_6BIT_HPOUT_VOLUME , NODEC_6BIT_MONOOUT_VOLUME , NODEC_6BIT_SURROUND_VOLUME ,
  NODEC_6BIT_CENTER_LFE_VOLUME , NODEC_3D_CENTER_ADJUSTABLE , NODEC_3D_DEPTH_ADJUSTABLE , NODEC_PCM_VARIABLERATE_SUPPORTED ,
  NODEC_PCM_VSR_INDEPENDENT_RATES , NODEC_PCM_DOUBLERATE_SUPPORTED , NODEC_MIC_VARIABLERATE_SUPPORTED , NODEC_CENTER_DAC_PRESENT ,
  NODEC_SURROUND_DAC_PRESENT , NODEC_LFE_DAC_PRESENT , NODEC_TOP_ELEMENT
}
 
enum  TopoPins {
  PIN_WAVEOUT_SOURCE = 0 , PIN_PCBEEP_SOURCE , PIN_PHONE_SOURCE , PIN_MIC_SOURCE ,
  PIN_LINEIN_SOURCE , PIN_CD_SOURCE , PIN_VIDEO_SOURCE , PIN_AUX_SOURCE ,
  PIN_VIRT_3D_CENTER_SOURCE , PIN_VIRT_3D_DEPTH_SOURCE , PIN_VIRT_3D_MIX_MONO_SOURCE , PIN_VIRT_TONE_MIX_SOURCE ,
  PIN_VIRT_TONE_MIX_MONO_SOURCE , PIN_VIRT_SURROUND_SOURCE , PIN_VIRT_CENTER_SOURCE , PIN_VIRT_LFE_SOURCE ,
  PIN_VIRT_FRONT_SOURCE , PIN_MASTEROUT_DEST , PIN_HPOUT_SOURCE , PIN_MONOOUT_DEST ,
  PIN_WAVEIN_DEST , PIN_MICIN_DEST , PIN_TOP_ELEMENT , PIN_INVALID
}
 
enum  TopoNodes {
  NODE_WAVEOUT_VOLUME = 0 , NODE_WAVEOUT_MUTE , NODE_VIRT_WAVEOUT_3D_BYPASS , NODE_PCBEEP_VOLUME ,
  NODE_PCBEEP_MUTE , NODE_PHONE_VOLUME , NODE_PHONE_MUTE , NODE_MIC_SELECT ,
  NODE_MIC_BOOST , NODE_MIC_VOLUME , NODE_MIC_MUTE , NODE_LINEIN_VOLUME ,
  NODE_LINEIN_MUTE , NODE_CD_VOLUME , NODE_CD_MUTE , NODE_VIDEO_VOLUME ,
  NODE_VIDEO_MUTE , NODE_AUX_VOLUME , NODE_AUX_MUTE , NODE_MAIN_MIX ,
  NODE_VIRT_3D_CENTER , NODE_VIRT_3D_DEPTH , NODE_VIRT_3D_ENABLE , NODE_BEEP_MIX ,
  NODE_BASS , NODE_TREBLE , NODE_LOUDNESS , NODE_SIMUL_STEREO ,
  NODE_MASTEROUT_VOLUME , NODE_MASTEROUT_MUTE , NODE_HPOUT_VOLUME , NODE_HPOUT_MUTE ,
  NODE_MONOOUT_SELECT , NODE_VIRT_MONOOUT_VOLUME1 , NODE_VIRT_MONOOUT_VOLUME2 , NODE_WAVEIN_SELECT ,
  NODE_VIRT_MASTER_INPUT_VOLUME1 , NODE_VIRT_MASTER_INPUT_VOLUME2 , NODE_VIRT_MASTER_INPUT_VOLUME3 , NODE_VIRT_MASTER_INPUT_VOLUME4 ,
  NODE_VIRT_MASTER_INPUT_VOLUME5 , NODE_VIRT_MASTER_INPUT_VOLUME6 , NODE_VIRT_MASTER_INPUT_VOLUME7 , NODE_VIRT_MASTER_INPUT_VOLUME8 ,
  NODE_MICIN_VOLUME , NODE_MICIN_MUTE , NODE_SURROUND_VOLUME , NODE_SURROUND_MUTE ,
  NODE_CENTER_VOLUME , NODE_CENTER_MUTE , NODE_LFE_VOLUME , NODE_LFE_MUTE ,
  NODE_FRONT_VOLUME , NODE_FRONT_MUTE , NODE_VIRT_MASTERMONO_VOLUME , NODE_VIRT_MASTERMONO_MUTE ,
  NODE_TOP_ELEMENT , NODE_INVALID
}
 
enum  WavePins {
  PIN_WAVEOUT = 0 , PIN_WAVEOUT_BRIDGE , PIN_WAVEIN , PIN_WAVEIN_BRIDGE ,
  PIN_MICIN , PIN_MICIN_BRIDGE
}
 
enum  WaveNodes { NODE_WAVEOUT_DAC , NODE_WAVEIN_ADC , NODE_MICIN_ADC }
 

Functions

NTSTATUS NewAdapterCommon (OUT PUNKNOWN *Unknown, IN REFCLSID, IN PUNKNOWN UnknownOuter OPTIONAL, _When_((PoolType &NonPagedPoolMustSucceed) !=0, __drv_reportError("Must succeed pool allocations are forbidden. " "Allocation failures cause a system crash")) IN POOL_TYPE PoolType)
 
 DECLARE_INTERFACE_ (IAC97MiniportTopology, IMiniportTopology)
 
 DECLARE_INTERFACE_ (IAC97AdapterCommon, IUnknown)
 
 DEFINE_GUID (IID_IAC97AdapterCommon, 0x77481fa0, 0x1ef2, 0x11d2, 0x88, 0x3a, 0x0, 0x80, 0xc7, 0x65, 0x64, 0x7d)
 
 DEFINE_GUID (IID_IAC97MiniportTopology, 0x245ae964, 0x49c8, 0x11d2, 0x95, 0xd7, 0x0, 0xc0, 0x4f, 0xb9, 0x25, 0xd3)
 

Variables

const ULONG PoolTag = '79CA'
 

Macro Definition Documentation

◆ GZCALL

#define GZCALL

Definition at line 46 of file shared.h.

◆ PC_IMPLEMENTATION

#define PC_IMPLEMENTATION   1

Definition at line 13 of file shared.h.

◆ WIN9X_COMPAT_SPINLOCK

#define WIN9X_COMPAT_SPINLOCK

Definition at line 18 of file shared.h.

Typedef Documentation

◆ PAC97MINIPORTTOPOLOGY

typedef IAC97MiniportTopology* PAC97MINIPORTTOPOLOGY

Definition at line 380 of file shared.h.

◆ PADAPTERCOMMON

typedef IAC97AdapterCommon* PADAPTERCOMMON

Definition at line 488 of file shared.h.

Enumeration Type Documentation

◆ TopoNodeConfig

Enumerator
NODEC_3D_PRESENT 
NODEC_TONE_PRESENT 
NODEC_LOUDNESS_PRESENT 
NODEC_SIMUL_STEREO_PRESENT 
NODEC_6BIT_MASTER_VOLUME 
NODEC_6BIT_HPOUT_VOLUME 
NODEC_6BIT_MONOOUT_VOLUME 
NODEC_6BIT_SURROUND_VOLUME 
NODEC_6BIT_CENTER_LFE_VOLUME 
NODEC_3D_CENTER_ADJUSTABLE 
NODEC_3D_DEPTH_ADJUSTABLE 
NODEC_PCM_VARIABLERATE_SUPPORTED 
NODEC_PCM_VSR_INDEPENDENT_RATES 
NODEC_PCM_DOUBLERATE_SUPPORTED 
NODEC_MIC_VARIABLERATE_SUPPORTED 
NODEC_CENTER_DAC_PRESENT 
NODEC_SURROUND_DAC_PRESENT 
NODEC_LFE_DAC_PRESENT 
NODEC_TOP_ELEMENT 

Definition at line 83 of file shared.h.

84{
103 NODEC_TOP_ELEMENT // number of NODES's
104};
@ NODEC_6BIT_CENTER_LFE_VOLUME
Definition: shared.h:93
@ NODEC_3D_DEPTH_ADJUSTABLE
Definition: shared.h:95
@ NODEC_PCM_DOUBLERATE_SUPPORTED
Definition: shared.h:98
@ NODEC_TONE_PRESENT
Definition: shared.h:86
@ NODEC_MIC_VARIABLERATE_SUPPORTED
Definition: shared.h:99
@ NODEC_6BIT_HPOUT_VOLUME
Definition: shared.h:90
@ NODEC_SURROUND_DAC_PRESENT
Definition: shared.h:101
@ NODEC_CENTER_DAC_PRESENT
Definition: shared.h:100
@ NODEC_PCM_VARIABLERATE_SUPPORTED
Definition: shared.h:96
@ NODEC_3D_CENTER_ADJUSTABLE
Definition: shared.h:94
@ NODEC_LFE_DAC_PRESENT
Definition: shared.h:102
@ NODEC_LOUDNESS_PRESENT
Definition: shared.h:87
@ NODEC_6BIT_SURROUND_VOLUME
Definition: shared.h:92
@ NODEC_3D_PRESENT
Definition: shared.h:85
@ NODEC_SIMUL_STEREO_PRESENT
Definition: shared.h:88
@ NODEC_TOP_ELEMENT
Definition: shared.h:103
@ NODEC_6BIT_MONOOUT_VOLUME
Definition: shared.h:91
@ NODEC_6BIT_MASTER_VOLUME
Definition: shared.h:89
@ NODEC_PCM_VSR_INDEPENDENT_RATES
Definition: shared.h:97

◆ TopoNodes

Enumerator
NODE_WAVEOUT_VOLUME 
NODE_WAVEOUT_MUTE 
NODE_VIRT_WAVEOUT_3D_BYPASS 
NODE_PCBEEP_VOLUME 
NODE_PCBEEP_MUTE 
NODE_PHONE_VOLUME 
NODE_PHONE_MUTE 
NODE_MIC_SELECT 
NODE_MIC_BOOST 
NODE_MIC_VOLUME 
NODE_MIC_MUTE 
NODE_LINEIN_VOLUME 
NODE_LINEIN_MUTE 
NODE_CD_VOLUME 
NODE_CD_MUTE 
NODE_VIDEO_VOLUME 
NODE_VIDEO_MUTE 
NODE_AUX_VOLUME 
NODE_AUX_MUTE 
NODE_MAIN_MIX 
NODE_VIRT_3D_CENTER 
NODE_VIRT_3D_DEPTH 
NODE_VIRT_3D_ENABLE 
NODE_BEEP_MIX 
NODE_BASS 
NODE_TREBLE 
NODE_LOUDNESS 
NODE_SIMUL_STEREO 
NODE_MASTEROUT_VOLUME 
NODE_MASTEROUT_MUTE 
NODE_HPOUT_VOLUME 
NODE_HPOUT_MUTE 
NODE_MONOOUT_SELECT 
NODE_VIRT_MONOOUT_VOLUME1 
NODE_VIRT_MONOOUT_VOLUME2 
NODE_WAVEIN_SELECT 
NODE_VIRT_MASTER_INPUT_VOLUME1 
NODE_VIRT_MASTER_INPUT_VOLUME2 
NODE_VIRT_MASTER_INPUT_VOLUME3 
NODE_VIRT_MASTER_INPUT_VOLUME4 
NODE_VIRT_MASTER_INPUT_VOLUME5 
NODE_VIRT_MASTER_INPUT_VOLUME6 
NODE_VIRT_MASTER_INPUT_VOLUME7 
NODE_VIRT_MASTER_INPUT_VOLUME8 
NODE_MICIN_VOLUME 
NODE_MICIN_MUTE 
NODE_SURROUND_VOLUME 
NODE_SURROUND_MUTE 
NODE_CENTER_VOLUME 
NODE_CENTER_MUTE 
NODE_LFE_VOLUME 
NODE_LFE_MUTE 
NODE_FRONT_VOLUME 
NODE_FRONT_MUTE 
NODE_VIRT_MASTERMONO_VOLUME 
NODE_VIRT_MASTERMONO_MUTE 
NODE_TOP_ELEMENT 
NODE_INVALID 

Definition at line 185 of file shared.h.

186{
189 NODE_VIRT_WAVEOUT_3D_BYPASS, // exposed as AGC control
207 NODE_VIRT_3D_CENTER, // we have no 3D control type, so we
208 NODE_VIRT_3D_DEPTH, // expose 2 volume controls and 2 mute
209 NODE_VIRT_3D_ENABLE, // checkboxs (the other is bypass).
211 NODE_BASS,
220 NODE_VIRT_MONOOUT_VOLUME1, // each mono out must have volume
223 NODE_VIRT_MASTER_INPUT_VOLUME1, // boy, each master input must have a
241 NODE_VIRT_MASTERMONO_VOLUME, // used for multichannel or headphone
243 NODE_TOP_ELEMENT, // number of nodes
245};
@ NODE_MASTEROUT_VOLUME
Definition: shared.h:215
@ NODE_HPOUT_MUTE
Definition: shared.h:218
@ NODE_TREBLE
Definition: shared.h:212
@ NODE_WAVEOUT_MUTE
Definition: shared.h:188
@ NODE_PHONE_VOLUME
Definition: shared.h:192
@ NODE_VIRT_MASTER_INPUT_VOLUME1
Definition: shared.h:223
@ NODE_MICIN_MUTE
Definition: shared.h:232
@ NODE_LFE_MUTE
Definition: shared.h:238
@ NODE_BEEP_MIX
Definition: shared.h:210
@ NODE_VIRT_MONOOUT_VOLUME1
Definition: shared.h:220
@ NODE_PHONE_MUTE
Definition: shared.h:193
@ NODE_MIC_BOOST
Definition: shared.h:195
@ NODE_WAVEIN_SELECT
Definition: shared.h:222
@ NODE_HPOUT_VOLUME
Definition: shared.h:217
@ NODE_VIRT_MONOOUT_VOLUME2
Definition: shared.h:221
@ NODE_CENTER_MUTE
Definition: shared.h:236
@ NODE_LFE_VOLUME
Definition: shared.h:237
@ NODE_VIRT_MASTER_INPUT_VOLUME3
Definition: shared.h:225
@ NODE_VIRT_MASTER_INPUT_VOLUME8
Definition: shared.h:230
@ NODE_SIMUL_STEREO
Definition: shared.h:214
@ NODE_VIRT_MASTERMONO_MUTE
Definition: shared.h:242
@ NODE_AUX_VOLUME
Definition: shared.h:204
@ NODE_PCBEEP_MUTE
Definition: shared.h:191
@ NODE_VIRT_3D_CENTER
Definition: shared.h:207
@ NODE_LINEIN_VOLUME
Definition: shared.h:198
@ NODE_MIC_MUTE
Definition: shared.h:197
@ NODE_VIRT_WAVEOUT_3D_BYPASS
Definition: shared.h:189
@ NODE_VIRT_3D_ENABLE
Definition: shared.h:209
@ NODE_TOP_ELEMENT
Definition: shared.h:243
@ NODE_VIRT_MASTER_INPUT_VOLUME2
Definition: shared.h:224
@ NODE_CD_VOLUME
Definition: shared.h:200
@ NODE_FRONT_VOLUME
Definition: shared.h:239
@ NODE_MIC_VOLUME
Definition: shared.h:196
@ NODE_BASS
Definition: shared.h:211
@ NODE_LINEIN_MUTE
Definition: shared.h:199
@ NODE_VIRT_MASTER_INPUT_VOLUME6
Definition: shared.h:228
@ NODE_PCBEEP_VOLUME
Definition: shared.h:190
@ NODE_VIRT_MASTER_INPUT_VOLUME5
Definition: shared.h:227
@ NODE_LOUDNESS
Definition: shared.h:213
@ NODE_VIDEO_MUTE
Definition: shared.h:203
@ NODE_CENTER_VOLUME
Definition: shared.h:235
@ NODE_CD_MUTE
Definition: shared.h:201
@ NODE_VIRT_MASTER_INPUT_VOLUME7
Definition: shared.h:229
@ NODE_WAVEOUT_VOLUME
Definition: shared.h:187
@ NODE_FRONT_MUTE
Definition: shared.h:240
@ NODE_INVALID
Definition: shared.h:244
@ NODE_VIRT_MASTERMONO_VOLUME
Definition: shared.h:241
@ NODE_VIRT_3D_DEPTH
Definition: shared.h:208
@ NODE_SURROUND_VOLUME
Definition: shared.h:233
@ NODE_MASTEROUT_MUTE
Definition: shared.h:216
@ NODE_SURROUND_MUTE
Definition: shared.h:234
@ NODE_VIDEO_VOLUME
Definition: shared.h:202
@ NODE_MONOOUT_SELECT
Definition: shared.h:219
@ NODE_AUX_MUTE
Definition: shared.h:205
@ NODE_MICIN_VOLUME
Definition: shared.h:231
@ NODE_VIRT_MASTER_INPUT_VOLUME4
Definition: shared.h:226
@ NODE_MIC_SELECT
Definition: shared.h:194
@ NODE_MAIN_MIX
Definition: shared.h:206

◆ TopoPinConfig

Enumerator
PINC_PCBEEP_PRESENT 
PINC_PHONE_PRESENT 
PINC_MIC2_PRESENT 
PINC_VIDEO_PRESENT 
PINC_AUX_PRESENT 
PINC_HPOUT_PRESENT 
PINC_MONOOUT_PRESENT 
PINC_MICIN_PRESENT 
PINC_MIC_PRESENT 
PINC_LINEIN_PRESENT 
PINC_CD_PRESENT 
PINC_SURROUND_PRESENT 
PINC_CENTER_LFE_PRESENT 
PINC_TOP_ELEMENT 

Definition at line 61 of file shared.h.

62{
76 PINC_TOP_ELEMENT // number of PINC's
77};
@ PINC_LINEIN_PRESENT
Definition: shared.h:72
@ PINC_MONOOUT_PRESENT
Definition: shared.h:69
@ PINC_VIDEO_PRESENT
Definition: shared.h:66
@ PINC_MIC2_PRESENT
Definition: shared.h:65
@ PINC_PCBEEP_PRESENT
Definition: shared.h:63
@ PINC_TOP_ELEMENT
Definition: shared.h:76
@ PINC_PHONE_PRESENT
Definition: shared.h:64
@ PINC_AUX_PRESENT
Definition: shared.h:67
@ PINC_SURROUND_PRESENT
Definition: shared.h:74
@ PINC_CENTER_LFE_PRESENT
Definition: shared.h:75
@ PINC_HPOUT_PRESENT
Definition: shared.h:68
@ PINC_CD_PRESENT
Definition: shared.h:73
@ PINC_MICIN_PRESENT
Definition: shared.h:70
@ PINC_MIC_PRESENT
Definition: shared.h:71

◆ TopoPins

Enumerator
PIN_WAVEOUT_SOURCE 
PIN_PCBEEP_SOURCE 
PIN_PHONE_SOURCE 
PIN_MIC_SOURCE 
PIN_LINEIN_SOURCE 
PIN_CD_SOURCE 
PIN_VIDEO_SOURCE 
PIN_AUX_SOURCE 
PIN_VIRT_3D_CENTER_SOURCE 
PIN_VIRT_3D_DEPTH_SOURCE 
PIN_VIRT_3D_MIX_MONO_SOURCE 
PIN_VIRT_TONE_MIX_SOURCE 
PIN_VIRT_TONE_MIX_MONO_SOURCE 
PIN_VIRT_SURROUND_SOURCE 
PIN_VIRT_CENTER_SOURCE 
PIN_VIRT_LFE_SOURCE 
PIN_VIRT_FRONT_SOURCE 
PIN_MASTEROUT_DEST 
PIN_HPOUT_SOURCE 
PIN_MONOOUT_DEST 
PIN_WAVEIN_DEST 
PIN_MICIN_DEST 
PIN_TOP_ELEMENT 
PIN_INVALID 

Definition at line 111 of file shared.h.

112{
113 // Source is something that goes into the AC97, dest goes out.
136 PIN_TOP_ELEMENT, // number of pins
138};
@ PIN_LINEIN_SOURCE
Definition: shared.h:118
@ PIN_VIRT_CENTER_SOURCE
Definition: shared.h:128
@ PIN_VIRT_3D_CENTER_SOURCE
Definition: shared.h:122
@ PIN_PCBEEP_SOURCE
Definition: shared.h:115
@ PIN_VIRT_TONE_MIX_SOURCE
Definition: shared.h:125
@ PIN_MICIN_DEST
Definition: shared.h:135
@ PIN_TOP_ELEMENT
Definition: shared.h:136
@ PIN_VIRT_LFE_SOURCE
Definition: shared.h:129
@ PIN_MIC_SOURCE
Definition: shared.h:117
@ PIN_VIDEO_SOURCE
Definition: shared.h:120
@ PIN_VIRT_TONE_MIX_MONO_SOURCE
Definition: shared.h:126
@ PIN_AUX_SOURCE
Definition: shared.h:121
@ PIN_CD_SOURCE
Definition: shared.h:119
@ PIN_INVALID
Definition: shared.h:137
@ PIN_WAVEOUT_SOURCE
Definition: shared.h:114
@ PIN_VIRT_SURROUND_SOURCE
Definition: shared.h:127
@ PIN_PHONE_SOURCE
Definition: shared.h:116
@ PIN_MONOOUT_DEST
Definition: shared.h:133
@ PIN_VIRT_3D_MIX_MONO_SOURCE
Definition: shared.h:124
@ PIN_VIRT_FRONT_SOURCE
Definition: shared.h:130
@ PIN_VIRT_3D_DEPTH_SOURCE
Definition: shared.h:123
@ PIN_WAVEIN_DEST
Definition: shared.h:134
@ PIN_HPOUT_SOURCE
Definition: shared.h:132
@ PIN_MASTEROUT_DEST
Definition: shared.h:131

◆ WaveNodes

Enumerator
NODE_WAVEOUT_DAC 
NODE_WAVEIN_ADC 
NODE_MICIN_ADC 

Definition at line 329 of file shared.h.

330{
334};
@ NODE_WAVEOUT_DAC
Definition: shared.h:331
@ NODE_MICIN_ADC
Definition: shared.h:333
@ NODE_WAVEIN_ADC
Definition: shared.h:332

◆ WavePins

Enumerator
PIN_WAVEOUT 
PIN_WAVEOUT_BRIDGE 
PIN_WAVEIN 
PIN_WAVEIN_BRIDGE 
PIN_MICIN 
PIN_MICIN_BRIDGE 

Definition at line 316 of file shared.h.

317{
318 PIN_WAVEOUT = 0,
322 PIN_MICIN,
324};
@ PIN_MICIN
Definition: shared.h:322
@ PIN_WAVEOUT
Definition: shared.h:318
@ PIN_WAVEOUT_BRIDGE
Definition: shared.h:319
@ PIN_WAVEIN_BRIDGE
Definition: shared.h:321
@ PIN_WAVEIN
Definition: shared.h:320
@ PIN_MICIN_BRIDGE
Definition: shared.h:323

Function Documentation

◆ DECLARE_INTERFACE_() [1/2]

DECLARE_INTERFACE_ ( IAC97AdapterCommon  ,
IUnknown   
)

Definition at line 387 of file shared.h.

388{
390 ( THIS_
393 ) PURE;
394 STDMETHOD_(BOOL,GetPinConfig)
395 ( THIS_
397 ) PURE;
398 STDMETHOD_(void,SetPinConfig)
399 ( THIS_
401 IN BOOL
402 ) PURE;
403 STDMETHOD_(BOOL,GetNodeConfig)
404 ( THIS_
406 ) PURE;
407 STDMETHOD_(void,SetNodeConfig)
408 ( THIS_
410 IN BOOL
411 ) PURE;
412 STDMETHOD_(AC97Register,GetNodeReg)
413 ( THIS_
415 ) PURE;
416 STDMETHOD_(WORD,GetNodeMask)
417 ( THIS_
419 ) PURE;
420 STDMETHOD_(NTSTATUS,ReadCodecRegister)
421 ( THIS_
423 _Out_ OUT PWORD wData
424 ) PURE;
425 STDMETHOD_(NTSTATUS,WriteCodecRegister)
426 ( THIS_
428 _In_ IN WORD wData,
429 _In_ IN WORD wMask
430 ) PURE;
431 STDMETHOD_(UCHAR,ReadBMControlRegister8)
432 ( THIS_
434 ) PURE;
435 STDMETHOD_(USHORT,ReadBMControlRegister16)
436 ( THIS_
438 ) PURE;
439 STDMETHOD_(ULONG,ReadBMControlRegister32)
440 ( THIS_
442 ) PURE;
443 STDMETHOD_(void,WriteBMControlRegister)
444 ( THIS_
447 ) PURE;
448 STDMETHOD_(void,WriteBMControlRegister)
449 ( THIS_
452 ) PURE;
453 STDMETHOD_(void,WriteBMControlRegister)
454 ( THIS_
457 ) PURE;
458 STDMETHOD_(NTSTATUS, RestoreCodecRegisters)
459 ( THIS_
460 void
461 ) PURE;
462 STDMETHOD_(NTSTATUS, ProgramSampleRate)
463 ( THIS_
465 IN DWORD dwSampleRate
466 ) PURE;
467 // Used for DRM:
468 STDMETHOD_(void, SetMiniportTopology)
469 ( THIS_
471 ) PURE;
472 STDMETHOD_(PAC97MINIPORTTOPOLOGY, GetMiniportTopology)
473 ( THIS_
474 void
475 ) PURE;
476 // These are used by the wave miniport.
477 STDMETHOD_(void, ReadChannelConfigDefault)
478 ( THIS_
479 PDWORD pwChannelConfig,
480 PWORD pwChannels
481 ) PURE;
482 STDMETHOD_(void, WriteChannelConfigDefault)
483 ( THIS_
484 DWORD dwChannelConfig
485 ) PURE;
486};
AC97Register
Definition: ac97reg.h:17
@ AC97REG_INVALID
Definition: ac97reg.h:60
LONG NTSTATUS
Definition: precomp.h:26
#define PURE
Definition: basetyps.h:64
#define THIS_
Definition: basetyps.h:65
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
TopoPinConfig
Definition: shared.h:62
IAC97MiniportTopology * PAC97MINIPORTTOPOLOGY
Definition: shared.h:380
TopoNodes
Definition: shared.h:186
TopoNodeConfig
Definition: shared.h:84
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define _In_range_(lb, ub)
Definition: ms_sal.h:571
#define BOOL
Definition: nt_native.h:43
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
WORD * PWORD
Definition: pedump.c:67
DWORD * PDWORD
Definition: pedump.c:68
unsigned short USHORT
Definition: pedump.c:61
IResourceList * PRESOURCELIST
Definition: portcls.h:442
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
Definition: wdfresource.h:309
unsigned char UCHAR
Definition: xmlstorage.h:181

◆ DECLARE_INTERFACE_() [2/2]

DECLARE_INTERFACE_ ( IAC97MiniportTopology  ,
IMiniportTopology   
)

Definition at line 365 of file shared.h.

366{
367 STDMETHOD_(NTSTATUS,GetPhysicalConnectionPins)
368 ( THIS_
369 OUT PULONG WaveOutSource,
370 OUT PULONG WaveInDest,
371 OUT PULONG MicInDest
372 ) PURE;
373 // Used for DRM:
374 STDMETHOD_(void, SetCopyProtectFlag)
375 ( THIS_
376 IN BOOL
377 ) PURE;
378};
uint32_t * PULONG
Definition: typedefs.h:59

◆ DEFINE_GUID() [1/2]

DEFINE_GUID ( IID_IAC97AdapterCommon  ,
0x77481fa0  ,
0x1ef2  ,
0x11d2  ,
0x88  ,
0x3a  ,
0x0  ,
0x80  ,
0xc7  ,
0x65  ,
0x64  ,
0x7d   
)

◆ DEFINE_GUID() [2/2]

DEFINE_GUID ( IID_IAC97MiniportTopology  ,
0x245ae964  ,
0x49c8  ,
0x11d2  ,
0x95  ,
0xd7  ,
0x0  ,
0xc0  ,
0x4f  ,
0xb9  ,
0x25  ,
0xd3   
)

◆ NewAdapterCommon()

NTSTATUS NewAdapterCommon ( OUT PUNKNOWN Unknown,
IN  REFCLSID,
IN PUNKNOWN UnknownOuter  OPTIONAL,
_When_((PoolType &NonPagedPoolMustSucceed) !=0, __drv_reportError("Must succeed pool allocations are forbidden. " "Allocation failures cause a system crash")) IN POOL_TYPE  PoolType 
)

Definition at line 116 of file common.cpp.

126{
127 PAGED_CODE ();
128
129 ASSERT (Unknown);
130
131 DOUT (DBG_PRINT, ("[NewAdapterCommon]"));
132
133 STD_CREATE_BODY_WITH_TAG_(CAC97AdapterCommon,Unknown,UnknownOuter,PoolType,
135}
#define PAGED_CODE()
#define DOUT(lvl, strings)
Definition: debug.h:82
IAC97AdapterCommon * PADAPTERCOMMON
Definition: shared.h:488
@ Unknown
Definition: i8042prt.h:114
#define ASSERT(a)
Definition: mode.c:44
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3815
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG PoolTag
Definition: wdfmemory.h:164
#define DBG_PRINT(ppi, ch, level)
Definition: win32kdebug.h:168

Referenced by StartDevice().

Variable Documentation

◆ PoolTag

Definition at line 53 of file shared.h.