#include "mi.h"
Go to the source code of this file.
Defines | |
#define | MAX_LOCK_SIZE ((ULONG)(14 * PAGE_SIZE)) |
#define | MAX_MOVE_SIZE (LONG)0x10000 |
#define | MINIMUM_ALLOCATION (LONG)128 |
#define | POOL_MOVE_THRESHOLD 511 |
#define | COPY_STACK_SIZE 64 |
Functions | |
NTSTATUS | MiValidateUserTransfer (IN PVOID BaseAddress, IN PVOID Buffer, IN ULONG BufferSize) |
ULONG | MiGetExceptionInfo (IN PEXCEPTION_POINTERS ExceptionPointers, IN PULONG_PTR BadVa1, IN PULONG_PTR BadVa2) |
NTSTATUS | MiDoMappedCopy (IN PEPROCESS FromProcess, IN PVOID FromAddress, IN PEPROCESS ToProcess, OUT PVOID ToAddress, IN ULONG BufferSize, IN KPROCESSOR_MODE PreviousMode, OUT PULONG NumberOfBytesRead) |
NTSTATUS | MiDoPoolCopy (IN PEPROCESS FromProcess, IN PVOID FromAddress, IN PEPROCESS ToProcess, OUT PVOID ToAddress, IN ULONG BufferSize, IN KPROCESSOR_MODE PreviousMode, OUT PULONG NumberOfBytesRead) |
NTSTATUS | NtReadVirtualMemory (IN HANDLE ProcessHandle, IN PVOID BaseAddress, OUT PVOID Buffer, IN ULONG BufferSize, OUT PULONG NumberOfBytesRead OPTIONAL) |
NTSTATUS | NtWriteVirtualMemory (IN HANDLE ProcessHandle, OUT PVOID BaseAddress, IN PVOID Buffer, IN ULONG BufferSize, OUT PULONG NumberOfBytesWritten OPTIONAL) |
NTSTATUS | MmCopyVirtualMemory (IN PEPROCESS FromProcess, IN PVOID FromAddress, IN PEPROCESS ToProcess, OUT PVOID ToAddress, IN ULONG BufferSize, IN KPROCESSOR_MODE PreviousMode, OUT PULONG NumberOfBytesCopied) |
|
|
|
Definition at line 30 of file readwrt.c. Referenced by MiDoMappedCopy(). |
|
Definition at line 36 of file readwrt.c. Referenced by MiDoPoolCopy(). |
|
|
|
Definition at line 48 of file readwrt.c. Referenced by MmCopyVirtualMemory(). |
|
Definition at line 529 of file readwrt.c. References BufferSize, CHAR, ExRaiseStatus(), FALSE, HighPagePriority, IoReadAccess, KeAttachProcess(), KeDetachProcess(), KernelMode, MAX_LOCK_SIZE, MiGetExceptionInfo(), MmCached, MmInitializeMdl, MmMapLockedPagesSpecifyCache(), MmProbeAndLockPages(), MmUnlockPages(), MmUnmapLockedPages(), NULL, PAGE_SHIFT, PAGED_CODE, ProbeForRead, ProbeForWrite(), PsGetCurrentProcess, and TRUE. Referenced by MmCopyVirtualMemory().
|
|
Definition at line 758 of file readwrt.c. References ASSERT, BufferSize, CHAR, COPY_STACK_SIZE, ExAllocatePoolWithTag, ExFreePool(), FALSE, KeAttachProcess(), KeDetachProcess(), KernelMode, MAX_MOVE_SIZE, MiGetExceptionInfo(), NonPagedPool, NULL, PAGED_CODE, ProbeForRead, ProbeForWrite(), PsGetCurrentProcess, and TRUE. Referenced by MmCopyVirtualMemory().
|
|
Definition at line 464 of file readwrt.c. References EXCEPTION_EXECUTE_HANDLER, and PAGED_CODE. Referenced by MiDoMappedCopy(), and MiDoPoolCopy().
|
|
Definition at line 985 of file readwrt.c. References Buffer, BufferSize, and PAGED_CODE. Referenced by NtReadVirtualMemory(), and NtWriteVirtualMemory().
|
|
Definition at line 362 of file readwrt.c. References _EPROCESS::AddressSpaceDeleted, ASSERT, BufferSize, FALSE, KeSetEvent(), MiDoMappedCopy(), MiDoPoolCopy(), MiLockSystemSpace, MiUnlockSystemSpace, NTSTATUS(), NULL, POOL_MOVE_THRESHOLD, PsGetCurrentProcess, Status, _EPROCESS::VmOperation, and _EPROCESS::VmOperationEvent. Referenced by LpcpCopyRequestData(), NtReadVirtualMemory(), and NtWriteVirtualMemory().
|
|
Definition at line 102 of file readwrt.c. References Buffer, BufferSize, EXCEPTION_EXECUTE_HANDLER, KernelMode, KPROCESSOR_MODE, MiValidateUserTransfer(), MmCopyVirtualMemory(), NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObjectByHandle(), PAGED_CODE, ProbeForWriteUlong, PsGetCurrentProcess, PsProcessType, and Status. Referenced by ConsoleClientConnectRoutine(), GetHardErrorText(), RtlCheckForOrphanedCriticalSections(), RtlDestroyQueryDebugBuffer(), RtlFreeUserThreadStack(), RtlQueryProcessDebugInformation(), and SrvWriteConsoleOutput().
|
|
Definition at line 231 of file readwrt.c. References Buffer, BufferSize, EXCEPTION_EXECUTE_HANDLER, KernelMode, KPROCESSOR_MODE, MiValidateUserTransfer(), MmCopyVirtualMemory(), NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObjectByHandle(), PAGED_CODE, ProbeForWriteUlong, PsGetCurrentProcess, PsProcessType, and Status. Referenced by RtlRemoteCall().
|