Funzione CreateFile2FromAppW (fileapifromapp.h)
Crea o apre un file o un dispositivo di I/O. Il comportamento di questa funzione è identico a CreateFile2, ad eccezione del fatto che questa funzione rispetta il modello di sicurezza delle app piattaforma UWP (Universal Windows Platform).
Sintassi
WINSTORAGEAPI HANDLE CreateFile2FromAppW(
LPCWSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
DWORD dwCreationDisposition,
LPCREATEFILE2_EXTENDED_PARAMETERS pCreateExParams
) noexcept;
Parametri
lpFileName
Nome del file o del dispositivo da creare o aprire.
Per informazioni sui nomi di dispositivi speciali, vedere Definizione di un nome dispositivo MS-DOS.
Per creare un flusso di file, specificare il nome del file, i due punti e quindi il nome del flusso. Per altre informazioni, vedere Flussi di file.
Per informazioni su come rifiutare esplicitamente la limitazione MAX_PATH senza anteporre "\\?\", vedere la sezione "Limitazione massima della lunghezza del percorso" di Denominazione di file, percorsi e spazi dei nomi per informazioni dettagliate.
dwDesiredAccess
L'accesso richiesto al file o al dispositivo, che può essere riepilogato come lettura, scrittura, entrambi o nessuno zero).
I valori usati più di frequente sono GENERIC_READ, GENERIC_WRITE o entrambi (GENERIC_READ | GENERIC_WRITE
). Per altre informazioni, vedere Diritti di accesso generico, sicurezza dei file e diritti di accesso, costanti dei diritti di accesso ai file e ACCESS_MASK.
Se questo parametro è zero, l'applicazione può eseguire query su determinati metadati, ad esempio file, directory o attributi del dispositivo senza accedere a tale file o dispositivo, anche se GENERIC_READ accesso sarebbe stato negato.
Non è possibile richiedere una modalità di accesso in conflitto con la modalità di condivisione specificata dal parametro dwShareMode in una richiesta aperta che dispone già di un handle aperto.
dwShareMode
Modalità di condivisione richiesta del file o del dispositivo, che può essere letta, scritta, entrambe, eliminate, tutte queste o nessuna (fare riferimento alla tabella seguente). Le richieste di accesso agli attributi o agli attributi estesi non sono interessate da questo flag.
Se questo parametro è zero e la funzione ha esito positivo, il file o il dispositivo non può essere condiviso e non può essere aperto di nuovo fino alla chiusura dell'handle al file o al dispositivo. Per altre informazioni, vedere la sezione Osservazioni.
Non è possibile richiedere una modalità di condivisione in conflitto con la modalità di accesso specificata in una richiesta esistente con un handle aperto. Questa funzione avrà esito negativo e la funzione GetLastError restituirà ERROR_SHARING_VIOLATION.
Per consentire a un processo di condividere un file o un dispositivo mentre un altro processo ha aperto il file o il dispositivo, usare una combinazione compatibile di uno o più dei valori seguenti. Per altre informazioni sulle combinazioni valide di questo parametro con il parametro dwDesiredAccess , vedere Creazione e apertura di file.
Nota Le opzioni di condivisione per ogni handle aperto rimangono attive fino a quando tale handle non viene chiuso, indipendentemente dal contesto del processo.
Valore | Significato |
---|---|
0 0x00000000 | Impedisce ad altri processi di aprire un file o un dispositivo se richiedono l'eliminazione, la lettura o l'accesso in scrittura. L'accesso esclusivo a un file o a una directory viene concesso solo se l'applicazione ha accesso in scrittura al file. |
FILE_SHARE_DELETE 0x00000004 | Consente alle operazioni aperte successive su un file o un dispositivo di richiedere l'accesso all'eliminazione. In caso contrario, altri processi non possono aprire il file o il dispositivo se richiedono l'accesso di eliminazione. Se questo flag non è specificato, ma il file o il dispositivo è stato aperto per l'accesso all'eliminazione, la funzione ha esito negativo. Nota L'accesso eliminato consente sia le operazioni di eliminazione che di ridenominazione. |
0x00000001 FILE_SHARE_READ | Abilita le operazioni aperte successive su un file o un dispositivo per richiedere l'accesso in lettura. In caso contrario, altri processi non possono aprire il file o il dispositivo se richiedono l'accesso in lettura. Se questo flag non è specificato, ma il file o il dispositivo è stato aperto per l'accesso in lettura, la funzione ha esito negativo. Se si apre un file o una directory e questo flag non viene specificato e il chiamante non dispone dell'accesso in scrittura al file o alla directory, la funzione ha esito negativo. |
FILE_SHARE_WRITE 0x00000002 | Consente alle successive operazioni aperte su un file o un dispositivo di richiedere l'accesso in scrittura. In caso contrario, altri processi non possono aprire il file o il dispositivo se richiedono l'accesso in scrittura. Se questo flag non viene specificato, ma il file o il dispositivo è stato aperto per l'accesso in scrittura o ha un mapping di file con accesso in scrittura, la funzione ha esito negativo. |
dwCreationDisposition
Azione da eseguire su un file o un dispositivo esistente o che non esiste.
Per i dispositivi diversi dai file, questo parametro è in genere impostato su OPEN_EXISTING.
Questo parametro deve essere uno dei valori seguenti, che non possono essere combinati:
Valore | Significato |
---|---|
CREATE_ALWAYS 2 | Crea sempre un nuovo file. Se il file specificato esiste ed è scrivibile, la funzione tronca il file, la funzione ha esito positivo e il codice dell'ultimo errore viene impostato su ERROR_ALREADY_EXISTS (183). Se il file specificato non esiste ed è un percorso valido, viene creato un nuovo file, la funzione ha esito positivo e il codice dell'ultimo errore viene impostato su zero. |
CREATE_NEW 1 | Crea un nuovo file, solo se non esiste già. Se il file specificato esiste, la funzione ha esito negativo e l'ultimo codice di errore viene impostato su ERROR_FILE_EXISTS (80). Se il file specificato non esiste ed è un percorso valido per un percorso scrivibile, viene creato un nuovo file. |
OPEN_ALWAYS 4 | Apre sempre un file. Se il file specificato esiste, la funzione ha esito positivo e l'ultimo codice di errore viene impostato su ERROR_ALREADY_EXISTS (183). Se il file specificato non esiste ed è un percorso valido per un percorso scrivibile, la funzione crea un file e il codice dell'ultimo errore è impostato su zero. |
OPEN_EXISTING 3 | Apre un file o un dispositivo, solo se esistente. Se il file o il dispositivo specificato non esiste, la funzione ha esito negativo e il codice dell'ultimo errore è impostato su ERROR_FILE_NOT_FOUND (2). |
TRUNCATE_EXISTING 5 | Apre un file e lo tronca in modo che la dimensione sia pari a zero byte, solo se esistente. Se il file specificato non esiste, la funzione ha esito negativo e l'ultimo codice di errore è impostato su ERROR_FILE_NOT_FOUND (2). Il processo chiamante deve aprire il file con il set di bit GENERIC_WRITE come parte del parametro dwDesiredAccess . |
pCreateExParams
Puntatore a una struttura di CREATEFILE2_EXTENDED_PARAMETERS facoltativa.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è un handle aperto per il file, il dispositivo, la named pipe o lo slot di posta elettronica specificato.
Se la funzione ha esito negativo, il valore restituito viene INVALID_HANDLE_VALUE. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10, versione 1803 |
Intestazione | fileapifromapp.h |