- A few header updates

svn path=/trunk/; revision=43023
This commit is contained in:
Johannes Anderwald 2009-09-10 09:52:40 +00:00
parent c89668ac36
commit fece42a150
2 changed files with 335 additions and 183 deletions

View file

@ -45,12 +45,7 @@ DEFINE_GUID(CLSID_MiniportDriverDMusUARTCapture, 0xD3F0CE1D, 0xFFFC, 0x11D1, 0x8
DECLARE_INTERFACE_(IMasterClock,IUnknown)
{
STDMETHOD_(NTSTATUS, QueryInterface)(THIS_
REFIID InterfaceId,
PVOID* Interface
) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
DEFINE_ABSTRACT_UNKNOWN()
STDMETHOD_(NTSTATUS,GetTime)( THIS_
OUT REFERENCE_TIME * pTime
@ -59,6 +54,11 @@ DECLARE_INTERFACE_(IMasterClock,IUnknown)
typedef IMasterClock *PMASTERCLOCK;
#define IMP_IMasterClock \
STDMETHODIMP_(NTSTATUS) GetTime( \
OUT REFERENCE_TIME * pTime \
)
/* ===============================================================
IMXF Interface
*/
@ -69,30 +69,47 @@ typedef IMasterClock *PMASTERCLOCK;
struct IMXF;
typedef struct IMXF *PMXF;
#define DEFINE_ABSTRACT_IMXF() \
STDMETHOD_(NTSTATUS,SetState)(THIS_ \
IN KSSTATE State \
) PURE; \
STDMETHOD_(NTSTATUS,PutMessage) \
( THIS_ \
IN PDMUS_KERNEL_EVENT pDMKEvt \
) PURE; \
STDMETHOD_(NTSTATUS,ConnectOutput) \
( THIS_ \
IN PMXF sinkMXF \
) PURE; \
STDMETHOD_(NTSTATUS,DisconnectOutput) \
( THIS_ \
IN PMXF sinkMXF \
) PURE;
#define IMP_IMXF \
STDMETHODIMP_(NTSTATUS) SetState \
( \
IN KSSTATE State \
); \
STDMETHODIMP_(NTSTATUS) PutMessage \
( THIS_ \
IN PDMUS_KERNEL_EVENT pDMKEvt \
); \
STDMETHODIMP_(NTSTATUS) ConnectOutput \
( THIS_ \
IN PMXF sinkMXF \
); \
STDMETHODIMP_(NTSTATUS) DisconnectOutput \
( THIS_ \
IN PMXF sinkMXF \
)
DECLARE_INTERFACE_(IMXF,IUnknown)
{
STDMETHOD_(NTSTATUS, QueryInterface)(THIS_
REFIID InterfaceId,
PVOID* Interface
) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
DEFINE_ABSTRACT_UNKNOWN()
STDMETHOD_(NTSTATUS,SetState)(THIS_
IN KSSTATE State
) PURE;
STDMETHOD_(NTSTATUS,PutMessage)
( THIS_
IN PDMUS_KERNEL_EVENT pDMKEvt
) PURE;
STDMETHOD_(NTSTATUS,ConnectOutput)
( THIS_
IN PMXF sinkMXF
) PURE;
STDMETHOD_(NTSTATUS,DisconnectOutput)
( THIS_
IN PMXF sinkMXF
) PURE;
DEFINE_ABSTRACT_IMXF()
};
/* ===============================================================
@ -105,30 +122,17 @@ DECLARE_INTERFACE_(IMXF,IUnknown)
struct IAllocatorMXF;
typedef struct IAllocatorMXF *PAllocatorMXF;
DECLARE_INTERFACE_(IAllocatorMXF,IMXF)
{
STDMETHOD_(NTSTATUS, QueryInterface)(THIS_
REFIID InterfaceId,
PVOID* Interface
) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
#define STATIC_IID_IAllocatorMXF\
0xa5f0d62c, 0xb30f, 0x11d2, 0xb7, 0xa3, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1
DEFINE_GUIDSTRUCT("a5f0d62c-b30f-11d2-b7a3-0060083316c1", IID_IAllocatorMXF);
#define IID_IAllocatorMXF DEFINE_GUIDNAMED(IID_IAllocatorMXF)
STDMETHOD_(NTSTATUS,SetState)(THIS_
IN KSSTATE State
) PURE;
STDMETHOD_(NTSTATUS,PutMessage)
( THIS_
IN PDMUS_KERNEL_EVENT pDMKEvt
) PURE;
STDMETHOD_(NTSTATUS,ConnectOutput)
( THIS_
IN PMXF sinkMXF
) PURE;
STDMETHOD_(NTSTATUS,DisconnectOutput)
( THIS_
IN PMXF sinkMXF
) PURE;
DECLARE_INTERFACE_(IAllocatorMXF, IMXF)
{
DEFINE_ABSTRACT_UNKNOWN()
DEFINE_ABSTRACT_IMXF()
STDMETHOD_(NTSTATUS,GetMessage)(THIS_
OUT PDMUS_KERNEL_EVENT * ppDMKEvt
@ -145,6 +149,21 @@ DECLARE_INTERFACE_(IAllocatorMXF,IMXF)
) PURE;
};
#define IMP_IAllocatorMXF \
IMP_IMXF; \
STDMETHODIMP_(NTSTATUS) GetMessage( \
OUT PDMUS_KERNEL_EVENT * ppDMKEvt \
); \
\
STDMETHODIMP_(USHORT) GetBufferSize(void); \
\
STDMETHODIMP_(NTSTATUS) GetBuffer( \
OUT PBYTE * ppBuffer \
); \
\
STDMETHODIMP_(NTSTATUS) PutBuffer( \
IN PBYTE pBuffer \
)
#undef INTERFACE
#define INTERFACE IPortDMus
@ -154,35 +173,10 @@ DEFINE_GUID(CLSID_PortDMus, 0xb7902fe9, 0xfb0a, 0x11d1, 0x81, 0xb0, 0x00, 0x60,
DECLARE_INTERFACE_(IPortDMus, IPort)
{
STDMETHOD_(NTSTATUS, QueryInterface)(THIS_
REFIID InterfaceId,
PVOID* Interface
) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
DEFINE_ABSTRACT_UNKNOWN()
DEFINE_ABSTRACT_PORT()
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 OPTIONAL
)PURE;
@ -193,7 +187,15 @@ DECLARE_INTERFACE_(IPortDMus, IPort)
};
typedef IPortDMus *PPORTDMUS;
#define IMP_IPortDMus \
IMP_IPort; \
STDMETHODIMP_(void) Notify( \
IN PSERVICEGROUP ServiceGroup OPTIONAL \
); \
\
STDMETHODIMP_(void) RegisterServiceGroup( \
IN PSERVICEGROUP ServiceGroup \
)
#undef INTERFACE
#define INTERFACE IMiniportDMus
@ -201,24 +203,10 @@ typedef IPortDMus *PPORTDMUS;
DEFINE_GUID(IID_IMiniportDMus, 0xc096df9d, 0xfb09, 0x11d1, 0x81, 0xb0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1);
DECLARE_INTERFACE_(IMiniportDMus, IMiniport)
{
STDMETHOD_(NTSTATUS, QueryInterface)(THIS_
REFIID InterfaceId,
PVOID* Interface
) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
DEFINE_ABSTRACT_UNKNOWN()
STDMETHOD_(NTSTATUS,GetDescription)(THIS_
OUT PPCFILTER_DESCRIPTOR * Description
) 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;
DEFINE_ABSTRACT_MINIPORT()
STDMETHOD_(NTSTATUS,Init)(THIS_
IN PUNKNOWN UnknownAdapter,
@ -246,9 +234,28 @@ DECLARE_INTERFACE_(IMiniportDMus, IMiniport)
typedef IMiniportDMus *PMINIPORTDMUS;
#undef INTERFACE
#define STATIC_IID_IAllocatorMXF\
0xa5f0d62c, 0xb30f, 0x11d2, 0xb7, 0xa3, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1
DEFINE_GUIDSTRUCT("a5f0d62c-b30f-11d2-b7a3-0060083316c1", IID_IAllocatorMXF);
#define IID_IAllocatorMXF DEFINE_GUIDNAMED(IID_IAllocatorMXF)
#define IMP_IMiniportDMus \
IMP_IMiniport; \
STDMETHODIMP_(NTSTATUS) Init( \
IN PUNKNOWN UnknownAdapter, \
IN PRESOURCELIST ResourceList, \
IN PPORTDMUS Port, \
OUT PSERVICEGROUP * ServiceGroup \
); \
\
STDMETHODIMP_(void) Service(THIS); \
\
STDMETHODIMP_(NTSTATUS) NewStream( \
OUT PMXF * MXF, \
IN PUNKNOWN OuterUnknown, \
IN POOL_TYPE PoolType, \
IN ULONG PinID, \
IN DMUS_STREAM_TYPE StreamType, \
IN PKSDATAFORMAT DataFormat, \
OUT PSERVICEGROUP * ServiceGroup, \
IN PAllocatorMXF AllocatorMXF, \
IN PMASTERCLOCK MasterClock, \
OUT PULONGLONG SchedulePreFetch \
)
#endif

View file

@ -665,6 +665,11 @@ DECLARE_INTERFACE_(IUnregisterSubdevice,IUnknown)
typedef IUnregisterSubdevice *PUNREGISTERSUBDEVICE;
#define IMP_IUnregisterSubdevice \
STDMETHODIMP_(NTSTATUS) UnregisterSubdevice(THIS_ \
IN PDEVICE_OBJECT DeviceObject, \
IN PUNKNOWN Unknown)
/* ===============================================================
IUnregisterPhysicalConnection Interface
*/
@ -703,6 +708,29 @@ DECLARE_INTERFACE_(IUnregisterPhysicalConnection,IUnknown)
typedef IUnregisterPhysicalConnection *PUNREGISTERPHYSICALCONNECTION;
#endif
#define IMP_IUnregisterPhysicalConnection \
STDMETHODIMP_(NTSTATUS) UnregisterPhysicalConnection( \
IN PDEVICE_OBJECT DeviceObject, \
IN PUNKNOWN FromUnknown, \
IN ULONG FromPin, \
IN PUNKNOWN ToUnknown, \
IN ULONG ToPin); \
\
STDMETHODIMP_(NTSTATUS) UnregisterPhysicalConnectionToExternal( \
IN PDEVICE_OBJECT DeviceObject, \
IN PUNKNOWN FromUnknown, \
IN ULONG FromPin, \
IN PUNICODE_STRING ToString, \
IN ULONG ToPin); \
\
STDMETHODIMP_(NTSTATUS) UnregisterPhysicalConnectionFromExternal( \
IN PDEVICE_OBJECT DeviceObject, \
IN PUNICODE_STRING FromString, \
IN ULONG FromPin, \
IN PUNKNOWN ToUnknown, \
IN ULONG ToPin)
/* ===============================================================
IDmaChannel Interface
*/
@ -735,33 +763,33 @@ typedef IUnregisterPhysicalConnection *PUNREGISTERPHYSICALCONNECTION;
IN PVOID Source, \
IN ULONG ByteCount) PURE;
#define IMP_IDmaChannel() \
STDMETHODIMP_(NTSTATUS) AllocateBuffer( \
IN ULONG BufferSize, \
IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \
\
STDMETHODIMP_(void) FreeBuffer(void); \
STDMETHODIMP_(ULONG) TransferCount(void); \
STDMETHODIMP_(ULONG) MaximumBufferSize(void); \
STDMETHODIMP_(ULONG) AllocatedBufferSize(void); \
STDMETHODIMP_(ULONG) BufferSize(void); \
\
STDMETHODIMP_(void) SetBufferSize)( \
IN ULONG BufferSize); \
\
STDMETHODIMP_(PVOID) SystemAddress(void); \
STDMETHODIMP_(PHYSICAL_ADDRESS) PhysicalAddress(void); \
STDMETHODIMP_(PADAPTER_OBJECT) GetAdapterObject(void); \
\
STDMETHODIMP_(void) CopyTo( \
IN PVOID Destination, \
IN PVOID Source, \
IN ULONG ByteCount); \
\
STDMETHODIMP_(void) CopyFrom( \
IN PVOID Destination, \
IN PVOID Source, \
IN ULONG ByteCount);
#define IMP_IDmaChannel \
STDMETHODIMP_(NTSTATUS) AllocateBuffer( \
IN ULONG BufferSize, \
IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \
\
STDMETHODIMP_(void) FreeBuffer(void); \
STDMETHODIMP_(ULONG) TransferCount(void); \
STDMETHODIMP_(ULONG) MaximumBufferSize(void); \
STDMETHODIMP_(ULONG) AllocatedBufferSize(void); \
STDMETHODIMP_(ULONG) BufferSize(void); \
\
STDMETHODIMP_(void) SetBufferSize( \
IN ULONG BufferSize); \
\
STDMETHODIMP_(PVOID) SystemAddress(void); \
STDMETHODIMP_(PHYSICAL_ADDRESS) PhysicalAddress(void); \
STDMETHODIMP_(PADAPTER_OBJECT) GetAdapterObject(void); \
\
STDMETHODIMP_(void) CopyTo( \
IN PVOID Destination, \
IN PVOID Source, \
IN ULONG ByteCount); \
\
STDMETHODIMP_(void) CopyFrom( \
IN PVOID Destination, \
IN PVOID Source, \
IN ULONG ByteCount)
#undef INTERFACE
#define INTERFACE IDmaChannel
@ -792,16 +820,17 @@ typedef IDmaChannel *PDMACHANNEL;
STDMETHOD_(NTSTATUS, WaitForTC)( THIS_ \
ULONG Timeout) PURE;
#define IMP_IDmaChannelSlave \
STDMETHODIMP_(NTSTATUS) Start( \
IN ULONG MapSize, \
IN BOOLEAN WriteToDevice); \
\
STDMETHODIMP_(NTSTATUS) Stop(void); \
STDMETHODIMP_(ULONG) ReadCounter)(void); \
\
STDMETHODIMP_(NTSTATUS, WaitForTC)( \
ULONG Timeout);
#define IMP_IDmaChannelSlave \
IMP_IDmaChannel; \
STDMETHODIMP_(NTSTATUS) Start( \
IN ULONG MapSize, \
IN BOOLEAN WriteToDevice); \
\
STDMETHODIMP_(NTSTATUS) Stop(void); \
STDMETHODIMP_(ULONG) ReadCounter(void); \
\
STDMETHODIMP_(NTSTATUS) WaitForTC( \
ULONG Timeout)
#undef INTERFACE
#define INTERFACE IDmaChannelSlave
@ -863,19 +892,19 @@ DECLARE_INTERFACE_(IInterruptSync, IUnknown)
DEFINE_GUID(IID_IInterruptSync, 0x22C6AC63L, 0x851B, 0x11D0, 0x9A, 0x7F, 0x00, 0xAA, 0x00, 0x38, 0xAC, 0xFE);
#define IMP_IInterruptSync \
STDMETHODIMP_(NTSTATUS, CallSynchronizedRoutine)( \
IN PINTERRUPTSYNCROUTINE Routine, \
IN PVOID DynamicContext); \
\
STDMETHODIMP_(PKINTERRUPT, GetKInterrupt)(void); \
STDMETHODIMP_(NTSTATUS, Connect)(void); \
STDMETHODIMP_(void, Disconnect)(void); \
\
STDMETHODIMP_(NTSTATUS, RegisterServiceRoutine)( \
IN PINTERRUPTSYNCROUTINE Routine, \
IN PVOID DynamicContext, \
IN BOOLEAN First);
#define IMP_IInterruptSync \
STDMETHODIMP_(NTSTATUS) CallSynchronizedRoutine( \
IN PINTERRUPTSYNCROUTINE Routine, \
IN PVOID DynamicContext); \
\
STDMETHODIMP_(PKINTERRUPT) GetKInterrupt(void); \
STDMETHODIMP_(NTSTATUS) Connect(void); \
STDMETHODIMP_(void) Disconnect(void); \
\
STDMETHODIMP_(NTSTATUS) RegisterServiceRoutine( \
IN PINTERRUPTSYNCROUTINE Routine, \
IN PVOID DynamicContext, \
IN BOOLEAN First)
typedef IInterruptSync *PINTERRUPTSYNC;
@ -1059,28 +1088,31 @@ DEFINE_GUID(IID_IPort,
IN ULONG CreateOptiona OPTIONAL, \
OUT PULONG Disposition OPTIONAL) PURE;
#define IMP_IPort() \
STDMETHODIMP_(NTSTATUS) Init( \
IN PDEVICE_OBJECT DeviceObject, \
IN PIRP Irp, \
IN PUNKNOWN UnknownMiniport, \
IN PUNKNOWN UnknownAdapter OPTIONAL, \
IN PRESOURCELIST ResourceList); \
\
STDMETHODIMP_(NTSTATUS) GetDeviceProperty( \
IN DEVICE_REGISTRY_PROPERTY DeviceProperty, \
IN ULONG BufferLength, \
OUT PVOID PropertyBuffer, \
OUT PULONG ResultLength); \
\
STDMETHODIMP_(NTSTATUS) NewRegistryKey( \
OUT PREGISTRYKEY* OutRegistryKey, \
IN PUNKNOWN OuterUnknown OPTIONAL, \
IN ULONG RegistryKeyType, \
IN ACCESS_MASK DesiredAccess, \
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, \
IN ULONG CreateOptiona OPTIONAL, \
OUT PULONG Disposition OPTIONAL);
#ifdef PC_IMPLEMENTATION
#define IMP_IPort\
STDMETHODIMP_(NTSTATUS) Init\
( IN PDEVICE_OBJECT DeviceObject,\
IN PIRP Irp,\
IN PUNKNOWN UnknownMiniport,\
IN PUNKNOWN UnknownAdapter OPTIONAL,\
IN PRESOURCELIST ResourceList\
);\
STDMETHODIMP_(NTSTATUS) GetDeviceProperty\
( IN DEVICE_REGISTRY_PROPERTY DeviceProperty,\
IN ULONG BufferLength,\
OUT PVOID PropertyBuffer,\
OUT PULONG ResultLength\
);\
STDMETHODIMP_(NTSTATUS) NewRegistryKey\
( OUT PREGISTRYKEY * OutRegistryKey,\
IN PUNKNOWN OuterUnknown OPTIONAL,\
IN ULONG RegistryKeyType,\
IN ACCESS_MASK DesiredAccess,\
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,\
IN ULONG CreateOptions OPTIONAL,\
OUT PULONG Disposition OPTIONAL\
)
#endif
#undef INTERFACE
#define INTERFACE IPort
@ -1172,6 +1204,33 @@ DECLARE_INTERFACE_(IPortWaveCyclic, IPort)
typedef IPortWaveCyclic *PPORTWAVECYCLIC;
#ifdef PC_IMPLEMENTATION
#define IMP_IPortWaveCyclic \
IMP_IPort; \
STDMETHODIMP_(VOID) Notify( \
IN PSERVICEGROUP ServiceGroup); \
\
STDMETHODIMP_(NTSTATUS) NewSlaveDmaChannel( \
OUT PDMACHANNELSLAVE* DmaChannel, \
IN PUNKNOWN OuterUnknown, \
IN PRESOURCELIST ResourceList OPTIONAL, \
IN ULONG DmaIndex, \
IN ULONG MaximumLength, \
IN BOOL DemandMode, \
IN DMA_SPEED DmaSpeed); \
\
STDMETHODIMP_(NTSTATUS) NewMasterDmaChannel( \
OUT PDMACHANNEL* DmaChannel, \
IN PUNKNOWN OuterUnknown, \
IN PRESOURCELIST ResourceList OPTIONAL, \
IN ULONG MaximumLength, \
IN BOOL Dma32BitAddresses, \
IN BOOL Dma64BitAddresses, \
IN DMA_WIDTH DmaWidth, \
IN DMA_SPEED DmaSpeed)
#endif
#undef INTERFACE
/* ===============================================================
IPortWavePci Interface
@ -1210,6 +1269,26 @@ DECLARE_INTERFACE_(IPortWavePci, IPort)
typedef IPortWavePci *PPORTWAVEPCI;
#undef INTERFACE
#ifdef PC_IMPLEMENTATION
#define IMP_IPortWavePci \
IMP_IPort; \
STDMETHODIMP_(VOID) Notify( \
IN PSERVICEGROUP ServiceGroup); \
\
STDMETHODIMP_(NTSTATUS) NewMasterDmaChannel( \
OUT PDMACHANNEL* DmaChannel, \
IN PUNKNOWN OuterUnknown, \
IN POOL_TYPE PoolType, \
IN PRESOURCELIST ResourceList OPTIONAL, \
IN BOOLEAN ScatterGather, \
IN BOOLEAN Dma32BitAddresses, \
IN BOOLEAN Dma64BitAddresses, \
IN BOOLEAN IgnoreCount, \
IN DMA_WIDTH DmaWidth, \
IN DMA_SPEED DmaSpeed, \
IN ULONG MaximumLength, \
IN ULONG DmaPort);
#endif
/* ===============================================================
IMiniPort Interface
@ -1230,17 +1309,17 @@ DEFINE_GUID(IID_IMiniPort,
OUT PVOID ResultantFormat OPTIONAL, \
OUT PULONG ResultantFormatLength) PURE;
#define IMP_IMiniport \
STDMETHODIMP_(NTSTATUS) GetDescription( \
OUT PPCFILTER_DESCRIPTOR* Description); \
\
STDMETHODIMP_(NTSTATUS) DataRangeIntersection( \
IN ULONG PinId, \
IN PKSDATARANGE DataRange, \
IN PKSDATARANGE MatchingDataRange, \
IN ULONG OutputBufferLength, \
OUT PVOID ResultantFormat OPTIONAL, \
OUT PULONG ResultantFormatLength);
#define IMP_IMiniport \
STDMETHODIMP_(NTSTATUS) GetDescription( \
OUT PPCFILTER_DESCRIPTOR* Description); \
\
STDMETHODIMP_(NTSTATUS) DataRangeIntersection( \
IN ULONG PinId, \
IN PKSDATARANGE DataRange, \
IN PKSDATARANGE MatchingDataRange, \
IN ULONG OutputBufferLength, \
OUT PVOID ResultantFormat OPTIONAL, \
OUT PULONG ResultantFormatLength)
DECLARE_INTERFACE_(IMiniport, IUnknown)
{
@ -1524,6 +1603,20 @@ DECLARE_INTERFACE_(IPortWavePciStream,IUnknown)
typedef IPortWavePciStream *PPORTWAVEPCISTREAM;
#define IMP_IPortWavePciStream \
STDMETHODIMP_(NTSTATUS) GetMapping( \
IN PVOID Tag, \
OUT PPHYSICAL_ADDRESS PhysicalAddress, \
OUT PVOID * VirtualAddress, \
OUT PULONG ByteCount, \
OUT PULONG Flags); \
\
STDMETHODIMP_(NTSTATUS) ReleaseMapping( \
IN PVOID Tag); \
\
STDMETHODIMP_(NTSTATUS) TerminatePacket(THIS)
/* ===============================================================
IMiniportWavePciStream Interface
*/
@ -1668,6 +1761,10 @@ DECLARE_INTERFACE_(IPortWaveRT,IPort)
typedef IPortWaveRT *PPORTWAVERT;
#ifdef PC_IMPLEMENTATION
#define IMP_IPortWaveRT IMP_IPort
#endif
/* ===============================================================
IPortWaveRTStream Interface
@ -1941,6 +2038,18 @@ DECLARE_INTERFACE_(IPortEvents, IUnknown)
typedef IPortEvents *PPORTEVENTS;
#define IMP_IPortEvents \
STDMETHODIMP_(void) AddEventToEventList( \
IN PKSEVENT_ENTRY EventEntry); \
\
STDMETHODIMP_(void) GenerateEventList( \
IN GUID* Set OPTIONAL, \
IN ULONG EventId, \
IN BOOL PinEvent, \
IN ULONG PinId, \
IN BOOL NodeEvent, \
IN ULONG NodeId)
/* ===============================================================
IDrmPort / IDrmPort2 Interfaces
These are almost identical, except for the addition of two extra methods.
@ -1983,6 +2092,29 @@ DECLARE_INTERFACE_(IDrmPort, IUnknown)
typedef IDrmPort *PDRMPORT;
#define IMP_IDrmPort \
STDMETHODIMP_(NTSTATUS) CreateContentMixed( \
IN PULONG paContentId, \
IN ULONG cContentId, \
OUT PULONG pMixedContentId); \
\
STDMETHODIMP_(NTSTATUS) DestroyContent( \
IN ULONG ContentId); \
\
STDMETHODIMP_(NTSTATUS) ForwardContentToFileObject( \
IN ULONG ContentId, \
IN PFILE_OBJECT FileObject); \
\
STDMETHODIMP_(NTSTATUS) ForwardContentToInterface( \
IN ULONG ContentId, \
IN PUNKNOWN pUnknown, \
IN ULONG NumMethods); \
\
STDMETHODIMP_(NTSTATUS) GetContentRights( \
IN ULONG ContentId, \
OUT PDRMRIGHTS DrmRights)
/* ===============================================================
IDrmPort2 Interface
*/
@ -2012,6 +2144,19 @@ DECLARE_INTERFACE_(IDrmPort2, IDrmPort)
typedef IDrmPort2 *PDRMPORT2;
#define IMP_IDrmPort2 \
IMP_IDrmPort; \
STDMETHODIMP_(NTSTATUS) AddContentHandlers( \
IN ULONG ContentId, \
IN PVOID * paHandlers, \
IN ULONG NumHandlers); \
\
STDMETHODIMP_(NTSTATUS) ForwardContentToDeviceObject( \
IN ULONG ContentId, \
IN PVOID Reserved, \
IN PCDRMFORWARD DrmForward)
/* ===============================================================
IPortClsVersion Interface
*/