Compartir a través de


Función UnlockFile (fileapi.h)

Desbloquea una región de un archivo abierto. Desbloquear una región permite que otros procesos accedan a la región.

Para obtener una manera alternativa de especificar la región, use la función UnlockFileEx .

Sintaxis

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

Parámetros

[in] hFile

Identificador del archivo que contiene una región bloqueada con LockFile. El identificador de archivo debe haberse creado con el derecho de acceso GENERIC_READ o GENERIC_WRITE . Para obtener más información, vea Derechos de acceso y seguridad de archivos.

[in] dwFileOffsetLow

Palabra de orden inferior del desplazamiento de bytes inicial en el archivo donde comienza la región bloqueada.

[in] dwFileOffsetHigh

Palabra de orden superior del desplazamiento de bytes inicial en el archivo donde comienza la región bloqueada.

[in] nNumberOfBytesToUnlockLow

Palabra de orden inferior de la longitud del intervalo de bytes que se va a desbloquear.

[in] nNumberOfBytesToUnlockHigh

Palabra de orden superior de la longitud del intervalo de bytes que se va a desbloquear.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Esta función siempre funciona de forma sincrónica, pero puede que no poner en cola una entrada de finalización cuando un puerto de finalización esté asociado al identificador de archivo.

Desbloquear una región de un archivo libera un bloqueo adquirido anteriormente en el archivo. La región que se va a desbloquear debe corresponder exactamente a una región bloqueada existente. Dos regiones adyacentes de un archivo no se pueden bloquear por separado y, a continuación, desbloquearse mediante una sola región que abarca ambas regiones bloqueadas.

Si un proceso finaliza con una parte de un archivo bloqueado o cierra un archivo que tiene bloqueos pendientes, el sistema operativo desbloquea los bloqueos. Sin embargo, el tiempo necesario para que el sistema operativo desbloquee estos bloqueos depende de los recursos del sistema disponibles. Por lo tanto, se recomienda que el proceso desbloquee explícitamente todos los archivos que ha bloqueado cuando finaliza. Si esto no se hace, es posible que se deniegue el acceso a estos archivos si el sistema operativo aún no los ha desbloqueado.

En Windows 8 y Windows Server 2012, esta función es compatible con las tecnologías siguientes.

Tecnología Compatible
Protocolo Bloque de mensajes del servidor (SMB) 3.0
Conmutación por error transparente (TFO) de SMB 3.0
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO)
Sistema de archivos de Volumen compartido de clúster (CsvFS)
Sistema de archivos resistente a errores (ReFS)

Requisitos

   
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado fileapi.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

Bloqueo y desbloqueo de intervalos de bytes en archivos

CreateFile

Funciones de administración de archivos

LockFile

UnlockFileEx