CreateFile2FromAppW, fonction (fileapifromapp.h)

Crée ou ouvre un fichier ou un appareil d’E/S. Le comportement de cette fonction est identique à CreateFile2, sauf que cette fonction respecte le modèle de sécurité des applications de plateforme Windows universelle.

Syntaxe

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

Paramètres

lpFileName

Nom du fichier ou de l’appareil à créer ou ouvrir.

Pour plus d’informations sur les noms d’appareils spéciaux, consultez Définition d’un nom d’appareil MS-DOS.

Pour créer un flux de fichiers, spécifiez le nom du fichier, un signe deux-points, puis le nom du flux. Pour plus d’informations, consultez Flux de fichiers.

Pour plus d’informations sur la désactivation de la limitation de MAX_PATH sans précéder « \\ ?\ », consultez la section « Limite maximale de longueur du chemin d’accès » de Naming Files, Path et Namespaces pour plus d’informations.

dwDesiredAccess

Accès demandé au fichier ou à l’appareil, qui peut être résumé sous forme de lecture, d’écriture, à la fois ou de zéro).

Les valeurs les plus couramment utilisées sont GENERIC_READ, GENERIC_WRITE ou les deux (GENERIC_READ | GENERIC_WRITE). Pour plus d’informations, consultez Droits d’accès génériques, Sécurité des fichiers et droits d’accès, constantes des droits d’accès aux fichiers et ACCESS_MASK.

Si ce paramètre est égal à zéro, l’application peut interroger certaines métadonnées telles que des attributs de fichier, de répertoire ou d’appareil sans accéder à ce fichier ou appareil, même si GENERIC_READ’accès aurait été refusé.

Vous ne pouvez pas demander un mode d’accès qui est en conflit avec le mode de partage spécifié par le paramètre dwShareMode dans une demande ouverte qui a déjà un handle ouvert.

dwShareMode

Mode de partage demandé du fichier ou de l’appareil, qui peut être lu, écrit, à la fois, supprimer, tous ces éléments ou aucun (reportez-vous au tableau suivant). Les demandes d’accès aux attributs ou aux attributs étendus ne sont pas affectées par cet indicateur.

Si ce paramètre est égal à zéro et que la fonction réussit, le fichier ou l’appareil ne peut pas être partagé et ne peut pas être rouvert tant que le handle du fichier ou de l’appareil n’est pas fermé. Pour plus d’informations, consultez la section Remarques.

Vous ne pouvez pas demander un mode de partage qui est en conflit avec le mode d’accès spécifié dans une requête existante qui a un handle ouvert. Cette fonction échoue et la fonction GetLastError retourne ERROR_SHARING_VIOLATION.

Pour permettre à un processus de partager un fichier ou un appareil pendant qu’un autre processus a ouvert le fichier ou l’appareil, utilisez une combinaison compatible d’une ou plusieurs des valeurs suivantes. Pour plus d’informations sur les combinaisons valides de ce paramètre avec le paramètre dwDesiredAccess , consultez Création et ouverture de fichiers.

Note Les options de partage pour chaque handle ouvert restent en vigueur jusqu’à ce que ce handle soit fermé, quel que soit le contexte du processus.

 

Valeur Meaning
0 0x00000000

Empêche d’autres processus d’ouvrir un fichier ou un appareil s’ils demandent l’accès en suppression, en lecture ou en écriture. L’accès exclusif à un fichier ou à un répertoire est accordé uniquement si l’application a accès en écriture au fichier.

FILE_SHARE_DELETE 0x00000004

Active les opérations d’ouverture suivantes sur un fichier ou un appareil pour demander l’accès à la suppression.

Sinon, d’autres processus ne peuvent pas ouvrir le fichier ou l’appareil s’ils demandent l’accès à la suppression.

Si cet indicateur n’est pas spécifié, mais que le fichier ou l’appareil a été ouvert pour supprimer l’accès, la fonction échoue.

Note L’accès à la suppression autorise les opérations de suppression et de renommage.
 
FILE_SHARE_READ 0x00000001

Active les opérations d’ouverture suivantes sur un fichier ou un appareil pour demander l’accès en lecture.

Sinon, d’autres processus ne peuvent pas ouvrir le fichier ou l’appareil s’ils demandent l’accès en lecture.

Si cet indicateur n’est pas spécifié, mais que le fichier ou l’appareil a été ouvert pour l’accès en lecture, la fonction échoue.

Si un fichier ou un répertoire est ouvert et que cet indicateur n’est pas spécifié, et que l’appelant n’a pas accès en écriture au fichier ou au répertoire, la fonction échoue.

FILE_SHARE_WRITE 0x00000002

Active les opérations d’ouverture suivantes sur un fichier ou un appareil pour demander l’accès en écriture.

Sinon, d’autres processus ne peuvent pas ouvrir le fichier ou l’appareil s’ils demandent l’accès en écriture.

Si cet indicateur n’est pas spécifié, mais que le fichier ou l’appareil a été ouvert pour l’accès en écriture ou a un mappage de fichiers avec accès en écriture, la fonction échoue.

dwCreationDisposition

Action à entreprendre sur un fichier ou un appareil qui existe ou n’existe pas.

Pour les appareils autres que les fichiers, ce paramètre est généralement défini sur OPEN_EXISTING.

Ce paramètre doit être l’une des valeurs suivantes, qui ne peuvent pas être combinées :

Valeur Meaning
CREATE_ALWAYS 2

Crée un fichier, toujours.

Si le fichier spécifié existe et est accessible en écriture, la fonction tronque le fichier, la fonction réussit et le code de dernière erreur est défini sur ERROR_ALREADY_EXISTS (183).

Si le fichier spécifié n’existe pas et qu’il s’agit d’un chemin d’accès valide, un nouveau fichier est créé, la fonction réussit et le code de dernière erreur est défini sur zéro.

CREATE_NEW 1

Crée un fichier, uniquement s’il n’existe pas déjà.

Si le fichier spécifié existe, la fonction échoue et le code de dernière erreur est défini sur ERROR_FILE_EXISTS (80).

Si le fichier spécifié n’existe pas et qu’il s’agit d’un chemin d’accès valide à un emplacement accessible en écriture, un nouveau fichier est créé.

OPEN_ALWAYS 4

Ouvre un fichier, toujours.

Si le fichier spécifié existe, la fonction réussit et le code de dernière erreur est défini sur ERROR_ALREADY_EXISTS (183).

Si le fichier spécifié n’existe pas et qu’il s’agit d’un chemin d’accès valide à un emplacement accessible en écriture, la fonction crée un fichier et le code de dernière erreur est défini sur zéro.

OPEN_EXISTING 3

Ouvre un fichier ou un appareil, uniquement s’il existe.

Si le fichier ou l’appareil spécifié n’existe pas, la fonction échoue et le code de dernière erreur est défini sur ERROR_FILE_NOT_FOUND (2).

TRUNCATE_EXISTING 5

Ouvre un fichier et la tronque afin que sa taille soit égale à zéro octet, uniquement s’il existe.

Si le fichier spécifié n’existe pas, la fonction échoue et le code de dernière erreur est défini sur ERROR_FILE_NOT_FOUND (2).

Le processus appelant doit ouvrir le fichier avec le jeu de bits GENERIC_WRITE dans le cadre du paramètre dwDesiredAccess .

pCreateExParams

Pointeur vers une structure CREATEFILE2_EXTENDED_PARAMETERS facultative.

Valeur retournée

Si la fonction réussit, la valeur de retour est un handle ouvert pour le fichier, l’appareil, le canal nommé ou l’emplacement de messagerie spécifié.

Si la fonction échoue, la valeur de retour est INVALID_HANDLE_VALUE. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Spécifications

Requirement Valeur
Client minimum requis Windows 10, version 1803
Header fileapifromapp.h
Library OneCore.Lib