Author: sginsberg Date: Wed Sep 24 10:27:54 2008 New Revision: 36484
URL: http://svn.reactos.org/svn/reactos?rev=36484&view=rev Log: - 64 bit fixes for Mm routines: Use SIZE_T and ULONG_PTR where appropriate - Note: MSDN is wrong about Nt/ZwAllocateVirtualMemory's ZeroBits. It really is a ULONG_PTR.
Modified: trunk/reactos/include/ddk/ntifs.h trunk/reactos/include/ndk/mmfuncs.h trunk/reactos/ntoskrnl/mm/anonmem.c trunk/reactos/ntoskrnl/mm/section.c trunk/reactos/ntoskrnl/mm/virtual.c
Modified: trunk/reactos/include/ddk/ntifs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/ntifs.h?rev=364... ============================================================================== --- trunk/reactos/include/ddk/ntifs.h [iso-8859-1] (original) +++ trunk/reactos/include/ddk/ntifs.h [iso-8859-1] Wed Sep 24 10:27:54 2008 @@ -4870,7 +4870,7 @@ ZwAllocateVirtualMemory ( IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, - IN ULONG ZeroBits, + IN ULONG_PTR ZeroBits, IN OUT PSIZE_T RegionSize, IN ULONG AllocationType, IN ULONG Protect
Modified: trunk/reactos/include/ndk/mmfuncs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/mmfuncs.h?rev=3... ============================================================================== --- trunk/reactos/include/ndk/mmfuncs.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/mmfuncs.h [iso-8859-1] Wed Sep 24 10:27:54 2008 @@ -48,8 +48,8 @@ IN PVOID SectionObject, IN PEPROCESS Process, IN OUT PVOID *BaseAddress, - IN ULONG ZeroBits, - IN ULONG CommitSize, + IN ULONG_PTR ZeroBits, + IN SIZE_T CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, @@ -81,8 +81,8 @@ NTAPI NtAllocateUserPhysicalPages( IN HANDLE ProcessHandle, - IN OUT PULONG NumberOfPages, - IN OUT PULONG UserPfnArray + IN OUT PULONG_PTR NumberOfPages, + IN OUT PULONG_PTR UserPfnArray );
NTSYSCALLAPI @@ -91,7 +91,7 @@ NtAllocateVirtualMemory( IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, - IN ULONG ZeroBits, + IN ULONG_PTR ZeroBits, IN OUT PSIZE_T RegionSize, IN ULONG AllocationType, IN ULONG Protect @@ -142,8 +142,8 @@ NTAPI NtFreeUserPhysicalPages( IN HANDLE ProcessHandle, - IN OUT PULONG NumberOfPages, - IN OUT PULONG UserPfnArray + IN OUT PULONG_PTR NumberOfPages, + IN OUT PULONG_PTR UserPfnArray );
NTSYSCALLAPI @@ -163,9 +163,9 @@ IN HANDLE ProcessHandle, IN ULONG Flags, IN PVOID BaseAddress, - IN ULONG RegionSize, + IN SIZE_T RegionSize, IN PVOID *UserAddressArray, - OUT PULONG EntriesInUserAddressArray, + OUT PULONG_PTR EntriesInUserAddressArray, OUT PULONG Granularity );
@@ -175,24 +175,24 @@ NtLockVirtualMemory( HANDLE ProcessHandle, PVOID BaseAddress, - ULONG NumberOfBytesToLock, - PULONG NumberOfBytesLocked + SIZE_T NumberOfBytesToLock, + PSIZE_T NumberOfBytesLocked );
NTSTATUS NTAPI NtMapUserPhysicalPages( IN PVOID VirtualAddresses, - IN ULONG NumberOfPages, - IN OUT PULONG UserPfnArray + IN ULONG_PTR NumberOfPages, + IN OUT PULONG_PTR UserPfnArray );
NTSTATUS NTAPI NtMapUserPhysicalPagesScatter( IN PVOID *VirtualAddresses, - IN ULONG NumberOfPages, - IN OUT PULONG UserPfnArray + IN ULONG_PTR NumberOfPages, + IN OUT PULONG_PTR UserPfnArray );
NTSYSCALLAPI @@ -202,8 +202,8 @@ IN HANDLE SectionHandle, IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, - IN ULONG ZeroBits, - IN ULONG CommitSize, + IN ULONG_PTR ZeroBits, + IN SIZE_T CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, @@ -226,7 +226,7 @@ NtProtectVirtualMemory( IN HANDLE ProcessHandle, IN PVOID *BaseAddress, - IN ULONG *NumberOfBytesToProtect, + IN SIZE_T *NumberOfBytesToProtect, IN ULONG NewAccessProtection, OUT PULONG OldAccessProtection ); @@ -316,7 +316,7 @@ ZwAllocateVirtualMemory( IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, - IN ULONG ZeroBits, + IN ULONG_PTR ZeroBits, IN OUT PSIZE_T RegionSize, IN ULONG AllocationType, IN ULONG Protect @@ -380,8 +380,8 @@ IN HANDLE SectionHandle, IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, - IN ULONG ZeroBits, - IN ULONG CommitSize, + IN ULONG_PTR ZeroBits, + IN SIZE_T CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, @@ -404,7 +404,7 @@ ZwProtectVirtualMemory( IN HANDLE ProcessHandle, IN PVOID *BaseAddress, - IN ULONG *NumberOfBytesToProtect, + IN SIZE_T *NumberOfBytesToProtect, IN ULONG NewAccessProtection, OUT PULONG OldAccessProtection ); @@ -468,8 +468,8 @@ IN HANDLE ProcessHandle, IN PVOID BaseAddress, IN PVOID Buffer, - IN ULONG NumberOfBytesToWrite, - OUT PULONG NumberOfBytesWritten + IN SIZE_T NumberOfBytesToWrite, + OUT PSIZE_T NumberOfBytesWritten );
#endif
Modified: trunk/reactos/ntoskrnl/mm/anonmem.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/anonmem.c?rev=3... ============================================================================== --- trunk/reactos/ntoskrnl/mm/anonmem.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/mm/anonmem.c [iso-8859-1] Wed Sep 24 10:27:54 2008 @@ -522,7 +522,7 @@ NTSTATUS STDCALL NtAllocateVirtualMemory(IN HANDLE ProcessHandle, IN OUT PVOID* UBaseAddress, - IN ULONG ZeroBits, + IN ULONG_PTR ZeroBits, IN OUT PSIZE_T URegionSize, IN ULONG AllocationType, IN ULONG Protect)
Modified: trunk/reactos/ntoskrnl/mm/section.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/section.c?rev=3... ============================================================================== --- trunk/reactos/ntoskrnl/mm/section.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/mm/section.c [iso-8859-1] Wed Sep 24 10:27:54 2008 @@ -3662,8 +3662,8 @@ NtMapViewOfSection(IN HANDLE SectionHandle, IN HANDLE ProcessHandle, IN OUT PVOID* BaseAddress OPTIONAL, - IN ULONG ZeroBits OPTIONAL, - IN ULONG CommitSize, + IN ULONG_PTR ZeroBits OPTIONAL, + IN SIZE_T CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, @@ -4482,8 +4482,8 @@ MmMapViewOfSection(IN PVOID SectionObject, IN PEPROCESS Process, IN OUT PVOID *BaseAddress, - IN ULONG ZeroBits, - IN ULONG CommitSize, + IN ULONG_PTR ZeroBits, + IN SIZE_T CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, @@ -4954,8 +4954,8 @@ NTSTATUS NTAPI NtAllocateUserPhysicalPages(IN HANDLE ProcessHandle, - IN OUT PULONG NumberOfPages, - IN OUT PULONG UserPfnArray) + IN OUT PULONG_PTR NumberOfPages, + IN OUT PULONG_PTR UserPfnArray) { UNIMPLEMENTED; return STATUS_NOT_IMPLEMENTED; @@ -4964,8 +4964,8 @@ NTSTATUS NTAPI NtMapUserPhysicalPages(IN PVOID VirtualAddresses, - IN ULONG NumberOfPages, - IN OUT PULONG UserPfnArray) + IN ULONG_PTR NumberOfPages, + IN OUT PULONG_PTR UserPfnArray) { UNIMPLEMENTED; return STATUS_NOT_IMPLEMENTED; @@ -4974,8 +4974,8 @@ NTSTATUS NTAPI NtMapUserPhysicalPagesScatter(IN PVOID *VirtualAddresses, - IN ULONG NumberOfPages, - IN OUT PULONG UserPfnArray) + IN ULONG_PTR NumberOfPages, + IN OUT PULONG_PTR UserPfnArray) { UNIMPLEMENTED; return STATUS_NOT_IMPLEMENTED; @@ -4984,8 +4984,8 @@ NTSTATUS NTAPI NtFreeUserPhysicalPages(IN HANDLE ProcessHandle, - IN OUT PULONG NumberOfPages, - IN OUT PULONG UserPfnArray) + IN OUT PULONG_PTR NumberOfPages, + IN OUT PULONG_PTR UserPfnArray) { UNIMPLEMENTED; return STATUS_NOT_IMPLEMENTED;
Modified: trunk/reactos/ntoskrnl/mm/virtual.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/virtual.c?rev=3... ============================================================================== --- trunk/reactos/ntoskrnl/mm/virtual.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/mm/virtual.c [iso-8859-1] Wed Sep 24 10:27:54 2008 @@ -63,13 +63,13 @@ IN PVOID SourceAddress, IN PEPROCESS TargetProcess, OUT PVOID TargetAddress, - IN ULONG BufferSize, + IN SIZE_T BufferSize, IN KPROCESSOR_MODE PreviousMode, - OUT PULONG ReturnSize) + OUT PSIZE_T ReturnSize) { PFN_NUMBER MdlBuffer[(sizeof(MDL) / sizeof(PFN_NUMBER)) + MI_MAPPED_COPY_PAGES + 1]; PMDL Mdl = (PMDL)MdlBuffer; - ULONG TotalSize, CurrentSize, RemainingSize; + SIZE_T TotalSize, CurrentSize, RemainingSize; volatile BOOLEAN FailedInProbe = FALSE, FailedInMapping = FALSE, FailedInMoving; BOOLEAN PagesLocked; PVOID CurrentAddress = SourceAddress, CurrentTargetAddress = TargetAddress; @@ -219,12 +219,12 @@ IN PVOID SourceAddress, IN PEPROCESS TargetProcess, OUT PVOID TargetAddress, - IN ULONG BufferSize, + IN SIZE_T BufferSize, IN KPROCESSOR_MODE PreviousMode, - OUT PULONG ReturnSize) + OUT PSIZE_T ReturnSize) { UCHAR StackBuffer[MI_POOL_COPY_BYTES]; - ULONG TotalSize, CurrentSize, RemainingSize; + SIZE_T TotalSize, CurrentSize, RemainingSize; volatile BOOLEAN FailedInProbe = FALSE, FailedInMoving, HavePoolAddress = FALSE; PVOID CurrentAddress = SourceAddress, CurrentTargetAddress = TargetAddress; PVOID PoolAddress; @@ -365,9 +365,9 @@ IN PVOID SourceAddress, IN PEPROCESS TargetProcess, OUT PVOID TargetAddress, - IN ULONG BufferSize, + IN SIZE_T BufferSize, IN KPROCESSOR_MODE PreviousMode, - OUT PULONG ReturnSize) + OUT PSIZE_T ReturnSize) { NTSTATUS Status; PEPROCESS Process = SourceProcess; @@ -419,8 +419,8 @@ IN PVOID Address, IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass, OUT PVOID VirtualMemoryInformation, - IN ULONG Length, - OUT PULONG ResultLength) + IN SIZE_T Length, + OUT PSIZE_T ResultLength) { NTSTATUS Status; PEPROCESS Process; @@ -584,7 +584,7 @@ NTSTATUS STDCALL MiProtectVirtualMemory(IN PEPROCESS Process, IN OUT PVOID *BaseAddress, - IN OUT PULONG NumberOfBytesToProtect, + IN OUT PSIZE_T NumberOfBytesToProtect, IN ULONG NewAccessProtection, OUT PULONG OldAccessProtection OPTIONAL) { @@ -678,13 +678,13 @@ NtReadVirtualMemory(IN HANDLE ProcessHandle, IN PVOID BaseAddress, OUT PVOID Buffer, - IN ULONG NumberOfBytesToRead, - OUT PULONG NumberOfBytesRead OPTIONAL) + IN SIZE_T NumberOfBytesToRead, + OUT PSIZE_T NumberOfBytesRead OPTIONAL) { KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); PEPROCESS Process; NTSTATUS Status = STATUS_SUCCESS; - ULONG BytesRead = 0; + SIZE_T BytesRead = 0; PAGED_CODE();
/* Check if we came from user mode */ @@ -704,7 +704,7 @@ _SEH_TRY { /* Probe the output value */ - if (NumberOfBytesRead) ProbeForWriteUlong(NumberOfBytesRead); + if (NumberOfBytesRead) ProbeForWriteSize_t(NumberOfBytesRead); } _SEH_HANDLE { @@ -765,8 +765,8 @@ NtWriteVirtualMemory(IN HANDLE ProcessHandle, IN PVOID BaseAddress, IN PVOID Buffer, - IN ULONG NumberOfBytesToWrite, - OUT PULONG NumberOfBytesWritten OPTIONAL) + IN SIZE_T NumberOfBytesToWrite, + OUT PSIZE_T NumberOfBytesWritten OPTIONAL) { KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); PEPROCESS Process; @@ -791,7 +791,7 @@ _SEH_TRY { /* Probe the output value */ - if (NumberOfBytesWritten) ProbeForWriteUlong(NumberOfBytesWritten); + if (NumberOfBytesWritten) ProbeForWriteSize_t(NumberOfBytesWritten); } _SEH_HANDLE { @@ -851,14 +851,14 @@ NTAPI NtProtectVirtualMemory(IN HANDLE ProcessHandle, IN OUT PVOID *UnsafeBaseAddress, - IN OUT ULONG *UnsafeNumberOfBytesToProtect, + IN OUT SIZE_T *UnsafeNumberOfBytesToProtect, IN ULONG NewAccessProtection, OUT PULONG UnsafeOldAccessProtection) { PEPROCESS Process; ULONG OldAccessProtection; PVOID BaseAddress = NULL; - ULONG NumberOfBytesToProtect = 0; + SIZE_T NumberOfBytesToProtect = 0; KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); NTSTATUS Status = STATUS_SUCCESS;
@@ -870,7 +870,7 @@ { /* Validate all outputs */ ProbeForWritePointer(UnsafeBaseAddress); - ProbeForWriteUlong(UnsafeNumberOfBytesToProtect); + ProbeForWriteSize_t(UnsafeNumberOfBytesToProtect); ProbeForWriteUlong(UnsafeOldAccessProtection);
/* Capture them */ @@ -950,11 +950,11 @@ IN PVOID Address, IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass, OUT PVOID VirtualMemoryInformation, - IN ULONG Length, - OUT PULONG UnsafeResultLength) + IN SIZE_T Length, + OUT PSIZE_T UnsafeResultLength) { NTSTATUS Status = STATUS_SUCCESS; - ULONG ResultLength = 0; + SIZE_T ResultLength = 0; KPROCESSOR_MODE PreviousMode; union { @@ -974,7 +974,7 @@ { _SEH_TRY { - ProbeForWriteUlong(UnsafeResultLength); + ProbeForWriteSize_t(UnsafeResultLength); } _SEH_HANDLE { @@ -1050,8 +1050,8 @@ NTAPI NtLockVirtualMemory(IN HANDLE ProcessHandle, IN PVOID BaseAddress, - IN ULONG NumberOfBytesToLock, - OUT PULONG NumberOfBytesLocked OPTIONAL) + IN SIZE_T NumberOfBytesToLock, + OUT PSIZE_T NumberOfBytesLocked OPTIONAL) { UNIMPLEMENTED; if (NumberOfBytesLocked) *NumberOfBytesLocked = 0; @@ -1062,8 +1062,8 @@ NTAPI NtUnlockVirtualMemory(IN HANDLE ProcessHandle, IN PVOID BaseAddress, - IN ULONG NumberOfBytesToUnlock, - OUT PULONG NumberOfBytesUnlocked OPTIONAL) + IN SIZE_T NumberOfBytesToUnlock, + OUT PSIZE_T NumberOfBytesUnlocked OPTIONAL) { UNIMPLEMENTED; if (NumberOfBytesUnlocked) *NumberOfBytesUnlocked = 0;