[AUDIO-BRINGUP]
authorJohannes Anderwald <johannes.anderwald@reactos.org>
Mon, 6 Dec 2010 01:06:37 +0000 (01:06 +0000)
committerJohannes Anderwald <johannes.anderwald@reactos.org>
Mon, 6 Dec 2010 01:06:37 +0000 (01:06 +0000)
- Fix the famous node property handler bug, leading to lots of audio related crashes

svn path=/branches/audio-bringup/; revision=49958

drivers/wdm/audio/backpln/portcls/undoc.cpp

index 9dc149d..56946f2 100644 (file)
@@ -165,7 +165,7 @@ PropertyItemDispatch(
 
     // get instance / value size
     InstanceSize = IoStack->Parameters.DeviceIoControl.InputBufferLength;
-    Instance = Data;
+    Instance = Request;
     ValueSize = IoStack->Parameters.DeviceIoControl.OutputBufferLength;
 
      // initialize property request
@@ -273,18 +273,15 @@ PropertyItemDispatch(
     if (PropertyRequest->PropertyItem && PropertyRequest->PropertyItem->Handler)
     {
         // now call the handler
-        UNICODE_STRING GuidBuffer;
-        RtlStringFromGUID(Property->Set, &GuidBuffer);
-        DPRINT1("Calling Node %lu MajorTarget %p MinorTarget %p PropertySet %S PropertyId %lu PropertyFlags %lx InstanceSize %lu ValueSize %lu Handler %p PropertyRequest %p PropertyItemFlags %lx PropertyItemId %lu\n",
-                PropertyRequest->Node, PropertyRequest->MajorTarget, PropertyRequest->MinorTarget, GuidBuffer.Buffer, Property->Id, Property->Flags, PropertyRequest->InstanceSize, PropertyRequest->ValueSize,
-                PropertyRequest->PropertyItem->Handler, PropertyRequest, PropertyRequest->PropertyItem->Flags, PropertyRequest->PropertyItem->Id);
-#if 1
+        //UNICODE_STRING GuidBuffer;
+        //RtlStringFromGUID(Property->Set, &GuidBuffer);
+        //DPRINT("Calling Node %lu MajorTarget %p MinorTarget %p PropertySet %S PropertyId %lu PropertyFlags %lx InstanceSize %lu ValueSize %lu Handler %p PropertyRequest %p PropertyItemFlags %lx PropertyItemId %lu\n",
+        //        PropertyRequest->Node, PropertyRequest->MajorTarget, PropertyRequest->MinorTarget, GuidBuffer.Buffer, Property->Id, Property->Flags, PropertyRequest->InstanceSize, PropertyRequest->ValueSize,
+        //        PropertyRequest->PropertyItem->Handler, PropertyRequest, PropertyRequest->PropertyItem->Flags, PropertyRequest->PropertyItem->Id);
+
         Status = PropertyRequest->PropertyItem->Handler(PropertyRequest);
-        DPRINT1("Status %lx ValueSize %lu Information %lu\n", Status, PropertyRequest->ValueSize, Irp->IoStatus.Information);
-#else
-        Status = STATUS_NOT_FOUND;
-#endif
-         Irp->IoStatus.Information = PropertyRequest->ValueSize;
+        //DPRINT("Status %lx ValueSize %lu Information %lu\n", Status, PropertyRequest->ValueSize, Irp->IoStatus.Information);
+        Irp->IoStatus.Information = PropertyRequest->ValueSize;
 
         if (Status != STATUS_PENDING)
         {