From da8d2f0bd8ed3b3ea3da10faf3569f9748be5def Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Mon, 10 Aug 2009 16:10:26 +0000 Subject: [PATCH] - Implement BdaPropertyGetPinControl svn path=/trunk/; revision=42599 --- reactos/drivers/multimedia/bdasup/bdasup.c | 33 ++++++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/reactos/drivers/multimedia/bdasup/bdasup.c b/reactos/drivers/multimedia/bdasup/bdasup.c index ee9e2721e8d..63f3c36cddc 100644 --- a/reactos/drivers/multimedia/bdasup/bdasup.c +++ b/reactos/drivers/multimedia/bdasup/bdasup.c @@ -532,7 +532,7 @@ BdaPropertyGetControllingPinId( } /* - @unimplemented + @implemented */ NTSTATUS NTAPI @@ -541,8 +541,35 @@ BdaPropertyGetPinControl( IN KSPROPERTY *pKSProperty, OUT ULONG *pulProperty) { - UNIMPLEMENTED - return STATUS_NOT_IMPLEMENTED; + PKSPIN Pin; + PKSFILTER Filter; + PKSFILTERFACTORY FilterFactory; + PBDA_FILTER_INSTANCE_ENTRY InstanceEntry; + + /* first get the pin */ + Pin = KsGetPinFromIrp(Irp); + ASSERT(Pin); + + /* now get the parent filter */ + Filter = KsPinGetParentFilter(Pin); + ASSERT(Filter); + + /* get parent filter factory */ + FilterFactory = KsFilterGetParentFilterFactory(Filter); + ASSERT(FilterFactory); + + /* find instance entry */ + InstanceEntry = GetFilterInstanceEntry(FilterFactory); + ASSERT(InstanceEntry); + + /* sanity check */ + pKSProperty++; + ASSERT(pKSProperty->Id == KSPROPERTY_BDA_PIN_TYPE); + + /* store pin id */ + *pulProperty = Pin->Id; + + return STATUS_SUCCESS; } /*