PMINIPORTWAVEPCI m_Miniport;
PDEVICE_OBJECT m_pDeviceObject;
- BOOL m_bInitialized;
- PRESOURCELIST m_pResourceList;
PSERVICEGROUP m_ServiceGroup;
PPINCOUNT m_pPinCount;
PPOWERNOTIFY m_pPowerNotify;
PUNKNOWN(*Output)->AddRef();
return STATUS_SUCCESS;
}
+ else if (IsEqualGUIDAligned(refiid, IID_IDrmPort) ||
+ IsEqualGUIDAligned(refiid, IID_IDrmPort2))
+ {
+ return NewIDrmPort((PDRMPORT2*)Output);
+ }
else if (IsEqualGUIDAligned(refiid, IID_IPortClsVersion))
{
return NewPortClsVersion((PPORTCLSVERSION*)Output);
this, DeviceObject, Irp, UnknownMiniport, UnknownAdapter, ResourceList);
PC_ASSERT_IRQL_EQUAL(PASSIVE_LEVEL);
- if (m_bInitialized)
- {
- DPRINT("IPortWavePci_fnInit called again\n");
- return STATUS_SUCCESS;
- }
-
Status = UnknownMiniport->QueryInterface(IID_IMiniportWavePci, (PVOID*)&Miniport);
if (!NT_SUCCESS(Status))
{
// Initialize port object
m_Miniport = Miniport;
m_pDeviceObject = DeviceObject;
- m_bInitialized = TRUE;
- m_pResourceList = ResourceList;
+
InitializeListHead(&m_EventList);
KeInitializeSpinLock(&m_EventListLock);
// increment reference on miniport adapter
Miniport->AddRef();
- // increment reference on resource list
- ResourceList->AddRef();
Status = Miniport->Init(UnknownAdapter, ResourceList, this, &ServiceGroup);
if (!NT_SUCCESS(Status))
{
DPRINT("IPortWavePci_fnInit failed with %x\n", Status);
- m_bInitialized = FALSE;
+
// release reference on miniport adapter
Miniport->Release();
- // increment reference on resource list
- ResourceList->Release();
return Status;
}
{
DPRINT("failed to get description\n");
Miniport->Release();
- m_bInitialized = FALSE;
return Status;
}
{
DPRINT("PcCreateSubdeviceDescriptor failed with %x\n", Status);
Miniport->Release();
- m_bInitialized = FALSE;
return Status;
}
m_ServiceGroup->AddRef();
}
+ // store for node property requests
+ m_SubDeviceDescriptor->UnknownMiniport = UnknownMiniport;
+
// check if it supports IPinCount interface
Status = UnknownMiniport->QueryInterface(IID_IPinCount, (PVOID*)&PinCount);
if (NT_SUCCESS(Status))
DPRINT("IPortWavePci_fnNewRegistryKey entered\n");
PC_ASSERT_IRQL_EQUAL(PASSIVE_LEVEL);
- if (!m_bInitialized)
- {
- DPRINT("IPortWavePci_fnNewRegistryKey called w/o initiazed\n");
- return STATUS_UNSUCCESSFUL;
- }
-
return PcNewRegistryKey(OutRegistryKey,
OuterUnknown,
RegistryKeyType,
DesiredAccess,
m_pDeviceObject,
- NULL,//FIXME
+ (ISubdevice*)this,
ObjectAttributes,
CreateOptions,
Disposition);
DPRINT("IPortWavePci_fnGetDeviceProperty entered\n");
PC_ASSERT_IRQL_EQUAL(PASSIVE_LEVEL);
- if (!m_bInitialized)
- {
- DPRINT("IPortWavePci_fnNewRegistryKey called w/o initiazed\n");
- return STATUS_UNSUCCESSFUL;
- }
-
return IoGetDeviceProperty(m_pDeviceObject, DeviceRegistryProperty, BufferLength, PropertyBuffer, ReturnLength);
}
CPortWavePci::Notify(
IN PSERVICEGROUP ServiceGroup)
{
- //IPortWavePciImpl * This = (IPortWavePciImpl*)iface;
-
//DPRINT("IPortWavePci_fnNotify entered %p, ServiceGroup %p\n", This, ServiceGroup);
if (ServiceGroup)
NTAPI
CPortWavePci::ReleaseChildren()
{
- //IPortWavePciImpl * This = (IPortWavePciImpl*)CONTAINING_RECORD(iface, IPortWavePciImpl, lpVtblSubDevice);
-
UNIMPLEMENTED
return STATUS_UNSUCCESSFUL;
}