Author: janderwald
Date: Sun Apr 19 23:15:58 2009
New Revision: 40592
URL:
http://svn.reactos.org/svn/reactos?rev=40592&view=rev
Log:
- Activate IPortFilterWavePci
Modified:
trunk/reactos/drivers/wdm/audio/backpln/portcls/port_wavepci.c
Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/port_wavepci.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/…
==============================================================================
--- trunk/reactos/drivers/wdm/audio/backpln/portcls/port_wavepci.c [iso-8859-1]
(original)
+++ trunk/reactos/drivers/wdm/audio/backpln/portcls/port_wavepci.c [iso-8859-1] Sun Apr 19
23:15:58 2009
@@ -30,6 +30,7 @@
PPOWERNOTIFY pPowerNotify;
PPCFILTER_DESCRIPTOR pDescriptor;
PSUBDEVICE_DESCRIPTOR SubDeviceDescriptor;
+ IPortFilterWavePci * Filter;
}IPortWavePciImpl;
static GUID InterfaceGuids[3] =
@@ -628,10 +629,33 @@
IN PIRP Irp,
IN KSOBJECT_CREATE *CreateObject)
{
- //IPortWavePciImpl * This = (IPortWavePciImpl*)CONTAINING_RECORD(iface,
IPortWavePciImpl, lpVtblSubDevice);
-
- UNIMPLEMENTED
- return STATUS_UNSUCCESSFUL;
+ NTSTATUS Status;
+ IPortFilterWavePci * Filter;
+ IPortWavePciImpl * This = (IPortWavePciImpl*)CONTAINING_RECORD(iface,
IPortWavePciImpl, lpVtblSubDevice);
+
+ DPRINT("ISubDevice_NewIrpTarget this %p\n", This);
+
+ if (This->Filter)
+ {
+ *OutTarget = (IIrpTarget*)This->Filter;
+ return STATUS_SUCCESS;
+ }
+
+ Status = NewPortFilterWavePci(&Filter);
+ if (!NT_SUCCESS(Status))
+ {
+ return Status;
+ }
+
+ Status = Filter->lpVtbl->Init(Filter, (IPortWavePci*)This);
+ if (!NT_SUCCESS(Status))
+ {
+ Filter->lpVtbl->Release(Filter);
+ return Status;
+ }
+
+ *OutTarget = (IIrpTarget*)Filter;
+ return Status;
}
static