union
{
PFN_NUMBER Flink;
- ULONG WsIndex; // SavedSwapEntry
+ ULONG WsIndex;
PKEVENT Event;
NTSTATUS ReadStatus;
SINGLE_LIST_ENTRY NextStackPfn;
+
+ // HACK for ROSPFN
+ SWAPENTRY SwapEntry;
} u1;
PMMPTE PteAddress;
union
{
struct
{
- USHORT ReferenceCount; // ReferenceCount
+ USHORT ReferenceCount;
MMPFNENTRY e1;
};
struct
union
{
MMPTE OriginalPte;
- LONG AweReferenceCount; // RmapListHead
+ LONG AweReferenceCount;
+
+ // HACK for ROSPFN
+ PMM_RMAP_ENTRY RmapListHead;
};
union
{
MI_PFN_USAGES PfnUsage;
CHAR ProcessName[16];
#endif
+
+ // HACK until WS lists are supported
+ MMWSLE Wsle;
} MMPFN, *PMMPFN;
extern PMMPFN MmPfnDatabase;
PMEMORY_AREA *Result,
BOOLEAN FixedAddress,
ULONG AllocationFlags,
- PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL
+ ULONG AllocationGranularity
);
PMEMORY_AREA
NTAPI
MmInitGlobalKernelPageDirectory(VOID);
-VOID
-NTAPI
-MmDisableVirtualMapping(
- struct _EPROCESS *Process,
- PVOID Address,
- BOOLEAN* WasDirty,
- PPFN_NUMBER Page
-);
-
VOID
NTAPI
MmEnableVirtualMapping(
PVOID Address
);
-VOID
-NTAPI
-MmRawDeleteVirtualMapping(PVOID Address);
-
-
VOID
NTAPI
MmGetPageFileMapping(
MmGetSessionById(
_In_ ULONG SessionId);
+_IRQL_requires_max_(APC_LEVEL)
+VOID
+NTAPI
+MmSetSessionLocaleId(
+ _In_ LCID LocaleId);
+
+
+/* virtual.c *****************************************************************/
+
+NTSTATUS
+NTAPI
+MmCopyVirtualMemory(IN PEPROCESS SourceProcess,
+ IN PVOID SourceAddress,
+ IN PEPROCESS TargetProcess,
+ OUT PVOID TargetAddress,
+ IN SIZE_T BufferSize,
+ IN KPROCESSOR_MODE PreviousMode,
+ OUT PSIZE_T ReturnSize);
+