X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fdrivers%2Fksfilter%2Fks%2Fproperty.c;h=d23939577d553fba736313bcec03655b8505a44f;hp=5204586c6317e697c4403cbd4ea573e235f56d6c;hb=aacb520dac93b32c7d18c5fc1a0df998004b9795;hpb=8512a881b0d11f1f539e3ea2ca1157a2e057df2a diff --git a/reactos/drivers/ksfilter/ks/property.c b/reactos/drivers/ksfilter/ks/property.c index 5204586c631..d23939577d5 100644 --- a/reactos/drivers/ksfilter/ks/property.c +++ b/reactos/drivers/ksfilter/ks/property.c @@ -18,7 +18,8 @@ FindPropertyHandler( IN ULONG InputBufferLength, IN ULONG OutputBufferLength, OUT PVOID OutputBuffer, - OUT PFNKSHANDLER *PropertyHandler) + OUT PFNKSHANDLER *PropertyHandler, + OUT PKSPROPERTY_SET * Set) { ULONG Index, ItemIndex; //PULONG Flags; @@ -93,6 +94,7 @@ FindPropertyHandler( if (Property->Flags & KSPROPERTY_TYPE_GET) *PropertyHandler = PropertySet[Index].PropertyItem[ItemIndex].GetPropertyHandler; + *Set = (PKSPROPERTY_SET)&PropertySet[Index]; return STATUS_SUCCESS; } } @@ -111,6 +113,7 @@ KspPropertyHandler( IN ULONG PropertyItemSize OPTIONAL) { PKSPROPERTY Property; + PKSPROPERTY_SET Set; PIO_STACK_LOCATION IoStack; NTSTATUS Status; PFNKSHANDLER PropertyHandler = NULL; @@ -139,11 +142,12 @@ KspPropertyHandler( ASSERT(PropertyItemSize == 0 || PropertyItemSize == sizeof(KSPROPERTY_ITEM)); /* find the property handler */ - Status = FindPropertyHandler(&Irp->IoStatus, PropertySet, PropertySetsCount, Property, IoStack->Parameters.DeviceIoControl.InputBufferLength, IoStack->Parameters.DeviceIoControl.OutputBufferLength, Irp->UserBuffer, &PropertyHandler); + Status = FindPropertyHandler(&Irp->IoStatus, PropertySet, PropertySetsCount, Property, IoStack->Parameters.DeviceIoControl.InputBufferLength, IoStack->Parameters.DeviceIoControl.OutputBufferLength, Irp->UserBuffer, &PropertyHandler, &Set); if (NT_SUCCESS(Status) && PropertyHandler) { /* call property handler */ + KSPROPERTY_SET_IRP_STORAGE(Irp) = Set; Status = PropertyHandler(Irp, Property, Irp->UserBuffer); if (Status == STATUS_BUFFER_TOO_SMALL)