Permalink
Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
52 lines (40 sloc) 1.43 KB
--proc/system/winbase: winbase.h. incomplete :)
--Written by Cosmin Apreutesei. Public Domain.
setfenv(1, require'winapi')
FILE_FLAG_WRITE_THROUGH = 0x80000000
FILE_FLAG_OVERLAPPED = 0x40000000
FILE_FLAG_NO_BUFFERING = 0x20000000
FILE_FLAG_RANDOM_ACCESS = 0x10000000
FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000
FILE_FLAG_DELETE_ON_CLOSE = 0x04000000
FILE_FLAG_BACKUP_SEMANTICS = 0x02000000
FILE_FLAG_POSIX_SEMANTICS = 0x01000000
FILE_FLAG_SESSION_AWARE = 0x00800000
FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000
FILE_FLAG_OPEN_NO_RECALL = 0x00100000
FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000
FILE_FLAG_OPEN_REQUIRING_OPLOCK = 0x00040000 --Win8+
INVALID_HANDLE_VALUE = ffi.cast('HANDLE', -1)
ffi.cdef[[
typedef struct _SECURITY_ATTRIBUTES {
DWORD nLength;
LPVOID lpSecurityDescriptor;
BOOL bInheritHandle;
} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
DWORD GetCurrentThreadId(void);
BOOL CloseHandle (HANDLE hObject);
BOOL DuplicateHandle (
HANDLE hSourceProcessHandle,
HANDLE hSourceHandle,
HANDLE hTargetProcessHandle,
LPHANDLE lpTargetHandle,
DWORD dwDesiredAccess,
BOOL bInheritHandle,
DWORD dwOptions);
BOOL GetHandleInformation (HANDLE hObject, LPDWORD lpdwFlags);
BOOL SetHandleInformation (HANDLE hObject, DWORD dwMask, DWORD dwFlags);
]]
GetCurrentThreadId = C.GetCurrentThreadId
function CloseHandle(h)
return retnz(C.CloseHandle(h))
end