[ros-diffs] [janderwald] 44758: [PORTCLS] - Return status code of operation - Cancel all irps when pin state is set to stop. Fixes ReactOS portcls regression under WindowsXP - Handle IRP_MN_READ_CONFIG

janderwald at svn.reactos.org janderwald at svn.reactos.org
Fri Dec 25 13:24:43 CET 2009


Author: janderwald
Date: Fri Dec 25 13:24:42 2009
New Revision: 44758

URL: http://svn.reactos.org/svn/reactos?rev=44758&view=rev
Log:
[PORTCLS]
- Return status code of operation
- Cancel all irps when pin state is set to stop. Fixes ReactOS portcls regression under WindowsXP
- Handle IRP_MN_READ_CONFIG

Modified:
    trunk/reactos/drivers/wdm/audio/backpln/portcls/irp.cpp
    trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp

Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/irp.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/portcls/irp.cpp?rev=44758&r1=44757&r2=44758&view=diff
==============================================================================
--- trunk/reactos/drivers/wdm/audio/backpln/portcls/irp.cpp [iso-8859-1] (original)
+++ trunk/reactos/drivers/wdm/audio/backpln/portcls/irp.cpp [iso-8859-1] Fri Dec 25 13:24:42 2009
@@ -139,6 +139,10 @@
             return PcCompleteIrp(DeviceObject, Irp, Status);
        case IRP_MN_QUERY_RESOURCE_REQUIREMENTS:
             DPRINT("IRP_MN_QUERY_RESOURCE_REQUIREMENTS\n");
+            Status = PcForwardIrpSynchronous(DeviceObject, Irp);
+            return PcCompleteIrp(DeviceObject, Irp, Status);
+       case IRP_MN_READ_CONFIG:
+            DPRINT("IRP_MN_READ_CONFIG\n");
             Status = PcForwardIrpSynchronous(DeviceObject, Irp);
             return PcCompleteIrp(DeviceObject, Irp, Status);
     }

Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp?rev=44758&r1=44757&r2=44758&view=diff
==============================================================================
--- trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp [iso-8859-1] (original)
+++ trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp [iso-8859-1] Fri Dec 25 13:24:42 2009
@@ -451,9 +451,14 @@
                 // complete with successful state
                 Pin->m_IrpQueue->CancelBuffers();
             }
+            else if (Pin->m_State == KSSTATE_STOP)
+            {
+                Pin->m_IrpQueue->CancelBuffers();
+            }
             // store result
             Irp->IoStatus.Information = sizeof(KSSTATE);
         }
+        return Status;
     }
     else if (Request->Flags & KSPROPERTY_TYPE_GET)
     {
@@ -848,7 +853,6 @@
     }
     else if (IoStack->Parameters.DeviceIoControl.IoControlCode == IOCTL_KS_RESET_STATE)
     {
-        /// FIXME
         Status = KsAcquireResetValue(Irp, &ResetValue);
         DPRINT("Status %x Value %u\n", Status, ResetValue);
         /* check for success */




More information about the Ros-diffs mailing list