GetMappedFileNameA-Funktion (psapi.h)

Überprüft, ob sich die angegebene Adresse innerhalb einer speicherabbildeten Datei im Adressraum des angegebenen Prozesses befindet. Wenn ja, gibt die Funktion den Namen der im Speicher zugeordneten Datei zurück.

Syntax

DWORD GetMappedFileNameA(
  [in]  HANDLE hProcess,
  [in]  LPVOID lpv,
  [out] LPSTR  lpFilename,
  [in]  DWORD  nSize
);

Parameter

[in] hProcess

Ein Handle für den Prozess. Das Handle muss über das zugriffsrecht PROCESS_QUERY_INFORMATION verfügen. Weitere Informationen finden Sie unter Prozesssicherheit und Zugriffsrechte.

[in] lpv

Die zu überprüfende Adresse.

[out] lpFilename

Ein Zeiger auf den Puffer, der den Namen der im Speicher zugeordneten Datei empfängt, zu der die durch lpv angegebene Adresse gehört.

[in] nSize

Die Größe des lpFilename-Puffers in Zeichen.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt der Rückgabewert die Länge der in den Puffer kopierten Zeichenfolge in Zeichen an.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Ab Windows 7 und Windows Server 2008 R2 erstellt Psapi.h Versionsnummern für die PSAPI-Funktionen. Die PSAPI-Versionsnummer wirkt sich auf den Namen aus, der zum Aufrufen der Funktion und der Bibliothek verwendet wird, die ein Programm laden muss.

Wenn PSAPI_VERSION 2 oder höher ist, wird diese Funktion in Psapi.h als K32GetMappedFileName definiert und in Kernel32.lib und Kernel32.dll exportiert. Wenn PSAPI_VERSION 1 ist, wird diese Funktion in Psapi.h als GetMappedFileName definiert und in Psapi.lib exportiert und Psapi.dll als Wrapper, der K32GetMappedFileName aufruft.

Programme, die unter früheren Versionen von Windows sowie Windows 7 und höheren Versionen ausgeführt werden müssen, sollten diese Funktion immer als GetMappedFileName aufrufen. Um die korrekte Auflösung von Symbolen sicherzustellen, fügen Sie Dem TARGETLIBS-Makro Psapi.lib hinzu, und kompilieren Sie das Programm mit -DPSAPI_VERSION=1. Laden Sie Psapi.dll, um die dynamische Laufzeitverknüpfung zu verwenden.

In Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.

Technologie Unterstützt
SMB 3.0-Protokoll (Server Message Block) Ja
SMB 3.0 Transparent Failover (TFO) Ja
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) Ja
Dateisystem mit freigegebenen Clustervolumes (CsvFS) Ja
Robustes Dateisystem (Resilient File System, ReFS) Ja
 

Beispiele

Ein Beispiel finden Sie unter Abrufen eines Dateinamens aus einem Dateihandle.

Hinweis

Der psapi.h-Header definiert GetMappedFileName 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 Code, der nicht Codierungsneutral ist, 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 psapi.h
Bibliothek Kernel32.lib unter Windows 7 und Windows Server 2008 R2; Psapi.lib (wenn PSAPI_VERSION=1) unter Windows 7 und Windows Server 2008 R2; Psapi.lib unter Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP
DLL Kernel32.dll unter Windows 7 und Windows Server 2008 R2; Psapi.dll (wenn PSAPI_VERSION=1) unter Windows 7 und Windows Server 2008 R2; Psapi.dll unter Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP

Weitere Informationen

EnumProcesses

Speicherabbildungsdateiinformationen

PSAPI-Funktionen