From d1f13dc28b39664f18ded1351a37dde5b82b7de6 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Fri, 27 Nov 2015 07:49:31 +0000 Subject: [PATCH] [NTOS:FSRTL] - FILE_LOCK_INFO::ProcessId is really an EPROCESS pointer, not a process id svn path=/trunk/; revision=70144 --- reactos/ntoskrnl/fsrtl/filelock.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/reactos/ntoskrnl/fsrtl/filelock.c b/reactos/ntoskrnl/fsrtl/filelock.c index 64d7f8eed99..d42e35b781a 100644 --- a/reactos/ntoskrnl/fsrtl/filelock.c +++ b/reactos/ntoskrnl/fsrtl/filelock.c @@ -418,7 +418,7 @@ FsRtlPrivateLock(IN PFILE_LOCK FileLock, ToInsert.Exclusive.FileLock.FileObject = FileObject; ToInsert.Exclusive.FileLock.StartingByte = *FileOffset; ToInsert.Exclusive.FileLock.EndingByte.QuadPart = FileOffset->QuadPart + Length->QuadPart; - ToInsert.Exclusive.FileLock.ProcessId = Process->UniqueProcessId; + ToInsert.Exclusive.FileLock.ProcessId = Process; ToInsert.Exclusive.FileLock.Key = Key; ToInsert.Exclusive.FileLock.ExclusiveLock = ExclusiveLock; @@ -643,7 +643,7 @@ FsRtlPrivateLock(IN PFILE_LOCK FileLock, NewSharedRange->Start = *FileOffset; NewSharedRange->End.QuadPart = FileOffset->QuadPart + Length->QuadPart; NewSharedRange->Key = Key; - NewSharedRange->ProcessId = Process->UniqueProcessId; + NewSharedRange->ProcessId = Process; InsertTailList(&LockInfo->SharedLocks, &NewSharedRange->Entry); } @@ -739,7 +739,7 @@ FsRtlCheckLockForWriteAccess(IN PFILE_LOCK FileLock, DPRINT("CheckLockForWriteAccess(%wZ) => TRUE\n", &IoStack->FileObject->FileName); return TRUE; } - Result = Process->UniqueProcessId == Found->Exclusive.FileLock.ProcessId; + Result = Process == Found->Exclusive.FileLock.ProcessId; DPRINT("CheckLockForWriteAccess(%wZ) => %s\n", &IoStack->FileObject->FileName, Result ? "TRUE" : "FALSE"); return Result; } @@ -775,7 +775,7 @@ FsRtlFastCheckLockForRead(IN PFILE_LOCK FileLock, &ToFind); if (!Found || !Found->Exclusive.FileLock.ExclusiveLock) return TRUE; return Found->Exclusive.FileLock.Key == Key && - Found->Exclusive.FileLock.ProcessId == EProcess->UniqueProcessId; + Found->Exclusive.FileLock.ProcessId == EProcess; } /* @@ -816,7 +816,7 @@ FsRtlFastCheckLockForWrite(IN PFILE_LOCK FileLock, return TRUE; } Result = Found->Exclusive.FileLock.Key == Key && - Found->Exclusive.FileLock.ProcessId == EProcess->UniqueProcessId; + Found->Exclusive.FileLock.ProcessId == EProcess; DPRINT("CheckForWrite(%wZ) => %s\n", &FileObject->FileName, Result ? "TRUE" : "FALSE"); return Result; } @@ -879,7 +879,7 @@ FsRtlFastUnlockSingle(IN PFILE_LOCK FileLock, if (Entry->Exclusive.FileLock.ExclusiveLock) { if (Entry->Exclusive.FileLock.Key != Key || - Entry->Exclusive.FileLock.ProcessId != Process->UniqueProcessId || + Entry->Exclusive.FileLock.ProcessId != Process || Entry->Exclusive.FileLock.StartingByte.QuadPart != FileOffset->QuadPart || Entry->Exclusive.FileLock.EndingByte.QuadPart != FileOffset->QuadPart + Length->QuadPart) @@ -907,7 +907,7 @@ FsRtlFastUnlockSingle(IN PFILE_LOCK FileLock, if (SharedRange->Start.QuadPart == FileOffset->QuadPart && SharedRange->End.QuadPart == FileOffset->QuadPart + Length->QuadPart && SharedRange->Key == Key && - SharedRange->ProcessId == Process->UniqueProcessId) + SharedRange->ProcessId == Process) { FoundShared = TRUE; DPRINT("Found shared element to delete %wZ Start %08x%08x End %08x%08x Key %x\n", @@ -1044,7 +1044,7 @@ FsRtlFastUnlockAll(IN PFILE_LOCK FileLock, PLOCK_SHARED_RANGE Range = CONTAINING_RECORD(ListEntry, LOCK_SHARED_RANGE, Entry); Length.QuadPart = Range->End.QuadPart - Range->Start.QuadPart; ListEntry = ListEntry->Flink; - if (Range->ProcessId != Process->UniqueProcessId) + if (Range->ProcessId != Process) continue; FsRtlFastUnlockSingle (FileLock, @@ -1105,7 +1105,7 @@ FsRtlFastUnlockAllByKey(IN PFILE_LOCK FileLock, LARGE_INTEGER Length; Length.QuadPart = Range->End.QuadPart - Range->Start.QuadPart; ListEntry = ListEntry->Flink; - if (Range->ProcessId != Process->UniqueProcessId || + if (Range->ProcessId != Process || Range->Key != Key) continue; FsRtlFastUnlockSingle @@ -1128,7 +1128,7 @@ FsRtlFastUnlockAllByKey(IN PFILE_LOCK FileLock, Entry->Exclusive.FileLock.EndingByte.QuadPart - Entry->Exclusive.FileLock.StartingByte.QuadPart; if (Entry->Exclusive.FileLock.Key == Key && - Entry->Exclusive.FileLock.ProcessId == Process->UniqueProcessId) + Entry->Exclusive.FileLock.ProcessId == Process) { FsRtlFastUnlockSingle (FileLock,