| //+------------------------------------------------------------------+
|
| //| WinBase.mqh |
|
| //| Copyright 2000-2025, MetaQuotes Ltd. |
|
| //| https://www.mql5.com |
|
| //+------------------------------------------------------------------+
|
| #include <WinAPI\windef.mqh>
|
| #include <WinAPI\winnt.mqh>
|
| #include <WinAPI\fileapi.mqh>
|
|
|
| //---
|
| #define OFS_MAXPATHNAME 128
|
| #define HW_PROFILE_GUIDLEN 39
|
| #define MAX_PROFILE_LEN 80
|
| #define RESTART_MAX_CMD_LINE 1024
|
|
|
| //---
|
| 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
|
| };
|
| //---
|
| enum COPYFILE2_MESSAGE_ACTION
|
| {
|
| COPYFILE2_PROGRESS_CONTINUE=0,
|
| COPYFILE2_PROGRESS_CANCEL,
|
| COPYFILE2_PROGRESS_STOP,
|
| COPYFILE2_PROGRESS_QUIET,
|
| COPYFILE2_PROGRESS_PAUSE
|
| };
|
| //---
|
| 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 DEP_SYSTEM_POLICY_TYPE
|
| {
|
| DEPPolicyAlwaysOff=0,
|
| DEPPolicyAlwaysOn,
|
| DEPPolicyOptIn,
|
| DEPPolicyOptOut,
|
| DEPTotalPolicyCount
|
| };
|
| //---
|
| enum FILE_ID_TYPE
|
| {
|
| FileIdType,
|
| ObjectIdType,
|
| ExtendedFileIdType,
|
| MaximumFileIdType
|
| };
|
| //---
|
| enum PRIORITY_HINT
|
| {
|
| IoPriorityHintVeryLow=0,
|
| IoPriorityHintLow,
|
| IoPriorityHintNormal,
|
| MaximumIoPriorityHintType
|
| };
|
| //---
|
| enum PROC_THREAD_ATTRIBUTE_NUM
|
| {
|
| ProcThreadAttributeParentProcess=0,
|
| ProcThreadAttributeHandleList=2,
|
| ProcThreadAttributeGroupAffinity=3,
|
| ProcThreadAttributePreferredNode=4,
|
| ProcThreadAttributeIdealProcessor=5,
|
| ProcThreadAttributeUmsThread=6,
|
| ProcThreadAttributeMitigationPolicy=7,
|
| ProcThreadAttributeSecurityCapabilities=9,
|
| ProcThreadAttributeProtectionLevel=11,
|
| ProcThreadAttributeJobList=13,
|
| ProcThreadAttributeChildProcessPolicy=14,
|
| ProcThreadAttributeAllApplicationPackagesPolicy=15,
|
| ProcThreadAttributeWin32kFilter=16,
|
| ProcThreadAttributeSafeOpenPromptOriginClaim=17,
|
| ProcThreadAttributeDesktopAppPolicy=18
|
| };
|
| //---
|
| struct ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA
|
| {
|
| PVOID lpInformation;
|
| PVOID lpSectionBase;
|
| uint ulSectionLength;
|
| PVOID lpSectionGlobalDataBase;
|
| uint ulSectionGlobalDataLength;
|
| };
|
| //---
|
| struct ACTCTX_SECTION_KEYED_DATA
|
| {
|
| uint cbSize;
|
| uint ulDataFormatVersion;
|
| PVOID lpData;
|
| uint ulLength;
|
| PVOID lpSectionGlobalData;
|
| uint ulSectionGlobalDataLength;
|
| PVOID lpSectionBase;
|
| uint ulSectionTotalLength;
|
| HANDLE hActCtx;
|
| uint ulAssemblyRosterIndex;
|
| uint ulFlags;
|
| ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata;
|
| };
|
| //---
|
| struct ACTCTX_SECTION_KEYED_DATA_2600
|
| {
|
| uint cbSize;
|
| uint ulDataFormatVersion;
|
| PVOID lpData;
|
| uint ulLength;
|
| PVOID lpSectionGlobalData;
|
| uint ulSectionGlobalDataLength;
|
| PVOID lpSectionBase;
|
| uint ulSectionTotalLength;
|
| HANDLE hActCtx;
|
| uint ulAssemblyRosterIndex;
|
| };
|
| //---
|
| struct ACTCTXW
|
| {
|
| uint cbSize;
|
| uint dwFlags;
|
| PVOID lpSource;
|
| ushort wProcessorArchitecture;
|
| ushort wLangId;
|
| PVOID lpAssemblyDirectory;
|
| PVOID lpResourceName;
|
| PVOID lpApplicationName;
|
| HANDLE hModule;
|
| };
|
| //---
|
| struct ACTIVATION_CONTEXT_BASIC_INFORMATION
|
| {
|
| HANDLE hActCtx;
|
| uint dwFlags;
|
| };
|
| //---
|
| struct DCB
|
| {
|
| uint DCBlength;
|
| uint BaudRate;
|
| uint Flags;
|
| ushort wReserved;
|
| ushort XonLim;
|
| ushort XoffLim;
|
| uchar ByteSize;
|
| uchar Parity;
|
| uchar StopBits;
|
| char XonChar;
|
| char XoffChar;
|
| char ErrorChar;
|
| char EofChar;
|
| char EvtChar;
|
| ushort wReserved1;
|
| };
|
| //---
|
| struct COMMCONFIG
|
| {
|
| uint dwSize;
|
| ushort wVersion;
|
| ushort wReserved;
|
| DCB dcb;
|
| uint dwProviderSubType;
|
| uint dwProviderOffset;
|
| uint dwProviderSize;
|
| short wcProviderData[2];
|
| };
|
| //---
|
| struct COMMPROP
|
| {
|
| ushort wPacketLength;
|
| ushort wPacketVersion;
|
| uint dwServiceMask;
|
| uint dwReserved1;
|
| uint dwMaxTxQueue;
|
| uint dwMaxRxQueue;
|
| uint dwMaxBaud;
|
| uint dwProvSubType;
|
| uint dwProvCapabilities;
|
| uint dwSettableParams;
|
| uint dwSettableBaud;
|
| ushort wSettableData;
|
| ushort wSettableStopParity;
|
| uint dwCurrentTxQueue;
|
| uint dwCurrentRxQueue;
|
| uint dwProvSpec1;
|
| uint dwProvSpec2;
|
| short wcProvChar[1];
|
| };
|
| //---
|
| struct COMMTIMEOUTS
|
| {
|
| uint ReadIntervalTimeout;
|
| uint ReadTotalTimeoutMultiplier;
|
| uint ReadTotalTimeoutConstant;
|
| uint WriteTotalTimeoutMultiplier;
|
| uint WriteTotalTimeoutConstant;
|
| };
|
| //---
|
| struct COMSTAT
|
| {
|
| uint cbInQue;
|
| uint cbOutQue;
|
| };
|
| //---
|
| struct COPYFILE2_EXTENDED_PARAMETERS
|
| {
|
| uint dwSize;
|
| uint dwCopyFlags;
|
| PVOID pfCancel;
|
| PVOID pProgressRoutine;
|
| PVOID pvCallbackContext;
|
| };
|
| //---
|
| struct EVENTLOG_FULL_INFORMATION
|
| {
|
| uint dwFull;
|
| };
|
| //---
|
| struct FILE_ALIGNMENT_INFO: public FILE_INFO
|
| {
|
| uint AlignmentRequirement;
|
| };
|
| //---
|
| struct FILE_ALLOCATION_INFO: public FILE_INFO
|
| {
|
| long AllocationSize;
|
| };
|
| //---
|
| struct FILE_ATTRIBUTE_TAG_INFO: public FILE_INFO
|
| {
|
| uint FileAttributes;
|
| uint ReparseTag;
|
| };
|
| //---
|
| struct FILE_BASIC_INFO: public FILE_INFO
|
| {
|
| long CreationTime;
|
| long LastAccessTime;
|
| long LastWriteTime;
|
| long ChangeTime;
|
| uint FileAttributes;
|
| };
|
| //---
|
| struct FILE_COMPRESSION_INFO: public FILE_INFO
|
| {
|
| long CompressedFileSize;
|
| ushort CompressionFormat;
|
| uchar CompressionUnitShift;
|
| uchar ChunkShift;
|
| uchar ClusterShift;
|
| uchar Reserved[3];
|
| };
|
| //---
|
| struct FILE_DISPOSITION_INFO: public FILE_INFO
|
| {
|
| uchar DeleteFile;
|
| };
|
| //---
|
| struct FILE_DISPOSITION_INFO_EX: public FILE_INFO
|
| {
|
| uint Flags;
|
| };
|
| //---
|
| struct FILE_END_OF_FILE_INFO: public FILE_INFO
|
| {
|
| long EndOfFile;
|
| };
|
| //---
|
| struct FILE_FULL_DIR_INFO: public FILE_INFO
|
| {
|
| uint NextEntryOffset;
|
| uint FileIndex;
|
| long CreationTime;
|
| long LastAccessTime;
|
| long LastWriteTime;
|
| long ChangeTime;
|
| long EndOfFile;
|
| long AllocationSize;
|
| uint FileAttributes;
|
| uint FileNameLength;
|
| uint EaSize;
|
| short FileName[1];
|
| };
|
| //---
|
| struct FILE_ID_BOTH_DIR_INFO: public FILE_INFO
|
| {
|
| uint NextEntryOffset;
|
| uint FileIndex;
|
| long CreationTime;
|
| long LastAccessTime;
|
| long LastWriteTime;
|
| long ChangeTime;
|
| long EndOfFile;
|
| long AllocationSize;
|
| uint FileAttributes;
|
| uint FileNameLength;
|
| uint EaSize;
|
| char ShortNameLength;
|
| short ShortName[12];
|
| long FileId;
|
| short FileName[1];
|
| };
|
| //---
|
| struct FILE_ID_EXTD_DIR_INFO: public FILE_INFO
|
| {
|
| uint NextEntryOffset;
|
| uint FileIndex;
|
| long CreationTime;
|
| long LastAccessTime;
|
| long LastWriteTime;
|
| long ChangeTime;
|
| long EndOfFile;
|
| long AllocationSize;
|
| uint FileAttributes;
|
| uint FileNameLength;
|
| uint EaSize;
|
| uint ReparsePointTag;
|
| FILE_ID_128 FileId;
|
| short FileName[1];
|
| };
|
| //---
|
| struct FILE_ID_INFO: public FILE_INFO
|
| {
|
| ulong VolumeSerialNumber;
|
| FILE_ID_128 FileId;
|
| };
|
| //---
|
| struct FILE_IO_PRIORITY_HINT_INFO: public FILE_INFO
|
| {
|
| PRIORITY_HINT PriorityHint;
|
| };
|
| //---
|
| struct FILE_NAME_INFO
|
| {
|
| uint FileNameLength;
|
| short FileName[2];
|
| };
|
| //---
|
| struct FILE_STANDARD_INFO: public FILE_INFO
|
| {
|
| long AllocationSize;
|
| long EndOfFile;
|
| uint NumberOfLinks;
|
| uchar DeletePending;
|
| uchar Directory;
|
| };
|
| //---
|
| struct FILE_STORAGE_INFO: public FILE_INFO
|
| {
|
| uint LogicalBytesPerSector;
|
| uint PhysicalBytesPerSectorForAtomicity;
|
| uint PhysicalBytesPerSectorForPerformance;
|
| uint FileSystemEffectivePhysicalBytesPerSectorForAtomicity;
|
| uint Flags;
|
| uint ByteOffsetForSectorAlignment;
|
| uint ByteOffsetForPartitionAlignment;
|
| };
|
| //---
|
| struct FILE_STREAM_INFO: public FILE_INFO
|
| {
|
| uint NextEntryOffset;
|
| uint StreamNameLength;
|
| long StreamSize;
|
| long StreamAllocationSize;
|
| short StreamName[1];
|
| };
|
| //---
|
| struct HW_PROFILE_INFOW
|
| {
|
| uint dwDockInfo;
|
| short szHwProfileGuid[HW_PROFILE_GUIDLEN];
|
| short szHwProfileName[MAX_PROFILE_LEN];
|
| };
|
| //---
|
| struct JIT_DEBUG_INFO
|
| {
|
| uint dwSize;
|
| uint dwProcessorArchitecture;
|
| uint dwThreadID;
|
| uint dwReserved0;
|
| ulong lpExceptionAddress;
|
| ulong lpExceptionRecord;
|
| ulong lpContextRecord;
|
| };
|
| //---
|
| struct MEMORYSTATUS
|
| {
|
| uint dwLength;
|
| uint dwMemoryLoad;
|
| ulong dwTotalPhys;
|
| ulong dwAvailPhys;
|
| ulong dwTotalPageFile;
|
| ulong dwAvailPageFile;
|
| ulong dwTotalVirtual;
|
| ulong dwAvailVirtual;
|
| };
|
| //---
|
| struct OFSTRUCT
|
| {
|
| uchar cBytes;
|
| uchar fFixedDisk;
|
| ushort nErrCode;
|
| ushort Reserved1;
|
| ushort Reserved2;
|
| char szPathName[OFS_MAXPATHNAME];
|
| };
|
| //---
|
| struct OPERATION_END_PARAMETERS
|
| {
|
| uint Version;
|
| uint OperationId;
|
| uint Flags;
|
| };
|
| //---
|
| struct OPERATION_START_PARAMETERS
|
| {
|
| uint Version;
|
| uint OperationId;
|
| uint Flags;
|
| };
|
| //---
|
| struct SYSTEM_POWER_STATUS
|
| {
|
| uchar ACLineStatus;
|
| uchar BatteryFlag;
|
| uchar BatteryLifePercent;
|
| uchar SystemStatusFlag;
|
| uint BatteryLifeTime;
|
| uint BatteryFullLifeTime;
|
| };
|
| //---
|
| struct UMS_SCHEDULER_STARTUP_INFO
|
| {
|
| uint UmsVersion;
|
| PVOID CompletionList;
|
| PVOID SchedulerProc;
|
| PVOID SchedulerParam;
|
| };
|
| //---
|
| struct WIN32_STREAM_ID
|
| {
|
| uint dwStreamId;
|
| uint dwStreamAttributes;
|
| long Size;
|
| uint dwStreamNameSize;
|
| };
|
| //---
|
| struct UMS_SYSTEM_THREAD_INFORMATION
|
| {
|
| uint UmsVersion;
|
| uint ThreadUmsFlags;
|
| };
|
| //---
|
| struct FILE_ID_DESCRIPTOR
|
| {
|
| uint dwSize;
|
| FILE_ID_TYPE Type;
|
| long FileId;
|
| };
|
| //---
|
| struct SYSTEMTIME
|
| {
|
| ushort wYear;
|
| ushort wMonth;
|
| ushort wDayOfWeek;
|
| ushort wDay;
|
| ushort wHour;
|
| ushort wMinute;
|
| ushort wSecond;
|
| ushort wMilliseconds;
|
| };
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| #import "kernel32.dll"
|
| int ActivateActCtx(HANDLE act_ctx,PVOID &cookie);
|
| int ActivateActCtx(ACTCTXW &act_ctx,PVOID &cookie);
|
| ushort AddAtomW(const string str);
|
| int AddIntegrityLabelToBoundaryDescriptor(HANDLE &BoundaryDescriptor,SID &IntegrityLabel);
|
| void AddRefActCtx(HANDLE act_ctx);
|
| void AddRefActCtx(ACTCTXW &act_ctx);
|
| int AddSecureMemoryCacheCallback(PVOID call_back);
|
| void ApplicationRecoveryFinished(int success);
|
| int ApplicationRecoveryInProgress(int &cancelled);
|
| int BackupRead(HANDLE file,uchar &buffer[],uint number_of_bytes_to_read,uint &number_of_bytes_read,int abort,int process_security,PVOID &context);
|
| int BackupSeek(HANDLE file,uint low_bytes_to_seek,uint high_bytes_to_seek,uint &low_byte_seeked,uint &high_byte_seeked,PVOID &context);
|
| int BackupWrite(HANDLE file,uchar &buffer[],uint number_of_bytes_to_write,uint &number_of_bytes_written,int abort,int process_security,PVOID &context);
|
| HANDLE BeginUpdateResourceW(const string file_name,int delete_existing_resources);
|
| int BindIoCompletionCallback(HANDLE FileHandle,PVOID Function,uint Flags);
|
| int BuildCommDCBAndTimeoutsW(const string def,DCB &lpDCB,COMMTIMEOUTS &comm_timeouts);
|
| int BuildCommDCBW(const string def,DCB &lpDCB);
|
| int CancelDeviceWakeupRequest(HANDLE device);
|
| int CancelTimerQueueTimer(HANDLE TimerQueue,HANDLE Timer);
|
| int CheckNameLegalDOS8Dot3W(const string name,char &oem_name[],uint oem_name_size,int &name_contains_spaces,int &name_legal);
|
| int ClearCommBreak(HANDLE file);
|
| int ClearCommError(HANDLE file,uint &errors,COMSTAT &stat);
|
| int CommConfigDialogW(const string name,HANDLE wnd,COMMCONFIG &lpCC);
|
| int ConvertFiberToThread(void);
|
| PVOID ConvertThreadToFiber(PVOID parameter);
|
| PVOID ConvertThreadToFiberEx(PVOID parameter,uint flags);
|
| int CopyContext(CONTEXT &Destination,uint ContextFlags,CONTEXT &Source);
|
| int CopyFile2(const string existing_file_name,const string new_file_name,COPYFILE2_EXTENDED_PARAMETERS &extended_parameters);
|
| int CopyFileExW(const string existing_file_name,const string new_file_name,PVOID progress_routine,PVOID data,int &cancel,uint copy_flags);
|
| int CopyFileTransactedW(const string existing_file_name,const string new_file_name,PVOID progress_routine,PVOID data,int &cancel,uint copy_flags,HANDLE transaction);
|
| int CopyFileW(const string existing_file_name,const string new_file_name,int fail_if_exists);
|
| HANDLE CreateActCtxW(const ACTCTXW &act_ctx);
|
| int CreateDirectoryExW(const string template_directory,const string new_directory,PVOID security_attributes);
|
| int CreateDirectoryTransactedW(const string template_directory,const string new_directory,PVOID security_attributes,HANDLE transaction);
|
| PVOID CreateFiber(ulong stack_size,PVOID start_address,PVOID parameter);
|
| PVOID CreateFiberEx(ulong stack_commit_size,ulong stack_reserve_size,uint flags,PVOID start_address,PVOID parameter);
|
| HANDLE CreateFileTransactedW(const string file_name,uint desired_access,uint share_mode,PVOID security_attributes,uint creation_disposition,uint flags_and_attributes,HANDLE template_file,HANDLE transaction,ushort &mini_version,PVOID extended_parameter);
|
| int CreateHardLinkTransactedW(const string file_name,const string existing_file_name,PVOID security_attributes,HANDLE transaction);
|
| int CreateHardLinkW(const string file_name,const string existing_file_name,PVOID security_attributes);
|
| int CreateJobSet(uint NumJob,JOB_SET_ARRAY &UserJobSet,uint Flags);
|
| HANDLE CreateMailslotW(const string name,uint max_message_size,uint read_timeout,PVOID security_attributes);
|
| uchar CreateSymbolicLinkTransactedW(const string symlink_file_name,const string target_file_name,uint flags,HANDLE transaction);
|
| uchar CreateSymbolicLinkW(const string symlink_file_name,const string target_file_name,uint flags);
|
| uint CreateTapePartition(HANDLE device,uint partition_method,uint count,uint size);
|
| int CreateUmsCompletionList(PVOID &UmsCompletionList);
|
| int CreateUmsThreadContext(PVOID &ums_thread);
|
| int DeactivateActCtx(uint flags,ulong cookie);
|
| int DebugBreakProcess(HANDLE Process);
|
| int DebugSetProcessKillOnExit(int KillOnExit);
|
| ushort DeleteAtom(ushort atom);
|
| void DeleteFiber(PVOID fiber);
|
| int DeleteFileTransactedW(const string file_name,HANDLE transaction);
|
| int DeleteTimerQueue(HANDLE TimerQueue);
|
| int DeleteUmsCompletionList(PVOID UmsCompletionList);
|
| int DeleteUmsThreadContext(PVOID UmsThread);
|
| int DequeueUmsCompletionListItems(PVOID UmsCompletionList,uint WaitTimeOut,PVOID &UmsThreadList);
|
| uint DisableThreadProfiling(HANDLE PerformanceDataHandle);
|
| int DnsHostnameToComputerNameW(const string hostname,ushort &computer_name[],uint &size);
|
| int DosDateTimeToFileTime(ushort fat_date,ushort fat_time,FILETIME &file_time);
|
| uint EnableThreadProfiling(HANDLE ThreadHandle,uint Flags,ulong HardwareCounters,HANDLE &PerformanceDataHandle);
|
| int EndUpdateResourceW(HANDLE update,int discard);
|
| int EnterUmsSchedulingMode(UMS_SCHEDULER_STARTUP_INFO &SchedulerStartupInfo);
|
| int EnumResourceLanguagesW(HANDLE module,const string type,const string name,PVOID enum_func,long param);
|
| int EnumResourceTypesW(HANDLE module,PVOID enum_func,long param);
|
| uint EraseTape(HANDLE device,uint erase_type,int immediate);
|
| int EscapeCommFunction(HANDLE file,uint func);
|
| int ExecuteUmsThread(PVOID UmsThread);
|
| void FatalExit(int ExitCode);
|
| int FileTimeToDosDateTime(FILETIME &file_time,ushort &fat_date,ushort &fat_time);
|
| int FindActCtxSectionGuid(uint flags,const GUID &extension_guid[],uint section_id,const GUID &guid_to_find[],ACTCTX_SECTION_KEYED_DATA &ReturnedData);
|
| int FindActCtxSectionStringW(uint flags,const GUID &extension_guid[],uint section_id,const string string_to_find,ACTCTX_SECTION_KEYED_DATA &ReturnedData);
|
| ushort FindAtomW(const string str);
|
| HANDLE FindFirstFileNameTransactedW(const string file_name,uint flags,uint &StringLength,string LinkName,HANDLE transaction);
|
| HANDLE FindFirstFileTransactedW(const string file_name,FINDEX_INFO_LEVELS info_level_id,FIND_DATAW &find_file_data,FINDEX_SEARCH_OPS search_op,PVOID search_filter,uint additional_flags,HANDLE transaction);
|
| HANDLE FindFirstStreamTransactedW(const string file_name,STREAM_INFO_LEVELS InfoLevel,FIND_STREAM_DATA &find_stream_data,uint flags,HANDLE transaction);
|
| HANDLE FindFirstVolumeMountPointW(const string root_path_name,ushort &volume_mount_point[],uint buffer_length);
|
| int FindNextVolumeMountPointW(HANDLE find_volume_mount_point,string volume_mount_point,uint buffer_length);
|
| int FindVolumeMountPointClose(HANDLE find_volume_mount_point);
|
| uint FormatMessageW(uint flags,const uchar &source[],uint message_id,uint language_id,ushort &buffer[],uint size,PVOID &Arguments[]);
|
| uint GetActiveProcessorCount(ushort GroupNumber);
|
| ushort GetActiveProcessorGroupCount(void);
|
| int GetApplicationRecoveryCallback(HANDLE process,PVOID &recovery_callback,PVOID ¶meter,uint &ping_interval,uint &flags);
|
| int GetApplicationRestartSettings(HANDLE process,ushort &commandline[],uint &size,uint &flags);
|
| uint GetAtomNameW(ushort atom,ushort &buffer[],int size);
|
| int GetBinaryTypeW(const string application_name,uint &binary_type);
|
| int GetCommConfig(HANDLE comm_dev,COMMCONFIG &lpCC,uint &size);
|
| int GetCommMask(HANDLE file,uint &evt_mask);
|
| int GetCommModemStatus(HANDLE file,uint &modem_stat);
|
| int GetCommProperties(HANDLE file,COMMPROP &comm_prop);
|
| int GetCommState(HANDLE file,DCB &lpDCB);
|
| int GetCommTimeouts(HANDLE file,COMMTIMEOUTS &comm_timeouts);
|
| uint GetCompressedFileSizeTransactedW(const string file_name,uint &file_size_high,HANDLE transaction);
|
| int GetComputerNameW(ushort &buffer[],uint &size);
|
| int GetCurrentActCtx(HANDLE &act_ctx);
|
| int GetCurrentActCtx(ACTCTXW &act_ctx);
|
| PVOID GetCurrentUmsThread(void);
|
| int GetDefaultCommConfigW(const string name,COMMCONFIG &lpCC,uint &size);
|
| int GetDevicePowerState(HANDLE device,int &on);
|
| uint GetDllDirectoryW(uint buffer_length,ushort &buffer[]);
|
| ulong GetEnabledXStateFeatures(void);
|
| int GetFileAttributesTransactedW(const string file_name,GET_FILEEX_INFO_LEVELS info_level_id,PVOID file_information,HANDLE transaction);
|
| int GetFileBandwidthReservation(HANDLE file,uint &period_milliseconds,uint &bytes_per_period,int &discardable,uint &transfer_size,uint &num_outstanding_requests);
|
| int GetFileInformationByHandleEx(HANDLE file,FILE_INFO_BY_HANDLE_CLASS FileInformationClass,PVOID file_information,uint buffer_size);
|
| int GetFileInformationByHandleEx(HANDLE file,FILE_INFO_BY_HANDLE_CLASS FileInformationClass,uchar &file_information[],uint buffer_size);
|
| uint GetFirmwareEnvironmentVariableExW(const string name,const string guid,PVOID buffer,uint size,uint &attribubutes);
|
| uint GetFirmwareEnvironmentVariableW(const string name,const string guid,PVOID buffer,uint size);
|
| int GetFirmwareType(FIRMWARE_TYPE &FirmwareType);
|
| uint GetFullPathNameTransactedW(const string file_name,uint buffer_length,string buffer,string &file_part,HANDLE transaction);
|
| uint GetLongPathNameTransactedW(const string short_path,string long_path,uint buffer,HANDLE transaction);
|
| int GetMailslotInfo(HANDLE mailslot,uint &max_message_size,uint &next_size,uint &message_count,uint &read_timeout);
|
| uint GetMaximumProcessorCount(ushort GroupNumber);
|
| ushort GetMaximumProcessorGroupCount(void);
|
| int GetNamedPipeClientProcessId(HANDLE Pipe,uint &ClientProcessId);
|
| int GetNamedPipeClientSessionId(HANDLE Pipe,uint &ClientSessionId);
|
| int GetNamedPipeServerProcessId(HANDLE Pipe,uint &ServerProcessId);
|
| int GetNamedPipeServerSessionId(HANDLE Pipe,uint &ServerSessionId);
|
| PVOID GetNextUmsListItem(PVOID UmsContext);
|
| int GetNumaAvailableMemoryNode(uchar Node,ulong &AvailableBytes);
|
| int GetNumaAvailableMemoryNodeEx(ushort Node,ulong &AvailableBytes);
|
| int GetNumaNodeNumberFromHandle(HANDLE file,ushort &NodeNumber);
|
| int GetNumaNodeProcessorMask(uchar Node,ulong &ProcessorMask);
|
| int GetNumaProcessorNode(uchar Processor,uchar &NodeNumber);
|
| int GetNumaProcessorNodeEx(PROCESSOR_NUMBER &Processor,ushort &NodeNumber);
|
| int GetNumaProximityNode(uint ProximityId,uchar &NodeNumber);
|
| uint GetPrivateProfileIntW(const string app_name,const string key_name,int default_value,const string file_name);
|
| uint GetPrivateProfileSectionNamesW(string return_buffer,uint size,const string file_name);
|
| uint GetPrivateProfileSectionW(const string app_name,string returned_string,uint size,const string file_name);
|
| uint GetPrivateProfileStringW(const string app_name,const string key_name,const string default_value,string returned_string,uint size,const string file_name);
|
| int GetPrivateProfileStructW(const string section,const string key,PVOID struct_obj,uint size_struct,const string file);
|
| int GetProcessAffinityMask(HANDLE process,ulong &process_affinity_mask,ulong &system_affinity_mask);
|
| int GetProcessDEPPolicy(HANDLE process,uint &flags,int &permanent);
|
| int GetProcessIoCounters(HANDLE process,IO_COUNTERS &io_counters);
|
| int GetProcessWorkingSetSize(HANDLE process,ulong &minimum_working_set_size,ulong &maximum_working_set_size);
|
| uint GetProfileIntW(const string app_name,const string key_name,int default_value);
|
| uint GetProfileSectionW(const string app_name,string returned_string,uint size);
|
| uint GetProfileStringW(const string app_name,const string key_name,const string default_value,string returned_string,uint size);
|
| DEP_SYSTEM_POLICY_TYPE GetSystemDEPPolicy(void);
|
| int GetSystemPowerStatus(SYSTEM_POWER_STATUS &system_power_status);
|
| int GetSystemRegistryQuota(uint "a_allowed,uint "a_used);
|
| uint GetTapeParameters(HANDLE device,uint operation,uint &size,PVOID tape_information);
|
| uint GetTapePosition(HANDLE device,uint position_type,uint &partition,uint &offset_low,uint &offset_high);
|
| uint GetTapeStatus(HANDLE device);
|
| int GetThreadSelectorEntry(HANDLE thread,uint selector,LDT_ENTRY &selector_entry);
|
| int GetUmsCompletionListEvent(PVOID UmsCompletionList,HANDLE &UmsCompletionEvent);
|
| int GetUmsSystemThreadInformation(HANDLE ThreadHandle,UMS_SYSTEM_THREAD_INFORMATION &SystemThreadInfo);
|
| int GetXStateFeaturesMask(CONTEXT &Context,ulong &FeatureMask);
|
| ushort GlobalAddAtomExW(const string str,uint Flags);
|
| ushort GlobalAddAtomW(const string str);
|
| HANDLE GlobalAlloc(uint flags,ulong bytes);
|
| ulong GlobalCompact(uint min_free);
|
| ushort GlobalDeleteAtom(ushort atom);
|
| ushort GlobalFindAtomW(const string str);
|
| void GlobalFix(HANDLE mem);
|
| uint GlobalFlags(HANDLE mem);
|
| HANDLE GlobalFree(HANDLE mem);
|
| uint GlobalGetAtomNameW(ushort atom,ushort &buffer[],int size);
|
| HANDLE GlobalHandle(const PVOID mem);
|
| PVOID GlobalLock(HANDLE mem);
|
| void GlobalMemoryStatus(MEMORYSTATUS &buffer);
|
| HANDLE GlobalReAlloc(HANDLE mem,ulong bytes,uint flags);
|
| ulong GlobalSize(HANDLE mem);
|
| void GlobalUnfix(HANDLE mem);
|
| int GlobalUnlock(HANDLE mem);
|
| int GlobalUnWire(HANDLE mem);
|
| PVOID GlobalWire(HANDLE mem);
|
| int InitAtomTable(uint size);
|
| int InitializeContext(uchar &Buffer[],uint ContextFlags,CONTEXT &Context,uint &ContextLength);
|
| int InitializeContext(PVOID Buffer,uint ContextFlags,CONTEXT &Context,uint &ContextLength);
|
| int IsBadCodePtr(PVOID lpfn);
|
| int IsBadHugeReadPtr(PVOID lp,ulong ucb);
|
| int IsBadHugeWritePtr(PVOID lp,ulong ucb);
|
| int IsBadReadPtr(PVOID lp,ulong ucb);
|
| int IsBadStringPtrW(const string lpsz,ulong max);
|
| int IsBadWritePtr(PVOID lp,ulong ucb);
|
| int IsNativeVhdBoot(int &NativeVhdBoot);
|
| int IsSystemResumeAutomatic(void);
|
| HANDLE LoadPackagedLibrary(const string lib_file_name,uint Reserved);
|
| HANDLE LocalAlloc(uint flags,ulong bytes);
|
| ulong LocalCompact(uint min_free);
|
| uint LocalFlags(HANDLE mem);
|
| HANDLE LocalFree(HANDLE mem);
|
| HANDLE LocalHandle(const PVOID mem);
|
| PVOID LocalLock(HANDLE mem);
|
| HANDLE LocalReAlloc(HANDLE mem,ulong bytes,uint flags);
|
| ulong LocalShrink(HANDLE mem,uint new_size);
|
| ulong LocalSize(HANDLE mem);
|
| int LocalUnlock(HANDLE mem);
|
| PVOID LocateXStateFeature(CONTEXT &Context,uint FeatureId,uint &Length);
|
| string lstrcatW(ushort &string1[],const string string2);
|
| int lstrcmpiW(const string string1,const string string2);
|
| int lstrcmpW(const string string1,const string string2);
|
| string lstrcpynW(ushort &string1[],const string string2,int max_length);
|
| string lstrcpyW(ushort &string1[],const string string2);
|
| int lstrlenW(const string str);
|
| int MapUserPhysicalPagesScatter(PVOID &VirtualAddresses[],ulong NumberOfPages,ulong &PageArray[]);
|
| PVOID MapViewOfFileExNuma(HANDLE file_mapping_object,uint desired_access,uint file_offset_high,uint file_offset_low,ulong number_of_bytes_to_map,PVOID base_address,uint preferred);
|
| int MoveFileExW(const string existing_file_name,const string new_file_name,uint flags);
|
| int MoveFileTransactedW(const string existing_file_name,const string new_file_name,PVOID progress_routine,PVOID data,uint flags,HANDLE transaction);
|
| int MoveFileW(const string existing_file_name,const string new_file_name);
|
| int MoveFileWithProgressW(const string existing_file_name,const string new_file_name,PVOID progress_routine,PVOID data,uint flags);
|
| int MulDiv(int number,int numerator,int denominator);
|
| HANDLE OpenFileById(HANDLE volume_hint,FILE_ID_DESCRIPTOR &file_id,uint desired_access,uint share_mode,PVOID security_attributes,uint flags_and_attributes);
|
| int PowerClearRequest(HANDLE PowerRequest,POWER_REQUEST_TYPE RequestType);
|
| HANDLE PowerCreateRequest(REASON_CONTEXT &Context);
|
| int PowerSetRequest(HANDLE PowerRequest,POWER_REQUEST_TYPE RequestType);
|
| uint PrepareTape(HANDLE device,uint operation,int immediate);
|
| int PulseEvent(HANDLE event);
|
| int PurgeComm(HANDLE file,uint flags);
|
| int QueryActCtxSettingsW(uint flags,HANDLE act_ctx,const string name_space,const string name,string buffer,ulong buffer_len,ulong &written_or_required);
|
| int QueryActCtxSettingsW(uint flags,ACTCTXW &act_ctx,const string name_space,const string name,string buffer,ulong buffer_len,ulong &written_or_required);
|
| int QueryActCtxW(uint flags,HANDLE act_ctx,PVOID sub_instance,uint info_class,PVOID buffer,ulong buffer_len,ulong &written_or_required);
|
| int QueryActCtxW(uint flags,ACTCTXW &act_ctx,PVOID sub_instance,uint info_class,PVOID buffer,ulong buffer_len,ulong &written_or_required);
|
| int QueryFullProcessImageNameW(HANDLE process,uint flags,string exe_name,uint &size);
|
| uint QueryThreadProfiling(HANDLE ThreadHandle,uchar &Enabled);
|
| int QueryUmsThreadInformation(PVOID UmsThread,RTL_UMS_THREAD_INFO_CLASS UmsThreadInfoClass,PVOID UmsThreadInformation,uint UmsThreadInformationLength,uint &ReturnLength);
|
| int ReadDirectoryChangesExW(HANDLE directory,PVOID buffer,uint buffer_length,int watch_subtree,uint notify_filter,uint &bytes_returned,OVERLAPPED &overlapped,PVOID completion_routine,READ_DIRECTORY_NOTIFY_INFORMATION_CLASS ReadDirectoryNotifyInformationClass);
|
| int ReadDirectoryChangesW(HANDLE directory,PVOID buffer,uint buffer_length,int watch_subtree,uint notify_filter,uint &bytes_returned,OVERLAPPED &overlapped,PVOID completion_routine);
|
| uint ReadThreadProfilingData(HANDLE PerformanceDataHandle,uint Flags,PERFORMANCE_DATA &PerformanceData);
|
| int RegisterApplicationRecoveryCallback(PVOID recovey_callback,PVOID parameter,uint ping_interval,uint flags);
|
| int RegisterApplicationRestart(const string commandline,uint flags);
|
| int RegisterWaitForSingleObject(HANDLE &new_wait_object,HANDLE object,PVOID Callback,PVOID Context,uint milliseconds,uint flags);
|
| void ReleaseActCtx(HANDLE act_ctx);
|
| void ReleaseActCtx(ACTCTXW &act_ctx);
|
| int RemoveDirectoryTransactedW(const string path_name,HANDLE transaction);
|
| int RemoveSecureMemoryCacheCallback(PVOID call_back);
|
| HANDLE ReOpenFile(HANDLE original_file,uint desired_access,uint share_mode,uint flags_and_attributes);
|
| int ReplaceFileW(const string replaced_file_name,const string replacement_file_name,const string backup_file_name,uint replace_flags,PVOID exclude,PVOID reserved);
|
| int ReplacePartitionUnit(string TargetPartition,string SparePartition,uint Flags);
|
| int RequestDeviceWakeup(HANDLE device);
|
| int RequestWakeupLatency(LATENCY_TIME latency);
|
| void RestoreLastError(uint err_code);
|
| int SetCommBreak(HANDLE file);
|
| int SetCommConfig(HANDLE comm_dev,COMMCONFIG &lpCC,uint size);
|
| int SetCommMask(HANDLE file,uint evt_mask);
|
| int SetCommState(HANDLE file,DCB &lpDCB);
|
| int SetCommTimeouts(HANDLE file,COMMTIMEOUTS &comm_timeouts);
|
| int SetDefaultCommConfigW(const string name,COMMCONFIG &lpCC,uint size);
|
| int SetDllDirectoryW(const string path_name);
|
| int SetFileAttributesTransactedW(const string file_name,uint file_attributes,HANDLE transaction);
|
| int SetFileBandwidthReservation(HANDLE file,uint period_milliseconds,uint bytes_per_period,int discardable,uint &transfer_size,uint &num_outstanding_requests);
|
| int SetFileCompletionNotificationModes(HANDLE FileHandle,uchar Flags);
|
| int SetFileShortNameW(HANDLE file,const string short_name);
|
| int SetFirmwareEnvironmentVariableExW(const string name,const string guid,PVOID value,uint size,uint attributes);
|
| int SetFirmwareEnvironmentVariableW(const string name,const string guid,PVOID value,uint size);
|
| uint SetHandleCount(uint number);
|
| int SetMailslotInfo(HANDLE mailslot,uint read_timeout);
|
| int SetMessageWaitingIndicator(HANDLE msg_indicator,uint msg_count);
|
| int SetProcessAffinityMask(HANDLE process,PVOID process_affinity_mask);
|
| int SetProcessDEPPolicy(uint flags);
|
| int SetProcessWorkingSetSize(HANDLE process,ulong minimum_working_set_size,ulong maximum_working_set_size);
|
| int SetSearchPathMode(uint flags);
|
| int SetSystemPowerState(int suspend,int force);
|
| uint SetTapeParameters(HANDLE device,uint operation,PVOID tape_information);
|
| uint SetTapePosition(HANDLE device,uint position_method,uint partition,uint offset_low,uint offset_high,int immediate);
|
| PVOID SetThreadAffinityMask(HANDLE thread,PVOID thread_affinity_mask);
|
| uint SetThreadExecutionState(uint flags);
|
| HANDLE SetTimerQueueTimer(HANDLE TimerQueue,PVOID Callback,PVOID Parameter,uint DueTime,uint Period,int PreferIo);
|
| int SetUmsThreadInformation(PVOID UmsThread,RTL_UMS_THREAD_INFO_CLASS UmsThreadInfoClass,PVOID UmsThreadInformation,uint UmsThreadInformationLength);
|
| int SetupComm(HANDLE file,uint in_queue,uint out_queue);
|
| int SetVolumeLabelW(const string root_path_name,const string volume_name);
|
| int SetVolumeMountPointW(const string volume_mount_point,const string volume_name);
|
| int SetXStateFeaturesMask(CONTEXT &Context,ulong FeatureMask);
|
| uint SignalObjectAndWait(HANDLE object_to_signal,HANDLE object_to_wait_on,uint milliseconds,int alertable);
|
| void SwitchToFiber(PVOID fiber);
|
| int TransmitCommChar(HANDLE file,char symbol);
|
| int UmsThreadYield(PVOID SchedulerParam);
|
| int UnregisterApplicationRecoveryCallback(void);
|
| int UnregisterApplicationRestart(void);
|
| int UnregisterWait(HANDLE WaitHandle);
|
| int UpdateResourceW(HANDLE update,const string type,const string name,ushort &language,PVOID data,uint cb);
|
| int VerifyVersionInfoW(OSVERSIONINFOEXW &version_information,uint type_mask,ulong condition_mask);
|
| int WaitCommEvent(HANDLE file,uint &evt_mask,OVERLAPPED &overlapped);
|
| uchar Wow64EnableWow64FsRedirection(uchar Wow64FsEnableRedirection);
|
| int Wow64GetThreadContext(HANDLE thread,CONTEXT &context);
|
| int Wow64GetThreadSelectorEntry(HANDLE thread,uint selector,LDT_ENTRY &selector_entry);
|
| int Wow64SetThreadContext(HANDLE thread,CONTEXT &context);
|
| uint Wow64SuspendThread(HANDLE thread);
|
| int WritePrivateProfileSectionW(const string app_name,const string str,const string file_name);
|
| int WritePrivateProfileStringW(const string app_name,const string key_name,const string str,const string file_name);
|
| int WritePrivateProfileStructW(const string section,const string key,PVOID struct_obj,uint size_struct,const string file);
|
| int WriteProfileSectionW(const string app_name,const string str);
|
| int WriteProfileStringW(const string app_name,const string key_name,const string str);
|
| uint WriteTapemark(HANDLE device,uint tapemark_type,uint tapemark_count,int immediate);
|
| uint WTSGetActiveConsoleSessionId(void);
|
| int ZombifyActCtx(HANDLE act_ctx);
|
| int ZombifyActCtx(ACTCTXW &act_ctx);
|
| #import
|
|
|
| #import "advapi32.dll"
|
| int AddConditionalAce(ACL &acl,uint ace_revision,uint AceFlags,uchar AceType,uint AccessMask,SID &sid,string ConditionStr,uint &ReturnLength);
|
| int BackupEventLogW(HANDLE event_log,const string backup_file_name);
|
| int ClearEventLogW(HANDLE event_log,const string backup_file_name);
|
| void CloseEncryptedFileRaw(PVOID context);
|
| int CloseEventLog(HANDLE event_log);
|
| int DecryptFileW(const string file_name,uint reserved);
|
| int DeregisterEventSource(HANDLE event_log);
|
| int EncryptFileW(const string file_name);
|
| int FileEncryptionStatusW(const string file_name,uint &status);
|
| int GetCurrentHwProfileW(HW_PROFILE_INFOW &hw_profile_info);
|
| int GetEventLogInformation(HANDLE event_log,uint info_level,PVOID buffer,uint buf_size,uint &bytes_needed);
|
| int GetNumberOfEventLogRecords(HANDLE event_log,uint &NumberOfRecords);
|
| int GetOldestEventLogRecord(HANDLE event_log,uint &OldestRecord);
|
| int GetUserNameW(string buffer,uint &buffer_len);
|
| int IsTextUnicode(PVOID lpv,int size,int &result);
|
| int IsTokenUntrusted(HANDLE TokenHandle);
|
| int LogonUserExW(const string username,const string domain,const string password,uint logon_type,uint logon_provider,HANDLE &token,PVOID &logon_sid,PVOID &profile_buffer,uint &profile_length,QUOTA_LIMITS "a_limits);
|
| int LogonUserW(const string username,const string domain,const string password,uint logon_type,uint logon_provider,HANDLE &token);
|
| int LookupAccountNameW(const string system_name,const string account_name,SID &Sid,uint &sid,string ReferencedDomainName,uint &referenced_domain_name,SID_NAME_USE &use);
|
| int LookupAccountSidW(const string system_name,SID &Sid,string Name,uint &name,string ReferencedDomainName,uint &referenced_domain_name,SID_NAME_USE &use);
|
| int LookupPrivilegeDisplayNameW(const string system_name,const string name,string display_name,uint &display_name_len,uint &language_id);
|
| int LookupPrivilegeNameW(const string system_name,LUID &luid,string name,uint &name_len);
|
| int LookupPrivilegeValueW(const string system_name,const string name,LUID &luid);
|
| int NotifyChangeEventLog(HANDLE event_log,HANDLE event);
|
| HANDLE OpenBackupEventLogW(const string lpUNCServerName,const string file_name);
|
| uint OpenEncryptedFileRawW(const string file_name,uint flags,PVOID &context);
|
| HANDLE OpenEventLogW(const string lpUNCServerName,const string source_name);
|
| int OperationEnd(OPERATION_END_PARAMETERS &OperationEndParams);
|
| int OperationStart(OPERATION_START_PARAMETERS &OperationStartParams);
|
| uint ReadEncryptedFileRaw(PVOID export_callback,PVOID callback_context,PVOID context);
|
| int ReadEventLogW(HANDLE event_log,uint read_flags,uint record_offset,PVOID buffer,uint number_of_bytes_to_read,uint &bytes_read,uint &min_number_of_bytes_needed);
|
| HANDLE RegisterEventSourceW(const string lpUNCServerName,const string source_name);
|
| int ReportEventW(HANDLE event_log,ushort &type,ushort &category,uint dwEventID,SID &user_sid,ushort &num_strings,uint data_size,const string &strings[],PVOID raw_data);
|
| uint WriteEncryptedFileRaw(PVOID import_callback,PVOID callback_context,PVOID context);
|
| #import
|
| //+------------------------------------------------------------------+
|