49 0x6994AD04, 0x93EF, 0x11D0, {0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
53 0x65E8773E, 0x8F56, 0x11D0, {0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
57 0x65E8773D, 0x8F56, 0x11D0, {0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
68 sizeof(PortFilterDMusTopologySet) /
sizeof(KSPROPERTY_ITEM),
69 (
const KSPROPERTY_ITEM*)&PortFilterDMusTopologySet,
75 sizeof(PortFilterDMusPinSet) /
sizeof(KSPROPERTY_ITEM),
76 (
const KSPROPERTY_ITEM*)&PortFilterDMusPinSet,
130 DPRINT(
"IPortMidi_fnQueryInterface no interface!!! iface %S\n",
GuidString.Buffer);
142 CPortDMus::GetDeviceProperty(
152 DPRINT(
"IPortDMus_fnNewRegistryKey called w/o initialized\n");
168 IMiniportDMus * Miniport =
NULL;
169 IMiniportMidi * MidiMiniport =
NULL;
179 DPRINT(
"IPortDMus_Init called again\n");
183 Status = UnknownMiniport->QueryInterface(IID_IMiniportDMus, (
PVOID*)&Miniport);
187 Status = UnknownMiniport->QueryInterface(IID_IMiniportMidi, (
PVOID*)&MidiMiniport);
190 DPRINT(
"IPortDMus_Init called with invalid IMiniport adapter\n");
216 DPRINT(
"failed to get description\n");
229 Status = MidiMiniport->Init(UnknownAdapter,
ResourceList, (IPortMidi*)
this, &ServiceGroup);
241 DPRINT(
"failed to get description\n");
269 DPRINT(
"Failed to create descriptor\n");
308 CPortDMus::NewRegistryKey(
321 DPRINT(
"IPortDMus_fnNewRegistryKey called w/o initialized\n");
343 ServiceGroup->RequestService ();
361 CPortDMus::RegisterServiceGroup(
376 CPortDMus::NewIrpTarget(
377 OUT struct IIrpTarget **OutTarget,
383 IN KSOBJECT_CREATE *CreateObject)
388 DPRINT(
"ISubDevice_NewIrpTarget this %p\n",
this);
410 *OutTarget = (IIrpTarget*)
Filter;
416 CPortDMus::ReleaseChildren()
427 DPRINT(
"ISubDevice_GetDescriptor this %p\n",
this);
434 CPortDMus::DataRangeIntersection(
442 DPRINT(
"ISubDevice_DataRangeIntersection this %p\n",
this);
454 CPortDMus::PowerChangeNotify(
478 m_pPinCount->PinCount(PinId, FilterNecessary, FilterCurrent, FilterPossible, GlobalCurrent, GlobalPossible);
515 IN IPortDMus * iface,
521 *Miniport =
This->m_pMiniport;
522 *MidiMiniport =
This->m_pMiniportMidi;
IServiceGroup * PSERVICEGROUP
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
CPortDMus(IUnknown *OuterUnknown)
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
IPortFilterDMus * PPORTFILTERDMUS
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
KSPROPERTY_SET PortDMusPropertySet[]
#define STATUS_INVALID_PARAMETER
NTSTATUS NewPortFilterDMus(OUT PPORTFILTERDMUS *OutFilter)
PPCFILTER_DESCRIPTOR m_pDescriptor
static GUID InterfaceGuids[3]
IServiceSink * PSERVICESINK
return pList GetDescriptor(Index)
IUnregisterSubdevice * PUNREGISTERSUBDEVICE
BOOL Init(PUSERCONNECT UserCon)
_In_ const GUID _In_ ULONG PinCount
_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
STDMETHODIMP QueryInterface(REFIID InterfaceId, PVOID *Interface)
#define IsEqualGUIDAligned(guid1, guid2)
_In_ WDFREQUEST _In_ size_t OutputBufferLength
friend VOID GetDMusMiniport(IN IPortDMus *iface, IN PMINIPORTDMUS *Miniport, IN PMINIPORTMIDI *MidiMiniport)
_In_ PDEVICE_OBJECT DeviceObject
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
DEVICE_OBJECT * m_pDeviceObject
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
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)
IUnregisterPhysicalConnection * PUNREGISTERPHYSICALCONNECTION
IMiniportMidi * m_pMiniportMidi
#define KSPROPSETID_Topology
IRegistryKey * PREGISTRYKEY
#define NT_SUCCESS(StatCode)
PPOWERNOTIFY m_pPowerNotify
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
NTSTATUS NTAPI TopologyPropertyHandler(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
#define PC_ASSERT_IRQL_EQUAL(x)
PSUBDEVICE_DESCRIPTOR m_SubDeviceDescriptor
#define STATUS_UNSUCCESSFUL
NTSTATUS NewPortDMus(OUT PPORT *OutPort)
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 NTAPI NewIUnregisterSubdevice(OUT PUNREGISTERSUBDEVICE *OutDevice)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
IResourceList * PRESOURCELIST
VOID GetDMusMiniport(IN IPortDMus *iface, IN PMINIPORTDMUS *Miniport, IN PMINIPORTMIDI *MidiMiniport)
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
NTSTATUS NewPortClsVersion(OUT PPORTCLSVERSION *OutVersion)
IMiniportDMus * PMINIPORTDMUS
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
NTSYSAPI NTSTATUS WINAPI RtlStringFromGUID(REFGUID, PUNICODE_STRING)
IMiniportMidi * PMINIPORTMIDI
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
IPowerNotify * PPOWERNOTIFY
DEFINE_KSPROPERTY_TOPOLOGYSET(PortFilterDMusTopologySet, TopologyPropertyHandler)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
NTSTATUS NTAPI NewIUnregisterPhysicalConnection(OUT PUNREGISTERPHYSICALCONNECTION *OutConnection)
NTSTATUS NewIDrmPort(OUT PDRMPORT2 *OutPort)
DEFINE_KSPROPERTY_PINPROPOSEDATAFORMAT(PortFilterDMusPinSet, PinPropertyHandler, PinPropertyHandler, PinPropertyHandler)
IMiniportDMus * m_pMiniport
PSERVICEGROUP m_ServiceGroup
PULONG MinorVersion OPTIONAL
IPortClsVersion * PPORTCLSVERSION