ReactOS 0.4.15-dev-7934-g1dc8d80
VirtualMemory.c File Reference
#include <ntoskrnl.h>
#include "regtests.h"
Include dependency graph for VirtualMemory.c:

Go to the source code of this file.

Macros

#define TestProcessHandle   (HANDLE) 1
 
#define TestProcessObject   (PVOID) 0x2
 
#define TestBaseAddress   (PVOID) 0x1000
 
#define TestNumberOfBytesToLock   0x2000
 
#define TestMdl   (PMDL) 0xD0000000
 

Functions

static VOID NTAPI MockExFreePool (PVOID Block)
 
static PMDL NTAPI MockMmCreateMdl (PMDL Mdl, PVOID Base, ULONG Length)
 
static VOID NTAPI MockMmProbeAndLockPages (PMDL Mdl, KPROCESSOR_MODE AccessMode, LOCK_OPERATION Operation)
 
static VOID FASTCALL MockObDereferenceObject (PVOID Object)
 
static NTSTATUS NTAPI MockObReferenceObjectByHandle (HANDLE Handle, ACCESS_MASK DesiredAccess, POBJECT_TYPE ObjectType, KPROCESSOR_MODE AccessMode, PVOID *Object, POBJECT_HANDLE_INFORMATION HandleInformation)
 
static void RunTest ()
 

Variables

static BOOLEAN MockExFreePoolCalled = FALSE
 
static BOOLEAN MockMmCreateMdlCalled = FALSE
 
static BOOLEAN MockMmProbeAndLockPagesCalled = FALSE
 
static BOOLEAN MockObDereferenceObjectCalled = FALSE
 
static BOOLEAN MockObReferenceObjectByHandleCalled = FALSE
 

Macro Definition Documentation

◆ TestBaseAddress

#define TestBaseAddress   (PVOID) 0x1000

Definition at line 15 of file VirtualMemory.c.

◆ TestMdl

#define TestMdl   (PMDL) 0xD0000000

Definition at line 17 of file VirtualMemory.c.

◆ TestNumberOfBytesToLock

#define TestNumberOfBytesToLock   0x2000

Definition at line 16 of file VirtualMemory.c.

◆ TestProcessHandle

#define TestProcessHandle   (HANDLE) 1

Definition at line 13 of file VirtualMemory.c.

◆ TestProcessObject

#define TestProcessObject   (PVOID) 0x2

Definition at line 14 of file VirtualMemory.c.

Function Documentation

◆ MockExFreePool()

static VOID NTAPI MockExFreePool ( PVOID  Block)
static

Definition at line 22 of file VirtualMemory.c.

23{
24 _AssertFalse(MockExFreePoolCalled);
25 _AssertEqualValue(TestMdl, Block);
27}
#define TestMdl
Definition: VirtualMemory.c:17
static BOOLEAN MockExFreePoolCalled
Definition: VirtualMemory.c:19
#define TRUE
Definition: types.h:120

Referenced by RunTest().

◆ MockMmCreateMdl()

static PMDL NTAPI MockMmCreateMdl ( PMDL  Mdl,
PVOID  Base,
ULONG  Length 
)
static

Definition at line 32 of file VirtualMemory.c.

35{
36 _AssertFalse(MockMmCreateMdlCalled);
37 _AssertEqualValue(TestBaseAddress, Base);
38 _AssertEqualValue(TestNumberOfBytesToLock, Length);
40 return TestMdl;
41}
#define TestBaseAddress
Definition: VirtualMemory.c:15
#define TestNumberOfBytesToLock
Definition: VirtualMemory.c:16
static BOOLEAN MockMmCreateMdlCalled
Definition: VirtualMemory.c:29
_In_opt_ ULONG Base
Definition: rtlfuncs.h:2439
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102

Referenced by RunTest().

◆ MockMmProbeAndLockPages()

static VOID NTAPI MockMmProbeAndLockPages ( PMDL  Mdl,
KPROCESSOR_MODE  AccessMode,
LOCK_OPERATION  Operation 
)
static

Definition at line 46 of file VirtualMemory.c.

49{
51 _AssertEqualValue(TestMdl, Mdl);
52 _AssertEqualValue(UserMode, AccessMode);
53 _AssertEqualValue(IoWriteAccess, Operation);
55}
static BOOLEAN MockMmProbeAndLockPagesCalled
Definition: VirtualMemory.c:43
FP_OP Operation
Definition: fpcontrol.c:150
#define UserMode
Definition: asm.h:35
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
@ IoWriteAccess
Definition: ketypes.h:864
_In_ PEPROCESS _In_ KPROCESSOR_MODE AccessMode
Definition: mmfuncs.h:396

Referenced by RunTest().

◆ MockObDereferenceObject()

static VOID FASTCALL MockObDereferenceObject ( PVOID  Object)
static

Definition at line 60 of file VirtualMemory.c.

61{
63 _AssertEqualValue(TestProcessObject, Object);
65}
#define TestProcessObject
Definition: VirtualMemory.c:14
static BOOLEAN MockObDereferenceObjectCalled
Definition: VirtualMemory.c:57
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object

Referenced by RunTest().

◆ MockObReferenceObjectByHandle()

static NTSTATUS NTAPI MockObReferenceObjectByHandle ( HANDLE  Handle,
ACCESS_MASK  DesiredAccess,
POBJECT_TYPE  ObjectType,
KPROCESSOR_MODE  AccessMode,
PVOID Object,
POBJECT_HANDLE_INFORMATION  HandleInformation 
)
static

Definition at line 70 of file VirtualMemory.c.

76{
78 _AssertEqualValue(TestProcessHandle, Handle);
79 _AssertEqualValue(PROCESS_VM_WRITE, DesiredAccess);
80 _AssertEqualValue(NULL, ObjectType);
81 _AssertEqualValue(UserMode, AccessMode);
82 _AssertNotEqualValue(NULL, Object);
83 _AssertEqualValue(NULL, HandleInformation);
86 return STATUS_SUCCESS;
87}
#define TestProcessHandle
Definition: VirtualMemory.c:13
static BOOLEAN MockObReferenceObjectByHandleCalled
Definition: VirtualMemory.c:67
#define NULL
Definition: types.h:112
ULONG Handle
Definition: gdb_input.c:15
#define PROCESS_VM_WRITE
Definition: pstypes.h:162
ObjectType
Definition: metafile.c:81
#define STATUS_SUCCESS
Definition: shellext.h:65
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2658
_In_ ACCESS_MASK _In_opt_ POBJECT_TYPE _In_ KPROCESSOR_MODE _Out_ PVOID _Out_opt_ POBJECT_HANDLE_INFORMATION HandleInformation
Definition: obfuncs.h:44

Referenced by RunTest().

◆ RunTest()

static void RunTest ( )
static

Definition at line 89 of file VirtualMemory.c.

90{
91 ULONG NumberOfBytesLocked;
93
97 &NumberOfBytesLocked,
103 _AssertEqualValue(STATUS_SUCCESS, status);
105 _AssertTrue(MockMmCreateMdlCalled);
107 _AssertTrue(MockExFreePoolCalled);
109 _AssertEqualValue(TestNumberOfBytesToLock, NumberOfBytesLocked);
110}
static VOID FASTCALL MockObDereferenceObject(PVOID Object)
Definition: VirtualMemory.c:60
static VOID NTAPI MockMmProbeAndLockPages(PMDL Mdl, KPROCESSOR_MODE AccessMode, LOCK_OPERATION Operation)
Definition: VirtualMemory.c:46
static VOID NTAPI MockExFreePool(PVOID Block)
Definition: VirtualMemory.c:22
static PMDL NTAPI MockMmCreateMdl(PMDL Mdl, PVOID Base, ULONG Length)
Definition: VirtualMemory.c:32
static NTSTATUS NTAPI MockObReferenceObjectByHandle(HANDLE Handle, ACCESS_MASK DesiredAccess, POBJECT_TYPE ObjectType, KPROCESSOR_MODE AccessMode, PVOID *Object, POBJECT_HANDLE_INFORMATION HandleInformation)
Definition: VirtualMemory.c:70
LONG NTSTATUS
Definition: precomp.h:26
static NTSTATUS MiLockVirtualMemory(IN OUT PVOID *BaseAddress, IN OUT PSIZE_T RegionSize, IN ULONG MapType)
Definition: virtual.c:3381
Definition: ps.c:97
uint32_t ULONG
Definition: typedefs.h:59

Variable Documentation

◆ MockExFreePoolCalled

BOOLEAN MockExFreePoolCalled = FALSE
static

Definition at line 19 of file VirtualMemory.c.

Referenced by MockExFreePool(), and RunTest().

◆ MockMmCreateMdlCalled

BOOLEAN MockMmCreateMdlCalled = FALSE
static

Definition at line 29 of file VirtualMemory.c.

Referenced by MockMmCreateMdl(), and RunTest().

◆ MockMmProbeAndLockPagesCalled

BOOLEAN MockMmProbeAndLockPagesCalled = FALSE
static

Definition at line 43 of file VirtualMemory.c.

Referenced by MockMmProbeAndLockPages(), and RunTest().

◆ MockObDereferenceObjectCalled

BOOLEAN MockObDereferenceObjectCalled = FALSE
static

Definition at line 57 of file VirtualMemory.c.

Referenced by MockObDereferenceObject(), and RunTest().

◆ MockObReferenceObjectByHandleCalled

BOOLEAN MockObReferenceObjectByHandleCalled = FALSE
static

Definition at line 67 of file VirtualMemory.c.

Referenced by MockObReferenceObjectByHandle(), and RunTest().