Função WriteProcessMemory (memoryapi.h)
Grava os dados em uma área de memória em um processo especificado. Toda a área a ser gravada deve estar acessível ou a operação falhará.
Sintaxe
BOOL WriteProcessMemory(
[in] HANDLE hProcess,
[in] LPVOID lpBaseAddress,
[in] LPCVOID lpBuffer,
[in] SIZE_T nSize,
[out] SIZE_T *lpNumberOfBytesWritten
);
Parâmetros
[in] hProcess
Um identificador para a memória do processo a ser modificada. O identificador deve ter acesso PROCESS_VM_WRITE e PROCESS_VM_OPERATION ao processo.
[in] lpBaseAddress
Um ponteiro para o endereço base no processo especificado no qual os dados são gravados. Antes que a transferência de dados ocorra, o sistema verifica se todos os dados no endereço base e na memória do tamanho especificado estão acessíveis para acesso de gravação e, se não estiverem acessíveis, a função falhará.
[in] lpBuffer
Um ponteiro para o buffer que contém dados a serem gravados no espaço de endereço do processo especificado.
[in] nSize
O número de bytes a serem gravados no processo especificado.
[out] lpNumberOfBytesWritten
Um ponteiro para uma variável que recebe o número de bytes transferidos para o processo especificado. Esse parâmetro é opcional. Se lpNumberOfBytesWritten for NULL, o parâmetro será ignorado.
Valor retornado
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero (0). Para obter informações de erro estendidas, chame GetLastError. A função falhará se a operação de gravação solicitada cruzar para uma área do processo que está inacessível.
Comentários
WriteProcessMemory copia os dados do buffer especificado no processo atual para o intervalo de endereços do processo especificado. Qualquer processo que tenha um identificador com PROCESS_VM_WRITE e PROCESS_VM_OPERATION acesso ao processo a ser gravado pode chamar a função. Normalmente, mas nem sempre, o processo com espaço de endereço que está sendo gravado está sendo depurado.
Toda a área a ser gravada deve estar acessível e, se não estiver acessível, a função falhará.
Requisitos
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | memoryapi.h (inclua Windows.h) |
Biblioteca | onecore.lib |
DLL | Kernel32.dll |