52 0x6994AD04, 0x93EF, 0x11D0, {0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
56 0x65E8773E
L, 0x8F56, 0x11D0, {0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
60 0x65E8773D
L, 0x8F56, 0x11D0, {0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
71 sizeof(PortFilterWavePciTopologySet) /
sizeof(KSPROPERTY_ITEM),
72 (
const KSPROPERTY_ITEM*)&PortFilterWavePciTopologySet,
78 sizeof(PortFilterWavePciPinSet) /
sizeof(KSPROPERTY_ITEM),
79 (
const KSPROPERTY_ITEM*)&PortFilterWavePciPinSet,
92 CPortWavePci::AddEventToEventList(
108 CPortWavePci::GenerateEventList(
124 CPortWavePci::RequestService()
145 DPRINT(
"IPortWavePci_fnQueryInterface entered\n");
193 DPRINT(
"IPortWavePci_fnQueryInterface no interface!!! iface %S\n",
GuidString.Buffer);
209 IMiniportWavePci * Miniport;
215 DPRINT(
"IPortWavePci_fnInit entered with This %p, DeviceObject %p Irp %p UnknownMiniport %p, UnknownAdapter %p ResourceList %p\n",
219 Status = UnknownMiniport->QueryInterface(IID_IMiniportWavePci, (
PVOID*)&Miniport);
222 DPRINT(
"IPortWavePci_fnInit called with invalid IMiniport adapter\n");
250 DPRINT(
"failed to get description\n");
274 DPRINT(
"PcCreateSubdeviceDescriptor failed with %x\n",
Status);
311 DPRINT(
"IPortWavePci_Init successfully initialized\n");
317 CPortWavePci::NewRegistryKey(
326 DPRINT(
"IPortWavePci_fnNewRegistryKey entered\n");
342 CPortWavePci::GetDeviceProperty(
348 DPRINT(
"IPortWavePci_fnGetDeviceProperty entered\n");
356 CPortWavePci::NewMasterDmaChannel(
373 DPRINT(
"IPortWavePci_fnNewMasterDmaChannel This %p entered\n",
this);
394 ServiceGroup->RequestService ();
404 CPortWavePci::NewIrpTarget(
405 OUT struct IIrpTarget **OutTarget,
411 IN KSOBJECT_CREATE *CreateObject)
414 IPortFilterWavePci *
Filter;
416 DPRINT(
"ISubDevice_NewIrpTarget this %p\n",
this);
437 *OutTarget = (IIrpTarget*)
Filter;
444 CPortWavePci::ReleaseChildren()
455 DPRINT(
"ISubDevice_GetDescriptor this %p\n",
this);
462 CPortWavePci::DataRangeIntersection(
470 DPRINT(
"ISubDevice_DataRangeIntersection this %p\n",
this);
474 return m_Miniport->DataRangeIntersection (PinId, DataRange, MatchingDataRange,
OutputBufferLength, ResultantFormat, ResultantFormatLength);
482 CPortWavePci::PowerChangeNotify(
505 m_pPinCount->PinCount(PinId, FilterNecessary, FilterCurrent, FilterPossible, GlobalCurrent, GlobalPossible);
545 return This->m_pDeviceObject;
553 return This->m_Miniport;
IServiceGroup * PSERVICEGROUP
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
IPortEvents * PPORTEVENTS
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
NTSTATUS NTAPI PinPropertyHandler(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
IDmaChannel * PDMACHANNEL
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
#define STATUS_INVALID_PARAMETER
STDMETHODIMP QueryInterface(REFIID InterfaceId, PVOID *Interface)
VOID NTAPI KeAcquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL OldIrql)
enum _DMA_WIDTH DMA_WIDTH
IServiceSink * PSERVICESINK
return pList GetDescriptor(Index)
KSPROPERTY_SET WavePciPropertySet[]
IUnregisterSubdevice * PUNREGISTERSUBDEVICE
BOOL Init(PUSERCONNECT UserCon)
NTSTATUS NewPortWavePci(OUT PPORT *OutPort)
#define InsertTailList(ListHead, Entry)
_In_ const GUID _In_ ULONG PinCount
DEFINE_KSPROPERTY_TOPOLOGYSET(PortFilterWavePciTopologySet, TopologyPropertyHandler)
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING _In_ ULONG _Out_opt_ PULONG Disposition
PDEVICE_OBJECT m_pDeviceObject
#define IsEqualGUIDAligned(guid1, guid2)
_In_ WDFREQUEST _In_ size_t OutputBufferLength
_In_ PDEVICE_OBJECT DeviceObject
PSUBDEVICE_DESCRIPTOR m_SubDeviceDescriptor
PMINIPORTWAVEPCI GetWavePciMiniport(PPORTWAVEPCI iface)
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
_In_ BOOLEAN Dma64BitAddresses
DEFINE_KSPROPERTY_PINPROPOSEDATAFORMAT(PortFilterWavePciPinSet, PinPropertyHandler, PinPropertyHandler, PinPropertyHandler)
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)
NTSTATUS NTAPI IoGetDeviceProperty(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, IN ULONG BufferLength, OUT PVOID PropertyBuffer, OUT PULONG ResultLength)
IMiniportWavePci * PMINIPORTWAVEPCI
IUnregisterPhysicalConnection * PUNREGISTERPHYSICALCONNECTION
#define KSPROPSETID_Topology
IRegistryKey * PREGISTRYKEY
_In_ WDFDMATRANSACTION _In_ size_t MaximumLength
#define NT_SUCCESS(StatCode)
static GUID InterfaceGuids[3]
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
NTSTATUS NTAPI TopologyPropertyHandler(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
friend PMINIPORTWAVEPCI GetWavePciMiniport(PPORTWAVEPCI iface)
#define PC_ASSERT_IRQL_EQUAL(x)
#define STATUS_UNSUCCESSFUL
friend PDEVICE_OBJECT GetDeviceObjectFromPortWavePci(IPortWavePci *iface)
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)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
NTSTATUS NTAPI NewIUnregisterSubdevice(OUT PUNREGISTERSUBDEVICE *OutDevice)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
NTSTATUS NewPortFilterWavePci(OUT IPortFilterWavePci **OutFilter)
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
enum _DMA_SPEED DMA_SPEED
IResourceList * PRESOURCELIST
NTSTATUS NTAPI PcNewDmaChannel(OUT PDMACHANNEL *OutDmaChannel, IN PUNKNOWN OuterUnknown OPTIONAL, IN POOL_TYPE PoolType, IN PDEVICE_DESCRIPTION DeviceDescription, IN PDEVICE_OBJECT DeviceObject)
PSERVICEGROUP m_ServiceGroup
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
NTSTATUS NewPortClsVersion(OUT PPORTCLSVERSION *OutVersion)
PPCFILTER_DESCRIPTOR m_pDescriptor
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
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)
#define InitializeListHead(ListHead)
IPortWavePci * PPORTWAVEPCI
NTSYSAPI NTSTATUS WINAPI RtlStringFromGUID(REFGUID, PUNICODE_STRING)
PPOWERNOTIFY m_pPowerNotify
_In_ struct _IRP _In_ struct _SCATTER_GATHER_LIST * ScatterGather
#define KeReleaseSpinLock(sl, irql)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
IPowerNotify * PPOWERNOTIFY
PMINIPORTWAVEPCI m_Miniport
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
NTSTATUS NTAPI NewIUnregisterPhysicalConnection(OUT PUNREGISTERPHYSICALCONNECTION *OutConnection)
struct _KSEVENT_ENTRY * PKSEVENT_ENTRY
NTSTATUS NewIDrmPort(OUT PDRMPORT2 *OutPort)
PDEVICE_OBJECT GetDeviceObjectFromPortWavePci(IPortWavePci *iface)
KSPIN_LOCK m_EventListLock
CPortWavePci(IUnknown *OuterUnknown)
IPortFilterWavePci * m_Filter
PULONG MinorVersion OPTIONAL
IPortClsVersion * PPORTCLSVERSION