kernel32-sys 0.0.6

FFI bindings to kernel32.
// Copyright © 2015, Peter Atashian
// Licensed under the MIT License <LICENSE.md>
//! FFI bindings to kernel32.
#![no_std]
#![unstable]
#[cfg(test)] extern crate std;
extern crate winapi;
use winapi::*;
extern "system" {
    pub fn AcquireSRWLockExclusive(SRWLock: PSRWLOCK);
    pub fn AcquireSRWLockShared(SRWLock: PSRWLOCK);
    pub fn ActivateActCtx(hActCtx: HANDLE, lpCookie: *mut ULONG_PTR) -> BOOL;
    pub fn AddAtomA(lpString: LPCSTR) -> ATOM;
    pub fn AddAtomW(lpString: LPCWSTR) -> ATOM;
    pub fn AddConsoleAliasA(Source: LPSTR, Target: LPSTR, ExeName: LPSTR) -> BOOL;
    pub fn AddConsoleAliasW(Source: LPWSTR, Target: LPWSTR, ExeName: LPWSTR) -> BOOL;
    pub fn AddDllDirectory(NewDirectory: PCWSTR) -> DLL_DIRECTORY_COOKIE;
    pub fn AddIntegrityLabelToBoundaryDescriptor(
        BoundaryDescriptor: *mut HANDLE, IntegrityLabel: PSID,
    ) -> BOOL;
    // pub fn AddLocalAlternateComputerNameA();
    // pub fn AddLocalAlternateComputerNameW();
    pub fn AddRefActCtx(hActCtx: HANDLE);
    pub fn AddResourceAttributeAce(
        pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID,
        pAttributeInfo: PCLAIM_SECURITY_ATTRIBUTES_INFORMATION, pReturnLength: PDWORD,
    ) -> BOOL;
    pub fn AddSIDToBoundaryDescriptor(BoundaryDescriptor: *mut HANDLE, RequiredSid: PSID) -> BOOL;
    pub fn AddScopedPolicyIDAce(
        pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID,
    ) -> BOOL;
    pub fn AddSecureMemoryCacheCallback(pfnCallBack: PSECURE_MEMORY_CACHE_CALLBACK) -> BOOL;
    pub fn AddVectoredContinueHandler(First: ULONG, Handler: PVECTORED_EXCEPTION_HANDLER) -> PVOID;
    // pub fn AddVectoredExceptionHandler();
    pub fn AllocConsole() -> BOOL;
    // pub fn AllocateUserPhysicalPages();
    // pub fn AllocateUserPhysicalPagesNuma();
    // pub fn AppXGetOSMaxVersionTested();
    // pub fn ApplicationRecoveryFinished();
    // pub fn ApplicationRecoveryInProgress();
    // pub fn AreFileApisANSI();
    // pub fn AssignProcessToJobObject();
    pub fn AttachConsole(dwProcessId: DWORD) -> BOOL;
    // pub fn BackupRead();
    // pub fn BackupSeek();
    // pub fn BackupWrite();
    // pub fn BaseSetLastNTError();
    // pub fn Beep();
    // pub fn BeginUpdateResourceA();
    // pub fn BeginUpdateResourceW();
    // pub fn BindIoCompletionCallback();
    // pub fn BuildCommDCBA();
    // pub fn BuildCommDCBAndTimeoutsA();
    // pub fn BuildCommDCBAndTimeoutsW();
    // pub fn BuildCommDCBW();
    // pub fn CallNamedPipeA();
    // pub fn CallNamedPipeW();
    // pub fn CallbackMayRunLong();
    // pub fn CalloutOnFiberStack();
    // pub fn CancelDeviceWakeupRequest();
    // pub fn CancelIo();
    // pub fn CancelIoEx();
    // pub fn CancelSynchronousIo();
    // pub fn CancelThreadpoolIo();
    // pub fn CancelTimerQueueTimer();
    // pub fn CancelWaitableTimer();
    // pub fn CeipIsOptedIn();
    // pub fn ChangeTimerQueueTimer();
    // pub fn CheckElevation();
    // pub fn CheckElevationEnabled();
    // pub fn CheckNameLegalDOS8Dot3A();
    // pub fn CheckNameLegalDOS8Dot3W();
    // pub fn CheckRemoteDebuggerPresent();
    // pub fn CheckTokenCapability();
    // pub fn CheckTokenMembershipEx();
    // pub fn ClearCommBreak();
    // pub fn ClearCommError();
    pub fn CloseHandle(hObject: HANDLE) -> BOOL;
    // pub fn ClosePackageInfo();
    // pub fn ClosePrivateNamespace();
    // pub fn CloseState();
    // pub fn CloseThreadpool();
    // pub fn CloseThreadpoolCleanupGroup();
    // pub fn CloseThreadpoolCleanupGroupMembers();
    // pub fn CloseThreadpoolIo();
    // pub fn CloseThreadpoolTimer();
    // pub fn CloseThreadpoolWait();
    // pub fn CloseThreadpoolWork();
    // pub fn CommConfigDialogA();
    // pub fn CommConfigDialogW();
    pub fn CompareFileTime(lpFileTime1: *const FILETIME, lpFileTime2: *const FILETIME) -> LONG;
    // pub fn CompareStringA();
    // pub fn CompareStringEx();
    // pub fn CompareStringOrdinal();
    // pub fn CompareStringW();
    // pub fn ConnectNamedPipe();
    // pub fn ContinueDebugEvent();
    // pub fn ConvertDefaultLocale();
    // pub fn ConvertFiberToThread();
    // pub fn ConvertThreadToFiber();
    // pub fn ConvertThreadToFiberEx();
    // pub fn CopyContext();
    // pub fn CopyFile2();
    // pub fn CopyFileA();
    // pub fn CopyFileExA();
    // pub fn CopyFileExW();
    // pub fn CopyFileTransactedA();
    // pub fn CopyFileTransactedW();
    // pub fn CopyFileW();
    // pub fn CreateActCtxA();
    // pub fn CreateActCtxW();
    // pub fn CreateBoundaryDescriptorA();
    // pub fn CreateBoundaryDescriptorW();
    pub fn CreateConsoleScreenBuffer(
        dwDesiredAccess: DWORD, dwShareMode: DWORD,
        lpSecurityAttributes: *const SECURITY_ATTRIBUTES, dwFlags: DWORD,
        lpScreenBufferData: LPVOID,
    ) -> HANDLE;
    pub fn CreateDirectoryA(
        lpPathName: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> BOOL;
    pub fn CreateDirectoryExA(
        lpTemplateDirectory: LPCSTR, lpNewDirectory: LPCSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> BOOL;
    pub fn CreateDirectoryExW(
        lpTemplateDirectory: LPCWSTR, lpNewDirectory: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> BOOL;
    // pub fn CreateDirectoryTransactedA();
    // pub fn CreateDirectoryTransactedW();
    pub fn CreateDirectoryW(
        lpPathName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> BOOL;
    // pub fn CreateEventA();
    // pub fn CreateEventExA();
    // pub fn CreateEventExW();
    // pub fn CreateEventW();
    // pub fn CreateFiber();
    // pub fn CreateFiberEx();
    pub fn CreateFile2(
        lpFileName: LPCWSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD,
        dwCreationDisposition: DWORD, pCreateExParams: LPCREATEFILE2_EXTENDED_PARAMETERS,
    ) -> HANDLE;
    pub fn CreateFileA(
        lpFileName: LPCSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD,
        dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE,
    ) -> HANDLE;
    // pub fn CreateFileMappingA();
    // pub fn CreateFileMappingFromApp();
    // pub fn CreateFileMappingNumaA();
    // pub fn CreateFileMappingNumaW();
    // pub fn CreateFileMappingW();
    // pub fn CreateFileTransactedA();
    // pub fn CreateFileTransactedW();
    pub fn CreateFileW(
        lpFileName: LPCWSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD,
        dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE,
    ) -> HANDLE;
    // pub fn CreateHardLinkA();
    // pub fn CreateHardLinkTransactedA();
    // pub fn CreateHardLinkTransactedW();
    // pub fn CreateHardLinkW();
    pub fn CreateIoCompletionPort(
        FileHandle: HANDLE, ExistingCompletionPort: HANDLE, CompletionKey: ULONG_PTR,
        NumberOfConcurrentThreads: DWORD,
    ) -> HANDLE;
    // pub fn CreateJobObjectA();
    // pub fn CreateJobObjectW();
    // pub fn CreateJobSet();
    // pub fn CreateMailslotA();
    // pub fn CreateMailslotW();
    // pub fn CreateMemoryResourceNotification();
    // pub fn CreateMutexA();
    // pub fn CreateMutexExA();
    // pub fn CreateMutexExW();
    // pub fn CreateMutexW();
    // pub fn CreateNamedPipeA();
    // pub fn CreateNamedPipeW();
    // pub fn CreatePipe();
    // pub fn CreatePrivateNamespaceA();
    // pub fn CreatePrivateNamespaceW();
    // pub fn CreateProcessA();
    // pub fn CreateProcessW();
    // pub fn CreateRemoteThread();
    // pub fn CreateRemoteThreadEx();
    // pub fn CreateSemaphoreA();
    // pub fn CreateSemaphoreExA();
    // pub fn CreateSemaphoreExW();
    // pub fn CreateSemaphoreW();
    // pub fn CreateSymbolicLinkA();
    // pub fn CreateSymbolicLinkTransactedA();
    // pub fn CreateSymbolicLinkTransactedW();
    // pub fn CreateSymbolicLinkW();
    // pub fn CreateTapePartition();
    // pub fn CreateThread();
    // pub fn CreateThreadpool();
    // pub fn CreateThreadpoolCleanupGroup();
    // pub fn CreateThreadpoolIo();
    // pub fn CreateThreadpoolTimer();
    // pub fn CreateThreadpoolWait();
    // pub fn CreateThreadpoolWork();
    // pub fn CreateTimerQueue();
    // pub fn CreateTimerQueueTimer();
    // pub fn CreateToolhelp32Snapshot();
    // #[cfg(target_arch = "x86_64")]
    // pub fn CreateUmsCompletionList();
    // #[cfg(target_arch = "x86_64")]
    // pub fn CreateUmsThreadContext();
    // pub fn CreateWaitableTimerA();
    // pub fn CreateWaitableTimerExA();
    // pub fn CreateWaitableTimerExW();
    // pub fn CreateWaitableTimerW();
    // pub fn CtrlRoutine();
    // pub fn DeactivateActCtx();
    // pub fn DebugActiveProcess();
    // pub fn DebugActiveProcessStop();
    // pub fn DebugBreak();
    // pub fn DebugBreakProcess();
    // pub fn DebugSetProcessKillOnExit();
    // pub fn DecodePointer();
    // pub fn DecodeSystemPointer();
    // pub fn DefineDosDeviceA();
    pub fn DefineDosDeviceW(dwFlags: DWORD, lpDeviceName: LPCWSTR, lpTargetPath: LPCWSTR) -> BOOL;
    // pub fn DelayLoadFailureHook();
    // pub fn DeleteAtom();
    // pub fn DeleteBoundaryDescriptor();
    // pub fn DeleteCriticalSection();
    // pub fn DeleteFiber();
    pub fn DeleteFileA(lpFileName: LPCSTR) -> BOOL;
    // pub fn DeleteFileTransactedA();
    // pub fn DeleteFileTransactedW();
    pub fn DeleteFileW(lpFileName: LPCWSTR) -> BOOL;
    // pub fn DeleteProcThreadAttributeList();
    // pub fn DeleteSynchronizationBarrier();
    // pub fn DeleteTimerQueue();
    // pub fn DeleteTimerQueueEx();
    // pub fn DeleteTimerQueueTimer();
    // #[cfg(target_arch = "x86_64")]
    // pub fn DeleteUmsCompletionList();
    // #[cfg(target_arch = "x86_64")]
    // pub fn DeleteUmsThreadContext();
    // pub fn DeleteVolumeMountPointA();
    pub fn DeleteVolumeMountPointW(lpszVolumeMountPoint: LPCWSTR) -> BOOL;
    // #[cfg(target_arch = "x86_64")]
    // pub fn DequeueUmsCompletionListItems();
    // pub fn DeviceIoControl();
    // pub fn DisableThreadLibraryCalls();
    // pub fn DisableThreadProfiling();
    // pub fn DisassociateCurrentThreadFromCallback();
    // pub fn DisconnectNamedPipe();
    // pub fn DnsHostnameToComputerNameA();
    // pub fn DnsHostnameToComputerNameExW();
    // pub fn DnsHostnameToComputerNameW();
    // pub fn DosDateTimeToFileTime();
    // pub fn DosPathToSessionPathW();
    // pub fn DuplicateHandle();
    // pub fn EnableThreadProfiling();
    // pub fn EncodePointer();
    // pub fn EncodeSystemPointer();
    // pub fn EndUpdateResourceA();
    // pub fn EndUpdateResourceW();
    // pub fn EnterCriticalSection();
    // pub fn EnterSynchronizationBarrier();
    // #[cfg(target_arch = "x86_64")]
    // pub fn EnterUmsSchedulingMode();
    // pub fn EnumCalendarInfoA();
    // pub fn EnumCalendarInfoExA();
    // pub fn EnumCalendarInfoExEx();
    // pub fn EnumCalendarInfoExW();
    // pub fn EnumCalendarInfoW();
    // pub fn EnumDateFormatsA();
    // pub fn EnumDateFormatsExA();
    // pub fn EnumDateFormatsExEx();
    // pub fn EnumDateFormatsExW();
    // pub fn EnumDateFormatsW();
    // pub fn EnumLanguageGroupLocalesA();
    // pub fn EnumLanguageGroupLocalesW();
    // pub fn EnumResourceLanguagesA();
    // pub fn EnumResourceLanguagesExA();
    // pub fn EnumResourceLanguagesExW();
    // pub fn EnumResourceLanguagesW();
    // pub fn EnumResourceNamesA();
    // pub fn EnumResourceNamesExA();
    // pub fn EnumResourceNamesExW();
    // pub fn EnumResourceNamesW();
    // pub fn EnumResourceTypesA();
    // pub fn EnumResourceTypesExA();
    // pub fn EnumResourceTypesExW();
    // pub fn EnumResourceTypesW();
    // pub fn EnumSystemCodePagesA();
    // pub fn EnumSystemCodePagesW();
    // pub fn EnumSystemFirmwareTables();
    // pub fn EnumSystemGeoID();
    // pub fn EnumSystemLanguageGroupsA();
    // pub fn EnumSystemLanguageGroupsW();
    // pub fn EnumSystemLocalesA();
    // pub fn EnumSystemLocalesEx();
    // pub fn EnumSystemLocalesW();
    // pub fn EnumTimeFormatsA();
    // pub fn EnumTimeFormatsEx();
    // pub fn EnumTimeFormatsW();
    // pub fn EnumUILanguagesA();
    // pub fn EnumUILanguagesW();
    // pub fn EnumerateLocalComputerNamesA();
    // pub fn EnumerateLocalComputerNamesW();
    // pub fn EraseTape();
    // pub fn EscapeCommFunction();
    // #[cfg(target_arch = "x86_64")]
    // pub fn ExecuteUmsThread();
    // pub fn ExitProcess();
    // pub fn ExitThread();
    // pub fn ExpandEnvironmentStringsA();
    // pub fn ExpandEnvironmentStringsW();
    // pub fn FatalAppExitA();
    // pub fn FatalAppExitW();
    // pub fn FatalExit();
    // pub fn FileTimeToDosDateTime();
    pub fn FileTimeToLocalFileTime(
        lpFileTime: *const FILETIME, lpLocalFileTime: LPFILETIME,
    ) -> BOOL;
    // pub fn FileTimeToSystemTime();
    pub fn FillConsoleOutputAttribute(
        hConsoleOutput: HANDLE, wAttribute: WORD, nLength: DWORD, dwWriteCoord: COORD,
        lpNumberOfAttrsWritten: LPDWORD,
    ) -> BOOL;
    pub fn FillConsoleOutputCharacterA(
        hConsoleOutput: HANDLE, cCharacter: CHAR, nLength: DWORD, dwWriteCoord: COORD,
        lpNumberOfCharsWritten: LPDWORD,
    ) -> BOOL;
    pub fn FillConsoleOutputCharacterW(
        hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: DWORD, dwWriteCoord: COORD,
        lpNumberOfCharsWritten: LPDWORD,
    ) -> BOOL;
    // pub fn FindActCtxSectionGuid();
    // pub fn FindActCtxSectionStringA();
    // pub fn FindActCtxSectionStringW();
    // pub fn FindAtomA();
    // pub fn FindAtomW();
    pub fn FindClose(hFindFile: HANDLE) -> BOOL;
    pub fn FindCloseChangeNotification(hChangeHandle: HANDLE) -> BOOL;
    pub fn FindFirstChangeNotificationA(
        lpPathName: LPCSTR, bWatchSubtree: BOOL, dwNotifyFilter: DWORD,
    ) -> HANDLE;
    pub fn FindFirstChangeNotificationW(
        lpPathName: LPCWSTR, bWatchSubtree: BOOL, dwNotifyFilter: DWORD,
    ) -> HANDLE;
    pub fn FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: LPWIN32_FIND_DATAA) -> HANDLE;
    pub fn FindFirstFileExA(
        lpFileName: LPCSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID,
        fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD,
    ) -> HANDLE;
    pub fn FindFirstFileExW(
        lpFileName: LPCWSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID,
        fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD,
    ) -> HANDLE;
    // pub fn FindFirstFileNameTransactedW();
    // pub fn FindFirstFileNameW();
    // pub fn FindFirstFileTransactedA();
    // pub fn FindFirstFileTransactedW();
    pub fn FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: LPWIN32_FIND_DATAW) -> HANDLE;
    // pub fn FindFirstStreamTransactedW();
    // pub fn FindFirstStreamW();
    // pub fn FindFirstVolumeA();
    // pub fn FindFirstVolumeMountPointA();
    // pub fn FindFirstVolumeMountPointW();
    pub fn FindFirstVolumeW(lpszVolumeName: LPWSTR, cchBufferLength: DWORD) -> HANDLE;
    // pub fn FindNLSString();
    // pub fn FindNLSStringEx();
    pub fn FindNextChangeNotification(hChangeHandle: HANDLE) -> BOOL;
    pub fn FindNextFileA(hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAA) -> BOOL;
    // pub fn FindNextFileNameW();
    pub fn FindNextFileW(hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAW) -> BOOL;
    // pub fn FindNextStreamW();
    // pub fn FindNextVolumeA();
    // pub fn FindNextVolumeMountPointA();
    // pub fn FindNextVolumeMountPointW();
    pub fn FindNextVolumeW(
        hFindVolume: HANDLE, lpszVolumeName: LPWSTR, cchBufferLength: DWORD,
    ) -> BOOL;
    // pub fn FindPackagesByPackageFamily();
    // pub fn FindResourceA();
    // pub fn FindResourceExA();
    // pub fn FindResourceExW();
    // pub fn FindResourceW();
    // pub fn FindStringOrdinal();
    pub fn FindVolumeClose(hFindVolume: HANDLE) -> BOOL;
    // pub fn FindVolumeMountPointClose();
    // pub fn FlsAlloc();
    // pub fn FlsFree();
    // pub fn FlsGetValue();
    // pub fn FlsSetValue();
    pub fn FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL;
    pub fn FlushFileBuffers(hFile: HANDLE) -> BOOL;
    // pub fn FlushInstructionCache();
    // pub fn FlushProcessWriteBuffers();
    // pub fn FlushViewOfFile();
    // pub fn FoldStringA();
    // pub fn FoldStringW();
    // pub fn FormatApplicationUserModelId();
    // pub fn FormatMessageA();
    // pub fn FormatMessageW();
    pub fn FreeConsole() -> BOOL;
    // pub fn FreeEnvironmentStringsA();
    // pub fn FreeEnvironmentStringsW();
    // pub fn FreeLibrary();
    // pub fn FreeLibraryAndExitThread();
    // pub fn FreeLibraryWhenCallbackReturns();
    // pub fn FreeResource();
    // pub fn FreeUserPhysicalPages();
    pub fn GenerateConsoleCtrlEvent(dwCtrlEvent: DWORD, dwProcessGroupId: DWORD) -> BOOL;
    // pub fn GetACP();
    // pub fn GetActiveProcessorCount();
    // pub fn GetActiveProcessorGroupCount();
    // pub fn GetAppContainerAce();
    // pub fn GetAppContainerNamedObjectPath();
    // pub fn GetApplicationRecoveryCallback();
    // pub fn GetApplicationRestartSettings();
    // pub fn GetApplicationUserModelId();
    // pub fn GetAtomNameA();
    // pub fn GetAtomNameW();
    // pub fn GetBinaryType();
    // pub fn GetBinaryTypeA();
    // pub fn GetBinaryTypeW();
    // pub fn GetCPInfo();
    // pub fn GetCPInfoExA();
    // pub fn GetCPInfoExW();
    // pub fn GetCachedSigningLevel();
    // pub fn GetCalendarInfoA();
    // pub fn GetCalendarInfoEx();
    // pub fn GetCalendarInfoW();
    // pub fn GetCommConfig();
    // pub fn GetCommMask();
    // pub fn GetCommModemStatus();
    // pub fn GetCommProperties();
    // pub fn GetCommState();
    // pub fn GetCommTimeouts();
    // pub fn GetCommandLineA();
    // pub fn GetCommandLineW();
    pub fn GetCompressedFileSizeA(lpFileName: LPCSTR, lpFileSizeHigh: LPDWORD) -> DWORD;
    // pub fn GetCompressedFileSizeTransactedA();
    // pub fn GetCompressedFileSizeTransactedW();
    pub fn GetCompressedFileSizeW(lpFileName: LPCWSTR, lpFileSizeHigh: LPDWORD) -> DWORD;
    // pub fn GetComputerNameA();
    // pub fn GetComputerNameExA();
    // pub fn GetComputerNameExW();
    // pub fn GetComputerNameW();
    pub fn GetConsoleAliasA(
        Source: LPSTR, TargetBuffer: LPSTR, TargetBufferLength: DWORD, ExeName: LPSTR,
    ) -> DWORD;
    pub fn GetConsoleAliasExesA(ExeNameBuffer: LPSTR, ExeNameBufferLength: DWORD) -> DWORD;
    pub fn GetConsoleAliasExesLengthA() -> DWORD;
    pub fn GetConsoleAliasExesLengthW() -> DWORD;
    pub fn GetConsoleAliasExesW(ExeNameBuffer: LPWSTR, ExeNameBufferLength: DWORD) -> DWORD;
    pub fn GetConsoleAliasW(
        Source: LPWSTR, TargetBuffer: LPWSTR, TargetBufferLength: DWORD, ExeName: LPWSTR,
    ) -> DWORD;
    pub fn GetConsoleAliasesA(
        AliasBuffer: LPSTR, AliasBufferLength: DWORD, ExeName: LPSTR,
    ) -> DWORD;
    pub fn GetConsoleAliasesLengthA(ExeName: LPSTR) -> DWORD;
    pub fn GetConsoleAliasesLengthW(ExeName: LPWSTR) -> DWORD;
    pub fn GetConsoleAliasesW(
        AliasBuffer: LPWSTR, AliasBufferLength: DWORD, ExeName: LPWSTR,
    ) -> DWORD;
    pub fn GetConsoleCP() -> UINT;
    pub fn GetConsoleCursorInfo(
        hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO,
    ) -> BOOL;
    pub fn GetConsoleDisplayMode(lpModeFlags: LPDWORD) -> BOOL;
    pub fn GetConsoleFontSize(hConsoleOutput: HANDLE, nFont: DWORD) -> COORD;
    pub fn GetConsoleHistoryInfo(lpConsoleHistoryInfo: PCONSOLE_HISTORY_INFO) -> BOOL;
    pub fn GetConsoleMode(hConsoleHandle: HANDLE, lpMode: LPDWORD) -> BOOL;
    pub fn GetConsoleOriginalTitleA(lpConsoleTitle: LPSTR, nSize: DWORD) -> DWORD;
    pub fn GetConsoleOriginalTitleW(lpConsoleTitle: LPWSTR, nSize: DWORD) -> DWORD;
    pub fn GetConsoleOutputCP() -> UINT;
    pub fn GetConsoleProcessList(lpdwProcessList: LPDWORD, dwProcessCount: DWORD) -> DWORD;
    pub fn GetConsoleScreenBufferInfo(
        hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: PCONSOLE_SCREEN_BUFFER_INFO,
    ) -> BOOL;
    pub fn GetConsoleScreenBufferInfoEx(
        hConsoleOutput: HANDLE, lpConsoleScreenBufferInfoEx: PCONSOLE_SCREEN_BUFFER_INFOEX,
    ) -> BOOL;
    pub fn GetConsoleSelectionInfo(lpConsoleSelectionInfo: PCONSOLE_SELECTION_INFO) -> BOOL;
    pub fn GetConsoleTitleA(lpConsoleTitle: LPSTR, nSize: DWORD) -> DWORD;
    pub fn GetConsoleTitleW(lpConsoleTitle: LPWSTR, nSize: DWORD) -> DWORD;
    pub fn GetConsoleWindow() -> HWND;
    // pub fn GetCurrencyFormatA();
    // pub fn GetCurrencyFormatEx();
    // pub fn GetCurrencyFormatW();
    // pub fn GetCurrentActCtx();
    // pub fn GetCurrentApplicationUserModelId();
    pub fn GetCurrentConsoleFont(
        hConsoleOutput: HANDLE, bMaximumWindow: BOOL, lpConsoleCurrentFont: PCONSOLE_FONT_INFO,
    ) -> BOOL;
    pub fn GetCurrentConsoleFontEx(
        hConsoleOutput: HANDLE, bMaximumWindow: BOOL, lpConsoleCurrentFontEx: PCONSOLE_FONT_INFOEX,
    ) -> BOOL;
    pub fn GetCurrentDirectoryA(nBufferLength: DWORD, lpBuffer: LPSTR) -> DWORD;
    pub fn GetCurrentDirectoryW(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD;
    // pub fn GetCurrentPackageFamilyName();
    // pub fn GetCurrentPackageFullName();
    // pub fn GetCurrentPackageId();
    // pub fn GetCurrentPackageInfo();
    // pub fn GetCurrentPackagePath();
    pub fn GetCurrentProcess() -> HANDLE;
    // pub fn GetCurrentProcessId();
    // pub fn GetCurrentProcessorNumber();
    // pub fn GetCurrentProcessorNumberEx();
    // pub fn GetCurrentThread();
    // pub fn GetCurrentThreadId();
    // pub fn GetCurrentThreadStackLimits();
    // #[cfg(target_arch = "x86_64")]
    // pub fn GetCurrentUmsThread();
    // pub fn GetDateFormatA();
    // pub fn GetDateFormatEx();
    // pub fn GetDateFormatW();
    // pub fn GetDefaultCommConfigA();
    // pub fn GetDefaultCommConfigW();
    // pub fn GetDevicePowerState();
    pub fn GetDiskFreeSpaceA(
        lpRootPathName: LPCSTR, lpSectorsPerCluster: LPDWORD, lpBytesPerSector: LPDWORD,
        lpNumberOfFreeClusters: LPDWORD, lpTotalNumberOfClusters: LPDWORD,
    ) -> BOOL;
    pub fn GetDiskFreeSpaceExA(
        lpDirectoryName: LPCSTR, lpFreeBytesAvailableToCaller: PULARGE_INTEGER,
        lpTotalNumberOfBytes: PULARGE_INTEGER, lpTotalNumberOfFreeBytes: PULARGE_INTEGER,
    ) -> BOOL;
    pub fn GetDiskFreeSpaceExW(
        lpDirectoryName: LPCWSTR, lpFreeBytesAvailableToCaller: PULARGE_INTEGER,
        lpTotalNumberOfBytes: PULARGE_INTEGER, lpTotalNumberOfFreeBytes: PULARGE_INTEGER,
    ) -> BOOL;
    pub fn GetDiskFreeSpaceW(
        lpRootPathName: LPCWSTR, lpSectorsPerCluster: LPDWORD, lpBytesPerSector: LPDWORD,
        lpNumberOfFreeClusters: LPDWORD, lpTotalNumberOfClusters: LPDWORD,
    ) -> BOOL;
    // pub fn GetDllDirectoryA();
    // pub fn GetDllDirectoryW();
    pub fn GetDriveTypeA(lpRootPathName: LPCSTR) -> UINT;
    pub fn GetDriveTypeW(lpRootPathName: LPCSTR) -> UINT;
    // pub fn GetDurationFormat();
    // pub fn GetDurationFormatEx();
    // pub fn GetDynamicTimeZoneInformation();
    // #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
    // pub fn GetEnabledXStateFeatures();
    // pub fn GetEnvironmentStrings();
    // pub fn GetEnvironmentStringsA();
    // pub fn GetEnvironmentStringsW();
    // pub fn GetEnvironmentVariableA();
    // pub fn GetEnvironmentVariableW();
    // pub fn GetEraNameCountedString();
    // pub fn GetErrorMode();
    // pub fn GetExitCodeProcess();
    // pub fn GetExitCodeThread();
    pub fn GetFileAttributesA(lpFileName: LPCSTR) -> DWORD;
    pub fn GetFileAttributesExA(
        lpFileName: LPCSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID,
    ) -> BOOL;
    pub fn GetFileAttributesExW(
        lpFileName: LPCWSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID,
    ) -> BOOL;
    // pub fn GetFileAttributesTransactedA();
    // pub fn GetFileAttributesTransactedW();
    pub fn GetFileAttributesW(lpFileName: LPCSTR) -> DWORD;
    // pub fn GetFileBandwidthReservation();
    pub fn GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: LPBY_HANDLE_FILE_INFORMATION) -> BOOL;
    // pub fn GetFileInformationByHandleEx();
    // pub fn GetFileMUIInfo();
    // pub fn GetFileMUIPath();
    pub fn GetFileSize(hFile: HANDLE, lpFileSizeHigh: LPDWORD) -> DWORD;
    pub fn GetFileSizeEx(hFile: HANDLE, lpFileSize: PLARGE_INTEGER) -> BOOL;
    pub fn GetFileTime(
        hFile: HANDLE, lpCreationTime: LPFILETIME, lpLastAccessTime: LPFILETIME,
        lpLastWriteTime: LPFILETIME,
    ) -> BOOL;
    pub fn GetFileType(hFile: HANDLE) -> DWORD;
    pub fn GetFinalPathNameByHandleA(
        hFile: HANDLE, lpszFilePath: LPSTR, cchFilePath: DWORD, dwFlags: DWORD,
    ) -> DWORD;
    pub fn GetFinalPathNameByHandleW(
        hFile: HANDLE, lpszFilePath: LPWSTR, cchFilePath: DWORD, dwFlags: DWORD,
    ) -> DWORD;
    // pub fn GetFirmwareEnvironmentVariableA();
    // pub fn GetFirmwareEnvironmentVariableExA();
    // pub fn GetFirmwareEnvironmentVariableExW();
    // pub fn GetFirmwareEnvironmentVariableW();
    // pub fn GetFirmwareType();
    pub fn GetFullPathNameA(
        lpFileName: LPCSTR, nBufferLength: DWORD, lpBuffer: LPSTR, lpFilePart: *mut LPSTR,
    ) -> DWORD;
    // pub fn GetFullPathNameTransactedA();
    // pub fn GetFullPathNameTransactedW();
    pub fn GetFullPathNameW(
        lpFileName: LPCWSTR, nBufferLength: DWORD, lpBuffer: LPWSTR, lpFilePart: *mut LPWSTR,
    ) -> DWORD;
    // pub fn GetGeoInfoA();
    // pub fn GetGeoInfoW();
    // pub fn GetHandleInformation();
    // pub fn GetLargePageMinimum();
    pub fn GetLargestConsoleWindowSize(hConsoleOutput: HANDLE) -> COORD;
    pub fn GetLastError() -> DWORD;
    // pub fn GetLocalTime();
    // pub fn GetLocaleInfoA();
    // pub fn GetLocaleInfoEx();
    // pub fn GetLocaleInfoW();
    // pub fn GetLogicalDriveStringsA();
    pub fn GetLogicalDriveStringsW(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD;
    pub fn GetLogicalDrives() -> DWORD;
    // pub fn GetLogicalProcessorInformation();
    // pub fn GetLogicalProcessorInformationEx();
    pub fn GetLongPathNameA(lpszShortPath: LPCSTR, lpszLongPath: LPSTR, cchBuffer: DWORD) -> DWORD;
    // pub fn GetLongPathNameTransactedA();
    // pub fn GetLongPathNameTransactedW();
    pub fn GetLongPathNameW(
        lpszShortPath: LPCWSTR, lpszLongPath: LPWSTR, cchBuffer: DWORD,
    ) -> DWORD;
    // pub fn GetMailslotInfo();
    // pub fn GetMaximumProcessorCount();
    // pub fn GetMaximumProcessorGroupCount();
    // pub fn GetMemoryErrorHandlingCapabilities();
    // pub fn GetModuleFileNameA();
    // pub fn GetModuleFileNameW();
    pub fn GetModuleHandleA(lpModuleName: LPCSTR) -> HMODULE;
    // pub fn GetModuleHandleExA();
    // pub fn GetModuleHandleExW();
    pub fn GetModuleHandleW(lpModuleName: LPCWSTR) -> HMODULE;
    // pub fn GetNLSVersion();
    // pub fn GetNLSVersionEx();
    // pub fn GetNamedPipeAttribute();
    // pub fn GetNamedPipeClientComputerNameA();
    // pub fn GetNamedPipeClientComputerNameW();
    // pub fn GetNamedPipeClientProcessId();
    // pub fn GetNamedPipeClientSessionId();
    // pub fn GetNamedPipeHandleStateA();
    // pub fn GetNamedPipeHandleStateW();
    // pub fn GetNamedPipeInfo();
    // pub fn GetNamedPipeServerProcessId();
    // pub fn GetNamedPipeServerSessionId();
    // pub fn GetNativeSystemInfo();
    // #[cfg(target_arch = "x86_64")]
    // pub fn GetNextUmsListItem();
    // pub fn GetNumaAvailableMemoryNode();
    // pub fn GetNumaAvailableMemoryNodeEx();
    // pub fn GetNumaHighestNodeNumber();
    // pub fn GetNumaNodeNumberFromHandle();
    // pub fn GetNumaNodeProcessorMask();
    // pub fn GetNumaNodeProcessorMaskEx();
    // pub fn GetNumaProcessorNode();
    // pub fn GetNumaProcessorNodeEx();
    // pub fn GetNumaProximityNode();
    // pub fn GetNumaProximityNodeEx();
    // pub fn GetNumberFormatA();
    // pub fn GetNumberFormatEx();
    // pub fn GetNumberFormatW();
    pub fn GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: LPDWORD) -> BOOL;
    pub fn GetNumberOfConsoleMouseButtons(lpNumberOfMouseButtons: LPDWORD) -> BOOL;
    // pub fn GetOEMCP();
    // pub fn GetOverlappedResult();
    // pub fn GetOverlappedResultEx();
    // pub fn GetPackageApplicationIds();
    // pub fn GetPackageFamilyName();
    // pub fn GetPackageFullName();
    // pub fn GetPackageId();
    // pub fn GetPackageInfo();
    // pub fn GetPackagePath();
    // pub fn GetPackagePathByFullName();
    // pub fn GetPackagesByPackageFamily();
    // pub fn GetPhysicallyInstalledSystemMemory();
    // pub fn GetPriorityClass();
    // pub fn GetPrivateProfileIntA();
    // pub fn GetPrivateProfileIntW();
    // pub fn GetPrivateProfileSectionA();
    // pub fn GetPrivateProfileSectionNamesA();
    // pub fn GetPrivateProfileSectionNamesW();
    // pub fn GetPrivateProfileSectionW();
    // pub fn GetPrivateProfileStringA();
    // pub fn GetPrivateProfileStringW();
    // pub fn GetPrivateProfileStructA();
    // pub fn GetPrivateProfileStructW();
    pub fn GetProcAddress(hModule: HMODULE, lpProcName: LPCSTR) -> FARPROC;
    // pub fn GetProcessAffinityMask();
    // pub fn GetProcessDEPPolicy();
    // pub fn GetProcessGroupAffinity();
    // pub fn GetProcessHandleCount();
    // pub fn GetProcessHeap();
    // pub fn GetProcessHeaps();
    // pub fn GetProcessId();
    // pub fn GetProcessIdOfThread();
    // pub fn GetProcessInformation();
    // pub fn GetProcessIoCounters();
    // pub fn GetProcessMitigationPolicy();
    // pub fn GetProcessPreferredUILanguages();
    // pub fn GetProcessPriorityBoost();
    // pub fn GetProcessShutdownParameters();
    pub fn GetProcessTimes(
        hProcess: HANDLE, lpCreationTime: LPFILETIME, lpExitTime: LPFILETIME,
        lpKernelTime: LPFILETIME, lpUserTime: LPFILETIME,
    ) -> BOOL;
    // pub fn GetProcessVersion();
    // pub fn GetProcessWorkingSetSize();
    // pub fn GetProcessWorkingSetSizeEx();
    // pub fn GetProcessorSystemCycleTime();
    // pub fn GetProductInfo();
    // pub fn GetProfileIntA();
    // pub fn GetProfileIntW();
    // pub fn GetProfileSectionA();
    // pub fn GetProfileSectionW();
    // pub fn GetProfileStringA();
    // pub fn GetProfileStringW();
    pub fn GetQueuedCompletionStatus(
        CompletionPort: HANDLE, lpNumberOfBytesTransferred: LPDWORD, lpCompletionKey: PULONG_PTR,
        lpOverlapped: *mut LPOVERLAPPED, dwMilliseconds: DWORD,
    ) -> BOOL;
    pub fn GetQueuedCompletionStatusEx(
        CompletionPort: HANDLE, lpCompletionPortEntries: LPOVERLAPPED_ENTRY, ulCount: ULONG,
        ulNumEntriesRemoved: PULONG, dwMilliseconds: DWORD, fAlertable: BOOL,
    ) -> BOOL;
    // pub fn GetShortPathNameA();
    pub fn GetShortPathNameW(
        lpszLongPath: LPCWSTR, lpszShortPath: LPWSTR, cchBuffer: DWORD,
    ) -> DWORD;
    // pub fn GetStagedPackagePathByFullName();
    // pub fn GetStartupInfoA();
    // pub fn GetStartupInfoW();
    // pub fn GetStateFolder();
    pub fn GetStdHandle(nStdHandle: DWORD) -> HANDLE;
    // pub fn GetStringScripts();
    // pub fn GetStringTypeA();
    // pub fn GetStringTypeExA();
    // pub fn GetStringTypeExW();
    // pub fn GetStringTypeW();
    // pub fn GetSystemAppDataKey();
    // pub fn GetSystemDEPPolicy();
    // pub fn GetSystemDefaultLCID();
    // pub fn GetSystemDefaultLangID();
    // pub fn GetSystemDefaultLocaleName();
    // pub fn GetSystemDefaultUILanguage();
    // pub fn GetSystemDirectoryA();
    // pub fn GetSystemDirectoryW();
    // pub fn GetSystemFileCacheSize();
    // pub fn GetSystemFirmwareTable();
    // pub fn GetSystemInfo();
    // pub fn GetSystemPowerStatus();
    // pub fn GetSystemPreferredUILanguages();
    pub fn GetSystemRegistryQuota(pdwQuotaAllowed: PDWORD, pdwQuotaUsed: PDWORD) -> BOOL;
    // pub fn GetSystemTime();
    // pub fn GetSystemTimeAdjustment();
    // pub fn GetSystemTimeAsFileTime();
    // pub fn GetSystemTimePreciseAsFileTime();
    // pub fn GetSystemTimes();
    // pub fn GetSystemWindowsDirectoryA();
    // pub fn GetSystemWindowsDirectoryW();
    // pub fn GetSystemWow64DirectoryA();
    // pub fn GetSystemWow64DirectoryW();
    // pub fn GetTapeParameters();
    // pub fn GetTapePosition();
    // pub fn GetTapeStatus();
    // pub fn GetTempFileNameA();
    pub fn GetTempFileNameW(
        lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: LPWSTR,
    ) -> UINT;
    // pub fn GetTempPathA();
    pub fn GetTempPathW(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD;
    // pub fn GetThreadContext();
    // pub fn GetThreadErrorMode();
    // pub fn GetThreadGroupAffinity();
    // pub fn GetThreadIOPendingFlag();
    // pub fn GetThreadId();
    // pub fn GetThreadIdealProcessorEx();
    // pub fn GetThreadInformation();
    // pub fn GetThreadLocale();
    // pub fn GetThreadPreferredUILanguages();
    // pub fn GetThreadPriority();
    // pub fn GetThreadPriorityBoost();
    // pub fn GetThreadSelectorEntry();
    // pub fn GetThreadTimes();
    // pub fn GetThreadUILanguage();
    // pub fn GetTickCount();
    // pub fn GetTickCount64();
    // pub fn GetTimeFormatA();
    // pub fn GetTimeFormatEx();
    // pub fn GetTimeFormatW();
    // pub fn GetTimeZoneInformation();
    // pub fn GetTimeZoneInformationForYear();
    // pub fn GetUILanguageInfo();
    // #[cfg(target_arch = "x86_64")]
    // pub fn GetUmsCompletionListEvent();
    // #[cfg(target_arch = "x86_64")]
    // pub fn GetUmsSystemThreadInformation();
    // pub fn GetUserDefaultLCID();
    // pub fn GetUserDefaultLangID();
    // pub fn GetUserDefaultLocaleName();
    // pub fn GetUserDefaultUILanguage();
    // pub fn GetUserGeoID();
    // pub fn GetUserPreferredUILanguages();
    // pub fn GetVersion();
    // pub fn GetVersionExA();
    // pub fn GetVersionExW();
    // pub fn GetVolumeInformationA();
    pub fn GetVolumeInformationByHandleW(
        hFile: HANDLE, lpVolumeNameBuffer: LPWSTR, nVolumeNameSize: DWORD,
        lpVolumeSerialNumber: LPDWORD, lpMaximumComponentLength: LPDWORD,
        lpFileSystemFlags: LPDWORD, lpFileSystemNameBuffer: LPWSTR, nFileSystemNameSize: DWORD,
    ) -> BOOL;
    pub fn GetVolumeInformationW(
        lpRootPathName: LPCWSTR, lpVolumeNameBuffer: LPWSTR, nVolumeNameSize: DWORD,
        lpVolumeSerialNumber: LPDWORD, lpMaximumComponentLength: LPDWORD,
        lpFileSystemFlags: LPDWORD, lpFileSystemNameBuffer: LPWSTR, nFileSystemNameSize: DWORD,
    ) -> BOOL;
    // pub fn GetVolumeNameForVolumeMountPointA();
    pub fn GetVolumeNameForVolumeMountPointW(
        lpszVolumeMountPoint: LPCWSTR, lpszVolumeName: LPWSTR, cchBufferLength: DWORD,
    ) -> BOOL;
    // pub fn GetVolumePathNameA();
    pub fn GetVolumePathNameW(
        lpszFileName: LPCWSTR, lpszVolumePathName: LPWSTR, cchBufferLength: DWORD,
    ) -> BOOL;
    // pub fn GetVolumePathNamesForVolumeNameA();
    pub fn GetVolumePathNamesForVolumeNameW(
        lpszVolumeName: LPCWSTR, lpszVolumePathNames: LPWCH, cchBufferLength: DWORD,
        lpcchReturnLength: PDWORD,
    ) -> BOOL;
    // pub fn GetWindowsDirectoryA();
    // pub fn GetWindowsDirectoryW();
    // pub fn GetWriteWatch();
    // #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
    // pub fn GetXStateFeaturesMask();
    // pub fn GlobalAddAtomA();
    // pub fn GlobalAddAtomExA();
    // pub fn GlobalAddAtomExW();
    // pub fn GlobalAddAtomW();
    // pub fn GlobalAlloc();
    // pub fn GlobalCompact();
    // pub fn GlobalDeleteAtom();
    // pub fn GlobalFindAtomA();
    // pub fn GlobalFindAtomW();
    // pub fn GlobalFix();
    // pub fn GlobalFlags();
    // pub fn GlobalFree();
    // pub fn GlobalGetAtomNameA();
    // pub fn GlobalGetAtomNameW();
    // pub fn GlobalHandle();
    // pub fn GlobalLock();
    // pub fn GlobalMemoryStatus();
    // pub fn GlobalMemoryStatusEx();
    // pub fn GlobalReAlloc();
    // pub fn GlobalSize();
    // pub fn GlobalUnWire();
    // pub fn GlobalUnfix();
    // pub fn GlobalUnlock();
    // pub fn GlobalWire();
    // pub fn Heap32First();
    // pub fn Heap32ListFirst();
    // pub fn Heap32ListNext();
    // pub fn Heap32Next();
    // pub fn HeapAlloc();
    // pub fn HeapCompact();
    // pub fn HeapCreate();
    // pub fn HeapDestroy();
    // pub fn HeapFree();
    // pub fn HeapLock();
    // pub fn HeapQueryInformation();
    // pub fn HeapReAlloc();
    // pub fn HeapSetInformation();
    // pub fn HeapSize();
    // pub fn HeapSummary();
    // pub fn HeapUnlock();
    // pub fn HeapValidate();
    // pub fn HeapWalk();
    // pub fn InitAtomTable();
    // pub fn InitOnceBeginInitialize();
    // pub fn InitOnceComplete();
    // pub fn InitOnceExecuteOnce();
    // pub fn InitOnceInitialize();
    // pub fn InitializeConditionVariable();
    // pub fn InitializeContext();
    // pub fn InitializeCriticalSection();
    // pub fn InitializeCriticalSectionAndSpinCount();
    // pub fn InitializeCriticalSectionEx();
    // pub fn InitializeProcThreadAttributeList();
    // pub fn InitializeSListHead();
    // pub fn InitializeSRWLock();
    // pub fn InitializeSynchronizationBarrier();
    // pub fn InstallELAMCertificateInfo();
    // #[cfg(target_arch = "x86")]
    // pub fn InterlockedCompareExchange();
    // #[cfg(target_arch = "x86")]
    // pub fn InterlockedCompareExchange64();
    // #[cfg(target_arch = "x86")]
    // pub fn InterlockedDecrement();
    // #[cfg(target_arch = "x86")]
    // pub fn InterlockedExchange();
    // #[cfg(target_arch = "x86")]
    // pub fn InterlockedExchangeAdd();
    // pub fn InterlockedFlushSList();
    // #[cfg(target_arch = "x86")]
    // pub fn InterlockedIncrement();
    // pub fn InterlockedPopEntrySList();
    // pub fn InterlockedPushEntrySList();
    // pub fn InterlockedPushListSList();
    // pub fn InterlockedPushListSListEx();
    // pub fn IsBadCodePtr();
    // pub fn IsBadHugeReadPtr();
    // pub fn IsBadHugeWritePtr();
    // pub fn IsBadReadPtr();
    // pub fn IsBadStringPtrA();
    // pub fn IsBadStringPtrW();
    // pub fn IsBadWritePtr();
    // pub fn IsDBCSLeadByte();
    // pub fn IsDBCSLeadByteEx();
    // pub fn IsDebuggerPresent();
    // pub fn IsNLSDefinedString();
    // pub fn IsNativeVhdBoot();
    // pub fn IsNormalizedString();
    // pub fn IsProcessCritical();
    // pub fn IsProcessInJob();
    // pub fn IsProcessorFeaturePresent();
    // pub fn IsSystemResumeAutomatic();
    // pub fn IsThreadAFiber();
    // pub fn IsThreadpoolTimerSet();
    // pub fn IsValidCodePage();
    // pub fn IsValidLanguageGroup();
    // pub fn IsValidLocale();
    // pub fn IsValidLocaleName();
    // pub fn IsValidNLSVersion();
    // pub fn IsWow64Process();
    // pub fn K32EmptyWorkingSet();
    // pub fn K32EnumDeviceDrivers();
    // pub fn K32EnumPageFilesA();
    // pub fn K32EnumPageFilesW();
    // pub fn K32EnumProcessModules();
    // pub fn K32EnumProcessModulesEx();
    // pub fn K32EnumProcesses();
    // pub fn K32GetDeviceDriverBaseNameA();
    // pub fn K32GetDeviceDriverBaseNameW();
    // pub fn K32GetDeviceDriverFileNameA();
    // pub fn K32GetDeviceDriverFileNameW();
    // pub fn K32GetMappedFileNameA();
    // pub fn K32GetMappedFileNameW();
    // pub fn K32GetModuleBaseNameA();
    // pub fn K32GetModuleBaseNameW();
    // pub fn K32GetModuleFileNameExA();
    // pub fn K32GetModuleFileNameExW();
    // pub fn K32GetModuleInformation();
    // pub fn K32GetPerformanceInfo();
    // pub fn K32GetProcessImageFileNameA();
    // pub fn K32GetProcessImageFileNameW();
    pub fn K32GetProcessMemoryInfo(
        Process: HANDLE, ppsmemCounters: PPROCESS_MEMORY_COUNTERS, cb: DWORD,
    ) -> BOOL;
    // pub fn K32GetWsChanges();
    // pub fn K32GetWsChangesEx();
    // pub fn K32InitializeProcessForWsWatch();
    // pub fn K32QueryWorkingSet();
    // pub fn K32QueryWorkingSetEx();
    // pub fn LCIDToLocaleName();
    // pub fn LCMapStringA();
    // pub fn LCMapStringEx();
    // pub fn LCMapStringW();
    // pub fn LeaveCriticalSection();
    // pub fn LeaveCriticalSectionWhenCallbackReturns();
    // pub fn LoadAppInitDlls();
    // pub fn LoadLibraryA();
    // pub fn LoadLibraryExA();
    // pub fn LoadLibraryExW();
    pub fn LoadLibraryW(lpFileName: LPCWSTR) -> HMODULE;
    // pub fn LoadModule();
    // pub fn LoadPackagedLibrary();
    // pub fn LoadResource();
    // pub fn LoadStringBaseExW();
    // pub fn LoadStringBaseW();
    // pub fn LocalAlloc();
    // pub fn LocalCompact();
    pub fn LocalFileTimeToFileTime(
        lpLocalFileTime: *const FILETIME, lpFileTime: LPFILETIME,
    ) -> BOOL;
    // pub fn LocalFlags();
    pub fn LocalFree(hMem: HLOCAL) -> HLOCAL;
    // pub fn LocalHandle();
    // pub fn LocalLock();
    // pub fn LocalReAlloc();
    // pub fn LocalShrink();
    // pub fn LocalSize();
    // pub fn LocalUnlock();
    // pub fn LocaleNameToLCID();
    // #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
    // pub fn LocateXStateFeature();
    pub fn LockFile(
        hFile: HANDLE, dwFileOffsetLow: DWORD, dwFileOffsetHigh: DWORD,
        nNumberOfBytesToLockLow: DWORD, nNumberOfBytesToLockHigh: DWORD,
    ) -> BOOL;
    pub fn LockFileEx(
        hFile: HANDLE, dwFlags: DWORD, dwReserved: DWORD, nNumberOfBytesToLockLow: DWORD,
        nNumberOfBytesToLockHigh: DWORD, lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
    // pub fn LockResource();
    // pub fn MapUserPhysicalPages();
    // pub fn MapUserPhysicalPagesScatter();
    // pub fn MapViewOfFile();
    // pub fn MapViewOfFileEx();
    // pub fn MapViewOfFileExNuma();
    // pub fn MapViewOfFileFromApp();
    // pub fn Module32First();
    // pub fn Module32FirstW();
    // pub fn Module32Next();
    // pub fn Module32NextW();
    // pub fn MoveFileA();
    // pub fn MoveFileExA();
    // pub fn MoveFileExW();
    // pub fn MoveFileTransactedA();
    // pub fn MoveFileTransactedW();
    // pub fn MoveFileW();
    // pub fn MoveFileWithProgressA();
    // pub fn MoveFileWithProgressW();
    // pub fn MulDiv();
    // pub fn MultiByteToWideChar();
    // pub fn NeedCurrentDirectoryForExePathA();
    // pub fn NeedCurrentDirectoryForExePathW();
    // pub fn NormalizeString();
    // pub fn NotifyMountMgr();
    // pub fn NotifyUILanguageChange();
    // pub fn OOBEComplete();
    // pub fn OpenEventA();
    // pub fn OpenEventW();
    // pub fn OpenFile();
    // pub fn OpenFileById();
    // pub fn OpenFileMappingA();
    // pub fn OpenFileMappingW();
    // pub fn OpenJobObjectA();
    // pub fn OpenJobObjectW();
    // pub fn OpenMutexA();
    // pub fn OpenMutexW();
    // pub fn OpenPackageInfoByFullName();
    // pub fn OpenPrivateNamespaceA();
    // pub fn OpenPrivateNamespaceW();
    pub fn OpenProcess(dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwProcessId: DWORD) -> HANDLE;
    // pub fn OpenSemaphoreA();
    // pub fn OpenSemaphoreW();
    // pub fn OpenState();
    // pub fn OpenStateExplicit();
    // pub fn OpenThread();
    // pub fn OpenWaitableTimerA();
    // pub fn OpenWaitableTimerW();
    // pub fn OutputDebugStringA();
    // pub fn OutputDebugStringW();
    // pub fn PackageFamilyNameFromFullName();
    // pub fn PackageFamilyNameFromId();
    // pub fn PackageFullNameFromId();
    // pub fn PackageIdFromFullName();
    // pub fn PackageNameAndPublisherIdFromFamilyName();
    // pub fn ParseApplicationUserModelId();
    pub fn PeekConsoleInputA(
        hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD,
        lpNumberOfEventsRead: LPDWORD,
    ) -> BOOL;
    pub fn PeekConsoleInputW(
        hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD,
        lpNumberOfEventsRead: LPDWORD,
    ) -> BOOL;
    // pub fn PeekNamedPipe();
    pub fn PostQueuedCompletionStatus(
        CompletionPort: HANDLE, dwNumberOfBytesTransferred: DWORD, dwCompletionKey: ULONG_PTR,
        lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
    // pub fn PowerClearRequest();
    // pub fn PowerCreateRequest();
    // pub fn PowerSetRequest();
    // pub fn PrefetchVirtualMemory();
    // pub fn PrepareTape();
    // pub fn Process32First();
    // pub fn Process32FirstW();
    // pub fn Process32Next();
    // pub fn Process32NextW();
    // pub fn ProcessIdToSessionId();
    // pub fn PssCaptureSnapshot();
    // pub fn PssDuplicateSnapshot();
    // pub fn PssFreeSnapshot();
    // pub fn PssQuerySnapshot();
    // pub fn PssWalkMarkerCreate();
    // pub fn PssWalkMarkerFree();
    // pub fn PssWalkMarkerGetPosition();
    // pub fn PssWalkMarkerRewind();
    // pub fn PssWalkMarkerSeek();
    // pub fn PssWalkMarkerSeekToBeginning();
    // pub fn PssWalkMarkerSetPosition();
    // pub fn PssWalkMarkerTell();
    // pub fn PssWalkSnapshot();
    // pub fn PulseEvent();
    // pub fn PurgeComm();
    // pub fn QueryActCtxSettingsW();
    // pub fn QueryActCtxW();
    // pub fn QueryDepthSList();
    // pub fn QueryDosDeviceA();
    pub fn QueryDosDeviceW(lpDeviceName: LPCWSTR, lpTargetPath: LPWSTR, ucchMax: DWORD) -> DWORD;
    // pub fn QueryFullProcessImageNameA();
    // pub fn QueryFullProcessImageNameW();
    // pub fn QueryIdleProcessorCycleTime();
    // pub fn QueryIdleProcessorCycleTimeEx();
    // pub fn QueryInformationJobObject();
    // pub fn QueryMemoryResourceNotification();
    // pub fn QueryPerformanceCounter();
    // pub fn QueryPerformanceFrequency();
    // pub fn QueryProcessAffinityUpdateMode();
    // pub fn QueryProcessCycleTime();
    // pub fn QueryProtectedPolicy();
    // pub fn QueryThreadCycleTime();
    // pub fn QueryThreadProfiling();
    // pub fn QueryThreadpoolStackInformation();
    // #[cfg(target_arch = "x86_64")]
    // pub fn QueryUmsThreadInformation();
    // pub fn QueryUnbiasedInterruptTime();
    // pub fn QueueUserAPC();
    // pub fn QueueUserWorkItem();
    // pub fn RaiseException();
    // pub fn RaiseFailFastException();
    // pub fn ReOpenFile();
    pub fn ReadConsoleA(
        hConsoleInput: HANDLE, lpBuffer: LPVOID, nNumberOfCharsToRead: DWORD,
        lpNumberOfCharsRead: LPDWORD, pInputControl: PCONSOLE_READCONSOLE_CONTROL,
    ) -> BOOL;
    pub fn ReadConsoleInputA(
        hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD,
        lpNumberOfEventsRead: LPDWORD,
    ) -> BOOL;
    pub fn ReadConsoleInputW(
        hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD,
        lpNumberOfEventsRead: LPDWORD,
    ) -> BOOL;
    pub fn ReadConsoleOutputA(
        hConsoleOutput: HANDLE, lpBuffer: PCHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD,
        lpReadRegion: PSMALL_RECT,
    ) -> BOOL;
    pub fn ReadConsoleOutputAttribute(
        hConsoleOutput: HANDLE, lpAttribute: LPWORD, nLength: DWORD, dwReadCoord: COORD,
        lpNumberOfAttrsRead: LPDWORD,
    ) -> BOOL;
    pub fn ReadConsoleOutputCharacterA(
        hConsoleOutput: HANDLE, lpCharacter: LPSTR, nLength: DWORD, dwReadCoord: COORD,
        lpNumberOfCharsRead: LPDWORD,
    ) -> BOOL;
    pub fn ReadConsoleOutputCharacterW(
        hConsoleOutput: HANDLE, lpCharacter: LPWSTR, nLength: DWORD, dwReadCoord: COORD,
        lpNumberOfCharsRead: LPDWORD,
    ) -> BOOL;
    pub fn ReadConsoleOutputW(
        hConsoleOutput: HANDLE, lpBuffer: PCHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD,
        lpReadRegion: PSMALL_RECT,
    ) -> BOOL;
    pub fn ReadConsoleW(
        hConsoleInput: HANDLE, lpBuffer: LPVOID, nNumberOfCharsToRead: DWORD,
        lpNumberOfCharsRead: LPDWORD, pInputControl: PCONSOLE_READCONSOLE_CONTROL,
    ) -> BOOL;
    pub fn ReadDirectoryChangesW(
        hDirectory: HANDLE, lpBuffer: LPVOID, nBufferLength: DWORD, bWatchSubtree: BOOL,
        dwNotifyFilter: DWORD, lpBytesReturned: LPDWORD, lpOverlapped: LPOVERLAPPED,
        lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE,
    );
    pub fn ReadFile(
        hFile: HANDLE, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, lpNumberOfBytesRead: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
    pub fn ReadFileEx(
        hFile: HANDLE, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, lpOverlapped: LPOVERLAPPED,
        lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE,
    ) -> BOOL;
    pub fn ReadFileScatter(
        hFile: HANDLE, aSegmentArray: *mut FILE_SEGMENT_ELEMENT, nNumberOfBytesToRead: DWORD,
        lpReserved: LPDWORD, lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
    pub fn ReadProcessMemory(
        hProcess: HANDLE, lpBaseAddress: LPCVOID, lpBuffer: LPVOID, nSize: SIZE_T,
        lpNumberOfBytesRead: *mut SIZE_T,
    ) -> BOOL;
    // pub fn ReadThreadProfilingData();
    // pub fn RegisterApplicationRecoveryCallback();
    // pub fn RegisterApplicationRestart();
    // pub fn RegisterBadMemoryNotification();
    // pub fn RegisterWaitForInputIdle();
    // pub fn RegisterWaitForSingleObject();
    // pub fn RegisterWaitForSingleObjectEx();
    // pub fn RegisterWaitUntilOOBECompleted();
    // pub fn ReleaseActCtx();
    // pub fn ReleaseMutex();
    // pub fn ReleaseMutexWhenCallbackReturns();
    // pub fn ReleaseSRWLockExclusive();
    // pub fn ReleaseSRWLockShared();
    // pub fn ReleaseSemaphore();
    // pub fn ReleaseSemaphoreWhenCallbackReturns();
    pub fn RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL;
    // pub fn RemoveDirectoryTransactedA();
    // pub fn RemoveDirectoryTransactedW();
    pub fn RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL;
    // pub fn RemoveDllDirectory();
    // pub fn RemoveLocalAlternateComputerNameA();
    // pub fn RemoveLocalAlternateComputerNameW();
    // pub fn RemoveSecureMemoryCacheCallback();
    // pub fn RemoveVectoredContinueHandler();
    // pub fn RemoveVectoredExceptionHandler();
    // pub fn ReplaceFile();
    // pub fn ReplaceFileA();
    // pub fn ReplaceFileW();
    // pub fn ReplacePartitionUnit();
    // pub fn RequestDeviceWakeup();
    // pub fn RequestWakeupLatency();
    // pub fn ResetEvent();
    // pub fn ResetWriteWatch();
    // pub fn ResolveDelayLoadedAPI();
    // pub fn ResolveDelayLoadsFromDll();
    // pub fn ResolveLocaleName();
    // pub fn RestoreLastError();
    // pub fn ResumeThread();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn RtlAddFunctionTable();
    // pub fn RtlCaptureContext();
    // pub fn RtlCaptureStackBackTrace();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn RtlCompareMemory();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn RtlCopyMemory();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn RtlDeleteFunctionTable();
    // pub fn RtlFillMemory();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn RtlInstallFunctionTableCallback();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn RtlLookupFunctionEntry();
    // pub fn RtlMoveMemory();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn RtlPcToFileHeader();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn RtlRaiseException();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn RtlRestoreContext();
    // pub fn RtlUnwind();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn RtlUnwindEx();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn RtlVirtualUnwind();
    // pub fn RtlZeroMemory();
    pub fn ScrollConsoleScreenBufferA(
        hConsoleOutput: HANDLE, lpScrollRectangle: *const SMALL_RECT,
        lpClipRectangle: *const SMALL_RECT, dwDestinationOrigin: COORD, lpFill: *const CHAR_INFO,
    ) -> BOOL;
    pub fn ScrollConsoleScreenBufferW(
        hConsoleOutput: HANDLE, lpScrollRectangle: *const SMALL_RECT,
        lpClipRectangle: *const SMALL_RECT, dwDestinationOrigin: COORD, lpFill: *const CHAR_INFO,
    ) -> BOOL;
    // pub fn SearchPathA();
    // pub fn SearchPathW();
    // pub fn SetCachedSigningLevel();
    // pub fn SetCalendarInfoA();
    // pub fn SetCalendarInfoW();
    // pub fn SetCommBreak();
    // pub fn SetCommConfig();
    // pub fn SetCommMask();
    // pub fn SetCommState();
    // pub fn SetCommTimeouts();
    // pub fn SetComputerNameA();
    // pub fn SetComputerNameEx2W();
    // pub fn SetComputerNameExA();
    // pub fn SetComputerNameExW();
    // pub fn SetComputerNameW();
    pub fn SetConsoleActiveScreenBuffer(hConsoleOutput: HANDLE) -> BOOL;
    pub fn SetConsoleCP(wCodePageID: UINT) -> BOOL;
    pub fn SetConsoleCtrlHandler(HandlerRoutine: PHANDLER_ROUTINE, Add: BOOL) -> BOOL;
    // pub fn SetConsoleCursor();
    pub fn SetConsoleCursorInfo(
        hConsoleOutput: HANDLE, lpConsoleCursorInfo: *const CONSOLE_CURSOR_INFO,
    ) -> BOOL;
    pub fn SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL;
    pub fn SetConsoleDisplayMode(
        hConsoleOutput: HANDLE, dwFlags: DWORD, lpNewScreenBufferDimensions: PCOORD,
    ) -> BOOL;
    pub fn SetConsoleHistoryInfo(lpConsoleHistoryInfo: PCONSOLE_HISTORY_INFO) -> BOOL;
    pub fn SetConsoleMode(hConsoleHandle: HANDLE, dwMode: DWORD) -> BOOL;
    pub fn SetConsoleOutputCP(wCodePageID: UINT) -> BOOL;
    pub fn SetConsoleScreenBufferInfoEx(
        hConsoleOutput: HANDLE, lpConsoleScreenBufferInfoEx: PCONSOLE_SCREEN_BUFFER_INFOEX,
    ) -> BOOL;
    pub fn SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL;
    pub fn SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL;
    pub fn SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL;
    pub fn SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL;
    pub fn SetConsoleWindowInfo(
        hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: *const SMALL_RECT,
    ) -> BOOL;
    // pub fn SetCriticalSectionSpinCount();
    // pub fn SetCurrentConsoleFontEx();
    pub fn SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL;
    pub fn SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL;
    // pub fn SetDefaultCommConfigA();
    // pub fn SetDefaultCommConfigW();
    // pub fn SetDefaultDllDirectories();
    // pub fn SetDllDirectoryA();
    // pub fn SetDllDirectoryW();
    // pub fn SetDynamicTimeZoneInformation();
    pub fn SetEndOfFile(hFile: HANDLE) -> BOOL;
    // pub fn SetEnvironmentStringsA();
    // pub fn SetEnvironmentStringsW();
    // pub fn SetEnvironmentVariableA();
    // pub fn SetEnvironmentVariableW();
    // pub fn SetErrorMode();
    // pub fn SetEvent();
    // pub fn SetEventWhenCallbackReturns();
    // pub fn SetFileApisToANSI();
    // pub fn SetFileApisToOEM();
    pub fn SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: DWORD) -> BOOL;
    // pub fn SetFileAttributesTransactedA();
    // pub fn SetFileAttributesTransactedW();
    pub fn SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: DWORD) -> BOOL;
    // pub fn SetFileBandwidthReservation();
    // pub fn SetFileCompletionNotificationModes();
    pub fn SetFileInformationByHandle(
        hFile: HANDLE, FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, lpFileInformation: LPVOID,
        dwBufferSize: DWORD,
    ) -> BOOL;
    pub fn SetFileIoOverlappedRange(
        FileHandle: HANDLE, OverlappedRangeStart: PUCHAR, Length: ULONG,
    ) -> BOOL;
    pub fn SetFilePointer(
        hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: PLONG, dwMoveMethod: DWORD,
    ) -> DWORD;
    pub fn SetFilePointerEx(
        hFile: HANDLE, liDistanceToMove: LARGE_INTEGER, lpNewFilePointer: PLARGE_INTEGER,
        dwMoveMethod: DWORD,
    ) -> BOOL;
    // pub fn SetFileShortNameA();
    // pub fn SetFileShortNameW();
    pub fn SetFileTime(
        hFile: HANDLE, lpCreationTime: *const FILETIME, lpLastAccessTime: *const FILETIME,
        lpLastWriteTime: *const FILETIME,
    ) -> BOOL;
    pub fn SetFileValidData(hFile: HANDLE, ValidDataLength: LONGLONG) -> BOOL;
    // pub fn SetFirmwareEnvironmentVariableA();
    // pub fn SetFirmwareEnvironmentVariableExA();
    // pub fn SetFirmwareEnvironmentVariableExW();
    // pub fn SetFirmwareEnvironmentVariableW();
    // pub fn SetHandleCount();
    // pub fn SetHandleInformation();
    // pub fn SetInformationJobObject();
    // pub fn SetLastError();
    // pub fn SetLocalPrimaryComputerNameA();
    // pub fn SetLocalPrimaryComputerNameW();
    // pub fn SetLocalTime();
    // pub fn SetLocaleInfoA();
    // pub fn SetLocaleInfoW();
    // pub fn SetMailslotInfo();
    // pub fn SetMessageWaitingIndicator();
    // pub fn SetNamedPipeAttribute();
    // pub fn SetNamedPipeHandleState();
    // pub fn SetPriorityClass();
    // pub fn SetProcessAffinityMask();
    // pub fn SetProcessAffinityUpdateMode();
    // pub fn SetProcessDEPPolicy();
    // pub fn SetProcessInformation();
    // pub fn SetProcessMitigationPolicy();
    // pub fn SetProcessPreferredUILanguages();
    // pub fn SetProcessPriorityBoost();
    // pub fn SetProcessShutdownParameters();
    // pub fn SetProcessWorkingSetSize();
    // pub fn SetProcessWorkingSetSizeEx();
    // pub fn SetProtectedPolicy();
    // pub fn SetSearchPathMode();
    // pub fn SetStdHandle();
    // pub fn SetStdHandleEx();
    // pub fn SetSystemFileCacheSize();
    // pub fn SetSystemPowerState();
    // pub fn SetSystemTime();
    // pub fn SetSystemTimeAdjustment();
    // pub fn SetTapeParameters();
    // pub fn SetTapePosition();
    // pub fn SetThreadAffinityMask();
    // pub fn SetThreadContext();
    // pub fn SetThreadErrorMode();
    // pub fn SetThreadExecutionState();
    // pub fn SetThreadGroupAffinity();
    // pub fn SetThreadIdealProcessor();
    // pub fn SetThreadIdealProcessorEx();
    // pub fn SetThreadInformation();
    // pub fn SetThreadLocale();
    // pub fn SetThreadPreferredUILanguages();
    // pub fn SetThreadPriority();
    // pub fn SetThreadPriorityBoost();
    // pub fn SetThreadStackGuarantee();
    // pub fn SetThreadUILanguage();
    // pub fn SetThreadpoolStackInformation();
    // pub fn SetThreadpoolThreadMaximum();
    // pub fn SetThreadpoolThreadMinimum();
    // pub fn SetThreadpoolTimer();
    // pub fn SetThreadpoolTimerEx();
    // pub fn SetThreadpoolWait();
    // pub fn SetThreadpoolWaitEx();
    // pub fn SetTimeZoneInformation();
    // pub fn SetTimerQueueTimer();
    // #[cfg(target_arch = "x86_64")]
    // pub fn SetUmsThreadInformation();
    // pub fn SetUnhandledExceptionFilter();
    // pub fn SetUserGeoID();
    // pub fn SetVolumeLabelA();
    // pub fn SetVolumeLabelW();
    // pub fn SetVolumeMountPointA();
    // pub fn SetVolumeMountPointW();
    // pub fn SetWaitableTimer();
    // pub fn SetWaitableTimerEx();
    // #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
    // pub fn SetXStateFeaturesMask();
    // pub fn SetupComm();
    // pub fn SignalObjectAndWait();
    // pub fn SizeofResource();
    // pub fn Sleep();
    // pub fn SleepConditionVariableCS();
    // pub fn SleepConditionVariableSRW();
    // pub fn SleepEx();
    // pub fn StartThreadpoolIo();
    // pub fn SubmitThreadpoolWork();
    // pub fn SuspendThread();
    // pub fn SwitchToFiber();
    // pub fn SwitchToThread();
    // pub fn SystemTimeToFileTime();
    // pub fn SystemTimeToTzSpecificLocalTime();
    // pub fn SystemTimeToTzSpecificLocalTimeEx();
    // pub fn TerminateJobObject();
    // pub fn TerminateProcess();
    // pub fn TerminateThread();
    // pub fn Thread32First();
    // pub fn Thread32Next();
    // pub fn TlsAlloc();
    // pub fn TlsFree();
    // pub fn TlsGetValue();
    // pub fn TlsSetValue();
    // pub fn Toolhelp32ReadProcessMemory();
    // pub fn TransactNamedPipe();
    // pub fn TransmitCommChar();
    // pub fn TryAcquireSRWLockExclusive();
    // pub fn TryAcquireSRWLockShared();
    // pub fn TryEnterCriticalSection();
    // pub fn TrySubmitThreadpoolCallback();
    // pub fn TzSpecificLocalTimeToSystemTime();
    // pub fn TzSpecificLocalTimeToSystemTimeEx();
    // #[cfg(target_arch = "x86_64")]
    // pub fn UmsThreadYield();
    // pub fn UnhandledExceptionFilter();
    pub fn UnlockFile(
        hFile: HANDLE, dwFileOffsetLow: DWORD, dwFileOffsetHigh: DWORD,
        nNumberOfBytesToUnlockLow: DWORD, nNumberOfBytesToUnlockHigh: DWORD,
    ) -> BOOL;
    pub fn UnlockFileEx(
        hFile: HANDLE, dwReserved: DWORD, nNumberOfBytesToUnlockLow: DWORD,
        nNumberOfBytesToUnlockHigh: DWORD, lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
    // pub fn UnmapViewOfFile();
    // pub fn UnmapViewOfFileEx();
    // pub fn UnregisterApplicationRecoveryCallback();
    // pub fn UnregisterApplicationRestart();
    // pub fn UnregisterBadMemoryNotification();
    // pub fn UnregisterWait();
    // pub fn UnregisterWaitEx();
    // pub fn UnregisterWaitUntilOOBECompleted();
    // pub fn UpdateProcThreadAttribute();
    // pub fn UpdateResourceA();
    // pub fn UpdateResourceW();
    // pub fn VerLanguageNameA();
    // pub fn VerLanguageNameW();
    // pub fn VerSetConditionMask();
    // pub fn VerifyScripts();
    // pub fn VerifyVersionInfoA();
    // pub fn VerifyVersionInfoW();
    // pub fn VirtualAlloc();
    // pub fn VirtualAllocEx();
    // pub fn VirtualAllocExNuma();
    // pub fn VirtualFree();
    // pub fn VirtualFreeEx();
    // pub fn VirtualLock();
    // pub fn VirtualProtect();
    // pub fn VirtualProtectEx();
    // pub fn VirtualQuery();
    // pub fn VirtualQueryEx();
    // pub fn VirtualUnlock();
    // pub fn WTSGetActiveConsoleSessionId();
    // pub fn WaitCommEvent();
    // pub fn WaitForDebugEvent();
    // pub fn WaitForMultipleObjects();
    // pub fn WaitForMultipleObjectsEx();
    // pub fn WaitForSingleObject();
    // pub fn WaitForSingleObjectEx();
    // pub fn WaitForThreadpoolIoCallbacks();
    // pub fn WaitForThreadpoolTimerCallbacks();
    // pub fn WaitForThreadpoolWaitCallbacks();
    // pub fn WaitForThreadpoolWorkCallbacks();
    // pub fn WaitNamedPipeA();
    // pub fn WaitNamedPipeW();
    // pub fn WakeAllConditionVariable();
    // pub fn WakeConditionVariable();
    // pub fn WerGetFlags();
    // pub fn WerRegisterFile();
    // pub fn WerRegisterMemoryBlock();
    // pub fn WerRegisterRuntimeExceptionModule();
    // pub fn WerSetFlags();
    // pub fn WerUnregisterFile();
    // pub fn WerUnregisterMemoryBlock();
    // pub fn WerUnregisterRuntimeExceptionModule();
    // pub fn WerpInitiateRemoteRecovery();
    // pub fn WideCharToMultiByte();
    pub fn WinExec(lpCmdLine: LPCSTR, uCmdShow: UINT) -> UINT;
    // pub fn Wow64DisableWow64FsRedirection();
    // pub fn Wow64EnableWow64FsRedirection();
    // pub fn Wow64GetThreadContext();
    // pub fn Wow64GetThreadSelectorEntry();
    // pub fn Wow64RevertWow64FsRedirection();
    // pub fn Wow64SetThreadContext();
    // pub fn Wow64SuspendThread();
    pub fn WriteConsoleA(
        hConsoleOutput: HANDLE, lpBuffer: *const VOID, nNumberOfCharsToWrite: DWORD,
        lpNumberOfCharsWritten: LPDWORD, lpReserved: LPVOID,
    ) -> BOOL;
    pub fn WriteConsoleInputA(
        hConsoleInput: HANDLE, lpBuffer: *const INPUT_RECORD, nLength: DWORD,
        lpNumberOfEventsWritten: LPDWORD,
    ) -> BOOL;
    pub fn WriteConsoleInputW(
        hConsoleInput: HANDLE, lpBuffer: *const INPUT_RECORD, nLength: DWORD,
        lpNumberOfEventsWritten: LPDWORD,
    ) -> BOOL;
    pub fn WriteConsoleOutputA(
        hConsoleOutput: HANDLE, lpBuffer: *const CHAR_INFO, dwBufferSize: COORD,
        dwBufferCoord: COORD, lpWriteRegion: PSMALL_RECT,
    ) -> BOOL;
    pub fn WriteConsoleOutputAttribute(
        hConsoleOutput: HANDLE, lpAttribute: *const WORD, nLength: DWORD, dwWriteCoord: COORD,
        lpNumberOfAttrsWritten: LPDWORD,
    ) -> BOOL;
    pub fn WriteConsoleOutputCharacterA(
        hConsoleOutput: HANDLE, lpCharacter: LPCSTR, nLength: DWORD, dwWriteCoord: COORD,
        lpNumberOfCharsWritten: LPDWORD,
    ) -> BOOL;
    pub fn WriteConsoleOutputCharacterW(
        hConsoleOutput: HANDLE, lpCharacter: LPCWSTR, nLength: DWORD, dwWriteCoord: COORD,
        lpNumberOfCharsWritten: LPDWORD,
    ) -> BOOL;
    pub fn WriteConsoleOutputW(
        hConsoleOutput: HANDLE, lpBuffer: *const CHAR_INFO, dwBufferSize: COORD,
        dwBufferCoord: COORD, lpWriteRegion: PSMALL_RECT,
    ) -> BOOL;
    pub fn WriteConsoleW(
        hConsoleOutput: HANDLE, lpBuffer: *const VOID, nNumberOfCharsToWrite: DWORD,
        lpNumberOfCharsWritten: LPDWORD, lpReserved: LPVOID,
    ) -> BOOL;
    pub fn WriteFile(
        hFile: HANDLE, lpBuffer: LPCVOID, nNumberOfBytesToWrite: DWORD,
        lpNumberOfBytesWritten: LPDWORD, lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
    pub fn WriteFileEx(
        hFile: HANDLE, lpBuffer: LPCVOID, nNumberOfBytesToWrite: DWORD, lpOverlapped: LPOVERLAPPED,
        lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE,
    ) -> BOOL;
    pub fn WriteFileGather(
        hFile: HANDLE, aSegmentArray: *mut FILE_SEGMENT_ELEMENT, nNumberOfBytesToWrite: DWORD,
        lpReserved: LPDWORD, lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
    // pub fn WritePrivateProfileSectionA();
    // pub fn WritePrivateProfileSectionW();
    // pub fn WritePrivateProfileStringA();
    // pub fn WritePrivateProfileStringW();
    // pub fn WritePrivateProfileStructA();
    // pub fn WritePrivateProfileStructW();
    pub fn WriteProcessMemory(
        hProcess: HANDLE, lpBaseAddress: LPVOID, lpBuffer: LPCVOID, nSize: SIZE_T,
        lpNumberOfBytesWritten: *mut SIZE_T,
    ) -> BOOL;
    // pub fn WriteProfileSectionA();
    // pub fn WriteProfileSectionW();
    // pub fn WriteProfileStringA();
    // pub fn WriteProfileStringW();
    // pub fn WriteTapemark();
    // pub fn ZombifyActCtx();
    // pub fn _hread();
    // pub fn _hwrite();
    // pub fn _lclose();
    // pub fn _lcreat();
    // pub fn _llseek();
    // pub fn _lopen();
    // pub fn _lread();
    // pub fn _lwrite();
    // pub fn lstrcat();
    // pub fn lstrcatA();
    // pub fn lstrcatW();
    // pub fn lstrcmp();
    // pub fn lstrcmpA();
    // pub fn lstrcmpW();
    // pub fn lstrcmpi();
    // pub fn lstrcmpiA();
    // pub fn lstrcmpiW();
    // pub fn lstrcpy();
    // pub fn lstrcpyA();
    // pub fn lstrcpyW();
    // pub fn lstrcpyn();
    // pub fn lstrcpynA();
    // pub fn lstrcpynW();
    // pub fn lstrlen();
    // pub fn lstrlenA();
    // pub fn lstrlenW();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn uaw_lstrcmpW();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn uaw_lstrcmpiW();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn uaw_lstrlenW();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn uaw_wcschr();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn uaw_wcscpy();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn uaw_wcsicmp();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn uaw_wcslen();
    // #[cfg(any(target_arch = "arm", target_arch = "x86_64"))]
    // pub fn uaw_wcsrchr();
}