virtual ~CPortWaveCyclic(){}
protected:
- BOOL m_bInitialized;
PDEVICE_OBJECT m_pDeviceObject;
PMINIPORTWAVECYCLIC m_pMiniport;
- PRESOURCELIST m_pResourceList;
PPINCOUNT m_pPinCount;
PPOWERNOTIFY m_pPowerNotify;
PPCFILTER_DESCRIPTOR m_pDescriptor;
{
PC_ASSERT_IRQL_EQUAL(PASSIVE_LEVEL);
- if (!m_bInitialized)
- {
- DPRINT("IPortWaveCyclic_fnNewRegistryKey called w/o initiazed\n");
- return STATUS_UNSUCCESSFUL;
- }
-
return IoGetDeviceProperty(m_pDeviceObject, DeviceRegistryProperty, BufferLength, PropertyBuffer, ReturnLength);
}
DPRINT("IPortWaveCyclic_Init entered %p\n", this);
PC_ASSERT_IRQL_EQUAL(PASSIVE_LEVEL);
- if (m_bInitialized)
- {
- DPRINT("IPortWaveCyclic_Init called again\n");
- return STATUS_SUCCESS;
- }
-
Status = UnknownMiniport->QueryInterface(IID_IMiniportWaveCyclic, (PVOID*)&Miniport);
if (!NT_SUCCESS(Status))
{
// Initialize port object
m_pMiniport = Miniport;
m_pDeviceObject = DeviceObject;
- m_bInitialized = TRUE;
- m_pResourceList = ResourceList;
-
-
- if (ResourceList)
- {
- // increment reference on resource list
- ResourceList->AddRef();
- }
+ // initialize miniport
Status = Miniport->Init(UnknownAdapter, ResourceList, this);
if (!NT_SUCCESS(Status))
{
DPRINT("IMiniportWaveCyclic_Init failed with %x\n", Status);
Miniport->Release();
- m_bInitialized = FALSE;
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;
}
{
PC_ASSERT_IRQL_EQUAL(PASSIVE_LEVEL);
- if (!m_bInitialized)
- {
- DPRINT("IPortWaveCyclic_fnNewRegistryKey called w/o initialized\n");
- return STATUS_UNSUCCESSFUL;
- }
return PcNewRegistryKey(OutRegistryKey, OuterUnknown, RegistryKeyType, DesiredAccess, m_pDeviceObject, (ISubdevice*)this, ObjectAttributes, CreateOptions, Disposition);
}
PC_ASSERT_IRQL_EQUAL(PASSIVE_LEVEL);
- if (!m_bInitialized)
- {
- DPRINT("IPortWaveCyclic_fnNewSlaveDmaChannel called w/o initialized\n");
- return STATUS_UNSUCCESSFUL;
- }
-
Status = PcDmaMasterDescription(ResourceList, (Dma32BitAddresses | Dma64BitAddresses), Dma32BitAddresses, 0, Dma64BitAddresses, DmaWidth, DmaSpeed, MaximumLength, 0, &DeviceDescription);
if (NT_SUCCESS(Status))
{
PC_ASSERT_IRQL_EQUAL(PASSIVE_LEVEL);
- if (!m_bInitialized)
- {
- DPRINT("IPortWaveCyclic_fnNewSlaveDmaChannel called w/o initialized\n");
- return STATUS_UNSUCCESSFUL;
- }
-
// FIXME
// Check for F-Type DMA Support
//
PMINIPORTWAVEPCI m_Miniport;
PDEVICE_OBJECT m_pDeviceObject;
- BOOL m_bInitialized;
- PRESOURCELIST m_pResourceList;
PSERVICEGROUP m_ServiceGroup;
PPINCOUNT m_pPinCount;
PPOWERNOTIFY m_pPowerNotify;
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();
-
- if (ResourceList)
- {
- // 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;
}
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,
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;
}