Funzione MapFileAndCheckSumA (imagehlp.h)
Calcola il checksum del file specificato.
Sintassi
DWORD IMAGEAPI MapFileAndCheckSumA(
[in] PCSTR Filename,
[out] PDWORD HeaderSum,
[out] PDWORD CheckSum
);
Parametri
[in] Filename
Nome file del file per il quale deve essere calcolato il checksum.
[out] HeaderSum
Puntatore a una variabile che riceve il checksum originale dal file di immagine oppure zero se si verifica un errore.
[out] CheckSum
Puntatore a una variabile che riceve il checksum calcolato.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è CHECKSUM_SUCCESS (0).
Se la funzione ha esito negativo, il valore restituito è uno dei seguenti.
Codice/valore restituito | Descrizione |
---|---|
|
Impossibile eseguire il mapping del file. |
|
Impossibile eseguire il mapping di una visualizzazione del file. |
|
Impossibile aprire il file. |
|
Impossibile convertire il nome del file in Unicode. |
Commenti
La funzione MapFileAndCheckSum calcola un nuovo checksum per il file e lo restituisce nel parametro CheckSum . Questa funzione viene usata da qualsiasi applicazione che crea o modifica un'immagine eseguibile. I checksum sono necessari per i driver in modalità kernel e alcune DLL di sistema. Il linker calcola il checksum originale in fase di collegamento, se si usa l'opzione del linker appropriata. Per altri dettagli, vedere la documentazione del linker.
È consigliabile che tutte le immagini abbiano checksum validi. È responsabilità del chiamante inserire il checksum appena calcolato nell'immagine mappata e aggiornare l'immagine su disco del file.
Il passaggio di un parametro Filename che non punta a un'immagine eseguibile valida produrrà risultati imprevedibili. Qualsiasi utente di questa funzione è incoraggiato a verificare che venga passata un'immagine eseguibile valida.
Tutte le funzioni ImageHlp, ad esempio questa, sono a thread singolo. Di conseguenza, le chiamate da più thread a questa funzione genereranno un comportamento imprevisto o un danneggiamento della memoria. Per evitare questo problema, è necessario sincronizzare tutte le chiamate simultanee da più thread a questa funzione.
Nota
L'intestazione imagehlp.h definisce MapFileAndCheckSum come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | imagehlp.h |
Libreria | Imagehlp.lib |
DLL | Imagehlp.dll |