GetFullPathNameTransactedW, fonction (winbase.h)

[Microsoft recommande vivement aux développeurs d’utiliser d’autres moyens pour répondre aux besoins de votre application. De nombreux scénarios utilisant TxF peuvent être réalisés à l’aide de techniques plus simples et plus facilement disponibles. En outre, TxF peut ne pas être disponible dans les versions à venir de Microsoft Windows. Pour plus d’informations et les alternatives à TxF, consultez Alternatives à l’utilisation de Transactionnel NTFS.]

Récupère le chemin d’accès complet et le nom du fichier .wim spécifié en tant qu’opération transactionnelle.

Pour effectuer cette opération sans transactions, utilisez la fonction GetFullPathName .

Pour plus d’informations sur les noms de fichiers et de chemins d’accès, consultez Noms de fichiers, chemins et espaces de noms.

Syntaxe

DWORD GetFullPathNameTransactedW(
  [in]  LPCWSTR lpFileName,
  [in]  DWORD   nBufferLength,
  [out] LPWSTR  lpBuffer,
  [out] LPWSTR  *lpFilePart,
  [in]  HANDLE  hTransaction
);

Paramètres

[in] lpFileName

Nom du fichier.

Cette chaîne peut utiliser des noms de fichiers courts (formulaire 8.3) ou longs. Cette chaîne peut être un nom de partage ou de volume.

Le fichier doit résider sur l’ordinateur local ; sinon, la fonction échoue et le dernier code d’erreur est défini sur ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.

[in] nBufferLength

Taille de la mémoire tampon pour recevoir la chaîne terminée par null pour le lecteur et le chemin d’accès, dans les TCHAR.

[out] lpBuffer

Pointeur vers une mémoire tampon qui reçoit la chaîne terminée par null pour le lecteur et le chemin d’accès.

[out] lpFilePart

Pointeur vers une mémoire tampon qui reçoit l’adresse (en lpBuffer) du composant de nom de fichier final dans le chemin d’accès. Spécifiez NULL si vous n’avez pas besoin de recevoir ces informations.

Si lpBuffer pointe vers un répertoire et non vers un fichier, lpFilePart reçoit 0 (zéro).

[in] hTransaction

Handle de la transaction. Ce handle est retourné par la fonction CreateTransaction .

Valeur retournée

Si la fonction réussit, la valeur de retour est la longueur, en TCHAR, de la chaîne copiée dans lpBuffer, sans inclure le caractère null de fin.

Si la mémoire tampon lpBuffer est trop petite pour contenir le chemin d’accès, la valeur de retour est la taille, dans les TCHAR, de la mémoire tampon nécessaire pour contenir le chemin et le caractère null de fin.

Si la fonction échoue pour une autre raison, la valeur de retour est zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

GetFullPathNameTransacted fusionne le nom du lecteur et du répertoire actuels avec un nom de fichier spécifié pour déterminer le chemin d’accès complet et le nom de fichier d’un fichier spécifié. Il calcule également l’adresse de la partie du nom de fichier du chemin d’accès complet et du nom de fichier. Cette fonction ne vérifie pas que le chemin d’accès et le nom de fichier résultants sont valides ou qu’ils voient un fichier existant sur le volume associé.

Les noms de partage et de volume sont des entrées valides pour lpFileName. Par exemple, la liste suivante identité le chemin d’accès et les noms de fichiers retournés si test-2 est un ordinateur distant et U : est un lecteur réseau mappé :

  • Si vous spécifiez « \\test-2\q$\lh », le chemin retourné est « \\test-2\q$\lh »
  • Si vous spécifiez « \\?\UNC\test-2\q$\lh », le chemin retourné est « \?\UNC\test-2\q$\lh »
  • Si vous spécifiez « U: », le chemin d’accès retourné est « U:\ »
GetFullPathNameTransacted ne convertit pas le nom de fichier spécifié, lpFileName. Si le nom de fichier spécifié existe, vous pouvez utiliser GetLongPathNameTransacted, GetLongPathName ou GetShortPathName pour convertir respectivement en noms de chemin d’accès long ou court.

Si la valeur de retour est supérieure à la valeur spécifiée dans nBufferLength, vous pouvez appeler à nouveau la fonction avec une mémoire tampon suffisamment grande pour contenir le chemin d’accès. Pour obtenir un exemple de ce cas ainsi que l’utilisation d’une mémoire tampon de longueur nulle pour l’allocation dynamique, consultez la section Exemple de code.

Note Bien que la valeur de retour dans ce cas soit une longueur qui inclut le caractère null de fin, la valeur de retour sur success n’inclut pas le caractère null de fin dans le nombre.
 
Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.
Technologie Prise en charge
Protocole Server Message Block (SMB) 3.0 Non
Basculement transparent SMB 3.0 (TFO) No
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) No
Système de fichiers du volume partagé de cluster (CsvFS) No
Système de fichiers résilient (ReFS) No
 

SMB 3.0 ne prend pas en charge TxF.

Notes

L’en-tête winbase.h définit GetFullPathNameTransacted comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Fonctions de gestion des fichiers

GetFullPathName

GetLongPathNameTransacted

GetShortPathName

GetTempPath

SearchPath

NTFS transactionnel