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,