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 |