4 DEFINE_GUID(IID_IIrpTarget, 0xB4C90A60, 0x5791, 0x11D0, 0xF9, 0x86, 0x00, 0xA0, 0xC9, 0x11, 0xB5, 0x44);
5 DEFINE_GUID(IID_ISubdevice, 0xB4C90A61, 0x5791, 0x11D0, 0xF9, 0x86, 0x00, 0xA0, 0xC9, 0x11, 0xB5, 0x44);
6 DEFINE_GUID(IID_IIrpTargetFactory, 0xB4C90A62, 0x5791, 0x11D0, 0xF9, 0x86, 0x00, 0xA0, 0xC9, 0x11, 0xB5, 0x44);
14 #define IMP_IIrpTarget \ 15 STDMETHODIMP_(NTSTATUS) NewIrpTarget(THIS_ \ 16 OUT struct IIrpTarget **OutTarget, \ 18 IN PUNKNOWN Unknown, \ 19 IN POOL_TYPE PoolType, \ 20 IN PDEVICE_OBJECT DeviceObject, \ 22 IN KSOBJECT_CREATE *CreateObject); \ 24 STDMETHODIMP_(NTSTATUS) DeviceIoControl(THIS_ \ 25 IN PDEVICE_OBJECT DeviceObject, \ 28 STDMETHODIMP_(NTSTATUS) Read(THIS_ \ 29 IN PDEVICE_OBJECT DeviceObject, \ 32 STDMETHODIMP_(NTSTATUS) Write(THIS_ \ 33 IN PDEVICE_OBJECT DeviceObject, \ 36 STDMETHODIMP_(NTSTATUS) Flush(THIS_ \ 37 IN PDEVICE_OBJECT DeviceObject, \ 40 STDMETHODIMP_(NTSTATUS) Close(THIS_ \ 41 IN PDEVICE_OBJECT DeviceObject, \ 44 STDMETHODIMP_(NTSTATUS) QuerySecurity(THIS_ \ 45 IN PDEVICE_OBJECT DeviceObject, \ 48 STDMETHODIMP_(NTSTATUS) SetSecurity(THIS_ \ 49 IN PDEVICE_OBJECT DeviceObject, \ 52 STDMETHODIMP_(BOOLEAN) FastDeviceIoControl(THIS_ \ 53 IN PFILE_OBJECT FileObject, \ 55 IN PVOID InputBuffer, \ 56 IN ULONG InputBufferLength, \ 57 OUT PVOID OutputBuffer, \ 58 IN ULONG OutputBufferLength, \ 59 IN ULONG IoControlCode, \ 60 OUT PIO_STATUS_BLOCK StatusBlock, \ 61 IN PDEVICE_OBJECT DeviceObject); \ 63 STDMETHODIMP_(BOOLEAN) FastRead(THIS_ \ 64 IN PFILE_OBJECT FileObject, \ 65 IN PLARGE_INTEGER FileOffset, \ 70 OUT PIO_STATUS_BLOCK StatusBlock, \ 71 IN PDEVICE_OBJECT DeviceObject); \ 73 STDMETHODIMP_(BOOLEAN) FastWrite(THIS_ \ 74 IN PFILE_OBJECT FileObject, \ 75 IN PLARGE_INTEGER FileOffset, \ 80 OUT PIO_STATUS_BLOCK StatusBlock, \ 81 IN PDEVICE_OBJECT DeviceObject) 83 #define DEFINE_ABSTRACT_IRPTARGET() \ 84 STDMETHOD_(NTSTATUS, NewIrpTarget)(THIS_ \ 85 OUT struct IIrpTarget **OutTarget, \ 87 IN PUNKNOWN Unknown, \ 88 IN POOL_TYPE PoolType, \ 89 IN PDEVICE_OBJECT DeviceObject, \ 91 IN KSOBJECT_CREATE *CreateObject) PURE; \ 93 STDMETHOD_(NTSTATUS, DeviceIoControl)(THIS_ \ 94 IN PDEVICE_OBJECT DeviceObject, \ 97 STDMETHOD_(NTSTATUS, Read)(THIS_ \ 98 IN PDEVICE_OBJECT DeviceObject, \ 101 STDMETHOD_(NTSTATUS, Write)(THIS_ \ 102 IN PDEVICE_OBJECT DeviceObject, \ 105 STDMETHOD_(NTSTATUS, Flush)(THIS_ \ 106 IN PDEVICE_OBJECT DeviceObject, \ 109 STDMETHOD_(NTSTATUS, Close)( \ 110 IN PDEVICE_OBJECT DeviceObject, \ 113 STDMETHOD_(NTSTATUS, QuerySecurity)(THIS_ \ 114 IN PDEVICE_OBJECT DeviceObject, \ 117 STDMETHOD_(NTSTATUS, SetSecurity)(THIS_ \ 118 IN PDEVICE_OBJECT DeviceObject, \ 121 STDMETHOD_(BOOLEAN, FastDeviceIoControl)(THIS_ \ 122 IN PFILE_OBJECT FileObject, \ 124 IN PVOID InputBuffer, \ 125 IN ULONG InputBufferLength, \ 126 OUT PVOID OutputBuffer, \ 127 IN ULONG OutputBufferLength, \ 128 IN ULONG IoControlCode, \ 129 OUT PIO_STATUS_BLOCK StatusBlock, \ 130 IN PDEVICE_OBJECT DeviceObject)PURE; \ 132 STDMETHOD_(BOOLEAN, FastRead)(THIS_ \ 133 IN PFILE_OBJECT FileObject, \ 134 IN PLARGE_INTEGER FileOffset, \ 139 OUT PIO_STATUS_BLOCK StatusBlock, \ 140 IN PDEVICE_OBJECT DeviceObject)PURE; \ 142 STDMETHOD_(BOOLEAN, FastWrite)(THIS_ \ 143 IN PFILE_OBJECT FileObject, \ 144 IN PLARGE_INTEGER FileOffset, \ 149 OUT PIO_STATUS_BLOCK StatusBlock, \ 150 IN PDEVICE_OBJECT DeviceObject)PURE; 155 #define INTERFACE IIrpTarget 171 struct IIrpTargetFactory;
228 #define INTERFACE ISubdevice 230 #define DEFINE_ABSTRACT_ISUBDEVICE() \ 231 STDMETHOD_(NTSTATUS, NewIrpTarget)(THIS_ \ 232 OUT IIrpTarget **OutTarget, \ 234 IN PUNKNOWN Unknown, \ 235 IN POOL_TYPE PoolType, \ 236 IN PDEVICE_OBJECT DeviceObject, \ 238 IN KSOBJECT_CREATE *CreateObject) PURE; \ 240 STDMETHOD_(NTSTATUS, ReleaseChildren)(THIS) PURE; \ 242 STDMETHOD_(NTSTATUS, GetDescriptor)(THIS_ \ 243 IN SUBDEVICE_DESCRIPTOR **) PURE; \ 245 STDMETHOD_(NTSTATUS, DataRangeIntersection)(THIS_ \ 247 IN PKSDATARANGE DataRange, \ 248 IN PKSDATARANGE MatchingDataRange, \ 249 IN ULONG OutputBufferLength, \ 250 OUT PVOID ResultantFormat OPTIONAL, \ 251 OUT PULONG ResultantFormatLength) PURE; \ 253 STDMETHOD_(NTSTATUS, PowerChangeNotify)(THIS_ \ 254 IN POWER_STATE PowerState) PURE; \ 256 STDMETHOD_(NTSTATUS, PinCount)(THIS_ \ 258 IN OUT PULONG FilterNecessary, \ 259 IN OUT PULONG FilterCurrent, \ 260 IN OUT PULONG FilterPossible, \ 261 IN OUT PULONG GlobalCurrent, \ 262 IN OUT PULONG GlobalPossible)PURE; 266 #define IMP_ISubdevice \ 267 STDMETHODIMP_(NTSTATUS) NewIrpTarget( \ 268 OUT IIrpTarget **OutTarget, \ 270 IN PUNKNOWN Unknown, \ 271 IN POOL_TYPE PoolType, \ 272 IN PDEVICE_OBJECT DeviceObject, \ 274 IN KSOBJECT_CREATE *CreateObject); \ 276 STDMETHODIMP_(NTSTATUS) ReleaseChildren(THIS); \ 278 STDMETHODIMP_(NTSTATUS) GetDescriptor(THIS_ \ 279 IN SUBDEVICE_DESCRIPTOR **); \ 281 STDMETHODIMP_(NTSTATUS) DataRangeIntersection( \ 283 IN PKSDATARANGE DataRange, \ 284 IN PKSDATARANGE MatchingDataRange, \ 285 IN ULONG OutputBufferLength, \ 286 OUT PVOID ResultantFormat OPTIONAL, \ 287 OUT PULONG ResultantFormatLength); \ 289 STDMETHODIMP_(NTSTATUS) PowerChangeNotify( \ 290 IN POWER_STATE PowerState); \ 292 STDMETHODIMP_(NTSTATUS) PinCount( \ 294 IN OUT PULONG FilterNecessary, \ 295 IN OUT PULONG FilterCurrent, \ 296 IN OUT PULONG FilterPossible, \ 297 IN OUT PULONG GlobalCurrent, \ 298 IN OUT PULONG GlobalPossible) 315 #define INTERFACE IIrpQueue 362 #define IMP_IIrpQueue \ 363 STDMETHODIMP_(NTSTATUS) Init(THIS_ \ 364 IN PKSPIN_CONNECT ConnectDetails, \ 365 IN PKSPIN_DESCRIPTOR Descriptor, \ 366 IN ULONG FrameSize, \ 367 IN ULONG Alignment, \ 368 IN ULONG TagSupportEnabled); \ 370 STDMETHODIMP_(NTSTATUS) AddMapping(THIS_ \ 374 STDMETHODIMP_(NTSTATUS) GetMapping(THIS_ \ 375 OUT PUCHAR * Buffer, \ 376 OUT PULONG BufferSize); \ 378 STDMETHODIMP_(VOID) UpdateMapping(THIS_ \ 379 IN ULONG BytesWritten); \ 381 STDMETHODIMP_(ULONG) NumData(THIS); \ 383 STDMETHODIMP_(BOOL) CancelBuffers(THIS); \ 385 STDMETHODIMP_(NTSTATUS) GetMappingWithTag(THIS_ \ 387 OUT PPHYSICAL_ADDRESS PhysicalAddress, \ 388 OUT PVOID *VirtualAddress, \ 389 OUT PULONG ByteCount, \ 392 STDMETHODIMP_(NTSTATUS) ReleaseMappingWithTag( \ 395 STDMETHODIMP_(BOOLEAN) HasLastMappingFailed(THIS); \ 396 STDMETHODIMP_(ULONG) GetCurrentIrpOffset(THIS); \ 397 STDMETHODIMP_(BOOLEAN) GetAcquiredTagRange(THIS_ \ 398 IN PVOID * FirstTag, \ 408 #define INTERFACE IKsWorkSink 422 #define INTERFACE IIrpStreamNotify 424 struct IRPSTREAMPOSITION;
444 #define INTERFACE IKsShellTransport 446 #define DEFINE_ABSTRACT_IKSSHELLTRANSPORT() \ 447 STDMETHOD_(NTSTATUS, TransferKsIrp)(THIS_ \ 449 OUT IKsShellTransport ** Transport) PURE; \ 451 STDMETHOD_(NTSTATUS, Connect)(THIS_ \ 452 IN IKsShellTransport * StartTransport, \ 453 OUT IKsShellTransport ** EndTransport, \ 454 IN KSPIN_DATAFLOW DataFlow)PURE; \ 456 STDMETHOD_(NTSTATUS, SetDeviceState)(THIS_ \ 459 OUT IKsShellTransport ** EndTransport)PURE; \ 461 STDMETHOD_(NTSTATUS, SetResetState)(THIS_ \ 463 OUT IKsShellTransport ** EndTransport)PURE; 477 struct IRPSTREAM_POSITION;
478 struct IRPSTREAMPACKETINFO;
480 #define DEFINE_ABSTRACT_IRPSTREAM() \ 481 STDMETHOD_(NTSTATUS, TransferKsIrp)(THIS_ \ 483 OUT IKsShellTransport ** Transport) PURE; \ 485 STDMETHOD_(NTSTATUS, Connect)(THIS_ \ 486 IN IKsShellTransport * StartTransport, \ 487 OUT IKsShellTransport ** EndTransport, \ 488 IN KSPIN_DATAFLOW DataFlow)PURE; \ 490 STDMETHOD_(NTSTATUS, SetDeviceState)(THIS_ \ 493 OUT IKsShellTransport ** EndTransport)PURE; \ 495 STDMETHOD_(NTSTATUS, SetResetState)(THIS_ \ 497 OUT IKsShellTransport ** EndTransport)PURE; \ 499 STDMETHOD_(NTSTATUS, GetPosition)(THIS_ \ 500 IN OUT struct IRPSTREAM_POSITION * Position) PURE; \ 502 STDMETHOD_(NTSTATUS, Init)(THIS_ \ 504 KSPIN_CONNECT *ConnectDetails, \ 505 PDEVICE_OBJECT DeviceObject, \ 506 PDMA_ADAPTER DmaAdapter) PURE; \ 508 STDMETHOD_(NTSTATUS, CancelAllIrps)(THIS_ \ 511 STDMETHOD_(VOID, TerminatePacket)(THIS); \ 513 STDMETHOD_(NTSTATUS, ChangeOptionsFlag)(THIS_ \ 517 ULONG Unknown4)PURE; \ 519 STDMETHOD_(NTSTATUS, GetPacketInfo)(THIS_ \ 520 struct IRPSTREAMPACKETINFO * Info1, \ 521 struct IRPSTREAMPACKETINFO * Info2)PURE; \ 523 STDMETHOD_(NTSTATUS, SetPacketOffsets)(THIS_ \ 525 ULONG Unknown2)PURE; \ 527 STDMETHOD_(NTSTATUS, RegisterNotifySink)(THIS_ \ 528 IN IIrpStreamNotify * NotifyStream)PURE; 533 #define INTERFACE IIrpStream 548 #define INTERFACE IIrpStreamPhysical 570 #define INTERFACE IIrpStreamVirtual 601 #define INTERFACE IPortFilterWavePci 603 struct IPortPinWavePci;
620 #define IMP_IPortFilterPci \ 622 STDMETHODIMP_(NTSTATUS) Init(THIS_ \ 623 IN PPORTWAVEPCI Port); \ 624 STDMETHODIMP_(NTSTATUS) FreePin(THIS_ \ 625 IN struct IPortPinWavePci* Pin) 634 #define INTERFACE IPortPinWavePci 646 IN KSPIN_DESCRIPTOR * PinDescriptor,
653 #define IMP_IPortPinWavePci \ 655 STDMETHODIMP_(NTSTATUS) Init(THIS_ \ 656 IN PPORTWAVEPCI Port, \ 657 IN PPORTFILTERWAVEPCI Filter, \ 658 IN KSPIN_CONNECT * ConnectDetails, \ 659 IN KSPIN_DESCRIPTOR * PinDescriptor, \ 660 IN PDEVICE_OBJECT DeviceObject); \ 662 STDMETHODIMP_(PVOID) GetIrpStream(); \ 663 STDMETHODIMP_(PMINIPORT) GetMiniport(THIS) 670 #if (NTDDI_VERSION >= NTDDI_VISTA) 678 #define INTERFACE IPortFilterWaveRT 696 #define IMP_IPortFilterWaveRT \ 698 STDMETHODIMP_(NTSTATUS) Init(THIS_ \ 708 #define INTERFACE IPortPinWaveRT 720 IN KSPIN_DESCRIPTOR * PinDescriptor,
726 #define IMP_IPortPinWaveRT \ 728 STDMETHODIMP_(NTSTATUS) Init(THIS_ \ 729 IN PPORTWAVERT Port, \ 730 IN PPORTFILTERWAVERT Filter, \ 731 IN KSPIN_CONNECT * ConnectDetails, \ 732 IN KSPIN_DESCRIPTOR * PinDescriptor, \ 733 IN PDEVICE_OBJECT DeviceObject) 744 #define INTERFACE IPortFilterWaveCyclic 746 struct IPortPinWaveCyclic;
763 #define IMP_IPortFilterWaveCyclic \ 765 STDMETHODIMP_(NTSTATUS) Init(THIS_ \ 766 IN PPORTWAVECYCLIC Port); \ 767 STDMETHODIMP_(NTSTATUS) FreePin(THIS_ \ 768 IN struct IPortPinWaveCyclic* Pin) 777 #define INTERFACE IPortPinWaveCyclic 789 IN KSPIN_DESCRIPTOR * PinDescriptor)
PURE;
800 #define IMP_IPortPinWaveCyclic \ 802 STDMETHODIMP_(NTSTATUS) Init(THIS_ \ 803 IN PPORTWAVECYCLIC Port, \ 804 IN PPORTFILTERWAVECYCLIC Filter, \ 805 IN KSPIN_CONNECT * ConnectDetails, \ 806 IN KSPIN_DESCRIPTOR * PinDescriptor); \ 807 STDMETHODIMP_(ULONG) GetCompletedPosition(THIS); \ 808 STDMETHODIMP_(ULONG) GetCycleCount(THIS); \ 809 STDMETHODIMP_(ULONG) GetDeviceBufferSize(THIS); \ 810 STDMETHODIMP_(PVOID) GetIrpStream(THIS); \ 811 STDMETHODIMP_(PMINIPORT) GetMiniport(THIS) 820 #define INTERFACE IPortFilterDMus 841 #define IMP_IPortFilterDMus \ 843 STDMETHODIMP_(NTSTATUS) Init(THIS_ \ 844 IN PPORTDMUS Port); \ 845 STDMETHODIMP_(NTSTATUS) FreePin(THIS_ \ 846 IN struct IPortPinDMus* Pin); \ 847 STDMETHODIMP_(VOID) NotifyPins(THIS) 855 #define INTERFACE IPortPinDMus 867 IN KSPIN_DESCRIPTOR * PinDescriptor,
873 #define IMP_IPortPinDMus \ 875 STDMETHODIMP_(NTSTATUS) Init(THIS_ \ 877 IN PPORTFILTERDMUS Filter, \ 878 IN KSPIN_CONNECT * ConnectDetails, \ 879 IN KSPIN_DESCRIPTOR * PinDescriptor, \ 880 IN PDEVICE_OBJECT DeviceObject); \ 881 STDMETHODIMP_(VOID) Notify(THIS) 892 #define IMP_IDmaChannelEx \ 893 STDMETHODIMP_(NTSTATUS) AllocateBuffer( \ 894 IN ULONG BufferSize, \ 895 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \ 897 STDMETHODIMP_(void) FreeBuffer(void); \ 898 STDMETHODIMP_(ULONG) TransferCount(void); \ 899 STDMETHODIMP_(ULONG) MaximumBufferSize(void); \ 900 STDMETHODIMP_(ULONG) AllocatedBufferSize(void); \ 901 STDMETHODIMP_(ULONG) BufferSize(void); \ 903 STDMETHODIMP_(void) SetBufferSize( \ 904 IN ULONG BufferSize); \ 906 STDMETHODIMP_(PVOID) SystemAddress(void); \ 907 STDMETHODIMP_(PHYSICAL_ADDRESS) PhysicalAddress(); \ 908 STDMETHODIMP_(PADAPTER_OBJECT) GetAdapterObject(void); \ 910 STDMETHODIMP_(void) CopyTo( \ 911 IN PVOID Destination, \ 913 IN ULONG ByteCount); \ 915 STDMETHODIMP_(void) CopyFrom( \ 916 IN PVOID Destination, \ 922 #define IMP_IDmaChannelEx \ 923 STDMETHODIMP_(NTSTATUS) AllocateBuffer( \ 924 IN ULONG BufferSize, \ 925 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \ 927 STDMETHODIMP_(void) FreeBuffer(void); \ 928 STDMETHODIMP_(ULONG) TransferCount(void); \ 929 STDMETHODIMP_(ULONG) MaximumBufferSize(void); \ 930 STDMETHODIMP_(ULONG) AllocatedBufferSize(void); \ 931 STDMETHODIMP_(ULONG) BufferSize(void); \ 933 STDMETHODIMP_(void) SetBufferSize( \ 934 IN ULONG BufferSize); \ 936 STDMETHODIMP_(PVOID) SystemAddress(void); \ 937 STDMETHODIMP_(PHYSICAL_ADDRESS) PhysicalAddress( \ 938 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \ 939 STDMETHODIMP_(PADAPTER_OBJECT) GetAdapterObject(void); \ 941 STDMETHODIMP_(void) CopyTo( \ 942 IN PVOID Destination, \ 944 IN ULONG ByteCount); \ 946 STDMETHODIMP_(void) CopyFrom( \ 947 IN PVOID Destination, \ 956 #define IMP_IDmaChannelSlaveEx \ 958 STDMETHODIMP_(NTSTATUS) Start( \ 960 IN BOOLEAN WriteToDevice); \ 962 STDMETHODIMP_(NTSTATUS) Stop(void); \ 963 STDMETHODIMP_(ULONG) ReadCounter(void); \ 965 STDMETHODIMP_(NTSTATUS) WaitForTC( \ 968 #define IMP_IDmaChannelInit\ 969 IMP_IDmaChannelSlaveEx;\ 970 STDMETHODIMP_(NTSTATUS) Init( \ 971 IN PDEVICE_DESCRIPTION DeviceDescription, \ 972 IN PDEVICE_OBJECT DeviceObject) 976 #define DEFINE_ABSTRACT_DMACHANNEL_EX() \ 977 STDMETHOD_(NTSTATUS, AllocateBuffer)( THIS_ \ 978 IN ULONG BufferSize, \ 979 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL) PURE; \ 981 STDMETHOD_(void, FreeBuffer)( THIS ) PURE; \ 982 STDMETHOD_(ULONG, TransferCount)( THIS ) PURE; \ 983 STDMETHOD_(ULONG, MaximumBufferSize)( THIS ) PURE; \ 984 STDMETHOD_(ULONG, AllocatedBufferSize)( THIS ) PURE; \ 985 STDMETHOD_(ULONG, BufferSize)( THIS ) PURE; \ 987 STDMETHOD_(void, SetBufferSize)( THIS_ \ 988 IN ULONG BufferSize) PURE; \ 990 STDMETHOD_(PVOID, SystemAddress)( THIS ) PURE; \ 991 STDMETHOD_(PHYSICAL_ADDRESS, PhysicalAddress)( THIS) PURE; \ 992 STDMETHOD_(PADAPTER_OBJECT, GetAdapterObject)( THIS ) PURE; \ 994 STDMETHOD_(void, CopyTo)( THIS_ \ 995 IN PVOID Destination, \ 997 IN ULONG ByteCount) PURE; \ 999 STDMETHOD_(void, CopyFrom)( THIS_ \ 1000 IN PVOID Destination, \ 1002 IN ULONG ByteCount) PURE; 1005 #define DEFINE_ABSTRACT_DMACHANNEL_EX() \ 1006 STDMETHOD_(NTSTATUS, AllocateBuffer)( THIS_ \ 1007 IN ULONG BufferSize, \ 1008 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL) PURE; \ 1010 STDMETHOD_(void, FreeBuffer)( THIS ) PURE; \ 1011 STDMETHOD_(ULONG, TransferCount)( THIS ) PURE; \ 1012 STDMETHOD_(ULONG, MaximumBufferSize)( THIS ) PURE; \ 1013 STDMETHOD_(ULONG, AllocatedBufferSize)( THIS ) PURE; \ 1014 STDMETHOD_(ULONG, BufferSize)( THIS ) PURE; \ 1016 STDMETHOD_(void, SetBufferSize)( THIS_ \ 1017 IN ULONG BufferSize) PURE; \ 1019 STDMETHOD_(PVOID, SystemAddress)( THIS ) PURE; \ 1020 STDMETHOD_(PHYSICAL_ADDRESS, PhysicalAddress)( THIS_ \ 1021 IN PPHYSICAL_ADDRESS Address) PURE; \ 1022 STDMETHOD_(PADAPTER_OBJECT, GetAdapterObject)( THIS ) PURE; \ 1024 STDMETHOD_(void, CopyTo)( THIS_ \ 1025 IN PVOID Destination, \ 1027 IN ULONG ByteCount) PURE; \ 1029 STDMETHOD_(void, CopyFrom)( THIS_ \ 1030 IN PVOID Destination, \ 1032 IN ULONG ByteCount) PURE; 1036 #define INTERFACE IDmaChannelInit 1057 #define INTERFACE IPortFilterTopology 1071 #define IMP_IPortFilterTopology \ 1073 STDMETHODIMP_(NTSTATUS) Init(THIS_ \ 1074 IN PPORTTOPOLOGY Port) 1084 #define INTERFACE IPortWaveRTStreamInit 1136 #define IMP_IPortWaveRTStreamInit \ 1137 STDMETHODIMP_(PMDL) AllocatePagesForMdl \ 1139 IN PHYSICAL_ADDRESS HighAddress, \ 1140 IN SIZE_T TotalBytes \ 1143 STDMETHODIMP_(PMDL) AllocateContiguousPagesForMdl \ 1145 IN PHYSICAL_ADDRESS LowAddress, \ 1146 IN PHYSICAL_ADDRESS HighAddress, \ 1147 IN SIZE_T TotalBytes \ 1150 STDMETHODIMP_(PVOID) MapAllocatedPages \ 1152 IN PMDL MemoryDescriptorList, \ 1153 IN MEMORY_CACHING_TYPE CacheType \ 1156 STDMETHODIMP_(VOID) UnmapAllocatedPages \ 1158 IN PVOID BaseAddress, \ 1159 IN PMDL MemoryDescriptorList \ 1162 STDMETHODIMP_(VOID) FreePagesFromMdl \ 1164 IN PMDL MemoryDescriptorList \ 1167 STDMETHODIMP_(ULONG) GetPhysicalPagesCount \ 1169 IN PMDL MemoryDescriptorList \ 1172 STDMETHODIMP_(PHYSICAL_ADDRESS) GetPhysicalPageAddress \ 1174 IN PPHYSICAL_ADDRESS Address, \ 1175 IN PMDL MemoryDescriptorList, \ 1179 #ifndef IMP_IPortClsVersion 1181 #define IMP_IPortClsVersion \ 1182 STDMETHODIMP_(DWORD) GetVersion(void); 1186 #ifdef IMP_IPortWaveRT 1187 #define IMP_IPortWaveRT IMP_IPort IPortFilterWavePci * PPORTFILTERWAVEPCI
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesWritten
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
IPortWaveRT * PPORTWAVERT
IPortFilterDMus * PPORTFILTERDMUS
#define DEFINE_ABSTRACT_UNKNOWN()
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
PKSPIN_LOCK EventListLock
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
IPortTopology * PPORTTOPOLOGY
IN BOOLEAN OUT PSTR Buffer
IPortPinDMus * PPORTPINDMUS
_In_ WDFDPC _In_ BOOLEAN Wait
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG _In_opt_ PVOID Data
ULONG FilterPropertySetCount
IN PVOID IN PVOID IN USHORT IN USHORT Size
DEFINE_GUID(IID_IIrpTarget, 0xB4C90A60, 0x5791, 0x11D0, 0xF9, 0x86, 0x00, 0xA0, 0xC9, 0x11, 0xB5, 0x44)
struct SYMBOLICLINK_ENTRY * PSYMBOLICLINK_ENTRY
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
#define DEFINE_ABSTRACT_IRPTARGET()
ULONG CurrentPinInstanceCount
_Inout_ PMDL MemoryDescriptorList
pRequest Complete(RequestStatus)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
union Alignment_ Alignment
IPortPinWaveCyclic * PPORTPINWAVECYCLIC
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_opt_ PHYSICAL_ADDRESS _In_ MEMORY_CACHING_TYPE CacheType
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
#define DEFINE_ABSTRACT_DMACHANNEL_EX()
IPortFilterWaveRT * PPORTFILTERWAVERT
ULONG MaxFilterInstanceCount
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
KSPIN_PHYSICALCONNECTION Connection
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
_Must_inspect_result_ _In_ ULONG Flags
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
ULONG MinFilterInstanceCount
_In_ WDFCOLLECTION _In_ ULONG Index
struct PHYSICAL_CONNECTION_ENTRY * PPHYSICAL_CONNECTION_ENTRY
#define DEFINE_ABSTRACT_IKSSHELLTRANSPORT()
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
#define DEFINE_ABSTRACT_ISUBDEVICE()
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _In_ LARGE_INTEGER ByteCount
LIST_ENTRY PhysicalConnectionList
DECLARE_INTERFACE_(IIrpTarget, IUnknown)
VOID Copy(PVOID Src, PVOID Dst, ULONG NumBytes)
IPortPinWavePci * PPORTPINWAVEPCI
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS HighAddress
IPortWavePci * PPORTWAVEPCI
#define DEFINE_ABSTRACT_IRPSTREAM()
ULONG MaxGlobalInstanceCount
PIN_INSTANCE_INFO * Instances
UNICODE_STRING SymbolicLink
IPortPinWaveRT * PPORTPINWAVERT
PPCFILTER_DESCRIPTOR DeviceDescriptor
IPortFilterTopology * PPORTFILTERTOPOLOGY
PKSPROPERTY_SET FilterPropertySet
IPortFilterWaveCyclic * PPORTFILTERWAVECYCLIC
enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE
struct SUBDEVICE_DESCRIPTOR * PSUBDEVICE_DESCRIPTOR
IPortWaveCyclic * PPORTWAVECYCLIC
KSPIN_DESCRIPTOR * KsPinDescriptor
DWORD GetPosition(DWORD private_handle, PMMTIME time, DWORD time_size)
struct PIN_INSTANCE_INFO * PPIN_INSTANCE_INFO
#define DEFINE_ABSTRACT_DMACHANNELSLAVE()
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_ SIZE_T TotalBytes
LIST_ENTRY SymbolicLinkList