ReactOS  0.4.14-dev-49-gfb4591c
CMiniportDMusUART Class Reference
Inheritance diagram for CMiniportDMusUART:
Collaboration diagram for CMiniportDMusUART:

Public Member Functions

STDMETHODIMP QueryInterface (REFIID InterfaceId, PVOID *Interface)
 
 STDMETHODIMP_ (ULONG) AddRef()
 
 STDMETHODIMP_ (ULONG) Release()
 
 CMiniportDMusUART (IUnknown *Unknown)
 
virtual ~CMiniportDMusUART ()
 
 GetDescription (OUT PPCFILTER_DESCRIPTOR *OutFilterDescriptor)
 
 DataRangeIntersection (IN ULONG PinId, IN PKSDATARANGE DataRange, IN PKSDATARANGE MatchingDataRange, IN ULONG OutputBufferLength, OUT PVOID ResultantFormat, OUT PULONG ResultantFormatLength)
 
 STDMETHODIMP_ (NTSTATUS) Init(IN PUNKNOWN UnknownAdapter
 
 STDMETHODIMP_ (NTSTATUS) NewStream(OUT PMXF *Stream
 
 STDMETHODIMP_ (void) Service(void)
 
friend STDMETHODIMP_ (NTSTATUS) SnapTimeStamp(PINTERRUPTSYNC InterruptSync
 

Public Attributes

IN PRESOURCELIST ResourceList
 
IN PRESOURCELIST IN PPORTDMUS Port
 
IN PRESOURCELIST IN PPORTDMUS OUT PSERVICEGROUPServiceGroup
 
IN PUNKNOWN OuterUnknown OPTIONAL
 
IN PUNKNOWN OuterUnknown IN POOL_TYPE PoolType
 
IN PUNKNOWN OuterUnknown IN POOL_TYPE IN ULONG PinID
 
IN PUNKNOWN OuterUnknown IN POOL_TYPE IN ULONG IN DMUS_STREAM_TYPE StreamType
 
IN PUNKNOWN OuterUnknown IN POOL_TYPE IN ULONG IN DMUS_STREAM_TYPE IN PKSDATAFORMAT DataFormat
 
IN PUNKNOWN OuterUnknown IN POOL_TYPE IN ULONG IN DMUS_STREAM_TYPE IN PKSDATAFORMAT OUT PSERVICEGROUPServiceGroup
 
IN PUNKNOWN OuterUnknown IN POOL_TYPE IN ULONG IN DMUS_STREAM_TYPE IN PKSDATAFORMAT OUT PSERVICEGROUP IN PAllocatorMXF AllocatorMXF
 
IN PUNKNOWN OuterUnknown IN POOL_TYPE IN ULONG IN DMUS_STREAM_TYPE IN PKSDATAFORMAT OUT PSERVICEGROUP IN PAllocatorMXF IN PMASTERCLOCK MasterClock
 
IN PUNKNOWN OuterUnknown IN POOL_TYPE IN ULONG IN DMUS_STREAM_TYPE IN PKSDATAFORMAT OUT PSERVICEGROUP IN PAllocatorMXF IN PMASTERCLOCK OUT PULONGLONG SchedulePreFetch
 
 IMP_IMusicTechnology
 
 IMP_IPowerNotify
 

Private Member Functions

NTSTATUS ProcessResources (IN PRESOURCELIST ResourceList)
 
NTSTATUS InitializeHardware (PINTERRUPTSYNC interruptSync, PUCHAR portBase)
 

Private Attributes

LONG m_Ref
 
KSSTATE m_KSStateInput
 
PPORTDMUS m_pPort
 
PUCHAR m_pPortBase
 
PINTERRUPTSYNC m_pInterruptSync
 
PSERVICEGROUP m_pServiceGroup
 
PMASTERCLOCK m_MasterClock
 
REFERENCE_TIME m_InputTimeStamp
 
USHORT m_NumRenderStreams
 
USHORT m_NumCaptureStreams
 
ULONG m_MPUInputBufferHead
 
ULONG m_MPUInputBufferTail
 
GUID m_MusicFormatTechnology
 
POWER_STATE m_PowerState
 
BOOLEAN m_fMPUInitialized
 
BOOLEAN m_UseIRQ
 
UCHAR m_MPUInputBuffer [kMPUInputBufferSize]
 

Friends

class CMiniportDMusUARTStream
 
PVOID pStream
 
NTSTATUS NTAPI DMusMPUInterruptServiceRoutine (PINTERRUPTSYNC InterruptSync, PVOID DynamicContext)
 
NTSTATUS NTAPI SynchronizedDMusMPUWrite (PINTERRUPTSYNC InterruptSync, PVOID syncWriteContext)
 
VOID NTAPI DMusUARTTimerDPC (PKDPC Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
 
NTSTATUS NTAPI PropertyHandler_Synth (IN PPCPROPERTY_REQUEST PropertyRequest)
 

Detailed Description

Definition at line 69 of file miniport_dmus.cpp.

Constructor & Destructor Documentation

◆ CMiniportDMusUART()

CMiniportDMusUART::CMiniportDMusUART ( IUnknown Unknown)
inline

Definition at line 125 of file miniport_dmus.cpp.

125 {}

◆ ~CMiniportDMusUART()

CMiniportDMusUART::~CMiniportDMusUART ( void  )
virtual

Definition at line 1423 of file miniport_dmus.cpp.

1424 {
1425  PAGED_CODE();
1426 
1427  DPRINT("~CMiniportDMusUART");
1428 
1430  ASSERT(0 == m_NumRenderStreams);
1431 
1432  // reset the HW so we don't get anymore interrupts
1433  if (m_UseIRQ && m_pInterruptSync)
1434  {
1435  (void) m_pInterruptSync->CallSynchronizedRoutine((PINTERRUPTSYNCROUTINE)InitMPU,PVOID(m_pPortBase));
1436  }
1437  else
1438  {
1440  }
1441 
1442  if (m_pInterruptSync)
1443  {
1444  m_pInterruptSync->Release();
1446  }
1447  if (m_pServiceGroup)
1448  {
1449  m_pServiceGroup->Release();
1451  }
1452  if (m_pPort)
1453  {
1454  m_pPort->Release();
1455  m_pPort = NULL;
1456  }
1457 }
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
#define PAGED_CODE()
Definition: video.h:57
PSERVICEGROUP m_pServiceGroup
NTSTATUS NTAPI InitMPU(IN PINTERRUPTSYNC InterruptSync, IN PVOID DynamicContext)
smooth NULL
Definition: ftsmooth.c:416
void DPRINT(...)
Definition: polytest.cpp:61
void * PVOID
Definition: retypes.h:9
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
PINTERRUPTSYNC m_pInterruptSync

Member Function Documentation

◆ DataRangeIntersection()

CMiniportDMusUART::DataRangeIntersection ( IN ULONG  PinId,
IN PKSDATARANGE  DataRange,
IN PKSDATARANGE  MatchingDataRange,
IN ULONG  OutputBufferLength,
OUT PVOID  ResultantFormat,
OUT PULONG  ResultantFormatLength 
)
inline

Definition at line 137 of file miniport_dmus.cpp.

144  {
145  return STATUS_NOT_IMPLEMENTED;
146  }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225

◆ GetDescription()

CMiniportDMusUART::GetDescription ( OUT PPCFILTER_DESCRIPTOR OutFilterDescriptor)

Definition at line 1244 of file miniport_dmus.cpp.

1247 {
1248  PAGED_CODE();
1249 
1250  ASSERT(OutFilterDescriptor);
1251 
1252  DPRINT("GetDescription");
1253 
1254  *OutFilterDescriptor = &MiniportFilterDescriptor;
1255 
1256  return STATUS_SUCCESS;
1257 }
#define PAGED_CODE()
Definition: video.h:57
void DPRINT(...)
Definition: polytest.cpp:61
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
return STATUS_SUCCESS
Definition: btrfs.c:2966
static PCFILTER_DESCRIPTOR MiniportFilterDescriptor

◆ InitializeHardware()

NTSTATUS CMiniportDMusUART::InitializeHardware ( PINTERRUPTSYNC  interruptSync,
PUCHAR  portBase 
)
private

Definition at line 659 of file miniport_dmus.cpp.

660 {
661  PAGED_CODE();
662 
663  NTSTATUS ntStatus;
664  if (m_UseIRQ)
665  {
666  ntStatus = interruptSync->CallSynchronizedRoutine(InitMPU,PVOID(portBase));
667  }
668  else
669  {
670  ntStatus = InitMPU(NULL,PVOID(portBase));
671  }
672 
673  if (NT_SUCCESS(ntStatus))
674  {
675  //
676  // Start the UART (this should trigger an interrupt).
677  //
678  ntStatus = ResetHardware(portBase);
679  }
680  else
681  {
682  DPRINT("*** InitMPU returned with ntStatus 0x%08x ***", ntStatus);
683  }
684 
685  m_fMPUInitialized = NT_SUCCESS(ntStatus);
686 
687  return ntStatus;
688 }
LONG NTSTATUS
Definition: precomp.h:26
#define PAGED_CODE()
Definition: video.h:57
NTSTATUS NTAPI InitMPU(IN PINTERRUPTSYNC InterruptSync, IN PVOID DynamicContext)
smooth NULL
Definition: ftsmooth.c:416
void DPRINT(...)
Definition: polytest.cpp:61
void * PVOID
Definition: retypes.h:9
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
NTSTATUS ResetHardware(PUCHAR portBase)

◆ ProcessResources()

NTSTATUS CMiniportDMusUART::ProcessResources ( IN PRESOURCELIST  ResourceList)
private

Definition at line 1299 of file miniport_dmus.cpp.

1302 {
1303  PAGED_CODE();
1304 
1305  DPRINT("ProcessResources");
1306 
1308  if (!ResourceList)
1309  {
1311  }
1312  //
1313  // Get counts for the types of resources.
1314  //
1315  ULONG countIO = ResourceList->NumberOfPorts();
1316  ULONG countIRQ = ResourceList->NumberOfInterrupts();
1317  ULONG countDMA = ResourceList->NumberOfDmas();
1318  ULONG lengthIO = ResourceList->FindTranslatedPort(0)->u.Port.Length;
1319 
1320 #if DBG
1321  DPRINT("Starting MPU401 Port 0x%lx", ResourceList->FindTranslatedPort(0)->u.Port.Start.LowPart);
1322 #endif
1323 
1324  NTSTATUS ntStatus = STATUS_SUCCESS;
1325 
1326  //
1327  // Make sure we have the expected number of resources.
1328  //
1329  if ( (countIO != 1)
1330  || (countIRQ > 1)
1331  || (countDMA != 0)
1332  || (lengthIO == 0)
1333  )
1334  {
1335  DPRINT("Unknown ResourceList configuration");
1337  }
1338 
1339  if (NT_SUCCESS(ntStatus))
1340  {
1341  //
1342  // Get the port address.
1343  //
1344  m_pPortBase =
1345  PUCHAR(ResourceList->FindTranslatedPort(0)->u.Port.Start.QuadPart);
1346 
1348  }
1349 
1350  return ntStatus;
1351 }
unsigned char * PUCHAR
Definition: retypes.h:3
LONG NTSTATUS
Definition: precomp.h:26
#define PAGED_CODE()
Definition: video.h:57
IN PRESOURCELIST ResourceList
void DPRINT(...)
Definition: polytest.cpp:61
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
NTSTATUS InitializeHardware(PINTERRUPTSYNC interruptSync, PUCHAR portBase)
unsigned int ULONG
Definition: retypes.h:1
PINTERRUPTSYNC m_pInterruptSync
#define STATUS_DEVICE_CONFIGURATION_ERROR
Definition: ntstatus.h:605
return STATUS_SUCCESS
Definition: btrfs.c:2966

◆ QueryInterface()

CMiniportDMusUART::QueryInterface ( REFIID  InterfaceId,
PVOID Interface 
)

Definition at line 1364 of file miniport_dmus.cpp.

1368 {
1369  PAGED_CODE();
1370 
1371  DPRINT("Miniport::NonDelegatingQueryInterface");
1372  ASSERT(Object);
1373 
1375  {
1376  *Object = PVOID(PUNKNOWN(PMINIPORTDMUS(this)));
1377  }
1378  else
1379  if (IsEqualGUIDAligned(Interface,IID_IMiniport))
1380  {
1381  *Object = PVOID(PMINIPORT(this));
1382  }
1383  else
1384  if (IsEqualGUIDAligned(Interface,IID_IMiniportDMus))
1385  {
1386  *Object = PVOID(PMINIPORTDMUS(this));
1387  }
1388  else
1389  if (IsEqualGUIDAligned(Interface,IID_IMusicTechnology))
1390  {
1391  *Object = PVOID(PMUSICTECHNOLOGY(this));
1392  }
1393  else
1394  if (IsEqualGUIDAligned(Interface,IID_IPowerNotify))
1395  {
1396  *Object = PVOID(PPOWERNOTIFY(this));
1397  }
1398  else
1399  {
1400  *Object = NULL;
1401  }
1402 
1403  if (*Object)
1404  {
1405  //
1406  // We reference the interface for the caller.
1407  //
1408  PUNKNOWN(*Object)->AddRef();
1409  return STATUS_SUCCESS;
1410  }
1411 
1412  return STATUS_INVALID_PARAMETER;
1413 }
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
IUnknown * PUNKNOWN
Definition: com_apitest.h:45
IMusicTechnology * PMUSICTECHNOLOGY
Definition: portcls.h:1018
#define PAGED_CODE()
Definition: video.h:57
#define IsEqualGUIDAligned(guid1, guid2)
Definition: wdm.template.h:233
smooth NULL
Definition: ftsmooth.c:416
void DPRINT(...)
Definition: polytest.cpp:61
void * PVOID
Definition: retypes.h:9
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
Definition: pci.h:359
const GUID IID_IUnknown
struct _MINIPORT * PMINIPORT
static IUnknown Object
Definition: main.c:512
ULONG AddRef()
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
IMiniportDMus * PMINIPORTDMUS
Definition: dmusicks.h:209
IPowerNotify * PPOWERNOTIFY
Definition: portcls.h:2003
return STATUS_SUCCESS
Definition: btrfs.c:2966

◆ STDMETHODIMP_() [1/6]

CMiniportDMusUART::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 108 of file miniport_dmus.cpp.

109  {
111  return m_Ref;
112  }
#define InterlockedIncrement
Definition: armddk.h:53

◆ STDMETHODIMP_() [2/6]

CMiniportDMusUART::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 113 of file miniport_dmus.cpp.

114  {
116 
117  if (!m_Ref)
118  {
119  delete this;
120  return 0;
121  }
122  return m_Ref;
123  }
#define InterlockedDecrement
Definition: armddk.h:52

◆ STDMETHODIMP_() [3/6]

CMiniportDMusUART::STDMETHODIMP_ ( NTSTATUS  )

◆ STDMETHODIMP_() [4/6]

CMiniportDMusUART::STDMETHODIMP_ ( NTSTATUS  )

◆ STDMETHODIMP_() [5/6]

CMiniportDMusUART::STDMETHODIMP_ ( void  )

◆ STDMETHODIMP_() [6/6]

CMiniportDMusUART::STDMETHODIMP_ ( NTSTATUS  )

Friends And Related Function Documentation

◆ CMiniportDMusUARTStream

Definition at line 188 of file miniport_dmus.cpp.

◆ DMusMPUInterruptServiceRoutine

NTSTATUS NTAPI DMusMPUInterruptServiceRoutine ( PINTERRUPTSYNC  InterruptSync,
PVOID  DynamicContext 
)
friend

◆ DMusUARTTimerDPC

VOID NTAPI DMusUARTTimerDPC ( PKDPC  Dpc,
PVOID  DeferredContext,
PVOID  SystemArgument1,
PVOID  SystemArgument2 
)
friend

◆ PropertyHandler_Synth

NTSTATUS NTAPI PropertyHandler_Synth ( IN PPCPROPERTY_REQUEST  PropertyRequest)
friend

Definition at line 2472 of file miniport_dmus.cpp.

2475 {
2476  NTSTATUS ntStatus;
2477 
2478  PAGED_CODE();
2479 
2480  if (pRequest->Verb & KSPROPERTY_TYPE_BASICSUPPORT)
2481  {
2482  ntStatus = ValidatePropertyRequest(pRequest, sizeof(ULONG), TRUE);
2483  if (NT_SUCCESS(ntStatus))
2484  {
2485  // if return buffer can hold a ULONG, return the access flags
2486  PULONG AccessFlags = PULONG(pRequest->Value);
2487 
2488  *AccessFlags = KSPROPERTY_TYPE_BASICSUPPORT;
2489  switch (pRequest->PropertyItem->Id)
2490  {
2491  case KSPROPERTY_SYNTH_CAPS:
2493  *AccessFlags |= KSPROPERTY_TYPE_GET;
2494  }
2495  switch (pRequest->PropertyItem->Id)
2496  {
2498  *AccessFlags |= KSPROPERTY_TYPE_SET;
2499  }
2500  ntStatus = STATUS_SUCCESS;
2501  pRequest->ValueSize = sizeof(ULONG);
2502 
2503  switch (pRequest->PropertyItem->Id)
2504  {
2506  if (pRequest->MinorTarget)
2507  {
2508  *AccessFlags |= KSPROPERTY_TYPE_GET;
2509  }
2510  else
2511  {
2512  pRequest->ValueSize = 0;
2513  ntStatus = STATUS_INVALID_DEVICE_REQUEST;
2514  }
2515  }
2516  }
2517  }
2518  else
2519  {
2520  ntStatus = STATUS_SUCCESS;
2521  switch(pRequest->PropertyItem->Id)
2522  {
2523  case KSPROPERTY_SYNTH_CAPS:
2524  DPRINT("PropertyHandler_Synth:KSPROPERTY_SYNTH_CAPS");
2525 
2526  if (pRequest->Verb & KSPROPERTY_TYPE_SET)
2527  {
2528  ntStatus = STATUS_INVALID_DEVICE_REQUEST;
2529  }
2530 
2531  if (NT_SUCCESS(ntStatus))
2532  {
2533  ntStatus = ValidatePropertyRequest(pRequest, sizeof(SYNTHCAPS), TRUE);
2534 
2535  if (NT_SUCCESS(ntStatus))
2536  {
2537  SYNTHCAPS *caps = (SYNTHCAPS*)pRequest->Value;
2538  int increment;
2539  RtlZeroMemory(caps, sizeof(SYNTHCAPS));
2540  // XXX Different guids for different instances!
2541  //
2542  if (pRequest->Node == eSynthNode)
2543  {
2544  increment = sizeof(wszDescOut) - 2;
2545  RtlCopyMemory( caps->Description,wszDescOut,increment);
2546  caps->Guid = CLSID_MiniportDriverDMusUART;
2547  }
2548  else
2549  {
2550  increment = sizeof(wszDescIn) - 2;
2551  RtlCopyMemory( caps->Description,wszDescIn,increment);
2552  caps->Guid = CLSID_MiniportDriverDMusUARTCapture;
2553  }
2554 
2555  caps->Flags = SYNTH_PC_EXTERNAL;
2556  caps->MemorySize = 0;
2557  caps->MaxChannelGroups = 1;
2558  caps->MaxVoices = 0xFFFFFFFF;
2559  caps->MaxAudioChannels = 0xFFFFFFFF;
2560 
2561  caps->EffectFlags = 0;
2562 
2563  CMiniportDMusUART *aMiniport;
2564  ASSERT(pRequest->MajorTarget);
2565  aMiniport = (CMiniportDMusUART *)(PMINIPORTDMUS)(pRequest->MajorTarget);
2566  WCHAR wszDesc2[16];
2567  int cLen;
2568  cLen = swprintf(wszDesc2,L"[%03x]\0",PtrToUlong(aMiniport->m_pPortBase));
2569 
2570  cLen *= sizeof(WCHAR);
2571  RtlCopyMemory((WCHAR *)((DWORD_PTR)(caps->Description) + increment),
2572  wszDesc2,
2573  cLen);
2574 
2575 
2576  pRequest->ValueSize = sizeof(SYNTHCAPS);
2577  }
2578  }
2579 
2580  break;
2581 
2583  DPRINT("PropertyHandler_Synth:KSPROPERTY_SYNTH_PORTPARAMETERS");
2584  {
2585  CMiniportDMusUARTStream *aStream;
2586 
2587  aStream = (CMiniportDMusUARTStream*)(pRequest->MinorTarget);
2588  if (aStream)
2589  {
2590  ntStatus = aStream->HandlePortParams(pRequest);
2591  }
2592  else
2593  {
2594  ntStatus = STATUS_INVALID_DEVICE_REQUEST;
2595  }
2596  }
2597  break;
2598 
2600  DPRINT("PropertyHandler_Synth:KSPROPERTY_SYNTH_CHANNELGROUPS");
2601 
2602  ntStatus = ValidatePropertyRequest(pRequest, sizeof(ULONG), TRUE);
2603  if (NT_SUCCESS(ntStatus))
2604  {
2605  *(PULONG)(pRequest->Value) = 1;
2606  pRequest->ValueSize = sizeof(ULONG);
2607  }
2608  break;
2609 
2611  DPRINT("PropertyHandler_Synth:KSPROPERTY_SYNTH_LATENCYCLOCK");
2612 
2613  if(pRequest->Verb & KSPROPERTY_TYPE_SET)
2614  {
2615  ntStatus = STATUS_INVALID_DEVICE_REQUEST;
2616  }
2617  else
2618  {
2619  ntStatus = ValidatePropertyRequest(pRequest, sizeof(ULONGLONG), TRUE);
2620  if(NT_SUCCESS(ntStatus))
2621  {
2622  REFERENCE_TIME rtLatency;
2623  CMiniportDMusUARTStream *aStream;
2624 
2625  aStream = (CMiniportDMusUARTStream*)(pRequest->MinorTarget);
2626  if(aStream == NULL)
2627  {
2628  ntStatus = STATUS_INVALID_DEVICE_REQUEST;
2629  }
2630  else
2631  {
2632  aStream->m_pMiniport->m_MasterClock->GetTime(&rtLatency);
2633  *((PULONGLONG)pRequest->Value) = rtLatency;
2634  pRequest->ValueSize = sizeof(ULONGLONG);
2635  }
2636  }
2637  }
2638  break;
2639 
2640  default:
2641  DPRINT("Unhandled property in PropertyHandler_Synth");
2642  break;
2643  }
2644  }
2645  return ntStatus;
2646 }
#define TRUE
Definition: types.h:120
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
DWORD MaxVoices
Definition: dmusprop.h:86
DWORD MemorySize
Definition: dmusprop.h:84
LONG NTSTATUS
Definition: precomp.h:26
#define STATUS_INVALID_DEVICE_REQUEST
Definition: udferr_usr.h:138
GUID Guid
Definition: dmusprop.h:82
#define KSPROPERTY_TYPE_GET
Definition: dmksctrl.h:42
#define PAGED_CODE()
Definition: video.h:57
WCHAR Description[128]
Definition: dmusprop.h:89
CMiniportDMusUART * m_pMiniport
const WCHAR wszDescIn[]
smooth NULL
Definition: ftsmooth.c:416
void DPRINT(...)
Definition: polytest.cpp:61
#define PtrToUlong(u)
Definition: config.h:107
#define KSPROPERTY_TYPE_BASICSUPPORT
Definition: dmksctrl.h:45
LONGLONG REFERENCE_TIME
Definition: dmusicks.h:9
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
uint64_t ULONGLONG
Definition: typedefs.h:65
#define swprintf(buf, format,...)
Definition: sprintf.c:56
DWORD Flags
Definition: dmusprop.h:83
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
static const WCHAR L[]
Definition: oid.c:1250
uint32_t DWORD_PTR
Definition: typedefs.h:63
DWORD EffectFlags
Definition: dmusprop.h:88
IMiniportDMus * PMINIPORTDMUS
Definition: dmusicks.h:209
unsigned int * PULONG
Definition: retypes.h:1
const WCHAR wszDescOut[]
DWORD MaxChannelGroups
Definition: dmusprop.h:85
#define SYNTH_PC_EXTERNAL
Definition: dmusprop.h:65
DWORD MaxAudioChannels
Definition: dmusprop.h:87
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
Definition: ntbasedef.h:390
PMASTERCLOCK m_MasterClock
unsigned int ULONG
Definition: retypes.h:1
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:261
NTSTATUS ValidatePropertyRequest(IN PPCPROPERTY_REQUEST pRequest, IN ULONG ulValueSize, IN BOOLEAN fValueRequired)
return STATUS_SUCCESS
Definition: btrfs.c:2966
#define KSPROPERTY_TYPE_SET
Definition: dmksctrl.h:43
struct _SYNTHCAPS SYNTHCAPS
NTSTATUS HandlePortParams(IN PPCPROPERTY_REQUEST Request)

◆ pStream

friend PVOID pStream
friend

Definition at line 196 of file miniport_dmus.cpp.

◆ SynchronizedDMusMPUWrite

NTSTATUS NTAPI SynchronizedDMusMPUWrite ( PINTERRUPTSYNC  InterruptSync,
PVOID  syncWriteContext 
)
friend

Member Data Documentation

◆ AllocatorMXF

Definition at line 161 of file miniport_dmus.cpp.

◆ DataFormat

IN PUNKNOWN OuterUnknown IN POOL_TYPE IN ULONG IN DMUS_STREAM_TYPE IN PKSDATAFORMAT CMiniportDMusUART::DataFormat

Definition at line 161 of file miniport_dmus.cpp.

◆ IMP_IMusicTechnology

CMiniportDMusUART::IMP_IMusicTechnology

Definition at line 178 of file miniport_dmus.cpp.

◆ IMP_IPowerNotify

CMiniportDMusUART::IMP_IPowerNotify

Definition at line 183 of file miniport_dmus.cpp.

◆ m_fMPUInitialized

BOOLEAN CMiniportDMusUART::m_fMPUInitialized
private

Definition at line 89 of file miniport_dmus.cpp.

Referenced by InitializeHardware().

◆ m_InputTimeStamp

REFERENCE_TIME CMiniportDMusUART::m_InputTimeStamp
private

Definition at line 82 of file miniport_dmus.cpp.

Referenced by DMusMPUInterruptServiceRoutine(), and SnapTimeStamp().

◆ m_KSStateInput

KSSTATE CMiniportDMusUART::m_KSStateInput
private

Definition at line 76 of file miniport_dmus.cpp.

Referenced by DMusMPUInterruptServiceRoutine().

◆ m_MasterClock

PMASTERCLOCK CMiniportDMusUART::m_MasterClock
private

Definition at line 81 of file miniport_dmus.cpp.

Referenced by DMusMPUInterruptServiceRoutine(), and PropertyHandler_Synth().

◆ m_MPUInputBuffer

UCHAR CMiniportDMusUART::m_MPUInputBuffer[kMPUInputBufferSize]
private

Definition at line 91 of file miniport_dmus.cpp.

Referenced by DMusMPUInterruptServiceRoutine().

◆ m_MPUInputBufferHead

ULONG CMiniportDMusUART::m_MPUInputBufferHead
private

Definition at line 85 of file miniport_dmus.cpp.

Referenced by DMusMPUInterruptServiceRoutine(), and SnapTimeStamp().

◆ m_MPUInputBufferTail

ULONG CMiniportDMusUART::m_MPUInputBufferTail
private

Definition at line 86 of file miniport_dmus.cpp.

Referenced by DMusMPUInterruptServiceRoutine(), and SnapTimeStamp().

◆ m_MusicFormatTechnology

GUID CMiniportDMusUART::m_MusicFormatTechnology
private

Definition at line 87 of file miniport_dmus.cpp.

◆ m_NumCaptureStreams

USHORT CMiniportDMusUART::m_NumCaptureStreams
private

◆ m_NumRenderStreams

USHORT CMiniportDMusUART::m_NumRenderStreams
private

◆ m_pInterruptSync

PINTERRUPTSYNC CMiniportDMusUART::m_pInterruptSync
private

Definition at line 79 of file miniport_dmus.cpp.

Referenced by ~CMiniportDMusUART().

◆ m_PowerState

POWER_STATE CMiniportDMusUART::m_PowerState
private

Definition at line 88 of file miniport_dmus.cpp.

◆ m_pPort

PPORTDMUS CMiniportDMusUART::m_pPort
private

Definition at line 77 of file miniport_dmus.cpp.

Referenced by DMusMPUInterruptServiceRoutine(), and ~CMiniportDMusUART().

◆ m_pPortBase

PUCHAR CMiniportDMusUART::m_pPortBase
private

◆ m_pServiceGroup

PSERVICEGROUP CMiniportDMusUART::m_pServiceGroup
private

Definition at line 80 of file miniport_dmus.cpp.

Referenced by DMusMPUInterruptServiceRoutine(), and ~CMiniportDMusUART().

◆ m_Ref

LONG CMiniportDMusUART::m_Ref
private

Definition at line 75 of file miniport_dmus.cpp.

Referenced by STDMETHODIMP_().

◆ m_UseIRQ

BOOLEAN CMiniportDMusUART::m_UseIRQ
private

Definition at line 90 of file miniport_dmus.cpp.

Referenced by InitializeHardware(), and ~CMiniportDMusUART().

◆ MasterClock

Definition at line 161 of file miniport_dmus.cpp.

◆ OPTIONAL

IN PUNKNOWN OuterUnknown CMiniportDMusUART::OPTIONAL

Definition at line 161 of file miniport_dmus.cpp.

◆ PinID

IN PUNKNOWN OuterUnknown IN POOL_TYPE IN ULONG CMiniportDMusUART::PinID

Definition at line 161 of file miniport_dmus.cpp.

◆ PoolType

IN PUNKNOWN OuterUnknown IN POOL_TYPE CMiniportDMusUART::PoolType

Definition at line 161 of file miniport_dmus.cpp.

◆ Port

IN PRESOURCELIST IN PPORTDMUS CMiniportDMusUART::Port

Definition at line 154 of file miniport_dmus.cpp.

◆ ResourceList

IN PRESOURCELIST CMiniportDMusUART::ResourceList

Definition at line 154 of file miniport_dmus.cpp.

◆ SchedulePreFetch

Definition at line 161 of file miniport_dmus.cpp.

◆ ServiceGroup [1/2]

IN PRESOURCELIST IN PPORTDMUS OUT PSERVICEGROUP* CMiniportDMusUART::ServiceGroup

Definition at line 154 of file miniport_dmus.cpp.

◆ ServiceGroup [2/2]

IN PUNKNOWN OuterUnknown IN POOL_TYPE IN ULONG IN DMUS_STREAM_TYPE IN PKSDATAFORMAT OUT PSERVICEGROUP* CMiniportDMusUART::ServiceGroup

Definition at line 161 of file miniport_dmus.cpp.

◆ StreamType

IN PUNKNOWN OuterUnknown IN POOL_TYPE IN ULONG IN DMUS_STREAM_TYPE CMiniportDMusUART::StreamType

Definition at line 161 of file miniport_dmus.cpp.


The documentation for this class was generated from the following file: