From 7f13bbf892982554c4137e49c578c9b7d8b8f376 Mon Sep 17 00:00:00 2001 From: FrozenEye Date: Mon, 24 Oct 2016 10:55:53 +0300 Subject: [PATCH] Lock/Unlock functions Added LockFile/UnlockFile API --- winapi/file.lua | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/winapi/file.lua b/winapi/file.lua index 4b5ecbd..0920a1e 100644 --- a/winapi/file.lua +++ b/winapi/file.lua @@ -59,6 +59,22 @@ BOOL ReadFile( LPOVERLAPPED lpOverlapped ); +BOOL LockFile( + HANDLE hFile, + DWORD dwFileOffsetLow, + DWORD dwFileOffsetHigh, + DWORD nNumberOfBytesToLockLow, + DWORD nNumberOfBytesToLockHigh +); + +BOOL UnlockFile( + HANDLE hFile, + DWORD dwFileOffsetLow, + DWORD dwFileOffsetHigh, + DWORD nNumberOfBytesToUnlockLow, + DWORD nNumberOfBytesToUnlockHigh +); + BOOL FlushFileBuffers(HANDLE hFile); ]] @@ -97,6 +113,14 @@ function FlushFileBuffers(hfile) return retnz(C.FlushFileBuffers(hfile)) end +function LockFile(hfile, offsetLow, offsetHigh, bytesLow, bytesHigh) + return retnz(C.LockFile(hfile, offsetLow, offsetHigh, bytesLow, bytesHigh)) +end + +function UnlockFile(hfile, offsetLow, offsetHigh, bytesLow, bytesHigh) + return retnz(C.UnlockFile(hfile, offsetLow, offsetHigh, bytesLow, bytesHigh)) +end + if not ... then local tmpname = '_CreateFileTest.tmp' local f = assert(CreateFile(tmpname, 'GENERIC_WRITE', 0, nil,