Función CreateFile2FromAppW (fileapifromapp.h)

Crea o abre un archivo o un dispositivo de E/S. El comportamiento de esta función es idéntico a CreateFile2, salvo que esta función se adhiere al modelo de seguridad de aplicaciones Plataforma universal de Windows.

Sintaxis

WINSTORAGEAPI HANDLE CreateFile2FromAppW(
  LPCWSTR                           lpFileName,
  DWORD                             dwDesiredAccess,
  DWORD                             dwShareMode,
  DWORD                             dwCreationDisposition,
  LPCREATEFILE2_EXTENDED_PARAMETERS pCreateExParams
) noexcept;

Parámetros

lpFileName

Nombre del archivo o dispositivo que se va a crear o abrir.

Para obtener información sobre los nombres de dispositivo especiales, consulte Definición de un nombre de dispositivo MS-DOS.

Para crear una secuencia de archivos, especifique el nombre del archivo, dos puntos y, a continuación, el nombre de la secuencia. Para obtener más información, vea Secuencias de archivos.

Para obtener información sobre cómo no participar en la limitación de MAX_PATH sin prepending "\\?\\", vea la sección "Limitación máxima de longitud de ruta de acceso" de Nombres de archivos, rutas de acceso y espacios de nombres para obtener más información.

dwDesiredAccess

El acceso solicitado al archivo o dispositivo, que se puede resumir como lectura, escritura, ambos o ninguno cero).

Los valores más usados son GENERIC_READ, GENERIC_WRITE o ambos (GENERIC_READ | GENERIC_WRITE). Para obtener más información, vea Derechos de acceso genéricos, Derechos de acceso a archivos y Derechos de acceso, Constantes de derechos de acceso a archivos y ACCESS_MASK.

Si este parámetro es cero, la aplicación puede consultar determinados metadatos, como los atributos de archivo, directorio o dispositivo sin tener acceso a ese archivo o dispositivo, incluso si se hubiera denegado GENERIC_READ acceso.

No se puede solicitar un modo de acceso que entre en conflicto con el modo de uso compartido especificado por el parámetro dwShareMode en una solicitud abierta que ya tiene un identificador abierto.

dwShareMode

Modo de uso compartido solicitado del archivo o dispositivo, que se puede leer, escribir, ambos, eliminar, todos ellos o ninguno (consulte la tabla siguiente). Las solicitudes de acceso a atributos o atributos extendidos no se ven afectadas por esta marca.

Si este parámetro es cero y la función se ejecuta correctamente, el archivo o dispositivo no se puede compartir y no se puede volver a abrir hasta que se cierre el identificador del archivo o dispositivo. Para obtener más información, vea la sección Comentarios.

No se puede solicitar un modo de uso compartido que entre en conflicto con el modo de acceso especificado en una solicitud existente que tenga un identificador abierto. Esta función produciría un error y la función GetLastError devolvería ERROR_SHARING_VIOLATION.

Para habilitar un proceso para compartir un archivo o dispositivo mientras otro proceso tiene abierto el archivo o dispositivo, use una combinación compatible de uno o varios de los valores siguientes. Para obtener más información sobre las combinaciones válidas de este parámetro con el parámetro dwDesiredAccess , vea Creating and Opening Files.

Nota Las opciones de uso compartido de cada identificador abierto permanecen en vigor hasta que se cierra ese identificador, independientemente del contexto del proceso.

 

Valor Significado
0 0x00000000

Impide que otros procesos abran un archivo o dispositivo si solicitan acceso de eliminación, lectura o escritura. Solo se concede acceso exclusivo a un archivo o directorio si la aplicación tiene acceso de escritura al archivo.

FILE_SHARE_DELETE 0x00000004

Permite que las operaciones abiertas posteriores en un archivo o dispositivo soliciten acceso de eliminación.

De lo contrario, otros procesos no pueden abrir el archivo o el dispositivo si solicitan acceso de eliminación.

Si no se especifica esta marca, pero el archivo o dispositivo se ha abierto para el acceso de eliminación, se produce un error en la función.

Nota El acceso de eliminación permite las operaciones de eliminación y cambio de nombre.
 
FILE_SHARE_READ 0x00000001

Permite que las operaciones abiertas posteriores en un archivo o dispositivo soliciten acceso de lectura.

De lo contrario, otros procesos no pueden abrir el archivo o el dispositivo si solicitan acceso de lectura.

Si no se especifica esta marca, pero el archivo o dispositivo se ha abierto para el acceso de lectura, se produce un error en la función.

Si se abre un archivo o directorio y no se especifica esta marca y el autor de la llamada no tiene acceso de escritura al archivo o directorio, se produce un error en la función.

FILE_SHARE_WRITE 0x00000002

Permite que las operaciones abiertas posteriores en un archivo o dispositivo soliciten acceso de escritura.

De lo contrario, otros procesos no pueden abrir el archivo o el dispositivo si solicitan acceso de escritura.

Si no se especifica esta marca, pero el archivo o dispositivo se ha abierto para el acceso de escritura o tiene una asignación de archivos con acceso de escritura, se produce un error en la función.

dwCreationDisposition

Acción que se va a realizar en un archivo o dispositivo que existe o no existe.

En el caso de los dispositivos distintos de los archivos, este parámetro normalmente se establece en OPEN_EXISTING.

Este parámetro debe ser uno de los siguientes valores, que no se pueden combinar:

Valor Significado
CREATE_ALWAYS 2

Crea un nuevo archivo, siempre.

Si el archivo especificado existe y se puede escribir, la función trunca el archivo, la función se ejecuta correctamente y el código de último error se establece en ERROR_ALREADY_EXISTS (183).

Si el archivo especificado no existe y es una ruta de acceso válida, se crea un nuevo archivo, la función se ejecuta correctamente y el último código de error se establece en cero.

CREATE_NEW 1

Crea un nuevo archivo, solo si aún no existe.

Si el archivo especificado existe, se produce un error en la función y el último código de error se establece en ERROR_FILE_EXISTS (80).

Si el archivo especificado no existe y es una ruta de acceso válida a una ubicación grabable, se crea un nuevo archivo.

OPEN_ALWAYS 4

Abre un archivo, siempre.

Si el archivo especificado existe, la función se realiza correctamente y el último código de error se establece en ERROR_ALREADY_EXISTS (183).

Si el archivo especificado no existe y es una ruta de acceso válida a una ubicación grabable, la función crea un archivo y el último código de error se establece en cero.

OPEN_EXISTING 3

Abre un archivo o dispositivo, solo si existe.

Si el archivo o dispositivo especificados no existe, se produce un error en la función y el último código de error se establece en ERROR_FILE_NOT_FOUND (2).

TRUNCATE_EXISTING 5

Abre un archivo y lo trunca para que su tamaño sea cero bytes, solo si existe.

Si el archivo especificado no existe, se produce un error en la función y el último código de error se establece en ERROR_FILE_NOT_FOUND (2).

El proceso de llamada debe abrir el archivo con el GENERIC_WRITE bit establecido como parte del parámetro dwDesiredAccess .

pCreateExParams

Puntero a una estructura de CREATEFILE2_EXTENDED_PARAMETERS opcional.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es un identificador abierto para el archivo, dispositivo, canalización con nombre o ranura de correo especificados.

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1803
Encabezado fileapifromapp.h