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/…
==============================================================================
--- 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;
}