mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 09:46:18 +00:00
ntoskrnl header cleanups
svn path=/trunk/; revision=17846
This commit is contained in:
parent
a6f1511ecb
commit
e8dcb74344
22 changed files with 1293 additions and 583 deletions
File diff suppressed because it is too large
Load diff
|
@ -28,7 +28,7 @@
|
||||||
#include "v86m.h"
|
#include "v86m.h"
|
||||||
#include "fs.h"
|
#include "fs.h"
|
||||||
#include "port.h"
|
#include "port.h"
|
||||||
#include "nls.h"
|
#include "rtl.h"
|
||||||
#ifdef KDBG
|
#ifdef KDBG
|
||||||
#include "../kdbg/kdb.h"
|
#include "../kdbg/kdb.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -10,32 +10,37 @@ extern ULONG NlsUnicodeTableOffset;
|
||||||
extern PUSHORT NlsUnicodeUpcaseTable;
|
extern PUSHORT NlsUnicodeUpcaseTable;
|
||||||
extern PUSHORT NlsUnicodeLowercaseTable;
|
extern PUSHORT NlsUnicodeLowercaseTable;
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
STDCALL
|
||||||
RtlpInitNls(VOID);
|
RtlpInitNls(VOID);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
RtlpImportAnsiCodePage(
|
RtlpImportAnsiCodePage(
|
||||||
PUSHORT TableBase,
|
PUSHORT TableBase,
|
||||||
ULONG Size
|
ULONG Size
|
||||||
);
|
);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
RtlpImportOemCodePage(
|
RtlpImportOemCodePage(
|
||||||
PUSHORT TableBase,
|
PUSHORT TableBase,
|
||||||
ULONG Size
|
ULONG Size
|
||||||
);
|
);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
RtlpImportUnicodeCasemap(
|
RtlpImportUnicodeCasemap(
|
||||||
PUSHORT TableBase,
|
PUSHORT TableBase,
|
||||||
ULONG Size
|
ULONG Size
|
||||||
);
|
);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
RtlpCreateInitialNlsTables(VOID);
|
RtlpCreateInitialNlsTables(VOID);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
RtlpCreateNlsSection(VOID);
|
RtlpCreateNlsSection(VOID);
|
||||||
|
|
||||||
#endif /* __NTOSKRNL_INCLUDE_INTERNAL_NLS_H */
|
#endif /* __NTOSKRNL_INCLUDE_INTERNAL_NLS_H */
|
|
@ -48,6 +48,7 @@
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmWritePageVirtualMemory(PMADDRESS_SPACE AddressSpace,
|
MmWritePageVirtualMemory(PMADDRESS_SPACE AddressSpace,
|
||||||
PMEMORY_AREA MemoryArea,
|
PMEMORY_AREA MemoryArea,
|
||||||
PVOID Address,
|
PVOID Address,
|
||||||
|
@ -129,6 +130,7 @@ MmWritePageVirtualMemory(PMADDRESS_SPACE AddressSpace,
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmPageOutVirtualMemory(PMADDRESS_SPACE AddressSpace,
|
MmPageOutVirtualMemory(PMADDRESS_SPACE AddressSpace,
|
||||||
PMEMORY_AREA MemoryArea,
|
PMEMORY_AREA MemoryArea,
|
||||||
PVOID Address,
|
PVOID Address,
|
||||||
|
@ -232,6 +234,7 @@ MmPageOutVirtualMemory(PMADDRESS_SPACE AddressSpace,
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmNotPresentFaultVirtualMemory(PMADDRESS_SPACE AddressSpace,
|
MmNotPresentFaultVirtualMemory(PMADDRESS_SPACE AddressSpace,
|
||||||
MEMORY_AREA* MemoryArea,
|
MEMORY_AREA* MemoryArea,
|
||||||
PVOID Address,
|
PVOID Address,
|
||||||
|
@ -789,6 +792,7 @@ MmFreeVirtualMemoryPage(PVOID Context,
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmFreeVirtualMemory(PEPROCESS Process,
|
MmFreeVirtualMemory(PEPROCESS Process,
|
||||||
PMEMORY_AREA MemoryArea)
|
PMEMORY_AREA MemoryArea)
|
||||||
{
|
{
|
||||||
|
@ -954,6 +958,7 @@ NtFreeVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmProtectAnonMem(PMADDRESS_SPACE AddressSpace,
|
MmProtectAnonMem(PMADDRESS_SPACE AddressSpace,
|
||||||
PMEMORY_AREA MemoryArea,
|
PMEMORY_AREA MemoryArea,
|
||||||
PVOID BaseAddress,
|
PVOID BaseAddress,
|
||||||
|
|
|
@ -20,6 +20,7 @@ STATIC MADDRESS_SPACE KernelAddressSpace;
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmLockAddressSpace(PMADDRESS_SPACE AddressSpace)
|
MmLockAddressSpace(PMADDRESS_SPACE AddressSpace)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -33,6 +34,7 @@ MmLockAddressSpace(PMADDRESS_SPACE AddressSpace)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmUnlockAddressSpace(PMADDRESS_SPACE AddressSpace)
|
MmUnlockAddressSpace(PMADDRESS_SPACE AddressSpace)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -45,23 +47,30 @@ MmUnlockAddressSpace(PMADDRESS_SPACE AddressSpace)
|
||||||
ExReleaseFastMutex(&AddressSpace->Lock);
|
ExReleaseFastMutex(&AddressSpace->Lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitializeKernelAddressSpace(VOID)
|
MmInitializeKernelAddressSpace(VOID)
|
||||||
{
|
{
|
||||||
MmInitializeAddressSpace(NULL, &KernelAddressSpace);
|
MmInitializeAddressSpace(NULL, &KernelAddressSpace);
|
||||||
}
|
}
|
||||||
|
|
||||||
PMADDRESS_SPACE MmGetCurrentAddressSpace(VOID)
|
PMADDRESS_SPACE
|
||||||
|
NTAPI
|
||||||
|
MmGetCurrentAddressSpace(VOID)
|
||||||
{
|
{
|
||||||
return(&PsGetCurrentProcess()->AddressSpace);
|
return(&PsGetCurrentProcess()->AddressSpace);
|
||||||
}
|
}
|
||||||
|
|
||||||
PMADDRESS_SPACE MmGetKernelAddressSpace(VOID)
|
PMADDRESS_SPACE
|
||||||
|
NTAPI
|
||||||
|
MmGetKernelAddressSpace(VOID)
|
||||||
{
|
{
|
||||||
return(&KernelAddressSpace);
|
return(&KernelAddressSpace);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmInitializeAddressSpace(PEPROCESS Process,
|
MmInitializeAddressSpace(PEPROCESS Process,
|
||||||
PMADDRESS_SPACE AddressSpace)
|
PMADDRESS_SPACE AddressSpace)
|
||||||
{
|
{
|
||||||
|
@ -95,6 +104,7 @@ MmInitializeAddressSpace(PEPROCESS Process,
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmDestroyAddressSpace(PMADDRESS_SPACE AddressSpace)
|
MmDestroyAddressSpace(PMADDRESS_SPACE AddressSpace)
|
||||||
{
|
{
|
||||||
if (AddressSpace->PageTableRefCountTable != NULL)
|
if (AddressSpace->PageTableRefCountTable != NULL)
|
||||||
|
|
|
@ -49,7 +49,9 @@ VOID MmPrintMemoryStatistic(VOID)
|
||||||
MmStats.NrFreePages);
|
MmStats.NrFreePages);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitializeBalancer(ULONG NrAvailablePages, ULONG NrSystemPages)
|
MmInitializeBalancer(ULONG NrAvailablePages, ULONG NrSystemPages)
|
||||||
{
|
{
|
||||||
memset(MiMemoryConsumers, 0, sizeof(MiMemoryConsumers));
|
memset(MiMemoryConsumers, 0, sizeof(MiMemoryConsumers));
|
||||||
|
@ -68,7 +70,9 @@ MmInitializeBalancer(ULONG NrAvailablePages, ULONG NrSystemPages)
|
||||||
MiMemoryConsumers[MC_NPPOOL].PagesUsed = NrSystemPages;
|
MiMemoryConsumers[MC_NPPOOL].PagesUsed = NrSystemPages;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitializeMemoryConsumer(ULONG Consumer,
|
MmInitializeMemoryConsumer(ULONG Consumer,
|
||||||
NTSTATUS (*Trim)(ULONG Target, ULONG Priority,
|
NTSTATUS (*Trim)(ULONG Target, ULONG Priority,
|
||||||
PULONG NrFreed))
|
PULONG NrFreed))
|
||||||
|
@ -77,6 +81,7 @@ MmInitializeMemoryConsumer(ULONG Consumer,
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmReleasePageMemoryConsumer(ULONG Consumer, PFN_TYPE Page)
|
MmReleasePageMemoryConsumer(ULONG Consumer, PFN_TYPE Page)
|
||||||
{
|
{
|
||||||
PMM_ALLOCATION_REQUEST Request;
|
PMM_ALLOCATION_REQUEST Request;
|
||||||
|
@ -117,6 +122,7 @@ MmReleasePageMemoryConsumer(ULONG Consumer, PFN_TYPE Page)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MiTrimMemoryConsumer(ULONG Consumer)
|
MiTrimMemoryConsumer(ULONG Consumer)
|
||||||
{
|
{
|
||||||
LONG Target;
|
LONG Target;
|
||||||
|
@ -136,6 +142,7 @@ MiTrimMemoryConsumer(ULONG Consumer)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmRebalanceMemoryConsumers(VOID)
|
MmRebalanceMemoryConsumers(VOID)
|
||||||
{
|
{
|
||||||
LONG Target;
|
LONG Target;
|
||||||
|
@ -168,6 +175,7 @@ MiIsBalancerThread(VOID)
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmRequestPageMemoryConsumer(ULONG Consumer, BOOLEAN CanWait,
|
MmRequestPageMemoryConsumer(ULONG Consumer, BOOLEAN CanWait,
|
||||||
PPFN_TYPE AllocatedPage)
|
PPFN_TYPE AllocatedPage)
|
||||||
{
|
{
|
||||||
|
@ -353,7 +361,9 @@ MiBalancerThread(PVOID Unused)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MiInitBalancerThread(VOID)
|
MiInitBalancerThread(VOID)
|
||||||
{
|
{
|
||||||
KPRIORITY Priority;
|
KPRIORITY Priority;
|
||||||
|
|
|
@ -66,6 +66,7 @@ static ULONG UnzeroedPageCount = 0;
|
||||||
/* FUNCTIONS *************************************************************/
|
/* FUNCTIONS *************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmTransferOwnershipPage(PFN_TYPE Pfn, ULONG NewConsumer)
|
MmTransferOwnershipPage(PFN_TYPE Pfn, ULONG NewConsumer)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -95,6 +96,7 @@ MmTransferOwnershipPage(PFN_TYPE Pfn, ULONG NewConsumer)
|
||||||
}
|
}
|
||||||
|
|
||||||
PFN_TYPE
|
PFN_TYPE
|
||||||
|
NTAPI
|
||||||
MmGetLRUFirstUserPage(VOID)
|
MmGetLRUFirstUserPage(VOID)
|
||||||
{
|
{
|
||||||
PLIST_ENTRY NextListEntry;
|
PLIST_ENTRY NextListEntry;
|
||||||
|
@ -114,6 +116,7 @@ MmGetLRUFirstUserPage(VOID)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmSetLRULastPage(PFN_TYPE Pfn)
|
MmSetLRULastPage(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -131,6 +134,7 @@ MmSetLRULastPage(PFN_TYPE Pfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
PFN_TYPE
|
PFN_TYPE
|
||||||
|
NTAPI
|
||||||
MmGetLRUNextUserPage(PFN_TYPE PreviousPfn)
|
MmGetLRUNextUserPage(PFN_TYPE PreviousPfn)
|
||||||
{
|
{
|
||||||
PLIST_ENTRY NextListEntry;
|
PLIST_ENTRY NextListEntry;
|
||||||
|
@ -158,6 +162,7 @@ MmGetLRUNextUserPage(PFN_TYPE PreviousPfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
PFN_TYPE
|
PFN_TYPE
|
||||||
|
NTAPI
|
||||||
MmGetContinuousPages(ULONG NumberOfBytes,
|
MmGetContinuousPages(ULONG NumberOfBytes,
|
||||||
PHYSICAL_ADDRESS LowestAcceptableAddress,
|
PHYSICAL_ADDRESS LowestAcceptableAddress,
|
||||||
PHYSICAL_ADDRESS HighestAcceptableAddress,
|
PHYSICAL_ADDRESS HighestAcceptableAddress,
|
||||||
|
@ -261,6 +266,7 @@ MmGetContinuousPages(ULONG NumberOfBytes,
|
||||||
|
|
||||||
|
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
MiIsPfnRam(PADDRESS_RANGE BIOSMemoryMap,
|
MiIsPfnRam(PADDRESS_RANGE BIOSMemoryMap,
|
||||||
ULONG AddressRangeCount,
|
ULONG AddressRangeCount,
|
||||||
PFN_TYPE Pfn)
|
PFN_TYPE Pfn)
|
||||||
|
@ -301,7 +307,9 @@ MiIsPfnRam(PADDRESS_RANGE BIOSMemoryMap,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PVOID INIT_FUNCTION
|
PVOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitializePageList(ULONG_PTR FirstPhysKernelAddress,
|
MmInitializePageList(ULONG_PTR FirstPhysKernelAddress,
|
||||||
ULONG_PTR LastPhysKernelAddress,
|
ULONG_PTR LastPhysKernelAddress,
|
||||||
ULONG MemorySizeInPages,
|
ULONG MemorySizeInPages,
|
||||||
|
@ -536,6 +544,7 @@ MmInitializePageList(ULONG_PTR FirstPhysKernelAddress,
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmSetFlagsPage(PFN_TYPE Pfn, ULONG Flags)
|
MmSetFlagsPage(PFN_TYPE Pfn, ULONG Flags)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -547,18 +556,21 @@ MmSetFlagsPage(PFN_TYPE Pfn, ULONG Flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmSetRmapListHeadPage(PFN_TYPE Pfn, struct _MM_RMAP_ENTRY* ListHead)
|
MmSetRmapListHeadPage(PFN_TYPE Pfn, struct _MM_RMAP_ENTRY* ListHead)
|
||||||
{
|
{
|
||||||
MmPageArray[Pfn].RmapListHead = ListHead;
|
MmPageArray[Pfn].RmapListHead = ListHead;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct _MM_RMAP_ENTRY*
|
struct _MM_RMAP_ENTRY*
|
||||||
|
NTAPI
|
||||||
MmGetRmapListHeadPage(PFN_TYPE Pfn)
|
MmGetRmapListHeadPage(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
return(MmPageArray[Pfn].RmapListHead);
|
return(MmPageArray[Pfn].RmapListHead);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmMarkPageMapped(PFN_TYPE Pfn)
|
MmMarkPageMapped(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -577,6 +589,7 @@ MmMarkPageMapped(PFN_TYPE Pfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmMarkPageUnmapped(PFN_TYPE Pfn)
|
MmMarkPageUnmapped(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -600,6 +613,7 @@ MmMarkPageUnmapped(PFN_TYPE Pfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
ULONG
|
ULONG
|
||||||
|
NTAPI
|
||||||
MmGetFlagsPage(PFN_TYPE Pfn)
|
MmGetFlagsPage(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -615,6 +629,7 @@ MmGetFlagsPage(PFN_TYPE Pfn)
|
||||||
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmSetSavedSwapEntryPage(PFN_TYPE Pfn, SWAPENTRY SavedSwapEntry)
|
MmSetSavedSwapEntryPage(PFN_TYPE Pfn, SWAPENTRY SavedSwapEntry)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -626,6 +641,7 @@ MmSetSavedSwapEntryPage(PFN_TYPE Pfn, SWAPENTRY SavedSwapEntry)
|
||||||
}
|
}
|
||||||
|
|
||||||
SWAPENTRY
|
SWAPENTRY
|
||||||
|
NTAPI
|
||||||
MmGetSavedSwapEntryPage(PFN_TYPE Pfn)
|
MmGetSavedSwapEntryPage(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
SWAPENTRY SavedSwapEntry;
|
SWAPENTRY SavedSwapEntry;
|
||||||
|
@ -640,6 +656,7 @@ MmGetSavedSwapEntryPage(PFN_TYPE Pfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmReferencePageUnsafe(PFN_TYPE Pfn)
|
MmReferencePageUnsafe(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -664,6 +681,7 @@ MmReferencePageUnsafe(PFN_TYPE Pfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmReferencePage(PFN_TYPE Pfn)
|
MmReferencePage(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
DPRINT("MmReferencePage(PysicalAddress %x)\n", Pfn << PAGE_SHIFT);
|
DPRINT("MmReferencePage(PysicalAddress %x)\n", Pfn << PAGE_SHIFT);
|
||||||
|
@ -677,6 +695,7 @@ MmReferencePage(PFN_TYPE Pfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
ULONG
|
ULONG
|
||||||
|
NTAPI
|
||||||
MmGetReferenceCountPage(PFN_TYPE Pfn)
|
MmGetReferenceCountPage(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -704,6 +723,7 @@ MmGetReferenceCountPage(PFN_TYPE Pfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
MmIsUsablePage(PFN_TYPE Pfn)
|
MmIsUsablePage(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -724,6 +744,7 @@ MmIsUsablePage(PFN_TYPE Pfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmDereferencePage(PFN_TYPE Pfn)
|
MmDereferencePage(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -795,6 +816,7 @@ MmDereferencePage(PFN_TYPE Pfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
ULONG
|
ULONG
|
||||||
|
NTAPI
|
||||||
MmGetLockCountPage(PFN_TYPE Pfn)
|
MmGetLockCountPage(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -822,6 +844,7 @@ MmGetLockCountPage(PFN_TYPE Pfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmLockPageUnsafe(PFN_TYPE Pfn)
|
MmLockPageUnsafe(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -846,6 +869,7 @@ MmLockPageUnsafe(PFN_TYPE Pfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmLockPage(PFN_TYPE Pfn)
|
MmLockPage(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
DPRINT("MmLockPage(PhysicalAddress %x)\n", Pfn << PAGE_SHIFT);
|
DPRINT("MmLockPage(PhysicalAddress %x)\n", Pfn << PAGE_SHIFT);
|
||||||
|
@ -859,6 +883,7 @@ MmLockPage(PFN_TYPE Pfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmUnlockPage(PFN_TYPE Pfn)
|
MmUnlockPage(PFN_TYPE Pfn)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -883,6 +908,7 @@ MmUnlockPage(PFN_TYPE Pfn)
|
||||||
}
|
}
|
||||||
|
|
||||||
PFN_TYPE
|
PFN_TYPE
|
||||||
|
NTAPI
|
||||||
MmAllocPage(ULONG Consumer, SWAPENTRY SavedSwapEntry)
|
MmAllocPage(ULONG Consumer, SWAPENTRY SavedSwapEntry)
|
||||||
{
|
{
|
||||||
PFN_TYPE PfnOffset;
|
PFN_TYPE PfnOffset;
|
||||||
|
@ -958,6 +984,7 @@ MmAllocPage(ULONG Consumer, SWAPENTRY SavedSwapEntry)
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG
|
LONG
|
||||||
|
NTAPI
|
||||||
MmAllocPagesSpecifyRange(ULONG Consumer,
|
MmAllocPagesSpecifyRange(ULONG Consumer,
|
||||||
PHYSICAL_ADDRESS LowestAddress,
|
PHYSICAL_ADDRESS LowestAddress,
|
||||||
PHYSICAL_ADDRESS HighestAddress,
|
PHYSICAL_ADDRESS HighestAddress,
|
||||||
|
@ -1174,7 +1201,9 @@ MmZeroPageThreadMain(PVOID Ignored)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS INIT_FUNCTION
|
NTSTATUS
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitZeroPageThread(VOID)
|
MmInitZeroPageThread(VOID)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
|
@ -195,7 +195,9 @@ ProtectToPTE(ULONG flProtect)
|
||||||
#define PAE_ADDR_TO_PTE_OFFSET(v) ((((ULONG_PTR)(v)) % (512 * PAGE_SIZE)) / PAGE_SIZE)
|
#define PAE_ADDR_TO_PTE_OFFSET(v) ((((ULONG_PTR)(v)) % (512 * PAGE_SIZE)) / PAGE_SIZE)
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS Mmi386ReleaseMmInfo(PEPROCESS Process)
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
Mmi386ReleaseMmInfo(PEPROCESS Process)
|
||||||
{
|
{
|
||||||
PUSHORT LdtDescriptor;
|
PUSHORT LdtDescriptor;
|
||||||
ULONG LdtBase;
|
ULONG LdtBase;
|
||||||
|
@ -398,7 +400,9 @@ MmCopyMmInfo(PEPROCESS Src,
|
||||||
return(STATUS_SUCCESS);
|
return(STATUS_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID MmDeletePageTable(PEPROCESS Process, PVOID Address)
|
VOID
|
||||||
|
NTAPI
|
||||||
|
MmDeletePageTable(PEPROCESS Process, PVOID Address)
|
||||||
{
|
{
|
||||||
PEPROCESS CurrentProcess = PsGetCurrentProcess();
|
PEPROCESS CurrentProcess = PsGetCurrentProcess();
|
||||||
|
|
||||||
|
@ -429,7 +433,9 @@ VOID MmDeletePageTable(PEPROCESS Process, PVOID Address)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID MmFreePageTable(PEPROCESS Process, PVOID Address)
|
VOID
|
||||||
|
NTAPI
|
||||||
|
MmFreePageTable(PEPROCESS Process, PVOID Address)
|
||||||
{
|
{
|
||||||
PEPROCESS CurrentProcess = PsGetCurrentProcess();
|
PEPROCESS CurrentProcess = PsGetCurrentProcess();
|
||||||
ULONG i;
|
ULONG i;
|
||||||
|
@ -755,6 +761,7 @@ static ULONG MmGetPageEntryForProcess(PEPROCESS Process, PVOID Address)
|
||||||
}
|
}
|
||||||
|
|
||||||
PFN_TYPE
|
PFN_TYPE
|
||||||
|
NTAPI
|
||||||
MmGetPfnForProcess(PEPROCESS Process,
|
MmGetPfnForProcess(PEPROCESS Process,
|
||||||
PVOID Address)
|
PVOID Address)
|
||||||
{
|
{
|
||||||
|
@ -782,6 +789,7 @@ MmGetPfnForProcess(PEPROCESS Process,
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmDisableVirtualMapping(PEPROCESS Process, PVOID Address, BOOL* WasDirty, PPFN_TYPE Page)
|
MmDisableVirtualMapping(PEPROCESS Process, PVOID Address, BOOL* WasDirty, PPFN_TYPE Page)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Delete a virtual mapping
|
* FUNCTION: Delete a virtual mapping
|
||||||
|
@ -867,6 +875,7 @@ MmDisableVirtualMapping(PEPROCESS Process, PVOID Address, BOOL* WasDirty, PPFN_T
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmRawDeleteVirtualMapping(PVOID Address)
|
MmRawDeleteVirtualMapping(PVOID Address)
|
||||||
{
|
{
|
||||||
if (Ke386Pae)
|
if (Ke386Pae)
|
||||||
|
@ -900,6 +909,7 @@ MmRawDeleteVirtualMapping(PVOID Address)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmDeleteVirtualMapping(PEPROCESS Process, PVOID Address, BOOL FreePage,
|
MmDeleteVirtualMapping(PEPROCESS Process, PVOID Address, BOOL FreePage,
|
||||||
BOOL* WasDirty, PPFN_TYPE Page)
|
BOOL* WasDirty, PPFN_TYPE Page)
|
||||||
/*
|
/*
|
||||||
|
@ -1043,6 +1053,7 @@ MmDeleteVirtualMapping(PEPROCESS Process, PVOID Address, BOOL FreePage,
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmDeletePageFileMapping(PEPROCESS Process, PVOID Address,
|
MmDeletePageFileMapping(PEPROCESS Process, PVOID Address,
|
||||||
SWAPENTRY* SwapEntry)
|
SWAPENTRY* SwapEntry)
|
||||||
/*
|
/*
|
||||||
|
@ -1180,7 +1191,9 @@ Mmi386MakeKernelPageTableGlobal(PVOID PAddress)
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN MmIsDirtyPage(PEPROCESS Process, PVOID Address)
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
|
MmIsDirtyPage(PEPROCESS Process, PVOID Address)
|
||||||
{
|
{
|
||||||
if (Ke386Pae)
|
if (Ke386Pae)
|
||||||
{
|
{
|
||||||
|
@ -1193,6 +1206,7 @@ BOOLEAN MmIsDirtyPage(PEPROCESS Process, PVOID Address)
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
MmIsAccessedAndResetAccessPage(PEPROCESS Process, PVOID Address)
|
MmIsAccessedAndResetAccessPage(PEPROCESS Process, PVOID Address)
|
||||||
{
|
{
|
||||||
if (Address < MmSystemRangeStart && Process == NULL)
|
if (Address < MmSystemRangeStart && Process == NULL)
|
||||||
|
@ -1258,7 +1272,9 @@ MmIsAccessedAndResetAccessPage(PEPROCESS Process, PVOID Address)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID MmSetCleanPage(PEPROCESS Process, PVOID Address)
|
VOID
|
||||||
|
NTAPI
|
||||||
|
MmSetCleanPage(PEPROCESS Process, PVOID Address)
|
||||||
{
|
{
|
||||||
if (Address < MmSystemRangeStart && Process == NULL)
|
if (Address < MmSystemRangeStart && Process == NULL)
|
||||||
{
|
{
|
||||||
|
@ -1321,7 +1337,9 @@ VOID MmSetCleanPage(PEPROCESS Process, PVOID Address)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID MmSetDirtyPage(PEPROCESS Process, PVOID Address)
|
VOID
|
||||||
|
NTAPI
|
||||||
|
MmSetDirtyPage(PEPROCESS Process, PVOID Address)
|
||||||
{
|
{
|
||||||
if (Address < MmSystemRangeStart && Process == NULL)
|
if (Address < MmSystemRangeStart && Process == NULL)
|
||||||
{
|
{
|
||||||
|
@ -1380,7 +1398,9 @@ VOID MmSetDirtyPage(PEPROCESS Process, PVOID Address)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID MmEnableVirtualMapping(PEPROCESS Process, PVOID Address)
|
VOID
|
||||||
|
NTAPI
|
||||||
|
MmEnableVirtualMapping(PEPROCESS Process, PVOID Address)
|
||||||
{
|
{
|
||||||
if (Ke386Pae)
|
if (Ke386Pae)
|
||||||
{
|
{
|
||||||
|
@ -1434,7 +1454,9 @@ VOID MmEnableVirtualMapping(PEPROCESS Process, PVOID Address)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN MmIsPagePresent(PEPROCESS Process, PVOID Address)
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
|
MmIsPagePresent(PEPROCESS Process, PVOID Address)
|
||||||
{
|
{
|
||||||
if (Ke386Pae)
|
if (Ke386Pae)
|
||||||
{
|
{
|
||||||
|
@ -1446,7 +1468,9 @@ BOOLEAN MmIsPagePresent(PEPROCESS Process, PVOID Address)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN MmIsPageSwapEntry(PEPROCESS Process, PVOID Address)
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
|
MmIsPageSwapEntry(PEPROCESS Process, PVOID Address)
|
||||||
{
|
{
|
||||||
if (Ke386Pae)
|
if (Ke386Pae)
|
||||||
{
|
{
|
||||||
|
@ -1463,6 +1487,7 @@ BOOLEAN MmIsPageSwapEntry(PEPROCESS Process, PVOID Address)
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmCreateVirtualMappingForKernel(PVOID Address,
|
MmCreateVirtualMappingForKernel(PVOID Address,
|
||||||
ULONG flProtect,
|
ULONG flProtect,
|
||||||
PPFN_TYPE Pages,
|
PPFN_TYPE Pages,
|
||||||
|
@ -1590,6 +1615,7 @@ MmCreateVirtualMappingForKernel(PVOID Address,
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmCreatePageFileMapping(PEPROCESS Process,
|
MmCreatePageFileMapping(PEPROCESS Process,
|
||||||
PVOID Address,
|
PVOID Address,
|
||||||
SWAPENTRY SwapEntry)
|
SWAPENTRY SwapEntry)
|
||||||
|
@ -1677,6 +1703,7 @@ MmCreatePageFileMapping(PEPROCESS Process,
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmCreateVirtualMappingUnsafe(PEPROCESS Process,
|
MmCreateVirtualMappingUnsafe(PEPROCESS Process,
|
||||||
PVOID Address,
|
PVOID Address,
|
||||||
ULONG flProtect,
|
ULONG flProtect,
|
||||||
|
@ -1882,6 +1909,7 @@ MmCreateVirtualMappingUnsafe(PEPROCESS Process,
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmCreateVirtualMapping(PEPROCESS Process,
|
MmCreateVirtualMapping(PEPROCESS Process,
|
||||||
PVOID Address,
|
PVOID Address,
|
||||||
ULONG flProtect,
|
ULONG flProtect,
|
||||||
|
@ -1907,6 +1935,7 @@ MmCreateVirtualMapping(PEPROCESS Process,
|
||||||
}
|
}
|
||||||
|
|
||||||
ULONG
|
ULONG
|
||||||
|
NTAPI
|
||||||
MmGetPageProtect(PEPROCESS Process, PVOID Address)
|
MmGetPageProtect(PEPROCESS Process, PVOID Address)
|
||||||
{
|
{
|
||||||
ULONG Entry;
|
ULONG Entry;
|
||||||
|
@ -1952,6 +1981,7 @@ MmGetPageProtect(PEPROCESS Process, PVOID Address)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmSetPageProtect(PEPROCESS Process, PVOID Address, ULONG flProtect)
|
MmSetPageProtect(PEPROCESS Process, PVOID Address, ULONG flProtect)
|
||||||
{
|
{
|
||||||
ULONG Attributes = 0;
|
ULONG Attributes = 0;
|
||||||
|
@ -2063,6 +2093,7 @@ MmGetPhysicalAddress(PVOID vaddr)
|
||||||
}
|
}
|
||||||
|
|
||||||
PVOID
|
PVOID
|
||||||
|
NTAPI
|
||||||
MmCreateHyperspaceMapping(PFN_TYPE Page)
|
MmCreateHyperspaceMapping(PFN_TYPE Page)
|
||||||
{
|
{
|
||||||
PVOID Address;
|
PVOID Address;
|
||||||
|
@ -2191,6 +2222,7 @@ MmCreateHyperspaceMapping(PFN_TYPE Page)
|
||||||
}
|
}
|
||||||
|
|
||||||
PFN_TYPE
|
PFN_TYPE
|
||||||
|
NTAPI
|
||||||
MmChangeHyperspaceMapping(PVOID Address, PFN_TYPE NewPage)
|
MmChangeHyperspaceMapping(PVOID Address, PFN_TYPE NewPage)
|
||||||
{
|
{
|
||||||
PFN_TYPE Pfn;
|
PFN_TYPE Pfn;
|
||||||
|
@ -2212,6 +2244,7 @@ MmChangeHyperspaceMapping(PVOID Address, PFN_TYPE NewPage)
|
||||||
}
|
}
|
||||||
|
|
||||||
PFN_TYPE
|
PFN_TYPE
|
||||||
|
NTAPI
|
||||||
MmDeleteHyperspaceMapping(PVOID Address)
|
MmDeleteHyperspaceMapping(PVOID Address)
|
||||||
{
|
{
|
||||||
PFN_TYPE Pfn;
|
PFN_TYPE Pfn;
|
||||||
|
@ -2232,7 +2265,9 @@ MmDeleteHyperspaceMapping(PVOID Address)
|
||||||
return Pfn;
|
return Pfn;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID MmUpdatePageDir(PEPROCESS Process, PVOID Address, ULONG Size)
|
VOID
|
||||||
|
NTAPI
|
||||||
|
MmUpdatePageDir(PEPROCESS Process, PVOID Address, ULONG Size)
|
||||||
{
|
{
|
||||||
ULONG StartOffset, EndOffset, Offset;
|
ULONG StartOffset, EndOffset, Offset;
|
||||||
|
|
||||||
|
@ -2315,7 +2350,9 @@ VOID MmUpdatePageDir(PEPROCESS Process, PVOID Address, ULONG Size)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitGlobalKernelPageDirectory(VOID)
|
MmInitGlobalKernelPageDirectory(VOID)
|
||||||
{
|
{
|
||||||
ULONG i;
|
ULONG i;
|
||||||
|
@ -2361,12 +2398,15 @@ MmInitGlobalKernelPageDirectory(VOID)
|
||||||
}
|
}
|
||||||
|
|
||||||
ULONG
|
ULONG
|
||||||
|
NTAPI
|
||||||
MiGetUserPageDirectoryCount(VOID)
|
MiGetUserPageDirectoryCount(VOID)
|
||||||
{
|
{
|
||||||
return Ke386Pae ? PAE_ADDR_TO_PDE_OFFSET(MmSystemRangeStart) : ADDR_TO_PDE_OFFSET(MmSystemRangeStart);
|
return Ke386Pae ? PAE_ADDR_TO_PDE_OFFSET(MmSystemRangeStart) : ADDR_TO_PDE_OFFSET(MmSystemRangeStart);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MiInitPageDirectoryMap(VOID)
|
MiInitPageDirectoryMap(VOID)
|
||||||
{
|
{
|
||||||
MEMORY_AREA* kernel_map_desc = NULL;
|
MEMORY_AREA* kernel_map_desc = NULL;
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
/* FUNCTIONS ***************************************************************/
|
/* FUNCTIONS ***************************************************************/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MiZeroPage(PFN_TYPE Page)
|
MiZeroPage(PFN_TYPE Page)
|
||||||
{
|
{
|
||||||
PVOID TempAddress;
|
PVOID TempAddress;
|
||||||
|
@ -33,6 +34,7 @@ MiZeroPage(PFN_TYPE Page)
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MiCopyFromUserPage(PFN_TYPE DestPage, PVOID SourceAddress)
|
MiCopyFromUserPage(PFN_TYPE DestPage, PVOID SourceAddress)
|
||||||
{
|
{
|
||||||
PVOID TempAddress;
|
PVOID TempAddress;
|
||||||
|
|
|
@ -705,7 +705,9 @@ MmFindGapAtAddress(
|
||||||
* Initialize the memory area list implementation.
|
* Initialize the memory area list implementation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
NTSTATUS INIT_FUNCTION
|
NTSTATUS
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitMemoryAreas(VOID)
|
MmInitMemoryAreas(VOID)
|
||||||
{
|
{
|
||||||
DPRINT("MmInitMemoryAreas()\n",0);
|
DPRINT("MmInitMemoryAreas()\n",0);
|
||||||
|
|
|
@ -55,7 +55,9 @@ MmAdvanceMdl (
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitializeMdlImplementation(VOID)
|
MmInitializeMdlImplementation(VOID)
|
||||||
{
|
{
|
||||||
MEMORY_AREA* Result;
|
MEMORY_AREA* Result;
|
||||||
|
@ -97,6 +99,7 @@ MmInitializeMdlImplementation(VOID)
|
||||||
|
|
||||||
|
|
||||||
PVOID
|
PVOID
|
||||||
|
NTAPI
|
||||||
MmGetMdlPageAddress(PMDL Mdl, PVOID Offset)
|
MmGetMdlPageAddress(PMDL Mdl, PVOID Offset)
|
||||||
{
|
{
|
||||||
PPFN_NUMBER MdlPages;
|
PPFN_NUMBER MdlPages;
|
||||||
|
@ -298,6 +301,7 @@ MmUnmapReservedMapping (
|
||||||
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmBuildMdlFromPages(PMDL Mdl, PPFN_TYPE Pages)
|
MmBuildMdlFromPages(PMDL Mdl, PPFN_TYPE Pages)
|
||||||
{
|
{
|
||||||
memcpy(Mdl + 1, Pages, sizeof(PFN_TYPE) * (PAGE_ROUND_UP(Mdl->ByteOffset+Mdl->ByteCount)/PAGE_SIZE));
|
memcpy(Mdl + 1, Pages, sizeof(PFN_TYPE) * (PAGE_ROUND_UP(Mdl->ByteOffset+Mdl->ByteCount)/PAGE_SIZE));
|
||||||
|
|
|
@ -69,7 +69,9 @@ NTSTATUS MmReleaseMemoryArea(PEPROCESS Process, PMEMORY_AREA Marea)
|
||||||
return(STATUS_SUCCESS);
|
return(STATUS_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS MmReleaseMmInfo(PEPROCESS Process)
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
MmReleaseMmInfo(PEPROCESS Process)
|
||||||
{
|
{
|
||||||
DPRINT("MmReleaseMmInfo(Process %x (%s))\n", Process,
|
DPRINT("MmReleaseMmInfo(Process %x (%s))\n", Process,
|
||||||
Process->ImageFileName);
|
Process->ImageFileName);
|
||||||
|
@ -136,7 +138,9 @@ BOOLEAN STDCALL MmIsAddressValid(PVOID VirtualAddress)
|
||||||
return(TRUE);
|
return(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS MmAccessFault(KPROCESSOR_MODE Mode,
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
MmAccessFault(KPROCESSOR_MODE Mode,
|
||||||
ULONG_PTR Address,
|
ULONG_PTR Address,
|
||||||
BOOLEAN FromMdl)
|
BOOLEAN FromMdl)
|
||||||
{
|
{
|
||||||
|
@ -234,7 +238,9 @@ NTSTATUS MmAccessFault(KPROCESSOR_MODE Mode,
|
||||||
return(Status);
|
return(Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS MmCommitPagedPoolAddress(PVOID Address, BOOLEAN Locked)
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
MmCommitPagedPoolAddress(PVOID Address, BOOLEAN Locked)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PFN_TYPE AllocatedPage;
|
PFN_TYPE AllocatedPage;
|
||||||
|
@ -258,7 +264,9 @@ NTSTATUS MmCommitPagedPoolAddress(PVOID Address, BOOLEAN Locked)
|
||||||
return(Status);
|
return(Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS MmNotPresentFault(KPROCESSOR_MODE Mode,
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
MmNotPresentFault(KPROCESSOR_MODE Mode,
|
||||||
ULONG_PTR Address,
|
ULONG_PTR Address,
|
||||||
BOOLEAN FromMdl)
|
BOOLEAN FromMdl)
|
||||||
{
|
{
|
||||||
|
|
|
@ -69,10 +69,14 @@ MM_SYSTEM_SIZE STDCALL MmQuerySystemSize(VOID)
|
||||||
return(MmSystemSize);
|
return(MmSystemSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID MiShutdownMemoryManager(VOID)
|
VOID
|
||||||
|
NTAPI
|
||||||
|
MiShutdownMemoryManager(VOID)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitVirtualMemory(ULONG_PTR LastKernelAddress,
|
MmInitVirtualMemory(ULONG_PTR LastKernelAddress,
|
||||||
ULONG KernelLength)
|
ULONG KernelLength)
|
||||||
/*
|
/*
|
||||||
|
@ -277,7 +281,9 @@ MmInitVirtualMemory(ULONG_PTR LastKernelAddress,
|
||||||
MmInitializeMemoryConsumer(MC_USER, MmTrimUserMemory);
|
MmInitializeMemoryConsumer(MC_USER, MmTrimUserMemory);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInit1(ULONG_PTR FirstKrnlPhysAddr,
|
MmInit1(ULONG_PTR FirstKrnlPhysAddr,
|
||||||
ULONG_PTR LastKrnlPhysAddr,
|
ULONG_PTR LastKrnlPhysAddr,
|
||||||
ULONG_PTR LastKernelAddress,
|
ULONG_PTR LastKernelAddress,
|
||||||
|
@ -423,7 +429,9 @@ MmInit1(ULONG_PTR FirstKrnlPhysAddr,
|
||||||
MmInitializeMdlImplementation();
|
MmInitializeMdlImplementation();
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
NTAPI
|
||||||
|
INIT_FUNCTION
|
||||||
MmInit2(VOID)
|
MmInit2(VOID)
|
||||||
{
|
{
|
||||||
MmInitializeRmapList();
|
MmInitializeRmapList();
|
||||||
|
@ -432,7 +440,9 @@ MmInit2(VOID)
|
||||||
MmInitPagingFile();
|
MmInitPagingFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInit3(VOID)
|
MmInit3(VOID)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -469,6 +479,7 @@ MiFreeInitMemoryPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address,
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MiFreeInitMemory(VOID)
|
MiFreeInitMemory(VOID)
|
||||||
{
|
{
|
||||||
MmLockAddressSpace(MmGetKernelAddressSpace());
|
MmLockAddressSpace(MmGetKernelAddressSpace());
|
||||||
|
|
|
@ -93,7 +93,9 @@ MmMpwThreadMain(PVOID Ignored)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS MmInitMpwThread(VOID)
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
MmInitMpwThread(VOID)
|
||||||
{
|
{
|
||||||
KPRIORITY Priority;
|
KPRIORITY Priority;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
|
@ -776,6 +776,7 @@ MiDumpTagStats(ULONG CurrentTag, ULONG CurrentNrBlocks, ULONG CurrentSize)
|
||||||
#endif /* defined(TAG_STATISTICS_TRACKING) */
|
#endif /* defined(TAG_STATISTICS_TRACKING) */
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MiDebugDumpNonPagedPoolStats(BOOLEAN NewOnly)
|
MiDebugDumpNonPagedPoolStats(BOOLEAN NewOnly)
|
||||||
{
|
{
|
||||||
#if defined(TAG_STATISTICS_TRACKING)
|
#if defined(TAG_STATISTICS_TRACKING)
|
||||||
|
@ -857,6 +858,7 @@ MiDebugDumpNonPagedPoolStats(BOOLEAN NewOnly)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MiDebugDumpNonPagedPool(BOOLEAN NewOnly)
|
MiDebugDumpNonPagedPool(BOOLEAN NewOnly)
|
||||||
{
|
{
|
||||||
#if defined(POOL_DEBUG_APIS)
|
#if defined(POOL_DEBUG_APIS)
|
||||||
|
@ -1577,7 +1579,9 @@ ExAllocateNonPagedPoolWithTag(POOL_TYPE Type, ULONG Size, ULONG Tag, PVOID Calle
|
||||||
return(block);
|
return(block);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MiInitializeNonPagedPool(VOID)
|
MiInitializeNonPagedPool(VOID)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
|
@ -135,6 +135,7 @@ MmIsFileAPagingFile(PFILE_OBJECT FileObject)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmShowOutOfSpaceMessagePagingFile(VOID)
|
MmShowOutOfSpaceMessagePagingFile(VOID)
|
||||||
{
|
{
|
||||||
if (!MmSwapSpaceMessage)
|
if (!MmSwapSpaceMessage)
|
||||||
|
@ -201,7 +202,9 @@ MmGetOffsetPageFile(PRETRIEVAL_POINTERS_BUFFER RetrievalPointers, LARGE_INTEGER
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS MmWriteToSwapPage(SWAPENTRY SwapEntry, PFN_TYPE Page)
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
MmWriteToSwapPage(SWAPENTRY SwapEntry, PFN_TYPE Page)
|
||||||
{
|
{
|
||||||
ULONG i, offset;
|
ULONG i, offset;
|
||||||
LARGE_INTEGER file_offset;
|
LARGE_INTEGER file_offset;
|
||||||
|
@ -255,7 +258,9 @@ NTSTATUS MmWriteToSwapPage(SWAPENTRY SwapEntry, PFN_TYPE Page)
|
||||||
return(Status);
|
return(Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS MmReadFromSwapPage(SWAPENTRY SwapEntry, PFN_TYPE Page)
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
MmReadFromSwapPage(SWAPENTRY SwapEntry, PFN_TYPE Page)
|
||||||
{
|
{
|
||||||
ULONG i, offset;
|
ULONG i, offset;
|
||||||
LARGE_INTEGER file_offset;
|
LARGE_INTEGER file_offset;
|
||||||
|
@ -309,7 +314,9 @@ NTSTATUS MmReadFromSwapPage(SWAPENTRY SwapEntry, PFN_TYPE Page)
|
||||||
return(Status);
|
return(Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitPagingFile(VOID)
|
MmInitPagingFile(VOID)
|
||||||
{
|
{
|
||||||
ULONG i;
|
ULONG i;
|
||||||
|
@ -344,6 +351,7 @@ MmInitPagingFile(VOID)
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
MmReserveSwapPages(ULONG Nr)
|
MmReserveSwapPages(ULONG Nr)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -363,6 +371,7 @@ MmReserveSwapPages(ULONG Nr)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmDereserveSwapPages(ULONG Nr)
|
MmDereserveSwapPages(ULONG Nr)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
@ -400,6 +409,7 @@ MiAllocPageFromPagingFile(PPAGINGFILE PagingFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmFreeSwapPage(SWAPENTRY Entry)
|
MmFreeSwapPage(SWAPENTRY Entry)
|
||||||
{
|
{
|
||||||
ULONG i;
|
ULONG i;
|
||||||
|
@ -435,12 +445,14 @@ MmFreeSwapPage(SWAPENTRY Entry)
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
MmIsAvailableSwapPage(VOID)
|
MmIsAvailableSwapPage(VOID)
|
||||||
{
|
{
|
||||||
return(MiFreeSwapPages > 0);
|
return(MiFreeSwapPages > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
SWAPENTRY
|
SWAPENTRY
|
||||||
|
NTAPI
|
||||||
MmAllocSwapPage(VOID)
|
MmAllocSwapPage(VOID)
|
||||||
{
|
{
|
||||||
KIRQL oldIrql;
|
KIRQL oldIrql;
|
||||||
|
|
|
@ -25,6 +25,7 @@ static NPAGED_LOOKASIDE_LIST MmPageOpLookasideList;
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmReleasePageOp(PMM_PAGEOP PageOp)
|
MmReleasePageOp(PMM_PAGEOP PageOp)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Release a reference to a page operation descriptor
|
* FUNCTION: Release a reference to a page operation descriptor
|
||||||
|
@ -65,6 +66,7 @@ MmReleasePageOp(PMM_PAGEOP PageOp)
|
||||||
}
|
}
|
||||||
|
|
||||||
PMM_PAGEOP
|
PMM_PAGEOP
|
||||||
|
NTAPI
|
||||||
MmCheckForPageOp(PMEMORY_AREA MArea, HANDLE Pid, PVOID Address,
|
MmCheckForPageOp(PMEMORY_AREA MArea, HANDLE Pid, PVOID Address,
|
||||||
PMM_SECTION_SEGMENT Segment, ULONG Offset)
|
PMM_SECTION_SEGMENT Segment, ULONG Offset)
|
||||||
{
|
{
|
||||||
|
@ -127,6 +129,7 @@ MmCheckForPageOp(PMEMORY_AREA MArea, HANDLE Pid, PVOID Address,
|
||||||
}
|
}
|
||||||
|
|
||||||
PMM_PAGEOP
|
PMM_PAGEOP
|
||||||
|
NTAPI
|
||||||
MmGetPageOp(PMEMORY_AREA MArea, HANDLE Pid, PVOID Address,
|
MmGetPageOp(PMEMORY_AREA MArea, HANDLE Pid, PVOID Address,
|
||||||
PMM_SECTION_SEGMENT Segment, ULONG Offset, ULONG OpType, BOOL First)
|
PMM_SECTION_SEGMENT Segment, ULONG Offset, ULONG OpType, BOOL First)
|
||||||
/*
|
/*
|
||||||
|
@ -234,7 +237,9 @@ MmGetPageOp(PMEMORY_AREA MArea, HANDLE Pid, PVOID Address,
|
||||||
return(PageOp);
|
return(PageOp);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitializePageOp(VOID)
|
MmInitializePageOp(VOID)
|
||||||
{
|
{
|
||||||
memset(MmPageOpHashTable, 0, sizeof(MmPageOpHashTable));
|
memset(MmPageOpHashTable, 0, sizeof(MmPageOpHashTable));
|
||||||
|
|
|
@ -43,7 +43,9 @@ static PR_POOL MmPagedPool = NULL;
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitializePagedPool(VOID)
|
MmInitializePagedPool(VOID)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -105,6 +105,7 @@ MmSplitRegion(PMM_REGION InitialRegion, PVOID InitialBaseAddress,
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmAlterRegion(PMADDRESS_SPACE AddressSpace, PVOID BaseAddress,
|
MmAlterRegion(PMADDRESS_SPACE AddressSpace, PVOID BaseAddress,
|
||||||
PLIST_ENTRY RegionListHead, PVOID StartAddress, ULONG Length,
|
PLIST_ENTRY RegionListHead, PVOID StartAddress, ULONG Length,
|
||||||
ULONG NewType, ULONG NewProtect, PMM_ALTER_REGION_FUNC AlterFunc)
|
ULONG NewType, ULONG NewProtect, PMM_ALTER_REGION_FUNC AlterFunc)
|
||||||
|
@ -237,6 +238,7 @@ MmAlterRegion(PMADDRESS_SPACE AddressSpace, PVOID BaseAddress,
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmInitialiseRegion(PLIST_ENTRY RegionListHead, ULONG Length, ULONG Type,
|
MmInitialiseRegion(PLIST_ENTRY RegionListHead, ULONG Length, ULONG Type,
|
||||||
ULONG Protect)
|
ULONG Protect)
|
||||||
{
|
{
|
||||||
|
@ -252,6 +254,7 @@ MmInitialiseRegion(PLIST_ENTRY RegionListHead, ULONG Length, ULONG Type,
|
||||||
}
|
}
|
||||||
|
|
||||||
PMM_REGION
|
PMM_REGION
|
||||||
|
NTAPI
|
||||||
MmFindRegion(PVOID BaseAddress, PLIST_ENTRY RegionListHead, PVOID Address,
|
MmFindRegion(PVOID BaseAddress, PLIST_ENTRY RegionListHead, PVOID Address,
|
||||||
PVOID* RegionBaseAddress)
|
PVOID* RegionBaseAddress)
|
||||||
{
|
{
|
||||||
|
|
|
@ -34,7 +34,9 @@ static NPAGED_LOOKASIDE_LIST RmapLookasideList;
|
||||||
|
|
||||||
/* FUNCTIONS ****************************************************************/
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitializeRmapList(VOID)
|
MmInitializeRmapList(VOID)
|
||||||
{
|
{
|
||||||
ExInitializeFastMutex(&RmapListLock);
|
ExInitializeFastMutex(&RmapListLock);
|
||||||
|
@ -48,6 +50,7 @@ MmInitializeRmapList(VOID)
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmWritePagePhysicalAddress(PFN_TYPE Page)
|
MmWritePagePhysicalAddress(PFN_TYPE Page)
|
||||||
{
|
{
|
||||||
PMM_RMAP_ENTRY entry;
|
PMM_RMAP_ENTRY entry;
|
||||||
|
@ -181,6 +184,7 @@ MmWritePagePhysicalAddress(PFN_TYPE Page)
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmPageOutPhysicalAddress(PFN_TYPE Page)
|
MmPageOutPhysicalAddress(PFN_TYPE Page)
|
||||||
{
|
{
|
||||||
PMM_RMAP_ENTRY entry;
|
PMM_RMAP_ENTRY entry;
|
||||||
|
@ -304,6 +308,7 @@ MmPageOutPhysicalAddress(PFN_TYPE Page)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmSetCleanAllRmaps(PFN_TYPE Page)
|
MmSetCleanAllRmaps(PFN_TYPE Page)
|
||||||
{
|
{
|
||||||
PMM_RMAP_ENTRY current_entry;
|
PMM_RMAP_ENTRY current_entry;
|
||||||
|
@ -324,6 +329,7 @@ MmSetCleanAllRmaps(PFN_TYPE Page)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmSetDirtyAllRmaps(PFN_TYPE Page)
|
MmSetDirtyAllRmaps(PFN_TYPE Page)
|
||||||
{
|
{
|
||||||
PMM_RMAP_ENTRY current_entry;
|
PMM_RMAP_ENTRY current_entry;
|
||||||
|
@ -344,6 +350,7 @@ MmSetDirtyAllRmaps(PFN_TYPE Page)
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
|
NTAPI
|
||||||
MmIsDirtyPageRmap(PFN_TYPE Page)
|
MmIsDirtyPageRmap(PFN_TYPE Page)
|
||||||
{
|
{
|
||||||
PMM_RMAP_ENTRY current_entry;
|
PMM_RMAP_ENTRY current_entry;
|
||||||
|
@ -369,6 +376,7 @@ MmIsDirtyPageRmap(PFN_TYPE Page)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmInsertRmap(PFN_TYPE Page, PEPROCESS Process,
|
MmInsertRmap(PFN_TYPE Page, PEPROCESS Process,
|
||||||
PVOID Address)
|
PVOID Address)
|
||||||
{
|
{
|
||||||
|
@ -434,6 +442,7 @@ MmInsertRmap(PFN_TYPE Page, PEPROCESS Process,
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmDeleteAllRmaps(PFN_TYPE Page, PVOID Context,
|
MmDeleteAllRmaps(PFN_TYPE Page, PVOID Context,
|
||||||
VOID (*DeleteMapping)(PVOID Context, PEPROCESS Process,
|
VOID (*DeleteMapping)(PVOID Context, PEPROCESS Process,
|
||||||
PVOID Address))
|
PVOID Address))
|
||||||
|
@ -474,6 +483,7 @@ MmDeleteAllRmaps(PFN_TYPE Page, PVOID Context,
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmDeleteRmap(PFN_TYPE Page, PEPROCESS Process,
|
MmDeleteRmap(PFN_TYPE Page, PEPROCESS Process,
|
||||||
PVOID Address)
|
PVOID Address)
|
||||||
{
|
{
|
||||||
|
|
|
@ -157,6 +157,7 @@ MmFreePageTablesSectionSegment(PMM_SECTION_SEGMENT Segment)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmFreeSectionSegments(PFILE_OBJECT FileObject)
|
MmFreeSectionSegments(PFILE_OBJECT FileObject)
|
||||||
{
|
{
|
||||||
if (FileObject->SectionObjectPointer->ImageSectionObject != NULL)
|
if (FileObject->SectionObjectPointer->ImageSectionObject != NULL)
|
||||||
|
@ -202,18 +203,21 @@ MmFreeSectionSegments(PFILE_OBJECT FileObject)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmLockSectionSegment(PMM_SECTION_SEGMENT Segment)
|
MmLockSectionSegment(PMM_SECTION_SEGMENT Segment)
|
||||||
{
|
{
|
||||||
ExAcquireFastMutex(&Segment->Lock);
|
ExAcquireFastMutex(&Segment->Lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmUnlockSectionSegment(PMM_SECTION_SEGMENT Segment)
|
MmUnlockSectionSegment(PMM_SECTION_SEGMENT Segment)
|
||||||
{
|
{
|
||||||
ExReleaseFastMutex(&Segment->Lock);
|
ExReleaseFastMutex(&Segment->Lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmSetPageEntrySectionSegment(PMM_SECTION_SEGMENT Segment,
|
MmSetPageEntrySectionSegment(PMM_SECTION_SEGMENT Segment,
|
||||||
ULONG Offset,
|
ULONG Offset,
|
||||||
ULONG Entry)
|
ULONG Entry)
|
||||||
|
@ -250,6 +254,7 @@ MmSetPageEntrySectionSegment(PMM_SECTION_SEGMENT Segment,
|
||||||
|
|
||||||
|
|
||||||
ULONG
|
ULONG
|
||||||
|
NTAPI
|
||||||
MmGetPageEntrySectionSegment(PMM_SECTION_SEGMENT Segment,
|
MmGetPageEntrySectionSegment(PMM_SECTION_SEGMENT Segment,
|
||||||
ULONG Offset)
|
ULONG Offset)
|
||||||
{
|
{
|
||||||
|
@ -280,6 +285,7 @@ MmGetPageEntrySectionSegment(PMM_SECTION_SEGMENT Segment,
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmSharePageEntrySectionSegment(PMM_SECTION_SEGMENT Segment,
|
MmSharePageEntrySectionSegment(PMM_SECTION_SEGMENT Segment,
|
||||||
ULONG Offset)
|
ULONG Offset)
|
||||||
{
|
{
|
||||||
|
@ -305,6 +311,7 @@ MmSharePageEntrySectionSegment(PMM_SECTION_SEGMENT Segment,
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
MmUnsharePageEntrySectionSegment(PSECTION_OBJECT Section,
|
MmUnsharePageEntrySectionSegment(PSECTION_OBJECT Section,
|
||||||
PMM_SECTION_SEGMENT Segment,
|
PMM_SECTION_SEGMENT Segment,
|
||||||
ULONG Offset,
|
ULONG Offset,
|
||||||
|
@ -453,6 +460,7 @@ BOOL MiIsPageFromCache(PMEMORY_AREA MemoryArea,
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MiReadPage(PMEMORY_AREA MemoryArea,
|
MiReadPage(PMEMORY_AREA MemoryArea,
|
||||||
ULONG SegOffset,
|
ULONG SegOffset,
|
||||||
PPFN_TYPE Page)
|
PPFN_TYPE Page)
|
||||||
|
@ -624,6 +632,7 @@ MiReadPage(PMEMORY_AREA MemoryArea,
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmNotPresentFaultSectionView(PMADDRESS_SPACE AddressSpace,
|
MmNotPresentFaultSectionView(PMADDRESS_SPACE AddressSpace,
|
||||||
MEMORY_AREA* MemoryArea,
|
MEMORY_AREA* MemoryArea,
|
||||||
PVOID Address,
|
PVOID Address,
|
||||||
|
@ -1142,6 +1151,7 @@ MmNotPresentFaultSectionView(PMADDRESS_SPACE AddressSpace,
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmAccessFaultSectionView(PMADDRESS_SPACE AddressSpace,
|
MmAccessFaultSectionView(PMADDRESS_SPACE AddressSpace,
|
||||||
MEMORY_AREA* MemoryArea,
|
MEMORY_AREA* MemoryArea,
|
||||||
PVOID Address,
|
PVOID Address,
|
||||||
|
@ -1348,6 +1358,7 @@ MmPageOutDeleteMapping(PVOID Context, PEPROCESS Process, PVOID Address)
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmPageOutSectionView(PMADDRESS_SPACE AddressSpace,
|
MmPageOutSectionView(PMADDRESS_SPACE AddressSpace,
|
||||||
MEMORY_AREA* MemoryArea,
|
MEMORY_AREA* MemoryArea,
|
||||||
PVOID Address,
|
PVOID Address,
|
||||||
|
@ -1693,6 +1704,7 @@ MmPageOutSectionView(PMADDRESS_SPACE AddressSpace,
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmWritePageSectionView(PMADDRESS_SPACE AddressSpace,
|
MmWritePageSectionView(PMADDRESS_SPACE AddressSpace,
|
||||||
PMEMORY_AREA MemoryArea,
|
PMEMORY_AREA MemoryArea,
|
||||||
PVOID Address,
|
PVOID Address,
|
||||||
|
@ -1902,6 +1914,7 @@ MmAlterViewAttributes(PMADDRESS_SPACE AddressSpace,
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmProtectSectionView(PMADDRESS_SPACE AddressSpace,
|
MmProtectSectionView(PMADDRESS_SPACE AddressSpace,
|
||||||
PMEMORY_AREA MemoryArea,
|
PMEMORY_AREA MemoryArea,
|
||||||
PVOID BaseAddress,
|
PVOID BaseAddress,
|
||||||
|
@ -1972,6 +1985,7 @@ MmQuerySectionView(PMEMORY_AREA MemoryArea,
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
MmpFreePageFileSegment(PMM_SECTION_SEGMENT Segment)
|
MmpFreePageFileSegment(PMM_SECTION_SEGMENT Segment)
|
||||||
{
|
{
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
|
@ -2087,7 +2101,9 @@ MmpCloseSection(PVOID ObjectBody,
|
||||||
ObjectBody, HandleCount, ObGetObjectPointerCount(ObjectBody));
|
ObjectBody, HandleCount, ObGetObjectPointerCount(ObjectBody));
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS INIT_FUNCTION
|
NTSTATUS
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmCreatePhysicalMemorySection(VOID)
|
MmCreatePhysicalMemorySection(VOID)
|
||||||
{
|
{
|
||||||
PSECTION_OBJECT PhysSection;
|
PSECTION_OBJECT PhysSection;
|
||||||
|
@ -2134,7 +2150,9 @@ MmCreatePhysicalMemorySection(VOID)
|
||||||
return(STATUS_SUCCESS);
|
return(STATUS_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS INIT_FUNCTION
|
NTSTATUS
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
MmInitSectionImplementation(VOID)
|
MmInitSectionImplementation(VOID)
|
||||||
{
|
{
|
||||||
OBJECT_TYPE_INITIALIZER ObjectTypeInitializer;
|
OBJECT_TYPE_INITIALIZER ObjectTypeInitializer;
|
||||||
|
@ -2158,6 +2176,7 @@ MmInitSectionImplementation(VOID)
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmCreatePageFileSection(PSECTION_OBJECT *SectionObject,
|
MmCreatePageFileSection(PSECTION_OBJECT *SectionObject,
|
||||||
ACCESS_MASK DesiredAccess,
|
ACCESS_MASK DesiredAccess,
|
||||||
POBJECT_ATTRIBUTES ObjectAttributes,
|
POBJECT_ATTRIBUTES ObjectAttributes,
|
||||||
|
@ -2229,6 +2248,7 @@ MmCreatePageFileSection(PSECTION_OBJECT *SectionObject,
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MmCreateDataFileSection(PSECTION_OBJECT *SectionObject,
|
MmCreateDataFileSection(PSECTION_OBJECT *SectionObject,
|
||||||
ACCESS_MASK DesiredAccess,
|
ACCESS_MASK DesiredAccess,
|
||||||
POBJECT_ATTRIBUTES ObjectAttributes,
|
POBJECT_ATTRIBUTES ObjectAttributes,
|
||||||
|
|
|
@ -62,7 +62,9 @@ RtlpInitNls(VOID)
|
||||||
RtlpCreateNlsSection();
|
RtlpCreateNlsSection();
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
RtlpImportAnsiCodePage(PUSHORT TableBase,
|
RtlpImportAnsiCodePage(PUSHORT TableBase,
|
||||||
ULONG Size)
|
ULONG Size)
|
||||||
{
|
{
|
||||||
|
@ -71,7 +73,9 @@ RtlpImportAnsiCodePage(PUSHORT TableBase,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTAPI
|
||||||
RtlpImportOemCodePage(PUSHORT TableBase,
|
RtlpImportOemCodePage(PUSHORT TableBase,
|
||||||
ULONG Size)
|
ULONG Size)
|
||||||
{
|
{
|
||||||
|
@ -80,7 +84,9 @@ RtlpImportOemCodePage(PUSHORT TableBase,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
NTAPI
|
||||||
|
INIT_FUNCTION
|
||||||
RtlpImportUnicodeCasemap(PUSHORT TableBase,
|
RtlpImportUnicodeCasemap(PUSHORT TableBase,
|
||||||
ULONG Size)
|
ULONG Size)
|
||||||
{
|
{
|
||||||
|
@ -89,7 +95,9 @@ RtlpImportUnicodeCasemap(PUSHORT TableBase,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID INIT_FUNCTION
|
VOID
|
||||||
|
NTAPI
|
||||||
|
INIT_FUNCTION
|
||||||
RtlpCreateInitialNlsTables(VOID)
|
RtlpCreateInitialNlsTables(VOID)
|
||||||
{
|
{
|
||||||
NLSTABLEINFO NlsTable;
|
NLSTABLEINFO NlsTable;
|
||||||
|
@ -109,8 +117,9 @@ RtlpCreateInitialNlsTables(VOID)
|
||||||
RtlResetRtlTranslations (&NlsTable);
|
RtlResetRtlTranslations (&NlsTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
VOID INIT_FUNCTION
|
NTAPI
|
||||||
|
INIT_FUNCTION
|
||||||
RtlpCreateNlsSection(VOID)
|
RtlpCreateNlsSection(VOID)
|
||||||
{
|
{
|
||||||
NLSTABLEINFO NlsTable;
|
NLSTABLEINFO NlsTable;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue