Author: sginsberg Date: Sat Aug 23 11:30:14 2008 New Revision: 35565
URL: http://svn.reactos.org/svn/reactos?rev=35565&view=rev Log: - In IoAcquire/ReleaseCancelSpinLock, use the queued "IopCancelSpinLock" instead of a ros-specific "CancelSpinLock" standard spinlock - Misc fixes
Modified: trunk/reactos/ntoskrnl/io/iomgr/error.c trunk/reactos/ntoskrnl/io/iomgr/iofunc.c trunk/reactos/ntoskrnl/io/iomgr/iomgr.c trunk/reactos/ntoskrnl/io/iomgr/irp.c trunk/reactos/ntoskrnl/io/iomgr/util.c
Modified: trunk/reactos/ntoskrnl/io/iomgr/error.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/error.c?r... ============================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/error.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/iomgr/error.c [iso-8859-1] Sat Aug 23 11:30:14 2008 @@ -122,7 +122,7 @@ NULL); if (NT_SUCCESS(Status)) { - /* Remmeber we're connected */ + /* Remember we're connected */ IopLogPortConnected = TRUE; return TRUE; } @@ -583,7 +583,7 @@ KeAcquireSpinLock(&IopLogListLock, &Irql); InsertHeadList(&IopErrorLogListHead, &LogEntry->ListEntry);
- /* Check if the worker is runnign */ + /* Check if the worker is running */ if (!IopLogWorkerRunning) { #if 0 @@ -648,7 +648,7 @@ IN PKTHREAD Thread) { UNIMPLEMENTED; - return(FALSE); + return FALSE; }
/* @@ -659,14 +659,12 @@ IoSetThreadHardErrorMode(IN BOOLEAN HardErrorEnabled) { PETHREAD Thread = PsGetCurrentThread(); - BOOLEAN Old; + BOOLEAN OldMode;
/* Get the current value */ - Old = !Thread->HardErrorsAreDisabled; + OldMode = !Thread->HardErrorsAreDisabled;
/* Set the new one and return the old */ Thread->HardErrorsAreDisabled = !HardErrorEnabled; - return Old; -} - -/* EOF */ + return OldMode; +}
Modified: trunk/reactos/ntoskrnl/io/iomgr/iofunc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/iofunc.c?... ============================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/iofunc.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/iomgr/iofunc.c [iso-8859-1] Sat Aug 23 11:30:14 2008 @@ -682,7 +682,7 @@ StackPtr->FileObject = FileObject;
/* Call the Driver */ - return IofCallDriver(DeviceObject, Irp); + return IoCallDriver(DeviceObject, Irp); }
/* @@ -732,7 +732,7 @@ StackPtr->FileObject = FileObject;
/* Call the Driver */ - return IofCallDriver(DeviceObject, Irp); + return IoCallDriver(DeviceObject, Irp); }
/* @@ -776,7 +776,7 @@ }
/* - * @unimplemented + * @implemented */ NTSTATUS NTAPI @@ -2045,7 +2045,7 @@ CapturedByteOffset = FileObject->CurrentByteOffset; }
- /* Rememer we are sync */ + /* Remember we are sync */ Synchronous = TRUE; } else if (!(ByteOffset) && @@ -2904,7 +2904,7 @@ CapturedByteOffset = FileObject->CurrentByteOffset; }
- /* Rememer we are sync */ + /* Remember we are sync */ Synchronous = TRUE; } else if (!(ByteOffset) &&
Modified: trunk/reactos/ntoskrnl/io/iomgr/iomgr.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/iomgr.c?r... ============================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/iomgr.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/iomgr/iomgr.c [iso-8859-1] Sat Aug 23 11:30:14 2008 @@ -68,7 +68,6 @@ extern LIST_ENTRY IopTimerQueueHead; extern KDPC IopTimerDpc; extern KTIMER IopTimer; -extern KSPIN_LOCK CancelSpinLock; extern KSPIN_LOCK IoVpbLock; extern KSPIN_LOCK IoStatisticsLock; extern KSPIN_LOCK DriverReinitListLock; @@ -463,7 +462,6 @@ InitializeListHead(&LastChanceShutdownListHead); InitializeListHead(&FsChangeNotifyListHead); InitializeListHead(&IopErrorLogListHead); - KeInitializeSpinLock(&CancelSpinLock); KeInitializeSpinLock(&IoVpbLock); KeInitializeSpinLock(&IoStatisticsLock); KeInitializeSpinLock(&DriverReinitListLock);
Modified: trunk/reactos/ntoskrnl/io/iomgr/irp.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/irp.c?rev... ============================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/irp.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/iomgr/irp.c [iso-8859-1] Sat Aug 23 11:30:14 2008 @@ -1,8 +1,7 @@ - /* * PROJECT: ReactOS Kernel * LICENSE: GPL - See COPYING in the top level directory - * FILE: ntoskrnl/io/irp.c + * FILE: ntoskrnl/io/iomgr/irp.c * PURPOSE: IRP Handling Functions * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) * Gunnar Dalsnes @@ -627,7 +626,7 @@
/* Allocate IRP */ Irp = IoAllocateIrp(DeviceObject->StackSize, FALSE); - if (!Irp) return Irp; + if (!Irp) return NULL;
/* Get the Stack */ StackPtr = IoGetNextIrpStackLocation(Irp); @@ -731,7 +730,7 @@ Irp->UserIosb = IoStatusBlock; Irp->Tail.Overlay.Thread = PsGetCurrentThread();
- /* Set the Status Block after all is done */ + /* Return the IRP */ IOTRACE(IO_IRP_DEBUG, "%s - Built IRP %p with Major, Buffer, DO %lx %p %p\n", __FUNCTION__, @@ -763,7 +762,7 @@
/* Allocate IRP */ Irp = IoAllocateIrp(DeviceObject->StackSize, FALSE); - if (!Irp) return Irp; + if (!Irp) return NULL;
/* Get the Stack */ StackPtr = IoGetNextIrpStackLocation(Irp); @@ -857,6 +856,7 @@ } else { + /* Clear the flags */ Irp->Flags = 0; }
@@ -1058,7 +1058,12 @@ * Don't stay here forever if some broken driver doesn't complete * the IRP. */ - if (!(Retries--)) IopRemoveThreadIrp(); + if (!(Retries--)) + { + /* Print out a message and remove the IRP */ + DPRINT1("Broken driver did not complete!\n"); + IopRemoveThreadIrp(); + }
/* Raise the IRQL Again */ KeRaiseIrql(APC_LEVEL, &OldIrql); @@ -1076,7 +1081,7 @@ IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) { - /* Call fast call */ + /* Call fastcall */ return IofCallDriver(DeviceObject, Irp); }
@@ -1112,7 +1117,7 @@ IN PIRP Irp) { PDRIVER_OBJECT DriverObject; - PIO_STACK_LOCATION Param; + PIO_STACK_LOCATION StackPtr;
/* Get the Driver Object */ DriverObject = DeviceObject->DriverObject; @@ -1126,15 +1131,15 @@ }
/* Now update the stack location */ - Param = IoGetNextIrpStackLocation(Irp); - Irp->Tail.Overlay.CurrentStackLocation = Param; + StackPtr = IoGetNextIrpStackLocation(Irp); + Irp->Tail.Overlay.CurrentStackLocation = StackPtr;
/* Get the Device Object */ - Param->DeviceObject = DeviceObject; + StackPtr->DeviceObject = DeviceObject;
/* Call it */ - return DriverObject->MajorFunction[Param->MajorFunction](DeviceObject, - Irp); + return DriverObject->MajorFunction[StackPtr->MajorFunction](DeviceObject, + Irp); }
FORCEINLINE @@ -1417,10 +1422,9 @@
NTSTATUS NTAPI -IopSynchronousCompletion( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp, - IN PVOID Context) +IopSynchronousCompletion(IN PDEVICE_OBJECT DeviceObject, + IN PIRP Irp, + IN PVOID Context) { if (Irp->PendingReturned) KeSetEvent((PKEVENT)Context, IO_NO_INCREMENT, FALSE); @@ -1464,6 +1468,7 @@ KeWaitForSingleObject(&Event, Suspended, KernelMode, FALSE, NULL); }
+ /* Return success */ return TRUE; }
@@ -1550,10 +1555,12 @@ /* * @implemented */ -PEPROCESS NTAPI +PEPROCESS +NTAPI IoGetRequestorProcess(IN PIRP Irp) { - return(Irp->Tail.Overlay.Thread->ThreadsProcess); + /* Return the requestor process */ + return Irp->Tail.Overlay.Thread->ThreadsProcess; }
/* @@ -1563,6 +1570,7 @@ NTAPI IoGetRequestorProcessId(IN PIRP Irp) { + /* Return the requestor process' id */ return (ULONG)(IoGetRequestorProcess(Irp)->UniqueProcessId); }
@@ -1586,6 +1594,7 @@ NTAPI IoGetTopLevelIrp(VOID) { + /* Return the IRP */ return (PIRP)PsGetCurrentThread()->TopLevelIrp; }
@@ -1736,5 +1745,3 @@ /* Set the IRP */ PsGetCurrentThread()->TopLevelIrp = (ULONG)Irp; } - -/* EOF */
Modified: trunk/reactos/ntoskrnl/io/iomgr/util.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/util.c?re... ============================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/util.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/iomgr/util.c [iso-8859-1] Sat Aug 23 11:30:14 2008 @@ -1,9 +1,11 @@ /* * PROJECT: ReactOS Kernel * LICENSE: GPL - See COPYING in the top level directory - * FILE: ntoskrnl/io/util.c + * FILE: ntoskrnl/io/iomgr/util.c * PURPOSE: I/O Utility Functions - * PROGRAMMERS: <UNKNOWN> + * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) + * Aleksey Bragin (aleksey@reactos.org) + * Daniel Zimmerman (netzimme@aim.com) */
/* INCLUDES *****************************************************************/ @@ -17,10 +19,6 @@ RtlpGetStackLimits(PULONG_PTR StackBase, PULONG_PTR StackLimit);
-/* DATA **********************************************************************/ - -KSPIN_LOCK CancelSpinLock; - /* FUNCTIONS *****************************************************************/
/* @@ -28,10 +26,10 @@ */ VOID NTAPI -IoAcquireCancelSpinLock(PKIRQL Irql) +IoAcquireCancelSpinLock(OUT PKIRQL Irql) { /* Just acquire the internal lock */ - KeAcquireSpinLock(&CancelSpinLock,Irql); + *Irql = KeAcquireQueuedSpinLock(LockQueueIoCancelLock); }
/* @@ -113,6 +111,7 @@ NTAPI IoGetCurrentProcess(VOID) { + /* Return the current thread's process */ return (PEPROCESS)PsGetCurrentThread()->Tcb.ApcState.Process; }
@@ -121,10 +120,10 @@ */ VOID NTAPI -IoReleaseCancelSpinLock(KIRQL Irql) +IoReleaseCancelSpinLock(IN KIRQL Irql) { /* Release the internal lock */ - KeReleaseSpinLock(&CancelSpinLock,Irql); + KeReleaseQueuedSpinLock(LockQueueIoCancelLock, Irql); }
/* @@ -315,4 +314,3 @@ UNIMPLEMENTED; return STATUS_NOT_IMPLEMENTED; } -/* EOF */
Please don't write formatting fixes as "Misc Fixes". It's a pain for reviewers who expect actual functionality fixes, and also for changelog writers, which will try to understand what exactly you fixed.
Furthermore, such formatting patches should have [FORMATTING] attached to them.
And finally, formatting patches should not be mixed with code patches.
I know you're new to trunk, but perhaps you should read over the rules first.
I appreciate your patches, but you have a bit of a cowboy attitude with your commits, which is bound to hurt someone in the end.
On 23-Aug-08, at 9:30 AM, sginsberg@svn.reactos.org wrote:
Author: sginsberg Date: Sat Aug 23 11:30:14 2008 New Revision: 35565
URL: http://svn.reactos.org/svn/reactos?rev=35565&view=rev Log:
- In IoAcquire/ReleaseCancelSpinLock, use the queued
"IopCancelSpinLock" instead of a ros-specific "CancelSpinLock" standard spinlock
- Misc fixes
Modified: trunk/reactos/ntoskrnl/io/iomgr/error.c trunk/reactos/ntoskrnl/io/iomgr/iofunc.c trunk/reactos/ntoskrnl/io/iomgr/iomgr.c trunk/reactos/ntoskrnl/io/iomgr/irp.c trunk/reactos/ntoskrnl/io/iomgr/util.c
Modified: trunk/reactos/ntoskrnl/io/iomgr/error.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/error.c?r... = = = = = = = = ====================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/error.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/iomgr/error.c [iso-8859-1] Sat Aug 23 11:30:14 2008 @@ -122,7 +122,7 @@ NULL); if (NT_SUCCESS(Status)) {
/* Remmeber we're connected */
}/* Remember we're connected */ IopLogPortConnected = TRUE; return TRUE;@@ -583,7 +583,7 @@ KeAcquireSpinLock(&IopLogListLock, &Irql); InsertHeadList(&IopErrorLogListHead, &LogEntry->ListEntry);
- /* Check if the worker is runnign */
- /* Check if the worker is running */ if (!IopLogWorkerRunning) {
#if 0 @@ -648,7 +648,7 @@ IN PKTHREAD Thread) { UNIMPLEMENTED;
- return(FALSE);
- return FALSE;
}
/* @@ -659,14 +659,12 @@ IoSetThreadHardErrorMode(IN BOOLEAN HardErrorEnabled) { PETHREAD Thread = PsGetCurrentThread();
- BOOLEAN Old;
BOOLEAN OldMode;
/* Get the current value */
- Old = !Thread->HardErrorsAreDisabled;
OldMode = !Thread->HardErrorsAreDisabled;
/* Set the new one and return the old */ Thread->HardErrorsAreDisabled = !HardErrorEnabled;
- return Old;
-}
-/* EOF */
- return OldMode;
+}
Modified: trunk/reactos/ntoskrnl/io/iomgr/iofunc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/iofunc.c?... = = = = = = = = ====================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/iofunc.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/iomgr/iofunc.c [iso-8859-1] Sat Aug 23 11:30:14 2008 @@ -682,7 +682,7 @@ StackPtr->FileObject = FileObject;
/* Call the Driver */
- return IofCallDriver(DeviceObject, Irp);
- return IoCallDriver(DeviceObject, Irp);
}
/* @@ -732,7 +732,7 @@ StackPtr->FileObject = FileObject;
/* Call the Driver */
- return IofCallDriver(DeviceObject, Irp);
- return IoCallDriver(DeviceObject, Irp);
}
/* @@ -776,7 +776,7 @@ }
/*
- @unimplemented
- @implemented
*/ NTSTATUS NTAPI @@ -2045,7 +2045,7 @@ CapturedByteOffset = FileObject->CurrentByteOffset; }
/* Rememer we are sync */
} else if (!(ByteOffset) &&/* Remember we are sync */ Synchronous = TRUE;@@ -2904,7 +2904,7 @@ CapturedByteOffset = FileObject->CurrentByteOffset; }
/* Rememer we are sync */
} else if (!(ByteOffset) &&/* Remember we are sync */ Synchronous = TRUE;Modified: trunk/reactos/ntoskrnl/io/iomgr/iomgr.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/iomgr.c?r... = = = = = = = = ====================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/iomgr.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/iomgr/iomgr.c [iso-8859-1] Sat Aug 23 11:30:14 2008 @@ -68,7 +68,6 @@ extern LIST_ENTRY IopTimerQueueHead; extern KDPC IopTimerDpc; extern KTIMER IopTimer; -extern KSPIN_LOCK CancelSpinLock; extern KSPIN_LOCK IoVpbLock; extern KSPIN_LOCK IoStatisticsLock; extern KSPIN_LOCK DriverReinitListLock; @@ -463,7 +462,6 @@ InitializeListHead(&LastChanceShutdownListHead); InitializeListHead(&FsChangeNotifyListHead); InitializeListHead(&IopErrorLogListHead);
- KeInitializeSpinLock(&CancelSpinLock); KeInitializeSpinLock(&IoVpbLock); KeInitializeSpinLock(&IoStatisticsLock); KeInitializeSpinLock(&DriverReinitListLock);
Modified: trunk/reactos/ntoskrnl/io/iomgr/irp.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/irp.c?rev... = = = = = = = = ====================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/irp.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/iomgr/irp.c [iso-8859-1] Sat Aug 23 11:30:14 2008 @@ -1,8 +1,7 @@
/*
- PROJECT: ReactOS Kernel
- LICENSE: GPL - See COPYING in the top level directory
- FILE: ntoskrnl/io/irp.c
- FILE: ntoskrnl/io/iomgr/irp.c
- PURPOSE: IRP Handling Functions
- PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
Gunnar Dalsnes@@ -627,7 +626,7 @@
/* Allocate IRP */ Irp = IoAllocateIrp(DeviceObject->StackSize, FALSE);
- if (!Irp) return Irp;
if (!Irp) return NULL;
/* Get the Stack */ StackPtr = IoGetNextIrpStackLocation(Irp);
@@ -731,7 +730,7 @@ Irp->UserIosb = IoStatusBlock; Irp->Tail.Overlay.Thread = PsGetCurrentThread();
- /* Set the Status Block after all is done */
- /* Return the IRP */ IOTRACE(IO_IRP_DEBUG, "%s - Built IRP %p with Major, Buffer, DO %lx %p %p\n", __FUNCTION__,
@@ -763,7 +762,7 @@
/* Allocate IRP */ Irp = IoAllocateIrp(DeviceObject->StackSize, FALSE);
- if (!Irp) return Irp;
if (!Irp) return NULL;
/* Get the Stack */ StackPtr = IoGetNextIrpStackLocation(Irp);
@@ -857,6 +856,7 @@ } else {
/* Clear the flags */ Irp->Flags = 0; }@@ -1058,7 +1058,12 @@ * Don't stay here forever if some broken driver doesn't complete * the IRP. */
if (!(Retries--)) IopRemoveThreadIrp();
if (!(Retries--)){/* Print out a message and remove the IRP */DPRINT1("Broken driver did not complete!\n");IopRemoveThreadIrp();} /* Raise the IRQL Again */ KeRaiseIrql(APC_LEVEL, &OldIrql);@@ -1076,7 +1081,7 @@ IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) {
- /* Call fast call */
- /* Call fastcall */ return IofCallDriver(DeviceObject, Irp);
}
@@ -1112,7 +1117,7 @@ IN PIRP Irp) { PDRIVER_OBJECT DriverObject;
- PIO_STACK_LOCATION Param;
PIO_STACK_LOCATION StackPtr;
/* Get the Driver Object */ DriverObject = DeviceObject->DriverObject;
@@ -1126,15 +1131,15 @@ }
/* Now update the stack location */
- Param = IoGetNextIrpStackLocation(Irp);
- Irp->Tail.Overlay.CurrentStackLocation = Param;
StackPtr = IoGetNextIrpStackLocation(Irp);
Irp->Tail.Overlay.CurrentStackLocation = StackPtr;
/* Get the Device Object */
- Param->DeviceObject = DeviceObject;
StackPtr->DeviceObject = DeviceObject;
/* Call it */
- return DriverObject->MajorFunction[Param->MajorFunction]
(DeviceObject,
Irp);
- return DriverObject->MajorFunction[StackPtr->MajorFunction]
(DeviceObject,
Irp);}
FORCEINLINE @@ -1417,10 +1422,9 @@
NTSTATUS NTAPI -IopSynchronousCompletion(
- IN PDEVICE_OBJECT DeviceObject,
- IN PIRP Irp,
- IN PVOID Context)
+IopSynchronousCompletion(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,IN PVOID Context){ if (Irp->PendingReturned) KeSetEvent((PKEVENT)Context, IO_NO_INCREMENT, FALSE); @@ -1464,6 +1468,7 @@ KeWaitForSingleObject(&Event, Suspended, KernelMode, FALSE, NULL); }
- /* Return success */ return TRUE;
}
@@ -1550,10 +1555,12 @@ /*
- @implemented
*/ -PEPROCESS NTAPI +PEPROCESS +NTAPI IoGetRequestorProcess(IN PIRP Irp) {
- return(Irp->Tail.Overlay.Thread->ThreadsProcess);
- /* Return the requestor process */
- return Irp->Tail.Overlay.Thread->ThreadsProcess;
}
/* @@ -1563,6 +1570,7 @@ NTAPI IoGetRequestorProcessId(IN PIRP Irp) {
- /* Return the requestor process' id */ return (ULONG)(IoGetRequestorProcess(Irp)->UniqueProcessId);
}
@@ -1586,6 +1594,7 @@ NTAPI IoGetTopLevelIrp(VOID) {
- /* Return the IRP */ return (PIRP)PsGetCurrentThread()->TopLevelIrp;
}
@@ -1736,5 +1745,3 @@ /* Set the IRP */ PsGetCurrentThread()->TopLevelIrp = (ULONG)Irp; }
-/* EOF */
Modified: trunk/reactos/ntoskrnl/io/iomgr/util.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/util.c?re... = = = = = = = = ====================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/util.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/iomgr/util.c [iso-8859-1] Sat Aug 23 11:30:14 2008 @@ -1,9 +1,11 @@ /*
- PROJECT: ReactOS Kernel
- LICENSE: GPL - See COPYING in the top level directory
- FILE: ntoskrnl/io/util.c
- FILE: ntoskrnl/io/iomgr/util.c
- PURPOSE: I/O Utility Functions
- PROGRAMMERS: <UNKNOWN>
- PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
Aleksey Bragin (aleksey@reactos.org)
Daniel Zimmerman (netzimme@aim.com)*/
/* INCLUDES *****************************************************************/ @@ -17,10 +19,6 @@ RtlpGetStackLimits(PULONG_PTR StackBase, PULONG_PTR StackLimit);
-/* DATA **********************************************************************/
-KSPIN_LOCK CancelSpinLock;
/* FUNCTIONS *****************************************************************/
/* @@ -28,10 +26,10 @@ */ VOID NTAPI -IoAcquireCancelSpinLock(PKIRQL Irql) +IoAcquireCancelSpinLock(OUT PKIRQL Irql) { /* Just acquire the internal lock */
- KeAcquireSpinLock(&CancelSpinLock,Irql);
- *Irql = KeAcquireQueuedSpinLock(LockQueueIoCancelLock);
}
/* @@ -113,6 +111,7 @@ NTAPI IoGetCurrentProcess(VOID) {
- /* Return the current thread's process */ return (PEPROCESS)PsGetCurrentThread()->Tcb.ApcState.Process;
}
@@ -121,10 +120,10 @@ */ VOID NTAPI -IoReleaseCancelSpinLock(KIRQL Irql) +IoReleaseCancelSpinLock(IN KIRQL Irql) { /* Release the internal lock */
- KeReleaseSpinLock(&CancelSpinLock,Irql);
- KeReleaseQueuedSpinLock(LockQueueIoCancelLock, Irql);
}
/* @@ -315,4 +314,3 @@ UNIMPLEMENTED; return STATUS_NOT_IMPLEMENTED; } -/* EOF */
Best regards, Alex Ionescu