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/p... ============================================================================== --- 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