6#define DONT_HOLD_FOR_SEQUENCING 0x8000000000000000
35DEFINE_GUID(CLSID_MiniportDriverDMusUART, 0xd3f0ce1c, 0xFFFC, 0x11D1, 0x81, 0xB0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xC1);
36DEFINE_GUID(CLSID_MiniportDriverDMusUARTCapture, 0xD3F0CE1D, 0xFFFC, 0x11D1, 0x81, 0xB0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xC1);
43#define INTERFACE IMasterClock
55#define IMP_IMasterClock \
56 STDMETHODIMP_(NTSTATUS) GetTime( \
57 _Out_ REFERENCE_TIME *pTime \
70#define DEFINE_ABSTRACT_IMXF() \
71 STDMETHOD_(NTSTATUS,SetState)(THIS_ \
74 STDMETHOD_(NTSTATUS,PutMessage)(THIS_ \
75 _In_ PDMUS_KERNEL_EVENT pDMKEvt \
77 STDMETHOD_(NTSTATUS,ConnectOutput)(THIS_ \
80 STDMETHOD_(NTSTATUS,DisconnectOutput)(THIS_ \
85 STDMETHODIMP_(NTSTATUS) SetState ( \
86 _In_ KSSTATE State); \
87 STDMETHODIMP_(NTSTATUS) PutMessage (THIS_ \
88 _In_ PDMUS_KERNEL_EVENT pDMKEvt); \
89 STDMETHODIMP_(NTSTATUS) ConnectOutput (THIS_ \
91 STDMETHODIMP_(NTSTATUS) DisconnectOutput (THIS_ \
104#define INTERFACE IAllocatorMXF
109#define STATIC_IID_IAllocatorMXF\
110 0xa5f0d62c, 0xb30f, 0x11d2, {0xb7, 0xa3, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1}
112#define IID_IAllocatorMXF DEFINE_GUIDNAMED(IID_IAllocatorMXF)
135#define IMP_IAllocatorMXF \
137 STDMETHODIMP_(NTSTATUS) GetMessage( \
138 _Out_ PDMUS_KERNEL_EVENT *ppDMKEvt); \
140 STDMETHODIMP_(USHORT) GetBufferSize(void); \
142 STDMETHODIMP_(NTSTATUS) GetBuffer( \
143 _Outptr_result_bytebuffer_(_Inexpressible_(GetBufferSize bytes)) \
146 STDMETHODIMP_(NTSTATUS) PutBuffer( \
150#define INTERFACE IPortDMus
152DEFINE_GUID(IID_IPortDMus, 0xc096df9c, 0xfb09, 0x11d1, 0x81, 0xb0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1);
153DEFINE_GUID(CLSID_PortDMus, 0xb7902fe9, 0xfb0a, 0x11d1, 0x81, 0xb0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1);
170#define IMP_IPortDMus \
172 STDMETHODIMP_(void) Notify( \
173 _In_opt_ PSERVICEGROUP ServiceGroup); \
175 STDMETHODIMP_(void) RegisterServiceGroup( \
176 _In_ PSERVICEGROUP ServiceGroup)
179#define INTERFACE IMiniportDMus
181DEFINE_GUID(IID_IMiniportDMus, 0xc096df9d, 0xfb09, 0x11d1, 0x81, 0xb0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1);
214#define IMP_IMiniportDMus \
216 STDMETHODIMP_(NTSTATUS) Init( \
217 _In_opt_ PUNKNOWN UnknownAdapter, \
218 _In_ PRESOURCELIST ResourceList, \
219 _In_ PPORTDMUS Port, \
220 _Out_ PSERVICEGROUP *ServiceGroup); \
222 STDMETHODIMP_(void) Service(THIS); \
224 STDMETHODIMP_(NTSTATUS) NewStream( \
226 _In_opt_ PUNKNOWN OuterUnknown, \
227 _In_ POOL_TYPE PoolType, \
229 _In_ DMUS_STREAM_TYPE StreamType, \
230 _In_ PKSDATAFORMAT DataFormat, \
231 _Out_ PSERVICEGROUP *ServiceGroup, \
232 _In_ PAllocatorMXF AllocatorMXF, \
233 _In_ PMASTERCLOCK MasterClock, \
234 _Out_ PULONGLONG SchedulePreFetch)
237#define STATIC_KSAUDFNAME_DMUSIC_MPU_OUT\
238 0xA4DF0EB5, 0xBAC9, 0x11d2, {0xB7, 0xA8, 0x00, 0x60, 0x08, 0x33, 0x16, 0xC1}
240#define KSAUDFNAME_DMUSIC_MPU_OUT DEFINE_GUIDNAMED(KSAUDFNAME_DMUSIC_MPU_OUT)
242#define STATIC_KSAUDFNAME_DMUSIC_MPU_IN\
243 0xB2EC0A7D, 0xBAC9, 0x11d2, {0xB7, 0xA8, 0x00, 0x60, 0x08, 0x33, 0x16, 0xC1}
245#define KSAUDFNAME_DMUSIC_MPU_IN DEFINE_GUIDNAMED(KSAUDFNAME_DMUSIC_MPU_IN)
247#define STATIC_IID_IMXF\
248 0xc096df9e, 0xfb09, 0x11d1, {0x81, 0xb0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1}
250#define IID_IMXF DEFINE_GUIDNAMED(IID_IMXF)
252#define DMUS_KEF_EVENT_COMPLETE 0x0000
253#define DMUS_KEF_EVENT_INCOMPLETE 0x0001
254#define DMUS_KEF_PACKAGE_EVENT 0x0002
255#define kBytePositionNone (~(ULONGLONG)0)
257#define SHORT_EVT(evt) ((evt)->cbEvent <= sizeof(PBYTE))
258#define PACKAGE_EVT(evt) ((evt)->usFlags & DMUS_KEF_PACKAGE_EVENT)
259#define INCOMPLETE_EVT(evt) ((evt)->usFlags & DMUS_KEF_EVENT_INCOMPLETE)
260#define COMPLETE_EVT(evt) (((evt)->usFlags & DMUS_KEF_EVENT_INCOMPLETE) == 0)
262#define SET_INCOMPLETE_EVT(evt) ((evt)->usFlags |= DMUS_KEF_EVENT_INCOMPLETE)
263#define SET_COMPLETE_EVT(evt) ((evt)->usFlags &= (~DMUS_KEF_EVENT_INCOMPLETE))
264#define SET_PACKAGE_EVT(evt) ((evt)->usFlags |= DMUS_KEF_PACKAGE_EVENT)
265#define CLEAR_PACKAGE_EVT(evt) ((evt)->usFlags &= (~DMUS_KEF_PACKAGE_EVENT))
static unsigned char bytes[4]
#define DECLARE_INTERFACE_(i, b)
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
#define KSAUDFNAME_DMUSIC_MPU_OUT
#define DEFINE_ABSTRACT_IMXF()
struct _DMUS_KERNEL_EVENT * PDMUS_KERNEL_EVENT
struct IAllocatorMXF * PAllocatorMXF
#define IID_IAllocatorMXF
IMiniportDMus * PMINIPORTDMUS
struct _DMUS_KERNEL_EVENT DMUS_KERNEL_EVENT
IMasterClock * PMASTERCLOCK
@ DMUS_STREAM_MIDI_RENDER
@ DMUS_STREAM_MIDI_CAPTURE
@ DMUS_STREAM_MIDI_INVALID
#define KSAUDFNAME_DMUSIC_MPU_IN
return pMemory GetBuffer()
#define DEFINE_GUIDSTRUCT(guid, name)
#define DEFINE_ABSTRACT_UNKNOWN()
#define _Outptr_result_bytebuffer_(s)
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
static PHARDWARE_TIMER MasterClock
IResourceList * PRESOURCELIST
#define DEFINE_ABSTRACT_PORT()
#define DEFINE_ABSTRACT_MINIPORT()
IServiceGroup * PSERVICEGROUP
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
struct _DMUS_KERNEL_EVENT * pPackageEvt
struct _DMUS_KERNEL_EVENT * pNextEvt
BYTE abData[sizeof(PBYTE)]
union _DMUS_KERNEL_EVENT::@1936 uData
REFERENCE_TIME ullPresTime100ns
ULONGLONG ullBytePosition
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
_In_ PCCERT_CONTEXT _In_opt_ LPFILETIME pTime