From a3f82b7d7b65bfb27428b231d3926a770beceaa7 Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Sat, 22 Oct 2016 19:52:51 +0000 Subject: [PATCH] [KS] - enable topology property handlers svn path=/trunk/; revision=73021 --- reactos/drivers/ksfilter/ks/filter.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/reactos/drivers/ksfilter/ks/filter.c b/reactos/drivers/ksfilter/ks/filter.c index 7441e595dc2..fba093e1658 100644 --- a/reactos/drivers/ksfilter/ks/filter.c +++ b/reactos/drivers/ksfilter/ks/filter.c @@ -1019,7 +1019,8 @@ IKsFilter_DispatchDeviceIoControl( UNICODE_STRING GuidString; PKSPROPERTY Property; ULONG SetCount = 0; - //PKSP_NODE NodeProperty; + PKSP_NODE NodeProperty; + PKSNODE_DESCRIPTOR NodeDescriptor; /* obtain filter from object header */ Status = IKsFilter_GetFilterFromIrp(Irp, &Filter); @@ -1067,21 +1068,21 @@ IKsFilter_DispatchDeviceIoControl( { const KSPROPERTY_SET *PropertySet = NULL; ULONG PropertyItemSize = 0; -#if 0 + /* check if the driver supports method sets */ if (Property->Flags & KSPROPERTY_TYPE_TOPOLOGY) { + ASSERT(IoStack->Parameters.DeviceIoControl.InputBufferLength >= sizeof(KSP_NODE)); NodeProperty = (PKSP_NODE)Property; - if (FilterInstance->Descriptor->NodeDescriptors[NodeProperty->NodeId].AutomationTable != NULL) + NodeDescriptor = (PKSNODE_DESCRIPTOR)((ULONG_PTR)FilterInstance->Descriptor->NodeDescriptors + FilterInstance->Descriptor->NodeDescriptorSize * NodeProperty->NodeId); + if (NodeDescriptor->AutomationTable != NULL) { - SetCount = FilterInstance->Descriptor->NodeDescriptors[NodeProperty->NodeId].AutomationTable->PropertySetsCount; - PropertySet = FilterInstance->Descriptor->NodeDescriptors[NodeProperty->NodeId].AutomationTable->PropertySets; + SetCount = NodeDescriptor->AutomationTable->PropertySetsCount; + PropertySet = NodeDescriptor->AutomationTable->PropertySets; PropertyItemSize = 0; } - - } else -#endif - if (FilterInstance->Descriptor->AutomationTable->PropertySetsCount) + } + else if (FilterInstance->Descriptor->AutomationTable->PropertySetsCount) { SetCount = FilterInstance->Descriptor->AutomationTable->PropertySetsCount; PropertySet = FilterInstance->Descriptor->AutomationTable->PropertySets; -- 2.17.1