Fonction UnlockFile (fileapi.h)

Déverrouille une région dans un fichier ouvert. Le déverrouillage d’une région permet à d’autres processus d’accéder à la région.

Pour une autre façon de spécifier la région, utilisez la fonction UnlockFileEx .

Syntaxe

BOOL UnlockFile(
  [in] HANDLE hFile,
  [in] DWORD  dwFileOffsetLow,
  [in] DWORD  dwFileOffsetHigh,
  [in] DWORD  nNumberOfBytesToUnlockLow,
  [in] DWORD  nNumberOfBytesToUnlockHigh
);

Paramètres

[in] hFile

Handle du fichier qui contient une région verrouillée avec LockFile. Le handle de fichier doit avoir été créé avec le droit d’accès GENERIC_READ ou GENERIC_WRITE . Pour plus d’informations, consultez Sécurité des fichiers et droits d’accès.

[in] dwFileOffsetLow

Mot d’ordre inférieur du décalage d’octet de début dans le fichier où commence la région verrouillée.

[in] dwFileOffsetHigh

Mot d’ordre supérieur du décalage d’octet de début dans le fichier où commence la région verrouillée.

[in] nNumberOfBytesToUnlockLow

Mot d’ordre inférieur de la longueur de la plage d’octets à déverrouiller.

[in] nNumberOfBytesToUnlockHigh

Mot d’ordre supérieur de la longueur de la plage d’octets à déverrouiller.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

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

Notes

Cette fonction fonctionne toujours de manière synchrone, mais ne peut pas mettre en file d’attente une entrée d’achèvement lorsqu’un port d’achèvement est associé au handle de fichier.

Le déverrouillage d’une région d’un fichier libère un verrou précédemment acquis sur le fichier. La région à déverrouiller doit correspondre exactement à une région verrouillée existante. Deux régions adjacentes d’un fichier ne peuvent pas être verrouillées séparément, puis déverrouillées à l’aide d’une seule région qui s’étend sur les deux régions verrouillées.

Si un processus se termine avec une partie d’un fichier verrouillé ou ferme un fichier qui a des verrous en attente, les verrous sont déverrouillés par le système d’exploitation. Toutefois, le temps nécessaire au système d’exploitation pour déverrouiller ces verrous dépend des ressources système disponibles. Par conséquent, il est recommandé que votre processus déverrouille explicitement tous les fichiers qu’il a verrouillés à l’arrêt. Si cela n’est pas fait, l’accès à ces fichiers peut être refusé si le système d’exploitation ne les a pas encore déverrouillés.

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 Oui
Basculement transparent SMB 3.0 (TFO) Oui
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) Oui
Système de fichiers du volume partagé de cluster (CsvFS) Oui
Système de fichiers résilient (ReFS) Oui

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête fileapi.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Verrouillage et déverrouillage de plages d’octets dans des fichiers

CreateFile

Fonctions de gestion des fichiers

LockFile

UnlockFileEx