From 26b42a05875d4cb251dbf7cd087961f6cc72d683 Mon Sep 17 00:00:00 2001 From: hakril Date: Thu, 6 Feb 2025 22:53:42 +0100 Subject: [PATCH] Adding ctypes_generation for PROC_THREAD_ATTRIBUTE_X --- .../defines/proc_thread_attributes.txt | 79 +++++++++++++++++++ .../definitions/defines/template.py | 16 ++++ .../structures/proc_thread_attributes.txt | 24 ++++++ docs/source/windef_generated.rst | 46 +++++++++++ docs/source/winstructs_generated.rst | 75 ++++++++++++++++++ tests/test_generated_def.py | 3 + windows/generated_def/meta.py | 48 +++++++++++ windows/generated_def/windef.py | 62 +++++++++++++++ windows/generated_def/winstructs.py | 28 +++++++ windows/winproxy/apis/kernel32.py | 3 +- 10 files changed, 383 insertions(+), 1 deletion(-) create mode 100644 ctypes_generation/definitions/defines/proc_thread_attributes.txt create mode 100644 ctypes_generation/definitions/structures/proc_thread_attributes.txt diff --git a/ctypes_generation/definitions/defines/proc_thread_attributes.txt b/ctypes_generation/definitions/defines/proc_thread_attributes.txt new file mode 100644 index 0000000..015aebe --- /dev/null +++ b/ctypes_generation/definitions/defines/proc_thread_attributes.txt @@ -0,0 +1,79 @@ +// We have a rare case of defines that depends on an enum +// Which is PROC_THREAD_ATTRIBUTE_NUM +// So i Will just define a copy of those as define here +// Define version copied from: https://github.com/winsiderss/systeminformer/blob/master/phnt/include/ntpsapi.h#L2666 +// Thx to them, as always :) + +#define ProcThreadAttributeParentProcess 0 // in HANDLE +#define ProcThreadAttributeExtendedFlags 1 // in ULONG (EXTENDED_PROCESS_CREATION_FLAG_*) +#define ProcThreadAttributeHandleList 2 // in HANDLE[] +#define ProcThreadAttributeGroupAffinity 3 // in GROUP_AFFINITY // since WIN7 +#define ProcThreadAttributePreferredNode 4 // in USHORT +#define ProcThreadAttributeIdealProcessor 5 // in PROCESSOR_NUMBER +#define ProcThreadAttributeUmsThread 6 // in UMS_CREATE_THREAD_ATTRIBUTES +#define ProcThreadAttributeMitigationPolicy 7 // in ULONG, ULONG64, or ULONG64[2] +#define ProcThreadAttributePackageFullName 8 // in WCHAR[] // since WIN8 +#define ProcThreadAttributeSecurityCapabilities 9 // in SECURITY_CAPABILITIES +#define ProcThreadAttributeConsoleReference 10 // BaseGetConsoleReference (kernelbase.dll) +#define ProcThreadAttributeProtectionLevel 11 // in ULONG (PROTECTION_LEVEL_*) // since WINBLUE +#define ProcThreadAttributeOsMaxVersionTested 12 // in MAXVERSIONTESTED_INFO // since THRESHOLD // (from exe.manifest) +#define ProcThreadAttributeJobList 13 // in HANDLE[] +#define ProcThreadAttributeChildProcessPolicy 14 // in ULONG (PROCESS_CREATION_CHILD_PROCESS_*) // since THRESHOLD2 +#define ProcThreadAttributeAllApplicationPackagesPolicy 15 // in ULONG (PROCESS_CREATION_ALL_APPLICATION_PACKAGES_*) // since REDSTONE +#define ProcThreadAttributeWin32kFilter 16 // in WIN32K_SYSCALL_FILTER +#define ProcThreadAttributeSafeOpenPromptOriginClaim 17 // in SE_SAFE_OPEN_PROMPT_RESULTS +#define ProcThreadAttributeDesktopAppPolicy 18 // in ULONG (PROCESS_CREATION_DESKTOP_APP_*) // since RS2 +#define ProcThreadAttributeBnoIsolation 19 // in PROC_THREAD_BNOISOLATION_ATTRIBUTE +#define ProcThreadAttributePseudoConsole 22 // in HANDLE (HPCON) // since RS5 +#define ProcThreadAttributeIsolationManifest 23 // in ISOLATION_MANIFEST_PROPERTIES // rev (diversenok) // since 19H2+ +#define ProcThreadAttributeMitigationAuditPolicy 24 // in ULONG, ULONG64, or ULONG64[2] // since 21H1 +#define ProcThreadAttributeMachineType 25 // in USHORT // since 21H2 +#define ProcThreadAttributeComponentFilter 26 // in ULONG +#define ProcThreadAttributeEnableOptionalXStateFeatures 27 // in ULONG64 // since WIN11 +#define ProcThreadAttributeCreateStore 28 // ULONG // rev (diversenok) +#define ProcThreadAttributeTrustedApp 29 +#define ProcThreadAttributeSveVectorLength 30 + +// Real definition of value usef by API +// From: https://github.com/microsoft/win32metadata/blob/6af96d8470751e13a4e3f579f84b7b8b3ca398e1/generation/WinSDK/RecompiledIdlHeaders/um/WinBase.h#L3568 +// macro ProcThreadAttributeValue is recoded in python in template.py +// I replace TRUE by True && FALSE by False for native python compat :) + +#define PROC_THREAD_ATTRIBUTE_NUMBER 0x0000FFFF +#define PROC_THREAD_ATTRIBUTE_THREAD 0x00010000 // Attribute may be used with thread creation +#define PROC_THREAD_ATTRIBUTE_INPUT 0x00020000 // Attribute is input only +#define PROC_THREAD_ATTRIBUTE_ADDITIVE 0x00040000 // Attribute may be "accumulated," e.g. bitmasks, + +#define PROC_THREAD_ATTRIBUTE_PARENT_PROCESS \ + ProcThreadAttributeValue (ProcThreadAttributeParentProcess, False, True, False) +#define PROC_THREAD_ATTRIBUTE_HANDLE_LIST \ + ProcThreadAttributeValue (ProcThreadAttributeHandleList, False, True, False) + +#define PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY \ + ProcThreadAttributeValue (ProcThreadAttributeGroupAffinity, True, True, False) +#define PROC_THREAD_ATTRIBUTE_PREFERRED_NODE \ + ProcThreadAttributeValue (ProcThreadAttributePreferredNode, False, True, False) +#define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR \ + ProcThreadAttributeValue (ProcThreadAttributeIdealProcessor, True, True, False) +#define PROC_THREAD_ATTRIBUTE_UMS_THREAD \ + ProcThreadAttributeValue (ProcThreadAttributeUmsThread, True, True, False) +#define PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY \ + ProcThreadAttributeValue (ProcThreadAttributeMitigationPolicy, False, True, False) + +#define PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES \ + ProcThreadAttributeValue (ProcThreadAttributeSecurityCapabilities, False, True, False) + +#define PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL \ + ProcThreadAttributeValue (ProcThreadAttributeProtectionLevel, False, True, False) + +#define PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE \ + ProcThreadAttributeValue (ProcThreadAttributePseudoConsole, False, True, False) + +#define PROC_THREAD_ATTRIBUTE_MACHINE_TYPE \ + ProcThreadAttributeValue (ProcThreadAttributeMachineType, False, True, False) + +#define PROC_THREAD_ATTRIBUTE_ENABLE_OPTIONAL_XSTATE_FEATURES \ + ProcThreadAttributeValue (ProcThreadAttributeEnableOptionalXStateFeatures, True, True, False) + +#define PROC_THREAD_ATTRIBUTE_SVE_VECTOR_LENGTH \ + ProcThreadAttributeValue (ProcThreadAttributeSveVectorLength, False, True, False) \ No newline at end of file diff --git a/ctypes_generation/definitions/defines/template.py b/ctypes_generation/definitions/defines/template.py index 182bddf..e17e2c7 100644 --- a/ctypes_generation/definitions/defines/template.py +++ b/ctypes_generation/definitions/defines/template.py @@ -24,3 +24,19 @@ def CTL_CODE(DeviceType, Function, Method, Access): def HRESULT_FACILITY(hr): return (((hr) >> 16) & 0x1fff) + +# https://github.com/microsoft/win32metadata/blob/6af96d8470751e13a4e3f579f84b7b8b3ca398e1/generation/WinSDK/RecompiledIdlHeaders/um/WinBase.h#L3562 +# Original MACRO: + +#define ProcThreadAttributeValue(Number, Thread, Input, Additive) \ +# (((Number) & PROC_THREAD_ATTRIBUTE_NUMBER) | \ +# ((Thread != FALSE) ? PROC_THREAD_ATTRIBUTE_THREAD : 0) | \ +# ((Input != FALSE) ? PROC_THREAD_ATTRIBUTE_INPUT : 0) | \ +# ((Additive != FALSE) ? PROC_THREAD_ATTRIBUTE_ADDITIVE : 0)) + +def ProcThreadAttributeValue(Number, Thread, Input, Additive): + return ((Number & PROC_THREAD_ATTRIBUTE_NUMBER) | + (Thread and PROC_THREAD_ATTRIBUTE_THREAD) | + (Input and PROC_THREAD_ATTRIBUTE_INPUT) | + (Additive and PROC_THREAD_ATTRIBUTE_ADDITIVE)) + diff --git a/ctypes_generation/definitions/structures/proc_thread_attributes.txt b/ctypes_generation/definitions/structures/proc_thread_attributes.txt new file mode 100644 index 0000000..f571493 --- /dev/null +++ b/ctypes_generation/definitions/structures/proc_thread_attributes.txt @@ -0,0 +1,24 @@ +typedef 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, + ProcThreadAttributePseudoConsole = 22, + ProcThreadAttributeMitigationAuditPolicy = 24, + ProcThreadAttributeMachineType = 25, + ProcThreadAttributeComponentFilter = 26, + ProcThreadAttributeEnableOptionalXStateFeatures = 27, + ProcThreadAttributeTrustedApp = 29, + ProcThreadAttributeSveVectorLength = 30, +} PROC_THREAD_ATTRIBUTE_NUM; \ No newline at end of file diff --git a/docs/source/windef_generated.rst b/docs/source/windef_generated.rst index 3f211d3..5ef88a5 100644 --- a/docs/source/windef_generated.rst +++ b/docs/source/windef_generated.rst @@ -1145,6 +1145,52 @@ WinDef .. autodata:: NMPWAIT_WAIT_FOREVER .. autodata:: NMPWAIT_NOWAIT .. autodata:: NMPWAIT_USE_DEFAULT_WAIT +.. autodata:: ProcThreadAttributeParentProcess +.. autodata:: ProcThreadAttributeExtendedFlags +.. autodata:: ProcThreadAttributeHandleList +.. autodata:: ProcThreadAttributeGroupAffinity +.. autodata:: ProcThreadAttributePreferredNode +.. autodata:: ProcThreadAttributeIdealProcessor +.. autodata:: ProcThreadAttributeUmsThread +.. autodata:: ProcThreadAttributeMitigationPolicy +.. autodata:: ProcThreadAttributePackageFullName +.. autodata:: ProcThreadAttributeSecurityCapabilities +.. autodata:: ProcThreadAttributeConsoleReference +.. autodata:: ProcThreadAttributeProtectionLevel +.. autodata:: ProcThreadAttributeOsMaxVersionTested +.. autodata:: ProcThreadAttributeJobList +.. autodata:: ProcThreadAttributeChildProcessPolicy +.. autodata:: ProcThreadAttributeAllApplicationPackagesPolicy +.. autodata:: ProcThreadAttributeWin32kFilter +.. autodata:: ProcThreadAttributeSafeOpenPromptOriginClaim +.. autodata:: ProcThreadAttributeDesktopAppPolicy +.. autodata:: ProcThreadAttributeBnoIsolation +.. autodata:: ProcThreadAttributePseudoConsole +.. autodata:: ProcThreadAttributeIsolationManifest +.. autodata:: ProcThreadAttributeMitigationAuditPolicy +.. autodata:: ProcThreadAttributeMachineType +.. autodata:: ProcThreadAttributeComponentFilter +.. autodata:: ProcThreadAttributeEnableOptionalXStateFeatures +.. autodata:: ProcThreadAttributeCreateStore +.. autodata:: ProcThreadAttributeTrustedApp +.. autodata:: ProcThreadAttributeSveVectorLength +.. autodata:: PROC_THREAD_ATTRIBUTE_NUMBER +.. autodata:: PROC_THREAD_ATTRIBUTE_THREAD +.. autodata:: PROC_THREAD_ATTRIBUTE_INPUT +.. autodata:: PROC_THREAD_ATTRIBUTE_ADDITIVE +.. autodata:: PROC_THREAD_ATTRIBUTE_PARENT_PROCESS +.. autodata:: PROC_THREAD_ATTRIBUTE_HANDLE_LIST +.. autodata:: PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY +.. autodata:: PROC_THREAD_ATTRIBUTE_PREFERRED_NODE +.. autodata:: PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR +.. autodata:: PROC_THREAD_ATTRIBUTE_UMS_THREAD +.. autodata:: PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY +.. autodata:: PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES +.. autodata:: PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL +.. autodata:: PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE +.. autodata:: PROC_THREAD_ATTRIBUTE_MACHINE_TYPE +.. autodata:: PROC_THREAD_ATTRIBUTE_ENABLE_OPTIONAL_XSTATE_FEATURES +.. autodata:: PROC_THREAD_ATTRIBUTE_SVE_VECTOR_LENGTH .. autodata:: PROCESSOR_INTEL_386 .. autodata:: PROCESSOR_INTEL_486 .. autodata:: PROCESSOR_INTEL_PENTIUM diff --git a/docs/source/winstructs_generated.rst b/docs/source/winstructs_generated.rst index 949233d..240a2ec 100644 --- a/docs/source/winstructs_generated.rst +++ b/docs/source/winstructs_generated.rst @@ -29438,6 +29438,81 @@ _KEY_INFORMATION_CLASS .. attribute:: MaxKeyInfoClass(10) +_PROC_THREAD_ATTRIBUTE_NUM +'''''''''''''''''''''''''' +.. class:: PROC_THREAD_ATTRIBUTE_NUM + + Alias for :class:`_PROC_THREAD_ATTRIBUTE_NUM` + + +.. class:: _PROC_THREAD_ATTRIBUTE_NUM + + + .. attribute:: ProcThreadAttributeParentProcess(0) + + + .. attribute:: ProcThreadAttributeHandleList(2) + + + .. attribute:: ProcThreadAttributeGroupAffinity(3) + + + .. attribute:: ProcThreadAttributePreferredNode(4) + + + .. attribute:: ProcThreadAttributeIdealProcessor(5) + + + .. attribute:: ProcThreadAttributeUmsThread(6) + + + .. attribute:: ProcThreadAttributeMitigationPolicy(7) + + + .. attribute:: ProcThreadAttributeSecurityCapabilities(9) + + + .. attribute:: ProcThreadAttributeProtectionLevel(11) + + + .. attribute:: ProcThreadAttributeJobList(13) + + + .. attribute:: ProcThreadAttributeChildProcessPolicy(14) + + + .. attribute:: ProcThreadAttributeAllApplicationPackagesPolicy(15) + + + .. attribute:: ProcThreadAttributeWin32kFilter(16) + + + .. attribute:: ProcThreadAttributeSafeOpenPromptOriginClaim(17) + + + .. attribute:: ProcThreadAttributeDesktopAppPolicy(18) + + + .. attribute:: ProcThreadAttributePseudoConsole(22) + + + .. attribute:: ProcThreadAttributeMitigationAuditPolicy(24) + + + .. attribute:: ProcThreadAttributeMachineType(25) + + + .. attribute:: ProcThreadAttributeComponentFilter(26) + + + .. attribute:: ProcThreadAttributeEnableOptionalXStateFeatures(27) + + + .. attribute:: ProcThreadAttributeTrustedApp(29) + + + .. attribute:: ProcThreadAttributeSveVectorLength(30) + _MEMORY_INFORMATION_CLASS ''''''''''''''''''''''''' .. class:: MEMORY_INFORMATION_CLASS diff --git a/tests/test_generated_def.py b/tests/test_generated_def.py index b061912..76efd0d 100644 --- a/tests/test_generated_def.py +++ b/tests/test_generated_def.py @@ -156,6 +156,9 @@ def test_HRESULT_FACILITY_macro(): # RPC_E_INVALID_HEADER(0x80010111) assert gdef.HRESULT_FACILITY(gdef.RPC_E_INVALID_HEADER) == gdef.FACILITY_RPC == 1 +def test_ProcThreadAttributeValue_results(): + assert gdef.PROC_THREAD_ATTRIBUTE_PARENT_PROCESS == 0x20000 + assert gdef.PROC_THREAD_ATTRIBUTE_MACHINE_TYPE == 0x20019 # typedef struct _DnsRecordFlags # { diff --git a/windows/generated_def/meta.py b/windows/generated_def/meta.py index e53ff9a..9c6cc78 100644 --- a/windows/generated_def/meta.py +++ b/windows/generated_def/meta.py @@ -2481,6 +2481,23 @@ windef = {'ABOVE_NORMAL_PRIORITY_CLASS', 'PROCESS_VM_OPERATION', 'PROCESS_VM_READ', 'PROCESS_VM_WRITE', +'PROC_THREAD_ATTRIBUTE_ADDITIVE', +'PROC_THREAD_ATTRIBUTE_ENABLE_OPTIONAL_XSTATE_FEATURES', +'PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY', +'PROC_THREAD_ATTRIBUTE_HANDLE_LIST', +'PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR', +'PROC_THREAD_ATTRIBUTE_INPUT', +'PROC_THREAD_ATTRIBUTE_MACHINE_TYPE', +'PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY', +'PROC_THREAD_ATTRIBUTE_NUMBER', +'PROC_THREAD_ATTRIBUTE_PARENT_PROCESS', +'PROC_THREAD_ATTRIBUTE_PREFERRED_NODE', +'PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL', +'PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE', +'PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES', +'PROC_THREAD_ATTRIBUTE_SVE_VECTOR_LENGTH', +'PROC_THREAD_ATTRIBUTE_THREAD', +'PROC_THREAD_ATTRIBUTE_UMS_THREAD', 'PRODUCT_BUSINESS', 'PRODUCT_BUSINESS_N', 'PRODUCT_CLUSTER_SERVER', @@ -2590,6 +2607,35 @@ windef = {'ABOVE_NORMAL_PRIORITY_CLASS', 'PROV_RSA_SIG', 'PROV_SPYRUS_LYNKS', 'PROV_SSL', +'ProcThreadAttributeAllApplicationPackagesPolicy', +'ProcThreadAttributeBnoIsolation', +'ProcThreadAttributeChildProcessPolicy', +'ProcThreadAttributeComponentFilter', +'ProcThreadAttributeConsoleReference', +'ProcThreadAttributeCreateStore', +'ProcThreadAttributeDesktopAppPolicy', +'ProcThreadAttributeEnableOptionalXStateFeatures', +'ProcThreadAttributeExtendedFlags', +'ProcThreadAttributeGroupAffinity', +'ProcThreadAttributeHandleList', +'ProcThreadAttributeIdealProcessor', +'ProcThreadAttributeIsolationManifest', +'ProcThreadAttributeJobList', +'ProcThreadAttributeMachineType', +'ProcThreadAttributeMitigationAuditPolicy', +'ProcThreadAttributeMitigationPolicy', +'ProcThreadAttributeOsMaxVersionTested', +'ProcThreadAttributePackageFullName', +'ProcThreadAttributeParentProcess', +'ProcThreadAttributePreferredNode', +'ProcThreadAttributeProtectionLevel', +'ProcThreadAttributePseudoConsole', +'ProcThreadAttributeSafeOpenPromptOriginClaim', +'ProcThreadAttributeSecurityCapabilities', +'ProcThreadAttributeSveVectorLength', +'ProcThreadAttributeTrustedApp', +'ProcThreadAttributeUmsThread', +'ProcThreadAttributeWin32kFilter', 'READ_CONTROL', 'REALTIME_PRIORITY_CLASS', 'REG_BINARY', @@ -14341,6 +14387,7 @@ enums = {'ACCESS_MODE', 'PROCESSINFOCLASS', 'PROCESS_INFORMATION_CLASS', 'PROCESS_MITIGATION_POLICY', +'PROC_THREAD_ATTRIBUTE_NUM', 'PSECURITY_IMPERSONATION_LEVEL', 'PSID_NAME_USE', 'PTHREAD_INFORMATION_CLASS', @@ -14452,6 +14499,7 @@ enums = {'ACCESS_MODE', '_PROCESSINFOCLASS', '_PROCESS_INFORMATION_CLASS', '_PROCESS_MITIGATION_POLICY', +'_PROC_THREAD_ATTRIBUTE_NUM', '_READ_DIRECTORY_NOTIFY_INFORMATION_CLASS', '_RTL_PATH_TYPE', '_SC_ENUM_TYPE', diff --git a/windows/generated_def/windef.py b/windows/generated_def/windef.py index 2f358da..d21e344 100644 --- a/windows/generated_def/windef.py +++ b/windows/generated_def/windef.py @@ -24,6 +24,22 @@ def CTL_CODE(DeviceType, Function, Method, Access): def HRESULT_FACILITY(hr): return (((hr) >> 16) & 0x1fff) + +# https://github.com/microsoft/win32metadata/blob/6af96d8470751e13a4e3f579f84b7b8b3ca398e1/generation/WinSDK/RecompiledIdlHeaders/um/WinBase.h#L3562 +# Original MACRO: + +#define ProcThreadAttributeValue(Number, Thread, Input, Additive) \ +# (((Number) & PROC_THREAD_ATTRIBUTE_NUMBER) | \ +# ((Thread != FALSE) ? PROC_THREAD_ATTRIBUTE_THREAD : 0) | \ +# ((Input != FALSE) ? PROC_THREAD_ATTRIBUTE_INPUT : 0) | \ +# ((Additive != FALSE) ? PROC_THREAD_ATTRIBUTE_ADDITIVE : 0)) + +def ProcThreadAttributeValue(Number, Thread, Input, Additive): + return ((Number & PROC_THREAD_ATTRIBUTE_NUMBER) | + (Thread and PROC_THREAD_ATTRIBUTE_THREAD) | + (Input and PROC_THREAD_ATTRIBUTE_INPUT) | + (Additive and PROC_THREAD_ATTRIBUTE_ADDITIVE)) + from .ntstatus import * from .winerror import * BG_JOB_ENUM_ALL_USERS = make_flag("BG_JOB_ENUM_ALL_USERS", 0x0001) @@ -1169,6 +1185,52 @@ PIPE_UNLIMITED_INSTANCES = make_flag("PIPE_UNLIMITED_INSTANCES", 255) NMPWAIT_WAIT_FOREVER = make_flag("NMPWAIT_WAIT_FOREVER", 0xffffffff) NMPWAIT_NOWAIT = make_flag("NMPWAIT_NOWAIT", 0x00000001) NMPWAIT_USE_DEFAULT_WAIT = make_flag("NMPWAIT_USE_DEFAULT_WAIT", 0x00000000) +ProcThreadAttributeParentProcess = make_flag("ProcThreadAttributeParentProcess", 0) +ProcThreadAttributeExtendedFlags = make_flag("ProcThreadAttributeExtendedFlags", 1) +ProcThreadAttributeHandleList = make_flag("ProcThreadAttributeHandleList", 2) +ProcThreadAttributeGroupAffinity = make_flag("ProcThreadAttributeGroupAffinity", 3) +ProcThreadAttributePreferredNode = make_flag("ProcThreadAttributePreferredNode", 4) +ProcThreadAttributeIdealProcessor = make_flag("ProcThreadAttributeIdealProcessor", 5) +ProcThreadAttributeUmsThread = make_flag("ProcThreadAttributeUmsThread", 6) +ProcThreadAttributeMitigationPolicy = make_flag("ProcThreadAttributeMitigationPolicy", 7) +ProcThreadAttributePackageFullName = make_flag("ProcThreadAttributePackageFullName", 8) +ProcThreadAttributeSecurityCapabilities = make_flag("ProcThreadAttributeSecurityCapabilities", 9) +ProcThreadAttributeConsoleReference = make_flag("ProcThreadAttributeConsoleReference", 10) +ProcThreadAttributeProtectionLevel = make_flag("ProcThreadAttributeProtectionLevel", 11) +ProcThreadAttributeOsMaxVersionTested = make_flag("ProcThreadAttributeOsMaxVersionTested", 12) +ProcThreadAttributeJobList = make_flag("ProcThreadAttributeJobList", 13) +ProcThreadAttributeChildProcessPolicy = make_flag("ProcThreadAttributeChildProcessPolicy", 14) +ProcThreadAttributeAllApplicationPackagesPolicy = make_flag("ProcThreadAttributeAllApplicationPackagesPolicy", 15) +ProcThreadAttributeWin32kFilter = make_flag("ProcThreadAttributeWin32kFilter", 16) +ProcThreadAttributeSafeOpenPromptOriginClaim = make_flag("ProcThreadAttributeSafeOpenPromptOriginClaim", 17) +ProcThreadAttributeDesktopAppPolicy = make_flag("ProcThreadAttributeDesktopAppPolicy", 18) +ProcThreadAttributeBnoIsolation = make_flag("ProcThreadAttributeBnoIsolation", 19) +ProcThreadAttributePseudoConsole = make_flag("ProcThreadAttributePseudoConsole", 22) +ProcThreadAttributeIsolationManifest = make_flag("ProcThreadAttributeIsolationManifest", 23) +ProcThreadAttributeMitigationAuditPolicy = make_flag("ProcThreadAttributeMitigationAuditPolicy", 24) +ProcThreadAttributeMachineType = make_flag("ProcThreadAttributeMachineType", 25) +ProcThreadAttributeComponentFilter = make_flag("ProcThreadAttributeComponentFilter", 26) +ProcThreadAttributeEnableOptionalXStateFeatures = make_flag("ProcThreadAttributeEnableOptionalXStateFeatures", 27) +ProcThreadAttributeCreateStore = make_flag("ProcThreadAttributeCreateStore", 28) +ProcThreadAttributeTrustedApp = make_flag("ProcThreadAttributeTrustedApp", 29) +ProcThreadAttributeSveVectorLength = make_flag("ProcThreadAttributeSveVectorLength", 30) +PROC_THREAD_ATTRIBUTE_NUMBER = make_flag("PROC_THREAD_ATTRIBUTE_NUMBER", 0x0000FFFF) +PROC_THREAD_ATTRIBUTE_THREAD = make_flag("PROC_THREAD_ATTRIBUTE_THREAD", 0x00010000) +PROC_THREAD_ATTRIBUTE_INPUT = make_flag("PROC_THREAD_ATTRIBUTE_INPUT", 0x00020000) +PROC_THREAD_ATTRIBUTE_ADDITIVE = make_flag("PROC_THREAD_ATTRIBUTE_ADDITIVE", 0x00040000) +PROC_THREAD_ATTRIBUTE_PARENT_PROCESS = make_flag("PROC_THREAD_ATTRIBUTE_PARENT_PROCESS", ProcThreadAttributeValue ( ProcThreadAttributeParentProcess , False , True , False )) +PROC_THREAD_ATTRIBUTE_HANDLE_LIST = make_flag("PROC_THREAD_ATTRIBUTE_HANDLE_LIST", ProcThreadAttributeValue ( ProcThreadAttributeHandleList , False , True , False )) +PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY = make_flag("PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY", ProcThreadAttributeValue ( ProcThreadAttributeGroupAffinity , True , True , False )) +PROC_THREAD_ATTRIBUTE_PREFERRED_NODE = make_flag("PROC_THREAD_ATTRIBUTE_PREFERRED_NODE", ProcThreadAttributeValue ( ProcThreadAttributePreferredNode , False , True , False )) +PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR = make_flag("PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR", ProcThreadAttributeValue ( ProcThreadAttributeIdealProcessor , True , True , False )) +PROC_THREAD_ATTRIBUTE_UMS_THREAD = make_flag("PROC_THREAD_ATTRIBUTE_UMS_THREAD", ProcThreadAttributeValue ( ProcThreadAttributeUmsThread , True , True , False )) +PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = make_flag("PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY", ProcThreadAttributeValue ( ProcThreadAttributeMitigationPolicy , False , True , False )) +PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES = make_flag("PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES", ProcThreadAttributeValue ( ProcThreadAttributeSecurityCapabilities , False , True , False )) +PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL = make_flag("PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL", ProcThreadAttributeValue ( ProcThreadAttributeProtectionLevel , False , True , False )) +PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE = make_flag("PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE", ProcThreadAttributeValue ( ProcThreadAttributePseudoConsole , False , True , False )) +PROC_THREAD_ATTRIBUTE_MACHINE_TYPE = make_flag("PROC_THREAD_ATTRIBUTE_MACHINE_TYPE", ProcThreadAttributeValue ( ProcThreadAttributeMachineType , False , True , False )) +PROC_THREAD_ATTRIBUTE_ENABLE_OPTIONAL_XSTATE_FEATURES = make_flag("PROC_THREAD_ATTRIBUTE_ENABLE_OPTIONAL_XSTATE_FEATURES", ProcThreadAttributeValue ( ProcThreadAttributeEnableOptionalXStateFeatures , True , True , False )) +PROC_THREAD_ATTRIBUTE_SVE_VECTOR_LENGTH = make_flag("PROC_THREAD_ATTRIBUTE_SVE_VECTOR_LENGTH", ProcThreadAttributeValue ( ProcThreadAttributeSveVectorLength , False , True , False )) PROCESSOR_INTEL_386 = make_flag("PROCESSOR_INTEL_386", 386) PROCESSOR_INTEL_486 = make_flag("PROCESSOR_INTEL_486", 486) PROCESSOR_INTEL_PENTIUM = make_flag("PROCESSOR_INTEL_PENTIUM", 586) diff --git a/windows/generated_def/winstructs.py b/windows/generated_def/winstructs.py index 750bce5..b1204df 100644 --- a/windows/generated_def/winstructs.py +++ b/windows/generated_def/winstructs.py @@ -3595,6 +3595,34 @@ class _IMAGE_LOAD_CONFIG_DIRECTORY64(Structure): IMAGE_LOAD_CONFIG_DIRECTORY64 = _IMAGE_LOAD_CONFIG_DIRECTORY64 PIMAGE_LOAD_CONFIG_DIRECTORY64 = POINTER(_IMAGE_LOAD_CONFIG_DIRECTORY64) +ProcThreadAttributeParentProcess = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeParentProcess", 0x0) +ProcThreadAttributeHandleList = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeHandleList", 0x2) +ProcThreadAttributeGroupAffinity = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeGroupAffinity", 0x3) +ProcThreadAttributePreferredNode = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributePreferredNode", 0x4) +ProcThreadAttributeIdealProcessor = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeIdealProcessor", 0x5) +ProcThreadAttributeUmsThread = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeUmsThread", 0x6) +ProcThreadAttributeMitigationPolicy = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeMitigationPolicy", 0x7) +ProcThreadAttributeSecurityCapabilities = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeSecurityCapabilities", 0x9) +ProcThreadAttributeProtectionLevel = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeProtectionLevel", 0xb) +ProcThreadAttributeJobList = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeJobList", 0xd) +ProcThreadAttributeChildProcessPolicy = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeChildProcessPolicy", 0xe) +ProcThreadAttributeAllApplicationPackagesPolicy = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeAllApplicationPackagesPolicy", 0xf) +ProcThreadAttributeWin32kFilter = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeWin32kFilter", 0x10) +ProcThreadAttributeSafeOpenPromptOriginClaim = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeSafeOpenPromptOriginClaim", 0x11) +ProcThreadAttributeDesktopAppPolicy = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeDesktopAppPolicy", 0x12) +ProcThreadAttributePseudoConsole = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributePseudoConsole", 0x16) +ProcThreadAttributeMitigationAuditPolicy = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeMitigationAuditPolicy", 0x18) +ProcThreadAttributeMachineType = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeMachineType", 0x19) +ProcThreadAttributeComponentFilter = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeComponentFilter", 0x1a) +ProcThreadAttributeEnableOptionalXStateFeatures = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeEnableOptionalXStateFeatures", 0x1b) +ProcThreadAttributeTrustedApp = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeTrustedApp", 0x1d) +ProcThreadAttributeSveVectorLength = EnumValue("_PROC_THREAD_ATTRIBUTE_NUM", "ProcThreadAttributeSveVectorLength", 0x1e) +class _PROC_THREAD_ATTRIBUTE_NUM(EnumType): + values = [ProcThreadAttributeParentProcess, ProcThreadAttributeHandleList, ProcThreadAttributeGroupAffinity, ProcThreadAttributePreferredNode, ProcThreadAttributeIdealProcessor, ProcThreadAttributeUmsThread, ProcThreadAttributeMitigationPolicy, ProcThreadAttributeSecurityCapabilities, ProcThreadAttributeProtectionLevel, ProcThreadAttributeJobList, ProcThreadAttributeChildProcessPolicy, ProcThreadAttributeAllApplicationPackagesPolicy, ProcThreadAttributeWin32kFilter, ProcThreadAttributeSafeOpenPromptOriginClaim, ProcThreadAttributeDesktopAppPolicy, ProcThreadAttributePseudoConsole, ProcThreadAttributeMitigationAuditPolicy, ProcThreadAttributeMachineType, ProcThreadAttributeComponentFilter, ProcThreadAttributeEnableOptionalXStateFeatures, ProcThreadAttributeTrustedApp, ProcThreadAttributeSveVectorLength] + mapper = FlagMapper(*values) +PROC_THREAD_ATTRIBUTE_NUM = _PROC_THREAD_ATTRIBUTE_NUM + + MemoryBasicInformation = EnumValue("_MEMORY_INFORMATION_CLASS", "MemoryBasicInformation", 0x0) MemoryWorkingSetList = EnumValue("_MEMORY_INFORMATION_CLASS", "MemoryWorkingSetList", 0x1) MemorySectionName = EnumValue("_MEMORY_INFORMATION_CLASS", "MemorySectionName", 0x2) diff --git a/windows/winproxy/apis/kernel32.py b/windows/winproxy/apis/kernel32.py index 9cb3693..de603fd 100644 --- a/windows/winproxy/apis/kernel32.py +++ b/windows/winproxy/apis/kernel32.py @@ -6,7 +6,8 @@ from ..error import (fail_on_zero, no_error_check, result_is_handle, succeed_on_zero, - fail_on_minus_one) + fail_on_minus_one, + WinproxyError) class Kernel32Proxy(ApiProxy):