![ntopenprocess WriteProcessMemory](http://img.413yy.cn/images/b/06340503/3418030506344974275636.jpg)
EN:
This function writes memory in a specified process. The entire area to be written to must beaccessible, or the operation fails.
BOOL WriteProcessMemory(
HANDLE hProcess,
LPVOID lpBaseAddress,
LPVOID lpBuffer,
DWORD nSize,
LPDWORD lpNumberOfBytesWritten
);
Parameters
hProcess
[in] Handle returned from the OpenProcess function that provided full access to the process.
lpBaseAddress
[in] Pointer to thebase addressin the specified process.
Before data transfer occurs, the system verifies that all data in the base address and memory of the specified size is accessible for write access. If so, the functionproceeds; otherwise, the function fails.
lpBuffer
[in] Pointer to the buffer that supplies data to be written into the address space of the specified process.
nSize
[in] Specifies the requested number of bytes to write into the specified process.
lpNumberOfBytesWritten
[out] Pointer to the number of bytes transferred into the specified process.
This parameter is optional.
If lpNumberOfBytesWritten is NULL, the parameter is ignored.
Return Values
Nonzero indicates success.
Zero indicates failure.
To get extended error information, call GetLastError.
The function fails if the requested write operation crosses into an area of the process that isinaccessible.
Remarks
WriteProcessMemory copies data from the specified buffer in the current process to the address range of the specified process. The process whose address space is being written to is typically, but not necessarily, being debugged.
The entire area to be written to must be accessible. If it is not, the function fails.
Requirements
OS Versions: Windows CE 2.0 and later.
Header: Winbase.h.
Link Library: Nk.lib.
See Also
OpenProcess |ReadProcessMemory
---------------------------------------------------------------------------------------------
ch:
WriteProcessMemory
VB函数原型:
Declare Function WriteProcessMemory Lib kernel32 (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
作用:写内存
说明:
hProcess , 进程的句柄
lpBaseAddress, 进程地址
lpBuffer, 数据存放地址
nSize, 数据的长度
lpNumberOfBytesWritten,实际数据的长度
nSize以字节为单位,一个字节Byte等于8位
基本数据类型的长度
ShortInt 8位 = 1Byte
SmallInt 16位 = 2Byte
Integer 16位 = 2Byte
LongInt 32位 = 4Byte
Word 16位 = 2Byte
LongWord 32位 = 4Byte
Boolean 8位 = 1Byte
WordBool 16位 = 2Byte
LongBool 32位 = 4Byte
比如要写入Integer类型的数据,那么Integer长度2Byte
所以nSize = 2