[ros-diffs] [janderwald] 49958: [AUDIO-BRINGUP] - Fix the famous node property handler bug, leading to lots of audio related crashes

janderwald at svn.reactos.org janderwald at svn.reactos.org
Mon Dec 6 01:06:37 UTC 2010


Author: janderwald
Date: Mon Dec  6 01:06:37 2010
New Revision: 49958

URL: http://svn.reactos.org/svn/reactos?rev=49958&view=rev
Log:
[AUDIO-BRINGUP]
- Fix the famous node property handler bug, leading to lots of audio related crashes

Modified:
    branches/audio-bringup/drivers/wdm/audio/backpln/portcls/undoc.cpp

Modified: branches/audio-bringup/drivers/wdm/audio/backpln/portcls/undoc.cpp
URL: http://svn.reactos.org/svn/reactos/branches/audio-bringup/drivers/wdm/audio/backpln/portcls/undoc.cpp?rev=49958&r1=49957&r2=49958&view=diff
==============================================================================
--- branches/audio-bringup/drivers/wdm/audio/backpln/portcls/undoc.cpp [iso-8859-1] (original)
+++ branches/audio-bringup/drivers/wdm/audio/backpln/portcls/undoc.cpp [iso-8859-1] Mon Dec  6 01:06:37 2010
@@ -165,7 +165,7 @@
 
     // 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 @@
     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)
         {




More information about the Ros-diffs mailing list