Voltar à lista
Windows Win32Arquivos & E/Skernel32.dll

LockFile

Trava um intervalo de bytes de um arquivo, impedindo acesso concorrente de outros handles a essa região.

Descrição

Diferente do `flock` do Linux (que trava o arquivo inteiro), opera em nível de intervalo de bytes, mais parecido com os locks de registro do `fcntl`.

Header: fileapi.hDLL: kernel32.dllNative API: NtLockFile

Assinatura

BOOL LockFile(
    HANDLE hFile,
    DWORD dwFileOffsetLow,
    DWORD dwFileOffsetHigh,
    DWORD nNumberOfBytesToLockLow,
    DWORD nNumberOfBytesToLockHigh
);

Parâmetros

ParâmetroTipoDescrição
hFileHANDLEHandle do arquivo.
dwFileOffsetLowDWORDParte baixa do deslocamento inicial do intervalo.
dwFileOffsetHighDWORDParte alta do deslocamento inicial do intervalo.
nNumberOfBytesToLockLowDWORDParte baixa do tamanho do intervalo a travar.
nNumberOfBytesToLockHighDWORDParte alta do tamanho do intervalo a travar.

Valor de retorno

Diferente de zero em sucesso; 0 em erro (consulte GetLastError).

Códigos de erro (GetLastError)

ERROR_LOCK_VIOLATION(33)
A região solicitada já está bloqueada por outro processo.
ERROR_INVALID_HANDLE(6)
O identificador (handle) informado é inválido.

Relacionadas