- Removed the spinlock I added in my last patch, it's wrong!

svn path=/trunk/; revision=8579
This commit is contained in:
Filip Navara 2004-03-07 21:09:08 +00:00
parent 11897d4d87
commit c0b4d77eb9

View file

@ -1,4 +1,4 @@
/* $Id: process.c,v 1.125 2004/03/07 20:31:53 navaraf Exp $ /* $Id: process.c,v 1.126 2004/03/07 21:09:08 navaraf Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -55,8 +55,6 @@ static GENERIC_MAPPING PiProcessMapping = {PROCESS_READ,
#define MAX_PROCESS_NOTIFY_ROUTINE_COUNT 8 #define MAX_PROCESS_NOTIFY_ROUTINE_COUNT 8
#define MAX_LOAD_IMAGE_NOTIFY_ROUTINE_COUNT 8 #define MAX_LOAD_IMAGE_NOTIFY_ROUTINE_COUNT 8
static KSPIN_LOCK PsNotifyListLock;
static PCREATE_PROCESS_NOTIFY_ROUTINE static PCREATE_PROCESS_NOTIFY_ROUTINE
PiProcessNotifyRoutine[MAX_PROCESS_NOTIFY_ROUTINE_COUNT]; PiProcessNotifyRoutine[MAX_PROCESS_NOTIFY_ROUTINE_COUNT];
static PLOAD_IMAGE_NOTIFY_ROUTINE static PLOAD_IMAGE_NOTIFY_ROUTINE
@ -274,7 +272,6 @@ PsInitProcessManagment(VOID)
InitializeListHead(&PsProcessListHead); InitializeListHead(&PsProcessListHead);
KeInitializeSpinLock(&PsProcessListLock); KeInitializeSpinLock(&PsProcessListLock);
KeInitializeSpinLock(&PsNotifyListLock);
RtlZeroMemory(PiProcessNotifyRoutine, sizeof(PiProcessNotifyRoutine)); RtlZeroMemory(PiProcessNotifyRoutine, sizeof(PiProcessNotifyRoutine));
RtlZeroMemory(PiLoadImageNotifyRoutine, sizeof(PiLoadImageNotifyRoutine)); RtlZeroMemory(PiLoadImageNotifyRoutine, sizeof(PiLoadImageNotifyRoutine));
@ -1584,13 +1581,10 @@ PspRunCreateProcessNotifyRoutines
ULONG i; ULONG i;
HANDLE ProcessId = (HANDLE)CurrentProcess->UniqueProcessId; HANDLE ProcessId = (HANDLE)CurrentProcess->UniqueProcessId;
HANDLE ParentId = CurrentProcess->InheritedFromUniqueProcessId; HANDLE ParentId = CurrentProcess->InheritedFromUniqueProcessId;
KIRQL oldIrql;
KeAcquireSpinLock(&PsNotifyListLock, &oldIrql);
for(i = 0; i < MAX_PROCESS_NOTIFY_ROUTINE_COUNT; ++ i) for(i = 0; i < MAX_PROCESS_NOTIFY_ROUTINE_COUNT; ++ i)
if(PiProcessNotifyRoutine[i]) if(PiProcessNotifyRoutine[i])
PiProcessNotifyRoutine[i](ParentId, ProcessId, Create); PiProcessNotifyRoutine[i](ParentId, ProcessId, Create);
KeReleaseSpinLock(&PsNotifyListLock, oldIrql);
} }
/* /*
@ -1601,9 +1595,7 @@ PsSetCreateProcessNotifyRoutine(IN PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
IN BOOLEAN Remove) IN BOOLEAN Remove)
{ {
ULONG i; ULONG i;
KIRQL oldIrql;
KeAcquireSpinLock(&PsNotifyListLock, &oldIrql);
if (Remove) if (Remove)
{ {
for(i=0;i<MAX_PROCESS_NOTIFY_ROUTINE_COUNT;i++) for(i=0;i<MAX_PROCESS_NOTIFY_ROUTINE_COUNT;i++)
@ -1615,7 +1607,6 @@ PsSetCreateProcessNotifyRoutine(IN PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
} }
} }
KeReleaseSpinLock(&PsNotifyListLock, oldIrql);
return(STATUS_SUCCESS); return(STATUS_SUCCESS);
} }
@ -1629,8 +1620,6 @@ PsSetCreateProcessNotifyRoutine(IN PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
} }
} }
KeReleaseSpinLock(&PsNotifyListLock, oldIrql);
if (i == MAX_PROCESS_NOTIFY_ROUTINE_COUNT) if (i == MAX_PROCESS_NOTIFY_ROUTINE_COUNT)
{ {
return STATUS_INSUFFICIENT_RESOURCES; return STATUS_INSUFFICIENT_RESOURCES;
@ -1646,13 +1635,10 @@ PspRunLoadImageNotifyRoutines(
PIMAGE_INFO ImageInfo) PIMAGE_INFO ImageInfo)
{ {
ULONG i; ULONG i;
KIRQL oldIrql;
KeAcquireSpinLock(&PsNotifyListLock, &oldIrql);
for (i = 0; i < MAX_PROCESS_NOTIFY_ROUTINE_COUNT; ++ i) for (i = 0; i < MAX_PROCESS_NOTIFY_ROUTINE_COUNT; ++ i)
if (PiLoadImageNotifyRoutine[i]) if (PiLoadImageNotifyRoutine[i])
PiLoadImageNotifyRoutine[i](FullImageName, ProcessId, ImageInfo); PiLoadImageNotifyRoutine[i](FullImageName, ProcessId, ImageInfo);
KeReleaseSpinLock(&PsNotifyListLock, oldIrql);
} }
/* /*
@ -1662,9 +1648,7 @@ NTSTATUS STDCALL
PsSetLoadImageNotifyRoutine(IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine) PsSetLoadImageNotifyRoutine(IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine)
{ {
ULONG i; ULONG i;
KIRQL oldIrql;
KeAcquireSpinLock(&PsNotifyListLock, &oldIrql);
for (i = 0; i < MAX_LOAD_IMAGE_NOTIFY_ROUTINE_COUNT; i++) for (i = 0; i < MAX_LOAD_IMAGE_NOTIFY_ROUTINE_COUNT; i++)
{ {
if (PiLoadImageNotifyRoutine[i] == NULL) if (PiLoadImageNotifyRoutine[i] == NULL)
@ -1673,7 +1657,6 @@ PsSetLoadImageNotifyRoutine(IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine)
break; break;
} }
} }
KeReleaseSpinLock(&PsNotifyListLock, oldIrql);
if (i == MAX_PROCESS_NOTIFY_ROUTINE_COUNT) if (i == MAX_PROCESS_NOTIFY_ROUTINE_COUNT)
{ {