Condividi tramite


Funzione WriteProcessMemory (memoryapi.h)

Scrive i dati in un'area di memoria in un processo specificato. L'intera area da scrivere in deve essere accessibile o l'operazione non riesce.

Sintassi

BOOL WriteProcessMemory(
  [in]  HANDLE  hProcess,
  [in]  LPVOID  lpBaseAddress,
  [in]  LPCVOID lpBuffer,
  [in]  SIZE_T  nSize,
  [out] SIZE_T  *lpNumberOfBytesWritten
);

Parametri

[in] hProcess

Handle per la memoria del processo da modificare. L'handle deve avere PROCESS_VM_WRITE e PROCESS_VM_OPERATION l'accesso al processo.

[in] lpBaseAddress

Puntatore all'indirizzo di base nel processo specificato a cui vengono scritti i dati. Prima che si verifichi il trasferimento dei dati, il sistema verifica che tutti i dati nell'indirizzo di base e la memoria delle dimensioni specificate siano accessibili per l'accesso in scrittura e, se non è accessibile, la funzione ha esito negativo.

[in] lpBuffer

Puntatore al buffer che contiene dati da scrivere nello spazio indirizzi del processo specificato.

[in] nSize

Numero di byte da scrivere nel processo specificato.

[out] lpNumberOfBytesWritten

Puntatore a una variabile che riceve il numero di byte trasferiti nel processo specificato. Questo parametro è facoltativo e, Se lpNumberOfBytesWritten è NULL, il parametro viene ignorato.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è 0 (zero). Per informazioni dettagliate sull'errore, chiamare GetLastError. La funzione ha esito negativo se l'operazione di scrittura richiesta attraversa un'area del processo inaccessibile.

Commenti

WriteProcessMemory copia i dati dal buffer specificato nel processo corrente all'intervallo di indirizzi del processo specificato. Qualsiasi processo con handle con PROCESS_VM_WRITE e PROCESS_VM_OPERATION l'accesso al processo da scrivere in può chiamare la funzione. In genere, ma non sempre, il processo con spazio indirizzi in corso di scrittura viene eseguito il debug.

L'intera area da scrivere in deve essere accessibile e, se non è accessibile, la funzione ha esito negativo.

Requisiti

   
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione memoryapi.h (include Windows.h)
Libreria onecore.lib
DLL Kernel32.dll

Vedere anche

Funzioni di debug

Funzioni di elaborazione per il debug

ReadProcessMemory

VirtualAllocEx