Freigeben über


MapFileAndCheckSumA-Funktion (imagehlp.h)

Berechnet die Prüfsumme der angegebenen Datei.

Syntax

DWORD IMAGEAPI MapFileAndCheckSumA(
  [in]  PCSTR  Filename,
  [out] PDWORD HeaderSum,
  [out] PDWORD CheckSum
);

Parameter

[in] Filename

Der Dateiname der Datei, für die die Prüfsumme berechnet werden soll.

[out] HeaderSum

Ein Zeiger auf eine Variable, die die ursprüngliche Prüfsumme aus der Bilddatei empfängt, oder null, wenn ein Fehler vorliegt.

[out] CheckSum

Ein Zeiger auf eine Variable, die die berechnete Prüfsumme empfängt.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert CHECKSUM_SUCCESS (0).

Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden.

Rückgabecode/-wert BESCHREIBUNG
CHECKSUM_MAP_FAILURE
2
Die Datei konnte nicht zugeordnet werden.
CHECKSUM_MAPVIEW_FAILURE
3
Eine Ansicht der Datei konnte nicht zugeordnet werden.
CHECKSUM_OPEN_FAILURE
1
Die Datei konnte nicht geöffnet werden.
CHECKSUM_UNICODE_FAILURE
4
Der Dateiname konnte nicht in Unicode konvertiert werden.

Hinweise

Die MapFileAndCheckSum-Funktion berechnet eine neue Prüfsumme für die Datei und gibt sie im CheckSum-Parameter zurück. Diese Funktion wird von jeder Anwendung verwendet, die ein ausführbares Image erstellt oder ändert. Prüfsummen sind für Kernelmodustreiber und einige System-DLLs erforderlich. Der Linker berechnet die ursprüngliche Prüfsumme zur Linkzeit, wenn Sie den entsprechenden Linkerschalter verwenden. Weitere Informationen finden Sie in der Dokumentation zu Ihrem Linker.

Es wird empfohlen, dass alle Bilder über gültige Prüfsummen verfügen. Es liegt in der Verantwortung des Aufrufers, die neu berechnete Prüfsumme im zugeordneten Image zu platzieren und das Image der Datei auf dem Datenträger zu aktualisieren.

Das Übergeben eines Filename-Parameters , der nicht auf ein gültiges ausführbares Image verweist, führt zu unvorhersehbaren Ergebnissen. Jeder Benutzer dieser Funktion wird aufgefordert, sicherzustellen, dass ein gültiges ausführbares Image übergeben wird.

Alle ImageHlp-Funktionen, z. B. diese, sind single threaded. Daher führen an diese Funktion gerichtete Aufrufe mehrerer Threads wahrscheinlich zu unerwartetem Verhalten oder einer Beschädigung des Speichers. Um dies zu vermeiden, müssen Sie alle an diese Funktion gerichteten gleichzeitigen Aufrufe mehrerer Threads synchronisieren.

Hinweis Die Unicode-Implementierung dieser Funktion ruft die ASCII-Implementierung auf, und daher kann die Funktion fehlschlagen, wenn die Codepage die Zeichen im Pfad nicht unterstützt. Wenn Sie beispielsweise einen nicht englischen Unicode-Dateipfad übergeben und die Standardcodepage Englisch ist, werden die nicht erkannten nicht englischen Breitzeichen in "??" konvertiert. und die Datei kann nicht geöffnet werden (die Funktion gibt CHECKSUM_OPEN_FAILURE zurück).
 

Hinweis

Der imagehlp.h-Header definiert MapFileAndCheckSum als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile imagehlp.h
Bibliothek Imagehlp.lib
DLL Imagehlp.dll

Weitere Informationen

CheckSumMappedFile

ImageHlp-Funktionen