diff options
Diffstat (limited to 'vendor/winapi/src/um/winbase.rs')
-rw-r--r-- | vendor/winapi/src/um/winbase.rs | 2854 |
1 files changed, 0 insertions, 2854 deletions
diff --git a/vendor/winapi/src/um/winbase.rs b/vendor/winapi/src/um/winbase.rs deleted file mode 100644 index 1891738..0000000 --- a/vendor/winapi/src/um/winbase.rs +++ /dev/null @@ -1,2854 +0,0 @@ -// Licensed under the Apache License, Version 2.0 -// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. -// All files in the project carrying such notice may not be copied, modified, or distributed -// except according to those terms. -//! This module defines the 32-Bit Windows Base APIs -use ctypes::{c_char, c_int, c_long, c_void}; -use shared::basetsd::{ - DWORD64, DWORD_PTR, LONG_PTR, PDWORD64, PDWORD_PTR, PSIZE_T, PULONG_PTR, SIZE_T, UINT_PTR, - ULONG_PTR, -}; -use shared::guiddef::GUID; -use shared::minwindef::{ - ATOM, BOOL, BYTE, DWORD, FARPROC, FILETIME, HFILE, HGLOBAL, HLOCAL, HMODULE, HRSRC, LPBOOL, - LPBYTE, LPCVOID, LPDWORD, LPFILETIME, LPVOID, LPWORD, PBOOL, PDWORD, PUCHAR, PULONG, PUSHORT, - UCHAR, UINT, ULONG, USHORT, WORD, -}; -use shared::windef::HWND; -use um::cfgmgr32::MAX_PROFILE_LEN; -use um::fileapi::STREAM_INFO_LEVELS; -use um::libloaderapi::{ - ENUMRESLANGPROCA, ENUMRESLANGPROCW, ENUMRESNAMEPROCA, ENUMRESTYPEPROCA, ENUMRESTYPEPROCW, -}; -use um::minwinbase::{ - FILE_INFO_BY_HANDLE_CLASS, FINDEX_INFO_LEVELS, FINDEX_SEARCH_OPS, GET_FILEEX_INFO_LEVELS, - LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE, LPSECURITY_ATTRIBUTES, PREASON_CONTEXT, -}; -use um::processthreadsapi::{ - LPPROCESS_INFORMATION, LPPROC_THREAD_ATTRIBUTE_LIST, LPSTARTUPINFOA, LPSTARTUPINFOW, - STARTUPINFOA, STARTUPINFOW, -}; -use um::winnt::{ - BOOLEAN, CHAR, DWORDLONG, EXECUTION_STATE, FILE_ID_128, HANDLE, HRESULT, INT, LANGID, - LARGE_INTEGER, LATENCY_TIME, LONG, LPCCH, LPCH, LPCSTR, LPCWSTR, LPOSVERSIONINFOEXA, - LPOSVERSIONINFOEXW, LPSTR, LPWSTR, MAXLONG, PBOOLEAN, PCONTEXT, PCWSTR, PFIRMWARE_TYPE, - PHANDLE, PIO_COUNTERS, PJOB_SET_ARRAY, PLUID, POWER_REQUEST_TYPE, PPERFORMANCE_DATA, - PPROCESSOR_NUMBER, PQUOTA_LIMITS, PRTL_UMS_SCHEDULER_ENTRY_POINT, - PSECURE_MEMORY_CACHE_CALLBACK, PSID, PSID_NAME_USE, PULONGLONG, PVOID, PWOW64_CONTEXT, - PWOW64_LDT_ENTRY, PWSTR, RTL_UMS_THREAD_INFO_CLASS, STATUS_ABANDONED_WAIT_0, STATUS_USER_APC, - STATUS_WAIT_0, SecurityAnonymous, SecurityDelegation, SecurityIdentification, - SecurityImpersonation, THREAD_BASE_PRIORITY_IDLE, THREAD_BASE_PRIORITY_LOWRT, - THREAD_BASE_PRIORITY_MAX, THREAD_BASE_PRIORITY_MIN, ULARGE_INTEGER, VOID, WAITORTIMERCALLBACK, - WCHAR, WOW64_CONTEXT, -}; -#[cfg(target_arch = "x86")] -use um::winnt::PLDT_ENTRY; -use vc::vadefs::va_list; -pub const FILE_BEGIN: DWORD = 0; -pub const FILE_CURRENT: DWORD = 1; -pub const FILE_END: DWORD = 2; -pub const WAIT_FAILED: DWORD = 0xFFFFFFFF; -pub const WAIT_OBJECT_0: DWORD = STATUS_WAIT_0 as u32; -pub const WAIT_ABANDONED: DWORD = STATUS_ABANDONED_WAIT_0 as u32; -pub const WAIT_ABANDONED_0: DWORD = STATUS_ABANDONED_WAIT_0 as u32; -pub const WAIT_IO_COMPLETION: DWORD = STATUS_USER_APC as u32; -pub const FILE_FLAG_WRITE_THROUGH: DWORD = 0x80000000; -pub const FILE_FLAG_OVERLAPPED: DWORD = 0x40000000; -pub const FILE_FLAG_NO_BUFFERING: DWORD = 0x20000000; -pub const FILE_FLAG_RANDOM_ACCESS: DWORD = 0x10000000; -pub const FILE_FLAG_SEQUENTIAL_SCAN: DWORD = 0x08000000; -pub const FILE_FLAG_DELETE_ON_CLOSE: DWORD = 0x04000000; -pub const FILE_FLAG_BACKUP_SEMANTICS: DWORD = 0x02000000; -pub const FILE_FLAG_POSIX_SEMANTICS: DWORD = 0x01000000; -pub const FILE_FLAG_SESSION_AWARE: DWORD = 0x00800000; -pub const FILE_FLAG_OPEN_REPARSE_POINT: DWORD = 0x00200000; -pub const FILE_FLAG_OPEN_NO_RECALL: DWORD = 0x00100000; -pub const FILE_FLAG_FIRST_PIPE_INSTANCE: DWORD = 0x00080000; -pub const FILE_FLAG_OPEN_REQUIRING_OPLOCK: DWORD = 0x00040000; -pub const PROGRESS_CONTINUE: DWORD = 0; -pub const PROGRESS_CANCEL: DWORD = 1; -pub const PROGRESS_STOP: DWORD = 2; -pub const PROGRESS_QUIET: DWORD = 3; -pub const CALLBACK_CHUNK_FINISHED: DWORD = 0x00000000; -pub const CALLBACK_STREAM_SWITCH: DWORD = 0x00000001; -pub const COPY_FILE_FAIL_IF_EXISTS: DWORD = 0x00000001; -pub const COPY_FILE_RESTARTABLE: DWORD = 0x00000002; -pub const COPY_FILE_OPEN_SOURCE_FOR_WRITE: DWORD = 0x00000004; -pub const COPY_FILE_ALLOW_DECRYPTED_DESTINATION: DWORD = 0x00000008; -pub const COPY_FILE_COPY_SYMLINK: DWORD = 0x00000800; -pub const COPY_FILE_NO_BUFFERING: DWORD = 0x00001000; -pub const COPY_FILE_REQUEST_SECURITY_PRIVILEGES: DWORD = 0x00002000; -pub const COPY_FILE_RESUME_FROM_PAUSE: DWORD = 0x00004000; -pub const COPY_FILE_NO_OFFLOAD: DWORD = 0x00040000; -pub const COPY_FILE_IGNORE_EDP_BLOCK: DWORD = 0x00400000; -pub const COPY_FILE_IGNORE_SOURCE_ENCRYPTION: DWORD = 0x00800000; -pub const REPLACEFILE_WRITE_THROUGH: DWORD = 0x00000001; -pub const REPLACEFILE_IGNORE_MERGE_ERRORS: DWORD = 0x00000002; -pub const REPLACEFILE_IGNORE_ACL_ERRORS: DWORD = 0x00000004; -pub const PIPE_ACCESS_INBOUND: DWORD = 0x00000001; -pub const PIPE_ACCESS_OUTBOUND: DWORD = 0x00000002; -pub const PIPE_ACCESS_DUPLEX: DWORD = 0x00000003; -pub const PIPE_CLIENT_END: DWORD = 0x00000000; -pub const PIPE_SERVER_END: DWORD = 0x00000001; -pub const PIPE_WAIT: DWORD = 0x00000000; -pub const PIPE_NOWAIT: DWORD = 0x00000001; -pub const PIPE_READMODE_BYTE: DWORD = 0x00000000; -pub const PIPE_READMODE_MESSAGE: DWORD = 0x00000002; -pub const PIPE_TYPE_BYTE: DWORD = 0x00000000; -pub const PIPE_TYPE_MESSAGE: DWORD = 0x00000004; -pub const PIPE_ACCEPT_REMOTE_CLIENTS: DWORD = 0x00000000; -pub const PIPE_REJECT_REMOTE_CLIENTS: DWORD = 0x00000008; -pub const PIPE_UNLIMITED_INSTANCES: DWORD = 255; -pub const SECURITY_ANONYMOUS: DWORD = SecurityAnonymous << 16; -pub const SECURITY_IDENTIFICATION: DWORD = SecurityIdentification << 16; -pub const SECURITY_IMPERSONATION: DWORD = SecurityImpersonation << 16; -pub const SECURITY_DELEGATION: DWORD = SecurityDelegation << 16; -pub const SECURITY_CONTEXT_TRACKING: DWORD = 0x00040000; -pub const SECURITY_EFFECTIVE_ONLY: DWORD = 0x00080000; -pub const SECURITY_SQOS_PRESENT: DWORD = 0x00100000; -pub const SECURITY_VALID_SQOS_FLAGS: DWORD = 0x001F0000; -FN!{stdcall PFIBER_START_ROUTINE( - lpFiberParameter: LPVOID, -) -> ()} -pub type LPFIBER_START_ROUTINE = PFIBER_START_ROUTINE; -FN!{stdcall PFIBER_CALLOUT_ROUTINE( - lpParameter: LPVOID, -) -> LPVOID} -// FAIL_FAST_* -#[cfg(target_arch = "x86")] -pub type LPLDT_ENTRY = PLDT_ENTRY; -#[cfg(not(target_arch = "x86"))] -pub type LPLDT_ENTRY = LPVOID; // TODO - fix this for 32-bit -//SP_SERIALCOMM -//PST_* -// PCF_* -// SP_* -// BAUD_* -// DATABITS_* -// STOPBITS_* -// PARITY_* -STRUCT!{struct COMMPROP { - wPacketLength: WORD, - wPacketVersion: WORD, - dwServiceMask: DWORD, - dwReserved1: DWORD, - dwMaxTxQueue: DWORD, - dwMaxRxQueue: DWORD, - dwMaxBaud: DWORD, - dwProvSubType: DWORD, - dwProvCapabilities: DWORD, - dwSettableParams: DWORD, - dwSettableBaud: DWORD, - wSettableData: WORD, - wSettableStopParity: WORD, - dwCurrentTxQueue: DWORD, - dwCurrentRxQueue: DWORD, - dwProvSpec1: DWORD, - dwProvSpec2: DWORD, - wcProvChar: [WCHAR; 1], -}} -pub type LPCOMMPROP = *mut COMMPROP; -STRUCT!{struct COMSTAT { - BitFields: DWORD, - cbInQue: DWORD, - cbOutQue: DWORD, -}} -BITFIELD!{COMSTAT BitFields: DWORD [ - fCtsHold set_fCtsHold[0..1], - fDsrHold set_fDsrHold[1..2], - fRlsdHold set_fRlsdHold[2..3], - fXoffHold set_fXoffHold[3..4], - fXoffSent set_fXoffSent[4..5], - fEof set_fEof[5..6], - fTxim set_fTxim[6..7], - fReserved set_fReserved[7..32], -]} -pub type LPCOMSTAT = *mut COMSTAT; -pub const DTR_CONTROL_DISABLE: DWORD = 0x00; -pub const DTR_CONTROL_ENABLE: DWORD = 0x01; -pub const DTR_CONTROL_HANDSHAKE: DWORD = 0x02; -pub const RTS_CONTROL_DISABLE: DWORD = 0x00; -pub const RTS_CONTROL_ENABLE: DWORD = 0x01; -pub const RTS_CONTROL_HANDSHAKE: DWORD = 0x02; -pub const RTS_CONTROL_TOGGLE: DWORD = 0x03; -STRUCT!{struct DCB { - DCBlength: DWORD, - BaudRate: DWORD, - BitFields: DWORD, - wReserved: WORD, - XonLim: WORD, - XoffLim: WORD, - ByteSize: BYTE, - Parity: BYTE, - StopBits: BYTE, - XonChar: c_char, - XoffChar: c_char, - ErrorChar: c_char, - EofChar: c_char, - EvtChar: c_char, - wReserved1: WORD, -}} -BITFIELD!{DCB BitFields: DWORD [ - fBinary set_fBinary[0..1], - fParity set_fParity[1..2], - fOutxCtsFlow set_fOutxCtsFlow[2..3], - fOutxDsrFlow set_fOutxDsrFlow[3..4], - fDtrControl set_fDtrControl[4..6], - fDsrSensitivity set_fDsrSensitivity[6..7], - fTXContinueOnXoff set_fTXContinueOnXoff[7..8], - fOutX set_fOutX[8..9], - fInX set_fInX[9..10], - fErrorChar set_fErrorChar[10..11], - fNull set_fNull[11..12], - fRtsControl set_fRtsControl[12..14], - fAbortOnError set_fAbortOnError[14..15], - fDummy2 set_fDummy2[15..32], -]} -pub type LPDCB = *mut DCB; -STRUCT!{struct COMMTIMEOUTS { - ReadIntervalTimeout: DWORD, - ReadTotalTimeoutMultiplier: DWORD, - ReadTotalTimeoutConstant: DWORD, - WriteTotalTimeoutMultiplier: DWORD, - WriteTotalTimeoutConstant: DWORD, -}} -pub type LPCOMMTIMEOUTS = *mut COMMTIMEOUTS; -STRUCT!{struct COMMCONFIG { - dwSize: DWORD, - wVersion: WORD, - wReserved: WORD, - dcb: DCB, - dwProviderSubType: DWORD, - dwProviderOffset: DWORD, - dwProviderSize: DWORD, - wcProviderData: [WCHAR; 1], -}} -pub type LPCOMMCONFIG = *mut COMMCONFIG; -pub const GMEM_FIXED: UINT = 0x0000; -pub const GMEM_MOVEABLE: UINT = 0x0002; -pub const GMEM_NOCOMPACT: UINT = 0x0010; -pub const GMEM_NODISCARD: UINT = 0x0020; -pub const GMEM_ZEROINIT: UINT = 0x0040; -pub const GMEM_MODIFY: UINT = 0x0080; -pub const GMEM_DISCARDABLE: UINT = 0x0100; -pub const GMEM_NOT_BANKED: UINT = 0x1000; -pub const GMEM_SHARE: UINT = 0x2000; -pub const GMEM_DDESHARE: UINT = 0x2000; -pub const GMEM_NOTIFY: UINT = 0x4000; -pub const GMEM_LOWER: UINT = GMEM_NOT_BANKED; -pub const GMEM_VALID_FLAGS: UINT = 0x7F72; -pub const GMEM_INVALID_HANDLE: UINT = 0x8000; -pub const GHND: UINT = GMEM_MOVEABLE | GMEM_ZEROINIT; -pub const GPTR: UINT = GMEM_FIXED | GMEM_ZEROINIT; -pub const GMEM_DISCARDED: UINT = 0x4000; -pub const GMEM_LOCKCOUNT: UINT = 0x00FF; -STRUCT!{struct MEMORYSTATUS { - dwLength: DWORD, - dwMemoryLoad: DWORD, - dwTotalPhys: SIZE_T, - dwAvailPhys: SIZE_T, - dwTotalPageFile: SIZE_T, - dwAvailPageFile: SIZE_T, - dwTotalVirtual: SIZE_T, - dwAvailVirtual: SIZE_T, -}} -pub type LPMEMORYSTATUS = *mut MEMORYSTATUS; -// NUMA_NO_PREFERRED_NODE -pub const DEBUG_PROCESS: DWORD = 0x00000001; -pub const DEBUG_ONLY_THIS_PROCESS: DWORD = 0x00000002; -pub const CREATE_SUSPENDED: DWORD = 0x00000004; -pub const DETACHED_PROCESS: DWORD = 0x00000008; -pub const CREATE_NEW_CONSOLE: DWORD = 0x00000010; -pub const NORMAL_PRIORITY_CLASS: DWORD = 0x00000020; -pub const IDLE_PRIORITY_CLASS: DWORD = 0x00000040; -pub const HIGH_PRIORITY_CLASS: DWORD = 0x00000080; -pub const REALTIME_PRIORITY_CLASS: DWORD = 0x00000100; -pub const CREATE_NEW_PROCESS_GROUP: DWORD = 0x00000200; -pub const CREATE_UNICODE_ENVIRONMENT: DWORD = 0x00000400; -pub const CREATE_SEPARATE_WOW_VDM: DWORD = 0x00000800; -pub const CREATE_SHARED_WOW_VDM: DWORD = 0x00001000; -pub const CREATE_FORCEDOS: DWORD = 0x00002000; -pub const BELOW_NORMAL_PRIORITY_CLASS: DWORD = 0x00004000; -pub const ABOVE_NORMAL_PRIORITY_CLASS: DWORD = 0x00008000; -pub const INHERIT_PARENT_AFFINITY: DWORD = 0x00010000; -pub const INHERIT_CALLER_PRIORITY: DWORD = 0x00020000; -pub const CREATE_PROTECTED_PROCESS: DWORD = 0x00040000; -pub const EXTENDED_STARTUPINFO_PRESENT: DWORD = 0x00080000; -pub const PROCESS_MODE_BACKGROUND_BEGIN: DWORD = 0x00100000; -pub const PROCESS_MODE_BACKGROUND_END: DWORD = 0x00200000; -pub const CREATE_BREAKAWAY_FROM_JOB: DWORD = 0x01000000; -pub const CREATE_PRESERVE_CODE_AUTHZ_LEVEL: DWORD = 0x02000000; -pub const CREATE_DEFAULT_ERROR_MODE: DWORD = 0x04000000; -pub const CREATE_NO_WINDOW: DWORD = 0x08000000; -pub const PROFILE_USER: DWORD = 0x10000000; -pub const PROFILE_KERNEL: DWORD = 0x20000000; -pub const PROFILE_SERVER: DWORD = 0x40000000; -pub const CREATE_IGNORE_SYSTEM_DEFAULT: DWORD = 0x80000000; -// STACK_SIZE_PARAM_IS_A_RESERVATION -pub const THREAD_PRIORITY_LOWEST: DWORD = THREAD_BASE_PRIORITY_MIN; -pub const THREAD_PRIORITY_BELOW_NORMAL: DWORD = THREAD_PRIORITY_LOWEST + 1; -pub const THREAD_PRIORITY_NORMAL: DWORD = 0; -pub const THREAD_PRIORITY_HIGHEST: DWORD = THREAD_BASE_PRIORITY_MAX; -pub const THREAD_PRIORITY_ABOVE_NORMAL: DWORD = THREAD_PRIORITY_HIGHEST - 1; -pub const THREAD_PRIORITY_ERROR_RETURN: DWORD = MAXLONG as u32; -pub const THREAD_PRIORITY_TIME_CRITICAL: DWORD = THREAD_BASE_PRIORITY_LOWRT; -pub const THREAD_PRIORITY_IDLE: DWORD = THREAD_BASE_PRIORITY_IDLE; -pub const THREAD_MODE_BACKGROUND_BEGIN: DWORD = 0x00010000; -pub const THREAD_MODE_BACKGROUND_END: DWORD = 0x00020000; -pub const VOLUME_NAME_DOS: DWORD = 0x0; -// VOLUME_NAME_* -// FILE_NAME_* -// JIT_DEBUG_* -pub const DRIVE_UNKNOWN: DWORD = 0; -pub const DRIVE_NO_ROOT_DIR: DWORD = 1; -pub const DRIVE_REMOVABLE: DWORD = 2; -pub const DRIVE_FIXED: DWORD = 3; -pub const DRIVE_REMOTE: DWORD = 4; -pub const DRIVE_CDROM: DWORD = 5; -pub const DRIVE_RAMDISK: DWORD = 6; -// pub fn GetFreeSpace(); -pub const FILE_TYPE_UNKNOWN: DWORD = 0x0000; -pub const FILE_TYPE_DISK: DWORD = 0x0001; -pub const FILE_TYPE_CHAR: DWORD = 0x0002; -pub const FILE_TYPE_PIPE: DWORD = 0x0003; -pub const FILE_TYPE_REMOTE: DWORD = 0x8000; -pub const STD_INPUT_HANDLE: DWORD = -10i32 as u32; -pub const STD_OUTPUT_HANDLE: DWORD = -11i32 as u32; -pub const STD_ERROR_HANDLE: DWORD = -12i32 as u32; -pub const NOPARITY: BYTE = 0; -pub const ODDPARITY: BYTE = 1; -pub const EVENPARITY: BYTE = 2; -pub const MARKPARITY: BYTE = 3; -pub const SPACEPARITY: BYTE = 4; -pub const ONESTOPBIT: BYTE = 0; -pub const ONE5STOPBITS: BYTE = 1; -pub const TWOSTOPBITS: BYTE = 2; -pub const IGNORE: DWORD = 0; -pub const INFINITE: DWORD = 0xFFFFFFFF; -pub const CBR_110: DWORD = 110; -pub const CBR_300: DWORD = 300; -pub const CBR_600: DWORD = 600; -pub const CBR_1200: DWORD = 1200; -pub const CBR_2400: DWORD = 2400; -pub const CBR_4800: DWORD = 4800; -pub const CBR_9600: DWORD = 9600; -pub const CBR_14400: DWORD = 14400; -pub const CBR_19200: DWORD = 19200; -pub const CBR_38400: DWORD = 38400; -pub const CBR_56000: DWORD = 56000; -pub const CBR_57600: DWORD = 57600; -pub const CBR_115200: DWORD = 115200; -pub const CBR_128000: DWORD = 128000; -pub const CBR_256000: DWORD = 256000; -// CE_* -// IE_* -// EV_* -pub const SETXOFF: DWORD = 1; -pub const SETXON: DWORD = 2; -pub const SETRTS: DWORD = 3; -pub const CLRRTS: DWORD = 4; -pub const SETDTR: DWORD = 5; -pub const CLRDTR: DWORD = 6; -pub const RESETDEV: DWORD = 7; -pub const SETBREAK: DWORD = 8; -pub const CLRBREAK: DWORD = 9; -pub const PURGE_TXABORT: DWORD = 0x0001; -pub const PURGE_RXABORT: DWORD = 0x0002; -pub const PURGE_TXCLEAR: DWORD = 0x0004; -pub const PURGE_RXCLEAR: DWORD = 0x0008; -pub const MS_CTS_ON: DWORD = 0x0010; -pub const MS_DSR_ON: DWORD = 0x0020; -pub const MS_RING_ON: DWORD = 0x0040; -pub const MS_RLSD_ON: DWORD = 0x0080; -// S_* -// NMPWAIT_* -// FS_* -// OF_* -pub const OFS_MAXPATHNAME: usize = 128; -STRUCT!{struct OFSTRUCT { - cBytes: BYTE, - fFixedDisk: BYTE, - nErrCode: WORD, - Reserved1: WORD, - Reserved2: WORD, - szPathName: [CHAR; OFS_MAXPATHNAME], -}} -pub type POFSTRUCT = *mut OFSTRUCT; -pub type LPOFSTRUCT = *mut OFSTRUCT; -extern "system" { - pub fn GlobalAlloc( - uFlags: UINT, - dwBytes: SIZE_T, - ) -> HGLOBAL; - pub fn GlobalReAlloc( - hMem: HGLOBAL, - dwBytes: SIZE_T, - uFlags: UINT, - ) -> HGLOBAL; - pub fn GlobalSize( - hMem: HGLOBAL, - ) -> SIZE_T; - pub fn GlobalFlags( - hMem: HGLOBAL, - ) -> UINT; - pub fn GlobalLock( - hMem: HGLOBAL, - ) -> LPVOID; - pub fn GlobalHandle( - pMem: LPCVOID, - ) -> HGLOBAL; - pub fn GlobalUnlock( - hMem: HGLOBAL, - ) -> BOOL; - pub fn GlobalFree( - hMem: HGLOBAL, - ) -> HGLOBAL; - pub fn GlobalCompact( - dwMinFree: DWORD, - ) -> SIZE_T; - pub fn GlobalFix( - hMem: HGLOBAL, - ); - pub fn GlobalUnfix( - hMem: HGLOBAL, - ); - pub fn GlobalWire( - hMem: HGLOBAL, - ) -> LPVOID; - pub fn GlobalUnWire( - hMem: HGLOBAL, - ) -> BOOL; - pub fn GlobalMemoryStatus( - lpBuffer: LPMEMORYSTATUS, - ); - pub fn LocalAlloc( - uFlags: UINT, - uBytes: SIZE_T, - ) -> HLOCAL; - pub fn LocalReAlloc( - hMem: HLOCAL, - uBytes: SIZE_T, - uFlags: UINT, - ) -> HLOCAL; - pub fn LocalLock( - hMem: HLOCAL, - ) -> LPVOID; - pub fn LocalHandle( - pMem: LPCVOID, - ) -> HLOCAL; - pub fn LocalUnlock( - hMem: HLOCAL, - ) -> BOOL; - pub fn LocalSize( - hMem: HLOCAL, - ) -> SIZE_T; - pub fn LocalFlags( - hMem: HLOCAL, - ) -> UINT; - pub fn LocalFree( - hMem: HLOCAL, - ) -> HLOCAL; - pub fn LocalShrink( - hMem: HLOCAL, - cbNewSize: UINT, - ) -> SIZE_T; - pub fn LocalCompact( - uMinFree: UINT, - ) -> SIZE_T; -} -// SCS_* -extern "system" { - pub fn GetBinaryTypeA( - lpApplicationName: LPCSTR, - lpBinaryType: LPDWORD, - ) -> BOOL; - pub fn GetBinaryTypeW( - lpApplicationName: LPCWSTR, - lpBinaryType: LPDWORD, - ) -> BOOL; - pub fn GetShortPathNameA( - lpszLongPath: LPCSTR, - lpszShortPath: LPSTR, - cchBuffer: DWORD, - ) -> DWORD; - pub fn GetLongPathNameTransactedA( - lpszShortPath: LPCSTR, - lpszLongPath: LPSTR, - cchBuffer: DWORD, - hTransaction: HANDLE, - ) -> DWORD; - pub fn GetLongPathNameTransactedW( - lpszShortPath: LPCWSTR, - lpszLongPath: LPWSTR, - cchBuffer: DWORD, - hTransaction: HANDLE, - ) -> DWORD; - pub fn GetProcessAffinityMask( - hProcess: HANDLE, - lpProcessAffinityMask: PDWORD_PTR, - lpSystemAffinityMask: PDWORD_PTR, - ) -> BOOL; - pub fn SetProcessAffinityMask( - hProcess: HANDLE, - dwProcessAffinityMask: DWORD, - ) -> BOOL; - pub fn GetProcessIoCounters( - hProcess: HANDLE, - lpIoCounters: PIO_COUNTERS, - ) -> BOOL; - pub fn GetProcessWorkingSetSize( - hProcess: HANDLE, - lpMinimumWorkingSetSize: PSIZE_T, - lpMaximumWorkingSetSize: PSIZE_T, - ) -> BOOL; - pub fn SetProcessWorkingSetSize( - hProcess: HANDLE, - dwMinimumWorkingSetSize: SIZE_T, - dwMaximumWorkingSetSize: SIZE_T, - ) -> BOOL; - pub fn FatalExit( - ExitCode: c_int, - ); - pub fn SetEnvironmentStringsA( - NewEnvironment: LPCH, - ) -> BOOL; - pub fn SwitchToFiber( - lpFiber: LPVOID, - ); - pub fn DeleteFiber( - lpFiber: LPVOID, - ); - pub fn ConvertFiberToThread() -> BOOL; - pub fn CreateFiberEx( - dwStackCommitSize: SIZE_T, - dwStackReserveSize: SIZE_T, - dwFlags: DWORD, - lpStartAddress: LPFIBER_START_ROUTINE, - lpParameter: LPVOID, - ) -> LPVOID; - pub fn ConvertThreadToFiberEx( - lpParameter: LPVOID, - dwFlags: DWORD, - ) -> LPVOID; - pub fn CreateFiber( - dwStackSize: SIZE_T, - lpStartAddress: LPFIBER_START_ROUTINE, - lpParameter: LPVOID, - ) -> LPVOID; - pub fn ConvertThreadToFiber( - lpParameter: LPVOID, - ) -> LPVOID; -} -pub type PUMS_CONTEXT = *mut c_void; -pub type PUMS_COMPLETION_LIST = *mut c_void; -pub type UMS_THREAD_INFO_CLASS = RTL_UMS_THREAD_INFO_CLASS; -pub type PUMS_THREAD_INFO_CLASS = *mut UMS_THREAD_INFO_CLASS; -pub type PUMS_SCHEDULER_ENTRY_POINT = PRTL_UMS_SCHEDULER_ENTRY_POINT; -STRUCT!{struct UMS_SCHEDULER_STARTUP_INFO { - UmsVersion: ULONG, - CompletionList: PUMS_COMPLETION_LIST, - SchedulerProc: PUMS_SCHEDULER_ENTRY_POINT, - SchedulerParam: PVOID, -}} -pub type PUMS_SCHEDULER_STARTUP_INFO = *mut UMS_SCHEDULER_STARTUP_INFO; -STRUCT!{struct UMS_SYSTEM_THREAD_INFORMATION { - UmsVersion: ULONG, - ThreadUmsFlags: ULONG, -}} -BITFIELD!{UMS_SYSTEM_THREAD_INFORMATION ThreadUmsFlags: ULONG [ - IsUmsSchedulerThread set_IsUmsSchedulerThread[0..1], - IsUmsWorkerThread set_IsUmsWorkerThread[1..2], -]} -pub type PUMS_SYSTEM_THREAD_INFORMATION = *mut UMS_SYSTEM_THREAD_INFORMATION; -extern "system" { - #[cfg(target_pointer_width = "64")] - pub fn CreateUmsCompletionList( - UmsCompletionList: *mut PUMS_COMPLETION_LIST, - ) -> BOOL; - #[cfg(target_pointer_width = "64")] - pub fn DequeueUmsCompletionListItems( - UmsCompletionList: PUMS_COMPLETION_LIST, - WaitTimeOut: DWORD, - UmsThreadList: *mut PUMS_CONTEXT, - ) -> BOOL; - #[cfg(target_pointer_width = "64")] - pub fn GetUmsCompletionListEvent( - UmsCompletionList: PUMS_COMPLETION_LIST, - UmsCompletionEvent: PHANDLE, - ) -> BOOL; - #[cfg(target_pointer_width = "64")] - pub fn ExecuteUmsThread( - UmsThread: PUMS_CONTEXT, - ) -> BOOL; - #[cfg(target_pointer_width = "64")] - pub fn UmsThreadYield( - SchedulerParam: PVOID, - ) -> BOOL; - #[cfg(target_pointer_width = "64")] - pub fn DeleteUmsCompletionList( - UmsCompletionList: PUMS_COMPLETION_LIST, - ) -> BOOL; - #[cfg(target_pointer_width = "64")] - pub fn GetCurrentUmsThread() -> PUMS_CONTEXT; - #[cfg(target_pointer_width = "64")] - pub fn GetNextUmsListItem( - UmsContext: PUMS_CONTEXT, - ) -> PUMS_CONTEXT; - #[cfg(target_pointer_width = "64")] - pub fn QueryUmsThreadInformation( - UmsThread: PUMS_CONTEXT, - UmsThreadInfoClass: UMS_THREAD_INFO_CLASS, - UmsThreadInformation: PVOID, - UmsThreadInformationLength: ULONG, - ReturnLength: PULONG, - ) -> BOOL; - #[cfg(target_pointer_width = "64")] - pub fn SetUmsThreadInformation( - UmsThread: PUMS_CONTEXT, - UmsThreadInfoClass: UMS_THREAD_INFO_CLASS, - UmsThreadInformation: PVOID, - UmsThreadInformationLength: ULONG, - ) -> BOOL; - #[cfg(target_pointer_width = "64")] - pub fn DeleteUmsThreadContext( - UmsThread: PUMS_CONTEXT, - ) -> BOOL; - #[cfg(target_pointer_width = "64")] - pub fn CreateUmsThreadContext( - lpUmsThread: *mut PUMS_CONTEXT, - ) -> BOOL; - #[cfg(target_pointer_width = "64")] - pub fn EnterUmsSchedulingMode( - SchedulerStartupInfo: PUMS_SCHEDULER_STARTUP_INFO, - ) -> BOOL; - #[cfg(target_pointer_width = "64")] - pub fn GetUmsSystemThreadInformation( - ThreadHandle: HANDLE, - SystemThreadInfo: PUMS_SYSTEM_THREAD_INFORMATION, - ) -> BOOL; - pub fn SetThreadAffinityMask( - hThread: HANDLE, - dwThreadAffinityMask: DWORD_PTR, - ) -> DWORD_PTR; - pub fn SetProcessDEPPolicy( - dwFlags: DWORD, - ) -> BOOL; - pub fn GetProcessDEPPolicy( - hProcess: HANDLE, - lpFlags: LPDWORD, - lpPermanent: PBOOL, - ) -> BOOL; - pub fn RequestWakeupLatency( - latency: LATENCY_TIME, - ) -> BOOL; - pub fn IsSystemResumeAutomatic() -> BOOL; - pub fn GetThreadSelectorEntry( - hThread: HANDLE, - dwSelector: DWORD, - lpSelectorEntry: LPLDT_ENTRY, - ) -> BOOL; - pub fn SetThreadExecutionState( - esFlags: EXECUTION_STATE, - ) -> EXECUTION_STATE; - pub fn PowerCreateRequest( - Context: PREASON_CONTEXT, - ) -> HANDLE; - pub fn PowerSetRequest( - PowerRequest: HANDLE, - RequestType: POWER_REQUEST_TYPE, - ) -> BOOL; - pub fn PowerClearRequest( - PowerRequest: HANDLE, - RequestType: POWER_REQUEST_TYPE, - ) -> BOOL; - pub fn RestoreLastError( - dwErrCode: DWORD, - ); -} -pub const FILE_SKIP_COMPLETION_PORT_ON_SUCCESS: UCHAR = 0x1; -pub const FILE_SKIP_SET_EVENT_ON_HANDLE: UCHAR = 0x2; -extern "system" { - pub fn SetFileCompletionNotificationModes( - FileHandle: HANDLE, - Flags: UCHAR, - ) -> BOOL; -} -pub const SEM_FAILCRITICALERRORS: UINT = 0x0001; -pub const SEM_NOGPFAULTERRORBOX: UINT = 0x0002; -pub const SEM_NOALIGNMENTFAULTEXCEPT: UINT = 0x0004; -pub const SEM_NOOPENFILEERRORBOX: UINT = 0x8000; -extern "system" { - pub fn Wow64GetThreadContext( - hThread: HANDLE, - lpContext: PWOW64_CONTEXT, - ) -> BOOL; - pub fn Wow64SetThreadContext( - hThread: HANDLE, - lpContext: *const WOW64_CONTEXT, - ) -> BOOL; - pub fn Wow64GetThreadSelectorEntry( - hThread: HANDLE, - dwSelector: DWORD, - lpSelectorEntry: PWOW64_LDT_ENTRY, - ) -> BOOL; - pub fn Wow64SuspendThread( - hThread: HANDLE, - ) -> DWORD; - pub fn DebugSetProcessKillOnExit( - KillOnExit: BOOL, - ) -> BOOL; - pub fn DebugBreakProcess( - Process: HANDLE, - ) -> BOOL; - pub fn PulseEvent( - hEvent: HANDLE, - ) -> BOOL; - pub fn GlobalDeleteAtom( - nAtom: ATOM, - ) -> ATOM; - pub fn InitAtomTable( - nSize: DWORD, - ) -> BOOL; - pub fn DeleteAtom( - nAtom: ATOM, - ) -> ATOM; - pub fn SetHandleCount( - uNumber: UINT, - ) -> UINT; - pub fn RequestDeviceWakeup( - hDevice: HANDLE, - ) -> BOOL; - pub fn CancelDeviceWakeupRequest( - hDevice: HANDLE, - ) -> BOOL; - pub fn GetDevicePowerState( - hDevice: HANDLE, - pfOn: *mut BOOL, - ) -> BOOL; - pub fn SetMessageWaitingIndicator( - hMsgIndicator: HANDLE, - ulMsgCount: ULONG, - ) -> BOOL; - pub fn SetFileShortNameA( - hFile: HANDLE, - lpShortName: LPCSTR, - ) -> BOOL; - pub fn SetFileShortNameW( - hFile: HANDLE, - lpShortName: LPCWSTR, - ) -> BOOL; -} -pub const HANDLE_FLAG_INHERIT: DWORD = 0x00000001; -pub const HANDLE_FLAG_PROTECT_FROM_CLOSE: DWORD = 0x00000002; -extern "system" { - pub fn LoadModule( - lpModuleName: LPCSTR, - lpParameterBlock: LPVOID, - ) -> DWORD; - pub fn WinExec( - lpCmdLine: LPCSTR, - uCmdShow: UINT, - ) -> UINT; - // ClearCommBreak - // ClearCommError - // SetupComm - // EscapeCommFunction - // GetCommConfig - // GetCommMask - // GetCommProperties - // GetCommModemStatus - // GetCommState - // GetCommTimeouts - // PurgeComm - // SetCommBreak - // SetCommConfig - // SetCommMask - // SetCommState - // SetCommTimeouts - // TransmitCommChar - // WaitCommEvent - pub fn SetTapePosition( - hDevice: HANDLE, - dwPositionMethod: DWORD, - dwPartition: DWORD, - dwOffsetLow: DWORD, - dwOffsetHigh: DWORD, - bImmediate: BOOL, - ) -> DWORD; - pub fn GetTapePosition( - hDevice: HANDLE, - dwPositionType: DWORD, - lpdwPartition: LPDWORD, - lpdwOffsetLow: LPDWORD, - lpdwOffsetHigh: LPDWORD, - ) -> DWORD; - pub fn PrepareTape( - hDevice: HANDLE, - dwOperation: DWORD, - bImmediate: BOOL, - ) -> DWORD; - pub fn EraseTape( - hDevice: HANDLE, - dwEraseType: DWORD, - bImmediate: BOOL, - ) -> DWORD; - pub fn CreateTapePartition( - hDevice: HANDLE, - dwPartitionMethod: DWORD, - dwCount: DWORD, - dwSize: DWORD, - ) -> DWORD; - pub fn WriteTapemark( - hDevice: HANDLE, - dwTapemarkType: DWORD, - dwTapemarkCount: DWORD, - bImmediate: BOOL, - ) -> DWORD; - pub fn GetTapeStatus( - hDevice: HANDLE, - ) -> DWORD; - pub fn GetTapeParameters( - hDevice: HANDLE, - dwOperation: DWORD, - lpdwSize: LPDWORD, - lpTapeInformation: LPVOID, - ) -> DWORD; - pub fn SetTapeParameters( - hDevice: HANDLE, - dwOperation: DWORD, - lpTapeInformation: LPVOID, - ) -> DWORD; - pub fn MulDiv( - nNumber: c_int, - nNumerator: c_int, - nDenominator: c_int, - ) -> c_int; -} -ENUM!{enum DEP_SYSTEM_POLICY_TYPE { - DEPPolicyAlwaysOff = 0, - DEPPolicyAlwaysOn, - DEPPolicyOptIn, - DEPPolicyOptOut, - DEPTotalPolicyCount, -}} -extern "system" { - pub fn GetSystemDEPPolicy() -> DEP_SYSTEM_POLICY_TYPE; - pub fn GetSystemRegistryQuota( - pdwQuotaAllowed: PDWORD, - pdwQuotaUsed: PDWORD, - ) -> BOOL; - pub fn FileTimeToDosDateTime( - lpFileTime: *const FILETIME, - lpFatDate: LPWORD, - lpFatTime: LPWORD, - ) -> BOOL; - pub fn DosDateTimeToFileTime( - wFatDate: WORD, - wFatTime: WORD, - lpFileTime: LPFILETIME, - ) -> BOOL; - pub fn FormatMessageA( - dwFlags: DWORD, - lpSource: LPCVOID, - dwMessageId: DWORD, - dwLanguageId: DWORD, - lpBuffer: LPSTR, - nSize: DWORD, - Arguments: *mut va_list, - ) -> DWORD; - pub fn FormatMessageW( - dwFlags: DWORD, - lpSource: LPCVOID, - dwMessageId: DWORD, - dwLanguageId: DWORD, - lpBuffer: LPWSTR, - nSize: DWORD, - Arguments: *mut va_list, - ) -> DWORD; -} -pub const FORMAT_MESSAGE_IGNORE_INSERTS: DWORD = 0x00000200; -pub const FORMAT_MESSAGE_FROM_STRING: DWORD = 0x00000400; -pub const FORMAT_MESSAGE_FROM_HMODULE: DWORD = 0x00000800; -pub const FORMAT_MESSAGE_FROM_SYSTEM: DWORD = 0x00001000; -pub const FORMAT_MESSAGE_ARGUMENT_ARRAY: DWORD = 0x00002000; -pub const FORMAT_MESSAGE_MAX_WIDTH_MASK: DWORD = 0x000000FF; -pub const FORMAT_MESSAGE_ALLOCATE_BUFFER: DWORD = 0x00000100; -extern "system" { - pub fn CreateMailslotA( - lpName: LPCSTR, - nMaxMessageSize: DWORD, - lReadTimeout: DWORD, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - ) -> HANDLE; - pub fn CreateMailslotW( - lpName: LPCWSTR, - nMaxMessageSize: DWORD, - lReadTimeout: DWORD, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - ) -> HANDLE; - pub fn GetMailslotInfo( - hMailslot: HANDLE, - lpMaxMessageSize: LPDWORD, - lpNextSize: LPDWORD, - lpMessageCount: LPDWORD, - lpReadTimeout: LPDWORD, - ) -> BOOL; - pub fn SetMailslotInfo( - hMailslot: HANDLE, - lReadTimeout: DWORD, - ) -> BOOL; - // pub fn EncryptFileA(); - // pub fn EncryptFileW(); - // pub fn DecryptFileA(); - // pub fn DecryptFileW(); - // pub fn FileEncryptionStatusA(); - // pub fn FileEncryptionStatusW(); - // pub fn OpenEncryptedFileRawA(); - // pub fn OpenEncryptedFileRawW(); - // pub fn ReadEncryptedFileRaw(); - // pub fn WriteEncryptedFileRaw(); - // pub fn CloseEncryptedFileRaw(); - pub fn lstrcmpA( - lpString1: LPCSTR, - lpString2: LPCSTR, - ) -> c_int; - pub fn lstrcmpW( - lpString1: LPCWSTR, - lpString2: LPCWSTR, - ) -> c_int; - pub fn lstrcmpiA( - lpString1: LPCSTR, - lpString2: LPCSTR, - ) -> c_int; - pub fn lstrcmpiW( - lpString1: LPCWSTR, - lpString2: LPCWSTR, - ) -> c_int; - pub fn lstrcpynA( - lpString1: LPSTR, - lpString2: LPCSTR, - iMaxLength: c_int, - ) -> LPSTR; - pub fn lstrcpynW( - lpString1: LPWSTR, - lpString2: LPCWSTR, - iMaxLength: c_int, - ) -> LPWSTR; - pub fn lstrcpyA( - lpString1: LPSTR, - lpString2: LPCSTR, - ) -> LPSTR; - pub fn lstrcpyW( - lpString1: LPWSTR, - lpString2: LPCWSTR, - ) -> LPWSTR; - pub fn lstrcatA( - lpString1: LPSTR, - lpString2: LPCSTR, - ) -> LPSTR; - pub fn lstrcatW( - lpString1: LPWSTR, - lpString2: LPCWSTR, - ) -> LPWSTR; - pub fn lstrlenA( - lpString: LPCSTR, - ) -> c_int; - pub fn lstrlenW( - lpString: LPCWSTR, - ) -> c_int; - pub fn OpenFile( - lpFileName: LPCSTR, - lpReOpenBuff: LPOFSTRUCT, - uStyle: UINT, - ) -> HFILE; - pub fn _lopen( - lpPathName: LPCSTR, - iReadWrite: c_int, - ) -> HFILE; - pub fn _lcreat( - lpPathName: LPCSTR, - iAttrubute: c_int, - ) -> HFILE; - pub fn _lread( - hFile: HFILE, - lpBuffer: LPVOID, - uBytes: UINT, - ) -> UINT; - pub fn _lwrite( - hFile: HFILE, - lpBuffer: LPCCH, - uBytes: UINT, - ) -> UINT; - pub fn _hread( - hFile: HFILE, - lpBuffer: LPVOID, - lBytes: c_long, - ) -> c_long; - pub fn _hwrite( - hFile: HFILE, - lpBuffer: LPCCH, - lBytes: c_long, - ) -> c_long; - pub fn _lclose( - hFile: HFILE, - ) -> HFILE; - pub fn _llseek( - hFile: HFILE, - lOffset: LONG, - iOrigin: c_int, - ) -> LONG; - // pub fn IsTextUnicode(); - // pub fn SignalObjectAndWait(); - pub fn BackupRead( - hFile: HANDLE, - lpBuffer: LPBYTE, - nNumberOfBytesToRead: DWORD, - lpNumberOfBytesRead: LPDWORD, - bAbort: BOOL, - bProcessSecurity: BOOL, - lpContext: *mut LPVOID, - ) -> BOOL; - pub fn BackupSeek( - hFile: HANDLE, - dwLowBytesToSeek: DWORD, - dwHighBytesToSeek: DWORD, - lpdwLowByteSeeked: LPDWORD, - lpdwHighByteSeeked: LPDWORD, - lpContext: *mut LPVOID, - ) -> BOOL; - pub fn BackupWrite( - hFile: HANDLE, - lpBuffer: LPBYTE, - nNumberOfBytesToWrite: DWORD, - lpNumberOfBytesWritten: LPDWORD, - bAbort: BOOL, - bProcessSecurity: BOOL, - lpContext: *mut LPVOID, - ) -> BOOL; -} -//2886 -pub const STARTF_USESHOWWINDOW: DWORD = 0x00000001; -pub const STARTF_USESIZE: DWORD = 0x00000002; -pub const STARTF_USEPOSITION: DWORD = 0x00000004; -pub const STARTF_USECOUNTCHARS: DWORD = 0x00000008; -pub const STARTF_USEFILLATTRIBUTE: DWORD = 0x00000010; -pub const STARTF_RUNFULLSCREEN: DWORD = 0x00000020; -pub const STARTF_FORCEONFEEDBACK: DWORD = 0x00000040; -pub const STARTF_FORCEOFFFEEDBACK: DWORD = 0x00000080; -pub const STARTF_USESTDHANDLES: DWORD = 0x00000100; -pub const STARTF_USEHOTKEY: DWORD = 0x00000200; -pub const STARTF_TITLEISLINKNAME: DWORD = 0x00000800; -pub const STARTF_TITLEISAPPID: DWORD = 0x00001000; -pub const STARTF_PREVENTPINNING: DWORD = 0x00002000; -pub const STARTF_UNTRUSTEDSOURCE: DWORD = 0x00008000; -STRUCT!{struct STARTUPINFOEXA { - StartupInfo: STARTUPINFOA, - lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST, -}} -pub type LPSTARTUPINFOEXA = *mut STARTUPINFOEXA; -STRUCT!{struct STARTUPINFOEXW { - StartupInfo: STARTUPINFOW, - lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST, -}} -pub type LPSTARTUPINFOEXW = *mut STARTUPINFOEXW; -extern "system" { - pub fn OpenMutexA( - dwDesiredAccess: DWORD, - bInheritHandle: BOOL, - lpName: LPCSTR, - ) -> HANDLE; - pub fn CreateSemaphoreA( - lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, - lInitialCount: LONG, - lMaximumCount: LONG, - lpName: LPCSTR, - ) -> HANDLE; - pub fn OpenSemaphoreA( - dwDesiredAccess: DWORD, - bInheritHandle: BOOL, - lpName: LPCSTR, - ) -> HANDLE; - pub fn CreateWaitableTimerA( - lpTimerAttributes: LPSECURITY_ATTRIBUTES, - bManualReset: BOOL, - lpTimerName: LPCSTR, - ) -> HANDLE; - pub fn OpenWaitableTimerA( - dwDesiredAccess: DWORD, - bInheritHandle: BOOL, - lpTimerName: LPCSTR, - ) -> HANDLE; - pub fn CreateSemaphoreExA( - lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, - lInitialCount: LONG, - lMaximumCount: LONG, - lpName: LPCSTR, - dwFlags: DWORD, - dwDesiredAccess: DWORD, - ) -> HANDLE; - pub fn CreateWaitableTimerExA( - lpTimerAttributes: LPSECURITY_ATTRIBUTES, - lpTimerName: LPCSTR, - dwFlags: DWORD, - dwDesiredAccess: DWORD, - ) -> HANDLE; - pub fn CreateFileMappingA( - hFile: HANDLE, - lpAttributes: LPSECURITY_ATTRIBUTES, - flProtect: DWORD, - dwMaximumSizeHigh: DWORD, - dwMaximumSizeLow: DWORD, - lpName: LPCSTR, - ) -> HANDLE; - pub fn CreateFileMappingNumaA( - hFile: HANDLE, - lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, - flProtect: DWORD, - dwMaximumSizeHigh: DWORD, - dwMaximumSizeLow: DWORD, - lpName: LPCSTR, - nndPreferred: DWORD, - ) -> HANDLE; - pub fn OpenFileMappingA( - dwDesiredAccess: DWORD, - bInheritHandle: BOOL, - lpName: LPCSTR, - ) -> HANDLE; - pub fn GetLogicalDriveStringsA( - nBufferLength: DWORD, - lpBuffer: LPSTR, - ) -> DWORD; - pub fn LoadPackagedLibrary( - lpwLibFileName: LPCWSTR, - Reserved: DWORD, - ) -> HMODULE; - pub fn QueryFullProcessImageNameA( - hProcess: HANDLE, - dwFlags: DWORD, - lpExeName: LPSTR, - lpdwSize: PDWORD, - ) -> BOOL; - pub fn QueryFullProcessImageNameW( - hProcess: HANDLE, - dwFlags: DWORD, - lpExeName: LPWSTR, - lpdwSize: PDWORD, - ) -> BOOL; -} -//3233 -extern "system" { - pub fn GetStartupInfoA( - lpStartupInfo: LPSTARTUPINFOA, - ); - pub fn GetFirmwareEnvironmentVariableA( - lpName: LPCSTR, - lpGuid: LPCSTR, - pBuffer: PVOID, - nSize: DWORD, - ) -> DWORD; - pub fn GetFirmwareEnvironmentVariableW( - lpName: LPCWSTR, - lpGuid: LPCWSTR, - pBuffer: PVOID, - nSize: DWORD, - ) -> DWORD; - pub fn GetFirmwareEnvironmentVariableExA( - lpName: LPCSTR, - lpGuid: LPCSTR, - pBuffer: PVOID, - nSize: DWORD, - pdwAttribubutes: PDWORD, - ) -> DWORD; - pub fn GetFirmwareEnvironmentVariableExW( - lpName: LPCWSTR, - lpGuid: LPCWSTR, - pBuffer: PVOID, - nSize: DWORD, - pdwAttribubutes: PDWORD, - ) -> DWORD; - pub fn SetFirmwareEnvironmentVariableA( - lpName: LPCSTR, - lpGuid: LPCSTR, - pValue: PVOID, - nSize: DWORD, - ) -> BOOL; - pub fn SetFirmwareEnvironmentVariableW( - lpName: LPCWSTR, - lpGuid: LPCWSTR, - pValue: PVOID, - nSize: DWORD, - ) -> BOOL; - pub fn SetFirmwareEnvironmentVariableExA( - lpName: LPCSTR, - lpGuid: LPCSTR, - pValue: PVOID, - nSize: DWORD, - dwAttributes: DWORD, - ) -> BOOL; - pub fn SetFirmwareEnvironmentVariableExW( - lpName: LPCWSTR, - lpGuid: LPCWSTR, - pValue: PVOID, - nSize: DWORD, - dwAttributes: DWORD, - ) -> BOOL; - pub fn GetFirmwareType( - FirmwareType: PFIRMWARE_TYPE, - ) -> BOOL; - pub fn IsNativeVhdBoot( - NativeVhdBoot: PBOOL, - ) -> BOOL; - pub fn FindResourceA( - hModule: HMODULE, - lpName: LPCSTR, - lpType: LPCSTR, - ) -> HRSRC; - pub fn FindResourceExA( - hModule: HMODULE, - lpName: LPCSTR, - lpType: LPCSTR, - wLanguage: WORD, - ) -> HRSRC; - pub fn EnumResourceTypesA( - hModule: HMODULE, - lpEnumFunc: ENUMRESTYPEPROCA, - lParam: LONG_PTR, - ) -> BOOL; - pub fn EnumResourceTypesW( - hModule: HMODULE, - lpEnumFunc: ENUMRESTYPEPROCW, - lParam: LONG_PTR, - ) -> BOOL; - pub fn EnumResourceNamesA( - hModule: HMODULE, - lpType: LPCSTR, - lpEnumFunc: ENUMRESNAMEPROCA, - lParam: LONG_PTR, - ) -> BOOL; - pub fn EnumResourceLanguagesA( - hModule: HMODULE, - lpType: LPCSTR, - lpName: LPCSTR, - lpEnumFunc: ENUMRESLANGPROCA, - lParam: LONG_PTR, - ) -> BOOL; - pub fn EnumResourceLanguagesW( - hModule: HMODULE, - lpType: LPCWSTR, - lpName: LPCWSTR, - lpEnumFunc: ENUMRESLANGPROCW, - lParam: LONG_PTR, - ) -> BOOL; - pub fn BeginUpdateResourceA( - pFileName: LPCSTR, - bDeleteExistingResources: BOOL, - ) -> HANDLE; - pub fn BeginUpdateResourceW( - pFileName: LPCWSTR, - bDeleteExistingResources: BOOL, - ) -> HANDLE; - pub fn UpdateResourceA( - hUpdate: HANDLE, - lpType: LPCSTR, - lpName: LPCSTR, - wLanguage: WORD, - lpData: LPVOID, - cb: DWORD, - ) -> BOOL; - pub fn UpdateResourceW( - hUpdate: HANDLE, - lpType: LPCWSTR, - lpName: LPCWSTR, - wLanguage: WORD, - lpData: LPVOID, - cb: DWORD, - ) -> BOOL; - pub fn EndUpdateResourceA( - hUpdate: HANDLE, - fDiscard: BOOL, - ) -> BOOL; - pub fn EndUpdateResourceW( - hUpdate: HANDLE, - fDiscard: BOOL, - ) -> BOOL; - pub fn GlobalAddAtomA( - lpString: LPCSTR, - ) -> ATOM; - pub fn GlobalAddAtomW( - lpString: LPCWSTR, - ) -> ATOM; - pub fn GlobalAddAtomExA( - lpString: LPCSTR, - Flags: DWORD, - ) -> ATOM; - pub fn GlobalAddAtomExW( - lpString: LPCWSTR, - Flags: DWORD, - ) -> ATOM; - pub fn GlobalFindAtomA( - lpString: LPCSTR, - ) -> ATOM; - pub fn GlobalFindAtomW( - lpString: LPCWSTR, - ) -> ATOM; - pub fn GlobalGetAtomNameA( - nAtom: ATOM, - lpBuffer: LPSTR, - nSize: c_int, - ) -> UINT; - pub fn GlobalGetAtomNameW( - nAtom: ATOM, - lpBuffer: LPWSTR, - nSize: c_int, - ) -> UINT; - pub fn AddAtomA( - lpString: LPCSTR, - ) -> ATOM; - pub fn AddAtomW( - lpString: LPCWSTR, - ) -> ATOM; - pub fn FindAtomA( - lpString: LPCSTR, - ) -> ATOM; - pub fn FindAtomW( - lpString: LPCWSTR, - ) -> ATOM; - pub fn GetAtomNameA( - nAtom: ATOM, - lpBuffer: LPSTR, - nSize: c_int, - ) -> UINT; - pub fn GetAtomNameW( - nAtom: ATOM, - lpBuffer: LPWSTR, - nSize: c_int, - ) -> UINT; - pub fn GetProfileIntA( - lpAppName: LPCSTR, - lpKeyName: LPCSTR, - nDefault: INT, - ) -> UINT; - pub fn GetProfileIntW( - lpAppName: LPCWSTR, - lpKeyName: LPCWSTR, - nDefault: INT, - ) -> UINT; - pub fn GetProfileStringA( - lpAppName: LPCSTR, - lpKeyName: LPCSTR, - lpDefault: LPCSTR, - lpReturnedString: LPSTR, - nSize: DWORD, - ) -> DWORD; - pub fn GetProfileStringW( - lpAppName: LPCWSTR, - lpKeyName: LPCWSTR, - lpDefault: LPCWSTR, - lpReturnedString: LPWSTR, - nSize: DWORD, - ) -> DWORD; - pub fn WriteProfileStringA( - lpAppName: LPCSTR, - lpKeyName: LPCSTR, - lpString: LPCSTR, - ) -> BOOL; - pub fn WriteProfileStringW( - lpAppName: LPCWSTR, - lpKeyName: LPCWSTR, - lpString: LPCWSTR, - ) -> BOOL; - pub fn GetProfileSectionA( - lpAppName: LPCSTR, - lpReturnedString: LPSTR, - nSize: DWORD, - ) -> DWORD; - pub fn GetProfileSectionW( - lpAppName: LPCWSTR, - lpReturnedString: LPWSTR, - nSize: DWORD, - ) -> DWORD; - pub fn WriteProfileSectionA( - lpAppName: LPCSTR, - lpString: LPCSTR, - ) -> BOOL; - pub fn WriteProfileSectionW( - lpAppName: LPCWSTR, - lpString: LPCWSTR, - ) -> BOOL; - pub fn GetPrivateProfileIntA( - lpAppName: LPCSTR, - lpKeyName: LPCSTR, - nDefault: INT, - lpFileName: LPCSTR, - ) -> UINT; - pub fn GetPrivateProfileIntW( - lpAppName: LPCWSTR, - lpKeyName: LPCWSTR, - nDefault: INT, - lpFileName: LPCWSTR, - ) -> UINT; - pub fn GetPrivateProfileStringA( - lpAppName: LPCSTR, - lpKeyName: LPCSTR, - lpDefault: LPCSTR, - lpReturnedString: LPSTR, - nSize: DWORD, - lpFileName: LPCSTR, - ) -> DWORD; - pub fn GetPrivateProfileStringW( - lpAppName: LPCWSTR, - lpKeyName: LPCWSTR, - lpDefault: LPCWSTR, - lpReturnedString: LPWSTR, - nSize: DWORD, - lpFileName: LPCWSTR, - ) -> DWORD; - pub fn WritePrivateProfileStringA( - lpAppName: LPCSTR, - lpKeyName: LPCSTR, - lpString: LPCSTR, - lpFileName: LPCSTR, - ) -> BOOL; - pub fn WritePrivateProfileStringW( - lpAppName: LPCWSTR, - lpKeyName: LPCWSTR, - lpString: LPCWSTR, - lpFileName: LPCWSTR, - ) -> BOOL; - pub fn GetPrivateProfileSectionA( - lpAppName: LPCSTR, - lpReturnedString: LPSTR, - nSize: DWORD, - lpFileName: LPCSTR, - ) -> DWORD; - pub fn GetPrivateProfileSectionW( - lpAppName: LPCWSTR, - lpReturnedString: LPWSTR, - nSize: DWORD, - lpFileName: LPCWSTR, - ) -> DWORD; - pub fn WritePrivateProfileSectionA( - lpAppName: LPCSTR, - lpString: LPCSTR, - lpFileName: LPCSTR, - ) -> BOOL; - pub fn WritePrivateProfileSectionW( - lpAppName: LPCWSTR, - lpString: LPCWSTR, - lpFileName: LPCWSTR, - ) -> BOOL; - pub fn GetPrivateProfileSectionNamesA( - lpszReturnBuffer: LPSTR, - nSize: DWORD, - lpFileName: LPCSTR, - ) -> DWORD; - pub fn GetPrivateProfileSectionNamesW( - lpszReturnBuffer: LPWSTR, - nSize: DWORD, - lpFileName: LPCWSTR, - ) -> DWORD; - pub fn GetPrivateProfileStructA( - lpszSection: LPCSTR, - lpszKey: LPCSTR, - lpStruct: LPVOID, - uSizeStruct: UINT, - szFile: LPCSTR, - ) -> BOOL; - pub fn GetPrivateProfileStructW( - lpszSection: LPCWSTR, - lpszKey: LPCWSTR, - lpStruct: LPVOID, - uSizeStruct: UINT, - szFile: LPCWSTR, - ) -> BOOL; - pub fn WritePrivateProfileStructA( - lpszSection: LPCSTR, - lpszKey: LPCSTR, - lpStruct: LPVOID, - uSizeStruct: UINT, - szFile: LPCSTR, - ) -> BOOL; - pub fn WritePrivateProfileStructW( - lpszSection: LPCWSTR, - lpszKey: LPCWSTR, - lpStruct: LPVOID, - uSizeStruct: UINT, - szFile: LPCWSTR, - ) -> BOOL; - pub fn Wow64EnableWow64FsRedirection( - Wow64FsEnableRedirection: BOOLEAN, - ) -> BOOLEAN; - pub fn SetDllDirectoryA( - lpPathName: LPCSTR, - ) -> BOOL; - pub fn SetDllDirectoryW( - lpPathName: LPCWSTR, - ) -> BOOL; - pub fn GetDllDirectoryA( - nBufferLength: DWORD, - lpBuffer: LPSTR, - ) -> DWORD; - pub fn GetDllDirectoryW( - nBufferLength: DWORD, - lpBuffer: LPWSTR, - ) -> DWORD; - pub fn SetSearchPathMode( - Flags: DWORD, - ) -> 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( - lpTemplateDirectory: LPCSTR, - lpNewDirectory: LPCSTR, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - hTransaction: HANDLE, - ) -> BOOL; - pub fn CreateDirectoryTransactedW( - lpTemplateDirectory: LPCWSTR, - lpNewDirectory: LPCWSTR, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - hTransaction: HANDLE, - ) -> BOOL; - pub fn RemoveDirectoryTransactedA( - lpPathName: LPCSTR, - hTransaction: HANDLE, - ) -> BOOL; - pub fn RemoveDirectoryTransactedW( - lpPathName: LPCWSTR, - hTransaction: HANDLE, - ) -> BOOL; - pub fn GetFullPathNameTransactedA( - lpFileName: LPCSTR, - nBufferLength: DWORD, - lpBuffer: LPSTR, - lpFilePart: *mut LPSTR, - hTransaction: HANDLE, - ) -> DWORD; - pub fn GetFullPathNameTransactedW( - lpFileName: LPCWSTR, - nBufferLength: DWORD, - lpBuffer: LPWSTR, - lpFilePart: *mut LPWSTR, - hTransaction: HANDLE, - ); - pub fn DefineDosDeviceA( - dwFlags: DWORD, - lpDeviceName: LPCSTR, - lpTargetPath: LPCSTR, - ) -> BOOL; - pub fn QueryDosDeviceA( - lpDeviceName: LPCSTR, - lpTargetPath: LPSTR, - ucchMax: DWORD, - ) -> DWORD; - pub fn CreateFileTransactedA( - lpFileName: LPCSTR, - dwDesiredAccess: DWORD, - dwShareMode: DWORD, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - dwCreationDisposition: DWORD, - dwFlagsAndAttributes: DWORD, - hTemplateFile: HANDLE, - hTransaction: HANDLE, - pusMiniVersion: PUSHORT, - lpExtendedParameter: PVOID, - ) -> HANDLE; - pub fn CreateFileTransactedW( - lpFileName: LPCWSTR, - dwDesiredAccess: DWORD, - dwShareMode: DWORD, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - dwCreationDisposition: DWORD, - dwFlagsAndAttributes: DWORD, - hTemplateFile: HANDLE, - hTransaction: HANDLE, - pusMiniVersion: PUSHORT, - lpExtendedParameter: PVOID, - ) -> HANDLE; - pub fn ReOpenFile( - hOriginalFile: HANDLE, - dwDesiredAccess: DWORD, - dwShareMode: DWORD, - dwFlags: DWORD, - ) -> HANDLE; - pub fn SetFileAttributesTransactedA( - lpFileName: LPCSTR, - dwFileAttributes: DWORD, - hTransaction: HANDLE, - ) -> BOOL; - pub fn SetFileAttributesTransactedW( - lpFileName: LPCWSTR, - dwFileAttributes: DWORD, - hTransaction: HANDLE, - ) -> BOOL; - pub fn GetFileAttributesTransactedA( - lpFileName: LPCSTR, - fInfoLevelId: GET_FILEEX_INFO_LEVELS, - lpFileInformation: LPVOID, - hTransaction: HANDLE, - ) -> BOOL; - pub fn GetFileAttributesTransactedW( - lpFileName: LPCWSTR, - fInfoLevelId: GET_FILEEX_INFO_LEVELS, - lpFileInformation: LPVOID, - hTransaction: HANDLE, - ) -> BOOL; - pub fn GetCompressedFileSizeTransactedA( - lpFileName: LPCSTR, - lpFileSizeHigh: LPDWORD, - hTransaction: HANDLE, - ) -> DWORD; - pub fn GetCompressedFileSizeTransactedW( - lpFileName: LPCWSTR, - lpFileSizeHigh: LPDWORD, - hTransaction: HANDLE, - ); - pub fn DeleteFileTransactedA( - lpFileName: LPCSTR, - hTransaction: HANDLE, - ) -> BOOL; - pub fn DeleteFileTransactedW( - lpFileName: LPCWSTR, - hTransaction: HANDLE, - ) -> BOOL; - pub fn CheckNameLegalDOS8Dot3A( - lpName: LPCSTR, - lpOemName: LPSTR, - OemNameSize: DWORD, - pbNameContainsSpaces: PBOOL, - pbNameLegal: PBOOL, - ) -> BOOL; - pub fn CheckNameLegalDOS8Dot3W( - lpName: LPCWSTR, - lpOemName: LPSTR, - OemNameSize: DWORD, - pbNameContainsSpaces: PBOOL, - pbNameLegal: PBOOL, - ) -> BOOL; - pub fn FindFirstFileTransactedA( - lpFileName: LPCSTR, - fInfoLevelId: FINDEX_INFO_LEVELS, - lpFindFileData: LPVOID, - fSearchOp: FINDEX_SEARCH_OPS, - lpSearchFilter: LPVOID, - dwAdditionalFlags: DWORD, - hTransaction: HANDLE, - ) -> HANDLE; - pub fn FindFirstFileTransactedW( - lpFileName: LPCWSTR, - fInfoLevelId: FINDEX_INFO_LEVELS, - lpFindFileData: LPVOID, - fSearchOp: FINDEX_SEARCH_OPS, - lpSearchFilter: LPVOID, - dwAdditionalFlags: DWORD, - hTransaction: HANDLE, - ) -> HANDLE; - pub fn CopyFileA( - lpExistingFileName: LPCSTR, - lpNewFileName: LPCSTR, - bFailIfExists: BOOL, - ) -> BOOL; - pub fn CopyFileW( - lpExistingFileName: LPCWSTR, - lpNewFileName: LPCWSTR, - bFailIfExists: BOOL, - ) -> BOOL; -} -FN!{stdcall LPPROGRESS_ROUTINE( - TotalFileSize: LARGE_INTEGER, - TotalBytesTransferred: LARGE_INTEGER, - StreamSize: LARGE_INTEGER, - StreamBytesTransferred: LARGE_INTEGER, - dwStreamNumber: DWORD, - dwCallbackReason: DWORD, - hSourceFile: HANDLE, - hDestinationFile: HANDLE, - lpData: LPVOID, -) -> DWORD} -extern "system" { - pub fn CopyFileExA( - lpExistingFileName: LPCSTR, - lpNewFileName: LPCSTR, - lpProgressRoutine: LPPROGRESS_ROUTINE, - lpData: LPVOID, - pbCancel: LPBOOL, - dwCopyFlags: DWORD, - ) -> BOOL; - pub fn CopyFileExW( - lpExistingFileName: LPCWSTR, - lpNewFileName: LPCWSTR, - lpProgressRoutine: LPPROGRESS_ROUTINE, - lpData: LPVOID, - pbCancel: LPBOOL, - dwCopyFlags: DWORD, - ) -> BOOL; - pub fn CopyFileTransactedA( - lpExistingFileName: LPCWSTR, - lpNewFileName: LPCWSTR, - lpProgressRoutine: LPPROGRESS_ROUTINE, - lpData: LPVOID, - pbCancel: LPBOOL, - dwCopyFlags: DWORD, - hTransaction: HANDLE, - ) -> BOOL; - pub fn CopyFileTransactedW( - lpExistingFileName: LPCWSTR, - lpNewFileName: LPCWSTR, - lpProgressRoutine: LPPROGRESS_ROUTINE, - lpData: LPVOID, - pbCancel: LPBOOL, - dwCopyFlags: DWORD, - hTransaction: HANDLE, - ) -> BOOL; -} -ENUM!{enum COPYFILE2_MESSAGE_TYPE { - COPYFILE2_CALLBACK_NONE = 0, - COPYFILE2_CALLBACK_CHUNK_STARTED, - COPYFILE2_CALLBACK_CHUNK_FINISHED, - COPYFILE2_CALLBACK_STREAM_STARTED, - COPYFILE2_CALLBACK_STREAM_FINISHED, - COPYFILE2_CALLBACK_POLL_CONTINUE, - COPYFILE2_CALLBACK_ERROR, - COPYFILE2_CALLBACK_MAX, -}} -ENUM!{enum COPYFILE2_MESSAGE_ACTION { - COPYFILE2_PROGRESS_CONTINUE = 0, - COPYFILE2_PROGRESS_CANCEL, - COPYFILE2_PROGRESS_STOP, - COPYFILE2_PROGRESS_QUIET, - COPYFILE2_PROGRESS_PAUSE, -}} -ENUM!{enum COPYFILE2_COPY_PHASE { - COPYFILE2_PHASE_NONE = 0, - COPYFILE2_PHASE_PREPARE_SOURCE, - COPYFILE2_PHASE_PREPARE_DEST, - COPYFILE2_PHASE_READ_SOURCE, - COPYFILE2_PHASE_WRITE_DESTINATION, - COPYFILE2_PHASE_SERVER_COPY, - COPYFILE2_PHASE_NAMEGRAFT_COPY, - COPYFILE2_PHASE_MAX, -}} -STRUCT!{struct COPYFILE2_MESSAGE_ChunkStarted { - dwStreamNumber: DWORD, - dwReserved: DWORD, - hSourceFile: HANDLE, - hDestinationFile: HANDLE, - uliChunkNumber: ULARGE_INTEGER, - uliChunkSize: ULARGE_INTEGER, - uliStreamSize: ULARGE_INTEGER, - uliTotalFileSize: ULARGE_INTEGER, -}} -STRUCT!{struct COPYFILE2_MESSAGE_ChunkFinished { - dwStreamNumber: DWORD, - dwFlags: DWORD, - hSourceFile: HANDLE, - hDestinationFile: HANDLE, - uliChunkNumber: ULARGE_INTEGER, - uliChunkSize: ULARGE_INTEGER, - uliStreamSize: ULARGE_INTEGER, - uliStreamBytesTransferred: ULARGE_INTEGER, - uliTotalFileSize: ULARGE_INTEGER, - uliTotalBytesTransferred: ULARGE_INTEGER, -}} -STRUCT!{struct COPYFILE2_MESSAGE_StreamStarted { - dwStreamNumber: DWORD, - dwReserved: DWORD, - hSourceFile: HANDLE, - hDestinationFile: HANDLE, - uliStreamSize: ULARGE_INTEGER, - uliTotalFileSize: ULARGE_INTEGER, -}} -STRUCT!{struct COPYFILE2_MESSAGE_StreamFinished { - dwStreamNumber: DWORD, - dwReserved: DWORD, - hSourceFile: HANDLE, - hDestinationFile: HANDLE, - uliStreamSize: ULARGE_INTEGER, - uliStreamBytesTransferred: ULARGE_INTEGER, - uliTotalFileSize: ULARGE_INTEGER, - uliTotalBytesTransferred: ULARGE_INTEGER, -}} -STRUCT!{struct COPYFILE2_MESSAGE_PollContinue { - dwReserved: DWORD, -}} -STRUCT!{struct COPYFILE2_MESSAGE_Error { - CopyPhase: COPYFILE2_COPY_PHASE, - dwStreamNumber: DWORD, - hrFailure: HRESULT, - dwReserved: DWORD, - uliChunkNumber: ULARGE_INTEGER, - uliStreamSize: ULARGE_INTEGER, - uliStreamBytesTransferred: ULARGE_INTEGER, - uliTotalFileSize: ULARGE_INTEGER, - uliTotalBytesTransferred: ULARGE_INTEGER, -}} -UNION!{union COPYFILE2_MESSAGE_Info { - [u64; 8] [u64; 9], - ChunkStarted ChunkStarted_mut: COPYFILE2_MESSAGE_ChunkStarted, - ChunkFinished ChunkFinished_mut: COPYFILE2_MESSAGE_ChunkFinished, - StreamStarted StreamStarted_mut: COPYFILE2_MESSAGE_StreamStarted, - StreamFinished StreamFinished_mut: COPYFILE2_MESSAGE_StreamFinished, - PollContinue PollContinue_mut: COPYFILE2_MESSAGE_PollContinue, - Error Error_mut: COPYFILE2_MESSAGE_Error, -}} -STRUCT!{struct COPYFILE2_MESSAGE { - Type: COPYFILE2_MESSAGE_TYPE, - dwPadding: DWORD, - Info: COPYFILE2_MESSAGE_Info, -}} -FN!{stdcall PCOPYFILE2_PROGRESS_ROUTINE( - pMessage: *const COPYFILE2_MESSAGE, - pvCallbackContext: PVOID, -) -> COPYFILE2_MESSAGE_ACTION} -STRUCT!{struct COPYFILE2_EXTENDED_PARAMETERS { - dwSize: DWORD, - dwCopyFlags: DWORD, - pfCancel: *mut BOOL, - pProgressRoutine: PCOPYFILE2_PROGRESS_ROUTINE, - pvCallbackContext: PVOID, -}} -extern "system" { - pub fn CopyFile2( - pwszExistingFileName: PCWSTR, - pwszNewFileName: PCWSTR, - pExtendedParameters: *mut COPYFILE2_EXTENDED_PARAMETERS, - ) -> HRESULT; - pub fn MoveFileA( - lpExistingFileName: LPCSTR, - lpNewFileName: LPCSTR, - ) -> BOOL; - pub fn MoveFileW( - lpExistingFileName: LPCWSTR, - lpNewFileName: LPCWSTR, - ) -> BOOL; - pub fn MoveFileExA( - lpExistingFileName: LPCSTR, - lpNewFileName: LPCSTR, - dwFlags: DWORD, - ) -> BOOL; - pub fn MoveFileExW( - lpExistingFileName: LPCWSTR, - lpNewFileName: LPCWSTR, - dwFlags: DWORD, - ) -> BOOL; - pub fn MoveFileWithProgressA( - lpExistingFileName: LPCSTR, - lpNewFileName: LPCSTR, - lpProgressRoutine: LPPROGRESS_ROUTINE, - lpData: LPVOID, - dwFlags: DWORD, - ) -> BOOL; - pub fn MoveFileWithProgressW( - lpExistingFileName: LPCWSTR, - lpNewFileName: LPCWSTR, - lpProgressRoutine: LPPROGRESS_ROUTINE, - lpData: LPVOID, - dwFlags: DWORD, - ) -> BOOL; - pub fn MoveFileTransactedA( - lpExistingFileName: LPCSTR, - lpNewFileName: LPCSTR, - lpProgressRoutine: LPPROGRESS_ROUTINE, - lpData: LPVOID, - dwFlags: DWORD, - hTransaction: HANDLE, - ) -> BOOL; - pub fn MoveFileTransactedW( - lpExistingFileName: LPCWSTR, - lpNewFileName: LPCWSTR, - lpProgressRoutine: LPPROGRESS_ROUTINE, - lpData: LPVOID, - dwFlags: DWORD, - hTransaction: HANDLE, - ) -> BOOL; -} -pub const MOVEFILE_REPLACE_EXISTING: DWORD = 0x00000001; -pub const MOVEFILE_COPY_ALLOWED: DWORD = 0x00000002; -pub const MOVEFILE_DELAY_UNTIL_REBOOT: DWORD = 0x00000004; -pub const MOVEFILE_WRITE_THROUGH: DWORD = 0x00000008; -pub const MOVEFILE_CREATE_HARDLINK: DWORD = 0x00000010; -pub const MOVEFILE_FAIL_IF_NOT_TRACKABLE: DWORD = 0x00000020; -extern "system" { - pub fn ReplaceFileA( - lpReplacedFileName: LPCSTR, - lpReplacementFileName: LPCSTR, - lpBackupFileName: LPCSTR, - dwReplaceFlags: DWORD, - lpExclude: LPVOID, - lpReserved: LPVOID, - ); - pub fn ReplaceFileW( - lpReplacedFileName: LPCWSTR, - lpReplacementFileName: LPCWSTR, - lpBackupFileName: LPCWSTR, - dwReplaceFlags: DWORD, - lpExclude: LPVOID, - lpReserved: LPVOID, - ); - pub fn CreateHardLinkA( - lpFileName: LPCSTR, - lpExistingFileName: LPCSTR, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - ) -> BOOL; - pub fn CreateHardLinkW( - lpFileName: LPCWSTR, - lpExistingFileName: LPCWSTR, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - ) -> BOOL; - pub fn CreateHardLinkTransactedA( - lpFileName: LPCSTR, - lpExistingFileName: LPCSTR, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - hTransaction: HANDLE, - ) -> BOOL; - pub fn CreateHardLinkTransactedW( - lpFileName: LPCWSTR, - lpExistingFileName: LPCWSTR, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - hTransaction: HANDLE, - ); - pub fn FindFirstStreamTransactedW( - lpFileName: LPCWSTR, - InfoLevel: STREAM_INFO_LEVELS, - lpFindStreamData: LPVOID, - dwFlags: DWORD, - hTransaction: HANDLE, - ) -> HANDLE; - pub fn FindFirstFileNameTransactedW( - lpFileName: LPCWSTR, - dwFlags: DWORD, - StringLength: LPDWORD, - LinkName: PWSTR, - hTransaction: HANDLE, - ) -> HANDLE; - pub fn CreateNamedPipeA( - lpName: LPCSTR, - dwOpenMode: DWORD, - dwPipeMode: DWORD, - nMaxInstances: DWORD, - nOutBufferSize: DWORD, - nInBufferSize: DWORD, - nDefaultTimeOut: DWORD, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - ) -> HANDLE; - pub fn GetNamedPipeHandleStateA( - hNamedPipe: HANDLE, - lpState: LPDWORD, - lpCurInstances: LPDWORD, - lpMaxCollectionCount: LPDWORD, - lpCollectDataTimeout: LPDWORD, - lpUserName: LPSTR, - nMaxUserNameSize: DWORD, - ) -> BOOL; - pub fn CallNamedPipeA( - lpNamedPipeName: LPCSTR, - lpInBuffer: LPVOID, - nInBufferSize: DWORD, - lpOutBuffer: LPVOID, - nOutBufferSize: DWORD, - lpBytesRead: LPDWORD, - nTimeOut: DWORD, - ) -> BOOL; - pub fn WaitNamedPipeA( - lpNamedPipeName: LPCSTR, - nTimeOut: DWORD, - ) -> BOOL; - pub fn GetNamedPipeClientComputerNameA( - Pipe: HANDLE, - ClientComputerName: LPSTR, - ClientComputerNameLength: ULONG, - ) -> BOOL; - pub fn GetNamedPipeClientProcessId( - Pipe: HANDLE, - ClientProcessId: PULONG, - ) -> BOOL; - pub fn GetNamedPipeClientSessionId( - Pipe: HANDLE, - ClientSessionId: PULONG, - ) -> BOOL; - pub fn GetNamedPipeServerProcessId( - Pipe: HANDLE, - ServerProcessId: PULONG, - ) -> BOOL; - pub fn GetNamedPipeServerSessionId( - Pipe: HANDLE, - ServerSessionId: PULONG, - ) -> BOOL; - pub fn SetVolumeLabelA( - lpRootPathName: LPCSTR, - lpVolumeName: LPCSTR, - ) -> BOOL; - pub fn SetVolumeLabelW( - lpRootPathName: LPCWSTR, - lpVolumeName: LPCWSTR, - ) -> BOOL; - pub fn SetFileBandwidthReservation( - hFile: HANDLE, - nPeriodMilliseconds: DWORD, - nBytesPerPeriod: DWORD, - bDiscardable: BOOL, - lpTransferSize: LPDWORD, - lpNumOutstandingRequests: LPDWORD, - ) -> BOOL; - pub fn GetFileBandwidthReservation( - hFile: HANDLE, - lpPeriodMilliseconds: LPDWORD, - lpBytesPerPeriod: LPDWORD, - pDiscardable: LPBOOL, - lpTransferSize: LPDWORD, - lpNumOutstandingRequests: LPDWORD, - ) -> BOOL; - // pub fn ClearEventLogA(); - // pub fn ClearEventLogW(); - // pub fn BackupEventLogA(); - // pub fn BackupEventLogW(); - // pub fn CloseEventLog(); - pub fn DeregisterEventSource( - hEventLog: HANDLE, - ) -> BOOL; - // pub fn NotifyChangeEventLog(); - // pub fn GetNumberOfEventLogRecords(); - // pub fn GetOldestEventLogRecord(); - // pub fn OpenEventLogA(); - // pub fn OpenEventLogW(); - pub fn RegisterEventSourceA( - lpUNCServerName: LPCSTR, - lpSourceName: LPCSTR, - ) -> HANDLE; - pub fn RegisterEventSourceW( - lpUNCServerName: LPCWSTR, - lpSourceName: LPCWSTR, - ) -> HANDLE; - // pub fn OpenBackupEventLogA(); - // pub fn OpenBackupEventLogW(); - // pub fn ReadEventLogA(); - // pub fn ReadEventLogW(); - pub fn ReportEventA( - hEventLog: HANDLE, - wType: WORD, - wCategory: WORD, - dwEventID: DWORD, - lpUserSid: PSID, - wNumStrings: WORD, - dwDataSize: DWORD, - lpStrings: *mut LPCSTR, - lpRawData: LPVOID, - ) -> BOOL; - pub fn ReportEventW( - hEventLog: HANDLE, - wType: WORD, - wCategory: WORD, - dwEventID: DWORD, - lpUserSid: PSID, - wNumStrings: WORD, - dwDataSize: DWORD, - lpStrings: *mut LPCWSTR, - lpRawData: LPVOID, - ) -> BOOL; - // pub fn GetEventLogInformation(); - // pub fn OperationStart(); - // pub fn OperationEnd(); - // pub fn AccessCheckAndAuditAlarmA(); - // pub fn AccessCheckByTypeAndAuditAlarmA(); - // pub fn AccessCheckByTypeResultListAndAuditAlarmA(); - // pub fn AccessCheckByTypeResultListAndAuditAlarmByHandleA(); - // pub fn ObjectOpenAuditAlarmA(); - // pub fn ObjectPrivilegeAuditAlarmA(); - // pub fn ObjectCloseAuditAlarmA(); - // pub fn ObjectDeleteAuditAlarmA(); - // pub fn PrivilegedServiceAuditAlarmA(); - // pub fn AddConditionalAce(); - // pub fn SetFileSecurityA(); - // pub fn GetFileSecurityA(); - pub fn ReadDirectoryChangesW( - hDirectory: HANDLE, - lpBuffer: LPVOID, - nBufferLength: DWORD, - bWatchSubtree: BOOL, - dwNotifyFilter: DWORD, - lpBytesReturned: LPDWORD, - lpOverlapped: LPOVERLAPPED, - lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE, - ) -> BOOL; - pub fn MapViewOfFileExNuma( - hFileMappingObject: HANDLE, - dwDesiredAccess: DWORD, - dwFileOffsetHigh: DWORD, - dwFileOffsetLow: DWORD, - dwNumberOfBytesToMap: SIZE_T, - lpBaseAddress: LPVOID, - nndPreferred: DWORD, - ) -> LPVOID; - pub fn IsBadReadPtr( - lp: *const VOID, - ucb: UINT_PTR, - ) -> BOOL; - pub fn IsBadWritePtr( - lp: LPVOID, - ucb: UINT_PTR, - ) -> BOOL; - pub fn IsBadHugeReadPtr( - lp: *const VOID, - ucb: UINT_PTR, - ) -> BOOL; - pub fn IsBadHugeWritePtr( - lp: LPVOID, - ucb: UINT_PTR, - ) -> BOOL; - pub fn IsBadCodePtr( - lpfn: FARPROC, - ) -> BOOL; - pub fn IsBadStringPtrA( - lpsz: LPCSTR, - ucchMax: UINT_PTR, - ) -> BOOL; - pub fn IsBadStringPtrW( - lpsz: LPCWSTR, - ucchMax: UINT_PTR, - ) -> BOOL; - pub fn LookupAccountSidA( - lpSystemName: LPCSTR, - Sid: PSID, - Name: LPSTR, - cchName: LPDWORD, - ReferencedDomainName: LPSTR, - cchReferencedDomainName: LPDWORD, - peUse: PSID_NAME_USE, - ) -> BOOL; - pub fn LookupAccountSidW( - lpSystemName: LPCWSTR, - Sid: PSID, - Name: LPWSTR, - cchName: LPDWORD, - ReferencedDomainName: LPWSTR, - cchReferencedDomainName: LPDWORD, - peUse: PSID_NAME_USE, - ) -> BOOL; - pub fn LookupAccountNameA( - lpSystemName: LPCSTR, - lpAccountName: LPCSTR, - Sid: PSID, - cbSid: LPDWORD, - ReferencedDomainName: LPCSTR, - cchReferencedDomainName: LPDWORD, - peUse: PSID_NAME_USE, - ) -> BOOL; - pub fn LookupAccountNameW( - lpSystemName: LPCWSTR, - lpAccountName: LPCWSTR, - Sid: PSID, - cbSid: LPDWORD, - ReferencedDomainName: LPCWSTR, - cchReferencedDomainName: LPDWORD, - peUse: PSID_NAME_USE, - ) -> BOOL; - // pub fn LookupAccountNameLocalA(); - // pub fn LookupAccountNameLocalW(); - // pub fn LookupAccountSidLocalA(); - // pub fn LookupAccountSidLocalW(); - pub fn LookupPrivilegeValueA( - lpSystemName: LPCSTR, - lpName: LPCSTR, - lpLuid: PLUID, - ) -> BOOL; - pub fn LookupPrivilegeValueW( - lpSystemName: LPCWSTR, - lpName: LPCWSTR, - lpLuid: PLUID, - ) -> BOOL; - pub fn LookupPrivilegeNameA( - lpSystemName: LPCSTR, - lpLuid: PLUID, - lpName: LPSTR, - cchName: LPDWORD, - ) -> BOOL; - pub fn LookupPrivilegeNameW( - lpSystemName: LPCWSTR, - lpLuid: PLUID, - lpName: LPWSTR, - cchName: LPDWORD, - ) -> BOOL; - // pub fn LookupPrivilegeDisplayNameA(); - // pub fn LookupPrivilegeDisplayNameW(); - pub fn BuildCommDCBA( - lpDef: LPCSTR, - lpDCB: LPDCB, - ) -> BOOL; - pub fn BuildCommDCBW( - lpDef: LPCWSTR, - lpDCB: LPDCB, - ) -> BOOL; - pub fn BuildCommDCBAndTimeoutsA( - lpDef: LPCSTR, - lpDCB: LPDCB, - lpCommTimeouts: LPCOMMTIMEOUTS, - ) -> BOOL; - pub fn BuildCommDCBAndTimeoutsW( - lpDef: LPCWSTR, - lpDCB: LPDCB, - lpCommTimeouts: LPCOMMTIMEOUTS, - ) -> BOOL; - pub fn CommConfigDialogA( - lpszName: LPCSTR, - hWnd: HWND, - lpCC: LPCOMMCONFIG, - ) -> BOOL; - pub fn CommConfigDialogW( - lpszName: LPCWSTR, - hWnd: HWND, - lpCC: LPCOMMCONFIG, - ) -> BOOL; - pub fn GetDefaultCommConfigA( - lpszName: LPCSTR, - lpCC: LPCOMMCONFIG, - lpdwSize: LPDWORD, - ) -> BOOL; - pub fn GetDefaultCommConfigW( - lpszName: LPCWSTR, - lpCC: LPCOMMCONFIG, - lpdwSize: LPDWORD, - ) -> BOOL; - pub fn SetDefaultCommConfigA( - lpszName: LPCSTR, - lpCC: LPCOMMCONFIG, - dwSize: DWORD, - ) -> BOOL; - pub fn SetDefaultCommConfigW( - lpszName: LPCWSTR, - lpCC: LPCOMMCONFIG, - dwSize: DWORD, - ) -> BOOL; - pub fn GetComputerNameA( - lpBuffer: LPSTR, - nSize: LPDWORD, - ) -> BOOL; - pub fn GetComputerNameW( - lpBuffer: LPWSTR, - nSize: LPDWORD, - ) -> BOOL; - pub fn DnsHostnameToComputerNameA( - Hostname: LPCSTR, - ComputerName: LPCSTR, - nSize: LPDWORD, - ) -> BOOL; - pub fn DnsHostnameToComputerNameW( - Hostname: LPCWSTR, - ComputerName: LPWSTR, - nSize: LPDWORD, - ) -> BOOL; - pub fn GetUserNameA( - lpBuffer: LPSTR, - pcbBuffer: LPDWORD, - ) -> BOOL; - pub fn GetUserNameW( - lpBuffer: LPWSTR, - pcbBuffer: LPDWORD, - ) -> BOOL; -} -pub const LOGON32_LOGON_INTERACTIVE: DWORD = 2; -pub const LOGON32_LOGON_NETWORK: DWORD = 3; -pub const LOGON32_LOGON_BATCH: DWORD = 4; -pub const LOGON32_LOGON_SERVICE: DWORD = 5; -pub const LOGON32_LOGON_UNLOCK: DWORD = 7; -pub const LOGON32_LOGON_NETWORK_CLEARTEXT: DWORD = 8; -pub const LOGON32_LOGON_NEW_CREDENTIALS: DWORD = 9; -pub const LOGON32_PROVIDER_DEFAULT: DWORD = 0; -pub const LOGON32_PROVIDER_WINNT35: DWORD = 1; -pub const LOGON32_PROVIDER_WINNT40: DWORD = 2; -pub const LOGON32_PROVIDER_WINNT50: DWORD = 3; -pub const LOGON32_PROVIDER_VIRTUAL: DWORD = 4; -extern "system" { - pub fn LogonUserA( - lpUsername: LPCSTR, - lpDomain: LPCSTR, - lpPassword: LPCSTR, - dwLogonType: DWORD, - dwLogonProvider: DWORD, - phToken: PHANDLE, - ) -> BOOL; - pub fn LogonUserW( - lpUsername: LPCWSTR, - lpDomain: LPCWSTR, - lpPassword: LPCWSTR, - dwLogonType: DWORD, - dwLogonProvider: DWORD, - phToken: PHANDLE, - ) -> BOOL; - pub fn LogonUserExA( - lpUsername: LPCSTR, - lpDomain: LPCSTR, - lpPassword: LPCSTR, - dwLogonType: DWORD, - dwLogonProvider: DWORD, - phToken: PHANDLE, - ppLogonSid: *mut PSID, - ppProfileBuffer: *mut PVOID, - pdwProfileLength: LPDWORD, - pQuotaLimits: PQUOTA_LIMITS, - ) -> BOOL; - pub fn LogonUserExW( - lpUsername: LPCWSTR, - lpDomain: LPCWSTR, - lpPassword: LPCWSTR, - dwLogonType: DWORD, - dwLogonProvider: DWORD, - phToken: PHANDLE, - ppLogonSid: *mut PSID, - ppProfileBuffer: *mut PVOID, - pdwProfileLength: LPDWORD, - pQuotaLimits: PQUOTA_LIMITS, - ) -> BOOL; -} -pub const LOGON_WITH_PROFILE: DWORD = 0x00000001; -pub const LOGON_NETCREDENTIALS_ONLY: DWORD = 0x00000002; -extern "system" { - pub fn CreateProcessWithLogonW( - lpUsername: LPCWSTR, - lpDomain: LPCWSTR, - lpPassword: LPCWSTR, - dwLogonFlags: DWORD, - lpApplicationName: LPCWSTR, - lpCommandLine: LPWSTR, - dwCreationFlags: DWORD, - lpEnvironment: LPVOID, - lpCurrentDirectory: LPCWSTR, - lpStartupInfo: LPSTARTUPINFOW, - lpProcessInformation: LPPROCESS_INFORMATION, - ) -> BOOL; - pub fn CreateProcessWithTokenW( - hToken: HANDLE, - dwLogonFlags: DWORD, - lpApplicationName: LPCWSTR, - lpCommandLine: LPWSTR, - dwCreationFlags: DWORD, - lpEnvironment: LPVOID, - lpCurrentDirectory: LPCWSTR, - lpStartupInfo: LPSTARTUPINFOW, - lpProcessInformation: LPPROCESS_INFORMATION, - ) -> BOOL; - pub fn IsTokenUntrusted( - TokenHandle: HANDLE, - ) -> BOOL; - pub fn RegisterWaitForSingleObject( - phNewWaitObject: PHANDLE, - hObject: HANDLE, - Callback: WAITORTIMERCALLBACK, - Context: PVOID, - dwMilliseconds: ULONG, - dwFlags: ULONG, - ) -> BOOL; - pub fn UnregisterWait( - WaitHandle: HANDLE, - ) -> BOOL; - pub fn BindIoCompletionCallback( - FileHandle: HANDLE, - Function: LPOVERLAPPED_COMPLETION_ROUTINE, - Flags: ULONG, - ) -> BOOL; - pub fn SetTimerQueueTimer( - TimerQueue: HANDLE, - Callback: WAITORTIMERCALLBACK, - Parameter: PVOID, - DueTime: DWORD, - Period: DWORD, - PreferIo: BOOL, - ) -> HANDLE; - pub fn CancelTimerQueueTimer( - TimerQueue: HANDLE, - Timer: HANDLE, - ) -> BOOL; - pub fn DeleteTimerQueue( - TimerQueue: HANDLE, - ) -> BOOL; - // pub fn InitializeThreadpoolEnvironment(); - // pub fn SetThreadpoolCallbackPool(); - // pub fn SetThreadpoolCallbackCleanupGroup(); - // pub fn SetThreadpoolCallbackRunsLong(); - // pub fn SetThreadpoolCallbackLibrary(); - // pub fn SetThreadpoolCallbackPriority(); - // pub fn DestroyThreadpoolEnvironment(); - // pub fn SetThreadpoolCallbackPersistent(); - pub fn CreatePrivateNamespaceA( - lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES, - lpBoundaryDescriptor: LPVOID, - lpAliasPrefix: LPCSTR, - ) -> HANDLE; - pub fn OpenPrivateNamespaceA( - lpBoundaryDescriptor: LPVOID, - lpAliasPrefix: LPCSTR, - ) -> HANDLE; - pub fn CreateBoundaryDescriptorA( - Name: LPCSTR, - Flags: ULONG, - ) -> HANDLE; - pub fn AddIntegrityLabelToBoundaryDescriptor( - BoundaryDescriptor: *mut HANDLE, - IntegrityLabel: PSID, - ) -> BOOL; -} -pub const HW_PROFILE_GUIDLEN: usize = 39; -// MAX_PROFILE_LEN -pub const DOCKINFO_UNDOCKED: DWORD = 0x1; -pub const DOCKINFO_DOCKED: DWORD = 0x2; -pub const DOCKINFO_USER_SUPPLIED: DWORD = 0x4; -pub const DOCKINFO_USER_UNDOCKED: DWORD = DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED; -pub const DOCKINFO_USER_DOCKED: DWORD = DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED; -STRUCT!{struct HW_PROFILE_INFOA { - dwDockInfo: DWORD, - szHwProfileGuid: [CHAR; HW_PROFILE_GUIDLEN], - szHwProfileName: [CHAR; MAX_PROFILE_LEN], -}} -pub type LPHW_PROFILE_INFOA = *mut HW_PROFILE_INFOA; -STRUCT!{struct HW_PROFILE_INFOW { - dwDockInfo: DWORD, - szHwProfileGuid: [WCHAR; HW_PROFILE_GUIDLEN], - szHwProfileName: [WCHAR; MAX_PROFILE_LEN], -}} -pub type LPHW_PROFILE_INFOW = *mut HW_PROFILE_INFOW; -extern "system" { - pub fn GetCurrentHwProfileA( - lpHwProfileInfo: LPHW_PROFILE_INFOA, - ) -> BOOL; - pub fn GetCurrentHwProfileW( - lpHwProfileInfo: LPHW_PROFILE_INFOW, - ) -> BOOL; - pub fn VerifyVersionInfoA( - lpVersionInformation: LPOSVERSIONINFOEXA, - dwTypeMask: DWORD, - dwlConditionMask: DWORDLONG, - ) -> BOOL; - pub fn VerifyVersionInfoW( - lpVersionInformation: LPOSVERSIONINFOEXW, - dwTypeMask: DWORD, - dwlConditionMask: DWORDLONG, - ) -> BOOL; -} -STRUCT!{struct SYSTEM_POWER_STATUS { - ACLineStatus: BYTE, - BatteryFlag: BYTE, - BatteryLifePercent: BYTE, - Reserved1: BYTE, - BatteryLifeTime: DWORD, - BatteryFullLifeTime: DWORD, -}} -pub type LPSYSTEM_POWER_STATUS = *mut SYSTEM_POWER_STATUS; -extern "system" { - pub fn GetSystemPowerStatus( - lpSystemPowerStatus: LPSYSTEM_POWER_STATUS, - ) -> BOOL; - pub fn SetSystemPowerState( - fSuspend: BOOL, - fForce: BOOL, - ) -> BOOL; - pub fn MapUserPhysicalPagesScatter( - VirtualAddresses: *mut PVOID, - NumberOfPages: ULONG_PTR, - PageArray: PULONG_PTR, - ) -> BOOL; - pub fn CreateJobObjectA( - lpJobAttributes: LPSECURITY_ATTRIBUTES, - lpName: LPCSTR, - ) -> HANDLE; - pub fn OpenJobObjectA( - dwDesiredAccess: DWORD, - bInheritHandle: BOOL, - lpName: LPCSTR, - ) -> HANDLE; - pub fn CreateJobSet( - NumJob: ULONG, - UserJobSet: PJOB_SET_ARRAY, - Flags: ULONG, - ) -> BOOL; - pub fn FindFirstVolumeA( - lpszVolumeName: LPSTR, - cchBufferLength: DWORD, - ) -> HANDLE; - pub fn FindNextVolumeA( - hFindVolume: HANDLE, - lpszVolumeName: LPSTR, - cchBufferLength: DWORD, - ) -> BOOL; - pub fn FindFirstVolumeMountPointA( - lpszRootPathName: LPCSTR, - lpszVolumeMountPoint: LPSTR, - cchBufferLength: DWORD, - ) -> HANDLE; - pub fn FindFirstVolumeMountPointW( - lpszRootPathName: LPCWSTR, - lpszVolumeMountPoint: LPWSTR, - cchBufferLength: DWORD, - ) -> HANDLE; - pub fn FindNextVolumeMountPointA( - hFindVolumeMountPoint: HANDLE, - lpszVolumeMountPoint: LPSTR, - cchBufferLength: DWORD, - ) -> BOOL; - pub fn FindNextVolumeMountPointW( - hFindVolumeMountPoint: HANDLE, - lpszVolumeMountPoint: LPWSTR, - cchBufferLength: DWORD, - ) -> BOOL; - pub fn FindVolumeMountPointClose( - hFindVolumeMountPoint: HANDLE, - ) -> BOOL; - pub fn SetVolumeMountPointA( - lpszVolumeMountPoint: LPCSTR, - lpszVolumeName: LPCSTR, - ) -> BOOL; - pub fn SetVolumeMountPointW( - lpszVolumeMountPoint: LPCWSTR, - lpszVolumeName: LPCWSTR, - ) -> BOOL; - pub fn DeleteVolumeMountPointA( - lpszVolumeMountPoint: LPCSTR, - ) -> BOOL; - pub fn GetVolumeNameForVolumeMountPointA( - lpszVolumeMountPoint: LPCSTR, - lpszVolumeName: LPSTR, - cchBufferLength: DWORD, - ) -> BOOL; - pub fn GetVolumePathNameA( - lpszFileName: LPCSTR, - lpszVolumePathName: LPSTR, - cchBufferLength: DWORD, - ) -> BOOL; - pub fn GetVolumePathNamesForVolumeNameA( - lpszVolumeName: LPCSTR, - lpszVolumePathNames: LPCH, - cchBufferLength: DWORD, - lpcchReturnLength: PDWORD, - ) -> BOOL; -} -// ACTCTX_FLAG_* -STRUCT!{struct ACTCTXA { - cbSize: ULONG, - dwFlags: DWORD, - lpSource: LPCSTR, - wProcessorArchitecture: USHORT, - wLangId: LANGID, - lpAssemblyDirectory: LPCSTR, - lpResourceName: LPCSTR, - lpApplicationName: LPCSTR, - hModule: HMODULE, -}} -pub type PACTCTXA = *mut ACTCTXA; -STRUCT!{struct ACTCTXW { - cbSize: ULONG, - dwFlags: DWORD, - lpSource: LPCWSTR, - wProcessorArchitecture: USHORT, - wLangId: LANGID, - lpAssemblyDirectory: LPCWSTR, - lpResourceName: LPCWSTR, - lpApplicationName: LPCWSTR, - hModule: HMODULE, -}} -pub type PACTCTXW = *mut ACTCTXW; -pub type PCACTCTXA = *const ACTCTXA; -pub type PCACTCTXW = *const ACTCTXW; -extern "system" { - pub fn CreateActCtxA( - pActCtx: PCACTCTXA, - ) -> HANDLE; - pub fn CreateActCtxW( - pActCtx: PCACTCTXW, - ) -> HANDLE; - pub fn AddRefActCtx( - hActCtx: HANDLE, - ); - pub fn ReleaseActCtx( - hActCtx: HANDLE, - ); - pub fn ZombifyActCtx( - hActCtx: HANDLE, - ) -> BOOL; - pub fn ActivateActCtx( - hActCtx: HANDLE, - lpCookie: *mut ULONG_PTR, - ) -> BOOL; - pub fn DeactivateActCtx( - dwFlags: DWORD, - ulCookie: ULONG_PTR, - ) -> BOOL; - pub fn GetCurrentActCtx( - lphActCtx: *mut HANDLE, - ) -> BOOL; -} -STRUCT!{struct ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA { - lpInformation: PVOID, - lpSectionBase: PVOID, - ulSectionLength: ULONG, - lpSectionGlobalDataBase: PVOID, - ulSectionGlobalDataLength: ULONG, -}} -pub type PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = - *mut ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA; -pub type PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = - *const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA; -STRUCT!{struct ACTCTX_SECTION_KEYED_DATA { - cbSize: ULONG, - ulDataFormatVersion: ULONG, - lpData: PVOID, - ulLength: ULONG, - lpSectionGlobalData: PVOID, - ulSectionGlobalDataLength: ULONG, - lpSectionBase: PVOID, - ulSectionTotalLength: ULONG, - hActCtx: HANDLE, - ulAssemblyRosterIndex: ULONG, - ulFlags: ULONG, - AssemblyMetadata: ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, -}} -pub type PACTCTX_SECTION_KEYED_DATA = *mut ACTCTX_SECTION_KEYED_DATA; -pub type PCACTCTX_SECTION_KEYED_DATA = *const ACTCTX_SECTION_KEYED_DATA; -extern "system" { - pub fn FindActCtxSectionStringA( - dwFlags: DWORD, - lpExtensionGuid: *const GUID, - ulSectionId: ULONG, - lpStringToFind: LPCSTR, - ReturnedData: PACTCTX_SECTION_KEYED_DATA, - ) -> BOOL; - pub fn FindActCtxSectionStringW( - dwFlags: DWORD, - lpExtensionGuid: *const GUID, - ulSectionId: ULONG, - lpStringToFind: LPCWSTR, - ReturnedData: PACTCTX_SECTION_KEYED_DATA, - ) -> BOOL; - pub fn FindActCtxSectionGuid( - dwFlags: DWORD, - lpExtensionGuid: *const GUID, - ulSectionId: ULONG, - lpGuidToFind: *const GUID, - ReturnedData: PACTCTX_SECTION_KEYED_DATA, - ) -> BOOL; - pub fn QueryActCtxW( - dwFlags: DWORD, - hActCtx: HANDLE, - pvSubInstance: PVOID, - ulInfoClass: ULONG, - pvBuffer: PVOID, - cbBuffer: SIZE_T, - pcbWrittenOrRequired: *mut SIZE_T, - ) -> BOOL; - pub fn WTSGetActiveConsoleSessionId() -> DWORD; - // pub fn WTSGetServiceSessionId(); - // pub fn WTSIsServerContainer(); - pub fn GetActiveProcessorGroupCount() -> WORD; - pub fn GetMaximumProcessorGroupCount() -> WORD; - pub fn GetActiveProcessorCount( - GroupNumber: WORD, - ) -> DWORD; - pub fn GetMaximumProcessorCount( - GroupNumber: WORD, - ) -> DWORD; - pub fn GetNumaProcessorNode( - Processor: UCHAR, - NodeNumber: PUCHAR, - ) -> BOOL; - pub fn GetNumaNodeNumberFromHandle( - hFile: HANDLE, - NodeNumber: PUSHORT, - ) -> BOOL; - pub fn GetNumaProcessorNodeEx( - Processor: PPROCESSOR_NUMBER, - NodeNumber: PUSHORT, - ) -> BOOL; - pub fn GetNumaNodeProcessorMask( - Node: UCHAR, - ProcessorMask: PULONGLONG, - ) -> BOOL; - pub fn GetNumaAvailableMemoryNode( - Node: UCHAR, - AvailableBytes: PULONGLONG, - ) -> BOOL; - pub fn GetNumaAvailableMemoryNodeEx( - Node: USHORT, - AvailableBytes: PULONGLONG, - ) -> BOOL; - pub fn GetNumaProximityNode( - ProximityId: ULONG, - NodeNumber: PUCHAR, - ) -> BOOL; -} -FN!{stdcall APPLICATION_RECOVERY_CALLBACK( - pvParameter: PVOID, -) -> DWORD} -// RESTART_* -// RECOVERY_* -extern "system" { - pub fn RegisterApplicationRecoveryCallback( - pRecoveyCallback: APPLICATION_RECOVERY_CALLBACK, - pvParameter: PVOID, - dwPingInterval: DWORD, - dwFlags: DWORD, - ) -> HRESULT; - pub fn UnregisterApplicationRecoveryCallback() -> HRESULT; - pub fn RegisterApplicationRestart( - pwzCommandline: PCWSTR, - dwFlags: DWORD, - ) -> HRESULT; - pub fn UnregisterApplicationRestart() -> HRESULT; - pub fn GetApplicationRecoveryCallback( - hProcess: HANDLE, - pRecoveryCallback: *mut APPLICATION_RECOVERY_CALLBACK, - ppvParameter: *mut PVOID, - pdwPingInterval: PDWORD, - pdwFlags: PDWORD, - ) -> HRESULT; - pub fn GetApplicationRestartSettings( - hProcess: HANDLE, - pwzCommandline: PWSTR, - pcchSize: PDWORD, - pdwFlags: PDWORD, - ) -> HRESULT; - pub fn ApplicationRecoveryInProgress( - pbCancelled: PBOOL, - ) -> HRESULT; - pub fn ApplicationRecoveryFinished( - bSuccess: BOOL, - ); -} -// FILE_BASIC_INFO, etc. -extern "system" { - pub fn GetFileInformationByHandleEx( - hFile: HANDLE, - FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, - lpFileInformation: LPVOID, - dwBufferSize: DWORD, - ) -> BOOL; -} -ENUM!{enum FILE_ID_TYPE { - FileIdType, - ObjectIdType, - ExtendedFileIdType, - MaximumFileIdType, -}} -UNION!{union FILE_ID_DESCRIPTOR_u { - [u64; 2], - FileId FileId_mut: LARGE_INTEGER, - ObjectId ObjectId_mut: GUID, - ExtendedFileId ExtendedFileId_mut: FILE_ID_128, -}} -STRUCT!{struct FILE_ID_DESCRIPTOR { - dwSize: DWORD, - Type: FILE_ID_TYPE, - u: FILE_ID_DESCRIPTOR_u, -}} -pub type LPFILE_ID_DESCRIPTOR = *mut FILE_ID_DESCRIPTOR; -extern "system" { - pub fn OpenFileById( - hVolumeHint: HANDLE, - lpFileId: LPFILE_ID_DESCRIPTOR, - dwDesiredAccess: DWORD, - dwShareMode: DWORD, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - dwFlagsAndAttributes: DWORD, - ) -> HANDLE; - pub fn CreateSymbolicLinkA( - lpSymlinkFileName: LPCSTR, - lpTargetFileName: LPCSTR, - dwFlags: DWORD, - ) -> BOOLEAN; - pub fn CreateSymbolicLinkW( - lpSymlinkFileName: LPCWSTR, - lpTargetFileName: LPCWSTR, - dwFlags: DWORD, - ) -> BOOLEAN; - pub fn QueryActCtxSettingsW( - dwFlags: DWORD, - hActCtx: HANDLE, - settingsNameSpace: PCWSTR, - settingName: PCWSTR, - pvBuffer: PWSTR, - dwBuffer: SIZE_T, - pdwWrittenOrRequired: *mut SIZE_T, - ) -> BOOL; - pub fn CreateSymbolicLinkTransactedA( - lpSymlinkFileName: LPCSTR, - lpTargetFileName: LPCSTR, - dwFlags: DWORD, - hTransaction: HANDLE, - ) -> BOOLEAN; - pub fn CreateSymbolicLinkTransactedW( - lpSymlinkFileName: LPCWSTR, - lpTargetFileName: LPCWSTR, - dwFlags: DWORD, - hTransaction: HANDLE, - ) -> BOOLEAN; - pub fn ReplacePartitionUnit( - TargetPartition: PWSTR, - SparePartition: PWSTR, - Flags: ULONG, - ) -> BOOL; - pub fn AddSecureMemoryCacheCallback( - pfnCallBack: PSECURE_MEMORY_CACHE_CALLBACK, - ) -> BOOL; - pub fn RemoveSecureMemoryCacheCallback( - pfnCallBack: PSECURE_MEMORY_CACHE_CALLBACK, - ) -> BOOL; - pub fn CopyContext( - Destination: PCONTEXT, - ContextFlags: DWORD, - Source: PCONTEXT, - ) -> BOOL; - pub fn InitializeContext( - Buffer: PVOID, - ContextFlags: DWORD, - Context: *mut PCONTEXT, - ContextLength: PDWORD, - ) -> BOOL; - pub fn GetEnabledXStateFeatures() -> DWORD64; - pub fn GetXStateFeaturesMask( - Context: PCONTEXT, - FeatureMask: PDWORD64, - ) -> BOOL; - #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] - pub fn LocateXStateFeature( - Context: PCONTEXT, - FeatureId: DWORD, - Length: PDWORD, - ) -> PVOID; - #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] - pub fn SetXStateFeaturesMask( - Context: PCONTEXT, - FeatureMask: DWORD64, - ) -> BOOL; - pub fn EnableThreadProfiling( - ThreadHandle: HANDLE, - Flags: DWORD, - HardwareCounters: DWORD64, - PerformanceDataHandle: *mut HANDLE, - ) -> BOOL; - pub fn DisableThreadProfiling( - PerformanceDataHandle: HANDLE, - ) -> DWORD; - pub fn QueryThreadProfiling( - ThreadHandle: HANDLE, - Enabled: PBOOLEAN, - ) -> DWORD; - pub fn ReadThreadProfilingData( - PerformanceDataHandle: HANDLE, - Flags: DWORD, - PerformanceData: PPERFORMANCE_DATA, - ) -> DWORD; - // intrinsic InterlockedIncrement - // intrinsic InterlockedDecrement - // intrinsic InterlockedExchange - // intrinsic InterlockedExchangeAdd - // intrinsic InterlockedExchangeSubtract - // intrinsic InterlockedCompareExchange - // intrinsic InterlockedAnd - // intrinsic InterlockedOr - // intrinsic InterlockedXor -} |