Author: janderwald Date: Wed Jun 10 01:55:12 2009 New Revision: 41363
URL: http://svn.reactos.org/svn/reactos?rev=41363&view=rev Log: - Topology nodes can have a nullable name - Disable releasing resources when IPortFilterWaveCyclic is closed
Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/filter_wavecyclic.c trunk/reactos/drivers/wdm/audio/backpln/portcls/irpstream.c trunk/reactos/drivers/wdm/audio/backpln/portcls/undoc.c
Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/filter_wavecyclic.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/p... ============================================================================== --- trunk/reactos/drivers/wdm/audio/backpln/portcls/filter_wavecyclic.c [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/backpln/portcls/filter_wavecyclic.c [iso-8859-1] Wed Jun 10 01:55:12 2009 @@ -236,7 +236,7 @@ IN PIRP Irp) { ULONG Index; - PMINIPORTWAVECYCLIC Miniport; + //PMINIPORTWAVECYCLIC Miniport; IPortFilterWaveCyclicImpl * This = (IPortFilterWaveCyclicImpl *)iface;
for(Index = 0; Index < This->Descriptor->Factory.PinDescriptorCount; Index++) @@ -246,12 +246,12 @@ }
/* release reference to port */ - This->Port->lpVtbl->Release(This->Port); + //This->Port->lpVtbl->Release(This->Port);
/* get the miniport driver */ - Miniport = GetWaveCyclicMiniport(This->Port); + //Miniport = GetWaveCyclicMiniport(This->Port); /* release miniport driver */ - Miniport->lpVtbl->Release(Miniport); + //Miniport->lpVtbl->Release(Miniport);
Irp->IoStatus.Status = STATUS_SUCCESS;
Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/irpstream.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/p... ============================================================================== --- trunk/reactos/drivers/wdm/audio/backpln/portcls/irpstream.c [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/backpln/portcls/irpstream.c [iso-8859-1] Wed Jun 10 01:55:12 2009 @@ -393,13 +393,15 @@
/* insert into list to free later */ ExInterlockedInsertTailList(&This->FreeHead, &CurMapping->Entry, &This->Lock); + DPRINT("IIrpQueue_fnGetMappingWithTag Tag %p Mapping %p\n", Tag, CurMapping); } else { /* we can free this entry now */ FreeItem(CurMapping, TAG_PORTCLASS); - } - DPRINT("IIrpQueue_fnGetMappingWithTag Tag %p\n", Tag); + DPRINT("IIrpQueue_fnGetMappingWithTag Tag %p Mapping %p FREED\n", Tag, CurMapping); + } + return STATUS_SUCCESS; }
Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/undoc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/p... ============================================================================== --- trunk/reactos/drivers/wdm/audio/backpln/portcls/undoc.c [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/backpln/portcls/undoc.c [iso-8859-1] Wed Jun 10 01:55:12 2009 @@ -236,8 +236,14 @@
for(Index = 0; Index < FilterDescription->NodeCount; Index++) { - RtlMoveMemory((PVOID)&Descriptor->Topology->TopologyNodes[Index], FilterDescription->Nodes[Index].Type, sizeof(GUID)); - RtlMoveMemory((PVOID)&Descriptor->Topology->TopologyNodesNames[Index], FilterDescription->Nodes[Index].Name, sizeof(GUID)); + if (FilterDescription->Nodes[Index].Type) + { + RtlMoveMemory((PVOID)&Descriptor->Topology->TopologyNodes[Index], FilterDescription->Nodes[Index].Type, sizeof(GUID)); + } + if (FilterDescription->Nodes[Index].Name) + { + RtlMoveMemory((PVOID)&Descriptor->Topology->TopologyNodesNames[Index], FilterDescription->Nodes[Index].Name, sizeof(GUID)); + } } Descriptor->Topology->TopologyNodesCount = FilterDescription->NodeCount; }