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; }