Compartir a través de


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

Vea también

Funciones de depuración

Funciones de proceso para la depuración

ReadProcessMemory

VirtualAllocEx