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: NtLockFileAssinatura
BOOL LockFile(
HANDLE hFile,
DWORD dwFileOffsetLow,
DWORD dwFileOffsetHigh,
DWORD nNumberOfBytesToLockLow,
DWORD nNumberOfBytesToLockHigh
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| hFile | HANDLE | Handle do arquivo. |
| dwFileOffsetLow | DWORD | Parte baixa do deslocamento inicial do intervalo. |
| dwFileOffsetHigh | DWORD | Parte alta do deslocamento inicial do intervalo. |
| nNumberOfBytesToLockLow | DWORD | Parte baixa do tamanho do intervalo a travar. |
| nNumberOfBytesToLockHigh | DWORD | Parte 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.