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/portcls/port_wavepci.c?rev=40592&r1=40591&r2=40592&view=diff
==============================================================================
--- 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

Reply via email to