- Fix initialization of filter /  pin automation table
- Add debug traces

svn path=/trunk/; revision=46622
This commit is contained in:
Johannes Anderwald 2010-03-31 15:37:36 +00:00
parent 1d4dbb9cb7
commit af6dcb5bf0

View file

@ -52,13 +52,13 @@ KSMETHOD_SET FilterMethodSet =
KSAUTOMATION_TABLE FilterAutomationTable =
{
1,
sizeof(KSPROPERTY_SET),
sizeof(KSPROPERTY_ITEM),
&FilterPropertySet,
1,
sizeof(KSMETHOD_SET),
sizeof(KSMETHOD_ITEM),
&FilterMethodSet,
0,
sizeof(KSEVENT_SET),
sizeof(KSEVENT_ITEM),
NULL
};
@ -80,13 +80,13 @@ KSPROPERTY_SET PinPropertySet =
KSAUTOMATION_TABLE PinAutomationTable =
{
1,
sizeof(KSPROPERTY_SET),
sizeof(KSPROPERTY_ITEM),
&PinPropertySet,
0,
sizeof(KSMETHOD_SET),
sizeof(KSMETHOD_ITEM),
NULL,
0,
sizeof(KSEVENT_SET),
sizeof(KSEVENT_ITEM),
NULL
};
@ -157,6 +157,8 @@ NTAPI
DllInitialize(
PUNICODE_STRING RegistryPath)
{
DPRINT("BDASUP::DllInitialize\n");
KeInitializeSpinLock(&g_Settings.FilterFactoryInstanceListLock);
InitializeListHead(&g_Settings.FilterFactoryInstanceList);
g_Settings.Initialized = TRUE;
@ -171,6 +173,8 @@ NTSTATUS
NTAPI
BdaCheckChanges(IN PIRP Irp)
{
DPRINT("BdaCheckChanges\n");
if (!Irp)
return STATUS_INVALID_PARAMETER;
@ -184,6 +188,8 @@ NTSTATUS
NTAPI
BdaCommitChanges(IN PIRP Irp)
{
DPRINT("BdaCommitChanges\n");
if (!Irp)
return STATUS_INVALID_PARAMETER;
@ -257,6 +263,7 @@ BdaCreateFilterFactoryEx(
NTSTATUS Status;
KSFILTER_DESCRIPTOR FilterDescriptor;
DPRINT("BdaCreateFilterFactoryEx\n");
/* backup filter descriptor */
RtlMoveMemory(&FilterDescriptor, pFilterDescriptor, sizeof(KSFILTER_DESCRIPTOR));
@ -265,7 +272,10 @@ BdaCreateFilterFactoryEx(
/* check for success */
if (!NT_SUCCESS(Status))
{
DPRINT1("KsMergeAutomationTables failed with %lx\n", Status);
return Status;
}
/* allocate filter instance */
FilterInstance = AllocateItem(NonPagedPool, sizeof(BDA_FILTER_INSTANCE_ENTRY));
@ -287,6 +297,7 @@ BdaCreateFilterFactoryEx(
if (!NT_SUCCESS(Status))
{
/* destroy filter instance */
DPRINT1("KsAddItemToObjectBag failed with %lx\n", Status);
FreeItem(FilterInstance);
KsDeleteFilterFactory(FilterFactory);
return Status;
@ -316,9 +327,11 @@ BdaCreateFilterFactoryEx(
{
/* failed to create filter factory */
FreeItem(FilterInstance);
DPRINT1("KsCreateFilterFactory failed with %lx\n", Status);
}
/* done */
DPRINT("BdaCreateFilterFactoryEx Status %x\n", Status);
return Status;
}
@ -339,6 +352,8 @@ BdaCreatePin(
ULONG PinId;
KSPIN_DESCRIPTOR_EX NewPinDescriptor;
DPRINT("BdaCreatePin\n");
if (!pulPinId || !pKSFilter)
return STATUS_INVALID_PARAMETER;
@ -419,6 +434,8 @@ BdaMethodCreatePin(
PKSM_PIN Pin;
PKSFILTER Filter;
DPRINT("BdaMethodCreatePin\n");
if (!Irp)
{
/* invalid parameter */
@ -453,6 +470,8 @@ BdaInitFilter(
ULONG Index, PinId;
NTSTATUS Status = STATUS_SUCCESS;
DPRINT("BdaInitFilter\n");
/* check input parameters */
if (!pKSFilter)
return STATUS_INVALID_PARAMETER;
@ -501,6 +520,8 @@ BdaCreateTopology(
PKSFILTERFACTORY FilterFactory;
KSTOPOLOGY_CONNECTION Connection;
DPRINT("BdaCreateTopology\n");
/* check input parameters */
if (!pKSFilter)
return STATUS_INVALID_PARAMETER;
@ -547,6 +568,7 @@ BdaDeletePin(
IN ULONG *pulPinId)
{
UNIMPLEMENTED
DPRINT("BdaDeletePin\n");
return STATUS_NOT_IMPLEMENTED;
}
@ -559,6 +581,7 @@ BdaFilterFactoryUpdateCacheData(
IN PKSFILTERFACTORY FilterFactory,
IN const KSFILTER_DESCRIPTOR *FilterDescriptor OPTIONAL)
{
DPRINT("BdaFilterFactoryUpdateCacheData\n");
return KsFilterFactoryUpdateCacheData(FilterFactory, FilterDescriptor);
}
@ -571,6 +594,8 @@ BdaGetChangeState(
IN PIRP Irp,
OUT BDA_CHANGE_STATE *ChangeState)
{
DPRINT("BdaGetChangeState\n");
if (Irp && ChangeState)
{
*ChangeState = BDA_CHANGES_COMPLETE;
@ -595,6 +620,8 @@ BdaMethodCreateTopology(
PKSFILTER Filter;
PKSP_BDA_NODE_PIN Node;
DPRINT("BdaMethodCreateTopology\n");
/* check input parameters */
if (!Irp || !pKSMethod)
return STATUS_INVALID_PARAMETER;
@ -622,6 +649,8 @@ BdaMethodDeletePin(
IN KSMETHOD *pKSMethod,
OPTIONAL PVOID pvIgnored)
{
DPRINT("BdaMethodDeletePin\n");
if (!Irp)
return STATUS_INVALID_PARAMETER;
@ -639,6 +668,7 @@ BdaPropertyGetControllingPinId(
OUT ULONG *pulControllingPinId)
{
UNIMPLEMENTED
DPRINT("BdaPropertyGetControllingPinId\n");
return STATUS_NOT_IMPLEMENTED;
}
@ -657,6 +687,8 @@ BdaPropertyGetPinControl(
PKSFILTERFACTORY FilterFactory;
PBDA_FILTER_INSTANCE_ENTRY InstanceEntry;
DPRINT("BdaPropertyGetPinControl\n");
/* first get the pin */
Pin = KsGetPinFromIrp(Irp);
ASSERT(Pin);
@ -694,6 +726,7 @@ BdaPropertyNodeDescriptors(
OUT BDANODE_DESCRIPTOR *pNodeDescriptorProperty)
{
UNIMPLEMENTED
DPRINT("BdaPropertyNodeDescriptors\n");
return STATUS_NOT_IMPLEMENTED;
}
@ -708,6 +741,7 @@ BdaPropertyNodeEvents(
OUT GUID *pguidProperty)
{
UNIMPLEMENTED
DPRINT("BdaPropertyNodeEvents\n");
return STATUS_NOT_IMPLEMENTED;
}
@ -722,6 +756,7 @@ BdaPropertyNodeMethods(
OUT GUID *pguidProperty)
{
UNIMPLEMENTED
DPRINT("BdaPropertyNodeMethods\n");
return STATUS_NOT_IMPLEMENTED;
}
@ -736,6 +771,7 @@ BdaPropertyNodeProperties(
OUT GUID *pguidProperty)
{
UNIMPLEMENTED
DPRINT("BdaPropertyNodeProperties\n");
return STATUS_NOT_IMPLEMENTED;
}
@ -755,6 +791,8 @@ BdaPropertyNodeTypes(
PIO_STACK_LOCATION IoStack;
ULONG Index;
DPRINT("BdaPropertyNodeTypes\n");
/* check input parameter */
if (!Irp || !pKSProperty)
return STATUS_INVALID_PARAMETER;
@ -821,6 +859,8 @@ BdaPropertyPinTypes(
PIO_STACK_LOCATION IoStack;
ULONG Index;
DPRINT("BdaPropertyPinTypes\n");
/* check input parameter */
if (!Irp || !pKSProperty)
return STATUS_INVALID_PARAMETER;
@ -886,6 +926,8 @@ BdaPropertyTemplateConnections(
PIO_STACK_LOCATION IoStack;
ULONG Index;
DPRINT("BdaPropertyTemplateConnections\n");
/* validate parameters */
if (!Irp || !pKSProperty)
return STATUS_INVALID_PARAMETER;
@ -941,6 +983,8 @@ NTSTATUS
NTAPI
BdaStartChanges(IN PIRP Irp)
{
DPRINT("BdaStartChanges\n");
if (Irp)
return STATUS_SUCCESS;
else
@ -955,6 +999,7 @@ NTSTATUS
NTAPI
BdaUninitFilter(IN PKSFILTER pKSFilter)
{
DPRINT("BdaUninitFilter\n");
return STATUS_SUCCESS;
}
@ -967,6 +1012,8 @@ BdaValidateNodeProperty(
IN PIRP Irp,
IN KSPROPERTY *KSProperty)
{
DPRINT("BdaValidateNodeProperty\n");
/* check for valid parameter */
if (Irp && KSProperty)
return STATUS_SUCCESS;