From 44ff72e13088b7ae9503a4dddd1049adbb765007 Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Mon, 26 Jan 2009 10:18:53 +0000 Subject: [PATCH] - Include mmreg.h for portcls.h - Add KsDefaultForwardIrp prototype - Fix KSPROPSETID_Connection - Fix KSOBJECT_CREATE_ITEM struct - Add KSDATAFORMAT_WAVEFORMATEX - Add KSDATAFORMAT_SUBTYPE_PCM, KSDATAFORMAT_SPECIFIER_WAVEFORMATEX - Add WAVE_FORMAT_PCM define svn path=/trunk/; revision=39106 --- reactos/include/ddk/portcls.h | 54 ++++++++++++++++++++++++---------- reactos/include/psdk/ks.h | 17 +++++++++-- reactos/include/psdk/ksmedia.h | 21 +++++++++++++ reactos/include/psdk/mmreg.h | 4 +++ 4 files changed, 78 insertions(+), 18 deletions(-) diff --git a/reactos/include/ddk/portcls.h b/reactos/include/ddk/portcls.h index fa4f0332cf6..302baf74c1d 100644 --- a/reactos/include/ddk/portcls.h +++ b/reactos/include/ddk/portcls.h @@ -134,6 +134,10 @@ extern "C" #include +#define NOBITMAP +#include +#undef NOBITMAP + #include #include #include @@ -793,9 +797,9 @@ DEFINE_GUID(IID_IDmaChannelSlave, 0x22C6AC62L, 0x851B, 0x11D0, 0x9A, 0x7F, 0x00, DECLARE_INTERFACE_(IDmaChannelSlave, IDmaChannel) { - DEFINE_ABSTRACT_UNKNOWN(); - DEFINE_ABSTRACT_DMACHANNEL(); - DEFINE_ABSTRACT_DMACHANNELSLAVE(); + DEFINE_ABSTRACT_UNKNOWN() + DEFINE_ABSTRACT_DMACHANNEL() + DEFINE_ABSTRACT_DMACHANNELSLAVE() }; typedef IDmaChannelSlave *PDMACHANNELSLAVE; @@ -1183,6 +1187,8 @@ DECLARE_INTERFACE_(IPortWavePci, IPort) }; typedef IPortWavePci *PPORTWAVEPCI; +#undef INTERFACE + /* =============================================================== IMiniPort Interface @@ -1227,21 +1233,44 @@ typedef IMiniport *PMINIPORT; /* =============================================================== IMiniportMidiStream Interface */ +#undef INTERFACE +#define INTERFACE IMiniportMidiStream DECLARE_INTERFACE_(IMiniportMidiStream, IUnknown) { - /* TODO - Read, SetFormat, SetState, Write */ + DEFINE_ABSTRACT_UNKNOWN() + + STDMETHOD_(NTSTATUS,SetFormat)(THIS_ + IN PKSDATAFORMAT DataFormat)PURE; + + STDMETHOD_(NTSTATUS,SetState)(THIS_ + IN KSSTATE State)PURE; + + STDMETHOD_(NTSTATUS,Read)(THIS_ + IN PVOID BufferAddress, + IN ULONG BufferLength, + OUT PULONG BytesRead)PURE; + + STDMETHOD_(NTSTATUS,Write)(THIS_ + IN PVOID BufferAddress, + IN ULONG BytesToWrite, + OUT PULONG BytesWritten)PURE; }; typedef IMiniportMidiStream* PMINIPORTMIDISTREAM; - +#undef INTERFACE /* =============================================================== IMiniportMidi Interface */ +#undef INTERFACE +#define INTERFACE IMiniportMidi DECLARE_INTERFACE_(IMiniportMidi, IMiniport) { + DEFINE_ABSTRACT_UNKNOWN() + DEFINE_ABSTRACT_MINIPORT() + STDMETHOD_(NTSTATUS, Init)(THIS_ IN PUNKNOWN UnknownAdapter, IN PRESOURCELIST ResourceList, @@ -1260,8 +1289,8 @@ DECLARE_INTERFACE_(IMiniportMidi, IMiniport) STDMETHOD_(void, Service)(THIS) PURE; }; -/* TODO ... */ - +typedef IMiniportMidi *PMINIPORTMIDI; +#undef INTERFACE /* =============================================================== IMiniportDriverUart Interface @@ -1330,7 +1359,7 @@ typedef IMiniportTopology *PMINIPORTTOPOLOGY; DECLARE_INTERFACE_(IMiniportWaveCyclicStream,IUnknown) { - DEFINE_ABSTRACT_UNKNOWN() // For IUnknown + DEFINE_ABSTRACT_UNKNOWN() STDMETHOD_(NTSTATUS,SetFormat)(THIS_ IN PKSDATAFORMAT DataFormat)PURE; @@ -1367,14 +1396,7 @@ DEFINE_GUID(IID_IMiniportWaveCyclic, DECLARE_INTERFACE_(IMiniportWaveCyclic, IMiniport) { - STDMETHOD_(NTSTATUS, QueryInterface)(THIS_ - REFIID InterfaceId, - PVOID* Interface - ) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - - + DEFINE_ABSTRACT_UNKNOWN() DEFINE_ABSTRACT_MINIPORT() STDMETHOD_(NTSTATUS, Init)(THIS_ diff --git a/reactos/include/psdk/ks.h b/reactos/include/psdk/ks.h index 8ba9a331abb..ad5d3017980 100644 --- a/reactos/include/psdk/ks.h +++ b/reactos/include/psdk/ks.h @@ -344,8 +344,11 @@ typedef enum Connection Properties/Methods/Events */ -#define KSPROPSETID_Connection \ - 0x1D58C920L, 0xAC9B, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00 +#define STATIC_KSPROPSETID_Connection \ + 0x1D58C920L, 0xAC9B, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00} +DEFINE_GUIDSTRUCT("1D58C920-AC9B-11CF-A5D6-28DB04C10000", KSPROPSETID_Connection); +#define KSPROPSETID_Connection DEFINE_GUIDNAMED(KSPROPSETID_Connection) + typedef enum { @@ -1308,6 +1311,11 @@ typedef struct typedef struct { + PDRIVER_DISPATCH Create; + PVOID Context; + UNICODE_STRING ObjectClass; + PSECURITY_DESCRIPTOR SecurityDescriptor; + ULONG Flags; } KSOBJECT_CREATE_ITEM, *PKSOBJECT_CREATE_ITEM; typedef VOID (*PFNKSITEMFREECALLBACK)( @@ -2349,6 +2357,11 @@ KSDDKAPI NTSTATUS NTAPI IN KPROCESSOR_MODE RequestorMode); +KSDDKAPI NTSTATUS NTAPI + KsDefaultForwardIrp( + IN PDEVICE_OBJECT DeviceObject, + IN PIRP Irp); + /* =============================================================== Worker Management Functions */ diff --git a/reactos/include/psdk/ksmedia.h b/reactos/include/psdk/ksmedia.h index d4c87a3c373..da66d88cf4c 100644 --- a/reactos/include/psdk/ksmedia.h +++ b/reactos/include/psdk/ksmedia.h @@ -127,6 +127,14 @@ DEFINE_GUIDSTRUCT("47A4FA20-A251-11D1-A050-0000F8004788", KSCATEGORY_WDMAUD_USE_ Formats */ +//#if defined(_INC_MMREG) +typedef struct { + KSDATAFORMAT DataFormat; + WAVEFORMATEX WaveFormatEx; +} KSDATAFORMAT_WAVEFORMATEX, *PKSDATAFORMAT_WAVEFORMATEX; + +//#endif + // 'vids' #define STATIC_KSDATAFORMAT_TYPE_VIDEO \ 0x73646976L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} @@ -139,6 +147,9 @@ DEFINE_GUIDSTRUCT("73646976-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_VIDE DEFINE_GUIDSTRUCT("73647561-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_AUDIO); #define KSDATAFORMAT_TYPE_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUDIO) + + + // 'txts' #define STATIC_KSDATAFORMAT_TYPE_TEXT \ 0x73747874L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} @@ -161,6 +172,16 @@ DEFINE_GUIDSTRUCT("7364696D-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_MIDI DEFINE_GUIDSTRUCT("1D262760-E957-11CF-A5D6-28DB04C10000", KSDATAFORMAT_SUBTYPE_MIDI); #define KSDATAFORMAT_SUBTYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI) +#define STATIC_KSDATAFORMAT_SUBTYPE_PCM\ + 0x00000001L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} +DEFINE_GUIDSTRUCT("00000001-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_PCM); +#define KSDATAFORMAT_SUBTYPE_PCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_PCM) + + +#define STATIC_KSDATAFORMAT_SPECIFIER_WAVEFORMATEX\ + 0x05589f81L, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a +DEFINE_GUIDSTRUCT("05589f81-c356-11ce-bf01-00aa0055595a", KSDATAFORMAT_SPECIFIER_WAVEFORMATEX); +#define KSDATAFORMAT_SPECIFIER_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX) /* SysAudio Properties diff --git a/reactos/include/psdk/mmreg.h b/reactos/include/psdk/mmreg.h index 02af8c9aa3b..2440757a689 100644 --- a/reactos/include/psdk/mmreg.h +++ b/reactos/include/psdk/mmreg.h @@ -78,6 +78,10 @@ typedef struct _WAVEFORMATEX { } WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX; #endif /* _WAVEFORMATEX_ */ +#ifndef WAVE_FORMAT_PCM +#define WAVE_FORMAT_PCM 0x0001 +#endif + /* WAVE form wFormatTag IDs */ #define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */ #define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */