Функция GetMappedFileNameA (psapi.h)

Проверяет, находится ли указанный адрес в сопоставленном в памяти файле в адресном пространстве указанного процесса. Если это так, функция возвращает имя файла, сопоставленного в памяти.

Синтаксис

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

Параметры

[in] hProcess

Дескриптор процесса. Дескриптор должен иметь право доступа PROCESS_QUERY_INFORMATION . Дополнительные сведения см. в разделе Обработка прав на безопасность и доступ.

[in] lpv

Проверяемый адрес.

[out] lpFilename

Указатель на буфер, получающий имя файла, сопоставленного с памятью, которому принадлежит адрес, указанный lpv .

[in] nSize

Размер буфера lpFilename в символах.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение указывает длину строки, скопированной в буфер, в символах.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Начиная с Windows 7 и Windows Server 2008 R2, Psapi.h устанавливает номера версий для функций PSAPI. Номер версии PSAPI влияет на имя, используемое для вызова функции, и библиотеку, которую должна загрузить программа.

Если PSAPI_VERSION имеет значение 2 или больше, эта функция определяется как K32GetMappedFileName в Psapi.h и экспортируется в Kernel32.lib и Kernel32.dll. Если PSAPI_VERSION равно 1, эта функция определяется как GetMappedFileName в Psapi.h и экспортируется в Psapi.lib и Psapi.dll в качестве оболочки, которая вызывает K32GetMappedFileName.

Программы, которые должны выполняться в более ранних версиях Windows, а также Windows 7 и более поздних версиях, всегда должны вызывать эту функцию как GetMappedFileName. Чтобы обеспечить правильное разрешение символов, добавьте Psapi.lib в макрос TARGETLIBS и скомпилируйте программу с параметром -DPSAPI_VERSION=1. Чтобы использовать динамическое связывание во время выполнения, загрузите Psapi.dll.

В Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
Прозрачная отработка отказа (TFO) SMB 3.0 Да
SMB 3.0 с масштабируемыми общими папками (SO) Да
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да
 

Примеры

Пример см. в разделе Получение имени файла из дескриптора файла.

Примечание

Заголовок psapi.h определяет GetMappedFileName в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header psapi.h
Библиотека Kernel32.lib в Windows 7 и Windows Server 2008 R2; Psapi.lib (если PSAPI_VERSION=1) в Windows 7 и Windows Server 2008 R2; Psapi.lib в Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP
DLL Kernel32.dll в Windows 7 и Windows Server 2008 R2; Psapi.dll (если PSAPI_VERSION=1) в Windows 7 и Windows Server 2008 R2; Psapi.dll в Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP

См. также раздел

EnumProcesses

Сведения о файлах, сопоставленных в памяти

Функции PSAPI