Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Crea o abre un archivo o 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 de la Plataforma universal de Windows.
Syntax
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 tener que esperar "\\?\", consulte 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
Acceso solicitado al archivo o dispositivo, que se puede resumir como lectura, escritura, ambos o ninguno ninguno).
Los valores más usados son GENERIC_READ, GENERIC_WRITE o ambos (GENERIC_READ | GENERIC_WRITE). Para obtener más información, consulte Derechos de acceso genéricos, Seguridad de archivos y Derechos de acceso, Constantes de derechos de acceso de 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 entra 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, eliminar, todos 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 Crear y abrir archivos.
Nota Las opciones de uso compartido de cada identificador abierto permanecen en vigor hasta que se cierra ese identificador, independientemente del contexto del proceso.
| Importancia | Meaning |
|---|---|
| 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. |
| 0x00000004 de FILE_SHARE_DELETE | Habilita las operaciones abiertas posteriores en un archivo o dispositivo para solicitar el acceso de eliminación. De lo contrario, otros procesos no pueden abrir el archivo o el dispositivo si solicitan el acceso de eliminación. Si no se especifica esta marca, pero se ha abierto el archivo o el dispositivo 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 | Habilita las operaciones abiertas posteriores en un archivo o dispositivo para solicitar 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 se ha abierto el archivo o el dispositivo 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 | Habilita las operaciones abiertas posteriores en un archivo o dispositivo para solicitar 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 que no sean archivos, este parámetro se establece normalmente en OPEN_EXISTING.
Este parámetro debe ser uno de los siguientes valores, que no se pueden combinar:
| Importancia | Meaning |
|---|---|
| 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 código de último 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 código de último 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 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 a una ubicación grabable, la función crea un archivo y el código de último error se establece en cero. |
| OPEN_EXISTING 3 | Abre un archivo o dispositivo, solo si existe. Si el archivo o dispositivo especificado no existe, se produce un error en la función y el código de último 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 conjunto de bits como parte del parámetro dwDesiredAccess . |
pCreateExParams
Puntero a una estructura de CREATEFILE2_EXTENDED_PARAMETERS opcional.
Valor devuelto
Si la función se ejecuta 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
| Requirement | Importancia |
|---|---|
| Cliente mínimo compatible | Windows 10, versión 1803 |
| Header | fileapifromapp.h |
| Library | OneCore.Lib |