📄 memmap_driver.cpp
字号:
// Test_Driver.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include <windows.h>
#include <ceddk.h>
#define MAP_MEM_ADDRESS 1
#define MAP_MEM_MAPPING 2
#ifdef _MANAGED
#pragma managed(push, off)
#endif
HANDLE g_hInstance;
PVOID pCommitedMemory=NULL;
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
BOOL WINAPI
DllEntry(HANDLE hinstDLL,
DWORD dwReason,
LPVOID /* lpvReserved */)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
g_hInstance = hinstDLL;
RETAILMSG(1,(TEXT("Memory Mapping Driver : DLL_PROCESS_ATTACH\n")));
return TRUE;
case DLL_PROCESS_DETACH:
RETAILMSG(1,(TEXT("Memory Mapping Driver : DLL_PROCESS_DETACH\n")));
break;
}
return TRUE;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
BOOL MEM_Close(DWORD hOpenContext)
{
RETAILMSG(1,(TEXT("Memory Mapping Driver : MEM_Close \r\n")));
return TRUE;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
BOOL MEM_Deinit(DWORD hDeviceContext)
{
RETAILMSG(1,(TEXT("Memory Mapping Driver : MEM_Deinit :: Deinitialize Memory for Application \r\n")));
return TRUE;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
DWORD MEM_Init(DWORD dwContext)
{
RETAILMSG(1,(TEXT("Memory Mapping Driver : MEM_Init :: Initialize Memory for Application \r\n")));
return 1;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
DWORD MEM_Open(DWORD hDeviceContext, DWORD AccessCode, DWORD ShareMode)
{
RETAILMSG(1,(TEXT("Memory Mapping Driver : MEM_Open :: Opened driver for Application \r\n")));
return 1;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
BOOL MEM_IOControl(DWORD hOpenContext,
DWORD dwCode,
PBYTE pBufIn,
DWORD dwLenIn,
PBYTE pBufOut,
DWORD dwLenOut,
PDWORD pdwActualOut)
{
switch(dwCode)
{
case MAP_MEM_ADDRESS :
pCommitedMemory = pBufIn;
break;
case MAP_MEM_MAPPING :
if (pCommitedMemory == NULL)
{
RETAILMSG(1,(TEXT("Memory Mapping Driver : MEM_IOControl :: MAP_MEM_ADDRESS ::: Invailde Patameter \r\n")));
return FALSE;
}
if (!VirtualCopyEx((HANDLE)GetDirectCallerProcessId(), //Handle to the destination Process.
(PVOID)pBufIn, //Pointer to the destination memory,
(HANDLE)GetCurrentProcessId(), //Handle to the source process.
pCommitedMemory, //Pointer to commited memory.
dwLenIn, // size of region in byte
PAGE_PHYSICAL | PAGE_READWRITE | PAGE_NOCACHE)) //protect
{
RETAILMSG(1,(TEXT("Memory Mapping Driver : MEM_IOControl :: MAP_MEM_ADDRESS ::: VirtualCopyEx failed for Application !\r\n")));
return FALSE;
}
break;
}
return TRUE;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void MEM_PowerDown(DWORD hDeviceContext)
{
RETAILMSG(1,(TEXT("Memory Mapping Driver : MEM_PowerDown \r\n")));
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void MEM_PowerUp(DWORD hDeviceContext)
{
RETAILMSG(1,(TEXT("Memory Mapping Driver : MEM_PowerUp \r\n")));
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
DWORD MEM_Read(DWORD hOpenContext, LPVOID pBuffer, DWORD Count)
{
RETAILMSG(1,(TEXT("Memory Mapping Driver : MEM_Read \r\n")));
return 1;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
DWORD MEM_Seek(DWORD hOpenContext, long Amount, DWORD Type)
{
RETAILMSG(1,(TEXT("Memory Mapping Driver : MEM_Seek \r\n")));
return 1;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
DWORD MEM_Write(DWORD hOpenContext, LPCVOID pSourceBytes, DWORD NumberOfBytes)
{
RETAILMSG(1,(TEXT("Memory Mapping Driver : MEM_Write \r\n")));
return 1;
}
#ifdef _MANAGED
#pragma managed(pop)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -