- 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
This commit is contained in:
Johannes Anderwald 2008-12-28 17:28:23 +00:00
parent 3ae6d9fb3c
commit eae7530166

View file

@ -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