mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 07:46:29 +00:00
- 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. svn path=/trunk/; revision=36484
This commit is contained in:
parent
9bbb8ab1a3
commit
649b40cd13
5 changed files with 67 additions and 67 deletions
|
@ -4870,7 +4870,7 @@ NTAPI
|
||||||
ZwAllocateVirtualMemory (
|
ZwAllocateVirtualMemory (
|
||||||
IN HANDLE ProcessHandle,
|
IN HANDLE ProcessHandle,
|
||||||
IN OUT PVOID *BaseAddress,
|
IN OUT PVOID *BaseAddress,
|
||||||
IN ULONG ZeroBits,
|
IN ULONG_PTR ZeroBits,
|
||||||
IN OUT PSIZE_T RegionSize,
|
IN OUT PSIZE_T RegionSize,
|
||||||
IN ULONG AllocationType,
|
IN ULONG AllocationType,
|
||||||
IN ULONG Protect
|
IN ULONG Protect
|
||||||
|
|
|
@ -48,8 +48,8 @@ MmMapViewOfSection(
|
||||||
IN PVOID SectionObject,
|
IN PVOID SectionObject,
|
||||||
IN PEPROCESS Process,
|
IN PEPROCESS Process,
|
||||||
IN OUT PVOID *BaseAddress,
|
IN OUT PVOID *BaseAddress,
|
||||||
IN ULONG ZeroBits,
|
IN ULONG_PTR ZeroBits,
|
||||||
IN ULONG CommitSize,
|
IN SIZE_T CommitSize,
|
||||||
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
|
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
|
||||||
IN OUT PSIZE_T ViewSize,
|
IN OUT PSIZE_T ViewSize,
|
||||||
IN SECTION_INHERIT InheritDisposition,
|
IN SECTION_INHERIT InheritDisposition,
|
||||||
|
@ -81,8 +81,8 @@ NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtAllocateUserPhysicalPages(
|
NtAllocateUserPhysicalPages(
|
||||||
IN HANDLE ProcessHandle,
|
IN HANDLE ProcessHandle,
|
||||||
IN OUT PULONG NumberOfPages,
|
IN OUT PULONG_PTR NumberOfPages,
|
||||||
IN OUT PULONG UserPfnArray
|
IN OUT PULONG_PTR UserPfnArray
|
||||||
);
|
);
|
||||||
|
|
||||||
NTSYSCALLAPI
|
NTSYSCALLAPI
|
||||||
|
@ -91,7 +91,7 @@ NTAPI
|
||||||
NtAllocateVirtualMemory(
|
NtAllocateVirtualMemory(
|
||||||
IN HANDLE ProcessHandle,
|
IN HANDLE ProcessHandle,
|
||||||
IN OUT PVOID *BaseAddress,
|
IN OUT PVOID *BaseAddress,
|
||||||
IN ULONG ZeroBits,
|
IN ULONG_PTR ZeroBits,
|
||||||
IN OUT PSIZE_T RegionSize,
|
IN OUT PSIZE_T RegionSize,
|
||||||
IN ULONG AllocationType,
|
IN ULONG AllocationType,
|
||||||
IN ULONG Protect
|
IN ULONG Protect
|
||||||
|
@ -142,8 +142,8 @@ NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtFreeUserPhysicalPages(
|
NtFreeUserPhysicalPages(
|
||||||
IN HANDLE ProcessHandle,
|
IN HANDLE ProcessHandle,
|
||||||
IN OUT PULONG NumberOfPages,
|
IN OUT PULONG_PTR NumberOfPages,
|
||||||
IN OUT PULONG UserPfnArray
|
IN OUT PULONG_PTR UserPfnArray
|
||||||
);
|
);
|
||||||
|
|
||||||
NTSYSCALLAPI
|
NTSYSCALLAPI
|
||||||
|
@ -163,9 +163,9 @@ NtGetWriteWatch(
|
||||||
IN HANDLE ProcessHandle,
|
IN HANDLE ProcessHandle,
|
||||||
IN ULONG Flags,
|
IN ULONG Flags,
|
||||||
IN PVOID BaseAddress,
|
IN PVOID BaseAddress,
|
||||||
IN ULONG RegionSize,
|
IN SIZE_T RegionSize,
|
||||||
IN PVOID *UserAddressArray,
|
IN PVOID *UserAddressArray,
|
||||||
OUT PULONG EntriesInUserAddressArray,
|
OUT PULONG_PTR EntriesInUserAddressArray,
|
||||||
OUT PULONG Granularity
|
OUT PULONG Granularity
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -175,24 +175,24 @@ NTAPI
|
||||||
NtLockVirtualMemory(
|
NtLockVirtualMemory(
|
||||||
HANDLE ProcessHandle,
|
HANDLE ProcessHandle,
|
||||||
PVOID BaseAddress,
|
PVOID BaseAddress,
|
||||||
ULONG NumberOfBytesToLock,
|
SIZE_T NumberOfBytesToLock,
|
||||||
PULONG NumberOfBytesLocked
|
PSIZE_T NumberOfBytesLocked
|
||||||
);
|
);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtMapUserPhysicalPages(
|
NtMapUserPhysicalPages(
|
||||||
IN PVOID VirtualAddresses,
|
IN PVOID VirtualAddresses,
|
||||||
IN ULONG NumberOfPages,
|
IN ULONG_PTR NumberOfPages,
|
||||||
IN OUT PULONG UserPfnArray
|
IN OUT PULONG_PTR UserPfnArray
|
||||||
);
|
);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtMapUserPhysicalPagesScatter(
|
NtMapUserPhysicalPagesScatter(
|
||||||
IN PVOID *VirtualAddresses,
|
IN PVOID *VirtualAddresses,
|
||||||
IN ULONG NumberOfPages,
|
IN ULONG_PTR NumberOfPages,
|
||||||
IN OUT PULONG UserPfnArray
|
IN OUT PULONG_PTR UserPfnArray
|
||||||
);
|
);
|
||||||
|
|
||||||
NTSYSCALLAPI
|
NTSYSCALLAPI
|
||||||
|
@ -202,8 +202,8 @@ NtMapViewOfSection(
|
||||||
IN HANDLE SectionHandle,
|
IN HANDLE SectionHandle,
|
||||||
IN HANDLE ProcessHandle,
|
IN HANDLE ProcessHandle,
|
||||||
IN OUT PVOID *BaseAddress,
|
IN OUT PVOID *BaseAddress,
|
||||||
IN ULONG ZeroBits,
|
IN ULONG_PTR ZeroBits,
|
||||||
IN ULONG CommitSize,
|
IN SIZE_T CommitSize,
|
||||||
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
|
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
|
||||||
IN OUT PSIZE_T ViewSize,
|
IN OUT PSIZE_T ViewSize,
|
||||||
IN SECTION_INHERIT InheritDisposition,
|
IN SECTION_INHERIT InheritDisposition,
|
||||||
|
@ -226,7 +226,7 @@ NTAPI
|
||||||
NtProtectVirtualMemory(
|
NtProtectVirtualMemory(
|
||||||
IN HANDLE ProcessHandle,
|
IN HANDLE ProcessHandle,
|
||||||
IN PVOID *BaseAddress,
|
IN PVOID *BaseAddress,
|
||||||
IN ULONG *NumberOfBytesToProtect,
|
IN SIZE_T *NumberOfBytesToProtect,
|
||||||
IN ULONG NewAccessProtection,
|
IN ULONG NewAccessProtection,
|
||||||
OUT PULONG OldAccessProtection
|
OUT PULONG OldAccessProtection
|
||||||
);
|
);
|
||||||
|
@ -316,7 +316,7 @@ NTAPI
|
||||||
ZwAllocateVirtualMemory(
|
ZwAllocateVirtualMemory(
|
||||||
IN HANDLE ProcessHandle,
|
IN HANDLE ProcessHandle,
|
||||||
IN OUT PVOID *BaseAddress,
|
IN OUT PVOID *BaseAddress,
|
||||||
IN ULONG ZeroBits,
|
IN ULONG_PTR ZeroBits,
|
||||||
IN OUT PSIZE_T RegionSize,
|
IN OUT PSIZE_T RegionSize,
|
||||||
IN ULONG AllocationType,
|
IN ULONG AllocationType,
|
||||||
IN ULONG Protect
|
IN ULONG Protect
|
||||||
|
@ -380,8 +380,8 @@ ZwMapViewOfSection(
|
||||||
IN HANDLE SectionHandle,
|
IN HANDLE SectionHandle,
|
||||||
IN HANDLE ProcessHandle,
|
IN HANDLE ProcessHandle,
|
||||||
IN OUT PVOID *BaseAddress,
|
IN OUT PVOID *BaseAddress,
|
||||||
IN ULONG ZeroBits,
|
IN ULONG_PTR ZeroBits,
|
||||||
IN ULONG CommitSize,
|
IN SIZE_T CommitSize,
|
||||||
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
|
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
|
||||||
IN OUT PSIZE_T ViewSize,
|
IN OUT PSIZE_T ViewSize,
|
||||||
IN SECTION_INHERIT InheritDisposition,
|
IN SECTION_INHERIT InheritDisposition,
|
||||||
|
@ -404,7 +404,7 @@ NTAPI
|
||||||
ZwProtectVirtualMemory(
|
ZwProtectVirtualMemory(
|
||||||
IN HANDLE ProcessHandle,
|
IN HANDLE ProcessHandle,
|
||||||
IN PVOID *BaseAddress,
|
IN PVOID *BaseAddress,
|
||||||
IN ULONG *NumberOfBytesToProtect,
|
IN SIZE_T *NumberOfBytesToProtect,
|
||||||
IN ULONG NewAccessProtection,
|
IN ULONG NewAccessProtection,
|
||||||
OUT PULONG OldAccessProtection
|
OUT PULONG OldAccessProtection
|
||||||
);
|
);
|
||||||
|
@ -468,8 +468,8 @@ ZwWriteVirtualMemory(
|
||||||
IN HANDLE ProcessHandle,
|
IN HANDLE ProcessHandle,
|
||||||
IN PVOID BaseAddress,
|
IN PVOID BaseAddress,
|
||||||
IN PVOID Buffer,
|
IN PVOID Buffer,
|
||||||
IN ULONG NumberOfBytesToWrite,
|
IN SIZE_T NumberOfBytesToWrite,
|
||||||
OUT PULONG NumberOfBytesWritten
|
OUT PSIZE_T NumberOfBytesWritten
|
||||||
);
|
);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -522,7 +522,7 @@ MmModifyAttributes(PMM_AVL_TABLE AddressSpace,
|
||||||
NTSTATUS STDCALL
|
NTSTATUS STDCALL
|
||||||
NtAllocateVirtualMemory(IN HANDLE ProcessHandle,
|
NtAllocateVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
IN OUT PVOID* UBaseAddress,
|
IN OUT PVOID* UBaseAddress,
|
||||||
IN ULONG ZeroBits,
|
IN ULONG_PTR ZeroBits,
|
||||||
IN OUT PSIZE_T URegionSize,
|
IN OUT PSIZE_T URegionSize,
|
||||||
IN ULONG AllocationType,
|
IN ULONG AllocationType,
|
||||||
IN ULONG Protect)
|
IN ULONG Protect)
|
||||||
|
|
|
@ -3662,8 +3662,8 @@ NTSTATUS STDCALL
|
||||||
NtMapViewOfSection(IN HANDLE SectionHandle,
|
NtMapViewOfSection(IN HANDLE SectionHandle,
|
||||||
IN HANDLE ProcessHandle,
|
IN HANDLE ProcessHandle,
|
||||||
IN OUT PVOID* BaseAddress OPTIONAL,
|
IN OUT PVOID* BaseAddress OPTIONAL,
|
||||||
IN ULONG ZeroBits OPTIONAL,
|
IN ULONG_PTR ZeroBits OPTIONAL,
|
||||||
IN ULONG CommitSize,
|
IN SIZE_T CommitSize,
|
||||||
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
|
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
|
||||||
IN OUT PSIZE_T ViewSize,
|
IN OUT PSIZE_T ViewSize,
|
||||||
IN SECTION_INHERIT InheritDisposition,
|
IN SECTION_INHERIT InheritDisposition,
|
||||||
|
@ -4482,8 +4482,8 @@ NTSTATUS STDCALL
|
||||||
MmMapViewOfSection(IN PVOID SectionObject,
|
MmMapViewOfSection(IN PVOID SectionObject,
|
||||||
IN PEPROCESS Process,
|
IN PEPROCESS Process,
|
||||||
IN OUT PVOID *BaseAddress,
|
IN OUT PVOID *BaseAddress,
|
||||||
IN ULONG ZeroBits,
|
IN ULONG_PTR ZeroBits,
|
||||||
IN ULONG CommitSize,
|
IN SIZE_T CommitSize,
|
||||||
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
|
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
|
||||||
IN OUT PSIZE_T ViewSize,
|
IN OUT PSIZE_T ViewSize,
|
||||||
IN SECTION_INHERIT InheritDisposition,
|
IN SECTION_INHERIT InheritDisposition,
|
||||||
|
@ -4954,8 +4954,8 @@ MmCreateSection (OUT PVOID * Section,
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtAllocateUserPhysicalPages(IN HANDLE ProcessHandle,
|
NtAllocateUserPhysicalPages(IN HANDLE ProcessHandle,
|
||||||
IN OUT PULONG NumberOfPages,
|
IN OUT PULONG_PTR NumberOfPages,
|
||||||
IN OUT PULONG UserPfnArray)
|
IN OUT PULONG_PTR UserPfnArray)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
@ -4964,8 +4964,8 @@ NtAllocateUserPhysicalPages(IN HANDLE ProcessHandle,
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtMapUserPhysicalPages(IN PVOID VirtualAddresses,
|
NtMapUserPhysicalPages(IN PVOID VirtualAddresses,
|
||||||
IN ULONG NumberOfPages,
|
IN ULONG_PTR NumberOfPages,
|
||||||
IN OUT PULONG UserPfnArray)
|
IN OUT PULONG_PTR UserPfnArray)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
@ -4974,8 +4974,8 @@ NtMapUserPhysicalPages(IN PVOID VirtualAddresses,
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtMapUserPhysicalPagesScatter(IN PVOID *VirtualAddresses,
|
NtMapUserPhysicalPagesScatter(IN PVOID *VirtualAddresses,
|
||||||
IN ULONG NumberOfPages,
|
IN ULONG_PTR NumberOfPages,
|
||||||
IN OUT PULONG UserPfnArray)
|
IN OUT PULONG_PTR UserPfnArray)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
@ -4984,8 +4984,8 @@ NtMapUserPhysicalPagesScatter(IN PVOID *VirtualAddresses,
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtFreeUserPhysicalPages(IN HANDLE ProcessHandle,
|
NtFreeUserPhysicalPages(IN HANDLE ProcessHandle,
|
||||||
IN OUT PULONG NumberOfPages,
|
IN OUT PULONG_PTR NumberOfPages,
|
||||||
IN OUT PULONG UserPfnArray)
|
IN OUT PULONG_PTR UserPfnArray)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
|
|
@ -63,13 +63,13 @@ MiDoMappedCopy(IN PEPROCESS SourceProcess,
|
||||||
IN PVOID SourceAddress,
|
IN PVOID SourceAddress,
|
||||||
IN PEPROCESS TargetProcess,
|
IN PEPROCESS TargetProcess,
|
||||||
OUT PVOID TargetAddress,
|
OUT PVOID TargetAddress,
|
||||||
IN ULONG BufferSize,
|
IN SIZE_T BufferSize,
|
||||||
IN KPROCESSOR_MODE PreviousMode,
|
IN KPROCESSOR_MODE PreviousMode,
|
||||||
OUT PULONG ReturnSize)
|
OUT PSIZE_T ReturnSize)
|
||||||
{
|
{
|
||||||
PFN_NUMBER MdlBuffer[(sizeof(MDL) / sizeof(PFN_NUMBER)) + MI_MAPPED_COPY_PAGES + 1];
|
PFN_NUMBER MdlBuffer[(sizeof(MDL) / sizeof(PFN_NUMBER)) + MI_MAPPED_COPY_PAGES + 1];
|
||||||
PMDL Mdl = (PMDL)MdlBuffer;
|
PMDL Mdl = (PMDL)MdlBuffer;
|
||||||
ULONG TotalSize, CurrentSize, RemainingSize;
|
SIZE_T TotalSize, CurrentSize, RemainingSize;
|
||||||
volatile BOOLEAN FailedInProbe = FALSE, FailedInMapping = FALSE, FailedInMoving;
|
volatile BOOLEAN FailedInProbe = FALSE, FailedInMapping = FALSE, FailedInMoving;
|
||||||
BOOLEAN PagesLocked;
|
BOOLEAN PagesLocked;
|
||||||
PVOID CurrentAddress = SourceAddress, CurrentTargetAddress = TargetAddress;
|
PVOID CurrentAddress = SourceAddress, CurrentTargetAddress = TargetAddress;
|
||||||
|
@ -219,12 +219,12 @@ MiDoPoolCopy(IN PEPROCESS SourceProcess,
|
||||||
IN PVOID SourceAddress,
|
IN PVOID SourceAddress,
|
||||||
IN PEPROCESS TargetProcess,
|
IN PEPROCESS TargetProcess,
|
||||||
OUT PVOID TargetAddress,
|
OUT PVOID TargetAddress,
|
||||||
IN ULONG BufferSize,
|
IN SIZE_T BufferSize,
|
||||||
IN KPROCESSOR_MODE PreviousMode,
|
IN KPROCESSOR_MODE PreviousMode,
|
||||||
OUT PULONG ReturnSize)
|
OUT PSIZE_T ReturnSize)
|
||||||
{
|
{
|
||||||
UCHAR StackBuffer[MI_POOL_COPY_BYTES];
|
UCHAR StackBuffer[MI_POOL_COPY_BYTES];
|
||||||
ULONG TotalSize, CurrentSize, RemainingSize;
|
SIZE_T TotalSize, CurrentSize, RemainingSize;
|
||||||
volatile BOOLEAN FailedInProbe = FALSE, FailedInMoving, HavePoolAddress = FALSE;
|
volatile BOOLEAN FailedInProbe = FALSE, FailedInMoving, HavePoolAddress = FALSE;
|
||||||
PVOID CurrentAddress = SourceAddress, CurrentTargetAddress = TargetAddress;
|
PVOID CurrentAddress = SourceAddress, CurrentTargetAddress = TargetAddress;
|
||||||
PVOID PoolAddress;
|
PVOID PoolAddress;
|
||||||
|
@ -365,9 +365,9 @@ MmCopyVirtualMemory(IN PEPROCESS SourceProcess,
|
||||||
IN PVOID SourceAddress,
|
IN PVOID SourceAddress,
|
||||||
IN PEPROCESS TargetProcess,
|
IN PEPROCESS TargetProcess,
|
||||||
OUT PVOID TargetAddress,
|
OUT PVOID TargetAddress,
|
||||||
IN ULONG BufferSize,
|
IN SIZE_T BufferSize,
|
||||||
IN KPROCESSOR_MODE PreviousMode,
|
IN KPROCESSOR_MODE PreviousMode,
|
||||||
OUT PULONG ReturnSize)
|
OUT PSIZE_T ReturnSize)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PEPROCESS Process = SourceProcess;
|
PEPROCESS Process = SourceProcess;
|
||||||
|
@ -419,8 +419,8 @@ MiQueryVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
IN PVOID Address,
|
IN PVOID Address,
|
||||||
IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
|
IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
|
||||||
OUT PVOID VirtualMemoryInformation,
|
OUT PVOID VirtualMemoryInformation,
|
||||||
IN ULONG Length,
|
IN SIZE_T Length,
|
||||||
OUT PULONG ResultLength)
|
OUT PSIZE_T ResultLength)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PEPROCESS Process;
|
PEPROCESS Process;
|
||||||
|
@ -584,7 +584,7 @@ MiQueryVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
NTSTATUS STDCALL
|
NTSTATUS STDCALL
|
||||||
MiProtectVirtualMemory(IN PEPROCESS Process,
|
MiProtectVirtualMemory(IN PEPROCESS Process,
|
||||||
IN OUT PVOID *BaseAddress,
|
IN OUT PVOID *BaseAddress,
|
||||||
IN OUT PULONG NumberOfBytesToProtect,
|
IN OUT PSIZE_T NumberOfBytesToProtect,
|
||||||
IN ULONG NewAccessProtection,
|
IN ULONG NewAccessProtection,
|
||||||
OUT PULONG OldAccessProtection OPTIONAL)
|
OUT PULONG OldAccessProtection OPTIONAL)
|
||||||
{
|
{
|
||||||
|
@ -678,13 +678,13 @@ NTAPI
|
||||||
NtReadVirtualMemory(IN HANDLE ProcessHandle,
|
NtReadVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
IN PVOID BaseAddress,
|
IN PVOID BaseAddress,
|
||||||
OUT PVOID Buffer,
|
OUT PVOID Buffer,
|
||||||
IN ULONG NumberOfBytesToRead,
|
IN SIZE_T NumberOfBytesToRead,
|
||||||
OUT PULONG NumberOfBytesRead OPTIONAL)
|
OUT PSIZE_T NumberOfBytesRead OPTIONAL)
|
||||||
{
|
{
|
||||||
KPROCESSOR_MODE PreviousMode = ExGetPreviousMode();
|
KPROCESSOR_MODE PreviousMode = ExGetPreviousMode();
|
||||||
PEPROCESS Process;
|
PEPROCESS Process;
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
NTSTATUS Status = STATUS_SUCCESS;
|
||||||
ULONG BytesRead = 0;
|
SIZE_T BytesRead = 0;
|
||||||
PAGED_CODE();
|
PAGED_CODE();
|
||||||
|
|
||||||
/* Check if we came from user mode */
|
/* Check if we came from user mode */
|
||||||
|
@ -704,7 +704,7 @@ NtReadVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
_SEH_TRY
|
_SEH_TRY
|
||||||
{
|
{
|
||||||
/* Probe the output value */
|
/* Probe the output value */
|
||||||
if (NumberOfBytesRead) ProbeForWriteUlong(NumberOfBytesRead);
|
if (NumberOfBytesRead) ProbeForWriteSize_t(NumberOfBytesRead);
|
||||||
}
|
}
|
||||||
_SEH_HANDLE
|
_SEH_HANDLE
|
||||||
{
|
{
|
||||||
|
@ -765,8 +765,8 @@ NTAPI
|
||||||
NtWriteVirtualMemory(IN HANDLE ProcessHandle,
|
NtWriteVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
IN PVOID BaseAddress,
|
IN PVOID BaseAddress,
|
||||||
IN PVOID Buffer,
|
IN PVOID Buffer,
|
||||||
IN ULONG NumberOfBytesToWrite,
|
IN SIZE_T NumberOfBytesToWrite,
|
||||||
OUT PULONG NumberOfBytesWritten OPTIONAL)
|
OUT PSIZE_T NumberOfBytesWritten OPTIONAL)
|
||||||
{
|
{
|
||||||
KPROCESSOR_MODE PreviousMode = ExGetPreviousMode();
|
KPROCESSOR_MODE PreviousMode = ExGetPreviousMode();
|
||||||
PEPROCESS Process;
|
PEPROCESS Process;
|
||||||
|
@ -791,7 +791,7 @@ NtWriteVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
_SEH_TRY
|
_SEH_TRY
|
||||||
{
|
{
|
||||||
/* Probe the output value */
|
/* Probe the output value */
|
||||||
if (NumberOfBytesWritten) ProbeForWriteUlong(NumberOfBytesWritten);
|
if (NumberOfBytesWritten) ProbeForWriteSize_t(NumberOfBytesWritten);
|
||||||
}
|
}
|
||||||
_SEH_HANDLE
|
_SEH_HANDLE
|
||||||
{
|
{
|
||||||
|
@ -851,14 +851,14 @@ NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtProtectVirtualMemory(IN HANDLE ProcessHandle,
|
NtProtectVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
IN OUT PVOID *UnsafeBaseAddress,
|
IN OUT PVOID *UnsafeBaseAddress,
|
||||||
IN OUT ULONG *UnsafeNumberOfBytesToProtect,
|
IN OUT SIZE_T *UnsafeNumberOfBytesToProtect,
|
||||||
IN ULONG NewAccessProtection,
|
IN ULONG NewAccessProtection,
|
||||||
OUT PULONG UnsafeOldAccessProtection)
|
OUT PULONG UnsafeOldAccessProtection)
|
||||||
{
|
{
|
||||||
PEPROCESS Process;
|
PEPROCESS Process;
|
||||||
ULONG OldAccessProtection;
|
ULONG OldAccessProtection;
|
||||||
PVOID BaseAddress = NULL;
|
PVOID BaseAddress = NULL;
|
||||||
ULONG NumberOfBytesToProtect = 0;
|
SIZE_T NumberOfBytesToProtect = 0;
|
||||||
KPROCESSOR_MODE PreviousMode = ExGetPreviousMode();
|
KPROCESSOR_MODE PreviousMode = ExGetPreviousMode();
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
NTSTATUS Status = STATUS_SUCCESS;
|
||||||
|
|
||||||
|
@ -870,7 +870,7 @@ NtProtectVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
{
|
{
|
||||||
/* Validate all outputs */
|
/* Validate all outputs */
|
||||||
ProbeForWritePointer(UnsafeBaseAddress);
|
ProbeForWritePointer(UnsafeBaseAddress);
|
||||||
ProbeForWriteUlong(UnsafeNumberOfBytesToProtect);
|
ProbeForWriteSize_t(UnsafeNumberOfBytesToProtect);
|
||||||
ProbeForWriteUlong(UnsafeOldAccessProtection);
|
ProbeForWriteUlong(UnsafeOldAccessProtection);
|
||||||
|
|
||||||
/* Capture them */
|
/* Capture them */
|
||||||
|
@ -950,11 +950,11 @@ NtQueryVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
IN PVOID Address,
|
IN PVOID Address,
|
||||||
IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
|
IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
|
||||||
OUT PVOID VirtualMemoryInformation,
|
OUT PVOID VirtualMemoryInformation,
|
||||||
IN ULONG Length,
|
IN SIZE_T Length,
|
||||||
OUT PULONG UnsafeResultLength)
|
OUT PSIZE_T UnsafeResultLength)
|
||||||
{
|
{
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
NTSTATUS Status = STATUS_SUCCESS;
|
||||||
ULONG ResultLength = 0;
|
SIZE_T ResultLength = 0;
|
||||||
KPROCESSOR_MODE PreviousMode;
|
KPROCESSOR_MODE PreviousMode;
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
|
@ -974,7 +974,7 @@ NtQueryVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
{
|
{
|
||||||
_SEH_TRY
|
_SEH_TRY
|
||||||
{
|
{
|
||||||
ProbeForWriteUlong(UnsafeResultLength);
|
ProbeForWriteSize_t(UnsafeResultLength);
|
||||||
}
|
}
|
||||||
_SEH_HANDLE
|
_SEH_HANDLE
|
||||||
{
|
{
|
||||||
|
@ -1050,8 +1050,8 @@ NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtLockVirtualMemory(IN HANDLE ProcessHandle,
|
NtLockVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
IN PVOID BaseAddress,
|
IN PVOID BaseAddress,
|
||||||
IN ULONG NumberOfBytesToLock,
|
IN SIZE_T NumberOfBytesToLock,
|
||||||
OUT PULONG NumberOfBytesLocked OPTIONAL)
|
OUT PSIZE_T NumberOfBytesLocked OPTIONAL)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
if (NumberOfBytesLocked) *NumberOfBytesLocked = 0;
|
if (NumberOfBytesLocked) *NumberOfBytesLocked = 0;
|
||||||
|
@ -1062,8 +1062,8 @@ NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtUnlockVirtualMemory(IN HANDLE ProcessHandle,
|
NtUnlockVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
IN PVOID BaseAddress,
|
IN PVOID BaseAddress,
|
||||||
IN ULONG NumberOfBytesToUnlock,
|
IN SIZE_T NumberOfBytesToUnlock,
|
||||||
OUT PULONG NumberOfBytesUnlocked OPTIONAL)
|
OUT PSIZE_T NumberOfBytesUnlocked OPTIONAL)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
if (NumberOfBytesUnlocked) *NumberOfBytesUnlocked = 0;
|
if (NumberOfBytesUnlocked) *NumberOfBytesUnlocked = 0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue