Compartir a través de


Función OpenFileMappingA (winbase.h)

Abre un objeto de asignación de archivos con nombre.

Sintaxis

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

Parámetros

[in] dwDesiredAccess

Acceso al objeto de asignación de archivos. Este acceso se comprueba con cualquier descriptor de seguridad en el objeto de asignación de archivos de destino. Para obtener una lista de valores, vea seguridad de asignación de archivos y derechos de acceso.

[in] bInheritHandle

Si este parámetro es TRUE, un proceso creado por la función CreateProcess puede heredar el identificador; de lo contrario, no se puede heredar el identificador.

[in] lpName

Nombre del objeto de asignación de archivos que se va a abrir. Si hay un identificador abierto para un objeto de asignación de archivos por este nombre y el descriptor de seguridad del objeto de asignación no entra en conflicto con el parámetro dwDesiredAccess , la operación abierta se realiza correctamente. El nombre puede tener un prefijo "Global\" o "Local\" para abrir explícitamente un objeto en el espacio de nombres global o de sesión. El resto del nombre puede contener cualquier carácter excepto el carácter de barra diagonal inversa (\). Para obtener más información, vea espacios de nombres de objeto kernel. El cambio rápido de usuario se implementa mediante sesiones de Terminal Services. El primer usuario en iniciar sesión usa la sesión 0, el siguiente usuario para iniciar sesión usa la sesión 1, etc. Los nombres de objeto de kernel deben seguir las directrices descritas para Terminal Services para que las aplicaciones puedan admitir varios usuarios.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un identificador abierto para el objeto de asignación de archivos especificado.

Si se produce un error en la función, el valor devuelto es NULL. Para obtener información de error extendida, llame a GetLastError.

Observaciones

El identificador que openFileMapping devuelve se puede usar con cualquier función que requiera un identificador para un objeto de asignación de archivos.

Al modificar un archivo a través de una vista asignada, es posible que la última marca de tiempo de modificación no se actualice automáticamente. Si es necesario, el autor de la llamada debe usar SetFileTime para establecer la marca de tiempo.

Cuando ya no es necesario, el autor de la llamada debe liberar el identificador devuelto por openFileMapping con una llamada a CloseHandle.

En Windows Server 2012, esta función es compatible con las siguientes tecnologías.

Tecnología Soportado
Protocolo bloque de mensajes del servidor (SMB) 3.0
Conmutación por error transparente (TFO) de SMB 3.0
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO)
Sistema de archivos de volumen compartido de clúster (CsvFS)
Sistema de archivos resistente (ReFS)
 

Ejemplos

Para obtener un ejemplo, vea Crear memoria compartida con nombre.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de winbase.h (incluya Windows.h, Memoryapi.h)
biblioteca de Kernel32.lib
DLL de Kernel32.dll

Consulte también

CreateFileMapping

funciones de asignación de archivos de

Funciones de administración de memoria

compartir archivos y de memoria