- Add CLSIDs for Miniport drivers

- Add IIDs for IResourceList, IRegistryKey
- Add IMiniportWaveCyclicStream, IMiniportWaveCyclic interface 

svn path=/trunk/; revision=37842
This commit is contained in:
Johannes Anderwald 2008-12-04 08:44:17 +00:00
parent 987313245b
commit 2242fa6da1
2 changed files with 121 additions and 31 deletions

View file

@ -0,0 +1,10 @@
#ifndef _DMUSICKS_
#define _DMUSICKS_
DEFINE_GUID(CLSID_MiniportDriverDMusUART, 0xd3f0ce1c, 0xFFFC, 0x11D1, 0x81, 0xB0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xC1);
DEFINE_GUID(CLSID_MiniportDriverDMusUARTCapture, 0xD3F0CE1D, 0xFFFC, 0x11D1, 0x81, 0xB0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xC1);
#endif

View file

@ -162,24 +162,9 @@ extern "C"
#define PORT_CLASS_DEVICE_EXTENSION_SIZE ( 64 * sizeof(ULONG_PTR) )
/* ===============================================================
Class IDs - TODO (put these elsewhere!!!)
*/
#if 0
//#define CLSID_PortDMus /* dmusicks.h */
DEFINE_GUID(CLSID_PortMidi,0xb4c90a43L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44);
#define CLSID_PortTopology
#define CLSID_PortWaveCyclic
#define CLSID_PortWavePci
/* first 2 are dmusicks.h */
#define CLSID_MiniportDriverDMusUART
#define CLSID_MiniportDriverDMusUARTCapture
#define CLSID_MiniportDriverFmSynth
#define CLSID_MiniportDriverFmSynthWithVol
DEFINE_GUID(CLSID_MiniportDriverUart,0xb4c90ae1L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44);
#endif
DEFINE_GUID(CLSID_MiniportDriverFmSynth, 0xb4c90ae0L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44);
DEFINE_GUID(CLSID_MiniportDriverFmSynthWithVol, 0xe5a3c139L, 0xf0f2, 0x11d1, 0x81, 0xaf, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1);
/* ===============================================================
Event Item Flags - TODO
@ -400,6 +385,8 @@ typedef struct
#undef INTERFACE
#define INTERFACE IResourceList
DEFINE_GUID(IID_IResourceList, 0x22C6AC60L, 0x851B, 0x11D0, 0x9A, 0x7F, 0x00, 0xAA, 0x00, 0x38, 0xAC, 0xFE);
DECLARE_INTERFACE_(IResourceList, IUnknown)
{
DEFINE_ABSTRACT_UNKNOWN()
@ -789,6 +776,8 @@ typedef IInterruptSync *PINTERRUPTSYNC;
IRegistryKey Interface
*/
DEFINE_GUID(IID_IRegistryKey, 0xE8DA4302l, 0xF304, 0x11D0, 0x95, 0x8B, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3);
DECLARE_INTERFACE_(IRegistryKey, IUnknown)
{
DEFINE_ABSTRACT_UNKNOWN()
@ -1015,28 +1004,55 @@ typedef IPortMidi *PPORTMIDI;
STDMETHODIMP_(NTSTATUS) RegisterServiceGroup( \
IN PSERVICEGROUP ServiceGroup);
#undef INTERFACE
/* ===============================================================
IPortWaveCyclic Interface
*/
#if 0
#define STATIC_IPortWaveCyclic \
0xb4c90a26L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44
DEFINE_GUIDSTRUCT("0xB4C90A26-5791-11d0-86f9-00a0c911b544", IID_IPortWaveCyclic);
#define IID_IPortWaveCyclic DEFINE_GUIDNAMED(IID_IPortWaveCyclic)
#endif
DEFINE_GUID(IID_IPortWaveCyclic,
0xb4c90a26L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44);
DEFINE_GUID(CLSID_PortWaveCyclic,
0xb4c90a2aL, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44);
#define INTERFACE IPortWaveCyclic
DECLARE_INTERFACE_(IPortWaveCyclic, IPort)
{
DEFINE_ABSTRACT_UNKNOWN()
DEFINE_ABSTRACT_PORT()
STDMETHOD_(NTSTATUS, QueryInterface)(THIS_
REFIID InterfaceId,
PVOID* Interface
) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD_(NTSTATUS,Init)(THIS_
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PUNKNOWN UnknownMiniport,
IN PUNKNOWN UnknownAdapter OPTIONAL,
IN PRESOURCELIST ResourceList
) PURE;
STDMETHOD_(NTSTATUS,GetDeviceProperty)(THIS_
IN DEVICE_REGISTRY_PROPERTY DeviceProperty,
IN ULONG BufferLength,
OUT PVOID PropertyBuffer,
OUT PULONG ResultLength
) PURE;
STDMETHOD_(NTSTATUS,NewRegistryKey)(THIS_
OUT PREGISTRYKEY * OutRegistryKey,
IN PUNKNOWN OuterUnknown,
IN ULONG RegistryKeyType,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN ULONG CreateOptions OPTIONAL,
OUT PULONG Disposition OPTIONAL
) PURE;
STDMETHOD_(VOID, Notify)(THIS_
IN PSERVICEGROUP ServiceGroup) PURE;
STDMETHOD_(NTSTATUS, NewMasterDmaChannel)(THIS_
OUT PDMACHANNEL* DmaChannel,
@ -1057,13 +1073,12 @@ DECLARE_INTERFACE_(IPortWaveCyclic, IPort)
IN BOOL DemandMode,
IN DMA_SPEED DmaSpeed) PURE;
STDMETHOD_(VOID, Notify)(THIS_
IN PSERVICEGROUP ServiceGroup) PURE;
};
/* TODO ... */
typedef IPortWaveCyclic *PPORTWAVECYCLIC;
#undef INTERFACE
/* ===============================================================
IPortWavePci Interface
*/
@ -1231,6 +1246,7 @@ typedef IPortTopology *PPORTTOPOLOGY;
#define IMP_IPortTopology IMP_IPort
/* ===============================================================
IMiniportTopology Interface
*/
@ -1239,9 +1255,73 @@ typedef IPortTopology *PPORTTOPOLOGY;
IMiniportWaveCyclicStream Interface
*/
DECLARE_INTERFACE_(IMiniportWaveCyclicStream,IUnknown)
{
DEFINE_ABSTRACT_UNKNOWN() // For IUnknown
STDMETHOD_(NTSTATUS,SetFormat)(THIS_
IN PKSDATAFORMAT DataFormat)PURE;
STDMETHOD_(ULONG,SetNotificationFreq)(THIS_
IN ULONG Interval,
OUT PULONG FrameSize) PURE;
STDMETHOD_(NTSTATUS,SetState)(THIS_
IN KSSTATE State) PURE;
STDMETHOD_(NTSTATUS,GetPosition)( THIS_
OUT PULONG Position) PURE;
STDMETHOD_(NTSTATUS,NormalizePhysicalPosition)(THIS_
IN OUT PLONGLONG PhysicalPosition) PURE;
STDMETHOD_(void, Silence)( THIS_
IN PVOID Buffer,
IN ULONG ByteCount) PURE;
};
typedef IMiniportWaveCyclicStream *PMINIPORTWAVECYCLICSTREAM;
/* ===============================================================
IMiniportWaveCyclic Interface
*/
#undef INTERFACE
DEFINE_GUID(IID_IMiniportWaveCyclic,
0xb4c90a27L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44);
#define INTERFACE 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_MINIPORT()
STDMETHOD_(NTSTATUS, Init)(THIS_
IN PUNKNOWN UnknownAdapter,
IN PRESOURCELIST ResourceList,
IN PPORTWAVECYCLIC Port) PURE;
STDMETHOD_(NTSTATUS, NewStream)(THIS_
OUT PMINIPORTWAVECYCLICSTREAM *Stream,
IN PUNKNOWN OuterUnknown OPTIONAL,
IN POOL_TYPE PoolType,
IN ULONG Pin,
IN BOOL Capture,
IN PKSDATAFORMAT DataFormat,
OUT PDMACHANNEL *DmaChannel,
OUT PSERVICEGROUP *ServiceGroup) PURE;
};
typedef IMiniportWaveCyclic *PMINIPORTWAVECYCLIC;
#undef INTERFACE
/* ===============================================================
IMiniportWavePciStream Interface