mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 01:15:09 +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
|
||||
#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 ******************************************************/
|
||||
|
||||
|
||||
|
@ -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_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
|
||||
STDCALL
|
||||
|
@ -73,6 +87,14 @@ MmAdjustWorkingSetSize (
|
|||
DWORD Unknown1,
|
||||
DWORD Unknown2
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
MmAdvanceMdl (
|
||||
IN PMDL Mdl,
|
||||
IN ULONG NumberOfBytes
|
||||
);
|
||||
|
||||
PVOID
|
||||
STDCALL
|
||||
MmAllocateContiguousMemory (
|
||||
|
@ -96,6 +118,13 @@ MmAllocateContiguousAlignedMemory(IN ULONG NumberOfBytes,
|
|||
IN MEMORY_CACHING_TYPE CacheType OPTIONAL,
|
||||
IN ULONG Alignment);
|
||||
|
||||
PVOID
|
||||
STDCALL
|
||||
MmAllocateMappingAddress (
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN ULONG PoolTag
|
||||
);
|
||||
|
||||
PVOID
|
||||
STDCALL
|
||||
MmAllocateNonCachedMemory (
|
||||
|
@ -181,6 +210,14 @@ MmFreeContiguousMemorySpecifyCache(IN PVOID BaseAddress,
|
|||
IN ULONG NumberOfBytes,
|
||||
IN MEMORY_CACHING_TYPE CacheType
|
||||
);
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
MmFreeMappingAddress (
|
||||
IN PVOID BaseAddress,
|
||||
IN ULONG PoolTag
|
||||
);
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
MmFreeNonCachedMemory (
|
||||
|
@ -228,6 +265,12 @@ MmGetPhysicalAddress (
|
|||
IN PVOID BaseAddress
|
||||
);
|
||||
|
||||
PPHYSICAL_MEMORY_RANGE
|
||||
STDCALL
|
||||
MmGetPhysicalMemoryRanges (
|
||||
VOID
|
||||
);
|
||||
|
||||
#define MmGetProcedureAddress(Address) (Address)
|
||||
|
||||
/*
|
||||
|
@ -249,6 +292,18 @@ MmGetPhysicalAddress (
|
|||
(((Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | MDL_SOURCE_IS_NONPAGED_POOL)) ? \
|
||||
((Mdl)->MappedSystemVa):(MmMapLockedPages((Mdl),KernelMode)))
|
||||
|
||||
PVOID
|
||||
STDCALL
|
||||
MmGetSystemRoutineAddress (
|
||||
IN PUNICODE_STRING SystemRoutineName
|
||||
);
|
||||
|
||||
PVOID
|
||||
STDCALL
|
||||
MmGetVirtualForPhysical (
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
MmGrowKernelStack (
|
||||
|
@ -294,6 +349,11 @@ STDCALL
|
|||
MmIsAddressValid (
|
||||
IN PVOID VirtualAddress
|
||||
);
|
||||
ULONG
|
||||
STDCALL
|
||||
MmIsDriverVerifying (
|
||||
IN struct _DRIVER_OBJECT *DriverObject
|
||||
);
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
MmIsNonPagedSystemAddressValid (
|
||||
|
@ -315,6 +375,13 @@ STDCALL
|
|||
MmIsThisAnNtAsSystem (
|
||||
VOID
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
MmIsVerifierEnabled (
|
||||
OUT PULONG VerifierFlags
|
||||
);
|
||||
|
||||
/*
|
||||
* FUNCTION: Locks a section of the driver's code into memory
|
||||
* ARGUMENTS:
|
||||
|
@ -378,6 +445,21 @@ MmMapMemoryDumpMdl (
|
|||
);
|
||||
PVOID
|
||||
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 (
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN ULONG NumberOfBytes,
|
||||
|
@ -385,11 +467,19 @@ MmMapVideoDisplay (
|
|||
);
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
MmMapViewInSessionSpace (
|
||||
IN PVOID Section,
|
||||
OUT PVOID *MappedBase,
|
||||
IN OUT PSIZE_T ViewSize
|
||||
);
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
MmMapViewInSystemSpace (
|
||||
IN PVOID SectionObject,
|
||||
OUT PVOID * MappedBase,
|
||||
IN PULONG ViewSize
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
MmMapViewOfSection (
|
||||
|
@ -404,6 +494,19 @@ MmMapViewOfSection (
|
|||
IN ULONG AllocationType,
|
||||
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
|
||||
|
@ -416,6 +519,13 @@ MmPageEntireDriver (
|
|||
PVOID AddressWithinSection
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
MmPrefetchPages (
|
||||
IN ULONG NumberOfLists,
|
||||
IN PREAD_LIST *ReadLists
|
||||
);
|
||||
|
||||
/*
|
||||
* VOID
|
||||
* MmPrepareMdlForReuse (
|
||||
|
@ -457,6 +567,32 @@ MmProbeAndLockPages (
|
|||
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
|
||||
* RETURNS: Either MmSmallSystem, MmMediumSystem or MmLargeSystem
|
||||
|
@ -467,6 +603,13 @@ MmQuerySystemSize (
|
|||
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
|
||||
* compile time settings
|
||||
|
@ -517,6 +660,13 @@ MmSizeOfMdl (
|
|||
PVOID Base,
|
||||
ULONG Length
|
||||
);
|
||||
|
||||
ULONG
|
||||
STDCALL
|
||||
MmTrimAllSystemPagableMemory (
|
||||
IN ULONG PurgeTransitionList
|
||||
);
|
||||
|
||||
/*
|
||||
* FUNCTION: Unlocks the physical pages described by a given MDL
|
||||
* ARGUMENTS:
|
||||
|
@ -552,6 +702,13 @@ MmUnmapLockedPages (
|
|||
);
|
||||
VOID
|
||||
STDCALL
|
||||
MmUnmapReservedMapping (
|
||||
IN PVOID BaseAddress,
|
||||
IN ULONG PoolTag,
|
||||
IN PMDL MemoryDescriptorList
|
||||
);
|
||||
VOID
|
||||
STDCALL
|
||||
MmUnmapVideoDisplay (
|
||||
IN PVOID BaseAddress,
|
||||
IN ULONG NumberOfBytes
|
||||
|
@ -561,6 +718,11 @@ STDCALL
|
|||
MmUnmapViewInSystemSpace (
|
||||
IN PVOID MappedBase
|
||||
);
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
MmUnmapViewInSessionSpace (
|
||||
IN PVOID MappedBase
|
||||
);
|
||||
#if 0
|
||||
NTSTATUS
|
||||
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
|
||||
#define _INCLUDE_DDK_MMTYPES_H
|
||||
|
@ -6,7 +6,6 @@
|
|||
#include <ddk/i386/pagesize.h>
|
||||
#include <ntos/mm.h>
|
||||
|
||||
|
||||
/*
|
||||
* FUNCTION: Determines if the given virtual address is page aligned
|
||||
*/
|
||||
|
@ -65,6 +64,24 @@ typedef struct _MDL
|
|||
ULONG ByteOffset;
|
||||
} 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 MmMediumSystem (1)
|
||||
#define MmLargeSystem (2)
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
#define FILE_MAP_READ (4)
|
||||
#define FILE_MAP_WRITE (2)
|
||||
#define FILE_MAP_COPY (1)
|
||||
|
||||
#else /* __USE_W32API */
|
||||
|
||||
#include <ddk/ntifs.h>
|
||||
|
|
Loading…
Reference in a new issue