From: Johannes Anderwald Date: Thu, 10 Sep 2009 09:52:40 +0000 (+0000) Subject: - A few header updates X-Git-Tag: ReactOS-0.3.11~887 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=fece42a150dc4aa1a43f6552fc1c3474da6bf7bb - A few header updates svn path=/trunk/; revision=43023 --- diff --git a/reactos/include/ddk/dmusicks.h b/reactos/include/ddk/dmusicks.h index f2f23a7290f..64fac3b34b4 100644 --- a/reactos/include/ddk/dmusicks.h +++ b/reactos/include/ddk/dmusicks.h @@ -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; - - 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_UNKNOWN() + + DEFINE_ABSTRACT_IMXF() }; /* =============================================================== @@ -105,30 +122,17 @@ DECLARE_INTERFACE_(IMXF,IUnknown) struct IAllocatorMXF; typedef struct IAllocatorMXF *PAllocatorMXF; -DECLARE_INTERFACE_(IAllocatorMXF,IMXF) +#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) + + +DECLARE_INTERFACE_(IAllocatorMXF, IMXF) { - STDMETHOD_(NTSTATUS, QueryInterface)(THIS_ - REFIID InterfaceId, - PVOID* Interface - ) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - - 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_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 diff --git a/reactos/include/ddk/portcls.h b/reactos/include/ddk/portcls.h index 716d17a9e3a..d5215901b0f 100644 --- a/reactos/include/ddk/portcls.h +++ b/reactos/include/ddk/portcls.h @@ -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 */