40GUID KSPROPERTY_SETID_Topology = {0x720D4AC0L, 0x7533, 0x11D0, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}};
46 0x6994AD04, 0x93EF, 0x11D0, {0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
50 0x65E8773EL, 0x8F56, 0x11D0, {0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
54 0x65E8773DL, 0x8F56, 0x11D0, {0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
58 0xFBF6F530L, 0x07B9, 0x11D2, {0xA7, 0x1E, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
70 sizeof(PortFilterWaveCyclicTopologySet) /
sizeof(KSPROPERTY_ITEM),
71 (
const KSPROPERTY_ITEM*)&PortFilterWaveCyclicTopologySet,
77 sizeof(PortFilterWaveCyclicPinSet) /
sizeof(KSPROPERTY_ITEM),
78 (
const KSPROPERTY_ITEM*)&PortFilterWaveCyclicPinSet,
93CPortWaveCyclic::AddEventToEventList(
101CPortWaveCyclic::GenerateEventList(
164 DPRINT1(
"IPortWaveCyclic_fnQueryInterface no interface!!! iface %S\n",
GuidString.Buffer);
177CPortWaveCyclic::GetDeviceProperty(
190CPortWaveCyclic::Init(
197 IMiniportWaveCyclic * Miniport;
202 DPRINT(
"IPortWaveCyclic_Init entered %p\n",
this);
205 Status = UnknownMiniport->QueryInterface(IID_IMiniportWaveCyclic, (
PVOID*)&Miniport);
208 DPRINT(
"IPortWaveCyclic_Init called with invalid IMiniport adapter\n");
220 DPRINT(
"IMiniportWaveCyclic_Init failed with %x\n",
Status);
229 DPRINT(
"failed to get description\n");
252 DPRINT(
"PcCreateSubdeviceDescriptor failed with %x\n",
Status);
276 DPRINT(
"IPortWaveCyclic successfully initialized\n");
282CPortWaveCyclic::NewRegistryKey(
302CPortWaveCyclic::NewMasterDmaChannel(
328CPortWaveCyclic::NewSlaveDmaChannel(
354 DmaChannel->Release();
363CPortWaveCyclic::Notify(
366 ServiceGroup->RequestService ();
375CPortWaveCyclic::NewIrpTarget(
376 OUT struct IIrpTarget **OutTarget,
382 IN KSOBJECT_CREATE *CreateObject)
385 IPortFilterWaveCyclic *
Filter;
387 DPRINT(
"ISubDevice_NewIrpTarget this %p\n",
this);
419 *OutTarget = (IIrpTarget*)
Filter;
428CPortWaveCyclic::ReleaseChildren()
430 DPRINT(
"ISubDevice_fnReleaseChildren\n");
455CPortWaveCyclic::GetDescriptor(
468CPortWaveCyclic::DataRangeIntersection(
476 DPRINT(
"ISubDevice_DataRangeIntersection this %p\n",
this);
488CPortWaveCyclic::PowerChangeNotify(
501CPortWaveCyclic::PinCount(
511 m_pPinCount->PinCount(PinId, FilterNecessary, FilterCurrent, FilterPossible, GlobalCurrent, GlobalPossible);
525 IN IPortWaveCyclic* iface)
528 return This->m_pMiniport;
536 return This->m_pDeviceObject;
PPOWERNOTIFY m_pPowerNotify
PMINIPORTWAVECYCLIC m_pMiniport
STDMETHODIMP QueryInterface(REFIID InterfaceId, PVOID *Interface)
PDEVICE_OBJECT m_pDeviceObject
PPCFILTER_DESCRIPTOR m_pDescriptor
PSUBDEVICE_DESCRIPTOR m_SubDeviceDescriptor
CPortWaveCyclic(IUnknown *OuterUnknown)
friend PMINIPORTWAVECYCLIC GetWaveCyclicMiniport(IN IPortWaveCyclic *iface)
friend PDEVICE_OBJECT GetDeviceObject(PPORTWAVECYCLIC iface)
IPortFilterWaveCyclic * m_Filter
virtual ~CPortWaveCyclic()
NTSTATUS NTAPI NewIUnregisterPhysicalConnection(OUT PUNREGISTERPHYSICALCONNECTION *OutConnection)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define NT_SUCCESS(StatCode)
NTSTATUS NTAPI PcNewDmaChannel(OUT PDMACHANNEL *OutDmaChannel, IN PUNKNOWN OuterUnknown OPTIONAL, IN POOL_TYPE PoolType, IN PDEVICE_DESCRIPTION DeviceDescription, IN PDEVICE_OBJECT DeviceObject)
#define DEFINE_KSPROPERTY_PINPROPOSEDATAFORMAT(PinSet, PropGeneral, PropInstances, PropIntersection)
NTSTATUS NTAPI PcDmaSlaveDescription(IN PRESOURCELIST ResourceList OPTIONAL, IN ULONG DmaIndex, IN BOOLEAN DemandMode, IN BOOLEAN AutoInitialize, IN DMA_SPEED DmaSpeed, IN ULONG MaximumLength, IN ULONG DmaPort, OUT PDEVICE_DESCRIPTION DeviceDescription)
NTSTATUS NTAPI PcDmaMasterDescription(IN PRESOURCELIST ResourceList OPTIONAL, IN BOOLEAN ScatterGather, IN BOOLEAN Dma32BitAddresses, IN BOOLEAN IgnoreCount, IN BOOLEAN Dma64BitAddresses, IN DMA_WIDTH DmaWidth, IN DMA_SPEED DmaSpeed, IN ULONG MaximumLength, IN ULONG DmaPort, OUT PDEVICE_DESCRIPTION DeviceDescription)
NTSTATUS NTAPI PcNewRegistryKey(OUT PREGISTRYKEY *OutRegistryKey, IN PUNKNOWN OuterUnknown OPTIONAL, IN ULONG RegistryKeyType, IN ACCESS_MASK DesiredAccess, IN PVOID DeviceObject OPTIONAL, IN PVOID SubDevice OPTIONAL, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN ULONG CreateOptions OPTIONAL, OUT PULONG Disposition OPTIONAL)
NTSTATUS NewIDrmPort(OUT PDRMPORT2 *OutPort)
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
NTSTATUS NewPortFilterWaveCyclic(OUT IPortFilterWaveCyclic **OutFilter)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
return pDevice GetDeviceObject()
NTSYSAPI NTSTATUS WINAPI RtlStringFromGUID(REFGUID, PUNICODE_STRING)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define DEFINE_KSPROPERTY_TOPOLOGYSET(TopologySet, Handler)
struct _KSEVENT_ENTRY * PKSEVENT_ENTRY
#define KSPROPSETID_Topology
_In_ BOOLEAN Dma64BitAddresses
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING _In_ ULONG _Out_opt_ PULONG Disposition
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
NTSTATUS NTAPI IoGetDeviceProperty(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, IN ULONG BufferLength, OUT PVOID PropertyBuffer, OUT PULONG ResultLength)
static GUID InterfaceGuids[4]
KSPROPERTY_SET WaveCyclicPropertySet[]
PMINIPORTWAVECYCLIC GetWaveCyclicMiniport(IN IPortWaveCyclic *iface)
NTSTATUS NewPortWaveCyclic(OUT PPORT *OutPort)
GUID IID_IDmaChannelSlave
GUID KSPROPERTY_SETID_Topology
IMiniportWaveCyclic * PMINIPORTWAVECYCLIC
IRegistryKey * PREGISTRYKEY
IDmaChannel * PDMACHANNEL
IResourceList * PRESOURCELIST
IPortEvents * PPORTEVENTS
IDmaChannelSlave * PDMACHANNELSLAVE
IUnregisterSubdevice * PUNREGISTERSUBDEVICE
IPortClsVersion * PPORTCLSVERSION
IUnregisterPhysicalConnection * PUNREGISTERPHYSICALCONNECTION
IPortWaveCyclic * PPORTWAVECYCLIC
IServiceGroup * PSERVICEGROUP
IPowerNotify * PPOWERNOTIFY
NTSTATUS NTAPI PinPropertyHandler(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
NTSTATUS NTAPI NewIUnregisterSubdevice(OUT PUNREGISTERSUBDEVICE *OutDevice)
NTSTATUS NTAPI PcCreateSubdeviceDescriptor(OUT SUBDEVICE_DESCRIPTOR **OutSubdeviceDescriptor, IN ULONG InterfaceCount, IN GUID *InterfaceGuids, IN ULONG IdentifierCount, IN KSIDENTIFIER *Identifier, IN ULONG FilterPropertiesCount, IN KSPROPERTY_SET *FilterProperties, IN ULONG Unknown1, IN ULONG Unknown2, IN ULONG PinPropertiesCount, IN KSPROPERTY_SET *PinProperties, IN ULONG EventSetCount, IN KSEVENT_SET *EventSet, IN PPCFILTER_DESCRIPTOR FilterDescription)
#define PC_ASSERT_IRQL_EQUAL(x)
NTSTATUS NewPortClsVersion(OUT PPORTCLSVERSION *OutVersion)
NTSTATUS NTAPI TopologyPropertyHandler(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
enum _DMA_SPEED DMA_SPEED
enum _DMA_WIDTH DMA_WIDTH
PULONG MinorVersion OPTIONAL
_In_ const GUID _In_ ULONG PinCount
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
_In_ WDFDMATRANSACTION _In_ size_t MaximumLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
_In_ WDFREQUEST _In_ size_t OutputBufferLength
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
#define IsEqualGUIDAligned(guid1, guid2)