Поделиться через


Функция OpenFileMappingA (winbase.h)

Открывает именованный объект сопоставления файлов.

Синтаксис

HANDLE OpenFileMappingA(
  [in] DWORD  dwDesiredAccess,
  [in] BOOL   bInheritHandle,
  [in] LPCSTR lpName
);

Параметры

[in] dwDesiredAccess

Доступ к объекту сопоставления файлов. Этот доступ проверяется на любой дескриптор безопасности в целевом объекте сопоставления файлов. Список значений см. в сопоставления файлов.

[in] bInheritHandle

Если этот параметр TRUE, процесс, созданный функцией CreateProcess, может наследовать дескриптор; в противном случае дескриптор не может быть унаследован.

[in] lpName

Имя открываемого объекта сопоставления файлов. Если существует открытый дескриптор объекта сопоставления файлов по этому имени, а дескриптор безопасности объекта сопоставления не конфликтует с параметром dwDesiredAccess, открытая операция завершается успешно. Имя может иметь префикс Global\или Local\, чтобы явно открыть объект в глобальном или пространстве имен сеанса. Оставшаяся часть имени может содержать любой символ, кроме символа обратной косой черты (\). Дополнительные сведения см. в разделе пространства имен объектов ядра. Быстрое переключение пользователей реализуется с помощью сеансов служб терминалов. Первый пользователь для входа использует сеанс 0, следующий пользователь для входа использует сеанс 1 и т. д. Имена объектов ядра должны соответствовать рекомендациям, описанным для служб терминалов, чтобы приложения могли поддерживать несколько пользователей.

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

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

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

Замечания

Дескриптор, возвращаемый OpenFileMapping, можно использовать с любой функцией, требующей дескриптора объекта сопоставления файлов.

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

Если он больше не нужен, вызывающий объект должен освободить дескриптор, возвращенный OpenFileMapping с вызовом CloseHandle.

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

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

Примеры

Пример см. в статье создание именованной общей памяти.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка winbase.h (включая Windows.h, Memoryapi.h)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

CreateFileMapping

функций сопоставления файлов

Функции управления памятью

общий доступ к файлам и памяти