Author: sginsberg Date: Wed Feb 22 21:18:56 2012 New Revision: 55815
URL: http://svn.reactos.org/svn/reactos?rev=55815&view=rev Log: [NTOSKRNL] Some misc fixes to make kernel compile warning-free with /W3. Also fix a bug that completely broke the ProcessWx86Information case for NtQueryInformationProcess by missing to reference/dereference and acquiring the specified process' EPROCESS.
Modified: trunk/reactos/ntoskrnl/io/iomgr/deviface.c trunk/reactos/ntoskrnl/io/iomgr/volume.c trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c trunk/reactos/ntoskrnl/mm/balance.c trunk/reactos/ntoskrnl/mm/i386/page.c trunk/reactos/ntoskrnl/mm/mminit.c trunk/reactos/ntoskrnl/ps/query.c
Modified: trunk/reactos/ntoskrnl/io/iomgr/deviface.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/deviface.... ============================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/deviface.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/iomgr/deviface.c [iso-8859-1] Wed Feb 22 21:18:56 2012 @@ -737,7 +737,9 @@ { PWSTR NewBuffer; ReturnBuffer.MaximumLength = (USHORT)max(ReturnBuffer.MaximumLength * 2, - ReturnBuffer.Length + KeyName.Length + 2 * sizeof(WCHAR)); + (USHORT)(ReturnBuffer.Length + + KeyName.Length + + 2 * sizeof(WCHAR))); NewBuffer = ExAllocatePool(PagedPool, ReturnBuffer.MaximumLength); if (!NewBuffer) {
Modified: trunk/reactos/ntoskrnl/io/iomgr/volume.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/volume.c?... ============================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/volume.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/iomgr/volume.c [iso-8859-1] Wed Feb 22 21:18:56 2012 @@ -1409,8 +1409,8 @@ }
/* Set output string */ - DosName->Length = VolumePathPtr->MultiSzLength; - DosName->MaximumLength = VolumePathPtr->MultiSzLength + sizeof(UNICODE_NULL); + DosName->Length = (USHORT)VolumePathPtr->MultiSzLength; + DosName->MaximumLength = (USHORT)VolumePathPtr->MultiSzLength + sizeof(UNICODE_NULL); /* Our MOUNTMGR_VOLUME_PATHS will be used as output buffer */ DosName->Buffer = (PWSTR)VolumePathPtr; /* Move name at the begin, RtlMoveMemory is OK with overlapping */
Modified: trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c... ============================================================================== --- trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c [iso-8859-1] Wed Feb 22 21:18:56 2012 @@ -199,7 +199,7 @@
while (*IdBuffer) { - ULONG StringLength = (ULONG)wcslen(IdBuffer) + 1, Index; + USHORT StringLength = (USHORT)wcslen(IdBuffer) + 1, Index;
IopFixupDeviceId(IdBuffer);
@@ -247,7 +247,7 @@ ChildIdNameU.Buffer = IdBuffer; ChildIdNameU.MaximumLength = ChildIdNameU.Length = (StringLength - 1) * sizeof(WCHAR); RegKeyNameU.Buffer = BasicInfo->Name; - RegKeyNameU.MaximumLength = RegKeyNameU.Length = BasicInfo->NameLength; + RegKeyNameU.MaximumLength = RegKeyNameU.Length = (USHORT)BasicInfo->NameLength;
if (RtlEqualUnicodeString(&ChildIdNameU, &RegKeyNameU, TRUE)) {
Modified: trunk/reactos/ntoskrnl/mm/balance.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/balance.c?rev=5... ============================================================================== --- trunk/reactos/ntoskrnl/mm/balance.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/mm/balance.c [iso-8859-1] Wed Feb 22 21:18:56 2012 @@ -138,7 +138,7 @@ NTAPI MiTrimMemoryConsumer(ULONG Consumer, ULONG InitialTarget) { - LONG Target = InitialTarget; + ULONG Target = InitialTarget; ULONG NrFreedPages = 0; NTSTATUS Status;
Modified: trunk/reactos/ntoskrnl/mm/i386/page.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/i386/page.c?rev... ============================================================================== --- trunk/reactos/ntoskrnl/mm/i386/page.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/mm/i386/page.c [iso-8859-1] Wed Feb 22 21:18:56 2012 @@ -217,7 +217,7 @@ KeMemoryBarrierWithoutFence();
/* Return, if we had success */ - return (BOOLEAN)SystemPde.u.Hard.Valid; + return SystemPde.u.Hard.Valid != 0; }
NTSTATUS @@ -549,7 +549,7 @@ { if(!MiSynchronizeSystemPde(PointerPde)) return FALSE; - return PointerPte->u.Hard.Valid; + return (BOOLEAN)PointerPte->u.Hard.Valid; } return FALSE; }
Modified: trunk/reactos/ntoskrnl/mm/mminit.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/mminit.c?rev=55... ============================================================================== --- trunk/reactos/ntoskrnl/mm/mminit.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/mm/mminit.c [iso-8859-1] Wed Feb 22 21:18:56 2012 @@ -262,7 +262,7 @@ DPRINT1(" 0x%p - 0x%p\t%s\n", MmNonPagedPoolStart, (ULONG_PTR)MmNonPagedPoolStart + MmSizeOfNonPagedPoolInBytes, - "ARM³ Non Paged Pool"); + "ARM3 Non Paged Pool"); DPRINT1(" 0x%p - 0x%p\t%s\n", MiSystemViewStart, (ULONG_PTR)MiSystemViewStart + MmSystemViewSize, @@ -283,7 +283,7 @@ DPRINT1(" 0x%p - 0x%p\t%s\n", MmPagedPoolStart, (ULONG_PTR)MmPagedPoolStart + MmSizeOfPagedPoolInBytes, - "ARM³ Paged Pool"); + "ARM3 Paged Pool"); DPRINT1(" 0x%p - 0x%p\t%s\n", MmNonPagedSystemStart, MmNonPagedPoolExpansionStart, "System PTE Space");
Modified: trunk/reactos/ntoskrnl/ps/query.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/query.c?rev=558... ============================================================================== --- trunk/reactos/ntoskrnl/ps/query.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ps/query.c [iso-8859-1] Wed Feb 22 21:18:56 2012 @@ -855,7 +855,7 @@ /* Protect write in SEH */ _SEH2_TRY { - /* Return the count of handles */ + /* Return debug port's handle */ *(PHANDLE)ProcessInformation = DebugPort; } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) @@ -887,7 +887,7 @@ /* Protect write in SEH */ _SEH2_TRY { - /* Return the count of handles */ + /* Return FALSE -- we don't support this */ *(PULONG)ProcessInformation = FALSE; } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) @@ -908,8 +908,14 @@ break; }
- /* Indicate success */ - Status = STATUS_SUCCESS; + /* Reference the process */ + Status = ObReferenceObjectByHandle(ProcessHandle, + PROCESS_QUERY_INFORMATION, + PsProcessType, + PreviousMode, + (PVOID*)&Process, + NULL); + if (!NT_SUCCESS(Status)) break;
/* Protect write in SEH */ _SEH2_TRY @@ -923,6 +929,9 @@ Status = _SEH2_GetExceptionCode(); } _SEH2_END; + + /* Dereference the process */ + ObDereferenceObject(Process); break;
case ProcessWow64Information: @@ -1067,8 +1076,11 @@ PVOID ExceptionPort; ULONG Break; KAFFINITY ValidAffinity, Affinity = 0; - ULONG DefaultHardErrorMode = 0, BasePriority = 0, MemoryPriority = 0; - ULONG DisableBoost = 0, DebugFlags = 0, EnableFixup = 0, Boost = 0; + KPRIORITY BasePriority = 0; + UCHAR MemoryPriority = 0; + BOOLEAN DisableBoost = 0; + ULONG DefaultHardErrorMode = 0; + ULONG DebugFlags = 0, EnableFixup = 0, Boost = 0; ULONG NoExecute = 0, VdmPower = 0; BOOLEAN HasPrivilege; PLIST_ENTRY Next; @@ -1448,7 +1460,7 @@ /* Enter SEH for direct buffer read */ _SEH2_TRY { - BasePriority = *(PULONG)ProcessInformation; + BasePriority = *(KPRIORITY*)ProcessInformation; } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { @@ -1674,7 +1686,7 @@ /* Enter SEH for direct buffer read */ _SEH2_TRY { - DisableBoost = *(PULONG)ProcessInformation; + DisableBoost = *(PBOOLEAN)ProcessInformation; } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { @@ -1814,6 +1826,8 @@ /* Only supported on x86 */ #if defined (_X86_) Ke386SetIOPL(); +#else + Status = STATUS_NOT_IMPLEMENTED; #endif /* Done */ break;