# -*- coding: binary -*-
module Rex
module Post
module Meterpreter
module Extensions
module Stdapi
module Railgun
module Def

class Def_windows_kernel32

  def self.create_library(constant_manager, library_path = 'kernel32')
    dll = Library.new(library_path, constant_manager)

    dll.add_function( 'GetConsoleWindow', 'LPVOID',[])

    dll.add_function( 'ActivateActCtx', 'BOOL',[
      ["HANDLE","hActCtx","inout"],
      ["PBLOB","lpCookie","out"],
      ])

    dll.add_function( 'AddAtomA', 'WORD',[
      ["PCHAR","lpString","in"],
      ])

    dll.add_function( 'AddAtomW', 'WORD',[
      ["PWCHAR","lpString","in"],
      ])

    dll.add_function( 'AddRefActCtx', 'VOID',[
      ["HANDLE","hActCtx","inout"],
      ])

    dll.add_function( 'AddVectoredContinueHandler', 'LPVOID',[
      ["DWORD","First","in"],
      ["PBLOB","Handler","in"],
      ])

    dll.add_function( 'AddVectoredExceptionHandler', 'LPVOID',[
      ["DWORD","First","in"],
      ["PBLOB","Handler","in"],
      ])

    dll.add_function( 'AllocateUserPhysicalPages', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PBLOB","NumberOfPages","inout"],
      ["PBLOB","PageArray","out"],
      ])

    dll.add_function( 'AreFileApisANSI', 'BOOL',[
      ])

    dll.add_function( 'AssignProcessToJobObject', 'BOOL',[
      ["HANDLE","hJob","in"],
      ["HANDLE","hProcess","in"],
      ])

    dll.add_function( 'BackupRead', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpBuffer","out"],
      ["DWORD","nNumberOfBytesToRead","in"],
      ["PDWORD","lpNumberOfBytesRead","out"],
      ["BOOL","bAbort","in"],
      ["BOOL","bProcessSecurity","in"],
      ["PBLOB","lpContext","inout"],
      ])

    dll.add_function( 'BackupSeek', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["DWORD","dwLowBytesToSeek","in"],
      ["DWORD","dwHighBytesToSeek","in"],
      ["PDWORD","lpdwLowByteSeeked","out"],
      ["PDWORD","lpdwHighByteSeeked","out"],
      ["PBLOB","lpContext","inout"],
      ])

    dll.add_function( 'BackupWrite', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpBuffer","in"],
      ["DWORD","nNumberOfBytesToWrite","in"],
      ["PDWORD","lpNumberOfBytesWritten","out"],
      ["BOOL","bAbort","in"],
      ["BOOL","bProcessSecurity","in"],
      ["PBLOB","lpContext","inout"],
      ])

    dll.add_function( 'Beep', 'BOOL',[
      ["DWORD","dwFreq","in"],
      ["DWORD","dwDuration","in"],
      ])

    dll.add_function( 'BeginUpdateResourceA', 'DWORD',[
      ["PCHAR","pFileName","in"],
      ["BOOL","bDeleteExistingResources","in"],
      ])

    dll.add_function( 'BeginUpdateResourceW', 'DWORD',[
      ["PWCHAR","pFileName","in"],
      ["BOOL","bDeleteExistingResources","in"],
      ])

    dll.add_function( 'BindIoCompletionCallback', 'BOOL',[
      ["DWORD","FileHandle","in"],
      ["PBLOB","Function","in"],
      ["DWORD","Flags","in"],
      ])

    dll.add_function( 'BuildCommDCBA', 'BOOL',[
      ["PCHAR","lpDef","in"],
      ["PBLOB","lpDCB","out"],
      ])

    dll.add_function( 'BuildCommDCBAndTimeoutsA', 'BOOL',[
      ["PCHAR","lpDef","in"],
      ["PBLOB","lpDCB","out"],
      ["PBLOB","lpCommTimeouts","out"],
      ])

    dll.add_function( 'BuildCommDCBAndTimeoutsW', 'BOOL',[
      ["PWCHAR","lpDef","in"],
      ["PBLOB","lpDCB","out"],
      ["PBLOB","lpCommTimeouts","out"],
      ])

    dll.add_function( 'BuildCommDCBW', 'BOOL',[
      ["PWCHAR","lpDef","in"],
      ["PBLOB","lpDCB","out"],
      ])

    dll.add_function( 'CallNamedPipeA', 'BOOL',[
      ["PCHAR","lpNamedPipeName","in"],
      ["PBLOB","lpInBuffer","in"],
      ["DWORD","nInBufferSize","in"],
      ["PBLOB","lpOutBuffer","out"],
      ["DWORD","nOutBufferSize","in"],
      ["PDWORD","lpBytesRead","out"],
      ["DWORD","nTimeOut","in"],
      ])

    dll.add_function( 'CallNamedPipeW', 'BOOL',[
      ["PWCHAR","lpNamedPipeName","in"],
      ["PBLOB","lpInBuffer","in"],
      ["DWORD","nInBufferSize","in"],
      ["PBLOB","lpOutBuffer","out"],
      ["DWORD","nOutBufferSize","in"],
      ["PDWORD","lpBytesRead","out"],
      ["DWORD","nTimeOut","in"],
      ])

    dll.add_function( 'CancelDeviceWakeupRequest', 'BOOL',[
      ["HANDLE","hDevice","in"],
      ])

    dll.add_function( 'CancelIo', 'BOOL',[
      ["HANDLE","hFile","in"],
      ])

    dll.add_function( 'CancelTimerQueueTimer', 'BOOL',[
      ["DWORD","TimerQueue","in"],
      ["DWORD","Timer","in"],
      ])

    dll.add_function( 'CancelWaitableTimer', 'BOOL',[
      ["HANDLE","hTimer","in"],
      ])

    dll.add_function( 'ChangeTimerQueueTimer', 'BOOL',[
      ["DWORD","TimerQueue","in"],
      ["DWORD","Timer","inout"],
      ["DWORD","DueTime","in"],
      ["DWORD","Period","in"],
      ])

    dll.add_function( 'CheckNameLegalDOS8Dot3A', 'BOOL',[
      ["PCHAR","lpName","in"],
      ["PCHAR","lpOemName","out"],
      ["DWORD","OemNameSize","in"],
      ["PBLOB","pbNameContainsSpaces","out"],
      ["PBLOB","pbNameLegal","out"],
      ])

    dll.add_function( 'CheckNameLegalDOS8Dot3W', 'BOOL',[
      ["PWCHAR","lpName","in"],
      ["PCHAR","lpOemName","out"],
      ["DWORD","OemNameSize","in"],
      ["PBLOB","pbNameContainsSpaces","out"],
      ["PBLOB","pbNameLegal","out"],
      ])

    dll.add_function( 'CheckRemoteDebuggerPresent', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PBLOB","pbDebuggerPresent","out"],
      ])

    dll.add_function( 'ClearCommBreak', 'BOOL',[
      ["HANDLE","hFile","in"],
      ])

    dll.add_function( 'ClearCommError', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PDWORD","lpErrors","out"],
      ["PBLOB","lpStat","out"],
      ])

    dll.add_function( 'CloseHandle', 'BOOL',[
      ["HANDLE","hObject","in"],
      ])

    dll.add_function( 'CommConfigDialogA', 'BOOL',[
      ["PCHAR","lpszName","in"],
      ["HANDLE","hWnd","in"],
      ["PBLOB","lpCC","inout"],
      ])

    dll.add_function( 'CommConfigDialogW', 'BOOL',[
      ["PWCHAR","lpszName","in"],
      ["HANDLE","hWnd","in"],
      ["PBLOB","lpCC","inout"],
      ])

    dll.add_function( 'CompareFileTime', 'DWORD',[
      ["PBLOB","lpFileTime1","in"],
      ["PBLOB","lpFileTime2","in"],
      ])

    dll.add_function( 'ConnectNamedPipe', 'BOOL',[
      ["HANDLE","hNamedPipe","in"],
      ["PBLOB","lpOverlapped","inout"],
      ])

    dll.add_function( 'ContinueDebugEvent', 'BOOL',[
      ["DWORD","dwProcessId","in"],
      ["DWORD","dwThreadId","in"],
      ["DWORD","dwContinueStatus","in"],
      ])

    dll.add_function( 'ConvertFiberToThread', 'BOOL',[
      ])

    dll.add_function( 'ConvertThreadToFiber', 'LPVOID',[
      ["PBLOB","lpParameter","in"],
      ])

    dll.add_function( 'ConvertThreadToFiberEx', 'LPVOID',[
      ["PBLOB","lpParameter","in"],
      ["DWORD","dwFlags","in"],
      ])

    dll.add_function( 'CopyFileA', 'BOOL',[
      ["PCHAR","lpExistingFileName","in"],
      ["PCHAR","lpNewFileName","in"],
      ["BOOL","bFailIfExists","in"],
      ])

    dll.add_function( 'CopyFileExA', 'BOOL',[
      ["PCHAR","lpExistingFileName","in"],
      ["PCHAR","lpNewFileName","in"],
      ["PBLOB","lpProgressRoutine","in"],
      ["PBLOB","lpData","in"],
      ["PBLOB","pbCancel","in"],
      ["DWORD","dwCopyFlags","in"],
      ])

    dll.add_function( 'CopyFileExW', 'BOOL',[
      ["PWCHAR","lpExistingFileName","in"],
      ["PWCHAR","lpNewFileName","in"],
      ["PBLOB","lpProgressRoutine","in"],
      ["PBLOB","lpData","in"],
      ["PBLOB","pbCancel","in"],
      ["DWORD","dwCopyFlags","in"],
      ])

    dll.add_function( 'CopyFileW', 'BOOL',[
      ["PWCHAR","lpExistingFileName","in"],
      ["PWCHAR","lpNewFileName","in"],
      ["BOOL","bFailIfExists","in"],
      ])

    dll.add_function( 'CreateActCtxA', 'DWORD',[
      ["PBLOB","pActCtx","in"],
      ])

    dll.add_function( 'CreateActCtxW', 'DWORD',[
      ["PBLOB","pActCtx","in"],
      ])

    dll.add_function( 'CreateDirectoryA', 'BOOL',[
      ["PCHAR","lpPathName","in"],
      ["PBLOB","lpSecurityAttributes","in"],
      ])

    dll.add_function( 'CreateDirectoryExA', 'BOOL',[
      ["PCHAR","lpTemplateDirectory","in"],
      ["PCHAR","lpNewDirectory","in"],
      ["PBLOB","lpSecurityAttributes","in"],
      ])

    dll.add_function( 'CreateDirectoryExW', 'BOOL',[
      ["PWCHAR","lpTemplateDirectory","in"],
      ["PWCHAR","lpNewDirectory","in"],
      ["PBLOB","lpSecurityAttributes","in"],
      ])

    dll.add_function( 'CreateDirectoryW', 'BOOL',[
      ["PWCHAR","lpPathName","in"],
      ["PBLOB","lpSecurityAttributes","in"],
      ])

    dll.add_function( 'CreateEventA', 'DWORD',[
      ["PBLOB","lpEventAttributes","in"],
      ["BOOL","bManualReset","in"],
      ["BOOL","bInitialState","in"],
      ["PCHAR","lpName","in"],
      ])

    dll.add_function( 'CreateEventW', 'DWORD',[
      ["PBLOB","lpEventAttributes","in"],
      ["BOOL","bManualReset","in"],
      ["BOOL","bInitialState","in"],
      ["PWCHAR","lpName","in"],
      ])

    dll.add_function( 'CreateFiber', 'LPVOID',[
      ["DWORD","dwStackSize","in"],
      ["PBLOB","lpStartAddress","in"],
      ["PBLOB","lpParameter","in"],
      ])

    dll.add_function( 'CreateFiberEx', 'LPVOID',[
      ["DWORD","dwStackCommitSize","in"],
      ["DWORD","dwStackReserveSize","in"],
      ["DWORD","dwFlags","in"],
      ["PBLOB","lpStartAddress","in"],
      ["PBLOB","lpParameter","in"],
      ])

    dll.add_function( 'CreateFileA', 'DWORD',[
      ["PCHAR","lpFileName","in"],
      ["DWORD","dwDesiredAccess","in"],
      ["DWORD","dwShareMode","in"],
      ["PBLOB","lpSecurityAttributes","in"],
      ["DWORD","dwCreationDisposition","in"],
      ["DWORD","dwFlagsAndAttributes","in"],
      ["HANDLE","hTemplateFile","in"],
      ])

    dll.add_function( 'CreateFileMappingA', 'DWORD',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpFileMappingAttributes","in"],
      ["DWORD","flProtect","in"],
      ["DWORD","dwMaximumSizeHigh","in"],
      ["DWORD","dwMaximumSizeLow","in"],
      ["PCHAR","lpName","in"],
      ])

    dll.add_function( 'CreateFileMappingW', 'DWORD',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpFileMappingAttributes","in"],
      ["DWORD","flProtect","in"],
      ["DWORD","dwMaximumSizeHigh","in"],
      ["DWORD","dwMaximumSizeLow","in"],
      ["PWCHAR","lpName","in"],
      ])

    dll.add_function( 'CreateFileW', 'DWORD',[
      ["PWCHAR","lpFileName","in"],
      ["DWORD","dwDesiredAccess","in"],
      ["DWORD","dwShareMode","in"],
      ["PBLOB","lpSecurityAttributes","in"],
      ["DWORD","dwCreationDisposition","in"],
      ["DWORD","dwFlagsAndAttributes","in"],
      ["HANDLE","hTemplateFile","in"],
      ])

    dll.add_function( 'CreateHardLinkA', 'BOOL',[
      ["PCHAR","lpFileName","in"],
      ["PCHAR","lpExistingFileName","in"],
      ["PBLOB","lpSecurityAttributes","inout"],
      ])

    dll.add_function( 'CreateHardLinkW', 'BOOL',[
      ["PWCHAR","lpFileName","in"],
      ["PWCHAR","lpExistingFileName","in"],
      ["PBLOB","lpSecurityAttributes","inout"],
      ])

    dll.add_function( 'CreateIoCompletionPort', 'DWORD',[
      ["DWORD","FileHandle","in"],
      ["DWORD","ExistingCompletionPort","in"],
      ["PDWORD","CompletionKey","in"],
      ["DWORD","NumberOfConcurrentThreads","in"],
      ])

    dll.add_function( 'CreateJobObjectA', 'DWORD',[
      ["PBLOB","lpJobAttributes","in"],
      ["PCHAR","lpName","in"],
      ])

    dll.add_function( 'CreateJobObjectW', 'DWORD',[
      ["PBLOB","lpJobAttributes","in"],
      ["PWCHAR","lpName","in"],
      ])

    dll.add_function( 'CreateJobSet', 'BOOL',[
      ["DWORD","NumJob","in"],
      ["PBLOB","UserJobSet","in"],
      ["DWORD","Flags","in"],
      ])

    dll.add_function( 'CreateMailslotA', 'DWORD',[
      ["PCHAR","lpName","in"],
      ["DWORD","nMaxMessageSize","in"],
      ["DWORD","lReadTimeout","in"],
      ["PBLOB","lpSecurityAttributes","in"],
      ])

    dll.add_function( 'CreateMailslotW', 'DWORD',[
      ["PWCHAR","lpName","in"],
      ["DWORD","nMaxMessageSize","in"],
      ["DWORD","lReadTimeout","in"],
      ["PBLOB","lpSecurityAttributes","in"],
      ])

    dll.add_function( 'CreateMemoryResourceNotification', 'DWORD',[
      ["PDWORD","NotificationType","in"],
      ])

    dll.add_function( 'CreateMutexA', 'DWORD',[
      ["PBLOB","lpMutexAttributes","in"],
      ["BOOL","bInitialOwner","in"],
      ["PCHAR","lpName","in"],
      ])

    dll.add_function( 'CreateMutexW', 'DWORD',[
      ["PBLOB","lpMutexAttributes","in"],
      ["BOOL","bInitialOwner","in"],
      ["PWCHAR","lpName","in"],
      ])

    dll.add_function( 'CreateNamedPipeA', 'DWORD',[
      ["PCHAR","lpName","in"],
      ["DWORD","dwOpenMode","in"],
      ["DWORD","dwPipeMode","in"],
      ["DWORD","nMaxInstances","in"],
      ["DWORD","nOutBufferSize","in"],
      ["DWORD","nInBufferSize","in"],
      ["DWORD","nDefaultTimeOut","in"],
      ["PBLOB","lpSecurityAttributes","in"],
      ])

    dll.add_function( 'CreateNamedPipeW', 'DWORD',[
      ["PWCHAR","lpName","in"],
      ["DWORD","dwOpenMode","in"],
      ["DWORD","dwPipeMode","in"],
      ["DWORD","nMaxInstances","in"],
      ["DWORD","nOutBufferSize","in"],
      ["DWORD","nInBufferSize","in"],
      ["DWORD","nDefaultTimeOut","in"],
      ["PBLOB","lpSecurityAttributes","in"],
      ])

    dll.add_function( 'CreatePipe', 'BOOL',[
      ["PDWORD","hReadPipe","out"],
      ["PDWORD","hWritePipe","out"],
      ["PBLOB","lpPipeAttributes","in"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'CreateProcessA', 'BOOL',[
      ["PCHAR","lpApplicationName","in"],
      ["PCHAR","lpCommandLine","inout"],
      ["PBLOB","lpProcessAttributes","in"],
      ["PBLOB","lpThreadAttributes","in"],
      ["BOOL","bInheritHandles","in"],
      ["DWORD","dwCreationFlags","in"],
      ["PBLOB","lpEnvironment","in"],
      ["PCHAR","lpCurrentDirectory","in"],
      ["PBLOB","lpStartupInfo","in"],
      ["PBLOB","lpProcessInformation","out"],
      ])

    dll.add_function( 'CreateProcessW', 'BOOL',[
      ["PWCHAR","lpApplicationName","in"],
      ["PWCHAR","lpCommandLine","inout"],
      ["PBLOB","lpProcessAttributes","in"],
      ["PBLOB","lpThreadAttributes","in"],
      ["BOOL","bInheritHandles","in"],
      ["DWORD","dwCreationFlags","in"],
      ["PBLOB","lpEnvironment","in"],
      ["PWCHAR","lpCurrentDirectory","in"],
      ["PBLOB","lpStartupInfo","in"],
      ["PBLOB","lpProcessInformation","out"],
      ])

    dll.add_function( 'CreateRemoteThread', 'DWORD',[
      ["HANDLE","hProcess","in"],
      ["PBLOB","lpThreadAttributes","in"],
      ["DWORD","dwStackSize","in"],
      ["LPVOID","lpStartAddress","in"],
      ["PBLOB","lpParameter","in"],
      ["DWORD","dwCreationFlags","in"],
      ["PDWORD","lpThreadId","out"],
      ])

    dll.add_function( 'CreateSemaphoreA', 'DWORD',[
      ["PBLOB","lpSemaphoreAttributes","in"],
      ["DWORD","lInitialCount","in"],
      ["DWORD","lMaximumCount","in"],
      ["PCHAR","lpName","in"],
      ])

    dll.add_function( 'CreateSemaphoreW', 'DWORD',[
      ["PBLOB","lpSemaphoreAttributes","in"],
      ["DWORD","lInitialCount","in"],
      ["DWORD","lMaximumCount","in"],
      ["PWCHAR","lpName","in"],
      ])

    dll.add_function( 'CreateSymbolicLinkA', 'BOOL',[
      ["PCHAR","lpSymlinkFileName","in"],
      ["PCHAR","lpTargetFileName","in"],
      ["DWORD","dwFlags","in"]
      ])

    dll.add_function( 'CreateSymbolicLinkW', 'BOOL',[
      ["PWCHAR","lpSymlinkFileName","in"],
      ["PWCHAR","lpTargetFileName","in"],
      ["DWORD","dwFlags","in"]
      ])

    dll.add_function( 'CreateTapePartition', 'DWORD',[
      ["HANDLE","hDevice","in"],
      ["DWORD","dwPartitionMethod","in"],
      ["DWORD","dwCount","in"],
      ["DWORD","dwSize","in"],
      ])

    dll.add_function( 'CreateThread', 'HANDLE',[
      ["PBLOB","lpThreadAttributes","in"],
      ["DWORD","dwStackSize","in"],
      ["LPVOID","lpStartAddress","in"],
      ["PBLOB","lpParameter","in"],
      ["DWORD","dwCreationFlags","in"],
      ["PDWORD","lpThreadId","out"],
      ])

    dll.add_function( 'CreateTimerQueue', 'DWORD',[
      ])

    dll.add_function( 'CreateTimerQueueTimer', 'BOOL',[
      ["PDWORD","phNewTimer","out"],
      ["DWORD","TimerQueue","in"],
      ["PBLOB","Callback","in"],
      ["PBLOB","Parameter","in"],
      ["DWORD","DueTime","in"],
      ["DWORD","Period","in"],
      ["DWORD","Flags","in"],
      ])

    dll.add_function( 'CreateWaitableTimerA', 'DWORD',[
      ["PBLOB","lpTimerAttributes","in"],
      ["BOOL","bManualReset","in"],
      ["PCHAR","lpTimerName","in"],
      ])

    dll.add_function( 'CreateWaitableTimerW', 'DWORD',[
      ["PBLOB","lpTimerAttributes","in"],
      ["BOOL","bManualReset","in"],
      ["PWCHAR","lpTimerName","in"],
      ])

    dll.add_function( 'DeactivateActCtx', 'BOOL',[
      ["DWORD","dwFlags","in"],
      ["PDWORD","ulCookie","in"],
      ])

    dll.add_function( 'DebugActiveProcess', 'BOOL',[
      ["DWORD","dwProcessId","in"],
      ])

    dll.add_function( 'DebugActiveProcessStop', 'BOOL',[
      ["DWORD","dwProcessId","in"],
      ])

    dll.add_function( 'DebugBreak', 'VOID',[
      ])

    dll.add_function( 'DebugBreakProcess', 'BOOL',[
      ["DWORD","Process","in"],
      ])

    dll.add_function( 'DebugSetProcessKillOnExit', 'BOOL',[
      ["BOOL","KillOnExit","in"],
      ])

    dll.add_function( 'DecodePointer', 'LPVOID',[
      ["PBLOB","Ptr","in"],
      ])

    dll.add_function( 'DecodeSystemPointer', 'LPVOID',[
      ["PBLOB","Ptr","in"],
      ])

    dll.add_function( 'DefineDosDeviceA', 'BOOL',[
      ["DWORD","dwFlags","in"],
      ["PCHAR","lpDeviceName","in"],
      ["PCHAR","lpTargetPath","in"],
      ])

    dll.add_function( 'DefineDosDeviceW', 'BOOL',[
      ["DWORD","dwFlags","in"],
      ["PWCHAR","lpDeviceName","in"],
      ["PWCHAR","lpTargetPath","in"],
      ])

    dll.add_function( 'DeleteAtom', 'WORD',[
      ["WORD","nAtom","in"],
      ])

    dll.add_function( 'DeleteCriticalSection', 'VOID',[
      ["PBLOB","lpCriticalSection","inout"],
      ])

    dll.add_function( 'DeleteFiber', 'VOID',[
      ["PBLOB","lpFiber","in"],
      ])

    dll.add_function( 'DeleteFileA', 'BOOL',[
      ["PCHAR","lpFileName","in"],
      ])

    dll.add_function( 'DeleteFileW', 'BOOL',[
      ["PWCHAR","lpFileName","in"],
      ])

    dll.add_function( 'DeleteTimerQueue', 'BOOL',[
      ["DWORD","TimerQueue","in"],
      ])

    dll.add_function( 'DeleteTimerQueueEx', 'BOOL',[
      ["DWORD","TimerQueue","in"],
      ["DWORD","CompletionEvent","in"],
      ])

    dll.add_function( 'DeleteTimerQueueTimer', 'BOOL',[
      ["DWORD","TimerQueue","in"],
      ["DWORD","Timer","in"],
      ["DWORD","CompletionEvent","in"],
      ])

    dll.add_function( 'DeleteVolumeMountPointA', 'BOOL',[
      ["PCHAR","lpszVolumeMountPoint","in"],
      ])

    dll.add_function( 'DeleteVolumeMountPointW', 'BOOL',[
      ["PWCHAR","lpszVolumeMountPoint","in"],
      ])

    dll.add_function( 'DeviceIoControl', 'BOOL',[
      ["HANDLE","hDevice","in"],
      ["DWORD","dwIoControlCode","in"],
      ["PBLOB","lpInBuffer","in"],
      ["DWORD","nInBufferSize","in"],
      ["PBLOB","lpOutBuffer","out"],
      ["DWORD","nOutBufferSize","in"],
      ["PDWORD","lpBytesReturned","out"],
      ["PBLOB","lpOverlapped","inout"],
      ])

    dll.add_function( 'DisableThreadLibraryCalls', 'BOOL',[
      ["HANDLE","hLibModule","in"],
      ])

    dll.add_function( 'DisconnectNamedPipe', 'BOOL',[
      ["HANDLE","hNamedPipe","in"],
      ])

    dll.add_function( 'DnsHostnameToComputerNameA', 'BOOL',[
      ["PCHAR","Hostname","in"],
      ["PCHAR","ComputerName","out"],
      ["PDWORD","nSize","inout"],
      ])

    dll.add_function( 'DnsHostnameToComputerNameW', 'BOOL',[
      ["PWCHAR","Hostname","in"],
      ["PWCHAR","ComputerName","out"],
      ["PDWORD","nSize","inout"],
      ])

    dll.add_function( 'DosDateTimeToFileTime', 'BOOL',[
      ["WORD","wFatDate","in"],
      ["WORD","wFatTime","in"],
      ["PBLOB","lpFileTime","out"],
      ])

    dll.add_function( 'DuplicateHandle', 'BOOL',[
      ["HANDLE","hSourceProcessHandle","in"],
      ["HANDLE","hSourceHandle","in"],
      ["HANDLE","hTargetProcessHandle","in"],
      ["PDWORD","lpTargetHandle","out"],
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["DWORD","dwOptions","in"],
      ])

    dll.add_function( 'EncodePointer', 'LPVOID',[
      ["PBLOB","Ptr","in"],
      ])

    dll.add_function( 'EncodeSystemPointer', 'LPVOID',[
      ["PBLOB","Ptr","in"],
      ])

    dll.add_function( 'EndUpdateResourceA', 'BOOL',[
      ["HANDLE","hUpdate","in"],
      ["BOOL","fDiscard","in"],
      ])

    dll.add_function( 'EndUpdateResourceW', 'BOOL',[
      ["HANDLE","hUpdate","in"],
      ["BOOL","fDiscard","in"],
      ])

    dll.add_function( 'EnterCriticalSection', 'VOID',[
      ["PBLOB","lpCriticalSection","inout"],
      ])

    dll.add_function( 'EnumResourceLanguagesA', 'BOOL',[
      ["HANDLE","hModule","in"],
      ["PCHAR","lpType","in"],
      ["PCHAR","lpName","in"],
      ["PBLOB","lpEnumFunc","in"],
      ["PBLOB","lparam","in"],
      ])

    dll.add_function( 'EnumResourceLanguagesW', 'BOOL',[
      ["HANDLE","hModule","in"],
      ["PWCHAR","lpType","in"],
      ["PWCHAR","lpName","in"],
      ["PBLOB","lpEnumFunc","in"],
      ["PBLOB","lparam","in"],
      ])

    dll.add_function( 'EnumResourceNamesA', 'BOOL',[
      ["HANDLE","hModule","in"],
      ["PCHAR","lpType","in"],
      ["PBLOB","lpEnumFunc","in"],
      ["PBLOB","lparam","in"],
      ])

    dll.add_function( 'EnumResourceNamesW', 'BOOL',[
      ["HANDLE","hModule","in"],
      ["PWCHAR","lpType","in"],
      ["PBLOB","lpEnumFunc","in"],
      ["PBLOB","lparam","in"],
      ])

    dll.add_function( 'EnumResourceTypesA', 'BOOL',[
      ["HANDLE","hModule","in"],
      ["PBLOB","lpEnumFunc","in"],
      ["PBLOB","lparam","in"],
      ])

    dll.add_function( 'EnumResourceTypesW', 'BOOL',[
      ["HANDLE","hModule","in"],
      ["PBLOB","lpEnumFunc","in"],
      ["PBLOB","lparam","in"],
      ])

    dll.add_function( 'EnumSystemFirmwareTables', 'DWORD',[
      ["DWORD","FirmwareTableProviderSignature","in"],
      ["PBLOB","pFirmwareTableEnumBuffer","out"],
      ["DWORD","BufferSize","in"],
      ])

    dll.add_function( 'EraseTape', 'DWORD',[
      ["HANDLE","hDevice","in"],
      ["DWORD","dwEraseType","in"],
      ["BOOL","bImmediate","in"],
      ])

    dll.add_function( 'EscapeCommFunction', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["DWORD","dwFunc","in"],
      ])

    dll.add_function( 'ExitProcess', 'VOID',[
      ["DWORD","uExitCode","in"],
      ])

    dll.add_function( 'ExitThread', 'VOID',[
      ["DWORD","dwExitCode","in"],
      ])

    dll.add_function( 'ExpandEnvironmentStringsA', 'DWORD',[
      ["PCHAR","lpSrc","in"],
      ["PCHAR","lpDst","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'ExpandEnvironmentStringsW', 'DWORD',[
      ["PWCHAR","lpSrc","in"],
      ["PWCHAR","lpDst","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'FatalAppExitA', 'VOID',[
      ["DWORD","uAction","in"],
      ["PCHAR","lpMessageText","in"],
      ])

    dll.add_function( 'FatalAppExitW', 'VOID',[
      ["DWORD","uAction","in"],
      ["PWCHAR","lpMessageText","in"],
      ])

    dll.add_function( 'FatalExit', 'VOID',[
      ["DWORD","ExitCode","in"],
      ])

    dll.add_function( 'FileTimeToDosDateTime', 'BOOL',[
      ["PBLOB","lpFileTime","in"],
      ["PBLOB","lpFatDate","out"],
      ["PBLOB","lpFatTime","out"],
      ])

    dll.add_function( 'FileTimeToLocalFileTime', 'BOOL',[
      ["PBLOB","lpFileTime","in"],
      ["PBLOB","lpLocalFileTime","out"],
      ])

    dll.add_function( 'FileTimeToSystemTime', 'BOOL',[
      ["PBLOB","lpFileTime","in"],
      ["PBLOB","lpSystemTime","out"],
      ])

    dll.add_function( 'FindActCtxSectionGuid', 'BOOL',[
      ["DWORD","dwFlags","in"],
      ["PBLOB","lpExtensionGuid","inout"],
      ["DWORD","ulSectionId","in"],
      ["PBLOB","lpGuidToFind","in"],
      ["PBLOB","ReturnedData","out"],
      ])

    dll.add_function( 'FindActCtxSectionStringA', 'BOOL',[
      ["DWORD","dwFlags","in"],
      ["PBLOB","lpExtensionGuid","inout"],
      ["DWORD","ulSectionId","in"],
      ["PCHAR","lpStringToFind","in"],
      ["PBLOB","ReturnedData","out"],
      ])

    dll.add_function( 'FindActCtxSectionStringW', 'BOOL',[
      ["DWORD","dwFlags","in"],
      ["PBLOB","lpExtensionGuid","inout"],
      ["DWORD","ulSectionId","in"],
      ["PWCHAR","lpStringToFind","in"],
      ["PBLOB","ReturnedData","out"],
      ])

    dll.add_function( 'FindAtomA', 'WORD',[
      ["PCHAR","lpString","in"],
      ])

    dll.add_function( 'FindAtomW', 'WORD',[
      ["PWCHAR","lpString","in"],
      ])

    dll.add_function( 'FindClose', 'BOOL',[
      ["HANDLE","hFindFile","inout"],
      ])

    dll.add_function( 'FindCloseChangeNotification', 'BOOL',[
      ["HANDLE","hChangeHandle","in"],
      ])

    dll.add_function( 'FindFirstChangeNotificationA', 'DWORD',[
      ["PCHAR","lpPathName","in"],
      ["BOOL","bWatchSubtree","in"],
      ["DWORD","dwNotifyFilter","in"],
      ])

    dll.add_function( 'FindFirstChangeNotificationW', 'DWORD',[
      ["PWCHAR","lpPathName","in"],
      ["BOOL","bWatchSubtree","in"],
      ["DWORD","dwNotifyFilter","in"],
      ])

    dll.add_function( 'FindFirstFileA', 'HANDLE',[
      ["PCHAR","lpFileName","in"],
      ["PBLOB","lpFindFileData","out"],
      ])

    dll.add_function( 'FindFirstFileExA', 'DWORD',[
      ["PCHAR","lpFileName","in"],
      ["PBLOB","fInfoLevelId","in"],
      ["PBLOB","lpFindFileData","out"],
      ["PBLOB","fSearchOp","in"],
      ["PBLOB","lpSearchFilter","inout"],
      ["DWORD","dwAdditionalFlags","in"],
      ])

    dll.add_function( 'FindFirstFileExW', 'DWORD',[
      ["PWCHAR","lpFileName","in"],
      ["PBLOB","fInfoLevelId","in"],
      ["PBLOB","lpFindFileData","out"],
      ["PBLOB","fSearchOp","in"],
      ["PBLOB","lpSearchFilter","inout"],
      ["DWORD","dwAdditionalFlags","in"],
      ])

    dll.add_function( 'FindFirstFileW', 'HANDLE',[
      ["PWCHAR","lpFileName","in"],
      ["PBLOB","lpFindFileData","out"],
      ])

    dll.add_function( 'FindFirstStreamW', 'DWORD',[
      ["PWCHAR","lpFileName","in"],
      ["PBLOB","InfoLevel","in"],
      ["PBLOB","lpFindStreamData","out"],
      ["DWORD","dwFlags","inout"],
      ])

    dll.add_function( 'FindFirstVolumeA', 'DWORD',[
      ["PCHAR","lpszVolumeName","out"],
      ["DWORD","cchBufferLength","in"],
      ])

    dll.add_function( 'FindFirstVolumeMountPointA', 'DWORD',[
      ["PCHAR","lpszRootPathName","in"],
      ["PCHAR","lpszVolumeMountPoint","out"],
      ["DWORD","cchBufferLength","in"],
      ])

    dll.add_function( 'FindFirstVolumeMountPointW', 'DWORD',[
      ["PWCHAR","lpszRootPathName","in"],
      ["PWCHAR","lpszVolumeMountPoint","out"],
      ["DWORD","cchBufferLength","in"],
      ])

    dll.add_function( 'FindFirstVolumeW', 'DWORD',[
      ["PWCHAR","lpszVolumeName","out"],
      ["DWORD","cchBufferLength","in"],
      ])

    dll.add_function( 'FindNextChangeNotification', 'BOOL',[
      ["HANDLE","hChangeHandle","in"],
      ])

    dll.add_function( 'FindNextFileA', 'BOOL',[
      ["HANDLE","hFindFile","in"],
      ["PBLOB","lpFindFileData","out"],
      ])

    dll.add_function( 'FindNextFileW', 'BOOL',[
      ["HANDLE","hFindFile","in"],
      ["PBLOB","lpFindFileData","out"],
      ])

    dll.add_function( 'FindNextStreamW', 'BOOL',[
      ["HANDLE","hFindStream","in"],
      ["PBLOB","lpFindStreamData","out"],
      ])

    dll.add_function( 'FindNextVolumeA', 'BOOL',[
      ["HANDLE","hFindVolume","inout"],
      ["PCHAR","lpszVolumeName","out"],
      ["DWORD","cchBufferLength","in"],
      ])

    dll.add_function( 'FindNextVolumeMountPointA', 'BOOL',[
      ["HANDLE","hFindVolumeMountPoint","in"],
      ["PCHAR","lpszVolumeMountPoint","out"],
      ["DWORD","cchBufferLength","in"],
      ])

    dll.add_function( 'FindNextVolumeMountPointW', 'BOOL',[
      ["HANDLE","hFindVolumeMountPoint","in"],
      ["PWCHAR","lpszVolumeMountPoint","out"],
      ["DWORD","cchBufferLength","in"],
      ])

    dll.add_function( 'FindNextVolumeW', 'BOOL',[
      ["HANDLE","hFindVolume","inout"],
      ["PWCHAR","lpszVolumeName","out"],
      ["DWORD","cchBufferLength","in"],
      ])

    dll.add_function( 'FindResourceA', 'DWORD',[
      ["HANDLE","hModule","in"],
      ["PCHAR","lpName","in"],
      ["PCHAR","lpType","in"],
      ])

    dll.add_function( 'FindResourceExA', 'DWORD',[
      ["HANDLE","hModule","in"],
      ["PCHAR","lpType","in"],
      ["PCHAR","lpName","in"],
      ["WORD","wLanguage","in"],
      ])

    dll.add_function( 'FindResourceExW', 'DWORD',[
      ["HANDLE","hModule","in"],
      ["PWCHAR","lpType","in"],
      ["PWCHAR","lpName","in"],
      ["WORD","wLanguage","in"],
      ])

    dll.add_function( 'FindResourceW', 'DWORD',[
      ["HANDLE","hModule","in"],
      ["PWCHAR","lpName","in"],
      ["PWCHAR","lpType","in"],
      ])

    dll.add_function( 'FindVolumeClose', 'BOOL',[
      ["HANDLE","hFindVolume","in"],
      ])

    dll.add_function( 'FindVolumeMountPointClose', 'BOOL',[
      ["HANDLE","hFindVolumeMountPoint","in"],
      ])

    dll.add_function( 'FlsAlloc', 'DWORD',[
      ["PBLOB","lpCallback","in"],
      ])

    dll.add_function( 'FlsFree', 'BOOL',[
      ["DWORD","dwFlsIndex","in"],
      ])

    dll.add_function( 'FlsGetValue', 'LPVOID',[
      ["DWORD","dwFlsIndex","in"],
      ])

    dll.add_function( 'FlsSetValue', 'BOOL',[
      ["DWORD","dwFlsIndex","in"],
      ["PBLOB","lpFlsData","in"],
      ])

    dll.add_function( 'FlushFileBuffers', 'BOOL',[
      ["HANDLE","hFile","in"],
      ])

    dll.add_function( 'FlushInstructionCache', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PBLOB","lpBaseAddress","in"],
      ["DWORD","dwSize","in"],
      ])

    dll.add_function( 'FlushViewOfFile', 'BOOL',[
      ["PBLOB","lpBaseAddress","in"],
      ["DWORD","dwNumberOfBytesToFlush","in"],
      ])

    dll.add_function( 'FreeEnvironmentStringsA', 'BOOL',[
      ["PBLOB","param0","in"],
      ])

    dll.add_function( 'FreeEnvironmentStringsW', 'BOOL',[
      ["PBLOB","param0","in"],
      ])

    dll.add_function( 'FreeLibrary', 'BOOL',[
      ["HANDLE","hLibModule","in"],
      ])

    dll.add_function( 'FreeLibraryAndExitThread', 'VOID',[
      ["HANDLE","hLibModule","in"],
      ["DWORD","dwExitCode","in"],
      ])

    dll.add_function( 'FreeResource', 'BOOL',[
      ["HANDLE","hResData","in"],
      ])

    dll.add_function( 'FreeUserPhysicalPages', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PBLOB","NumberOfPages","inout"],
      ["PBLOB","PageArray","in"],
      ])

    dll.add_function( 'GetAtomNameA', 'DWORD',[
      ["WORD","nAtom","in"],
      ["PCHAR","lpBuffer","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GetAtomNameW', 'DWORD',[
      ["WORD","nAtom","in"],
      ["PWCHAR","lpBuffer","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GetBinaryTypeA', 'BOOL',[
      ["PCHAR","lpApplicationName","in"],
      ["PDWORD","lpBinaryType","out"],
      ])

    dll.add_function( 'GetBinaryTypeW', 'BOOL',[
      ["PWCHAR","lpApplicationName","in"],
      ["PDWORD","lpBinaryType","out"],
      ])

    dll.add_function( 'GetCommConfig', 'BOOL',[
      ["HANDLE","hCommDev","in"],
      ["PBLOB","lpCC","out"],
      ["PDWORD","lpdwSize","inout"],
      ])

    dll.add_function( 'GetCommMask', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PDWORD","lpEvtMask","out"],
      ])

    dll.add_function( 'GetCommModemStatus', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PDWORD","lpModemStat","out"],
      ])

    dll.add_function( 'GetCommProperties', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpCommProp","out"],
      ])

    dll.add_function( 'GetCommState', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpDCB","out"],
      ])

    dll.add_function( 'GetCommTimeouts', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpCommTimeouts","out"],
      ])

    #dll.add_function( 'GetCommandLineA', 'PCHAR',[
    #	])

    #dll.add_function( 'GetCommandLineW', 'PWCHAR',[
    #	])

    dll.add_function( 'GetCompressedFileSizeA', 'DWORD',[
      ["PCHAR","lpFileName","in"],
      ["PDWORD","lpFileSizeHigh","out"],
      ])

    dll.add_function( 'GetCompressedFileSizeW', 'DWORD',[
      ["PWCHAR","lpFileName","in"],
      ["PDWORD","lpFileSizeHigh","out"],
      ])

    dll.add_function( 'GetComputerNameA', 'BOOL',[
      ["PCHAR","lpBuffer","out"],
      ["PDWORD","nSize","inout"],
      ])

    dll.add_function( 'GetComputerNameExA', 'BOOL',[
      ["DWORD","NameType","in"],
      ["PCHAR","lpBuffer","out"],
      ["PDWORD","nSize","inout"],
      ])

    dll.add_function( 'GetComputerNameExW', 'BOOL',[
      ["DWORD","NameType","in"],
      ["PWCHAR","lpBuffer","out"],
      ["PDWORD","nSize","inout"],
      ])

    dll.add_function( 'GetComputerNameW', 'BOOL',[
      ["PWCHAR","lpBuffer","out"],
      ["PDWORD","nSize","inout"],
      ])

    dll.add_function( 'GetCurrentActCtx', 'BOOL',[
      ["PDWORD","lphActCtx","out"],
      ])

    dll.add_function( 'GetCurrentDirectoryA', 'DWORD',[
      ["DWORD","nBufferLength","in"],
      ["PCHAR","lpBuffer","out"],
      ])

    dll.add_function( 'GetCurrentDirectoryW', 'DWORD',[
      ["DWORD","nBufferLength","in"],
      ["PWCHAR","lpBuffer","out"],
      ])

    dll.add_function( 'GetCurrentProcess', 'HANDLE',[
      ])

    dll.add_function( 'GetCurrentProcessId', 'DWORD',[
      ])

    dll.add_function( 'GetCurrentProcessorNumber', 'DWORD',[
      ])

    dll.add_function( 'GetCurrentThread', 'HANDLE',[
      ])

    dll.add_function( 'GetCurrentThreadId', 'DWORD',[
      ])

    dll.add_function( 'GetDefaultCommConfigA', 'BOOL',[
      ["PCHAR","lpszName","in"],
      ["PBLOB","lpCC","out"],
      ["PDWORD","lpdwSize","inout"],
      ])

    dll.add_function( 'GetDefaultCommConfigW', 'BOOL',[
      ["PWCHAR","lpszName","in"],
      ["PBLOB","lpCC","out"],
      ["PDWORD","lpdwSize","inout"],
      ])

    dll.add_function( 'GetDevicePowerState', 'BOOL',[
      ["HANDLE","hDevice","in"],
      ["PBLOB","pfOn","out"],
      ])

    dll.add_function( 'GetDiskFreeSpaceA', 'BOOL',[
      ["PCHAR","lpRootPathName","in"],
      ["PDWORD","lpSectorsPerCluster","out"],
      ["PDWORD","lpBytesPerSector","out"],
      ["PDWORD","lpNumberOfFreeClusters","out"],
      ["PDWORD","lpTotalNumberOfClusters","out"],
      ])

    dll.add_function( 'GetDiskFreeSpaceExA', 'BOOL',[
      ["PCHAR","lpDirectoryName","in"],
      ["PBLOB","lpFreeBytesAvailableToCaller","out"],
      ["PBLOB","lpTotalNumberOfBytes","out"],
      ["PBLOB","lpTotalNumberOfFreeBytes","out"],
      ])

    dll.add_function( 'GetDiskFreeSpaceExW', 'BOOL',[
      ["PWCHAR","lpDirectoryName","in"],
      ["PBLOB","lpFreeBytesAvailableToCaller","out"],
      ["PBLOB","lpTotalNumberOfBytes","out"],
      ["PBLOB","lpTotalNumberOfFreeBytes","out"],
      ])

    dll.add_function( 'GetDiskFreeSpaceW', 'BOOL',[
      ["PWCHAR","lpRootPathName","in"],
      ["PDWORD","lpSectorsPerCluster","out"],
      ["PDWORD","lpBytesPerSector","out"],
      ["PDWORD","lpNumberOfFreeClusters","out"],
      ["PDWORD","lpTotalNumberOfClusters","out"],
      ])

    dll.add_function( 'GetDllDirectoryA', 'DWORD',[
      ["DWORD","nBufferLength","in"],
      ["PCHAR","lpBuffer","out"],
      ])

    dll.add_function( 'GetDllDirectoryW', 'DWORD',[
      ["DWORD","nBufferLength","in"],
      ["PWCHAR","lpBuffer","out"],
      ])

    dll.add_function( 'GetDriveTypeA', 'DWORD',[
      ["PCHAR","lpRootPathName","in"],
      ])

    dll.add_function( 'GetDriveTypeW', 'DWORD',[
      ["PWCHAR","lpRootPathName","in"],
      ])

    dll.add_function( 'GetEnvironmentStrings', 'LPVOID',[
      ])

    dll.add_function( 'GetEnvironmentStringsW', 'LPVOID',[
      ])

    dll.add_function( 'GetEnvironmentVariableA', 'DWORD',[
      ["PCHAR","lpName","in"],
      ["PCHAR","lpBuffer","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GetEnvironmentVariableW', 'DWORD',[
      ["PWCHAR","lpName","in"],
      ["PWCHAR","lpBuffer","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GetExitCodeProcess', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PDWORD","lpExitCode","out"],
      ])

    dll.add_function( 'GetExitCodeThread', 'BOOL',[
      ["HANDLE","hThread","in"],
      ["PDWORD","lpExitCode","out"],
      ])

    dll.add_function( 'GetFileAttributesA', 'DWORD',[
      ["PCHAR","lpFileName","in"],
      ])

    dll.add_function( 'GetFileAttributesExA', 'BOOL',[
      ["PCHAR","lpFileName","in"],
      ["PBLOB","fInfoLevelId","in"],
      ["PBLOB","lpFileInformation","out"],
      ])

    dll.add_function( 'GetFileAttributesExW', 'BOOL',[
      ["PWCHAR","lpFileName","in"],
      ["PBLOB","fInfoLevelId","in"],
      ["PBLOB","lpFileInformation","out"],
      ])

    dll.add_function( 'GetFileAttributesW', 'DWORD',[
      ["PWCHAR","lpFileName","in"],
      ])

    dll.add_function( 'GetFileInformationByHandle', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpFileInformation","out"],
      ])

    dll.add_function( 'GetFileSize', 'DWORD',[
      ["HANDLE","hFile","in"],
      ["PDWORD","lpFileSizeHigh","out"],
      ])

    dll.add_function( 'GetFileSizeEx', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpFileSize","out"],
      ])

    dll.add_function( 'GetFileTime', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpCreationTime","out"],
      ["PBLOB","lpLastAccessTime","out"],
      ["PBLOB","lpLastWriteTime","out"],
      ])

    dll.add_function( 'GetFileType', 'DWORD',[
      ["HANDLE","hFile","in"],
      ])

    dll.add_function( 'GetFirmwareEnvironmentVariableA', 'DWORD',[
      ["PCHAR","lpName","in"],
      ["PCHAR","lpGuid","in"],
      ["PBLOB","pBuffer","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GetFirmwareEnvironmentVariableW', 'DWORD',[
      ["PWCHAR","lpName","in"],
      ["PWCHAR","lpGuid","in"],
      ["PBLOB","pBuffer","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GetFullPathNameA', 'DWORD',[
      ["PCHAR","lpFileName","in"],
      ["DWORD","nBufferLength","in"],
      ["PCHAR","lpBuffer","out"],
      ["PBLOB","lpFilePart","out"],
      ])

    dll.add_function( 'GetFullPathNameW', 'DWORD',[
      ["PWCHAR","lpFileName","in"],
      ["DWORD","nBufferLength","in"],
      ["PWCHAR","lpBuffer","out"],
      ["PBLOB","lpFilePart","out"],
      ])

    dll.add_function( 'GetHandleInformation', 'BOOL',[
      ["HANDLE","hObject","in"],
      ["PDWORD","lpdwFlags","out"],
      ])

    dll.add_function( 'GetLargePageMinimum', 'DWORD',[
      ])

    dll.add_function( 'GetLastError', 'DWORD',[
      ])

    dll.add_function( 'GetLocalTime', 'VOID',[
      ["PBLOB","lpSystemTime","out"],
      ])

    dll.add_function( 'GetLogicalDriveStringsA', 'DWORD',[
      ["DWORD","nBufferLength","in"],
      ["PCHAR","lpBuffer","out"],
      ])

    dll.add_function( 'GetLogicalDriveStringsW', 'DWORD',[
      ["DWORD","nBufferLength","in"],
      ["PWCHAR","lpBuffer","out"],
      ])

    dll.add_function( 'GetLogicalDrives', 'DWORD',[
      ])

    dll.add_function( 'GetLogicalProcessorInformation', 'BOOL',[
      ["PBLOB","Buffer","out"],
      ["PDWORD","ReturnedLength","inout"],
      ])

    dll.add_function( 'GetLongPathNameA', 'DWORD',[
      ["PCHAR","lpszShortPath","in"],
      ["PCHAR","lpszLongPath","out"],
      ["DWORD","cchBuffer","in"],
      ])

    dll.add_function( 'GetLongPathNameW', 'DWORD',[
      ["PWCHAR","lpszShortPath","in"],
      ["PWCHAR","lpszLongPath","out"],
      ["DWORD","cchBuffer","in"],
      ])

    dll.add_function( 'GetMailslotInfo', 'BOOL',[
      ["HANDLE","hMailslot","in"],
      ["PDWORD","lpMaxMessageSize","out"],
      ["PDWORD","lpNextSize","out"],
      ["PDWORD","lpMessageCount","out"],
      ["PDWORD","lpReadTimeout","out"],
      ])

    dll.add_function( 'GetModuleFileNameA', 'DWORD',[
      ["HANDLE","hModule","in"],
      ["PBLOB","lpFilename","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GetModuleFileNameW', 'DWORD',[
      ["HANDLE","hModule","in"],
      ["PBLOB","lpFilename","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GetModuleHandleA', 'HANDLE',[
      ["PCHAR","lpModuleName","in"],
      ])

    dll.add_function( 'GetModuleHandleExA', 'BOOL',[
      ["DWORD","dwFlags","in"],
      ["PCHAR","lpModuleName","in"],
      ["PDWORD","phModule","out"],
      ])

    dll.add_function( 'GetModuleHandleExW', 'BOOL',[
      ["DWORD","dwFlags","in"],
      ["PWCHAR","lpModuleName","in"],
      ["PDWORD","phModule","out"],
      ])

    dll.add_function( 'GetModuleHandleW', 'HANDLE',[
      ["PWCHAR","lpModuleName","in"],
      ])

    dll.add_function( 'GetNamedPipeHandleStateA', 'BOOL',[
      ["HANDLE","hNamedPipe","in"],
      ["PDWORD","lpState","out"],
      ["PDWORD","lpCurInstances","out"],
      ["PDWORD","lpMaxCollectionCount","out"],
      ["PDWORD","lpCollectDataTimeout","out"],
      ["PCHAR","lpUserName","out"],
      ["DWORD","nMaxUserNameSize","in"],
      ])

    dll.add_function( 'GetNamedPipeHandleStateW', 'BOOL',[
      ["HANDLE","hNamedPipe","in"],
      ["PDWORD","lpState","out"],
      ["PDWORD","lpCurInstances","out"],
      ["PDWORD","lpMaxCollectionCount","out"],
      ["PDWORD","lpCollectDataTimeout","out"],
      ["PWCHAR","lpUserName","out"],
      ["DWORD","nMaxUserNameSize","in"],
      ])

    dll.add_function( 'GetNamedPipeInfo', 'BOOL',[
      ["HANDLE","hNamedPipe","in"],
      ["PDWORD","lpFlags","out"],
      ["PDWORD","lpOutBufferSize","out"],
      ["PDWORD","lpInBufferSize","out"],
      ["PDWORD","lpMaxInstances","out"],
      ])

    dll.add_function( 'GetNativeSystemInfo', 'VOID',[
      ["PBLOB","lpSystemInfo","out"],
      ])

    dll.add_function( 'GetNumaAvailableMemoryNode', 'BOOL',[
      ["BYTE","Node","in"],
      ["PBLOB","AvailableBytes","out"],
      ])

    dll.add_function( 'GetNumaHighestNodeNumber', 'BOOL',[
      ["PDWORD","HighestNodeNumber","out"],
      ])

    dll.add_function( 'GetNumaNodeProcessorMask', 'BOOL',[
      ["BYTE","Node","in"],
      ["PBLOB","ProcessorMask","out"],
      ])

    dll.add_function( 'GetNumaProcessorNode', 'BOOL',[
      ["BYTE","Processor","in"],
      ["PBLOB","NodeNumber","out"],
      ])

    dll.add_function( 'GetOverlappedResult', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpOverlapped","in"],
      ["PDWORD","lpNumberOfBytesTransferred","out"],
      ["BOOL","bWait","in"],
      ])

    dll.add_function( 'GetPriorityClass', 'DWORD',[
      ["HANDLE","hProcess","in"],
      ])

    dll.add_function( 'GetPrivateProfileIntA', 'DWORD',[
      ["PCHAR","lpAppName","in"],
      ["PCHAR","lpKeyName","in"],
      ["DWORD","nDefault","in"],
      ["PCHAR","lpFileName","in"],
      ])

    dll.add_function( 'GetPrivateProfileIntW', 'DWORD',[
      ["PWCHAR","lpAppName","in"],
      ["PWCHAR","lpKeyName","in"],
      ["DWORD","nDefault","in"],
      ["PWCHAR","lpFileName","in"],
      ])

    dll.add_function( 'GetPrivateProfileSectionA', 'DWORD',[
      ["PCHAR","lpAppName","in"],
      ["PCHAR","lpReturnedString","out"],
      ["DWORD","nSize","in"],
      ["PCHAR","lpFileName","in"],
      ])

    dll.add_function( 'GetPrivateProfileSectionNamesA', 'DWORD',[
      ["PCHAR","lpszReturnBuffer","out"],
      ["DWORD","nSize","in"],
      ["PCHAR","lpFileName","in"],
      ])

    dll.add_function( 'GetPrivateProfileSectionNamesW', 'DWORD',[
      ["PWCHAR","lpszReturnBuffer","out"],
      ["DWORD","nSize","in"],
      ["PWCHAR","lpFileName","in"],
      ])

    dll.add_function( 'GetPrivateProfileSectionW', 'DWORD',[
      ["PWCHAR","lpAppName","in"],
      ["PWCHAR","lpReturnedString","out"],
      ["DWORD","nSize","in"],
      ["PWCHAR","lpFileName","in"],
      ])

    dll.add_function( 'GetPrivateProfileStringA', 'DWORD',[
      ["PCHAR","lpAppName","in"],
      ["PCHAR","lpKeyName","in"],
      ["PCHAR","lpDefault","in"],
      ["PCHAR","lpReturnedString","out"],
      ["DWORD","nSize","in"],
      ["PCHAR","lpFileName","in"],
      ])

    dll.add_function( 'GetPrivateProfileStringW', 'DWORD',[
      ["PWCHAR","lpAppName","in"],
      ["PWCHAR","lpKeyName","in"],
      ["PWCHAR","lpDefault","in"],
      ["PWCHAR","lpReturnedString","out"],
      ["DWORD","nSize","in"],
      ["PWCHAR","lpFileName","in"],
      ])

    dll.add_function( 'GetPrivateProfileStructA', 'BOOL',[
      ["PCHAR","lpszSection","in"],
      ["PCHAR","lpszKey","in"],
      ["PBLOB","lpStruct","out"],
      ["DWORD","uSizeStruct","in"],
      ["PCHAR","szFile","in"],
      ])

    dll.add_function( 'GetPrivateProfileStructW', 'BOOL',[
      ["PWCHAR","lpszSection","in"],
      ["PWCHAR","lpszKey","in"],
      ["PBLOB","lpStruct","out"],
      ["DWORD","uSizeStruct","in"],
      ["PWCHAR","szFile","in"],
      ])

    dll.add_function( 'GetProcAddress', 'LPVOID',[
      ["HANDLE","hModule","in"],
      ["PCHAR","lpProcName","in"],
      ])

    dll.add_function( 'GetProcessAffinityMask', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PBLOB","lpProcessAffinityMask","out"],
      ["PBLOB","lpSystemAffinityMask","out"],
      ])

    dll.add_function( 'GetProcessHandleCount', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PDWORD","pdwHandleCount","out"],
      ])

    dll.add_function( 'GetProcessHeap', 'HANDLE',[
      ])

    dll.add_function( 'GetProcessHeaps', 'DWORD',[
      ["DWORD","NumberOfHeaps","in"],
      ["PBLOB","ProcessHeaps","out"],
      ])

    dll.add_function( 'GetProcessId', 'DWORD',[
      ["DWORD","Process","in"],
      ])

    dll.add_function( 'GetProcessIdOfThread', 'DWORD',[
      ["DWORD","Thread","in"],
      ])

    dll.add_function( 'GetProcessIoCounters', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PBLOB","lpIoCounters","out"],
      ])

    dll.add_function( 'GetProcessPriorityBoost', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PBLOB","pDisablePriorityBoost","out"],
      ])

    dll.add_function( 'GetProcessShutdownParameters', 'BOOL',[
      ["PDWORD","lpdwLevel","out"],
      ["PDWORD","lpdwFlags","out"],
      ])

    dll.add_function( 'GetProcessTimes', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PBLOB","lpCreationTime","out"],
      ["PBLOB","lpExitTime","out"],
      ["PBLOB","lpKernelTime","out"],
      ["PBLOB","lpUserTime","out"],
      ])

    dll.add_function( 'GetProcessVersion', 'DWORD',[
      ["DWORD","ProcessId","in"],
      ])

    dll.add_function( 'GetProcessWorkingSetSize', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PDWORD","lpMinimumWorkingSetSize","out"],
      ["PDWORD","lpMaximumWorkingSetSize","out"],
      ])

    dll.add_function( 'GetProcessWorkingSetSizeEx', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PDWORD","lpMinimumWorkingSetSize","out"],
      ["PDWORD","lpMaximumWorkingSetSize","out"],
      ["PDWORD","Flags","out"],
      ])

    dll.add_function( 'GetProfileIntA', 'DWORD',[
      ["PCHAR","lpAppName","in"],
      ["PCHAR","lpKeyName","in"],
      ["DWORD","nDefault","in"],
      ])

    dll.add_function( 'GetProfileIntW', 'DWORD',[
      ["PWCHAR","lpAppName","in"],
      ["PWCHAR","lpKeyName","in"],
      ["DWORD","nDefault","in"],
      ])

    dll.add_function( 'GetProfileSectionA', 'DWORD',[
      ["PCHAR","lpAppName","in"],
      ["PCHAR","lpReturnedString","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GetProfileSectionW', 'DWORD',[
      ["PWCHAR","lpAppName","in"],
      ["PWCHAR","lpReturnedString","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GetProfileStringA', 'DWORD',[
      ["PCHAR","lpAppName","in"],
      ["PCHAR","lpKeyName","in"],
      ["PCHAR","lpDefault","in"],
      ["PCHAR","lpReturnedString","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GetProfileStringW', 'DWORD',[
      ["PWCHAR","lpAppName","in"],
      ["PWCHAR","lpKeyName","in"],
      ["PWCHAR","lpDefault","in"],
      ["PWCHAR","lpReturnedString","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GetQueuedCompletionStatus', 'BOOL',[
      ["DWORD","CompletionPort","in"],
      ["PDWORD","lpNumberOfBytesTransferred","out"],
      ["PBLOB","lpCompletionKey","out"],
      ["PBLOB","lpOverlapped","out"],
      ["DWORD","dwMilliseconds","in"],
      ])

    dll.add_function( 'GetShortPathNameA', 'DWORD',[
      ["PCHAR","lpszLongPath","in"],
      ["PCHAR","lpszShortPath","out"],
      ["DWORD","cchBuffer","in"],
      ])

    dll.add_function( 'GetShortPathNameW', 'DWORD',[
      ["PWCHAR","lpszLongPath","in"],
      ["PWCHAR","lpszShortPath","out"],
      ["DWORD","cchBuffer","in"],
      ])

    dll.add_function( 'GetStartupInfoA', 'VOID',[
      ["PBLOB","lpStartupInfo","out"],
      ])

    dll.add_function( 'GetStartupInfoW', 'VOID',[
      ["PBLOB","lpStartupInfo","out"],
      ])

    dll.add_function( 'GetStdHandle', 'DWORD',[
      ["DWORD","nStdHandle","in"],
      ])

    dll.add_function( 'GetSystemDirectoryA', 'DWORD',[
      ["PCHAR","lpBuffer","out"],
      ["DWORD","uSize","in"],
      ])

    dll.add_function( 'GetSystemDirectoryW', 'DWORD',[
      ["PWCHAR","lpBuffer","out"],
      ["DWORD","uSize","in"],
      ])

    dll.add_function( 'GetSystemFileCacheSize', 'BOOL',[
      ["PDWORD","lpMinimumFileCacheSize","out"],
      ["PDWORD","lpMaximumFileCacheSize","out"],
      ["PDWORD","lpFlags","out"],
      ])

    dll.add_function( 'GetSystemFirmwareTable', 'DWORD',[
      ["DWORD","FirmwareTableProviderSignature","in"],
      ["DWORD","FirmwareTableID","in"],
      ["PBLOB","pFirmwareTableBuffer","out"],
      ["DWORD","BufferSize","in"],
      ])

    dll.add_function( 'GetSystemInfo', 'VOID',[
      ["PBLOB","lpSystemInfo","out"],
      ])

    dll.add_function( 'GetSystemPowerStatus', 'BOOL',[
      ["PBLOB","lpSystemPowerStatus","out"],
      ])

    dll.add_function( 'GetSystemRegistryQuota', 'BOOL',[
      ["PDWORD","pdwQuotaAllowed","out"],
      ["PDWORD","pdwQuotaUsed","out"],
      ])

    dll.add_function( 'GetSystemTime', 'VOID',[
      ["PBLOB","lpSystemTime","out"],
      ])

    dll.add_function( 'GetSystemTimeAdjustment', 'BOOL',[
      ["PDWORD","lpTimeAdjustment","out"],
      ["PDWORD","lpTimeIncrement","out"],
      ["PBLOB","lpTimeAdjustmentDisabled","out"],
      ])

    dll.add_function( 'GetSystemTimeAsFileTime', 'VOID',[
      ["PBLOB","lpSystemTimeAsFileTime","out"],
      ])

    dll.add_function( 'GetSystemTimes', 'BOOL',[
      ["PBLOB","lpIdleTime","out"],
      ["PBLOB","lpKernelTime","out"],
      ["PBLOB","lpUserTime","out"],
      ])

    dll.add_function( 'GetSystemWindowsDirectoryA', 'DWORD',[
      ["PCHAR","lpBuffer","out"],
      ["DWORD","uSize","in"],
      ])

    dll.add_function( 'GetSystemWindowsDirectoryW', 'DWORD',[
      ["PWCHAR","lpBuffer","out"],
      ["DWORD","uSize","in"],
      ])

    dll.add_function( 'GetSystemWow64DirectoryA', 'DWORD',[
      ["PCHAR","lpBuffer","out"],
      ["DWORD","uSize","in"],
      ])

    dll.add_function( 'GetSystemWow64DirectoryW', 'DWORD',[
      ["PWCHAR","lpBuffer","out"],
      ["DWORD","uSize","in"],
      ])

    dll.add_function( 'GetTapeParameters', 'DWORD',[
      ["HANDLE","hDevice","in"],
      ["DWORD","dwOperation","in"],
      ["PDWORD","lpdwSize","inout"],
      ["PBLOB","lpTapeInformation","out"],
      ])

    dll.add_function( 'GetTapePosition', 'DWORD',[
      ["HANDLE","hDevice","in"],
      ["DWORD","dwPositionType","in"],
      ["PDWORD","lpdwPartition","out"],
      ["PDWORD","lpdwOffsetLow","out"],
      ["PDWORD","lpdwOffsetHigh","out"],
      ])

    dll.add_function( 'GetTapeStatus', 'DWORD',[
      ["HANDLE","hDevice","in"],
      ])

    dll.add_function( 'GetTempFileNameA', 'DWORD',[
      ["PCHAR","lpPathName","in"],
      ["PCHAR","lpPrefixString","in"],
      ["DWORD","uUnique","in"],
      ["PCHAR","lpTempFileName","out"],
      ])

    dll.add_function( 'GetTempFileNameW', 'DWORD',[
      ["PWCHAR","lpPathName","in"],
      ["PWCHAR","lpPrefixString","in"],
      ["DWORD","uUnique","in"],
      ["PWCHAR","lpTempFileName","out"],
      ])

    dll.add_function( 'GetTempPathA', 'DWORD',[
      ["DWORD","nBufferLength","in"],
      ["PCHAR","lpBuffer","out"],
      ])

    dll.add_function( 'GetTempPathW', 'DWORD',[
      ["DWORD","nBufferLength","in"],
      ["PWCHAR","lpBuffer","out"],
      ])

    dll.add_function( 'GetThreadContext', 'BOOL',[
      ["HANDLE","hThread","in"],
      ["PBLOB","lpContext","inout"],
      ])

    dll.add_function( 'GetThreadIOPendingFlag', 'BOOL',[
      ["HANDLE","hThread","in"],
      ["PBLOB","lpIOIsPending","out"],
      ])

    dll.add_function( 'GetThreadId', 'DWORD',[
      ["DWORD","Thread","in"],
      ])

    dll.add_function( 'GetThreadPriority', 'DWORD',[
      ["HANDLE","hThread","in"],
      ])

    dll.add_function( 'GetThreadPriorityBoost', 'BOOL',[
      ["HANDLE","hThread","in"],
      ["PBLOB","pDisablePriorityBoost","out"],
      ])

    dll.add_function( 'GetThreadSelectorEntry', 'BOOL',[
      ["HANDLE","hThread","in"],
      ["DWORD","dwSelector","in"],
      ["PBLOB","lpSelectorEntry","out"],
      ])

    dll.add_function( 'GetThreadTimes', 'BOOL',[
      ["HANDLE","hThread","in"],
      ["PBLOB","lpCreationTime","out"],
      ["PBLOB","lpExitTime","out"],
      ["PBLOB","lpKernelTime","out"],
      ["PBLOB","lpUserTime","out"],
      ])

    dll.add_function( 'GetTickCount', 'DWORD',[
      ])

    dll.add_function( 'GetTimeZoneInformation', 'DWORD',[
      ["PBLOB","lpTimeZoneInformation","out"],
      ])

    dll.add_function( 'GetVersion', 'DWORD',[
      ])

    dll.add_function( 'GetVersionExA', 'BOOL',[
      ["PBLOB","lpVersionInformation","inout"],
      ])

    dll.add_function( 'GetVersionExW', 'BOOL',[
      ["PBLOB","lpVersionInformation","inout"],
      ])

    dll.add_function( 'GetVolumeInformationA', 'BOOL',[
      ["PCHAR","lpRootPathName","in"],
      ["PCHAR","lpVolumeNameBuffer","out"],
      ["DWORD","nVolumeNameSize","in"],
      ["PDWORD","lpVolumeSerialNumber","out"],
      ["PDWORD","lpMaximumComponentLength","out"],
      ["PDWORD","lpFileSystemFlags","out"],
      ["PCHAR","lpFileSystemNameBuffer","out"],
      ["DWORD","nFileSystemNameSize","in"],
      ])

    dll.add_function( 'GetVolumeInformationW', 'BOOL',[
      ["PWCHAR","lpRootPathName","in"],
      ["PWCHAR","lpVolumeNameBuffer","out"],
      ["DWORD","nVolumeNameSize","in"],
      ["PDWORD","lpVolumeSerialNumber","out"],
      ["PDWORD","lpMaximumComponentLength","out"],
      ["PDWORD","lpFileSystemFlags","out"],
      ["PWCHAR","lpFileSystemNameBuffer","out"],
      ["DWORD","nFileSystemNameSize","in"],
      ])

    dll.add_function( 'GetVolumeNameForVolumeMountPointA', 'BOOL',[
      ["PCHAR","lpszVolumeMountPoint","in"],
      ["PCHAR","lpszVolumeName","out"],
      ["DWORD","cchBufferLength","in"],
      ])

    dll.add_function( 'GetVolumeNameForVolumeMountPointW', 'BOOL',[
      ["PWCHAR","lpszVolumeMountPoint","in"],
      ["PWCHAR","lpszVolumeName","out"],
      ["DWORD","cchBufferLength","in"],
      ])

    dll.add_function( 'GetVolumePathNameA', 'BOOL',[
      ["PCHAR","lpszFileName","in"],
      ["PCHAR","lpszVolumePathName","out"],
      ["DWORD","cchBufferLength","in"],
      ])

    dll.add_function( 'GetVolumePathNameW', 'BOOL',[
      ["PWCHAR","lpszFileName","in"],
      ["PWCHAR","lpszVolumePathName","out"],
      ["DWORD","cchBufferLength","in"],
      ])

    dll.add_function( 'GetVolumePathNamesForVolumeNameA', 'BOOL',[
      ["PCHAR","lpszVolumeName","in"],
      ["PBLOB","lpszVolumePathNames","out"],
      ["DWORD","cchBufferLength","in"],
      ["PDWORD","lpcchReturnLength","out"],
      ])

    dll.add_function( 'GetVolumePathNamesForVolumeNameW', 'BOOL',[
      ["PWCHAR","lpszVolumeName","in"],
      ["PBLOB","lpszVolumePathNames","out"],
      ["DWORD","cchBufferLength","in"],
      ["PDWORD","lpcchReturnLength","out"],
      ])

    dll.add_function( 'GetWindowsDirectoryA', 'DWORD',[
      ["PCHAR","lpBuffer","out"],
      ["DWORD","uSize","in"],
      ])

    dll.add_function( 'GetWindowsDirectoryW', 'DWORD',[
      ["PWCHAR","lpBuffer","out"],
      ["DWORD","uSize","in"],
      ])

    dll.add_function( 'GetWriteWatch', 'DWORD',[
      ["DWORD","dwFlags","in"],
      ["PBLOB","lpBaseAddress","in"],
      ["DWORD","dwRegionSize","in"],
      ["PBLOB","lpAddresses","out"],
      ["PBLOB","lpdwCount","inout"],
      ["PDWORD","lpdwGranularity","out"],
      ])

    dll.add_function( 'GlobalAddAtomA', 'WORD',[
      ["PCHAR","lpString","in"],
      ])

    dll.add_function( 'GlobalAddAtomW', 'WORD',[
      ["PWCHAR","lpString","in"],
      ])

    dll.add_function( 'GlobalAlloc', 'DWORD',[
      ["DWORD","uFlags","in"],
      ["DWORD","dwBytes","in"],
      ])

    dll.add_function( 'GlobalCompact', 'DWORD',[
      ["DWORD","dwMinFree","in"],
      ])

    dll.add_function( 'GlobalDeleteAtom', 'WORD',[
      ["WORD","nAtom","in"],
      ])

    dll.add_function( 'GlobalFindAtomA', 'WORD',[
      ["PCHAR","lpString","in"],
      ])

    dll.add_function( 'GlobalFindAtomW', 'WORD',[
      ["PWCHAR","lpString","in"],
      ])

    dll.add_function( 'GlobalFix', 'VOID',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'GlobalFlags', 'DWORD',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'GlobalFree', 'DWORD',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'GlobalGetAtomNameA', 'DWORD',[
      ["WORD","nAtom","in"],
      ["PCHAR","lpBuffer","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GlobalGetAtomNameW', 'DWORD',[
      ["WORD","nAtom","in"],
      ["PWCHAR","lpBuffer","out"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'GlobalHandle', 'DWORD',[
      ["PBLOB","pMem","in"],
      ])

    dll.add_function( 'GlobalLock', 'LPVOID',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'GlobalMemoryStatus', 'VOID',[
      ["PBLOB","lpBuffer","out"],
      ])

    dll.add_function( 'GlobalMemoryStatusEx', 'BOOL',[
      ["PBLOB","lpBuffer","out"],
      ])

    dll.add_function( 'GlobalReAlloc', 'DWORD',[
      ["HANDLE","hMem","in"],
      ["DWORD","dwBytes","in"],
      ["DWORD","uFlags","in"],
      ])

    dll.add_function( 'GlobalSize', 'DWORD',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'GlobalUnWire', 'BOOL',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'GlobalUnfix', 'VOID',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'GlobalUnlock', 'BOOL',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'GlobalWire', 'LPVOID',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'HeapAlloc', 'LPVOID',[
      ["HANDLE","hHeap","in"],
      ["DWORD","dwFlags","in"],
      ["DWORD","dwBytes","in"],
      ])

    dll.add_function( 'HeapCompact', 'DWORD',[
      ["HANDLE","hHeap","in"],
      ["DWORD","dwFlags","in"],
      ])

    dll.add_function( 'HeapCreate', 'HANDLE',[
      ["DWORD","flOptions","in"],
      ["DWORD","dwInitialSize","in"],
      ["DWORD","dwMaximumSize","in"],
      ])

    dll.add_function( 'HeapDestroy', 'BOOL',[
      ["HANDLE","hHeap","in"],
      ])

    dll.add_function( 'HeapFree', 'BOOL',[
      ["HANDLE","hHeap","inout"],
      ["DWORD","dwFlags","in"],
      ["LPVOID","lpMem","in"],
      ])

    dll.add_function( 'HeapLock', 'BOOL',[
      ["HANDLE","hHeap","in"],
      ])

    dll.add_function( 'HeapQueryInformation', 'BOOL',[
      ["HANDLE","heapHandle","in"],
      ["PDWORD","HeapInformationClass","in"],
      ["PBLOB","HeapInformation","out"],
      ["HANDLE","heapInformationLength","in"],
      ["PDWORD","ReturnLength","out"],
      ])

    dll.add_function( 'HeapReAlloc', 'LPVOID',[
      ["HANDLE","hHeap","inout"],
      ["DWORD","dwFlags","in"],
      ["LPVOID","lpMem","in"],
      ["DWORD","dwBytes","in"],
      ])

    dll.add_function( 'HeapSetInformation', 'BOOL',[
      ["HANDLE","heapHandle","in"],
      ["PDWORD","HeapInformationClass","in"],
      ["PBLOB","HeapInformation","in"],
      ["HANDLE","heapInformationLength","in"],
      ])

    dll.add_function( 'HeapSize', 'DWORD',[
      ["HANDLE","hHeap","in"],
      ["DWORD","dwFlags","in"],
      ["LPVOID","lpMem","in"],
      ])

    dll.add_function( 'HeapUnlock', 'BOOL',[
      ["HANDLE","hHeap","in"],
      ])

    dll.add_function( 'HeapValidate', 'BOOL',[
      ["HANDLE","hHeap","in"],
      ["DWORD","dwFlags","in"],
      ["LPVOID","lpMem","in"],
      ])

    dll.add_function( 'HeapWalk', 'BOOL',[
      ["HANDLE","hHeap","in"],
      ["PBLOB","lpEntry","inout"],
      ])

    dll.add_function( 'InitAtomTable', 'BOOL',[
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'InitializeCriticalSection', 'VOID',[
      ["PBLOB","lpCriticalSection","out"],
      ])

    dll.add_function( 'InitializeCriticalSectionAndSpinCount', 'BOOL',[
      ["PBLOB","lpCriticalSection","out"],
      ["DWORD","dwSpinCount","in"],
      ])

    dll.add_function( 'InitializeSListHead', 'VOID',[
      ["PBLOB","ListHead","inout"],
      ])

    dll.add_function( 'InterlockedCompareExchange', 'DWORD',[
      ["PDWORD","Destination","in"],
      ["DWORD","ExChange","in"],
      ["DWORD","Comperand","in"],
      ])

    dll.add_function( 'InterlockedCompareExchange64', 'LPVOID',[
      ["PBLOB","Destination","in"],
      ["PBLOB","ExChange","in"],
      ["PBLOB","Comperand","in"],
      ])

    dll.add_function( 'InterlockedDecrement', 'DWORD',[
      ["PDWORD","lpAddend","inout"],
      ])

    dll.add_function( 'InterlockedExchange', 'DWORD',[
      ["PDWORD","Target","in"],
      ["DWORD","Value","in"],
      ])

    dll.add_function( 'InterlockedExchangeAdd', 'DWORD',[
      ["PDWORD","Addend","inout"],
      ["DWORD","Value","in"],
      ])

    dll.add_function( 'InterlockedFlushSList', 'LPVOID',[
      ["PBLOB","ListHead","inout"],
      ])

    dll.add_function( 'InterlockedIncrement', 'DWORD',[
      ["PDWORD","lpAddend","inout"],
      ])

    dll.add_function( 'InterlockedPopEntrySList', 'LPVOID',[
      ["PBLOB","ListHead","inout"],
      ])

    dll.add_function( 'InterlockedPushEntrySList', 'LPVOID',[
      ["PBLOB","ListHead","inout"],
      ["PBLOB","ListEntry","inout"],
      ])

    dll.add_function( 'IsBadCodePtr', 'BOOL',[
      ["PBLOB","lpfn","in"],
      ])

    dll.add_function( 'IsBadHugeReadPtr', 'BOOL',[
      ["DWORD","ucb","in"],
      ])

    dll.add_function( 'IsBadHugeWritePtr', 'BOOL',[
      ["PBLOB","lp","in"],
      ["DWORD","ucb","in"],
      ])

    dll.add_function( 'IsBadReadPtr', 'BOOL',[
      ["DWORD","ucb","in"],
      ])

    dll.add_function( 'IsBadStringPtrA', 'BOOL',[
      ["PCHAR","lpsz","in"],
      ["DWORD","ucchMax","in"],
      ])

    dll.add_function( 'IsBadStringPtrW', 'BOOL',[
      ["PWCHAR","lpsz","in"],
      ["DWORD","ucchMax","in"],
      ])

    dll.add_function( 'IsBadWritePtr', 'BOOL',[
      ["PBLOB","lp","in"],
      ["DWORD","ucb","in"],
      ])

    dll.add_function( 'IsDebuggerPresent', 'BOOL',[
      ])

    dll.add_function( 'IsProcessInJob', 'BOOL',[
      ["DWORD","ProcessHandle","in"],
      ["DWORD","JobHandle","in"],
      ["PBLOB","Result","out"],
      ])

    dll.add_function( 'IsProcessorFeaturePresent', 'BOOL',[
      ["DWORD","ProcessorFeature","in"],
      ])

    dll.add_function( 'IsSystemResumeAutomatic', 'BOOL',[
      ])

    dll.add_function( 'IsWow64Process', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PBLOB","Wow64Process","out"],
      ])

    dll.add_function( 'LeaveCriticalSection', 'VOID',[
      ["PBLOB","lpCriticalSection","inout"],
      ])

    dll.add_function( 'LoadLibraryA', 'HANDLE',[
      ["PCHAR","lpLibFileName","in"],
      ])

    dll.add_function( 'LoadLibraryExA', 'HANDLE',[
      ["PCHAR","lpLibFileName","in"],
      ["HANDLE","hFile","inout"],
      ["DWORD","dwFlags","in"],
      ])

    dll.add_function( 'LoadLibraryExW', 'HANDLE',[
      ["PWCHAR","lpLibFileName","in"],
      ["HANDLE","hFile","inout"],
      ["DWORD","dwFlags","in"],
      ])

    dll.add_function( 'LoadLibraryW', 'HANDLE',[
      ["PWCHAR","lpLibFileName","in"],
      ])

    dll.add_function( 'LoadModule', 'DWORD',[
      ["PCHAR","lpModuleName","in"],
      ["PBLOB","lpParameterBlock","in"],
      ])

    dll.add_function( 'LoadResource', 'DWORD',[
      ["HANDLE","hModule","in"],
      ["HANDLE","hResInfo","in"],
      ])

    dll.add_function( 'LocalAlloc', 'HANDLE',[
      ["DWORD","uFlags","in"],
      ["DWORD","uBytes","in"],
      ])

    dll.add_function( 'LocalCompact', 'DWORD',[
      ["DWORD","uMinFree","in"],
      ])

    dll.add_function( 'LocalFileTimeToFileTime', 'BOOL',[
      ["PBLOB","lpLocalFileTime","in"],
      ["PBLOB","lpFileTime","out"],
      ])

    dll.add_function( 'LocalFlags', 'DWORD',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'LocalFree', 'HANDLE',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'LocalHandle', 'DWORD',[
      ["PBLOB","pMem","in"],
      ])

    dll.add_function( 'LocalLock', 'LPVOID',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'LocalReAlloc', 'DWORD',[
      ["HANDLE","hMem","in"],
      ["DWORD","uBytes","in"],
      ["DWORD","uFlags","in"],
      ])

    dll.add_function( 'LocalShrink', 'DWORD',[
      ["HANDLE","hMem","in"],
      ["DWORD","cbNewSize","in"],
      ])

    dll.add_function( 'LocalSize', 'DWORD',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'LocalUnlock', 'BOOL',[
      ["HANDLE","hMem","in"],
      ])

    dll.add_function( 'LockFile', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["DWORD","dwFileOffsetLow","in"],
      ["DWORD","dwFileOffsetHigh","in"],
      ["DWORD","nNumberOfBytesToLockLow","in"],
      ["DWORD","nNumberOfBytesToLockHigh","in"],
      ])

    dll.add_function( 'LockFileEx', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["DWORD","dwFlags","in"],
      ["DWORD","dwReserved","inout"],
      ["DWORD","nNumberOfBytesToLockLow","in"],
      ["DWORD","nNumberOfBytesToLockHigh","in"],
      ["PBLOB","lpOverlapped","inout"],
      ])

    dll.add_function( 'LockResource', 'LPVOID',[
      ["HANDLE","hResData","in"],
      ])

    dll.add_function( 'MapUserPhysicalPages', 'BOOL',[
      ["PBLOB","VirtualAddress","in"],
      ["PDWORD","NumberOfPages","in"],
      ["PBLOB","PageArray","in"],
      ])

    dll.add_function( 'MapUserPhysicalPagesScatter', 'BOOL',[
      ["PBLOB","VirtualAddresses","in"],
      ["PDWORD","NumberOfPages","in"],
      ["PBLOB","PageArray","in"],
      ])

    dll.add_function( 'MapViewOfFile', 'LPVOID',[
      ["HANDLE","hFileMappingObject","in"],
      ["DWORD","dwDesiredAccess","in"],
      ["DWORD","dwFileOffsetHigh","in"],
      ["DWORD","dwFileOffsetLow","in"],
      ["DWORD","dwNumberOfBytesToMap","in"],
      ])

    dll.add_function( 'MapViewOfFileEx', 'LPVOID',[
      ["HANDLE","hFileMappingObject","in"],
      ["DWORD","dwDesiredAccess","in"],
      ["DWORD","dwFileOffsetHigh","in"],
      ["DWORD","dwFileOffsetLow","in"],
      ["DWORD","dwNumberOfBytesToMap","in"],
      ["PBLOB","lpBaseAddress","in"],
      ])

    dll.add_function( 'MoveFileA', 'BOOL',[
      ["PCHAR","lpExistingFileName","in"],
      ["PCHAR","lpNewFileName","in"],
      ])

    dll.add_function( 'MoveFileExA', 'BOOL',[
      ["PCHAR","lpExistingFileName","in"],
      ["PCHAR","lpNewFileName","in"],
      ["DWORD","dwFlags","in"],
      ])

    dll.add_function( 'MoveFileExW', 'BOOL',[
      ["PWCHAR","lpExistingFileName","in"],
      ["PWCHAR","lpNewFileName","in"],
      ["DWORD","dwFlags","in"],
      ])

    dll.add_function( 'MoveFileW', 'BOOL',[
      ["PWCHAR","lpExistingFileName","in"],
      ["PWCHAR","lpNewFileName","in"],
      ])

    dll.add_function( 'MoveFileWithProgressA', 'BOOL',[
      ["PCHAR","lpExistingFileName","in"],
      ["PCHAR","lpNewFileName","in"],
      ["PBLOB","lpProgressRoutine","in"],
      ["PBLOB","lpData","in"],
      ["DWORD","dwFlags","in"],
      ])

    dll.add_function( 'MoveFileWithProgressW', 'BOOL',[
      ["PWCHAR","lpExistingFileName","in"],
      ["PWCHAR","lpNewFileName","in"],
      ["PBLOB","lpProgressRoutine","in"],
      ["PBLOB","lpData","in"],
      ["DWORD","dwFlags","in"],
      ])

    dll.add_function( 'MulDiv', 'DWORD',[
      ["DWORD","nNumber","in"],
      ["DWORD","nNumerator","in"],
      ["DWORD","nDenominator","in"],
      ])

    dll.add_function( 'NeedCurrentDirectoryForExePathA', 'BOOL',[
      ["PCHAR","ExeName","in"],
      ])

    dll.add_function( 'NeedCurrentDirectoryForExePathW', 'BOOL',[
      ["PWCHAR","ExeName","in"],
      ])

    dll.add_function( 'OpenEventA', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["PCHAR","lpName","in"],
      ])

    dll.add_function( 'OpenEventW', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["PWCHAR","lpName","in"],
      ])

    dll.add_function( 'OpenFile', 'DWORD',[
      ["PCHAR","lpFileName","in"],
      ["PBLOB","lpReOpenBuff","inout"],
      ["DWORD","uStyle","in"],
      ])

    dll.add_function( 'OpenFileMappingA', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["PCHAR","lpName","in"],
      ])

    dll.add_function( 'OpenFileMappingW', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["PWCHAR","lpName","in"],
      ])

    dll.add_function( 'OpenJobObjectA', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["PCHAR","lpName","in"],
      ])

    dll.add_function( 'OpenJobObjectW', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["PWCHAR","lpName","in"],
      ])

    dll.add_function( 'OpenMutexA', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["PCHAR","lpName","in"],
      ])

    dll.add_function( 'OpenMutexW', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["PWCHAR","lpName","in"],
      ])

    dll.add_function( 'OpenProcess', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["DWORD","dwProcessId","in"],
      ])

    dll.add_function( 'OpenSemaphoreA', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["PCHAR","lpName","in"],
      ])

    dll.add_function( 'OpenSemaphoreW', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["PWCHAR","lpName","in"],
      ])

    dll.add_function( 'OpenThread', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["DWORD","dwThreadId","in"],
      ])

    dll.add_function( 'OpenWaitableTimerA', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["PCHAR","lpTimerName","in"],
      ])

    dll.add_function( 'OpenWaitableTimerW', 'DWORD',[
      ["DWORD","dwDesiredAccess","in"],
      ["BOOL","bInheritHandle","in"],
      ["PWCHAR","lpTimerName","in"],
      ])

    dll.add_function( 'OutputDebugStringA', 'VOID',[
      ["PCHAR","lpOutputString","in"],
      ])

    dll.add_function( 'OutputDebugStringW', 'VOID',[
      ["PWCHAR","lpOutputString","in"],
      ])

    dll.add_function( 'PeekNamedPipe', 'BOOL',[
      ["HANDLE","hNamedPipe","in"],
      ["PBLOB","lpBuffer","out"],
      ["DWORD","nBufferSize","in"],
      ["PDWORD","lpBytesRead","out"],
      ["PDWORD","lpTotalBytesAvail","out"],
      ["PDWORD","lpBytesLeftThisMessage","out"],
      ])

    dll.add_function( 'PostQueuedCompletionStatus', 'BOOL',[
      ["DWORD","CompletionPort","in"],
      ["DWORD","dwNumberOfBytesTransferred","in"],
      ["PDWORD","dwCompletionKey","in"],
      ["PBLOB","lpOverlapped","in"],
      ])

    dll.add_function( 'PrepareTape', 'DWORD',[
      ["HANDLE","hDevice","in"],
      ["DWORD","dwOperation","in"],
      ["BOOL","bImmediate","in"],
      ])

    dll.add_function( 'ProcessIdToSessionId', 'BOOL',[
      ["DWORD","dwProcessId","in"],
      ["PDWORD","pSessionId","out"],
      ])

    dll.add_function( 'PulseEvent', 'BOOL',[
      ["HANDLE","hEvent","in"],
      ])

    dll.add_function( 'PurgeComm', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["DWORD","dwFlags","in"],
      ])

    dll.add_function( 'QueryActCtxW', 'BOOL',[
      ["DWORD","dwFlags","in"],
      ["HANDLE","hActCtx","in"],
      ["PBLOB","pvSubInstance","in"],
      ["DWORD","ulInfoClass","in"],
      ["PBLOB","pvBuffer","out"],
      ["DWORD","cbBuffer","in"],
      ["PDWORD","pcbWrittenOrRequired","out"],
      ])

    dll.add_function( 'QueryDepthSList', 'WORD',[
      ["PBLOB","ListHead","in"],
      ])

    dll.add_function( 'QueryDosDeviceA', 'DWORD',[
      ["PCHAR","lpDeviceName","in"],
      ["PCHAR","lpTargetPath","out"],
      ["DWORD","ucchMax","in"],
      ])

    dll.add_function( 'QueryDosDeviceW', 'DWORD',[
      ["PWCHAR","lpDeviceName","in"],
      ["PWCHAR","lpTargetPath","out"],
      ["DWORD","ucchMax","in"],
      ])

    dll.add_function( 'QueryInformationJobObject', 'BOOL',[
      ["HANDLE","hJob","in"],
      ["PBLOB","JobObjectInformationClass","in"],
      ["PBLOB","lpJobObjectInformation","out"],
      ["DWORD","cbJobObjectInformationLength","in"],
      ["PDWORD","lpReturnLength","out"],
      ])

    dll.add_function( 'QueryMemoryResourceNotification', 'BOOL',[
      ["DWORD","ResourceNotificationHandle","in"],
      ["PBLOB","ResourceState","out"],
      ])

    dll.add_function( 'QueryPerformanceCounter', 'BOOL',[
      ["PBLOB","lpPerformanceCount","out"],
      ])

    dll.add_function( 'QueryPerformanceFrequency', 'BOOL',[
      ["PBLOB","lpFrequency","out"],
      ])

    dll.add_function( 'QueueUserAPC', 'DWORD',[
      ["PBLOB","pfnAPC","in"],
      ["HANDLE","hThread","in"],
      ["PDWORD","dwData","in"],
      ])

    dll.add_function( 'QueueUserWorkItem', 'BOOL',[
      ["PBLOB","Function","in"],
      ["PBLOB","Context","in"],
      ["DWORD","Flags","in"],
      ])

    dll.add_function( 'RaiseException', 'VOID',[
      ["DWORD","dwExceptionCode","in"],
      ["DWORD","dwExceptionFlags","in"],
      ["DWORD","nNumberOfArguments","in"],
      ["PBLOB","lpArguments","in"],
      ])

    dll.add_function( 'ReOpenFile', 'DWORD',[
      ["HANDLE","hOriginalFile","in"],
      ["DWORD","dwDesiredAccess","in"],
      ["DWORD","dwShareMode","in"],
      ["DWORD","dwFlagsAndAttributes","in"],
      ])

    dll.add_function( 'ReadDirectoryChangesW', 'BOOL',[
      ["HANDLE","hDirectory","in"],
      ["PBLOB","lpBuffer","out"],
      ["DWORD","nBufferLength","in"],
      ["BOOL","bWatchSubtree","in"],
      ["DWORD","dwNotifyFilter","in"],
      ["PDWORD","lpBytesReturned","out"],
      ["PBLOB","lpOverlapped","inout"],
      ["PBLOB","lpCompletionRoutine","in"],
      ])

    dll.add_function( 'ReadFile', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpBuffer","out"],
      ["DWORD","nNumberOfBytesToRead","in"],
      ["PDWORD","lpNumberOfBytesRead","out"],
      ["PBLOB","lpOverlapped","inout"],
      ])

    dll.add_function( 'ReadFileEx', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpBuffer","out"],
      ["DWORD","nNumberOfBytesToRead","in"],
      ["PBLOB","lpOverlapped","inout"],
      ["PBLOB","lpCompletionRoutine","in"],
      ])

    dll.add_function( 'ReadFileScatter', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","aSegmentArray[]","in"],
      ["DWORD","nNumberOfBytesToRead","in"],
      ["PDWORD","lpReserved","inout"],
      ["PBLOB","lpOverlapped","inout"],
      ])

    dll.add_function( 'ReadProcessMemory', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PBLOB","lpBaseAddress","in"],
      ["PBLOB","lpBuffer","out"],
      ["DWORD","nSize","in"],
      ["PDWORD","lpNumberOfBytesRead","out"],
      ])

    dll.add_function( 'RegisterWaitForSingleObject', 'BOOL',[
      ["PDWORD","phNewWaitObject","out"],
      ["HANDLE","hObject","in"],
      ["PBLOB","Callback","in"],
      ["PBLOB","Context","in"],
      ["DWORD","dwMilliseconds","in"],
      ["DWORD","dwFlags","in"],
      ])

    dll.add_function( 'RegisterWaitForSingleObjectEx', 'DWORD',[
      ["HANDLE","hObject","in"],
      ["PBLOB","Callback","in"],
      ["PBLOB","Context","in"],
      ["DWORD","dwMilliseconds","in"],
      ["DWORD","dwFlags","in"],
      ])

    dll.add_function( 'ReleaseActCtx', 'VOID',[
      ["HANDLE","hActCtx","inout"],
      ])

    dll.add_function( 'ReleaseMutex', 'BOOL',[
      ["HANDLE","hMutex","in"],
      ])

    dll.add_function( 'ReleaseSemaphore', 'BOOL',[
      ["HANDLE","hSemaphore","in"],
      ["DWORD","lReleaseCount","in"],
      ["PBLOB","lpPreviousCount","out"],
      ])

    dll.add_function( 'RemoveDirectoryA', 'BOOL',[
      ["PCHAR","lpPathName","in"],
      ])

    dll.add_function( 'RemoveDirectoryW', 'BOOL',[
      ["PWCHAR","lpPathName","in"],
      ])

    dll.add_function( 'RemoveVectoredContinueHandler', 'DWORD',[
      ["PBLOB","Handle","in"],
      ])

    dll.add_function( 'RemoveVectoredExceptionHandler', 'DWORD',[
      ["PBLOB","Handle","in"],
      ])

    dll.add_function( 'ReplaceFileA', 'BOOL',[
      ["PCHAR","lpReplacedFileName","in"],
      ["PCHAR","lpReplacementFileName","in"],
      ["PCHAR","lpBackupFileName","in"],
      ["DWORD","dwReplaceFlags","in"],
      ["PBLOB","lpExclude","inout"],
      ["PBLOB","lpReserved","inout"],
      ])

    dll.add_function( 'ReplaceFileW', 'BOOL',[
      ["PWCHAR","lpReplacedFileName","in"],
      ["PWCHAR","lpReplacementFileName","in"],
      ["PWCHAR","lpBackupFileName","in"],
      ["DWORD","dwReplaceFlags","in"],
      ["PBLOB","lpExclude","inout"],
      ["PBLOB","lpReserved","inout"],
      ])

    dll.add_function( 'RequestDeviceWakeup', 'BOOL',[
      ["HANDLE","hDevice","in"],
      ])

    dll.add_function( 'RequestWakeupLatency', 'BOOL',[
      ["PBLOB","latency","in"],
      ])

    dll.add_function( 'ResetEvent', 'BOOL',[
      ["HANDLE","hEvent","in"],
      ])

    dll.add_function( 'ResetWriteWatch', 'DWORD',[
      ["PBLOB","lpBaseAddress","in"],
      ["DWORD","dwRegionSize","in"],
      ])

    dll.add_function( 'RestoreLastError', 'VOID',[
      ["DWORD","dwErrCode","in"],
      ])

    dll.add_function( 'ResumeThread', 'DWORD',[
      ["HANDLE","hThread","in"],
      ])

    dll.add_function( 'SearchPathA', 'DWORD',[
      ["PCHAR","lpPath","in"],
      ["PCHAR","lpFileName","in"],
      ["PCHAR","lpExtension","in"],
      ["DWORD","nBufferLength","in"],
      ["PCHAR","lpBuffer","out"],
      ["PBLOB","lpFilePart","out"],
      ])

    dll.add_function( 'SearchPathW', 'DWORD',[
      ["PWCHAR","lpPath","in"],
      ["PWCHAR","lpFileName","in"],
      ["PWCHAR","lpExtension","in"],
      ["DWORD","nBufferLength","in"],
      ["PWCHAR","lpBuffer","out"],
      ["PBLOB","lpFilePart","out"],
      ])

    dll.add_function( 'SetCommBreak', 'BOOL',[
      ["HANDLE","hFile","in"],
      ])

    dll.add_function( 'SetCommConfig', 'BOOL',[
      ["HANDLE","hCommDev","in"],
      ["PBLOB","lpCC","in"],
      ["DWORD","dwSize","in"],
      ])

    dll.add_function( 'SetCommMask', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["DWORD","dwEvtMask","in"],
      ])

    dll.add_function( 'SetCommState', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpDCB","in"],
      ])

    dll.add_function( 'SetCommTimeouts', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpCommTimeouts","in"],
      ])

    dll.add_function( 'SetComputerNameA', 'BOOL',[
      ["PCHAR","lpComputerName","in"],
      ])

    dll.add_function( 'SetComputerNameExA', 'BOOL',[
      ["DWORD","NameType","in"],
      ["PCHAR","lpBuffer","in"],
      ])

    dll.add_function( 'SetComputerNameExW', 'BOOL',[
      ["DWORD","NameType","in"],
      ["PWCHAR","lpBuffer","in"],
      ])

    dll.add_function( 'SetComputerNameW', 'BOOL',[
      ["PWCHAR","lpComputerName","in"],
      ])

    dll.add_function( 'SetCriticalSectionSpinCount', 'DWORD',[
      ["PBLOB","lpCriticalSection","inout"],
      ["DWORD","dwSpinCount","in"],
      ])

    dll.add_function( 'SetCurrentDirectoryA', 'BOOL',[
      ["PCHAR","lpPathName","in"],
      ])

    dll.add_function( 'SetCurrentDirectoryW', 'BOOL',[
      ["PWCHAR","lpPathName","in"],
      ])

    dll.add_function( 'SetDefaultCommConfigA', 'BOOL',[
      ["PCHAR","lpszName","in"],
      ["PBLOB","lpCC","in"],
      ["DWORD","dwSize","in"],
      ])

    dll.add_function( 'SetDefaultCommConfigW', 'BOOL',[
      ["PWCHAR","lpszName","in"],
      ["PBLOB","lpCC","in"],
      ["DWORD","dwSize","in"],
      ])

    dll.add_function( 'SetDllDirectoryA', 'BOOL',[
      ["PCHAR","lpPathName","in"],
      ])

    dll.add_function( 'SetDllDirectoryW', 'BOOL',[
      ["PWCHAR","lpPathName","in"],
      ])

    dll.add_function( 'SetEndOfFile', 'BOOL',[
      ["HANDLE","hFile","in"],
      ])

    dll.add_function( 'SetEnvironmentStringsA', 'BOOL',[
      ["PBLOB","NewEnvironment","in"],
      ])

    dll.add_function( 'SetEnvironmentStringsW', 'BOOL',[
      ["PBLOB","NewEnvironment","in"],
      ])

    dll.add_function( 'SetEnvironmentVariableA', 'BOOL',[
      ["PCHAR","lpName","in"],
      ["PCHAR","lpValue","in"],
      ])

    dll.add_function( 'SetEnvironmentVariableW', 'BOOL',[
      ["PWCHAR","lpName","in"],
      ["PWCHAR","lpValue","in"],
      ])

    dll.add_function( 'SetErrorMode', 'DWORD',[
      ["DWORD","uMode","in"],
      ])

    dll.add_function( 'SetEvent', 'BOOL',[
      ["HANDLE","hEvent","in"],
      ])

    dll.add_function( 'SetFileApisToANSI', 'VOID',[
      ])

    dll.add_function( 'SetFileApisToOEM', 'VOID',[
      ])

    dll.add_function( 'SetFileAttributesA', 'BOOL',[
      ["PCHAR","lpFileName","in"],
      ["DWORD","dwFileAttributes","in"],
      ])

    dll.add_function( 'SetFileAttributesW', 'BOOL',[
      ["PWCHAR","lpFileName","in"],
      ["DWORD","dwFileAttributes","in"],
      ])

    dll.add_function( 'SetFilePointer', 'DWORD',[
      ["HANDLE","hFile","in"],
      ["DWORD","lDistanceToMove","in"],
      ["PDWORD","lpDistanceToMoveHigh","in"],
      ["DWORD","dwMoveMethod","in"],
      ])

    dll.add_function( 'SetFilePointerEx', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","liDistanceToMove","in"],
      ["PBLOB","lpNewFilePointer","out"],
      ["DWORD","dwMoveMethod","in"],
      ])

    dll.add_function( 'SetFileShortNameA', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PCHAR","lpShortName","in"],
      ])

    dll.add_function( 'SetFileShortNameW', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PWCHAR","lpShortName","in"],
      ])

    dll.add_function( 'SetFileTime', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpCreationTime","in"],
      ["PBLOB","lpLastAccessTime","in"],
      ["PBLOB","lpLastWriteTime","in"],
      ])

    dll.add_function( 'SetFileValidData', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","ValidDataLength","in"],
      ])

    dll.add_function( 'SetFirmwareEnvironmentVariableA', 'BOOL',[
      ["PCHAR","lpName","in"],
      ["PCHAR","lpGuid","in"],
      ["PBLOB","pValue","in"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'SetFirmwareEnvironmentVariableW', 'BOOL',[
      ["PWCHAR","lpName","in"],
      ["PWCHAR","lpGuid","in"],
      ["PBLOB","pValue","in"],
      ["DWORD","nSize","in"],
      ])

    dll.add_function( 'SetHandleCount', 'DWORD',[
      ["DWORD","uNumber","in"],
      ])

    dll.add_function( 'SetHandleInformation', 'BOOL',[
      ["HANDLE","hObject","in"],
      ["DWORD","dwMask","in"],
      ["DWORD","dwFlags","in"],
      ])

    dll.add_function( 'SetInformationJobObject', 'BOOL',[
      ["HANDLE","hJob","in"],
      ["PBLOB","JobObjectInformationClass","in"],
      ["PBLOB","lpJobObjectInformation","in"],
      ["DWORD","cbJobObjectInformationLength","in"],
      ])

    dll.add_function( 'SetLastError', 'VOID',[
      ["DWORD","dwErrCode","in"],
      ])

    dll.add_function( 'SetLocalTime', 'BOOL',[
      ["PBLOB","lpSystemTime","in"],
      ])

    dll.add_function( 'SetMailslotInfo', 'BOOL',[
      ["HANDLE","hMailslot","in"],
      ["DWORD","lReadTimeout","in"],
      ])

    dll.add_function( 'SetMessageWaitingIndicator', 'BOOL',[
      ["HANDLE","hMsgIndicator","in"],
      ["DWORD","ulMsgCount","in"],
      ])

    dll.add_function( 'SetNamedPipeHandleState', 'BOOL',[
      ["HANDLE","hNamedPipe","in"],
      ["PDWORD","lpMode","in"],
      ["PDWORD","lpMaxCollectionCount","in"],
      ["PDWORD","lpCollectDataTimeout","in"],
      ])

    dll.add_function( 'SetPriorityClass', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["DWORD","dwPriorityClass","in"],
      ])

    dll.add_function( 'SetProcessAffinityMask', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["PDWORD","dwProcessAffinityMask","in"],
      ])

    dll.add_function( 'SetProcessPriorityBoost', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["BOOL","bDisablePriorityBoost","in"],
      ])

    dll.add_function( 'SetProcessShutdownParameters', 'BOOL',[
      ["DWORD","dwLevel","in"],
      ["DWORD","dwFlags","in"],
      ])

    dll.add_function( 'SetProcessWorkingSetSize', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["DWORD","dwMinimumWorkingSetSize","in"],
      ["DWORD","dwMaximumWorkingSetSize","in"],
      ])

    dll.add_function( 'SetProcessWorkingSetSizeEx', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["DWORD","dwMinimumWorkingSetSize","in"],
      ["DWORD","dwMaximumWorkingSetSize","in"],
      ["DWORD","Flags","in"],
      ])

    dll.add_function( 'SetStdHandle', 'BOOL',[
      ["DWORD","nStdHandle","in"],
      ["HANDLE","hHandle","in"],
      ])

    dll.add_function( 'SetSystemFileCacheSize', 'BOOL',[
      ["DWORD","MinimumFileCacheSize","in"],
      ["DWORD","MaximumFileCacheSize","in"],
      ["DWORD","Flags","in"],
      ])

    dll.add_function( 'SetSystemPowerState', 'BOOL',[
      ["BOOL","fSuspend","in"],
      ["BOOL","fForce","in"],
      ])

    dll.add_function( 'SetSystemTime', 'BOOL',[
      ["PBLOB","lpSystemTime","in"],
      ])

    dll.add_function( 'SetSystemTimeAdjustment', 'BOOL',[
      ["DWORD","dwTimeAdjustment","in"],
      ["BOOL","bTimeAdjustmentDisabled","in"],
      ])

    dll.add_function( 'SetTapeParameters', 'DWORD',[
      ["HANDLE","hDevice","in"],
      ["DWORD","dwOperation","in"],
      ["PBLOB","lpTapeInformation","in"],
      ])

    dll.add_function( 'SetTapePosition', 'DWORD',[
      ["HANDLE","hDevice","in"],
      ["DWORD","dwPositionMethod","in"],
      ["DWORD","dwPartition","in"],
      ["DWORD","dwOffsetLow","in"],
      ["DWORD","dwOffsetHigh","in"],
      ["BOOL","bImmediate","in"],
      ])

    #dll.add_function( 'SetThreadAffinityMask', 'PDWORD',[
    #	["HANDLE","hThread","in"],
    #	["PDWORD","dwThreadAffinityMask","in"],
    #	])

    dll.add_function( 'SetThreadContext', 'BOOL',[
      ["HANDLE","hThread","in"],
      ["PBLOB","lpContext","in"],
      ])

    dll.add_function( 'SetThreadExecutionState', 'DWORD',[
      ["DWORD","esFlags","in"],
      ])

    dll.add_function( 'SetThreadIdealProcessor', 'DWORD',[
      ["HANDLE","hThread","in"],
      ["DWORD","dwIdealProcessor","in"],
      ])

    dll.add_function( 'SetThreadPriority', 'BOOL',[
      ["HANDLE","hThread","in"],
      ["DWORD","nPriority","in"],
      ])

    dll.add_function( 'SetThreadPriorityBoost', 'BOOL',[
      ["HANDLE","hThread","in"],
      ["BOOL","bDisablePriorityBoost","in"],
      ])

    dll.add_function( 'SetThreadStackGuarantee', 'BOOL',[
      ["PDWORD","StackSizeInBytes","inout"],
      ])

    dll.add_function( 'SetTimeZoneInformation', 'BOOL',[
      ["PBLOB","lpTimeZoneInformation","in"],
      ])

    dll.add_function( 'SetTimerQueueTimer', 'DWORD',[
      ["DWORD","TimerQueue","in"],
      ["PBLOB","Callback","in"],
      ["PBLOB","Parameter","in"],
      ["DWORD","DueTime","in"],
      ["DWORD","Period","in"],
      ["BOOL","PreferIo","in"],
      ])

    dll.add_function( 'SetUnhandledExceptionFilter', 'LPVOID',[
      ["PBLOB","lpTopLevelExceptionFilter","in"],
      ])

    dll.add_function( 'SetVolumeLabelA', 'BOOL',[
      ["PCHAR","lpRootPathName","in"],
      ["PCHAR","lpVolumeName","in"],
      ])

    dll.add_function( 'SetVolumeLabelW', 'BOOL',[
      ["PWCHAR","lpRootPathName","in"],
      ["PWCHAR","lpVolumeName","in"],
      ])

    dll.add_function( 'SetVolumeMountPointA', 'BOOL',[
      ["PCHAR","lpszVolumeMountPoint","in"],
      ["PCHAR","lpszVolumeName","in"],
      ])

    dll.add_function( 'SetVolumeMountPointW', 'BOOL',[
      ["PWCHAR","lpszVolumeMountPoint","in"],
      ["PWCHAR","lpszVolumeName","in"],
      ])

    dll.add_function( 'SetWaitableTimer', 'BOOL',[
      ["HANDLE","hTimer","in"],
      ["PBLOB","lpDueTime","in"],
      ["DWORD","lPeriod","in"],
      ["PBLOB","pfnCompletionRoutine","in"],
      ["PBLOB","lpArgToCompletionRoutine","in"],
      ["BOOL","fResume","in"],
      ])

    dll.add_function( 'SetupComm', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["DWORD","dwInQueue","in"],
      ["DWORD","dwOutQueue","in"],
      ])

    dll.add_function( 'SignalObjectAndWait', 'DWORD',[
      ["HANDLE","hObjectToSignal","in"],
      ["HANDLE","hObjectToWaitOn","in"],
      ["DWORD","dwMilliseconds","in"],
      ["BOOL","bAlertable","in"],
      ])

    dll.add_function( 'SizeofResource', 'DWORD',[
      ["HANDLE","hModule","in"],
      ["HANDLE","hResInfo","in"],
      ])

    dll.add_function( 'Sleep', 'VOID',[
      ["DWORD","dwMilliseconds","in"],
      ])

    dll.add_function( 'SleepEx', 'DWORD',[
      ["DWORD","dwMilliseconds","in"],
      ["BOOL","bAlertable","in"],
      ])

    dll.add_function( 'SuspendThread', 'DWORD',[
      ["HANDLE","hThread","in"],
      ])

    dll.add_function( 'SwitchToFiber', 'VOID',[
      ["PBLOB","lpFiber","in"],
      ])

    dll.add_function( 'SwitchToThread', 'BOOL',[
      ])

    dll.add_function( 'SystemTimeToFileTime', 'BOOL',[
      ["PBLOB","lpSystemTime","in"],
      ["PBLOB","lpFileTime","out"],
      ])

    dll.add_function( 'SystemTimeToTzSpecificLocalTime', 'BOOL',[
      ["PBLOB","lpTimeZoneInformation","in"],
      ["PBLOB","lpUniversalTime","in"],
      ["PBLOB","lpLocalTime","out"],
      ])

    dll.add_function( 'TerminateJobObject', 'BOOL',[
      ["HANDLE","hJob","in"],
      ["DWORD","uExitCode","in"],
      ])

    dll.add_function( 'TerminateProcess', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["DWORD","uExitCode","in"],
      ])

    dll.add_function( 'TerminateThread', 'BOOL',[
      ["HANDLE","hThread","in"],
      ["DWORD","dwExitCode","in"],
      ])

    dll.add_function( 'TlsAlloc', 'DWORD',[
      ])

    dll.add_function( 'TlsFree', 'BOOL',[
      ["DWORD","dwTlsIndex","in"],
      ])

    dll.add_function( 'TlsGetValue', 'LPVOID',[
      ["DWORD","dwTlsIndex","in"],
      ])

    dll.add_function( 'TlsSetValue', 'BOOL',[
      ["DWORD","dwTlsIndex","in"],
      ["PBLOB","lpTlsValue","in"],
      ])

    dll.add_function( 'TransactNamedPipe', 'BOOL',[
      ["HANDLE","hNamedPipe","in"],
      ["PBLOB","lpInBuffer","in"],
      ["DWORD","nInBufferSize","in"],
      ["PBLOB","lpOutBuffer","out"],
      ["DWORD","nOutBufferSize","in"],
      ["PDWORD","lpBytesRead","out"],
      ["PBLOB","lpOverlapped","inout"],
      ])

    dll.add_function( 'TransmitCommChar', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["BYTE","cChar","in"],
      ])

    dll.add_function( 'TryEnterCriticalSection', 'BOOL',[
      ["PBLOB","lpCriticalSection","inout"],
      ])

    dll.add_function( 'TzSpecificLocalTimeToSystemTime', 'BOOL',[
      ["PBLOB","lpTimeZoneInformation","in"],
      ["PBLOB","lpLocalTime","in"],
      ["PBLOB","lpUniversalTime","out"],
      ])

    dll.add_function( 'UnhandledExceptionFilter', 'DWORD',[
      ["PBLOB","ExceptionInfo","in"],
      ])

    dll.add_function( 'UnlockFile', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["DWORD","dwFileOffsetLow","in"],
      ["DWORD","dwFileOffsetHigh","in"],
      ["DWORD","nNumberOfBytesToUnlockLow","in"],
      ["DWORD","nNumberOfBytesToUnlockHigh","in"],
      ])

    dll.add_function( 'UnlockFileEx', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["DWORD","dwReserved","inout"],
      ["DWORD","nNumberOfBytesToUnlockLow","in"],
      ["DWORD","nNumberOfBytesToUnlockHigh","in"],
      ["PBLOB","lpOverlapped","inout"],
      ])

    dll.add_function( 'UnmapViewOfFile', 'BOOL',[
      ["PBLOB","lpBaseAddress","in"],
      ])

    dll.add_function( 'UnregisterWait', 'BOOL',[
      ["DWORD","WaitHandle","in"],
      ])

    dll.add_function( 'UnregisterWaitEx', 'BOOL',[
      ["DWORD","WaitHandle","in"],
      ["DWORD","CompletionEvent","in"],
      ])

    dll.add_function( 'UpdateResourceA', 'BOOL',[
      ["HANDLE","hUpdate","in"],
      ["PCHAR","lpType","in"],
      ["PCHAR","lpName","in"],
      ["WORD","wLanguage","in"],
      ["PBLOB","lpData","in"],
      ["DWORD","cb","in"],
      ])

    dll.add_function( 'UpdateResourceW', 'BOOL',[
      ["HANDLE","hUpdate","in"],
      ["PWCHAR","lpType","in"],
      ["PWCHAR","lpName","in"],
      ["WORD","wLanguage","in"],
      ["PBLOB","lpData","in"],
      ["DWORD","cb","in"],
      ])

    dll.add_function( 'VerifyVersionInfoA', 'BOOL',[
      ["PBLOB","lpVersionInformation","inout"],
      ["DWORD","dwTypeMask","in"],
      ["PBLOB","dwlConditionMask","in"],
      ])

    dll.add_function( 'VerifyVersionInfoW', 'BOOL',[
      ["PBLOB","lpVersionInformation","inout"],
      ["DWORD","dwTypeMask","in"],
      ["PBLOB","dwlConditionMask","in"],
      ])

    dll.add_function( 'VirtualAlloc', 'LPVOID',[
      ["LPVOID","lpAddress","in"],
      ["DWORD","dwSize","in"],
      ["DWORD","flAllocationType","in"],
      ["DWORD","flProtect","in"],
      ])

    dll.add_function( 'VirtualAllocEx', 'LPVOID',[
      ["HANDLE","hProcess","in"],
      ["LPVOID","lpAddress","in"],
      ["DWORD","dwSize","in"],
      ["DWORD","flAllocationType","in"],
      ["DWORD","flProtect","in"],
      ])

    dll.add_function( 'VirtualFree', 'BOOL',[
      ["LPVOID","lpAddress","in"],
      ["DWORD","dwSize","in"],
      ["DWORD","dwFreeType","in"],
      ])

    dll.add_function( 'VirtualFreeEx', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["LPVOID","lpAddress","in"],
      ["DWORD","dwSize","in"],
      ["DWORD","dwFreeType","in"],
      ])

    dll.add_function( 'VirtualLock', 'BOOL',[
      ["LPVOID","lpAddress","in"],
      ["DWORD","dwSize","in"],
      ])

    dll.add_function( 'VirtualProtect', 'BOOL',[
      ["LPVOID","lpAddress","in"],
      ["DWORD","dwSize","in"],
      ["DWORD","flNewProtect","in"],
      ["PDWORD","lpflOldProtect","out"],
      ])

    dll.add_function( 'VirtualProtectEx', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["LPVOID","lpAddress","in"],
      ["DWORD","dwSize","in"],
      ["DWORD","flNewProtect","in"],
      ["PDWORD","lpflOldProtect","out"],
      ])

    dll.add_function( 'VirtualQuery', 'DWORD',[
      ["LPVOID","lpAddress","in"],
      ["PBLOB","lpBuffer","out"],
      ["DWORD","dwLength","in"],
      ])

    dll.add_function( 'VirtualQueryEx', 'DWORD',[
      ["HANDLE","hProcess","in"],
      ["LPVOID","lpAddress","in"],
      ["PBLOB","lpBuffer","out"],
      ["DWORD","dwLength","in"],
      ])

    dll.add_function( 'VirtualUnlock', 'BOOL',[
      ["LPVOID","lpAddress","in"],
      ["DWORD","dwSize","in"],
      ])

    dll.add_function( 'WTSGetActiveConsoleSessionId', 'DWORD',[
      ])

    dll.add_function( 'WaitCommEvent', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PDWORD","lpEvtMask","inout"],
      ["PBLOB","lpOverlapped","inout"],
      ])

    dll.add_function( 'WaitForDebugEvent', 'BOOL',[
      ["PBLOB","lpDebugEvent","in"],
      ["DWORD","dwMilliseconds","in"],
      ])

    dll.add_function( 'WaitForMultipleObjects', 'DWORD',[
      ["DWORD","nCount","in"],
      ["PDWORD","lpHandles","in"],
      ["BOOL","bWaitAll","in"],
      ["DWORD","dwMilliseconds","in"],
      ])

    dll.add_function( 'WaitForMultipleObjectsEx', 'DWORD',[
      ["DWORD","nCount","in"],
      ["PDWORD","lpHandles","in"],
      ["BOOL","bWaitAll","in"],
      ["DWORD","dwMilliseconds","in"],
      ["BOOL","bAlertable","in"],
      ])

    dll.add_function( 'WaitForSingleObject', 'DWORD',[
      ["HANDLE","hHandle","in"],
      ["DWORD","dwMilliseconds","in"],
      ])

    dll.add_function( 'WaitForSingleObjectEx', 'DWORD',[
      ["HANDLE","hHandle","in"],
      ["DWORD","dwMilliseconds","in"],
      ["BOOL","bAlertable","in"],
      ])

    dll.add_function( 'WaitNamedPipeA', 'BOOL',[
      ["PCHAR","lpNamedPipeName","in"],
      ["DWORD","nTimeOut","in"],
      ])

    dll.add_function( 'WaitNamedPipeW', 'BOOL',[
      ["PWCHAR","lpNamedPipeName","in"],
      ["DWORD","nTimeOut","in"],
      ])

    dll.add_function( 'WinExec', 'DWORD',[
      ["PCHAR","lpCmdLine","in"],
      ["DWORD","uCmdShow","in"],
      ])

    dll.add_function( 'Wow64DisableWow64FsRedirection', 'BOOL',[
      ["PBLOB","OldValue","out"],
      ])

    dll.add_function( 'Wow64EnableWow64FsRedirection', 'BOOL',[
      ["BOOL","Wow64FsEnableRedirection","in"],
      ])

    dll.add_function( 'Wow64RevertWow64FsRedirection', 'BOOL',[
      ["PBLOB","OlValue","in"],
      ])

    dll.add_function( 'WriteFile', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpBuffer","in"],
      ["DWORD","nNumberOfBytesToWrite","in"],
      ["PDWORD","lpNumberOfBytesWritten","out"],
      ["PBLOB","lpOverlapped","inout"],
      ])

    dll.add_function( 'WriteFileEx', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpBuffer","in"],
      ["DWORD","nNumberOfBytesToWrite","in"],
      ["PBLOB","lpOverlapped","inout"],
      ["PBLOB","lpCompletionRoutine","in"],
      ])

    dll.add_function( 'WriteFileGather', 'BOOL',[
      ["HANDLE","hFile","in"],
      ["PBLOB","aSegmentArray[]","in"],
      ["DWORD","nNumberOfBytesToWrite","in"],
      ["PDWORD","lpReserved","inout"],
      ["PBLOB","lpOverlapped","inout"],
      ])

    dll.add_function( 'WritePrivateProfileSectionA', 'BOOL',[
      ["PCHAR","lpAppName","in"],
      ["PCHAR","lpString","in"],
      ["PCHAR","lpFileName","in"],
      ])

    dll.add_function( 'WritePrivateProfileSectionW', 'BOOL',[
      ["PWCHAR","lpAppName","in"],
      ["PWCHAR","lpString","in"],
      ["PWCHAR","lpFileName","in"],
      ])

    dll.add_function( 'WritePrivateProfileStringA', 'BOOL',[
      ["PCHAR","lpAppName","in"],
      ["PCHAR","lpKeyName","in"],
      ["PCHAR","lpString","in"],
      ["PCHAR","lpFileName","in"],
      ])

    dll.add_function( 'WritePrivateProfileStringW', 'BOOL',[
      ["PWCHAR","lpAppName","in"],
      ["PWCHAR","lpKeyName","in"],
      ["PWCHAR","lpString","in"],
      ["PWCHAR","lpFileName","in"],
      ])

    dll.add_function( 'WritePrivateProfileStructA', 'BOOL',[
      ["PCHAR","lpszSection","in"],
      ["PCHAR","lpszKey","in"],
      ["PBLOB","lpStruct","in"],
      ["DWORD","uSizeStruct","in"],
      ["PCHAR","szFile","in"],
      ])

    dll.add_function( 'WritePrivateProfileStructW', 'BOOL',[
      ["PWCHAR","lpszSection","in"],
      ["PWCHAR","lpszKey","in"],
      ["PBLOB","lpStruct","in"],
      ["DWORD","uSizeStruct","in"],
      ["PWCHAR","szFile","in"],
      ])

    dll.add_function( 'WriteProcessMemory', 'BOOL',[
      ["HANDLE","hProcess","in"],
      ["LPVOID","lpBaseAddress","in"],
      ["PBLOB","lpBuffer","in"],
      ["DWORD","nSize","in"],
      ["PDWORD","lpNumberOfBytesWritten","out"],
      ])

    dll.add_function( 'WriteProfileSectionA', 'BOOL',[
      ["PCHAR","lpAppName","in"],
      ["PCHAR","lpString","in"],
      ])

    dll.add_function( 'WriteProfileSectionW', 'BOOL',[
      ["PWCHAR","lpAppName","in"],
      ["PWCHAR","lpString","in"],
      ])

    dll.add_function( 'WriteProfileStringA', 'BOOL',[
      ["PCHAR","lpAppName","in"],
      ["PCHAR","lpKeyName","in"],
      ["PCHAR","lpString","in"],
      ])

    dll.add_function( 'WriteProfileStringW', 'BOOL',[
      ["PWCHAR","lpAppName","in"],
      ["PWCHAR","lpKeyName","in"],
      ["PWCHAR","lpString","in"],
      ])

    dll.add_function( 'WriteTapemark', 'DWORD',[
      ["HANDLE","hDevice","in"],
      ["DWORD","dwTapemarkType","in"],
      ["DWORD","dwTapemarkCount","in"],
      ["BOOL","bImmediate","in"],
      ])

    dll.add_function( 'ZombifyActCtx', 'BOOL',[
      ["HANDLE","hActCtx","inout"],
      ])

    dll.add_function( '_hread', 'DWORD',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpBuffer","out"],
      ["DWORD","lBytes","in"],
      ])

    dll.add_function( '_hwrite', 'DWORD',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpBuffer","in"],
      ["DWORD","lBytes","in"],
      ])

    dll.add_function( '_lclose', 'DWORD',[
      ["HANDLE","hFile","in"],
      ])

    dll.add_function( '_lcreat', 'DWORD',[
      ["PCHAR","lpPathName","in"],
      ["DWORD","iAttribute","in"],
      ])

    dll.add_function( '_llseek', 'DWORD',[
      ["HANDLE","hFile","in"],
      ["DWORD","lOffset","in"],
      ["DWORD","iOrigin","in"],
      ])

    dll.add_function( '_lopen', 'DWORD',[
      ["PCHAR","lpPathName","in"],
      ["DWORD","iReadWrite","in"],
      ])

    dll.add_function( '_lread', 'DWORD',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpBuffer","out"],
      ["DWORD","uBytes","in"],
      ])

    dll.add_function( '_lwrite', 'DWORD',[
      ["HANDLE","hFile","in"],
      ["PBLOB","lpBuffer","in"],
      ["DWORD","uBytes","in"],
      ])

    #dll.add_function( 'lstrcatA', 'PCHAR',[
    #	["PCHAR","lpString1","inout"],
    #	["PCHAR","lpString2","in"],
    #	])

    #dll.add_function( 'lstrcatW', 'PWCHAR',[
    #	["PWCHAR","lpString1","inout"],
    #	["PWCHAR","lpString2","in"],
    #	])

    dll.add_function( 'lstrcmpA', 'DWORD',[
      ["PCHAR","lpString1","in"],
      ["PCHAR","lpString2","in"],
      ])

    dll.add_function( 'lstrcmpW', 'DWORD',[
      ["PWCHAR","lpString1","in"],
      ["PWCHAR","lpString2","in"],
      ])

    dll.add_function( 'lstrcmpiA', 'DWORD',[
      ["PCHAR","lpString1","in"],
      ["PCHAR","lpString2","in"],
      ])

    dll.add_function( 'lstrcmpiW', 'DWORD',[
      ["PWCHAR","lpString1","in"],
      ["PWCHAR","lpString2","in"],
      ])

    #dll.add_function( 'lstrcpyA', 'PCHAR',[
    #	["PCHAR","lpString1","out"],
    #	["PCHAR","lpString2","in"],
    #	])

    #dll.add_function( 'lstrcpyW', 'PWCHAR',[
    #	["PWCHAR","lpString1","out"],
    #	["PWCHAR","lpString2","in"],
    #	])

    #dll.add_function( 'lstrcpynA', 'PCHAR',[
    #	["PCHAR","lpString1","out"],
    #	["PCHAR","lpString2","in"],
    #	["DWORD","iMaxLength","in"],
    #	])

    #dll.add_function( 'lstrcpynW', 'PWCHAR',[
    #	["PWCHAR","lpString1","out"],
    #	["PWCHAR","lpString2","in"],
    #	["DWORD","iMaxLength","in"],
    #	])

    dll.add_function( 'lstrlenA', 'DWORD',[
      ["LPVOID","lpString","in"],
      ])

    dll.add_function( 'lstrlenW', 'DWORD',[
      ["LPVOID","lpString","in"],
      ])


    dll.add_function('CreateToolhelp32Snapshot', 'DWORD',[
      ["DWORD","dwFlags","in"],
      ["DWORD","th32ProcessID","in"],
      ])

    dll.add_function('Heap32First', 'BOOL',[
      ["PBLOB","lphe","inout"],
      ["DWORD","th32ProcessID","in"],
      ["PDWORD","th32HeapID","inout"],
      ])

    dll.add_function('Heap32ListFirst', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lphl","inout"],
      ])

    dll.add_function('Heap32ListNext', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lphl","inout"],
      ])

    dll.add_function('Heap32Next', 'BOOL',[
      ["PBLOB","lphe","inout"],
      ])

    dll.add_function('Module32First', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lpme","inout"],
      ])

    dll.add_function('Module32FirstW', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lpme","inout"],
      ])

    dll.add_function('Module32Next', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lpme","inout"],
      ])

    dll.add_function('Module32NextW', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lpme","inout"],
      ])

    dll.add_function('Process32First', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lppe","inout"],
      ])

    dll.add_function('Process32FirstW', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lppe","inout"],
      ])

    dll.add_function('Process32Next', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lppe","inout"],
      ])

    dll.add_function('Process32NextW', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lppe","inout"],
      ])

    dll.add_function('Thread32First', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lpte","inout"],
      ])

    dll.add_function('Thread32Next', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lpte","inout"],
      ])

    dll.add_function('Toolhelp32ReadProcessMemory', 'BOOL',[
      ["DWORD","th32ProcessID","in"],
      ["PBLOB","lpBaseAddress","inout"],
      ["PBLOB","lpBuffer","inout"],
      ["DWORD","cbRead","in"],
      ["PSIZE_T","lpNumberOfBytesRead","in"],
      ])

    dll.add_function('CreateToolhelp32Snapshot', 'DWORD',[
      ["DWORD","dwFlags","in"],
      ["DWORD","th32ProcessID","in"],
      ])

    dll.add_function('Heap32First', 'BOOL',[
      ["PBLOB","lphe","inout"],
      ["DWORD","th32ProcessID","in"],
      ["PDWORD","th32HeapID","inout"],
      ])

    dll.add_function('Heap32ListFirst', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lphl","inout"],
      ])

    dll.add_function('Heap32ListNext', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lphl","inout"],
      ])

    dll.add_function('Heap32Next', 'BOOL',[
      ["PBLOB","lphe","inout"],
      ])

    dll.add_function('Module32First', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lpme","inout"],
      ])

    dll.add_function('Module32FirstW', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lpme","inout"],
      ])

    dll.add_function('Module32Next', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lpme","inout"],
      ])

    dll.add_function('Module32NextW', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lpme","inout"],
      ])

    dll.add_function('Process32First', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lppe","inout"],
      ])

    dll.add_function('Process32FirstW', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lppe","inout"],
      ])

    dll.add_function('Process32Next', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lppe","inout"],
      ])

    dll.add_function('Process32NextW', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lppe","inout"],
      ])

    dll.add_function('Thread32First', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lpte","inout"],
      ])

    dll.add_function('Thread32Next', 'BOOL',[
      ["DWORD","hSnapshot","in"],
      ["PBLOB","lpte","inout"],
      ])

    dll.add_function('Toolhelp32ReadProcessMemory', 'BOOL',[
      ["DWORD","th32ProcessID","in"],
      ["PBLOB","lpBaseAddress","inout"],
      ["PBLOB","lpBuffer","inout"],
      ["DWORD","cbRead","in"],
      ["PSIZE_T","lpNumberOfBytesRead","in"],
      ])

    return dll
  end

end

end; end; end; end; end; end; end


