Author: janderwald Date: Wed Jul 1 19:00:12 2009 New Revision: 41726
URL: http://svn.reactos.org/svn/reactos?rev=41726&view=rev Log: - Remove dead code - Reuse free audio handle index
Modified: trunk/reactos/drivers/wdm/audio/legacy/wdmaud/control.c
Modified: trunk/reactos/drivers/wdm/audio/legacy/wdmaud/control.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/legacy/wd... ============================================================================== --- trunk/reactos/drivers/wdm/audio/legacy/wdmaud/control.c [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/legacy/wdmaud/control.c [iso-8859-1] Wed Jul 1 19:00:12 2009 @@ -184,24 +184,7 @@ return SetIrpIoStatus(Irp, STATUS_NO_MEMORY, 0); }
- InstanceInfo->Property.Set = KSPROPSETID_Sysaudio; - InstanceInfo->Property.Id = KSPROPERTY_SYSAUDIO_INSTANCE_INFO; - InstanceInfo->Property.Flags = KSPROPERTY_TYPE_SET; - InstanceInfo->Flags = 0; - InstanceInfo->DeviceNumber = FilterId; - DeviceExtension = (PWDMAUD_DEVICE_EXTENSION)DeviceObject->DeviceExtension; - - Status = KsSynchronousIoControlDevice(DeviceExtension->FileObject, KernelMode, IOCTL_KS_PROPERTY, (PVOID)InstanceInfo, sizeof(SYSAUDIO_INSTANCE_INFO), NULL, 0, &BytesReturned); - - if (!NT_SUCCESS(Status)) - { - /* failed to acquire audio device */ - DPRINT1("KsSynchronousIoControlDevice failed with %x\n", Status); - ExFreePool(InstanceInfo); - return SetIrpIoStatus(Irp, Status, 0); - } - if (DeviceInfo->DeviceType == WAVE_IN_DEVICE_TYPE || DeviceInfo->DeviceType == MIDI_IN_DEVICE_TYPE || DeviceInfo->DeviceType == MIXER_DEVICE_TYPE) @@ -261,13 +244,17 @@
for(Index = 0; Index < ClientInfo->NumPins; Index++) { - if (ClientInfo->hPins[Index].Handle == PinHandle) + if (ClientInfo->hPins[Index].Handle == NULL) { - /* the pin handle has been re-used */ + /* re-use a free index */ + ClientInfo->hPins[Index].Handle = PinHandle; + ClientInfo->hPins[Index].FilterId = FilterId; + ClientInfo->hPins[Index].PinId = PinId; + ClientInfo->hPins[Index].Type = DeviceInfo->DeviceType; + DeviceInfo->hDevice = PinHandle; return SetIrpIoStatus(Irp, Status, sizeof(WDMAUD_DEVICE_INFO)); } - }
Handels = ExAllocatePool(NonPagedPool, sizeof(WDMAUD_HANDLE) * (ClientInfo->NumPins+1));