From eae75301664b052af5ec10fd07d58c34dcfcea20 Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Sun, 28 Dec 2008 17:28:23 +0000 Subject: [PATCH] - Add ISubdevice interface - This interface is used as the generic interface for all IPort drivers when connecting with ks.sys svn path=/trunk/; revision=38430 --- .../wdm/audio/backpln/portcls/interfaces.h | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 reactos/drivers/wdm/audio/backpln/portcls/interfaces.h diff --git a/reactos/drivers/wdm/audio/backpln/portcls/interfaces.h b/reactos/drivers/wdm/audio/backpln/portcls/interfaces.h new file mode 100644 index 00000000000..d79a6a909a3 --- /dev/null +++ b/reactos/drivers/wdm/audio/backpln/portcls/interfaces.h @@ -0,0 +1,66 @@ +#ifndef INTERFACES_H__ +#define INTERFACES_H__ + +DEFINE_GUID(IID_IIrpTarget, 0xB4C90A60, 0x5791, 0x11D0, 0x86, 0xF9, 0x00, 0xA0, 0xC9, 0x11, 0xB5, 0x44); +DEFINE_GUID(IID_ISubdevice, 0xB4C90A61, 0x5791, 0x11D0, 0x86, 0xF9, 0x00, 0xA0, 0xC9, 0x11, 0xB5, 0x44); +DEFINE_GUID(IID_IIrpTargetFactory, 0xB4C90A62, 0x5791, 0x11D0, 0x86, 0xF9, 0x00, 0xA0, 0xC9, 0x11, 0xB5, 0x44); + +/***************************************************************************** + * ISubdevice + ***************************************************************************** + */ +struct SUBDEVICE_DESCRIPTOR; +struct IIrpTarget; +struct IIrpTargetFactory; + +#undef INTERFACE +#define INTERFACE ISubdevice + +DECLARE_INTERFACE_(ISubdevice, IUnknown) +{ + STDMETHOD_(NTSTATUS, QueryInterface)(THIS_ + REFIID InterfaceId, + PVOID* Interface + ) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + + STDMETHOD_(NTSTATUS, NewIrpTarget)(THIS_ + OUT struct IIrpTarget **OutTarget, + IN WCHAR * Name, + IN PUNKNOWN Unknown, + IN POOL_TYPE PoolType, + IN PDEVICE_OBJECT * DeviceObject, + IN PIRP Irp, + IN KSOBJECT_CREATE *CreateObject) PURE; + + STDMETHOD_(NTSTATUS, ReleaseChildren)(THIS) PURE; + + STDMETHOD_(NTSTATUS, GetDescriptor)(THIS_ + IN struct SUBDEVICE_DESCRIPTOR **) PURE; + + STDMETHOD_(NTSTATUS, DataRangeIntersection)(THIS_ + IN ULONG PinId, + IN PKSDATARANGE DataRange, + IN PKSDATARANGE MatchingDataRange, + IN ULONG OutputBufferLength, + OUT PVOID ResultantFormat OPTIONAL, + OUT PULONG ResultantFormatLength) PURE; + + STDMETHOD_(NTSTATUS, PowerChangeNotify)(THIS_ + IN POWER_STATE PowerState) PURE; + + STDMETHOD_(NTSTATUS, PinCount)(THIS_ + IN ULONG PinId, + IN OUT PULONG FilterNecessary, + IN OUT PULONG FilterCurrent, + IN OUT PULONG FilterPossible, + IN OUT PULONG GlobalCurrent, + IN OUT PULONG GlobalPossible)PURE; + + +}; +#undef INTERFACE + + +#endif