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