Función WriteProcessMemory (memoryapi.h)
Escribe datos en un área de memoria en un proceso especificado. Todo el área en la que se va a escribir debe ser accesible o se produce un error en la operación.
Sintaxis
BOOL WriteProcessMemory(
[in] HANDLE hProcess,
[in] LPVOID lpBaseAddress,
[in] LPCVOID lpBuffer,
[in] SIZE_T nSize,
[out] SIZE_T *lpNumberOfBytesWritten
);
Parámetros
[in] hProcess
Identificador de la memoria del proceso que se va a modificar. El identificador debe tener PROCESS_VM_WRITE y PROCESS_VM_OPERATION acceso al proceso.
[in] lpBaseAddress
Puntero a la dirección base del proceso especificado en el que se escriben los datos. Antes de que se produzca la transferencia de datos, el sistema comprueba que todos los datos de la dirección base y la memoria del tamaño especificado son accesibles para el acceso de escritura y, si no es accesible, se produce un error en la función.
[in] lpBuffer
Puntero al búfer que contiene los datos que se van a escribir en el espacio de direcciones del proceso especificado.
[in] nSize
Número de bytes que se van a escribir en el proceso especificado.
[out] lpNumberOfBytesWritten
Puntero a una variable que recibe el número de bytes transferidos al proceso especificado. Este parámetro es opcional. Si lpNumberOfBytesWritten es NULL, se omite el parámetro .
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es 0 (cero). Para obtener información de error extendida, llame a GetLastError. Se produce un error en la función si la operación de escritura solicitada cruza en un área del proceso que no es accesible.
Comentarios
WriteProcessMemory copia los datos del búfer especificado en el proceso actual en el intervalo de direcciones del proceso especificado. Cualquier proceso que tenga un identificador con PROCESS_VM_WRITE y PROCESS_VM_OPERATION acceso al proceso en el que se va a escribir puede llamar a la función . Normalmente, pero no siempre, el proceso con espacio de direcciones en el que se está escribiendo se está depurando.
Todo el área en la que se va a escribir debe ser accesible y, si no es accesible, se produce un error en la función.
Requisitos
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | memoryapi.h (incluya Windows.h) |
Library | onecore.lib |
Archivo DLL | Kernel32.dll |