11#define STR_MODULENAME "AC97 Topology: "
230#ifdef INCLUDE_PRIVATE_PROPERTY
240 &KSPROPSETID_Private,
241 KSPROPERTY_AC97_FEATURES,
243 CAC97MiniportTopology::PropertyHandler_Private
245#ifdef PROPERTY_SHOW_SET
249 &KSPROPSETID_Private,
250 KSPROPERTY_AC97_SAMPLE_SET,
252 CAC97MiniportTopology::PropertyHandler_Private
266#pragma code_seg("PAGE")
282 "Allocation failures cause a system crash"))
312 DOUT (
DBG_PRINT, (
"[CAC97MiniportTopology::NonDelegatingQueryInterface]"));
360 DOUT (
DBG_PRINT, (
"[CAC97MiniportTopology::~CAC97MiniportTopology]"));
409 PVOID ResultantFormat,
457 NTSTATUS ntStatus = UnknownAdapter->QueryInterface (IID_IAC97AdapterCommon,
518 ASSERT (OutFilterDescriptor);
520 DOUT (
DBG_PRINT, (
"[CAC97MiniportTopology::GetDescription]"));
543void CAC97MiniportTopology::DumpTopology (
void)
662 DOUT (
DBG_PRINT, (
"[CAC97MiniportTopology::BuildTopology]"));
672#ifdef INCLUDE_PRIVATE_PROPERTY
707#define INIT_PIN( pin, pinptr, category, name, index ) \
708 pinptr->KsPinDescriptor.Category = (GUID*) category; \
709 pinptr->KsPinDescriptor.Name = (GUID*) name; \
710 SetPinTranslation (index++, pin); \
718 DOUT (
DBG_PRINT, (
"[CAC97MiniportTopology::BuildPinDescriptors]"));
733 CurrentPin++,
Index++)
981#define INIT_NODE( node, nodeptr, type, name, automation, index ) \
982 nodeptr->Type = (GUID*) type; \
983 nodeptr->Name = (GUID*) name; \
984 nodeptr->AutomationTable = automation; \
985 SetNodeTranslation (index++, node); \
992 DOUT (
DBG_PRINT, (
"[CAC97MiniportTopology::BuildNodeDescriptors]"));
1585#define INIT_NN_CONN( cptr, fnode, fpin, tnode, tpin ) \
1586 cptr->FromNode = TransNodeDefToNodeNr (fnode); \
1587 cptr->FromNodePin = fpin; \
1588 cptr->ToNode = TransNodeDefToNodeNr (tnode); \
1589 cptr->ToNodePin = tpin; \
1590 cptr++,ConnectionCount++
1593#define INIT_FN_CONN( cptr, fpin, tnode, tpin ) \
1594 cptr->FromNode = KSFILTER_NODE; \
1595 cptr->FromNodePin = TransPinDefToPinNr (fpin); \
1596 cptr->ToNode = TransNodeDefToNodeNr (tnode); \
1597 cptr->ToNodePin = tpin; \
1598 cptr++,ConnectionCount++
1601#define INIT_NF_CONN( cptr, fnode, fpin, tpin ) \
1602 cptr->FromNode = TransNodeDefToNodeNr (fnode); \
1603 cptr->FromNodePin = fpin; \
1604 cptr->ToNode = KSFILTER_NODE; \
1605 cptr->ToNodePin = TransPinDefToPinNr (tpin); \
1606 cptr++,ConnectionCount++
1611 ULONG ConnectionCount = 0;
1613 DOUT (
DBG_PRINT, (
"[CAC97MiniportTopology::BuildConnectionDescriptors]"));
2060 DOUT (
DBG_PRINT, (
"[CAC97MiniportTopology::UpdateRecordMute]"));
2103STDMETHODIMP CAC97MiniportTopology::GetPhysicalConnectionPins
2116 DOUT (
DBG_PRINT, (
"[CAC97MiniportTopology::GetPhysicalConnectionPins]"));
#define INIT_NN_CONN(cptr, fnode, fpin, tnode, tpin)
static PCPROPERTY_ITEM Properties3D[]
#define INIT_NF_CONN(cptr, fnode, fpin, tpin)
static PCPROPERTY_ITEM PropertiesVolume[]
static PCPROPERTY_ITEM PropertiesTone[]
static PCPROPERTY_ITEM PropertiesMux[]
static PCPROPERTY_ITEM PropertiesSpecial[]
#define INIT_PIN(pin, pinptr, category, name, index)
static PKSDATARANGE PinDataRangePointersAnalogBridge[]
NTSTATUS CreateAC97MiniportTopology(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)
#define INIT_NODE(node, nodeptr, type, name, automation, index)
static KSDATARANGE PinDataRangesAnalogBridge[]
#define INIT_FN_CONN(cptr, fpin, tnode, tpin)
static PCPROPERTY_ITEM PropertiesMute[]
OUT PULONG OUT PULONG MicInDest
TopoPins TransPinNrToPinDef(IN int Pin)
PPCNODE_DESCRIPTOR NodeDescriptors
PPCFILTER_DESCRIPTOR FilterDescriptor
TopoNodes TransNodeNrToNodeDef(IN int Node)
PPCPIN_DESCRIPTOR PinDescriptors
NTSTATUS BuildPinDescriptors(void)
NTSTATUS BuildNodeDescriptors(void)
NTSTATUS BuildTopology(void)
int TransPinDefToPinNr(IN TopoPins Pin)
PADAPTERCOMMON AdapterCommon
tNodeTranslationTable stNodeTrans[NODE_TOP_ELEMENT]
static NTSTATUS NTAPI PropertyHandler_Ulong(IN PPCPROPERTY_REQUEST PropertyRequest)
NTSTATUS BuildConnectionDescriptors(void)
static NTSTATUS NTAPI PropertyHandler_Level(IN PPCPROPERTY_REQUEST PropertyRequest)
PPCCONNECTION_DESCRIPTOR ConnectionDescriptors
void UpdateRecordMute(void)
tPinTranslationTable stPinTrans[PIN_TOP_ELEMENT]
static NTSTATUS NTAPI PropertyHandler_Tone(IN PPCPROPERTY_REQUEST PropertyRequest)
static NTSTATUS NTAPI PropertyHandler_OnOff(IN PPCPROPERTY_REQUEST PropertyRequest)
static NTSTATUS NTAPI PropertyHandler_CpuResources(IN PPCPROPERTY_REQUEST PropertyRequest)
#define STATUS_NOT_IMPLEMENTED
#define NT_SUCCESS(StatCode)
static PKSDATARANGE PinDataRangePointersAnalogBridge[]
#define DOUT(lvl, strings)
@ PINC_CENTER_LFE_PRESENT
IAC97MiniportTopology * PAC97MINIPORTTOPOLOGY
@ NODE_VIRT_MASTER_INPUT_VOLUME1
@ NODE_VIRT_MONOOUT_VOLUME1
@ NODE_VIRT_MONOOUT_VOLUME2
@ NODE_VIRT_MASTER_INPUT_VOLUME3
@ NODE_VIRT_MASTER_INPUT_VOLUME8
@ NODE_VIRT_MASTERMONO_MUTE
@ NODE_VIRT_WAVEOUT_3D_BYPASS
@ NODE_VIRT_MASTER_INPUT_VOLUME2
@ NODE_VIRT_MASTER_INPUT_VOLUME6
@ NODE_VIRT_MASTER_INPUT_VOLUME5
@ NODE_VIRT_MASTER_INPUT_VOLUME7
@ NODE_VIRT_MASTERMONO_VOLUME
@ NODE_VIRT_MASTER_INPUT_VOLUME4
@ NODEC_3D_DEPTH_ADJUSTABLE
@ NODEC_3D_CENTER_ADJUSTABLE
@ NODEC_SIMUL_STEREO_PRESENT
@ PIN_VIRT_3D_CENTER_SOURCE
@ PIN_VIRT_TONE_MIX_SOURCE
@ PIN_VIRT_TONE_MIX_MONO_SOURCE
@ PIN_VIRT_SURROUND_SOURCE
@ PIN_VIRT_3D_MIX_MONO_SOURCE
@ PIN_VIRT_3D_DEPTH_SOURCE
#define __drv_reportError(why)
#define KSPROPERTY_TYPE_SET
#define STATICGUIDOF(guid)
#define KSPROPERTY_TYPE_BASICSUPPORT
#define KSPROPERTY_TYPE_GET
#define ExAllocatePoolWithTag(hernya, size, tag)
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 const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define MYKSNAME_MAIN_MIX
#define MYKSNAME_PHONE_VOLUME
#define MYKSNAME_FRONT_VOLUME
#define MYKSNAME_HPOUT_VOLUME
#define MYKSNAME_MONOOUT_SELECT
#define MYKSNAME_CENTER_VOLUME
#define MYKSNAME_MICIN_MUTE
#define MYKSNAME_WAVEIN_SELECT
#define MYKSNAME_SURROUND
#define MYKSNAME_BEEP_MIX
#define MYKSNAME_PHONE_MUTE
#define MYKSNAME_HPOUT_MUTE
#define MYKSNAME_SIMUL_STEREO
#define MYKSNAME_WAVEOUT_3D_BYPASS
#define MYKSNAME_MASTER_INPUT_VOLUME
#define MYKSNAME_CENTER_MUTE
#define MYKSNAME_3D_ENABLE
#define MYKSNAME_MICIN_VOLUME
#define MYKSNAME_LFE_MUTE
#define MYKSNAME_LFE_VOLUME
#define MYKSNAME_LINEIN_MUTE
#define MYKSNAME_SURROUND_VOLUME
#define MYKSNAME_SURROUND_MUTE
#define MYKSNAME_FRONT_MUTE
#define KSDATAFORMAT_SPECIFIER_NONE
union KSDATAFORMAT KSDATARANGE
@ KSPIN_COMMUNICATION_NONE
union KSDATAFORMAT * PKSDATARANGE
const WORD AC97REG_MASK_RIGHT
const WORD AC97REG_MASK_MUTE
const int TOPO_MAX_CONNECTIONS
#define ExFreePoolWithTag(_P, _T)
static ULONG WINAPI AddRef(IStream *iface)
#define _When_(expr, annos)
#define _Out_writes_bytes_to_opt_(size, count)
#define UNREFERENCED_PARAMETER(P)
#define STATUS_DEVICE_CONFIGURATION_ERROR
struct PCCONNECTION_DESCRIPTOR * PPCCONNECTION_DESCRIPTOR
IMiniportTopology * PMINIPORTTOPOLOGY
IResourceList * PRESOURCELIST
#define DEFINE_PCAUTOMATION_TABLE_PROP(AutomationTable, PropertyTable)
struct PCFILTER_DESCRIPTOR * PPCFILTER_DESCRIPTOR
struct PCNODE_DESCRIPTOR * PPCNODE_DESCRIPTOR
struct PCPIN_DESCRIPTOR * PPCPIN_DESCRIPTOR
IPortTopology * PPORTTOPOLOGY
PULONG MinorVersion OPTIONAL
const PCNODE_DESCRIPTOR * Nodes
const PCCONNECTION_DESCRIPTOR * Connections
const PCPIN_DESCRIPTOR * Pins
const PCAUTOMATION_TABLE * AutomationTable
KSPIN_DESCRIPTOR KsPinDescriptor
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
_In_ WDFREQUEST _In_ size_t OutputBufferLength
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG PoolTag
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
#define IsEqualGUIDAligned(guid1, guid2)
#define DBG_PRINT(ppi, ch, level)
@ NonPagedPoolMustSucceed