From aa5a222c6d3f10d9a9b19085e8cfa4af767b3512 Mon Sep 17 00:00:00 2001 From: Elusive Porpoise <95202750+elusivePorpoise@users.noreply.github.com> Date: Mon, 3 Apr 2023 22:32:21 -0700 Subject: [PATCH] Add creation, thread priority, and copy file flags. --- core/sys/windows/kernel32.odin | 66 ++++++++++++++++++++++++++++++++++ core/sys/windows/types.odin | 8 ++--- 2 files changed, 68 insertions(+), 6 deletions(-) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index ff2607b62..c7542be43 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -407,6 +407,72 @@ foreign kernel32 { GetLogicalProcessorInformation :: proc(buffer: ^SYSTEM_LOGICAL_PROCESSOR_INFORMATION, returnedLength: PDWORD) -> BOOL --- } +DEBUG_PROCESS :: 0x00000001 +DEBUG_ONLY_THIS_PROCESS :: 0x00000002 +CREATE_SUSPENDED :: 0x00000004 +DETACHED_PROCESS :: 0x00000008 +CREATE_NEW_CONSOLE :: 0x00000010 +NORMAL_PRIORITY_CLASS :: 0x00000020 +IDLE_PRIORITY_CLASS :: 0x00000040 +HIGH_PRIORITY_CLASS :: 0x00000080 +REALTIME_PRIORITY_CLASS :: 0x00000100 +CREATE_NEW_PROCESS_GROUP :: 0x00000200 +CREATE_UNICODE_ENVIRONMENT :: 0x00000400 +CREATE_SEPARATE_WOW_VDM :: 0x00000800 +CREATE_SHARED_WOW_VDM :: 0x00001000 +CREATE_FORCEDOS :: 0x00002000 +BELOW_NORMAL_PRIORITY_CLASS :: 0x00004000 +ABOVE_NORMAL_PRIORITY_CLASS :: 0x00008000 +INHERIT_PARENT_AFFINITY :: 0x00010000 +INHERIT_CALLER_PRIORITY :: 0x00020000 // Deprecated +CREATE_PROTECTED_PROCESS :: 0x00040000 +EXTENDED_STARTUPINFO_PRESENT :: 0x00080000 +PROCESS_MODE_BACKGROUND_BEGIN :: 0x00100000 +PROCESS_MODE_BACKGROUND_END :: 0x00200000 +CREATE_SECURE_PROCESS :: 0x00400000 +CREATE_BREAKAWAY_FROM_JOB :: 0x01000000 +CREATE_PRESERVE_CODE_AUTHZ_LEVEL :: 0x02000000 +CREATE_DEFAULT_ERROR_MODE :: 0x04000000 +CREATE_NO_WINDOW :: 0x08000000 +PROFILE_USER :: 0x10000000 +PROFILE_KERNEL :: 0x20000000 +PROFILE_SERVER :: 0x40000000 +CREATE_IGNORE_SYSTEM_DEFAULT :: 0x80000000 + +THREAD_BASE_PRIORITY_LOWRT :: 15 // value that gets a thread to LowRealtime-1 +THREAD_BASE_PRIORITY_MAX :: 2 // maximum thread base priority boost +THREAD_BASE_PRIORITY_MIN :: (-2) // minimum thread base priority boost +THREAD_BASE_PRIORITY_IDLE :: (-15) // value that gets a thread to idle + +THREAD_PRIORITY_LOWEST :: THREAD_BASE_PRIORITY_MIN +THREAD_PRIORITY_BELOW_NORMAL :: (THREAD_PRIORITY_LOWEST+1) +THREAD_PRIORITY_NORMAL :: 0 +THREAD_PRIORITY_HIGHEST :: THREAD_BASE_PRIORITY_MAX +THREAD_PRIORITY_ABOVE_NORMAL :: (THREAD_PRIORITY_HIGHEST-1) +THREAD_PRIORITY_ERROR_RETURN :: (MAXLONG) +THREAD_PRIORITY_TIME_CRITICAL :: THREAD_BASE_PRIORITY_LOWRT +THREAD_PRIORITY_IDLE :: THREAD_BASE_PRIORITY_IDLE +THREAD_MODE_BACKGROUND_BEGIN :: 0x00010000 +THREAD_MODE_BACKGROUND_END :: 0x00020000 + +COPY_FILE_FAIL_IF_EXISTS :: 0x00000001 +COPY_FILE_RESTARTABLE :: 0x00000002 +COPY_FILE_OPEN_SOURCE_FOR_WRITE :: 0x00000004 +COPY_FILE_ALLOW_DECRYPTED_DESTINATION :: 0x00000008 +COPY_FILE_COPY_SYMLINK :: 0x00000800 +COPY_FILE_NO_BUFFERING :: 0x00001000 +COPY_FILE_REQUEST_SECURITY_PRIVILEGES :: 0x00002000 +COPY_FILE_RESUME_FROM_PAUSE :: 0x00004000 +COPY_FILE_NO_OFFLOAD :: 0x00040000 +COPY_FILE_IGNORE_EDP_BLOCK :: 0x00400000 +COPY_FILE_IGNORE_SOURCE_ENCRYPTION :: 0x00800000 +COPY_FILE_DONT_REQUEST_DEST_WRITE_DAC :: 0x02000000 +COPY_FILE_REQUEST_COMPRESSED_TRAFFIC :: 0x10000000 +COPY_FILE_OPEN_AND_COPY_REPARSE_POINT :: 0x00200000 +COPY_FILE_DIRECTORY :: 0x00000080 +COPY_FILE_SKIP_ALTERNATE_STREAMS :: 0x00008000 +COPY_FILE_DISABLE_PRE_ALLOCATION :: 0x04000000 +COPY_FILE_ENABLE_LOW_FREE_SPACE_MODE :: 0x08000000 SECTION_QUERY :: DWORD(0x0001) SECTION_MAP_WRITE :: DWORD(0x0002) diff --git a/core/sys/windows/types.odin b/core/sys/windows/types.odin index bf2a28e14..81e545039 100644 --- a/core/sys/windows/types.odin +++ b/core/sys/windows/types.odin @@ -162,6 +162,8 @@ SIZE :: struct { PSIZE :: ^SIZE LPSIZE :: ^SIZE +MAXLONG :: 0x7fffffff + FILE_ATTRIBUTE_READONLY: DWORD : 0x00000001 FILE_ATTRIBUTE_HIDDEN: DWORD : 0x00000002 FILE_ATTRIBUTE_SYSTEM: DWORD : 0x00000004 @@ -2042,7 +2044,6 @@ TLS_OUT_OF_INDEXES: DWORD : 0xFFFFFFFF DLL_THREAD_DETACH: DWORD : 3 DLL_PROCESS_DETACH: DWORD : 0 -CREATE_SUSPENDED :: DWORD(0x00000004) INFINITE :: ~DWORD(0) @@ -2051,11 +2052,6 @@ DUPLICATE_SAME_ACCESS: DWORD : 0x00000002 CONDITION_VARIABLE_INIT :: CONDITION_VARIABLE{} SRWLOCK_INIT :: SRWLOCK{} -DETACHED_PROCESS: DWORD : 0x00000008 -CREATE_NEW_CONSOLE: DWORD : 0x00000010 -CREATE_NO_WINDOW: DWORD : 0x08000000 -CREATE_NEW_PROCESS_GROUP: DWORD : 0x00000200 -CREATE_UNICODE_ENVIRONMENT: DWORD : 0x00000400 STARTF_USESTDHANDLES: DWORD : 0x00000100 VOLUME_NAME_DOS: DWORD : 0x0