Author: janderwald
Date: Sat Dec 12 17:27:17 2009
New Revision: 44551

URL: http://svn.reactos.org/svn/reactos?rev=44551&view=rev
Log:
[PORTCLS]
- Return correct status code from InterruptSync::CallSynchronizedRoutine

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

Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/interrupt.cpp
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/portcls/interrupt.cpp?rev=44551&r1=44550&r2=44551&view=diff
==============================================================================
--- trunk/reactos/drivers/wdm/audio/backpln/portcls/interrupt.cpp [iso-8859-1] 
(original)
+++ trunk/reactos/drivers/wdm/audio/backpln/portcls/interrupt.cpp [iso-8859-1] 
Sat Dec 12 17:27:17 2009
@@ -52,6 +52,7 @@
 
     PINTERRUPTSYNCROUTINE m_SyncRoutine;
     PVOID m_DynamicContext;
+    NTSTATUS m_Status;
 
     LONG m_Ref;
 
@@ -97,10 +98,10 @@
     IN PVOID  ServiceContext)
 {
     CInterruptSync * This = (CInterruptSync*)ServiceContext;
-    NTSTATUS Status = This->m_SyncRoutine(This, This->m_DynamicContext);
-
-    DPRINT("CInterruptSynchronizedRoutine this %p SyncRoutine %p Context %p 
Status %x\n", This, This->m_SyncRoutine, This->m_DynamicContext, Status);
-    return NT_SUCCESS(Status);
+    This->m_Status = This->m_SyncRoutine(This, This->m_DynamicContext);
+
+    DPRINT("CInterruptSynchronizedRoutine this %p SyncRoutine %p Context %p 
Status %x\n", This, This->m_SyncRoutine, This->m_DynamicContext, 
This->m_Status);
+    return TRUE;
 }
 
 NTSTATUS
@@ -112,7 +113,7 @@
     KIRQL OldIrql;
 
     DPRINT("CInterruptSync::CallSynchronizedRoutine this %p Routine %p 
DynamicContext %p Irql %x Interrupt %p\n", this, Routine, DynamicContext, 
KeGetCurrentIrql(), m_Interrupt);
-
+    
     if (!m_Interrupt)
     {
         DPRINT("CInterruptSync_CallSynchronizedRoutine %p no interrupt 
connected\n", this);
@@ -125,14 +126,14 @@
         CInterruptSynchronizedRoutine((PVOID)this);
         KeReleaseSpinLock(&m_Lock, OldIrql);
 
-        return STATUS_SUCCESS;
+        return m_Status;
     }
 
     m_SyncRoutine = Routine;
     m_DynamicContext = DynamicContext;
 
     if (KeSynchronizeExecution(m_Interrupt, CInterruptSynchronizedRoutine, 
(PVOID)this))
-        return STATUS_SUCCESS;
+        return m_Status;
     else
         return STATUS_UNSUCCESSFUL;
 }


Reply via email to