#include "mi.h"
Go to the source code of this file.
Classes | |
struct | _SESSIONWIDE_DRIVER_ADDRESS |
Typedefs | |
typedef _SESSIONWIDE_DRIVER_ADDRESS | SESSIONWIDE_DRIVER_ADDRESS |
typedef _SESSIONWIDE_DRIVER_ADDRESS * | PSESSIONWIDE_DRIVER_ADDRESS |
Functions | |
ULONG | MiSetProtectionOnTransitionPte (IN PMMPTE PointerPte, IN ULONG ProtectionMask) |
NTSTATUS | MiSessionInsertImage (IN PVOID BaseAddress) |
NTSTATUS | MiSessionRemoveImage (IN PVOID BaseAddress) |
NTSTATUS | MiSessionWideInsertImageAddress (IN PVOID BaseAddress, IN ULONG_PTR Size, IN ULONG WritablePages, IN PUNICODE_STRING ImageName, IN BOOLEAN AtPreferredAddress) |
NTSTATUS | MiSessionWideDereferenceImage (IN PVOID BaseAddress) |
PLDR_DATA_TABLE_ENTRY | MiLookupPsLoadedModule (IN PVOID Address) |
NTSTATUS | MiShareSessionImage (IN PSECTION Section, IN OUT PSIZE_T ViewSize) |
NTSTATUS | MiSessionRemoveImage (PVOID BaseAddr) |
PIMAGE_ENTRY_IN_SESSION | MiSessionLookupImage (IN PVOID BaseAddress) |
VOID | MiSessionUnloadAllImages (VOID) |
VOID | MiSessionWideInitializeAddresses (VOID) |
NTSTATUS | MiSessionWideGetImageSize (IN PVOID BaseAddress, OUT PSIZE_T NumberOfBytes OPTIONAL, OUT PSIZE_T CommitPages OPTIONAL) |
NTSTATUS | MiSessionWideReserveImageAddress (IN PUNICODE_STRING ImageName, IN PSECTION Section, IN ULONG_PTR Alignment, OUT PVOID *AssignedAddress, OUT PBOOLEAN AlreadyLoaded) |
NTSTATUS | MiRemoveImageSessionWide (IN PVOID BaseAddress) |
Variables | |
LIST_ENTRY | MmSessionWideAddressList |
KSPIN_LOCK | PsLoadedModuleSpinLock |
LIST_ENTRY | PsLoadedModuleList |
|
Referenced by MiSessionWideDereferenceImage(), MiSessionWideGetImageSize(), MiSessionWideInsertImageAddress(), and MiSessionWideReserveImageAddress(). |
|
Referenced by MiSessionWideInsertImageAddress(). |
|
Definition at line 1273 of file sessload.c. References ASSERT, ExAcquireResourceExclusive, ExReleaseResource, FALSE, KeEnterCriticalRegion, KeLeaveCriticalRegion, KeReleaseMutant(), KernelMode, KeWaitForSingleObject(), MmSystemLoadLock, NULL, PsLoadedModuleList, PsLoadedModuleResource, TRUE, and WrVirtualMemory. Referenced by MiSessionUnloadAllImages().
|
|
Definition at line 1223 of file sessload.c. References ASSERT, MiSessionRemoveImage(), MiSessionWideDereferenceImage(), MmIsAddressValid(), MmSessionSpace, NT_SUCCESS, NTSTATUS(), PAGED_CODE, Status, SYSLOAD_LOCK_OWNED_BY_ME, and TRUE. Referenced by MiLoadImageSection(), and MmUnloadSystemImage().
|
|
Definition at line 381 of file sessload.c. References _IMAGE_ENTRY_IN_SESSION::Address, ExAllocatePoolWithTag, IMAGE_ENTRY_IN_SESSION, _IMAGE_ENTRY_IN_SESSION::ImageCountInThisSession, _MM_SESSION_SPACE::ImageList, _IMAGE_ENTRY_IN_SESSION::Link, LOCK_SESSION_SPACE_WS, MM_BUMP_SESSION_FAILURES, MM_SESSION_FAILURE_NO_NONPAGED_POOL, MmSessionSpace, NonPagedPool, NULL, PAGED_CODE, SYSLOAD_LOCK_OWNED_BY_ME, and UNLOCK_SESSION_SPACE_WS. Referenced by MiSessionWideReserveImageAddress().
|
|
Definition at line 518 of file sessload.c. References _IMAGE_ENTRY_IN_SESSION::Address, _MM_SESSION_SPACE::ImageList, LOCK_SESSION_SPACE_WS, MmSessionSpace, NULL, SYSLOAD_LOCK_OWNED_BY_ME, and UNLOCK_SESSION_SPACE_WS. Referenced by MiShareSessionImage(), and MmUnloadSystemImage().
|
|
Definition at line 461 of file sessload.c. References _IMAGE_ENTRY_IN_SESSION::Address, ExFreePool(), _MM_SESSION_SPACE::ImageList, LOCK_SESSION_SPACE_WS, MmSessionSpace, PAGED_CODE, SYSLOAD_LOCK_OWNED_BY_ME, and UNLOCK_SESSION_SPACE_WS. Referenced by MiRemoveImageSessionWide().
|
|
|
|
Definition at line 572 of file sessload.c. References _IMAGE_ENTRY_IN_SESSION::Address, ASSERT, _MM_SESSION_SPACE::ImageList, MiLookupPsLoadedModule(), MmSessionSpace, MmUnloadSystemImage(), NTSTATUS(), _MM_SESSION_SPACE::ReferenceCount, and Status. Referenced by MiDereferenceSession().
|
|
Definition at line 802 of file sessload.c. References _SESSIONWIDE_DRIVER_ADDRESS::Address, ASSERT, ExFreePool(), MmSessionWideAddressList, PSESSIONWIDE_DRIVER_ADDRESS, _SESSIONWIDE_DRIVER_ADDRESS::ReferenceCount, and SYSLOAD_LOCK_OWNED_BY_ME. Referenced by MiRemoveImageSessionWide(), and MiSessionWideReserveImageAddress().
|
|
Definition at line 866 of file sessload.c. References _SESSIONWIDE_DRIVER_ADDRESS::Address, MmSessionWideAddressList, PSESSIONWIDE_DRIVER_ADDRESS, _SESSIONWIDE_DRIVER_ADDRESS::Size, SYSLOAD_LOCK_OWNED_BY_ME, and _SESSIONWIDE_DRIVER_ADDRESS::WritablePages. Referenced by MiShareSessionImage(), and MmUnloadSystemImage().
|
|
Definition at line 652 of file sessload.c. References MmSessionWideAddressList. Referenced by MmInitSystem().
|
|
Definition at line 683 of file sessload.c. References _SESSIONWIDE_DRIVER_ADDRESS::Address, ExAllocatePoolWithTag, ExFreePool(), _SESSIONWIDE_DRIVER_ADDRESS::FullDllName, _SESSIONWIDE_DRIVER_ADDRESS::Link, MI_ROUND_TO_SIZE, MM_BUMP_SESSION_FAILURES, MM_SESSION_FAILURE_NO_NONPAGED_POOL, MM_SESSION_FAILURE_NO_PAGED_POOL, MmSessionWideAddressList, NewName, NonPagedPool, NULL, PAGE_SHIFT, PAGE_SIZE, PagedPool, PSESSIONWIDE_DRIVER_ADDRESS, _SESSIONWIDE_DRIVER_ADDRESS::ReferenceCount, RtlInitUnicodeString(), SESSIONWIDE_DRIVER_ADDRESS, _SESSIONWIDE_DRIVER_ADDRESS::Size, SYSLOAD_LOCK_OWNED_BY_ME, TRUE, and _SESSIONWIDE_DRIVER_ADDRESS::WritablePages. Referenced by MiSessionWideReserveImageAddress().
|
|
Definition at line 936 of file sessload.c. References _SESSIONWIDE_DRIVER_ADDRESS::Address, ASSERT, DbgPrint, FALSE, _SESSIONWIDE_DRIVER_ADDRESS::FullDllName, MI_ROUND_TO_SIZE, MI_SESSION_IMAGE_SIZE, MI_SESSION_IMAGE_START, MiGetWritablePagesInSection(), MiSessionInsertImage(), MiSessionWideDereferenceImage(), MiSessionWideInsertImageAddress(), MM_BUMP_SESSION_FAILURES, MM_DBG_SESSIONS, MM_SESSION_FAILURE_NO_IMAGE_VA_SPACE, MmIsAddressValid(), MmSessionSpace, MmSessionWideAddressList, NT_SUCCESS, NTSTATUS(), NULL, PAGE_SHIFT, PAGED_CODE, PSESSIONWIDE_DRIVER_ADDRESS, PsGetCurrentProcess, _SESSIONWIDE_DRIVER_ADDRESS::ReferenceCount, RtlEqualUnicodeString(), _SESSIONWIDE_DRIVER_ADDRESS::Size, Status, SYSLOAD_LOCK_OWNED_BY_ME, and TRUE. Referenced by MiLoadImageSection().
|
|
|
|
Definition at line 119 of file sessload.c. References ASSERT, BYTES_TO_PAGES, _MM_SESSION_SPACE::CommittedPages, _SEGMENT::ControlArea, ExPageLockHandle, FALSE, _IMAGE_ENTRY_IN_SESSION::LastAddress, LOCK_PFN, LOCK_SESSION_SPACE_WS, MiAddMappedPtes(), MiChargeCommitment(), MiCheckControlArea(), MiCheckPurgeAndUpMapCount(), MiGetPteAddress, MiReturnCommitment(), MiSessionCommitPageTables(), MiSessionLookupImage(), MiSessionWideGetImageSize(), MiSetImageProtect(), MM_BUMP_SESS_COUNTER, MM_BUMP_SESSION_FAILURES, MM_DBG_COMMIT_SESSION_SHARED_IMAGE, MM_DBG_SESSION_SYSMAPPED_PAGES_ALLOC, MM_DBG_SESSION_SYSMAPPED_PAGES_COMMITTED, MM_EXECUTE_READ, MM_SESSION_FAILURE_NO_COMMIT, MM_TRACK_COMMIT, MmIsAddressValid(), MmLockPagableSectionByHandle(), MmSessionSpace, MmUnlockPagableImageSection(), NT_SUCCESS, NTSTATUS(), NULL, _CONTROL_AREA::NumberOfMappedViews, _CONTROL_AREA::NumberOfUserReferences, PAGE_SIZE, PAGED_CODE, _IMAGE_ENTRY_IN_SESSION::PrototypePtes, _CONTROL_AREA::Segment, Status, SYSLOAD_LOCK_OWNED_BY_ME, TRUE, _MMPTE::u, _CONTROL_AREA::u, UNLOCK_PFN, and UNLOCK_SESSION_SPACE_WS. Referenced by MiLoadImageSection().
|
|
Definition at line 51 of file sessload.c. Referenced by MiSessionWideDereferenceImage(), MiSessionWideGetImageSize(), MiSessionWideInitializeAddresses(), MiSessionWideInsertImageAddress(), and MiSessionWideReserveImageAddress(). |
|
Definition at line 59 of file sessload.c. |
|
Definition at line 57 of file sessload.c. |