## com.sun.jna.platform.win32
Interface Kernel32

All Superinterfaces:
  com.sun.jna.AltCallingConvention, com.sun.jna.Library, com.sun.jna.win32.StdCall, com.sun.jna.win32.StdCallLibrary, W32API

    public interface Kernel32

extends W32API

Definition (incomplete) of `kernel32.dll`.

Nested Class Summary
`static interface` `Kernel32.OVERLAPPED_COMPLETION_ROUTINE`

Nested classes/interfaces inherited from interface com.sun.jna.platform.win32.W32API
`W32API.DWORD, W32API.HANDLE, W32API.HANDLEByReference, W32API.HBITMAP, W32API.HDC, W32API.HICON, W32API.HINSTANCE, W32API.HMODULE, W32API.HRESULT, W32API.HRGN, W32API.HWND, W32API.LONG, W32API.LONG_PTR, W32API.LPARAM, W32API.LRESULT, W32API.SIZE_T, W32API.SSIZE_T, W32API.UINT_PTR, W32API.ULONG_PTR, W32API.WORD, W32API.WPARAM`

Nested classes/interfaces inherited from interface com.sun.jna.win32.StdCallLibrary
`com.sun.jna.win32.StdCallLibrary.StdCallCallback`

Nested classes/interfaces inherited from interface com.sun.jna.Library
`com.sun.jna.Library.Handler`

Field Summary
`static Kernel32` `INSTANCE`

Fields inherited from interface com.sun.jna.platform.win32.W32API
`HWND_BROADCAST, INVALID_HANDLE_VALUE`

Fields inherited from interface com.sun.jna.win32.StdCallLibrary
`FUNCTION_MAPPER, STDCALL_CONVENTION`

Fields inherited from interface com.sun.jna.Library
`OPTION_ALLOW_OBJECTS, OPTION_CALLING_CONVENTION, OPTION_FUNCTION_MAPPER, OPTION_INVOCATION_MAPPER, OPTION_STRUCTURE_ALIGNMENT, OPTION_TYPE_MAPPER`

Method Summary
`boolean` `CloseHandle(W32API.HANDLE hObject)` The CloseHandle function closes an open object handle.
`boolean` `CreateDirectory(java.lang.String lpPathName, WinNT.SECURITY_ATTRIBUTES lpSecurityAttributes)` The CreateDirectory function creates a new directory.
`W32API.HANDLE` `CreateEvent(WinNT.SECURITY_ATTRIBUTES lpEventAttributes, boolean bManualReset, boolean bInitialState, java.lang.String lpName)`
`W32API.HANDLE` `CreateFile(java.lang.String lpFileName, int dwDesiredAccess, int dwShareMode, WinNT.SECURITY_ATTRIBUTES lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, W32API.HANDLE hTemplateFile)` The CreateFile function creates or opens a file, file stream, directory, physical disk, volume, console buffer, tape drive, communications resource, mailslot, or named pipe.
`W32API.HANDLE` `CreateFileMapping(W32API.HANDLE hFile, WinNT.SECURITY_ATTRIBUTES lpAttributes, int flProtect, int dwMaximumSizeHigh, int dwMaximumSizeLow, java.lang.String lpName)`
`W32API.HANDLE` `CreateIoCompletionPort(W32API.HANDLE FileHandle, W32API.HANDLE ExistingCompletionPort, com.sun.jna.Pointer CompletionKey, int NumberOfConcurrentThreads)`
`boolean` `DuplicateHandle(W32API.HANDLE hSourceProcessHandle, W32API.HANDLE hSourceHandle, W32API.HANDLE hTargetProcessHandle, W32API.HANDLEByReference lpTargetHandle, int dwDesiredAccess, boolean bInheritHandle, int dwOptions)` The DuplicateHandle function duplicates an object handle.
`int` `FormatMessage(int dwFlags, com.sun.jna.Pointer lpSource, int dwMessageId, int dwLanguageId, java.nio.Buffer lpBuffer, int nSize, com.sun.jna.Pointer va_list)` The FormatMessage function formats a message string.
`int` `FormatMessage(int dwFlags, com.sun.jna.Pointer lpSource, int dwMessageId, int dwLanguageId, com.sun.jna.ptr.PointerByReference lpBuffer, int nSize, com.sun.jna.Pointer va_list)` The FormatMessage function formats a message string.
`boolean` `GetComputerName(char[] buffer, com.sun.jna.ptr.IntByReference lpnSize)` Retrieves only the NetBIOS name of the local computer.
`W32API.HANDLE` `GetCurrentProcess()` This function returns a pseudohandle for the current process.
`int` `GetCurrentProcessId()` This function returns the process identifier of the calling process.
`W32API.HANDLE` `GetCurrentThread()` The GetCurrentThread function retrieves a pseudo handle for the current thread.
`int` `GetCurrentThreadId()` The GetCurrentThreadId function retrieves the thread identifier of the calling thread.
`int` `GetDriveType(java.lang.String rootPathName)` The GetDriveType function determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk, or network drive.
`int` `GetLastError()` The GetLastError function retrieves the calling thread's last-error code value.
`W32API.HMODULE` `GetModuleHandle(java.lang.String name)` The GetModuleHandle function retrieves a module handle for the specified module if the file has been mapped into the address space of the calling process.
`int` `GetProcessId(W32API.HANDLE process)` The GetProcessId function retrieves the process identifier of the specified process.
`int` `GetProcessVersion(int processId)` The GetProcessVersion function retrieves the major and minor version numbers of the system on which the specified process expects to run.
`boolean` `GetQueuedCompletionStatus(W32API.HANDLE CompletionPort, com.sun.jna.ptr.IntByReference lpNumberOfBytes, com.sun.jna.ptr.ByReference lpCompletionKey, com.sun.jna.ptr.PointerByReference lpOverlapped, int dwMilliseconds)`
`int` `GetShortPathName(java.lang.String lpszLongPath, byte[] lpdzShortPath, int cchBuffer)` ASCII version.
`int` `GetShortPathName(java.lang.String lpszLongPath, char[] lpdzShortPath, int cchBuffer)` Unicode version (the default).
`void` `GetSystemTime(WinBase.SYSTEMTIME lpSystemTime)` The GetSystemTime function retrieves the current system date and time.
`W32API.DWORD` `GetTempPath(W32API.DWORD nBufferLength, char[] buffer)` The GetTempPath function retrieves the path of the directory designated for temporary files.
`com.sun.jna.Pointer` `GlobalFree(com.sun.jna.Pointer hGlobal)` Frees the specified global memory object and invalidates its handle.
`com.sun.jna.Pointer` `LocalAlloc(int type, int cbInput)` The LocalAlloc function allocates the specified number of bytes from the heap.
`com.sun.jna.Pointer` `LocalFree(com.sun.jna.Pointer hLocal)` Frees the specified local memory object and invalidates its handle.
`com.sun.jna.Pointer` `MapViewOfFile(W32API.HANDLE hFileMappingObject, int dwDesiredAccess, int dwFileOffsetHigh, int dwFileOffsetLow, int dwNumberOfBytesToMap)`
`W32API.HANDLE` `OpenProcess(int fdwAccess, boolean fInherit, int IDProcess)` This function returns a handle to an existing process object.
`W32API.HANDLE` `OpenThread(int dwDesiredAccess, boolean bInheritHandle, int dwThreadId)` The OpenThread function opens an existing thread object.
`boolean` `PostQueuedCompletionStatus(W32API.HANDLE CompletionPort, int dwNumberOfBytesTransferred, com.sun.jna.Pointer dwCompletionKey, WinBase.OVERLAPPED lpOverlapped)`
`boolean` `PulseEvent(W32API.HANDLE hEvent)`
`boolean` `ReadDirectoryChangesW(W32API.HANDLE directory, WinNT.FILE_NOTIFY_INFORMATION info, int length, boolean watchSubtree, int notifyFilter, com.sun.jna.ptr.IntByReference bytesReturned, WinBase.OVERLAPPED overlapped, Kernel32.OVERLAPPED_COMPLETION_ROUTINE completionRoutine)` NOTE: only exists in unicode form (W suffix).
`boolean` `SetEvent(W32API.HANDLE hEvent)`
`void` `SetLastError(int dwErrCode)` The SetLastError function sets the last-error code for the calling thread.
`boolean` `UnmapViewOfFile(com.sun.jna.Pointer lpBaseAddress)`
`int` `WaitForMultipleObjects(int nCount, W32API.HANDLE[] hHandle, boolean bWaitAll, int dwMilliseconds)` Waits until one or all of the specified objects are in the signaled state or the time-out interval elapses.
`int` `WaitForSingleObject(W32API.HANDLE hHandle, int dwMilliseconds)` Waits until the specified object is in the signaled state or the time-out interval elapses.
`boolean` `WriteFile(W32API.HANDLE hFile, byte[] lpBuffer, int nNumberOfBytesToWrite, com.sun.jna.ptr.IntByReference lpNumberOfBytesWritten, WinBase.OVERLAPPED lpOverlapped)`

Field Detail

### INSTANCE

    static final Kernel32 INSTANCE

Method Detail

### LocalFree

    com.sun.jna.Pointer LocalFree(com.sun.jna.Pointer hLocal)

  Frees the specified local memory object and invalidates its handle.

  Parameters:
    `hLocal` - A handle to the local memory object.
  Returns:
    If the function succeeds, the return value is NULL. If the function fails, the return value is equal to a handle to the local memory object. To get extended error information, call GetLastError.

### GlobalFree

    com.sun.jna.Pointer GlobalFree(com.sun.jna.Pointer hGlobal)

  Frees the specified global memory object and invalidates its handle.

  Parameters:
    `hGlobal` - A handle to the global memory object.
  Returns:
    If the function succeeds, the return value is NULL If the function fails, the return value is equal to a handle to the global memory object. To get extended error information, call GetLastError.

### GetModuleHandle

    W32API.HMODULE GetModuleHandle(java.lang.String name)

  The GetModuleHandle function retrieves a module handle for the specified module if the file has been mapped into the address space of the calling process.

  Parameters:
    `name` - Pointer to a null-terminated string that contains the name of the module (either a .dll or .exe file).
  Returns:
    If the function succeeds, the return value is a handle to the specified module. If the function fails, the return value is NULL. To get extended error information, call GetLastError.

### GetSystemTime

    void GetSystemTime(WinBase.SYSTEMTIME lpSystemTime)

  The GetSystemTime function retrieves the current system date and time. The system time is expressed in Coordinated Universal Time (UTC).

  Parameters:
    `lpSystemTime` - Pointer to a SYSTEMTIME structure to receive the current system date and time.

### GetCurrentThreadId

    int GetCurrentThreadId()

  The GetCurrentThreadId function retrieves the thread identifier of the calling thread.

  Returns:
    The return value is the thread identifier of the calling thread.

### GetCurrentThread

    W32API.HANDLE GetCurrentThread()

  The GetCurrentThread function retrieves a pseudo handle for the current thread.

  Returns:
    The return value is a pseudo handle for the current thread.

### GetCurrentProcessId

    int GetCurrentProcessId()

  This function returns the process identifier of the calling process.

  Returns:
    The return value is the process identifier of the calling process.

### GetCurrentProcess

    W32API.HANDLE GetCurrentProcess()

  This function returns a pseudohandle for the current process.

  Returns:
    The return value is a pseudohandle to the current process.

### GetProcessId

    int GetProcessId(W32API.HANDLE process)

  The GetProcessId function retrieves the process identifier of the specified process.

  Parameters:
    `process` - Handle to the process. The handle must have the PROCESS_QUERY_INFORMATION access right.
  Returns:
    If the function succeeds, the return value is the process identifier of the specified process. If the function fails, the return value is zero. To get extended error information, call GetLastError.

### GetProcessVersion

    int GetProcessVersion(int processId)

  The GetProcessVersion function retrieves the major and minor version numbers of the system on which the specified process expects to run.

  Parameters:
    `processId` - Process identifier of the process of interest. A value of zero specifies the calling process.
  Returns:
    If the function succeeds, the return value is the version of the system on which the process expects to run. The high word of the return value contains the major version number. The low word of the return value contains the minor version number. If the function fails, the return value is zero. To get extended error information, call GetLastError. The function fails if ProcessId is an invalid value.

### GetLastError

    int GetLastError()

  The GetLastError function retrieves the calling thread's last-error code value. The last-error code is maintained on a per-thread basis. Multiple threads do not overwrite each other's last-error code.

  Returns:
    The return value is the calling thread's last-error code value.

### SetLastError

    void SetLastError(int dwErrCode)

  The SetLastError function sets the last-error code for the calling thread.

  Parameters:
    `dwErrCode` - Last-error code for the thread.

### GetDriveType

    int GetDriveType(java.lang.String rootPathName)

  The GetDriveType function determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk, or network drive.

  Parameters:
    `rootPathName` - Pointer to a null-terminated string that specifies the root directory of the disk to return information about. A trailing backslash is required. If this parameter is NULL, the function uses the root of the current directory.
  Returns:
    The return value specifies the type of drive.

### FormatMessage

    int FormatMessage(int dwFlags,
                      com.sun.jna.Pointer lpSource,
                      int dwMessageId,
                      int dwLanguageId,
                      com.sun.jna.ptr.PointerByReference lpBuffer,
                      int nSize,
                      com.sun.jna.Pointer va_list)

  The FormatMessage function formats a message string. The function requires a message definition as input. The message definition can come from a buffer passed into the function. It can come from a message table resource in an already-loaded module. Or the caller can ask the function to search the system's message table resource(s) for the message definition. The function finds the message definition in a message table resource based on a message identifier and a language identifier. The function copies the formatted message text to an output buffer, processing any embedded insert sequences if requested.

  Parameters:
    `dwFlags` - Formatting options, and how to interpret the lpSource parameter. The low-order byte of dwFlags specifies how the function handles line breaks in the output buffer. The low-order byte can also specify the maximum width of a formatted output line.
    `lpSource` - Location of the message definition.
    `dwMessageId` - Message identifier for the requested message.
    `dwLanguageId` - Language identifier for the requested message.
    `lpBuffer` - Pointer to a buffer that receives the null-terminated string that specifies the formatted message.
    `nSize` - If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the size of the output buffer, in TCHARs. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer.
    `va_list` - Pointer to an array of values that are used as insert values in the formatted message.
  Returns:
    If the function succeeds, the return value is the number of TCHARs stored in the output buffer, excluding the terminating null character. If the function fails, the return value is zero. To get extended error information, call GetLastError.

### FormatMessage

    int FormatMessage(int dwFlags,
                      com.sun.jna.Pointer lpSource,
                      int dwMessageId,
                      int dwLanguageId,
                      java.nio.Buffer lpBuffer,
                      int nSize,
                      com.sun.jna.Pointer va_list)

  The FormatMessage function formats a message string. The function requires a message definition as input. The message definition can come from a buffer passed into the function. It can come from a message table resource in an already-loaded module. Or the caller can ask the function to search the system's message table resource(s) for the message definition. The function finds the message definition in a message table resource based on a message identifier and a language identifier. The function copies the formatted message text to an output buffer, processing any embedded insert sequences if requested.

  Parameters:
    `dwFlags` - Formatting options, and how to interpret the lpSource parameter. The low-order byte of dwFlags specifies how the function handles line breaks in the output buffer. The low-order byte can also specify the maximum width of a formatted output line.
    `lpSource` - Location of the message definition.
    `dwMessageId` - Message identifier for the requested message.
    `dwLanguageId` - Language identifier for the requested message.
    `lpBuffer` - Pointer to a buffer that receives the null-terminated string that specifies the formatted message.
    `nSize` - If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the size of the output buffer, in TCHARs. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer.
    `va_list` - Pointer to an array of values that are used as insert values in the formatted message.
  Returns:
    If the function succeeds, the return value is the number of TCHARs stored in the output buffer, excluding the terminating null character. If the function fails, the return value is zero. To get extended error information, call GetLastError.

### CreateFile

    W32API.HANDLE CreateFile(java.lang.String lpFileName,
                             int dwDesiredAccess,
                             int dwShareMode,
                             WinNT.SECURITY_ATTRIBUTES lpSecurityAttributes,
                             int dwCreationDisposition,
                             int dwFlagsAndAttributes,
                             W32API.HANDLE hTemplateFile)

  The CreateFile function creates or opens a file, file stream, directory, physical disk, volume, console buffer, tape drive, communications resource, mailslot, or named pipe. The function returns a handle that can be used to access an object.

  Parameters:
    `lpFileName` - A pointer to a null-terminated string that specifies the name of an object to create or open.
    `dwDesiredAccess` - The access to the object, which can be read, write, or both.
    `dwShareMode` - The sharing mode of an object, which can be read, write, both, or none.
    `lpSecurityAttributes` - A pointer to a SECURITY_ATTRIBUTES structure that determines whether or not the returned handle can be inherited by child processes. If lpSecurityAttributes is NULL, the handle cannot be inherited.
    `dwCreationDisposition` - An action to take on files that exist and do not exist.
    `dwFlagsAndAttributes` - The file attributes and flags.
    `hTemplateFile` - Handle to a template file with the GENERIC_READ access right. The template file supplies file attributes and extended attributes for the file that is being created. This parameter can be NULL.
  Returns:
    If the function succeeds, the return value is an open handle to a specified file. If a specified file exists before the function call and dwCreationDisposition is CREATE_ALWAYS or OPEN_ALWAYS, a call to GetLastError returns ERROR_ALREADY_EXISTS, even when the function succeeds. If a file does not exist before the call, GetLastError returns 0 (zero). If the function fails, the return value is INVALID_HANDLE_VALUE. To get extended error information, call GetLastError.

### CreateDirectory

    boolean CreateDirectory(java.lang.String lpPathName,
                            WinNT.SECURITY_ATTRIBUTES lpSecurityAttributes)

  The CreateDirectory function creates a new directory. If the underlying file system supports security on files and directories, the function applies a specified security descriptor to the new directory.

  Parameters:
    `lpPathName` - Pointer to a null-terminated string that specifies the path of the directory to be created.
    `lpSecurityAttributes` - Pointer to a SECURITY_ATTRIBUTES structure. The lpSecurityDescriptor member of the structure specifies a security descriptor for the new directory. If lpSecurityAttributes is NULL, the directory gets a default security descriptor.
  Returns:
    If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError.

### CreateIoCompletionPort

    W32API.HANDLE CreateIoCompletionPort(W32API.HANDLE FileHandle,
                                         W32API.HANDLE ExistingCompletionPort,
                                         com.sun.jna.Pointer CompletionKey,
                                         int NumberOfConcurrentThreads)

### GetQueuedCompletionStatus

    boolean GetQueuedCompletionStatus(W32API.HANDLE CompletionPort,
                                      com.sun.jna.ptr.IntByReference lpNumberOfBytes,
                                      com.sun.jna.ptr.ByReference lpCompletionKey,
                                      com.sun.jna.ptr.PointerByReference lpOverlapped,
                                      int dwMilliseconds)

### PostQueuedCompletionStatus

    boolean PostQueuedCompletionStatus(W32API.HANDLE CompletionPort,
                                       int dwNumberOfBytesTransferred,
                                       com.sun.jna.Pointer dwCompletionKey,
                                       WinBase.OVERLAPPED lpOverlapped)

### WaitForSingleObject

    int WaitForSingleObject(W32API.HANDLE hHandle,
                            int dwMilliseconds)

  Waits until the specified object is in the signaled state or the time-out interval elapses. To enter an alertable wait state, use the WaitForSingleObjectEx function. To wait for multiple objects, use the WaitForMultipleObjects.

  Parameters:
    `hHandle` - A handle to the object. For a list of the object types whose handles can be specified, see the following Remarks section. If this handle is closed while the wait is still pending, the function's behavior is undefined. The handle must have the SYNCHRONIZE access right. For more information, see Standard Access Rights.
    `dwMilliseconds` - The time-out interval, in milliseconds. If a nonzero value is specified, the function waits until the object is signaled or the interval elapses. If dwMilliseconds is zero, the function does not enter a wait state if the object is not signaled; it always returns immediately. If dwMilliseconds is INFINITE, the function will return only when the object is signaled.
  Returns:
    If the function succeeds, the return value indicates the event that caused the function to return.

### WaitForMultipleObjects

    int WaitForMultipleObjects(int nCount,
                               W32API.HANDLE[] hHandle,
                               boolean bWaitAll,
                               int dwMilliseconds)

  Waits until one or all of the specified objects are in the signaled state or the time-out interval elapses. To enter an alertable wait state, use the WaitForMultipleObjectsEx function.

  Parameters:
    `nCount` - The number of object handles in the array pointed to by lpHandles. The maximum number of object handles is MAXIMUM_WAIT_OBJECTS.
    `hHandle` - An array of object handles. For a list of the object types whose handles can be specified, see the following Remarks section. The array can contain handles to objects of different types. It may not contain multiple copies of the same handle. If one of these handles is closed while the wait is still pending, the function's behavior is undefined. The handles must have the SYNCHRONIZE access right. For more information, see Standard Access Rights.
    `bWaitAll` - If this parameter is TRUE, the function returns when the state of all objects in the lpHandles array is signaled. If FALSE, the function returns when the state of any one of the objects is set to signaled. In the latter case, the return value indicates the object whose state caused the function to return.
    `dwMilliseconds` - The time-out interval, in milliseconds. If a nonzero value is specified, the function waits until the specified objects are signaled or the interval elapses. If dwMilliseconds is zero, the function does not enter a wait state if the specified objects are not signaled; it always returns immediately. If dwMilliseconds is INFINITE, the function will return only when the specified objects are signaled.
  Returns:
    If the function succeeds, the return value indicates the event that caused the function to return.

### DuplicateHandle

    boolean DuplicateHandle(W32API.HANDLE hSourceProcessHandle,
                            W32API.HANDLE hSourceHandle,
                            W32API.HANDLE hTargetProcessHandle,
                            W32API.HANDLEByReference lpTargetHandle,
                            int dwDesiredAccess,
                            boolean bInheritHandle,
                            int dwOptions)

  The DuplicateHandle function duplicates an object handle.

  Parameters:
    `hSourceProcessHandle` - Handle to the process with the handle to duplicate. The handle must have the PROCESS_DUP_HANDLE access right.
    `hSourceHandle` - Handle to duplicate. This is an open object handle that is valid in the context of the source process.
    `hTargetProcessHandle` - Handle to the process that is to receive the duplicated handle. The handle must have the PROCESS_DUP_HANDLE access right.
    `lpTargetHandle` - Pointer to a variable that receives the duplicate handle. This handle value is valid in the context of the target process. If hSourceHandle is a pseudo handle returned by GetCurrentProcess or GetCurrentThread, DuplicateHandle converts it to a real handle to a process or thread, respectively.
    `dwDesiredAccess` - Access requested for the new handle.
    `bInheritHandle` - Indicates whether the handle is inheritable.
    `dwOptions` - Optional actions.
  Returns:
    If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError.

### CloseHandle

    boolean CloseHandle(W32API.HANDLE hObject)

  The CloseHandle function closes an open object handle.

  Parameters:
    `hObject` - Handle to an open object. This parameter can be a pseudo handle or INVALID_HANDLE_VALUE.
  Returns:
    If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError.

### ReadDirectoryChangesW

    boolean ReadDirectoryChangesW(W32API.HANDLE directory,
                                  WinNT.FILE_NOTIFY_INFORMATION info,
                                  int length,
                                  boolean watchSubtree,
                                  int notifyFilter,
                                  com.sun.jna.ptr.IntByReference bytesReturned,
                                  WinBase.OVERLAPPED overlapped,
                                  Kernel32.OVERLAPPED_COMPLETION_ROUTINE completionRoutine)

  NOTE: only exists in unicode form (W suffix). Define this method explicitly with the W suffix to avoid inadvertent calls in ASCII mode.

### GetShortPathName

    int GetShortPathName(java.lang.String lpszLongPath,
                         byte[] lpdzShortPath,
                         int cchBuffer)

  ASCII version. Use `Native.toString(byte[])` to obtain the short path from the `byte` array. Use only if `w32.ascii==true`.

### GetShortPathName

    int GetShortPathName(java.lang.String lpszLongPath,
                         char[] lpdzShortPath,
                         int cchBuffer)

  Unicode version (the default). Use `Native.toString(char[])` to obtain the short path from the `char` array.

### LocalAlloc

    com.sun.jna.Pointer LocalAlloc(int type,
                                   int cbInput)

  The LocalAlloc function allocates the specified number of bytes from the heap. Windows memory management does not provide a separate local heap and global heap.

  Parameters:
    `type` - Memory allocation attributes. The default is the LMEM_FIXED value.
    `cbInput` - Number of bytes to allocate. If this parameter is zero and the uFlags parameter specifies LMEM_MOVEABLE, the function returns a handle to a memory object that is marked as discarded.
  Returns:
    If the function succeeds, the return value is a handle to the newly allocated memory object. If the function fails, the return value is NULL. To get extended error information, call GetLastError.

### WriteFile

    boolean WriteFile(W32API.HANDLE hFile,
                      byte[] lpBuffer,
                      int nNumberOfBytesToWrite,
                      com.sun.jna.ptr.IntByReference lpNumberOfBytesWritten,
                      WinBase.OVERLAPPED lpOverlapped)

### CreateEvent

    W32API.HANDLE CreateEvent(WinNT.SECURITY_ATTRIBUTES lpEventAttributes,
                              boolean bManualReset,
                              boolean bInitialState,
                              java.lang.String lpName)

### SetEvent

    boolean SetEvent(W32API.HANDLE hEvent)

### PulseEvent

    boolean PulseEvent(W32API.HANDLE hEvent)

### CreateFileMapping

    W32API.HANDLE CreateFileMapping(W32API.HANDLE hFile,
                                    WinNT.SECURITY_ATTRIBUTES lpAttributes,
                                    int flProtect,
                                    int dwMaximumSizeHigh,
                                    int dwMaximumSizeLow,
                                    java.lang.String lpName)

### MapViewOfFile

    com.sun.jna.Pointer MapViewOfFile(W32API.HANDLE hFileMappingObject,
                                      int dwDesiredAccess,
                                      int dwFileOffsetHigh,
                                      int dwFileOffsetLow,
                                      int dwNumberOfBytesToMap)

### UnmapViewOfFile

    boolean UnmapViewOfFile(com.sun.jna.Pointer lpBaseAddress)

### GetComputerName

    boolean GetComputerName(char[] buffer,
                            com.sun.jna.ptr.IntByReference lpnSize)

  Retrieves only the NetBIOS name of the local computer.

  Parameters:
    `buffer` - A pointer to a buffer that receives the computer name or the cluster virtual server name. The buffer size should be large enough to contain MAX_COMPUTERNAME_LENGTH + 1 characters.
    `lpnSize` - On input, specifies the size of the buffer, in TCHARs. On output, the number of TCHARs copied to the destination buffer, not including the terminating null character. If the buffer is too small, the function fails and GetLastError returns ERROR_BUFFER_OVERFLOW. The lpnSize parameter specifies the size of the buffer required, including the terminating null character.
  Returns:
    If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero. To get extended error information, call GetLastError.

### OpenThread

    W32API.HANDLE OpenThread(int dwDesiredAccess,
                             boolean bInheritHandle,
                             int dwThreadId)

  The OpenThread function opens an existing thread object.

  Parameters:
    `dwDesiredAccess` - Access to the thread object. This access right is checked against any security descriptor for the thread.
    `bInheritHandle` - If this parameter is TRUE, the new process inherits the handle. If the parameter is FALSE, the handle is not inherited.
    `dwThreadId` - Identifier of the thread to be opened.
  Returns:
    If the function succeeds, the return value is an open handle to the specified process. If the function fails, the return value is NULL. To get extended error information, call GetLastError.

### OpenProcess

    W32API.HANDLE OpenProcess(int fdwAccess,
                              boolean fInherit,
                              int IDProcess)

  This function returns a handle to an existing process object.

  Parameters:
    `fdwAccess` - Not supported; set to zero.
    `fInherit` - Not supported; set to FALSE.
    `IDProcess` - Specifies the process identifier of the process to open.
  Returns:
    An open handle to the specified process indicates success. NULL indicates failure. To get extended error information, call GetLastError.

### GetTempPath

    W32API.DWORD GetTempPath(W32API.DWORD nBufferLength,
                             char[] buffer)

  The GetTempPath function retrieves the path of the directory designated for temporary files.

  Parameters:
    `nBufferLength` - Size of the string buffer identified by lpBuffer, in TCHARs.
    `buffer` - Pointer to a string buffer that receives the null-terminated string specifying the temporary file path. The returned string ends with a backslash, for example, C:\TEMP\.
  Returns:
    If the function succeeds, the return value is the length, in TCHARs, of the string copied to lpBuffer, not including the terminating null character. If the return value is greater than nBufferLength, the return value is the length, in TCHARs, of the buffer required to hold the path. If the function fails, the return value is zero. To get extended error information, call GetLastError.