mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
Added Mm Prototypes
svn path=/trunk/; revision=10170
This commit is contained in:
parent
a0e9802e90
commit
e7874284d0
3 changed files with 183 additions and 3 deletions
|
@ -1,6 +1,6 @@
|
||||||
#ifndef _INCLUDE_DDK_MMFUNCS_H
|
#ifndef _INCLUDE_DDK_MMFUNCS_H
|
||||||
#define _INCLUDE_DDK_MMFUNCS_H
|
#define _INCLUDE_DDK_MMFUNCS_H
|
||||||
/* $Id: mmfuncs.h,v 1.22 2004/05/15 22:45:51 hbirr Exp $ */
|
/* $Id: mmfuncs.h,v 1.23 2004/07/17 03:04:45 ion Exp $ */
|
||||||
/* MEMORY MANAGMENT ******************************************************/
|
/* MEMORY MANAGMENT ******************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
@ -65,6 +65,20 @@ extern inline unsigned int ADDRESS_AND_SIZE_TO_SPAN_PAGES(PVOID Va,
|
||||||
#define PAGE_ALIGN(va) ( (PVOID) (((ULONG)(va)) & (~(PAGE_SIZE-1))) )
|
#define PAGE_ALIGN(va) ( (PVOID) (((ULONG)(va)) & (~(PAGE_SIZE-1))) )
|
||||||
#define PAGE_BASE(va) PAGE_ALIGN(va)
|
#define PAGE_BASE(va) PAGE_ALIGN(va)
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
MmAddPhysicalMemory (
|
||||||
|
IN PPHYSICAL_ADDRESS StartAddress,
|
||||||
|
IN OUT PLARGE_INTEGER NumberOfBytes
|
||||||
|
);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
MmAddVerifierThunks (
|
||||||
|
IN PVOID ThunkBuffer,
|
||||||
|
IN ULONG ThunkBufferSize
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
DWORD
|
DWORD
|
||||||
STDCALL
|
STDCALL
|
||||||
|
@ -73,6 +87,14 @@ MmAdjustWorkingSetSize (
|
||||||
DWORD Unknown1,
|
DWORD Unknown1,
|
||||||
DWORD Unknown2
|
DWORD Unknown2
|
||||||
);
|
);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
MmAdvanceMdl (
|
||||||
|
IN PMDL Mdl,
|
||||||
|
IN ULONG NumberOfBytes
|
||||||
|
);
|
||||||
|
|
||||||
PVOID
|
PVOID
|
||||||
STDCALL
|
STDCALL
|
||||||
MmAllocateContiguousMemory (
|
MmAllocateContiguousMemory (
|
||||||
|
@ -96,6 +118,13 @@ MmAllocateContiguousAlignedMemory(IN ULONG NumberOfBytes,
|
||||||
IN MEMORY_CACHING_TYPE CacheType OPTIONAL,
|
IN MEMORY_CACHING_TYPE CacheType OPTIONAL,
|
||||||
IN ULONG Alignment);
|
IN ULONG Alignment);
|
||||||
|
|
||||||
|
PVOID
|
||||||
|
STDCALL
|
||||||
|
MmAllocateMappingAddress (
|
||||||
|
IN SIZE_T NumberOfBytes,
|
||||||
|
IN ULONG PoolTag
|
||||||
|
);
|
||||||
|
|
||||||
PVOID
|
PVOID
|
||||||
STDCALL
|
STDCALL
|
||||||
MmAllocateNonCachedMemory (
|
MmAllocateNonCachedMemory (
|
||||||
|
@ -181,6 +210,14 @@ MmFreeContiguousMemorySpecifyCache(IN PVOID BaseAddress,
|
||||||
IN ULONG NumberOfBytes,
|
IN ULONG NumberOfBytes,
|
||||||
IN MEMORY_CACHING_TYPE CacheType
|
IN MEMORY_CACHING_TYPE CacheType
|
||||||
);
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
STDCALL
|
||||||
|
MmFreeMappingAddress (
|
||||||
|
IN PVOID BaseAddress,
|
||||||
|
IN ULONG PoolTag
|
||||||
|
);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
STDCALL
|
||||||
MmFreeNonCachedMemory (
|
MmFreeNonCachedMemory (
|
||||||
|
@ -228,6 +265,12 @@ MmGetPhysicalAddress (
|
||||||
IN PVOID BaseAddress
|
IN PVOID BaseAddress
|
||||||
);
|
);
|
||||||
|
|
||||||
|
PPHYSICAL_MEMORY_RANGE
|
||||||
|
STDCALL
|
||||||
|
MmGetPhysicalMemoryRanges (
|
||||||
|
VOID
|
||||||
|
);
|
||||||
|
|
||||||
#define MmGetProcedureAddress(Address) (Address)
|
#define MmGetProcedureAddress(Address) (Address)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -249,6 +292,18 @@ MmGetPhysicalAddress (
|
||||||
(((Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | MDL_SOURCE_IS_NONPAGED_POOL)) ? \
|
(((Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | MDL_SOURCE_IS_NONPAGED_POOL)) ? \
|
||||||
((Mdl)->MappedSystemVa):(MmMapLockedPages((Mdl),KernelMode)))
|
((Mdl)->MappedSystemVa):(MmMapLockedPages((Mdl),KernelMode)))
|
||||||
|
|
||||||
|
PVOID
|
||||||
|
STDCALL
|
||||||
|
MmGetSystemRoutineAddress (
|
||||||
|
IN PUNICODE_STRING SystemRoutineName
|
||||||
|
);
|
||||||
|
|
||||||
|
PVOID
|
||||||
|
STDCALL
|
||||||
|
MmGetVirtualForPhysical (
|
||||||
|
IN PHYSICAL_ADDRESS PhysicalAddress
|
||||||
|
);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
STDCALL
|
STDCALL
|
||||||
MmGrowKernelStack (
|
MmGrowKernelStack (
|
||||||
|
@ -294,6 +349,11 @@ STDCALL
|
||||||
MmIsAddressValid (
|
MmIsAddressValid (
|
||||||
IN PVOID VirtualAddress
|
IN PVOID VirtualAddress
|
||||||
);
|
);
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
MmIsDriverVerifying (
|
||||||
|
IN struct _DRIVER_OBJECT *DriverObject
|
||||||
|
);
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
STDCALL
|
||||||
MmIsNonPagedSystemAddressValid (
|
MmIsNonPagedSystemAddressValid (
|
||||||
|
@ -315,6 +375,13 @@ STDCALL
|
||||||
MmIsThisAnNtAsSystem (
|
MmIsThisAnNtAsSystem (
|
||||||
VOID
|
VOID
|
||||||
);
|
);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
MmIsVerifierEnabled (
|
||||||
|
OUT PULONG VerifierFlags
|
||||||
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Locks a section of the driver's code into memory
|
* FUNCTION: Locks a section of the driver's code into memory
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -378,6 +445,21 @@ MmMapMemoryDumpMdl (
|
||||||
);
|
);
|
||||||
PVOID
|
PVOID
|
||||||
STDCALL
|
STDCALL
|
||||||
|
MmMapLockedPagesWithReservedMapping (
|
||||||
|
IN PVOID MappingAddress,
|
||||||
|
IN ULONG PoolTag,
|
||||||
|
IN PMDL MemoryDescriptorList,
|
||||||
|
IN MEMORY_CACHING_TYPE CacheType
|
||||||
|
);
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
MmMapUserAddressesToPage (
|
||||||
|
IN PVOID BaseAddress,
|
||||||
|
IN SIZE_T NumberOfBytes,
|
||||||
|
IN PVOID PageAddress
|
||||||
|
);
|
||||||
|
PVOID
|
||||||
|
STDCALL
|
||||||
MmMapVideoDisplay (
|
MmMapVideoDisplay (
|
||||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||||
IN ULONG NumberOfBytes,
|
IN ULONG NumberOfBytes,
|
||||||
|
@ -385,11 +467,19 @@ MmMapVideoDisplay (
|
||||||
);
|
);
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
STDCALL
|
STDCALL
|
||||||
|
MmMapViewInSessionSpace (
|
||||||
|
IN PVOID Section,
|
||||||
|
OUT PVOID *MappedBase,
|
||||||
|
IN OUT PSIZE_T ViewSize
|
||||||
|
);
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
MmMapViewInSystemSpace (
|
MmMapViewInSystemSpace (
|
||||||
IN PVOID SectionObject,
|
IN PVOID SectionObject,
|
||||||
OUT PVOID * MappedBase,
|
OUT PVOID * MappedBase,
|
||||||
IN PULONG ViewSize
|
IN PULONG ViewSize
|
||||||
);
|
);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
STDCALL
|
STDCALL
|
||||||
MmMapViewOfSection (
|
MmMapViewOfSection (
|
||||||
|
@ -404,6 +494,19 @@ MmMapViewOfSection (
|
||||||
IN ULONG AllocationType,
|
IN ULONG AllocationType,
|
||||||
IN ULONG Protect
|
IN ULONG Protect
|
||||||
);
|
);
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
MmMarkPhysicalMemoryAsBad(
|
||||||
|
IN PPHYSICAL_ADDRESS StartAddress,
|
||||||
|
IN OUT PLARGE_INTEGER NumberOfBytes
|
||||||
|
);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
MmMarkPhysicalMemoryAsGood(
|
||||||
|
IN PPHYSICAL_ADDRESS StartAddress,
|
||||||
|
IN OUT PLARGE_INTEGER NumberOfBytes
|
||||||
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Makes the whole driver pageable
|
* FUNCTION: Makes the whole driver pageable
|
||||||
|
@ -416,6 +519,13 @@ MmPageEntireDriver (
|
||||||
PVOID AddressWithinSection
|
PVOID AddressWithinSection
|
||||||
);
|
);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
MmPrefetchPages (
|
||||||
|
IN ULONG NumberOfLists,
|
||||||
|
IN PREAD_LIST *ReadLists
|
||||||
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* VOID
|
* VOID
|
||||||
* MmPrepareMdlForReuse (
|
* MmPrepareMdlForReuse (
|
||||||
|
@ -457,6 +567,32 @@ MmProbeAndLockPages (
|
||||||
LOCK_OPERATION Operation
|
LOCK_OPERATION Operation
|
||||||
);
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
STDCALL
|
||||||
|
MmProbeAndLockProcessPages (
|
||||||
|
IN OUT PMDL MemoryDescriptorList,
|
||||||
|
IN PEPROCESS Process,
|
||||||
|
IN KPROCESSOR_MODE AccessMode,
|
||||||
|
IN LOCK_OPERATION Operation
|
||||||
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
STDCALL
|
||||||
|
MmProbeAndLockSelectedPages(
|
||||||
|
IN OUT PMDL MemoryDescriptorList,
|
||||||
|
IN LARGE_INTEGER PageList[],
|
||||||
|
IN KPROCESSOR_MODE AccessMode,
|
||||||
|
IN LOCK_OPERATION Operation
|
||||||
|
);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
MmProtectMdlSystemAddress (
|
||||||
|
IN PMDL MemoryDescriptorList,
|
||||||
|
IN ULONG NewProtect
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Returns an estimate of the amount of memory in the system
|
* FUNCTION: Returns an estimate of the amount of memory in the system
|
||||||
* RETURNS: Either MmSmallSystem, MmMediumSystem or MmLargeSystem
|
* RETURNS: Either MmSmallSystem, MmMediumSystem or MmLargeSystem
|
||||||
|
@ -467,6 +603,13 @@ MmQuerySystemSize (
|
||||||
VOID
|
VOID
|
||||||
);
|
);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
MmRemovePhysicalMemory (
|
||||||
|
IN PPHYSICAL_ADDRESS StartAddress,
|
||||||
|
IN OUT PLARGE_INTEGER NumberOfBytes
|
||||||
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Resets the pageable status of a driver's sections to their
|
* FUNCTION: Resets the pageable status of a driver's sections to their
|
||||||
* compile time settings
|
* compile time settings
|
||||||
|
@ -517,6 +660,13 @@ MmSizeOfMdl (
|
||||||
PVOID Base,
|
PVOID Base,
|
||||||
ULONG Length
|
ULONG Length
|
||||||
);
|
);
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
MmTrimAllSystemPagableMemory (
|
||||||
|
IN ULONG PurgeTransitionList
|
||||||
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Unlocks the physical pages described by a given MDL
|
* FUNCTION: Unlocks the physical pages described by a given MDL
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -552,6 +702,13 @@ MmUnmapLockedPages (
|
||||||
);
|
);
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
STDCALL
|
||||||
|
MmUnmapReservedMapping (
|
||||||
|
IN PVOID BaseAddress,
|
||||||
|
IN ULONG PoolTag,
|
||||||
|
IN PMDL MemoryDescriptorList
|
||||||
|
);
|
||||||
|
VOID
|
||||||
|
STDCALL
|
||||||
MmUnmapVideoDisplay (
|
MmUnmapVideoDisplay (
|
||||||
IN PVOID BaseAddress,
|
IN PVOID BaseAddress,
|
||||||
IN ULONG NumberOfBytes
|
IN ULONG NumberOfBytes
|
||||||
|
@ -561,6 +718,11 @@ STDCALL
|
||||||
MmUnmapViewInSystemSpace (
|
MmUnmapViewInSystemSpace (
|
||||||
IN PVOID MappedBase
|
IN PVOID MappedBase
|
||||||
);
|
);
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
MmUnmapViewInSessionSpace (
|
||||||
|
IN PVOID MappedBase
|
||||||
|
);
|
||||||
#if 0
|
#if 0
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
STDCALL
|
STDCALL
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: mmtypes.h,v 1.18 2003/12/31 05:33:03 jfilby Exp $ */
|
/* $Id: mmtypes.h,v 1.19 2004/07/17 03:04:45 ion Exp $ */
|
||||||
|
|
||||||
#ifndef _INCLUDE_DDK_MMTYPES_H
|
#ifndef _INCLUDE_DDK_MMTYPES_H
|
||||||
#define _INCLUDE_DDK_MMTYPES_H
|
#define _INCLUDE_DDK_MMTYPES_H
|
||||||
|
@ -6,7 +6,6 @@
|
||||||
#include <ddk/i386/pagesize.h>
|
#include <ddk/i386/pagesize.h>
|
||||||
#include <ntos/mm.h>
|
#include <ntos/mm.h>
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Determines if the given virtual address is page aligned
|
* FUNCTION: Determines if the given virtual address is page aligned
|
||||||
*/
|
*/
|
||||||
|
@ -65,6 +64,24 @@ typedef struct _MDL
|
||||||
ULONG ByteOffset;
|
ULONG ByteOffset;
|
||||||
} MDL, *PMDL;
|
} MDL, *PMDL;
|
||||||
|
|
||||||
|
typedef struct _PHYSICAL_MEMORY_RANGE {
|
||||||
|
PHYSICAL_ADDRESS BaseAddress;
|
||||||
|
LARGE_INTEGER NumberOfBytes;
|
||||||
|
} PHYSICAL_MEMORY_RANGE, *PPHYSICAL_MEMORY_RANGE;
|
||||||
|
|
||||||
|
// read file scatter / write file scatter
|
||||||
|
typedef union _FILE_SEGMENT_ELEMENT {
|
||||||
|
PVOID Buffer;
|
||||||
|
ULONG Alignment;
|
||||||
|
}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;
|
||||||
|
|
||||||
|
typedef struct _READ_LIST {
|
||||||
|
struct FILE_OBJECT* FileObject;
|
||||||
|
ULONG NumberOfEntries;
|
||||||
|
ULONG IsImage;
|
||||||
|
FILE_SEGMENT_ELEMENT List[];
|
||||||
|
} READ_LIST, *PREAD_LIST;
|
||||||
|
|
||||||
#define MmSmallSystem (0)
|
#define MmSmallSystem (0)
|
||||||
#define MmMediumSystem (1)
|
#define MmMediumSystem (1)
|
||||||
#define MmLargeSystem (2)
|
#define MmLargeSystem (2)
|
||||||
|
|
|
@ -54,6 +54,7 @@
|
||||||
#define FILE_MAP_READ (4)
|
#define FILE_MAP_READ (4)
|
||||||
#define FILE_MAP_WRITE (2)
|
#define FILE_MAP_WRITE (2)
|
||||||
#define FILE_MAP_COPY (1)
|
#define FILE_MAP_COPY (1)
|
||||||
|
|
||||||
#else /* __USE_W32API */
|
#else /* __USE_W32API */
|
||||||
|
|
||||||
#include <ddk/ntifs.h>
|
#include <ddk/ntifs.h>
|
||||||
|
|
Loading…
Reference in a new issue