From db1893910c2174411d4eee493dac5eeb11ee0b03 Mon Sep 17 00:00:00 2001 From: naksyn <59816245+naksyn@users.noreply.github.com> Date: Thu, 27 Jul 2023 06:44:29 -0700 Subject: [PATCH 1/4] command line support (partial) via PEB stomping This update include support to passing command line parameters to unmanaged exe via PEB stomping. This technique is not working with every executable since it depends on which functions are used to pass arguments. Generally, to get a universally working technique would be required to hook GetCommandlineA GetCommandlineW __getmainargs and __wgetmainargs since PEB stomping won't cover all cases, more details here: https://blog-30cm-tw.translate.goog/2020/08/windows-c-mainargc-argv.html?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=it&_x_tr_pto=wapp However, during my testing I found that mimikatz and several go binaries are working just by doing PEB stomping. On the other hand, cmdline passing via PEB stomping alone to mingw and VS compiled binaries won't likely work. --- pythonmemorymodule/__init__.py | 139 +- pythonmemorymodule/windows/__init__.py | 46 + pythonmemorymodule/windows/alpc.py | 541 + pythonmemorymodule/windows/com.py | 355 + pythonmemorymodule/windows/crypto/__init__.py | 9 + pythonmemorymodule/windows/crypto/catalog.py | 4 + .../windows/crypto/certificate.py | 585 + pythonmemorymodule/windows/crypto/cryptmsg.py | 133 + pythonmemorymodule/windows/crypto/dpapi.py | 34 + .../windows/crypto/encrypt_decrypt.py | 119 + .../windows/crypto/generation.py | 53 + .../windows/crypto/sign_verify.py | 70 + pythonmemorymodule/windows/dbgprint.py | 53 + pythonmemorymodule/windows/debug/__init__.py | 5 + .../windows/debug/breakpoints.py | 258 + pythonmemorymodule/windows/debug/debugger.py | 1140 ++ pythonmemorymodule/windows/debug/localdbg.py | 305 + pythonmemorymodule/windows/debug/symboldbg.py | 48 + pythonmemorymodule/windows/debug/symbols.py | 744 + .../windows/generated_def/__init__.py | 71 + .../windows/generated_def/auto_doc_tst.py | 22 + .../windows/generated_def/flag.py | 74 + .../windows/generated_def/interfaces.py | 2757 +++ .../windows/generated_def/meta.py | 14885 ++++++++++++++++ .../windows/generated_def/ntstatus.py | 1830 ++ .../windows/generated_def/windef.py | 3134 ++++ .../windows/generated_def/winerror.py | 6892 +++++++ .../windows/generated_def/winfuncs.py | 4137 +++++ .../windows/generated_def/winstructs.py | 11424 ++++++++++++ pythonmemorymodule/windows/hooks.py | 130 + pythonmemorymodule/windows/injection.py | 438 + .../windows/native_exec/__init__.py | 3 + .../windows/native_exec/cpuid.py | 159 + .../windows/native_exec/native_function.py | 87 + .../windows/native_exec/nativeutils.py | 280 + .../windows/native_exec/simple_x64.py | 1368 ++ .../windows/native_exec/simple_x86.py | 1186 ++ pythonmemorymodule/windows/pe_parse.py | 453 + pythonmemorymodule/windows/pipe.py | 127 + pythonmemorymodule/windows/pycompat.py | 38 + pythonmemorymodule/windows/remotectypes.py | 525 + pythonmemorymodule/windows/rpc/__init__.py | 3 + pythonmemorymodule/windows/rpc/client.py | 180 + pythonmemorymodule/windows/rpc/epmapper.py | 199 + pythonmemorymodule/windows/rpc/ndr.py | 618 + pythonmemorymodule/windows/security.py | 1192 ++ pythonmemorymodule/windows/syswow64.py | 331 + pythonmemorymodule/windows/test.py | 25 + pythonmemorymodule/windows/utils/__init__.py | 3 + .../windows/utils/improved_buffer.py | 134 + .../windows/utils/pythonutils.py | 115 + pythonmemorymodule/windows/utils/winutils.py | 627 + .../windows/winobject/__init__.py | 0 .../windows/winobject/apisetmap.py | 181 + pythonmemorymodule/windows/winobject/bits.py | 264 + .../windows/winobject/device_manager.py | 515 + .../windows/winobject/event_log.py | 1123 ++ .../windows/winobject/event_trace.py | 449 + .../windows/winobject/exception.py | 375 + pythonmemorymodule/windows/winobject/file.py | 63 + .../windows/winobject/handle.py | 196 + .../windows/winobject/network.py | 447 + .../windows/winobject/object_manager.py | 226 + .../windows/winobject/process.py | 1557 ++ .../windows/winobject/registry.py | 450 + .../windows/winobject/service.py | 191 + .../windows/winobject/system.py | 508 + .../windows/winobject/system_module.py | 53 + .../windows/winobject/task_scheduler.py | 485 + pythonmemorymodule/windows/winobject/token.py | 626 + .../windows/winobject/volume.py | 88 + pythonmemorymodule/windows/winobject/wmi.py | 473 + .../windows/winproxy/__init__.py | 3 + .../windows/winproxy/apiproxy.py | 122 + .../windows/winproxy/apis/__init__.py | 27 + .../apis/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 711 bytes .../apis/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 995 bytes .../apis/__pycache__/advapi32.cpython-310.pyc | Bin 0 -> 27005 bytes .../apis/__pycache__/advapi32.cpython-311.pyc | Bin 0 -> 51378 bytes .../apis/__pycache__/cfgmgr32.cpython-310.pyc | Bin 0 -> 4910 bytes .../apis/__pycache__/cfgmgr32.cpython-311.pyc | Bin 0 -> 8133 bytes .../apis/__pycache__/crypt32.cpython-310.pyc | Bin 0 -> 9692 bytes .../apis/__pycache__/crypt32.cpython-311.pyc | Bin 0 -> 17364 bytes .../apis/__pycache__/cryptui.cpython-310.pyc | Bin 0 -> 842 bytes .../apis/__pycache__/cryptui.cpython-311.pyc | Bin 0 -> 1158 bytes .../apis/__pycache__/dbghelp.cpython-310.pyc | Bin 0 -> 6784 bytes .../apis/__pycache__/dbghelp.cpython-311.pyc | Bin 0 -> 13021 bytes .../apis/__pycache__/dnsapi.cpython-310.pyc | Bin 0 -> 1489 bytes .../apis/__pycache__/dnsapi.cpython-311.pyc | Bin 0 -> 2324 bytes .../apis/__pycache__/iphlpapi.cpython-310.pyc | Bin 0 -> 2026 bytes .../apis/__pycache__/iphlpapi.cpython-311.pyc | Bin 0 -> 3452 bytes .../apis/__pycache__/kernel32.cpython-310.pyc | Bin 0 -> 28664 bytes .../apis/__pycache__/kernel32.cpython-311.pyc | Bin 0 -> 54933 bytes .../apis/__pycache__/ktmw32.cpython-310.pyc | Bin 0 -> 1312 bytes .../apis/__pycache__/ktmw32.cpython-311.pyc | Bin 0 -> 2018 bytes .../apis/__pycache__/netapi32.cpython-310.pyc | Bin 0 -> 2484 bytes .../apis/__pycache__/netapi32.cpython-311.pyc | Bin 0 -> 4418 bytes .../apis/__pycache__/ntdll.cpython-310.pyc | Bin 0 -> 15528 bytes .../apis/__pycache__/ntdll.cpython-311.pyc | Bin 0 -> 28875 bytes .../apis/__pycache__/ole32.cpython-310.pyc | Bin 0 -> 2071 bytes .../apis/__pycache__/ole32.cpython-311.pyc | Bin 0 -> 3371 bytes .../apis/__pycache__/oleacc.cpython-310.pyc | Bin 0 -> 829 bytes .../apis/__pycache__/oleacc.cpython-311.pyc | Bin 0 -> 1142 bytes .../apis/__pycache__/oleaut32.cpython-310.pyc | Bin 0 -> 1523 bytes .../apis/__pycache__/oleaut32.cpython-311.pyc | Bin 0 -> 2489 bytes .../apis/__pycache__/psapi.cpython-310.pyc | Bin 0 -> 2062 bytes .../apis/__pycache__/psapi.cpython-311.pyc | Bin 0 -> 3610 bytes .../apis/__pycache__/setupapi.cpython-310.pyc | Bin 0 -> 2862 bytes .../apis/__pycache__/setupapi.cpython-311.pyc | Bin 0 -> 4426 bytes .../apis/__pycache__/shell32.cpython-310.pyc | Bin 0 -> 1417 bytes .../apis/__pycache__/shell32.cpython-311.pyc | Bin 0 -> 2204 bytes .../apis/__pycache__/shlwapi.cpython-310.pyc | Bin 0 -> 1153 bytes .../apis/__pycache__/shlwapi.cpython-311.pyc | Bin 0 -> 1823 bytes .../apis/__pycache__/tdh.cpython-310.pyc | Bin 0 -> 788 bytes .../apis/__pycache__/tdh.cpython-311.pyc | Bin 0 -> 1090 bytes .../apis/__pycache__/user32.cpython-310.pyc | Bin 0 -> 3726 bytes .../apis/__pycache__/user32.cpython-311.pyc | Bin 0 -> 6898 bytes .../apis/__pycache__/version.cpython-310.pyc | Bin 0 -> 2256 bytes .../apis/__pycache__/version.cpython-311.pyc | Bin 0 -> 3914 bytes .../apis/__pycache__/virtdisk.cpython-310.pyc | Bin 0 -> 1088 bytes .../apis/__pycache__/virtdisk.cpython-311.pyc | Bin 0 -> 1586 bytes .../apis/__pycache__/wevtapi.cpython-310.pyc | Bin 0 -> 4657 bytes .../apis/__pycache__/wevtapi.cpython-311.pyc | Bin 0 -> 8160 bytes .../apis/__pycache__/winhttp.cpython-310.pyc | Bin 0 -> 2463 bytes .../apis/__pycache__/winhttp.cpython-311.pyc | Bin 0 -> 4028 bytes .../apis/__pycache__/wininet.cpython-310.pyc | Bin 0 -> 3777 bytes .../apis/__pycache__/wininet.cpython-311.pyc | Bin 0 -> 6737 bytes .../apis/__pycache__/wintrust.cpython-310.pyc | Bin 0 -> 2659 bytes .../apis/__pycache__/wintrust.cpython-311.pyc | Bin 0 -> 4525 bytes .../apis/__pycache__/ws2_32.cpython-310.pyc | Bin 0 -> 2883 bytes .../apis/__pycache__/ws2_32.cpython-311.pyc | Bin 0 -> 5057 bytes .../windows/winproxy/apis/advapi32.py | 745 + .../windows/winproxy/apis/cfgmgr32.py | 142 + .../windows/winproxy/apis/crypt32.py | 241 + .../windows/winproxy/apis/cryptui.py | 14 + .../windows/winproxy/apis/dbghelp.py | 193 + .../windows/winproxy/apis/dnsapi.py | 32 + .../windows/winproxy/apis/iphlpapi.py | 47 + .../windows/winproxy/apis/kernel32.py | 935 + .../windows/winproxy/apis/ktmw32.py | 29 + .../windows/winproxy/apis/netapi32.py | 58 + .../windows/winproxy/apis/ntdll.py | 425 + .../windows/winproxy/apis/ole32.py | 49 + .../windows/winproxy/apis/oleacc.py | 13 + .../windows/winproxy/apis/oleaut32.py | 43 + .../windows/winproxy/apis/psapi.py | 58 + .../windows/winproxy/apis/setupapi.py | 78 + .../windows/winproxy/apis/shell32.py | 29 + .../windows/winproxy/apis/shlwapi.py | 27 + .../windows/winproxy/apis/tdh.py | 16 + .../windows/winproxy/apis/user32.py | 119 + .../windows/winproxy/apis/version.py | 67 + .../windows/winproxy/apis/virtdisk.py | 18 + .../windows/winproxy/apis/wevtapi.py | 131 + .../windows/winproxy/apis/winhttp.py | 51 + .../windows/winproxy/apis/wininet.py | 95 + .../windows/winproxy/apis/wintrust.py | 68 + .../windows/winproxy/apis/ws2_32.py | 76 + pythonmemorymodule/windows/winproxy/error.py | 79 + pythonmemorymodule/windows/wintrust.py | 191 + 160 files changed, 70537 insertions(+), 42 deletions(-) create mode 100644 pythonmemorymodule/windows/__init__.py create mode 100644 pythonmemorymodule/windows/alpc.py create mode 100644 pythonmemorymodule/windows/com.py create mode 100644 pythonmemorymodule/windows/crypto/__init__.py create mode 100644 pythonmemorymodule/windows/crypto/catalog.py create mode 100644 pythonmemorymodule/windows/crypto/certificate.py create mode 100644 pythonmemorymodule/windows/crypto/cryptmsg.py create mode 100644 pythonmemorymodule/windows/crypto/dpapi.py create mode 100644 pythonmemorymodule/windows/crypto/encrypt_decrypt.py create mode 100644 pythonmemorymodule/windows/crypto/generation.py create mode 100644 pythonmemorymodule/windows/crypto/sign_verify.py create mode 100644 pythonmemorymodule/windows/dbgprint.py create mode 100644 pythonmemorymodule/windows/debug/__init__.py create mode 100644 pythonmemorymodule/windows/debug/breakpoints.py create mode 100644 pythonmemorymodule/windows/debug/debugger.py create mode 100644 pythonmemorymodule/windows/debug/localdbg.py create mode 100644 pythonmemorymodule/windows/debug/symboldbg.py create mode 100644 pythonmemorymodule/windows/debug/symbols.py create mode 100644 pythonmemorymodule/windows/generated_def/__init__.py create mode 100644 pythonmemorymodule/windows/generated_def/auto_doc_tst.py create mode 100644 pythonmemorymodule/windows/generated_def/flag.py create mode 100644 pythonmemorymodule/windows/generated_def/interfaces.py create mode 100644 pythonmemorymodule/windows/generated_def/meta.py create mode 100644 pythonmemorymodule/windows/generated_def/ntstatus.py create mode 100644 pythonmemorymodule/windows/generated_def/windef.py create mode 100644 pythonmemorymodule/windows/generated_def/winerror.py create mode 100644 pythonmemorymodule/windows/generated_def/winfuncs.py create mode 100644 pythonmemorymodule/windows/generated_def/winstructs.py create mode 100644 pythonmemorymodule/windows/hooks.py create mode 100644 pythonmemorymodule/windows/injection.py create mode 100644 pythonmemorymodule/windows/native_exec/__init__.py create mode 100644 pythonmemorymodule/windows/native_exec/cpuid.py create mode 100644 pythonmemorymodule/windows/native_exec/native_function.py create mode 100644 pythonmemorymodule/windows/native_exec/nativeutils.py create mode 100644 pythonmemorymodule/windows/native_exec/simple_x64.py create mode 100644 pythonmemorymodule/windows/native_exec/simple_x86.py create mode 100644 pythonmemorymodule/windows/pe_parse.py create mode 100644 pythonmemorymodule/windows/pipe.py create mode 100644 pythonmemorymodule/windows/pycompat.py create mode 100644 pythonmemorymodule/windows/remotectypes.py create mode 100644 pythonmemorymodule/windows/rpc/__init__.py create mode 100644 pythonmemorymodule/windows/rpc/client.py create mode 100644 pythonmemorymodule/windows/rpc/epmapper.py create mode 100644 pythonmemorymodule/windows/rpc/ndr.py create mode 100644 pythonmemorymodule/windows/security.py create mode 100644 pythonmemorymodule/windows/syswow64.py create mode 100644 pythonmemorymodule/windows/test.py create mode 100644 pythonmemorymodule/windows/utils/__init__.py create mode 100644 pythonmemorymodule/windows/utils/improved_buffer.py create mode 100644 pythonmemorymodule/windows/utils/pythonutils.py create mode 100644 pythonmemorymodule/windows/utils/winutils.py create mode 100644 pythonmemorymodule/windows/winobject/__init__.py create mode 100644 pythonmemorymodule/windows/winobject/apisetmap.py create mode 100644 pythonmemorymodule/windows/winobject/bits.py create mode 100644 pythonmemorymodule/windows/winobject/device_manager.py create mode 100644 pythonmemorymodule/windows/winobject/event_log.py create mode 100644 pythonmemorymodule/windows/winobject/event_trace.py create mode 100644 pythonmemorymodule/windows/winobject/exception.py create mode 100644 pythonmemorymodule/windows/winobject/file.py create mode 100644 pythonmemorymodule/windows/winobject/handle.py create mode 100644 pythonmemorymodule/windows/winobject/network.py create mode 100644 pythonmemorymodule/windows/winobject/object_manager.py create mode 100644 pythonmemorymodule/windows/winobject/process.py create mode 100644 pythonmemorymodule/windows/winobject/registry.py create mode 100644 pythonmemorymodule/windows/winobject/service.py create mode 100644 pythonmemorymodule/windows/winobject/system.py create mode 100644 pythonmemorymodule/windows/winobject/system_module.py create mode 100644 pythonmemorymodule/windows/winobject/task_scheduler.py create mode 100644 pythonmemorymodule/windows/winobject/token.py create mode 100644 pythonmemorymodule/windows/winobject/volume.py create mode 100644 pythonmemorymodule/windows/winobject/wmi.py create mode 100644 pythonmemorymodule/windows/winproxy/__init__.py create mode 100644 pythonmemorymodule/windows/winproxy/apiproxy.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/__init__.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/__init__.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/__init__.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/advapi32.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/advapi32.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/cfgmgr32.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/cfgmgr32.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/crypt32.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/crypt32.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/cryptui.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/cryptui.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/dbghelp.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/dbghelp.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/dnsapi.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/dnsapi.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/iphlpapi.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/iphlpapi.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/kernel32.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/kernel32.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ktmw32.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ktmw32.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/netapi32.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/netapi32.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ntdll.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ntdll.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ole32.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ole32.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/oleacc.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/oleacc.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/oleaut32.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/oleaut32.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/psapi.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/psapi.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/setupapi.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/setupapi.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/shell32.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/shell32.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/shlwapi.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/shlwapi.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/tdh.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/tdh.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/user32.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/user32.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/version.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/version.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/virtdisk.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/virtdisk.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/wevtapi.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/wevtapi.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/winhttp.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/winhttp.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/wininet.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/wininet.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/wintrust.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/wintrust.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ws2_32.cpython-310.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ws2_32.cpython-311.pyc create mode 100644 pythonmemorymodule/windows/winproxy/apis/advapi32.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/cfgmgr32.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/crypt32.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/cryptui.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/dbghelp.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/dnsapi.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/iphlpapi.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/kernel32.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/ktmw32.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/netapi32.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/ntdll.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/ole32.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/oleacc.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/oleaut32.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/psapi.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/setupapi.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/shell32.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/shlwapi.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/tdh.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/user32.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/version.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/virtdisk.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/wevtapi.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/winhttp.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/wininet.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/wintrust.py create mode 100644 pythonmemorymodule/windows/winproxy/apis/ws2_32.py create mode 100644 pythonmemorymodule/windows/winproxy/error.py create mode 100644 pythonmemorymodule/windows/wintrust.py diff --git a/pythonmemorymodule/__init__.py b/pythonmemorymodule/__init__.py index 9e1cdd2..4bd399d 100644 --- a/pythonmemorymodule/__init__.py +++ b/pythonmemorymodule/__init__.py @@ -18,10 +18,13 @@ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ - +import sys from ctypes import * from ctypes.wintypes import * import pythonmemorymodule.pefile as pe +import windows +import threading +import time kernel32 = windll.kernel32 @@ -471,8 +474,9 @@ class MemoryModule(pe.PE): _foffsets_ = {} - def __init__(self, name = None, data = None, debug=False): + def __init__(self, name = None, data = None, debug=False, command=None): self._debug_ = debug or debug_output + self.new_command=command pe.PE.__init__(self, name, data) self.load_module() @@ -482,7 +486,86 @@ def dbg(self, msg, *args): msg = msg % tuple(args) print('DEBUG: %s' % msg) + def cmdline_check(self): + cp=windows.current_process + peb = windows.current_process.peb + + commandline = peb.commandline + self.dbg("Original PEB commamdline length: {}".format(commandline.Length)) + self.dbg("New command ommand length: {}".format(len(self.new_command))) + + if len(self.new_command) > commandline.Length: + print("[!] Error - Not enough space on PEB commandline for stomping. Try increasing the commandline (e.g. by placing python binary in a nested folder) - Exiting") + sys.exit() + + def stomp_PEB(self): + self.cp=windows.current_process + peb = windows.current_process.peb + self.dbg("Current process PEB is <{0}>".format(peb)) + + self.commandline = peb.commandline + self.cmdlineaddr= self.commandline.Buffer + self.cmdlinetext=self.cp.read_memory(self.cmdlineaddr, self.commandline.Length).decode("utf-16") + + self.dbg("Original commandline: {}".format(self.cmdlinetext)) + newcmd=self.new_command + " \x00" + encnewcmd=newcmd.encode("utf-16") + + self.cp.write_memory(self.cmdlineaddr,encnewcmd) + + self.dbg("Stomped commandline: {}".format(self.cp.read_memory(self.cmdlineaddr, self.commandline.Length).decode("utf-16"))) + + + def unstomp_PEB(self): + time.sleep(2) + self.dbg("Restoring original commandline: {}".format(self.cmdlinetext)) + self.cp.write_memory(self.cmdlineaddr,self.cmdlinetext.encode("utf-16")) + + + def execPE(self): + codebase = self._codebaseaddr + entryaddr = self.pythonmemorymodule.contents.headers.contents.OptionalHeader.AddressOfEntryPoint + + self.dbg('Checking for entry point.') + if entryaddr != 0: + entryaddr += codebase + + if self.is_exe(): + ExeEntry = ExeEntryProc(entryaddr) + if not bool(ExeEntry): + self.free_library() + raise WindowsError('exe has no entry point.\n') + try: + self.dbg("Calling exe entrypoint 0x%x", entryaddr) + success = ExeEntry(entryaddr) + except Exception as e: + print(e) + + elif self.is_dll(): + DllEntry = DllEntryProc(entryaddr) + if not bool(DllEntry): + self.free_library() + raise WindowsError('dll has no entry point.\n') + + try: + self.dbg("Calling dll entrypoint 0x%x with DLL_PROCESS_ATTACH", entryaddr) + success = DllEntry(codebase, DLL_PROCESS_ATTACH, 0) + except Exception as e: + print(e) + + if not bool(success): + if self.is_dll(): + self.free_library() + raise WindowsError('dll could not be loaded.') + else: + self.free_exe() + raise WindowsError('exe could not be loaded') + self.pythonmemorymodule.contents.initialized = 1 + def load_module(self): + if self.new_command: + self.cmdline_check() + if not self.is_exe() and not self.is_dll(): raise WindowsError('The specified module does not appear to be an exe nor a dll.') if self.PE_TYPE == pe.OPTIONAL_HEADER_MAGIC_PE and isx64: @@ -556,46 +639,17 @@ def load_module(self): self.finalize_sections() self.dbg('Executing TLS.') self.ExecuteTLS() - - entryaddr = self.pythonmemorymodule.contents.headers.contents.OptionalHeader.AddressOfEntryPoint + self.dbg('Stomping PEB') + self.stomp_PEB() - self.dbg('Checking for entry point.') - if entryaddr != 0: - entryaddr += codebase + + + self.dbg('Starting new thread to execute PE') + my_thread = threading.Thread(target=self.execPE) + my_thread.start() + self.unstomp_PEB() - if self.is_exe(): - ExeEntry = ExeEntryProc(entryaddr) - if not bool(ExeEntry): - self.free_library() - raise WindowsError('exe has no entry point.\n') - try: - self.dbg("Calling exe entrypoint 0x%x", entryaddr) - - success = ExeEntry(entryaddr) - except Exception as e: - print(e) - - elif self.is_dll(): - DllEntry = DllEntryProc(entryaddr) - if not bool(DllEntry): - self.free_library() - raise WindowsError('dll has no entry point.\n') - - try: - self.dbg("Calling dll entrypoint 0x%x with DLL_PROCESS_ATTACH", entryaddr) - success = DllEntry(codebase, DLL_PROCESS_ATTACH, 0) - except Exception as e: - print(e) - - if not bool(success): - if self.is_dll(): - self.free_library() - raise WindowsError('dll could not be loaded.') - else: - self.free_exe() - raise WindowsError('exe could not be loaded') - self.pythonmemorymodule.contents.initialized = 1 - + def IMAGE_FIRST_SECTION(self): return self._headersaddr + IMAGE_NT_HEADERS.OptionalHeader.offset + self.FILE_HEADER.SizeOfOptionalHeader @@ -685,7 +739,8 @@ def finalize_sections(self): self.dbg("write %d",checkCharacteristic(section, IMAGE_SCN_MEM_WRITE)) if checkCharacteristic(section, IMAGE_SCN_MEM_DISCARDABLE): - addr = getPhysAddr(section) + addr = self.sections[i].Misc_PhysicalAddress #getPhysAddr(section) + self.dbg("physaddr:0x%x", addr) VirtualFree(addr, section.contents.SizeOfRawData, MEM_DECOMMIT) continue @@ -717,8 +772,8 @@ def perform_base_relocations(self, delta): if directory.Size <= 0: return relocaddr=codeBaseAddr + directory.VirtualAddress relocation = IMAGE_BASE_RELOCATION.from_address(relocaddr) - maxreloc = lambda r: (relocation.SizeOfBlock - IMAGE_SIZEOF_BASE_RELOCATION) / 2 + maxreloc = lambda r: (relocation.SizeOfBlock - IMAGE_SIZEOF_BASE_RELOCATION) / 2 while relocation.VirtualAddress > 0: i = 0 dest = codeBaseAddr + relocation.VirtualAddress diff --git a/pythonmemorymodule/windows/__init__.py b/pythonmemorymodule/windows/__init__.py new file mode 100644 index 0000000..a18228c --- /dev/null +++ b/pythonmemorymodule/windows/__init__.py @@ -0,0 +1,46 @@ +""" +Python for Windows +A lot of python object to help navigate windows stuff + +Exported: + + system : :class:`windows.winobject.System` + + current_process : :class:`windows.winobject.CurrentProcess` + + current_thread : :class:`windows.winobject.CurrentThread` +""" + +# check we are on windows +import sys +if sys.platform != "win32": + raise NotImplementedError("It's called PythonForWindows not PythonFor{0}".format(sys.platform.capitalize())) + +import warnings +warnings.filterwarnings('once', category=DeprecationWarning, module=__name__) + +from windows import winproxy +from windows import winobject + +from .winobject.system import System +from .winobject.process import CurrentProcess, CurrentThread, WinProcess, WinThread +from .winobject.file import WinFile + + +system = System() +current_process = CurrentProcess() +current_thread = CurrentThread() + +del System +del CurrentProcess +del CurrentThread + +# Late import: other imports should go here +# Do not move it: risk of circular import + +import windows.utils +import windows.wintrust +import windows.syswow64 +import windows.com + +__all__ = ["system", 'current_process', 'current_thread'] diff --git a/pythonmemorymodule/windows/alpc.py b/pythonmemorymodule/windows/alpc.py new file mode 100644 index 0000000..65dcb07 --- /dev/null +++ b/pythonmemorymodule/windows/alpc.py @@ -0,0 +1,541 @@ +import sys +import ctypes +from collections import namedtuple + +import windows +from windows import winproxy +from windows import generated_def as gdef +import windows.pycompat + + +## For 64b python +# 0x1f: 0x80000000: ALPC_MESSAGE_SECURITY_ATTRIBUTE(0x80000000) : size=0x18? +# 0x1e: 0x40000000: ALPC_MESSAGE_VIEW_ATTRIBUTE(0x40000000): size=0x20 +# 0x1d: 0x20000000: ALPC_MESSAGE_CONTEXT_ATTRIBUTE(0x20000000): size=0x20 +# 0x1c: 0x10000000: ALPC_MESSAGE_HANDLE_ATTRIBUTE(0x10000000): size=0x18 +# 0x1b: 0x8000000: ALPC_MESSAGE_TOKEN_ATTRIBUTE(0x8000000): size=0x18 +# 0x1a: 0x4000000: ALPC_MESSAGE_DIRECT_ATTRIBUTE(0x4000000) size=0x8 +# 0x19: 0x2000000: ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE(0x2000000) size=0x8 + +DEFAULT_MESSAGE_SIZE = 0x1000 + +class AlpcMessage(object): + """Represent a full ALPC Message: a :class:`AlpcMessagePort` and a :class:`MessageAttribute`""" + # PORT_MESSAGE + MessageAttribute + def __init__(self, msg_or_size=DEFAULT_MESSAGE_SIZE, attributes=None): + # Init the PORT_MESSAGE + if isinstance(msg_or_size, windows.pycompat.int_types): + self.port_message_buffer_size = msg_or_size + self.port_message_raw_buffer = ctypes.c_buffer(msg_or_size) + self.port_message = AlpcMessagePort.from_buffer(self.port_message_raw_buffer) + self.port_message.set_datalen(0) + elif isinstance(msg_or_size, AlpcMessagePort): + self.port_message = msg_or_size + self.port_message_raw_buffer = self.port_message.raw_buffer + self.port_message_buffer_size = len(self.port_message_raw_buffer) + else: + raise NotImplementedError("Uneexpected type for : {0}".format(msg_or_size)) + + # Init the MessageAttributes + if attributes is None: + # self.attributes = MessageAttribute.with_all_attributes() + self.attributes = MessageAttribute.with_all_attributes() ## Testing + else: + self.attributes = attributes + + # PORT_MESSAGE wrappers + @property + def type(self): + """The type of the message (``PORT_MESSAGE.u2.s2.Type``)""" + return self.port_message.u2.s2.Type + + def get_port_message_data(self): + return self.port_message.data + + def set_port_message_data(self, data): + self.port_message.data = data + + data = property(get_port_message_data, set_port_message_data) + "The data of the message (located after the PORT_MESSAGE header)" + + # MessageAttributes wrappers + + ## Low level attributes access + @property + def security_attribute(self): + """The :data:`~windows.generated_def.ALPC_MESSAGE_SECURITY_ATTRIBUTE` of the message + + :type: :class:`ALPC_SECURITY_ATTR` + """ + return self.attributes.get_attribute(gdef.ALPC_MESSAGE_SECURITY_ATTRIBUTE) + + @property + def view_attribute(self): + """The :data:`~windows.generated_def.ALPC_MESSAGE_VIEW_ATTRIBUTE` of the message: + + :type: :class:`ALPC_DATA_VIEW_ATTR` + """ + return self.attributes.get_attribute(gdef.ALPC_MESSAGE_VIEW_ATTRIBUTE) + + @property + def context_attribute(self): + """The :data:`~windows.generated_def.ALPC_MESSAGE_CONTEXT_ATTRIBUTE` of the message: + + :type: :class:`ALPC_CONTEXT_ATTR` + """ + return self.attributes.get_attribute(gdef.ALPC_MESSAGE_CONTEXT_ATTRIBUTE) + + @property + def handle_attribute(self): + """The :data:`~windows.generated_def.ALPC_MESSAGE_HANDLE_ATTRIBUTE` of the message: + + :type: :class:`ALPC_HANDLE_ATTR` + """ + return self.attributes.get_attribute(gdef.ALPC_MESSAGE_HANDLE_ATTRIBUTE) + + ## Low level validity check (Test) + @property + def view_is_valid(self): # Change the name ? + """True if :data:`~windows.generated_def.ALPC_MESSAGE_VIEW_ATTRIBUTE` is a ValidAttributes""" + return self.attributes.is_valid(gdef.ALPC_MESSAGE_VIEW_ATTRIBUTE) + + @property + def security_is_valid(self): # Change the name ? + """True if :data:`~windows.generated_def.ALPC_MESSAGE_SECURITY_ATTRIBUTE` is a ValidAttributes""" + return self.attributes.is_valid(gdef.ALPC_MESSAGE_SECURITY_ATTRIBUTE) + + @property + def handle_is_valid(self): # Change the name ? + """True if :data:`~windows.generated_def.ALPC_MESSAGE_HANDLE_ATTRIBUTE` is a ValidAttributes""" + return self.attributes.is_valid(gdef.ALPC_MESSAGE_HANDLE_ATTRIBUTE) + + @property + def context_is_valid(self): # Change the name ? + """True if :data:`~windows.generated_def.ALPC_MESSAGE_CONTEXT_ATTRIBUTE` is a ValidAttributes""" + return self.attributes.is_valid(gdef.ALPC_MESSAGE_CONTEXT_ATTRIBUTE) + + + @property + def valid_attributes(self): + """The list of valid attributes + + :type: [:class:`~windows.generated_def.Flag`] + """ + return self.attributes.valid_list + + @property + def allocated_attributes(self): + """The list of allocated attributes + + :type: [:class:`~windows.generated_def.Flag`] + """ + return self.attributes.allocated_list + + ## High level setup (Test) + def setup_view(self, size, section_handle=0, flags=None): + raise NotImplementedError(self.setup_view) + + + +class AlpcMessagePort(gdef.PORT_MESSAGE): + """The effective ALPC Message composed of a ``PORT_MESSAGE`` structure followed by the data""" + # Constructeur + @classmethod + def from_buffer(self, buffer): + # A sort of super(AlpcMessagePort).from_buffer + # But from_buffer is from the Metaclass of AlpcMessagePort so we use 'type(AlpcMessagePort)' + # To access the standard version of from_buffer. + self = type(AlpcMessagePort).from_buffer(AlpcMessagePort, buffer) + self.buffer_size = len(buffer) + self.raw_buffer = buffer + self.header_size = ctypes.sizeof(self) + self.max_datasize = self.buffer_size - self.header_size + return self + + @classmethod + def from_buffer_size(cls, buffer_size): + buffer = ctypes.c_buffer(buffer_size) + return cls.from_buffer(buffer) + + def read_data(self): + return self.raw_buffer[ctypes.sizeof(self):ctypes.sizeof(self) + self.u1.s1.DataLength] + + def write_data(self, data): + if len(data) > self.max_datasize: + import pdb; pdb.set_trace() + raise ValueError("Cannot write data of len <{0}> (raw_buffer size == <{1}>)".format(len(data), self.buffer_size)) + self.raw_buffer[self.header_size: self.header_size + len(data)] = data + self.set_datalen(len(data)) + + data = property(read_data, write_data) + "The data of the message (located after the header)" + + def set_datalen(self, datalen): + self.u1.s1.TotalLength = self.header_size + datalen + self.u1.s1.DataLength = datalen + + def get_datalen(self): + return self.u1.s1.DataLength + + datalen = property(get_datalen, set_datalen) + """The length of the data""" + +KNOWN_ALPC_ATTRIBUTES = (gdef.ALPC_MESSAGE_SECURITY_ATTRIBUTE, + gdef.ALPC_MESSAGE_VIEW_ATTRIBUTE, + gdef.ALPC_MESSAGE_CONTEXT_ATTRIBUTE, + gdef.ALPC_MESSAGE_HANDLE_ATTRIBUTE, + gdef.ALPC_MESSAGE_TOKEN_ATTRIBUTE, + gdef.ALPC_MESSAGE_DIRECT_ATTRIBUTE, + gdef.ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE) + +KNOWN_ALPC_ATTRIBUTES_MAPPING = gdef.FlagMapper(*KNOWN_ALPC_ATTRIBUTES) + + +class MessageAttribute(gdef.ALPC_MESSAGE_ATTRIBUTES): + """The attributes of an ALPC message""" + ATTRIBUTE_BY_FLAG = [(gdef.ALPC_MESSAGE_SECURITY_ATTRIBUTE, gdef.ALPC_SECURITY_ATTR), + (gdef.ALPC_MESSAGE_VIEW_ATTRIBUTE, gdef.ALPC_DATA_VIEW_ATTR), + (gdef.ALPC_MESSAGE_CONTEXT_ATTRIBUTE, gdef.ALPC_CONTEXT_ATTR), + (gdef.ALPC_MESSAGE_HANDLE_ATTRIBUTE, gdef.ALPC_HANDLE_ATTR), + (gdef.ALPC_MESSAGE_TOKEN_ATTRIBUTE, gdef.ALPC_TOKEN_ATTR), + (gdef.ALPC_MESSAGE_DIRECT_ATTRIBUTE, gdef.ALPC_DIRECT_ATTR), + (gdef.ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE, gdef.ALPC_WORK_ON_BEHALF_ATTR), + ] + + @classmethod + def with_attributes(cls, attributes): + """Create a new :class:`MessageAttribute` with ``attributes`` allocated + + :returns: :class:`MessageAttribute` + """ + size = cls._get_required_buffer_size(attributes) + buffer = ctypes.c_buffer(size) + self = cls.from_buffer(buffer) + self.raw_buffer = buffer + res = gdef.DWORD() + winproxy.AlpcInitializeMessageAttribute(attributes, self, len(self.raw_buffer), res) + return self + + @classmethod + def with_all_attributes(cls): + """Create a new :class:`MessageAttribute` with the following attributes allocated: + + - :class:`ALPC_MESSAGE_SECURITY_ATTRIBUTE` + - :class:`ALPC_MESSAGE_VIEW_ATTRIBUTE` + - :class:`ALPC_MESSAGE_CONTEXT_ATTRIBUTE` + - :class:`ALPC_MESSAGE_HANDLE_ATTRIBUTE` + - :class:`ALPC_MESSAGE_TOKEN_ATTRIBUTE` + - :class:`ALPC_MESSAGE_DIRECT_ATTRIBUTE` + - :class:`ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE` + + :returns: :class:`MessageAttribute` + """ + return cls.with_attributes(gdef.ALPC_MESSAGE_SECURITY_ATTRIBUTE | + gdef.ALPC_MESSAGE_VIEW_ATTRIBUTE | + gdef.ALPC_MESSAGE_CONTEXT_ATTRIBUTE | + gdef.ALPC_MESSAGE_HANDLE_ATTRIBUTE | + gdef.ALPC_MESSAGE_TOKEN_ATTRIBUTE | + gdef.ALPC_MESSAGE_DIRECT_ATTRIBUTE | + gdef.ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE) + + + @staticmethod + def _get_required_buffer_size(flags): + res = gdef.DWORD() + try: + windows.winproxy.AlpcInitializeMessageAttribute(flags, None, 0, res) + except windows.generated_def.ntstatus.NtStatusException as e: + # Buffer too small: osef + return res.value + return res.value + + def is_allocated(self, attribute): + """Return ``True`` if ``attribute`` is allocated""" + return bool(self.AllocatedAttributes & attribute) + + def is_valid(self, attribute): + """Return ``True`` if ``attribute`` is valid""" + return bool(self.ValidAttributes & attribute) + + def get_attribute(self, attribute): + if not self.is_allocated(attribute): + raise ValueError("Cannot get non-allocated attribute <{0}>".format(attribute)) + offset = ctypes.sizeof(self) + for sflag, struct in self.ATTRIBUTE_BY_FLAG: + if sflag == attribute: + # print("Attr {0:#x} was at offet {1:#x}".format(attribute, offset)) + return struct.from_address(ctypes.addressof(self) + offset) + elif self.is_allocated(sflag): + offset += ctypes.sizeof(struct) + raise ValueError("ALPC Attribute <{0}> not found :(".format(attribute)) + + def _extract_alpc_attributes_values(self, value): + attrs = [] + for mask in (1 << i for i in range(64)): + if value & mask: + attrs.append(mask) + return [KNOWN_ALPC_ATTRIBUTES_MAPPING[x] for x in attrs] + + @property + def valid_list(self): + """The list of valid attributes + + :type: [:class:`~windows.generated_def.Flag`] + """ + return self._extract_alpc_attributes_values(self.ValidAttributes) + + @property + def allocated_list(self): + """The list of allocated attributes + + :type: [:class:`~windows.generated_def.Flag`] + """ + return self._extract_alpc_attributes_values(self.AllocatedAttributes) + + +AlpcSection = namedtuple("AlpcSection", ["handle", "size"]) + +class AlpcTransportBase(object): + def send_receive(self, alpc_message, receive_msg=None, flags=gdef.ALPC_MSGFLG_SYNC_REQUEST, timeout=None): + """Send and receive a message with ``flags``. + + :param alpc_message: The message to send. If ``alpc_message`` is a :class:`str` it build an AlpcMessage with the message as data. + :type alpc_message: AlpcMessage or str + :param receive_msg: The message to send. If ``receive_msg`` is a ``None`` it create and return a simple :class:`AlpcMessage` + :type receive_msg: AlpcMessage or None + :param int flags: The flags for :func:`NtAlpcSendWaitReceivePort` + """ + if isinstance(alpc_message, windows.pycompat.anybuff): + raw_alpc_message = alpc_message + alpc_message = AlpcMessage(max(0x1000, len(alpc_message) + 0x200)) + alpc_message.port_message.data = raw_alpc_message + + if receive_msg is None: + receive_msg = AlpcMessage(DEFAULT_MESSAGE_SIZE) + receive_size = gdef.SIZE_T(receive_msg.port_message_buffer_size) + winproxy.NtAlpcSendWaitReceivePort(self.handle, flags, alpc_message.port_message, alpc_message.attributes, receive_msg.port_message, receive_size, receive_msg.attributes, timeout) + return receive_msg + + def send(self, alpc_message, flags=0): + """Send the ``alpc_message`` with ``flags`` + + :param alpc_message: The message to send. If ``alpc_message`` is a :class:`str` it build an AlpcMessage with the message as data. + :type alpc_message: AlpcMessage or str + :param int flags: The flags for :func:`NtAlpcSendWaitReceivePort` + """ + if isinstance(alpc_message, windows.pycompat.anybuff): + raw_alpc_message = alpc_message + alpc_message = AlpcMessage(max(0x1000, len(alpc_message) + 0x200)) + alpc_message.port_message.data = raw_alpc_message + winproxy.NtAlpcSendWaitReceivePort(self.handle, flags, alpc_message.port_message, alpc_message.attributes, None, None, None, None) + + def recv(self, receive_msg=None, flags=0): + """Receive a message into ``alpc_message`` with ``flags``. + + :param receive_msg: The message to send. If ``receive_msg`` is a ``None`` it create and return a simple :class:`AlpcMessage` + :type receive_msg: AlpcMessage or None + :param int flags: The flags for :func:`NtAlpcSendWaitReceivePort` + """ + if receive_msg is None: + receive_msg = AlpcMessage(DEFAULT_MESSAGE_SIZE) + receive_size = gdef.SIZE_T(receive_msg.port_message_buffer_size) + winproxy.NtAlpcSendWaitReceivePort(self.handle, flags, None, None, receive_msg.port_message, receive_size, receive_msg.attributes, None) + return receive_msg + + def _close_port(self, port_handle): + windows.winproxy.NtAlpcDisconnectPort(port_handle, 0) + windows.winproxy.CloseHandle(port_handle) + + + +class AlpcClient(AlpcTransportBase): + "An ALPC client able to connect to a port and send/receive messages" + + def __init__(self, port_name=None): + """Init the :class:`AlpcClient` automatically connect to ``port_name`` using default values if given""" + self.handle = None + self.port_name = None #: The name of the ALPC port the client is connect to. + if port_name is not None: + x = self.connect_to_port(port_name, "") + + def _alpc_port_to_unicode_string(self, name): + return gdef.UNICODE_STRING.from_string(name) + + def connect_to_port(self, port_name, connect_message=None, + port_attr=None, port_attr_flags=0x10000, obj_attr=None, + flags=gdef.ALPC_MSGFLG_SYNC_REQUEST, timeout=None): + """Connect to the ALPC port ``port_name``. Most of the parameters have defauls value is ``None`` is passed. + + :param AlpcMessage connect_message: The message send with the connection request, if not ``None`` the function will return an :class:`AlpcMessage` + :param ALPC_PORT_ATTRIBUTES port_attr: The port attributes, one with default value will be used if this parameter is ``None`` + :param int port_attr_flags: ``ALPC_PORT_ATTRIBUTES.Flags`` used if ``port_attr`` is ``None`` (MUTUALY EXCLUSINVE WITH ``port_attr``) + :param OBJECT_ATTRIBUTES obj_attr: The attributes of the port (can be None) + :param int flags: The flags for :func:`NtAlpcConnectPort` + :param int timeout: The timeout of the request + """ + # TODO raise on mutual exclusive parameter + if self.handle is not None: + raise ValueError("Client already connected") + handle = gdef.HANDLE() + port_name_unicode = self._alpc_port_to_unicode_string(port_name) + + if port_attr is None: + port_attr = gdef.ALPC_PORT_ATTRIBUTES() + port_attr.Flags = port_attr_flags # Flag qui fonctionne pour l'UAC + port_attr.MaxMessageLength = DEFAULT_MESSAGE_SIZE + port_attr.MemoryBandwidth = 0 + port_attr.MaxPoolUsage = 0xffffffff + port_attr.MaxSectionSize = 0xffffffff + port_attr.MaxViewSize = 0xffffffff + port_attr.MaxTotalSectionSize = 0xffffffff + port_attr.DupObjectTypes = 0xffffffff + + port_attr.SecurityQos.Length = ctypes.sizeof(port_attr.SecurityQos) + port_attr.SecurityQos.ImpersonationLevel = gdef.SecurityImpersonation + port_attr.SecurityQos.ContextTrackingMode = 0 + port_attr.SecurityQos.EffectiveOnly = 0 + + if connect_message is None: + send_msg = None + send_msg_attr = None + buffersize = None + elif isinstance(connect_message, windows.pycompat.anybuff): + buffersize = gdef.DWORD(len(connect_message) + 0x1000) + send_msg = AlpcMessagePort.from_buffer_size(buffersize.value) + send_msg.data = connect_message + send_msg_attr = MessageAttribute.with_all_attributes() + elif isinstance(connect_message, AlpcMessage): + send_msg = connect_message.port_message + send_msg_attr = connect_message.attributes + buffersize = gdef.DWORD(connect_message.port_message_buffer_size) + else: + raise ValueError("Don't know how to send <{0!r}> as connect message".format(connect_message)) + + receive_attr = MessageAttribute.with_all_attributes() + winproxy.NtAlpcConnectPort(handle, port_name_unicode, obj_attr, port_attr, flags, None, send_msg, buffersize, send_msg_attr, receive_attr, timeout) + # If send_msg is not None, it contains the ClientId.UniqueProcess : PID of the server :) + self.handle = handle.value + self.port_name = port_name + return AlpcMessage(send_msg, receive_attr) if send_msg is not None else None + + def create_port_section(self, Flags, SectionHandle, SectionSize): + AlpcSectionHandle = gdef.HANDLE() + ActualSectionSize = gdef.SIZE_T() + # RPCRT4 USE FLAGS 0x40000 ALPC_VIEWFLG_NOT_SECURE ? + winproxy.NtAlpcCreatePortSection(self.handle, Flags, SectionHandle, SectionSize, AlpcSectionHandle, ActualSectionSize) + return AlpcSection(AlpcSectionHandle.value, ActualSectionSize.value) + + def map_section(self, section_handle, size, flags=0): + view_attributes = gdef.ALPC_DATA_VIEW_ATTR() + view_attributes.Flags = 0 + view_attributes.SectionHandle = section_handle + view_attributes.ViewBase = 0 + view_attributes.ViewSize = size + r = winproxy.NtAlpcCreateSectionView(self.handle, flags, view_attributes) + return view_attributes + + def disconnect(self): + if self.handle: + self._close_port(self.handle) + + def __del__(self): + if sys.path is not None: + self.disconnect() + + +class AlpcServer(AlpcTransportBase): + """An ALPC server able to create a port, accept connections and send/receive messages""" + + def __init__(self, port_name=None): + self.port_name = None + self.communication_port_list = [] + self.handle = None + if port_name is not None: + self.create_port(port_name) + + def _alpc_port_to_unicode_string(self, name): + return gdef.UNICODE_STRING.from_string(name) + + def create_port(self, port_name, msglen=None, port_attr_flags=0, obj_attr=None, port_attr=None): + """Create the ALPC port ``port_name``. Most of the parameters have defauls value is ``None`` is passed. + + :param str port_name: The port's name to create. + :param int msglen: ``ALPC_PORT_ATTRIBUTES.MaxMessageLength`` used if ``port_attr`` is ``None`` (MUTUALY EXCLUSINVE WITH ``port_attr``) + :param int port_attr_flags: ``ALPC_PORT_ATTRIBUTES.Flags`` used if ``port_attr`` is ``None`` (MUTUALY EXCLUSINVE WITH ``port_attr``) + :param OBJECT_ATTRIBUTES obj_attr: The attributes of the port, one with default value will be used if this parameter is ``None`` + :param ALPC_PORT_ATTRIBUTES port_attr: The port attributes, one with default value will be used if this parameter is ``None`` + """ + # TODO raise on mutual exclusive parameter (port_attr + port_attr_flags | obj_attr + msglen) + handle = gdef.HANDLE() + raw_name = port_name + if not raw_name.startswith("\\"): + raw_name = "\\" + port_name + port_name = self._alpc_port_to_unicode_string(raw_name) + + if msglen is None: + msglen = DEFAULT_MESSAGE_SIZE + if obj_attr is None: + obj_attr = gdef.OBJECT_ATTRIBUTES() + obj_attr.Length = ctypes.sizeof(obj_attr) + obj_attr.RootDirectory = None + obj_attr.ObjectName = ctypes.pointer(port_name) + obj_attr.Attributes = 0 + obj_attr.SecurityDescriptor = None + obj_attr.SecurityQualityOfService = None + if port_attr is None: + port_attr = gdef.ALPC_PORT_ATTRIBUTES() + port_attr.Flags = port_attr_flags + # port_attr.Flags = 0x2080000 + # port_attr.Flags = 0x90000 + port_attr.MaxMessageLength = msglen + port_attr.MemoryBandwidth = 0 + port_attr.MaxPoolUsage = 0xffffffff + port_attr.MaxSectionSize = 0xffffffff + port_attr.MaxViewSize = 0xffffffff + port_attr.MaxTotalSectionSize = 0xffffffff + port_attr.DupObjectTypes = 0xffffffff + # windows.utils.print_ctypes_struct(port_attr, " - PORT_ATTR", hexa=True) + + winproxy.NtAlpcCreatePort(handle, obj_attr, port_attr) + self.port_name = raw_name + self.handle = handle.value + + def accept_connection(self, msg, port_attr=None, port_context=None): + """Accept the connection for a ``LPC_CONNECTION_REQUEST`` message. + ``msg.MessageId`` must be the same as the connection requesting message. + + :param AlpcMessage msg: The response message. + :param ALPC_PORT_ATTRIBUTES port_attr: The attributes of the port, one with default value will be used if this parameter is ``None`` + :param PVOID port_context: A value that will be copied in ``ALPC_CONTEXT_ATTR.PortContext`` of every message on this connection. + + """ + rhandle = gdef.HANDLE() + + if port_attr is None: + port_attr = gdef.ALPC_PORT_ATTRIBUTES() + port_attr.Flags = 0x80000 + # port_attr.Flags = 0x80000 + 0x2000000 + # port_attr.Flags = 0x2000000 + port_attr.MaxMessageLength = DEFAULT_MESSAGE_SIZE + port_attr.MemoryBandwidth = 0 + port_attr.MaxPoolUsage = 0xffffffff + port_attr.MaxSectionSize = 0xffffffff + port_attr.MaxViewSize = 0xffffffff + port_attr.MaxTotalSectionSize = 0xffffffff + port_attr.DupObjectTypes = 0xffffffff + # windows.utils.print_ctypes_struct(port_attr, " - CONN_PORT_ATTR", hexa=True) + winproxy.NtAlpcAcceptConnectPort(rhandle, self.handle, 0, None, port_attr, port_context, msg.port_message, None, True) + self.communication_port_list.append(rhandle.value) + return msg + + def disconnect(self): + if self.handle: + self._close_port(self.handle) + for com_port_handle in self.communication_port_list: + self._close_port(com_port_handle) + + # TODO: add an API to close a communication port ? + + def __del__(self): + if sys.path is not None: + self.disconnect() \ No newline at end of file diff --git a/pythonmemorymodule/windows/com.py b/pythonmemorymodule/windows/com.py new file mode 100644 index 0000000..60f2e38 --- /dev/null +++ b/pythonmemorymodule/windows/com.py @@ -0,0 +1,355 @@ +import sys +import struct +import ctypes +import functools +from ctypes import HRESULT, byref, cast + +import windows +from windows import winproxy +from windows.generated_def.winstructs import * + +import windows.generated_def as gdef +from windows.generated_def import RPC_C_IMP_LEVEL_IMPERSONATE, CLSCTX_INPROC_SERVER +from windows.generated_def import interfaces +from windows.generated_def.interfaces import generate_IID, IID + +from windows.pycompat import int_types, basestring + +# We have windows.com.COMImplementation +# So we need windows.com.COMInterface +COMInterface = interfaces.COMInterface + +# Simple raw -> UUID +# "-".join("{:02X}".format(c) for c in struct.unpack("``""" + if custom_iid is None: + custom_iid = targetinterface.IID + if isinstance(clsiid, basestring): + clsiid = IID.from_string(clsiid) + winproxy.CoCreateInstance(byref(clsiid), None, context, byref(custom_iid), byref(targetinterface)) + return targetinterface + + +def resolve_progid(progid): + clsid = CLSID() + winproxy.CLSIDFromProgID(progid, clsid) + # We just filed the CLSID: refresh the __repr__ + clsid.update_strid() + return clsid + +# Improved COM object +# Todo: ctypes_generation extended struct ? +class SafeArray(SAFEARRAY): + @classmethod + def of_type(cls, addr, t): + self = cls.from_address(addr) + self.elt_type = t + return self + + @classmethod + def from_PSAFEARRAY(self, psafearray): + res = cast(psafearray, POINTER(SafeArray))[0] + return res + + def to_list(self, t=None): + if t is None: + if hasattr(self, "elt_type"): + t = self.elt_type + else: + raise ValueError("Missing type of the array") + if self.cDims != 1: + raise NotImplementedError("tagSAFEARRAY if dims != 1") + + nb_element = self.rgsabound[0].cElements + llbound = self.rgsabound[0].lLbound + if self.cbElements != ctypes.sizeof(t): + raise ValueError("Size of elements != sizeof(type)") + data = [t.from_address(self.pvData + (i + llbound) * ctypes.sizeof(t)).value for i in range(nb_element)] + return data + +#VT_VALUE_TO_TYPE = { +#VT_I2 : SHORT, +#VT_I4 : LONG, +#VT_BSTR : BSTR, +#VT_VARIANT : VARIANT, +#VT_UI1 : UCHAR, +#VT_UI2 : USHORT, +#VT_UI4 : DWORD, +#VT_I8 : LONGLONG, +#VT_UI8 : ULONG64, +#VT_INT : INT, +#VT_UINT : UINT, +#VT_HRESULT : HRESULT, +#VT_PTR : PVOID, +#VT_LPSTR : LPCSTR, +#VT_LPWSTR : LPWSTR, +#} + +# VARIANT type checker +# Allow to guess a VARIANT_TYPE og a python value + +def never_match(value): + return False + +def check_type_null(value): + return value is None + +def check_type_i4(value): + # 31 ? as we may want to keep sign :) + return isinstance(value, int_types) and (value).bit_length() <= 32 + +def check_type_i8(value): + # 63 ? as we may want to keep sign :) + return isinstance(value, int_types) and (value).bit_length() <= 64 + +def check_type_bstr(value): + return isinstance(value, basestring) + +def check_type_bool(value): + return isinstance(value, bool) + +def check_type_array(value): + return True + + +VARIAN_NAME_3_TYPE = [f[1] for f in VARIANT._fields_ if f[0] == "_VARIANT_NAME_3"][0] + +empty = object() +class Variant(VARIANT): + def __init__(self, value=empty, type=None): + if type is not None: + self.set_value_and_type(value, type) + return + elif value is empty: + self.vt = VT_EMPTY + return + self.guess_type_and_set_value(value) + + # Copy raw-ctypes fields which is a descriptor :) + rawvt = VARIANT.vt + + # Most of the value in the colunm[1] + # are attribute of the sub-union _VARIANT_NAME_3 + # This union must be ctypes-anonymous for this code to works + # We want to access these directly from the VARIANT + # to allow custom descriptor for complexe type to be referenced here + CHECK_TYPE = [ + # Order is important + # as VT_I4 check may match VT_BOOL values + # VT_BOOL check must be before VT_I4 one + (VT_BOOL, "boolVal", check_type_bool), + (VT_I4, "lVal", check_type_i4), + (VT_I8, "llVal", check_type_i8), + (VT_BSTR, "bstrVal", check_type_bstr), + (VT_NULL, None, check_type_null), + (VT_EMPTY, None, never_match), + (VT_DISPATCH, "pdispVal", never_match), # I cannot recognize DISPATCH ptr for now + (VT_UNKNOWN, "punkVal", never_match), # recognise PFW ComInterface ? + # Test: do not allow auto-creation of small int values + # I don't know but a feel it may confuse some API expecting VT_I4 + (VT_I2, "iVal", never_match), + (VT_UI1, "bVal", never_match), + ] + + VARIANT_TYPE_BY_NAME = {f[0]: f[1] for f in VARIAN_NAME_3_TYPE._fields_} + QUICK_CHECK_TYPE = {x: y for x,y, _ in CHECK_TYPE} + + def get_vt(self): + rawvt = super(Variant, self).vt + return gdef.VARENUM.mapper[self.rawvt] + + def set_vt(self, value): + self.rawvt = value + + vt = property(get_vt, set_vt) + + def set_value_and_type(self, value, type): + attr = self.QUICK_CHECK_TYPE[type] + # No check: user must be careful about non-match value&type + setattr(self, attr, value) + self.vt = type + + def get_value_based_on_type(self): + rawvt = self.rawvt + if rawvt & VT_ARRAY: + realtype = rawvt & ~VT_ARRAY + attr = self.QUICK_CHECK_TYPE[realtype] + attrtype = self.VARIANT_TYPE_BY_NAME[attr] + array = SafeArray.from_PSAFEARRAY(self._VARIANT_NAME_3.parray) + return array.to_list(attrtype) + attr = self.QUICK_CHECK_TYPE[rawvt] + if attr is None: + return None + if attr == "punkVal": + # Quick hack for COM interface type + # Do something clean with CHECK_TYPE ? + x = gdef.IUnknown(self.punkVal) + x.AddRef() + return x + return getattr(self, attr) + + def guess_type_and_set_value(self, value): + for t, attr, check in self.CHECK_TYPE: + try: + checkres = check(value) + except TypeError as e: + continue + if checkres: + self.vt = t + if attr is not None: + setattr(self, attr, value) + return True + raise ValueError("Could not guess VT_TYPE for <{0}> of type <{1}>".format(value, type(value))) + + value = property(get_value_based_on_type, guess_type_and_set_value) + + # quick_check: bypass python lookup-limitation + def generate_getter(vt_type, transfo=(lambda x:x), quick_check=QUICK_CHECK_TYPE): + attr = quick_check[vt_type] + @property + def getter(self): + if not self.rawvt == vt_type: + raise ValueError("Invalid vt-type for attribute expected <{0}> got <{1}>".format(vt_type, self.vt)) + return transfo(getattr(self, attr)) + return getter + + asbstr = generate_getter(VT_BSTR) + aslong = generate_getter(VT_I4) + asbool = generate_getter(VT_BOOL) + asdispatch = generate_getter(VT_DISPATCH, transfo=interfaces.IDispatch) + asshort = generate_getter(VT_I2) + asbyte = generate_getter(VT_UI1) + asunknown = generate_getter(VT_UNKNOWN) + + def __repr__(self): + return """<{0} of type {1}>""".format(type(self).__name__, self.vt) + +# Deprecated: remove me when test pass :) +# ImprovedVariant.MAPPER = { + # VT_UI1: ImprovedVariant.asbyte.fget, + # VT_I2: ImprovedVariant.asshort.fget, + # VT_DISPATCH: ImprovedVariant.asdispatch.fget, + # VT_BOOL: ImprovedVariant.asbool.fget, + # VT_I4: ImprovedVariant.aslong.fget, + # VT_BSTR: ImprovedVariant.asbstr.fget, + # VT_EMPTY: (lambda x: None), + # VT_NULL: (lambda x: None), + # VT_UNKNOWN: ImprovedVariant.asunknown.fget, + # (VT_ARRAY | VT_BSTR): ImprovedVariant.asbstr_array.fget, + # (VT_ARRAY | VT_I4): ImprovedVariant.aslong_array.fget, + # (VT_ARRAY | VT_UI1): ImprovedVariant.asbyte_array.fget, + # (VT_ARRAY | VT_BOOL): ImprovedVariant.asbool_array.fget +# } + + + +class COMImplementation(object): + """The base class to implements COM object respecting a given interface""" + IMPLEMENT = None + + def get_index_of_method(self, method): + # This code is horrible but not totally my fault + # the PyCFuncPtrObject->index is not exposed to Python.. + # repr is: '' + rpr = repr(method) + if not rpr.startswith(" implementing <{1}> has no method <{2}>".format(type(self).__name__, self.IMPLEMENT.__name__, func_name)) + if not callable(implem): + raise ValueError("{0} implementing <{1}>: <{2}> is not callable".format(type(self).__name__, self.IMPLEMENT.__name__, func_name)) + return True + + def _create_vtable(self, interface): + implems = [] + names = [] + for index, name, method in self.extract_methods_order(interface): + func_implem = getattr(self, name) + #'this' is a COM-interface of the type we are implementing + types = [method.restype, interface] + list(method.argtypes) + implems.append(ctypes.WINFUNCTYPE(*types)(func_implem)) + names.append(name) + class Vtable(ctypes.Structure): + _fields_ = [(name, ctypes.c_void_p) for name in names] + return Vtable(*[ctypes.cast(x, ctypes.c_void_p) for x in implems]), implems + + def __init__(self): + self.verify_implem(self.IMPLEMENT) + vtable, implems = self._create_vtable(self.IMPLEMENT) + self.vtable = vtable + self.implems = implems + self.vtable_pointer = ctypes.pointer(self.vtable) + self._as_parameter_ = ctypes.addressof(self.vtable_pointer) + + def QueryInterface(self, this, piid, result): + """Default ``QueryInterface`` implementation that returns ``self`` if piid is the implemented interface""" + if piid[0] in (gdef.IUnknown.IID, self.IMPLEMENT.IID): + result[0] = this + return 1 + return E_NOINTERFACE + + def AddRef(self, *args): + """Default ``AddRef`` implementation that returns ``1``""" + return 1 + + def Release(self, *args): + """Default ``Release`` implementation that returns ``1``""" + return 0 diff --git a/pythonmemorymodule/windows/crypto/__init__.py b/pythonmemorymodule/windows/crypto/__init__.py new file mode 100644 index 0000000..fbe7502 --- /dev/null +++ b/pythonmemorymodule/windows/crypto/__init__.py @@ -0,0 +1,9 @@ +from windows.generated_def import X509_ASN_ENCODING, PKCS_7_ASN_ENCODING + +DEFAULT_ENCODING = X509_ASN_ENCODING | PKCS_7_ASN_ENCODING +# Keep other imports here so sub-crypto file can import windows.crypto.DEFAULT_ENCODING +from windows.crypto.certificate import * +from windows.crypto.encrypt_decrypt import * +from windows.crypto.sign_verify import * +from windows.crypto.dpapi import * +from windows.crypto.cryptmsg import CryptMessage diff --git a/pythonmemorymodule/windows/crypto/catalog.py b/pythonmemorymodule/windows/crypto/catalog.py new file mode 100644 index 0000000..d59aac5 --- /dev/null +++ b/pythonmemorymodule/windows/crypto/catalog.py @@ -0,0 +1,4 @@ +from windows import winproxy +import windows.generated_def as gdef +import windows.crypto + diff --git a/pythonmemorymodule/windows/crypto/certificate.py b/pythonmemorymodule/windows/crypto/certificate.py new file mode 100644 index 0000000..f627751 --- /dev/null +++ b/pythonmemorymodule/windows/crypto/certificate.py @@ -0,0 +1,585 @@ +import itertools +import ctypes + +import windows +from windows import winproxy +import windows.generated_def as gdef + +from windows.crypto import DEFAULT_ENCODING + +import windows.crypto.cryptmsg + + +CRYPT_OBJECT_FORMAT_TYPE = [ + gdef.CERT_QUERY_OBJECT_FILE, + gdef.CERT_QUERY_OBJECT_BLOB, + gdef.CERT_QUERY_CONTENT_CERT, + gdef.CERT_QUERY_CONTENT_CTL, + gdef.CERT_QUERY_CONTENT_CRL, + gdef.CERT_QUERY_CONTENT_SERIALIZED_STORE, + gdef.CERT_QUERY_CONTENT_SERIALIZED_CERT, + gdef.CERT_QUERY_CONTENT_SERIALIZED_CTL, + gdef.CERT_QUERY_CONTENT_SERIALIZED_CRL, + gdef.CERT_QUERY_CONTENT_PKCS7_SIGNED, + gdef.CERT_QUERY_CONTENT_PKCS7_UNSIGNED, + gdef.CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED, + gdef.CERT_QUERY_CONTENT_PKCS10, + gdef.CERT_QUERY_CONTENT_PFX, + gdef.CERT_QUERY_CONTENT_CERT_PAIR, + gdef.CERT_QUERY_CONTENT_PFX_AND_LOAD + ] + +CRYPT_OBJECT_FORMAT_TYPE_DICT = gdef.FlagMapper(*CRYPT_OBJECT_FORMAT_TYPE) + +## Move CryptObject to new .py ? + +class CryptObject(object): + """Extract information from an CryptoAPI object. + (see `CryptQueryObject `_) + + Current main use is extracting the signers certificates from a PE file. + """ + MSG_PARAM_KNOW_TYPES = {gdef.CMSG_SIGNER_INFO_PARAM: gdef.CMSG_SIGNER_INFO, + gdef.CMSG_SIGNER_COUNT_PARAM: gdef.DWORD, + gdef.CMSG_CERT_COUNT_PARAM: gdef.DWORD} + + def __init__(self, filename, content_type=gdef.CERT_QUERY_CONTENT_FLAG_ALL): + # No other API than filename for now.. + self.filename = filename + + dwEncoding = gdef.DWORD() + dwContentType = gdef.DWORD() + dwFormatType = gdef.DWORD() + hStore = CertificateStore() + hMsg = windows.crypto.CryptMessage() + + winproxy.CryptQueryObject(gdef.CERT_QUERY_OBJECT_FILE, + gdef.LPWSTR(filename), + # filename, + content_type, + gdef.CERT_QUERY_FORMAT_FLAG_BINARY, + 0, + dwEncoding, + dwContentType, + dwFormatType, + hStore, + hMsg, + None) + + self.cert_store = hStore if hStore else None + """The :class:`CertificateStore` that includes all of the certificates, CRLs, and CTLs in the object""" + self.crypt_msg = hMsg if hMsg else None #: yolo + """The :class:`CryptMessage` for any ``PKCS7`` content in the object""" + self.encoding = dwEncoding + self.content_type = CRYPT_OBJECT_FORMAT_TYPE_DICT[dwContentType.value] + """The type of the opened message""" + + def _signers_and_certs_generator(self): + if self.crypt_msg is None: + return + for signer in self.crypt_msg.signers: + # We could directly extract the certificates from the 'crypt_msg' (I guess) + # But 'CryptQueryObject' had the sympathy of already opening a CertificateStore + # for us. So we use it. + # I am open to counter-argument on this methodology. + cert = self.cert_store.find(signer.Issuer, signer.SerialNumber) + yield signer, cert + + @property + def signers_and_certs(self): + """The list of signer info and certificates signing the object. + + :rtype: [(:class:`~windows.generated_def.winstructs.CMSG_SIGNER_INFO`, :class:`Certificate`)] + + .. note:: + + :class:`~windows.generated_def.winstructs.CMSG_SIGNER_INFO` might be changed to a wrapping-subclass. + """ + return list(self._signers_and_certs_generator()) + + def __repr__(self): + return '<{0} "{1}" content_type={2!r}>'.format(type(self).__name__, self.filename, self.content_type) + + +# https://msdn.microsoft.com/en-us/library/windows/desktop/aa382037(v=vs.85).aspx +class CertificateStore(gdef.HCERTSTORE): + """A certificate store""" + @property + def certs(self): + """The list of certificates in the store + + :type: [:class:`Certificate`] -- A list of certificate + """ + res = [] + last = None + while True: + try: + cert = winproxy.CertEnumCertificatesInStore(self, last) + except winproxy.WinproxyError as e: + if (e.winerror & 0xffffffff) in (gdef.CRYPT_E_NOT_FOUND,): + return tuple(res) + raise + # Need to duplicate as CertEnumCertificatesInStore will free the context 'last' + ecert = windows.crypto.Certificate.from_pointer(cert) + res.append(ecert.duplicate()) + last = ecert + raise RuntimeError("Out of infinit loop") + + def add_certificate(self, certificate): + """Add a certificate to the store""" + winproxy.CertAddCertificateContextToStore(self, certificate, gdef.CERT_STORE_ADD_NEW, None) + + @classmethod + def from_file(cls, filename): + """Create a new :class:`CertificateStore` from ``filename``""" + res = winproxy.CertOpenStore(gdef.CERT_STORE_PROV_FILENAME_A, DEFAULT_ENCODING, None, gdef.CERT_STORE_OPEN_EXISTING_FLAG, filename) + return ctypes.cast(res, cls) + + def _yolo(self): + x = winproxy.CertEnumCTLsInStore(self, None) + title = None + windows.winproxy.CryptUIDlgViewContext(gdef.CERT_STORE_CTL_CONTEXT, x, None, title, 0, None) + return x + + + # See https://msdn.microsoft.com/en-us/library/windows/desktop/aa388136(v=vs.85).aspx + @classmethod + def from_system_store(cls, store_name): + """Create a new :class:`CertificateStore` from system store ``store_name`` + (see `System Store Locations `_) + """ + res = winproxy.CertOpenStore(gdef.CERT_STORE_PROV_SYSTEM_A, DEFAULT_ENCODING, None, gdef.CERT_SYSTEM_STORE_LOCAL_MACHINE | gdef.CERT_STORE_READONLY_FLAG, store_name) + return ctypes.cast(res, cls) + + @classmethod + def new_in_memory(cls): + """Create a new temporary :class:`CertificateStore` in memory""" + res = winproxy.CertOpenStore(gdef.CERT_STORE_PROV_MEMORY, DEFAULT_ENCODING, None, 0, None) + return ctypes.cast(res, cls) + + + # TODO: a more complete search API ? + def find(self, issuer, serialnumber): + """Return the certificate that match `issuer` and `serialnumber` + + :return: :class:`Certificate` -- ``None`` if certificate is not found + """ + # data = self.get_signer_data(index) + cert_info = gdef.CERT_INFO() + cert_info.Issuer = issuer + cert_info.SerialNumber = serialnumber + try: + rawcertcontext = winproxy.CertFindCertificateInStore(self, DEFAULT_ENCODING, 0, gdef.CERT_FIND_SUBJECT_CERT, ctypes.byref(cert_info), None) + except WindowsError as e: + if not e.winerror & 0xffffffff == gdef.CRYPT_E_NOT_FOUND: + raise + return None + return Certificate.from_pointer(rawcertcontext) + + def __del__(self): + return winproxy.CertCloseStore(self, 0) + + +# PKCS12_NO_PERSIST_KEY -> do not save it in a key container on disk +# Without it, a key container is created at 'C:\Users\USERNAME\AppData\Roaming\Microsoft\Crypto\RSA\S-1-5-21-3241049326-165485355-1070449050-1001' +# More about this: +# If you use 'PKCS12_NO_PERSIST_KEY' the key are indeed NOT STORED but there is a problem +# If you use an algo like 'szOID_NIST_AES256_CBC' the function 'CryptDecryptMessage' won't be able to decrypt the message +# Unless you also specify the 'PKCS12_ALWAYS_CNG_KSP' flags. + +# My guess: somewhere 'CryptDecryptMessage' ask for each (CNG_KSP | CSP ?) to try to decrypt with the keys +# BUT: as we DID NOT EXPORT the keys, they are not able to get the key from memory and expect them on disk. +# By forcing PKCS12_ALWAYS_CNG_KSP we remove this as the key are directly linked to the correct CNG_KSP in the CertStore +# Look like it's based on this part of the PFX: +# Microsoft CSP Name: Microsoft Enhanced Cryptographic Provider v1.0 +# BUT this will not allow to decrypt RSA_RC4 ? + +def import_pfx(pfx, password=None, flags=gdef.CRYPT_USER_KEYSET | gdef.PKCS12_NO_PERSIST_KEY | gdef.PKCS12_ALWAYS_CNG_KSP): + """Import the file ``pfx`` with the ``password``. + + ``default flags = PKCS12_NO_PERSIST_KEY | CRYPT_USER_KEYSET``. + + ``PKCS12_NO_PERSIST_KEY`` tells ``CryptoAPI`` to NOT save the keys in a on-disk container. + + :return: :class:`CertificateStore` + """ + if isinstance(pfx, windows.pycompat.anybuff) or isinstance(pfx, bytearray): + pfx = gdef.CRYPT_DATA_BLOB.from_string(pfx) + cert_store = winproxy.PFXImportCertStore(pfx, password, flags) + return CertificateStore(cert_store) + + +class Certificate(gdef.CERT_CONTEXT): + """Represent a Certificate """ + + @property + def raw_serial(self): + """The raw serial number of the certificate. + + :type: [:class:`int`]: A list of int ``0 <= x <= 255``""" + serial_number = self.pCertInfo[0].SerialNumber + return [(c & 0xff) for c in serial_number.pbData[:serial_number.cbData][::-1]] + + @property + def serial(self): + """The string representation of the certificate's serial. + + :type: :class:`str` + """ + serial_bytes = self.raw_serial + return " ".join("{:02x}".format(x) for x in serial_bytes) + + + def get_name(self, nametype=gdef.CERT_NAME_SIMPLE_DISPLAY_TYPE, param_type=0, flags=0): + """Retrieve the subject or issuer name of the certificate. + See `CertGetNameStringA `_ + + :returns: :class:`str` + """ + if nametype == gdef.CERT_NAME_RDN_TYPE: + param_type = gdef.DWORD(param_type) + param_type = gdef.LPDWORD(param_type) + size = winproxy.CertGetNameStringA(self, nametype, flags, param_type, None, 0) + namebuff = ctypes.c_buffer(size) + size = winproxy.CertGetNameStringA(self, nametype, flags, param_type, namebuff, size) + return namebuff[:-1] + + + + name = property(get_name) + """The name of the certificate. + + :type: :class:`str`""" + + + def raw_hash(self): + size = gdef.DWORD(100) + buffer = ctypes.c_buffer(size.value) + winproxy.CryptHashCertificate(None, 0, 0, self.pbCertEncoded, self.cbCertEncoded, ctypes.cast(buffer, gdef.LPBYTE), size) + return buffer[:size.value] + + @property + def thumbprint(self): + """The thumbprint of the certificate (which is the sha1 of the encoded cert). + + Example: + + >>> x + + >>> x.thumbprint + 'E2 A2 DB 76 A1 DD 8E 70 0D C6 9F CB 71 CF 29 12 C6 D9 78 97' + + :type: :class:`str` + """ + return " ".join("{:02X}".format(x) for x in bytearray(self.raw_hash())) + + @property + def distinguished_name(self): + """The distinguished name (DN) of the certificate. + + Example: + + >>> x + + >>> x.distinguished_name + 'C=US, S=Washington, L=Redmond, O=Microsoft Corporation, CN=Microsoft Windows Production PCA 2011' + + :type: :class:`str` + """ + return self.get_name(gdef.CERT_NAME_RDN_TYPE, gdef.CERT_X500_NAME_STR) + + @property + def issuer(self): + """The name of the certificate's issuer. + + :type: :class:`str`""" + return self.get_name(flags=gdef.CERT_NAME_ISSUER_FLAG) + + + @property + def store(self): + """The certificate store that contains the certificate + + :type: :class:`CertificateStore` + """ + return CertificateStore(self.hCertStore) + + def get_raw_certificate_chains(self): # Rename to all_chains ? + chain_context = EPCCERT_CHAIN_CONTEXT() + + enhkey_usage = gdef.CERT_ENHKEY_USAGE() + enhkey_usage.cUsageIdentifier = 0 + enhkey_usage.rgpszUsageIdentifier = None + + cert_usage = gdef.CERT_USAGE_MATCH() + cert_usage.dwType = gdef.USAGE_MATCH_TYPE_AND + cert_usage.Usage = enhkey_usage + + chain_para = gdef.CERT_CHAIN_PARA() + chain_para.cbSize = ctypes.sizeof(chain_para) + chain_para.RequestedUsage = cert_usage + + winproxy.CertGetCertificateChain(None, self, None, self.hCertStore, ctypes.byref(chain_para), 0, None, ctypes.byref(chain_context)) + # Lower chains ? + # winproxy.CertGetCertificateChain(None, self, None, self[0].hCertStore, ctypes.byref(chain_para), 0x80, None, ctypes.byref(chain_context)) + #return CertficateChain(chain_context) + return chain_context + + @property # fixedproperty ? + def chains(self): + """The list of chain context available for this certificate. Each elements of this list is a list of ``Certificate`` that should + go from the ``self`` certificate to a trusted certificate. + + :type: [[:class:`Certificate`]] -- A list of chain (list) of :class:`Certificate` + """ + chain_context = self.get_raw_certificate_chains() + res = [] + for chain in chain_context.chains: + chain_res = [elt.cert for elt in chain.elements] + res.append(chain_res) + return res + + # API Arround CertSelectCertificateChains ? + # https://msdn.microsoft.com/en-us/library/windows/desktop/dd433797(v=vs.85).aspx + + def duplicate(self): + """Duplicate the certificate by incrementing the internal refcount. (see `CertDuplicateCertificateContext `_) + + note: The object returned is ``self`` + + :return: :class:`Certificate` + """ + res = winproxy.CertDuplicateCertificateContext(self) + # Check what the doc says: the pointer returned is actually the PCERT in parameter + # Only the refcount is incremented + # This postulate allow us to return 'self' directly + # https://msdn.microsoft.com/en-us/library/windows/desktop/aa376045(v=vs.85).aspx + if not ctypes.addressof(res[0]) == ctypes.addressof(self): + raise ValueError("CertDuplicateCertificateContext did not returned the argument (check doc)") + return self + + def view(self, title=None): + return windows.winproxy.CryptUIDlgViewContext(gdef.CERT_STORE_CERTIFICATE_CONTEXT, ctypes.byref(self), None, title, 0, None) + + KNOWN_PROPERTIES_VALUES = gdef.FlagMapper( + gdef.CERT_KEY_PROV_HANDLE_PROP_ID, + gdef.CERT_KEY_PROV_INFO_PROP_ID, + gdef.CERT_SHA1_HASH_PROP_ID, + gdef.CERT_MD5_HASH_PROP_ID, + gdef.CERT_HASH_PROP_ID, + gdef.CERT_KEY_CONTEXT_PROP_ID, + gdef.CERT_KEY_SPEC_PROP_ID, + gdef.CERT_IE30_RESERVED_PROP_ID, + gdef.CERT_PUBKEY_HASH_RESERVED_PROP_ID, + gdef.CERT_ENHKEY_USAGE_PROP_ID, + gdef.CERT_CTL_USAGE_PROP_ID, + gdef.CERT_NEXT_UPDATE_LOCATION_PROP_ID, + gdef.CERT_FRIENDLY_NAME_PROP_ID, + gdef.CERT_PVK_FILE_PROP_ID, + gdef.CERT_DESCRIPTION_PROP_ID, + gdef.CERT_ACCESS_STATE_PROP_ID, + gdef.CERT_SIGNATURE_HASH_PROP_ID, + gdef.CERT_SMART_CARD_DATA_PROP_ID, + gdef.CERT_EFS_PROP_ID, + gdef.CERT_FORTEZZA_DATA_PROP_ID, + gdef.CERT_ARCHIVED_PROP_ID, + gdef.CERT_KEY_IDENTIFIER_PROP_ID, + gdef.CERT_AUTO_ENROLL_PROP_ID, + gdef.CERT_PUBKEY_ALG_PARA_PROP_ID, + gdef.CERT_CROSS_CERT_DIST_POINTS_PROP_ID, + gdef.CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID, + gdef.CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID, + gdef.CERT_ENROLLMENT_PROP_ID, + gdef.CERT_DATE_STAMP_PROP_ID, + gdef.CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID, + gdef.CERT_SUBJECT_NAME_MD5_HASH_PROP_ID, + gdef.CERT_EXTENDED_ERROR_INFO_PROP_ID, + gdef.CERT_RENEWAL_PROP_ID, + gdef.CERT_ARCHIVED_KEY_HASH_PROP_ID, + gdef.CERT_AUTO_ENROLL_RETRY_PROP_ID, + gdef.CERT_AIA_URL_RETRIEVED_PROP_ID, + gdef.CERT_AUTHORITY_INFO_ACCESS_PROP_ID, + gdef.CERT_BACKED_UP_PROP_ID, + gdef.CERT_OCSP_RESPONSE_PROP_ID, + gdef.CERT_REQUEST_ORIGINATOR_PROP_ID, + gdef.CERT_SOURCE_LOCATION_PROP_ID) + + def enum_properties(self): + prop = 0 + res = [] + while True: + prop = winproxy.CertEnumCertificateContextProperties(self, prop) + if not prop: + return res + res.append(self.KNOWN_PROPERTIES_VALUES[prop]) + raise RuntimeError("Unreachable code") + + properties = property(enum_properties) + """The properties of the certificate + + :type: [:class:`int` or :class:`~windows.generated_def.Flag`] -- A list of property ID + """ + + #def get_property(self): + # https://msdn.microsoft.com/en-us/library/windows/desktop/aa376079(v=vs.85).aspx + # - Usefull: + # CERT_SHA1_HASH_PROP_ID + + def get_property(self, prop): + "TODO: DOC :D + auto-type ?" + datasize = gdef.DWORD() + windows.winproxy.CertGetCertificateContextProperty(self, prop, None, datasize) + buf = (gdef.BYTE * datasize.value)() + windows.winproxy.CertGetCertificateContextProperty(self, prop, buf, datasize) + return bytearray(buf) + + + @property + def encoded(self): + """The encoded certificate. + + :type: :class:`bytearray`""" + return bytearray(self.pbCertEncoded[:self.cbCertEncoded]) + + @property + def version(self): + """The version number of the certificate + + :type: :class:`int` + """ + return self.pCertInfo[0].dwVersion + + + @classmethod + def from_file(cls, filename): + """Create a :class:`Certificate` from the file ``filename`` + + :return: :class:`Certificate` + """ + with open(filename, "rb") as f: + data = f.read() + buf = (ctypes.c_ubyte * len(data))(*bytearray(data)) + pcert = windows.winproxy.CertCreateCertificateContext(windows.crypto.DEFAULT_ENCODING, buf, len(data)) + return cls.from_pointer(pcert) + + @classmethod + def from_buffer(cls, data): + """Create a :class:`Certificate` from the buffer ``data`` + + :return: :class:`Certificate` + """ + buf = (ctypes.c_ubyte * len(data))(*bytearray(data)) + pcert = windows.winproxy.CertCreateCertificateContext(windows.crypto.DEFAULT_ENCODING, buf, len(data)) + return cls.from_pointer(pcert) + + @classmethod + def from_pointer(self, ptr): + return ctypes.cast(ptr, ctypes.POINTER(Certificate))[0] + + + def __eq__(self, other): + if not isinstance(other, Certificate): + return NotImplemented + return windows.winproxy.CertCompareCertificate(DEFAULT_ENCODING, self.pCertInfo, other.pCertInfo) + + def __repr__(self): + return '<{0} "{1}" serial="{2}">'.format(type(self).__name__, self.name, self.serial) + + + + + +# class CertficateChain(object): +# def __init__(self, pc_chain_context): +# self.chain = pc_chain_context[0] +# +# def to_list(self): +# res = [] +# for i in range(self.chain.rgpChain[0][0].cElement): +# res.append(CertificateContext(self.chain.rgpChain[0][0].rgpElement[i][0].pCertContext[0])) +# return res + + +# Those classes are more of a POC than anything else +# Should be the struct itself (like Certificate ?) +class EPCCERT_CHAIN_CONTEXT(gdef.PCCERT_CHAIN_CONTEXT): + _type_ = gdef.PCCERT_CHAIN_CONTEXT._type_ + + @property + def chains(self): + res = [] + # if (self[0].cLowerQualityChainContext): + # print("LOL") + # import pdb;pdb.set_trace() + # if self[0].cChain > 1: + # print("HAAAAA") + # import pdb;pdb.set_trace() + for i in range(self[0].cChain): + simple_chain = ctypes.cast(self[0].rgpChain[i], EPCCERT_SIMPLE_CHAIN) + res.append(simple_chain) + return res + + @property + def all_cert(self): + res = [] + for chain in self.chains: + ch = [] + res.append(ch) + for element in chain.elements: + ch.append(element.cert) + return res + +class EPCCERT_SIMPLE_CHAIN(gdef.PCCERT_SIMPLE_CHAIN): + _type_ = gdef.PCCERT_SIMPLE_CHAIN._type_ + + @property + def elements(self): + res = [] + for i in range(self[0].cElement): + element = ctypes.cast(self[0].rgpElement[i], EPCERT_CHAIN_ELEMENT) + res.append(element) + return res + +class EPCERT_CHAIN_ELEMENT(gdef.PCERT_CHAIN_ELEMENT): + _type_ = gdef.PCERT_CHAIN_ELEMENT._type_ + + @property + def cert(self): + return Certificate.from_pointer(self[0].pCertContext) + + +# Move this in another .py ? +class CryptContext(gdef.HCRYPTPROV): + """ A context manager arround ``CryptAcquireContextW`` & ``CryptReleaseContext`` + + .. note:: + see usage in sample :ref:`sample_crypto_encryption` (function ``genkeys``) + """ + _type_ = gdef.HCRYPTPROV._type_ + + def __init__(self, pszContainer=None, pszProvider=None, dwProvType=0, dwFlags=0, retrycreate=False): + self.pszContainer = pszContainer + self.pszProvider = pszProvider + self.dwProvType = dwProvType + self.dwFlags = dwFlags + self.retrycreate = True + #self.value = HCRYPTPROV() + pass + + def __enter__(self): + self.acquire() + return self + + def __exit__(self, *args): + self.release() + + def acquire(self): + try: + return winproxy.CryptAcquireContextW(self, self.pszContainer, self.pszProvider, self.dwProvType, self.dwFlags) + except WindowsError as e: + if not self.retrycreate: + raise + return winproxy.CryptAcquireContextW(self, self.pszContainer, self.pszProvider, self.dwProvType, self.dwFlags | gdef.CRYPT_NEWKEYSET) + + def release(self): + return winproxy.CryptReleaseContext(self, False) \ No newline at end of file diff --git a/pythonmemorymodule/windows/crypto/cryptmsg.py b/pythonmemorymodule/windows/crypto/cryptmsg.py new file mode 100644 index 0000000..bd00559 --- /dev/null +++ b/pythonmemorymodule/windows/crypto/cryptmsg.py @@ -0,0 +1,133 @@ +import ctypes + +from windows import winproxy +import windows.generated_def as gdef +import windows.crypto + +class CryptMessage(gdef.HCRYPTMSG): + """Represent a PKCS #7 message + (see `Low-level Message Functions `_) + """ + MSG_PARAM_KNOW_TYPES = {gdef.CMSG_SIGNER_INFO_PARAM: gdef.CMSG_SIGNER_INFO, + gdef.CMSG_SIGNER_COUNT_PARAM: gdef.DWORD, + gdef.CMSG_CERT_COUNT_PARAM: gdef.DWORD, + gdef.CMSG_ENVELOPE_ALGORITHM_PARAM: gdef.CRYPT_ALGORITHM_IDENTIFIER, + gdef.CMSG_RECIPIENT_COUNT_PARAM: gdef.DWORD, + gdef.CMSG_RECIPIENT_INFO_PARAM: gdef.CERT_INFO, + } + + + def get_param(self, param_type, index=0, raw=False): + data_size = gdef.DWORD() + # https://msdn.microsoft.com/en-us/library/windows/desktop/aa380227(v=vs.85).aspx + winproxy.CryptMsgGetParam(self, param_type, index, None, data_size) + buffer = ctypes.c_buffer(data_size.value) + winproxy.CryptMsgGetParam(self, param_type, index, buffer, data_size) + if raw: + return (buffer, data_size) + + if param_type in self.MSG_PARAM_KNOW_TYPES: + buffer = self.MSG_PARAM_KNOW_TYPES[param_type].from_buffer(buffer) + if isinstance(buffer, gdef.DWORD): # DWORD -> return the Python int + return buffer.value + return buffer + + # Certificate accessors + + @property + def nb_cert(self): + """The number of certificate embded in the :class:`CryptObject` + + :type: :class:`int` + """ + return self.get_param(gdef.CMSG_CERT_COUNT_PARAM) + + def get_raw_cert(self, index=0): + return self.get_param(gdef.CMSG_CERT_PARAM, index) + + def get_cert(self, index=0): + """Return embded :class:`Certificate` number ``index``. + + .. note:: + + Not all embded certificate are directly used to sign the :class:`CryptObject`. + """ + return windows.crypto.Certificate.from_buffer(self.get_raw_cert(index)) + + @property + def certs(self): + """The list of :class:`Certificate` embded in the message""" + return [self.get_cert(i) for i in range(self.nb_cert)] + + # Signers accessors + + @property + def nb_signer(self): + """The number of signers for the CryptObject + + :type: :class:`int` + """ + try: + return self.get_param(gdef.CMSG_SIGNER_COUNT_PARAM) + except WindowsError as e: + if (e.winerror & 0xffffffff) == gdef.CRYPT_E_INVALID_MSG_TYPE: + return 0 + raise + + + def get_signer_data(self, index=0): + """Returns the signer informations for signer nb ``index`` + + :return: :class:`~windows.generated_def.winstructs.CMSG_SIGNER_INFO` + """ + return self.get_param(gdef.CMSG_SIGNER_INFO_PARAM, index) + + @property + def signers(self): + """The list of :class:`~windows.generated_def.winstructs.CMSG_SIGNER_INFO` embed in the message""" + return [self.get_signer_data(i) for i in range(self.nb_signer)] + + @property + def nb_recipient(self): + """TODO: DOC""" + return self.get_param(gdef.CMSG_RECIPIENT_COUNT_PARAM) + + + def get_recipient_data(self, index=0): + """TODO: DOC""" + return self.get_param(gdef.CMSG_RECIPIENT_INFO_PARAM, index) + + @property + def recipients(self): + """TODO: DOC""" + return [self.get_recipient_data(i) for i in range(self.nb_recipient)] + + @property + def content(self): + return self.get_param(gdef.CMSG_CONTENT_PARAM)[:] + + @property + def content_type(self): + data = self.get_param(gdef.CMSG_INNER_CONTENT_TYPE_PARAM) + assert data[-1] == "\x00", "CMSG_INNER_CONTENT_TYPE_PARAM not NULL TERMINATED" + return data[:-1] + + + def update(self, blob, final): + # Test isinstance string ? + if isinstance(blob, (windows.pycompat.anybuff, bytearray)): + blob = windows.pycompat.raw_encode(blob) + buffer = windows.utils.BUFFER(gdef.BYTE).from_buffer_copy(blob) + return winproxy.CryptMsgUpdate(self, buffer, len(blob), final) + return winproxy.CryptMsgUpdate(self, blob.pbData, blob.cbData, final) + + # constructor + @classmethod + def from_buffer(self, data): + hmsg = winproxy.CryptMsgOpenToDecode(windows.crypto.DEFAULT_ENCODING, 0, 0, None, None, None) + newmsg = CryptMessage(hmsg) + newmsg.update(data, final=True) + return newmsg + + def __del__(self): + return winproxy.CryptMsgClose(self) diff --git a/pythonmemorymodule/windows/crypto/dpapi.py b/pythonmemorymodule/windows/crypto/dpapi.py new file mode 100644 index 0000000..5b2a947 --- /dev/null +++ b/pythonmemorymodule/windows/crypto/dpapi.py @@ -0,0 +1,34 @@ +from windows import winproxy +import windows.generated_def as gdef + +__all__ = ["protect", "unprotect"] + + +def protect(data, entropy=None, flags=gdef.CRYPTPROTECT_UI_FORBIDDEN): + in_blob = gdef.DATA_BLOB.from_string(data) + out_blob = gdef.DATA_BLOB() + if entropy is not None: + entropy = gdef.DATA_BLOB.from_string(entropy) + winproxy.CryptProtectData(in_blob, pOptionalEntropy=entropy, dwFlags=flags, pDataOut=out_blob) + encrypted_data = bytes(out_blob.data) + # https://docs.microsoft.com/en-us/windows/win32/api/dpapi/nf-dpapi-cryptprotectdata + # pDataOut: A pointer to a DATA_BLOB structure that receives the encrypted data. + # When you have finished using the DATA_BLOB structure, free its pbData member by calling the LocalFree function. + winproxy.LocalFree(out_blob.pbData) + del out_blob + return encrypted_data + + +def unprotect(data, entropy=None, flags=gdef.CRYPTPROTECT_UI_FORBIDDEN): + in_blob = gdef.DATA_BLOB.from_string(data) + out_blob = gdef.DATA_BLOB() + if entropy is not None: + entropy = gdef.DATA_BLOB.from_string(entropy) + winproxy.CryptUnprotectData(in_blob, pOptionalEntropy=entropy, dwFlags=flags, pDataOut=out_blob) + decrypted_data = bytes(out_blob.data) + # https://docs.microsoft.com/en-us/windows/win32/api/dpapi/nf-dpapi-cryptprotectdata + # pDataOut: A pointer to a DATA_BLOB structure that receives the encrypted data. + # When you have finished using the DATA_BLOB structure, free its pbData member by calling the LocalFree function. + winproxy.LocalFree(out_blob.pbData) + del out_blob + return decrypted_data \ No newline at end of file diff --git a/pythonmemorymodule/windows/crypto/encrypt_decrypt.py b/pythonmemorymodule/windows/crypto/encrypt_decrypt.py new file mode 100644 index 0000000..d94e34b --- /dev/null +++ b/pythonmemorymodule/windows/crypto/encrypt_decrypt.py @@ -0,0 +1,119 @@ +from os import urandom + +from windows import winproxy +from windows.crypto import DEFAULT_ENCODING +from windows.generated_def import * + +__all__ = ["encrypt", "decrypt"] + +def encode_init_vector(data): + blob = CRYPT_DATA_BLOB.from_string(data) + size = DWORD() + buf = None + winproxy.CryptEncodeObjectEx(DEFAULT_ENCODING, X509_OCTET_STRING, ctypes.byref(blob), 0, None, buf, size) + buf = (BYTE * size.value)() + winproxy.CryptEncodeObjectEx(DEFAULT_ENCODING, X509_OCTET_STRING, ctypes.byref(blob), 0, None, buf, size) + return buf[:] + + +class GenerateInitVector(object): + def __repr__(self): + return "GenerateInitVector()" + + def generate_init_vector(self, algo): + if algo in [szOID_OIWSEC_desCBC, szOID_RSA_DES_EDE3_CBC]: + return urandom(8) + if algo in [szOID_NIST_AES128_CBC, szOID_NIST_AES192_CBC, szOID_NIST_AES256_CBC]: + return urandom(16) + return None +geninitvector = GenerateInitVector() + + +def encrypt(cert_or_certlist, msg, algo=szOID_NIST_AES256_CBC, initvector=geninitvector): + """Encrypt ``msg`` one or many :class:`Certificate` using ``algo`` with the initial + vector ``initvector``. + + If ``geninitvector`` is left as it is, it will generate a random one. + + Algorithms supported by ``GenerateInitVector`` are: + + * ``szOID_OIWSEC_desCBC`` + * ``szOID_RSA_DES_EDE3_CBC`` + * ``szOID_NIST_AES128_CBC`` + * ``szOID_NIST_AES192_CBC`` + * ``szOID_NIST_AES256_CBC`` + + :param cert_or_certlist: One or many :class:`Certificate` used to encrypt the msg + :type cert_or_certlist: :class:`Certificate` | [:class:`Certificate`] + :return: :class:`bytearray`: The encrypted message + """ + alg_ident = CRYPT_ALGORITHM_IDENTIFIER() + alg_ident.pszObjId = algo.encode("ascii") + # We want to have automatique translation of Certificate -> PCERT_CONTEXT + # In order to simple create the 'PCERT_CONTEXT[] certs' + # For that we need a tuple of X * 1-item-tuple + # as a (cert,) will be automaticly translatable to a PCERT_CONTEXT + if isinstance(cert_or_certlist, CERT_CONTEXT): + certlist = ((cert_or_certlist,),) + else: + certlist = tuple((c,) for c in cert_or_certlist) + + # Set (compute if needed) the IV + if initvector is None: + alg_ident.Parameters.cbData = 0 + elif initvector is geninitvector: + initvector = initvector.generate_init_vector(algo) + if initvector is None: + raise ValueError("I don't know how to generate an for <{0}> please provide one (or None)".format(algo)) + initvector_encoded = encode_init_vector(initvector) + alg_ident.Parameters = CRYPT_DATA_BLOB.from_string(initvector_encoded) + else: + initvector_encoded = encode_init_vector(initvector) + alg_ident.Parameters = CRYPT_DATA_BLOB.from_string(initvector_encoded) + + # Setup encryption parameters + param = CRYPT_ENCRYPT_MESSAGE_PARA() + param.cbSize = ctypes.sizeof(param) + param.dwMsgEncodingType = DEFAULT_ENCODING + param.hCryptProv = None + param.ContentEncryptionAlgorithm = alg_ident + param.pvEncryptionAuxInfo = None + param.dwFlags = 0 + param.dwInnerContentType = 0 + + + certs = (PCERT_CONTEXT * len(certlist))(*certlist) + #Ask the output buffer size + size = DWORD() + winproxy.CryptEncryptMessage(param, len(certs), certs, msg, len(msg), None, size) + #Encrypt the msg + buf = (BYTE * size.value)() + winproxy.CryptEncryptMessage(param, len(certs), certs, msg, len(msg), buf, size) + return bytearray(buf[:size.value]) + + +def decrypt(cert_store, encrypted): + """Try to decrypt the ``encrypted`` msg with any certificate in ``cert_store``. + + If there is no certificate able to decrypt the message ``WinproxyError(winerror=0x8009200c)`` is raised. + + :param cert_store: + :type cert_store: :class:`CertificateStore` + :return: :class:`str`: The decrypted message + """ + # Setup decryption parameters + dparam = CRYPT_DECRYPT_MESSAGE_PARA() + dparam.cbSize = ctypes.sizeof(dparam) + dparam.dwMsgAndCertEncodingType = DEFAULT_ENCODING + dparam.cCertStore = 1 + dparam.rghCertStore = (cert_store,) + dparam.dwFlags = 0 + + #Ask the output buffer size + buf = (BYTE * len(encrypted)).from_buffer_copy(encrypted) + dcryptsize = DWORD() + winproxy.CryptDecryptMessage(dparam, buf, ctypes.sizeof(buf), None, dcryptsize, None) + #Decrypt the msg + dcryptbuff = (BYTE * (dcryptsize.value + 0x1000))() + winproxy.CryptDecryptMessage(dparam, buf, ctypes.sizeof(buf), dcryptbuff, dcryptsize, None) + return bytes(bytearray(dcryptbuff[:dcryptsize.value])) diff --git a/pythonmemorymodule/windows/crypto/generation.py b/pythonmemorymodule/windows/crypto/generation.py new file mode 100644 index 0000000..dc38af7 --- /dev/null +++ b/pythonmemorymodule/windows/crypto/generation.py @@ -0,0 +1,53 @@ +import windows +from windows import winproxy +from windows.generated_def import * +from windows.crypto import DEFAULT_ENCODING, CertificateStore + + +def generate_selfsigned_certificate(name="CN=DEFAULT", prov=None, key_info=None, flags=0, signature_algo=None): + """Generate a selfsigned certificate. + + See `CertCreateSelfSignCertificate `_ + + :return: :class:`windows.crypto.Certificate` + """ + size = ULONG(len(name) + 0x100) + buffer = (ctypes.c_ubyte * size.value)() + winproxy.CertStrToNameA(X509_ASN_ENCODING, name, CERT_OID_NAME_STR, None, buffer, size, None) + blobname = CRYPT_DATA_BLOB(size.value, buffer) + cert = winproxy.CertCreateSelfSignCertificate(prov, blobname, flags, key_info, signature_algo, None, None, None) + return windows.crypto.Certificate.from_pointer(cert) + + +def generate_key(prov, keytype=AT_KEYEXCHANGE, flags=CRYPT_EXPORTABLE): + """Generate a keypair if type ``keytype``. + + :return: :class:`HCRYPTKEY` + """ + key = HCRYPTKEY() + winproxy.CryptGenKey(prov, keytype, flags , key) + return key + # print(key[0]) + # print("[OK] Key created") + # size = DWORD() + # winproxy.CryptExportKey(key, None, PRIVATEKEYBLOB, 0, None, size) + # buffer = (BYTE * size.value)() + # print("needed size = {0}".format(size)) + # winproxy.CryptExportKey(key, None, PRIVATEKEYBLOB, 0, buffer, size) + # print("[OK] Key in buffer") + # keyraw = bytearray(buffer) + # # openssl.exe rsa -in key.out -inform MS\PRIVATEKEYBLOB -text + # save_as(keyraw, "key.out") + # #res = ctypes.WinDLL("advapi32").CryptReleaseContext(prov, 0) + # return key + +def generate_pfx(hstore, password=None): + """Generate a pfx protected by ``password`` contaning the certificates in ``hstore`` + + :return: :class:`bytearray` -- The raw PFX + """ + blob = CRYPT_DATA_BLOB(0, None) + winproxy.PFXExportCertStoreEx(hstore, blob, password, None, EXPORT_PRIVATE_KEYS | REPORT_NO_PRIVATE_KEY | REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY) + blob.pbData = (ctypes.c_ubyte * blob.cbData)() + winproxy.PFXExportCertStoreEx(hstore, blob, password, None, EXPORT_PRIVATE_KEYS | REPORT_NO_PRIVATE_KEY | REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY) + return blob.data \ No newline at end of file diff --git a/pythonmemorymodule/windows/crypto/sign_verify.py b/pythonmemorymodule/windows/crypto/sign_verify.py new file mode 100644 index 0000000..24b3774 --- /dev/null +++ b/pythonmemorymodule/windows/crypto/sign_verify.py @@ -0,0 +1,70 @@ +import windows +from windows import winproxy +from windows.crypto import DEFAULT_ENCODING +import windows.generated_def as gdef + +import ctypes + +__all__ = ["sign", "verify_signature"] + +def sign(cert, msg, detached_signature=False, algo=gdef.szOID_RSA_SHA256RSA): + # hash algorithm + alg_hash = gdef.CRYPT_ALGORITHM_IDENTIFIER() + alg_hash.pszObjId = algo.encode() + + # Signing parameters + sign_para = gdef.CRYPT_SIGN_MESSAGE_PARA() + sign_para.cbSize = ctypes.sizeof(sign_para) + sign_para.dwMsgEncodingType = DEFAULT_ENCODING + sign_para.pSigningCert = gdef.PCERT_CONTEXT(cert) + sign_para.HashAlgorithm = alg_hash + sign_para.pvHashAuxInfo = None + sign_para.cMsgCert = 0 + sign_para.rgpMsgCert = None + sign_para.cMsgCrl = 0 + sign_para.rgpMsgCrl = None + sign_para.cAuthAttr = 0 + sign_para.rgAuthAttr = None + sign_para.cUnauthAttr = 0 + sign_para.rgUnauthAttr = None + sign_para.dwFlags = 0 + sign_para.dwInnerContentType = 0 + sign_para.HashEncryptionAlgorithm = alg_hash + sign_para.pvHashEncryptionAuxInfo = None + + ByteBuffer = windows.utils.BUFFER(gdef.BYTE) + + result_buffer = ByteBuffer(nbelt=0x2000) + result_size = gdef.DWORD(len(result_buffer)) + buff = ByteBuffer(*bytearray(msg)) + buff_pr = windows.utils.BUFFER(gdef.LPBYTE, nbelt=1)(buff) + buff_size = gdef.DWORD(len(msg)) + try: + windows.winproxy.CryptSignMessage(sign_para, False, 1, buff_pr, buff_size, result_buffer, result_size) + except WindowsError as e: + if not e.winerror == gdef.ERROR_MORE_DATA: + raise + result_buffer = ByteBuffer(nbelt=result_size.value) + windows.winproxy.CryptSignMessage(sign_para, False, 1, buff_pr, buff_size, result_buffer, result_size) + return bytearray(result_buffer[:result_size.value]) + + +def verify_signature(cert, encoded_blob): + # Verify parameters + verif_param = gdef.CRYPT_KEY_VERIFY_MESSAGE_PARA() + verif_param.cbSize = ctypes.sizeof(gdef.CRYPT_KEY_VERIFY_MESSAGE_PARA) + verif_param.dwMsgEncodingType = windows.crypto.DEFAULT_ENCODING + verif_param.hCryptProv = None + # The public key used + pubkey = cert.pCertInfo[0].SubjectPublicKeyInfo + # Preparing in/out buffer/size + signed_buffer = windows.utils.BUFFER(gdef.BYTE).from_buffer_copy(encoded_blob) + decoded_buffer = windows.utils.BUFFER(gdef.BYTE).from_buffer_copy(encoded_blob) + decoded_size = gdef.DWORD(len(decoded_buffer)) + winproxy.CryptVerifyMessageSignatureWithKey(verif_param, + pubkey, + signed_buffer, + len(encoded_blob), + decoded_buffer, + decoded_size) + return bytearray(decoded_buffer[:decoded_size.value]) \ No newline at end of file diff --git a/pythonmemorymodule/windows/dbgprint.py b/pythonmemorymodule/windows/dbgprint.py new file mode 100644 index 0000000..2aa2d97 --- /dev/null +++ b/pythonmemorymodule/windows/dbgprint.py @@ -0,0 +1,53 @@ +import os +import sys +import logging +import inspect + +options = {'active': False, 'cats': None} +# options = {'active': True, 'cats': ["HANDLE"]} + + +def get_stack_func_name(lvl): + info = inspect.stack()[lvl] + return info[0], info[3] + + +def do_dbgprint(msg, type=None): + if ("ALL" in options['cats']) or type.upper() in options['cats']: + frame, func = get_stack_func_name(2) + logger = logging.getLogger(frame.f_globals['__name__'] + ":" + func) + logger.debug(msg) + + +def do_nothing(*args, **kwargs): + return None + + +def parse_option(s): + if s[0] == "=": + s = s[1:] + if s: + cats = [x.upper().strip() for x in s.split('-')] + options['cats'] = cats + + formt = 'DBG|%(name)s|%(message)s' + logging.basicConfig(format=formt, level=logging.DEBUG) + +try: + if 'DBGPRINT' in os.environ: + parse_option(os.environ['DBGPRINT']) + dbgprint = do_dbgprint + elif any([opt.startswith("--DBGPRINT") for opt in sys.argv]): + dbgprint = do_dbgprint + option_str = [opt for opt in sys.argv if opt.startswith("--DBGPRINT")][0] + parse_option(option_str[len('--DBGPRINT'):]) + elif options["active"]: + formt = 'DBG|%(name)s|%(message)s' + logging.basicConfig(format=formt, level=logging.DEBUG) + dbgprint = do_dbgprint + else: + dbgprint = do_nothing +except Exception as e: + dbgprint = do_nothing + print("dbgprint Error: {0}({1})".format(type(e), e)) + x = type(e), e diff --git a/pythonmemorymodule/windows/debug/__init__.py b/pythonmemorymodule/windows/debug/__init__.py new file mode 100644 index 0000000..eb1adc1 --- /dev/null +++ b/pythonmemorymodule/windows/debug/__init__.py @@ -0,0 +1,5 @@ +from .debugger import Debugger, HXBreakpoint +from .symboldbg import SymbolDebugger +from .localdbg import LocalDebugger +from .breakpoints import * +from .breakpoints import * \ No newline at end of file diff --git a/pythonmemorymodule/windows/debug/breakpoints.py b/pythonmemorymodule/windows/debug/breakpoints.py new file mode 100644 index 0000000..1dc5d0b --- /dev/null +++ b/pythonmemorymodule/windows/debug/breakpoints.py @@ -0,0 +1,258 @@ +from collections import OrderedDict + +import windows +from windows.generated_def.winstructs import * +from windows.generated_def import windef +from windows.winobject.process import WinProcess, WinThread +from windows.pycompat import basestring + + +STANDARD_BP = "BP" +HARDWARE_EXEC_BP = "HXBP" +MEMORY_BREAKPOINT = "MEMBP" + +class Breakpoint(object): + """An standard (Int3) breakpoint (type == ``STANDARD_BP``)""" + type = STANDARD_BP # REAL BP + def __init__(self, addr): + self.addr = addr + + def apply_to_target(self, target): + return isinstance(target, WinProcess) + + def trigger(self, dbg, exception): + """Called when breakpoint is hit""" + pass + + +class ProxyBreakpoint(Breakpoint): + def __init__(self, target, addr, type): + self.target = target + self.addr = addr + self.type = type + + def trigger(self, dbg, exception): + return self.target(dbg, exception) + + +class HXBreakpoint(Breakpoint): + """An hardware-execution breakpoint (type == ``HARDWARE_EXEC_BP``)""" + type = HARDWARE_EXEC_BP + + def apply_to_target(self, target): + return isinstance(target, WinThread) + +class MemoryBreakpoint(Breakpoint): + """A memory breakpoint (type == ``MEMORY_BREAKPOINT``)""" + type = MEMORY_BREAKPOINT + DEFAULT_EVENTS = "RWX" + DEFAULT_SIZE = 0x1000 + def __init__(self, addr, size=None, events=None): + """``size``: the size of the memory breakpoint. + + ``events``: a string representing the events that interest the BP (any of "RWX")""" + super(MemoryBreakpoint, self).__init__(addr) + self.size = size if size is not None else self.DEFAULT_SIZE + events = events if events is not None else self.DEFAULT_EVENTS + self.events = set(events) + + def trigger(self, dbg, exception): + """Called when breakpoint is hit""" + pass + + +## Arguments Helper (need to move this elsewhere) +class X86ArgumentRetriever(object): + def get_arg(self, nb, proc, thread): + return proc.read_dword(thread.context.sp + 4 + (4 * nb)) + + def set_arg(self, nb, value, proc, thread): + return proc.write_dword(thread.context.sp + 4 + (4 * nb), value) + +class X64ArgumentRetriever(object): + REG_ARGS = ["Rcx", "Rdx", "R8", "R9"] + def get_arg(self, nb, proc, thread): + if nb < len(self.REG_ARGS): + return getattr(thread.context, self.REG_ARGS[nb]) + return proc.read_qword(thread.context.sp + 8 + (8 * nb)) + + def set_arg(self, nb, value, proc, thread): + if nb < len(self.REG_ARGS): + ctx = thread.context + setattr(ctx, self.REG_ARGS[nb], value) + return thread.set_context(ctx) + return proc.write_qword(thread.context.sp + 8 + (8 * nb), value) + +## Behaviour breakpoint ! +# class FunctionParamDumpBP(Breakpoint): +class FunctionParamDumpBPAbstract(object): + def __init__(self, addr=None, target=None): + if target is None: + try: + target = self.TARGET + except AttributeError as e: + raise ValueError("{0} bp without a must have a class attribute") + if addr is None: + addr = "{0}!{1}".format(target.target_dll, target.target_func) + super(FunctionParamDumpBPAbstract, self).__init__(addr) + self.target = target + self.target_args = target.prototype._argtypes_ + self.target_params = target.params + + def extract_arguments_32bits(self, cproc, cthread): + x = windows.debug.X86ArgumentRetriever() + res = OrderedDict() + for i, (name, type) in enumerate(zip(self.target_params, self.target_args)): + value = x.get_arg(i, cproc, cthread) + rt = windows.remotectypes.transform_type_to_remote32bits(type) + if issubclass(rt, windows.remotectypes.RemoteValue): + t = rt(value, cproc) + else: + t = rt(value) + # Will fail in py3.. + content = None + try: + content = t.contents + except Exception as e: + # contents will fail on basic type + # Not really an expected behavior + # But it works for now.. (and since a while) + pass + if content is None: + t = t.value + res[name[1]] = t + return res + + def extract_arguments_64bits(self, cproc, cthread): + x = windows.debug.X64ArgumentRetriever() + res = OrderedDict() + for i, (name, type) in enumerate(zip(self.target_params, self.target_args)): + value = x.get_arg(i, cproc, cthread) + rt = windows.remotectypes.transform_type_to_remote64bits(type) + if issubclass(rt, windows.remotectypes.RemoteValue): + t = rt(value, cproc) + else: + t = rt(value) + if not hasattr(t, "contents"): + try: + t = t.value + except AttributeError: + pass + res[name[1]] = t + return res + + def extract_arguments(self, cproc, cthread): + """Extracts the functions parameters in an :class:`OrderedDict`""" + if windows.current_process.bitness == 32: + return self.extract_arguments_32bits(cproc, cthread) + if cproc.bitness == 64: + return self.extract_arguments_64bits(cproc, cthread) + # SysWow process from a 64bits debugger, handle bitness with CS + if cthread.context.SegCs == windows.syswow64.CS_32bits: + return self.extract_arguments_32bits(cproc, cthread) + return self.extract_arguments_64bits(cproc, cthread) + + def arguments(self, dbg): + "TEST PARAM DICT" + if windows.current_process.bitness == 32: + extractor = windows.debug.X86ArgumentRetriever() + elif dbg.current_process.bitness == 64: + extractor = windows.debug.X64ArgumentRetriever() + elif dbg.current_thread.context.SegCs == windows.syswow64.CS_32bits: + extractor = windows.debug.X86ArgumentRetriever() + else: + extractor = windows.debug.X64ArgumentRetriever() + name_map = {name:i for i, name in enumerate(t[1] for t in self.target_params)} + return FunctionParameterProxy(extractor, name_map, self.target_args, dbg) + +class FunctionParameterProxy(object): + # TODO: clean this + put more of the logic in the X64ArgumentRetriever + def __init__(self, extractor, name_map, parameters_type, x): + self.extractor = extractor + self.name_map = name_map + self.parameters_type = parameters_type + self.x = x + + def __getitem__(self, x): + if isinstance(x, basestring): + x = self.name_map[x] + # import pdb;pdb.set_trace() + argtype = self.parameters_type[x] + value = self.extractor.get_arg(x, self.x.current_process, self.x.current_thread) + rt = windows.remotectypes.transform_type_to_remote32bits(argtype) + if issubclass(rt, windows.remotectypes.RemoteValue): + t = rt(value, self.x.current_process) + else: + t = rt(value) + if not hasattr(t, "contents"): + try: + t = t.value + except AttributeError: + pass + return t + + def __setitem__(self, x, value): + if isinstance(x, basestring): + x = self.name_map[x] + try: + ctypes.cast(value, PVOID) + except ctypes.ArgumentError: + pass + value = getattr(value, "value", value) + return self.extractor.set_arg(x, value, self.x.current_process, self.x.current_thread) + + + +class FunctionParamDumpBP(FunctionParamDumpBPAbstract, Breakpoint): + pass + +class FunctionParamDumpHXBP(FunctionParamDumpBPAbstract, HXBreakpoint): + pass + +class FunctionRetBP(Breakpoint): + def __init__(self, addr, initial_breakpoint): + super(FunctionRetBP, self).__init__(addr) + self.initial_breakpoint = initial_breakpoint + + def trigger(self, dbg, exc): + dbg.del_bp(self, targets=[dbg.current_process]) + return self.initial_breakpoint.ret_trigger(dbg, exc) + + +class FunctionCallBP(Breakpoint): + """A Breakpoint that allow to trigger at the return of a function""" + def break_on_ret(self, dbg, exception): + """Setup a breakpoint at the return address of the function, this breakpoint will call :func:`ret_trigger`""" + return_addr = self.get_ret_addr(dbg, exception) + dbg.add_bp(FunctionRetBP(return_addr, self), target=dbg.current_process) + + def get_ret_addr(self, dbg, exception): + """Get the return address of the current target, only valid in the trigger() function.""" + cproc = dbg.current_process + return dbg.current_process.read_ptr(dbg.current_thread.context.sp) + + + def ret_trigger(self, dbg, exception): + """Called at the return of the function if :func:`break_on_ret` was called""" + raise NotImplementedError("ret_trigger") + + +class FunctionBP(FunctionCallBP, FunctionParamDumpBP): + """A breakpoint that accepts a function from :mod:`windows.winproxy` and able to: + + - Extract the arguments of the functions + - Break at the return of the function + """ + +class PrintBP(Breakpoint): + def __init__(self, addr, format, func=None): + super(PrintBP, self).__init__(addr) + self.format = format + self.func = func + + def trigger(self, dbg, exc): + thread = dbg.current_thread + format_dict = {"dbg": dbg, "exc": exc, "proc": dbg.current_process, "thread": thread, "ctx": thread.context} + if self.func: + format_dict.update(self.func(**format_dict)) + print(self.format.format(**format_dict)) \ No newline at end of file diff --git a/pythonmemorymodule/windows/debug/debugger.py b/pythonmemorymodule/windows/debug/debugger.py new file mode 100644 index 0000000..82add3a --- /dev/null +++ b/pythonmemorymodule/windows/debug/debugger.py @@ -0,0 +1,1140 @@ +import os.path +from collections import defaultdict, namedtuple +from contextlib import contextmanager + +import windows +import windows.generated_def as gdef +import windows.winobject.exception as winexception + +import windows.native_exec.simple_x86 as x86 +import windows.native_exec.simple_x64 as x64 + +from windows.winobject.process import WinProcess, WinThread +from windows.dbgprint import dbgprint +from windows import winproxy +from windows.generated_def.winstructs import * +from windows.generated_def import windef +from .breakpoints import * + +#from windows.syswow64 import CS_32bits +from windows.winobject.exception import VectoredException + +from windows.pycompat import basestring + + +PAGE_SIZE = 0x1000 + +class DebuggerError(Exception): + pass + +class DEBUG_EVENT(DEBUG_EVENT): + KNOWN_EVENT_CODE = dict((x,x) for x in [EXCEPTION_DEBUG_EVENT, + CREATE_THREAD_DEBUG_EVENT, CREATE_PROCESS_DEBUG_EVENT, + EXIT_THREAD_DEBUG_EVENT, EXIT_PROCESS_DEBUG_EVENT, LOAD_DLL_DEBUG_EVENT, + UNLOAD_DLL_DEBUG_EVENT, OUTPUT_DEBUG_STRING_EVENT, RIP_EVENT]) + + @property + def code(self): + return self.KNOWN_EVENT_CODE.get(self.dwDebugEventCode, self.dwDebugEventCode) + +WatchedPage = namedtuple('WatchedPage', ["original_prot", "bps"]) + + +class Debugger(object): + """A debugger based on standard Win32 API. Handle : + + * Standard BP (int3) + * Hardware-Exec BP (DrX) + * Memory BP (virtual_protect) + """ + + def __init__(self, target): + """``target`` must be a debuggable :class:`WinProcess`.""" + self._init_dispatch_handlers() + self.target = target + self.is_target_launched = False + self.processes = {} + self.threads = {} + self.current_process = None + self.current_thread = None + self.first_bp_encoutered = False + # List of breakpoints + self.breakpoints = {} + self._pending_breakpoints = {} #Breakpoints to put in new process / threads + # Values rewritten by "\xcc" + self._memory_save = dict() + # Dict of {tid : {drx taken : BP}} + self._hardware_breakpoint = {} + # Breakpoints to reput.. + self._breakpoint_to_reput = {} + + self._module_by_process = {} + + self._pending_breakpoints_new = defaultdict(list) + + self._explicit_single_step = {} + + self._watched_pages = {}# Dict [page_modif] -> [mem bp on the page] + + # [start] -> (size, current_proctection, original_prot) + self._virtual_protected_memory = [] # List of memory-range modified by a MemBP + self._current_debug_event = None + + + @classmethod + def attach(cls, target): + """attach to ``target`` (must be a :class:`WinProcess`) + + :rtype: :class:`Debugger` + + .. note:: + + see :ref:`Debugger.attach sample `""" + winproxy.DebugActiveProcess(target.pid) + return cls(target) + + def detach(self, target=None): + """Detach from all debugged processes or process ``target``""" + if target is None: + targets = self.processes.values() + if not targets: + # We are not following any process + # maybe a attach/detach with Debugger.loop + # Just detach from the initial target + if self.target: + tpid = self.target.pid + self.target = None # Remove ref to process -> GC -> CloseHandle -> process is destroyed + windows.winproxy.DebugActiveProcessStop(tpid) + return + for proc in list(targets): + self.detach(proc) + del targets + return + if not isinstance(target, WinProcess): + raise ValueError("Detach accept only WinProcess") + + self.disable_all_memory_breakpoints(target) + for bp in list(self.breakpoints[target.pid].values()): + if not bp.apply_to_target(target): + target_threads = [t for t in target.threads if t.tid in self.threads] + bp_threads = [] + # TODO: clean API tu request HXBP on a thread + for t in target_threads: + t_bps = [pos for pos, hbp in self._hardware_breakpoint[t.tid].items() if hbp == bp] + if t_bps: + bp_threads.append(t) + self.del_bp(bp, bp_threads) + else: + self.del_bp(bp, [target]) + + for thread in [t for t in target.threads if t.tid in self.threads]: + del self._explicit_single_step[thread.tid] + del self._breakpoint_to_reput[thread.tid] + del self.threads[thread.tid] + ctx = thread.context + if ctx.EEFlags.TF: # Remove TRAPFlag before detaching (or it will lead to a crash) + ctx.EEFlags.TF = 0 + thread.set_context(ctx) + del self.processes[target.pid] + del self._watched_pages[target.pid] + del self._module_by_process[target.pid] + + if target is self.current_process: # Bug if CTRL+C and current_process changed ? + self._finish_debug_event(self._current_debug_event, DBG_CONTINUE) + self.current_process = None + self.current_thread = None + + if self.target and target.pid == self.target.pid: + self.target = None + windows.winproxy.DebugActiveProcessStop(target.pid) + + def _killed_in_action(self): + """Return ``True`` if current process have been detached by user callback""" + # Fix ? _handle_exit_process remove from processes but need a FinishDebugEvent + return self.current_process is None or self.current_process.pid not in self.processes + + @classmethod + def debug(cls, path, args=None, dwCreationFlags=0, show_windows=False): + """Create a process and debug it. + + :rtype: :class:`Debugger`""" + dwCreationFlags |= DEBUG_PROCESS + c = windows.utils.create_process(path, args=args, dwCreationFlags=dwCreationFlags, show_windows=show_windows) + return cls(c) + + def _init_dispatch_handlers(self): + dbg_evt_dispatch = {} + dbg_evt_dispatch[EXCEPTION_DEBUG_EVENT] = self._handle_exception + dbg_evt_dispatch[CREATE_THREAD_DEBUG_EVENT] = self._handle_create_thread + dbg_evt_dispatch[CREATE_PROCESS_DEBUG_EVENT] = self._handle_create_process + dbg_evt_dispatch[EXIT_PROCESS_DEBUG_EVENT] = self._handle_exit_process + dbg_evt_dispatch[EXIT_THREAD_DEBUG_EVENT] = self._handle_exit_thread + dbg_evt_dispatch[LOAD_DLL_DEBUG_EVENT] = self._handle_load_dll + dbg_evt_dispatch[UNLOAD_DLL_DEBUG_EVENT] = self._handle_unload_dll + dbg_evt_dispatch[RIP_EVENT] = self._handle_rip + dbg_evt_dispatch[OUTPUT_DEBUG_STRING_EVENT] = self._handle_output_debug_string + self._DebugEventCode_dispatch = dbg_evt_dispatch + + def _debug_event_generator(self): + while True: + debug_event = gdef.DEBUG_EVENT() + try: + winproxy.WaitForDebugEvent(debug_event) + except KeyboardInterrupt as e: + # So we will go out of the loop because of a Ctrl+c + # BP trigger will not be called. + # So AT LEAST quit loop with a coherent context + # Fix thread PC if we just triggered a BP + if (debug_event.dwDebugEventCode == gdef.EXCEPTION_DEBUG_EVENT and + debug_event.u.Exception.ExceptionRecord.ExceptionCode in [gdef.EXCEPTION_BREAKPOINT, gdef.STATUS_WX86_BREAKPOINT]): + # This is a breakpoint: One of ours ? + bp_addr = debug_event.u.Exception.ExceptionRecord.ExceptionAddress + if bp_addr in self.breakpoints[debug_event.dwProcessId]: + # Leave the thread in a coherent state for detach + # Should it be done in detach ? + # And just stock the "Interrupted debug_event" here ? + thread = self.threads[debug_event.dwThreadId] + ctx = thread.context + ctx.pc -= 1 + thread.set_context(ctx) + raise + finally: # If user Ctrl+c -> we could raise just at the return of WaitForDebugEvent + self._current_debug_event = debug_event + yield debug_event + + def _finish_debug_event(self, event, action): + if action not in [windef.DBG_CONTINUE, windef.DBG_EXCEPTION_NOT_HANDLED]: + raise ValueError('Unknow action : <0>'.format(action)) + winproxy.ContinueDebugEvent(event.dwProcessId, event.dwThreadId, action) + self._current_debug_event = None + + def _add_exe_to_module_list(self, create_process_event): + """Add the intial exe file described by create_process_event to the list of module in the process""" + exe_path = self.current_process.get_mapped_filename(create_process_event.lpBaseOfImage) + exe_name = os.path.basename(exe_path).lower() + if exe_name.endswith(".exe"): + exe_name = exe_name[:-len(".exe")] + #print("Exe name is {0}".format(exe_name)) + self._module_by_process[self.current_process.pid][exe_name] = windows.pe_parse.GetPEFile(create_process_event.lpBaseOfImage, self.current_process) + #self._setup_pending_breakpoints_load_dll(exe_name) # Already setup in _setup_pending_breakpoints_new_process + + + def _update_debugger_state(self, debug_event): + self.current_process = self.processes[debug_event.dwProcessId] + self.current_thread = self.threads[debug_event.dwThreadId] + + def _dispatch_debug_event(self, debug_event): + handler = self._DebugEventCode_dispatch.get(debug_event.dwDebugEventCode, self._handle_unknown_debug_event) + return handler(debug_event) + + def _dispatch_breakpoint(self, exception, addr): + bp = self.breakpoints[self.current_process.pid][addr] + with self.DisabledMemoryBreakpoint(): + x = bp.trigger(self, exception) + return x + + def _resolve(self, addr, target): + dbgprint("Resolving <{0}> in <{1}>".format(addr, target), "DBG") + if not isinstance(addr, basestring): + return addr + dll, api = addr.split("!") + dll = dll.lower() + modules = self._module_by_process[target.pid] + mod = None + if dll in modules: + mod = [modules[dll]] + if not mod: + return None + # TODO: optim exports are the same for whole system (32 vs 64 bits) + # I don't have to reparse the exports each time.. + # Try to interpret api as an int + try: + api_int = int(api, 0) + return mod[0].baseaddr + api_int + except ValueError: + pass + exports = mod[0].exports + if api not in exports: + dbgprint("Error resolving <{0}> in <{1}>".format(addr, target), "DBG") + raise ValueError("Unknown API <{0}> in DLL {1}".format(api, dll)) + target_addr = exports[api] + if isinstance(target_addr, basestring): + target_string = target_addr.replace(".", "!") + dbgprint("<{0}> is export proxy to <{1}>".format(addr, target_string), "DBG") + # Possible infinite loop ? + return self._resolve(target_string, target) + return target_addr + + def add_pending_breakpoint(self, bp, target): + self._pending_breakpoints_new[target].append(bp) + + def remove_pending_breakpoint(self, bp, target): + self._pending_breakpoints_new[target].remove(bp) + + def _setup_breakpoint(self, bp, target): + _setup_method = getattr(self, "_setup_breakpoint_" + bp.type) + if target is None: + if bp.type in [STANDARD_BP, MEMORY_BREAKPOINT]: #TODO: better.. + targets = self.processes.values() + else: + targets = self.threads.values() + else: + targets = [target] + for target in targets: + return _setup_method(bp, target) + + def _restore_breakpoints(self): + for bp in self._breakpoint_to_reput[self.current_thread.tid]: + if bp.type == HARDWARE_EXEC_BP: + raise NotImplementedError("Why is this here ? we use RF flags to pass HXBP") + restore = getattr(self, "_restore_breakpoint_" + bp.type) + restore(bp, self.current_process) + del self._breakpoint_to_reput[self.current_thread.tid][:] + return + + def _setup_breakpoint_BP(self, bp, target): + if not isinstance(target, WinProcess): + raise ValueError("Cannot setup STANDARD_BP on {0}".format(target)) + + addr = self._resolve(bp.addr, target) + + # raise DebuggerError("Could not set breakpoint {0} at <{1}>".format(bp, bp.addr)) + + if addr is None: + return False + dbgprint("Setting soft-BP at <{0:#x}> in <{1}>".format(addr, target), "DBG") + bp._addr = addr + self._memory_save[target.pid][addr] = target.read_memory(addr, 1) + self.breakpoints[target.pid][addr] = bp + target.write_memory(addr, "\xcc") + return True + + def _restore_breakpoint_BP(self, bp, target): + self._memory_save[target.pid][bp._addr] = target.read_memory(bp._addr, 1) + return target.write_memory(bp._addr, "\xcc") + + def _remove_breakpoint_BP(self, bp, target): + if not isinstance(target, WinProcess): + raise ValueError("SETUP STANDARD_BP on {0}".format(target)) + addr = self._resolve(bp.addr, target) + target.write_memory(addr, self._memory_save[target.pid][addr]) + del self._memory_save[target.pid][addr] + del self.breakpoints[target.pid][addr] + return True + + def _setup_breakpoint_HXBP(self, bp, target): + #print("Setup {0} into {1}".format(bp, target)) + if not isinstance(target, WinThread): + raise ValueError("SETUP HXBP_BP on {0}".format(target)) + # Todo: opti, not reparse exports for all thread of the same process.. + addr = self._resolve(bp.addr, target.owner) + if addr is None: + return False + x = self._hardware_breakpoint[target.tid] + if all(pos in x for pos in range(4)): + raise ValueError("Cannot put {0} in {1} (DRx full)".format(bp, target)) + empty_drx = str([pos for pos in range(4) if pos not in x][0]) + ctx = target.context + # Windows DebugCtl aliasing in DR7 + # See https://www.codeproject.com/Articles/517466/Last-branch-records-and-branch-tracing + ctx.EDr7.LE = 0 # bit 8 of DR7 represents bit 0 of DebugCtl. This is the LBR bit. (last branch record, will explain) + ctx.EDr7.GE = 0 # bit 9 of DR7 represents bit 1 of DebugCtl. This is the BTF bit. (single-step on branches) + setattr(ctx.EDr7, "L" + empty_drx, 1) + setattr(ctx, "Dr" + empty_drx, addr) + x[int(empty_drx)] = bp + target.set_context(ctx) + self.breakpoints[target.owner.pid][addr] = bp + dbgprint("Setting HXBP at <{0:#x}> in <{1}> (Dr{2})".format(addr, target, empty_drx), "DBG") + return True + + def _remove_breakpoint_HXBP(self, bp, target): + if not isinstance(target, WinThread): + raise ValueError("SETUP HXBP_BP on {0}".format(target)) + addr = self._resolve(bp.addr, target.owner) + bp_pos = [pos for pos, hbp in self._hardware_breakpoint[target.tid].items() if hbp == bp] + if not bp_pos: + raise ValueError("Asked to remove {0} from {1} but not present in hbp_list".format(bp, target)) + bp_pos_str = str(bp_pos[0]) + ctx = target.context + setattr(ctx.EDr7, "L" + bp_pos_str, 0) + setattr(ctx, "Dr" + bp_pos_str, 0) + target.set_context(ctx) + try: # TODO: vraiment faire les HXBP par thread ? ... + del self.breakpoints[target.owner.pid][addr] + except: + pass + return True + + ## MemBP internal helpers + def _compute_page_access_for_event(self, target, events): + if "R" in events: + return PAGE_NOACCESS + if set("WX").issubset(events): + return PAGE_READONLY + if events == set("W"): + return PAGE_EXECUTE_READ + if events == set("X"): + # Might have problem if DEP is not enabled + if target.bitness == 64: + has_DEP = True + elif windows.winproxy.is_implemented(windows.winproxy.GetProcessDEPPolicy): + has_DEP = DWORD() + permaned = LONG() + windows.winproxy.GetProcessDEPPolicy(target.handle, has_DEP, permaned) + has_DEP = has_DEP.value + else: + has_DEP = False + return PAGE_READWRITE if has_DEP else PAGE_NOACCESS + raise ValueError("Unexpected set of event for Membp: {0}".format(events)) + + + def _setup_breakpoint_MEMBP(self, bp, target): + addr = self._resolve(bp.addr, target) + bp._addr = addr + self._events = set(bp.events) + if addr is None: + return False + # Split in affected pages: + protection_for_bp = self._compute_page_access_for_event(target, self._events) + affected_pages = range((addr >> 12) << 12, addr + bp.size, PAGE_SIZE) + old_prot = DWORD() + cp_watch_page = self._watched_pages[self.current_process.pid] + for page_addr in affected_pages: + if page_addr not in cp_watch_page: + target.virtual_protect(page_addr, PAGE_SIZE, protection_for_bp, old_prot) + # Page with no other MemBP + cp_watch_page[page_addr] = WatchedPage(old_prot.value, [bp]) + else: + # Reduce the right of the page to the common need + cp_watch_page[page_addr].bps.append(bp) + full_page_events = set.union(*[bp.events for bp in cp_watch_page[page_addr].bps]) + protection_for_page = self._compute_page_access_for_event(target, full_page_events) + target.virtual_protect(page_addr, PAGE_SIZE, protection_for_page, None) + # TODO: watch for overlap with other MEM breakpoints + return True + + def _restore_breakpoint_MEMBP(self, bp, target): + (page_addr, page_prot) = bp._reput_page + return target.virtual_protect(page_addr, PAGE_SIZE, page_prot, None) + + + def _remove_breakpoint_MEMBP(self, bp, target): + affected_pages = range((bp._addr >> 12) << 12, bp._addr + bp.size, PAGE_SIZE) + vprot_begin = affected_pages[0] + vprot_size = PAGE_SIZE * len(affected_pages) + cp_watch_page = self._watched_pages[self.current_process.pid] + for page_addr in affected_pages: + cp_watch_page[page_addr].bps.remove(bp) + if not cp_watch_page[page_addr].bps: + try: + target.virtual_protect(page_addr, PAGE_SIZE, cp_watch_page[page_addr].original_prot, None) + except WindowsError as e: + # TODO + # What should we do if the virtual protect fail on a Non-Free page ? + # It may be because the page was dealloc + map as a view.. + # For now: keep the page as-is + if not target.query_memory(page_addr).State == MEM_FREE: + pass + # If page is MEM_FREE ignore the error + del cp_watch_page[page_addr] + else: + full_page_events = set.union(*[bp.events for bp in cp_watch_page[page_addr].bps]) + protection_for_page = self._compute_page_access_for_event(target, full_page_events) + try: + target.virtual_protect(page_addr, PAGE_SIZE, protection_for_page, None) + except Exception as e: + # if not target.query_memory(page_addr).State == MEM_FREE: + # raise + for bp in cp_watch_page[page_addr].bps: + bp.on_error(self, page_addr) + # TODO: handle case were it is mem-free ? + return True + + + def _setup_pending_breakpoints_new_process(self, new_process): + for bp in self._pending_breakpoints_new[None]: + if bp.apply_to_target(new_process): #BP for thread or process ? + _setup_method = getattr(self, "_setup_breakpoint_" + bp.type) + _setup_method(bp, new_process) + + for bp in list(self._pending_breakpoints_new[new_process.pid]): + if bp.apply_to_target(new_process): + _setup_method = getattr(self, "_setup_breakpoint_" + bp.type) + if _setup_method(bp, new_process): + self._pending_breakpoints_new[new_process.pid].remove(bp) + + def _setup_pending_breakpoints_new_thread(self, new_thread): + for bp in self._pending_breakpoints_new[None]: + if bp.apply_to_target(new_thread): #BP for thread or process ? + _setup_method = getattr(self, "_setup_breakpoint_" + bp.type) + _setup_method(bp, new_thread) + + for bp in self._pending_breakpoints_new[new_thread.owner.pid]: + if bp.apply_to_target(new_thread): + _setup_method = getattr(self, "_setup_breakpoint_" + bp.type) + _setup_method(bp, new_thread) + + for bp in list(self._pending_breakpoints_new[new_thread.tid]): + _setup_method = getattr(self, "_setup_breakpoint_" + bp.type) + if _setup_method(bp, new_thread): + self._pending_breakpoints_new[new_thread.tid].remove(bp) + + + def _setup_pending_breakpoints_load_dll(self, dll_name): + for bp in self._pending_breakpoints_new[None]: + if isinstance(bp.addr, basestring): + target_dll = bp.addr.lower().split("!")[0] + # Cannot work AS-IS yet. Implement it ? + # if target_dll == "*" or target_dll == dll_name: + if target_dll == dll_name: + _setup_method = getattr(self, "_setup_breakpoint_" + bp.type) + if bp.apply_to_target(self.current_process): + _setup_method(bp, self.current_process) + else: + for t in [t for t in self.current_process.threads if t.tid in self.threads]: + _setup_method(bp, t) + + for bp in self._pending_breakpoints_new[self.current_process.pid]: + if isinstance(bp.addr, basestring): + target_dll = bp.addr.split("!")[0] + if target_dll == dll_name: + _setup_method = getattr(self, "_setup_breakpoint_" + bp.type) + _setup_method(bp, self.current_process) + + for thread in self.current_process.threads: + for bp in self._pending_breakpoints_new[thread.tid]: + if isinstance(bp.addr, basestring): + target_dll = bp.addr.split("!")[0] + if target_dll == dll_name: + _setup_method = getattr(self, "_setup_breakpoint_" + bp.type) + _setup_method(bp, self.thread) + + def _pass_breakpoint(self, addr): + process = self.current_process + thread = self.current_thread + process.write_memory(addr, self._memory_save[process.pid][addr]) + regs = thread.context + regs.EFlags |= (1 << 8) + #regs.pc -= 1 # Done in _handle_exception_breakpoint before dispatch + thread.set_context(regs) + bp = self.breakpoints[self.current_process.pid][addr] + self._breakpoint_to_reput[thread.tid].append(bp) #Register pending breakpoint for next single step + + def _pass_memory_breakpoint(self, bp, page_protect, fault_page): + cp = self.current_process + page_prot = DWORD() + cp.virtual_protect(fault_page, PAGE_SIZE, page_protect, page_prot) + thread = self.current_thread + ctx = thread.context + ctx.EEFlags.TF = 1 + thread.set_context(ctx) + bp._reput_page = (fault_page, page_prot.value) + self._breakpoint_to_reput[thread.tid].append(bp) + + # debug event handlers + def _handle_unknown_debug_event(self, debug_event): + raise NotImplementedError("dwDebugEventCode = {0}".format(debug_event.dwDebugEventCode)) + + + def _handle_exception_breakpoint(self, exception, excp_addr): + excp_bitness = self.get_exception_bitness(exception) + YOLO = False + if self.current_thread.context.EEFlags.TF: + dbgprint("Single step as begin of _handle_exception_breakpoint", "DBG") + # import pdb;pdb.set_trace() + YOLO = True + + # Sub-method _do_setup() ? + dbg_has_setup = None + if not self.first_bp_encoutered: + dbg_has_setup = not getattr(self.on_setup, "_abstract_on_setup_", False) + self.first_bp_encoutered = True + if dbg_has_setup: + with self.DisabledMemoryBreakpoint(): + continue_flag = self.on_setup() # Handle single-step here ? + # Check killed in action ? + # What if setup + BP object() ? + if excp_addr in self.breakpoints[self.current_process.pid]: + thread = self.current_thread + if self.current_process.bitness == 32 and excp_bitness == 64: + ctx = thread.context_syswow + else: + ctx = thread.context + ctx.pc -= 1 + if self.current_process.bitness == 32 and excp_bitness == 64: + thread.set_syswow_context(ctx) + else: + thread.set_context(ctx) + del thread + continue_flag = self._dispatch_breakpoint(exception, excp_addr) + if self._killed_in_action(): + return continue_flag + self._explicit_single_step[self.current_thread.tid] = self.current_thread.context.EEFlags.TF and not YOLO + if self._explicit_single_step[self.current_thread.tid]: + dbgprint("Someone ask for an explicit Single step", "DBG") + if excp_addr in self.breakpoints[self.current_process.pid]: + # Setup BP if not suppressed + self._pass_breakpoint(excp_addr) + return continue_flag + if dbg_has_setup: # setup() was called on this BP-event: no on_exception() + return continue_flag + with self.DisabledMemoryBreakpoint(): + return self.on_exception(exception) + + def _handle_exception_singlestep(self, exception, excp_addr): + if self.current_thread.tid in self._breakpoint_to_reput and self._breakpoint_to_reput[self.current_thread.tid]: + self._restore_breakpoints() + if self._explicit_single_step[self.current_thread.tid]: + with self.DisabledMemoryBreakpoint(): + self.on_single_step(exception) + if not self._killed_in_action(): + self._explicit_single_step[self.current_thread.tid] = self.current_thread.context.EEFlags.TF + if self._explicit_single_step[self.current_thread.tid]: + dbgprint("Someone ask for an explicit Single step - 7", "DBG") + return DBG_CONTINUE + elif excp_addr in self.breakpoints[self.current_process.pid]: + # Verif that's not a standard BP ? + bp = self.breakpoints[self.current_process.pid][excp_addr] + with self.DisabledMemoryBreakpoint(): + bp.trigger(self, exception) + if self._killed_in_action(): + return DBG_CONTINUE + ctx = self.current_thread.context + self._explicit_single_step[self.current_thread.tid] = ctx.EEFlags.TF + if self._explicit_single_step[self.current_thread.tid]: + dbgprint("Someone ask for an explicit Single step - 2", "DBG") + if excp_addr in self.breakpoints[self.current_process.pid]: + ctx.EEFlags.RF = 1 + self.current_thread.set_context(ctx) + return DBG_CONTINUE + elif self._explicit_single_step[self.current_thread.tid]: + with self.DisabledMemoryBreakpoint(): + continue_flag = self.on_single_step(exception) + if self._killed_in_action(): + return continue_flag + # Does not handle case where EEFlags.TF was by the debugge before trigering the exception + # Should set the flag explicitly in single_step ? and not just use EEFlags.TF ? + self._explicit_single_step[self.current_thread.tid] = self.current_thread.context.EEFlags.TF + if self._explicit_single_step[self.current_thread.tid]: + dbgprint("Someone ask for an explicit Single step - 3", "DBG") + return continue_flag + else: + with self.DisabledMemoryBreakpoint(): + continue_flag = self.on_exception(exception) + if self._killed_in_action(): + return continue_flag + # Does not handle case where EEFlags.TF was by the debugge before trigering the exception + # Should set the flag explicitly in single_step ? and not just use EEFlags.TF ? + self._explicit_single_step[self.current_thread.tid] = self.current_thread.context.EEFlags.TF + if self._explicit_single_step[self.current_thread.tid]: + dbgprint("Someone ask for an explicit Single step - 4", "DBG") + return continue_flag + + # === Testing PAGE_NOACCESS(0x1L) === + # exception: access violation reading 0x00470000 + # exception: access violation writing 0x00470000 + # === Testing PAGE_READONLY(0x2L) === + # exception: access violation writing 0x00470000 + # === Testing PAGE_READWRITE(0x4L) === + # === Testing PAGE_EXECUTE(0x10L) === + # exception: access violation writing 0x00470000 + # === Testing PAGE_EXECUTE_READ(0x20L) === + # exception: access violation writing 0x00470000 + # === Testing PAGE_EXECUTE_READWRITE(0x40L) === + + def _handle_exception_access_violation(self, exception, excp_addr): + READ = 0 + WRITE = 1 + EXEC = 2 + EVENT_STR = "RWX" + + fault_type = exception.ExceptionRecord.ExceptionInformation[0] + fault_addr = exception.ExceptionRecord.ExceptionInformation[1] + pc_addr = self.current_thread.context.pc + if fault_addr == pc_addr: + fault_type = EXEC + event = EVENT_STR[fault_type] + + fault_page = (fault_addr >> 12) << 12 + cp_watch_page = self._watched_pages[self.current_process.pid] + + mem_bp = self.get_memory_breakpoint_at(fault_addr, self.current_process) + if mem_bp is False: # No BP on this page + with self.DisabledMemoryBreakpoint(): + return self.on_exception(exception) + original_prot = cp_watch_page[fault_page].original_prot + if mem_bp is None or event not in mem_bp.events: # Page has MEMBP but None handle this address | event not asked by membp + # This hack is bad, find a BP on the page to restore original access.. + bp = cp_watch_page[fault_page].bps[-1] + self._pass_memory_breakpoint(bp, original_prot, fault_page) + return DBG_CONTINUE + + with self.DisabledMemoryBreakpoint(): + continue_flag = mem_bp.trigger(self, exception) + if self._killed_in_action(): + return continue_flag + self._explicit_single_step[self.current_thread.tid] = self.current_thread.context.EEFlags.TF + if self._explicit_single_step[self.current_thread.tid]: + dbgprint("Someone ask for an explicit Single step - 5", "DBG") + # If BP has not been removed in trigger, pas it + if fault_page in cp_watch_page and mem_bp in cp_watch_page[fault_page].bps: + self._pass_memory_breakpoint(mem_bp, original_prot, fault_page) + return continue_flag + + + # TODO: self._explicit_single_step setup by single_step() ? check at the end ? finally ? + def _handle_exception(self, debug_event): + """Handle EXCEPTION_DEBUG_EVENT""" + exception = debug_event.u.Exception + self._update_debugger_state(debug_event) + + if windows.current_process.bitness == 32: + exception.__class__ = winexception.EEXCEPTION_DEBUG_INFO32 + else: + exception.__class__ = winexception.EEXCEPTION_DEBUG_INFO64 + + excp_code = exception.ExceptionRecord.ExceptionCode + excp_addr = exception.ExceptionRecord.ExceptionAddress + if excp_code in [EXCEPTION_BREAKPOINT, STATUS_WX86_BREAKPOINT]: + dbgprint("Handle exception as breakpoint", "DBG") + return self._handle_exception_breakpoint(exception, excp_addr) + elif excp_code in [EXCEPTION_SINGLE_STEP, STATUS_WX86_SINGLE_STEP]: + dbgprint("Handle exception as single step", "DBG") + return self._handle_exception_singlestep(exception, excp_addr) + elif excp_code == EXCEPTION_ACCESS_VIOLATION: + dbgprint("Handle exception as access_violation", "DBG") + return self._handle_exception_access_violation(exception, excp_addr) + else: + with self.DisabledMemoryBreakpoint(): + dbgprint("Handle exception as on_exception", "DBG") + continue_flag = self.on_exception(exception) + if self._killed_in_action(): + return continue_flag + self._explicit_single_step[self.current_thread.tid] = self.current_thread.context.EEFlags.TF + if self._explicit_single_step[self.current_thread.tid]: + dbgprint("Someone ask for an explicit Single step - 6", "DBG") + return continue_flag + + + def _get_loaded_dll(self, load_dll): + name_sufix = "" + pe = windows.pe_parse.GetPEFile(load_dll.lpBaseOfDll, self.current_process) + if self.current_process.bitness == 32 and pe.bitness == 64: + name_sufix = "64" + + addr = None + if load_dll.lpImageName: + try: + addr = self.current_process.read_ptr(load_dll.lpImageName) + except: + pass + + if not addr: + pe = windows.pe_parse.GetPEFile(load_dll.lpBaseOfDll, self.current_process) + dll_name = pe.export_name + if not dll_name: + dll_name = os.path.basename(self.current_process.get_mapped_filename(load_dll.lpBaseOfDll)) + return dll_name + name_sufix + + if load_dll.fUnicode: + return self.current_process.read_wstring(addr) + name_sufix + return self.current_process.read_string(addr) + name_sufix + + def _handle_create_process(self, debug_event): + """Handle CREATE_PROCESS_DEBUG_EVENT""" + create_process = debug_event.u.CreateProcessInfo + # Duplicate handle, so garbage collection of the process/thread does not + # break the debug API invariant (those x_event handle are close by the debug API itself) + proc_handle = HANDLE() + thread_handle = HANDLE() + cp_handle = windows.current_process.handle + + winproxy.DuplicateHandle(cp_handle, create_process.hProcess, cp_handle, ctypes.byref(proc_handle), dwOptions=DUPLICATE_SAME_ACCESS) + winproxy.DuplicateHandle(cp_handle, create_process.hThread, cp_handle, ctypes.byref(thread_handle), dwOptions=DUPLICATE_SAME_ACCESS) + + dbgprint(" Got PROC handle {0:#x}".format(create_process.hProcess, self), "HANDLE") + dbgprint(" PROC handle duplicated: {0:#x}".format(proc_handle.value), "HANDLE") + + dbgprint(" Got THREAD handle {0:#x}".format(create_process.hThread, self), "HANDLE") + dbgprint(" THREAD handle duplicated: {0:#x}".format(thread_handle.value), "HANDLE") + + self.current_process = WinProcess._from_handle(proc_handle.value) + self.current_thread = WinThread._from_handle(thread_handle.value) + dbgprint("New process: {0}".format(self.current_process), "DBG") + + self.threads[self.current_thread.tid] = self.current_thread + self._explicit_single_step[self.current_thread.tid] = False + self._hardware_breakpoint[self.current_thread.tid] = {} + self._breakpoint_to_reput[self.current_thread.tid] = [] + self.processes[self.current_process.pid] = self.current_process + self._watched_pages[self.current_process.pid] = {} #defaultdict(list) + self.breakpoints[self.current_process.pid] = {} + self._memory_save[self.current_process.pid] = {} + self._module_by_process[self.current_process.pid] = {} + self._internal_on_create_process(create_process) # Allow hook for symbol-debugger + self._update_debugger_state(debug_event) + self._add_exe_to_module_list(create_process) + self._setup_pending_breakpoints_new_process(self.current_process) + self._setup_pending_breakpoints_new_thread(self.current_thread) + with self.DisabledMemoryBreakpoint(): + try: + return self.on_create_process(create_process) + finally: + if create_process.hFile: + winproxy.CloseHandle(create_process.hFile) + + def _handle_exit_process(self, debug_event): + """Handle EXIT_PROCESS_DEBUG_EVENT""" + self._update_debugger_state(debug_event) + exit_process = debug_event.u.ExitProcess + retvalue = self.on_exit_process(exit_process) + del self.threads[self.current_thread.tid] + del self._explicit_single_step[self.current_thread.tid] + del self._hardware_breakpoint[self.current_thread.tid] + del self._breakpoint_to_reput[self.current_thread.tid] + del self.processes[self.current_process.pid] + del self._watched_pages[self.current_process.pid] + del self._memory_save[self.current_process.pid] + del self._module_by_process[self.current_process.pid] + + cpid = self.current_process.pid + self.current_thread = None + self.current_process = None + + if self.target and cpid == self.target.pid: + self.target = None + return retvalue + + def _handle_create_thread(self, debug_event): + """Handle CREATE_THREAD_DEBUG_EVENT""" + create_thread = debug_event.u.CreateThread + # Duplicate handle, so garbage collection of the thread does not + # break the debug API invariant (those x_event handle are close by the debug API itself) + thread_handle = HANDLE() + cp_handle = windows.current_process.handle + winproxy.DuplicateHandle(cp_handle, create_thread.hThread, cp_handle, ctypes.byref(thread_handle), dwOptions=DUPLICATE_SAME_ACCESS) + new_thread = WinThread._from_handle(thread_handle.value) + self.threads[new_thread.tid] = new_thread + # The new thread is on the thread pool: we can now update the debugger state + self._update_debugger_state(debug_event) + self._explicit_single_step[self.current_thread.tid] = False + self._breakpoint_to_reput[self.current_thread.tid] = [] + self._hardware_breakpoint[self.current_thread.tid] = {} + self._setup_pending_breakpoints_new_thread(self.current_thread) + with self.DisabledMemoryBreakpoint(): + return self.on_create_thread(create_thread) + + + def _handle_exit_thread(self, debug_event): + """Handle EXIT_THREAD_DEBUG_EVENT""" + self._update_debugger_state(debug_event) + exit_thread = debug_event.u.ExitThread + with self.DisabledMemoryBreakpoint(): + retvalue = self.on_exit_thread(exit_thread) + del self.threads[self.current_thread.tid] + del self._hardware_breakpoint[self.current_thread.tid] + del self._explicit_single_step[self.current_thread.tid] + del self._breakpoint_to_reput[self.current_thread.tid] + return retvalue + + def _internal_on_create_process(self, create_process): + return None + + def _internal_on_load_dll(self, load_dll): + return None + + def _handle_load_dll(self, debug_event): + """Handle LOAD_DLL_DEBUG_EVENT""" + self._update_debugger_state(debug_event) + load_dll = debug_event.u.LoadDll + dll = self._get_loaded_dll(load_dll) + dll_name = os.path.basename(dll).lower() + if dll_name.endswith(".dll"): + dll_name = dll_name[:-4] + # Mais c'est debile.. + # Si j'ai ntdll et ntdll64: les deux vont avoir le meme nom.. + if dll_name.endswith(".dll64"): + dll_name = dll_name[:-6] + "64" # Crade.. + #print("Load {0} -> {1}".format(dll, dll_name)) + self._module_by_process[self.current_process.pid][dll_name] = windows.pe_parse.GetPEFile(load_dll.lpBaseOfDll, self.current_process) + self._internal_on_load_dll(load_dll) # Allow hook for symbol-debugger + self._setup_pending_breakpoints_load_dll(dll_name) + with self.DisabledMemoryBreakpoint(): + try: + return self.on_load_dll(load_dll) + finally: + if load_dll.hFile: + winproxy.CloseHandle(load_dll.hFile) + + def _handle_unload_dll(self, debug_event): + """Handle UNLOAD_DLL_DEBUG_EVENT""" + self._update_debugger_state(debug_event) + unload_dll = debug_event.u.UnloadDll + with self.DisabledMemoryBreakpoint(): + return self.on_unload_dll(unload_dll) + + def _handle_output_debug_string(self, debug_event): + """Handle OUTPUT_DEBUG_STRING_EVENT""" + self._update_debugger_state(debug_event) + debug_string = debug_event.u.DebugString + with self.DisabledMemoryBreakpoint(): + return self.on_output_debug_string(debug_string) + + def _handle_rip(self, debug_event): + """Handle RIP_EVENT""" + self._update_debugger_state(debug_event) + rip_info = debug_event.u.RipInfo + with self.DisabledMemoryBreakpoint(): + return self.on_rip(rip_info) + + ## Public API + def loop(self): + """Debugging loop: handle event / dispatch to breakpoint. Returns when all targets are dead/detached""" + for debug_event in self._debug_event_generator(): + dbg_continue_flag = self._dispatch_debug_event(debug_event) + if dbg_continue_flag is None: + dbg_continue_flag = DBG_CONTINUE + if debug_event.dwDebugEventCode == EXIT_PROCESS_DEBUG_EVENT or not self._killed_in_action(): + #if not self._killed_in_action(): + # should we always _finish_debug_event even if process was killed ? + # rhaaa _killed_in_action is a REALLY bad name, it's not killed, it's detached + # TODO: FIXME + self._finish_debug_event(debug_event, dbg_continue_flag) + if not self.processes: + break + + def add_bp(self, bp, addr=None, type=None, target=None): + """Add a breakpoint, bp can be: + + * a :class:`Breakpoint` (addr and type must be ``None``) + * any callable (addr and type must NOT be ``None``) (NON-TESTED) + + If the ``bp`` type is ``STANDARD_BP`` or ``MEMORY_BREAKPOINT``, target can be ``None`` (all targets) or a process. + + If the ``bp`` type is ``HARDWARE_EXEC_BP``, target can be ``None`` (all targets), a process or a thread. + """ + if getattr(bp, "addr", None) is None: + if addr is None or type is None: + raise ValueError("SUCK YOUR NONE") + bp = ProxyBreakpoint(bp, addr, type) + else: + if addr is not None or type is not None: + raise ValueError("Given by parameters but BP object have them") + del addr + del type + + if target is None: + # Need to add it to all other breakpoint + self.add_pending_breakpoint(bp, None) + elif target is not None: + # Check that targets are accepted + if target not in list(self.processes.values()) + list(self.threads.values()): + # if target == self.target: # Original target (that have not been lauched yet) + return self.add_pending_breakpoint(bp, target) + # else: + # raise ValueError("Unknown target {0}".format(target)) + return self._setup_breakpoint(bp, target) + + def del_bp(self, bp, targets=None): + """Delete a breakpoint, if targets is ``None``: delete it from all targets""" + original_target = targets + _remove_method = getattr(self, "_remove_breakpoint_" + bp.type) + if targets is None: + if bp.type in [STANDARD_BP, MEMORY_BREAKPOINT]: #TODO: better.. + targets = self.processes.values() + else: + targets = self.threads.values() + for target in targets: + _remove_method(bp, target) + if original_target is None: + return self.remove_pending_breakpoint(bp, original_target) + + def single_step(self): + """Make the ``current_thread`` ``single_step``. ``Debugger.on_single_step`` will be called after that""" + t = self.current_thread + ctx = t.context + ctx.EEFlags.TF = 1 + t.set_context(ctx) + + ## Memory Breakpoint helper + def get_memory_breakpoint_at(self, addr, process=None): + """Get the memory breakpoint that handle ``addr`` + + Return values are: + + * ``False`` if the page has no memory breakpoint (real fault) + * ``None`` if the page as memBP but None handle ``addr`` + * ``bp`` the MemBP that handle ``addr`` + """ + if process is None: + process = self.current_process + + fault_page = (addr >> 12) << 12 + if fault_page not in self._watched_pages[process.pid]: + return False + + for bp in self._watched_pages[process.pid][fault_page].bps: + if bp._addr <= addr < bp._addr + bp.size: + return bp + return None + + def disable_all_memory_breakpoints(self, target=None): + """Restore all pages to their original access rights. + If target is ``None``, use ``current_process`` + + :return: a mapping of all disabled breakpoints that must be passed to :func:`restore_all_memory_breakpoints`""" + if target is None: + target = self.current_process + res = {} + cp_watch_page = self._watched_pages[target.pid] + page_protection = DWORD() + for page_addr, watched_page in cp_watch_page.items(): + try: + target.virtual_protect(page_addr, PAGE_SIZE, watched_page.original_prot, page_protection) + except WindowsError as e: + # Check if page have been unmapped + # print("disable_all_memory_breakpoints failed on page {0:#x} in state {1:#x}".format(page_addr, target.query_memory(page_addr).State)) + # if not target.query_memory(page_addr).State == MEM_FREE: + # import pdb;pdb.set_trace() + # raise + # If page have been unmap, warn the concerned Breakpoints. + for bp in watched_page.bps: + # TODO: Document + bp.on_error(self, page_addr) + res[page_addr] = page_protection.value + return res + + + def restore_all_memory_breakpoints(self, data, target=None): + """Re-setup all memory breakpoints, affecting pages access rights. + If target is ``None``, use ``current_process`` + + ``data`` is the result of the corresponding call to :func:`disable_all_memory_breakpoints`""" + if target is None: + target = self.current_process + for page_addr, protection in data.items(): + # Prevent restoring deleted breakpoints + if page_addr in self._watched_pages[target.pid]: + target.virtual_protect(page_addr, PAGE_SIZE, protection, None) + return + + @contextmanager + def DisabledMemoryBreakpoint(self, target=None): + """A context-manager that disable all memory breakpoints and restore them on exit""" + data = self.disable_all_memory_breakpoints(target) + try: + yield + finally: + if not self._killed_in_action(): + self.restore_all_memory_breakpoints(data, target) + + def get_exception_bitness(self, exc): + """Return the bitness in which the exception occured. + Useful when debugingg a 32b process from a 64bits one + + :return: :class:`int` -- 32 or 64""" + if windows.current_process.bitness == 32: + return 32 + if exc.ExceptionRecord.ExceptionCode in [STATUS_WX86_BREAKPOINT, STATUS_WX86_SINGLE_STEP]: + return 32 + return 64 + + @staticmethod + def kill_on_exit(choice): + """If set to True(default in Windows) will kill all attached process on thread exit. + Otherwise, the thread detaches from all processes being debugged on exit. + + See: https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-debugsetprocesskillonexit + """ + return windows.winproxy.DebugSetProcessKillOnExit(choice) + + # Public callback + def on_setup(self): + """Called on the first breakpoint event occuring in the debugger. + This callback allow to setup hook / interact with the debugee when ready: + + - If :func:`on_setup` is overriden by a subclass it will be called and :func:`on_exception` will NOT be called for this event (first BP). + - If :func:`on_setup` is not defined the first BP will trigger an :func:`on_exception`. + + .. note:: + + see sample :ref:`sample_debugger_on_setup` + + """ + return None + + # Help detect if on_setup was override + on_setup._abstract_on_setup_ = True + + + def on_exception(self, exception): + """Called on exception event other that known breakpoint or requested single step. ``exception`` is one of the following type: + + * :class:`windows.winobject.exception.EEXCEPTION_DEBUG_INFO32` + * :class:`windows.winobject.exception.EEXCEPTION_DEBUG_INFO64` + + The default behaviour is to return ``DBG_CONTINUE`` for the known exception code + and ``DBG_EXCEPTION_NOT_HANDLED`` else + """ + dbgprint("Exception: {0} at ".format(exception.ExceptionRecord.ExceptionCode, exception.ExceptionRecord.ExceptionAddress), "DBG") + if not exception.ExceptionRecord.ExceptionCode in winexception.exception_name_by_value: + return DBG_EXCEPTION_NOT_HANDLED + return DBG_CONTINUE + + def on_single_step(self, exception): + """Called on requested single step ``exception`` is one of the following type: + + * :class:`windows.winobject.exception.EEXCEPTION_DEBUG_INFO32` + * :class:`windows.winobject.exception.EEXCEPTION_DEBUG_INFO64` + + There is no default implementation, if you use ``Debugger.single_step()`` you should implement ``on_single_step`` + """ + raise NotImplementedError("Debugger that explicitly single step should implement ") + + def on_create_process(self, create_process): + """Called on create_process event + + :param CREATE_PROCESS_DEBUG_INFO create_process:""" + pass + + def on_exit_process(self, exit_process): + """Called on exit_process event + + :param EXIT_PROCESS_DEBUG_INFO exit_process:""" + pass + + def on_create_thread(self, create_thread): + """Called on create_thread event + + :param CREATE_THREAD_DEBUG_INFO create_thread:""" + pass + + def on_exit_thread(self, exit_thread): + """Called on exit_thread event + + :param EXIT_THREAD_DEBUG_INFO exit_thread:""" + pass + + def on_load_dll(self, load_dll): + """Called on load_dll event + + :param LOAD_DLL_DEBUG_INFO load_dll:""" + pass + + def on_unload_dll(self, unload_dll): + """Called on unload_dll event + + :param UNLOAD_DLL_DEBUG_INFO unload_dll:""" + pass + + def on_output_debug_string(self, debug_string): + """Called on debug_string event + + :param OUTPUT_DEBUG_STRING_INFO debug_string:""" + pass + + def on_rip(self, rip_info): + """Called on rip_info event + + :param RIP_INFO rip_info:""" + pass \ No newline at end of file diff --git a/pythonmemorymodule/windows/debug/localdbg.py b/pythonmemorymodule/windows/debug/localdbg.py new file mode 100644 index 0000000..fe2ee23 --- /dev/null +++ b/pythonmemorymodule/windows/debug/localdbg.py @@ -0,0 +1,305 @@ +from collections import defaultdict +from contextlib import contextmanager + +import windows +import windows.winobject.exception as winexception + +from windows import winproxy +from windows.generated_def import windef +from windows.generated_def.winstructs import * +from .breakpoints import * + +class FakeDebuggerCurrentThread(object): + """A pseudo thread representing the current thread at exception time""" + def __init__(self, dbg): + self.dbg = dbg + + @property + def tid(self): + return windows.current_thread.tid + + @property + def context(self): + """!!! This context in-place modification will be effective without set_context""" + return self.dbg.get_exception_context() + + def set_context(self, context): + # The context returned by 'self.context' already modify the return context in place.. + pass + +class LocalDebugger(object): + """A debugger interface around :func:`AddVectoredExceptionHandler`. + + Handle: + + * Standard BP (int3) + * Hardware-Exec BP (DrX) + """ + + def __init__(self): + self.breakpoints = {} + self._memory_save = {} + self._reput_breakpoint = {} + self._hxbp_breakpoint = defaultdict(dict) + + self.callback_vectored = winexception.VectoredException(self.callback) + winproxy.AddVectoredExceptionHandler(0, self.callback_vectored) + self.setup_hxbp_callback_vectored = winexception.VectoredException(self.setup_hxbp_callback) + self.hxbp_info = None + self.code = windows.native_exec.create_function(b"\xcc\xc3", [PVOID]) + self.veh_depth = 0 + self.current_exception = None + self.exceptions_stack = [None] + self.current_process = windows.current_process + self.current_thread = FakeDebuggerCurrentThread(self) + + @contextmanager + def NewCurrentException(self, exc): + try: + self.exceptions_stack.append(exc) + self.current_exception = exc + self.veh_depth += 1 + yield exc + finally: + self.exceptions_stack.pop() + self.current_exception = self.exceptions_stack[-1] + self.veh_depth -= 1 + + def get_exception_code(self): + """Return ExceptionCode of current exception""" + return self.current_exception[0].ExceptionRecord[0].ExceptionCode + + def get_exception_context(self): + """Return context of current exception""" + return self.current_exception[0].ContextRecord[0] + + def single_step(self): + """Make the current thread to single step""" + self.get_exception_context().EEFlags.TF = 1 + return windef.EXCEPTION_CONTINUE_EXECUTION + + def _pass_breakpoint(self, addr, single_step): + with windows.utils.VirtualProtected(addr, 1, PAGE_EXECUTE_READWRITE): + windows.current_process.write_memory(addr, self._memory_save[addr]) + self._reput_breakpoint[windows.current_thread.tid] = self.breakpoints[addr], single_step + return self.single_step() + + def _local_resolve(self, addr): + if not isinstance(addr, basestring): + return addr + dll, api = addr.split("!") + dll = dll.lower() + modules = {m.name[:-len(".dll")] if m.name.endswith(".dll") else m.name : m for m in windows.current_process.peb.modules} + mod = None + if dll in modules: + mod = [modules[dll]] + if not mod: + return None + # TODO: optim exports are the same for whole system (32 vs 64 bits) + # I don't have to reparse the exports each time.. + # Try to interpret api as an int + try: + api_int = int(api, 0) + return mod[0].baseaddr + api_int + except ValueError: + pass + exports = mod[0].pe.exports + if api not in exports: + dbgprint("Error resolving <{0}> in local process".format(addr, target), "DBG") + raise ValueError("Unknown API <{0}> in DLL {1}".format(api, dll)) + return exports[api] + + def callback(self, exc): + with self.NewCurrentException(exc): + return self.handle_exception(exc) + + def handle_exception(self, exc): + exp_code = self.get_exception_code() + context = self.get_exception_context() + exp_addr = context.pc + if exp_code == EXCEPTION_BREAKPOINT and exp_addr in self.breakpoints: + res = self.breakpoints[exp_addr].trigger(self, exc) + single_step = self.get_exception_context().EEFlags.TF # single step activated by breakpoint + if exp_addr in self.breakpoints: # Breakpoint deleted itself ? + return self._pass_breakpoint(exp_addr, single_step) + return EXCEPTION_CONTINUE_EXECUTION + + if exp_code == EXCEPTION_SINGLE_STEP and windows.current_thread.tid in self._reput_breakpoint: + bp, single_step = self._reput_breakpoint[windows.current_thread.tid] + self._memory_save[bp._addr] = windows.current_process.read_memory(bp._addr, 1) + with windows.utils.VirtualProtected(bp._addr, 1, PAGE_EXECUTE_READWRITE): + windows.current_process.write_memory(bp._addr, b"\xcc") + del self._reput_breakpoint[windows.current_thread.tid] + if single_step: + return self.on_exception(exc) + return windef.EXCEPTION_CONTINUE_EXECUTION + elif exp_code == EXCEPTION_SINGLE_STEP and exp_addr in self._hxbp_breakpoint[windows.current_thread.tid]: + res = self._hxbp_breakpoint[windows.current_thread.tid][exp_addr].trigger(self, exc) + context.EEFlags.RF = 1 + return EXCEPTION_CONTINUE_EXECUTION + return self.on_exception(exc) + + def on_exception(self, exc): + """Called on exception""" + if not self.get_exception_code() in winexception.exception_name_by_value: + return windef.EXCEPTION_CONTINUE_SEARCH + return windef.EXCEPTION_CONTINUE_EXECUTION + + def del_bp(self, bp, targets=None): + """Delete a breakpoint""" + # TODO: check targets.. + if bp.type == STANDARD_BP: + with windows.utils.VirtualProtected(bp.addr, 1, PAGE_EXECUTE_READWRITE): + windows.current_process.write_memory(bp.addr, self._memory_save[bp.addr]) + del self._memory_save[bp.addr] + del self.breakpoints[bp.addr] + return + if bp.type == HARDWARE_EXEC_BP: + threads_by_tid = {t.tid: t for t in windows.current_process.threads} + for tid in self._hxbp_breakpoint: + if bp.addr in self._hxbp_breakpoint[tid] and self._hxbp_breakpoint[tid][bp.addr] == bp: + if tid == windows.current_thread.tid: + self.remove_hxbp_self_thread(bp.addr) + else: + self.remove_hxbp_other_thread(bp.addr, threads_by_tid[tid]) + del self._hxbp_breakpoint[tid][bp.addr] + return + raise NotImplementedError("Unknow BP type {0}".format(bp.type)) + + def add_bp(self, bp, target=None): + """Add a breakpoint, bp is a "class:`Breakpoint` + + If the ``bp`` type is ``STANDARD_BP``, target must be None. + + If the ``bp`` type is ``HARDWARE_EXEC_BP``, target can be None (all threads), or some threads of the process + """ + if bp.type == HARDWARE_EXEC_BP: + return self.add_bp_hxbp(bp, target) + if bp.type != STANDARD_BP: + raise NotImplementedError("Unknow BP type {0}".format(bp.type)) + if target not in [None, windows.current_process]: + raise ValueError("LocalDebugger: STANDARD_BP doest not support targets {0}".format(targets)) + addr = self._local_resolve(bp.addr) + bp._addr = addr + self.breakpoints[addr] = bp + self._memory_save[addr] = windows.current_process.read_memory(addr, 1) + with windows.utils.VirtualProtected(addr, 1, PAGE_EXECUTE_READWRITE): + windows.current_process.write_memory(addr, b"\xcc") + return + + def add_bp_hxbp(self, bp, targets=None): + if bp.type != HARDWARE_EXEC_BP: + raise NotImplementedError("Add non standard-BP in LocalDebugger") + if targets is None: + targets = windows.current_process.threads + for thread in targets: + if thread.owner.pid != windows.current_process.pid: + raise ValueError("Cannot add HXBP to target in remote process {0}".format(thread)) + if thread.tid == windows.current_thread.tid: + self.setup_hxbp_self_thread(bp.addr) + else: + self.setup_hxbp_other_thread(bp.addr, thread) + self._hxbp_breakpoint[thread.tid][bp.addr] = bp + + def setup_hxbp_callback(self, exc): + with self.NewCurrentException(exc): + exp_code = self.get_exception_code() + if exp_code != windef.EXCEPTION_BREAKPOINT: + return windef.EXCEPTION_CONTINUE_SEARCH + context = self.get_exception_context() + exp_addr = context.pc + hxbp_used = self.setup_hxbp_in_context(context, self.data) + windows.current_process.write_memory(exp_addr, b"\x90") + # Raising in the VEH is a bad idea.. + # So better give the information to triggerer.. + if hxbp_used is not None: + self.get_exception_context().func_result = exp_addr + else: + self.get_exception_context().func_result = 0 + return windef.EXCEPTION_CONTINUE_EXECUTION + + def remove_hxbp_callback(self, exc): + with self.NewCurrentException(exc): + exp_code = self.get_exception_code() + context = self.get_exception_context() + exp_addr = context.pc + hxbp_used = self.remove_hxbp_in_context(context, self.data) + windows.current_process.write_memory(exp_addr, b"\x90") + # Raising in the VEH is a bad idea.. + # So better give the information to triggerer.. + if hxbp_used is not None: + self.get_exception_context().Eax = exp_addr + else: + self.get_exception_context().Eax = 0 + return windef.EXCEPTION_CONTINUE_EXECUTION + + def setup_hxbp_in_context(self, context, addr): + for i in range(4): + is_used = getattr(context.EDr7, "L" + str(i)) + empty_drx = str(i) + if not is_used: + context.EDr7.GE = 1 + context.EDr7.LE = 1 + setattr(context.EDr7, "L" + empty_drx, 1) + setattr(context, "Dr" + empty_drx, addr) + return i + return None + + def remove_hxbp_in_context(self, context, addr): + for i in range(4): + target_drx = str(i) + is_used = getattr(context.EDr7, "L" + str(i)) + draddr = getattr(context, "Dr" + target_drx) + + if is_used and draddr == addr: + setattr(context.EDr7, "L" + target_drx, 0) + setattr(context, "Dr" + target_drx, 0) + return i + return None + + def setup_hxbp_self_thread(self, addr): + if self.current_exception is not None: + x = self.setup_hxbp_in_context(self.get_exception_context(), addr) + if x is None: + raise ValueError("Could not setup HXBP") + return + + self.data = addr + with winexception.VectoredExceptionHandler(1, self.setup_hxbp_callback): + x = self.code() + if x is None: + raise ValueError("Could not setup HXBP") + windows.current_process.write_memory(x, b"\xcc") + return + + def setup_hxbp_other_thread(self, addr, thread): + thread.suspend() + ctx = thread.context + x = self.setup_hxbp_in_context(ctx, addr) + if x is None: + raise ValueError("Could not setup HXBP in {0}".format(thread)) + thread.set_context(ctx) + thread.resume() + + def remove_hxbp_self_thread(self, addr): + if self.current_exception is not None: + x = self.remove_hxbp_in_context(self.get_exception_context(), addr) + if x is None: + raise ValueError("Could not setup HXBP") + return + self.data = addr + with winexception.VectoredExceptionHandler(1, self.remove_hxbp_callback): + x = self.code() + if x is None: + raise ValueError("Could not remove HXBP") + windows.current_process.write_memory(x, b"\xcc") + return + + def remove_hxbp_other_thread(self, addr, thread): + thread.suspend() + ctx = thread.context + x = self.remove_hxbp_in_context(ctx, addr) + if x is None: + raise ValueError("Could not setup HXBP in {0}".format(thread)) + thread.set_context(ctx) + thread.resume() \ No newline at end of file diff --git a/pythonmemorymodule/windows/debug/symboldbg.py b/pythonmemorymodule/windows/debug/symboldbg.py new file mode 100644 index 0000000..3774771 --- /dev/null +++ b/pythonmemorymodule/windows/debug/symboldbg.py @@ -0,0 +1,48 @@ +import windows +import windows.generated_def as gdef +from windows.pycompat import int_types + +from . import Debugger +from . import symbols + +class SymbolDebugger(Debugger): + """A debugger using the symbol API (hence PDB) for name resolution. + To use PDB, a correct version of dbghelp should be configured as well as ``_NT_SYMBOL_PATH``. + (See :ref:`debug_symbols_module`) + + This debugger add a ``current_resolver`` variable (A :class:`~windows.debug.symbols.ProcessSymbolHandler`) for the ``current_process``. + """ + def __init__(self, *args, **kwargs): + super(SymbolDebugger, self).__init__(*args, **kwargs) + self._resolvers = {} + + def _internal_on_load_dll(self, load_dll): + path = self._get_loaded_dll(load_dll) + # Path is used instead of name for naming the module (and can be set to whatever if using file handle) + x = self.current_resolver.load_module(load_dll.hFile, path=path, addr=load_dll.lpBaseOfDll) + + def _internal_on_create_process(self, create_process): + # Create and setup a symbol resolver for the new process + resolver = symbols.ProcessSymbolHandler(self.current_process) + self._resolvers[self.current_process.pid] = resolver + self.current_resolver = resolver + + def _update_debugger_state(self, debug_event): + super(SymbolDebugger, self)._update_debugger_state(debug_event) + self.current_resolver = self._resolvers[debug_event.dwProcessId] + + def _resolve(self, addr, target): + if isinstance(addr, int_types): + return addr + if "+" in addr: + symbol, deplacement = addr.split("+", 1) + deplacement = int(deplacement, 0) + else: + symbol = addr + deplacement = 0 + try: + return self.current_resolver[symbol].addr + deplacement + except WindowsError as e: + if not e.winerror in (gdef.ERROR_NOT_FOUND, gdef.ERROR_MOD_NOT_FOUND): + raise + return None \ No newline at end of file diff --git a/pythonmemorymodule/windows/debug/symbols.py b/pythonmemorymodule/windows/debug/symbols.py new file mode 100644 index 0000000..aa63107 --- /dev/null +++ b/pythonmemorymodule/windows/debug/symbols.py @@ -0,0 +1,744 @@ +import os.path +import ctypes +import copy +import itertools +from collections import namedtuple + +import windows +import windows.generated_def as gdef +from windows import winproxy +from windows.pycompat import basestring + +DEFAULT_DBG_OPTION = gdef.SYMOPT_DEFERRED_LOADS + gdef.SYMOPT_UNDNAME + + +def set_dbghelp_path(path): + """Set the path of the ``dbghelp.dll`` file to use. It allow to configure a different version of the DLL handling PDB downloading. + + If ``path`` is a directory, the final ``dbghelp.dll`` will be computed as + ``path\\dbghelp.dll``. + + This allow to use the same script transparently in both 32b & 64b python interpreters. + """ + loaded_modules = [m.name.lower() for m in windows.current_process.peb.modules] + if os.path.isdir(path): + path = os.path.join(path, str(windows.current_process.bitness), "dbghelp.dll") + if "dbghelp.dll" in loaded_modules: + raise ValueError("setup_dbghelp_path should be called before any dbghelp function") + # Change the DLL used by DbgHelpProxy + winproxy.DbgHelpProxy.APIDLL = path + return + +# Load symbol config from ENV if present +try: + env_dbghelp_path = os.environ["PFW_DBGHELP_PATH"] + # Setup the dbghelp path used by PFW + set_dbghelp_path(env_dbghelp_path) +except KeyError as e: + pass + + + +class SymbolInfoBase(object): + """Represent a Symbol. + This class in based on the class `SYMBOL_INFO `_ + with the handling on displacement embeded into it. + """ + # Init on ctypes struct is not always called + # resolver & displacement should be set manually + CHAR_TYPE = None + + def __init__(self, *args, **kwargs): + self.resolver = kwargs.get("resolver", None) + #: POUET POUET + self.displacement = kwargs.get("displacement", 0) #: POUET POUET + + + def as_type(self): + # assert self.Address == 0 ? + return SymbolType(self.Index, self.ModBase, self.resolver) + + @property + def name(self): + """The name of the symbol""" + if not self.NameLen: + return None + size = self.NameLen + addr = ctypes.addressof(self) + type(self).Name.offset + return (self.CHAR_TYPE * size).from_address(addr)[:] + + @property + def fullname(self): + """The fullname of the symbol in the windbg format ``mod!sym+displacement``""" + return str(self) + + @property + def addr(self): + """The address of the symbol""" + return self.Address + self.displacement + + @property + def start(self): + """The address of the start of the symbol + If the symbol include a displacement, it is not taken into account + """ + return self.Address + + @property # Fixed ? + def module(self): + """The module containing the symbol + + :type: :class:`SymbolModule` + """ + return self.resolver.get_module(self.ModBase) + + @property + def tag(self): + """The Tag of the module + + :type: :class:`~windows.generated_def.winstructs.SymTagEnum` + """ + return gdef.SymTagEnum.mapper[self.Tag] + + def __int__(self): + """An alias for ``addr``""" + return self.addr + + def __str__(self): + """The fullname of the symbol in the windbg format ``mod!sym+displacement``""" + if self.displacement: + return "{self.module.name}!{self.name}+{self.displacement:#x}".format(self=self) + return "{self.module.name}!{self.name}".format(self=self) + + def __repr__(self): + if self.displacement: + return '<{0} name="{1}" start={2:#x} displacement={3:#x} tag={4}>'.format(type(self).__name__, self.name, self.start, self.displacement, self.tag.name) + return '<{0} name="{1}" start={2:#x} tag={3}>'.format(type(self).__name__, self.name, self.start, self.tag.name) + + +class SymbolInfoA(gdef.SYMBOL_INFO, SymbolInfoBase): + """Represent a Symbol. + This class in based on the class `SYMBOL_INFO `_ + with the handling on displacement embeded into it.s + + Exemple: + + >>> sh = windows.debug.symbols.VirtualSymbolHandler() + >>> mod = sh.load_file(r"c:\windows\system32\kernelbase.dll") + >>> sym1 = sh["kernelbase!CreateFileW"] + >>> sym2 = sh[int(sym1) + 3] + >>> sym2 + + >>> hex(sym2.start) + '0x100f20b0L' + >>> hex(sym2.addr) + '0x100f20b3L' + >>> hex(sym2.displacement) + '0x3L' + >>> str(sym2) + 'kernelbase!CreateFileW+0x3' + """ + CHAR_TYPE = gdef.CHAR + +class SymbolInfoW(gdef.SYMBOL_INFOW, SymbolInfoBase): + CHAR_TYPE = gdef.WCHAR + +# We use the A Api in our code (for now) +SymbolInfo = SymbolInfoA + +class SymbolType(object): + def __init__(self, typeid, modbase, resolver): + # Inheritance ? + self.resolver = resolver + self._typeid = typeid # Kind of a handle. Different of typeid property. + self.modbase = modbase + + def _get_type_info(self, typeinfo, ires=None): + res = ires + if res is None: + res = TST_TYPE_RES_TYPE.get(typeinfo, gdef.DWORD)() + windows.winproxy.SymGetTypeInfo(self.resolver.handle, self.modbase, self._typeid, typeinfo, ctypes.byref(res)) + if ires is not None: + return ires + newres = res.value + if isinstance(res, gdef.LPWSTR): + windows.winproxy.LocalFree(res) + return newres + + @property + def name(self): + return self._get_type_info(gdef.TI_GET_SYMNAME) + + @property + def size(self): + return self._get_type_info(gdef.TI_GET_LENGTH) + + @property + def tag(self): + return self._get_type_info(gdef.TI_GET_SYMTAG) + + # Diff type/typeid ? + @property + def type(self): + return self.new_typeid(self._get_type_info(gdef.TI_GET_TYPE)) + + @property + def typeid(self): + return self.new_typeid(self._get_type_info(gdef.TI_GET_TYPEID)) + + @property + def basetype(self): + return gdef.BasicType.mapper[self._get_type_info(gdef.TI_GET_BASETYPE)] + + @property + def parent(self): + return self.new_typeid(self._get_type_info(gdef.TI_GET_CLASSPARENTID)) + + @property + def datakind(self): + return gdef.DataKind.mapper[self._get_type_info(gdef.TI_GET_DATAKIND)] + + @property + def udtkind(self): + return gdef.UdtKind.mapper[self._get_type_info(gdef.TI_GET_UDTKIND)] + + @property + def offset(self): + return self._get_type_info(gdef.TI_GET_OFFSET) + + @property + def nb_children(self): + return self._get_type_info(gdef.TI_GET_CHILDRENCOUNT) + + @property + def value(self): + return self._get_type_info(gdef.TI_GET_VALUE) + + @property + def children(self): + count = self.nb_children + class res_struct(ctypes.Structure): + _fields_ = [("Count", gdef.ULONG), ("Start", gdef.ULONG), ("Types", (gdef.ULONG * count))] + x = res_struct() + x.Count = count + x.Start = 0 + self._get_type_info(gdef.TI_FINDCHILDREN, x) + return [self.new_typeid(ch) for ch in x.Types] + + # Constructor + @classmethod + def from_symbol_info(cls, syminfo, resolver): + return cls(syminfo.TypeIndex, syminfo.ModBase, resolver) + + # Constructor + def new_typeid(self, newtypeid): + return type(self)(newtypeid, self.modbase, self.resolver) + + def __repr__(self): + if self.tag == gdef.SymTagBaseType: + return '<{0} {1!r}>'.format(type(self).__name__, self.basetype) + elif self.tag == gdef.SymTagPointerType: + target_type = self.type.name + return '<{0} PTR TO "{1}" tag={2}>'.format(type(self).__name__, target_type, self.tag) + return '<{0} name="{1}" tag={2}>'.format(type(self).__name__, self.name, self.tag) + + +class SymbolModule(gdef.IMAGEHLP_MODULE64): + """Represent a loaded symbol module + (see `MSDN IMAGEHLP_MODULE64 `_) + + .. note:: + + This represent a module in the ``symbol space`` for symbol resolution. + This can be completly virtual (particularly in the case of :class:`VirtualSymbolHandler` + """ + # Init on ctypes struct is not always called + # resolver should be set manually + def __init__(self, resolver): + self.resolver = resolver + + @property + def addr(self): + """The load address of the module""" + return self.BaseOfImage + + @property + def name(self): + """The name of the module""" + return self.ModuleName + + @property + def path(self): + """The full path and file name of the file from which symbols were loaded.""" + return self.LoadedImageName + + @property + def type(self): + """The type of module (:class:`~windows.generated_def.winstructs.SYM_TYPE`), + which can be one of: + + =========== ========================= + SymCoff COFF symbols. + SymCv CodeView symbols. + SymDeferred Symbol loading deferred. + SymDia DIA symbols. + SymExport Symbols generated from a DLL export table. + SymNone No symbols are loaded. + SymPdb PDB symbols. + SymSym .sym file. + SymVirtual The virtual module created by SymLoadModuleEx with SLMFLAG_VIRTUAL. + =========== ========================= + """ + return self.SymType + + @property + def pdb(self): + """The local path of the loaded PDB if present + + Exemple: + >>> sh = windows.debug.symbols.VirtualSymbolHandler() + >>> mod = sh.load_file(r"c:\windows\system32\kernelbase.dll") + >>> mod.pdb + 'd:\\symbols\\wkernelbase.pdb\\017FA9C5278235B7E6BFBA74A9A5AAD91\\wkernelbase.pdb' + """ + LoadedPdbName = self.LoadedPdbName + if not LoadedPdbName: + return None + return LoadedPdbName + + def __repr__(self): + pdb_basename = self.LoadedPdbName.split(b"\\")[-1] + return '<{0} name="{1}" type={2} pdb="{3}" addr={4:#x}>'.format(type(self).__name__, self.name, self.type.value.name, pdb_basename, self.addr) + + +# https://docs.microsoft.com/en-us/windows/win32/debug/symbol-handler-initialization +class SymbolHandler(object): + """Base class of symbol handler""" + + def __init__(self, handle, search_path=None, invade_process=False): + # https://docs.microsoft.com/en-us/windows/desktop/api/dbghelp/nf-dbghelp-syminitialize + # This value should be unique and nonzero, but need not be a process handle. + # be sure to use the correct handle. + self.handle = handle #: The handle of the symbol handler + if not engine.options_already_setup: + engine.set_options(DEFAULT_DBG_OPTION) + winproxy.SymInitialize(handle, search_path, invade_process) + + + def load_module(self, file_handle=None, path=None, name=None, addr=0, size=0, data=None, flags=0): + """Load a module at a given ``addr``. The module to load can be pass via a ``file_handle`` + or the direct ``path`` of the file to load. + + :return: :class:`SymbolModule` -- The loaded module + + .. note:: + + The logic of ``SymLoadModuleEx`` seems somewhat strange about the naming of the loaded module. + A custom module ``name`` is only taken into account if the file is passed via a File handle. + To make it more intuitive, if this function is call with a ``path`` and ``name`` and no ``file_handle``, + it will open the path and directly call ``SymLoadModuleEx`` with a file handle and a name. + """ + + # Is that a bug in SymLoadModuleEx ? + # To get a custom name for a module it use "path" + # So we need to use file_handle and set a custom path + # ! BUT it means we cannot get a custom name for a module where the path is not explicit and need to be searched + if name is not None and file_handle is None and os.path.exists(path): + try: + f = open(path) + file_handle = windows.utils.get_handle_from_file(f) + path = name + except Exception as e: + pass + # Expect a-string + path = windows.pycompat.raw_encode(path) + try: + load_addr = winproxy.SymLoadModuleEx(self.handle, file_handle, path, name, addr, size, data, flags) + except WindowsError as e: + # if e.winerror == 0: + # Already loaded ? + # What if someone try to load another PE at the same BaseOfDll ? + # return BaseOfDll + raise + return self.get_module(load_addr) + + def load_file(self, path, name=None, addr=0, size=0, data=None, flags=0): + """Load the module ``path`` at ``addr`` + + :return: :class:`SymbolModule` -- The loaded module + """ + return self.load_module(path=path, name=name, addr=addr, size=size, data=data, flags=flags) + + def unload(self, addr): + """Unload the module at ``addr``""" + return winproxy.SymUnloadModule64(self.handle, addr) + + + @staticmethod + @ctypes.WINFUNCTYPE(gdef.BOOL, gdef.PCSTR, gdef.DWORD64, ctypes.py_object) + def modules_aggregator(modname, modaddr, ctx): + ctx.append(modaddr) + return True + + @property + def modules(self): + """The list of loaded modules + + :return: [:class:`SymbolModule`] -- A list of modules + """ + res = [] + windows.winproxy.SymEnumerateModules64(self.handle, self.modules_aggregator, res) + return [self.get_module(addr) for addr in res] + + + def get_module(self, base): + modinfo = SymbolModule(self) + modinfo.SizeOfStruct = ctypes.sizeof(modinfo) + winproxy.SymGetModuleInfo64(self.handle, base, modinfo) + return modinfo + + def symbol_and_displacement_from_address(self, addr): + displacement = gdef.DWORD64() + max_len_size = 0x1000 + full_size = ctypes.sizeof(SymbolInfo) + (max_len_size - 1) + buff = windows.utils.BUFFER(SymbolInfo)(size=full_size) + sym = buff[0] + sym.SizeOfStruct = ctypes.sizeof(SymbolInfo) + sym.MaxNameLen = max_len_size + winproxy.SymFromAddr(self.handle, addr, displacement, buff) # SymFromAddrW ? + sym.resolver = self + sym.displacement = displacement.value + return sym + + + def symbol_from_name(self, name): + max_len_size = 0x1000 + full_size = ctypes.sizeof(SymbolInfo) + (max_len_size - 1) + buff = windows.utils.BUFFER(SymbolInfo)(size=full_size) + sym = buff[0] + sym.SizeOfStruct = ctypes.sizeof(SymbolInfo) + sym.MaxNameLen = max_len_size + # Expect a-string + name = windows.pycompat.raw_encode(name) + windows.winproxy.SymFromName(self.handle, name, buff) + sym.resolver = self + sym.displacement = 0 + return sym + + def resolve(self, name_or_addr): + """Resolve ``name_or_addr``. + + If its an int -> Return the :class:`SymbolInfo` at the address. + If its a string -> Return the :class:`SymbolInfo` corresponding to the symbol name + + :return: :class:`SymbolInfo` + + .. note:: + + ``__getitem__`` is an alias for ``resolve()`` + + Exemple: + + >>> sh = windows.debug.symbols.VirtualSymbolHandler() + >>> mod = sh.load_file(r"c:\windows\system32\kernelbase.dll") + >>> mod + + >>> sh.resolve("kernelbase!CreateFileInternal") + + >>> sh[0x100f2042] + + >>> str(sh[0x100f2042]) + 'kernelbase!ReadFile+0x162' + """ + # Only returns None if symbol is not Found ? + if isinstance(name_or_addr, windows.pycompat.anybuff): + return self.symbol_from_name(name_or_addr) + try: + return self.symbol_and_displacement_from_address(name_or_addr) + except WindowsError as e: + if e.winerror != gdef.ERROR_MOD_NOT_FOUND: + raise + # We could not resolve and address -> return None + return None + + __getitem__ = resolve + """Alias to resolve for simpler use""" + + @staticmethod + @ctypes.WINFUNCTYPE(gdef.BOOL, ctypes.POINTER(SymbolInfo), gdef.ULONG , ctypes.py_object) + def simple_aggregator(info, size, ctx): + sym = info[0] + fullsize = sym.SizeOfStruct + sym.NameLen + cpy = windows.utils.BUFFER(SymbolInfo)(size=fullsize) + ctypes.memmove(cpy, info, fullsize) + ctx.append(cpy[0]) + return True + + def search(self, mask, mod=0, tag=0, options=gdef.SYMSEARCH_ALLITEMS, callback=None): + """Search the symbols matching ``mask`` (``Windbg`` like). + + :return: [:class:`SymbolInfo`] -- A list of :class:`SymbolInfo` + + >>> sh = windows.debug.symbols.VirtualSymbolHandler() + >>> mod = sh.load_file(r"c:\windows\system32\kernelbase.dll") + >>> sh.search("kernelbase!CreateFile*") + [, + , + , + ...] + """ + res = [] + if callback is None: + callback = self.simple_aggregator + else: + callback = ctypes.WINFUNCTYPE(gdef.BOOL, ctypes.POINTER(SymbolInfo), gdef.ULONG , ctypes.py_object)(callback) + + addr = getattr(mod, "addr", mod) # Retrieve mod.addr, else us the value directly + # Expect A-string + mask = windows.pycompat.raw_encode(mask) + windows.winproxy.SymSearch(self.handle, gdef.DWORD64(addr), 0, tag, mask, 0, callback, res, options) + for sym in res: + sym.resolver = self + sym.displacement = 0 + return res + + def get_symbols(self, addr, callback=None): + res = [] + if callback is None: + callback = self.simple_aggregator + else: + callback = ctypes.WINFUNCTYPE(gdef.BOOL, ctypes.POINTER(SymbolInfo), gdef.ULONG , ctypes.py_object)(callback) + try: + windows.winproxy.SymEnumSymbolsForAddr(self.handle, addr, callback, res) + except WindowsError as e: + if e.winerror == gdef.ERROR_MOD_NOT_FOUND: + return [] + raise + + for sym in res: + sym.resolver = self + sym.displacement = 0 + return res + + # Type stuff + def get_type(self, name, mod=0): + max_len_size = 0x1000 + full_size = ctypes.sizeof(SymbolInfo) + (max_len_size - 1) + buff = windows.utils.BUFFER(SymbolInfo)(size=full_size) + buff[0].SizeOfStruct = ctypes.sizeof(SymbolInfo) + buff[0].MaxNameLen = max_len_size + windows.winproxy.SymGetTypeFromName(self.handle, mod, name, buff) + return SymbolType.from_symbol_info(buff[0], resolver=self) + + +# TODO: mets de l'huile pour w4kfu +class StackWalker(object): + def __init__(self, resolver, process=None, thread=None, context=None): + self.resolver = resolver + if process is None and thread is None: + raise ValueError("At least a process or thread must be provided") + if process is None: + process = thread.owner + self.process = process + self.thread = thread + self.context = context + if windows.current_process.bitness == 32 and process.bitness == 64: + raise NotImplementedError("StackWalking 64b does not seems to works from 32b process") + + def _stack_frame_generator(self): + ctx, machine = self._get_effective_context_and_machine() + frame = self._setup_initial_frame_from_context(ctx, machine) + thread_handle = self.thread.handle if self.thread else None + while True: + try: + windows.winproxy.StackWalkEx(machine, + # dbg.current_process.handle, + self.resolver.handle, + thread_handle, + # 0, + frame, + ctypes.byref(ctx), + None, + winproxy.resolve(winproxy.SymFunctionTableAccess64), + winproxy.resolve(winproxy.SymGetModuleBase64), + None, + 0) + except WindowsError as e: + if not e.winerror: + return # No_ERROR -> end of stack walking + raise + yield type(frame).from_buffer_copy(frame) # Make a copy ? + + def __iter__(self): + return self._stack_frame_generator() + + # Autorise to force the retrieving of 32b stack when code is currently on 64b code ? + def _get_effective_context_and_machine(self): + ctx = self.context or self.thread.context + if self.process.bitness == 32: + # Process is 32b, so the context is inevitably x86 + return (ctx, gdef.IMAGE_FILE_MACHINE_I386) + if windows.current_process.bitness == 32: + # If we are 32b, we will only be able to handle x86 stack + # ctx is obligatory a 32b one, as the case us32/target64 is handled + # in __init__ with a NotImplementedError + return (ctx, gdef.IMAGE_FILE_MACHINE_I386) + if self.process.bitness == 64: + # Process is 64b, so the context is inevitably x64 + return (ctx, gdef.IMAGE_FILE_MACHINE_AMD64) + # Thing get a little more complicated here :) + # We are a 64b process and target is 32b. + # So we must find-out if we are in 32 or 64b world at the moment. + # The context_syswow.SegCS give us the information + # The context32.SegCs would be always 32 + ctxsyswow = dbg.current_thread.context_syswow + if ctxsyswow.SegCs == gdef.CS_USER_32B: + return (ctx, gdef.IMAGE_FILE_MACHINE_I386) + return (ctxsyswow, gdef.IMAGE_FILE_MACHINE_AMD64) + + def _setup_initial_frame_from_context(self, ctx, machine): + frame = gdef.STACKFRAME_EX() + frame.AddrPC.Mode = gdef.AddrModeFlat + frame.AddrFrame.Mode = gdef.AddrModeFlat + frame.AddrStack.Mode = gdef.AddrModeFlat + frame.AddrPC.Offset = ctx.pc + frame.AddrStack.Offset = ctx.sp + if machine == gdef.IMAGE_FILE_MACHINE_I386: + frame.AddrFrame.Offset = ctx.Ebp + # Need RBP on 64b ? + return frame + + + + + + +class VirtualSymbolHandler(SymbolHandler): + """A SymbolHandler where its handle is not a valid process handle + Allow to create/resolve symbol in a 'virtual' process + But all API needing a real process handle will fail + """ + VIRTUAL_HANDLER_COUNTER = itertools.count(0x11223344) + def __init__(self, search_path=None): + handle = next(self.VIRTUAL_HANDLER_COUNTER) + super(VirtualSymbolHandler, self).__init__(handle, search_path, False) + + # The VirtualSymbolHandler is not based on an existing process + # So load() in its simplest for should just take the path of the file to load + load = SymbolHandler.load_file + """An alias for :func:`VirtualSymbolHandler.load_file`""" + + def refresh(self): + """Do nothing for a :class:`VirtualSymbolHandler`""" + return False + + +class ProcessSymbolHandler(SymbolHandler): + def __init__(self, process, search_path=None, invade_process=False): + super(ProcessSymbolHandler, self).__init__(process.handle, search_path, invade_process) + self.target = process + + # The ProcessSymbolHandler is based on an existing process + # So load() in its simplest form should be able to load the symbol for an existing + # module that is already loaded + # Question: should be able to load other module at other address ? + def load(self, name): + """Load the :class:`SymbolModule` associated with the loaded module ``name`` (as found in the PEB) + + :return: :class:`SymbolModule` + + Exemple: + + >>> sh = windows.debug.symbols.ProcessSymbolHandler(windows.test.pop_proc_64()) + + >>> sh + + >>> sh.load("kernelbase.dll") + + >>> sh["kernelbase!CreateProcessA"] + + """ + mods = [x for x in self.target.peb.modules if x.name == name] + if not mods: + raise ValueError("Could not find module <{0}>".format(name)) + assert len(mods) == 1 # Load all if multiple match ? + mod = mods[0] + return self.load_module(addr=mod.baseaddr, path=mod.fullname) + + def refresh(self): + """Update the list of loaded modules to match the modules present in the target process + + .. note:: + This function only call `SymRefreshModuleList `_ for now. + It seems that this function do not handle refreshing a 64b target from a 32b python + + Also, on a 32b target from a 64b python it seems to only load symbols for the 64b modules (ntdll + syswow dll) + + Exemple: + + >>> sh = windows.debug.symbols.ProcessSymbolHandler(windows.test.pop_proc_64()) + >>> sh.modules + [] + >>> sh.refresh() + 44 + >>> sh.modules + [, + , + , + , + ...] + """ + return windows.winproxy.SymRefreshModuleList(self.handle) + + + def stackwalk(self, ctx): + pass + + +class SymbolEngine(object): + """Represent the global symbol engine. Just a proxy to get/set global engine options + + Its instance can be accessed using ``windows.debug.symbols.engine`` + + Exemple: + + >>> windows.debug.symbols.engine.options + 6L + >>> windows.debug.symbols.engine.options = gdef.SYMOPT_UNDNAME + >>> windows.debug.symbols.engine.options + 2L + + """ + def __init__(self): + # use to now if we need to call the setup of options + # At the first DbgHelp call + self.options_already_setup = False + + def set_options(self, options): + self.options_already_setup = True + return windows.winproxy.SymSetOptions(options) + + def get_options(self): + return windows.winproxy.SymGetOptions() + + options = property(get_options, set_options) + """The options of the Symbol engine + (`see options `_) + + .. note:: + + Default options are: ``gdef.SYMOPT_DEFERRED_LOADS + gdef.SYMOPT_UNDNAME`` + """ + +engine = SymbolEngine() +"""The instance of the :class:`SymbolEngine`""" + + +TST_TYPE_RES_TYPE = { + gdef.TI_GET_SYMNAME: gdef.LPWSTR, + gdef.TI_GET_LENGTH: gdef.ULONG64, + gdef.TI_GET_ADDRESS: gdef.ULONG64, + gdef.TI_GTIEX_REQS_VALID: gdef.ULONG64, + gdef.TI_GET_SYMTAG: gdef.SymTagEnum, + gdef.TI_GET_VALUE: windows.com.Variant, +} diff --git a/pythonmemorymodule/windows/generated_def/__init__.py b/pythonmemorymodule/windows/generated_def/__init__.py new file mode 100644 index 0000000..af1f9a2 --- /dev/null +++ b/pythonmemorymodule/windows/generated_def/__init__.py @@ -0,0 +1,71 @@ +from . import windef +from . import winstructs + +def bitness(): + """Return 32 or 64""" + import platform + bits = platform.architecture()[0] + return int(bits[:2]) + +# Use windows.current_process.bitness ? need to fix problem of this imported before the creation of windows.current_process +if bitness() == 32: + winstructs.CONTEXT = winstructs.CONTEXT32 + winstructs.PCONTEXT = winstructs.PCONTEXT32 + winstructs.LPCONTEXT = winstructs.LPCONTEXT32 + + winstructs.EXCEPTION_POINTERS = winstructs.EXCEPTION_POINTERS32 + winstructs.PEXCEPTION_POINTERS = winstructs.PEXCEPTION_POINTERS32 + + winstructs.SYSTEM_MODULE = winstructs.SYSTEM_MODULE32 + winstructs.SYSTEM_MODULE_INFORMATION = winstructs.SYSTEM_MODULE_INFORMATION32 + + winstructs.PALPC_PORT_ATTRIBUTES = winstructs.PALPC_PORT_ATTRIBUTES32 + winstructs.ALPC_PORT_ATTRIBUTES = winstructs.ALPC_PORT_ATTRIBUTES32 + + winstructs.PORT_MESSAGE = winstructs.PORT_MESSAGE32 + winstructs.PPORT_MESSAGE = winstructs.PPORT_MESSAGE32 + + # CFGMGR32 + winstructs.IRQ_RESOURCE = winstructs.IRQ_RESOURCE_32 + + # Socket + windef.WSADATA = winstructs.WSADATA32 + windef.INVALID_SOCKET = windef.INVALID_SOCKET32 + + +else: + winstructs.CONTEXT = winstructs.CONTEXT64 + winstructs.PCONTEXT = winstructs.PCONTEXT64 + winstructs.LPCONTEXT = winstructs.LPCONTEXT64 + + winstructs.EXCEPTION_POINTERS = winstructs.EXCEPTION_POINTERS64 + winstructs.PEXCEPTION_POINTERS = winstructs.PEXCEPTION_POINTERS64 + + winstructs.SYSTEM_MODULE = winstructs.SYSTEM_MODULE64 + winstructs.SYSTEM_MODULE_INFORMATION = winstructs.SYSTEM_MODULE_INFORMATION64 + + winstructs.PALPC_PORT_ATTRIBUTES = winstructs.PALPC_PORT_ATTRIBUTES64 + winstructs.ALPC_PORT_ATTRIBUTES = winstructs.ALPC_PORT_ATTRIBUTES64 + + winstructs.PORT_MESSAGE = winstructs.PORT_MESSAGE64 + winstructs.PPORT_MESSAGE = winstructs.PPORT_MESSAGE64 + + # CFGMGR32 + winstructs.IRQ_RESOURCE = winstructs.IRQ_RESOURCE_64 + + # Socket + windef.WSADATA = winstructs.WSADATA64 + windef.INVALID_SOCKET = windef.INVALID_SOCKET64 + +from . import winfuncs +from . import windef +from . import interfaces + +# Fuck it +from .winstructs import * +from .winfuncs import * +from .windef import * +from .interfaces import * + + + diff --git a/pythonmemorymodule/windows/generated_def/auto_doc_tst.py b/pythonmemorymodule/windows/generated_def/auto_doc_tst.py new file mode 100644 index 0000000..613ae10 --- /dev/null +++ b/pythonmemorymodule/windows/generated_def/auto_doc_tst.py @@ -0,0 +1,22 @@ +def pretty_print_ctypes_type(t): + format = "{0}" + if issubclass(t, ctypes.Array): + format = "[{0}" + "* {0}]".format(t._length_) + t = t._type_ + + if issubclass(t, ctypes._Pointer): + format = format.format("Pointer({0})") + t = t._type_ + + if issubclass(t, ctypes.Structure): + return format.format(":class:`{0}`".format(t.__name__)) + return t + + +def autodoc_ctypes_struct(struct): + doc = ["fields:"] + for name, type in struct._fields_: + doc.append(" {0} -> {1}".format(name, pretty_print_ctypes_type(type))) + + struct.__doc__ = "\n\n".join(doc) + return struct \ No newline at end of file diff --git a/pythonmemorymodule/windows/generated_def/flag.py b/pythonmemorymodule/windows/generated_def/flag.py new file mode 100644 index 0000000..bbcf105 --- /dev/null +++ b/pythonmemorymodule/windows/generated_def/flag.py @@ -0,0 +1,74 @@ +import sys + +if sys.version_info.major >= 3: + long = int + + +class Flag(long): + def __new__(cls, name, value): + return super(Flag, cls).__new__(cls, value) + + def __init__(self, name, value): + self.name = name + + def __repr__(self): + return "{0}({1:#x})".format(self.name, self) + + # Custom __str__ removed for multiple reason + # Main one -> it breaks the json encoding of structure with flags :) + # Moving to a new politic -> if people want the name in a string use {x!r} + # The __str__ of security descriptor & guid will change soon as well :) + + # __str__ = __repr__ + + # Fix pickling with protocol 2 + def __getnewargs__(self, *args): + return self.name, long(self) + + +class StrFlag(str): + def __new__(cls, name, value): + if isinstance(value, cls): + return value + return super(StrFlag, cls).__new__(cls, value) + + def __init__(self, name, value): + self.name = name + + def __repr__(self): + return "{0}({1})".format(self.name, str.__repr__(self)) + + # __str__ = __repr__ + + # Fix pickling with protocol 2 + def __getnewargs__(self, *args): + return self.name, str.__str__(self) + + +def make_flag(name, value): + if isinstance(value, (int, long)): + return Flag(name, value) + return StrFlag(name, value) + + +class FlagMapper(dict): + def __init__(self, *values): + self.update({x:x for x in values}) + + def __missing__(self, key): + return key + + +class FlagExatractor(object): + def __init__(self, attr, values): + self.attr = attr + self.attrsize = attr.size * 8 + self.mapper = FlagMapper(*values) + + def __get__(self, obj, type): + if obj is None: + return self + # Retrieve the real value + value = self.attr.__get__(obj) + generator = (1 << i for i in range(self.attrsize)) + return [self.mapper[f] for f in generator if value & f] diff --git a/pythonmemorymodule/windows/generated_def/interfaces.py b/pythonmemorymodule/windows/generated_def/interfaces.py new file mode 100644 index 0000000..7f88667 --- /dev/null +++ b/pythonmemorymodule/windows/generated_def/interfaces.py @@ -0,0 +1,2757 @@ +from .winstructs import * +import functools +import ctypes + + +generate_IID = IID.from_raw + + +class COMHRESULT(HRESULT): + _type_ = HRESULT._type_ + def _check_retval_(self): + # We CAN NOT try to adapt the self.value and transform it with flags + # here, we need to do it with the errcheck + # So we have the peer-interface callback system on errcheck :) + return self.value # The value will be send to errcheck :) + +class COMInterface(ctypes.c_void_p): + _functions_ = { + } + + # So COMInterface completely bypass the HRESULT + # return value check on restype by setting the restype to COMHRESULT + # But we add the 'errcheck' callbakc capacity for all COMInterface and subclasses + # So the default implem of the callbakc must have the same behavior as + # standard HRESULT restype. + # This is why default errcheck callback call ctypes._check_HRESULT + def _default_errcheck(self, result, func, args): + ctypes._check_HRESULT(result) + return args + + def __getattr__(self, name): + if name in self._functions_: + winfunc = self._functions_[name] + # Hacking the HRESULT _check_retval_ and + # letting COMInterface.errcheck do the work of validating / raising + winfunc.restype = COMHRESULT + effective_errcheck = getattr(self, "errcheck", self._default_errcheck) + winfunc.errcheck = effective_errcheck + return functools.partial(winfunc, self) + return super(COMInterface, self).__getattribute__(name) + + def __repr__(self): + description = "" if not self.value else "" + return "<{0}{1} at {2:#x}>".format(type(self).__name__, description, id(self)) + + # Simplified API for QueryInterface for interface embeding there IID + def query(self, interfacetype): + interface = interfacetype() + self.QueryInterface(interface.IID, interface) + return interface + + + + + + + + + +class ICallFrame(COMInterface): + IID = generate_IID(0xD573B4B0, 0x894E, 0x11D2, 0xB8, 0xB6, 0x00, 0xC0, 0x4F, 0xB9, 0x61, 0x8A, name="ICallFrame", strid="D573B4B0-894E-11D2-B8B6-00C04FB9618A") + +class ICallFrameEvents(COMInterface): + IID = generate_IID(0xFD5E0843, 0xFC91, 0x11D0, 0x97, 0xD7, 0x00, 0xC0, 0x4F, 0xB9, 0x61, 0x8A, name="ICallFrameEvents", strid="FD5E0843-FC91-11D0-97D7-00C04FB9618A") + +class ICallFrameWalker(COMInterface): + IID = generate_IID(0x08B23919, 0x392D, 0x11D2, 0xB8, 0xA4, 0x00, 0xC0, 0x4F, 0xB9, 0x61, 0x8A, name="ICallFrameWalker", strid="08B23919-392D-11D2-B8A4-00C04FB9618A") + +class ICallInterceptor(COMInterface): + IID = generate_IID(0x60C7CA75, 0x896D, 0x11D2, 0xB8, 0xB6, 0x00, 0xC0, 0x4F, 0xB9, 0x61, 0x8A, name="ICallInterceptor", strid="60C7CA75-896D-11D2-B8B6-00C04FB9618A") + +class IDispatch(COMInterface): + IID = generate_IID(0x00020400, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IDispatch", strid="00020400-0000-0000-C000-000000000046") + +class IEnumVARIANT(COMInterface): + IID = generate_IID(0x00020404, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IEnumVARIANT", strid="00020404-0000-0000-C000-000000000046") + +class INetFwPolicy2(COMInterface): + IID = generate_IID(0x98325047, 0xC671, 0x4174, 0x8D, 0x81, 0xDE, 0xFC, 0xD3, 0xF0, 0x31, 0x86, name="INetFwPolicy2", strid="98325047-C671-4174-8D81-DEFCD3F03186") + +class INetFwRules(COMInterface): + IID = generate_IID(0x9C4C6277, 0x5027, 0x441E, 0xAF, 0xAE, 0xCA, 0x1F, 0x54, 0x2D, 0xA0, 0x09, name="INetFwRules", strid="9C4C6277-5027-441E-AFAE-CA1F542DA009") + +class INetFwRule(COMInterface): + IID = generate_IID(0xAF230D27, 0xBABA, 0x4E42, 0xAC, 0xED, 0xF5, 0x24, 0xF2, 0x2C, 0xFC, 0xE2, name="INetFwRule", strid="AF230D27-BABA-4E42-ACED-F524F22CFCE2") + +class INetFwServiceRestriction(COMInterface): + IID = generate_IID(0x8267BBE3, 0xF890, 0x491C, 0xB7, 0xB6, 0x2D, 0xB1, 0xEF, 0x0E, 0x5D, 0x2B, name="INetFwServiceRestriction", strid="8267BBE3-F890-491C-B7B6-2DB1EF0E5D2B") + +class IPersist(COMInterface): + IID = generate_IID(0x0000010C, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IPersist", strid="0000010C-0000-0000-C000-000000000046") + +class IPersistFile(COMInterface): + IID = generate_IID(0x0000010B, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IPersistFile", strid="0000010B-0000-0000-C000-000000000046") + +class IShellLinkA(COMInterface): + IID = generate_IID(0x000214EE, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IShellLinkA", strid="000214EE-0000-0000-C000-000000000046") + +class IShellLinkW(COMInterface): + IID = generate_IID(0x000214F9, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IShellLinkW", strid="000214F9-0000-0000-C000-000000000046") + +class ITypeComp(COMInterface): + IID = generate_IID(0x00020403, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="ITypeComp", strid="00020403-0000-0000-C000-000000000046") + +class ITypeInfo(COMInterface): + IID = generate_IID(0x00020401, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="ITypeInfo", strid="00020401-0000-0000-C000-000000000046") + +class ITypeLib(COMInterface): + IID = generate_IID(0x00020402, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="ITypeLib", strid="00020402-0000-0000-C000-000000000046") + +class IUnknown(COMInterface): + IID = generate_IID(0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IUnknown", strid="00000000-0000-0000-C000-000000000046") + +class IBackgroundCopyCallback(COMInterface): + IID = generate_IID(0x97EA99C7, 0x0186, 0x4AD4, 0x8D, 0xF9, 0xC5, 0xB4, 0xE0, 0xED, 0x6B, 0x22, name="IBackgroundCopyCallback", strid="97EA99C7-0186-4AD4-8DF9-C5B4E0ED6B22") + +class IBackgroundCopyError(COMInterface): + IID = generate_IID(0x19C613A0, 0xFCB8, 0x4F28, 0x81, 0xAE, 0x89, 0x7C, 0x3D, 0x07, 0x8F, 0x81, name="IBackgroundCopyError", strid="19C613A0-FCB8-4F28-81AE-897C3D078F81") + +class IBackgroundCopyFile(COMInterface): + IID = generate_IID(0x01B7BD23, 0xFB88, 0x4A77, 0x84, 0x90, 0x58, 0x91, 0xD3, 0xE4, 0x65, 0x3A, name="IBackgroundCopyFile", strid="01B7BD23-FB88-4A77-8490-5891D3E4653A") + +class IBackgroundCopyFile2(COMInterface): + IID = generate_IID(0x83E81B93, 0x0873, 0x474D, 0x8A, 0x8C, 0xF2, 0x01, 0x8B, 0x1A, 0x93, 0x9C, name="IBackgroundCopyFile2", strid="83E81B93-0873-474D-8A8C-F2018B1A939C") + +class IBackgroundCopyFile3(COMInterface): + IID = generate_IID(0x659CDEAA, 0x489E, 0x11D9, 0xA9, 0xCD, 0x00, 0x0D, 0x56, 0x96, 0x52, 0x51, name="IBackgroundCopyFile3", strid="659CDEAA-489E-11D9-A9CD-000D56965251") + +class IBackgroundCopyJob(COMInterface): + IID = generate_IID(0x37668D37, 0x507E, 0x4160, 0x93, 0x16, 0x26, 0x30, 0x6D, 0x15, 0x0B, 0x12, name="IBackgroundCopyJob", strid="37668D37-507E-4160-9316-26306D150B12") + +class IBackgroundCopyJob2(COMInterface): + IID = generate_IID(0x54B50739, 0x686F, 0x45EB, 0x9D, 0xFF, 0xD6, 0xA9, 0xA0, 0xFA, 0xA9, 0xAF, name="IBackgroundCopyJob2", strid="54B50739-686F-45EB-9DFF-D6A9A0FAA9AF") + +class IBackgroundCopyManager(COMInterface): + IID = generate_IID(0x5CE34C0D, 0x0DC9, 0x4C1F, 0x89, 0x7C, 0xDA, 0xA1, 0xB7, 0x8C, 0xEE, 0x7C, name="IBackgroundCopyManager", strid="5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C") + +class IEnumBackgroundCopyFiles(COMInterface): + IID = generate_IID(0xCA51E165, 0xC365, 0x424C, 0x8D, 0x41, 0x24, 0xAA, 0xA4, 0xFF, 0x3C, 0x40, name="IEnumBackgroundCopyFiles", strid="CA51E165-C365-424C-8D41-24AAA4FF3C40") + +class IEnumBackgroundCopyJobs(COMInterface): + IID = generate_IID(0x1AF4F612, 0x3B71, 0x466F, 0x8F, 0x58, 0x7B, 0x6F, 0x73, 0xAC, 0x57, 0xAD, name="IEnumBackgroundCopyJobs", strid="1AF4F612-3B71-466F-8F58-7B6F73AC57AD") + +class IBindCtx(COMInterface): + IID = generate_IID(0x0000000E, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IBindCtx", strid="0000000E-0000-0000-C000-000000000046") + +class IEnumExplorerCommand(COMInterface): + IID = generate_IID(0xA88826F8, 0x186F, 0x4987, 0xAA, 0xDE, 0xEA, 0x0C, 0xEF, 0x8F, 0xBF, 0xE8, name="IEnumExplorerCommand", strid="A88826F8-186F-4987-AADE-EA0CEF8FBFE8") + +class IEnumMoniker(COMInterface): + IID = generate_IID(0x00000102, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IEnumMoniker", strid="00000102-0000-0000-C000-000000000046") + +class IEnumShellItems(COMInterface): + IID = generate_IID(0x70629033, 0xE363, 0x4A28, 0xA5, 0x67, 0x0D, 0xB7, 0x80, 0x06, 0xE6, 0xD7, name="IEnumShellItems", strid="70629033-E363-4A28-A567-0DB78006E6D7") + +class IEnumString(COMInterface): + IID = generate_IID(0x00000101, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IEnumString", strid="00000101-0000-0000-C000-000000000046") + +class IExplorerCommand(COMInterface): + IID = generate_IID(0xA08CE4D0, 0xFA25, 0x44AB, 0xB5, 0x7C, 0xC7, 0xB1, 0xC3, 0x23, 0xE0, 0xB9, name="IExplorerCommand", strid="A08CE4D0-FA25-44AB-B57C-C7B1C323E0B9") + +class IMoniker(COMInterface): + IID = generate_IID(0x0000000F, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IMoniker", strid="0000000F-0000-0000-C000-000000000046") + +class IRunningObjectTable(COMInterface): + IID = generate_IID(0x00000010, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IRunningObjectTable", strid="00000010-0000-0000-C000-000000000046") + +class IShellItem(COMInterface): + IID = generate_IID(0x43826D1E, 0xE718, 0x42EE, 0xBC, 0x55, 0xA1, 0xE2, 0x61, 0xC3, 0x7B, 0xFE, name="IShellItem", strid="43826D1E-E718-42EE-BC55-A1E261C37BFE") + +class IShellItemArray(COMInterface): + IID = generate_IID(0xB63EA76D, 0x1F85, 0x456F, 0xA1, 0x9C, 0x48, 0x15, 0x9E, 0xFA, 0x85, 0x8B, name="IShellItemArray", strid="B63EA76D-1F85-456F-A19C-48159EFA858B") + +class IStream(COMInterface): + IID = generate_IID(0x0000000C, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IStream", strid="0000000C-0000-0000-C000-000000000046") + +class IApplicationActivationManager(COMInterface): + IID = generate_IID(0x2E941141, 0x7F97, 0x4756, 0xBA, 0x1D, 0x9D, 0xEC, 0xDE, 0x89, 0x4A, 0x3D, name="IApplicationActivationManager", strid="2E941141-7F97-4756-BA1D-9DECDE894A3D") + +class IPackageDebugSettings(COMInterface): + IID = generate_IID(0xF27C3930, 0x8029, 0x4AD1, 0x94, 0xE3, 0x3D, 0xBA, 0x41, 0x78, 0x10, 0xC1, name="IPackageDebugSettings", strid="F27C3930-8029-4AD1-94E3-3DBA417810C1") + +class IPackageExecutionStateChangeNotification(COMInterface): + IID = generate_IID(0x1BB12A62, 0x2AD8, 0x432B, 0x8C, 0xCF, 0x0C, 0x2C, 0x52, 0xAF, 0xCD, 0x5B, name="IPackageExecutionStateChangeNotification", strid="1BB12A62-2AD8-432B-8CCF-0C2C52AFCD5B") + +class IAction(COMInterface): + IID = generate_IID(0xBAE54997, 0x48B1, 0x4CBE, 0x99, 0x65, 0xD6, 0xBE, 0x26, 0x3E, 0xBE, 0xA4, name="IAction", strid="BAE54997-48B1-4CBE-9965-D6BE263EBEA4") + +class IActionCollection(COMInterface): + IID = generate_IID(0x02820E19, 0x7B98, 0x4ED2, 0xB2, 0xE8, 0xFD, 0xCC, 0xCE, 0xFF, 0x61, 0x9B, name="IActionCollection", strid="02820E19-7B98-4ED2-B2E8-FDCCCEFF619B") + +class IComHandlerAction(COMInterface): + IID = generate_IID(0x6D2FD252, 0x75C5, 0x4F66, 0x90, 0xBA, 0x2A, 0x7D, 0x8C, 0xC3, 0x03, 0x9F, name="IComHandlerAction", strid="6D2FD252-75C5-4F66-90BA-2A7D8CC3039F") + +class IEmailAction(COMInterface): + IID = generate_IID(0x10F62C64, 0x7E16, 0x4314, 0xA0, 0xC2, 0x0C, 0x36, 0x83, 0xF9, 0x9D, 0x40, name="IEmailAction", strid="10F62C64-7E16-4314-A0C2-0C3683F99D40") + +class IExecAction(COMInterface): + IID = generate_IID(0x4C3D624D, 0xFD6B, 0x49A3, 0xB9, 0xB7, 0x09, 0xCB, 0x3C, 0xD3, 0xF0, 0x47, name="IExecAction", strid="4C3D624D-FD6B-49A3-B9B7-09CB3CD3F047") + +class IIdleSettings(COMInterface): + IID = generate_IID(0x84594461, 0x0053, 0x4342, 0xA8, 0xFD, 0x08, 0x8F, 0xAB, 0xF1, 0x1F, 0x32, name="IIdleSettings", strid="84594461-0053-4342-A8FD-088FABF11F32") + +class INetworkSettings(COMInterface): + IID = generate_IID(0x9F7DEA84, 0xC30B, 0x4245, 0x80, 0xB6, 0x00, 0xE9, 0xF6, 0x46, 0xF1, 0xB4, name="INetworkSettings", strid="9F7DEA84-C30B-4245-80B6-00E9F646F1B4") + +class IPrincipal(COMInterface): + IID = generate_IID(0xD98D51E5, 0xC9B4, 0x496A, 0xA9, 0xC1, 0x18, 0x98, 0x02, 0x61, 0xCF, 0x0F, name="IPrincipal", strid="D98D51E5-C9B4-496A-A9C1-18980261CF0F") + +class IRegisteredTask(COMInterface): + IID = generate_IID(0x9C86F320, 0xDEE3, 0x4DD1, 0xB9, 0x72, 0xA3, 0x03, 0xF2, 0x6B, 0x06, 0x1E, name="IRegisteredTask", strid="9C86F320-DEE3-4DD1-B972-A303F26B061E") + +class IRegisteredTaskCollection(COMInterface): + IID = generate_IID(0x86627EB4, 0x42A7, 0x41E4, 0xA4, 0xD9, 0xAC, 0x33, 0xA7, 0x2F, 0x2D, 0x52, name="IRegisteredTaskCollection", strid="86627EB4-42A7-41E4-A4D9-AC33A72F2D52") + +class IRegistrationInfo(COMInterface): + IID = generate_IID(0x416D8B73, 0xCB41, 0x4EA1, 0x80, 0x5C, 0x9B, 0xE9, 0xA5, 0xAC, 0x4A, 0x74, name="IRegistrationInfo", strid="416D8B73-CB41-4EA1-805C-9BE9A5AC4A74") + +class IRepetitionPattern(COMInterface): + IID = generate_IID(0x7FB9ACF1, 0x26BE, 0x400E, 0x85, 0xB5, 0x29, 0x4B, 0x9C, 0x75, 0xDF, 0xD6, name="IRepetitionPattern", strid="7FB9ACF1-26BE-400E-85B5-294B9C75DFD6") + +class IRunningTask(COMInterface): + IID = generate_IID(0x653758FB, 0x7B9A, 0x4F1E, 0xA4, 0x71, 0xBE, 0xEB, 0x8E, 0x9B, 0x83, 0x4E, name="IRunningTask", strid="653758FB-7B9A-4F1E-A471-BEEB8E9B834E") + +class IRunningTaskCollection(COMInterface): + IID = generate_IID(0x6A67614B, 0x6828, 0x4FEC, 0xAA, 0x54, 0x6D, 0x52, 0xE8, 0xF1, 0xF2, 0xDB, name="IRunningTaskCollection", strid="6A67614B-6828-4FEC-AA54-6D52E8F1F2DB") + +class IShowMessageAction(COMInterface): + IID = generate_IID(0x505E9E68, 0xAF89, 0x46B8, 0xA3, 0x0F, 0x56, 0x16, 0x2A, 0x83, 0xD5, 0x37, name="IShowMessageAction", strid="505E9E68-AF89-46B8-A30F-56162A83D537") + +class ITaskDefinition(COMInterface): + IID = generate_IID(0xF5BC8FC5, 0x536D, 0x4F77, 0xB8, 0x52, 0xFB, 0xC1, 0x35, 0x6F, 0xDE, 0xB6, name="ITaskDefinition", strid="F5BC8FC5-536D-4F77-B852-FBC1356FDEB6") + +class ITaskFolder(COMInterface): + IID = generate_IID(0x8CFAC062, 0xA080, 0x4C15, 0x9A, 0x88, 0xAA, 0x7C, 0x2A, 0xF8, 0x0D, 0xFC, name="ITaskFolder", strid="8CFAC062-A080-4C15-9A88-AA7C2AF80DFC") + +class ITaskFolderCollection(COMInterface): + IID = generate_IID(0x79184A66, 0x8664, 0x423F, 0x97, 0xF1, 0x63, 0x73, 0x56, 0xA5, 0xD8, 0x12, name="ITaskFolderCollection", strid="79184A66-8664-423F-97F1-637356A5D812") + +class ITaskNamedValueCollection(COMInterface): + IID = generate_IID(0xB4EF826B, 0x63C3, 0x46E4, 0xA5, 0x04, 0xEF, 0x69, 0xE4, 0xF7, 0xEA, 0x4D, name="ITaskNamedValueCollection", strid="B4EF826B-63C3-46E4-A504-EF69E4F7EA4D") + +class ITaskNamedValuePair(COMInterface): + IID = generate_IID(0x39038068, 0x2B46, 0x4AFD, 0x86, 0x62, 0x7B, 0xB6, 0xF8, 0x68, 0xD2, 0x21, name="ITaskNamedValuePair", strid="39038068-2B46-4AFD-8662-7BB6F868D221") + +class ITaskService(COMInterface): + IID = generate_IID(0x2FABA4C7, 0x4DA9, 0x4013, 0x96, 0x97, 0x20, 0xCC, 0x3F, 0xD4, 0x0F, 0x85, name="ITaskService", strid="2FABA4C7-4DA9-4013-9697-20CC3FD40F85") + +class ITaskSettings(COMInterface): + IID = generate_IID(0x8FD4711D, 0x2D02, 0x4C8C, 0x87, 0xE3, 0xEF, 0xF6, 0x99, 0xDE, 0x12, 0x7E, name="ITaskSettings", strid="8FD4711D-2D02-4C8C-87E3-EFF699DE127E") + +class ITrigger(COMInterface): + IID = generate_IID(0x09941815, 0xEA89, 0x4B5B, 0x89, 0xE0, 0x2A, 0x77, 0x38, 0x01, 0xFA, 0xC3, name="ITrigger", strid="09941815-EA89-4B5B-89E0-2A773801FAC3") + +class ITriggerCollection(COMInterface): + IID = generate_IID(0x85DF5081, 0x1B24, 0x4F32, 0x87, 0x8A, 0xD9, 0xD1, 0x4D, 0xF4, 0xCB, 0x77, name="ITriggerCollection", strid="85DF5081-1B24-4F32-878A-D9D14DF4CB77") + +class IWebBrowser2(COMInterface): + IID = generate_IID(0xD30C1661, 0xCDAF, 0x11D0, 0x8A, 0x3E, 0x00, 0xC0, 0x4F, 0xC9, 0xE2, 0x6E, name="IWebBrowser2", strid="D30C1661-CDAF-11D0-8A3E-00C04FC9E26E") + +class IEnumWbemClassObject(COMInterface): + IID = generate_IID(0x027947E1, 0xD731, 0x11CE, 0xA3, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, name="IEnumWbemClassObject", strid="027947E1-D731-11CE-A357-000000000001") + +class IWbemCallResult(COMInterface): + IID = generate_IID(0x44ACA675, 0xE8FC, 0x11D0, 0xA0, 0x7C, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20, name="IWbemCallResult", strid="44ACA675-E8FC-11D0-A07C-00C04FB68820") + +class IWbemClassObject(COMInterface): + IID = generate_IID(0xDC12A681, 0x737F, 0x11CF, 0x88, 0x4D, 0x00, 0xAA, 0x00, 0x4B, 0x2E, 0x24, name="IWbemClassObject", strid="DC12A681-737F-11CF-884D-00AA004B2E24") + +class IWbemContext(COMInterface): + IID = generate_IID(0x44ACA674, 0xE8FC, 0x11D0, 0xA0, 0x7C, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20, name="IWbemContext", strid="44ACA674-E8FC-11D0-A07C-00C04FB68820") + +class IWbemLocator(COMInterface): + IID = generate_IID(0xDC12A687, 0x737F, 0x11CF, 0x88, 0x4D, 0x00, 0xAA, 0x00, 0x4B, 0x2E, 0x24, name="IWbemLocator", strid="DC12A687-737F-11CF-884D-00AA004B2E24") + +class IWbemObjectSink(COMInterface): + IID = generate_IID(0x7C857801, 0x7381, 0x11CF, 0x88, 0x4D, 0x00, 0xAA, 0x00, 0x4B, 0x2E, 0x24, name="IWbemObjectSink", strid="7C857801-7381-11CF-884D-00AA004B2E24") + +class IWbemObjectTextSrc(COMInterface): + IID = generate_IID(0xBFBF883A, 0xCAD7, 0x11D3, 0xA1, 0x1B, 0x00, 0x10, 0x5A, 0x1F, 0x51, 0x5A, name="IWbemObjectTextSrc", strid="BFBF883A-CAD7-11D3-A11B-00105A1F515A") + +class IWbemQualifierSet(COMInterface): + IID = generate_IID(0xDC12A680, 0x737F, 0x11CF, 0x88, 0x4D, 0x00, 0xAA, 0x00, 0x4B, 0x2E, 0x24, name="IWbemQualifierSet", strid="DC12A680-737F-11CF-884D-00AA004B2E24") + +class IWbemServices(COMInterface): + IID = generate_IID(0x9556DC99, 0x828C, 0x11CF, 0xA3, 0x7E, 0x00, 0xAA, 0x00, 0x32, 0x40, 0xC7, name="IWbemServices", strid="9556DC99-828C-11CF-A37E-00AA003240C7") + +ICallFrame._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetInfo -> pInfo:*CALLFRAMEINFO + "GetInfo": ctypes.WINFUNCTYPE(HRESULT, POINTER(CALLFRAMEINFO))(3, "GetInfo"), + # GetIIDAndMethod -> pIID:*IID, piMethod:*ULONG + "GetIIDAndMethod": ctypes.WINFUNCTYPE(HRESULT, POINTER(IID), POINTER(ULONG))(4, "GetIIDAndMethod"), + # GetNames -> pwszInterface:*LPWSTR, pwszMethod:*LPWSTR + "GetNames": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR), POINTER(LPWSTR))(5, "GetNames"), + # GetStackLocation -> + "GetStackLocation": ctypes.WINFUNCTYPE(PVOID)(6, "GetStackLocation"), + # SetStackLocation -> pvStack:PVOID + "SetStackLocation": ctypes.WINFUNCTYPE(VOID, PVOID)(7, "SetStackLocation"), + # SetReturnValue -> hr:HRESULT + "SetReturnValue": ctypes.WINFUNCTYPE(VOID, HRESULT)(8, "SetReturnValue"), + # GetReturnValue -> + "GetReturnValue": ctypes.WINFUNCTYPE(HRESULT)(9, "GetReturnValue"), + # GetParamInfo -> iparam:ULONG, pInfo:*CALLFRAMEPARAMINFO + "GetParamInfo": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(CALLFRAMEPARAMINFO))(10, "GetParamInfo"), + # SetParam -> iparam:ULONG, pvar:*VARIANT + "SetParam": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(VARIANT))(11, "SetParam"), + # GetParam -> iparam:ULONG, pvar:*VARIANT + "GetParam": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(VARIANT))(12, "GetParam"), + # Copy -> copyControl:CALLFRAME_COPY, pWalker:*ICallFrameWalker, ppFrame:**ICallFrame + "Copy": ctypes.WINFUNCTYPE(HRESULT, CALLFRAME_COPY, ICallFrameWalker, POINTER(ICallFrame))(13, "Copy"), + # Free -> pframeArgsDest:*ICallFrame, pWalkerDestFree:*ICallFrameWalker, pWalkerCopy:*ICallFrameWalker, freeFlags:DWORD, pWalkerFree:*ICallFrameWalker, nullFlags:DWORD + "Free": ctypes.WINFUNCTYPE(HRESULT, ICallFrame, ICallFrameWalker, ICallFrameWalker, DWORD, ICallFrameWalker, DWORD)(14, "Free"), + # FreeParam -> iparam:ULONG, freeFlags:DWORD, pWalkerFree:*ICallFrameWalker, nullFlags:DWORD + "FreeParam": ctypes.WINFUNCTYPE(HRESULT, ULONG, DWORD, ICallFrameWalker, DWORD)(15, "FreeParam"), + # WalkFrame -> walkWhat:DWORD, pWalker:*ICallFrameWalker + "WalkFrame": ctypes.WINFUNCTYPE(HRESULT, DWORD, ICallFrameWalker)(16, "WalkFrame"), + # GetMarshalSizeMax -> pmshlContext:*CALLFRAME_MARSHALCONTEXT, mshlflags:MSHLFLAGS, pcbBufferNeeded:*ULONG + "GetMarshalSizeMax": ctypes.WINFUNCTYPE(HRESULT, POINTER(CALLFRAME_MARSHALCONTEXT), MSHLFLAGS, POINTER(ULONG))(17, "GetMarshalSizeMax"), + # Marshal -> pmshlContext:*CALLFRAME_MARSHALCONTEXT, mshlflags:MSHLFLAGS, pBuffer:PVOID, cbBuffer:ULONG, pcbBufferUsed:*ULONG, pdataRep:*RPCOLEDATAREP, prpcFlags:*ULONG + "Marshal": ctypes.WINFUNCTYPE(HRESULT, POINTER(CALLFRAME_MARSHALCONTEXT), MSHLFLAGS, PVOID, ULONG, POINTER(ULONG), POINTER(RPCOLEDATAREP), POINTER(ULONG))(18, "Marshal"), + # Unmarshal -> pBuffer:PVOID, cbBuffer:ULONG, dataRep:RPCOLEDATAREP, pcontext:*CALLFRAME_MARSHALCONTEXT, pcbUnmarshalled:*ULONG + "Unmarshal": ctypes.WINFUNCTYPE(HRESULT, PVOID, ULONG, RPCOLEDATAREP, POINTER(CALLFRAME_MARSHALCONTEXT), POINTER(ULONG))(19, "Unmarshal"), + # ReleaseMarshalData -> pBuffer:PVOID, cbBuffer:ULONG, ibFirstRelease:ULONG, dataRep:RPCOLEDATAREP, pcontext:*CALLFRAME_MARSHALCONTEXT + "ReleaseMarshalData": ctypes.WINFUNCTYPE(HRESULT, PVOID, ULONG, ULONG, RPCOLEDATAREP, POINTER(CALLFRAME_MARSHALCONTEXT))(20, "ReleaseMarshalData"), + # Invoke -> pvReceiver:*void + "Invoke": ctypes.CFUNCTYPE(HRESULT, PVOID)(21, "Invoke"), + } + +ICallFrameEvents._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # OnCall -> pFrame:*ICallFrame + "OnCall": ctypes.WINFUNCTYPE(HRESULT, ICallFrame)(3, "OnCall"), + } + +ICallFrameWalker._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # OnWalkInterface -> iid:REFIID, ppvInterface:*PVOID, fIn:BOOL, fOut:BOOL + "OnWalkInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID), BOOL, BOOL)(3, "OnWalkInterface"), + } + +ICallInterceptor._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # CallIndirect -> phrReturn:*HRESULT, iMethod:ULONG, pvArgs:*void, cbArgs:*ULONG + "CallIndirect": ctypes.WINFUNCTYPE(HRESULT, POINTER(HRESULT), ULONG, PVOID, POINTER(ULONG))(3, "CallIndirect"), + # GetMethodInfo -> iMethod:ULONG, pInfo:*CALLFRAMEINFO, pwszMethod:*LPWSTR + "GetMethodInfo": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(CALLFRAMEINFO), POINTER(LPWSTR))(4, "GetMethodInfo"), + # GetStackSize -> iMethod:ULONG, cbArgs:*ULONG + "GetStackSize": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(ULONG))(5, "GetStackSize"), + # GetIID -> piid:*IID, pfDerivesFromIDispatch:*BOOL, pcMethod:*ULONG, pwszInterface:*LPWSTR + "GetIID": ctypes.WINFUNCTYPE(HRESULT, POINTER(IID), POINTER(BOOL), POINTER(ULONG), POINTER(LPWSTR))(6, "GetIID"), + # RegisterSink -> psink:*ICallFrameEvents + "RegisterSink": ctypes.WINFUNCTYPE(HRESULT, ICallFrameEvents)(7, "RegisterSink"), + # GetRegisteredSink -> ppsink:**ICallFrameEvents + "GetRegisteredSink": ctypes.WINFUNCTYPE(HRESULT, POINTER(ICallFrameEvents))(8, "GetRegisteredSink"), + } + +IDispatch._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + } + +IEnumVARIANT._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Next -> celt:ULONG, rgVar:*VARIANT, pCeltFetched:*ULONG + "Next": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(VARIANT), POINTER(ULONG))(3, "Next"), + # Skip -> celt:ULONG + "Skip": ctypes.WINFUNCTYPE(HRESULT, ULONG)(4, "Skip"), + # Reset -> + "Reset": ctypes.WINFUNCTYPE(HRESULT)(5, "Reset"), + # Clone -> ppEnum:**IEnumVARIANT + "Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumVARIANT))(6, "Clone"), + } + +INetFwPolicy2._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_CurrentProfileTypes -> profileTypesBitmask:*LONG + "get_CurrentProfileTypes": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(7, "get_CurrentProfileTypes"), + # get_FirewallEnabled -> profileType:NET_FW_PROFILE_TYPE2, enabled:*VARIANT_BOOL + "get_FirewallEnabled": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, POINTER(VARIANT_BOOL))(8, "get_FirewallEnabled"), + # put_FirewallEnabled -> profileType:NET_FW_PROFILE_TYPE2, enabled:VARIANT_BOOL + "put_FirewallEnabled": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, VARIANT_BOOL)(9, "put_FirewallEnabled"), + # get_ExcludedInterfaces -> profileType:NET_FW_PROFILE_TYPE2, interfaces:*VARIANT + "get_ExcludedInterfaces": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, POINTER(VARIANT))(10, "get_ExcludedInterfaces"), + # put_ExcludedInterfaces -> profileType:NET_FW_PROFILE_TYPE2, interfaces:VARIANT + "put_ExcludedInterfaces": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, VARIANT)(11, "put_ExcludedInterfaces"), + # get_BlockAllInboundTraffic -> profileType:NET_FW_PROFILE_TYPE2, Block:*VARIANT_BOOL + "get_BlockAllInboundTraffic": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, POINTER(VARIANT_BOOL))(12, "get_BlockAllInboundTraffic"), + # put_BlockAllInboundTraffic -> profileType:NET_FW_PROFILE_TYPE2, Block:VARIANT_BOOL + "put_BlockAllInboundTraffic": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, VARIANT_BOOL)(13, "put_BlockAllInboundTraffic"), + # get_NotificationsDisabled -> profileType:NET_FW_PROFILE_TYPE2, disabled:*VARIANT_BOOL + "get_NotificationsDisabled": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, POINTER(VARIANT_BOOL))(14, "get_NotificationsDisabled"), + # put_NotificationsDisabled -> profileType:NET_FW_PROFILE_TYPE2, disabled:VARIANT_BOOL + "put_NotificationsDisabled": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, VARIANT_BOOL)(15, "put_NotificationsDisabled"), + # get_UnicastResponsesToMulticastBroadcastDisabled -> profileType:NET_FW_PROFILE_TYPE2, disabled:*VARIANT_BOOL + "get_UnicastResponsesToMulticastBroadcastDisabled": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, POINTER(VARIANT_BOOL))(16, "get_UnicastResponsesToMulticastBroadcastDisabled"), + # put_UnicastResponsesToMulticastBroadcastDisabled -> profileType:NET_FW_PROFILE_TYPE2, disabled:VARIANT_BOOL + "put_UnicastResponsesToMulticastBroadcastDisabled": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, VARIANT_BOOL)(17, "put_UnicastResponsesToMulticastBroadcastDisabled"), + # get_Rules -> rules:**INetFwRules + "get_Rules": ctypes.WINFUNCTYPE(HRESULT, POINTER(INetFwRules))(18, "get_Rules"), + # get_ServiceRestriction -> ServiceRestriction:**INetFwServiceRestriction + "get_ServiceRestriction": ctypes.WINFUNCTYPE(HRESULT, POINTER(INetFwServiceRestriction))(19, "get_ServiceRestriction"), + # EnableRuleGroup -> profileTypesBitmask:LONG, group:BSTR, enable:VARIANT_BOOL + "EnableRuleGroup": ctypes.WINFUNCTYPE(HRESULT, LONG, BSTR, VARIANT_BOOL)(20, "EnableRuleGroup"), + # IsRuleGroupEnabled -> profileTypesBitmask:LONG, group:BSTR, enabled:*VARIANT_BOOL + "IsRuleGroupEnabled": ctypes.WINFUNCTYPE(HRESULT, LONG, BSTR, POINTER(VARIANT_BOOL))(21, "IsRuleGroupEnabled"), + # RestoreLocalFirewallDefaults -> + "RestoreLocalFirewallDefaults": ctypes.WINFUNCTYPE(HRESULT)(22, "RestoreLocalFirewallDefaults"), + # get_DefaultInboundAction -> profileType:NET_FW_PROFILE_TYPE2, action:*NET_FW_ACTION + "get_DefaultInboundAction": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, POINTER(NET_FW_ACTION))(23, "get_DefaultInboundAction"), + # put_DefaultInboundAction -> profileType:NET_FW_PROFILE_TYPE2, action:NET_FW_ACTION + "put_DefaultInboundAction": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, NET_FW_ACTION)(24, "put_DefaultInboundAction"), + # get_DefaultOutboundAction -> profileType:NET_FW_PROFILE_TYPE2, action:*NET_FW_ACTION + "get_DefaultOutboundAction": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, POINTER(NET_FW_ACTION))(25, "get_DefaultOutboundAction"), + # put_DefaultOutboundAction -> profileType:NET_FW_PROFILE_TYPE2, action:NET_FW_ACTION + "put_DefaultOutboundAction": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, NET_FW_ACTION)(26, "put_DefaultOutboundAction"), + # get_IsRuleGroupCurrentlyEnabled -> group:BSTR, enabled:*VARIANT_BOOL + "get_IsRuleGroupCurrentlyEnabled": ctypes.WINFUNCTYPE(HRESULT, BSTR, POINTER(VARIANT_BOOL))(27, "get_IsRuleGroupCurrentlyEnabled"), + # get_LocalPolicyModifyState -> modifyState:*NET_FW_MODIFY_STATE + "get_LocalPolicyModifyState": ctypes.WINFUNCTYPE(HRESULT, POINTER(NET_FW_MODIFY_STATE))(28, "get_LocalPolicyModifyState"), + } + +INetFwRules._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Count -> count:*LONG + "get_Count": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(7, "get_Count"), + # Add -> rule:*INetFwRule + "Add": ctypes.WINFUNCTYPE(HRESULT, INetFwRule)(8, "Add"), + # Remove -> name:BSTR + "Remove": ctypes.WINFUNCTYPE(HRESULT, BSTR)(9, "Remove"), + # Item -> name:BSTR, rule:**INetFwRule + "Item": ctypes.WINFUNCTYPE(HRESULT, BSTR, POINTER(INetFwRule))(10, "Item"), + # get__NewEnum -> newEnum:**IUnknown + "get__NewEnum": ctypes.WINFUNCTYPE(HRESULT, POINTER(IUnknown))(11, "get__NewEnum"), + } + +INetFwRule._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Name -> name:*BSTR + "get_Name": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Name"), + # put_Name -> name:BSTR + "put_Name": ctypes.WINFUNCTYPE(HRESULT, BSTR)(8, "put_Name"), + # get_Description -> desc:*BSTR + "get_Description": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(9, "get_Description"), + # put_Description -> desc:BSTR + "put_Description": ctypes.WINFUNCTYPE(HRESULT, BSTR)(10, "put_Description"), + # get_ApplicationName -> imageFileName:*BSTR + "get_ApplicationName": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(11, "get_ApplicationName"), + # put_ApplicationName -> imageFileName:BSTR + "put_ApplicationName": ctypes.WINFUNCTYPE(HRESULT, BSTR)(12, "put_ApplicationName"), + # get_ServiceName -> serviceName:*BSTR + "get_ServiceName": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(13, "get_ServiceName"), + # put_ServiceName -> serviceName:BSTR + "put_ServiceName": ctypes.WINFUNCTYPE(HRESULT, BSTR)(14, "put_ServiceName"), + # get_Protocol -> protocol:*LONG + "get_Protocol": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(15, "get_Protocol"), + # put_Protocol -> protocol:LONG + "put_Protocol": ctypes.WINFUNCTYPE(HRESULT, LONG)(16, "put_Protocol"), + # get_LocalPorts -> portNumbers:*BSTR + "get_LocalPorts": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(17, "get_LocalPorts"), + # put_LocalPorts -> portNumbers:BSTR + "put_LocalPorts": ctypes.WINFUNCTYPE(HRESULT, BSTR)(18, "put_LocalPorts"), + # get_RemotePorts -> portNumbers:*BSTR + "get_RemotePorts": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(19, "get_RemotePorts"), + # put_RemotePorts -> portNumbers:BSTR + "put_RemotePorts": ctypes.WINFUNCTYPE(HRESULT, BSTR)(20, "put_RemotePorts"), + # get_LocalAddresses -> localAddrs:*BSTR + "get_LocalAddresses": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(21, "get_LocalAddresses"), + # put_LocalAddresses -> localAddrs:BSTR + "put_LocalAddresses": ctypes.WINFUNCTYPE(HRESULT, BSTR)(22, "put_LocalAddresses"), + # get_RemoteAddresses -> remoteAddrs:*BSTR + "get_RemoteAddresses": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(23, "get_RemoteAddresses"), + # put_RemoteAddresses -> remoteAddrs:BSTR + "put_RemoteAddresses": ctypes.WINFUNCTYPE(HRESULT, BSTR)(24, "put_RemoteAddresses"), + # get_IcmpTypesAndCodes -> icmpTypesAndCodes:*BSTR + "get_IcmpTypesAndCodes": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(25, "get_IcmpTypesAndCodes"), + # put_IcmpTypesAndCodes -> icmpTypesAndCodes:BSTR + "put_IcmpTypesAndCodes": ctypes.WINFUNCTYPE(HRESULT, BSTR)(26, "put_IcmpTypesAndCodes"), + # get_Direction -> dir:*NET_FW_RULE_DIRECTION + "get_Direction": ctypes.WINFUNCTYPE(HRESULT, POINTER(NET_FW_RULE_DIRECTION))(27, "get_Direction"), + # put_Direction -> dir:NET_FW_RULE_DIRECTION + "put_Direction": ctypes.WINFUNCTYPE(HRESULT, NET_FW_RULE_DIRECTION)(28, "put_Direction"), + # get_Interfaces -> interfaces:*VARIANT + "get_Interfaces": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT))(29, "get_Interfaces"), + # put_Interfaces -> interfaces:VARIANT + "put_Interfaces": ctypes.WINFUNCTYPE(HRESULT, VARIANT)(30, "put_Interfaces"), + # get_InterfaceTypes -> interfaceTypes:*BSTR + "get_InterfaceTypes": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(31, "get_InterfaceTypes"), + # put_InterfaceTypes -> interfaceTypes:BSTR + "put_InterfaceTypes": ctypes.WINFUNCTYPE(HRESULT, BSTR)(32, "put_InterfaceTypes"), + # get_Enabled -> enabled:*VARIANT_BOOL + "get_Enabled": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(33, "get_Enabled"), + # put_Enabled -> enabled:VARIANT_BOOL + "put_Enabled": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(34, "put_Enabled"), + # get_Grouping -> context:*BSTR + "get_Grouping": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(35, "get_Grouping"), + # put_Grouping -> context:BSTR + "put_Grouping": ctypes.WINFUNCTYPE(HRESULT, BSTR)(36, "put_Grouping"), + # get_Profiles -> profileTypesBitmask:*LONG + "get_Profiles": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(37, "get_Profiles"), + # put_Profiles -> profileTypesBitmask:LONG + "put_Profiles": ctypes.WINFUNCTYPE(HRESULT, LONG)(38, "put_Profiles"), + # get_EdgeTraversal -> enabled:*VARIANT_BOOL + "get_EdgeTraversal": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(39, "get_EdgeTraversal"), + # put_EdgeTraversal -> enabled:VARIANT_BOOL + "put_EdgeTraversal": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(40, "put_EdgeTraversal"), + # get_Action -> action:*NET_FW_ACTION + "get_Action": ctypes.WINFUNCTYPE(HRESULT, POINTER(NET_FW_ACTION))(41, "get_Action"), + # put_Action -> action:NET_FW_ACTION + "put_Action": ctypes.WINFUNCTYPE(HRESULT, NET_FW_ACTION)(42, "put_Action"), + } + +INetFwServiceRestriction._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # RestrictService -> serviceName:BSTR, appName:BSTR, restrictService:VARIANT_BOOL, serviceSidRestricted:VARIANT_BOOL + "RestrictService": ctypes.WINFUNCTYPE(HRESULT, BSTR, BSTR, VARIANT_BOOL, VARIANT_BOOL)(7, "RestrictService"), + # ServiceRestricted -> serviceName:BSTR, appName:BSTR, serviceRestricted:*VARIANT_BOOL + "ServiceRestricted": ctypes.WINFUNCTYPE(HRESULT, BSTR, BSTR, POINTER(VARIANT_BOOL))(8, "ServiceRestricted"), + # get_Rules -> rules:**INetFwRules + "get_Rules": ctypes.WINFUNCTYPE(HRESULT, POINTER(INetFwRules))(9, "get_Rules"), + } + +IPersist._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetClassID -> pClassID:*CLSID + "GetClassID": ctypes.WINFUNCTYPE(HRESULT, POINTER(CLSID))(3, "GetClassID"), + } + +IPersistFile._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetClassID -> pClassID:*CLSID + "GetClassID": ctypes.WINFUNCTYPE(HRESULT, POINTER(CLSID))(3, "GetClassID"), + # IsDirty -> + "IsDirty": ctypes.WINFUNCTYPE(HRESULT)(4, "IsDirty"), + # Load -> pszFileName:LPCOLESTR, dwMode:DWORD + "Load": ctypes.WINFUNCTYPE(HRESULT, LPCOLESTR, DWORD)(5, "Load"), + # Save -> pszFileName:LPCOLESTR, fRemember:BOOL + "Save": ctypes.WINFUNCTYPE(HRESULT, LPCOLESTR, BOOL)(6, "Save"), + # SaveCompleted -> pszFileName:LPCOLESTR + "SaveCompleted": ctypes.WINFUNCTYPE(HRESULT, LPCOLESTR)(7, "SaveCompleted"), + # GetCurFile -> ppszFileName:*LPOLESTR + "GetCurFile": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPOLESTR))(8, "GetCurFile"), + } + +IShellLinkA._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetPath -> pszFile:LPSTR, cch:INT, pfd:*WIN32_FIND_DATAA, fFlags:DWORD + "GetPath": ctypes.WINFUNCTYPE(HRESULT, LPSTR, INT, POINTER(WIN32_FIND_DATAA), DWORD)(3, "GetPath"), + # GetIDList -> ppidl:*PIDLIST_ABSOLUTE + "GetIDList": ctypes.WINFUNCTYPE(HRESULT, POINTER(PIDLIST_ABSOLUTE))(4, "GetIDList"), + # SetIDList -> pidl:PCIDLIST_ABSOLUTE + "SetIDList": ctypes.WINFUNCTYPE(HRESULT, PCIDLIST_ABSOLUTE)(5, "SetIDList"), + # GetDescription -> pszName:LPSTR, cch:INT + "GetDescription": ctypes.WINFUNCTYPE(HRESULT, LPSTR, INT)(6, "GetDescription"), + # SetDescription -> pszName:LPCSTR + "SetDescription": ctypes.WINFUNCTYPE(HRESULT, LPCSTR)(7, "SetDescription"), + # GetWorkingDirectory -> pszDir:LPSTR, cch:INT + "GetWorkingDirectory": ctypes.WINFUNCTYPE(HRESULT, LPSTR, INT)(8, "GetWorkingDirectory"), + # SetWorkingDirectory -> pszDir:LPCSTR + "SetWorkingDirectory": ctypes.WINFUNCTYPE(HRESULT, LPCSTR)(9, "SetWorkingDirectory"), + # GetArguments -> pszArgs:LPSTR, cch:INT + "GetArguments": ctypes.WINFUNCTYPE(HRESULT, LPSTR, INT)(10, "GetArguments"), + # SetArguments -> pszArgs:LPCSTR + "SetArguments": ctypes.WINFUNCTYPE(HRESULT, LPCSTR)(11, "SetArguments"), + # GetHotkey -> pwHotkey:*WORD + "GetHotkey": ctypes.WINFUNCTYPE(HRESULT, POINTER(WORD))(12, "GetHotkey"), + # SetHotkey -> wHotkey:WORD + "SetHotkey": ctypes.WINFUNCTYPE(HRESULT, WORD)(13, "SetHotkey"), + # GetShowCmd -> piShowCmd:*INT + "GetShowCmd": ctypes.WINFUNCTYPE(HRESULT, POINTER(INT))(14, "GetShowCmd"), + # SetShowCmd -> iShowCmd:INT + "SetShowCmd": ctypes.WINFUNCTYPE(HRESULT, INT)(15, "SetShowCmd"), + # GetIconLocation -> pszIconPath:LPSTR, cch:INT, piIcon:*INT + "GetIconLocation": ctypes.WINFUNCTYPE(HRESULT, LPSTR, INT, POINTER(INT))(16, "GetIconLocation"), + # SetIconLocation -> pszIconPath:LPCSTR, iIcon:INT + "SetIconLocation": ctypes.WINFUNCTYPE(HRESULT, LPCSTR, INT)(17, "SetIconLocation"), + # SetRelativePath -> pszPathRel:LPCSTR, dwReserved:DWORD + "SetRelativePath": ctypes.WINFUNCTYPE(HRESULT, LPCSTR, DWORD)(18, "SetRelativePath"), + # Resolve -> hwnd:HWND, fFlags:DWORD + "Resolve": ctypes.WINFUNCTYPE(HRESULT, HWND, DWORD)(19, "Resolve"), + # SetPath -> pszFile:LPCSTR + "SetPath": ctypes.WINFUNCTYPE(HRESULT, LPCSTR)(20, "SetPath"), + } + +IShellLinkW._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetPath -> pszFile:LPWSTR, cch:INT, pfd:*WIN32_FIND_DATAW, fFlags:DWORD + "GetPath": ctypes.WINFUNCTYPE(HRESULT, LPWSTR, INT, POINTER(WIN32_FIND_DATAW), DWORD)(3, "GetPath"), + # GetIDList -> ppidl:*PIDLIST_ABSOLUTE + "GetIDList": ctypes.WINFUNCTYPE(HRESULT, POINTER(PIDLIST_ABSOLUTE))(4, "GetIDList"), + # SetIDList -> pidl:PCIDLIST_ABSOLUTE + "SetIDList": ctypes.WINFUNCTYPE(HRESULT, PCIDLIST_ABSOLUTE)(5, "SetIDList"), + # GetDescription -> pszName:LPWSTR, cch:INT + "GetDescription": ctypes.WINFUNCTYPE(HRESULT, LPWSTR, INT)(6, "GetDescription"), + # SetDescription -> pszName:LPCWSTR + "SetDescription": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(7, "SetDescription"), + # GetWorkingDirectory -> pszDir:LPWSTR, cch:INT + "GetWorkingDirectory": ctypes.WINFUNCTYPE(HRESULT, LPWSTR, INT)(8, "GetWorkingDirectory"), + # SetWorkingDirectory -> pszDir:LPCWSTR + "SetWorkingDirectory": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(9, "SetWorkingDirectory"), + # GetArguments -> pszArgs:LPWSTR, cch:INT + "GetArguments": ctypes.WINFUNCTYPE(HRESULT, LPWSTR, INT)(10, "GetArguments"), + # SetArguments -> pszArgs:LPCWSTR + "SetArguments": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(11, "SetArguments"), + # GetHotkey -> pwHotkey:*WORD + "GetHotkey": ctypes.WINFUNCTYPE(HRESULT, POINTER(WORD))(12, "GetHotkey"), + # SetHotkey -> wHotkey:WORD + "SetHotkey": ctypes.WINFUNCTYPE(HRESULT, WORD)(13, "SetHotkey"), + # GetShowCmd -> piShowCmd:*INT + "GetShowCmd": ctypes.WINFUNCTYPE(HRESULT, POINTER(INT))(14, "GetShowCmd"), + # SetShowCmd -> iShowCmd:INT + "SetShowCmd": ctypes.WINFUNCTYPE(HRESULT, INT)(15, "SetShowCmd"), + # GetIconLocation -> pszIconPath:LPWSTR, cch:INT, piIcon:*INT + "GetIconLocation": ctypes.WINFUNCTYPE(HRESULT, LPWSTR, INT, POINTER(INT))(16, "GetIconLocation"), + # SetIconLocation -> pszIconPath:LPCWSTR, iIcon:INT + "SetIconLocation": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, INT)(17, "SetIconLocation"), + # SetRelativePath -> pszPathRel:LPCWSTR, dwReserved:DWORD + "SetRelativePath": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, DWORD)(18, "SetRelativePath"), + # Resolve -> hwnd:HWND, fFlags:DWORD + "Resolve": ctypes.WINFUNCTYPE(HRESULT, HWND, DWORD)(19, "Resolve"), + # SetPath -> pszFile:LPCWSTR + "SetPath": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(20, "SetPath"), + } + +ITypeComp._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:*PVOID + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Bind -> szName:LPOLESTR, lHashVal:ULONG, wFlags:WORD, ppTInfo:**ITypeInfo, pDescKind:*DESCKIND, pBindPtr:*BINDPTR + "Bind": ctypes.WINFUNCTYPE(HRESULT, LPOLESTR, ULONG, WORD, POINTER(ITypeInfo), POINTER(DESCKIND), POINTER(BINDPTR))(3, "Bind"), + # BindType -> szName:LPOLESTR, lHashVal:ULONG, ppTInfo:**ITypeInfo, ppTComp:**ITypeComp + "BindType": ctypes.WINFUNCTYPE(HRESULT, LPOLESTR, ULONG, POINTER(ITypeInfo), POINTER(ITypeComp))(4, "BindType"), + } + +ITypeInfo._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeAttr -> ppTypeAttr:**TYPEATTR + "GetTypeAttr": ctypes.WINFUNCTYPE(HRESULT, POINTER(POINTER(TYPEATTR)))(3, "GetTypeAttr"), + # GetTypeComp -> ppTComp:**ITypeComp + "GetTypeComp": ctypes.WINFUNCTYPE(HRESULT, POINTER(ITypeComp))(4, "GetTypeComp"), + # GetFuncDesc -> index:UINT, ppFuncDesc:**FUNCDESC + "GetFuncDesc": ctypes.WINFUNCTYPE(HRESULT, UINT, POINTER(POINTER(FUNCDESC)))(5, "GetFuncDesc"), + # GetVarDesc -> index:UINT, ppVarDesc:**VARDESC + "GetVarDesc": ctypes.WINFUNCTYPE(HRESULT, UINT, POINTER(POINTER(VARDESC)))(6, "GetVarDesc"), + # GetNames -> memid:MEMBERID, rgBstrNames:*BSTR, cMaxNames:UINT, pcNames:*UINT + "GetNames": ctypes.WINFUNCTYPE(HRESULT, MEMBERID, POINTER(BSTR), UINT, POINTER(UINT))(7, "GetNames"), + # GetRefTypeOfImplType -> index:UINT, pRefType:*HREFTYPE + "GetRefTypeOfImplType": ctypes.WINFUNCTYPE(HRESULT, UINT, POINTER(HREFTYPE))(8, "GetRefTypeOfImplType"), + # GetImplTypeFlags -> index:UINT, pImplTypeFlags:*INT + "GetImplTypeFlags": ctypes.WINFUNCTYPE(HRESULT, UINT, POINTER(INT))(9, "GetImplTypeFlags"), + # GetIDsOfNames -> rgszNames:*LPOLESTR, cNames:UINT, pMemId:*MEMBERID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPOLESTR), UINT, POINTER(MEMBERID))(10, "GetIDsOfNames"), + # Invoke -> pvInstance:PVOID, memid:MEMBERID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, PVOID, MEMBERID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(11, "Invoke"), + # GetDocumentation -> memid:MEMBERID, pBstrName:*BSTR, pBstrDocString:*BSTR, pdwHelpContext:*DWORD, pBstrHelpFile:*BSTR + "GetDocumentation": ctypes.WINFUNCTYPE(HRESULT, MEMBERID, POINTER(BSTR), POINTER(BSTR), POINTER(DWORD), POINTER(BSTR))(12, "GetDocumentation"), + # GetDllEntry -> memid:MEMBERID, invKind:INVOKEKIND, pBstrDllName:*BSTR, pBstrName:*BSTR, pwOrdinal:*WORD + "GetDllEntry": ctypes.WINFUNCTYPE(HRESULT, MEMBERID, INVOKEKIND, POINTER(BSTR), POINTER(BSTR), POINTER(WORD))(13, "GetDllEntry"), + # GetRefTypeInfo -> hRefType:HREFTYPE, ppTInfo:**ITypeInfo + "GetRefTypeInfo": ctypes.WINFUNCTYPE(HRESULT, HREFTYPE, POINTER(ITypeInfo))(14, "GetRefTypeInfo"), + # AddressOfMember -> memid:MEMBERID, invKind:INVOKEKIND, ppv:*PVOID + "AddressOfMember": ctypes.WINFUNCTYPE(HRESULT, MEMBERID, INVOKEKIND, POINTER(PVOID))(15, "AddressOfMember"), + # CreateInstance -> pUnkOuter:*IUnknown, riid:REFIID, ppvObj:*PVOID + "CreateInstance": ctypes.WINFUNCTYPE(HRESULT, IUnknown, REFIID, POINTER(PVOID))(16, "CreateInstance"), + # GetMops -> memid:MEMBERID, pBstrMops:*BSTR + "GetMops": ctypes.WINFUNCTYPE(HRESULT, MEMBERID, POINTER(BSTR))(17, "GetMops"), + # GetContainingTypeLib -> ppTLib:**ITypeLib, pIndex:*UINT + "GetContainingTypeLib": ctypes.WINFUNCTYPE(HRESULT, POINTER(ITypeLib), POINTER(UINT))(18, "GetContainingTypeLib"), + # ReleaseTypeAttr -> pTypeAttr:*TYPEATTR + "ReleaseTypeAttr": ctypes.WINFUNCTYPE(DWORD, POINTER(TYPEATTR))(19, "ReleaseTypeAttr"), + # ReleaseFuncDesc -> pFuncDesc:*FUNCDESC + "ReleaseFuncDesc": ctypes.WINFUNCTYPE(DWORD, POINTER(FUNCDESC))(20, "ReleaseFuncDesc"), + # ReleaseVarDesc -> pVarDesc:*VARDESC + "ReleaseVarDesc": ctypes.WINFUNCTYPE(DWORD, POINTER(VARDESC))(21, "ReleaseVarDesc"), + } + +ITypeLib._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> + "GetTypeInfoCount": ctypes.WINFUNCTYPE(UINT)(3, "GetTypeInfoCount"), + # GetTypeInfo -> index:UINT, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetTypeInfoType -> index:UINT, pTKind:*TYPEKIND + "GetTypeInfoType": ctypes.WINFUNCTYPE(HRESULT, UINT, POINTER(TYPEKIND))(5, "GetTypeInfoType"), + # GetTypeInfoOfGuid -> guid:REFGUID, ppTinfo:**ITypeInfo + "GetTypeInfoOfGuid": ctypes.WINFUNCTYPE(HRESULT, REFGUID, POINTER(ITypeInfo))(6, "GetTypeInfoOfGuid"), + # GetLibAttr -> ppTLibAttr:**TLIBATTR + "GetLibAttr": ctypes.WINFUNCTYPE(HRESULT, POINTER(POINTER(TLIBATTR)))(7, "GetLibAttr"), + # GetTypeComp -> ppTComp:**ITypeComp + "GetTypeComp": ctypes.WINFUNCTYPE(HRESULT, POINTER(ITypeComp))(8, "GetTypeComp"), + # GetDocumentation -> index:INT, pBstrName:*BSTR, pBstrDocString:*BSTR, pdwHelpContext:*DWORD, pBstrHelpFile:*BSTR + "GetDocumentation": ctypes.WINFUNCTYPE(HRESULT, INT, POINTER(BSTR), POINTER(BSTR), POINTER(DWORD), POINTER(BSTR))(9, "GetDocumentation"), + # IsName -> szNameBuf:LPOLESTR, lHashVal:ULONG, pfName:*BOOL + "IsName": ctypes.WINFUNCTYPE(HRESULT, LPOLESTR, ULONG, POINTER(BOOL))(10, "IsName"), + # FindName -> szNameBuf:LPOLESTR, lHashVal:ULONG, ppTInfo:**ITypeInfo, rgMemId:*MEMBERID, pcFound:*USHORT + "FindName": ctypes.WINFUNCTYPE(HRESULT, LPOLESTR, ULONG, POINTER(ITypeInfo), POINTER(MEMBERID), POINTER(USHORT))(11, "FindName"), + # ReleaseTLibAttr -> pTLibAttr:*TLIBATTR + "ReleaseTLibAttr": ctypes.WINFUNCTYPE(DWORD, POINTER(TLIBATTR))(12, "ReleaseTLibAttr"), + } + +IUnknown._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + } + +IBackgroundCopyCallback._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # JobTransferred -> pJob:*IBackgroundCopyJob + "JobTransferred": ctypes.WINFUNCTYPE(HRESULT, IBackgroundCopyJob)(3, "JobTransferred"), + # JobError -> pJob:*IBackgroundCopyJob, pError:*IBackgroundCopyError + "JobError": ctypes.WINFUNCTYPE(HRESULT, IBackgroundCopyJob, IBackgroundCopyError)(4, "JobError"), + # JobModification -> pJob:*IBackgroundCopyJob, dwReserved:DWORD + "JobModification": ctypes.WINFUNCTYPE(HRESULT, IBackgroundCopyJob, DWORD)(5, "JobModification"), + } + +IBackgroundCopyError._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetError -> pContext:*BG_ERROR_CONTEXT, pCode:*HRESULT + "GetError": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_ERROR_CONTEXT), POINTER(HRESULT))(3, "GetError"), + # GetFile -> pVal:**IBackgroundCopyFile + "GetFile": ctypes.WINFUNCTYPE(HRESULT, POINTER(IBackgroundCopyFile))(4, "GetFile"), + # GetErrorDescription -> LanguageId:DWORD, pErrorDescription:*LPWSTR + "GetErrorDescription": ctypes.WINFUNCTYPE(HRESULT, DWORD, POINTER(LPWSTR))(5, "GetErrorDescription"), + # GetErrorContextDescription -> LanguageId:DWORD, pContextDescription:*LPWSTR + "GetErrorContextDescription": ctypes.WINFUNCTYPE(HRESULT, DWORD, POINTER(LPWSTR))(6, "GetErrorContextDescription"), + # GetProtocol -> pProtocol:*LPWSTR + "GetProtocol": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(7, "GetProtocol"), + } + +IBackgroundCopyFile._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetRemoteName -> pVal:*LPWSTR + "GetRemoteName": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(3, "GetRemoteName"), + # GetLocalName -> pVal:*LPWSTR + "GetLocalName": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(4, "GetLocalName"), + # GetProgress -> pVal:*BG_FILE_PROGRESS + "GetProgress": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_FILE_PROGRESS))(5, "GetProgress"), + } + +IBackgroundCopyFile2._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetRemoteName -> pVal:*LPWSTR + "GetRemoteName": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(3, "GetRemoteName"), + # GetLocalName -> pVal:*LPWSTR + "GetLocalName": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(4, "GetLocalName"), + # GetProgress -> pVal:*BG_FILE_PROGRESS + "GetProgress": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_FILE_PROGRESS))(5, "GetProgress"), + # GetFileRanges -> RangeCount:*DWORD, Ranges:**BG_FILE_RANGE + "GetFileRanges": ctypes.WINFUNCTYPE(HRESULT, POINTER(DWORD), POINTER(POINTER(BG_FILE_RANGE)))(6, "GetFileRanges"), + # SetRemoteName -> Val:LPCWSTR + "SetRemoteName": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(7, "SetRemoteName"), + } + +IBackgroundCopyFile3._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetRemoteName -> pVal:*LPWSTR + "GetRemoteName": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(3, "GetRemoteName"), + # GetLocalName -> pVal:*LPWSTR + "GetLocalName": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(4, "GetLocalName"), + # GetProgress -> pVal:*BG_FILE_PROGRESS + "GetProgress": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_FILE_PROGRESS))(5, "GetProgress"), + # GetFileRanges -> RangeCount:*DWORD, Ranges:**BG_FILE_RANGE + "GetFileRanges": ctypes.WINFUNCTYPE(HRESULT, POINTER(DWORD), POINTER(POINTER(BG_FILE_RANGE)))(6, "GetFileRanges"), + # SetRemoteName -> Val:LPCWSTR + "SetRemoteName": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(7, "SetRemoteName"), + # GetTemporaryName -> pFilename:*LPWSTR + "GetTemporaryName": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(8, "GetTemporaryName"), + # SetValidationState -> state:BOOL + "SetValidationState": ctypes.WINFUNCTYPE(HRESULT, BOOL)(9, "SetValidationState"), + # GetValidationState -> pState:*BOOL + "GetValidationState": ctypes.WINFUNCTYPE(HRESULT, POINTER(BOOL))(10, "GetValidationState"), + # IsDownloadedFromPeer -> pVal:*BOOL + "IsDownloadedFromPeer": ctypes.WINFUNCTYPE(HRESULT, POINTER(BOOL))(11, "IsDownloadedFromPeer"), + } + +IBackgroundCopyJob._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # AddFileSet -> cFileCount:ULONG, pFileSet:*BG_FILE_INFO + "AddFileSet": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(BG_FILE_INFO))(3, "AddFileSet"), + # AddFile -> RemoteUrl:LPCWSTR, LocalName:LPCWSTR + "AddFile": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LPCWSTR)(4, "AddFile"), + # EnumFiles -> pEnum:**IEnumBackgroundCopyFiles + "EnumFiles": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumBackgroundCopyFiles))(5, "EnumFiles"), + # Suspend -> + "Suspend": ctypes.WINFUNCTYPE(HRESULT)(6, "Suspend"), + # Resume -> + "Resume": ctypes.WINFUNCTYPE(HRESULT)(7, "Resume"), + # Cancel -> + "Cancel": ctypes.WINFUNCTYPE(HRESULT)(8, "Cancel"), + # Complete -> + "Complete": ctypes.WINFUNCTYPE(HRESULT)(9, "Complete"), + # GetId -> pVal:*GUID + "GetId": ctypes.WINFUNCTYPE(HRESULT, POINTER(GUID))(10, "GetId"), + # GetType -> pVal:*BG_JOB_TYPE + "GetType": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_TYPE))(11, "GetType"), + # GetProgress -> pVal:*BG_JOB_PROGRESS + "GetProgress": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_PROGRESS))(12, "GetProgress"), + # GetTimes -> pVal:*BG_JOB_TIMES + "GetTimes": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_TIMES))(13, "GetTimes"), + # GetState -> pVal:*BG_JOB_STATE + "GetState": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_STATE))(14, "GetState"), + # GetError -> ppError:**IBackgroundCopyError + "GetError": ctypes.WINFUNCTYPE(HRESULT, POINTER(IBackgroundCopyError))(15, "GetError"), + # GetOwner -> pVal:*LPWSTR + "GetOwner": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(16, "GetOwner"), + # SetDisplayName -> Val:LPCWSTR + "SetDisplayName": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(17, "SetDisplayName"), + # GetDisplayName -> pVal:*LPWSTR + "GetDisplayName": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(18, "GetDisplayName"), + # SetDescription -> Val:LPCWSTR + "SetDescription": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(19, "SetDescription"), + # GetDescription -> pVal:*LPWSTR + "GetDescription": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(20, "GetDescription"), + # SetPriority -> Val:BG_JOB_PRIORITY + "SetPriority": ctypes.WINFUNCTYPE(HRESULT, BG_JOB_PRIORITY)(21, "SetPriority"), + # GetPriority -> pVal:*BG_JOB_PRIORITY + "GetPriority": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_PRIORITY))(22, "GetPriority"), + # SetNotifyFlags -> Val:ULONG + "SetNotifyFlags": ctypes.WINFUNCTYPE(HRESULT, ULONG)(23, "SetNotifyFlags"), + # GetNotifyFlags -> pVal:*ULONG + "GetNotifyFlags": ctypes.WINFUNCTYPE(HRESULT, POINTER(ULONG))(24, "GetNotifyFlags"), + # SetNotifyInterface -> Val:*IUnknown + "SetNotifyInterface": ctypes.WINFUNCTYPE(HRESULT, IUnknown)(25, "SetNotifyInterface"), + # GetNotifyInterface -> pVal:**IUnknown + "GetNotifyInterface": ctypes.WINFUNCTYPE(HRESULT, POINTER(IUnknown))(26, "GetNotifyInterface"), + # SetMinimumRetryDelay -> Seconds:ULONG + "SetMinimumRetryDelay": ctypes.WINFUNCTYPE(HRESULT, ULONG)(27, "SetMinimumRetryDelay"), + # GetMinimumRetryDelay -> Seconds:*ULONG + "GetMinimumRetryDelay": ctypes.WINFUNCTYPE(HRESULT, POINTER(ULONG))(28, "GetMinimumRetryDelay"), + # SetNoProgressTimeout -> Seconds:ULONG + "SetNoProgressTimeout": ctypes.WINFUNCTYPE(HRESULT, ULONG)(29, "SetNoProgressTimeout"), + # GetNoProgressTimeout -> Seconds:*ULONG + "GetNoProgressTimeout": ctypes.WINFUNCTYPE(HRESULT, POINTER(ULONG))(30, "GetNoProgressTimeout"), + # GetErrorCount -> Errors:*ULONG + "GetErrorCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(ULONG))(31, "GetErrorCount"), + # SetProxySettings -> ProxyUsage:BG_JOB_PROXY_USAGE, ProxyList:*WCHAR, ProxyBypassList:*WCHAR + "SetProxySettings": ctypes.WINFUNCTYPE(HRESULT, BG_JOB_PROXY_USAGE, POINTER(WCHAR), POINTER(WCHAR))(32, "SetProxySettings"), + # GetProxySettings -> pProxyUsage:*BG_JOB_PROXY_USAGE, pProxyList:*LPWSTR, pProxyBypassList:*LPWSTR + "GetProxySettings": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_PROXY_USAGE), POINTER(LPWSTR), POINTER(LPWSTR))(33, "GetProxySettings"), + # TakeOwnership -> + "TakeOwnership": ctypes.WINFUNCTYPE(HRESULT)(34, "TakeOwnership"), + } + +IBackgroundCopyJob2._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # AddFileSet -> cFileCount:ULONG, pFileSet:*BG_FILE_INFO + "AddFileSet": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(BG_FILE_INFO))(3, "AddFileSet"), + # AddFile -> RemoteUrl:LPCWSTR, LocalName:LPCWSTR + "AddFile": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LPCWSTR)(4, "AddFile"), + # EnumFiles -> pEnum:**IEnumBackgroundCopyFiles + "EnumFiles": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumBackgroundCopyFiles))(5, "EnumFiles"), + # Suspend -> + "Suspend": ctypes.WINFUNCTYPE(HRESULT)(6, "Suspend"), + # Resume -> + "Resume": ctypes.WINFUNCTYPE(HRESULT)(7, "Resume"), + # Cancel -> + "Cancel": ctypes.WINFUNCTYPE(HRESULT)(8, "Cancel"), + # Complete -> + "Complete": ctypes.WINFUNCTYPE(HRESULT)(9, "Complete"), + # GetId -> pVal:*GUID + "GetId": ctypes.WINFUNCTYPE(HRESULT, POINTER(GUID))(10, "GetId"), + # GetType -> pVal:*BG_JOB_TYPE + "GetType": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_TYPE))(11, "GetType"), + # GetProgress -> pVal:*BG_JOB_PROGRESS + "GetProgress": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_PROGRESS))(12, "GetProgress"), + # GetTimes -> pVal:*BG_JOB_TIMES + "GetTimes": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_TIMES))(13, "GetTimes"), + # GetState -> pVal:*BG_JOB_STATE + "GetState": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_STATE))(14, "GetState"), + # GetError -> ppError:**IBackgroundCopyError + "GetError": ctypes.WINFUNCTYPE(HRESULT, POINTER(IBackgroundCopyError))(15, "GetError"), + # GetOwner -> pVal:*LPWSTR + "GetOwner": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(16, "GetOwner"), + # SetDisplayName -> Val:LPCWSTR + "SetDisplayName": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(17, "SetDisplayName"), + # GetDisplayName -> pVal:*LPWSTR + "GetDisplayName": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(18, "GetDisplayName"), + # SetDescription -> Val:LPCWSTR + "SetDescription": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(19, "SetDescription"), + # GetDescription -> pVal:*LPWSTR + "GetDescription": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(20, "GetDescription"), + # SetPriority -> Val:BG_JOB_PRIORITY + "SetPriority": ctypes.WINFUNCTYPE(HRESULT, BG_JOB_PRIORITY)(21, "SetPriority"), + # GetPriority -> pVal:*BG_JOB_PRIORITY + "GetPriority": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_PRIORITY))(22, "GetPriority"), + # SetNotifyFlags -> Val:ULONG + "SetNotifyFlags": ctypes.WINFUNCTYPE(HRESULT, ULONG)(23, "SetNotifyFlags"), + # GetNotifyFlags -> pVal:*ULONG + "GetNotifyFlags": ctypes.WINFUNCTYPE(HRESULT, POINTER(ULONG))(24, "GetNotifyFlags"), + # SetNotifyInterface -> Val:*IUnknown + "SetNotifyInterface": ctypes.WINFUNCTYPE(HRESULT, IUnknown)(25, "SetNotifyInterface"), + # GetNotifyInterface -> pVal:**IUnknown + "GetNotifyInterface": ctypes.WINFUNCTYPE(HRESULT, POINTER(IUnknown))(26, "GetNotifyInterface"), + # SetMinimumRetryDelay -> Seconds:ULONG + "SetMinimumRetryDelay": ctypes.WINFUNCTYPE(HRESULT, ULONG)(27, "SetMinimumRetryDelay"), + # GetMinimumRetryDelay -> Seconds:*ULONG + "GetMinimumRetryDelay": ctypes.WINFUNCTYPE(HRESULT, POINTER(ULONG))(28, "GetMinimumRetryDelay"), + # SetNoProgressTimeout -> Seconds:ULONG + "SetNoProgressTimeout": ctypes.WINFUNCTYPE(HRESULT, ULONG)(29, "SetNoProgressTimeout"), + # GetNoProgressTimeout -> Seconds:*ULONG + "GetNoProgressTimeout": ctypes.WINFUNCTYPE(HRESULT, POINTER(ULONG))(30, "GetNoProgressTimeout"), + # GetErrorCount -> Errors:*ULONG + "GetErrorCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(ULONG))(31, "GetErrorCount"), + # SetProxySettings -> ProxyUsage:BG_JOB_PROXY_USAGE, ProxyList:*WCHAR, ProxyBypassList:*WCHAR + "SetProxySettings": ctypes.WINFUNCTYPE(HRESULT, BG_JOB_PROXY_USAGE, POINTER(WCHAR), POINTER(WCHAR))(32, "SetProxySettings"), + # GetProxySettings -> pProxyUsage:*BG_JOB_PROXY_USAGE, pProxyList:*LPWSTR, pProxyBypassList:*LPWSTR + "GetProxySettings": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_PROXY_USAGE), POINTER(LPWSTR), POINTER(LPWSTR))(33, "GetProxySettings"), + # TakeOwnership -> + "TakeOwnership": ctypes.WINFUNCTYPE(HRESULT)(34, "TakeOwnership"), + # SetNotifyCmdLine -> Program:LPCWSTR, Parameters:LPCWSTR + "SetNotifyCmdLine": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LPCWSTR)(35, "SetNotifyCmdLine"), + # GetNotifyCmdLine -> pProgram:*LPWSTR, pParameters:*LPWSTR + "GetNotifyCmdLine": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR), POINTER(LPWSTR))(36, "GetNotifyCmdLine"), + # GetReplyProgress -> pProgress:*BG_JOB_REPLY_PROGRESS + "GetReplyProgress": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_REPLY_PROGRESS))(37, "GetReplyProgress"), + # GetReplyData -> ppBuffer:**BYTE, pLength:*UINT64 + "GetReplyData": ctypes.WINFUNCTYPE(HRESULT, POINTER(POINTER(BYTE)), POINTER(UINT64))(38, "GetReplyData"), + # SetReplyFileName -> ReplyFileName:LPCWSTR + "SetReplyFileName": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(39, "SetReplyFileName"), + # GetReplyFileName -> pReplyFileName:*LPWSTR + "GetReplyFileName": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(40, "GetReplyFileName"), + # SetCredentials -> credentials:*BG_AUTH_CREDENTIALS + "SetCredentials": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_AUTH_CREDENTIALS))(41, "SetCredentials"), + # RemoveCredentials -> Target:BG_AUTH_TARGET, Scheme:BG_AUTH_SCHEME + "RemoveCredentials": ctypes.WINFUNCTYPE(HRESULT, BG_AUTH_TARGET, BG_AUTH_SCHEME)(42, "RemoveCredentials"), + } + +IBackgroundCopyManager._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # CreateJob -> DisplayName:LPCWSTR, Type:BG_JOB_TYPE, pJobId:*GUID, ppJob:**IBackgroundCopyJob + "CreateJob": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, BG_JOB_TYPE, POINTER(GUID), POINTER(IBackgroundCopyJob))(3, "CreateJob"), + # GetJob -> jobID:REFGUID, ppJob:**IBackgroundCopyJob + "GetJob": ctypes.WINFUNCTYPE(HRESULT, REFGUID, POINTER(IBackgroundCopyJob))(4, "GetJob"), + # EnumJobs -> dwFlags:DWORD, ppEnum:**IEnumBackgroundCopyJobs + "EnumJobs": ctypes.WINFUNCTYPE(HRESULT, DWORD, POINTER(IEnumBackgroundCopyJobs))(5, "EnumJobs"), + # GetErrorDescription -> hResult:HRESULT, LanguageId:DWORD, pErrorDescription:*LPWSTR + "GetErrorDescription": ctypes.WINFUNCTYPE(HRESULT, HRESULT, DWORD, POINTER(LPWSTR))(6, "GetErrorDescription"), + } + +IEnumBackgroundCopyFiles._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Next -> celt:ULONG, rgelt:**IBackgroundCopyFile, pceltFetched:*ULONG + "Next": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(IBackgroundCopyFile), POINTER(ULONG))(3, "Next"), + # Skip -> celt:ULONG + "Skip": ctypes.WINFUNCTYPE(HRESULT, ULONG)(4, "Skip"), + # Reset -> + "Reset": ctypes.WINFUNCTYPE(HRESULT)(5, "Reset"), + # Clone -> ppenum:**IEnumBackgroundCopyFiles + "Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumBackgroundCopyFiles))(6, "Clone"), + # GetCount -> puCount:*ULONG + "GetCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(ULONG))(7, "GetCount"), + } + +IEnumBackgroundCopyJobs._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Next -> celt:ULONG, rgelt:**IBackgroundCopyJob, pceltFetched:*ULONG + "Next": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(IBackgroundCopyJob), POINTER(ULONG))(3, "Next"), + # Skip -> celt:ULONG + "Skip": ctypes.WINFUNCTYPE(HRESULT, ULONG)(4, "Skip"), + # Reset -> + "Reset": ctypes.WINFUNCTYPE(HRESULT)(5, "Reset"), + # Clone -> ppenum:**IEnumBackgroundCopyJobs + "Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumBackgroundCopyJobs))(6, "Clone"), + # GetCount -> puCount:*ULONG + "GetCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(ULONG))(7, "GetCount"), + } + +IBindCtx._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # RegisterObjectBound -> punk:*IUnknown + "RegisterObjectBound": ctypes.WINFUNCTYPE(HRESULT, IUnknown)(3, "RegisterObjectBound"), + # RevokeObjectBound -> punk:*IUnknown + "RevokeObjectBound": ctypes.WINFUNCTYPE(HRESULT, IUnknown)(4, "RevokeObjectBound"), + # ReleaseBoundObjects -> + "ReleaseBoundObjects": ctypes.WINFUNCTYPE(HRESULT)(5, "ReleaseBoundObjects"), + # SetBindOptions -> pbindopts:*BIND_OPTS + "SetBindOptions": ctypes.WINFUNCTYPE(HRESULT, POINTER(BIND_OPTS))(6, "SetBindOptions"), + # GetBindOptions -> pbindopts:*BIND_OPTS + "GetBindOptions": ctypes.WINFUNCTYPE(HRESULT, POINTER(BIND_OPTS))(7, "GetBindOptions"), + # GetRunningObjectTable -> pprot:**IRunningObjectTable + "GetRunningObjectTable": ctypes.WINFUNCTYPE(HRESULT, POINTER(IRunningObjectTable))(8, "GetRunningObjectTable"), + # RegisterObjectParam -> pszKey:LPOLESTR, punk:*IUnknown + "RegisterObjectParam": ctypes.WINFUNCTYPE(HRESULT, LPOLESTR, IUnknown)(9, "RegisterObjectParam"), + # GetObjectParam -> pszKey:LPOLESTR, ppunk:**IUnknown + "GetObjectParam": ctypes.WINFUNCTYPE(HRESULT, LPOLESTR, POINTER(IUnknown))(10, "GetObjectParam"), + # EnumObjectParam -> ppenum:**IEnumString + "EnumObjectParam": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumString))(11, "EnumObjectParam"), + # RevokeObjectParam -> pszKey:LPOLESTR + "RevokeObjectParam": ctypes.WINFUNCTYPE(HRESULT, LPOLESTR)(12, "RevokeObjectParam"), + } + +IEnumExplorerCommand._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Next -> celt:ULONG, pUICommand:**IExplorerCommand, pceltFetched:*ULONG + "Next": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(IExplorerCommand), POINTER(ULONG))(3, "Next"), + # Skip -> celt:ULONG + "Skip": ctypes.WINFUNCTYPE(HRESULT, ULONG)(4, "Skip"), + # Reset -> + "Reset": ctypes.WINFUNCTYPE(HRESULT)(5, "Reset"), + # Clone -> ppenum:**IEnumExplorerCommand + "Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumExplorerCommand))(6, "Clone"), + } + +IEnumMoniker._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Next -> celt:ULONG, rgelt:**IMoniker, pceltFetched:*ULONG + "Next": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(IMoniker), POINTER(ULONG))(3, "Next"), + # Skip -> celt:ULONG + "Skip": ctypes.WINFUNCTYPE(HRESULT, ULONG)(4, "Skip"), + # Reset -> + "Reset": ctypes.WINFUNCTYPE(HRESULT)(5, "Reset"), + # Clone -> ppenum:**IEnumMoniker + "Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumMoniker))(6, "Clone"), + } + +IEnumShellItems._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Next -> celt:ULONG, rgelt:**IShellItem, pceltFetched:*ULONG + "Next": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(IShellItem), POINTER(ULONG))(3, "Next"), + # Skip -> celt:ULONG + "Skip": ctypes.WINFUNCTYPE(HRESULT, ULONG)(4, "Skip"), + # Reset -> + "Reset": ctypes.WINFUNCTYPE(HRESULT)(5, "Reset"), + # Clone -> ppenum:**IEnumShellItems + "Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumShellItems))(6, "Clone"), + } + +IEnumString._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Next -> celt:ULONG, rgelt:*LPOLESTR, pceltFetched:*ULONG + "Next": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(LPOLESTR), POINTER(ULONG))(3, "Next"), + # Skip -> celt:ULONG + "Skip": ctypes.WINFUNCTYPE(HRESULT, ULONG)(4, "Skip"), + # Reset -> + "Reset": ctypes.WINFUNCTYPE(HRESULT)(5, "Reset"), + # Clone -> ppenum:**IEnumString + "Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumString))(6, "Clone"), + } + +IExplorerCommand._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTitle -> psiItemArray:*IShellItemArray, ppszName:*LPWSTR + "GetTitle": ctypes.WINFUNCTYPE(HRESULT, IShellItemArray, POINTER(LPWSTR))(3, "GetTitle"), + # GetIcon -> psiItemArray:*IShellItemArray, ppszIcon:*LPWSTR + "GetIcon": ctypes.WINFUNCTYPE(HRESULT, IShellItemArray, POINTER(LPWSTR))(4, "GetIcon"), + # GetToolTip -> psiItemArray:*IShellItemArray, ppszInfotip:*LPWSTR + "GetToolTip": ctypes.WINFUNCTYPE(HRESULT, IShellItemArray, POINTER(LPWSTR))(5, "GetToolTip"), + # GetCanonicalName -> pguidCommandName:*GUID + "GetCanonicalName": ctypes.WINFUNCTYPE(HRESULT, POINTER(GUID))(6, "GetCanonicalName"), + # GetState -> psiItemArray:*IShellItemArray, fOkToBeSlow:BOOL, pCmdState:*EXPCMDSTATE + "GetState": ctypes.WINFUNCTYPE(HRESULT, IShellItemArray, BOOL, POINTER(EXPCMDSTATE))(7, "GetState"), + # Invoke -> psiItemArray:*IShellItemArray, pbc:*IBindCtx + "Invoke": ctypes.WINFUNCTYPE(HRESULT, IShellItemArray, IBindCtx)(8, "Invoke"), + # GetFlags -> pFlags:*EXPCMDFLAGS + "GetFlags": ctypes.WINFUNCTYPE(HRESULT, POINTER(EXPCMDFLAGS))(9, "GetFlags"), + # EnumSubCommands -> ppEnum:**IEnumExplorerCommand + "EnumSubCommands": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumExplorerCommand))(10, "EnumSubCommands"), + } + +IMoniker._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetClassID -> pClassID:*CLSID + "GetClassID": ctypes.WINFUNCTYPE(HRESULT, POINTER(CLSID))(3, "GetClassID"), + # IsDirty -> + "IsDirty": ctypes.WINFUNCTYPE(HRESULT)(4, "IsDirty"), + # Load -> pStm:*IStream + "Load": ctypes.WINFUNCTYPE(HRESULT, IStream)(5, "Load"), + # Save -> pStm:*IStream, fClearDirty:BOOL + "Save": ctypes.WINFUNCTYPE(HRESULT, IStream, BOOL)(6, "Save"), + # GetSizeMax -> pcbSize:*ULARGE_INTEGER + "GetSizeMax": ctypes.WINFUNCTYPE(HRESULT, POINTER(ULARGE_INTEGER))(7, "GetSizeMax"), + # BindToObject -> pbc:*IBindCtx, pmkToLeft:*IMoniker, riidResult:REFIID, ppvResult:**void + "BindToObject": ctypes.WINFUNCTYPE(HRESULT, IBindCtx, IMoniker, REFIID, POINTER(PVOID))(8, "BindToObject"), + # BindToStorage -> pbc:*IBindCtx, pmkToLeft:*IMoniker, riid:REFIID, ppvObj:**void + "BindToStorage": ctypes.WINFUNCTYPE(HRESULT, IBindCtx, IMoniker, REFIID, POINTER(PVOID))(9, "BindToStorage"), + # Reduce -> pbc:*IBindCtx, dwReduceHowFar:DWORD, ppmkToLeft:**IMoniker, ppmkReduced:**IMoniker + "Reduce": ctypes.WINFUNCTYPE(HRESULT, IBindCtx, DWORD, POINTER(IMoniker), POINTER(IMoniker))(10, "Reduce"), + # ComposeWith -> pmkRight:*IMoniker, fOnlyIfNotGeneric:BOOL, ppmkComposite:**IMoniker + "ComposeWith": ctypes.WINFUNCTYPE(HRESULT, IMoniker, BOOL, POINTER(IMoniker))(11, "ComposeWith"), + # Enum -> fForward:BOOL, ppenumMoniker:**IEnumMoniker + "Enum": ctypes.WINFUNCTYPE(HRESULT, BOOL, POINTER(IEnumMoniker))(12, "Enum"), + # IsEqual -> pmkOtherMoniker:*IMoniker + "IsEqual": ctypes.WINFUNCTYPE(HRESULT, IMoniker)(13, "IsEqual"), + # Hash -> pdwHash:*DWORD + "Hash": ctypes.WINFUNCTYPE(HRESULT, POINTER(DWORD))(14, "Hash"), + # IsRunning -> pbc:*IBindCtx, pmkToLeft:*IMoniker, pmkNewlyRunning:*IMoniker + "IsRunning": ctypes.WINFUNCTYPE(HRESULT, IBindCtx, IMoniker, IMoniker)(15, "IsRunning"), + # GetTimeOfLastChange -> pbc:*IBindCtx, pmkToLeft:*IMoniker, pFileTime:*FILETIME + "GetTimeOfLastChange": ctypes.WINFUNCTYPE(HRESULT, IBindCtx, IMoniker, POINTER(FILETIME))(16, "GetTimeOfLastChange"), + # Inverse -> ppmk:**IMoniker + "Inverse": ctypes.WINFUNCTYPE(HRESULT, POINTER(IMoniker))(17, "Inverse"), + # CommonPrefixWith -> pmkOther:*IMoniker, ppmkPrefix:**IMoniker + "CommonPrefixWith": ctypes.WINFUNCTYPE(HRESULT, IMoniker, POINTER(IMoniker))(18, "CommonPrefixWith"), + # RelativePathTo -> pmkOther:*IMoniker, ppmkRelPath:**IMoniker + "RelativePathTo": ctypes.WINFUNCTYPE(HRESULT, IMoniker, POINTER(IMoniker))(19, "RelativePathTo"), + # GetDisplayName -> pbc:*IBindCtx, pmkToLeft:*IMoniker, ppszDisplayName:*LPOLESTR + "GetDisplayName": ctypes.WINFUNCTYPE(HRESULT, IBindCtx, IMoniker, POINTER(LPOLESTR))(20, "GetDisplayName"), + # ParseDisplayName -> pbc:*IBindCtx, pmkToLeft:*IMoniker, pszDisplayName:LPOLESTR, pchEaten:*ULONG, ppmkOut:**IMoniker + "ParseDisplayName": ctypes.WINFUNCTYPE(HRESULT, IBindCtx, IMoniker, LPOLESTR, POINTER(ULONG), POINTER(IMoniker))(21, "ParseDisplayName"), + # IsSystemMoniker -> pdwMksys:*DWORD + "IsSystemMoniker": ctypes.WINFUNCTYPE(HRESULT, POINTER(DWORD))(22, "IsSystemMoniker"), + } + +IRunningObjectTable._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Register -> grfFlags:DWORD, punkObject:*IUnknown, pmkObjectName:*IMoniker, pdwRegister:*DWORD + "Register": ctypes.WINFUNCTYPE(HRESULT, DWORD, IUnknown, IMoniker, POINTER(DWORD))(3, "Register"), + # Revoke -> dwRegister:DWORD + "Revoke": ctypes.WINFUNCTYPE(HRESULT, DWORD)(4, "Revoke"), + # IsRunning -> pmkObjectName:*IMoniker + "IsRunning": ctypes.WINFUNCTYPE(HRESULT, IMoniker)(5, "IsRunning"), + # GetObject -> pmkObjectName:*IMoniker, ppunkObject:**IUnknown + "GetObject": ctypes.WINFUNCTYPE(HRESULT, IMoniker, POINTER(IUnknown))(6, "GetObject"), + # NoteChangeTime -> dwRegister:DWORD, pfiletime:*FILETIME + "NoteChangeTime": ctypes.WINFUNCTYPE(HRESULT, DWORD, POINTER(FILETIME))(7, "NoteChangeTime"), + # GetTimeOfLastChange -> pmkObjectName:*IMoniker, pfiletime:*FILETIME + "GetTimeOfLastChange": ctypes.WINFUNCTYPE(HRESULT, IMoniker, POINTER(FILETIME))(8, "GetTimeOfLastChange"), + # EnumRunning -> ppenumMoniker:**IEnumMoniker + "EnumRunning": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumMoniker))(9, "EnumRunning"), + } + +IShellItem._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # BindToHandler -> pbc:*IBindCtx, bhid:REFGUID, riid:REFIID, ppv:**void + "BindToHandler": ctypes.WINFUNCTYPE(HRESULT, IBindCtx, REFGUID, REFIID, POINTER(PVOID))(3, "BindToHandler"), + # GetParent -> ppsi:**IShellItem + "GetParent": ctypes.WINFUNCTYPE(HRESULT, POINTER(IShellItem))(4, "GetParent"), + # GetDisplayName -> sigdnName:SIGDN, ppszName:*LPWSTR + "GetDisplayName": ctypes.WINFUNCTYPE(HRESULT, SIGDN, POINTER(LPWSTR))(5, "GetDisplayName"), + # GetAttributes -> sfgaoMask:SFGAOF, psfgaoAttribs:*SFGAOF + "GetAttributes": ctypes.WINFUNCTYPE(HRESULT, SFGAOF, POINTER(SFGAOF))(6, "GetAttributes"), + # Compare -> psi:*IShellItem, hint:SICHINTF, piOrder:*INT + "Compare": ctypes.WINFUNCTYPE(HRESULT, IShellItem, SICHINTF, POINTER(INT))(7, "Compare"), + } + +IShellItemArray._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # BindToHandler -> pbc:*IBindCtx, bhid:REFGUID, riid:REFIID, ppvOut:**void + "BindToHandler": ctypes.WINFUNCTYPE(HRESULT, IBindCtx, REFGUID, REFIID, POINTER(PVOID))(3, "BindToHandler"), + # GetPropertyStore -> flags:GETPROPERTYSTOREFLAGS, riid:REFIID, ppv:**void + "GetPropertyStore": ctypes.WINFUNCTYPE(HRESULT, GETPROPERTYSTOREFLAGS, REFIID, POINTER(PVOID))(4, "GetPropertyStore"), + # GetPropertyDescriptionList -> keyType:REFPROPERTYKEY, riid:REFIID, ppv:**void + "GetPropertyDescriptionList": ctypes.WINFUNCTYPE(HRESULT, REFPROPERTYKEY, REFIID, POINTER(PVOID))(5, "GetPropertyDescriptionList"), + # GetAttributes -> AttribFlags:SIATTRIBFLAGS, sfgaoMask:SFGAOF, psfgaoAttribs:*SFGAOF + "GetAttributes": ctypes.WINFUNCTYPE(HRESULT, SIATTRIBFLAGS, SFGAOF, POINTER(SFGAOF))(6, "GetAttributes"), + # GetCount -> pdwNumItems:*DWORD + "GetCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(DWORD))(7, "GetCount"), + # GetItemAt -> dwIndex:DWORD, ppsi:**IShellItem + "GetItemAt": ctypes.WINFUNCTYPE(HRESULT, DWORD, POINTER(IShellItem))(8, "GetItemAt"), + # EnumItems -> ppenumShellItems:**IEnumShellItems + "EnumItems": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumShellItems))(9, "EnumItems"), + } + +IStream._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Read -> pv:*void, cb:ULONG, pcbRead:*ULONG + "Read": ctypes.WINFUNCTYPE(HRESULT, PVOID, ULONG, POINTER(ULONG))(3, "Read"), + # Write -> pv:*void, cb:ULONG, pcbWritten:*ULONG + "Write": ctypes.WINFUNCTYPE(HRESULT, PVOID, ULONG, POINTER(ULONG))(4, "Write"), + # Seek -> dlibMove:LARGE_INTEGER, dwOrigin:DWORD, plibNewPosition:*ULARGE_INTEGER + "Seek": ctypes.WINFUNCTYPE(HRESULT, LARGE_INTEGER, DWORD, POINTER(ULARGE_INTEGER))(5, "Seek"), + # SetSize -> libNewSize:ULARGE_INTEGER + "SetSize": ctypes.WINFUNCTYPE(HRESULT, ULARGE_INTEGER)(6, "SetSize"), + # CopyTo -> pstm:*IStream, cb:ULARGE_INTEGER, pcbRead:*ULARGE_INTEGER, pcbWritten:*ULARGE_INTEGER + "CopyTo": ctypes.WINFUNCTYPE(HRESULT, IStream, ULARGE_INTEGER, POINTER(ULARGE_INTEGER), POINTER(ULARGE_INTEGER))(7, "CopyTo"), + # Commit -> grfCommitFlags:DWORD + "Commit": ctypes.WINFUNCTYPE(HRESULT, DWORD)(8, "Commit"), + # Revert -> + "Revert": ctypes.WINFUNCTYPE(HRESULT)(9, "Revert"), + # LockRegion -> libOffset:ULARGE_INTEGER, cb:ULARGE_INTEGER, dwLockType:DWORD + "LockRegion": ctypes.WINFUNCTYPE(HRESULT, ULARGE_INTEGER, ULARGE_INTEGER, DWORD)(10, "LockRegion"), + # UnlockRegion -> libOffset:ULARGE_INTEGER, cb:ULARGE_INTEGER, dwLockType:DWORD + "UnlockRegion": ctypes.WINFUNCTYPE(HRESULT, ULARGE_INTEGER, ULARGE_INTEGER, DWORD)(11, "UnlockRegion"), + # Stat -> pstatstg:*STATSTG, grfStatFlag:DWORD + "Stat": ctypes.WINFUNCTYPE(HRESULT, POINTER(STATSTG), DWORD)(12, "Stat"), + # Clone -> ppstm:**IStream + "Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IStream))(13, "Clone"), + } + +IApplicationActivationManager._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # ActivateApplication -> appUserModelId:LPCWSTR, arguments:LPCWSTR, options:ACTIVATEOPTIONS, processId:*DWORD + "ActivateApplication": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LPCWSTR, ACTIVATEOPTIONS, POINTER(DWORD))(3, "ActivateApplication"), + # ActivateForFile -> appUserModelId:LPCWSTR, itemArray:*IShellItemArray, verb:LPCWSTR, processId:*DWORD + "ActivateForFile": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, IShellItemArray, LPCWSTR, POINTER(DWORD))(4, "ActivateForFile"), + # ActivateForProtocol -> appUserModelId:LPCWSTR, itemArray:*IShellItemArray, processId:*DWORD + "ActivateForProtocol": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, IShellItemArray, POINTER(DWORD))(5, "ActivateForProtocol"), + } + +IPackageDebugSettings._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # EnableDebugging -> packageFullName:LPCWSTR, debuggerCommandLine:LPCWSTR, environment:PZZWSTR + "EnableDebugging": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LPCWSTR, PZZWSTR)(3, "EnableDebugging"), + # DisableDebugging -> packageFullName:LPCWSTR + "DisableDebugging": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(4, "DisableDebugging"), + # Suspend -> packageFullName:LPCWSTR + "Suspend": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(5, "Suspend"), + # Resume -> packageFullName:LPCWSTR + "Resume": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(6, "Resume"), + # TerminateAllProcesses -> packageFullName:LPCWSTR + "TerminateAllProcesses": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(7, "TerminateAllProcesses"), + # SetTargetSessionId -> sessionId:ULONG + "SetTargetSessionId": ctypes.WINFUNCTYPE(HRESULT, ULONG)(8, "SetTargetSessionId"), + # EnumerateBackgroundTasks -> packageFullName:LPCWSTR, taskCount:*ULONG, taskIds:*LPCGUID, taskNames:**LPCWSTR + "EnumerateBackgroundTasks": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, POINTER(ULONG), POINTER(LPCGUID), POINTER(POINTER(LPCWSTR)))(9, "EnumerateBackgroundTasks"), + # ActivateBackgroundTask -> taskId:LPCGUID + "ActivateBackgroundTask": ctypes.WINFUNCTYPE(HRESULT, LPCGUID)(10, "ActivateBackgroundTask"), + # StartServicing -> packageFullName:LPCWSTR + "StartServicing": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(11, "StartServicing"), + # StopServicing -> packageFullName:LPCWSTR + "StopServicing": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(12, "StopServicing"), + # StartSessionRedirection -> packageFullName:LPCWSTR, sessionId:ULONG + "StartSessionRedirection": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, ULONG)(13, "StartSessionRedirection"), + # StopSessionRedirection -> packageFullName:LPCWSTR + "StopSessionRedirection": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(14, "StopSessionRedirection"), + # GetPackageExecutionState -> packageFullName:LPCWSTR, packageExecutionState:*PACKAGE_EXECUTION_STATE + "GetPackageExecutionState": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, POINTER(PACKAGE_EXECUTION_STATE))(15, "GetPackageExecutionState"), + # RegisterForPackageStateChanges -> packageFullName:LPCWSTR, pPackageExecutionStateChangeNotification:*IPackageExecutionStateChangeNotification, pdwCookie:*DWORD + "RegisterForPackageStateChanges": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, IPackageExecutionStateChangeNotification, POINTER(DWORD))(16, "RegisterForPackageStateChanges"), + # UnregisterForPackageStateChanges -> dwCookie:DWORD + "UnregisterForPackageStateChanges": ctypes.WINFUNCTYPE(HRESULT, DWORD)(17, "UnregisterForPackageStateChanges"), + } + +IPackageExecutionStateChangeNotification._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # OnStateChanged -> pszPackageFullName:LPCWSTR, pesNewState:PACKAGE_EXECUTION_STATE + "OnStateChanged": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, PACKAGE_EXECUTION_STATE)(3, "OnStateChanged"), + } + +IAction._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Id -> pId:*BSTR + "get_Id": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Id"), + # put_Id -> Id:BSTR + "put_Id": ctypes.WINFUNCTYPE(HRESULT, BSTR)(8, "put_Id"), + # get_Type -> pType:*TASK_ACTION_TYPE + "get_Type": ctypes.WINFUNCTYPE(HRESULT, POINTER(TASK_ACTION_TYPE))(9, "get_Type"), + } + +IActionCollection._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Count -> pCount:*LONG + "get_Count": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(7, "get_Count"), + # get_Item -> index:LONG, ppAction:**IAction + "get_Item": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(IAction))(8, "get_Item"), + # get__NewEnum -> ppEnum:**IUnknown + "get__NewEnum": ctypes.WINFUNCTYPE(HRESULT, POINTER(IUnknown))(9, "get__NewEnum"), + # get_XmlText -> pText:*BSTR + "get_XmlText": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(10, "get_XmlText"), + # put_XmlText -> text:BSTR + "put_XmlText": ctypes.WINFUNCTYPE(HRESULT, BSTR)(11, "put_XmlText"), + # Create -> type:TASK_ACTION_TYPE, ppAction:**IAction + "Create": ctypes.WINFUNCTYPE(HRESULT, TASK_ACTION_TYPE, POINTER(IAction))(12, "Create"), + # Remove -> index:VARIANT + "Remove": ctypes.WINFUNCTYPE(HRESULT, VARIANT)(13, "Remove"), + # Clear -> + "Clear": ctypes.WINFUNCTYPE(HRESULT)(14, "Clear"), + # get_Context -> pContext:*BSTR + "get_Context": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(15, "get_Context"), + # put_Context -> context:BSTR + "put_Context": ctypes.WINFUNCTYPE(HRESULT, BSTR)(16, "put_Context"), + } + +IComHandlerAction._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Id -> pId:*BSTR + "get_Id": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Id"), + # put_Id -> Id:BSTR + "put_Id": ctypes.WINFUNCTYPE(HRESULT, BSTR)(8, "put_Id"), + # get_Type -> pType:*TASK_ACTION_TYPE + "get_Type": ctypes.WINFUNCTYPE(HRESULT, POINTER(TASK_ACTION_TYPE))(9, "get_Type"), + # get_ClassId -> pClsid:*BSTR + "get_ClassId": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(10, "get_ClassId"), + # put_ClassId -> clsid:BSTR + "put_ClassId": ctypes.WINFUNCTYPE(HRESULT, BSTR)(11, "put_ClassId"), + # get_Data -> pData:*BSTR + "get_Data": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(12, "get_Data"), + # put_Data -> data:BSTR + "put_Data": ctypes.WINFUNCTYPE(HRESULT, BSTR)(13, "put_Data"), + } + +IEmailAction._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Id -> pId:*BSTR + "get_Id": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Id"), + # put_Id -> Id:BSTR + "put_Id": ctypes.WINFUNCTYPE(HRESULT, BSTR)(8, "put_Id"), + # get_Type -> pType:*TASK_ACTION_TYPE + "get_Type": ctypes.WINFUNCTYPE(HRESULT, POINTER(TASK_ACTION_TYPE))(9, "get_Type"), + # get_Server -> pServer:*BSTR + "get_Server": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(10, "get_Server"), + # put_Server -> server:BSTR + "put_Server": ctypes.WINFUNCTYPE(HRESULT, BSTR)(11, "put_Server"), + # get_Subject -> pSubject:*BSTR + "get_Subject": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(12, "get_Subject"), + # put_Subject -> subject:BSTR + "put_Subject": ctypes.WINFUNCTYPE(HRESULT, BSTR)(13, "put_Subject"), + # get_To -> pTo:*BSTR + "get_To": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(14, "get_To"), + # put_To -> to:BSTR + "put_To": ctypes.WINFUNCTYPE(HRESULT, BSTR)(15, "put_To"), + # get_Cc -> pCc:*BSTR + "get_Cc": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(16, "get_Cc"), + # put_Cc -> cc:BSTR + "put_Cc": ctypes.WINFUNCTYPE(HRESULT, BSTR)(17, "put_Cc"), + # get_Bcc -> pBcc:*BSTR + "get_Bcc": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(18, "get_Bcc"), + # put_Bcc -> bcc:BSTR + "put_Bcc": ctypes.WINFUNCTYPE(HRESULT, BSTR)(19, "put_Bcc"), + # get_ReplyTo -> pReplyTo:*BSTR + "get_ReplyTo": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(20, "get_ReplyTo"), + # put_ReplyTo -> replyTo:BSTR + "put_ReplyTo": ctypes.WINFUNCTYPE(HRESULT, BSTR)(21, "put_ReplyTo"), + # get_From -> pFrom:*BSTR + "get_From": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(22, "get_From"), + # put_From -> from:BSTR + "put_From": ctypes.WINFUNCTYPE(HRESULT, BSTR)(23, "put_From"), + # get_HeaderFields -> ppHeaderFields:**ITaskNamedValueCollection + "get_HeaderFields": ctypes.WINFUNCTYPE(HRESULT, POINTER(ITaskNamedValueCollection))(24, "get_HeaderFields"), + # put_HeaderFields -> pHeaderFields:*ITaskNamedValueCollection + "put_HeaderFields": ctypes.WINFUNCTYPE(HRESULT, ITaskNamedValueCollection)(25, "put_HeaderFields"), + # get_Body -> pBody:*BSTR + "get_Body": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(26, "get_Body"), + # put_Body -> body:BSTR + "put_Body": ctypes.WINFUNCTYPE(HRESULT, BSTR)(27, "put_Body"), + # get_Attachments -> pAttachements:**SAFEARRAY + "get_Attachments": ctypes.WINFUNCTYPE(HRESULT, POINTER(POINTER(SAFEARRAY)))(28, "get_Attachments"), + # put_Attachments -> pAttachements:*SAFEARRAY + "put_Attachments": ctypes.WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY))(29, "put_Attachments"), + } + +IExecAction._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Id -> pId:*BSTR + "get_Id": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Id"), + # put_Id -> Id:BSTR + "put_Id": ctypes.WINFUNCTYPE(HRESULT, BSTR)(8, "put_Id"), + # get_Type -> pType:*TASK_ACTION_TYPE + "get_Type": ctypes.WINFUNCTYPE(HRESULT, POINTER(TASK_ACTION_TYPE))(9, "get_Type"), + # get_Path -> pPath:*BSTR + "get_Path": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(10, "get_Path"), + # put_Path -> path:BSTR + "put_Path": ctypes.WINFUNCTYPE(HRESULT, BSTR)(11, "put_Path"), + # get_Arguments -> pArgument:*BSTR + "get_Arguments": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(12, "get_Arguments"), + # put_Arguments -> argument:BSTR + "put_Arguments": ctypes.WINFUNCTYPE(HRESULT, BSTR)(13, "put_Arguments"), + # get_WorkingDirectory -> pWorkingDirectory:*BSTR + "get_WorkingDirectory": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(14, "get_WorkingDirectory"), + # put_WorkingDirectory -> workingDirectory:BSTR + "put_WorkingDirectory": ctypes.WINFUNCTYPE(HRESULT, BSTR)(15, "put_WorkingDirectory"), + } + +IIdleSettings._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_IdleDuration -> pDelay:*BSTR + "get_IdleDuration": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_IdleDuration"), + # put_IdleDuration -> delay:BSTR + "put_IdleDuration": ctypes.WINFUNCTYPE(HRESULT, BSTR)(8, "put_IdleDuration"), + # get_WaitTimeout -> pTimeout:*BSTR + "get_WaitTimeout": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(9, "get_WaitTimeout"), + # put_WaitTimeout -> timeout:BSTR + "put_WaitTimeout": ctypes.WINFUNCTYPE(HRESULT, BSTR)(10, "put_WaitTimeout"), + # get_StopOnIdleEnd -> pStop:*VARIANT_BOOL + "get_StopOnIdleEnd": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(11, "get_StopOnIdleEnd"), + # put_StopOnIdleEnd -> stop:VARIANT_BOOL + "put_StopOnIdleEnd": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(12, "put_StopOnIdleEnd"), + # get_RestartOnIdle -> pRestart:*VARIANT_BOOL + "get_RestartOnIdle": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(13, "get_RestartOnIdle"), + # put_RestartOnIdle -> restart:VARIANT_BOOL + "put_RestartOnIdle": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(14, "put_RestartOnIdle"), + } + +INetworkSettings._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Name -> pName:*BSTR + "get_Name": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Name"), + # put_Name -> name:BSTR + "put_Name": ctypes.WINFUNCTYPE(HRESULT, BSTR)(8, "put_Name"), + # get_Id -> pId:*BSTR + "get_Id": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(9, "get_Id"), + # put_Id -> id:BSTR + "put_Id": ctypes.WINFUNCTYPE(HRESULT, BSTR)(10, "put_Id"), + } + +IPrincipal._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Id -> pId:*BSTR + "get_Id": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Id"), + # put_Id -> Id:BSTR + "put_Id": ctypes.WINFUNCTYPE(HRESULT, BSTR)(8, "put_Id"), + # get_DisplayName -> pName:*BSTR + "get_DisplayName": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(9, "get_DisplayName"), + # put_DisplayName -> name:BSTR + "put_DisplayName": ctypes.WINFUNCTYPE(HRESULT, BSTR)(10, "put_DisplayName"), + # get_UserId -> pUser:*BSTR + "get_UserId": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(11, "get_UserId"), + # put_UserId -> user:BSTR + "put_UserId": ctypes.WINFUNCTYPE(HRESULT, BSTR)(12, "put_UserId"), + # get_LogonType -> pLogon:*TASK_LOGON_TYPE + "get_LogonType": ctypes.WINFUNCTYPE(HRESULT, POINTER(TASK_LOGON_TYPE))(13, "get_LogonType"), + # put_LogonType -> logon:TASK_LOGON_TYPE + "put_LogonType": ctypes.WINFUNCTYPE(HRESULT, TASK_LOGON_TYPE)(14, "put_LogonType"), + # get_GroupId -> pGroup:*BSTR + "get_GroupId": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(15, "get_GroupId"), + # put_GroupId -> group:BSTR + "put_GroupId": ctypes.WINFUNCTYPE(HRESULT, BSTR)(16, "put_GroupId"), + # get_RunLevel -> pRunLevel:*TASK_RUNLEVEL_TYPE + "get_RunLevel": ctypes.WINFUNCTYPE(HRESULT, POINTER(TASK_RUNLEVEL_TYPE))(17, "get_RunLevel"), + # put_RunLevel -> runLevel:TASK_RUNLEVEL_TYPE + "put_RunLevel": ctypes.WINFUNCTYPE(HRESULT, TASK_RUNLEVEL_TYPE)(18, "put_RunLevel"), + } + +IRegisteredTask._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Name -> pName:*BSTR + "get_Name": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Name"), + # get_Path -> pPath:*BSTR + "get_Path": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(8, "get_Path"), + # get_State -> pState:*TASK_STATE + "get_State": ctypes.WINFUNCTYPE(HRESULT, POINTER(TASK_STATE))(9, "get_State"), + # get_Enabled -> pEnabled:*VARIANT_BOOL + "get_Enabled": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(10, "get_Enabled"), + # put_Enabled -> enabled:VARIANT_BOOL + "put_Enabled": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(11, "put_Enabled"), + # Run -> params:VARIANT, ppRunningTask:**IRunningTask + "Run": ctypes.WINFUNCTYPE(HRESULT, VARIANT, POINTER(IRunningTask))(12, "Run"), + # RunEx -> params:VARIANT, flags:LONG, sessionID:LONG, user:BSTR, ppRunningTask:**IRunningTask + "RunEx": ctypes.WINFUNCTYPE(HRESULT, VARIANT, LONG, LONG, BSTR, POINTER(IRunningTask))(13, "RunEx"), + # GetInstances -> flags:LONG, ppRunningTasks:**IRunningTaskCollection + "GetInstances": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(IRunningTaskCollection))(14, "GetInstances"), + # get_LastRunTime -> pLastRunTime:*DATE + "get_LastRunTime": ctypes.WINFUNCTYPE(HRESULT, POINTER(DATE))(15, "get_LastRunTime"), + # get_LastTaskResult -> pLastTaskResult:*LONG + "get_LastTaskResult": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(16, "get_LastTaskResult"), + # get_NumberOfMissedRuns -> pNumberOfMissedRuns:*LONG + "get_NumberOfMissedRuns": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(17, "get_NumberOfMissedRuns"), + # get_NextRunTime -> pNextRunTime:*DATE + "get_NextRunTime": ctypes.WINFUNCTYPE(HRESULT, POINTER(DATE))(18, "get_NextRunTime"), + # get_Definition -> ppDefinition:**ITaskDefinition + "get_Definition": ctypes.WINFUNCTYPE(HRESULT, POINTER(ITaskDefinition))(19, "get_Definition"), + # get_Xml -> pXml:*BSTR + "get_Xml": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(20, "get_Xml"), + # GetSecurityDescriptor -> securityInformation:LONG, pSddl:*BSTR + "GetSecurityDescriptor": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(BSTR))(21, "GetSecurityDescriptor"), + # SetSecurityDescriptor -> sddl:BSTR, flags:LONG + "SetSecurityDescriptor": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG)(22, "SetSecurityDescriptor"), + # Stop -> flags:LONG + "Stop": ctypes.WINFUNCTYPE(HRESULT, LONG)(23, "Stop"), + # GetRunTimes -> pstStart:LPSYSTEMTIME, pstEnd:LPSYSTEMTIME, pCount:*DWORD, pRunTimes:*LPSYSTEMTIME + "GetRunTimes": ctypes.WINFUNCTYPE(HRESULT, LPSYSTEMTIME, LPSYSTEMTIME, POINTER(DWORD), POINTER(LPSYSTEMTIME))(24, "GetRunTimes"), + } + +IRegisteredTaskCollection._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Count -> pCount:*LONG + "get_Count": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(7, "get_Count"), + # get_Item -> index:VARIANT, ppRegisteredTask:**IRegisteredTask + "get_Item": ctypes.WINFUNCTYPE(HRESULT, VARIANT, POINTER(IRegisteredTask))(8, "get_Item"), + # get__NewEnum -> ppEnum:**IUnknown + "get__NewEnum": ctypes.WINFUNCTYPE(HRESULT, POINTER(IUnknown))(9, "get__NewEnum"), + } + +IRegistrationInfo._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Description -> pDescription:*BSTR + "get_Description": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Description"), + # put_Description -> description:BSTR + "put_Description": ctypes.WINFUNCTYPE(HRESULT, BSTR)(8, "put_Description"), + # get_Author -> pAuthor:*BSTR + "get_Author": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(9, "get_Author"), + # put_Author -> author:BSTR + "put_Author": ctypes.WINFUNCTYPE(HRESULT, BSTR)(10, "put_Author"), + # get_Version -> pVersion:*BSTR + "get_Version": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(11, "get_Version"), + # put_Version -> version:BSTR + "put_Version": ctypes.WINFUNCTYPE(HRESULT, BSTR)(12, "put_Version"), + # get_Date -> pDate:*BSTR + "get_Date": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(13, "get_Date"), + # put_Date -> date:BSTR + "put_Date": ctypes.WINFUNCTYPE(HRESULT, BSTR)(14, "put_Date"), + # get_Documentation -> pDocumentation:*BSTR + "get_Documentation": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(15, "get_Documentation"), + # put_Documentation -> documentation:BSTR + "put_Documentation": ctypes.WINFUNCTYPE(HRESULT, BSTR)(16, "put_Documentation"), + # get_XmlText -> pText:*BSTR + "get_XmlText": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(17, "get_XmlText"), + # put_XmlText -> text:BSTR + "put_XmlText": ctypes.WINFUNCTYPE(HRESULT, BSTR)(18, "put_XmlText"), + # get_URI -> pUri:*BSTR + "get_URI": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(19, "get_URI"), + # put_URI -> uri:BSTR + "put_URI": ctypes.WINFUNCTYPE(HRESULT, BSTR)(20, "put_URI"), + # get_SecurityDescriptor -> pSddl:*VARIANT + "get_SecurityDescriptor": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT))(21, "get_SecurityDescriptor"), + # put_SecurityDescriptor -> sddl:VARIANT + "put_SecurityDescriptor": ctypes.WINFUNCTYPE(HRESULT, VARIANT)(22, "put_SecurityDescriptor"), + # get_Source -> pSource:*BSTR + "get_Source": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(23, "get_Source"), + # put_Source -> source:BSTR + "put_Source": ctypes.WINFUNCTYPE(HRESULT, BSTR)(24, "put_Source"), + } + +IRepetitionPattern._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Interval -> pInterval:*BSTR + "get_Interval": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Interval"), + # put_Interval -> interval:BSTR + "put_Interval": ctypes.WINFUNCTYPE(HRESULT, BSTR)(8, "put_Interval"), + # get_Duration -> pDuration:*BSTR + "get_Duration": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(9, "get_Duration"), + # put_Duration -> duration:BSTR + "put_Duration": ctypes.WINFUNCTYPE(HRESULT, BSTR)(10, "put_Duration"), + # get_StopAtDurationEnd -> pStop:*VARIANT_BOOL + "get_StopAtDurationEnd": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(11, "get_StopAtDurationEnd"), + # put_StopAtDurationEnd -> stop:VARIANT_BOOL + "put_StopAtDurationEnd": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(12, "put_StopAtDurationEnd"), + } + +IRunningTask._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Name -> pName:*BSTR + "get_Name": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Name"), + # get_InstanceGuid -> pGuid:*BSTR + "get_InstanceGuid": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(8, "get_InstanceGuid"), + # get_Path -> pPath:*BSTR + "get_Path": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(9, "get_Path"), + # get_State -> pState:*TASK_STATE + "get_State": ctypes.WINFUNCTYPE(HRESULT, POINTER(TASK_STATE))(10, "get_State"), + # get_CurrentAction -> pName:*BSTR + "get_CurrentAction": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(11, "get_CurrentAction"), + # Stop -> + "Stop": ctypes.WINFUNCTYPE(HRESULT)(12, "Stop"), + # Refresh -> + "Refresh": ctypes.WINFUNCTYPE(HRESULT)(13, "Refresh"), + # get_EnginePID -> pPID:*DWORD + "get_EnginePID": ctypes.WINFUNCTYPE(HRESULT, POINTER(DWORD))(14, "get_EnginePID"), + } + +IRunningTaskCollection._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Count -> pCount:*LONG + "get_Count": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(7, "get_Count"), + # get_Item -> index:VARIANT, ppRunningTask:**IRunningTask + "get_Item": ctypes.WINFUNCTYPE(HRESULT, VARIANT, POINTER(IRunningTask))(8, "get_Item"), + # get__NewEnum -> ppEnum:**IUnknown + "get__NewEnum": ctypes.WINFUNCTYPE(HRESULT, POINTER(IUnknown))(9, "get__NewEnum"), + } + +IShowMessageAction._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Id -> pId:*BSTR + "get_Id": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Id"), + # put_Id -> Id:BSTR + "put_Id": ctypes.WINFUNCTYPE(HRESULT, BSTR)(8, "put_Id"), + # get_Type -> pType:*TASK_ACTION_TYPE + "get_Type": ctypes.WINFUNCTYPE(HRESULT, POINTER(TASK_ACTION_TYPE))(9, "get_Type"), + # get_Title -> pTitle:*BSTR + "get_Title": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(10, "get_Title"), + # put_Title -> title:BSTR + "put_Title": ctypes.WINFUNCTYPE(HRESULT, BSTR)(11, "put_Title"), + # get_MessageBody -> pMessageBody:*BSTR + "get_MessageBody": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(12, "get_MessageBody"), + # put_MessageBody -> messageBody:BSTR + "put_MessageBody": ctypes.WINFUNCTYPE(HRESULT, BSTR)(13, "put_MessageBody"), + } + +ITaskDefinition._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_RegistrationInfo -> ppRegistrationInfo:**IRegistrationInfo + "get_RegistrationInfo": ctypes.WINFUNCTYPE(HRESULT, POINTER(IRegistrationInfo))(7, "get_RegistrationInfo"), + # put_RegistrationInfo -> pRegistrationInfo:*IRegistrationInfo + "put_RegistrationInfo": ctypes.WINFUNCTYPE(HRESULT, IRegistrationInfo)(8, "put_RegistrationInfo"), + # get_Triggers -> ppTriggers:**ITriggerCollection + "get_Triggers": ctypes.WINFUNCTYPE(HRESULT, POINTER(ITriggerCollection))(9, "get_Triggers"), + # put_Triggers -> pTriggers:*ITriggerCollection + "put_Triggers": ctypes.WINFUNCTYPE(HRESULT, ITriggerCollection)(10, "put_Triggers"), + # get_Settings -> ppSettings:**ITaskSettings + "get_Settings": ctypes.WINFUNCTYPE(HRESULT, POINTER(ITaskSettings))(11, "get_Settings"), + # put_Settings -> pSettings:*ITaskSettings + "put_Settings": ctypes.WINFUNCTYPE(HRESULT, ITaskSettings)(12, "put_Settings"), + # get_Data -> pData:*BSTR + "get_Data": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(13, "get_Data"), + # put_Data -> data:BSTR + "put_Data": ctypes.WINFUNCTYPE(HRESULT, BSTR)(14, "put_Data"), + # get_Principal -> ppPrincipal:**IPrincipal + "get_Principal": ctypes.WINFUNCTYPE(HRESULT, POINTER(IPrincipal))(15, "get_Principal"), + # put_Principal -> pPrincipal:*IPrincipal + "put_Principal": ctypes.WINFUNCTYPE(HRESULT, IPrincipal)(16, "put_Principal"), + # get_Actions -> ppActions:**IActionCollection + "get_Actions": ctypes.WINFUNCTYPE(HRESULT, POINTER(IActionCollection))(17, "get_Actions"), + # put_Actions -> pActions:*IActionCollection + "put_Actions": ctypes.WINFUNCTYPE(HRESULT, IActionCollection)(18, "put_Actions"), + # get_XmlText -> pXml:*BSTR + "get_XmlText": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(19, "get_XmlText"), + # put_XmlText -> xml:BSTR + "put_XmlText": ctypes.WINFUNCTYPE(HRESULT, BSTR)(20, "put_XmlText"), + } + +ITaskFolder._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Name -> pName:*BSTR + "get_Name": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Name"), + # get_Path -> pPath:*BSTR + "get_Path": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(8, "get_Path"), + # GetFolder -> path:BSTR, ppFolder:**ITaskFolder + "GetFolder": ctypes.WINFUNCTYPE(HRESULT, BSTR, POINTER(ITaskFolder))(9, "GetFolder"), + # GetFolders -> flags:LONG, ppFolders:**ITaskFolderCollection + "GetFolders": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(ITaskFolderCollection))(10, "GetFolders"), + # CreateFolder -> subFolderName:BSTR, sddl:VARIANT, ppFolder:**ITaskFolder + "CreateFolder": ctypes.WINFUNCTYPE(HRESULT, BSTR, VARIANT, POINTER(ITaskFolder))(11, "CreateFolder"), + # DeleteFolder -> subFolderName:BSTR, flags:LONG + "DeleteFolder": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG)(12, "DeleteFolder"), + # GetTask -> path:BSTR, ppTask:**IRegisteredTask + "GetTask": ctypes.WINFUNCTYPE(HRESULT, BSTR, POINTER(IRegisteredTask))(13, "GetTask"), + # GetTasks -> flags:LONG, ppTasks:**IRegisteredTaskCollection + "GetTasks": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(IRegisteredTaskCollection))(14, "GetTasks"), + # DeleteTask -> name:BSTR, flags:LONG + "DeleteTask": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG)(15, "DeleteTask"), + # RegisterTask -> path:BSTR, xmlText:BSTR, flags:LONG, userId:VARIANT, password:VARIANT, logonType:TASK_LOGON_TYPE, sddl:VARIANT, ppTask:**IRegisteredTask + "RegisterTask": ctypes.WINFUNCTYPE(HRESULT, BSTR, BSTR, LONG, VARIANT, VARIANT, TASK_LOGON_TYPE, VARIANT, POINTER(IRegisteredTask))(16, "RegisterTask"), + # RegisterTaskDefinition -> path:BSTR, pDefinition:*ITaskDefinition, flags:LONG, userId:VARIANT, password:VARIANT, logonType:TASK_LOGON_TYPE, sddl:VARIANT, ppTask:**IRegisteredTask + "RegisterTaskDefinition": ctypes.WINFUNCTYPE(HRESULT, BSTR, ITaskDefinition, LONG, VARIANT, VARIANT, TASK_LOGON_TYPE, VARIANT, POINTER(IRegisteredTask))(17, "RegisterTaskDefinition"), + # GetSecurityDescriptor -> securityInformation:LONG, pSddl:*BSTR + "GetSecurityDescriptor": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(BSTR))(18, "GetSecurityDescriptor"), + # SetSecurityDescriptor -> sddl:BSTR, flags:LONG + "SetSecurityDescriptor": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG)(19, "SetSecurityDescriptor"), + } + +ITaskFolderCollection._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Count -> pCount:*LONG + "get_Count": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(7, "get_Count"), + # get_Item -> index:VARIANT, ppFolder:**ITaskFolder + "get_Item": ctypes.WINFUNCTYPE(HRESULT, VARIANT, POINTER(ITaskFolder))(8, "get_Item"), + # get__NewEnum -> ppEnum:**IUnknown + "get__NewEnum": ctypes.WINFUNCTYPE(HRESULT, POINTER(IUnknown))(9, "get__NewEnum"), + } + +ITaskNamedValueCollection._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Count -> pCount:*LONG + "get_Count": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(7, "get_Count"), + # get_Item -> index:LONG, ppPair:**ITaskNamedValuePair + "get_Item": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(ITaskNamedValuePair))(8, "get_Item"), + # get__NewEnum -> ppEnum:**IUnknown + "get__NewEnum": ctypes.WINFUNCTYPE(HRESULT, POINTER(IUnknown))(9, "get__NewEnum"), + # Create -> name:BSTR, value:BSTR, ppPair:**ITaskNamedValuePair + "Create": ctypes.WINFUNCTYPE(HRESULT, BSTR, BSTR, POINTER(ITaskNamedValuePair))(10, "Create"), + # Remove -> index:LONG + "Remove": ctypes.WINFUNCTYPE(HRESULT, LONG)(11, "Remove"), + # Clear -> + "Clear": ctypes.WINFUNCTYPE(HRESULT)(12, "Clear"), + } + +ITaskNamedValuePair._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Name -> pName:*BSTR + "get_Name": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(7, "get_Name"), + # put_Name -> name:BSTR + "put_Name": ctypes.WINFUNCTYPE(HRESULT, BSTR)(8, "put_Name"), + # get_Value -> pValue:*BSTR + "get_Value": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(9, "get_Value"), + # put_Value -> value:BSTR + "put_Value": ctypes.WINFUNCTYPE(HRESULT, BSTR)(10, "put_Value"), + } + +ITaskService._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # GetFolder -> path:BSTR, ppFolder:**ITaskFolder + "GetFolder": ctypes.WINFUNCTYPE(HRESULT, BSTR, POINTER(ITaskFolder))(7, "GetFolder"), + # GetRunningTasks -> flags:LONG, ppRunningTasks:**IRunningTaskCollection + "GetRunningTasks": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(IRunningTaskCollection))(8, "GetRunningTasks"), + # NewTask -> flags:DWORD, ppDefinition:**ITaskDefinition + "NewTask": ctypes.WINFUNCTYPE(HRESULT, DWORD, POINTER(ITaskDefinition))(9, "NewTask"), + # Connect -> serverName:VARIANT, user:VARIANT, domain:VARIANT, password:VARIANT + "Connect": ctypes.WINFUNCTYPE(HRESULT, VARIANT, VARIANT, VARIANT, VARIANT)(10, "Connect"), + # get_Connected -> pConnected:*VARIANT_BOOL + "get_Connected": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(11, "get_Connected"), + # get_TargetServer -> pServer:*BSTR + "get_TargetServer": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(12, "get_TargetServer"), + # get_ConnectedUser -> pUser:*BSTR + "get_ConnectedUser": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(13, "get_ConnectedUser"), + # get_ConnectedDomain -> pDomain:*BSTR + "get_ConnectedDomain": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(14, "get_ConnectedDomain"), + # get_HighestVersion -> pVersion:*DWORD + "get_HighestVersion": ctypes.WINFUNCTYPE(HRESULT, POINTER(DWORD))(15, "get_HighestVersion"), + } + +ITaskSettings._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_AllowDemandStart -> pAllowDemandStart:*VARIANT_BOOL + "get_AllowDemandStart": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(7, "get_AllowDemandStart"), + # put_AllowDemandStart -> allowDemandStart:VARIANT_BOOL + "put_AllowDemandStart": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(8, "put_AllowDemandStart"), + # get_RestartInterval -> pRestartInterval:*BSTR + "get_RestartInterval": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(9, "get_RestartInterval"), + # put_RestartInterval -> restartInterval:BSTR + "put_RestartInterval": ctypes.WINFUNCTYPE(HRESULT, BSTR)(10, "put_RestartInterval"), + # get_RestartCount -> pRestartCount:*INT + "get_RestartCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(INT))(11, "get_RestartCount"), + # put_RestartCount -> restartCount:INT + "put_RestartCount": ctypes.WINFUNCTYPE(HRESULT, INT)(12, "put_RestartCount"), + # get_MultipleInstances -> pPolicy:*TASK_INSTANCES_POLICY + "get_MultipleInstances": ctypes.WINFUNCTYPE(HRESULT, POINTER(TASK_INSTANCES_POLICY))(13, "get_MultipleInstances"), + # put_MultipleInstances -> policy:TASK_INSTANCES_POLICY + "put_MultipleInstances": ctypes.WINFUNCTYPE(HRESULT, TASK_INSTANCES_POLICY)(14, "put_MultipleInstances"), + # get_StopIfGoingOnBatteries -> pStopIfOnBatteries:*VARIANT_BOOL + "get_StopIfGoingOnBatteries": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(15, "get_StopIfGoingOnBatteries"), + # put_StopIfGoingOnBatteries -> stopIfOnBatteries:VARIANT_BOOL + "put_StopIfGoingOnBatteries": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(16, "put_StopIfGoingOnBatteries"), + # get_DisallowStartIfOnBatteries -> pDisallowStart:*VARIANT_BOOL + "get_DisallowStartIfOnBatteries": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(17, "get_DisallowStartIfOnBatteries"), + # put_DisallowStartIfOnBatteries -> disallowStart:VARIANT_BOOL + "put_DisallowStartIfOnBatteries": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(18, "put_DisallowStartIfOnBatteries"), + # get_AllowHardTerminate -> pAllowHardTerminate:*VARIANT_BOOL + "get_AllowHardTerminate": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(19, "get_AllowHardTerminate"), + # put_AllowHardTerminate -> allowHardTerminate:VARIANT_BOOL + "put_AllowHardTerminate": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(20, "put_AllowHardTerminate"), + # get_StartWhenAvailable -> pStartWhenAvailable:*VARIANT_BOOL + "get_StartWhenAvailable": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(21, "get_StartWhenAvailable"), + # put_StartWhenAvailable -> startWhenAvailable:VARIANT_BOOL + "put_StartWhenAvailable": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(22, "put_StartWhenAvailable"), + # get_XmlText -> pText:*BSTR + "get_XmlText": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(23, "get_XmlText"), + # put_XmlText -> text:BSTR + "put_XmlText": ctypes.WINFUNCTYPE(HRESULT, BSTR)(24, "put_XmlText"), + # get_RunOnlyIfNetworkAvailable -> pRunOnlyIfNetworkAvailable:*VARIANT_BOOL + "get_RunOnlyIfNetworkAvailable": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(25, "get_RunOnlyIfNetworkAvailable"), + # put_RunOnlyIfNetworkAvailable -> runOnlyIfNetworkAvailable:VARIANT_BOOL + "put_RunOnlyIfNetworkAvailable": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(26, "put_RunOnlyIfNetworkAvailable"), + # get_ExecutionTimeLimit -> pExecutionTimeLimit:*BSTR + "get_ExecutionTimeLimit": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(27, "get_ExecutionTimeLimit"), + # put_ExecutionTimeLimit -> executionTimeLimit:BSTR + "put_ExecutionTimeLimit": ctypes.WINFUNCTYPE(HRESULT, BSTR)(28, "put_ExecutionTimeLimit"), + # get_Enabled -> pEnabled:*VARIANT_BOOL + "get_Enabled": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(29, "get_Enabled"), + # put_Enabled -> enabled:VARIANT_BOOL + "put_Enabled": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(30, "put_Enabled"), + # get_DeleteExpiredTaskAfter -> pExpirationDelay:*BSTR + "get_DeleteExpiredTaskAfter": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(31, "get_DeleteExpiredTaskAfter"), + # put_DeleteExpiredTaskAfter -> expirationDelay:BSTR + "put_DeleteExpiredTaskAfter": ctypes.WINFUNCTYPE(HRESULT, BSTR)(32, "put_DeleteExpiredTaskAfter"), + # get_Priority -> pPriority:*INT + "get_Priority": ctypes.WINFUNCTYPE(HRESULT, POINTER(INT))(33, "get_Priority"), + # put_Priority -> priority:INT + "put_Priority": ctypes.WINFUNCTYPE(HRESULT, INT)(34, "put_Priority"), + # get_Compatibility -> pCompatLevel:*TASK_COMPATIBILITY + "get_Compatibility": ctypes.WINFUNCTYPE(HRESULT, POINTER(TASK_COMPATIBILITY))(35, "get_Compatibility"), + # put_Compatibility -> compatLevel:TASK_COMPATIBILITY + "put_Compatibility": ctypes.WINFUNCTYPE(HRESULT, TASK_COMPATIBILITY)(36, "put_Compatibility"), + # get_Hidden -> pHidden:*VARIANT_BOOL + "get_Hidden": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(37, "get_Hidden"), + # put_Hidden -> hidden:VARIANT_BOOL + "put_Hidden": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(38, "put_Hidden"), + # get_IdleSettings -> ppIdleSettings:**IIdleSettings + "get_IdleSettings": ctypes.WINFUNCTYPE(HRESULT, POINTER(IIdleSettings))(39, "get_IdleSettings"), + # put_IdleSettings -> pIdleSettings:*IIdleSettings + "put_IdleSettings": ctypes.WINFUNCTYPE(HRESULT, IIdleSettings)(40, "put_IdleSettings"), + # get_RunOnlyIfIdle -> pRunOnlyIfIdle:*VARIANT_BOOL + "get_RunOnlyIfIdle": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(41, "get_RunOnlyIfIdle"), + # put_RunOnlyIfIdle -> runOnlyIfIdle:VARIANT_BOOL + "put_RunOnlyIfIdle": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(42, "put_RunOnlyIfIdle"), + # get_WakeToRun -> pWake:*VARIANT_BOOL + "get_WakeToRun": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(43, "get_WakeToRun"), + # put_WakeToRun -> wake:VARIANT_BOOL + "put_WakeToRun": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(44, "put_WakeToRun"), + # get_NetworkSettings -> ppNetworkSettings:**INetworkSettings + "get_NetworkSettings": ctypes.WINFUNCTYPE(HRESULT, POINTER(INetworkSettings))(45, "get_NetworkSettings"), + # put_NetworkSettings -> pNetworkSettings:*INetworkSettings + "put_NetworkSettings": ctypes.WINFUNCTYPE(HRESULT, INetworkSettings)(46, "put_NetworkSettings"), + } + +ITrigger._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Type -> pType:*TASK_TRIGGER_TYPE2 + "get_Type": ctypes.WINFUNCTYPE(HRESULT, POINTER(TASK_TRIGGER_TYPE2))(7, "get_Type"), + # get_Id -> pId:*BSTR + "get_Id": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(8, "get_Id"), + # put_Id -> id:BSTR + "put_Id": ctypes.WINFUNCTYPE(HRESULT, BSTR)(9, "put_Id"), + # get_Repetition -> ppRepeat:**IRepetitionPattern + "get_Repetition": ctypes.WINFUNCTYPE(HRESULT, POINTER(IRepetitionPattern))(10, "get_Repetition"), + # put_Repetition -> pRepeat:*IRepetitionPattern + "put_Repetition": ctypes.WINFUNCTYPE(HRESULT, IRepetitionPattern)(11, "put_Repetition"), + # get_ExecutionTimeLimit -> pTimeLimit:*BSTR + "get_ExecutionTimeLimit": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(12, "get_ExecutionTimeLimit"), + # put_ExecutionTimeLimit -> timelimit:BSTR + "put_ExecutionTimeLimit": ctypes.WINFUNCTYPE(HRESULT, BSTR)(13, "put_ExecutionTimeLimit"), + # get_StartBoundary -> pStart:*BSTR + "get_StartBoundary": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(14, "get_StartBoundary"), + # put_StartBoundary -> start:BSTR + "put_StartBoundary": ctypes.WINFUNCTYPE(HRESULT, BSTR)(15, "put_StartBoundary"), + # get_EndBoundary -> pEnd:*BSTR + "get_EndBoundary": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(16, "get_EndBoundary"), + # put_EndBoundary -> end:BSTR + "put_EndBoundary": ctypes.WINFUNCTYPE(HRESULT, BSTR)(17, "put_EndBoundary"), + # get_Enabled -> pEnabled:*VARIANT_BOOL + "get_Enabled": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(18, "get_Enabled"), + # put_Enabled -> enabled:VARIANT_BOOL + "put_Enabled": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(19, "put_Enabled"), + } + +ITriggerCollection._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # get_Count -> pCount:*LONG + "get_Count": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(7, "get_Count"), + # get_Item -> index:LONG, ppTrigger:**ITrigger + "get_Item": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(ITrigger))(8, "get_Item"), + # get__NewEnum -> ppEnum:**IUnknown + "get__NewEnum": ctypes.WINFUNCTYPE(HRESULT, POINTER(IUnknown))(9, "get__NewEnum"), + # Create -> type:TASK_TRIGGER_TYPE2, ppTrigger:**ITrigger + "Create": ctypes.WINFUNCTYPE(HRESULT, TASK_TRIGGER_TYPE2, POINTER(ITrigger))(10, "Create"), + # Remove -> index:VARIANT + "Remove": ctypes.WINFUNCTYPE(HRESULT, VARIANT)(11, "Remove"), + # Clear -> + "Clear": ctypes.WINFUNCTYPE(HRESULT)(12, "Clear"), + } + +IWebBrowser2._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetTypeInfoCount -> pctinfo:*UINT + "GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"), + # GetTypeInfo -> iTInfo:UINT, lcid:LCID, ppTInfo:**ITypeInfo + "GetTypeInfo": ctypes.WINFUNCTYPE(HRESULT, UINT, LCID, POINTER(ITypeInfo))(4, "GetTypeInfo"), + # GetIDsOfNames -> riid:REFIID, rgszNames:*LPOLESTR, cNames:UINT, lcid:LCID, rgDispId:*DISPID + "GetIDsOfNames": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(LPOLESTR), UINT, LCID, POINTER(DISPID))(5, "GetIDsOfNames"), + # Invoke -> dispIdMember:DISPID, riid:REFIID, lcid:LCID, wFlags:WORD, pDispParams:*DISPPARAMS, pVarResult:*VARIANT, pExcepInfo:*EXCEPINFO, puArgErr:*UINT + "Invoke": ctypes.WINFUNCTYPE(HRESULT, DISPID, REFIID, LCID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT))(6, "Invoke"), + # GoBack -> + "GoBack": ctypes.WINFUNCTYPE(HRESULT)(7, "GoBack"), + # GoForward -> + "GoForward": ctypes.WINFUNCTYPE(HRESULT)(8, "GoForward"), + # GoHome -> + "GoHome": ctypes.WINFUNCTYPE(HRESULT)(9, "GoHome"), + # GoSearch -> + "GoSearch": ctypes.WINFUNCTYPE(HRESULT)(10, "GoSearch"), + # Navigate -> URL:BSTR, Flags:*VARIANT, TargetFrameName:*VARIANT, PostData:*VARIANT, Headers:*VARIANT + "Navigate": ctypes.WINFUNCTYPE(HRESULT, BSTR, POINTER(VARIANT), POINTER(VARIANT), POINTER(VARIANT), POINTER(VARIANT))(11, "Navigate"), + # Refresh -> + "Refresh": ctypes.WINFUNCTYPE(HRESULT)(12, "Refresh"), + # Refresh2 -> Level:*VARIANT + "Refresh2": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT))(13, "Refresh2"), + # Stop -> + "Stop": ctypes.WINFUNCTYPE(HRESULT)(14, "Stop"), + # get_Application -> ppDisp:**IDispatch + "get_Application": ctypes.WINFUNCTYPE(HRESULT, POINTER(IDispatch))(15, "get_Application"), + # get_Parent -> ppDisp:**IDispatch + "get_Parent": ctypes.WINFUNCTYPE(HRESULT, POINTER(IDispatch))(16, "get_Parent"), + # get_Container -> ppDisp:**IDispatch + "get_Container": ctypes.WINFUNCTYPE(HRESULT, POINTER(IDispatch))(17, "get_Container"), + # get_Document -> ppDisp:**IDispatch + "get_Document": ctypes.WINFUNCTYPE(HRESULT, POINTER(IDispatch))(18, "get_Document"), + # get_TopLevelContainer -> pBool:*VARIANT_BOOL + "get_TopLevelContainer": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(19, "get_TopLevelContainer"), + # get_Type -> Type:*BSTR + "get_Type": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(20, "get_Type"), + # get_Left -> pl:*LONG + "get_Left": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(21, "get_Left"), + # put_Left -> Left:LONG + "put_Left": ctypes.WINFUNCTYPE(HRESULT, LONG)(22, "put_Left"), + # get_Top -> pl:*LONG + "get_Top": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(23, "get_Top"), + # put_Top -> Top:LONG + "put_Top": ctypes.WINFUNCTYPE(HRESULT, LONG)(24, "put_Top"), + # get_Width -> pl:*LONG + "get_Width": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(25, "get_Width"), + # put_Width -> Width:LONG + "put_Width": ctypes.WINFUNCTYPE(HRESULT, LONG)(26, "put_Width"), + # get_Height -> pl:*LONG + "get_Height": ctypes.WINFUNCTYPE(HRESULT, POINTER(LONG))(27, "get_Height"), + # put_Height -> Height:LONG + "put_Height": ctypes.WINFUNCTYPE(HRESULT, LONG)(28, "put_Height"), + # get_LocationName -> LocationName:*BSTR + "get_LocationName": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(29, "get_LocationName"), + # get_LocationURL -> LocationURL:*BSTR + "get_LocationURL": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(30, "get_LocationURL"), + # get_Busy -> pBool:*VARIANT_BOOL + "get_Busy": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(31, "get_Busy"), + # Quit -> + "Quit": ctypes.WINFUNCTYPE(HRESULT)(32, "Quit"), + # ClientToWindow -> pcx:*INT, pcy:*INT + "ClientToWindow": ctypes.WINFUNCTYPE(HRESULT, POINTER(INT), POINTER(INT))(33, "ClientToWindow"), + # PutProperty -> Property:BSTR, vtValue:VARIANT + "PutProperty": ctypes.WINFUNCTYPE(HRESULT, BSTR, VARIANT)(34, "PutProperty"), + # GetProperty -> Property:BSTR, pvtValue:*VARIANT + "GetProperty": ctypes.WINFUNCTYPE(HRESULT, BSTR, POINTER(VARIANT))(35, "GetProperty"), + # get_Name -> Name:*BSTR + "get_Name": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(36, "get_Name"), + # get_HWND -> pHWND:*PVOID + "get_HWND": ctypes.WINFUNCTYPE(HRESULT, POINTER(PVOID))(37, "get_HWND"), + # get_FullName -> FullName:*BSTR + "get_FullName": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(38, "get_FullName"), + # get_Path -> Path:*BSTR + "get_Path": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(39, "get_Path"), + # get_Visible -> pBool:*VARIANT_BOOL + "get_Visible": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(40, "get_Visible"), + # put_Visible -> Value:VARIANT_BOOL + "put_Visible": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(41, "put_Visible"), + # get_StatusBar -> pBool:*VARIANT_BOOL + "get_StatusBar": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(42, "get_StatusBar"), + # put_StatusBar -> Value:VARIANT_BOOL + "put_StatusBar": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(43, "put_StatusBar"), + # get_StatusText -> StatusText:*BSTR + "get_StatusText": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(44, "get_StatusText"), + # put_StatusText -> StatusText:BSTR + "put_StatusText": ctypes.WINFUNCTYPE(HRESULT, BSTR)(45, "put_StatusText"), + # get_ToolBar -> Value:*INT + "get_ToolBar": ctypes.WINFUNCTYPE(HRESULT, POINTER(INT))(46, "get_ToolBar"), + # put_ToolBar -> Value:INT + "put_ToolBar": ctypes.WINFUNCTYPE(HRESULT, INT)(47, "put_ToolBar"), + # get_MenuBar -> Value:*VARIANT_BOOL + "get_MenuBar": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(48, "get_MenuBar"), + # put_MenuBar -> Value:VARIANT_BOOL + "put_MenuBar": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(49, "put_MenuBar"), + # get_FullScreen -> pbFullScreen:*VARIANT_BOOL + "get_FullScreen": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(50, "get_FullScreen"), + # put_FullScreen -> bFullScreen:VARIANT_BOOL + "put_FullScreen": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(51, "put_FullScreen"), + # Navigate2 -> URL:*VARIANT, Flags:*VARIANT, TargetFrameName:*VARIANT, PostData:*VARIANT, Headers:*VARIANT + "Navigate2": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT), POINTER(VARIANT), POINTER(VARIANT), POINTER(VARIANT), POINTER(VARIANT))(52, "Navigate2"), + # QueryStatusWB -> cmdID:DWORD, pcmdf:*DWORD + "QueryStatusWB": ctypes.WINFUNCTYPE(HRESULT, DWORD, POINTER(DWORD))(53, "QueryStatusWB"), + # ExecWB -> cmdID:DWORD, cmdexecopt:DWORD, pvaIn:*VARIANT, pvaOut:*VARIANT + "ExecWB": ctypes.WINFUNCTYPE(HRESULT, DWORD, DWORD, POINTER(VARIANT), POINTER(VARIANT))(54, "ExecWB"), + # ShowBrowserBar -> pvaClsid:*VARIANT, pvarShow:*VARIANT, pvarSize:*VARIANT + "ShowBrowserBar": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT), POINTER(VARIANT), POINTER(VARIANT))(55, "ShowBrowserBar"), + # get_ReadyState -> plReadyState:*DWORD + "get_ReadyState": ctypes.WINFUNCTYPE(HRESULT, POINTER(DWORD))(56, "get_ReadyState"), + # get_Offline -> pbOffline:*VARIANT_BOOL + "get_Offline": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(57, "get_Offline"), + # put_Offline -> bOffline:VARIANT_BOOL + "put_Offline": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(58, "put_Offline"), + # get_Silent -> pbSilent:*VARIANT_BOOL + "get_Silent": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(59, "get_Silent"), + # put_Silent -> bSilent:VARIANT_BOOL + "put_Silent": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(60, "put_Silent"), + # get_RegisterAsBrowser -> pbRegister:*VARIANT_BOOL + "get_RegisterAsBrowser": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(61, "get_RegisterAsBrowser"), + # put_RegisterAsBrowser -> bRegister:VARIANT_BOOL + "put_RegisterAsBrowser": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(62, "put_RegisterAsBrowser"), + # get_RegisterAsDropTarget -> pbRegister:*VARIANT_BOOL + "get_RegisterAsDropTarget": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(63, "get_RegisterAsDropTarget"), + # put_RegisterAsDropTarget -> bRegister:VARIANT_BOOL + "put_RegisterAsDropTarget": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(64, "put_RegisterAsDropTarget"), + # get_TheaterMode -> pbRegister:*VARIANT_BOOL + "get_TheaterMode": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(65, "get_TheaterMode"), + # put_TheaterMode -> bRegister:VARIANT_BOOL + "put_TheaterMode": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(66, "put_TheaterMode"), + # get_AddressBar -> Value:*VARIANT_BOOL + "get_AddressBar": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(67, "get_AddressBar"), + # put_AddressBar -> Value:VARIANT_BOOL + "put_AddressBar": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(68, "put_AddressBar"), + # get_Resizable -> Value:*VARIANT_BOOL + "get_Resizable": ctypes.WINFUNCTYPE(HRESULT, POINTER(VARIANT_BOOL))(69, "get_Resizable"), + # put_Resizable -> Value:VARIANT_BOOL + "put_Resizable": ctypes.WINFUNCTYPE(HRESULT, VARIANT_BOOL)(70, "put_Resizable"), + } + +IEnumWbemClassObject._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Reset -> + "Reset": ctypes.WINFUNCTYPE(HRESULT)(3, "Reset"), + # Next -> lTimeout:LONG, uCount:ULONG, apObjects:**IWbemClassObject, puReturned:*ULONG + "Next": ctypes.WINFUNCTYPE(HRESULT, LONG, ULONG, POINTER(IWbemClassObject), POINTER(ULONG))(4, "Next"), + # NextAsync -> uCount:ULONG, pSink:*IWbemObjectSink + "NextAsync": ctypes.WINFUNCTYPE(HRESULT, ULONG, IWbemObjectSink)(5, "NextAsync"), + # Clone -> ppEnum:**IEnumWbemClassObject + "Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumWbemClassObject))(6, "Clone"), + # Skip -> lTimeout:LONG, nCount:ULONG + "Skip": ctypes.WINFUNCTYPE(HRESULT, LONG, ULONG)(7, "Skip"), + } + +IWbemCallResult._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetResultObject -> lTimeout:LONG, ppResultObject:**IWbemClassObject + "GetResultObject": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(IWbemClassObject))(3, "GetResultObject"), + # GetResultString -> lTimeout:LONG, pstrResultString:*BSTR + "GetResultString": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(BSTR))(4, "GetResultString"), + # GetResultServices -> lTimeout:LONG, ppServices:**IWbemServices + "GetResultServices": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(IWbemServices))(5, "GetResultServices"), + # GetCallStatus -> lTimeout:LONG, plStatus:*LONG + "GetCallStatus": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(LONG))(6, "GetCallStatus"), + } + +IWbemClassObject._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetQualifierSet -> ppQualSet:**IWbemQualifierSet + "GetQualifierSet": ctypes.WINFUNCTYPE(HRESULT, POINTER(IWbemQualifierSet))(3, "GetQualifierSet"), + # Get -> wszName:LPCWSTR, lFlags:LONG, pVal:*VARIANT, pType:*CIMTYPE, plFlavor:*LONG + "Get": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LONG, POINTER(VARIANT), POINTER(CIMTYPE), POINTER(LONG))(4, "Get"), + # Put -> wszName:LPCWSTR, lFlags:LONG, pVal:*VARIANT, Type:CIMTYPE + "Put": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LONG, POINTER(VARIANT), CIMTYPE)(5, "Put"), + # Delete -> wszName:LPCWSTR + "Delete": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(6, "Delete"), + # GetNames -> wszQualifierName:LPCWSTR, lFlags:LONG, pQualifierVal:*VARIANT, pNames:**SAFEARRAY + "GetNames": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LONG, POINTER(VARIANT), POINTER(POINTER(SAFEARRAY)))(7, "GetNames"), + # BeginEnumeration -> lEnumFlags:LONG + "BeginEnumeration": ctypes.WINFUNCTYPE(HRESULT, LONG)(8, "BeginEnumeration"), + # Next -> lFlags:LONG, strName:*BSTR, pVal:*VARIANT, pType:*CIMTYPE, plFlavor:*LONG + "Next": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(BSTR), POINTER(VARIANT), POINTER(CIMTYPE), POINTER(LONG))(9, "Next"), + # EndEnumeration -> + "EndEnumeration": ctypes.WINFUNCTYPE(HRESULT)(10, "EndEnumeration"), + # GetPropertyQualifierSet -> wszProperty:LPCWSTR, ppQualSet:**IWbemQualifierSet + "GetPropertyQualifierSet": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, POINTER(IWbemQualifierSet))(11, "GetPropertyQualifierSet"), + # Clone -> ppCopy:**IWbemClassObject + "Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IWbemClassObject))(12, "Clone"), + # GetObjectText -> lFlags:LONG, pstrObjectText:*BSTR + "GetObjectText": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(BSTR))(13, "GetObjectText"), + # SpawnDerivedClass -> lFlags:LONG, ppNewClass:**IWbemClassObject + "SpawnDerivedClass": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(IWbemClassObject))(14, "SpawnDerivedClass"), + # SpawnInstance -> lFlags:LONG, ppNewInstance:**IWbemClassObject + "SpawnInstance": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(IWbemClassObject))(15, "SpawnInstance"), + # CompareTo -> lFlags:LONG, pCompareTo:*IWbemClassObject + "CompareTo": ctypes.WINFUNCTYPE(HRESULT, LONG, IWbemClassObject)(16, "CompareTo"), + # GetPropertyOrigin -> wszName:LPCWSTR, pstrClassName:*BSTR + "GetPropertyOrigin": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, POINTER(BSTR))(17, "GetPropertyOrigin"), + # InheritsFrom -> strAncestor:LPCWSTR + "InheritsFrom": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(18, "InheritsFrom"), + # GetMethod -> wszName:LPCWSTR, lFlags:LONG, ppInSignature:**IWbemClassObject, ppOutSignature:**IWbemClassObject + "GetMethod": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LONG, POINTER(IWbemClassObject), POINTER(IWbemClassObject))(19, "GetMethod"), + # PutMethod -> wszName:LPCWSTR, lFlags:LONG, pInSignature:*IWbemClassObject, pOutSignature:*IWbemClassObject + "PutMethod": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LONG, IWbemClassObject, IWbemClassObject)(20, "PutMethod"), + # DeleteMethod -> wszName:LPCWSTR + "DeleteMethod": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(21, "DeleteMethod"), + # BeginMethodEnumeration -> lEnumFlags:LONG + "BeginMethodEnumeration": ctypes.WINFUNCTYPE(HRESULT, LONG)(22, "BeginMethodEnumeration"), + # NextMethod -> lFlags:LONG, pstrName:*BSTR, ppInSignature:**IWbemClassObject, ppOutSignature:**IWbemClassObject + "NextMethod": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(BSTR), POINTER(IWbemClassObject), POINTER(IWbemClassObject))(23, "NextMethod"), + # EndMethodEnumeration -> + "EndMethodEnumeration": ctypes.WINFUNCTYPE(HRESULT)(24, "EndMethodEnumeration"), + # GetMethodQualifierSet -> wszMethod:LPCWSTR, ppQualSet:**IWbemQualifierSet + "GetMethodQualifierSet": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, POINTER(IWbemQualifierSet))(25, "GetMethodQualifierSet"), + # GetMethodOrigin -> wszMethodName:LPCWSTR, pstrClassName:*BSTR + "GetMethodOrigin": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, POINTER(BSTR))(26, "GetMethodOrigin"), + } + +IWbemContext._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Clone -> ppNewCopy:**IWbemContext + "Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IWbemContext))(3, "Clone"), + # GetNames -> lFlags:LONG, pNames:**SAFEARRAY + "GetNames": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(POINTER(SAFEARRAY)))(4, "GetNames"), + # BeginEnumeration -> lFlags:LONG + "BeginEnumeration": ctypes.WINFUNCTYPE(HRESULT, LONG)(5, "BeginEnumeration"), + # Next -> lFlags:LONG, pstrName:*BSTR, pValue:*VARIANT + "Next": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(BSTR), POINTER(VARIANT))(6, "Next"), + # EndEnumeration -> + "EndEnumeration": ctypes.WINFUNCTYPE(HRESULT)(7, "EndEnumeration"), + # SetValue -> wszName:LPCWSTR, lFlags:LONG, pValue:*VARIANT + "SetValue": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LONG, POINTER(VARIANT))(8, "SetValue"), + # GetValue -> wszName:LPCWSTR, lFlags:LONG, pValue:*VARIANT + "GetValue": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LONG, POINTER(VARIANT))(9, "GetValue"), + # DeleteValue -> wszName:LPCWSTR, lFlags:LONG + "DeleteValue": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LONG)(10, "DeleteValue"), + # DeleteAll -> + "DeleteAll": ctypes.WINFUNCTYPE(HRESULT)(11, "DeleteAll"), + } + +IWbemLocator._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # ConnectServer -> strNetworkResource:BSTR, strUser:BSTR, strPassword:BSTR, strLocale:BSTR, lSecurityFlags:LONG, strAuthority:BSTR, pCtx:*IWbemContext, ppNamespace:**IWbemServices + "ConnectServer": ctypes.WINFUNCTYPE(HRESULT, BSTR, BSTR, BSTR, BSTR, LONG, BSTR, IWbemContext, POINTER(IWbemServices))(3, "ConnectServer"), + } + +IWbemObjectSink._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Indicate -> lObjectCount:LONG, apObjArray:**IWbemClassObject + "Indicate": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(IWbemClassObject))(3, "Indicate"), + # SetStatus -> lFlags:LONG, hResult:HRESULT, strParam:BSTR, pObjParam:*IWbemClassObject + "SetStatus": ctypes.WINFUNCTYPE(HRESULT, LONG, HRESULT, BSTR, IWbemClassObject)(4, "SetStatus"), + } + +IWbemObjectTextSrc._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # GetText -> lFlags:LONG, pObj:*IWbemClassObject, uObjTextFormat:ULONG, pCtx:*IWbemContext, strText:*BSTR + "GetText": ctypes.WINFUNCTYPE(HRESULT, LONG, IWbemClassObject, ULONG, IWbemContext, POINTER(BSTR))(3, "GetText"), + # CreateFromText -> lFlags:LONG, strText:BSTR, uObjTextFormat:ULONG, pCtx:*IWbemContext, pNewObj:**IWbemClassObject + "CreateFromText": ctypes.WINFUNCTYPE(HRESULT, LONG, BSTR, ULONG, IWbemContext, POINTER(IWbemClassObject))(4, "CreateFromText"), + } + +IWbemQualifierSet._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # Get -> wszName:LPCWSTR, lFlags:LONG, pVal:*VARIANT, plFlavor:*LONG + "Get": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LONG, POINTER(VARIANT), POINTER(LONG))(3, "Get"), + # Put -> wszName:LPCWSTR, pVal:*VARIANT, lFlavor:LONG + "Put": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, POINTER(VARIANT), LONG)(4, "Put"), + # Delete -> wszName:LPCWSTR + "Delete": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR)(5, "Delete"), + # GetNames -> lFlags:LONG, pNames:**SAFEARRAY + "GetNames": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(POINTER(SAFEARRAY)))(6, "GetNames"), + # BeginEnumeration -> lFlags:LONG + "BeginEnumeration": ctypes.WINFUNCTYPE(HRESULT, LONG)(7, "BeginEnumeration"), + # Next -> lFlags:LONG, pstrName:*BSTR, pVal:*VARIANT, plFlavor:*LONG + "Next": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(BSTR), POINTER(VARIANT), POINTER(LONG))(8, "Next"), + # EndEnumeration -> + "EndEnumeration": ctypes.WINFUNCTYPE(HRESULT)(9, "EndEnumeration"), + } + +IWbemServices._functions_ = { + # QueryInterface -> riid:REFIID, ppvObject:**void + "QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"), + # AddRef -> + "AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"), + # Release -> + "Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"), + # OpenNamespace -> strNamespace:BSTR, lFlags:LONG, pCtx:*IWbemContext, ppWorkingNamespace:**IWbemServices, ppResult:**IWbemCallResult + "OpenNamespace": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG, IWbemContext, POINTER(IWbemServices), POINTER(IWbemCallResult))(3, "OpenNamespace"), + # CancelAsyncCall -> pSink:*IWbemObjectSink + "CancelAsyncCall": ctypes.WINFUNCTYPE(HRESULT, IWbemObjectSink)(4, "CancelAsyncCall"), + # QueryObjectSink -> lFlags:LONG, ppResponseHandler:**IWbemObjectSink + "QueryObjectSink": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(IWbemObjectSink))(5, "QueryObjectSink"), + # GetObject -> strObjectPath:BSTR, lFlags:LONG, pCtx:*IWbemContext, ppObject:**IWbemClassObject, ppCallResult:**IWbemCallResult + "GetObject": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG, IWbemContext, POINTER(IWbemClassObject), POINTER(IWbemCallResult))(6, "GetObject"), + # GetObjectAsync -> strObjectPath:BSTR, lFlags:LONG, pCtx:*IWbemContext, pResponseHandler:*IWbemObjectSink + "GetObjectAsync": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG, IWbemContext, IWbemObjectSink)(7, "GetObjectAsync"), + # PutClass -> pObject:*IWbemClassObject, lFlags:LONG, pCtx:*IWbemContext, ppCallResult:**IWbemCallResult + "PutClass": ctypes.WINFUNCTYPE(HRESULT, IWbemClassObject, LONG, IWbemContext, POINTER(IWbemCallResult))(8, "PutClass"), + # PutClassAsync -> pObject:*IWbemClassObject, lFlags:LONG, pCtx:*IWbemContext, pResponseHandler:*IWbemObjectSink + "PutClassAsync": ctypes.WINFUNCTYPE(HRESULT, IWbemClassObject, LONG, IWbemContext, IWbemObjectSink)(9, "PutClassAsync"), + # DeleteClass -> strClass:BSTR, lFlags:LONG, pCtx:*IWbemContext, ppCallResult:**IWbemCallResult + "DeleteClass": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG, IWbemContext, POINTER(IWbemCallResult))(10, "DeleteClass"), + # DeleteClassAsync -> strClass:BSTR, lFlags:LONG, pCtx:*IWbemContext, pResponseHandler:*IWbemObjectSink + "DeleteClassAsync": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG, IWbemContext, IWbemObjectSink)(11, "DeleteClassAsync"), + # CreateClassEnum -> strSuperclass:BSTR, lFlags:LONG, pCtx:*IWbemContext, ppEnum:**IEnumWbemClassObject + "CreateClassEnum": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG, IWbemContext, POINTER(IEnumWbemClassObject))(12, "CreateClassEnum"), + # CreateClassEnumAsync -> strSuperclass:BSTR, lFlags:LONG, pCtx:*IWbemContext, pResponseHandler:*IWbemObjectSink + "CreateClassEnumAsync": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG, IWbemContext, IWbemObjectSink)(13, "CreateClassEnumAsync"), + # PutInstance -> pInst:*IWbemClassObject, lFlags:LONG, pCtx:*IWbemContext, ppCallResult:**IWbemCallResult + "PutInstance": ctypes.WINFUNCTYPE(HRESULT, IWbemClassObject, LONG, IWbemContext, POINTER(IWbemCallResult))(14, "PutInstance"), + # PutInstanceAsync -> pInst:*IWbemClassObject, lFlags:LONG, pCtx:*IWbemContext, pResponseHandler:*IWbemObjectSink + "PutInstanceAsync": ctypes.WINFUNCTYPE(HRESULT, IWbemClassObject, LONG, IWbemContext, IWbemObjectSink)(15, "PutInstanceAsync"), + # DeleteInstance -> strObjectPath:BSTR, lFlags:LONG, pCtx:*IWbemContext, ppCallResult:**IWbemCallResult + "DeleteInstance": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG, IWbemContext, POINTER(IWbemCallResult))(16, "DeleteInstance"), + # DeleteInstanceAsync -> strObjectPath:BSTR, lFlags:LONG, pCtx:*IWbemContext, pResponseHandler:*IWbemObjectSink + "DeleteInstanceAsync": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG, IWbemContext, IWbemObjectSink)(17, "DeleteInstanceAsync"), + # CreateInstanceEnum -> strFilter:BSTR, lFlags:LONG, pCtx:*IWbemContext, ppEnum:**IEnumWbemClassObject + "CreateInstanceEnum": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG, IWbemContext, POINTER(IEnumWbemClassObject))(18, "CreateInstanceEnum"), + # CreateInstanceEnumAsync -> strFilter:BSTR, lFlags:LONG, pCtx:*IWbemContext, pResponseHandler:*IWbemObjectSink + "CreateInstanceEnumAsync": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG, IWbemContext, IWbemObjectSink)(19, "CreateInstanceEnumAsync"), + # ExecQuery -> strQueryLanguage:BSTR, strQuery:BSTR, lFlags:LONG, pCtx:*IWbemContext, ppEnum:**IEnumWbemClassObject + "ExecQuery": ctypes.WINFUNCTYPE(HRESULT, BSTR, BSTR, LONG, IWbemContext, POINTER(IEnumWbemClassObject))(20, "ExecQuery"), + # ExecQueryAsync -> strQueryLanguage:BSTR, strQuery:BSTR, lFlags:LONG, pCtx:*IWbemContext, pResponseHandler:*IWbemObjectSink + "ExecQueryAsync": ctypes.WINFUNCTYPE(HRESULT, BSTR, BSTR, LONG, IWbemContext, IWbemObjectSink)(21, "ExecQueryAsync"), + # ExecNotificationQuery -> strQueryLanguage:BSTR, strQuery:BSTR, lFlags:LONG, pCtx:*IWbemContext, ppEnum:**IEnumWbemClassObject + "ExecNotificationQuery": ctypes.WINFUNCTYPE(HRESULT, BSTR, BSTR, LONG, IWbemContext, POINTER(IEnumWbemClassObject))(22, "ExecNotificationQuery"), + # ExecNotificationQueryAsync -> strQueryLanguage:BSTR, strQuery:BSTR, lFlags:LONG, pCtx:*IWbemContext, pResponseHandler:*IWbemObjectSink + "ExecNotificationQueryAsync": ctypes.WINFUNCTYPE(HRESULT, BSTR, BSTR, LONG, IWbemContext, IWbemObjectSink)(23, "ExecNotificationQueryAsync"), + # ExecMethod -> strObjectPath:BSTR, strMethodName:BSTR, lFlags:LONG, pCtx:*IWbemContext, pInParams:*IWbemClassObject, ppOutParams:**IWbemClassObject, ppCallResult:**IWbemCallResult + "ExecMethod": ctypes.WINFUNCTYPE(HRESULT, BSTR, BSTR, LONG, IWbemContext, IWbemClassObject, POINTER(IWbemClassObject), POINTER(IWbemCallResult))(24, "ExecMethod"), + # ExecMethodAsync -> strObjectPath:BSTR, strMethodName:BSTR, lFlags:LONG, pCtx:*IWbemContext, pInParams:*IWbemClassObject, pResponseHandler:*IWbemObjectSink + "ExecMethodAsync": ctypes.WINFUNCTYPE(HRESULT, BSTR, BSTR, LONG, IWbemContext, IWbemClassObject, IWbemObjectSink)(25, "ExecMethodAsync"), + } + diff --git a/pythonmemorymodule/windows/generated_def/meta.py b/pythonmemorymodule/windows/generated_def/meta.py new file mode 100644 index 0000000..c4fa117 --- /dev/null +++ b/pythonmemorymodule/windows/generated_def/meta.py @@ -0,0 +1,14885 @@ +windef = set(['ABOVE_NORMAL_PRIORITY_CLASS', + 'ACCESS_ALLOWED_ACE_TYPE', + 'ACCESS_ALLOWED_CALLBACK_ACE_TYPE', + 'ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE', + 'ACCESS_ALLOWED_COMPOUND_ACE_TYPE', + 'ACCESS_ALLOWED_OBJECT_ACE_TYPE', + 'ACCESS_DENIED_ACE_TYPE', + 'ACCESS_DENIED_CALLBACK_ACE_TYPE', + 'ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE', + 'ACCESS_DENIED_OBJECT_ACE_TYPE', + 'ACCESS_MAX_MS_ACE_TYPE', + 'ACCESS_MAX_MS_OBJECT_ACE_TYPE', + 'ACCESS_MAX_MS_V2_ACE_TYPE', + 'ACCESS_MAX_MS_V3_ACE_TYPE', + 'ACCESS_MAX_MS_V4_ACE_TYPE', + 'ACCESS_MAX_MS_V5_ACE_TYPE', + 'ACCESS_MIN_MS_ACE_TYPE', + 'ACCESS_MIN_MS_OBJECT_ACE_TYPE', + 'ACCESS_SYSTEM_SECURITY', + 'ACE_INHERITED_OBJECT_TYPE_PRESENT', + 'ACE_OBJECT_TYPE_PRESENT', + 'ADS_RIGHT_ACCESS_SYSTEM_SECURITY', + 'ADS_RIGHT_ACTRL_DS_LIST', + 'ADS_RIGHT_DELETE', + 'ADS_RIGHT_DS_CONTROL_ACCESS', + 'ADS_RIGHT_DS_CREATE_CHILD', + 'ADS_RIGHT_DS_DELETE_CHILD', + 'ADS_RIGHT_DS_DELETE_TREE', + 'ADS_RIGHT_DS_LIST_OBJECT', + 'ADS_RIGHT_DS_READ_PROP', + 'ADS_RIGHT_DS_SELF', + 'ADS_RIGHT_DS_WRITE_PROP', + 'ADS_RIGHT_GENERIC_ALL', + 'ADS_RIGHT_GENERIC_EXECUTE', + 'ADS_RIGHT_GENERIC_READ', + 'ADS_RIGHT_GENERIC_WRITE', + 'ADS_RIGHT_READ_CONTROL', + 'ADS_RIGHT_SYNCHRONIZE', + 'ADS_RIGHT_WRITE_DAC', + 'ADS_RIGHT_WRITE_OWNER', + 'AF_12844', + 'AF_APPLETALK', + 'AF_ATM', + 'AF_BAN', + 'AF_CCITT', + 'AF_CHAOS', + 'AF_CLUSTER', + 'AF_DATAKIT', + 'AF_DECnet', + 'AF_DLI', + 'AF_ECMA', + 'AF_FIREFOX', + 'AF_HYLINK', + 'AF_IMPLINK', + 'AF_INET', + 'AF_INET6', + 'AF_IPX', + 'AF_IRDA', + 'AF_ISO', + 'AF_LAT', + 'AF_MAX', + 'AF_NETBIOS', + 'AF_NETDES', + 'AF_NS', + 'AF_OSI', + 'AF_PUP', + 'AF_SNA', + 'AF_UNIX', + 'AF_UNKNOWN1', + 'AF_UNSPEC', + 'AF_VOICEVIEW', + 'ALG_CLASS_ALL', + 'ALG_CLASS_ANY', + 'ALG_CLASS_DATA_ENCRYPT', + 'ALG_CLASS_HASH', + 'ALG_CLASS_KEY_EXCHANGE', + 'ALG_CLASS_MSG_ENCRYPT', + 'ALG_CLASS_SIGNATURE', + 'ALG_SID_3DES', + 'ALG_SID_3DES_112', + 'ALG_SID_AES', + 'ALG_SID_AES_128', + 'ALG_SID_AES_192', + 'ALG_SID_AES_256', + 'ALG_SID_AGREED_KEY_ANY', + 'ALG_SID_ANY', + 'ALG_SID_CAST', + 'ALG_SID_CYLINK_MEK', + 'ALG_SID_DES', + 'ALG_SID_DESX', + 'ALG_SID_DH_EPHEM', + 'ALG_SID_DH_SANDF', + 'ALG_SID_DSS_ANY', + 'ALG_SID_DSS_DMS', + 'ALG_SID_DSS_PKCS', + 'ALG_SID_ECDH', + 'ALG_SID_ECDH_EPHEM', + 'ALG_SID_ECDSA', + 'ALG_SID_ECMQV', + 'ALG_SID_EXAMPLE', + 'ALG_SID_HASH_REPLACE_OWF', + 'ALG_SID_HMAC', + 'ALG_SID_IDEA', + 'ALG_SID_KEA', + 'ALG_SID_MAC', + 'ALG_SID_MD2', + 'ALG_SID_MD4', + 'ALG_SID_MD5', + 'ALG_SID_PCT1_MASTER', + 'ALG_SID_RC2', + 'ALG_SID_RC4', + 'ALG_SID_RC5', + 'ALG_SID_RIPEMD', + 'ALG_SID_RIPEMD160', + 'ALG_SID_RSA_ANY', + 'ALG_SID_RSA_ENTRUST', + 'ALG_SID_RSA_MSATWORK', + 'ALG_SID_RSA_PGP', + 'ALG_SID_RSA_PKCS', + 'ALG_SID_SAFERSK128', + 'ALG_SID_SAFERSK64', + 'ALG_SID_SCHANNEL_ENC_KEY', + 'ALG_SID_SCHANNEL_MAC_KEY', + 'ALG_SID_SCHANNEL_MASTER_HASH', + 'ALG_SID_SEAL', + 'ALG_SID_SHA', + 'ALG_SID_SHA1', + 'ALG_SID_SHA_256', + 'ALG_SID_SHA_384', + 'ALG_SID_SHA_512', + 'ALG_SID_SKIPJACK', + 'ALG_SID_SSL2_MASTER', + 'ALG_SID_SSL3SHAMD5', + 'ALG_SID_SSL3_MASTER', + 'ALG_SID_TEK', + 'ALG_SID_TLS1PRF', + 'ALG_SID_TLS1_MASTER', + 'ALG_TYPE_ANY', + 'ALG_TYPE_BLOCK', + 'ALG_TYPE_DH', + 'ALG_TYPE_DSS', + 'ALG_TYPE_ECDH', + 'ALG_TYPE_RSA', + 'ALG_TYPE_SECURECHANNEL', + 'ALG_TYPE_STREAM', + 'ALLOC_LOG_CONF', + 'ALPC_CANCELFLGP_FLUSH', + 'ALPC_CANCELFLG_NO_CONTEXT_CHECK', + 'ALPC_CANCELFLG_TRY_CANCEL', + 'ALPC_HANDLEFLG_DUPLICATE_INHERIT', + 'ALPC_HANDLEFLG_DUPLICATE_SAME_ACCESS', + 'ALPC_HANDLEFLG_DUPLICATE_SAME_ATTRIBUTES', + 'ALPC_MESSAGE_CONTEXT_ATTRIBUTE', + 'ALPC_MESSAGE_DIRECT_ATTRIBUTE', + 'ALPC_MESSAGE_HANDLE_ATTRIBUTE', + 'ALPC_MESSAGE_SECURITY_ATTRIBUTE', + 'ALPC_MESSAGE_TOKEN_ATTRIBUTE', + 'ALPC_MESSAGE_VIEW_ATTRIBUTE', + 'ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE', + 'ALPC_MSGFLG_LPC_MODE', + 'ALPC_MSGFLG_RELEASE_MESSAGE', + 'ALPC_MSGFLG_REPLY_MESSAGE', + 'ALPC_MSGFLG_SYNC_REQUEST', + 'ALPC_MSGFLG_WAIT_ALERTABLE', + 'ALPC_MSGFLG_WAIT_USER_MODE', + 'ALPC_MSGFLG_WOW64_CALL', + 'ALPC_PORFLG_ALLOW_LPC_REQUESTS', + 'ALPC_PORFLG_SYSTEM_PROCESS', + 'ALPC_PORFLG_WAITABLE_PORT', + 'ALPC_SECFLG_CREATE_HANDLE', + 'ALPC_VIEWFLG_NOT_SECURE', + 'AMD64_KGDT64_LAST', + 'AMD64_KGDT64_NULL', + 'AMD64_KGDT64_R0_CODE', + 'AMD64_KGDT64_R0_DATA', + 'AMD64_KGDT64_R3_CMCODE', + 'AMD64_KGDT64_R3_CMTEB', + 'AMD64_KGDT64_R3_CODE', + 'AMD64_KGDT64_R3_DATA', + 'AMD64_KGDT64_SYS_TSS', + 'ANYSIZE_ARRAY', + 'ANY_SIZE', + 'API_SET_LOAD_SCHEMA_ORDINAL', + 'API_SET_LOOKUP_ORDINAL', + 'API_SET_RELEASE_SCHEMA_ORDINAL', + 'API_SET_SCHEMA_ENTRY_FLAGS_EXTENSION', + 'API_SET_SCHEMA_ENTRY_FLAGS_SEALED', + 'API_SET_SCHEMA_FLAGS_HOST_EXTENSION', + 'API_SET_SCHEMA_FLAGS_SEALED', + 'API_SET_SCHEMA_VERSION_V2', + 'API_SET_SCHEMA_VERSION_V3', + 'API_SET_SCHEMA_VERSION_V4', + 'APPLICATION_ERROR_MASK', + 'ASYNC_MODE_COMPATIBILITY', + 'ASYNC_MODE_DEFAULT', + 'ATM_ADDR_SIZE', + 'ATM_AESA', + 'ATM_E164', + 'ATM_NSAP', + 'ATTRIBUTE_SECURITY_INFORMATION', + 'AT_KEYEXCHANGE', + 'AT_SIGNATURE', + 'BACKUP_SECURITY_INFORMATION', + 'BASE_PROTOCOL', + 'BASIC_LOG_CONF', + 'BELOW_NORMAL_PRIORITY_CLASS', + 'BG_JOB_ENUM_ALL_USERS', + 'BG_NOTIFY_DISABLE', + 'BG_NOTIFY_FILE_TRANSFERRED', + 'BG_NOTIFY_JOB_ERROR', + 'BG_NOTIFY_JOB_MODIFICATION', + 'BG_NOTIFY_JOB_TRANSFERRED', + 'BIND_IF_SYNTAX_NDR32', + 'BIND_IF_SYNTAX_NDR64', + 'BIND_IF_SYNTAX_UNKNOWN', + 'BOOT_LOG_CONF', + 'CALG_3DES', + 'CALG_3DES_112', + 'CALG_AES', + 'CALG_AES_128', + 'CALG_AES_192', + 'CALG_AES_256', + 'CALG_AGREEDKEY_ANY', + 'CALG_CYLINK_MEK', + 'CALG_DES', + 'CALG_DESX', + 'CALG_DH_EPHEM', + 'CALG_DH_SF', + 'CALG_DSS_SIGN', + 'CALG_ECDH', + 'CALG_ECDH_EPHEM', + 'CALG_ECDSA', + 'CALG_ECMQV', + 'CALG_HASH_REPLACE_OWF', + 'CALG_HMAC', + 'CALG_HUGHES_MD5', + 'CALG_KEA_KEYX', + 'CALG_MAC', + 'CALG_MD2', + 'CALG_MD4', + 'CALG_MD5', + 'CALG_NO_SIGN', + 'CALG_PCT1_MASTER', + 'CALG_RC2', + 'CALG_RC4', + 'CALG_RC5', + 'CALG_RSA_KEYX', + 'CALG_RSA_SIGN', + 'CALG_SCHANNEL_ENC_KEY', + 'CALG_SCHANNEL_MAC_KEY', + 'CALG_SCHANNEL_MASTER_HASH', + 'CALG_SEAL', + 'CALG_SHA', + 'CALG_SHA1', + 'CALG_SHA_256', + 'CALG_SHA_384', + 'CALG_SHA_512', + 'CALG_SKIPJACK', + 'CALG_SSL2_MASTER', + 'CALG_SSL3_MASTER', + 'CALG_SSL3_SHAMD5', + 'CALG_TEK', + 'CALG_TLS1PRF', + 'CALG_TLS1_MASTER', + 'CALLBACK_ALL_ACCESS', + 'CALLBACK_MODIFY_STATE', + 'CAT_MEMBERINFO2_OBJID', + 'CAT_MEMBERINFO_OBJID', + 'CAT_NAMEVALUE_OBJID', + 'CBA_CHECK_ENGOPT_DISALLOW_NETWORK_PATHS', + 'CBA_DEBUG_INFO', + 'CBA_DEFERRED_SYMBOL_LOAD_CANCEL', + 'CBA_DEFERRED_SYMBOL_LOAD_COMPLETE', + 'CBA_DEFERRED_SYMBOL_LOAD_FAILURE', + 'CBA_DEFERRED_SYMBOL_LOAD_PARTIAL', + 'CBA_DEFERRED_SYMBOL_LOAD_START', + 'CBA_DUPLICATE_SYMBOL', + 'CBA_ENGINE_PRESENT', + 'CBA_EVENT', + 'CBA_READ_MEMORY', + 'CBA_SET_OPTIONS', + 'CBA_SRCSRV_EVENT', + 'CBA_SRCSRV_INFO', + 'CBA_SYMBOLS_UNLOADED', + 'CBA_UPDATE_STATUS_BAR', + 'CERT_ACCESS_STATE_PROP_ID', + 'CERT_AIA_URL_RETRIEVED_PROP_ID', + 'CERT_ARCHIVED_KEY_HASH_PROP_ID', + 'CERT_ARCHIVED_PROP_ID', + 'CERT_AUTHORITY_INFO_ACCESS_PROP_ID', + 'CERT_AUTO_ENROLL_PROP_ID', + 'CERT_AUTO_ENROLL_RETRY_PROP_ID', + 'CERT_BACKED_UP_PROP_ID', + 'CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY', + 'CERT_CHAIN_REVOCATION_CHECK_CHAIN', + 'CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT', + 'CERT_CHAIN_REVOCATION_CHECK_END_CERT', + 'CERT_COMPARE_ANY', + 'CERT_COMPARE_ATTR', + 'CERT_COMPARE_CERT_ID', + 'CERT_COMPARE_CROSS_CERT_DIST_POINTS', + 'CERT_COMPARE_CTL_USAGE', + 'CERT_COMPARE_ENHKEY_USAGE', + 'CERT_COMPARE_EXISTING', + 'CERT_COMPARE_HASH', + 'CERT_COMPARE_ISSUER_OF', + 'CERT_COMPARE_KEY_IDENTIFIER', + 'CERT_COMPARE_KEY_SPEC', + 'CERT_COMPARE_MASK', + 'CERT_COMPARE_MD5_HASH', + 'CERT_COMPARE_NAME', + 'CERT_COMPARE_NAME_STR_A', + 'CERT_COMPARE_NAME_STR_W', + 'CERT_COMPARE_PROPERTY', + 'CERT_COMPARE_PUBKEY_MD5_HASH', + 'CERT_COMPARE_PUBLIC_KEY', + 'CERT_COMPARE_SHA1_HASH', + 'CERT_COMPARE_SHIFT', + 'CERT_COMPARE_SIGNATURE_HASH', + 'CERT_COMPARE_SUBJECT_CERT', + 'CERT_COMPARE_SUBJECT_INFO_ACCESS', + 'CERT_CROSS_CERT_DIST_POINTS_PROP_ID', + 'CERT_CTL_USAGE_PROP_ID', + 'CERT_DATE_STAMP_PROP_ID', + 'CERT_DESCRIPTION_PROP_ID', + 'CERT_EFS_PROP_ID', + 'CERT_ENCODING_TYPE_MASK', + 'CERT_ENHKEY_USAGE_PROP_ID', + 'CERT_ENROLLMENT_PROP_ID', + 'CERT_EXTENDED_ERROR_INFO_PROP_ID', + 'CERT_FIND_ANY', + 'CERT_FIND_CERT_ID', + 'CERT_FIND_CROSS_CERT_DIST_POINTS', + 'CERT_FIND_CTL_USAGE', + 'CERT_FIND_ENHKEY_USAGE', + 'CERT_FIND_EXISTING', + 'CERT_FIND_HASH', + 'CERT_FIND_ISSUER_ATTR', + 'CERT_FIND_ISSUER_NAME', + 'CERT_FIND_ISSUER_OF', + 'CERT_FIND_ISSUER_STR', + 'CERT_FIND_ISSUER_STR_A', + 'CERT_FIND_ISSUER_STR_W', + 'CERT_FIND_KEY_IDENTIFIER', + 'CERT_FIND_KEY_SPEC', + 'CERT_FIND_MD5_HASH', + 'CERT_FIND_PROPERTY', + 'CERT_FIND_PUBKEY_MD5_HASH', + 'CERT_FIND_PUBLIC_KEY', + 'CERT_FIND_SHA1_HASH', + 'CERT_FIND_SIGNATURE_HASH', + 'CERT_FIND_SUBJECT_ATTR', + 'CERT_FIND_SUBJECT_CERT', + 'CERT_FIND_SUBJECT_INFO_ACCESS', + 'CERT_FIND_SUBJECT_NAME', + 'CERT_FIND_SUBJECT_STR', + 'CERT_FIND_SUBJECT_STR_A', + 'CERT_FIND_SUBJECT_STR_W', + 'CERT_FORTEZZA_DATA_PROP_ID', + 'CERT_FRIENDLY_NAME_PROP_ID', + 'CERT_HASH_PROP_ID', + 'CERT_IE30_RESERVED_PROP_ID', + 'CERT_INFO_EXTENSION_FLAG', + 'CERT_INFO_ISSUER_FLAG', + 'CERT_INFO_ISSUER_UNIQUE_ID_FLAG', + 'CERT_INFO_NOT_AFTER_FLAG', + 'CERT_INFO_NOT_BEFORE_FLAG', + 'CERT_INFO_SERIAL_NUMBER_FLAG', + 'CERT_INFO_SIGNATURE_ALGORITHM_FLAG', + 'CERT_INFO_SUBJECT_FLAG', + 'CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG', + 'CERT_INFO_SUBJECT_UNIQUE_ID_FLAG', + 'CERT_INFO_VERSION_FLAG', + 'CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID', + 'CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID', + 'CERT_KEY_CONTEXT_PROP_ID', + 'CERT_KEY_IDENTIFIER_PROP_ID', + 'CERT_KEY_PROV_HANDLE_PROP_ID', + 'CERT_KEY_PROV_INFO_PROP_ID', + 'CERT_KEY_SPEC_PROP_ID', + 'CERT_MD5_HASH_PROP_ID', + 'CERT_NAME_ATTR_TYPE', + 'CERT_NAME_DISABLE_IE4_UTF8_FLAG', + 'CERT_NAME_DNS_TYPE', + 'CERT_NAME_EMAIL_TYPE', + 'CERT_NAME_FRIENDLY_DISPLAY_TYPE', + 'CERT_NAME_ISSUER_FLAG', + 'CERT_NAME_RDN_TYPE', + 'CERT_NAME_SIMPLE_DISPLAY_TYPE', + 'CERT_NAME_UPN_TYPE', + 'CERT_NAME_URL_TYPE', + 'CERT_NEXT_UPDATE_LOCATION_PROP_ID', + 'CERT_OCSP_RESPONSE_PROP_ID', + 'CERT_OID_NAME_STR', + 'CERT_PUBKEY_ALG_PARA_PROP_ID', + 'CERT_PUBKEY_HASH_RESERVED_PROP_ID', + 'CERT_PVK_FILE_PROP_ID', + 'CERT_QUERY_CONTENT_CERT', + 'CERT_QUERY_CONTENT_CERT_PAIR', + 'CERT_QUERY_CONTENT_CRL', + 'CERT_QUERY_CONTENT_CTL', + 'CERT_QUERY_CONTENT_FLAG_ALL', + 'CERT_QUERY_CONTENT_FLAG_CERT', + 'CERT_QUERY_CONTENT_FLAG_CERT_PAIR', + 'CERT_QUERY_CONTENT_FLAG_CRL', + 'CERT_QUERY_CONTENT_FLAG_CTL', + 'CERT_QUERY_CONTENT_FLAG_PFX', + 'CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD', + 'CERT_QUERY_CONTENT_FLAG_PKCS10', + 'CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED', + 'CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED', + 'CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED', + 'CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT', + 'CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL', + 'CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL', + 'CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE', + 'CERT_QUERY_CONTENT_PFX', + 'CERT_QUERY_CONTENT_PFX_AND_LOAD', + 'CERT_QUERY_CONTENT_PKCS10', + 'CERT_QUERY_CONTENT_PKCS7_SIGNED', + 'CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED', + 'CERT_QUERY_CONTENT_PKCS7_UNSIGNED', + 'CERT_QUERY_CONTENT_SERIALIZED_CERT', + 'CERT_QUERY_CONTENT_SERIALIZED_CRL', + 'CERT_QUERY_CONTENT_SERIALIZED_CTL', + 'CERT_QUERY_CONTENT_SERIALIZED_STORE', + 'CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED', + 'CERT_QUERY_FORMAT_BASE64_ENCODED', + 'CERT_QUERY_FORMAT_BINARY', + 'CERT_QUERY_FORMAT_FLAG_ALL', + 'CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED', + 'CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED', + 'CERT_QUERY_FORMAT_FLAG_BINARY', + 'CERT_QUERY_OBJECT_BLOB', + 'CERT_QUERY_OBJECT_FILE', + 'CERT_RENEWAL_PROP_ID', + 'CERT_REQUEST_ORIGINATOR_PROP_ID', + 'CERT_SHA1_HASH_PROP_ID', + 'CERT_SIGNATURE_HASH_PROP_ID', + 'CERT_SIMPLE_NAME_STR', + 'CERT_SMART_CARD_DATA_PROP_ID', + 'CERT_SOURCE_LOCATION_PROP_ID', + 'CERT_STORE_ADD_ALWAYS', + 'CERT_STORE_ADD_NEW', + 'CERT_STORE_ADD_NEWER', + 'CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES', + 'CERT_STORE_ADD_REPLACE_EXISTING', + 'CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES', + 'CERT_STORE_ADD_USE_EXISTING', + 'CERT_STORE_BACKUP_RESTORE_FLAG', + 'CERT_STORE_CERTIFICATE_CONTEXT', + 'CERT_STORE_CREATE_NEW_FLAG', + 'CERT_STORE_CRL_CONTEXT', + 'CERT_STORE_CTL_CONTEXT', + 'CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG', + 'CERT_STORE_DELETE_FLAG', + 'CERT_STORE_ENUM_ARCHIVED_FLAG', + 'CERT_STORE_MANIFOLD_FLAG', + 'CERT_STORE_MAXIMUM_ALLOWED_FLAG', + 'CERT_STORE_NO_CRYPT_RELEASE_FLAG', + 'CERT_STORE_OPEN_EXISTING_FLAG', + 'CERT_STORE_PROV_COLLECTION', + 'CERT_STORE_PROV_FILE', + 'CERT_STORE_PROV_FILENAME', + 'CERT_STORE_PROV_FILENAME_A', + 'CERT_STORE_PROV_FILENAME_W', + 'CERT_STORE_PROV_LDAP', + 'CERT_STORE_PROV_LDAP_W', + 'CERT_STORE_PROV_MEMORY', + 'CERT_STORE_PROV_MSG', + 'CERT_STORE_PROV_PHYSICAL', + 'CERT_STORE_PROV_PHYSICAL_W', + 'CERT_STORE_PROV_PKCS12', + 'CERT_STORE_PROV_PKCS7', + 'CERT_STORE_PROV_REG', + 'CERT_STORE_PROV_SERIALIZED', + 'CERT_STORE_PROV_SMART_CARD', + 'CERT_STORE_PROV_SMART_CARD_W', + 'CERT_STORE_PROV_SYSTEM', + 'CERT_STORE_PROV_SYSTEM_A', + 'CERT_STORE_PROV_SYSTEM_REGISTRY', + 'CERT_STORE_PROV_SYSTEM_REGISTRY_A', + 'CERT_STORE_PROV_SYSTEM_REGISTRY_W', + 'CERT_STORE_PROV_SYSTEM_W', + 'CERT_STORE_READONLY_FLAG', + 'CERT_STORE_SET_LOCALIZED_NAME_FLAG', + 'CERT_STORE_SHARE_CONTEXT_FLAG', + 'CERT_STORE_SHARE_STORE_FLAG', + 'CERT_STORE_UNSAFE_PHYSICAL_FLAG', + 'CERT_STORE_UPDATE_KEYID_FLAG', + 'CERT_SUBJECT_NAME_MD5_HASH_PROP_ID', + 'CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID', + 'CERT_SYSTEM_STORE_CURRENT_SERVICE', + 'CERT_SYSTEM_STORE_CURRENT_SERVICE_ID', + 'CERT_SYSTEM_STORE_CURRENT_USER', + 'CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY', + 'CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID', + 'CERT_SYSTEM_STORE_CURRENT_USER_ID', + 'CERT_SYSTEM_STORE_LOCAL_MACHINE', + 'CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE', + 'CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID', + 'CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY', + 'CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID', + 'CERT_SYSTEM_STORE_LOCAL_MACHINE_ID', + 'CERT_SYSTEM_STORE_LOCATION_MASK', + 'CERT_SYSTEM_STORE_LOCATION_SHIFT', + 'CERT_SYSTEM_STORE_SERVICES', + 'CERT_SYSTEM_STORE_SERVICES_ID', + 'CERT_SYSTEM_STORE_UNPROTECTED_FLAG', + 'CERT_SYSTEM_STORE_USERS', + 'CERT_SYSTEM_STORE_USERS_ID', + 'CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID', + 'CERT_TRUST_CTL_IS_NOT_TIME_VALID', + 'CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE', + 'CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED', + 'CERT_TRUST_HAS_EXACT_MATCH_ISSUER', + 'CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT', + 'CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY', + 'CERT_TRUST_HAS_KEY_MATCH_ISSUER', + 'CERT_TRUST_HAS_NAME_MATCH_ISSUER', + 'CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT', + 'CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT', + 'CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT', + 'CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT', + 'CERT_TRUST_HAS_PREFERRED_ISSUER', + 'CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS', + 'CERT_TRUST_INVALID_BASIC_CONSTRAINTS', + 'CERT_TRUST_INVALID_EXTENSION', + 'CERT_TRUST_INVALID_NAME_CONSTRAINTS', + 'CERT_TRUST_INVALID_POLICY_CONSTRAINTS', + 'CERT_TRUST_IS_COMPLEX_CHAIN', + 'CERT_TRUST_IS_CYCLIC', + 'CERT_TRUST_IS_EXPLICIT_DISTRUST', + 'CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE', + 'CERT_TRUST_IS_NOT_SIGNATURE_VALID', + 'CERT_TRUST_IS_NOT_TIME_NESTED', + 'CERT_TRUST_IS_NOT_TIME_VALID', + 'CERT_TRUST_IS_NOT_VALID_FOR_USAGE', + 'CERT_TRUST_IS_OFFLINE_REVOCATION', + 'CERT_TRUST_IS_PARTIAL_CHAIN', + 'CERT_TRUST_IS_PEER_TRUSTED', + 'CERT_TRUST_IS_REVOKED', + 'CERT_TRUST_IS_SELF_SIGNED', + 'CERT_TRUST_IS_UNTRUSTED_ROOT', + 'CERT_TRUST_NO_ERROR', + 'CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY', + 'CERT_TRUST_REVOCATION_STATUS_UNKNOWN', + 'CERT_X500_NAME_STR', + 'CERT_XML_NAME_STR', + 'CLAIM_SECURITY_ATTRIBUTE_TYPE_BOOLEAN', + 'CLAIM_SECURITY_ATTRIBUTE_TYPE_FQBN', + 'CLAIM_SECURITY_ATTRIBUTE_TYPE_INT64', + 'CLAIM_SECURITY_ATTRIBUTE_TYPE_INVALID', + 'CLAIM_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING', + 'CLAIM_SECURITY_ATTRIBUTE_TYPE_SID', + 'CLAIM_SECURITY_ATTRIBUTE_TYPE_STRING', + 'CLAIM_SECURITY_ATTRIBUTE_TYPE_UINT64', + 'CLUSAPI_ALL_ACCESS', + 'CLUSAPI_CHANGE_ACCESS', + 'CLUSAPI_NO_ACCESS', + 'CLUSAPI_READ_ACCESS', + 'CMSG_ATTR_CERT_COUNT_PARAM', + 'CMSG_ATTR_CERT_PARAM', + 'CMSG_AUTHENTICATED_ATTRIBUTES_FLAG', + 'CMSG_BARE_CONTENT_FLAG', + 'CMSG_BARE_CONTENT_PARAM', + 'CMSG_CERT_COUNT_PARAM', + 'CMSG_CERT_PARAM', + 'CMSG_CMS_ENCAPSULATED_CONTENT_FLAG', + 'CMSG_CMS_RECIPIENT_COUNT_PARAM', + 'CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM', + 'CMSG_CMS_RECIPIENT_INDEX_PARAM', + 'CMSG_CMS_RECIPIENT_INFO_PARAM', + 'CMSG_CMS_SIGNER_INFO_PARAM', + 'CMSG_COMPUTED_HASH_PARAM', + 'CMSG_CONTENTS_OCTETS_FLAG', + 'CMSG_CONTENT_PARAM', + 'CMSG_CRL_COUNT_PARAM', + 'CMSG_CRL_PARAM', + 'CMSG_CRYPT_RELEASE_CONTEXT_FLAG', + 'CMSG_CTRL_ADD_ATTR_CERT', + 'CMSG_CTRL_ADD_CERT', + 'CMSG_CTRL_ADD_CMS_SIGNER_INFO', + 'CMSG_CTRL_ADD_CRL', + 'CMSG_CTRL_ADD_SIGNER', + 'CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR', + 'CMSG_CTRL_DECRYPT', + 'CMSG_CTRL_DEL_ATTR_CERT', + 'CMSG_CTRL_DEL_CERT', + 'CMSG_CTRL_DEL_CRL', + 'CMSG_CTRL_DEL_SIGNER', + 'CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR', + 'CMSG_CTRL_ENABLE_STRONG_SIGNATURE', + 'CMSG_CTRL_KEY_AGREE_DECRYPT', + 'CMSG_CTRL_KEY_TRANS_DECRYPT', + 'CMSG_CTRL_MAIL_LIST_DECRYPT', + 'CMSG_CTRL_VERIFY_HASH', + 'CMSG_CTRL_VERIFY_SIGNATURE', + 'CMSG_CTRL_VERIFY_SIGNATURE_EX', + 'CMSG_DATA', + 'CMSG_DETACHED_FLAG', + 'CMSG_ENCODED_MESSAGE', + 'CMSG_ENCODED_SIGNER', + 'CMSG_ENCODING_TYPE_MASK', + 'CMSG_ENCRYPTED', + 'CMSG_ENCRYPTED_DIGEST', + 'CMSG_ENCRYPT_PARAM', + 'CMSG_ENVELOPED', + 'CMSG_ENVELOPE_ALGORITHM_PARAM', + 'CMSG_HASHED', + 'CMSG_HASH_ALGORITHM_PARAM', + 'CMSG_HASH_DATA_PARAM', + 'CMSG_INDEFINITE_LENGTH', + 'CMSG_INNER_CONTENT_TYPE_PARAM', + 'CMSG_LENGTH_ONLY_FLAG', + 'CMSG_MAX_LENGTH_FLAG', + 'CMSG_RECIPIENT_COUNT_PARAM', + 'CMSG_RECIPIENT_INDEX_PARAM', + 'CMSG_RECIPIENT_INFO_PARAM', + 'CMSG_SIGNED', + 'CMSG_SIGNED_AND_ENVELOPED', + 'CMSG_SIGNER_AUTH_ATTR_PARAM', + 'CMSG_SIGNER_CERT_ID_PARAM', + 'CMSG_SIGNER_CERT_INFO_PARAM', + 'CMSG_SIGNER_COUNT_PARAM', + 'CMSG_SIGNER_HASH_ALGORITHM_PARAM', + 'CMSG_SIGNER_INFO_PARAM', + 'CMSG_SIGNER_UNAUTH_ATTR_PARAM', + 'CMSG_TYPE_PARAM', + 'CMSG_UNPROTECTED_ATTR_PARAM', + 'CMSG_VERIFY_SIGNER_CERT', + 'CMSG_VERIFY_SIGNER_CHAIN', + 'CMSG_VERIFY_SIGNER_NULL', + 'CMSG_VERIFY_SIGNER_PUBKEY', + 'CMSG_VERSION_PARAM', + 'CM_DEVCAP_DOCKDEVICE', + 'CM_DEVCAP_EJECTSUPPORTED', + 'CM_DEVCAP_HARDWAREDISABLED', + 'CM_DEVCAP_LOCKSUPPORTED', + 'CM_DEVCAP_NONDYNAMIC', + 'CM_DEVCAP_RAWDEVICEOK', + 'CM_DEVCAP_REMOVABLE', + 'CM_DEVCAP_SILENTINSTALL', + 'CM_DEVCAP_SURPRISEREMOVALOK', + 'CM_DEVCAP_UNIQUEID', + 'COMPRESSION_ENGINE_HIBER', + 'COMPRESSION_ENGINE_MAXIMUM', + 'COMPRESSION_ENGINE_STANDARD', + 'COMPRESSION_FORMAT_DEFAULT', + 'COMPRESSION_FORMAT_LZNT1', + 'COMPRESSION_FORMAT_NONE', + 'COMPRESSION_FORMAT_XPRESS', + 'COMPRESSION_FORMAT_XPRESS_HUFF', + 'COM_ACTIVATE_LOCAL', + 'COM_ACTIVATE_REMOTE', + 'COM_EXECUTE', + 'COM_EXECUTE_LOCAL', + 'COM_EXECUTE_REMOTE', + 'CONTAINER_INHERIT_ACE', + 'CONTEXT_ALL', + 'CONTEXT_CONTROL', + 'CONTEXT_DEBUG_REGISTERS', + 'CONTEXT_EXTENDED_REGISTERS', + 'CONTEXT_FLOATING_POINT', + 'CONTEXT_FULL', + 'CONTEXT_I386', + 'CONTEXT_INTEGER', + 'CONTEXT_SEGMENTS', + 'CONTEXT_XSTATE', + 'CONTROL_C_EXIT', + 'CREATE_ALWAYS', + 'CREATE_BREAKAWAY_FROM_JOB', + 'CREATE_DEFAULT_ERROR_MODE', + 'CREATE_FORCEDOS', + 'CREATE_IGNORE_SYSTEM_DEFAULT', + 'CREATE_NEW', + 'CREATE_NEW_CONSOLE', + 'CREATE_NEW_PROCESS_GROUP', + 'CREATE_NO_WINDOW', + 'CREATE_PRESERVE_CODE_AUTHZ_LEVEL', + 'CREATE_PROCESS_DEBUG_EVENT', + 'CREATE_PROTECTED_PROCESS', + 'CREATE_SEPARATE_WOW_VDM', + 'CREATE_SHARED_WOW_VDM', + 'CREATE_SUSPENDED', + 'CREATE_THREAD_DEBUG_EVENT', + 'CREATE_UNICODE_ENVIRONMENT', + 'CRYPTPROTECTMEMORY_BLOCK_SIZE', + 'CRYPTPROTECTMEMORY_CROSS_PROCESS', + 'CRYPTPROTECTMEMORY_SAME_LOGON', + 'CRYPTPROTECTMEMORY_SAME_PROCESS', + 'CRYPTPROTECT_AUDIT', + 'CRYPTPROTECT_CRED_REGENERATE', + 'CRYPTPROTECT_CRED_SYNC', + 'CRYPTPROTECT_FIRST_RESERVED_FLAGVAL', + 'CRYPTPROTECT_LAST_RESERVED_FLAGVAL', + 'CRYPTPROTECT_LOCAL_MACHINE', + 'CRYPTPROTECT_NO_RECOVERY', + 'CRYPTPROTECT_PROMPT_ON_PROTECT', + 'CRYPTPROTECT_PROMPT_ON_UNPROTECT', + 'CRYPTPROTECT_PROMPT_REQUIRE_STRONG', + 'CRYPTPROTECT_PROMPT_RESERVED', + 'CRYPTPROTECT_PROMPT_STRONG', + 'CRYPTPROTECT_UI_FORBIDDEN', + 'CRYPTPROTECT_VERIFY_PROTECTION', + 'CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG', + 'CRYPT_ACQUIRE_CACHE_FLAG', + 'CRYPT_ACQUIRE_COMPARE_KEY_FLAG', + 'CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK', + 'CRYPT_ACQUIRE_NO_HEALING', + 'CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG', + 'CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG', + 'CRYPT_ACQUIRE_SILENT_FLAG', + 'CRYPT_ACQUIRE_USE_PROV_INFO_FLAG', + 'CRYPT_ARCHIVABLE', + 'CRYPT_ASN_ENCODING', + 'CRYPT_CREATE_IV', + 'CRYPT_CREATE_SALT', + 'CRYPT_DATA_KEY', + 'CRYPT_DEFAULT_CONTAINER_OPTIONAL', + 'CRYPT_DELETEKEYSET', + 'CRYPT_ENCODE_DECODE_NONE', + 'CRYPT_EXPORTABLE', + 'CRYPT_FLAG_IPSEC', + 'CRYPT_FLAG_PCT1', + 'CRYPT_FLAG_SIGNING', + 'CRYPT_FLAG_SSL2', + 'CRYPT_FLAG_SSL3', + 'CRYPT_FLAG_TLS1', + 'CRYPT_FORCE_KEY_PROTECTION_HIGH', + 'CRYPT_INITIATOR', + 'CRYPT_KEK', + 'CRYPT_MACHINE_KEYSET', + 'CRYPT_NDR_ENCODING', + 'CRYPT_NEWKEYSET', + 'CRYPT_NO_SALT', + 'CRYPT_ONLINE', + 'CRYPT_PREGEN', + 'CRYPT_RECIPIENT', + 'CRYPT_SF', + 'CRYPT_SGCKEY', + 'CRYPT_SILENT', + 'CRYPT_UPDATE_KEY', + 'CRYPT_USER_KEYSET', + 'CRYPT_USER_PROTECTED', + 'CRYPT_VERIFYCONTEXT', + 'CRYPT_VOLATILE', + 'CR_ACCESS_DENIED', + 'CR_ALREADY_SUCH_DEVINST', + 'CR_ALREADY_SUCH_DEVNODE', + 'CR_APM_VETOED', + 'CR_BUFFER_SMALL', + 'CR_CALL_NOT_IMPLEMENTED', + 'CR_CANT_SHARE_IRQ', + 'CR_CREATE_BLOCKED', + 'CR_DEFAULT', + 'CR_DEVICE_INTERFACE_ACTIVE', + 'CR_DEVICE_NOT_THERE', + 'CR_DEVINST_HAS_REQS', + 'CR_DEVLOADER_NOT_READY', + 'CR_DEVNODE_HAS_REQS', + 'CR_DLVXD_NOT_FOUND', + 'CR_FAILURE', + 'CR_FREE_RESOURCES', + 'CR_INVALID_API', + 'CR_INVALID_ARBITRATOR', + 'CR_INVALID_CONFLICT_LIST', + 'CR_INVALID_DATA', + 'CR_INVALID_DEVICE_ID', + 'CR_INVALID_DEVINST', + 'CR_INVALID_DEVNODE', + 'CR_INVALID_FLAG', + 'CR_INVALID_INDEX', + 'CR_INVALID_LOAD_TYPE', + 'CR_INVALID_LOG_CONF', + 'CR_INVALID_MACHINENAME', + 'CR_INVALID_NODELIST', + 'CR_INVALID_POINTER', + 'CR_INVALID_PRIORITY', + 'CR_INVALID_PROPERTY', + 'CR_INVALID_RANGE', + 'CR_INVALID_RANGE_LIST', + 'CR_INVALID_REFERENCE_STRING', + 'CR_INVALID_RESOURCEID', + 'CR_INVALID_RES_DES', + 'CR_INVALID_STRUCTURE_SIZE', + 'CR_MACHINE_UNAVAILABLE', + 'CR_NEED_RESTART', + 'CR_NOT_DISABLEABLE', + 'CR_NOT_SYSTEM_VM', + 'CR_NO_ARBITRATOR', + 'CR_NO_CM_SERVICES', + 'CR_NO_DEPENDENT', + 'CR_NO_MORE_HW_PROFILES', + 'CR_NO_MORE_LOG_CONF', + 'CR_NO_MORE_RES_DES', + 'CR_NO_REGISTRY_HANDLE', + 'CR_NO_SUCH_DEVICE_INTERFACE', + 'CR_NO_SUCH_DEVINST', + 'CR_NO_SUCH_DEVNODE', + 'CR_NO_SUCH_LOGICAL_DEV', + 'CR_NO_SUCH_REGISTRY_KEY', + 'CR_NO_SUCH_VALUE', + 'CR_OUT_OF_MEMORY', + 'CR_QUERY_VETOED', + 'CR_REGISTRY_ERROR', + 'CR_REMOTE_COMM_FAILURE', + 'CR_REMOVE_VETOED', + 'CR_SAME_RESOURCES', + 'CR_SUCCESS', + 'CR_WRONG_TYPE', + 'CS_USER_32B', + 'CS_USER_64B', + 'CWCSTORAGENAME', + 'DACL_SECURITY_INFORMATION', + 'DEBUG_EVENT_BREAKPOINT', + 'DEBUG_EVENT_CHANGE_DEBUGGEE_STATE', + 'DEBUG_EVENT_CHANGE_ENGINE_STATE', + 'DEBUG_EVENT_CHANGE_SYMBOL_STATE', + 'DEBUG_EVENT_CREATE_PROCESS', + 'DEBUG_EVENT_CREATE_THREAD', + 'DEBUG_EVENT_EXCEPTION', + 'DEBUG_EVENT_EXIT_PROCESS', + 'DEBUG_EVENT_EXIT_THREAD', + 'DEBUG_EVENT_LOAD_MODULE', + 'DEBUG_EVENT_SESSION_STATUS', + 'DEBUG_EVENT_SYSTEM_ERROR', + 'DEBUG_EVENT_UNLOAD_MODULE', + 'DEBUG_ONLY_THIS_PROCESS', + 'DEBUG_PROCESS', + 'DEFAULT_MINIMUM_ENTITIES', + 'DELETE', + 'DETACHED_PROCESS', + 'DIRECTORY_ALL_ACCESS', + 'DIRECTORY_CREATE_OBJECT', + 'DIRECTORY_CREATE_SUBDIRECTORY', + 'DIRECTORY_QUERY', + 'DIRECTORY_TRAVERSE', + 'DNS_ADDR_MAX_SOCKADDR_LENGTH', + 'DNS_ATMA_FORMAT_AESA', + 'DNS_ATMA_FORMAT_E164', + 'DNS_ATMA_MAX_ADDR_LENGTH', + 'DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE', + 'DNS_QUERY_ADDRCONFIG', + 'DNS_QUERY_APPEND_MULTILABEL', + 'DNS_QUERY_BYPASS_CACHE', + 'DNS_QUERY_DISABLE_IDN_ENCODING', + 'DNS_QUERY_DNSSEC_CHECKING_DISABLED', + 'DNS_QUERY_DNSSEC_OK', + 'DNS_QUERY_DONT_RESET_TTL_VALUES', + 'DNS_QUERY_DUAL_ADDR', + 'DNS_QUERY_MULTICAST_ONLY', + 'DNS_QUERY_NO_HOSTS_FILE', + 'DNS_QUERY_NO_LOCAL_NAME', + 'DNS_QUERY_NO_MULTICAST', + 'DNS_QUERY_NO_NETBT', + 'DNS_QUERY_NO_RECURSION', + 'DNS_QUERY_NO_WIRE_QUERY', + 'DNS_QUERY_RESERVED', + 'DNS_QUERY_RETURN_MESSAGE', + 'DNS_QUERY_STANDARD', + 'DNS_QUERY_TREAT_AS_FQDN', + 'DNS_QUERY_USE_TCP_ONLY', + 'DNS_QUERY_WIRE_ONLY', + 'DNS_TYPE_A', + 'DNS_TYPE_A6', + 'DNS_TYPE_AAAA', + 'DNS_TYPE_ADDRS', + 'DNS_TYPE_AFSDB', + 'DNS_TYPE_ALL', + 'DNS_TYPE_ANY', + 'DNS_TYPE_ATMA', + 'DNS_TYPE_AXFR', + 'DNS_TYPE_CERT', + 'DNS_TYPE_CNAME', + 'DNS_TYPE_DHCID', + 'DNS_TYPE_DNAME', + 'DNS_TYPE_DNSKEY', + 'DNS_TYPE_DS', + 'DNS_TYPE_EID', + 'DNS_TYPE_GID', + 'DNS_TYPE_GPOS', + 'DNS_TYPE_HINFO', + 'DNS_TYPE_ISDN', + 'DNS_TYPE_IXFR', + 'DNS_TYPE_KEY', + 'DNS_TYPE_KX', + 'DNS_TYPE_LOC', + 'DNS_TYPE_MAILA', + 'DNS_TYPE_MAILB', + 'DNS_TYPE_MB', + 'DNS_TYPE_MD', + 'DNS_TYPE_MF', + 'DNS_TYPE_MG', + 'DNS_TYPE_MINFO', + 'DNS_TYPE_MR', + 'DNS_TYPE_MX', + 'DNS_TYPE_NAPTR', + 'DNS_TYPE_NBSTAT', + 'DNS_TYPE_NIMLOC', + 'DNS_TYPE_NS', + 'DNS_TYPE_NSAP', + 'DNS_TYPE_NSAPPTR', + 'DNS_TYPE_NSEC', + 'DNS_TYPE_NSEC3', + 'DNS_TYPE_NSEC3PARAM', + 'DNS_TYPE_NULL', + 'DNS_TYPE_NXT', + 'DNS_TYPE_OPT', + 'DNS_TYPE_PTR', + 'DNS_TYPE_PX', + 'DNS_TYPE_RP', + 'DNS_TYPE_RRSIG', + 'DNS_TYPE_RT', + 'DNS_TYPE_SIG', + 'DNS_TYPE_SINK', + 'DNS_TYPE_SOA', + 'DNS_TYPE_SRV', + 'DNS_TYPE_TEXT', + 'DNS_TYPE_TKEY', + 'DNS_TYPE_TSIG', + 'DNS_TYPE_UID', + 'DNS_TYPE_UINFO', + 'DNS_TYPE_UNSPEC', + 'DNS_TYPE_WINS', + 'DNS_TYPE_WINSR', + 'DNS_TYPE_WKS', + 'DNS_TYPE_X25', + 'DNS_TYPE_ZERO', + 'DRIVE_CDROM', + 'DRIVE_FIXED', + 'DRIVE_NO_ROOT_DIR', + 'DRIVE_RAMDISK', + 'DRIVE_REMOTE', + 'DRIVE_REMOVABLE', + 'DRIVE_UNKNOWN', + 'DSLFLAG_MISMATCHED_DBG', + 'DSLFLAG_MISMATCHED_PDB', + 'DUPLICATE_CLOSE_SOURCE', + 'DUPLICATE_SAME_ACCESS', + 'DWORDLONG_MAX', + 'DWORD_MAX', + 'ERROR_AUTHENTICODE_DISALLOWED', + 'ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED', + 'ERROR_AUTHENTICODE_TRUSTED_PUBLISHER', + 'ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED', + 'ERROR_BAD_INTERFACE_INSTALLSECT', + 'ERROR_BAD_SECTION_NAME_LINE', + 'ERROR_BAD_SERVICE_INSTALLSECT', + 'ERROR_CANT_LOAD_CLASS_ICON', + 'ERROR_CANT_REMOVE_DEVINST', + 'ERROR_CLASS_MISMATCH', + 'ERROR_DEVICE_INSTALLER_NOT_READY', + 'ERROR_DEVICE_INSTALL_BLOCKED', + 'ERROR_DEVICE_INTERFACE_ACTIVE', + 'ERROR_DEVICE_INTERFACE_REMOVED', + 'ERROR_DEVINFO_DATA_LOCKED', + 'ERROR_DEVINFO_LIST_LOCKED', + 'ERROR_DEVINFO_NOT_REGISTERED', + 'ERROR_DEVINSTALL_QUEUE_NONNATIVE', + 'ERROR_DEVINST_ALREADY_EXISTS', + 'ERROR_DI_BAD_PATH', + 'ERROR_DI_DONT_INSTALL', + 'ERROR_DI_DO_DEFAULT', + 'ERROR_DI_FUNCTION_OBSOLETE', + 'ERROR_DI_NOFILECOPY', + 'ERROR_DI_POSTPROCESSING_REQUIRED', + 'ERROR_DRIVER_INSTALL_BLOCKED', + 'ERROR_DRIVER_NONNATIVE', + 'ERROR_DRIVER_STORE_ADD_FAILED', + 'ERROR_DRIVER_STORE_DELETE_FAILED', + 'ERROR_DUPLICATE_FOUND', + 'ERROR_EXPECTED_SECTION_NAME', + 'ERROR_FILEQUEUE_LOCKED', + 'ERROR_FILE_HASH_NOT_IN_CATALOG', + 'ERROR_GENERAL_SYNTAX', + 'ERROR_INF_IN_USE_BY_DEVICES', + 'ERROR_INTERFACE_DEVICE_ACTIVE', + 'ERROR_INTERFACE_DEVICE_REMOVED', + 'ERROR_INVALID_CLASS', + 'ERROR_INVALID_CLASS_INSTALLER', + 'ERROR_INVALID_COINSTALLER', + 'ERROR_INVALID_DEVINST_NAME', + 'ERROR_INVALID_FILTER_DRIVER', + 'ERROR_INVALID_HWPROFILE', + 'ERROR_INVALID_INF_LOGCONFIG', + 'ERROR_INVALID_MACHINENAME', + 'ERROR_INVALID_PROPPAGE_PROVIDER', + 'ERROR_INVALID_REFERENCE_STRING', + 'ERROR_INVALID_REG_PROPERTY', + 'ERROR_INVALID_TARGET', + 'ERROR_IN_WOW64', + 'ERROR_KEY_DOES_NOT_EXIST', + 'ERROR_LINE_NOT_FOUND', + 'ERROR_MACHINE_UNAVAILABLE', + 'ERROR_NON_WINDOWS_DRIVER', + 'ERROR_NON_WINDOWS_NT_DRIVER', + 'ERROR_NOT_AN_INSTALLED_OEM_INF', + 'ERROR_NOT_DISABLEABLE', + 'ERROR_NOT_INSTALLED', + 'ERROR_NO_ASSOCIATED_CLASS', + 'ERROR_NO_ASSOCIATED_SERVICE', + 'ERROR_NO_AUTHENTICODE_CATALOG', + 'ERROR_NO_BACKUP', + 'ERROR_NO_CATALOG_FOR_OEM_INF', + 'ERROR_NO_CLASSINSTALL_PARAMS', + 'ERROR_NO_CLASS_DRIVER_LIST', + 'ERROR_NO_COMPAT_DRIVERS', + 'ERROR_NO_CONFIGMGR_SERVICES', + 'ERROR_NO_DEFAULT_DEVICE_INTERFACE', + 'ERROR_NO_DEFAULT_INTERFACE_DEVICE', + 'ERROR_NO_DEVICE_ICON', + 'ERROR_NO_DEVICE_SELECTED', + 'ERROR_NO_DRIVER_SELECTED', + 'ERROR_NO_INF', + 'ERROR_NO_SUCH_DEVICE_INTERFACE', + 'ERROR_NO_SUCH_DEVINST', + 'ERROR_NO_SUCH_INTERFACE_CLASS', + 'ERROR_NO_SUCH_INTERFACE_DEVICE', + 'ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE', + 'ERROR_PNP_REGISTRY_ERROR', + 'ERROR_REMOTE_COMM_FAILURE', + 'ERROR_REMOTE_REQUEST_UNSUPPORTED', + 'ERROR_SCE_DISABLED', + 'ERROR_SECTION_NAME_TOO_LONG', + 'ERROR_SECTION_NOT_FOUND', + 'ERROR_SET_SYSTEM_RESTORE_POINT', + 'ERROR_SEVERITY_ERROR', + 'ERROR_SEVERITY_INFORMATIONAL', + 'ERROR_SEVERITY_SUCCESS', + 'ERROR_SEVERITY_WARNING', + 'ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH', + 'ERROR_UNKNOWN_EXCEPTION', + 'ERROR_UNRECOVERABLE_STACK_OVERFLOW', + 'ERROR_WRONG_INF_STYLE', + 'ERROR_WRONG_INF_TYPE', + 'EVENTLOG_AUDIT_FAILURE', + 'EVENTLOG_AUDIT_SUCCESS', + 'EVENTLOG_BACKWARDS_READ', + 'EVENTLOG_ERROR_TYPE', + 'EVENTLOG_FORWARDS_READ', + 'EVENTLOG_INFORMATION_TYPE', + 'EVENTLOG_SEEK_READ', + 'EVENTLOG_SEQUENTIAL_READ', + 'EVENTLOG_SUCCESS', + 'EVENTLOG_WARNING_TYPE', + 'EVENT_ALL_ACCESS', + 'EVENT_HEADER_FLAG_32_BIT_HEADER', + 'EVENT_HEADER_FLAG_64_BIT_HEADER', + 'EVENT_HEADER_FLAG_CLASSIC_HEADER', + 'EVENT_HEADER_FLAG_EXTENDED_INFO', + 'EVENT_HEADER_FLAG_NO_CPUTIME', + 'EVENT_HEADER_FLAG_PRIVATE_SESSION', + 'EVENT_HEADER_FLAG_PROCESSOR_INDEX', + 'EVENT_HEADER_FLAG_STRING_ONLY', + 'EVENT_HEADER_FLAG_TRACE_MESSAGE', + 'EVENT_HEADER_PROPERTY_FORWARDED_XML', + 'EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG', + 'EVENT_HEADER_PROPERTY_XML', + 'EVENT_MODIFY_STATE', + 'EVENT_QUERY_STATE', + 'EVENT_SRCSPEW', + 'EVENT_SRCSPEW_END', + 'EVENT_SRCSPEW_START', + 'EVENT_TRACE_ADDTO_TRIAGE_DUMP', + 'EVENT_TRACE_ADD_HEADER_MODE', + 'EVENT_TRACE_BUFFERING_MODE', + 'EVENT_TRACE_CONTROL_FLUSH', + 'EVENT_TRACE_CONTROL_QUERY', + 'EVENT_TRACE_CONTROL_STOP', + 'EVENT_TRACE_CONTROL_UPDATE', + 'EVENT_TRACE_DELAY_OPEN_FILE_MODE', + 'EVENT_TRACE_FILE_MODE_APPEND', + 'EVENT_TRACE_FILE_MODE_CIRCULAR', + 'EVENT_TRACE_FILE_MODE_NEWFILE', + 'EVENT_TRACE_FILE_MODE_NONE', + 'EVENT_TRACE_FILE_MODE_PREALLOCATE', + 'EVENT_TRACE_FILE_MODE_SEQUENTIAL', + 'EVENT_TRACE_FLAG_DBGPRINT', + 'EVENT_TRACE_FLAG_DISK_FILE_IO', + 'EVENT_TRACE_FLAG_DISK_IO', + 'EVENT_TRACE_FLAG_DISPATCHER', + 'EVENT_TRACE_FLAG_ENABLE_RESERVE', + 'EVENT_TRACE_FLAG_EXTENSION', + 'EVENT_TRACE_FLAG_FORWARD_WMI', + 'EVENT_TRACE_FLAG_IMAGE_LOAD', + 'EVENT_TRACE_FLAG_MEMORY_HARD_FAULTS', + 'EVENT_TRACE_FLAG_MEMORY_PAGE_FAULTS', + 'EVENT_TRACE_FLAG_NETWORK_TCPIP', + 'EVENT_TRACE_FLAG_NO_SYSCONFIG', + 'EVENT_TRACE_FLAG_PROCESS', + 'EVENT_TRACE_FLAG_REGISTRY', + 'EVENT_TRACE_FLAG_THREAD', + 'EVENT_TRACE_FLAG_VAMAP', + 'EVENT_TRACE_FLAG_VIRTUAL_ALLOC', + 'EVENT_TRACE_FLAG_VOLMGR', + 'EVENT_TRACE_INDEPENDENT_SESSION_MODE', + 'EVENT_TRACE_MODE_RESERVED', + 'EVENT_TRACE_NONSTOPPABLE_MODE', + 'EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING', + 'EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN', + 'EVENT_TRACE_PRIVATE_IN_PROC', + 'EVENT_TRACE_PRIVATE_LOGGER_MODE', + 'EVENT_TRACE_REAL_TIME_MODE', + 'EVENT_TRACE_RELOG_MODE', + 'EVENT_TRACE_SECURE_MODE', + 'EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN', + 'EVENT_TRACE_SYSTEM_LOGGER_MODE', + 'EVENT_TRACE_TYPE_CONFIG_CPU', + 'EVENT_TRACE_TYPE_CONFIG_LOGICALDISK', + 'EVENT_TRACE_TYPE_CONFIG_NETINFO', + 'EVENT_TRACE_TYPE_CONFIG_NIC', + 'EVENT_TRACE_TYPE_CONFIG_PHYSICALDISK', + 'EVENT_TRACE_TYPE_CONFIG_POWER', + 'EVENT_TRACE_TYPE_CONFIG_SERVICES', + 'EVENT_TRACE_TYPE_CONFIG_VIDEO', + 'EVENT_TRACE_USE_GLOBAL_SEQUENCE', + 'EVENT_TRACE_USE_KBYTES_FOR_SIZE', + 'EVENT_TRACE_USE_LOCAL_SEQUENCE', + 'EVENT_TRACE_USE_PAGED_MEMORY', + 'EVT_VARIANT_TYPE_ARRAY', + 'EVT_VARIANT_TYPE_MASK', + 'EXCEPTION_ACCESS_VIOLATION', + 'EXCEPTION_ARRAY_BOUNDS_EXCEEDED', + 'EXCEPTION_BREAKPOINT', + 'EXCEPTION_CONTINUE_EXECUTION', + 'EXCEPTION_CONTINUE_SEARCH', + 'EXCEPTION_DATATYPE_MISALIGNMENT', + 'EXCEPTION_DEBUG_EVENT', + 'EXCEPTION_EXECUTE_HANDLER', + 'EXCEPTION_FLT_DENORMAL_OPERAND', + 'EXCEPTION_FLT_DIVIDE_BY_ZERO', + 'EXCEPTION_FLT_INEXACT_RESULT', + 'EXCEPTION_FLT_INVALID_OPERATION', + 'EXCEPTION_FLT_OVERFLOW', + 'EXCEPTION_FLT_STACK_CHECK', + 'EXCEPTION_FLT_UNDERFLOW', + 'EXCEPTION_GUARD_PAGE', + 'EXCEPTION_ILLEGAL_INSTRUCTION', + 'EXCEPTION_INT_DIVIDE_BY_ZERO', + 'EXCEPTION_INT_OVERFLOW', + 'EXCEPTION_INVALID_DISPOSITION', + 'EXCEPTION_INVALID_HANDLE', + 'EXCEPTION_IN_PAGE_ERROR', + 'EXCEPTION_MAXIMUM_PARAMETERS', + 'EXCEPTION_NONCONTINUABLE', + 'EXCEPTION_NONCONTINUABLE_EXCEPTION', + 'EXCEPTION_POSSIBLE_DEADLOCK', + 'EXCEPTION_PRIV_INSTRUCTION', + 'EXCEPTION_SINGLE_STEP', + 'EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW', + 'EXCEPTION_STACK_OVERFLOW', + 'EXIT_PROCESS_DEBUG_EVENT', + 'EXIT_THREAD_DEBUG_EVENT', + 'EXPORT_PRIVATE_KEYS', + 'EXTENDED_STARTUPINFO_PRESENT', + 'FAILED_ACCESS_ACE_FLAG', + 'FAX_CONFIG_QUERY', + 'FAX_CONFIG_SET', + 'FAX_JOB_MANAGE', + 'FAX_JOB_QUERY', + 'FAX_JOB_SUBMIT', + 'FAX_PORT_QUERY', + 'FAX_PORT_SET', + 'FC_ALLOCATE_ALL_NODES', + 'FC_ALLOCED_ON_STACK', + 'FC_DONT_FREE', + 'FC_POINTER_DEREF', + 'FC_SIMPLE_POINTER', + 'FILE_ACTION_ADDED', + 'FILE_ACTION_ADDED_STREAM', + 'FILE_ACTION_ID_NOT_TUNNELLED', + 'FILE_ACTION_MODIFIED', + 'FILE_ACTION_MODIFIED_STREAM', + 'FILE_ACTION_REMOVED', + 'FILE_ACTION_REMOVED_BY_DELETE', + 'FILE_ACTION_REMOVED_STREAM', + 'FILE_ACTION_RENAMED_NEW_NAME', + 'FILE_ACTION_RENAMED_OLD_NAME', + 'FILE_ACTION_TUNNELLED_ID_COLLISION', + 'FILE_ADD_FILE', + 'FILE_ADD_SUBDIRECTORY', + 'FILE_ALL_ACCESS', + 'FILE_APPEND_DATA', + 'FILE_ATTRIBUTE_ARCHIVE', + 'FILE_ATTRIBUTE_COMPRESSED', + 'FILE_ATTRIBUTE_DEVICE', + 'FILE_ATTRIBUTE_DIRECTORY', + 'FILE_ATTRIBUTE_ENCRYPTED', + 'FILE_ATTRIBUTE_HIDDEN', + 'FILE_ATTRIBUTE_NORMAL', + 'FILE_ATTRIBUTE_NOT_CONTENT_INDEXED', + 'FILE_ATTRIBUTE_OFFLINE', + 'FILE_ATTRIBUTE_READONLY', + 'FILE_ATTRIBUTE_REPARSE_POINT', + 'FILE_ATTRIBUTE_SPARSE_FILE', + 'FILE_ATTRIBUTE_SYSTEM', + 'FILE_ATTRIBUTE_TEMPORARY', + 'FILE_ATTRIBUTE_VIRTUAL', + 'FILE_CASE_PRESERVED_NAMES', + 'FILE_CASE_SENSITIVE_SEARCH', + 'FILE_COMPLETE_IF_OPLOCKED', + 'FILE_CREATE', + 'FILE_CREATED', + 'FILE_CREATE_PIPE_INSTANCE', + 'FILE_CREATE_TREE_CONNECTION', + 'FILE_DELETE_CHILD', + 'FILE_DELETE_ON_CLOSE', + 'FILE_DEVICE_8042_PORT', + 'FILE_DEVICE_ACPI', + 'FILE_DEVICE_BATTERY', + 'FILE_DEVICE_BEEP', + 'FILE_DEVICE_BUS_EXTENDER', + 'FILE_DEVICE_CD_ROM', + 'FILE_DEVICE_CD_ROM_FILE_SYSTEM', + 'FILE_DEVICE_CHANGER', + 'FILE_DEVICE_CONTROLLER', + 'FILE_DEVICE_DATALINK', + 'FILE_DEVICE_DFS', + 'FILE_DEVICE_DFS_FILE_SYSTEM', + 'FILE_DEVICE_DFS_VOLUME', + 'FILE_DEVICE_DISK', + 'FILE_DEVICE_DISK_FILE_SYSTEM', + 'FILE_DEVICE_DVD', + 'FILE_DEVICE_FILE_SYSTEM', + 'FILE_DEVICE_FIPS', + 'FILE_DEVICE_FULLSCREEN_VIDEO', + 'FILE_DEVICE_INPORT_PORT', + 'FILE_DEVICE_KEYBOARD', + 'FILE_DEVICE_KS', + 'FILE_DEVICE_KSEC', + 'FILE_DEVICE_MAILSLOT', + 'FILE_DEVICE_MASS_STORAGE', + 'FILE_DEVICE_MIDI_IN', + 'FILE_DEVICE_MIDI_OUT', + 'FILE_DEVICE_MODEM', + 'FILE_DEVICE_MOUSE', + 'FILE_DEVICE_MULTI_UNC_PROVIDER', + 'FILE_DEVICE_NAMED_PIPE', + 'FILE_DEVICE_NETWORK', + 'FILE_DEVICE_NETWORK_BROWSER', + 'FILE_DEVICE_NETWORK_FILE_SYSTEM', + 'FILE_DEVICE_NETWORK_REDIRECTOR', + 'FILE_DEVICE_NULL', + 'FILE_DEVICE_PARALLEL_PORT', + 'FILE_DEVICE_PHYSICAL_NETCARD', + 'FILE_DEVICE_PRINTER', + 'FILE_DEVICE_SCANNER', + 'FILE_DEVICE_SCREEN', + 'FILE_DEVICE_SERENUM', + 'FILE_DEVICE_SERIAL_MOUSE_PORT', + 'FILE_DEVICE_SERIAL_PORT', + 'FILE_DEVICE_SMARTCARD', + 'FILE_DEVICE_SMB', + 'FILE_DEVICE_SOUND', + 'FILE_DEVICE_STREAMS', + 'FILE_DEVICE_TAPE', + 'FILE_DEVICE_TAPE_FILE_SYSTEM', + 'FILE_DEVICE_TERMSRV', + 'FILE_DEVICE_TRANSPORT', + 'FILE_DEVICE_UNKNOWN', + 'FILE_DEVICE_VDM', + 'FILE_DEVICE_VIDEO', + 'FILE_DEVICE_VIRTUAL_DISK', + 'FILE_DEVICE_WAVE_IN', + 'FILE_DEVICE_WAVE_OUT', + 'FILE_DIRECTORY_FILE', + 'FILE_DOES_NOT_EXIST', + 'FILE_EXECUTE', + 'FILE_EXISTS', + 'FILE_FILE_COMPRESSION', + 'FILE_FLAG_BACKUP_SEMANTICS', + 'FILE_FLAG_DELETE_ON_CLOSE', + 'FILE_FLAG_FIRST_PIPE_INSTANCE', + 'FILE_FLAG_NO_BUFFERING', + 'FILE_FLAG_OPEN_NO_RECALL', + 'FILE_FLAG_OPEN_REPARSE_POINT', + 'FILE_FLAG_OVERLAPPED', + 'FILE_FLAG_POSIX_SEMANTICS', + 'FILE_FLAG_RANDOM_ACCESS', + 'FILE_FLAG_SEQUENTIAL_SCAN', + 'FILE_FLAG_WRITE_THROUGH', + 'FILE_GENERIC_EXECUTE', + 'FILE_GENERIC_READ', + 'FILE_GENERIC_WRITE', + 'FILE_LIST_DIRECTORY', + 'FILE_MAP_ALL_ACCESS', + 'FILE_MAP_COPY', + 'FILE_MAP_EXECUTE', + 'FILE_MAP_READ', + 'FILE_MAP_WRITE', + 'FILE_MAXIMUM_DISPOSITION', + 'FILE_NAMED_STREAMS', + 'FILE_NON_DIRECTORY_FILE', + 'FILE_NOTIFY_CHANGE_ATTRIBUTES', + 'FILE_NOTIFY_CHANGE_CREATION', + 'FILE_NOTIFY_CHANGE_DIR_NAME', + 'FILE_NOTIFY_CHANGE_EA', + 'FILE_NOTIFY_CHANGE_FILE_NAME', + 'FILE_NOTIFY_CHANGE_LAST_ACCESS', + 'FILE_NOTIFY_CHANGE_LAST_WRITE', + 'FILE_NOTIFY_CHANGE_NAME', + 'FILE_NOTIFY_CHANGE_SECURITY', + 'FILE_NOTIFY_CHANGE_SIZE', + 'FILE_NOTIFY_CHANGE_STREAM_NAME', + 'FILE_NOTIFY_CHANGE_STREAM_SIZE', + 'FILE_NOTIFY_CHANGE_STREAM_WRITE', + 'FILE_NOTIFY_VALID_MASK', + 'FILE_NO_COMPRESSION', + 'FILE_NO_EA_KNOWLEDGE', + 'FILE_NO_INTERMEDIATE_BUFFERING', + 'FILE_OPEN', + 'FILE_OPENED', + 'FILE_OPEN_BY_FILE_ID', + 'FILE_OPEN_FOR_BACKUP_INTENT', + 'FILE_OPEN_FOR_FREE_SPACE_QUERY', + 'FILE_OPEN_IF', + 'FILE_OPEN_NO_RECALL', + 'FILE_OPEN_REMOTE_INSTANCE', + 'FILE_OPEN_REPARSE_POINT', + 'FILE_OPEN_REQUIRING_OPLOCK', + 'FILE_OVERWRITE', + 'FILE_OVERWRITE_IF', + 'FILE_OVERWRITTEN', + 'FILE_PERSISTENT_ACLS', + 'FILE_RANDOM_ACCESS', + 'FILE_READ_ATTRIBUTES', + 'FILE_READ_DATA', + 'FILE_READ_EA', + 'FILE_READ_ONLY_VOLUME', + 'FILE_RESERVE_OPFILTER', + 'FILE_SEQUENTIAL_ONLY', + 'FILE_SEQUENTIAL_WRITE_ONCE', + 'FILE_SHARE_DELETE', + 'FILE_SHARE_READ', + 'FILE_SHARE_WRITE', + 'FILE_SUPERSEDE', + 'FILE_SUPERSEDED', + 'FILE_SUPPORTS_ENCRYPTION', + 'FILE_SUPPORTS_EXTENDED_ATTRIBUTES', + 'FILE_SUPPORTS_HARD_LINKS', + 'FILE_SUPPORTS_OBJECT_IDS', + 'FILE_SUPPORTS_OPEN_BY_FILE_ID', + 'FILE_SUPPORTS_REMOTE_STORAGE', + 'FILE_SUPPORTS_REPARSE_POINTS', + 'FILE_SUPPORTS_SPARSE_FILES', + 'FILE_SUPPORTS_TRANSACTIONS', + 'FILE_SUPPORTS_USN_JOURNAL', + 'FILE_SYNCHRONOUS_IO_ALERT', + 'FILE_SYNCHRONOUS_IO_NONALERT', + 'FILE_TRAVERSE', + 'FILE_UNICODE_ON_DISK', + 'FILE_VALID_MAILSLOT_OPTION_FLAGS', + 'FILE_VALID_OPTION_FLAGS', + 'FILE_VALID_PIPE_OPTION_FLAGS', + 'FILE_VALID_SET_FLAGS', + 'FILE_VER_GET_LOCALISED', + 'FILE_VER_GET_NEUTRAL', + 'FILE_VER_GET_PREFETCHED', + 'FILE_VOLUME_IS_COMPRESSED', + 'FILE_VOLUME_QUOTAS', + 'FILE_WRITE_ATTRIBUTES', + 'FILE_WRITE_DATA', + 'FILE_WRITE_EA', + 'FILE_WRITE_THROUGH', + 'FILTERED_LOG_CONF', + 'FLAG_ENGINE_PRESENT', + 'FLAG_ENGOPT_DISALLOW_NETWORK_PATHS', + 'FOF_ALLOWUNDO', + 'FOF_CONFIRMMOUSE', + 'FOF_FILESONLY', + 'FOF_MULTIDESTFILES', + 'FOF_NOCONFIRMATION', + 'FOF_NOCONFIRMMKDIR', + 'FOF_NOCOPYSECURITYATTRIBS', + 'FOF_NOERRORUI', + 'FOF_NORECURSEREPARSE', + 'FOF_NORECURSION', + 'FOF_NO_CONNECTED_ELEMENTS', + 'FOF_NO_UI', + 'FOF_RENAMEONCOLLISION', + 'FOF_SILENT', + 'FOF_SIMPLEPROGRESS', + 'FOF_WANTMAPPINGHANDLE', + 'FOF_WANTNUKEWARNING', + 'FORCED_LOG_CONF', + 'FO_COPY', + 'FO_DELETE', + 'FO_MOVE', + 'FO_RENAME', + 'GENERIC_ALL', + 'GENERIC_EXECUTE', + 'GENERIC_READ', + 'GENERIC_WRITE', + 'GROUP_SECURITY_INFORMATION', + 'HIGH_PRIORITY_CLASS', + 'HKEY_CLASSES_ROOT', + 'HKEY_CURRENT_CONFIG', + 'HKEY_CURRENT_USER', + 'HKEY_CURRENT_USER_LOCAL_SETTINGS', + 'HKEY_DYN_DATA', + 'HKEY_LOCAL_MACHINE', + 'HKEY_PERFORMANCE_DATA', + 'HKEY_PERFORMANCE_NLSTEXT', + 'HKEY_PERFORMANCE_TEXT', + 'HKEY_USERS', + 'HP_ALGID', + 'HP_HASHSIZE', + 'HP_HASHVAL', + 'HP_HMAC_INFO', + 'HP_TLS1PRF_LABEL', + 'HP_TLS1PRF_SEED', + 'IDLE_PRIORITY_CLASS', + 'IMAGE_DIRECTORY_ENTRY_ARCHITECTURE', + 'IMAGE_DIRECTORY_ENTRY_BASERELOC', + 'IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT', + 'IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR', + 'IMAGE_DIRECTORY_ENTRY_DEBUG', + 'IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT', + 'IMAGE_DIRECTORY_ENTRY_EXCEPTION', + 'IMAGE_DIRECTORY_ENTRY_EXPORT', + 'IMAGE_DIRECTORY_ENTRY_GLOBALPTR', + 'IMAGE_DIRECTORY_ENTRY_IAT', + 'IMAGE_DIRECTORY_ENTRY_IMPORT', + 'IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG', + 'IMAGE_DIRECTORY_ENTRY_RESOURCE', + 'IMAGE_DIRECTORY_ENTRY_SECURITY', + 'IMAGE_DIRECTORY_ENTRY_TLS', + 'IMAGE_DLLCHARACTERISTICS_APPCONTAINER', + 'IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE', + 'IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY', + 'IMAGE_DLLCHARACTERISTICS_GUARD_CF', + 'IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA', + 'IMAGE_DLLCHARACTERISTICS_NO_BIND', + 'IMAGE_DLLCHARACTERISTICS_NO_ISOLATION', + 'IMAGE_DLLCHARACTERISTICS_NO_SEH', + 'IMAGE_DLLCHARACTERISTICS_NX_COMPAT', + 'IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE', + 'IMAGE_DLLCHARACTERISTICS_WDM_DRIVER', + 'IMAGE_FILE_32BIT_MACHINE', + 'IMAGE_FILE_AGGRESIVE_WS_TRIM', + 'IMAGE_FILE_BYTES_REVERSED_HI', + 'IMAGE_FILE_BYTES_REVERSED_LO', + 'IMAGE_FILE_DEBUG_STRIPPED', + 'IMAGE_FILE_DLL', + 'IMAGE_FILE_EXECUTABLE_IMAGE', + 'IMAGE_FILE_LARGE_ADDRESS_AWARE', + 'IMAGE_FILE_LINE_NUMS_STRIPPED', + 'IMAGE_FILE_LOCAL_SYMS_STRIPPED', + 'IMAGE_FILE_MACHINE_ALPHA', + 'IMAGE_FILE_MACHINE_ALPHA64', + 'IMAGE_FILE_MACHINE_AM33', + 'IMAGE_FILE_MACHINE_AMD64', + 'IMAGE_FILE_MACHINE_ARM', + 'IMAGE_FILE_MACHINE_ARM64', + 'IMAGE_FILE_MACHINE_ARMNT', + 'IMAGE_FILE_MACHINE_AXP64', + 'IMAGE_FILE_MACHINE_CEE', + 'IMAGE_FILE_MACHINE_CEF', + 'IMAGE_FILE_MACHINE_EBC', + 'IMAGE_FILE_MACHINE_I386', + 'IMAGE_FILE_MACHINE_IA64', + 'IMAGE_FILE_MACHINE_M32R', + 'IMAGE_FILE_MACHINE_MIPS16', + 'IMAGE_FILE_MACHINE_MIPSFPU', + 'IMAGE_FILE_MACHINE_MIPSFPU16', + 'IMAGE_FILE_MACHINE_POWERPC', + 'IMAGE_FILE_MACHINE_POWERPCFP', + 'IMAGE_FILE_MACHINE_R10000', + 'IMAGE_FILE_MACHINE_R3000', + 'IMAGE_FILE_MACHINE_R4000', + 'IMAGE_FILE_MACHINE_SH3', + 'IMAGE_FILE_MACHINE_SH3DSP', + 'IMAGE_FILE_MACHINE_SH3E', + 'IMAGE_FILE_MACHINE_SH4', + 'IMAGE_FILE_MACHINE_SH5', + 'IMAGE_FILE_MACHINE_THUMB', + 'IMAGE_FILE_MACHINE_TRICORE', + 'IMAGE_FILE_MACHINE_UNKNOWN', + 'IMAGE_FILE_MACHINE_WCEMIPSV2', + 'IMAGE_FILE_NET_RUN_FROM_SWAP', + 'IMAGE_FILE_RELOCS_STRIPPED', + 'IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP', + 'IMAGE_FILE_SYSTEM', + 'IMAGE_FILE_UP_SYSTEM_ONLY', + 'IMAGE_NT_OPTIONAL_HDR32_MAGIC', + 'IMAGE_NT_OPTIONAL_HDR64_MAGIC', + 'IMAGE_NUMBEROF_DIRECTORY_ENTRIES', + 'IMAGE_REL_BASED_ABSOLUTE', + 'IMAGE_REL_BASED_DIR64', + 'IMAGE_REL_BASED_HIGH', + 'IMAGE_REL_BASED_HIGHADJ', + 'IMAGE_REL_BASED_HIGHLOW', + 'IMAGE_REL_BASED_LOW', + 'IMAGE_REL_BASED_MACHINE_SPECIFIC_5', + 'IMAGE_REL_BASED_MACHINE_SPECIFIC_7', + 'IMAGE_REL_BASED_MACHINE_SPECIFIC_8', + 'IMAGE_REL_BASED_MACHINE_SPECIFIC_9', + 'IMAGE_REL_BASED_RESERVED', + 'IMAGE_ROM_OPTIONAL_HDR_MAGIC', + 'IMAGE_SCN_ALIGN_1024BYTES', + 'IMAGE_SCN_ALIGN_128BYTES', + 'IMAGE_SCN_ALIGN_16BYTES', + 'IMAGE_SCN_ALIGN_1BYTES', + 'IMAGE_SCN_ALIGN_2048BYTES', + 'IMAGE_SCN_ALIGN_256BYTES', + 'IMAGE_SCN_ALIGN_2BYTES', + 'IMAGE_SCN_ALIGN_32BYTES', + 'IMAGE_SCN_ALIGN_4096BYTES', + 'IMAGE_SCN_ALIGN_4BYTES', + 'IMAGE_SCN_ALIGN_512BYTES', + 'IMAGE_SCN_ALIGN_64BYTES', + 'IMAGE_SCN_ALIGN_8192BYTES', + 'IMAGE_SCN_ALIGN_8BYTES', + 'IMAGE_SCN_ALIGN_MASK', + 'IMAGE_SCN_CNT_CODE', + 'IMAGE_SCN_CNT_INITIALIZED_DATA', + 'IMAGE_SCN_CNT_UNINITIALIZED_DATA', + 'IMAGE_SCN_GPREL', + 'IMAGE_SCN_LNK_COMDAT', + 'IMAGE_SCN_LNK_INFO', + 'IMAGE_SCN_LNK_NRELOC_OVFL', + 'IMAGE_SCN_LNK_OTHER', + 'IMAGE_SCN_LNK_REMOVE', + 'IMAGE_SCN_MEM_16BIT', + 'IMAGE_SCN_MEM_DISCARDABLE', + 'IMAGE_SCN_MEM_EXECUTE', + 'IMAGE_SCN_MEM_FARDATA', + 'IMAGE_SCN_MEM_LOCKED', + 'IMAGE_SCN_MEM_NOT_CACHED', + 'IMAGE_SCN_MEM_NOT_PAGED', + 'IMAGE_SCN_MEM_PRELOAD', + 'IMAGE_SCN_MEM_PURGEABLE', + 'IMAGE_SCN_MEM_READ', + 'IMAGE_SCN_MEM_SHARED', + 'IMAGE_SCN_MEM_WRITE', + 'IMAGE_SCN_NO_DEFER_SPEC_EXC', + 'IMAGE_SCN_TYPE_COPY', + 'IMAGE_SCN_TYPE_DSECT', + 'IMAGE_SCN_TYPE_GROUP', + 'IMAGE_SCN_TYPE_NOLOAD', + 'IMAGE_SCN_TYPE_NO_PAD', + 'IMAGE_SCN_TYPE_OVER', + 'IMAGE_SCN_TYPE_REG', + 'IMAGE_SIZEOF_NT_OPTIONAL32_HEADER', + 'IMAGE_SIZEOF_NT_OPTIONAL64_HEADER', + 'IMAGE_SIZEOF_ROM_OPTIONAL_HEADER', + 'IMAGE_SIZEOF_SHORT_NAME', + 'IMAGE_SIZEOF_STD_OPTIONAL_HEADER', + 'INFINITE', + 'INHERITED_ACE', + 'INHERIT_CALLER_PRIORITY', + 'INHERIT_ONLY_ACE', + 'INHERIT_PARENT_AFFINITY', + 'INVALID_HANDLE_VALUE', + 'INVALID_SOCKET32', + 'INVALID_SOCKET64', + 'IO_COMPLETION_ALL_ACCESS', + 'IO_COMPLETION_MODIFY_STATE', + 'IO_COMPLETION_QUERY_STATE', + 'IPPORT_DAYTIME', + 'IPPORT_DISCARD', + 'IPPORT_ECHO', + 'IPPORT_FTP', + 'IPPORT_MTP', + 'IPPORT_NAMESERVER', + 'IPPORT_NETSTAT', + 'IPPORT_SMTP', + 'IPPORT_SYSTAT', + 'IPPORT_TELNET', + 'IPPORT_TIMESERVER', + 'IPPORT_WHOIS', + 'IPPROTO_GGP', + 'IPPROTO_ICMP', + 'IPPROTO_IDP', + 'IPPROTO_IGMP', + 'IPPROTO_IP', + 'IPPROTO_MAX', + 'IPPROTO_ND', + 'IPPROTO_PUP', + 'IPPROTO_RAW', + 'IPPROTO_TCP', + 'IPPROTO_UDP', + 'JOB_OBJECT_ALL_ACCESS', + 'JOB_OBJECT_ASSIGN_PROCESS', + 'JOB_OBJECT_QUERY', + 'JOB_OBJECT_SET_ATTRIBUTES', + 'JOB_OBJECT_SET_SECURITY_ATTRIBUTES', + 'JOB_OBJECT_TERMINATE', + 'KEY_ALL_ACCESS', + 'KEY_CREATE_LINK', + 'KEY_CREATE_SUB_KEY', + 'KEY_ENUMERATE_SUB_KEYS', + 'KEY_EXECUTE', + 'KEY_NOTIFY', + 'KEY_QUERY_VALUE', + 'KEY_READ', + 'KEY_SET_VALUE', + 'KEY_WOW64_32KEY', + 'KEY_WOW64_64KEY', + 'KEY_WOW64_RES', + 'KEY_WRITE', + 'LABEL_SECURITY_INFORMATION', + 'LAYERED_PROTOCOL', + 'LOAD_DLL_DEBUG_EVENT', + 'LOG_CONF_BITS', + 'LPC_CLIENT_DIED', + 'LPC_CONNECTION_REQUEST', + 'LPC_DATAGRAM', + 'LPC_DEBUG_EVENT', + 'LPC_ERROR_EVENT', + 'LPC_EXCEPTION', + 'LPC_LOST_REPLY', + 'LPC_PORT_CLOSED', + 'LPC_REPLY', + 'LPC_REQUEST', + 'MAILSLOT_NO_MESSAGE', + 'MAILSLOT_WAIT_FOREVER', + 'MAXIMUM_ALLOWED', + 'MAXLEN_IFDESCR', + 'MAXLEN_PHYSADDR', + 'MAX_ADAPTER_ADDRESS_LENGTH', + 'MAX_ADAPTER_DESCRIPTION_LENGTH', + 'MAX_ADAPTER_NAME', + 'MAX_ADAPTER_NAME_LENGTH', + 'MAX_CLASS_NAME_LEN', + 'MAX_CONFIG_VALUE', + 'MAX_DEVICE_ID_LEN', + 'MAX_DEVNODE_ID_LEN', + 'MAX_DHCPV6_DUID_LENGTH', + 'MAX_DMA_CHANNELS', + 'MAX_DNS_SUFFIX_STRING_LENGTH', + 'MAX_DOMAIN_NAME_LEN', + 'MAX_GUID_STRING_LEN', + 'MAX_HOSTNAME_LEN', + 'MAX_INSTANCE_VALUE', + 'MAX_INTERFACE_NAME_LEN', + 'MAX_IO_PORTS', + 'MAX_IRQS', + 'MAX_MEM_REGISTERS', + 'MAX_NERR', + 'MAX_PATH', + 'MAX_PREFERRED_LENGTH', + 'MAX_PROFILE_LEN', + 'MAX_PROTOCOL_CHAIN', + 'MAX_SCOPE_ID_LEN', + 'MEM_4MB_PAGES', + 'MEM_COMMIT', + 'MEM_DECOMMIT', + 'MEM_FREE', + 'MEM_IMAGE', + 'MEM_LARGE_PAGES', + 'MEM_MAPPED', + 'MEM_PHYSICAL', + 'MEM_PRIVATE', + 'MEM_RELEASE', + 'MEM_RESERVE', + 'MEM_RESET', + 'MEM_ROTATE', + 'MEM_TOP_DOWN', + 'MEM_WRITE_WATCH', + 'MODE_BIT', + 'MODE_MASK', + 'MS_DEF_PROV', + 'MS_DEF_PROV_A', + 'MS_DEF_PROV_W', + 'MS_DEF_RSA_SIG_PROV', + 'MS_DEF_RSA_SIG_PROV_A', + 'MS_DEF_RSA_SIG_PROV_W', + 'MS_ENHANCED_PROV', + 'MS_ENHANCED_PROV_A', + 'MS_ENHANCED_PROV_W', + 'MS_ENH_RSA_AES_PROV_A', + 'MS_ENH_RSA_AES_PROV_W', + 'MS_ENH_RSA_AES_PROV_XP_A', + 'MS_ENH_RSA_AES_PROV_XP_W', + 'MS_STRONG_PROV', + 'MS_STRONG_PROV_A', + 'MS_STRONG_PROV_W', + 'MUTANT_ALL_ACCESS', + 'MUTANT_QUERY_STATE', + 'NERR_ACFFileIOFail', + 'NERR_ACFNoParent', + 'NERR_ACFNoRoom', + 'NERR_ACFNotFound', + 'NERR_ACFNotLoaded', + 'NERR_ACFTooManyLists', + 'NERR_AccountExpired', + 'NERR_AccountLockedOut', + 'NERR_AccountUndefined', + 'NERR_AcctLimitExceeded', + 'NERR_ActiveConns', + 'NERR_AddForwarded', + 'NERR_AlertExists', + 'NERR_AlreadyCloudDomainJoined', + 'NERR_AlreadyExists', + 'NERR_AlreadyForwarded', + 'NERR_AlreadyLoggedOn', + 'NERR_BASE', + 'NERR_BadAsgType', + 'NERR_BadComponent', + 'NERR_BadControlRecv', + 'NERR_BadDest', + 'NERR_BadDev', + 'NERR_BadDevString', + 'NERR_BadDomainJoinInfo', + 'NERR_BadDosFunction', + 'NERR_BadDosRetCode', + 'NERR_BadEventName', + 'NERR_BadFileCheckSum', + 'NERR_BadOfflineJoinInfo', + 'NERR_BadPassword', + 'NERR_BadPasswordCore', + 'NERR_BadQueueDevString', + 'NERR_BadQueuePriority', + 'NERR_BadReceive', + 'NERR_BadRecipient', + 'NERR_BadServiceName', + 'NERR_BadServiceProgName', + 'NERR_BadSource', + 'NERR_BadTransactConfig', + 'NERR_BadUasConfig', + 'NERR_BadUsername', + 'NERR_BrowserConfiguredToNotRun', + 'NERR_BrowserNotStarted', + 'NERR_BrowserTableIncomplete', + 'NERR_BufTooSmall', + 'NERR_CallingRplSrvr', + 'NERR_CanNotGrowSegment', + 'NERR_CanNotGrowUASFile', + 'NERR_CannotUnjoinAadDomain', + 'NERR_CantConnectRplSrvr', + 'NERR_CantCreateJoinInfo', + 'NERR_CantLoadOfflineHive', + 'NERR_CantOpenImageFile', + 'NERR_CantType', + 'NERR_CantVerifyHostname', + 'NERR_CfgCompNotFound', + 'NERR_CfgParamNotFound', + 'NERR_ClientNameNotFound', + 'NERR_CommDevInUse', + 'NERR_ComputerAccountNotFound', + 'NERR_ConnectionInsecure', + 'NERR_DCNotFound', + 'NERR_DS8DCNotFound', + 'NERR_DS8DCRequired', + 'NERR_DS9DCNotFound', + 'NERR_DataTypeInvalid', + 'NERR_DatabaseUpToDate', + 'NERR_DefaultJoinRequired', + 'NERR_DelComputerName', + 'NERR_DeleteLater', + 'NERR_DestExists', + 'NERR_DestIdle', + 'NERR_DestInvalidOp', + 'NERR_DestInvalidState', + 'NERR_DestNoRoom', + 'NERR_DestNotFound', + 'NERR_DevInUse', + 'NERR_DevInvalidOpCode', + 'NERR_DevNotFound', + 'NERR_DevNotOpen', + 'NERR_DevNotRedirected', + 'NERR_DeviceIsShared', + 'NERR_DeviceNotShared', + 'NERR_DeviceShareConflict', + 'NERR_DfsAlreadyShared', + 'NERR_DfsBadRenamePath', + 'NERR_DfsCantCreateJunctionPoint', + 'NERR_DfsCantRemoveDfsRoot', + 'NERR_DfsCantRemoveLastServerShare', + 'NERR_DfsChildOrParentInDfs', + 'NERR_DfsCyclicalName', + 'NERR_DfsDataIsIdentical', + 'NERR_DfsDuplicateService', + 'NERR_DfsInconsistent', + 'NERR_DfsInternalCorruption', + 'NERR_DfsInternalError', + 'NERR_DfsLeafVolume', + 'NERR_DfsNoSuchServer', + 'NERR_DfsNoSuchShare', + 'NERR_DfsNoSuchVolume', + 'NERR_DfsNotALeafVolume', + 'NERR_DfsNotSupportedInServerDfs', + 'NERR_DfsServerNotDfsAware', + 'NERR_DfsServerUpgraded', + 'NERR_DfsVolumeAlreadyExists', + 'NERR_DfsVolumeDataCorrupt', + 'NERR_DfsVolumeHasMultipleServers', + 'NERR_DfsVolumeIsInterDfs', + 'NERR_DfsVolumeIsOffline', + 'NERR_DifferentServers', + 'NERR_DriverNotFound', + 'NERR_DupNameReboot', + 'NERR_DuplicateName', + 'NERR_DuplicateShare', + 'NERR_ErrCommRunSrv', + 'NERR_ErrorExecingGhost', + 'NERR_ExecFailure', + 'NERR_FileIdNotFound', + 'NERR_GroupExists', + 'NERR_GroupNotFound', + 'NERR_GrpMsgProcessor', + 'NERR_ImageParamErr', + 'NERR_InUseBySpooler', + 'NERR_IncompleteDel', + 'NERR_InternalError', + 'NERR_InvalidAPI', + 'NERR_InvalidComputer', + 'NERR_InvalidDatabase', + 'NERR_InvalidDevice', + 'NERR_InvalidLana', + 'NERR_InvalidLogSeek', + 'NERR_InvalidLogonHours', + 'NERR_InvalidMachineNameForJoin', + 'NERR_InvalidMaxUsers', + 'NERR_InvalidUASOp', + 'NERR_InvalidWorkgroupName', + 'NERR_InvalidWorkstation', + 'NERR_IsDfsShare', + 'NERR_ItemNotFound', + 'NERR_JobInvalidState', + 'NERR_JobNoRoom', + 'NERR_JobNotFound', + 'NERR_JoinPerformedMustRestart', + 'NERR_LDAPCapableDCRequired', + 'NERR_LanmanIniError', + 'NERR_LastAdmin', + 'NERR_LineTooLong', + 'NERR_LocalDrive', + 'NERR_LocalForward', + 'NERR_LogFileChanged', + 'NERR_LogFileCorrupt', + 'NERR_LogOverflow', + 'NERR_LogonDomainExists', + 'NERR_LogonNoUserPath', + 'NERR_LogonScriptError', + 'NERR_LogonServerConflict', + 'NERR_LogonServerNotFound', + 'NERR_LogonTrackingError', + 'NERR_LogonsPaused', + 'NERR_MaxLenExceeded', + 'NERR_MsgAlreadyStarted', + 'NERR_MsgInitFailed', + 'NERR_MsgNotStarted', + 'NERR_MultipleNets', + 'NERR_NameInUse', + 'NERR_NameNotForwarded', + 'NERR_NameNotFound', + 'NERR_NameUsesIncompatibleCodePage', + 'NERR_NetNameNotFound', + 'NERR_NetNotStarted', + 'NERR_NetlogonNotStarted', + 'NERR_NetworkError', + 'NERR_NoAlternateServers', + 'NERR_NoCommDevs', + 'NERR_NoComputerName', + 'NERR_NoForwardName', + 'NERR_NoJoinPending', + 'NERR_NoNetworkResource', + 'NERR_NoOfflineJoinInfo', + 'NERR_NoRoom', + 'NERR_NoRplBootSystem', + 'NERR_NoSuchAlert', + 'NERR_NoSuchConnection', + 'NERR_NoSuchServer', + 'NERR_NoSuchSession', + 'NERR_NonDosFloppyUsed', + 'NERR_NonValidatedLogon', + 'NERR_NotInCache', + 'NERR_NotInDispatchTbl', + 'NERR_NotLocalDomain', + 'NERR_NotLocalName', + 'NERR_NotLoggedOn', + 'NERR_NotPrimary', + 'NERR_OpenFiles', + 'NERR_PasswordCantChange', + 'NERR_PasswordExpired', + 'NERR_PasswordFilterError', + 'NERR_PasswordHistConflict', + 'NERR_PasswordMismatch', + 'NERR_PasswordMustChange', + 'NERR_PasswordNotComplexEnough', + 'NERR_PasswordTooLong', + 'NERR_PasswordTooRecent', + 'NERR_PasswordTooShort', + 'NERR_PausedRemote', + 'NERR_PersonalSku', + 'NERR_PlainTextSecretsRequired', + 'NERR_ProcNoRespond', + 'NERR_ProcNotFound', + 'NERR_ProfileCleanup', + 'NERR_ProfileFileTooBig', + 'NERR_ProfileLoadErr', + 'NERR_ProfileOffset', + 'NERR_ProfileSaveErr', + 'NERR_ProfileUnknownCmd', + 'NERR_ProgNeedsExtraMem', + 'NERR_ProvisioningBlobUnsupported', + 'NERR_QExists', + 'NERR_QInvalidState', + 'NERR_QNoRoom', + 'NERR_QNotFound', + 'NERR_QueueNotFound', + 'NERR_RPL_CONNECTED', + 'NERR_RedirectedPath', + 'NERR_RemoteBootFailed', + 'NERR_RemoteErr', + 'NERR_RemoteFull', + 'NERR_RemoteOnly', + 'NERR_ResourceExists', + 'NERR_ResourceNotFound', + 'NERR_RplAdapterInfoCorrupted', + 'NERR_RplAdapterNameUnavailable', + 'NERR_RplAdapterNotFound', + 'NERR_RplBackupDatabase', + 'NERR_RplBadDatabase', + 'NERR_RplBadRegistry', + 'NERR_RplBootInUse', + 'NERR_RplBootInfoCorrupted', + 'NERR_RplBootNameUnavailable', + 'NERR_RplBootNotFound', + 'NERR_RplBootRestart', + 'NERR_RplBootServiceTerm', + 'NERR_RplBootStartFailed', + 'NERR_RplCannotEnum', + 'NERR_RplConfigInfoCorrupted', + 'NERR_RplConfigNameUnavailable', + 'NERR_RplConfigNotEmpty', + 'NERR_RplConfigNotFound', + 'NERR_RplIncompatibleProfile', + 'NERR_RplInternal', + 'NERR_RplLoadrDiskErr', + 'NERR_RplLoadrNetBiosErr', + 'NERR_RplNeedsRPLUSERAcct', + 'NERR_RplNoAdaptersStarted', + 'NERR_RplNotRplServer', + 'NERR_RplProfileInfoCorrupted', + 'NERR_RplProfileNameUnavailable', + 'NERR_RplProfileNotEmpty', + 'NERR_RplProfileNotFound', + 'NERR_RplRplfilesShare', + 'NERR_RplSrvrCallFailed', + 'NERR_RplVendorInfoCorrupted', + 'NERR_RplVendorNameUnavailable', + 'NERR_RplVendorNotFound', + 'NERR_RplWkstaInfoCorrupted', + 'NERR_RplWkstaNameUnavailable', + 'NERR_RplWkstaNeedsUserAcct', + 'NERR_RplWkstaNotFound', + 'NERR_RunSrvPaused', + 'NERR_SameAsComputerName', + 'NERR_ServerNotStarted', + 'NERR_ServiceCtlBusy', + 'NERR_ServiceCtlNotValid', + 'NERR_ServiceCtlTimeout', + 'NERR_ServiceEntryLocked', + 'NERR_ServiceInstalled', + 'NERR_ServiceKillProc', + 'NERR_ServiceNotCtrl', + 'NERR_ServiceNotInstalled', + 'NERR_ServiceNotStarting', + 'NERR_ServiceTableFull', + 'NERR_ServiceTableLocked', + 'NERR_SetupAlreadyJoined', + 'NERR_SetupCheckDNSConfig', + 'NERR_SetupDomainController', + 'NERR_SetupNotJoined', + 'NERR_ShareMem', + 'NERR_ShareNotFound', + 'NERR_SourceIsDir', + 'NERR_SpeGroupOp', + 'NERR_SpoolNoMemory', + 'NERR_SpoolerNotLoaded', + 'NERR_StandaloneLogon', + 'NERR_StartingRplBoot', + 'NERR_Success', + 'NERR_SyncRequired', + 'NERR_TargetVersionUnsupported', + 'NERR_TimeDiffAtDC', + 'NERR_TmpFile', + 'NERR_TooManyAlerts', + 'NERR_TooManyConnections', + 'NERR_TooManyEntries', + 'NERR_TooManyFiles', + 'NERR_TooManyImageParams', + 'NERR_TooManyItems', + 'NERR_TooManyNames', + 'NERR_TooManyServers', + 'NERR_TooManySessions', + 'NERR_TooMuchData', + 'NERR_TruncatedBroadcast', + 'NERR_TryDownLevel', + 'NERR_UPSDriverNotStarted', + 'NERR_UPSInvalidCommPort', + 'NERR_UPSInvalidConfig', + 'NERR_UPSShutdownFailed', + 'NERR_UPSSignalAsserted', + 'NERR_UnableToAddName_F', + 'NERR_UnableToAddName_W', + 'NERR_UnableToDelName_F', + 'NERR_UnableToDelName_W', + 'NERR_UnknownDevDir', + 'NERR_UnknownServer', + 'NERR_UseNotFound', + 'NERR_UserExists', + 'NERR_UserInGroup', + 'NERR_UserLogon', + 'NERR_UserNotFound', + 'NERR_UserNotInGroup', + 'NERR_ValuesNotSet', + 'NERR_WkstaInconsistentState', + 'NERR_WkstaNotStarted', + 'NERR_WriteFault', + 'NMPWAIT_NOWAIT', + 'NMPWAIT_USE_DEFAULT_WAIT', + 'NMPWAIT_WAIT_FOREVER', + 'NORMAL_PRIORITY_CLASS', + 'NO_PROPAGATE_INHERIT_ACE', + 'NULL', + 'NUM_CR_RESULTS', + 'NUM_LOG_CONF', + 'OBJECT_INHERIT_ACE', + 'OBJECT_TYPE_ALL_ACCESS', + 'OBJECT_TYPE_CREATE', + 'OBJ_CASE_INSENSITIVE', + 'OBJ_EXCLUSIVE', + 'OBJ_FORCE_ACCESS_CHECK', + 'OBJ_INHERIT', + 'OBJ_KERNEL_HANDLE', + 'OBJ_OPENIF', + 'OBJ_OPENLINK', + 'OBJ_PERMANENT', + 'OBJ_VALID_ATTRIBUTES', + 'OPEN_ALWAYS', + 'OPEN_EXISTING', + 'OS_ADVSERVER', + 'OS_ANYSERVER', + 'OS_APPLIANCE', + 'OS_DATACENTER', + 'OS_DOMAINMEMBER', + 'OS_EMBEDDED', + 'OS_FASTUSERSWITCHING', + 'OS_HOME', + 'OS_MEDIACENTER', + 'OS_MEORGREATER', + 'OS_NT', + 'OS_NT4ORGREATER', + 'OS_PERSONALTERMINALSERVER', + 'OS_PROFESSIONAL', + 'OS_SERVER', + 'OS_SERVERADMINUI', + 'OS_SMALLBUSINESSSERVER', + 'OS_TABLETPC', + 'OS_TERMINALCLIENT', + 'OS_TERMINALREMOTEADMIN', + 'OS_TERMINALSERVER', + 'OS_WEBSERVER', + 'OS_WELCOMELOGONUI', + 'OS_WIN2000ADVSERVER', + 'OS_WIN2000DATACENTER', + 'OS_WIN2000ORGREATER', + 'OS_WIN2000PRO', + 'OS_WIN2000SERVER', + 'OS_WIN2000TERMINAL', + 'OS_WIN95ORGREATER', + 'OS_WIN95_GOLD', + 'OS_WIN98ORGREATER', + 'OS_WIN98_GOLD', + 'OS_WINDOWS', + 'OS_WOW6432', + 'OS_XPORGREATER', + 'OUTPUT_DEBUG_STRING_EVENT', + 'OVERRIDE_LOG_CONF', + 'OWNER_SECURITY_INFORMATION', + 'PAGE_EXECUTE', + 'PAGE_EXECUTE_READ', + 'PAGE_EXECUTE_READWRITE', + 'PAGE_EXECUTE_WRITECOPY', + 'PAGE_GUARD', + 'PAGE_NOACCESS', + 'PAGE_NOCACHE', + 'PAGE_READONLY', + 'PAGE_READWRITE', + 'PAGE_WRITECOMBINE', + 'PAGE_WRITECOPY', + 'PCD_MAX_IO', + 'PCD_MAX_MEMORY', + 'PIPE_ACCEPT_REMOTE_CLIENTS', + 'PIPE_ACCESS_DUPLEX', + 'PIPE_ACCESS_INBOUND', + 'PIPE_ACCESS_OUTBOUND', + 'PIPE_CLIENT_END', + 'PIPE_NOWAIT', + 'PIPE_READMODE_BYTE', + 'PIPE_READMODE_MESSAGE', + 'PIPE_REJECT_REMOTE_CLIENTS', + 'PIPE_SERVER_END', + 'PIPE_TYPE_BYTE', + 'PIPE_TYPE_MESSAGE', + 'PIPE_UNLIMITED_INSTANCES', + 'PIPE_WAIT', + 'PKCS12_ALLOW_OVERWRITE_KEY', + 'PKCS12_ALWAYS_CNG_KSP', + 'PKCS12_EXPORT_RESERVED_MASK', + 'PKCS12_INCLUDE_EXTENDED_PROPERTIES', + 'PKCS12_NO_PERSIST_KEY', + 'PKCS12_PREFER_CNG_KSP', + 'PKCS_7_ASN_ENCODING', + 'PKCS_7_NDR_ENCODING', + 'PKCS_ATTRIBUTE', + 'PKCS_CONTENT_INFO_SEQUENCE_OF_ANY', + 'PKCS_TIME_REQUEST', + 'PKCS_UTC_TIME', + 'POLICY_ALL_ACCESS', + 'POLICY_AUDIT_LOG_ADMIN', + 'POLICY_CREATE_ACCOUNT', + 'POLICY_CREATE_PRIVILEGE', + 'POLICY_CREATE_SECRET', + 'POLICY_GET_PRIVATE_INFORMATION', + 'POLICY_LOOKUP_NAMES', + 'POLICY_NOTIFICATION', + 'POLICY_SERVER_ADMIN', + 'POLICY_SET_AUDIT_REQUIREMENTS', + 'POLICY_SET_DEFAULT_QUOTA_LIMITS', + 'POLICY_TRUST_ADMIN', + 'POLICY_VIEW_AUDIT_INFORMATION', + 'POLICY_VIEW_LOCAL_INFORMATION', + 'PORT_ALL_ACCESS', + 'PORT_CONNECT', + 'PRIORITY_BIT', + 'PRIORITY_EQUAL_FIRST', + 'PRIORITY_EQUAL_LAST', + 'PROCESS_ALL_ACCESS', + 'PROCESS_CREATE_PROCESS', + 'PROCESS_CREATE_THREAD', + 'PROCESS_DUP_HANDLE', + 'PROCESS_MODE_BACKGROUND_BEGIN', + 'PROCESS_MODE_BACKGROUND_END', + 'PROCESS_QUERY_INFORMATION', + 'PROCESS_QUERY_LIMITED_INFORMATION', + 'PROCESS_SET_INFORMATION', + 'PROCESS_SET_LIMITED_INFORMATION', + 'PROCESS_SET_QUOTA', + 'PROCESS_SET_SESSIONID', + 'PROCESS_SUSPEND_RESUME', + 'PROCESS_TERMINATE', + 'PROCESS_TRACE_MODE_EVENT_RECORD', + 'PROCESS_TRACE_MODE_RAW_TIMESTAMP', + 'PROCESS_TRACE_MODE_REAL_TIME', + 'PROCESS_TRUST_LABEL_SECURITY_INFORMATION', + 'PROCESS_VM_OPERATION', + 'PROCESS_VM_READ', + 'PROCESS_VM_WRITE', + 'PRODUCT_BUSINESS', + 'PRODUCT_BUSINESS_N', + 'PRODUCT_CLUSTER_SERVER', + 'PRODUCT_CLUSTER_SERVER_V', + 'PRODUCT_CORE', + 'PRODUCT_CORE_ARM', + 'PRODUCT_CORE_COUNTRYSPECIFIC', + 'PRODUCT_CORE_LANGUAGESPECIFIC', + 'PRODUCT_CORE_N', + 'PRODUCT_DATACENTER_EVALUATION_SERVER', + 'PRODUCT_DATACENTER_SERVER', + 'PRODUCT_DATACENTER_SERVER_CORE', + 'PRODUCT_DATACENTER_SERVER_CORE_V', + 'PRODUCT_DATACENTER_SERVER_V', + 'PRODUCT_EMBEDDED', + 'PRODUCT_ENTERPRISE', + 'PRODUCT_ENTERPRISE_E', + 'PRODUCT_ENTERPRISE_EVALUATION', + 'PRODUCT_ENTERPRISE_N', + 'PRODUCT_ENTERPRISE_N_EVALUATION', + 'PRODUCT_ENTERPRISE_SERVER', + 'PRODUCT_ENTERPRISE_SERVER_CORE', + 'PRODUCT_ENTERPRISE_SERVER_CORE_V', + 'PRODUCT_ENTERPRISE_SERVER_IA64', + 'PRODUCT_ENTERPRISE_SERVER_V', + 'PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL', + 'PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC', + 'PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT', + 'PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC', + 'PRODUCT_HOME_BASIC', + 'PRODUCT_HOME_BASIC_E', + 'PRODUCT_HOME_BASIC_N', + 'PRODUCT_HOME_PREMIUM', + 'PRODUCT_HOME_PREMIUM_E', + 'PRODUCT_HOME_PREMIUM_N', + 'PRODUCT_HOME_PREMIUM_SERVER', + 'PRODUCT_HOME_SERVER', + 'PRODUCT_HYPERV', + 'PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT', + 'PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING', + 'PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY', + 'PRODUCT_MULTIPOINT_PREMIUM_SERVER', + 'PRODUCT_MULTIPOINT_STANDARD_SERVER', + 'PRODUCT_PROFESSIONAL', + 'PRODUCT_PROFESSIONAL_E', + 'PRODUCT_PROFESSIONAL_N', + 'PRODUCT_PROFESSIONAL_WMC', + 'PRODUCT_SB_SOLUTION_SERVER', + 'PRODUCT_SB_SOLUTION_SERVER_EM', + 'PRODUCT_SERVER_FOR_SB_SOLUTIONS', + 'PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM', + 'PRODUCT_SERVER_FOR_SMALLBUSINESS', + 'PRODUCT_SERVER_FOR_SMALLBUSINESS_V', + 'PRODUCT_SERVER_FOUNDATION', + 'PRODUCT_SMALLBUSINESS_SERVER', + 'PRODUCT_SMALLBUSINESS_SERVER_PREMIUM', + 'PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE', + 'PRODUCT_SOLUTION_EMBEDDEDSERVER', + 'PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE', + 'PRODUCT_STANDARD_EVALUATION_SERVER', + 'PRODUCT_STANDARD_SERVER', + 'PRODUCT_STANDARD_SERVER_CORE', + 'PRODUCT_STANDARD_SERVER_CORE_V', + 'PRODUCT_STANDARD_SERVER_SOLUTIONS', + 'PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE', + 'PRODUCT_STANDARD_SERVER_V', + 'PRODUCT_STARTER', + 'PRODUCT_STARTER_E', + 'PRODUCT_STARTER_N', + 'PRODUCT_STORAGE_ENTERPRISE_SERVER', + 'PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE', + 'PRODUCT_STORAGE_EXPRESS_SERVER', + 'PRODUCT_STORAGE_EXPRESS_SERVER_CORE', + 'PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER', + 'PRODUCT_STORAGE_STANDARD_SERVER', + 'PRODUCT_STORAGE_STANDARD_SERVER_CORE', + 'PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER', + 'PRODUCT_STORAGE_WORKGROUP_SERVER', + 'PRODUCT_STORAGE_WORKGROUP_SERVER_CORE', + 'PRODUCT_ULTIMATE', + 'PRODUCT_ULTIMATE_E', + 'PRODUCT_ULTIMATE_N', + 'PRODUCT_UNDEFINED', + 'PRODUCT_UNLICENSED', + 'PRODUCT_WEB_SERVER', + 'PRODUCT_WEB_SERVER_CORE', + 'PROFILE_KERNEL', + 'PROFILE_SERVER', + 'PROFILE_USER', + 'PROTECTED_DACL_SECURITY_INFORMATION', + 'PROTECTED_SACL_SECURITY_INFORMATION', + 'PROV_DH_SCHANNEL', + 'PROV_DSS', + 'PROV_DSS_DH', + 'PROV_EC_ECDSA_FULL', + 'PROV_EC_ECDSA_SIG', + 'PROV_EC_ECNRA_FULL', + 'PROV_EC_ECNRA_SIG', + 'PROV_FORTEZZA', + 'PROV_INTEL_SEC', + 'PROV_MS_EXCHANGE', + 'PROV_REPLACE_OWF', + 'PROV_RNG', + 'PROV_RSA_AES', + 'PROV_RSA_FULL', + 'PROV_RSA_SCHANNEL', + 'PROV_RSA_SIG', + 'PROV_SPYRUS_LYNKS', + 'PROV_SSL', + 'READ_CONTROL', + 'REALTIME_PRIORITY_CLASS', + 'REG_BINARY', + 'REG_DWORD', + 'REG_DWORD_BIG_ENDIAN', + 'REG_DWORD_LITTLE_ENDIAN', + 'REG_EXPAND_SZ', + 'REG_FULL_RESOURCE_DESCRIPTOR', + 'REG_LATEST_FORMAT', + 'REG_LEGAL_OPTION', + 'REG_LINK', + 'REG_MULTI_SZ', + 'REG_NONE', + 'REG_NO_COMPRESSION', + 'REG_OPTION_BACKUP_RESTORE', + 'REG_OPTION_CREATE_LINK', + 'REG_OPTION_NON_VOLATILE', + 'REG_OPTION_OPEN_LINK', + 'REG_OPTION_RESERVED', + 'REG_OPTION_VOLATILE', + 'REG_QWORD', + 'REG_QWORD_LITTLE_ENDIAN', + 'REG_RESOURCE_LIST', + 'REG_RESOURCE_REQUIREMENTS_LIST', + 'REG_STANDARD_FORMAT', + 'REG_SZ', + 'REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY', + 'REPORT_NO_PRIVATE_KEY', + 'RIP_EVENT', + 'RPC_C_AUTHN_LEVEL_CALL', + 'RPC_C_AUTHN_LEVEL_CONNECT', + 'RPC_C_AUTHN_LEVEL_DEFAULT', + 'RPC_C_AUTHN_LEVEL_NONE', + 'RPC_C_AUTHN_LEVEL_PKT', + 'RPC_C_AUTHN_LEVEL_PKT_INTEGRITY', + 'RPC_C_AUTHN_LEVEL_PKT_PRIVACY', + 'RPC_C_IMP_LEVEL_ANONYMOUS', + 'RPC_C_IMP_LEVEL_DEFAULT', + 'RPC_C_IMP_LEVEL_DELEGATE', + 'RPC_C_IMP_LEVEL_IDENTIFY', + 'RPC_C_IMP_LEVEL_IMPERSONATE', + 'RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY', + 'RPC_C_QOS_CAPABILITIES_DEFAULT', + 'RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC', + 'RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH', + 'RPC_C_QOS_IDENTITY_DYNAMIC', + 'RPC_C_QOS_IDENTITY_STATIC', + 'RPC_REQUEST_TYPE_BIND', + 'RPC_REQUEST_TYPE_CALL', + 'RPC_RESPONSE_TYPE_BIND_OK', + 'RPC_RESPONSE_TYPE_FAIL', + 'RPC_RESPONSE_TYPE_SUCCESS', + 'RPL_MASK', + 'RRF_NOEXPAND', + 'RRF_RT_ANY', + 'RRF_RT_DWORD', + 'RRF_RT_QWORD', + 'RRF_RT_REG_BINARY', + 'RRF_RT_REG_DWORD', + 'RRF_RT_REG_EXPAND_SZ', + 'RRF_RT_REG_MULTI_SZ', + 'RRF_RT_REG_NONE', + 'RRF_RT_REG_QWORD', + 'RRF_RT_REG_SZ', + 'RRF_ZEROONFAILURE', + 'RSA_CSP_PUBLICKEYBLOB', + 'ResType_All', + 'ResType_BusNumber', + 'ResType_ClassSpecific', + 'ResType_Connection', + 'ResType_DMA', + 'ResType_DevicePrivate', + 'ResType_DoNotUse', + 'ResType_IO', + 'ResType_IRQ', + 'ResType_Ignored_Bit', + 'ResType_MAX', + 'ResType_Mem', + 'ResType_MemLarge', + 'ResType_MfCardConfig', + 'ResType_None', + 'ResType_PcCardConfig', + 'ResType_Reserved', + 'SACL_SECURITY_INFORMATION', + 'SCOPE_SECURITY_INFORMATION', + 'SC_MANAGER_ALL_ACCESS', + 'SC_MANAGER_CONNECT', + 'SC_MANAGER_CREATE_SERVICE', + 'SC_MANAGER_ENUMERATE_SERVICE', + 'SC_MANAGER_LOCK', + 'SC_MANAGER_MODIFY_BOOT_CONFIG', + 'SC_MANAGER_QUERY_LOCK_STATUS', + 'SDDL_REVISION_1', + 'SECTION_ALL_ACCESS', + 'SECTION_EXTEND_SIZE', + 'SECTION_MAP_EXECUTE', + 'SECTION_MAP_EXECUTE_EXPLICIT', + 'SECTION_MAP_READ', + 'SECTION_MAP_WRITE', + 'SECTION_QUERY', + 'SECURITY_DESCRIPTOR_REVISION', + 'SECURITY_MANDATORY_HIGH_RID', + 'SECURITY_MANDATORY_LOW_RID', + 'SECURITY_MANDATORY_MEDIUM_PLUS_RID', + 'SECURITY_MANDATORY_MEDIUM_RID', + 'SECURITY_MANDATORY_PROTECTED_PROCESS_RID', + 'SECURITY_MANDATORY_SYSTEM_RID', + 'SECURITY_MANDATORY_UNTRUSTED_RID', + 'SEC_COMMIT', + 'SEC_FILE', + 'SEC_IMAGE', + 'SEC_LARGE_PAGES', + 'SEC_NOCACHE', + 'SEC_PROTECTED_IMAGE', + 'SEC_RESERVE', + 'SEC_WINNT_AUTH_IDENTITY_ANSI', + 'SEC_WINNT_AUTH_IDENTITY_UNICODE', + 'SEC_WRITECOMBINE', + 'SEMAPHORE_ALL_ACCESS', + 'SEMAPHORE_MODIFY_STATE', + 'SEMAPHORE_QUERY_STATE', + 'SERVICE_ACCEPT_HARDWAREPROFILECHANGE', + 'SERVICE_ACCEPT_NETBINDCHANGE', + 'SERVICE_ACCEPT_PARAMCHANGE', + 'SERVICE_ACCEPT_PAUSE_CONTINUE', + 'SERVICE_ACCEPT_POWEREVENT', + 'SERVICE_ACCEPT_PRESHUTDOWN', + 'SERVICE_ACCEPT_SESSIONCHANGE', + 'SERVICE_ACCEPT_SHUTDOWN', + 'SERVICE_ACCEPT_STOP', + 'SERVICE_ACCEPT_TIMECHANGE', + 'SERVICE_ACCEPT_TRIGGEREVENT', + 'SERVICE_ACTIVE', + 'SERVICE_ADAPTER', + 'SERVICE_ALL_ACCESS', + 'SERVICE_AUTO_START', + 'SERVICE_BOOT_START', + 'SERVICE_CHANGE_CONFIG', + 'SERVICE_CONTINUE_PENDING', + 'SERVICE_CONTROL_CONTINUE', + 'SERVICE_CONTROL_DEVICEEVENT', + 'SERVICE_CONTROL_HARDWAREPROFILECHANGE', + 'SERVICE_CONTROL_INTERROGATE', + 'SERVICE_CONTROL_NETBINDADD', + 'SERVICE_CONTROL_NETBINDDISABLE', + 'SERVICE_CONTROL_NETBINDENABLE', + 'SERVICE_CONTROL_NETBINDREMOVE', + 'SERVICE_CONTROL_PARAMCHANGE', + 'SERVICE_CONTROL_PAUSE', + 'SERVICE_CONTROL_POWEREVENT', + 'SERVICE_CONTROL_PRESHUTDOWN', + 'SERVICE_CONTROL_SESSIONCHANGE', + 'SERVICE_CONTROL_SHUTDOWN', + 'SERVICE_CONTROL_STOP', + 'SERVICE_CONTROL_TIMECHANGE', + 'SERVICE_CONTROL_TRIGGEREVENT', + 'SERVICE_DEMAND_START', + 'SERVICE_DISABLED', + 'SERVICE_DRIVER', + 'SERVICE_ENUMERATE_DEPENDENTS', + 'SERVICE_ERROR_CRITICAL', + 'SERVICE_ERROR_IGNORE', + 'SERVICE_ERROR_NORMAL', + 'SERVICE_ERROR_SEVERE', + 'SERVICE_FILE_SYSTEM_DRIVER', + 'SERVICE_INACTIVE', + 'SERVICE_INTERACTIVE_PROCESS', + 'SERVICE_INTERROGATE', + 'SERVICE_KERNEL_DRIVER', + 'SERVICE_PAUSED', + 'SERVICE_PAUSE_CONTINUE', + 'SERVICE_PAUSE_PENDING', + 'SERVICE_QUERY_CONFIG', + 'SERVICE_QUERY_STATUS', + 'SERVICE_RECOGNIZER_DRIVER', + 'SERVICE_RUNNING', + 'SERVICE_RUNS_IN_SYSTEM_PROCESS', + 'SERVICE_START', + 'SERVICE_START_PENDING', + 'SERVICE_STATE_ALL', + 'SERVICE_STOP', + 'SERVICE_STOPPED', + 'SERVICE_STOP_PENDING', + 'SERVICE_SYSTEM_START', + 'SERVICE_TRIGGER_DATA_TYPE_BINARY', + 'SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL', + 'SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY', + 'SERVICE_TRIGGER_DATA_TYPE_LEVEL', + 'SERVICE_TRIGGER_DATA_TYPE_STRING', + 'SERVICE_TRIGGER_TYPE_CUSTOM', + 'SERVICE_TRIGGER_TYPE_CUSTOM_SYSTEM_STATE_CHANGE', + 'SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL', + 'SERVICE_TRIGGER_TYPE_DOMAIN_JOIN', + 'SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT', + 'SERVICE_TRIGGER_TYPE_GROUP_POLICY', + 'SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY', + 'SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT', + 'SERVICE_TYPE_ALL', + 'SERVICE_USER_DEFINED_CONTROL', + 'SERVICE_USER_OWN_PROCESS', + 'SERVICE_USER_SHARE_PROCESS', + 'SERVICE_WIN32', + 'SERVICE_WIN32_OWN_PROCESS', + 'SERVICE_WIN32_SHARE_PROCESS', + 'SE_ASSIGNPRIMARYTOKEN_NAME', + 'SE_AUDIT_NAME', + 'SE_BACKUP_NAME', + 'SE_CHANGE_NOTIFY_NAME', + 'SE_CREATE_GLOBAL_NAME', + 'SE_CREATE_PAGEFILE_NAME', + 'SE_CREATE_PERMANENT_NAME', + 'SE_CREATE_SYMBOLIC_LINK_NAME', + 'SE_CREATE_TOKEN_NAME', + 'SE_DACL_AUTO_INHERITED', + 'SE_DACL_AUTO_INHERIT_REQ', + 'SE_DACL_DEFAULTED', + 'SE_DACL_PRESENT', + 'SE_DACL_PROTECTED', + 'SE_DACL_UNTRUSTED', + 'SE_DEBUG_NAME', + 'SE_ENABLE_DELEGATION_NAME', + 'SE_GROUP_DEFAULTED', + 'SE_GROUP_ENABLED', + 'SE_GROUP_ENABLED_BY_DEFAULT', + 'SE_GROUP_INTEGRITY', + 'SE_GROUP_INTEGRITY_ENABLED', + 'SE_GROUP_LOGON_ID', + 'SE_GROUP_MANDATORY', + 'SE_GROUP_OWNER', + 'SE_GROUP_RESOURCE', + 'SE_GROUP_USE_FOR_DENY_ONLY', + 'SE_GROUP_VALID_ATTRIBUTES', + 'SE_IMPERSONATE_NAME', + 'SE_INCREASE_QUOTA_NAME', + 'SE_INC_BASE_PRIORITY_NAME', + 'SE_INC_WORKING_SET_NAME', + 'SE_LOAD_DRIVER_NAME', + 'SE_LOCK_MEMORY_NAME', + 'SE_MACHINE_ACCOUNT_NAME', + 'SE_MANAGE_VOLUME_NAME', + 'SE_OWNER_DEFAULTED', + 'SE_PRIVILEGE_ENABLED', + 'SE_PRIVILEGE_ENABLED_BY_DEFAULT', + 'SE_PRIVILEGE_REMOVED', + 'SE_PRIVILEGE_USED_FOR_ACCESS', + 'SE_PROF_SINGLE_PROCESS_NAME', + 'SE_RELABEL_NAME', + 'SE_REMOTE_SHUTDOWN_NAME', + 'SE_RESTORE_NAME', + 'SE_RM_CONTROL_VALID', + 'SE_SACL_AUTO_INHERITED', + 'SE_SACL_AUTO_INHERIT_REQ', + 'SE_SACL_DEFAULTED', + 'SE_SACL_PRESENT', + 'SE_SACL_PROTECTED', + 'SE_SECURITY_NAME', + 'SE_SELF_RELATIVE', + 'SE_SERVER_SECURITY', + 'SE_SHUTDOWN_NAME', + 'SE_SYNC_AGENT_NAME', + 'SE_SYSTEMTIME_NAME', + 'SE_SYSTEM_ENVIRONMENT_NAME', + 'SE_SYSTEM_PROFILE_NAME', + 'SE_TAKE_OWNERSHIP_NAME', + 'SE_TCB_NAME', + 'SE_TIME_ZONE_NAME', + 'SE_TRUSTED_CREDMAN_ACCESS_NAME', + 'SE_UNDOCK_NAME', + 'SE_UNSOLICITED_INPUT_NAME', + 'SID_HASH_SIZE', + 'SM_ARRANGE', + 'SM_CARETBLINKINGENABLED', + 'SM_CLEANBOOT', + 'SM_CMONITORS', + 'SM_CMOUSEBUTTONS', + 'SM_CXBORDER', + 'SM_CXCURSOR', + 'SM_CXDLGFRAME', + 'SM_CXDOUBLECLK', + 'SM_CXDRAG', + 'SM_CXEDGE', + 'SM_CXFIXEDFRAME', + 'SM_CXFOCUSBORDER', + 'SM_CXFRAME', + 'SM_CXFULLSCREEN', + 'SM_CXHSCROLL', + 'SM_CXHTHUMB', + 'SM_CXICON', + 'SM_CXICONSPACING', + 'SM_CXMAXIMIZED', + 'SM_CXMAXTRACK', + 'SM_CXMENUCHECK', + 'SM_CXMENUSIZE', + 'SM_CXMIN', + 'SM_CXMINIMIZED', + 'SM_CXMINSPACING', + 'SM_CXMINTRACK', + 'SM_CXPADDEDBORDER', + 'SM_CXSCREEN', + 'SM_CXSIZE', + 'SM_CXSIZEFRAME', + 'SM_CXSMICON', + 'SM_CXSMSIZE', + 'SM_CXVIRTUALSCREEN', + 'SM_CXVSCROLL', + 'SM_CYBORDER', + 'SM_CYCAPTION', + 'SM_CYCURSOR', + 'SM_CYDLGFRAME', + 'SM_CYDOUBLECLK', + 'SM_CYDRAG', + 'SM_CYEDGE', + 'SM_CYFIXEDFRAME', + 'SM_CYFOCUSBORDER', + 'SM_CYFRAME', + 'SM_CYFULLSCREEN', + 'SM_CYHSCROLL', + 'SM_CYICON', + 'SM_CYICONSPACING', + 'SM_CYKANJIWINDOW', + 'SM_CYMAXIMIZED', + 'SM_CYMAXTRACK', + 'SM_CYMENU', + 'SM_CYMENUCHECK', + 'SM_CYMENUSIZE', + 'SM_CYMIN', + 'SM_CYMINIMIZED', + 'SM_CYMINSPACING', + 'SM_CYMINTRACK', + 'SM_CYSCREEN', + 'SM_CYSIZE', + 'SM_CYSIZEFRAME', + 'SM_CYSMCAPTION', + 'SM_CYSMICON', + 'SM_CYSMSIZE', + 'SM_CYVIRTUALSCREEN', + 'SM_CYVSCROLL', + 'SM_CYVTHUMB', + 'SM_DBCSENABLED', + 'SM_DEBUG', + 'SM_DIGITIZER', + 'SM_IMMENABLED', + 'SM_MAXIMUMTOUCHES', + 'SM_MEDIACENTER', + 'SM_MENUDROPALIGNMENT', + 'SM_MIDEASTENABLED', + 'SM_MOUSEHORIZONTALWHEELPRESENT', + 'SM_MOUSEPRESENT', + 'SM_MOUSEWHEELPRESENT', + 'SM_NETWORK', + 'SM_PENWINDOWS', + 'SM_REMOTECONTROL', + 'SM_REMOTESESSION', + 'SM_RESERVED1', + 'SM_RESERVED2', + 'SM_RESERVED3', + 'SM_RESERVED4', + 'SM_SAMEDISPLAYFORMAT', + 'SM_SECURE', + 'SM_SERVERR2', + 'SM_SHOWSOUNDS', + 'SM_SHUTTINGDOWN', + 'SM_SLOWMACHINE', + 'SM_STARTER', + 'SM_SWAPBUTTON', + 'SM_TABLETPC', + 'SM_XVIRTUALSCREEN', + 'SM_YVIRTUALSCREEN', + 'SOCKET_ERROR', + 'SOCK_DGRAM', + 'SOCK_RAW', + 'SOCK_RDM', + 'SOCK_SEQPACKET', + 'SOCK_STREAM', + 'SPC_CAB_DATA_OBJID', + 'SPC_CERT_EXTENSIONS_OBJID', + 'SPC_COMMERCIAL_SP_KEY_PURPOSE_OBJID', + 'SPC_COMMON_NAME_OBJID', + 'SPC_FINANCIAL_CRITERIA_OBJID', + 'SPC_GLUE_RDN_OBJID', + 'SPC_INDIRECT_DATA_OBJID', + 'SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID', + 'SPC_JAVA_CLASS_DATA_OBJID', + 'SPC_LINK_OBJID', + 'SPC_MINIMAL_CRITERIA_OBJID', + 'SPC_PE_IMAGE_DATA_OBJID', + 'SPC_PE_IMAGE_PAGE_HASHES_V1_OBJID', + 'SPC_PE_IMAGE_PAGE_HASHES_V2_OBJID', + 'SPC_RAW_FILE_DATA_OBJID', + 'SPC_SIGINFO_OBJID', + 'SPC_SP_AGENCY_INFO_OBJID', + 'SPC_SP_OPUS_INFO_OBJID', + 'SPC_STATEMENT_TYPE_OBJID', + 'SPC_STRUCTURED_STORAGE_DATA_OBJID', + 'SPC_TIME_STAMP_REQUEST_OBJID', + 'SPDRP_ADDRESS', + 'SPDRP_BASE_CONTAINERID', + 'SPDRP_BUSNUMBER', + 'SPDRP_BUSTYPEGUID', + 'SPDRP_CAPABILITIES', + 'SPDRP_CHARACTERISTICS', + 'SPDRP_CLASS', + 'SPDRP_CLASSGUID', + 'SPDRP_COMPATIBLEIDS', + 'SPDRP_CONFIGFLAGS', + 'SPDRP_DEVICEDESC', + 'SPDRP_DEVICE_POWER_DATA', + 'SPDRP_DEVTYPE', + 'SPDRP_DRIVER', + 'SPDRP_ENUMERATOR_NAME', + 'SPDRP_EXCLUSIVE', + 'SPDRP_FRIENDLYNAME', + 'SPDRP_HARDWAREID', + 'SPDRP_INSTALL_STATE', + 'SPDRP_LEGACYBUSTYPE', + 'SPDRP_LOCATION_INFORMATION', + 'SPDRP_LOCATION_PATHS', + 'SPDRP_LOWERFILTERS', + 'SPDRP_MAXIMUM_PROPERTY', + 'SPDRP_MFG', + 'SPDRP_PHYSICAL_DEVICE_OBJECT_NAME', + 'SPDRP_REMOVAL_POLICY', + 'SPDRP_REMOVAL_POLICY_HW_DEFAULT', + 'SPDRP_REMOVAL_POLICY_OVERRIDE', + 'SPDRP_SECURITY', + 'SPDRP_SECURITY_SDS', + 'SPDRP_SERVICE', + 'SPDRP_UI_NUMBER', + 'SPDRP_UI_NUMBER_DESC_FORMAT', + 'SPDRP_UNUSED0', + 'SPDRP_UNUSED1', + 'SPDRP_UNUSED2', + 'SPDRP_UPPERFILTERS', + 'SPECIFIC_RIGHTS_ALL', + 'STANDARD_RIGHTS_ALL', + 'STANDARD_RIGHTS_EXECUTE', + 'STANDARD_RIGHTS_READ', + 'STANDARD_RIGHTS_REQUIRED', + 'STANDARD_RIGHTS_WRITE', + 'STARTF_FORCEOFFFEEDBACK', + 'STARTF_FORCEONFEEDBACK', + 'STARTF_RUNFULLSCREEN', + 'STARTF_USECOUNTCHARS', + 'STARTF_USEFILLATTRIBUTE', + 'STARTF_USEPOSITION', + 'STARTF_USESHOWWINDOW', + 'STARTF_USESIZE', + 'STARTF_USESTDHANDLES', + 'STD_ERROR_HANDLE', + 'STD_INPUT_HANDLE', + 'STD_OUTPUT_HANDLE', + 'STGFMT_ANY', + 'STGFMT_DOCFILE', + 'STGFMT_DOCUMENT', + 'STGFMT_FILE', + 'STGFMT_NATIVE', + 'STGFMT_STORAGE', + 'STGM_CONVERT', + 'STGM_CREATE', + 'STGM_DELETEONRELEASE', + 'STGM_DIRECT', + 'STGM_DIRECT_SWMR', + 'STGM_FAILIFTHERE', + 'STGM_NOSCRATCH', + 'STGM_NOSNAPSHOT', + 'STGM_PRIORITY', + 'STGM_READ', + 'STGM_READWRITE', + 'STGM_SHARE_DENY_NONE', + 'STGM_SHARE_DENY_READ', + 'STGM_SHARE_DENY_WRITE', + 'STGM_SHARE_EXCLUSIVE', + 'STGM_SIMPLE', + 'STGM_TRANSACTED', + 'STGM_WRITE', + 'STGTY_REPEAT', + 'STG_LAYOUT_INTERLEAVED', + 'STG_LAYOUT_SEQUENTIAL', + 'STG_TOEND', + 'STILL_ACTIVE', + 'SUCCESSFUL_ACCESS_ACE_FLAG', + 'SW_FORCEMINIMIZE', + 'SW_HIDE', + 'SW_MAX', + 'SW_MAXIMIZE', + 'SW_MINIMIZE', + 'SW_NORMAL', + 'SW_RESTORE', + 'SW_SHOW', + 'SW_SHOWDEFAULT', + 'SW_SHOWMAXIMIZED', + 'SW_SHOWMINIMIZED', + 'SW_SHOWMINNOACTIVE', + 'SW_SHOWNA', + 'SW_SHOWNOACTIVATE', + 'SW_SHOWNORMAL', + 'SYMBOLIC_LINK_ALL_ACCESS', + 'SYMBOLIC_LINK_QUERY', + 'SYMOPT_ALLOW_ABSOLUTE_SYMBOLS', + 'SYMOPT_ALLOW_ZERO_ADDRESS', + 'SYMOPT_AUTO_PUBLICS', + 'SYMOPT_CASE_INSENSITIVE', + 'SYMOPT_DEBUG', + 'SYMOPT_DEFERRED_LOADS', + 'SYMOPT_DISABLE_FAST_SYMBOLS', + 'SYMOPT_DISABLE_SRVSTAR_ON_STARTUP', + 'SYMOPT_DISABLE_SYMSRV_AUTODETECT', + 'SYMOPT_DISABLE_SYMSRV_TIMEOUT', + 'SYMOPT_EXACT_SYMBOLS', + 'SYMOPT_FAIL_CRITICAL_ERRORS', + 'SYMOPT_FAVOR_COMPRESSED', + 'SYMOPT_FLAT_DIRECTORY', + 'SYMOPT_IGNORE_CVREC', + 'SYMOPT_IGNORE_IMAGEDIR', + 'SYMOPT_IGNORE_NT_SYMPATH', + 'SYMOPT_INCLUDE_32BIT_MODULES', + 'SYMOPT_LOAD_ANYTHING', + 'SYMOPT_LOAD_LINES', + 'SYMOPT_NO_CPP', + 'SYMOPT_NO_IMAGE_SEARCH', + 'SYMOPT_NO_PROMPTS', + 'SYMOPT_NO_PUBLICS', + 'SYMOPT_NO_UNQUALIFIED_LOADS', + 'SYMOPT_OMAP_FIND_NEAREST', + 'SYMOPT_OVERWRITE', + 'SYMOPT_PUBLICS_ONLY', + 'SYMOPT_READONLY_CACHE', + 'SYMOPT_SECURE', + 'SYMOPT_SYMPATH_LAST', + 'SYMOPT_UNDNAME', + 'SYMSEARCH_ALLITEMS', + 'SYMSEARCH_GLOBALSONLY', + 'SYMSEARCH_MASKOBJS', + 'SYMSEARCH_RECURSE', + 'SYNCHRONIZE', + 'SYSTEM_ALARM_ACE_TYPE', + 'SYSTEM_ALARM_CALLBACK_ACE_TYPE', + 'SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE', + 'SYSTEM_ALARM_OBJECT_ACE_TYPE', + 'SYSTEM_AUDIT_ACE_TYPE', + 'SYSTEM_AUDIT_CALLBACK_ACE_TYPE', + 'SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE', + 'SYSTEM_AUDIT_OBJECT_ACE_TYPE', + 'SYSTEM_MANDATORY_LABEL_ACE_TYPE', + 'SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP', + 'SYSTEM_MANDATORY_LABEL_NO_READ_UP', + 'SYSTEM_MANDATORY_LABEL_NO_WRITE_UP', + 'SYSTEM_PROCESS_TRUST_LABEL_ACE_TYPE', + 'SYSTEM_PROCESS_TRUST_LABEL_VALID_MASK', + 'SYSTEM_PROCESS_TRUST_NOCONSTRAINT_MASK', + 'SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE', + 'SYSTEM_SCOPED_POLICY_ID_ACE_TYPE', + 'TH32CS_INHERIT', + 'TH32CS_SNAPALL', + 'TH32CS_SNAPHEAPLIST', + 'TH32CS_SNAPMODULE', + 'TH32CS_SNAPMODULE32', + 'TH32CS_SNAPPROCESS', + 'TH32CS_SNAPTHREAD', + 'THREAD_ALL_ACCESS', + 'THREAD_DIRECT_IMPERSONATION', + 'THREAD_GET_CONTEXT', + 'THREAD_IMPERSONATE', + 'THREAD_QUERY_INFORMATION', + 'THREAD_SET_CONTEXT', + 'THREAD_SET_INFORMATION', + 'THREAD_SET_THREAD_TOKEN', + 'THREAD_SUSPEND_RESUME', + 'THREAD_TERMINATE', + 'TIMER_ALL_ACCESS', + 'TIMER_MODIFY_STATE', + 'TIMER_QUERY_STATE', + 'TOKEN_ADJUST_DEFAULT', + 'TOKEN_ADJUST_GROUPS', + 'TOKEN_ADJUST_PRIVILEGES', + 'TOKEN_ADJUST_SESSIONID', + 'TOKEN_ALL_ACCESS', + 'TOKEN_ALL_ACCESS_P', + 'TOKEN_ASSIGN_PRIMARY', + 'TOKEN_DUPLICATE', + 'TOKEN_IMPERSONATE', + 'TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN', + 'TOKEN_MANDATORY_POLICY_NO_WRITE_UP', + 'TOKEN_MANDATORY_POLICY_OFF', + 'TOKEN_MANDATORY_POLICY_VALID_MASK', + 'TOKEN_QUERY', + 'TOKEN_QUERY_SOURCE', + 'TOKEN_SECURITY_ATTRIBUTE_CUSTOM_FLAGS', + 'TOKEN_SECURITY_ATTRIBUTE_DISABLED', + 'TOKEN_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT', + 'TOKEN_SECURITY_ATTRIBUTE_MANDATORY', + 'TOKEN_SECURITY_ATTRIBUTE_NON_INHERITABLE', + 'TOKEN_SECURITY_ATTRIBUTE_TYPE_BOOLEAN', + 'TOKEN_SECURITY_ATTRIBUTE_TYPE_FQBN', + 'TOKEN_SECURITY_ATTRIBUTE_TYPE_INT64', + 'TOKEN_SECURITY_ATTRIBUTE_TYPE_INVALID', + 'TOKEN_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING', + 'TOKEN_SECURITY_ATTRIBUTE_TYPE_SID', + 'TOKEN_SECURITY_ATTRIBUTE_TYPE_STRING', + 'TOKEN_SECURITY_ATTRIBUTE_TYPE_UINT64', + 'TOKEN_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY', + 'TOKEN_SECURITY_ATTRIBUTE_VALID_FLAGS', + 'TOKEN_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE', + 'TOKEN_SOURCE_LENGTH', + 'TRUNCATE_EXISTING', + 'TXFS_MINIVERSION_COMMITTED_VIEW', + 'TXFS_MINIVERSION_DEFAULT_VIEW', + 'TXFS_MINIVERSION_DIRTY_VIEW', + 'UNLOAD_DLL_DEBUG_EVENT', + 'UNPROTECTED_DACL_SECURITY_INFORMATION', + 'UNPROTECTED_SACL_SECURITY_INFORMATION', + 'USAGE_MATCH_TYPE_AND', + 'USAGE_MATCH_TYPE_OR', + 'VALID_INHERIT_FLAGS', + 'VER_NT_DOMAIN_CONTROLLER', + 'VER_NT_SERVER', + 'VER_NT_WORKSTATION', + 'VIRTUAL_STORAGE_TYPE_DEVICE_ISO', + 'VIRTUAL_STORAGE_TYPE_DEVICE_UNKNOWN', + 'VIRTUAL_STORAGE_TYPE_DEVICE_VHD', + 'VIRTUAL_STORAGE_TYPE_DEVICE_VHDX', + 'WAIT_IO_COMPLETION', + 'WARMING_NOT_SAME_FLAG_FOR_WINXP', + 'WIN_CERT_REVISION_1_0', + 'WIN_CERT_REVISION_2_0', + 'WIN_CERT_TYPE_PKCS_SIGNED_DATA', + 'WIN_CERT_TYPE_RESERVED_1', + 'WIN_CERT_TYPE_TS_STACK_SIGNED', + 'WIN_CERT_TYPE_X509', + 'WOW64_MAXIMUM_SUPPORTED_EXTENSION', + 'WOW64_SIZE_OF_80387_REGISTERS', + 'WRITE_DAC', + 'WRITE_OWNER', + 'WRITE_WATCH_FLAG_RESET', + 'WSADESCRIPTION_LEN', + 'WSAPROTOCOL_LEN', + 'WSASYS_STATUS_LEN', + 'WTD_CHOICE_BLOB', + 'WTD_CHOICE_CATALOG', + 'WTD_CHOICE_CERT', + 'WTD_CHOICE_FILE', + 'WTD_CHOICE_SIGNER', + 'WTD_REVOKE_NONE', + 'WTD_REVOKE_WHOLECHAIN', + 'WTD_STATEACTION_AUTO_CACHE', + 'WTD_STATEACTION_AUTO_CACHE_FLUSH', + 'WTD_STATEACTION_CLOSE', + 'WTD_STATEACTION_IGNORE', + 'WTD_STATEACTION_VERIFY', + 'WTD_UI_ALL', + 'WTD_UI_NOBAD', + 'WTD_UI_NOGOOD', + 'WTD_UI_NONE', + 'X509_ALTERNATE_NAME', + 'X509_ANY_STRING', + 'X509_ASN_ENCODING', + 'X509_AUTHORITY_KEY_ID', + 'X509_BASIC_CONSTRAINTS', + 'X509_BASIC_CONSTRAINTS2', + 'X509_BITS', + 'X509_CERT', + 'X509_CERT_CRL_TO_BE_SIGNED', + 'X509_CERT_POLICIES', + 'X509_CERT_REQUEST_TO_BE_SIGNED', + 'X509_CERT_TO_BE_SIGNED', + 'X509_CHOICE_OF_TIME', + 'X509_ENUMERATED', + 'X509_EXTENSIONS', + 'X509_INTEGER', + 'X509_KEYGEN_REQUEST_TO_BE_SIGNED', + 'X509_KEY_ATTRIBUTES', + 'X509_KEY_USAGE', + 'X509_KEY_USAGE_RESTRICTION', + 'X509_MULTI_BYTE_INTEGER', + 'X509_NAME', + 'X509_NAME_VALUE', + 'X509_NDR_ENCODING', + 'X509_OCTET_STRING', + 'X509_PUBLIC_KEY_INFO', + 'X509_UNICODE_ANY_STRING', + 'X509_UNICODE_NAME', + 'X509_UNICODE_NAME_VALUE', + 'X86_EFLAGS_V86_MASK', + 'X86_FRAME_EDITED', + 'X86_KGDT_DF_TSS', + 'X86_KGDT_LDT', + 'X86_KGDT_NMI_TSS', + 'X86_KGDT_NULL', + 'X86_KGDT_R0_CODE', + 'X86_KGDT_R0_DATA', + 'X86_KGDT_R0_PCR', + 'X86_KGDT_R3_CODE', + 'X86_KGDT_R3_DATA', + 'X86_KGDT_R3_TEB', + 'X86_KGDT_TSS', + 'X86_KGDT_VDM_TILE', + 'X86_MODE_MASK', + 'szOID_ANSI_X942', + 'szOID_ANSI_X942_DH', + 'szOID_COMMON_NAME', + 'szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF', + 'szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF', + 'szOID_DH_SINGLE_PASS_STDDH_SHA384_KDF', + 'szOID_DS', + 'szOID_DSALG', + 'szOID_DSALG_CRPT', + 'szOID_DSALG_HASH', + 'szOID_DSALG_RSA', + 'szOID_DSALG_SIGN', + 'szOID_ECC_CURVE_P256', + 'szOID_ECC_CURVE_P384', + 'szOID_ECC_CURVE_P521', + 'szOID_ECC_PUBLIC_KEY', + 'szOID_ECDSA_SHA1', + 'szOID_ECDSA_SHA256', + 'szOID_ECDSA_SHA384', + 'szOID_ECDSA_SHA512', + 'szOID_ECDSA_SPECIFIED', + 'szOID_ENHANCED_HASH', + 'szOID_INFOSEC', + 'szOID_INFOSEC_SuiteAConfidentiality', + 'szOID_INFOSEC_SuiteAIntegrity', + 'szOID_INFOSEC_SuiteAKMandSig', + 'szOID_INFOSEC_SuiteAKeyManagement', + 'szOID_INFOSEC_SuiteASignature', + 'szOID_INFOSEC_SuiteATokenProtection', + 'szOID_INFOSEC_mosaicConfidentiality', + 'szOID_INFOSEC_mosaicIntegrity', + 'szOID_INFOSEC_mosaicKMandSig', + 'szOID_INFOSEC_mosaicKMandUpdSig', + 'szOID_INFOSEC_mosaicKeyManagement', + 'szOID_INFOSEC_mosaicSignature', + 'szOID_INFOSEC_mosaicTokenProtection', + 'szOID_INFOSEC_mosaicUpdatedInteg', + 'szOID_INFOSEC_mosaicUpdatedSig', + 'szOID_INFOSEC_sdnsConfidentiality', + 'szOID_INFOSEC_sdnsIntegrity', + 'szOID_INFOSEC_sdnsKMandSig', + 'szOID_INFOSEC_sdnsKeyManagement', + 'szOID_INFOSEC_sdnsSignature', + 'szOID_INFOSEC_sdnsTokenProtection', + 'szOID_INTENT_TO_SEAL', + 'szOID_NESTED_SIGNATURE', + 'szOID_NIST_AES128_CBC', + 'szOID_NIST_AES128_WRAP', + 'szOID_NIST_AES192_CBC', + 'szOID_NIST_AES192_WRAP', + 'szOID_NIST_AES256_CBC', + 'szOID_NIST_AES256_WRAP', + 'szOID_NIST_sha256', + 'szOID_NIST_sha384', + 'szOID_NIST_sha512', + 'szOID_OIW', + 'szOID_OIWDIR', + 'szOID_OIWDIR_CRPT', + 'szOID_OIWDIR_HASH', + 'szOID_OIWDIR_SIGN', + 'szOID_OIWDIR_md2', + 'szOID_OIWDIR_md2RSA', + 'szOID_OIWSEC', + 'szOID_OIWSEC_desCBC', + 'szOID_OIWSEC_desCFB', + 'szOID_OIWSEC_desECB', + 'szOID_OIWSEC_desEDE', + 'szOID_OIWSEC_desMAC', + 'szOID_OIWSEC_desOFB', + 'szOID_OIWSEC_dhCommMod', + 'szOID_OIWSEC_dsa', + 'szOID_OIWSEC_dsaComm', + 'szOID_OIWSEC_dsaCommSHA', + 'szOID_OIWSEC_dsaCommSHA1', + 'szOID_OIWSEC_dsaSHA1', + 'szOID_OIWSEC_keyHashSeal', + 'szOID_OIWSEC_md2RSASign', + 'szOID_OIWSEC_md4RSA', + 'szOID_OIWSEC_md4RSA2', + 'szOID_OIWSEC_md5RSA', + 'szOID_OIWSEC_md5RSASign', + 'szOID_OIWSEC_mdc2', + 'szOID_OIWSEC_mdc2RSA', + 'szOID_OIWSEC_rsaSign', + 'szOID_OIWSEC_rsaXchg', + 'szOID_OIWSEC_sha', + 'szOID_OIWSEC_sha1', + 'szOID_OIWSEC_sha1RSASign', + 'szOID_OIWSEC_shaDSA', + 'szOID_OIWSEC_shaRSA', + 'szOID_PKCS', + 'szOID_PKCS_1', + 'szOID_PKCS_10', + 'szOID_PKCS_12', + 'szOID_PKCS_2', + 'szOID_PKCS_3', + 'szOID_PKCS_4', + 'szOID_PKCS_5', + 'szOID_PKCS_6', + 'szOID_PKCS_7', + 'szOID_PKCS_8', + 'szOID_PKCS_9', + 'szOID_PKCS_9_SEQUENCE_NUMBER', + 'szOID_RFC3161_counterSign', + 'szOID_RSA', + 'szOID_RSAES_OAEP', + 'szOID_RSA_DES_EDE3_CBC', + 'szOID_RSA_DH', + 'szOID_RSA_ENCRYPT', + 'szOID_RSA_HASH', + 'szOID_RSA_MD2', + 'szOID_RSA_MD2RSA', + 'szOID_RSA_MD4', + 'szOID_RSA_MD4RSA', + 'szOID_RSA_MD5', + 'szOID_RSA_MD5RSA', + 'szOID_RSA_MGF1', + 'szOID_RSA_PSPECIFIED', + 'szOID_RSA_RC2CBC', + 'szOID_RSA_RC4', + 'szOID_RSA_RC5_CBCPad', + 'szOID_RSA_RSA', + 'szOID_RSA_SETOAEP_RSA', + 'szOID_RSA_SHA1RSA', + 'szOID_RSA_SHA256RSA', + 'szOID_RSA_SHA384RSA', + 'szOID_RSA_SHA512RSA', + 'szOID_RSA_SMIMECapabilities', + 'szOID_RSA_SMIMEalg', + 'szOID_RSA_SMIMEalgCMS3DESwrap', + 'szOID_RSA_SMIMEalgCMSRC2wrap', + 'szOID_RSA_SMIMEalgESDH', + 'szOID_RSA_SSA_PSS', + 'szOID_RSA_certExtensions', + 'szOID_RSA_challengePwd', + 'szOID_RSA_contentType', + 'szOID_RSA_counterSign', + 'szOID_RSA_data', + 'szOID_RSA_digestedData', + 'szOID_RSA_emailAddr', + 'szOID_RSA_encryptedData', + 'szOID_RSA_envelopedData', + 'szOID_RSA_extCertAttrs', + 'szOID_RSA_hashedData', + 'szOID_RSA_messageDigest', + 'szOID_RSA_preferSignedData', + 'szOID_RSA_signEnvData', + 'szOID_RSA_signedData', + 'szOID_RSA_signingTime', + 'szOID_RSA_unstructAddr', + 'szOID_RSA_unstructName', + 'szOID_SEALING_SIGNATURE', + 'szOID_SEALING_TIMESTAMP', + 'szOID_TIMESTAMP_TOKEN', + 'szOID_TRUSTED_CLIENT_AUTH_CA_LIST', + 'szOID_TRUSTED_CODESIGNING_CA_LIST', + 'szOID_TRUSTED_SERVER_AUTH_CA_LIST', + 'szOID_X957', + 'szOID_X957_DSA', + 'szOID_X957_SHA1DSA']) +errors = set(['APPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID', + 'APPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED', + 'APPMODEL_ERROR_NO_APPLICATION', + 'APPMODEL_ERROR_NO_MUTABLE_DIRECTORY', + 'APPMODEL_ERROR_NO_PACKAGE', + 'APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT', + 'APPMODEL_ERROR_PACKAGE_NOT_AVAILABLE', + 'APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT', + 'APPX_E_BLOCK_HASH_INVALID', + 'APPX_E_CORRUPT_CONTENT', + 'APPX_E_DELTA_APPENDED_PACKAGE_NOT_ALLOWED', + 'APPX_E_DELTA_BASELINE_VERSION_MISMATCH', + 'APPX_E_DELTA_PACKAGE_MISSING_FILE', + 'APPX_E_FILE_COMPRESSION_MISMATCH', + 'APPX_E_INTERLEAVING_NOT_ALLOWED', + 'APPX_E_INVALID_APPINSTALLER', + 'APPX_E_INVALID_BLOCKMAP', + 'APPX_E_INVALID_CONTENTGROUPMAP', + 'APPX_E_INVALID_DELTA_PACKAGE', + 'APPX_E_INVALID_ENCRYPTION_EXCLUSION_FILE_LIST', + 'APPX_E_INVALID_KEY_INFO', + 'APPX_E_INVALID_MANIFEST', + 'APPX_E_INVALID_PACKAGESIGNCONFIG', + 'APPX_E_INVALID_PACKAGING_LAYOUT', + 'APPX_E_INVALID_PAYLOAD_PACKAGE_EXTENSION', + 'APPX_E_INVALID_SIP_CLIENT_DATA', + 'APPX_E_MISSING_REQUIRED_FILE', + 'APPX_E_PACKAGING_INTERNAL', + 'APPX_E_RELATIONSHIPS_NOT_ALLOWED', + 'APPX_E_REQUESTED_RANGE_TOO_LARGE', + 'APPX_E_RESOURCESPRI_NOT_ALLOWED', + 'BT_E_SPURIOUS_ACTIVATION', + 'CACHE_E_FIRST', + 'CACHE_E_LAST', + 'CACHE_E_NOCACHE_UPDATED', + 'CACHE_S_FIRST', + 'CACHE_S_FORMATETC_NOTSUPPORTED', + 'CACHE_S_LAST', + 'CACHE_S_SAMECACHE', + 'CACHE_S_SOMECACHES_NOTUPDATED', + 'CAT_E_CATIDNOEXIST', + 'CAT_E_FIRST', + 'CAT_E_LAST', + 'CAT_E_NODESCRIPTION', + 'CERTSRV_E_ADMIN_DENIED_REQUEST', + 'CERTSRV_E_ALIGNMENT_FAULT', + 'CERTSRV_E_ARCHIVED_KEY_REQUIRED', + 'CERTSRV_E_ARCHIVED_KEY_UNEXPECTED', + 'CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE', + 'CERTSRV_E_BAD_RENEWAL_SUBJECT', + 'CERTSRV_E_BAD_REQUESTSTATUS', + 'CERTSRV_E_BAD_REQUESTSUBJECT', + 'CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL', + 'CERTSRV_E_BAD_TEMPLATE_VERSION', + 'CERTSRV_E_CERT_TYPE_OVERLAP', + 'CERTSRV_E_CORRUPT_KEY_ATTESTATION', + 'CERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE', + 'CERTSRV_E_ENCODING_LENGTH', + 'CERTSRV_E_ENCRYPTION_CERT_REQUIRED', + 'CERTSRV_E_ENROLL_DENIED', + 'CERTSRV_E_EXPIRED_CHALLENGE', + 'CERTSRV_E_INVALID_ATTESTATION', + 'CERTSRV_E_INVALID_CA_CERTIFICATE', + 'CERTSRV_E_INVALID_EK', + 'CERTSRV_E_INVALID_IDBINDING', + 'CERTSRV_E_INVALID_REQUESTID', + 'CERTSRV_E_INVALID_RESPONSE', + 'CERTSRV_E_ISSUANCE_POLICY_REQUIRED', + 'CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED', + 'CERTSRV_E_KEY_ATTESTATION', + 'CERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED', + 'CERTSRV_E_KEY_LENGTH', + 'CERTSRV_E_NO_CAADMIN_DEFINED', + 'CERTSRV_E_NO_CERT_TYPE', + 'CERTSRV_E_NO_DB_SESSIONS', + 'CERTSRV_E_NO_POLICY_SERVER', + 'CERTSRV_E_NO_REQUEST', + 'CERTSRV_E_NO_VALID_KRA', + 'CERTSRV_E_PENDING_CLIENT_RESPONSE', + 'CERTSRV_E_PROPERTY_EMPTY', + 'CERTSRV_E_RENEWAL_BAD_PUBLIC_KEY', + 'CERTSRV_E_REQUEST_PRECERTIFICATE_MISMATCH', + 'CERTSRV_E_RESTRICTEDOFFICER', + 'CERTSRV_E_ROLECONFLICT', + 'CERTSRV_E_SERVER_SUSPENDED', + 'CERTSRV_E_SIGNATURE_COUNT', + 'CERTSRV_E_SIGNATURE_POLICY_REQUIRED', + 'CERTSRV_E_SIGNATURE_REJECTED', + 'CERTSRV_E_SMIME_REQUIRED', + 'CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED', + 'CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED', + 'CERTSRV_E_SUBJECT_DNS_REQUIRED', + 'CERTSRV_E_SUBJECT_EMAIL_REQUIRED', + 'CERTSRV_E_SUBJECT_UPN_REQUIRED', + 'CERTSRV_E_TEMPLATE_CONFLICT', + 'CERTSRV_E_TEMPLATE_DENIED', + 'CERTSRV_E_TEMPLATE_POLICY_REQUIRED', + 'CERTSRV_E_TOO_MANY_SIGNATURES', + 'CERTSRV_E_UNKNOWN_CERT_TYPE', + 'CERTSRV_E_UNSUPPORTED_CERT_TYPE', + 'CERTSRV_E_WEAK_SIGNATURE_OR_KEY', + 'CERT_E_CHAINING', + 'CERT_E_CN_NO_MATCH', + 'CERT_E_CRITICAL', + 'CERT_E_EXPIRED', + 'CERT_E_INVALID_NAME', + 'CERT_E_INVALID_POLICY', + 'CERT_E_ISSUERCHAINING', + 'CERT_E_MALFORMED', + 'CERT_E_PATHLENCONST', + 'CERT_E_PURPOSE', + 'CERT_E_REVOCATION_FAILURE', + 'CERT_E_REVOKED', + 'CERT_E_ROLE', + 'CERT_E_UNTRUSTEDCA', + 'CERT_E_UNTRUSTEDROOT', + 'CERT_E_UNTRUSTEDTESTROOT', + 'CERT_E_VALIDITYPERIODNESTING', + 'CERT_E_WRONG_USAGE', + 'CLASSFACTORY_E_FIRST', + 'CLASSFACTORY_E_LAST', + 'CLASSFACTORY_S_FIRST', + 'CLASSFACTORY_S_LAST', + 'CLASS_E_CLASSNOTAVAILABLE', + 'CLASS_E_NOAGGREGATION', + 'CLASS_E_NOTLICENSED', + 'CLIENTSITE_E_FIRST', + 'CLIENTSITE_E_LAST', + 'CLIENTSITE_S_FIRST', + 'CLIENTSITE_S_LAST', + 'CLIPBRD_E_BAD_DATA', + 'CLIPBRD_E_CANT_CLOSE', + 'CLIPBRD_E_CANT_EMPTY', + 'CLIPBRD_E_CANT_OPEN', + 'CLIPBRD_E_CANT_SET', + 'CLIPBRD_E_FIRST', + 'CLIPBRD_E_LAST', + 'CLIPBRD_S_FIRST', + 'CLIPBRD_S_LAST', + 'COMADMIN_E_ALREADYINSTALLED', + 'COMADMIN_E_AMBIGUOUS_APPLICATION_NAME', + 'COMADMIN_E_AMBIGUOUS_PARTITION_NAME', + 'COMADMIN_E_APPDIRNOTFOUND', + 'COMADMIN_E_APPLICATIONEXISTS', + 'COMADMIN_E_APPLID_MATCHES_CLSID', + 'COMADMIN_E_APP_FILE_READFAIL', + 'COMADMIN_E_APP_FILE_VERSION', + 'COMADMIN_E_APP_FILE_WRITEFAIL', + 'COMADMIN_E_APP_NOT_RUNNING', + 'COMADMIN_E_AUTHENTICATIONLEVEL', + 'COMADMIN_E_BADPATH', + 'COMADMIN_E_BADREGISTRYLIBID', + 'COMADMIN_E_BADREGISTRYPROGID', + 'COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET', + 'COMADMIN_E_BASE_PARTITION_ONLY', + 'COMADMIN_E_CANNOT_ALIAS_EVENTCLASS', + 'COMADMIN_E_CANTCOPYFILE', + 'COMADMIN_E_CANTMAKEINPROCSERVICE', + 'COMADMIN_E_CANTRECYCLELIBRARYAPPS', + 'COMADMIN_E_CANTRECYCLESERVICEAPPS', + 'COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT', + 'COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY', + 'COMADMIN_E_CAN_NOT_EXPORT_SYS_APP', + 'COMADMIN_E_CAN_NOT_START_APP', + 'COMADMIN_E_CAT_BITNESSMISMATCH', + 'COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME', + 'COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED', + 'COMADMIN_E_CAT_INVALID_PARTITION_NAME', + 'COMADMIN_E_CAT_PARTITION_IN_USE', + 'COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED', + 'COMADMIN_E_CAT_SERVERFAULT', + 'COMADMIN_E_CAT_UNACCEPTABLEBITNESS', + 'COMADMIN_E_CAT_WRONGAPPBITNESS', + 'COMADMIN_E_CLSIDORIIDMISMATCH', + 'COMADMIN_E_COMPFILE_BADTLB', + 'COMADMIN_E_COMPFILE_CLASSNOTAVAIL', + 'COMADMIN_E_COMPFILE_DOESNOTEXIST', + 'COMADMIN_E_COMPFILE_GETCLASSOBJ', + 'COMADMIN_E_COMPFILE_LOADDLLFAIL', + 'COMADMIN_E_COMPFILE_NOREGISTRAR', + 'COMADMIN_E_COMPFILE_NOTINSTALLABLE', + 'COMADMIN_E_COMPONENTEXISTS', + 'COMADMIN_E_COMP_MOVE_BAD_DEST', + 'COMADMIN_E_COMP_MOVE_DEST', + 'COMADMIN_E_COMP_MOVE_LOCKED', + 'COMADMIN_E_COMP_MOVE_PRIVATE', + 'COMADMIN_E_COMP_MOVE_SOURCE', + 'COMADMIN_E_COREQCOMPINSTALLED', + 'COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET', + 'COMADMIN_E_DLLLOADFAILED', + 'COMADMIN_E_DLLREGISTERSERVER', + 'COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER', + 'COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES', + 'COMADMIN_E_INVALIDUSERIDS', + 'COMADMIN_E_INVALID_PARTITION', + 'COMADMIN_E_KEYMISSING', + 'COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT', + 'COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS', + 'COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE', + 'COMADMIN_E_MIG_SCHEMANOTFOUND', + 'COMADMIN_E_MIG_VERSIONNOTSUPPORTED', + 'COMADMIN_E_NOREGISTRYCLSID', + 'COMADMIN_E_NOSERVERSHARE', + 'COMADMIN_E_NOTCHANGEABLE', + 'COMADMIN_E_NOTDELETEABLE', + 'COMADMIN_E_NOTINREGISTRY', + 'COMADMIN_E_NOUSER', + 'COMADMIN_E_OBJECTERRORS', + 'COMADMIN_E_OBJECTEXISTS', + 'COMADMIN_E_OBJECTINVALID', + 'COMADMIN_E_OBJECTNOTPOOLABLE', + 'COMADMIN_E_OBJECT_DOES_NOT_EXIST', + 'COMADMIN_E_OBJECT_PARENT_MISSING', + 'COMADMIN_E_PARTITIONS_DISABLED', + 'COMADMIN_E_PARTITION_ACCESSDENIED', + 'COMADMIN_E_PARTITION_MSI_ONLY', + 'COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED', + 'COMADMIN_E_PRIVATE_ACCESSDENIED', + 'COMADMIN_E_PROCESSALREADYRECYCLED', + 'COMADMIN_E_PROGIDINUSEBYCLSID', + 'COMADMIN_E_PROPERTYSAVEFAILED', + 'COMADMIN_E_PROPERTY_OVERFLOW', + 'COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED', + 'COMADMIN_E_REGDB_ALREADYRUNNING', + 'COMADMIN_E_REGDB_NOTINITIALIZED', + 'COMADMIN_E_REGDB_NOTOPEN', + 'COMADMIN_E_REGDB_SYSTEMERR', + 'COMADMIN_E_REGFILE_CORRUPT', + 'COMADMIN_E_REGISTERTLB', + 'COMADMIN_E_REGISTRARFAILED', + 'COMADMIN_E_REGISTRY_ACCESSDENIED', + 'COMADMIN_E_REMOTEINTERFACE', + 'COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM', + 'COMADMIN_E_ROLEEXISTS', + 'COMADMIN_E_ROLE_DOES_NOT_EXIST', + 'COMADMIN_E_SAFERINVALID', + 'COMADMIN_E_SERVICENOTINSTALLED', + 'COMADMIN_E_SESSION', + 'COMADMIN_E_START_APP_DISABLED', + 'COMADMIN_E_START_APP_NEEDS_COMPONENTS', + 'COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE', + 'COMADMIN_E_SYSTEMAPP', + 'COMADMIN_E_USERPASSWDNOTVALID', + 'COMADMIN_E_USER_IN_SET', + 'COMQC_E_APPLICATION_NOT_QUEUED', + 'COMQC_E_BAD_MESSAGE', + 'COMQC_E_NO_IPERSISTSTREAM', + 'COMQC_E_NO_QUEUEABLE_INTERFACES', + 'COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE', + 'COMQC_E_UNAUTHENTICATED', + 'COMQC_E_UNTRUSTED_ENQUEUER', + 'CONTEXT_E_ABORTED', + 'CONTEXT_E_ABORTING', + 'CONTEXT_E_FIRST', + 'CONTEXT_E_LAST', + 'CONTEXT_E_NOCONTEXT', + 'CONTEXT_E_NOJIT', + 'CONTEXT_E_NOTRANSACTION', + 'CONTEXT_E_OLDREF', + 'CONTEXT_E_ROLENOTFOUND', + 'CONTEXT_E_SYNCH_TIMEOUT', + 'CONTEXT_E_TMNOTAVAILABLE', + 'CONTEXT_E_WOULD_DEADLOCK', + 'CONTEXT_S_FIRST', + 'CONTEXT_S_LAST', + 'CONVERT10_E_FIRST', + 'CONVERT10_E_LAST', + 'CONVERT10_E_OLESTREAM_BITMAP_TO_DIB', + 'CONVERT10_E_OLESTREAM_FMT', + 'CONVERT10_E_OLESTREAM_GET', + 'CONVERT10_E_OLESTREAM_PUT', + 'CONVERT10_E_STG_DIB_TO_BITMAP', + 'CONVERT10_E_STG_FMT', + 'CONVERT10_E_STG_NO_STD_STREAM', + 'CONVERT10_S_FIRST', + 'CONVERT10_S_LAST', + 'CONVERT10_S_NO_PRESENTATION', + 'CO_E_ACCESSCHECKFAILED', + 'CO_E_ACESINWRONGORDER', + 'CO_E_ACNOTINITIALIZED', + 'CO_E_ACTIVATIONFAILED', + 'CO_E_ACTIVATIONFAILED_CATALOGERROR', + 'CO_E_ACTIVATIONFAILED_EVENTLOGGED', + 'CO_E_ACTIVATIONFAILED_TIMEOUT', + 'CO_E_ALREADYINITIALIZED', + 'CO_E_APPDIDNTREG', + 'CO_E_APPNOTFOUND', + 'CO_E_APPSINGLEUSE', + 'CO_E_ASYNC_WORK_REJECTED', + 'CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT', + 'CO_E_BAD_PATH', + 'CO_E_BAD_SERVER_NAME', + 'CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED', + 'CO_E_CANCEL_DISABLED', + 'CO_E_CANTDETERMINECLASS', + 'CO_E_CANT_REMOTE', + 'CO_E_CLASSSTRING', + 'CO_E_CLASS_CREATE_FAILED', + 'CO_E_CLASS_DISABLED', + 'CO_E_CLRNOTAVAILABLE', + 'CO_E_CLSREG_INCONSISTENT', + 'CO_E_CONVERSIONFAILED', + 'CO_E_CREATEPROCESS_FAILURE', + 'CO_E_DBERROR', + 'CO_E_DECODEFAILED', + 'CO_E_DLLNOTFOUND', + 'CO_E_ELEVATION_DISABLED', + 'CO_E_ERRORINAPP', + 'CO_E_ERRORINDLL', + 'CO_E_EXCEEDSYSACLLIMIT', + 'CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED', + 'CO_E_FAILEDTOCLOSEHANDLE', + 'CO_E_FAILEDTOCREATEFILE', + 'CO_E_FAILEDTOGENUUID', + 'CO_E_FAILEDTOGETSECCTX', + 'CO_E_FAILEDTOGETTOKENINFO', + 'CO_E_FAILEDTOGETWINDIR', + 'CO_E_FAILEDTOIMPERSONATE', + 'CO_E_FAILEDTOOPENPROCESSTOKEN', + 'CO_E_FAILEDTOOPENTHREADTOKEN', + 'CO_E_FAILEDTOQUERYCLIENTBLANKET', + 'CO_E_FAILEDTOSETDACL', + 'CO_E_FIRST', + 'CO_E_IIDREG_INCONSISTENT', + 'CO_E_IIDSTRING', + 'CO_E_INCOMPATIBLESTREAMVERSION', + 'CO_E_INITIALIZATIONFAILED', + 'CO_E_INIT_CLASS_CACHE', + 'CO_E_INIT_MEMORY_ALLOCATOR', + 'CO_E_INIT_ONLY_SINGLE_THREADED', + 'CO_E_INIT_RPC_CHANNEL', + 'CO_E_INIT_SCM_EXEC_FAILURE', + 'CO_E_INIT_SCM_FILE_MAPPING_EXISTS', + 'CO_E_INIT_SCM_MAP_VIEW_OF_FILE', + 'CO_E_INIT_SCM_MUTEX_EXISTS', + 'CO_E_INIT_SHARED_ALLOCATOR', + 'CO_E_INIT_TLS', + 'CO_E_INIT_TLS_CHANNEL_CONTROL', + 'CO_E_INIT_TLS_SET_CHANNEL_CONTROL', + 'CO_E_INIT_UNACCEPTED_USER_ALLOCATOR', + 'CO_E_INVALIDSID', + 'CO_E_ISOLEVELMISMATCH', + 'CO_E_LAST', + 'CO_E_LAUNCH_PERMSSION_DENIED', + 'CO_E_LOOKUPACCNAMEFAILED', + 'CO_E_LOOKUPACCSIDFAILED', + 'CO_E_MALFORMED_SPN', + 'CO_E_MISSING_DISPLAYNAME', + 'CO_E_MSI_ERROR', + 'CO_E_NETACCESSAPIFAILED', + 'CO_E_NOCOOKIES', + 'CO_E_NOIISINTRINSICS', + 'CO_E_NOMATCHINGNAMEFOUND', + 'CO_E_NOMATCHINGSIDFOUND', + 'CO_E_NOSYNCHRONIZATION', + 'CO_E_NOTCONSTRUCTED', + 'CO_E_NOTINITIALIZED', + 'CO_E_NOTPOOLED', + 'CO_E_NOT_SUPPORTED', + 'CO_E_NO_SECCTX_IN_ACTIVATE', + 'CO_E_OBJISREG', + 'CO_E_OBJNOTCONNECTED', + 'CO_E_OBJNOTREG', + 'CO_E_OBJSRV_RPC_FAILURE', + 'CO_E_OLE1DDE_DISABLED', + 'CO_E_PATHTOOLONG', + 'CO_E_PREMATURE_STUB_RUNDOWN', + 'CO_E_RELEASED', + 'CO_E_RELOAD_DLL', + 'CO_E_REMOTE_COMMUNICATION_FAILURE', + 'CO_E_RUNAS_CREATEPROCESS_FAILURE', + 'CO_E_RUNAS_LOGON_FAILURE', + 'CO_E_RUNAS_SYNTAX', + 'CO_E_RUNAS_VALUE_MUST_BE_AAA', + 'CO_E_SCM_ERROR', + 'CO_E_SCM_RPC_FAILURE', + 'CO_E_SERVER_EXEC_FAILURE', + 'CO_E_SERVER_INIT_TIMEOUT', + 'CO_E_SERVER_NOT_PAUSED', + 'CO_E_SERVER_PAUSED', + 'CO_E_SERVER_START_TIMEOUT', + 'CO_E_SERVER_STOPPING', + 'CO_E_SETSERLHNDLFAILED', + 'CO_E_START_SERVICE_FAILURE', + 'CO_E_SXS_CONFIG', + 'CO_E_THREADINGMODEL_CHANGED', + 'CO_E_THREADPOOL_CONFIG', + 'CO_E_TRACKER_CONFIG', + 'CO_E_TRUSTEEDOESNTMATCHCLIENT', + 'CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN', + 'CO_E_WRONGOSFORAPP', + 'CO_E_WRONGTRUSTEENAMESYNTAX', + 'CO_E_WRONG_SERVER_IDENTITY', + 'CO_S_FIRST', + 'CO_S_LAST', + 'CO_S_MACHINENAMENOTFOUND', + 'CO_S_NOTALLINTERFACES', + 'CRYPT_E_ALREADY_DECRYPTED', + 'CRYPT_E_ASN1_BADARGS', + 'CRYPT_E_ASN1_BADPDU', + 'CRYPT_E_ASN1_BADREAL', + 'CRYPT_E_ASN1_BADTAG', + 'CRYPT_E_ASN1_CHOICE', + 'CRYPT_E_ASN1_CONSTRAINT', + 'CRYPT_E_ASN1_CORRUPT', + 'CRYPT_E_ASN1_EOD', + 'CRYPT_E_ASN1_ERROR', + 'CRYPT_E_ASN1_EXTENDED', + 'CRYPT_E_ASN1_INTERNAL', + 'CRYPT_E_ASN1_LARGE', + 'CRYPT_E_ASN1_MEMORY', + 'CRYPT_E_ASN1_NOEOD', + 'CRYPT_E_ASN1_NYI', + 'CRYPT_E_ASN1_OVERFLOW', + 'CRYPT_E_ASN1_PDU_TYPE', + 'CRYPT_E_ASN1_RULE', + 'CRYPT_E_ASN1_UTF8', + 'CRYPT_E_ATTRIBUTES_MISSING', + 'CRYPT_E_AUTH_ATTR_MISSING', + 'CRYPT_E_BAD_ENCODE', + 'CRYPT_E_BAD_LEN', + 'CRYPT_E_BAD_MSG', + 'CRYPT_E_CONTROL_TYPE', + 'CRYPT_E_DELETED_PREV', + 'CRYPT_E_EXISTS', + 'CRYPT_E_FILERESIZED', + 'CRYPT_E_FILE_ERROR', + 'CRYPT_E_HASH_VALUE', + 'CRYPT_E_INVALID_IA5_STRING', + 'CRYPT_E_INVALID_INDEX', + 'CRYPT_E_INVALID_MSG_TYPE', + 'CRYPT_E_INVALID_NUMERIC_STRING', + 'CRYPT_E_INVALID_PRINTABLE_STRING', + 'CRYPT_E_INVALID_X500_STRING', + 'CRYPT_E_ISSUER_SERIALNUMBER', + 'CRYPT_E_MISSING_PUBKEY_PARA', + 'CRYPT_E_MSG_ERROR', + 'CRYPT_E_NOT_CHAR_STRING', + 'CRYPT_E_NOT_DECRYPTED', + 'CRYPT_E_NOT_FOUND', + 'CRYPT_E_NOT_IN_CTL', + 'CRYPT_E_NOT_IN_REVOCATION_DATABASE', + 'CRYPT_E_NO_DECRYPT_CERT', + 'CRYPT_E_NO_KEY_PROPERTY', + 'CRYPT_E_NO_MATCH', + 'CRYPT_E_NO_PROVIDER', + 'CRYPT_E_NO_REVOCATION_CHECK', + 'CRYPT_E_NO_REVOCATION_DLL', + 'CRYPT_E_NO_SIGNER', + 'CRYPT_E_NO_TRUSTED_SIGNER', + 'CRYPT_E_NO_VERIFY_USAGE_CHECK', + 'CRYPT_E_NO_VERIFY_USAGE_DLL', + 'CRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND', + 'CRYPT_E_OID_FORMAT', + 'CRYPT_E_OSS_ERROR', + 'CRYPT_E_PENDING_CLOSE', + 'CRYPT_E_RECIPIENT_NOT_FOUND', + 'CRYPT_E_REVOCATION_OFFLINE', + 'CRYPT_E_REVOKED', + 'CRYPT_E_SECURITY_SETTINGS', + 'CRYPT_E_SELF_SIGNED', + 'CRYPT_E_SIGNER_NOT_FOUND', + 'CRYPT_E_STREAM_INSUFFICIENT_DATA', + 'CRYPT_E_STREAM_MSG_NOT_READY', + 'CRYPT_E_UNEXPECTED_ENCODING', + 'CRYPT_E_UNEXPECTED_MSG_TYPE', + 'CRYPT_E_UNKNOWN_ALGO', + 'CRYPT_E_VERIFY_USAGE_OFFLINE', + 'CRYPT_I_NEW_PROTECTION_REQUIRED', + 'CS_E_ADMIN_LIMIT_EXCEEDED', + 'CS_E_CLASS_NOTFOUND', + 'CS_E_FIRST', + 'CS_E_INTERNAL_ERROR', + 'CS_E_INVALID_PATH', + 'CS_E_INVALID_VERSION', + 'CS_E_LAST', + 'CS_E_NETWORK_ERROR', + 'CS_E_NOT_DELETABLE', + 'CS_E_NO_CLASSSTORE', + 'CS_E_OBJECT_ALREADY_EXISTS', + 'CS_E_OBJECT_NOTFOUND', + 'CS_E_PACKAGE_NOTFOUND', + 'CS_E_SCHEMA_MISMATCH', + 'D2DERR_BAD_NUMBER', + 'D2DERR_BITMAP_BOUND_AS_TARGET', + 'D2DERR_BITMAP_CANNOT_DRAW', + 'D2DERR_CYCLIC_GRAPH', + 'D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED', + 'D2DERR_DISPLAY_STATE_INVALID', + 'D2DERR_EFFECT_IS_NOT_REGISTERED', + 'D2DERR_EXCEEDS_MAX_BITMAP_SIZE', + 'D2DERR_INCOMPATIBLE_BRUSH_TYPES', + 'D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES', + 'D2DERR_INTERMEDIATE_TOO_LARGE', + 'D2DERR_INTERNAL_ERROR', + 'D2DERR_INVALID_CALL', + 'D2DERR_INVALID_GLYPH_IMAGE', + 'D2DERR_INVALID_GRAPH_CONFIGURATION', + 'D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION', + 'D2DERR_INVALID_PROPERTY', + 'D2DERR_INVALID_TARGET', + 'D2DERR_LAYER_ALREADY_IN_USE', + 'D2DERR_MAX_TEXTURE_SIZE_EXCEEDED', + 'D2DERR_NOT_INITIALIZED', + 'D2DERR_NO_HARDWARE_DEVICE', + 'D2DERR_NO_SUBPROPERTIES', + 'D2DERR_ORIGINAL_TARGET_NOT_BOUND', + 'D2DERR_OUTSTANDING_BITMAP_REFERENCES', + 'D2DERR_POP_CALL_DID_NOT_MATCH_PUSH', + 'D2DERR_PRINT_FORMAT_NOT_SUPPORTED', + 'D2DERR_PRINT_JOB_CLOSED', + 'D2DERR_PUSH_POP_UNBALANCED', + 'D2DERR_RECREATE_TARGET', + 'D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT', + 'D2DERR_SCANNER_FAILED', + 'D2DERR_SCREEN_ACCESS_DENIED', + 'D2DERR_SHADER_COMPILE_FAILED', + 'D2DERR_TARGET_NOT_GDI_COMPATIBLE', + 'D2DERR_TEXT_EFFECT_IS_WRONG_TYPE', + 'D2DERR_TEXT_RENDERER_NOT_RELEASED', + 'D2DERR_TOO_MANY_SHADER_ELEMENTS', + 'D2DERR_TOO_MANY_TRANSFORM_INPUTS', + 'D2DERR_UNSUPPORTED_OPERATION', + 'D2DERR_UNSUPPORTED_VERSION', + 'D2DERR_WIN32_ERROR', + 'D2DERR_WRONG_FACTORY', + 'D2DERR_WRONG_RESOURCE_DOMAIN', + 'D2DERR_WRONG_STATE', + 'D2DERR_ZERO_VECTOR', + 'D3D10_ERROR_FILE_NOT_FOUND', + 'D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS', + 'D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD', + 'D3D11_ERROR_FILE_NOT_FOUND', + 'D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS', + 'D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS', + 'D3D12_ERROR_ADAPTER_NOT_FOUND', + 'D3D12_ERROR_DRIVER_VERSION_MISMATCH', + 'DATA_E_FIRST', + 'DATA_E_LAST', + 'DATA_S_FIRST', + 'DATA_S_LAST', + 'DATA_S_SAMEFORMATETC', + 'DBG_APP_NOT_IDLE', + 'DBG_COMMAND_EXCEPTION', + 'DBG_CONTINUE', + 'DBG_CONTROL_BREAK', + 'DBG_CONTROL_C', + 'DBG_EXCEPTION_HANDLED', + 'DBG_EXCEPTION_NOT_HANDLED', + 'DBG_NO_STATE_CHANGE', + 'DBG_PRINTEXCEPTION_C', + 'DBG_REPLY_LATER', + 'DBG_RIPEXCEPTION', + 'DBG_TERMINATE_PROCESS', + 'DBG_TERMINATE_THREAD', + 'DBG_UNABLE_TO_PROVIDE_HANDLE', + 'DCOMPOSITION_ERROR_SURFACE_BEING_RENDERED', + 'DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED', + 'DCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED', + 'DIGSIG_E_CRYPTO', + 'DIGSIG_E_DECODE', + 'DIGSIG_E_ENCODE', + 'DIGSIG_E_EXTENSIBILITY', + 'DISP_E_ARRAYISLOCKED', + 'DISP_E_BADCALLEE', + 'DISP_E_BADINDEX', + 'DISP_E_BADPARAMCOUNT', + 'DISP_E_BADVARTYPE', + 'DISP_E_BUFFERTOOSMALL', + 'DISP_E_DIVBYZERO', + 'DISP_E_EXCEPTION', + 'DISP_E_MEMBERNOTFOUND', + 'DISP_E_NONAMEDARGS', + 'DISP_E_NOTACOLLECTION', + 'DISP_E_OVERFLOW', + 'DISP_E_PARAMNOTFOUND', + 'DISP_E_PARAMNOTOPTIONAL', + 'DISP_E_TYPEMISMATCH', + 'DISP_E_UNKNOWNINTERFACE', + 'DISP_E_UNKNOWNLCID', + 'DISP_E_UNKNOWNNAME', + 'DNS_ERROR_ADDRESS_REQUIRED', + 'DNS_ERROR_ALIAS_LOOP', + 'DNS_ERROR_AUTOZONE_ALREADY_EXISTS', + 'DNS_ERROR_AXFR', + 'DNS_ERROR_BACKGROUND_LOADING', + 'DNS_ERROR_BAD_KEYMASTER', + 'DNS_ERROR_BAD_PACKET', + 'DNS_ERROR_CANNOT_FIND_ROOT_HINTS', + 'DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS', + 'DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST', + 'DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED', + 'DNS_ERROR_CNAME_COLLISION', + 'DNS_ERROR_CNAME_LOOP', + 'DNS_ERROR_DATABASE_BASE', + 'DNS_ERROR_DATAFILE_BASE', + 'DNS_ERROR_DATAFILE_OPEN_FAILURE', + 'DNS_ERROR_DATAFILE_PARSING', + 'DNS_ERROR_DEFAULT_SCOPE', + 'DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE', + 'DNS_ERROR_DEFAULT_ZONESCOPE', + 'DNS_ERROR_DELEGATION_REQUIRED', + 'DNS_ERROR_DNAME_COLLISION', + 'DNS_ERROR_DNSSEC_BASE', + 'DNS_ERROR_DNSSEC_IS_DISABLED', + 'DNS_ERROR_DP_ALREADY_ENLISTED', + 'DNS_ERROR_DP_ALREADY_EXISTS', + 'DNS_ERROR_DP_BASE', + 'DNS_ERROR_DP_DOES_NOT_EXIST', + 'DNS_ERROR_DP_FSMO_ERROR', + 'DNS_ERROR_DP_NOT_AVAILABLE', + 'DNS_ERROR_DP_NOT_ENLISTED', + 'DNS_ERROR_DS_UNAVAILABLE', + 'DNS_ERROR_DS_ZONE_ALREADY_EXISTS', + 'DNS_ERROR_DWORD_VALUE_TOO_LARGE', + 'DNS_ERROR_DWORD_VALUE_TOO_SMALL', + 'DNS_ERROR_FILE_WRITEBACK_FAILED', + 'DNS_ERROR_FORWARDER_ALREADY_EXISTS', + 'DNS_ERROR_GENERAL_API_BASE', + 'DNS_ERROR_INCONSISTENT_ROOT_HINTS', + 'DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME', + 'DNS_ERROR_INVALID_CLIENT_SUBNET_NAME', + 'DNS_ERROR_INVALID_DATA', + 'DNS_ERROR_INVALID_DATAFILE_NAME', + 'DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET', + 'DNS_ERROR_INVALID_IP_ADDRESS', + 'DNS_ERROR_INVALID_KEY_SIZE', + 'DNS_ERROR_INVALID_NAME', + 'DNS_ERROR_INVALID_NAME_CHAR', + 'DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT', + 'DNS_ERROR_INVALID_POLICY_TABLE', + 'DNS_ERROR_INVALID_PROPERTY', + 'DNS_ERROR_INVALID_ROLLOVER_PERIOD', + 'DNS_ERROR_INVALID_SCOPE_NAME', + 'DNS_ERROR_INVALID_SCOPE_OPERATION', + 'DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD', + 'DNS_ERROR_INVALID_TYPE', + 'DNS_ERROR_INVALID_XML', + 'DNS_ERROR_INVALID_ZONESCOPE_NAME', + 'DNS_ERROR_INVALID_ZONE_OPERATION', + 'DNS_ERROR_INVALID_ZONE_TYPE', + 'DNS_ERROR_KEYMASTER_REQUIRED', + 'DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION', + 'DNS_ERROR_KSP_NOT_ACCESSIBLE', + 'DNS_ERROR_LOAD_ZONESCOPE_FAILED', + 'DNS_ERROR_MASK', + 'DNS_ERROR_NAME_DOES_NOT_EXIST', + 'DNS_ERROR_NAME_NOT_IN_ZONE', + 'DNS_ERROR_NBSTAT_INIT_FAILED', + 'DNS_ERROR_NEED_SECONDARY_ADDRESSES', + 'DNS_ERROR_NEED_WINS_SERVERS', + 'DNS_ERROR_NODE_CREATION_FAILED', + 'DNS_ERROR_NODE_IS_CNAME', + 'DNS_ERROR_NODE_IS_DNAME', + 'DNS_ERROR_NON_RFC_NAME', + 'DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD', + 'DNS_ERROR_NOT_ALLOWED_ON_RODC', + 'DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER', + 'DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE', + 'DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE', + 'DNS_ERROR_NOT_ALLOWED_ON_ZSK', + 'DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION', + 'DNS_ERROR_NOT_ALLOWED_UNDER_DNAME', + 'DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES', + 'DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS', + 'DNS_ERROR_NOT_UNIQUE', + 'DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE', + 'DNS_ERROR_NO_CREATE_CACHE_DATA', + 'DNS_ERROR_NO_DNS_SERVERS', + 'DNS_ERROR_NO_MEMORY', + 'DNS_ERROR_NO_PACKET', + 'DNS_ERROR_NO_TCPIP', + 'DNS_ERROR_NO_VALID_TRUST_ANCHORS', + 'DNS_ERROR_NO_ZONE_INFO', + 'DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1', + 'DNS_ERROR_NSEC3_NAME_COLLISION', + 'DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1', + 'DNS_ERROR_NUMERIC_NAME', + 'DNS_ERROR_OPERATION_BASE', + 'DNS_ERROR_PACKET_FMT_BASE', + 'DNS_ERROR_POLICY_ALREADY_EXISTS', + 'DNS_ERROR_POLICY_DOES_NOT_EXIST', + 'DNS_ERROR_POLICY_INVALID_CRITERIA', + 'DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET', + 'DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN', + 'DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE', + 'DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL', + 'DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE', + 'DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY', + 'DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL', + 'DNS_ERROR_POLICY_INVALID_NAME', + 'DNS_ERROR_POLICY_INVALID_SETTINGS', + 'DNS_ERROR_POLICY_INVALID_WEIGHT', + 'DNS_ERROR_POLICY_LOCKED', + 'DNS_ERROR_POLICY_MISSING_CRITERIA', + 'DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID', + 'DNS_ERROR_POLICY_SCOPE_MISSING', + 'DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED', + 'DNS_ERROR_PRIMARY_REQUIRES_DATAFILE', + 'DNS_ERROR_RCODE', + 'DNS_ERROR_RCODE_BADKEY', + 'DNS_ERROR_RCODE_BADSIG', + 'DNS_ERROR_RCODE_BADTIME', + 'DNS_ERROR_RCODE_FORMAT_ERROR', + 'DNS_ERROR_RCODE_LAST', + 'DNS_ERROR_RCODE_NAME_ERROR', + 'DNS_ERROR_RCODE_NOTAUTH', + 'DNS_ERROR_RCODE_NOTZONE', + 'DNS_ERROR_RCODE_NOT_IMPLEMENTED', + 'DNS_ERROR_RCODE_NO_ERROR', + 'DNS_ERROR_RCODE_NXRRSET', + 'DNS_ERROR_RCODE_REFUSED', + 'DNS_ERROR_RCODE_SERVER_FAILURE', + 'DNS_ERROR_RCODE_YXDOMAIN', + 'DNS_ERROR_RCODE_YXRRSET', + 'DNS_ERROR_RECORD_ALREADY_EXISTS', + 'DNS_ERROR_RECORD_DOES_NOT_EXIST', + 'DNS_ERROR_RECORD_FORMAT', + 'DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT', + 'DNS_ERROR_RECORD_TIMED_OUT', + 'DNS_ERROR_RESPONSE_CODES_BASE', + 'DNS_ERROR_ROLLOVER_ALREADY_QUEUED', + 'DNS_ERROR_ROLLOVER_IN_PROGRESS', + 'DNS_ERROR_ROLLOVER_NOT_POKEABLE', + 'DNS_ERROR_RRL_INVALID_IPV4_PREFIX', + 'DNS_ERROR_RRL_INVALID_IPV6_PREFIX', + 'DNS_ERROR_RRL_INVALID_LEAK_RATE', + 'DNS_ERROR_RRL_INVALID_TC_RATE', + 'DNS_ERROR_RRL_INVALID_WINDOW_SIZE', + 'DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE', + 'DNS_ERROR_RRL_NOT_ENABLED', + 'DNS_ERROR_SCOPE_ALREADY_EXISTS', + 'DNS_ERROR_SCOPE_DOES_NOT_EXIST', + 'DNS_ERROR_SCOPE_LOCKED', + 'DNS_ERROR_SECONDARY_DATA', + 'DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP', + 'DNS_ERROR_SECURE_BASE', + 'DNS_ERROR_SERVERSCOPE_IS_REFERENCED', + 'DNS_ERROR_SETUP_BASE', + 'DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE', + 'DNS_ERROR_SOA_DELETE_INVALID', + 'DNS_ERROR_STANDBY_KEY_NOT_PRESENT', + 'DNS_ERROR_SUBNET_ALREADY_EXISTS', + 'DNS_ERROR_SUBNET_DOES_NOT_EXIST', + 'DNS_ERROR_TOO_MANY_SKDS', + 'DNS_ERROR_TRY_AGAIN_LATER', + 'DNS_ERROR_UNEXPECTED_CNG_ERROR', + 'DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR', + 'DNS_ERROR_UNKNOWN_RECORD_TYPE', + 'DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION', + 'DNS_ERROR_UNSECURE_PACKET', + 'DNS_ERROR_UNSUPPORTED_ALGORITHM', + 'DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS', + 'DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST', + 'DNS_ERROR_VIRTUALIZATION_TREE_LOCKED', + 'DNS_ERROR_WINS_INIT_FAILED', + 'DNS_ERROR_ZONESCOPE_ALREADY_EXISTS', + 'DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST', + 'DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED', + 'DNS_ERROR_ZONESCOPE_IS_REFERENCED', + 'DNS_ERROR_ZONE_ALREADY_EXISTS', + 'DNS_ERROR_ZONE_BASE', + 'DNS_ERROR_ZONE_CONFIGURATION_ERROR', + 'DNS_ERROR_ZONE_CREATION_FAILED', + 'DNS_ERROR_ZONE_DOES_NOT_EXIST', + 'DNS_ERROR_ZONE_HAS_NO_NS_RECORDS', + 'DNS_ERROR_ZONE_HAS_NO_SOA_RECORD', + 'DNS_ERROR_ZONE_IS_SHUTDOWN', + 'DNS_ERROR_ZONE_LOCKED', + 'DNS_ERROR_ZONE_LOCKED_FOR_SIGNING', + 'DNS_ERROR_ZONE_NOT_SECONDARY', + 'DNS_ERROR_ZONE_REQUIRES_MASTER_IP', + 'DNS_INFO_ADDED_LOCAL_WINS', + 'DNS_INFO_AXFR_COMPLETE', + 'DNS_INFO_NO_RECORDS', + 'DNS_REQUEST_PENDING', + 'DNS_STATUS_CONTINUE_NEEDED', + 'DNS_STATUS_DOTTED_NAME', + 'DNS_STATUS_FQDN', + 'DNS_STATUS_PACKET_UNSECURE', + 'DNS_STATUS_SINGLE_PART_NAME', + 'DNS_WARNING_DOMAIN_UNDELETED', + 'DNS_WARNING_PTR_CREATE_FAILED', + 'DRAGDROP_E_ALREADYREGISTERED', + 'DRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED', + 'DRAGDROP_E_FIRST', + 'DRAGDROP_E_INVALIDHWND', + 'DRAGDROP_E_LAST', + 'DRAGDROP_E_NOTREGISTERED', + 'DRAGDROP_S_CANCEL', + 'DRAGDROP_S_DROP', + 'DRAGDROP_S_FIRST', + 'DRAGDROP_S_LAST', + 'DRAGDROP_S_USEDEFAULTCURSORS', + 'DS_S_SUCCESS', + 'DV_E_CLIPFORMAT', + 'DV_E_DVASPECT', + 'DV_E_DVTARGETDEVICE', + 'DV_E_DVTARGETDEVICE_SIZE', + 'DV_E_FORMATETC', + 'DV_E_LINDEX', + 'DV_E_NOIVIEWOBJECT', + 'DV_E_STATDATA', + 'DV_E_STGMEDIUM', + 'DV_E_TYMED', + 'DWMERR_CATASTROPHIC_FAILURE', + 'DWMERR_STATE_TRANSITION_FAILED', + 'DWMERR_THEME_FAILED', + 'DWM_E_ADAPTER_NOT_FOUND', + 'DWM_E_COMPOSITIONDISABLED', + 'DWM_E_NOT_QUEUING_PRESENTS', + 'DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE', + 'DWM_E_REMOTING_NOT_SUPPORTED', + 'DWM_E_TEXTURE_TOO_LARGE', + 'DWM_S_GDI_REDIRECTION_SURFACE', + 'DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI', + 'DWRITE_E_ALREADYREGISTERED', + 'DWRITE_E_CACHEFORMAT', + 'DWRITE_E_CACHEVERSION', + 'DWRITE_E_DOWNLOADCANCELLED', + 'DWRITE_E_DOWNLOADFAILED', + 'DWRITE_E_FILEACCESS', + 'DWRITE_E_FILEFORMAT', + 'DWRITE_E_FILENOTFOUND', + 'DWRITE_E_FLOWDIRECTIONCONFLICTS', + 'DWRITE_E_FONTCOLLECTIONOBSOLETE', + 'DWRITE_E_NOCOLOR', + 'DWRITE_E_NOFONT', + 'DWRITE_E_REMOTEFONT', + 'DWRITE_E_TEXTRENDERERINCOMPATIBLE', + 'DWRITE_E_TOOMANYDOWNLOADS', + 'DWRITE_E_UNEXPECTED', + 'DWRITE_E_UNSUPPORTEDOPERATION', + 'DXGI_DDI_ERR_NONEXCLUSIVE', + 'DXGI_DDI_ERR_UNSUPPORTED', + 'DXGI_DDI_ERR_WASSTILLDRAWING', + 'DXGI_ERROR_ACCESS_DENIED', + 'DXGI_ERROR_ACCESS_LOST', + 'DXGI_ERROR_ALREADY_EXISTS', + 'DXGI_ERROR_CACHE_CORRUPT', + 'DXGI_ERROR_CACHE_FULL', + 'DXGI_ERROR_CACHE_HASH_COLLISION', + 'DXGI_ERROR_CANNOT_PROTECT_CONTENT', + 'DXGI_ERROR_DEVICE_HUNG', + 'DXGI_ERROR_DEVICE_REMOVED', + 'DXGI_ERROR_DEVICE_RESET', + 'DXGI_ERROR_DRIVER_INTERNAL_ERROR', + 'DXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION', + 'DXGI_ERROR_FRAME_STATISTICS_DISJOINT', + 'DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE', + 'DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY', + 'DXGI_ERROR_INVALID_CALL', + 'DXGI_ERROR_MODE_CHANGE_IN_PROGRESS', + 'DXGI_ERROR_MORE_DATA', + 'DXGI_ERROR_NAME_ALREADY_EXISTS', + 'DXGI_ERROR_NONEXCLUSIVE', + 'DXGI_ERROR_NON_COMPOSITED_UI', + 'DXGI_ERROR_NOT_CURRENT', + 'DXGI_ERROR_NOT_CURRENTLY_AVAILABLE', + 'DXGI_ERROR_NOT_FOUND', + 'DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED', + 'DXGI_ERROR_REMOTE_OUTOFMEMORY', + 'DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE', + 'DXGI_ERROR_SDK_COMPONENT_MISSING', + 'DXGI_ERROR_SESSION_DISCONNECTED', + 'DXGI_ERROR_UNSUPPORTED', + 'DXGI_ERROR_WAIT_TIMEOUT', + 'DXGI_ERROR_WAS_STILL_DRAWING', + 'DXGI_STATUS_CLIPPED', + 'DXGI_STATUS_DDA_WAS_STILL_DRAWING', + 'DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE', + 'DXGI_STATUS_MODE_CHANGED', + 'DXGI_STATUS_MODE_CHANGE_IN_PROGRESS', + 'DXGI_STATUS_NO_DESKTOP_ACCESS', + 'DXGI_STATUS_NO_REDIRECTION', + 'DXGI_STATUS_OCCLUDED', + 'DXGI_STATUS_PRESENT_REQUIRED', + 'DXGI_STATUS_UNOCCLUDED', + 'EAS_E_ADMINS_CANNOT_CHANGE_PASSWORD', + 'EAS_E_ADMINS_HAVE_BLANK_PASSWORD', + 'EAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD', + 'EAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD', + 'EAS_E_CURRENT_USER_HAS_BLANK_PASSWORD', + 'EAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD', + 'EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS', + 'EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER', + 'EAS_E_POLICY_COMPLIANT_WITH_ACTIONS', + 'EAS_E_POLICY_NOT_MANAGED_BY_OS', + 'EAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE', + 'EAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE', + 'EAS_E_USER_CANNOT_CHANGE_PASSWORD', + 'ENUM_E_FIRST', + 'ENUM_E_LAST', + 'ENUM_S_FIRST', + 'ENUM_S_LAST', + 'EPT_NT_CANT_CREATE', + 'EPT_NT_CANT_PERFORM_OP', + 'EPT_NT_INVALID_ENTRY', + 'EPT_NT_NOT_REGISTERED', + 'EPT_S_CANT_CREATE', + 'EPT_S_CANT_PERFORM_OP', + 'EPT_S_INVALID_ENTRY', + 'EPT_S_NOT_REGISTERED', + 'ERROR_ABANDONED_WAIT_0', + 'ERROR_ABANDONED_WAIT_63', + 'ERROR_ABANDON_HIBERFILE', + 'ERROR_ABIOS_ERROR', + 'ERROR_ACCESS_AUDIT_BY_POLICY', + 'ERROR_ACCESS_DENIED', + 'ERROR_ACCESS_DISABLED_BY_POLICY', + 'ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY', + 'ERROR_ACCESS_DISABLED_WEBBLADE', + 'ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER', + 'ERROR_ACCOUNT_DISABLED', + 'ERROR_ACCOUNT_EXPIRED', + 'ERROR_ACCOUNT_LOCKED_OUT', + 'ERROR_ACCOUNT_RESTRICTION', + 'ERROR_ACPI_ERROR', + 'ERROR_ACTIVATION_COUNT_EXCEEDED', + 'ERROR_ACTIVE_CONNECTIONS', + 'ERROR_ADAP_HDW_ERR', + 'ERROR_ADDRESS_ALREADY_ASSOCIATED', + 'ERROR_ADDRESS_NOT_ASSOCIATED', + 'ERROR_ADVANCED_INSTALLER_FAILED', + 'ERROR_ALERTED', + 'ERROR_ALIAS_EXISTS', + 'ERROR_ALLOCATE_BUCKET', + 'ERROR_ALLOTTED_SPACE_EXCEEDED', + 'ERROR_ALL_NODES_NOT_AVAILABLE', + 'ERROR_ALL_SIDS_FILTERED', + 'ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED', + 'ERROR_ALREADY_ASSIGNED', + 'ERROR_ALREADY_EXISTS', + 'ERROR_ALREADY_FIBER', + 'ERROR_ALREADY_HAS_STREAM_ID', + 'ERROR_ALREADY_INITIALIZED', + 'ERROR_ALREADY_REGISTERED', + 'ERROR_ALREADY_RUNNING_LKG', + 'ERROR_ALREADY_THREAD', + 'ERROR_ALREADY_WAITING', + 'ERROR_ALREADY_WIN32', + 'ERROR_AMBIGUOUS_SYSTEM_DEVICE', + 'ERROR_API_UNAVAILABLE', + 'ERROR_APPCONTAINER_REQUIRED', + 'ERROR_APPEXEC_CONDITION_NOT_SATISFIED', + 'ERROR_APPEXEC_HANDLE_INVALIDATED', + 'ERROR_APPEXEC_HOST_ID_MISMATCH', + 'ERROR_APPEXEC_INVALID_HOST_GENERATION', + 'ERROR_APPEXEC_INVALID_HOST_STATE', + 'ERROR_APPEXEC_NO_DONOR', + 'ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION', + 'ERROR_APPEXEC_UNKNOWN_USER', + 'ERROR_APPHELP_BLOCK', + 'ERROR_APPINSTALLER_ACTIVATION_BLOCKED', + 'ERROR_APPX_FILE_NOT_ENCRYPTED', + 'ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN', + 'ERROR_APPX_RAW_DATA_WRITE_FAILED', + 'ERROR_APP_DATA_CORRUPT', + 'ERROR_APP_DATA_EXPIRED', + 'ERROR_APP_DATA_LIMIT_EXCEEDED', + 'ERROR_APP_DATA_NOT_FOUND', + 'ERROR_APP_DATA_REBOOT_REQUIRED', + 'ERROR_APP_HANG', + 'ERROR_APP_INIT_FAILURE', + 'ERROR_APP_WRONG_OS', + 'ERROR_ARBITRATION_UNHANDLED', + 'ERROR_ARENA_TRASHED', + 'ERROR_ARITHMETIC_OVERFLOW', + 'ERROR_ASSERTION_FAILURE', + 'ERROR_ATOMIC_LOCKS_NOT_SUPPORTED', + 'ERROR_ATTRIBUTE_NOT_PRESENT', + 'ERROR_AUDITING_DISABLED', + 'ERROR_AUDIT_FAILED', + 'ERROR_AUTHENTICATION_FIREWALL_FAILED', + 'ERROR_AUTHIP_FAILURE', + 'ERROR_AUTODATASEG_EXCEEDS_64k', + 'ERROR_BACKUP_CONTROLLER', + 'ERROR_BADDB', + 'ERROR_BADKEY', + 'ERROR_BADSTARTPOSITION', + 'ERROR_BAD_ACCESSOR_FLAGS', + 'ERROR_BAD_ARGUMENTS', + 'ERROR_BAD_CLUSTERS', + 'ERROR_BAD_COMMAND', + 'ERROR_BAD_COMPRESSION_BUFFER', + 'ERROR_BAD_CONFIGURATION', + 'ERROR_BAD_CURRENT_DIRECTORY', + 'ERROR_BAD_DESCRIPTOR_FORMAT', + 'ERROR_BAD_DEVICE', + 'ERROR_BAD_DEVICE_PATH', + 'ERROR_BAD_DEV_TYPE', + 'ERROR_BAD_DLL_ENTRYPOINT', + 'ERROR_BAD_DRIVER', + 'ERROR_BAD_DRIVER_LEVEL', + 'ERROR_BAD_ENVIRONMENT', + 'ERROR_BAD_EXE_FORMAT', + 'ERROR_BAD_FILE_TYPE', + 'ERROR_BAD_FORMAT', + 'ERROR_BAD_FUNCTION_TABLE', + 'ERROR_BAD_IMPERSONATION_LEVEL', + 'ERROR_BAD_INHERITANCE_ACL', + 'ERROR_BAD_LENGTH', + 'ERROR_BAD_LOGON_SESSION_STATE', + 'ERROR_BAD_MCFG_TABLE', + 'ERROR_BAD_NETPATH', + 'ERROR_BAD_NET_NAME', + 'ERROR_BAD_NET_RESP', + 'ERROR_BAD_PATHNAME', + 'ERROR_BAD_PIPE', + 'ERROR_BAD_PROFILE', + 'ERROR_BAD_PROVIDER', + 'ERROR_BAD_QUERY_SYNTAX', + 'ERROR_BAD_RECOVERY_POLICY', + 'ERROR_BAD_REM_ADAP', + 'ERROR_BAD_SERVICE_ENTRYPOINT', + 'ERROR_BAD_STACK', + 'ERROR_BAD_THREADID_ADDR', + 'ERROR_BAD_TOKEN_TYPE', + 'ERROR_BAD_UNIT', + 'ERROR_BAD_USERNAME', + 'ERROR_BAD_USER_PROFILE', + 'ERROR_BAD_VALIDATION_CLASS', + 'ERROR_BCD_NOT_ALL_ENTRIES_IMPORTED', + 'ERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED', + 'ERROR_BCD_TOO_MANY_ELEMENTS', + 'ERROR_BEGINNING_OF_MEDIA', + 'ERROR_BEYOND_VDL', + 'ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT', + 'ERROR_BIZRULES_NOT_ENABLED', + 'ERROR_BLOCKED_BY_PARENTAL_CONTROLS', + 'ERROR_BLOCK_TOO_MANY_REFERENCES', + 'ERROR_BOOT_ALREADY_ACCEPTED', + 'ERROR_BROKEN_PIPE', + 'ERROR_BUFFER_ALL_ZEROS', + 'ERROR_BUFFER_OVERFLOW', + 'ERROR_BUSY', + 'ERROR_BUSY_DRIVE', + 'ERROR_BUS_RESET', + 'ERROR_CACHE_PAGE_LOCKED', + 'ERROR_CALLBACK_INVOKE_INLINE', + 'ERROR_CALLBACK_POP_STACK', + 'ERROR_CALLBACK_SUPPLIED_INVALID_DATA', + 'ERROR_CALL_NOT_IMPLEMENTED', + 'ERROR_CANCELLED', + 'ERROR_CANCEL_VIOLATION', + 'ERROR_CANNOT_ABORT_TRANSACTIONS', + 'ERROR_CANNOT_ACCEPT_TRANSACTED_WORK', + 'ERROR_CANNOT_BREAK_OPLOCK', + 'ERROR_CANNOT_COPY', + 'ERROR_CANNOT_DETECT_DRIVER_FAILURE', + 'ERROR_CANNOT_DETECT_PROCESS_ABORT', + 'ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION', + 'ERROR_CANNOT_FIND_WND_CLASS', + 'ERROR_CANNOT_GRANT_REQUESTED_OPLOCK', + 'ERROR_CANNOT_IMPERSONATE', + 'ERROR_CANNOT_LOAD_REGISTRY_FILE', + 'ERROR_CANNOT_MAKE', + 'ERROR_CANNOT_OPEN_PROFILE', + 'ERROR_CANNOT_SWITCH_RUNLEVEL', + 'ERROR_CANTFETCHBACKWARDS', + 'ERROR_CANTOPEN', + 'ERROR_CANTREAD', + 'ERROR_CANTSCROLLBACKWARDS', + 'ERROR_CANTWRITE', + 'ERROR_CANT_ACCESS_DOMAIN_INFO', + 'ERROR_CANT_ACCESS_FILE', + 'ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY', + 'ERROR_CANT_CLEAR_ENCRYPTION_FLAG', + 'ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS', + 'ERROR_CANT_CROSS_RM_BOUNDARY', + 'ERROR_CANT_DELETE_LAST_ITEM', + 'ERROR_CANT_DISABLE_MANDATORY', + 'ERROR_CANT_ENABLE_DENY_ONLY', + 'ERROR_CANT_EVICT_ACTIVE_NODE', + 'ERROR_CANT_OPEN_ANONYMOUS', + 'ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT', + 'ERROR_CANT_RECOVER_WITH_HANDLE_OPEN', + 'ERROR_CANT_RESOLVE_FILENAME', + 'ERROR_CANT_TERMINATE_SELF', + 'ERROR_CANT_WAIT', + 'ERROR_CAN_NOT_COMPLETE', + 'ERROR_CAN_NOT_DEL_LOCAL_WINS', + 'ERROR_CAPAUTHZ_CHANGE_TYPE', + 'ERROR_CAPAUTHZ_DB_CORRUPTED', + 'ERROR_CAPAUTHZ_NOT_AUTHORIZED', + 'ERROR_CAPAUTHZ_NOT_DEVUNLOCKED', + 'ERROR_CAPAUTHZ_NOT_PROVISIONED', + 'ERROR_CAPAUTHZ_NO_POLICY', + 'ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED', + 'ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG', + 'ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY', + 'ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH', + 'ERROR_CAPAUTHZ_SCCD_PARSE_ERROR', + 'ERROR_CARDBUS_NOT_SUPPORTED', + 'ERROR_CASE_DIFFERING_NAMES_IN_DIR', + 'ERROR_CHECKING_FILE_SYSTEM', + 'ERROR_CHECKOUT_REQUIRED', + 'ERROR_CHILD_MUST_BE_VOLATILE', + 'ERROR_CHILD_NOT_COMPLETE', + 'ERROR_CHILD_PROCESS_BLOCKED', + 'ERROR_CHILD_WINDOW_MENU', + 'ERROR_CIRCULAR_DEPENDENCY', + 'ERROR_CLASS_ALREADY_EXISTS', + 'ERROR_CLASS_DOES_NOT_EXIST', + 'ERROR_CLASS_HAS_WINDOWS', + 'ERROR_CLEANER_CARTRIDGE_INSTALLED', + 'ERROR_CLEANER_CARTRIDGE_SPENT', + 'ERROR_CLEANER_SLOT_NOT_SET', + 'ERROR_CLEANER_SLOT_SET', + 'ERROR_CLIENT_SERVER_PARAMETERS_INVALID', + 'ERROR_CLIPBOARD_NOT_OPEN', + 'ERROR_CLIPPING_NOT_SUPPORTED', + 'ERROR_CLIP_DEVICE_LICENSE_MISSING', + 'ERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID', + 'ERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH', + 'ERROR_CLIP_LICENSE_EXPIRED', + 'ERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE', + 'ERROR_CLIP_LICENSE_INVALID_SIGNATURE', + 'ERROR_CLIP_LICENSE_NOT_FOUND', + 'ERROR_CLIP_LICENSE_NOT_SIGNED', + 'ERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE', + 'ERROR_CLOUD_FILE_ACCESS_DENIED', + 'ERROR_CLOUD_FILE_ALREADY_CONNECTED', + 'ERROR_CLOUD_FILE_AUTHENTICATION_FAILED', + 'ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY', + 'ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS', + 'ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES', + 'ERROR_CLOUD_FILE_INVALID_REQUEST', + 'ERROR_CLOUD_FILE_IN_USE', + 'ERROR_CLOUD_FILE_METADATA_CORRUPT', + 'ERROR_CLOUD_FILE_METADATA_TOO_LARGE', + 'ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE', + 'ERROR_CLOUD_FILE_NOT_IN_SYNC', + 'ERROR_CLOUD_FILE_NOT_SUPPORTED', + 'ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT', + 'ERROR_CLOUD_FILE_PINNED', + 'ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH', + 'ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE', + 'ERROR_CLOUD_FILE_PROPERTY_CORRUPT', + 'ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT', + 'ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED', + 'ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING', + 'ERROR_CLOUD_FILE_PROVIDER_TERMINATED', + 'ERROR_CLOUD_FILE_READ_ONLY_VOLUME', + 'ERROR_CLOUD_FILE_REQUEST_ABORTED', + 'ERROR_CLOUD_FILE_REQUEST_CANCELED', + 'ERROR_CLOUD_FILE_REQUEST_TIMEOUT', + 'ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT', + 'ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS', + 'ERROR_CLOUD_FILE_UNSUCCESSFUL', + 'ERROR_CLOUD_FILE_VALIDATION_FAILED', + 'ERROR_CLUSCFG_ALREADY_COMMITTED', + 'ERROR_CLUSCFG_ROLLBACK_FAILED', + 'ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT', + 'ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND', + 'ERROR_CLUSTERLOG_CORRUPT', + 'ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE', + 'ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE', + 'ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE', + 'ERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE', + 'ERROR_CLUSTER_AFFINITY_CONFLICT', + 'ERROR_CLUSTER_BACKUP_IN_PROGRESS', + 'ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES', + 'ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME', + 'ERROR_CLUSTER_CANT_DESERIALIZE_DATA', + 'ERROR_CLUSTER_CSV_INVALID_HANDLE', + 'ERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT', + 'ERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR', + 'ERROR_CLUSTER_DATABASE_SEQMISMATCH', + 'ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS', + 'ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS', + 'ERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED', + 'ERROR_CLUSTER_DISK_NOT_CONNECTED', + 'ERROR_CLUSTER_EVICT_INVALID_REQUEST', + 'ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP', + 'ERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION', + 'ERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY', + 'ERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND', + 'ERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS', + 'ERROR_CLUSTER_GROUP_BUSY', + 'ERROR_CLUSTER_GROUP_MOVING', + 'ERROR_CLUSTER_GROUP_QUEUED', + 'ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE', + 'ERROR_CLUSTER_GUM_NOT_LOCKER', + 'ERROR_CLUSTER_INCOMPATIBLE_VERSIONS', + 'ERROR_CLUSTER_INSTANCE_ID_MISMATCH', + 'ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION', + 'ERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME', + 'ERROR_CLUSTER_INVALID_IPV6_NETWORK', + 'ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK', + 'ERROR_CLUSTER_INVALID_NETWORK', + 'ERROR_CLUSTER_INVALID_NETWORK_PROVIDER', + 'ERROR_CLUSTER_INVALID_NODE', + 'ERROR_CLUSTER_INVALID_NODE_WEIGHT', + 'ERROR_CLUSTER_INVALID_REQUEST', + 'ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR', + 'ERROR_CLUSTER_INVALID_STRING_FORMAT', + 'ERROR_CLUSTER_INVALID_STRING_TERMINATION', + 'ERROR_CLUSTER_IPADDR_IN_USE', + 'ERROR_CLUSTER_JOIN_ABORTED', + 'ERROR_CLUSTER_JOIN_IN_PROGRESS', + 'ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS', + 'ERROR_CLUSTER_LAST_INTERNAL_NETWORK', + 'ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND', + 'ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED', + 'ERROR_CLUSTER_MAX_NODES_IN_CLUSTER', + 'ERROR_CLUSTER_MEMBERSHIP_HALT', + 'ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE', + 'ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME', + 'ERROR_CLUSTER_NETINTERFACE_EXISTS', + 'ERROR_CLUSTER_NETINTERFACE_NOT_FOUND', + 'ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE', + 'ERROR_CLUSTER_NETWORK_ALREADY_ONLINE', + 'ERROR_CLUSTER_NETWORK_EXISTS', + 'ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS', + 'ERROR_CLUSTER_NETWORK_NOT_FOUND', + 'ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP', + 'ERROR_CLUSTER_NETWORK_NOT_INTERNAL', + 'ERROR_CLUSTER_NODE_ALREADY_DOWN', + 'ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT', + 'ERROR_CLUSTER_NODE_ALREADY_MEMBER', + 'ERROR_CLUSTER_NODE_ALREADY_UP', + 'ERROR_CLUSTER_NODE_DOWN', + 'ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS', + 'ERROR_CLUSTER_NODE_EXISTS', + 'ERROR_CLUSTER_NODE_IN_GRACE_PERIOD', + 'ERROR_CLUSTER_NODE_ISOLATED', + 'ERROR_CLUSTER_NODE_NOT_FOUND', + 'ERROR_CLUSTER_NODE_NOT_MEMBER', + 'ERROR_CLUSTER_NODE_NOT_PAUSED', + 'ERROR_CLUSTER_NODE_NOT_READY', + 'ERROR_CLUSTER_NODE_PAUSED', + 'ERROR_CLUSTER_NODE_QUARANTINED', + 'ERROR_CLUSTER_NODE_SHUTTING_DOWN', + 'ERROR_CLUSTER_NODE_UNREACHABLE', + 'ERROR_CLUSTER_NODE_UP', + 'ERROR_CLUSTER_NOT_INSTALLED', + 'ERROR_CLUSTER_NOT_SHARED_VOLUME', + 'ERROR_CLUSTER_NO_NET_ADAPTERS', + 'ERROR_CLUSTER_NO_QUORUM', + 'ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED', + 'ERROR_CLUSTER_NO_SECURITY_CONTEXT', + 'ERROR_CLUSTER_NULL_DATA', + 'ERROR_CLUSTER_OBJECT_ALREADY_USED', + 'ERROR_CLUSTER_OLD_VERSION', + 'ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST', + 'ERROR_CLUSTER_PARAMETER_MISMATCH', + 'ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS', + 'ERROR_CLUSTER_PARTIAL_READ', + 'ERROR_CLUSTER_PARTIAL_SEND', + 'ERROR_CLUSTER_PARTIAL_WRITE', + 'ERROR_CLUSTER_POISONED', + 'ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH', + 'ERROR_CLUSTER_QUORUMLOG_NOT_FOUND', + 'ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION', + 'ERROR_CLUSTER_RESNAME_NOT_FOUND', + 'ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE', + 'ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR', + 'ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES', + 'ERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED', + 'ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE', + 'ERROR_CLUSTER_RESOURCE_IS_REPLICATED', + 'ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE', + 'ERROR_CLUSTER_RESOURCE_LOCKED_STATUS', + 'ERROR_CLUSTER_RESOURCE_NOT_MONITORED', + 'ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED', + 'ERROR_CLUSTER_RESOURCE_TYPE_BUSY', + 'ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND', + 'ERROR_CLUSTER_RESOURCE_VETOED_CALL', + 'ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES', + 'ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION', + 'ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE', + 'ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED', + 'ERROR_CLUSTER_RHS_FAILED_INITIALIZATION', + 'ERROR_CLUSTER_SHARED_VOLUMES_IN_USE', + 'ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED', + 'ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED', + 'ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED', + 'ERROR_CLUSTER_SHUTTING_DOWN', + 'ERROR_CLUSTER_SINGLETON_RESOURCE', + 'ERROR_CLUSTER_SPACE_DEGRADED', + 'ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED', + 'ERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED', + 'ERROR_CLUSTER_TOO_MANY_NODES', + 'ERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED', + 'ERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS', + 'ERROR_CLUSTER_UPGRADE_INCOMPLETE', + 'ERROR_CLUSTER_UPGRADE_IN_PROGRESS', + 'ERROR_CLUSTER_UPGRADE_RESTART_REQUIRED', + 'ERROR_CLUSTER_USE_SHARED_VOLUMES_API', + 'ERROR_CLUSTER_WATCHDOG_TERMINATING', + 'ERROR_CLUSTER_WRONG_OS_VERSION', + 'ERROR_COLORSPACE_MISMATCH', + 'ERROR_COMMITMENT_LIMIT', + 'ERROR_COMMITMENT_MINIMUM', + 'ERROR_COMPRESSED_FILE_NOT_SUPPORTED', + 'ERROR_COMPRESSION_DISABLED', + 'ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION', + 'ERROR_COMPRESSION_NOT_BENEFICIAL', + 'ERROR_COM_TASK_STOP_PENDING', + 'ERROR_CONNECTED_OTHER_PASSWORD', + 'ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT', + 'ERROR_CONNECTION_ABORTED', + 'ERROR_CONNECTION_ACTIVE', + 'ERROR_CONNECTION_COUNT_LIMIT', + 'ERROR_CONNECTION_INVALID', + 'ERROR_CONNECTION_REFUSED', + 'ERROR_CONNECTION_UNAVAIL', + 'ERROR_CONTAINER_ASSIGNED', + 'ERROR_CONTENT_BLOCKED', + 'ERROR_CONTEXT_EXPIRED', + 'ERROR_CONTINUE', + 'ERROR_CONTROLLING_IEPORT', + 'ERROR_CONTROL_C_EXIT', + 'ERROR_CONTROL_ID_NOT_FOUND', + 'ERROR_CONVERT_TO_LARGE', + 'ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND', + 'ERROR_CORE_RESOURCE', + 'ERROR_CORRUPT_LOG_CLEARED', + 'ERROR_CORRUPT_LOG_CORRUPTED', + 'ERROR_CORRUPT_LOG_DELETED_FULL', + 'ERROR_CORRUPT_LOG_OVERFULL', + 'ERROR_CORRUPT_LOG_UNAVAILABLE', + 'ERROR_CORRUPT_SYSTEM_FILE', + 'ERROR_COULD_NOT_INTERPRET', + 'ERROR_COULD_NOT_RESIZE_LOG', + 'ERROR_COUNTER_TIMEOUT', + 'ERROR_CPU_SET_INVALID', + 'ERROR_CRASH_DUMP', + 'ERROR_CRC', + 'ERROR_CREATE_FAILED', + 'ERROR_CRED_REQUIRES_CONFIRMATION', + 'ERROR_CRM_PROTOCOL_ALREADY_EXISTS', + 'ERROR_CRM_PROTOCOL_NOT_FOUND', + 'ERROR_CROSS_PARTITION_VIOLATION', + 'ERROR_CSCSHARE_OFFLINE', + 'ERROR_CSV_VOLUME_NOT_LOCAL', + 'ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE', + 'ERROR_CS_ENCRYPTION_FILE_NOT_CSE', + 'ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE', + 'ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE', + 'ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER', + 'ERROR_CTLOG_INCONSISTENT_TRACKING_FILE', + 'ERROR_CTLOG_INVALID_TRACKING_STATE', + 'ERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE', + 'ERROR_CTLOG_TRACKING_NOT_INITIALIZED', + 'ERROR_CTLOG_VHD_CHANGED_OFFLINE', + 'ERROR_CTX_ACCOUNT_RESTRICTION', + 'ERROR_CTX_BAD_VIDEO_MODE', + 'ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY', + 'ERROR_CTX_CDM_CONNECT', + 'ERROR_CTX_CDM_DISCONNECT', + 'ERROR_CTX_CLIENT_LICENSE_IN_USE', + 'ERROR_CTX_CLIENT_LICENSE_NOT_SET', + 'ERROR_CTX_CLIENT_QUERY_TIMEOUT', + 'ERROR_CTX_CLOSE_PENDING', + 'ERROR_CTX_CONSOLE_CONNECT', + 'ERROR_CTX_CONSOLE_DISCONNECT', + 'ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED', + 'ERROR_CTX_GRAPHICS_INVALID', + 'ERROR_CTX_INVALID_MODEMNAME', + 'ERROR_CTX_INVALID_PD', + 'ERROR_CTX_INVALID_WD', + 'ERROR_CTX_LICENSE_CLIENT_INVALID', + 'ERROR_CTX_LICENSE_EXPIRED', + 'ERROR_CTX_LICENSE_NOT_AVAILABLE', + 'ERROR_CTX_LOGON_DISABLED', + 'ERROR_CTX_MODEM_INF_NOT_FOUND', + 'ERROR_CTX_MODEM_RESPONSE_BUSY', + 'ERROR_CTX_MODEM_RESPONSE_ERROR', + 'ERROR_CTX_MODEM_RESPONSE_NO_CARRIER', + 'ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE', + 'ERROR_CTX_MODEM_RESPONSE_TIMEOUT', + 'ERROR_CTX_MODEM_RESPONSE_VOICE', + 'ERROR_CTX_NOT_CONSOLE', + 'ERROR_CTX_NO_FORCE_LOGOFF', + 'ERROR_CTX_NO_OUTBUF', + 'ERROR_CTX_PD_NOT_FOUND', + 'ERROR_CTX_SECURITY_LAYER_ERROR', + 'ERROR_CTX_SERVICE_NAME_COLLISION', + 'ERROR_CTX_SESSION_IN_USE', + 'ERROR_CTX_SHADOW_DENIED', + 'ERROR_CTX_SHADOW_DISABLED', + 'ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE', + 'ERROR_CTX_SHADOW_INVALID', + 'ERROR_CTX_SHADOW_NOT_RUNNING', + 'ERROR_CTX_TD_ERROR', + 'ERROR_CTX_WD_NOT_FOUND', + 'ERROR_CTX_WINSTATIONS_DISABLED', + 'ERROR_CTX_WINSTATION_ACCESS_DENIED', + 'ERROR_CTX_WINSTATION_ALREADY_EXISTS', + 'ERROR_CTX_WINSTATION_BUSY', + 'ERROR_CTX_WINSTATION_NAME_INVALID', + 'ERROR_CTX_WINSTATION_NOT_FOUND', + 'ERROR_CURRENT_DIRECTORY', + 'ERROR_CURRENT_DOMAIN_NOT_ALLOWED', + 'ERROR_CURRENT_TRANSACTION_NOT_VALID', + 'ERROR_DATABASE_BACKUP_CORRUPT', + 'ERROR_DATABASE_DOES_NOT_EXIST', + 'ERROR_DATABASE_FAILURE', + 'ERROR_DATABASE_FULL', + 'ERROR_DATATYPE_MISMATCH', + 'ERROR_DATA_CHECKSUM_ERROR', + 'ERROR_DATA_LOST_REPAIR', + 'ERROR_DATA_NOT_ACCEPTED', + 'ERROR_DAX_MAPPING_EXISTS', + 'ERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN', + 'ERROR_DBG_COMMAND_EXCEPTION', + 'ERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN', + 'ERROR_DBG_CONTINUE', + 'ERROR_DBG_CONTROL_BREAK', + 'ERROR_DBG_CONTROL_C', + 'ERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN', + 'ERROR_DBG_EXCEPTION_HANDLED', + 'ERROR_DBG_EXCEPTION_NOT_HANDLED', + 'ERROR_DBG_PRINTEXCEPTION_C', + 'ERROR_DBG_REPLY_LATER', + 'ERROR_DBG_RIPEXCEPTION', + 'ERROR_DBG_START_SERVER_FAILURE_LOCKDOWN', + 'ERROR_DBG_TERMINATE_PROCESS', + 'ERROR_DBG_TERMINATE_THREAD', + 'ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE', + 'ERROR_DC_NOT_FOUND', + 'ERROR_DDE_FAIL', + 'ERROR_DEBUGGER_INACTIVE', + 'ERROR_DEBUG_ATTACH_FAILED', + 'ERROR_DECRYPTION_FAILED', + 'ERROR_DELAY_LOAD_FAILED', + 'ERROR_DELETE_PENDING', + 'ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED', + 'ERROR_DELETING_ICM_XFORM', + 'ERROR_DEPENDENCY_ALREADY_EXISTS', + 'ERROR_DEPENDENCY_NOT_ALLOWED', + 'ERROR_DEPENDENCY_NOT_FOUND', + 'ERROR_DEPENDENCY_TREE_TOO_COMPLEX', + 'ERROR_DEPENDENT_RESOURCE_EXISTS', + 'ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT', + 'ERROR_DEPENDENT_SERVICES_RUNNING', + 'ERROR_DEPLOYMENT_BLOCKED_BY_POLICY', + 'ERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY', + 'ERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF', + 'ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE', + 'ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE', + 'ERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY', + 'ERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED', + 'ERROR_DESTINATION_ELEMENT_FULL', + 'ERROR_DESTROY_OBJECT_OF_OTHER_THREAD', + 'ERROR_DEVICE_ALREADY_ATTACHED', + 'ERROR_DEVICE_ALREADY_REMEMBERED', + 'ERROR_DEVICE_DOOR_OPEN', + 'ERROR_DEVICE_ENUMERATION_ERROR', + 'ERROR_DEVICE_FEATURE_NOT_SUPPORTED', + 'ERROR_DEVICE_HARDWARE_ERROR', + 'ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL', + 'ERROR_DEVICE_IN_MAINTENANCE', + 'ERROR_DEVICE_IN_USE', + 'ERROR_DEVICE_NOT_AVAILABLE', + 'ERROR_DEVICE_NOT_CONNECTED', + 'ERROR_DEVICE_NOT_PARTITIONED', + 'ERROR_DEVICE_NO_RESOURCES', + 'ERROR_DEVICE_REINITIALIZATION_NEEDED', + 'ERROR_DEVICE_REMOVED', + 'ERROR_DEVICE_REQUIRES_CLEANING', + 'ERROR_DEVICE_SUPPORT_IN_PROGRESS', + 'ERROR_DEVICE_UNREACHABLE', + 'ERROR_DEV_NOT_EXIST', + 'ERROR_DEV_SIDELOAD_LIMIT_EXCEEDED', + 'ERROR_DHCP_ADDRESS_CONFLICT', + 'ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST', + 'ERROR_DIFFERENT_SERVICE_ACCOUNT', + 'ERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED', + 'ERROR_DIRECTORY', + 'ERROR_DIRECTORY_NOT_RM', + 'ERROR_DIRECTORY_NOT_SUPPORTED', + 'ERROR_DIRECT_ACCESS_HANDLE', + 'ERROR_DIR_EFS_DISALLOWED', + 'ERROR_DIR_NOT_EMPTY', + 'ERROR_DIR_NOT_ROOT', + 'ERROR_DISCARDED', + 'ERROR_DISK_CHANGE', + 'ERROR_DISK_CORRUPT', + 'ERROR_DISK_FULL', + 'ERROR_DISK_NOT_CSV_CAPABLE', + 'ERROR_DISK_OPERATION_FAILED', + 'ERROR_DISK_QUOTA_EXCEEDED', + 'ERROR_DISK_RECALIBRATE_FAILED', + 'ERROR_DISK_REPAIR_DISABLED', + 'ERROR_DISK_REPAIR_REDIRECTED', + 'ERROR_DISK_REPAIR_UNSUCCESSFUL', + 'ERROR_DISK_RESET_FAILED', + 'ERROR_DISK_RESOURCES_EXHAUSTED', + 'ERROR_DISK_TOO_FRAGMENTED', + 'ERROR_DLL_INIT_FAILED', + 'ERROR_DLL_INIT_FAILED_LOGOFF', + 'ERROR_DLL_MIGHT_BE_INCOMPATIBLE', + 'ERROR_DLL_MIGHT_BE_INSECURE', + 'ERROR_DLL_NOT_FOUND', + 'ERROR_DOMAIN_CONTROLLER_EXISTS', + 'ERROR_DOMAIN_CONTROLLER_NOT_FOUND', + 'ERROR_DOMAIN_CTRLR_CONFIG_ERROR', + 'ERROR_DOMAIN_EXISTS', + 'ERROR_DOMAIN_LIMIT_EXCEEDED', + 'ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION', + 'ERROR_DOMAIN_TRUST_INCONSISTENT', + 'ERROR_DOWNGRADE_DETECTED', + 'ERROR_DPL_NOT_SUPPORTED_FOR_USER', + 'ERROR_DRIVERS_LEAKING_LOCKED_PAGES', + 'ERROR_DRIVER_BLOCKED', + 'ERROR_DRIVER_CANCEL_TIMEOUT', + 'ERROR_DRIVER_DATABASE_ERROR', + 'ERROR_DRIVER_FAILED_PRIOR_UNLOAD', + 'ERROR_DRIVER_FAILED_SLEEP', + 'ERROR_DRIVER_PROCESS_TERMINATED', + 'ERROR_DRIVE_LOCKED', + 'ERROR_DRIVE_MEDIA_MISMATCH', + 'ERROR_DS_ADD_REPLICA_INHIBITED', + 'ERROR_DS_ADMIN_LIMIT_EXCEEDED', + 'ERROR_DS_AFFECTS_MULTIPLE_DSAS', + 'ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER', + 'ERROR_DS_ALIASED_OBJ_MISSING', + 'ERROR_DS_ALIAS_DEREF_PROBLEM', + 'ERROR_DS_ALIAS_POINTS_TO_ALIAS', + 'ERROR_DS_ALIAS_PROBLEM', + 'ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS', + 'ERROR_DS_ATTRIBUTE_OWNED_BY_SAM', + 'ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED', + 'ERROR_DS_ATT_ALREADY_EXISTS', + 'ERROR_DS_ATT_IS_NOT_ON_OBJ', + 'ERROR_DS_ATT_NOT_DEF_FOR_CLASS', + 'ERROR_DS_ATT_NOT_DEF_IN_SCHEMA', + 'ERROR_DS_ATT_SCHEMA_REQ_ID', + 'ERROR_DS_ATT_SCHEMA_REQ_SYNTAX', + 'ERROR_DS_ATT_VAL_ALREADY_EXISTS', + 'ERROR_DS_AUDIT_FAILURE', + 'ERROR_DS_AUTHORIZATION_FAILED', + 'ERROR_DS_AUTH_METHOD_NOT_SUPPORTED', + 'ERROR_DS_AUTH_UNKNOWN', + 'ERROR_DS_AUX_CLS_TEST_FAIL', + 'ERROR_DS_BACKLINK_WITHOUT_LINK', + 'ERROR_DS_BAD_ATT_SCHEMA_SYNTAX', + 'ERROR_DS_BAD_HIERARCHY_FILE', + 'ERROR_DS_BAD_INSTANCE_TYPE', + 'ERROR_DS_BAD_NAME_SYNTAX', + 'ERROR_DS_BAD_RDN_ATT_ID_SYNTAX', + 'ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED', + 'ERROR_DS_BUSY', + 'ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD', + 'ERROR_DS_CANT_ADD_ATT_VALUES', + 'ERROR_DS_CANT_ADD_SYSTEM_ONLY', + 'ERROR_DS_CANT_ADD_TO_GC', + 'ERROR_DS_CANT_CACHE_ATT', + 'ERROR_DS_CANT_CACHE_CLASS', + 'ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC', + 'ERROR_DS_CANT_CREATE_UNDER_SCHEMA', + 'ERROR_DS_CANT_DELETE', + 'ERROR_DS_CANT_DELETE_DSA_OBJ', + 'ERROR_DS_CANT_DEL_MASTER_CROSSREF', + 'ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC', + 'ERROR_DS_CANT_DEREF_ALIAS', + 'ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN', + 'ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF', + 'ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN', + 'ERROR_DS_CANT_FIND_DSA_OBJ', + 'ERROR_DS_CANT_FIND_EXPECTED_NC', + 'ERROR_DS_CANT_FIND_NC_IN_CACHE', + 'ERROR_DS_CANT_MIX_MASTER_AND_REPS', + 'ERROR_DS_CANT_MOD_OBJ_CLASS', + 'ERROR_DS_CANT_MOD_PRIMARYGROUPID', + 'ERROR_DS_CANT_MOD_SYSTEM_ONLY', + 'ERROR_DS_CANT_MOVE_ACCOUNT_GROUP', + 'ERROR_DS_CANT_MOVE_APP_BASIC_GROUP', + 'ERROR_DS_CANT_MOVE_APP_QUERY_GROUP', + 'ERROR_DS_CANT_MOVE_DELETED_OBJECT', + 'ERROR_DS_CANT_MOVE_RESOURCE_GROUP', + 'ERROR_DS_CANT_ON_NON_LEAF', + 'ERROR_DS_CANT_ON_RDN', + 'ERROR_DS_CANT_REMOVE_ATT_CACHE', + 'ERROR_DS_CANT_REMOVE_CLASS_CACHE', + 'ERROR_DS_CANT_REM_MISSING_ATT', + 'ERROR_DS_CANT_REM_MISSING_ATT_VAL', + 'ERROR_DS_CANT_REPLACE_HIDDEN_REC', + 'ERROR_DS_CANT_RETRIEVE_ATTS', + 'ERROR_DS_CANT_RETRIEVE_CHILD', + 'ERROR_DS_CANT_RETRIEVE_DN', + 'ERROR_DS_CANT_RETRIEVE_INSTANCE', + 'ERROR_DS_CANT_RETRIEVE_SD', + 'ERROR_DS_CANT_START', + 'ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ', + 'ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS', + 'ERROR_DS_CHILDREN_EXIST', + 'ERROR_DS_CLASS_MUST_BE_CONCRETE', + 'ERROR_DS_CLASS_NOT_DSA', + 'ERROR_DS_CLIENT_LOOP', + 'ERROR_DS_CODE_INCONSISTENCY', + 'ERROR_DS_COMPARE_FALSE', + 'ERROR_DS_COMPARE_TRUE', + 'ERROR_DS_CONFIDENTIALITY_REQUIRED', + 'ERROR_DS_CONFIG_PARAM_MISSING', + 'ERROR_DS_CONSTRAINT_VIOLATION', + 'ERROR_DS_CONSTRUCTED_ATT_MOD', + 'ERROR_DS_CONTROL_NOT_FOUND', + 'ERROR_DS_COULDNT_CONTACT_FSMO', + 'ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE', + 'ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE', + 'ERROR_DS_COULDNT_UPDATE_SPNS', + 'ERROR_DS_COUNTING_AB_INDICES_FAILED', + 'ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD', + 'ERROR_DS_CROSS_DOM_MOVE_ERROR', + 'ERROR_DS_CROSS_NC_DN_RENAME', + 'ERROR_DS_CROSS_REF_BUSY', + 'ERROR_DS_CROSS_REF_EXISTS', + 'ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE', + 'ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2', + 'ERROR_DS_DATABASE_ERROR', + 'ERROR_DS_DECODING_ERROR', + 'ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED', + 'ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST', + 'ERROR_DS_DIFFERENT_REPL_EPOCHS', + 'ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER', + 'ERROR_DS_DISALLOWED_NC_REDIRECT', + 'ERROR_DS_DNS_LOOKUP_FAILURE', + 'ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST', + 'ERROR_DS_DOMAIN_RENAME_IN_PROGRESS', + 'ERROR_DS_DOMAIN_VERSION_TOO_HIGH', + 'ERROR_DS_DOMAIN_VERSION_TOO_LOW', + 'ERROR_DS_DRA_ABANDON_SYNC', + 'ERROR_DS_DRA_ACCESS_DENIED', + 'ERROR_DS_DRA_BAD_DN', + 'ERROR_DS_DRA_BAD_INSTANCE_TYPE', + 'ERROR_DS_DRA_BAD_NC', + 'ERROR_DS_DRA_BUSY', + 'ERROR_DS_DRA_CONNECTION_FAILED', + 'ERROR_DS_DRA_CORRUPT_UTD_VECTOR', + 'ERROR_DS_DRA_DB_ERROR', + 'ERROR_DS_DRA_DN_EXISTS', + 'ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT', + 'ERROR_DS_DRA_EXTN_CONNECTION_FAILED', + 'ERROR_DS_DRA_GENERIC', + 'ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET', + 'ERROR_DS_DRA_INCONSISTENT_DIT', + 'ERROR_DS_DRA_INTERNAL_ERROR', + 'ERROR_DS_DRA_INVALID_PARAMETER', + 'ERROR_DS_DRA_MAIL_PROBLEM', + 'ERROR_DS_DRA_MISSING_KRBTGT_SECRET', + 'ERROR_DS_DRA_MISSING_PARENT', + 'ERROR_DS_DRA_NAME_COLLISION', + 'ERROR_DS_DRA_NOT_SUPPORTED', + 'ERROR_DS_DRA_NO_REPLICA', + 'ERROR_DS_DRA_OBJ_IS_REP_SOURCE', + 'ERROR_DS_DRA_OBJ_NC_MISMATCH', + 'ERROR_DS_DRA_OUT_OF_MEM', + 'ERROR_DS_DRA_OUT_SCHEDULE_WINDOW', + 'ERROR_DS_DRA_PREEMPTED', + 'ERROR_DS_DRA_RECYCLED_TARGET', + 'ERROR_DS_DRA_REF_ALREADY_EXISTS', + 'ERROR_DS_DRA_REF_NOT_FOUND', + 'ERROR_DS_DRA_REPL_PENDING', + 'ERROR_DS_DRA_RPC_CANCELLED', + 'ERROR_DS_DRA_SCHEMA_CONFLICT', + 'ERROR_DS_DRA_SCHEMA_INFO_SHIP', + 'ERROR_DS_DRA_SCHEMA_MISMATCH', + 'ERROR_DS_DRA_SECRETS_DENIED', + 'ERROR_DS_DRA_SHUTDOWN', + 'ERROR_DS_DRA_SINK_DISABLED', + 'ERROR_DS_DRA_SOURCE_DISABLED', + 'ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA', + 'ERROR_DS_DRA_SOURCE_REINSTALLED', + 'ERROR_DS_DRS_EXTENSIONS_CHANGED', + 'ERROR_DS_DSA_MUST_BE_INT_MASTER', + 'ERROR_DS_DST_DOMAIN_NOT_NATIVE', + 'ERROR_DS_DST_NC_MISMATCH', + 'ERROR_DS_DS_REQUIRED', + 'ERROR_DS_DUPLICATE_ID_FOUND', + 'ERROR_DS_DUP_LDAP_DISPLAY_NAME', + 'ERROR_DS_DUP_LINK_ID', + 'ERROR_DS_DUP_MAPI_ID', + 'ERROR_DS_DUP_MSDS_INTID', + 'ERROR_DS_DUP_OID', + 'ERROR_DS_DUP_RDN', + 'ERROR_DS_DUP_SCHEMA_ID_GUID', + 'ERROR_DS_ENCODING_ERROR', + 'ERROR_DS_EPOCH_MISMATCH', + 'ERROR_DS_EXISTING_AD_CHILD_NC', + 'ERROR_DS_EXISTS_IN_AUX_CLS', + 'ERROR_DS_EXISTS_IN_MAY_HAVE', + 'ERROR_DS_EXISTS_IN_MUST_HAVE', + 'ERROR_DS_EXISTS_IN_POSS_SUP', + 'ERROR_DS_EXISTS_IN_RDNATTID', + 'ERROR_DS_EXISTS_IN_SUB_CLS', + 'ERROR_DS_FILTER_UNKNOWN', + 'ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS', + 'ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST', + 'ERROR_DS_FOREST_VERSION_TOO_HIGH', + 'ERROR_DS_FOREST_VERSION_TOO_LOW', + 'ERROR_DS_GCVERIFY_ERROR', + 'ERROR_DS_GC_NOT_AVAILABLE', + 'ERROR_DS_GC_REQUIRED', + 'ERROR_DS_GENERIC_ERROR', + 'ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER', + 'ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER', + 'ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER', + 'ERROR_DS_GOVERNSID_MISSING', + 'ERROR_DS_GROUP_CONVERSION_ERROR', + 'ERROR_DS_HAVE_PRIMARY_MEMBERS', + 'ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED', + 'ERROR_DS_HIERARCHY_TABLE_TOO_DEEP', + 'ERROR_DS_HIGH_ADLDS_FFL', + 'ERROR_DS_HIGH_DSA_VERSION', + 'ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD', + 'ERROR_DS_ILLEGAL_MOD_OPERATION', + 'ERROR_DS_ILLEGAL_SUPERIOR', + 'ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION', + 'ERROR_DS_INAPPROPRIATE_AUTH', + 'ERROR_DS_INAPPROPRIATE_MATCHING', + 'ERROR_DS_INCOMPATIBLE_CONTROLS_USED', + 'ERROR_DS_INCOMPATIBLE_VERSION', + 'ERROR_DS_INCORRECT_ROLE_OWNER', + 'ERROR_DS_INIT_FAILURE', + 'ERROR_DS_INIT_FAILURE_CONSOLE', + 'ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE', + 'ERROR_DS_INSTALL_NO_SRC_SCH_VERSION', + 'ERROR_DS_INSTALL_SCHEMA_MISMATCH', + 'ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT', + 'ERROR_DS_INSUFF_ACCESS_RIGHTS', + 'ERROR_DS_INTERNAL_FAILURE', + 'ERROR_DS_INVALID_ATTRIBUTE_SYNTAX', + 'ERROR_DS_INVALID_DMD', + 'ERROR_DS_INVALID_DN_SYNTAX', + 'ERROR_DS_INVALID_GROUP_TYPE', + 'ERROR_DS_INVALID_LDAP_DISPLAY_NAME', + 'ERROR_DS_INVALID_NAME_FOR_SPN', + 'ERROR_DS_INVALID_ROLE_OWNER', + 'ERROR_DS_INVALID_SCRIPT', + 'ERROR_DS_INVALID_SEARCH_FLAG', + 'ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE', + 'ERROR_DS_INVALID_SEARCH_FLAG_TUPLE', + 'ERROR_DS_IS_LEAF', + 'ERROR_DS_KEY_NOT_UNIQUE', + 'ERROR_DS_LDAP_SEND_QUEUE_FULL', + 'ERROR_DS_LINK_ID_NOT_AVAILABLE', + 'ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER', + 'ERROR_DS_LOCAL_ERROR', + 'ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY', + 'ERROR_DS_LOOP_DETECT', + 'ERROR_DS_LOW_ADLDS_FFL', + 'ERROR_DS_LOW_DSA_VERSION', + 'ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4', + 'ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED', + 'ERROR_DS_MAPI_ID_NOT_AVAILABLE', + 'ERROR_DS_MASTERDSA_REQUIRED', + 'ERROR_DS_MAX_OBJ_SIZE_EXCEEDED', + 'ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY', + 'ERROR_DS_MISSING_EXPECTED_ATT', + 'ERROR_DS_MISSING_FOREST_TRUST', + 'ERROR_DS_MISSING_FSMO_SETTINGS', + 'ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER', + 'ERROR_DS_MISSING_REQUIRED_ATT', + 'ERROR_DS_MISSING_SUPREF', + 'ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG', + 'ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE', + 'ERROR_DS_MODIFYDN_WRONG_GRANDPARENT', + 'ERROR_DS_MUST_BE_RUN_ON_DST_DC', + 'ERROR_DS_NAME_ERROR_DOMAIN_ONLY', + 'ERROR_DS_NAME_ERROR_NOT_FOUND', + 'ERROR_DS_NAME_ERROR_NOT_UNIQUE', + 'ERROR_DS_NAME_ERROR_NO_MAPPING', + 'ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING', + 'ERROR_DS_NAME_ERROR_RESOLVING', + 'ERROR_DS_NAME_ERROR_TRUST_REFERRAL', + 'ERROR_DS_NAME_NOT_UNIQUE', + 'ERROR_DS_NAME_REFERENCE_INVALID', + 'ERROR_DS_NAME_TOO_LONG', + 'ERROR_DS_NAME_TOO_MANY_PARTS', + 'ERROR_DS_NAME_TYPE_UNKNOWN', + 'ERROR_DS_NAME_UNPARSEABLE', + 'ERROR_DS_NAME_VALUE_TOO_LONG', + 'ERROR_DS_NAMING_MASTER_GC', + 'ERROR_DS_NAMING_VIOLATION', + 'ERROR_DS_NCNAME_MISSING_CR_REF', + 'ERROR_DS_NCNAME_MUST_BE_NC', + 'ERROR_DS_NC_MUST_HAVE_NC_PARENT', + 'ERROR_DS_NC_STILL_HAS_DSAS', + 'ERROR_DS_NONEXISTENT_MAY_HAVE', + 'ERROR_DS_NONEXISTENT_MUST_HAVE', + 'ERROR_DS_NONEXISTENT_POSS_SUP', + 'ERROR_DS_NONSAFE_SCHEMA_CHANGE', + 'ERROR_DS_NON_ASQ_SEARCH', + 'ERROR_DS_NON_BASE_SEARCH', + 'ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX', + 'ERROR_DS_NOT_AN_OBJECT', + 'ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC', + 'ERROR_DS_NOT_CLOSEST', + 'ERROR_DS_NOT_INSTALLED', + 'ERROR_DS_NOT_ON_BACKLINK', + 'ERROR_DS_NOT_SUPPORTED', + 'ERROR_DS_NOT_SUPPORTED_SORT_ORDER', + 'ERROR_DS_NO_ATTRIBUTE_OR_VALUE', + 'ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN', + 'ERROR_DS_NO_CHAINED_EVAL', + 'ERROR_DS_NO_CHAINING', + 'ERROR_DS_NO_CHECKPOINT_WITH_PDC', + 'ERROR_DS_NO_CROSSREF_FOR_NC', + 'ERROR_DS_NO_DELETED_NAME', + 'ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS', + 'ERROR_DS_NO_MORE_RIDS', + 'ERROR_DS_NO_MSDS_INTID', + 'ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN', + 'ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN', + 'ERROR_DS_NO_NTDSA_OBJECT', + 'ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC', + 'ERROR_DS_NO_PARENT_OBJECT', + 'ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION', + 'ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA', + 'ERROR_DS_NO_REF_DOMAIN', + 'ERROR_DS_NO_REQUESTED_ATTS_FOUND', + 'ERROR_DS_NO_RESULTS_RETURNED', + 'ERROR_DS_NO_RIDS_ALLOCATED', + 'ERROR_DS_NO_SERVER_OBJECT', + 'ERROR_DS_NO_SUCH_OBJECT', + 'ERROR_DS_NO_TREE_DELETE_ABOVE_NC', + 'ERROR_DS_NTDSCRIPT_PROCESS_ERROR', + 'ERROR_DS_NTDSCRIPT_SYNTAX_ERROR', + 'ERROR_DS_OBJECT_BEING_REMOVED', + 'ERROR_DS_OBJECT_CLASS_REQUIRED', + 'ERROR_DS_OBJECT_RESULTS_TOO_LARGE', + 'ERROR_DS_OBJ_CLASS_NOT_DEFINED', + 'ERROR_DS_OBJ_CLASS_NOT_SUBCLASS', + 'ERROR_DS_OBJ_CLASS_VIOLATION', + 'ERROR_DS_OBJ_GUID_EXISTS', + 'ERROR_DS_OBJ_NOT_FOUND', + 'ERROR_DS_OBJ_STRING_NAME_EXISTS', + 'ERROR_DS_OBJ_TOO_LARGE', + 'ERROR_DS_OFFSET_RANGE_ERROR', + 'ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS', + 'ERROR_DS_OID_NOT_FOUND', + 'ERROR_DS_OPERATIONS_ERROR', + 'ERROR_DS_OUT_OF_SCOPE', + 'ERROR_DS_OUT_OF_VERSION_STORE', + 'ERROR_DS_PARAM_ERROR', + 'ERROR_DS_PARENT_IS_AN_ALIAS', + 'ERROR_DS_PDC_OPERATION_IN_PROGRESS', + 'ERROR_DS_POLICY_NOT_KNOWN', + 'ERROR_DS_PROTOCOL_ERROR', + 'ERROR_DS_RANGE_CONSTRAINT', + 'ERROR_DS_RDN_DOESNT_MATCH_SCHEMA', + 'ERROR_DS_RECALCSCHEMA_FAILED', + 'ERROR_DS_REFERRAL', + 'ERROR_DS_REFERRAL_LIMIT_EXCEEDED', + 'ERROR_DS_REFUSING_FSMO_ROLES', + 'ERROR_DS_REMOTE_CROSSREF_OP_FAILED', + 'ERROR_DS_REPLICATOR_ONLY', + 'ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR', + 'ERROR_DS_REPL_LIFETIME_EXCEEDED', + 'ERROR_DS_RESERVED_LINK_ID', + 'ERROR_DS_RESERVED_MAPI_ID', + 'ERROR_DS_RIDMGR_DISABLED', + 'ERROR_DS_RIDMGR_INIT_ERROR', + 'ERROR_DS_ROLE_NOT_VERIFIED', + 'ERROR_DS_ROOT_CANT_BE_SUBREF', + 'ERROR_DS_ROOT_MUST_BE_NC', + 'ERROR_DS_ROOT_REQUIRES_CLASS_TOP', + 'ERROR_DS_SAM_INIT_FAILURE', + 'ERROR_DS_SAM_INIT_FAILURE_CONSOLE', + 'ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY', + 'ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD', + 'ERROR_DS_SCHEMA_ALLOC_FAILED', + 'ERROR_DS_SCHEMA_NOT_LOADED', + 'ERROR_DS_SCHEMA_UPDATE_DISALLOWED', + 'ERROR_DS_SECURITY_CHECKING_ERROR', + 'ERROR_DS_SECURITY_ILLEGAL_MODIFY', + 'ERROR_DS_SEC_DESC_INVALID', + 'ERROR_DS_SEC_DESC_TOO_SHORT', + 'ERROR_DS_SEMANTIC_ATT_TEST', + 'ERROR_DS_SENSITIVE_GROUP_VIOLATION', + 'ERROR_DS_SERVER_DOWN', + 'ERROR_DS_SHUTTING_DOWN', + 'ERROR_DS_SINGLE_USER_MODE_FAILED', + 'ERROR_DS_SINGLE_VALUE_CONSTRAINT', + 'ERROR_DS_SIZELIMIT_EXCEEDED', + 'ERROR_DS_SORT_CONTROL_MISSING', + 'ERROR_DS_SOURCE_AUDITING_NOT_ENABLED', + 'ERROR_DS_SOURCE_DOMAIN_IN_FOREST', + 'ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST', + 'ERROR_DS_SRC_AND_DST_NC_IDENTICAL', + 'ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH', + 'ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER', + 'ERROR_DS_SRC_GUID_MISMATCH', + 'ERROR_DS_SRC_NAME_MISMATCH', + 'ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER', + 'ERROR_DS_SRC_SID_EXISTS_IN_FOREST', + 'ERROR_DS_STRING_SD_CONVERSION_FAILED', + 'ERROR_DS_STRONG_AUTH_REQUIRED', + 'ERROR_DS_SUBREF_MUST_HAVE_PARENT', + 'ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD', + 'ERROR_DS_SUB_CLS_TEST_FAIL', + 'ERROR_DS_SYNTAX_MISMATCH', + 'ERROR_DS_THREAD_LIMIT_EXCEEDED', + 'ERROR_DS_TIMELIMIT_EXCEEDED', + 'ERROR_DS_TREE_DELETE_NOT_FINISHED', + 'ERROR_DS_UNABLE_TO_SURRENDER_ROLES', + 'ERROR_DS_UNAVAILABLE', + 'ERROR_DS_UNAVAILABLE_CRIT_EXTENSION', + 'ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED', + 'ERROR_DS_UNICODEPWD_NOT_IN_QUOTES', + 'ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER', + 'ERROR_DS_UNKNOWN_ERROR', + 'ERROR_DS_UNKNOWN_OPERATION', + 'ERROR_DS_UNWILLING_TO_PERFORM', + 'ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST', + 'ERROR_DS_USER_BUFFER_TO_SMALL', + 'ERROR_DS_VALUE_KEY_NOT_UNIQUE', + 'ERROR_DS_VERSION_CHECK_FAILURE', + 'ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL', + 'ERROR_DS_WRONG_LINKED_ATT_SYNTAX', + 'ERROR_DS_WRONG_OM_OBJ_CLASS', + 'ERROR_DUPLICATE_PRIVILEGES', + 'ERROR_DUPLICATE_SERVICE_NAME', + 'ERROR_DUPLICATE_TAG', + 'ERROR_DUP_DOMAINNAME', + 'ERROR_DUP_NAME', + 'ERROR_DYNAMIC_CODE_BLOCKED', + 'ERROR_DYNLINK_FROM_INVALID_RING', + 'ERROR_EAS_DIDNT_FIT', + 'ERROR_EAS_NOT_SUPPORTED', + 'ERROR_EA_ACCESS_DENIED', + 'ERROR_EA_FILE_CORRUPT', + 'ERROR_EA_LIST_INCONSISTENT', + 'ERROR_EA_TABLE_FULL', + 'ERROR_EC_CIRCULAR_FORWARDING', + 'ERROR_EC_CREDSTORE_FULL', + 'ERROR_EC_CRED_NOT_FOUND', + 'ERROR_EC_LOG_DISABLED', + 'ERROR_EC_NO_ACTIVE_CHANNEL', + 'ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE', + 'ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED', + 'ERROR_EDP_POLICY_DENIES_OPERATION', + 'ERROR_EFS_ALG_BLOB_TOO_BIG', + 'ERROR_EFS_DISABLED', + 'ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION', + 'ERROR_EFS_SERVER_NOT_TRUSTED', + 'ERROR_EFS_VERSION_NOT_SUPPORT', + 'ERROR_ELEVATION_REQUIRED', + 'ERROR_EMPTY', + 'ERROR_ENCLAVE_FAILURE', + 'ERROR_ENCLAVE_NOT_TERMINATED', + 'ERROR_ENCLAVE_VIOLATION', + 'ERROR_ENCRYPTED_IO_NOT_POSSIBLE', + 'ERROR_ENCRYPTING_METADATA_DISALLOWED', + 'ERROR_ENCRYPTION_DISABLED', + 'ERROR_ENCRYPTION_FAILED', + 'ERROR_ENCRYPTION_POLICY_DENIES_OPERATION', + 'ERROR_END_OF_MEDIA', + 'ERROR_ENLISTMENT_NOT_FOUND', + 'ERROR_ENLISTMENT_NOT_SUPERIOR', + 'ERROR_ENVVAR_NOT_FOUND', + 'ERROR_EOM_OVERFLOW', + 'ERROR_ERRORS_ENCOUNTERED', + 'ERROR_EVALUATION_EXPIRATION', + 'ERROR_EVENTLOG_CANT_START', + 'ERROR_EVENTLOG_FILE_CHANGED', + 'ERROR_EVENTLOG_FILE_CORRUPT', + 'ERROR_EVENT_DONE', + 'ERROR_EVENT_PENDING', + 'ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY', + 'ERROR_EVT_CHANNEL_CANNOT_ACTIVATE', + 'ERROR_EVT_CHANNEL_NOT_FOUND', + 'ERROR_EVT_CONFIGURATION_ERROR', + 'ERROR_EVT_EVENT_DEFINITION_NOT_FOUND', + 'ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND', + 'ERROR_EVT_FILTER_ALREADYSCOPED', + 'ERROR_EVT_FILTER_INVARG', + 'ERROR_EVT_FILTER_INVTEST', + 'ERROR_EVT_FILTER_INVTYPE', + 'ERROR_EVT_FILTER_NOTELTSET', + 'ERROR_EVT_FILTER_OUT_OF_RANGE', + 'ERROR_EVT_FILTER_PARSEERR', + 'ERROR_EVT_FILTER_TOO_COMPLEX', + 'ERROR_EVT_FILTER_UNEXPECTEDTOKEN', + 'ERROR_EVT_FILTER_UNSUPPORTEDOP', + 'ERROR_EVT_INVALID_CHANNEL_PATH', + 'ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE', + 'ERROR_EVT_INVALID_EVENT_DATA', + 'ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL', + 'ERROR_EVT_INVALID_PUBLISHER_NAME', + 'ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE', + 'ERROR_EVT_INVALID_QUERY', + 'ERROR_EVT_MALFORMED_XML_TEXT', + 'ERROR_EVT_MAX_INSERTS_REACHED', + 'ERROR_EVT_MESSAGE_ID_NOT_FOUND', + 'ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND', + 'ERROR_EVT_MESSAGE_NOT_FOUND', + 'ERROR_EVT_NON_VALIDATING_MSXML', + 'ERROR_EVT_PUBLISHER_DISABLED', + 'ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND', + 'ERROR_EVT_QUERY_RESULT_INVALID_POSITION', + 'ERROR_EVT_QUERY_RESULT_STALE', + 'ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL', + 'ERROR_EVT_UNRESOLVED_PARAMETER_INSERT', + 'ERROR_EVT_UNRESOLVED_VALUE_INSERT', + 'ERROR_EVT_VERSION_TOO_NEW', + 'ERROR_EVT_VERSION_TOO_OLD', + 'ERROR_EXCEPTION_IN_RESOURCE_CALL', + 'ERROR_EXCEPTION_IN_SERVICE', + 'ERROR_EXCL_SEM_ALREADY_OWNED', + 'ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY', + 'ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY', + 'ERROR_EXE_MACHINE_TYPE_MISMATCH', + 'ERROR_EXE_MARKED_INVALID', + 'ERROR_EXPIRED_HANDLE', + 'ERROR_EXTENDED_ERROR', + 'ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN', + 'ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED', + 'ERROR_EXTRANEOUS_INFORMATION', + 'ERROR_FAILED_DRIVER_ENTRY', + 'ERROR_FAILED_SERVICE_CONTROLLER_CONNECT', + 'ERROR_FAIL_FAST_EXCEPTION', + 'ERROR_FAIL_I24', + 'ERROR_FAIL_NOACTION_REBOOT', + 'ERROR_FAIL_REBOOT_INITIATED', + 'ERROR_FAIL_REBOOT_REQUIRED', + 'ERROR_FAIL_RESTART', + 'ERROR_FAIL_SHUTDOWN', + 'ERROR_FATAL_APP_EXIT', + 'ERROR_FILEMARK_DETECTED', + 'ERROR_FILENAME_EXCED_RANGE', + 'ERROR_FILE_CHECKED_OUT', + 'ERROR_FILE_CORRUPT', + 'ERROR_FILE_ENCRYPTED', + 'ERROR_FILE_EXISTS', + 'ERROR_FILE_HANDLE_REVOKED', + 'ERROR_FILE_IDENTITY_NOT_PERSISTENT', + 'ERROR_FILE_INVALID', + 'ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED', + 'ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS', + 'ERROR_FILE_NOT_ENCRYPTED', + 'ERROR_FILE_NOT_FOUND', + 'ERROR_FILE_NOT_SUPPORTED', + 'ERROR_FILE_OFFLINE', + 'ERROR_FILE_PROTECTED_UNDER_DPL', + 'ERROR_FILE_READ_ONLY', + 'ERROR_FILE_SHARE_RESOURCE_CONFLICT', + 'ERROR_FILE_SYSTEM_LIMITATION', + 'ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY', + 'ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION', + 'ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT', + 'ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN', + 'ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE', + 'ERROR_FILE_TOO_LARGE', + 'ERROR_FIRMWARE_UPDATED', + 'ERROR_FLOATED_SECTION', + 'ERROR_FLOAT_MULTIPLE_FAULTS', + 'ERROR_FLOAT_MULTIPLE_TRAPS', + 'ERROR_FLOPPY_BAD_REGISTERS', + 'ERROR_FLOPPY_ID_MARK_NOT_FOUND', + 'ERROR_FLOPPY_UNKNOWN_ERROR', + 'ERROR_FLOPPY_VOLUME', + 'ERROR_FLOPPY_WRONG_CYLINDER', + 'ERROR_FLT_ALREADY_ENLISTED', + 'ERROR_FLT_CBDQ_DISABLED', + 'ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND', + 'ERROR_FLT_CONTEXT_ALREADY_DEFINED', + 'ERROR_FLT_CONTEXT_ALREADY_LINKED', + 'ERROR_FLT_DELETING_OBJECT', + 'ERROR_FLT_DISALLOW_FAST_IO', + 'ERROR_FLT_DO_NOT_ATTACH', + 'ERROR_FLT_DO_NOT_DETACH', + 'ERROR_FLT_DUPLICATE_ENTRY', + 'ERROR_FLT_FILTER_NOT_FOUND', + 'ERROR_FLT_FILTER_NOT_READY', + 'ERROR_FLT_INSTANCE_ALTITUDE_COLLISION', + 'ERROR_FLT_INSTANCE_NAME_COLLISION', + 'ERROR_FLT_INSTANCE_NOT_FOUND', + 'ERROR_FLT_INTERNAL_ERROR', + 'ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST', + 'ERROR_FLT_INVALID_CONTEXT_REGISTRATION', + 'ERROR_FLT_INVALID_NAME_REQUEST', + 'ERROR_FLT_IO_COMPLETE', + 'ERROR_FLT_MUST_BE_NONPAGED_POOL', + 'ERROR_FLT_NAME_CACHE_MISS', + 'ERROR_FLT_NOT_INITIALIZED', + 'ERROR_FLT_NOT_SAFE_TO_POST_OPERATION', + 'ERROR_FLT_NO_DEVICE_OBJECT', + 'ERROR_FLT_NO_HANDLER_DEFINED', + 'ERROR_FLT_NO_WAITER_FOR_REPLY', + 'ERROR_FLT_POST_OPERATION_CLEANUP', + 'ERROR_FLT_REGISTRATION_BUSY', + 'ERROR_FLT_VOLUME_ALREADY_MOUNTED', + 'ERROR_FLT_VOLUME_NOT_FOUND', + 'ERROR_FORMS_AUTH_REQUIRED', + 'ERROR_FOUND_OUT_OF_SCOPE', + 'ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY', + 'ERROR_FS_DRIVER_REQUIRED', + 'ERROR_FT_DI_SCAN_REQUIRED', + 'ERROR_FT_READ_FAILURE', + 'ERROR_FT_READ_RECOVERY_FROM_BACKUP', + 'ERROR_FT_WRITE_FAILURE', + 'ERROR_FT_WRITE_RECOVERY', + 'ERROR_FULLSCREEN_MODE', + 'ERROR_FULL_BACKUP', + 'ERROR_FUNCTION_FAILED', + 'ERROR_FUNCTION_NOT_CALLED', + 'ERROR_GDI_HANDLE_LEAK', + 'ERROR_GENERIC_COMMAND_FAILED', + 'ERROR_GENERIC_NOT_MAPPED', + 'ERROR_GEN_FAILURE', + 'ERROR_GLOBAL_ONLY_HOOK', + 'ERROR_GPIO_CLIENT_INFORMATION_INVALID', + 'ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE', + 'ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED', + 'ERROR_GPIO_INVALID_REGISTRATION_PACKET', + 'ERROR_GPIO_OPERATION_DENIED', + 'ERROR_GPIO_VERSION_NOT_SUPPORTED', + 'ERROR_GRACEFUL_DISCONNECT', + 'ERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED', + 'ERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY', + 'ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE', + 'ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET', + 'ERROR_GRAPHICS_ADAPTER_WAS_RESET', + 'ERROR_GRAPHICS_ALLOCATION_BUSY', + 'ERROR_GRAPHICS_ALLOCATION_CLOSED', + 'ERROR_GRAPHICS_ALLOCATION_CONTENT_LOST', + 'ERROR_GRAPHICS_ALLOCATION_INVALID', + 'ERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION', + 'ERROR_GRAPHICS_CANNOTCOLORCONVERT', + 'ERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN', + 'ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION', + 'ERROR_GRAPHICS_CANT_LOCK_MEMORY', + 'ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION', + 'ERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED', + 'ERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON', + 'ERROR_GRAPHICS_CHAINLINKS_NOT_STARTED', + 'ERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED', + 'ERROR_GRAPHICS_CLIENTVIDPN_NOT_SET', + 'ERROR_GRAPHICS_COPP_NOT_SUPPORTED', + 'ERROR_GRAPHICS_DATASET_IS_EMPTY', + 'ERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE', + 'ERROR_GRAPHICS_DDCCI_INVALID_DATA', + 'ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM', + 'ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND', + 'ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH', + 'ERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE', + 'ERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED', + 'ERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS', + 'ERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP', + 'ERROR_GRAPHICS_DRIVER_MISMATCH', + 'ERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION', + 'ERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET', + 'ERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET', + 'ERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED', + 'ERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE', + 'ERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST', + 'ERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA', + 'ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA', + 'ERROR_GRAPHICS_I2C_NOT_SUPPORTED', + 'ERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT', + 'ERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE', + 'ERROR_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN', + 'ERROR_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED', + 'ERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER', + 'ERROR_GRAPHICS_INTERNAL_ERROR', + 'ERROR_GRAPHICS_INVALID_ACTIVE_REGION', + 'ERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE', + 'ERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE', + 'ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE', + 'ERROR_GRAPHICS_INVALID_CLIENT_TYPE', + 'ERROR_GRAPHICS_INVALID_COLORBASIS', + 'ERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE', + 'ERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER', + 'ERROR_GRAPHICS_INVALID_DRIVER_MODEL', + 'ERROR_GRAPHICS_INVALID_FREQUENCY', + 'ERROR_GRAPHICS_INVALID_GAMMA_RAMP', + 'ERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM', + 'ERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR', + 'ERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET', + 'ERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN', + 'ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE', + 'ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET', + 'ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT', + 'ERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET', + 'ERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE', + 'ERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION', + 'ERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE', + 'ERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL', + 'ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE', + 'ERROR_GRAPHICS_INVALID_PIXELFORMAT', + 'ERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE', + 'ERROR_GRAPHICS_INVALID_POINTER', + 'ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE', + 'ERROR_GRAPHICS_INVALID_SCANLINE_ORDERING', + 'ERROR_GRAPHICS_INVALID_STRIDE', + 'ERROR_GRAPHICS_INVALID_TOTAL_REGION', + 'ERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET', + 'ERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET', + 'ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE', + 'ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE', + 'ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET', + 'ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE', + 'ERROR_GRAPHICS_INVALID_VIDPN', + 'ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH', + 'ERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET', + 'ERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET', + 'ERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE', + 'ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY', + 'ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON', + 'ERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE', + 'ERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED', + 'ERROR_GRAPHICS_LEADLINK_START_DEFERRED', + 'ERROR_GRAPHICS_MAX_NUM_PATHS_REACHED', + 'ERROR_GRAPHICS_MCA_INTERNAL_ERROR', + 'ERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING', + 'ERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED', + 'ERROR_GRAPHICS_MCA_INVALID_VCP_VERSION', + 'ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH', + 'ERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION', + 'ERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE', + 'ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION', + 'ERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED', + 'ERROR_GRAPHICS_MODE_ALREADY_IN_MODESET', + 'ERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE', + 'ERROR_GRAPHICS_MODE_NOT_IN_MODESET', + 'ERROR_GRAPHICS_MODE_NOT_PINNED', + 'ERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET', + 'ERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE', + 'ERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET', + 'ERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER', + 'ERROR_GRAPHICS_MONITOR_NOT_CONNECTED', + 'ERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS', + 'ERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED', + 'ERROR_GRAPHICS_NOT_A_LINKED_ADAPTER', + 'ERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER', + 'ERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER', + 'ERROR_GRAPHICS_NO_ACTIVE_VIDPN', + 'ERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS', + 'ERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET', + 'ERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME', + 'ERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT', + 'ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE', + 'ERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET', + 'ERROR_GRAPHICS_NO_PREFERRED_MODE', + 'ERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN', + 'ERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY', + 'ERROR_GRAPHICS_NO_VIDEO_MEMORY', + 'ERROR_GRAPHICS_NO_VIDPNMGR', + 'ERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED', + 'ERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE', + 'ERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR', + 'ERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET', + 'ERROR_GRAPHICS_OPM_INTERNAL_ERROR', + 'ERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST', + 'ERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS', + 'ERROR_GRAPHICS_OPM_INVALID_HANDLE', + 'ERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST', + 'ERROR_GRAPHICS_OPM_INVALID_SRM', + 'ERROR_GRAPHICS_OPM_NOT_SUPPORTED', + 'ERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST', + 'ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP', + 'ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA', + 'ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP', + 'ERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH', + 'ERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS', + 'ERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED', + 'ERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED', + 'ERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED', + 'ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS', + 'ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS', + 'ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS', + 'ERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL', + 'ERROR_GRAPHICS_PARTIAL_DATA_POPULATED', + 'ERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY', + 'ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED', + 'ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED', + 'ERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY', + 'ERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET', + 'ERROR_GRAPHICS_POLLING_TOO_FREQUENTLY', + 'ERROR_GRAPHICS_PRESENT_BUFFER_NOT_BOUND', + 'ERROR_GRAPHICS_PRESENT_DENIED', + 'ERROR_GRAPHICS_PRESENT_INVALID_WINDOW', + 'ERROR_GRAPHICS_PRESENT_MODE_CHANGED', + 'ERROR_GRAPHICS_PRESENT_OCCLUDED', + 'ERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED', + 'ERROR_GRAPHICS_PRESENT_UNOCCLUDED', + 'ERROR_GRAPHICS_PVP_HFS_FAILED', + 'ERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH', + 'ERROR_GRAPHICS_RESOURCES_NOT_RELATED', + 'ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS', + 'ERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION', + 'ERROR_GRAPHICS_SOURCE_ALREADY_IN_SET', + 'ERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE', + 'ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY', + 'ERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED', + 'ERROR_GRAPHICS_STALE_MODESET', + 'ERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY', + 'ERROR_GRAPHICS_START_DEFERRED', + 'ERROR_GRAPHICS_TARGET_ALREADY_IN_SET', + 'ERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE', + 'ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY', + 'ERROR_GRAPHICS_TOO_MANY_REFERENCES', + 'ERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED', + 'ERROR_GRAPHICS_TRY_AGAIN_LATER', + 'ERROR_GRAPHICS_TRY_AGAIN_NOW', + 'ERROR_GRAPHICS_UAB_NOT_SUPPORTED', + 'ERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS', + 'ERROR_GRAPHICS_UNKNOWN_CHILD_STATUS', + 'ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE', + 'ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED', + 'ERROR_GRAPHICS_VAIL_STATE_CHANGED', + 'ERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES', + 'ERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED', + 'ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE', + 'ERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED', + 'ERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED', + 'ERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE', + 'ERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED', + 'ERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE', + 'ERROR_GROUPSET_CANT_PROVIDE', + 'ERROR_GROUPSET_NOT_AVAILABLE', + 'ERROR_GROUPSET_NOT_FOUND', + 'ERROR_GROUP_EXISTS', + 'ERROR_GROUP_NOT_AVAILABLE', + 'ERROR_GROUP_NOT_FOUND', + 'ERROR_GROUP_NOT_ONLINE', + 'ERROR_GUID_SUBSTITUTION_MADE', + 'ERROR_HANDLES_CLOSED', + 'ERROR_HANDLE_DISK_FULL', + 'ERROR_HANDLE_EOF', + 'ERROR_HANDLE_NO_LONGER_VALID', + 'ERROR_HANDLE_REVOKED', + 'ERROR_HASH_NOT_PRESENT', + 'ERROR_HASH_NOT_SUPPORTED', + 'ERROR_HEURISTIC_DAMAGE_POSSIBLE', + 'ERROR_HIBERNATED', + 'ERROR_HIBERNATION_FAILURE', + 'ERROR_HOOK_NEEDS_HMOD', + 'ERROR_HOOK_NOT_INSTALLED', + 'ERROR_HOOK_TYPE_NOT_ALLOWED', + 'ERROR_HOST_DOWN', + 'ERROR_HOST_NODE_NOT_AVAILABLE', + 'ERROR_HOST_NODE_NOT_GROUP_OWNER', + 'ERROR_HOST_NODE_NOT_RESOURCE_OWNER', + 'ERROR_HOST_UNREACHABLE', + 'ERROR_HOTKEY_ALREADY_REGISTERED', + 'ERROR_HOTKEY_NOT_REGISTERED', + 'ERROR_HUNG_DISPLAY_DRIVER_THREAD', + 'ERROR_HV_ACCESS_DENIED', + 'ERROR_HV_ACKNOWLEDGED', + 'ERROR_HV_CPUID_FEATURE_VALIDATION', + 'ERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION', + 'ERROR_HV_FEATURE_UNAVAILABLE', + 'ERROR_HV_INACTIVE', + 'ERROR_HV_INSUFFICIENT_BUFFER', + 'ERROR_HV_INSUFFICIENT_BUFFERS', + 'ERROR_HV_INSUFFICIENT_DEVICE_DOMAINS', + 'ERROR_HV_INSUFFICIENT_MEMORY', + 'ERROR_HV_INSUFFICIENT_ROOT_MEMORY', + 'ERROR_HV_INVALID_ALIGNMENT', + 'ERROR_HV_INVALID_CONNECTION_ID', + 'ERROR_HV_INVALID_CPU_GROUP_ID', + 'ERROR_HV_INVALID_CPU_GROUP_STATE', + 'ERROR_HV_INVALID_DEVICE_ID', + 'ERROR_HV_INVALID_DEVICE_STATE', + 'ERROR_HV_INVALID_HYPERCALL_CODE', + 'ERROR_HV_INVALID_HYPERCALL_INPUT', + 'ERROR_HV_INVALID_LP_INDEX', + 'ERROR_HV_INVALID_PARAMETER', + 'ERROR_HV_INVALID_PARTITION_ID', + 'ERROR_HV_INVALID_PARTITION_STATE', + 'ERROR_HV_INVALID_PORT_ID', + 'ERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO', + 'ERROR_HV_INVALID_REGISTER_VALUE', + 'ERROR_HV_INVALID_SAVE_RESTORE_STATE', + 'ERROR_HV_INVALID_SYNIC_STATE', + 'ERROR_HV_INVALID_VP_INDEX', + 'ERROR_HV_INVALID_VP_STATE', + 'ERROR_HV_INVALID_VTL_STATE', + 'ERROR_HV_NOT_ACKNOWLEDGED', + 'ERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE', + 'ERROR_HV_NOT_PRESENT', + 'ERROR_HV_NO_DATA', + 'ERROR_HV_NO_RESOURCES', + 'ERROR_HV_NX_NOT_DETECTED', + 'ERROR_HV_OBJECT_IN_USE', + 'ERROR_HV_OPERATION_DENIED', + 'ERROR_HV_OPERATION_FAILED', + 'ERROR_HV_PAGE_REQUEST_INVALID', + 'ERROR_HV_PARTITION_TOO_DEEP', + 'ERROR_HV_PENDING_PAGE_REQUESTS', + 'ERROR_HV_PROCESSOR_STARTUP_TIMEOUT', + 'ERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE', + 'ERROR_HV_SMX_ENABLED', + 'ERROR_HV_UNKNOWN_PROPERTY', + 'ERROR_HWNDS_HAVE_DIFF_PARENT', + 'ERROR_ICM_NOT_ENABLED', + 'ERROR_IEPORT_FULL', + 'ERROR_ILLEGAL_CHARACTER', + 'ERROR_ILLEGAL_DLL_RELOCATION', + 'ERROR_ILLEGAL_ELEMENT_ADDRESS', + 'ERROR_ILLEGAL_FLOAT_CONTEXT', + 'ERROR_ILL_FORMED_PASSWORD', + 'ERROR_IMAGE_AT_DIFFERENT_BASE', + 'ERROR_IMAGE_MACHINE_TYPE_MISMATCH', + 'ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE', + 'ERROR_IMAGE_NOT_AT_BASE', + 'ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT', + 'ERROR_IMPLEMENTATION_LIMIT', + 'ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED', + 'ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE', + 'ERROR_INCOMPATIBLE_SERVICE_SID_TYPE', + 'ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING', + 'ERROR_INCORRECT_ACCOUNT_TYPE', + 'ERROR_INCORRECT_ADDRESS', + 'ERROR_INCORRECT_SIZE', + 'ERROR_INC_BACKUP', + 'ERROR_INDEX_ABSENT', + 'ERROR_INDIGENOUS_TYPE', + 'ERROR_INDOUBT_TRANSACTIONS_EXIST', + 'ERROR_INFLOOP_IN_RELOC_CHAIN', + 'ERROR_INSTALL_ALREADY_RUNNING', + 'ERROR_INSTALL_CANCEL', + 'ERROR_INSTALL_DEREGISTRATION_FAILURE', + 'ERROR_INSTALL_FAILED', + 'ERROR_INSTALL_FAILURE', + 'ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING', + 'ERROR_INSTALL_INVALID_PACKAGE', + 'ERROR_INSTALL_INVALID_RELATED_SET_UPDATE', + 'ERROR_INSTALL_LANGUAGE_UNSUPPORTED', + 'ERROR_INSTALL_LOG_FAILURE', + 'ERROR_INSTALL_NETWORK_FAILURE', + 'ERROR_INSTALL_NOTUSED', + 'ERROR_INSTALL_OPEN_PACKAGE_FAILED', + 'ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE', + 'ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE', + 'ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY', + 'ERROR_INSTALL_OUT_OF_DISK_SPACE', + 'ERROR_INSTALL_PACKAGE_DOWNGRADE', + 'ERROR_INSTALL_PACKAGE_INVALID', + 'ERROR_INSTALL_PACKAGE_NOT_FOUND', + 'ERROR_INSTALL_PACKAGE_OPEN_FAILED', + 'ERROR_INSTALL_PACKAGE_REJECTED', + 'ERROR_INSTALL_PACKAGE_VERSION', + 'ERROR_INSTALL_PLATFORM_UNSUPPORTED', + 'ERROR_INSTALL_POLICY_FAILURE', + 'ERROR_INSTALL_PREREQUISITE_FAILED', + 'ERROR_INSTALL_REGISTRATION_FAILURE', + 'ERROR_INSTALL_REJECTED', + 'ERROR_INSTALL_REMOTE_DISALLOWED', + 'ERROR_INSTALL_REMOTE_PROHIBITED', + 'ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED', + 'ERROR_INSTALL_SERVICE_FAILURE', + 'ERROR_INSTALL_SERVICE_SAFEBOOT', + 'ERROR_INSTALL_SOURCE_ABSENT', + 'ERROR_INSTALL_SUSPEND', + 'ERROR_INSTALL_TEMP_UNWRITABLE', + 'ERROR_INSTALL_TRANSFORM_FAILURE', + 'ERROR_INSTALL_TRANSFORM_REJECTED', + 'ERROR_INSTALL_UI_FAILURE', + 'ERROR_INSTALL_USEREXIT', + 'ERROR_INSTALL_VOLUME_CORRUPT', + 'ERROR_INSTALL_VOLUME_NOT_EMPTY', + 'ERROR_INSTALL_VOLUME_OFFLINE', + 'ERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE', + 'ERROR_INSTRUCTION_MISALIGNMENT', + 'ERROR_INSUFFICIENT_BUFFER', + 'ERROR_INSUFFICIENT_LOGON_INFO', + 'ERROR_INSUFFICIENT_POWER', + 'ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE', + 'ERROR_INTERMIXED_KERNEL_EA_OPERATION', + 'ERROR_INTERNAL_DB_CORRUPTION', + 'ERROR_INTERNAL_DB_ERROR', + 'ERROR_INTERNAL_ERROR', + 'ERROR_INTERRUPT_STILL_CONNECTED', + 'ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED', + 'ERROR_INVALID_ACCEL_HANDLE', + 'ERROR_INVALID_ACCESS', + 'ERROR_INVALID_ACCOUNT_NAME', + 'ERROR_INVALID_ACE_CONDITION', + 'ERROR_INVALID_ACL', + 'ERROR_INVALID_ADDRESS', + 'ERROR_INVALID_AT_INTERRUPT_TIME', + 'ERROR_INVALID_BLOCK', + 'ERROR_INVALID_BLOCK_LENGTH', + 'ERROR_INVALID_CAP', + 'ERROR_INVALID_CATEGORY', + 'ERROR_INVALID_CLEANER', + 'ERROR_INVALID_CLUSTER_IPV6_ADDRESS', + 'ERROR_INVALID_CMM', + 'ERROR_INVALID_COLORINDEX', + 'ERROR_INVALID_COLORSPACE', + 'ERROR_INVALID_COMBOBOX_MESSAGE', + 'ERROR_INVALID_COMMAND_LINE', + 'ERROR_INVALID_COMPUTERNAME', + 'ERROR_INVALID_CRUNTIME_PARAMETER', + 'ERROR_INVALID_CURSOR_HANDLE', + 'ERROR_INVALID_DATA', + 'ERROR_INVALID_DATATYPE', + 'ERROR_INVALID_DEVICE_OBJECT_PARAMETER', + 'ERROR_INVALID_DLL', + 'ERROR_INVALID_DOMAINNAME', + 'ERROR_INVALID_DOMAIN_ROLE', + 'ERROR_INVALID_DOMAIN_STATE', + 'ERROR_INVALID_DRIVE', + 'ERROR_INVALID_DRIVE_OBJECT', + 'ERROR_INVALID_DWP_HANDLE', + 'ERROR_INVALID_EA_HANDLE', + 'ERROR_INVALID_EA_NAME', + 'ERROR_INVALID_EDIT_HEIGHT', + 'ERROR_INVALID_ENVIRONMENT', + 'ERROR_INVALID_EVENTNAME', + 'ERROR_INVALID_EVENT_COUNT', + 'ERROR_INVALID_EXCEPTION_HANDLER', + 'ERROR_INVALID_EXE_SIGNATURE', + 'ERROR_INVALID_FIELD', + 'ERROR_INVALID_FIELD_IN_PARAMETER_LIST', + 'ERROR_INVALID_FILTER_PROC', + 'ERROR_INVALID_FLAGS', + 'ERROR_INVALID_FLAG_NUMBER', + 'ERROR_INVALID_FORM_NAME', + 'ERROR_INVALID_FORM_SIZE', + 'ERROR_INVALID_FUNCTION', + 'ERROR_INVALID_GROUPNAME', + 'ERROR_INVALID_GROUP_ATTRIBUTES', + 'ERROR_INVALID_GW_COMMAND', + 'ERROR_INVALID_HANDLE', + 'ERROR_INVALID_HANDLE_STATE', + 'ERROR_INVALID_HOOK_FILTER', + 'ERROR_INVALID_HOOK_HANDLE', + 'ERROR_INVALID_HW_PROFILE', + 'ERROR_INVALID_ICON_HANDLE', + 'ERROR_INVALID_ID_AUTHORITY', + 'ERROR_INVALID_IMAGE_HASH', + 'ERROR_INVALID_IMPORT_OF_NON_DLL', + 'ERROR_INVALID_INDEX', + 'ERROR_INVALID_KERNEL_INFO_VERSION', + 'ERROR_INVALID_KEYBOARD_HANDLE', + 'ERROR_INVALID_LABEL', + 'ERROR_INVALID_LB_MESSAGE', + 'ERROR_INVALID_LDT_DESCRIPTOR', + 'ERROR_INVALID_LDT_OFFSET', + 'ERROR_INVALID_LDT_SIZE', + 'ERROR_INVALID_LEVEL', + 'ERROR_INVALID_LIBRARY', + 'ERROR_INVALID_LIST_FORMAT', + 'ERROR_INVALID_LOCK_RANGE', + 'ERROR_INVALID_LOGON_HOURS', + 'ERROR_INVALID_LOGON_TYPE', + 'ERROR_INVALID_MEDIA', + 'ERROR_INVALID_MEDIA_POOL', + 'ERROR_INVALID_MEMBER', + 'ERROR_INVALID_MENU_HANDLE', + 'ERROR_INVALID_MESSAGE', + 'ERROR_INVALID_MESSAGEDEST', + 'ERROR_INVALID_MESSAGENAME', + 'ERROR_INVALID_MINALLOCSIZE', + 'ERROR_INVALID_MODULETYPE', + 'ERROR_INVALID_MONITOR_HANDLE', + 'ERROR_INVALID_MSGBOX_STYLE', + 'ERROR_INVALID_NAME', + 'ERROR_INVALID_NETNAME', + 'ERROR_INVALID_OPERATION', + 'ERROR_INVALID_OPERATION_ON_QUORUM', + 'ERROR_INVALID_OPLOCK_PROTOCOL', + 'ERROR_INVALID_ORDINAL', + 'ERROR_INVALID_OWNER', + 'ERROR_INVALID_PACKAGE_SID_LENGTH', + 'ERROR_INVALID_PARAMETER', + 'ERROR_INVALID_PASSWORD', + 'ERROR_INVALID_PASSWORDNAME', + 'ERROR_INVALID_PATCH_XML', + 'ERROR_INVALID_PEP_INFO_VERSION', + 'ERROR_INVALID_PIXEL_FORMAT', + 'ERROR_INVALID_PLUGPLAY_DEVICE_PATH', + 'ERROR_INVALID_PORT_ATTRIBUTES', + 'ERROR_INVALID_PRIMARY_GROUP', + 'ERROR_INVALID_PRINTER_COMMAND', + 'ERROR_INVALID_PRINTER_DRIVER_MANIFEST', + 'ERROR_INVALID_PRINTER_NAME', + 'ERROR_INVALID_PRINTER_STATE', + 'ERROR_INVALID_PRINT_MONITOR', + 'ERROR_INVALID_PRIORITY', + 'ERROR_INVALID_PROFILE', + 'ERROR_INVALID_QUOTA_LOWER', + 'ERROR_INVALID_REPARSE_DATA', + 'ERROR_INVALID_RUNLEVEL_SETTING', + 'ERROR_INVALID_SCROLLBAR_RANGE', + 'ERROR_INVALID_SECURITY_DESCR', + 'ERROR_INVALID_SEGDPL', + 'ERROR_INVALID_SEGMENT_NUMBER', + 'ERROR_INVALID_SEPARATOR_FILE', + 'ERROR_INVALID_SERVER_STATE', + 'ERROR_INVALID_SERVICENAME', + 'ERROR_INVALID_SERVICE_ACCOUNT', + 'ERROR_INVALID_SERVICE_CONTROL', + 'ERROR_INVALID_SERVICE_LOCK', + 'ERROR_INVALID_SHARENAME', + 'ERROR_INVALID_SHOWWIN_COMMAND', + 'ERROR_INVALID_SID', + 'ERROR_INVALID_SIGNAL_NUMBER', + 'ERROR_INVALID_SPI_VALUE', + 'ERROR_INVALID_STACKSEG', + 'ERROR_INVALID_STAGED_SIGNATURE', + 'ERROR_INVALID_STARTING_CODESEG', + 'ERROR_INVALID_STATE', + 'ERROR_INVALID_SUB_AUTHORITY', + 'ERROR_INVALID_TABLE', + 'ERROR_INVALID_TARGET_HANDLE', + 'ERROR_INVALID_TASK_INDEX', + 'ERROR_INVALID_TASK_NAME', + 'ERROR_INVALID_THREAD_ID', + 'ERROR_INVALID_TIME', + 'ERROR_INVALID_TOKEN', + 'ERROR_INVALID_TRANSACTION', + 'ERROR_INVALID_TRANSFORM', + 'ERROR_INVALID_UNWIND_TARGET', + 'ERROR_INVALID_USER_BUFFER', + 'ERROR_INVALID_USER_PRINCIPAL_NAME', + 'ERROR_INVALID_VARIANT', + 'ERROR_INVALID_VERIFY_SWITCH', + 'ERROR_INVALID_WINDOW_HANDLE', + 'ERROR_INVALID_WINDOW_STYLE', + 'ERROR_INVALID_WORKSTATION', + 'ERROR_IOPL_NOT_ENABLED', + 'ERROR_IO_DEVICE', + 'ERROR_IO_INCOMPLETE', + 'ERROR_IO_PENDING', + 'ERROR_IO_PREEMPTED', + 'ERROR_IO_PRIVILEGE_FAILED', + 'ERROR_IO_REISSUE_AS_CACHED', + 'ERROR_IPSEC_AUTH_FIREWALL_DROP', + 'ERROR_IPSEC_BAD_SPI', + 'ERROR_IPSEC_CLEAR_TEXT_DROP', + 'ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND', + 'ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND', + 'ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND', + 'ERROR_IPSEC_DOSP_BLOCK', + 'ERROR_IPSEC_DOSP_INVALID_PACKET', + 'ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED', + 'ERROR_IPSEC_DOSP_MAX_ENTRIES', + 'ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES', + 'ERROR_IPSEC_DOSP_NOT_INSTALLED', + 'ERROR_IPSEC_DOSP_RECEIVED_MULTICAST', + 'ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED', + 'ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED', + 'ERROR_IPSEC_IKE_ATTRIB_FAIL', + 'ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE', + 'ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY', + 'ERROR_IPSEC_IKE_AUTH_FAIL', + 'ERROR_IPSEC_IKE_BENIGN_REINIT', + 'ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH', + 'ERROR_IPSEC_IKE_CGA_AUTH_FAILED', + 'ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS', + 'ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED', + 'ERROR_IPSEC_IKE_CRL_FAILED', + 'ERROR_IPSEC_IKE_DECRYPT', + 'ERROR_IPSEC_IKE_DH_FAIL', + 'ERROR_IPSEC_IKE_DH_FAILURE', + 'ERROR_IPSEC_IKE_DOS_COOKIE_SENT', + 'ERROR_IPSEC_IKE_DROP_NO_RESPONSE', + 'ERROR_IPSEC_IKE_ENCRYPT', + 'ERROR_IPSEC_IKE_ERROR', + 'ERROR_IPSEC_IKE_FAILQUERYSSP', + 'ERROR_IPSEC_IKE_FAILSSPINIT', + 'ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR', + 'ERROR_IPSEC_IKE_GETSPIFAIL', + 'ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE', + 'ERROR_IPSEC_IKE_INVALID_AUTH_ALG', + 'ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD', + 'ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN', + 'ERROR_IPSEC_IKE_INVALID_CERT_TYPE', + 'ERROR_IPSEC_IKE_INVALID_COOKIE', + 'ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG', + 'ERROR_IPSEC_IKE_INVALID_FILTER', + 'ERROR_IPSEC_IKE_INVALID_GROUP', + 'ERROR_IPSEC_IKE_INVALID_HASH', + 'ERROR_IPSEC_IKE_INVALID_HASH_ALG', + 'ERROR_IPSEC_IKE_INVALID_HASH_SIZE', + 'ERROR_IPSEC_IKE_INVALID_HEADER', + 'ERROR_IPSEC_IKE_INVALID_KEY_USAGE', + 'ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION', + 'ERROR_IPSEC_IKE_INVALID_MM_FOR_QM', + 'ERROR_IPSEC_IKE_INVALID_PAYLOAD', + 'ERROR_IPSEC_IKE_INVALID_POLICY', + 'ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY', + 'ERROR_IPSEC_IKE_INVALID_SIG', + 'ERROR_IPSEC_IKE_INVALID_SIGNATURE', + 'ERROR_IPSEC_IKE_INVALID_SITUATION', + 'ERROR_IPSEC_IKE_KERBEROS_ERROR', + 'ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL', + 'ERROR_IPSEC_IKE_LOAD_FAILED', + 'ERROR_IPSEC_IKE_LOAD_SOFT_SA', + 'ERROR_IPSEC_IKE_MM_ACQUIRE_DROP', + 'ERROR_IPSEC_IKE_MM_DELAY_DROP', + 'ERROR_IPSEC_IKE_MM_EXPIRED', + 'ERROR_IPSEC_IKE_MM_LIMIT', + 'ERROR_IPSEC_IKE_NEGOTIATION_DISABLED', + 'ERROR_IPSEC_IKE_NEGOTIATION_PENDING', + 'ERROR_IPSEC_IKE_NEG_STATUS_BEGIN', + 'ERROR_IPSEC_IKE_NEG_STATUS_END', + 'ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END', + 'ERROR_IPSEC_IKE_NOTCBPRIV', + 'ERROR_IPSEC_IKE_NO_CERT', + 'ERROR_IPSEC_IKE_NO_MM_POLICY', + 'ERROR_IPSEC_IKE_NO_PEER_CERT', + 'ERROR_IPSEC_IKE_NO_POLICY', + 'ERROR_IPSEC_IKE_NO_PRIVATE_KEY', + 'ERROR_IPSEC_IKE_NO_PUBLIC_KEY', + 'ERROR_IPSEC_IKE_OUT_OF_MEMORY', + 'ERROR_IPSEC_IKE_PEER_CRL_FAILED', + 'ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE', + 'ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID', + 'ERROR_IPSEC_IKE_POLICY_CHANGE', + 'ERROR_IPSEC_IKE_POLICY_MATCH', + 'ERROR_IPSEC_IKE_PROCESS_ERR', + 'ERROR_IPSEC_IKE_PROCESS_ERR_CERT', + 'ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ', + 'ERROR_IPSEC_IKE_PROCESS_ERR_DELETE', + 'ERROR_IPSEC_IKE_PROCESS_ERR_HASH', + 'ERROR_IPSEC_IKE_PROCESS_ERR_ID', + 'ERROR_IPSEC_IKE_PROCESS_ERR_KE', + 'ERROR_IPSEC_IKE_PROCESS_ERR_NATOA', + 'ERROR_IPSEC_IKE_PROCESS_ERR_NONCE', + 'ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY', + 'ERROR_IPSEC_IKE_PROCESS_ERR_PROP', + 'ERROR_IPSEC_IKE_PROCESS_ERR_SA', + 'ERROR_IPSEC_IKE_PROCESS_ERR_SIG', + 'ERROR_IPSEC_IKE_PROCESS_ERR_TRANS', + 'ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR', + 'ERROR_IPSEC_IKE_QM_ACQUIRE_DROP', + 'ERROR_IPSEC_IKE_QM_DELAY_DROP', + 'ERROR_IPSEC_IKE_QM_EXPIRED', + 'ERROR_IPSEC_IKE_QM_LIMIT', + 'ERROR_IPSEC_IKE_QUEUE_DROP_MM', + 'ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM', + 'ERROR_IPSEC_IKE_RATELIMIT_DROP', + 'ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING', + 'ERROR_IPSEC_IKE_RPC_DELETE', + 'ERROR_IPSEC_IKE_SA_DELETED', + 'ERROR_IPSEC_IKE_SA_REAPED', + 'ERROR_IPSEC_IKE_SECLOADFAIL', + 'ERROR_IPSEC_IKE_SHUTTING_DOWN', + 'ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY', + 'ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN', + 'ERROR_IPSEC_IKE_SRVACQFAIL', + 'ERROR_IPSEC_IKE_SRVQUERYCRED', + 'ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE', + 'ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE', + 'ERROR_IPSEC_IKE_TIMED_OUT', + 'ERROR_IPSEC_IKE_TOO_MANY_FILTERS', + 'ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID', + 'ERROR_IPSEC_IKE_UNKNOWN_DOI', + 'ERROR_IPSEC_IKE_UNSUPPORTED_ID', + 'ERROR_IPSEC_INTEGRITY_CHECK_FAILED', + 'ERROR_IPSEC_INVALID_PACKET', + 'ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING', + 'ERROR_IPSEC_MM_AUTH_EXISTS', + 'ERROR_IPSEC_MM_AUTH_IN_USE', + 'ERROR_IPSEC_MM_AUTH_NOT_FOUND', + 'ERROR_IPSEC_MM_AUTH_PENDING_DELETION', + 'ERROR_IPSEC_MM_FILTER_EXISTS', + 'ERROR_IPSEC_MM_FILTER_NOT_FOUND', + 'ERROR_IPSEC_MM_FILTER_PENDING_DELETION', + 'ERROR_IPSEC_MM_POLICY_EXISTS', + 'ERROR_IPSEC_MM_POLICY_IN_USE', + 'ERROR_IPSEC_MM_POLICY_NOT_FOUND', + 'ERROR_IPSEC_MM_POLICY_PENDING_DELETION', + 'ERROR_IPSEC_QM_POLICY_EXISTS', + 'ERROR_IPSEC_QM_POLICY_IN_USE', + 'ERROR_IPSEC_QM_POLICY_NOT_FOUND', + 'ERROR_IPSEC_QM_POLICY_PENDING_DELETION', + 'ERROR_IPSEC_REPLAY_CHECK_FAILED', + 'ERROR_IPSEC_SA_LIFETIME_EXPIRED', + 'ERROR_IPSEC_THROTTLE_DROP', + 'ERROR_IPSEC_TRANSPORT_FILTER_EXISTS', + 'ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND', + 'ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION', + 'ERROR_IPSEC_TUNNEL_FILTER_EXISTS', + 'ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND', + 'ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION', + 'ERROR_IPSEC_WRONG_SA', + 'ERROR_IP_ADDRESS_CONFLICT1', + 'ERROR_IP_ADDRESS_CONFLICT2', + 'ERROR_IRQ_BUSY', + 'ERROR_IS_JOINED', + 'ERROR_IS_JOIN_PATH', + 'ERROR_IS_JOIN_TARGET', + 'ERROR_IS_SUBSTED', + 'ERROR_IS_SUBST_PATH', + 'ERROR_IS_SUBST_TARGET', + 'ERROR_ITERATED_DATA_EXCEEDS_64k', + 'ERROR_JOB_NO_CONTAINER', + 'ERROR_JOIN_TO_JOIN', + 'ERROR_JOIN_TO_SUBST', + 'ERROR_JOURNAL_DELETE_IN_PROGRESS', + 'ERROR_JOURNAL_ENTRY_DELETED', + 'ERROR_JOURNAL_HOOK_SET', + 'ERROR_JOURNAL_NOT_ACTIVE', + 'ERROR_KERNEL_APC', + 'ERROR_KEY_DELETED', + 'ERROR_KEY_HAS_CHILDREN', + 'ERROR_KM_DRIVER_BLOCKED', + 'ERROR_LABEL_TOO_LONG', + 'ERROR_LAST_ADMIN', + 'ERROR_LB_WITHOUT_TABSTOPS', + 'ERROR_LIBRARY_FULL', + 'ERROR_LIBRARY_OFFLINE', + 'ERROR_LICENSE_QUOTA_EXCEEDED', + 'ERROR_LINUX_SUBSYSTEM_NOT_PRESENT', + 'ERROR_LISTBOX_ID_NOT_FOUND', + 'ERROR_LM_CROSS_ENCRYPTION_REQUIRED', + 'ERROR_LOCAL_USER_SESSION_KEY', + 'ERROR_LOCKED', + 'ERROR_LOCK_FAILED', + 'ERROR_LOCK_VIOLATION', + 'ERROR_LOGIN_TIME_RESTRICTION', + 'ERROR_LOGIN_WKSTA_RESTRICTION', + 'ERROR_LOGON_FAILURE', + 'ERROR_LOGON_NOT_GRANTED', + 'ERROR_LOGON_SERVER_CONFLICT', + 'ERROR_LOGON_SESSION_COLLISION', + 'ERROR_LOGON_SESSION_EXISTS', + 'ERROR_LOGON_TYPE_NOT_GRANTED', + 'ERROR_LOG_APPENDED_FLUSH_FAILED', + 'ERROR_LOG_ARCHIVE_IN_PROGRESS', + 'ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS', + 'ERROR_LOG_BLOCKS_EXHAUSTED', + 'ERROR_LOG_BLOCK_INCOMPLETE', + 'ERROR_LOG_BLOCK_INVALID', + 'ERROR_LOG_BLOCK_VERSION', + 'ERROR_LOG_CANT_DELETE', + 'ERROR_LOG_CLIENT_ALREADY_REGISTERED', + 'ERROR_LOG_CLIENT_NOT_REGISTERED', + 'ERROR_LOG_CONTAINER_LIMIT_EXCEEDED', + 'ERROR_LOG_CONTAINER_OPEN_FAILED', + 'ERROR_LOG_CONTAINER_READ_FAILED', + 'ERROR_LOG_CONTAINER_STATE_INVALID', + 'ERROR_LOG_CONTAINER_WRITE_FAILED', + 'ERROR_LOG_CORRUPTION_DETECTED', + 'ERROR_LOG_DEDICATED', + 'ERROR_LOG_EPHEMERAL', + 'ERROR_LOG_FILE_FULL', + 'ERROR_LOG_FULL', + 'ERROR_LOG_FULL_HANDLER_IN_PROGRESS', + 'ERROR_LOG_GROWTH_FAILED', + 'ERROR_LOG_HARD_ERROR', + 'ERROR_LOG_INCONSISTENT_SECURITY', + 'ERROR_LOG_INVALID_RANGE', + 'ERROR_LOG_METADATA_CORRUPT', + 'ERROR_LOG_METADATA_FLUSH_FAILED', + 'ERROR_LOG_METADATA_INCONSISTENT', + 'ERROR_LOG_METADATA_INVALID', + 'ERROR_LOG_MULTIPLEXED', + 'ERROR_LOG_NOT_ENOUGH_CONTAINERS', + 'ERROR_LOG_NO_RESTART', + 'ERROR_LOG_PINNED', + 'ERROR_LOG_PINNED_ARCHIVE_TAIL', + 'ERROR_LOG_PINNED_RESERVATION', + 'ERROR_LOG_POLICY_ALREADY_INSTALLED', + 'ERROR_LOG_POLICY_CONFLICT', + 'ERROR_LOG_POLICY_INVALID', + 'ERROR_LOG_POLICY_NOT_INSTALLED', + 'ERROR_LOG_READ_CONTEXT_INVALID', + 'ERROR_LOG_READ_MODE_INVALID', + 'ERROR_LOG_RECORDS_RESERVED_INVALID', + 'ERROR_LOG_RECORD_NONEXISTENT', + 'ERROR_LOG_RESERVATION_INVALID', + 'ERROR_LOG_RESIZE_INVALID_SIZE', + 'ERROR_LOG_RESTART_INVALID', + 'ERROR_LOG_SECTOR_INVALID', + 'ERROR_LOG_SECTOR_PARITY_INVALID', + 'ERROR_LOG_SECTOR_REMAPPED', + 'ERROR_LOG_SPACE_RESERVED_INVALID', + 'ERROR_LOG_START_OF_LOG', + 'ERROR_LOG_STATE_INVALID', + 'ERROR_LOG_TAIL_INVALID', + 'ERROR_LONGJUMP', + 'ERROR_LOST_MODE_LOGON_RESTRICTION', + 'ERROR_LOST_WRITEBEHIND_DATA', + 'ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR', + 'ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED', + 'ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR', + 'ERROR_LUIDS_EXHAUSTED', + 'ERROR_MACHINE_LOCKED', + 'ERROR_MAGAZINE_NOT_PRESENT', + 'ERROR_MALFORMED_SUBSTITUTION_STRING', + 'ERROR_MAPPED_ALIGNMENT', + 'ERROR_MARKED_TO_DISALLOW_WRITES', + 'ERROR_MARSHALL_OVERFLOW', + 'ERROR_MAX_SESSIONS_REACHED', + 'ERROR_MAX_THRDS_REACHED', + 'ERROR_MCA_EXCEPTION', + 'ERROR_MCA_INTERNAL_ERROR', + 'ERROR_MCA_INVALID_CAPABILITIES_STRING', + 'ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED', + 'ERROR_MCA_INVALID_VCP_VERSION', + 'ERROR_MCA_MCCS_VERSION_MISMATCH', + 'ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION', + 'ERROR_MCA_OCCURED', + 'ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE', + 'ERROR_MCA_UNSUPPORTED_MCCS_VERSION', + 'ERROR_MEDIA_CHANGED', + 'ERROR_MEDIA_CHECK', + 'ERROR_MEDIA_INCOMPATIBLE', + 'ERROR_MEDIA_NOT_AVAILABLE', + 'ERROR_MEDIA_OFFLINE', + 'ERROR_MEDIA_UNAVAILABLE', + 'ERROR_MEDIUM_NOT_ACCESSIBLE', + 'ERROR_MEMBERS_PRIMARY_GROUP', + 'ERROR_MEMBER_IN_ALIAS', + 'ERROR_MEMBER_IN_GROUP', + 'ERROR_MEMBER_NOT_IN_ALIAS', + 'ERROR_MEMBER_NOT_IN_GROUP', + 'ERROR_MEMORY_HARDWARE', + 'ERROR_MENU_ITEM_NOT_FOUND', + 'ERROR_MESSAGE_EXCEEDS_MAX_SIZE', + 'ERROR_MESSAGE_SYNC_ONLY', + 'ERROR_METAFILE_NOT_SUPPORTED', + 'ERROR_META_EXPANSION_TOO_LONG', + 'ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION', + 'ERROR_MISSING_SYSTEMFILE', + 'ERROR_MOD_NOT_FOUND', + 'ERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM', + 'ERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK', + 'ERROR_MONITOR_INVALID_MANUFACTURE_DATE', + 'ERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK', + 'ERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK', + 'ERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK', + 'ERROR_MONITOR_NO_DESCRIPTOR', + 'ERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA', + 'ERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT', + 'ERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED', + 'ERROR_MORE_DATA', + 'ERROR_MORE_WRITES', + 'ERROR_MOUNT_POINT_NOT_RESOLVED', + 'ERROR_MP_PROCESSOR_MISMATCH', + 'ERROR_MRM_AUTOMERGE_ENABLED', + 'ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE', + 'ERROR_MRM_DUPLICATE_ENTRY', + 'ERROR_MRM_DUPLICATE_MAP_NAME', + 'ERROR_MRM_FILEPATH_TOO_LONG', + 'ERROR_MRM_GENERATION_COUNT_MISMATCH', + 'ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE', + 'ERROR_MRM_INVALID_FILE_TYPE', + 'ERROR_MRM_INVALID_PRICONFIG', + 'ERROR_MRM_INVALID_PRI_FILE', + 'ERROR_MRM_INVALID_QUALIFIER_OPERATOR', + 'ERROR_MRM_INVALID_QUALIFIER_VALUE', + 'ERROR_MRM_INVALID_RESOURCE_IDENTIFIER', + 'ERROR_MRM_MAP_NOT_FOUND', + 'ERROR_MRM_MISSING_DEFAULT_LANGUAGE', + 'ERROR_MRM_NAMED_RESOURCE_NOT_FOUND', + 'ERROR_MRM_NO_CANDIDATE', + 'ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD', + 'ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE', + 'ERROR_MRM_PACKAGE_NOT_FOUND', + 'ERROR_MRM_RESOURCE_TYPE_MISMATCH', + 'ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE', + 'ERROR_MRM_TOO_MANY_RESOURCES', + 'ERROR_MRM_UNKNOWN_QUALIFIER', + 'ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE', + 'ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE', + 'ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE', + 'ERROR_MRM_UNSUPPORTED_PROFILE_TYPE', + 'ERROR_MR_MID_NOT_FOUND', + 'ERROR_MUI_FILE_NOT_FOUND', + 'ERROR_MUI_FILE_NOT_LOADED', + 'ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME', + 'ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED', + 'ERROR_MUI_INVALID_FILE', + 'ERROR_MUI_INVALID_LOCALE_NAME', + 'ERROR_MUI_INVALID_RC_CONFIG', + 'ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME', + 'ERROR_MULTIPLE_FAULT_VIOLATION', + 'ERROR_MUTANT_LIMIT_EXCEEDED', + 'ERROR_MUTUAL_AUTH_FAILED', + 'ERROR_NDIS_ADAPTER_NOT_FOUND', + 'ERROR_NDIS_ADAPTER_NOT_READY', + 'ERROR_NDIS_ADAPTER_REMOVED', + 'ERROR_NDIS_ALREADY_MAPPED', + 'ERROR_NDIS_BAD_CHARACTERISTICS', + 'ERROR_NDIS_BAD_VERSION', + 'ERROR_NDIS_BUFFER_TOO_SHORT', + 'ERROR_NDIS_DEVICE_FAILED', + 'ERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE', + 'ERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED', + 'ERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE', + 'ERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED', + 'ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED', + 'ERROR_NDIS_DOT11_MEDIA_IN_USE', + 'ERROR_NDIS_DOT11_POWER_STATE_INVALID', + 'ERROR_NDIS_ERROR_READING_FILE', + 'ERROR_NDIS_FILE_NOT_FOUND', + 'ERROR_NDIS_GROUP_ADDRESS_IN_USE', + 'ERROR_NDIS_INDICATION_REQUIRED', + 'ERROR_NDIS_INTERFACE_CLOSING', + 'ERROR_NDIS_INTERFACE_NOT_FOUND', + 'ERROR_NDIS_INVALID_ADDRESS', + 'ERROR_NDIS_INVALID_DATA', + 'ERROR_NDIS_INVALID_DEVICE_REQUEST', + 'ERROR_NDIS_INVALID_LENGTH', + 'ERROR_NDIS_INVALID_OID', + 'ERROR_NDIS_INVALID_PACKET', + 'ERROR_NDIS_INVALID_PORT', + 'ERROR_NDIS_INVALID_PORT_STATE', + 'ERROR_NDIS_LOW_POWER_STATE', + 'ERROR_NDIS_MEDIA_DISCONNECTED', + 'ERROR_NDIS_MULTICAST_EXISTS', + 'ERROR_NDIS_MULTICAST_FULL', + 'ERROR_NDIS_MULTICAST_NOT_FOUND', + 'ERROR_NDIS_NOT_SUPPORTED', + 'ERROR_NDIS_NO_QUEUES', + 'ERROR_NDIS_OFFLOAD_CONNECTION_REJECTED', + 'ERROR_NDIS_OFFLOAD_PATH_REJECTED', + 'ERROR_NDIS_OFFLOAD_POLICY', + 'ERROR_NDIS_OPEN_FAILED', + 'ERROR_NDIS_PAUSED', + 'ERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL', + 'ERROR_NDIS_PM_WOL_PATTERN_LIST_FULL', + 'ERROR_NDIS_REINIT_REQUIRED', + 'ERROR_NDIS_REQUEST_ABORTED', + 'ERROR_NDIS_RESET_IN_PROGRESS', + 'ERROR_NDIS_RESOURCE_CONFLICT', + 'ERROR_NDIS_UNSUPPORTED_MEDIA', + 'ERROR_NDIS_UNSUPPORTED_REVISION', + 'ERROR_NEEDS_REGISTRATION', + 'ERROR_NEEDS_REMEDIATION', + 'ERROR_NEGATIVE_SEEK', + 'ERROR_NESTING_NOT_ALLOWED', + 'ERROR_NETLOGON_NOT_STARTED', + 'ERROR_NETNAME_DELETED', + 'ERROR_NETWORK_ACCESS_DENIED', + 'ERROR_NETWORK_ACCESS_DENIED_EDP', + 'ERROR_NETWORK_BUSY', + 'ERROR_NETWORK_NOT_AVAILABLE', + 'ERROR_NETWORK_UNREACHABLE', + 'ERROR_NET_OPEN_FAILED', + 'ERROR_NET_WRITE_FAULT', + 'ERROR_NOACCESS', + 'ERROR_NODE_CANNOT_BE_CLUSTERED', + 'ERROR_NODE_CANT_HOST_RESOURCE', + 'ERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER', + 'ERROR_NODE_NOT_AVAILABLE', + 'ERROR_NOINTERFACE', + 'ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT', + 'ERROR_NOLOGON_SERVER_TRUST_ACCOUNT', + 'ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT', + 'ERROR_NONCORE_GROUPS_FOUND', + 'ERROR_NONE_MAPPED', + 'ERROR_NONPAGED_SYSTEM_RESOURCES', + 'ERROR_NON_ACCOUNT_SID', + 'ERROR_NON_CSV_PATH', + 'ERROR_NON_DOMAIN_SID', + 'ERROR_NON_MDICHILD_WINDOW', + 'ERROR_NOTHING_TO_TERMINATE', + 'ERROR_NOTIFICATION_GUID_ALREADY_DEFINED', + 'ERROR_NOTIFY_CLEANUP', + 'ERROR_NOTIFY_ENUM_DIR', + 'ERROR_NOT_ALLOWED_ON_SYSTEM_FILE', + 'ERROR_NOT_ALL_ASSIGNED', + 'ERROR_NOT_APPCONTAINER', + 'ERROR_NOT_AUTHENTICATED', + 'ERROR_NOT_A_CLOUD_FILE', + 'ERROR_NOT_A_CLOUD_SYNC_ROOT', + 'ERROR_NOT_A_DAX_VOLUME', + 'ERROR_NOT_A_REPARSE_POINT', + 'ERROR_NOT_A_TIERED_VOLUME', + 'ERROR_NOT_CAPABLE', + 'ERROR_NOT_CHILD_WINDOW', + 'ERROR_NOT_CONNECTED', + 'ERROR_NOT_CONTAINER', + 'ERROR_NOT_DAX_MAPPABLE', + 'ERROR_NOT_DOS_DISK', + 'ERROR_NOT_EMPTY', + 'ERROR_NOT_ENOUGH_MEMORY', + 'ERROR_NOT_ENOUGH_QUOTA', + 'ERROR_NOT_ENOUGH_SERVER_MEMORY', + 'ERROR_NOT_EXPORT_FORMAT', + 'ERROR_NOT_FOUND', + 'ERROR_NOT_GUI_PROCESS', + 'ERROR_NOT_JOINED', + 'ERROR_NOT_LOCKED', + 'ERROR_NOT_LOGGED_ON', + 'ERROR_NOT_LOGON_PROCESS', + 'ERROR_NOT_OWNER', + 'ERROR_NOT_QUORUM_CAPABLE', + 'ERROR_NOT_QUORUM_CLASS', + 'ERROR_NOT_READY', + 'ERROR_NOT_READ_FROM_COPY', + 'ERROR_NOT_REDUNDANT_STORAGE', + 'ERROR_NOT_REGISTRY_FILE', + 'ERROR_NOT_SAFEBOOT_SERVICE', + 'ERROR_NOT_SAFE_MODE_DRIVER', + 'ERROR_NOT_SAME_DEVICE', + 'ERROR_NOT_SAME_OBJECT', + 'ERROR_NOT_SNAPSHOT_VOLUME', + 'ERROR_NOT_SUBSTED', + 'ERROR_NOT_SUPPORTED', + 'ERROR_NOT_SUPPORTED_IN_APPCONTAINER', + 'ERROR_NOT_SUPPORTED_ON_DAX', + 'ERROR_NOT_SUPPORTED_ON_SBS', + 'ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER', + 'ERROR_NOT_SUPPORTED_WITH_BTT', + 'ERROR_NOT_TINY_STREAM', + 'ERROR_NO_ACE_CONDITION', + 'ERROR_NO_ADMIN_ACCESS_POINT', + 'ERROR_NO_APPLICABLE_APP_LICENSES_FOUND', + 'ERROR_NO_ASSOCIATION', + 'ERROR_NO_BROWSER_SERVERS_FOUND', + 'ERROR_NO_CALLBACK_ACTIVE', + 'ERROR_NO_DATA', + 'ERROR_NO_DATA_DETECTED', + 'ERROR_NO_EFS', + 'ERROR_NO_EVENT_PAIR', + 'ERROR_NO_GUID_TRANSLATION', + 'ERROR_NO_IMPERSONATION_TOKEN', + 'ERROR_NO_INHERITANCE', + 'ERROR_NO_LINK_TRACKING_IN_TRANSACTION', + 'ERROR_NO_LOGON_SERVERS', + 'ERROR_NO_LOG_SPACE', + 'ERROR_NO_MATCH', + 'ERROR_NO_MEDIA_IN_DRIVE', + 'ERROR_NO_MORE_DEVICES', + 'ERROR_NO_MORE_FILES', + 'ERROR_NO_MORE_ITEMS', + 'ERROR_NO_MORE_MATCHES', + 'ERROR_NO_MORE_SEARCH_HANDLES', + 'ERROR_NO_MORE_USER_HANDLES', + 'ERROR_NO_NETWORK', + 'ERROR_NO_NET_OR_BAD_PATH', + 'ERROR_NO_NVRAM_RESOURCES', + 'ERROR_NO_PAGEFILE', + 'ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND', + 'ERROR_NO_PROC_SLOTS', + 'ERROR_NO_PROMOTION_ACTIVE', + 'ERROR_NO_QUOTAS_FOR_ACCOUNT', + 'ERROR_NO_RANGES_PROCESSED', + 'ERROR_NO_RECOVERY_POLICY', + 'ERROR_NO_RECOVERY_PROGRAM', + 'ERROR_NO_SAVEPOINT_WITH_OPEN_FILES', + 'ERROR_NO_SCROLLBARS', + 'ERROR_NO_SECRETS', + 'ERROR_NO_SECURITY_ON_OBJECT', + 'ERROR_NO_SHUTDOWN_IN_PROGRESS', + 'ERROR_NO_SIGNAL_SENT', + 'ERROR_NO_SITENAME', + 'ERROR_NO_SITE_SETTINGS_OBJECT', + 'ERROR_NO_SPOOL_SPACE', + 'ERROR_NO_SUCH_ALIAS', + 'ERROR_NO_SUCH_DEVICE', + 'ERROR_NO_SUCH_DOMAIN', + 'ERROR_NO_SUCH_GROUP', + 'ERROR_NO_SUCH_LOGON_SESSION', + 'ERROR_NO_SUCH_MEMBER', + 'ERROR_NO_SUCH_PACKAGE', + 'ERROR_NO_SUCH_PRIVILEGE', + 'ERROR_NO_SUCH_SITE', + 'ERROR_NO_SUCH_USER', + 'ERROR_NO_SUPPORTING_DRIVES', + 'ERROR_NO_SYSTEM_MENU', + 'ERROR_NO_SYSTEM_RESOURCES', + 'ERROR_NO_TASK_QUEUE', + 'ERROR_NO_TOKEN', + 'ERROR_NO_TRACKING_SERVICE', + 'ERROR_NO_TRUST_LSA_SECRET', + 'ERROR_NO_TRUST_SAM_ACCOUNT', + 'ERROR_NO_TXF_METADATA', + 'ERROR_NO_UNICODE_TRANSLATION', + 'ERROR_NO_USER_KEYS', + 'ERROR_NO_USER_SESSION_KEY', + 'ERROR_NO_VOLUME_ID', + 'ERROR_NO_VOLUME_LABEL', + 'ERROR_NO_WILDCARD_CHARACTERS', + 'ERROR_NO_WORK_DONE', + 'ERROR_NO_WRITABLE_DC_FOUND', + 'ERROR_NO_YIELD_PERFORMED', + 'ERROR_NTLM_BLOCKED', + 'ERROR_NT_CROSS_ENCRYPTION_REQUIRED', + 'ERROR_NULL_LM_PASSWORD', + 'ERROR_OBJECT_ALREADY_EXISTS', + 'ERROR_OBJECT_IN_LIST', + 'ERROR_OBJECT_NAME_EXISTS', + 'ERROR_OBJECT_NOT_EXTERNALLY_BACKED', + 'ERROR_OBJECT_NOT_FOUND', + 'ERROR_OBJECT_NO_LONGER_EXISTS', + 'ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED', + 'ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED', + 'ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED', + 'ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED', + 'ERROR_OFFSET_ALIGNMENT_VIOLATION', + 'ERROR_OLD_WIN_VERSION', + 'ERROR_ONLY_IF_CONNECTED', + 'ERROR_OPEN_FAILED', + 'ERROR_OPEN_FILES', + 'ERROR_OPERATION_ABORTED', + 'ERROR_OPERATION_IN_PROGRESS', + 'ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT', + 'ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION', + 'ERROR_OPLOCK_BREAK_IN_PROGRESS', + 'ERROR_OPLOCK_HANDLE_CLOSED', + 'ERROR_OPLOCK_NOT_GRANTED', + 'ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE', + 'ERROR_ORPHAN_NAME_EXHAUSTED', + 'ERROR_OUTOFMEMORY', + 'ERROR_OUT_OF_PAPER', + 'ERROR_OUT_OF_STRUCTURES', + 'ERROR_OVERRIDE_NOCHANGES', + 'ERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES', + 'ERROR_PACKAGES_IN_USE', + 'ERROR_PACKAGES_REPUTATION_CHECK_FAILED', + 'ERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT', + 'ERROR_PACKAGE_ALREADY_EXISTS', + 'ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING', + 'ERROR_PACKAGE_MOVE_FAILED', + 'ERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM', + 'ERROR_PACKAGE_REPOSITORY_CORRUPTED', + 'ERROR_PACKAGE_STAGING_ONHOLD', + 'ERROR_PACKAGE_UPDATING', + 'ERROR_PAGED_SYSTEM_RESOURCES', + 'ERROR_PAGEFILE_CREATE_FAILED', + 'ERROR_PAGEFILE_QUOTA', + 'ERROR_PAGEFILE_QUOTA_EXCEEDED', + 'ERROR_PAGE_FAULT_COPY_ON_WRITE', + 'ERROR_PAGE_FAULT_DEMAND_ZERO', + 'ERROR_PAGE_FAULT_GUARD_PAGE', + 'ERROR_PAGE_FAULT_PAGING_FILE', + 'ERROR_PAGE_FAULT_TRANSITION', + 'ERROR_PARAMETER_QUOTA_EXCEEDED', + 'ERROR_PARTIAL_COPY', + 'ERROR_PARTITION_FAILURE', + 'ERROR_PARTITION_TERMINATING', + 'ERROR_PASSWORD_CHANGE_REQUIRED', + 'ERROR_PASSWORD_EXPIRED', + 'ERROR_PASSWORD_MUST_CHANGE', + 'ERROR_PASSWORD_RESTRICTION', + 'ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT', + 'ERROR_PATCH_NO_SEQUENCE', + 'ERROR_PATCH_PACKAGE_INVALID', + 'ERROR_PATCH_PACKAGE_OPEN_FAILED', + 'ERROR_PATCH_PACKAGE_REJECTED', + 'ERROR_PATCH_PACKAGE_UNSUPPORTED', + 'ERROR_PATCH_REMOVAL_DISALLOWED', + 'ERROR_PATCH_REMOVAL_UNSUPPORTED', + 'ERROR_PATCH_TARGET_NOT_FOUND', + 'ERROR_PATH_BUSY', + 'ERROR_PATH_NOT_FOUND', + 'ERROR_PER_USER_TRUST_QUOTA_EXCEEDED', + 'ERROR_PIPE_BUSY', + 'ERROR_PIPE_CONNECTED', + 'ERROR_PIPE_LISTENING', + 'ERROR_PIPE_LOCAL', + 'ERROR_PIPE_NOT_CONNECTED', + 'ERROR_PKINIT_FAILURE', + 'ERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND', + 'ERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED', + 'ERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED', + 'ERROR_PLATFORM_MANIFEST_INVALID', + 'ERROR_PLATFORM_MANIFEST_NOT_ACTIVE', + 'ERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED', + 'ERROR_PLATFORM_MANIFEST_NOT_SIGNED', + 'ERROR_PLUGPLAY_QUERY_VETOED', + 'ERROR_PNP_BAD_MPS_TABLE', + 'ERROR_PNP_INVALID_ID', + 'ERROR_PNP_IRQ_TRANSLATION_FAILED', + 'ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT', + 'ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT', + 'ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT', + 'ERROR_PNP_REBOOT_REQUIRED', + 'ERROR_PNP_RESTART_ENUMERATION', + 'ERROR_PNP_TRANSLATION_FAILED', + 'ERROR_POINT_NOT_FOUND', + 'ERROR_POLICY_OBJECT_NOT_FOUND', + 'ERROR_POLICY_ONLY_IN_DS', + 'ERROR_POPUP_ALREADY_ACTIVE', + 'ERROR_PORT_MESSAGE_TOO_LONG', + 'ERROR_PORT_NOT_SET', + 'ERROR_PORT_UNREACHABLE', + 'ERROR_POSSIBLE_DEADLOCK', + 'ERROR_POTENTIAL_FILE_FOUND', + 'ERROR_PREDEFINED_HANDLE', + 'ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED', + 'ERROR_PRINTER_ALREADY_EXISTS', + 'ERROR_PRINTER_DELETED', + 'ERROR_PRINTER_DRIVER_ALREADY_INSTALLED', + 'ERROR_PRINTER_DRIVER_BLOCKED', + 'ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED', + 'ERROR_PRINTER_DRIVER_IN_USE', + 'ERROR_PRINTER_DRIVER_PACKAGE_IN_USE', + 'ERROR_PRINTER_DRIVER_WARNED', + 'ERROR_PRINTER_HAS_JOBS_QUEUED', + 'ERROR_PRINTER_NOT_FOUND', + 'ERROR_PRINTER_NOT_SHAREABLE', + 'ERROR_PRINTQ_FULL', + 'ERROR_PRINT_CANCELLED', + 'ERROR_PRINT_JOB_RESTART_REQUIRED', + 'ERROR_PRINT_MONITOR_ALREADY_INSTALLED', + 'ERROR_PRINT_MONITOR_IN_USE', + 'ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED', + 'ERROR_PRIVATE_DIALOG_INDEX', + 'ERROR_PRIVILEGE_NOT_HELD', + 'ERROR_PRI_MERGE_ADD_FILE_FAILED', + 'ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED', + 'ERROR_PRI_MERGE_INVALID_FILE_NAME', + 'ERROR_PRI_MERGE_LOAD_FILE_FAILED', + 'ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED', + 'ERROR_PRI_MERGE_MISSING_SCHEMA', + 'ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED', + 'ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED', + 'ERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED', + 'ERROR_PRI_MERGE_VERSION_MISMATCH', + 'ERROR_PRI_MERGE_WRITE_FILE_FAILED', + 'ERROR_PROCESS_ABORTED', + 'ERROR_PROCESS_IN_JOB', + 'ERROR_PROCESS_IS_PROTECTED', + 'ERROR_PROCESS_MODE_ALREADY_BACKGROUND', + 'ERROR_PROCESS_MODE_NOT_BACKGROUND', + 'ERROR_PROCESS_NOT_IN_JOB', + 'ERROR_PROC_NOT_FOUND', + 'ERROR_PRODUCT_UNINSTALLED', + 'ERROR_PRODUCT_VERSION', + 'ERROR_PROFILE_DOES_NOT_MATCH_DEVICE', + 'ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE', + 'ERROR_PROFILE_NOT_FOUND', + 'ERROR_PROFILING_AT_LIMIT', + 'ERROR_PROFILING_NOT_STARTED', + 'ERROR_PROFILING_NOT_STOPPED', + 'ERROR_PROMOTION_ACTIVE', + 'ERROR_PROTOCOL_UNREACHABLE', + 'ERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED', + 'ERROR_PWD_HISTORY_CONFLICT', + 'ERROR_PWD_TOO_LONG', + 'ERROR_PWD_TOO_RECENT', + 'ERROR_PWD_TOO_SHORT', + 'ERROR_QUERY_STORAGE_ERROR', + 'ERROR_QUORUMLOG_OPEN_FAILED', + 'ERROR_QUORUM_DISK_NOT_FOUND', + 'ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP', + 'ERROR_QUORUM_OWNER_ALIVE', + 'ERROR_QUORUM_RESOURCE', + 'ERROR_QUORUM_RESOURCE_ONLINE_FAILED', + 'ERROR_QUOTA_ACTIVITY', + 'ERROR_QUOTA_LIST_INCONSISTENT', + 'ERROR_RANGE_LIST_CONFLICT', + 'ERROR_RANGE_NOT_FOUND', + 'ERROR_RDP_PROTOCOL_ERROR', + 'ERROR_READ_FAULT', + 'ERROR_RECEIVE_EXPEDITED', + 'ERROR_RECEIVE_PARTIAL', + 'ERROR_RECEIVE_PARTIAL_EXPEDITED', + 'ERROR_RECOVERY_FAILURE', + 'ERROR_RECOVERY_FILE_CORRUPT', + 'ERROR_RECOVERY_NOT_NEEDED', + 'ERROR_REC_NON_EXISTENT', + 'ERROR_REDIRECTOR_HAS_OPEN_HANDLES', + 'ERROR_REDIR_PAUSED', + 'ERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED', + 'ERROR_REGISTRY_CORRUPT', + 'ERROR_REGISTRY_HIVE_RECOVERED', + 'ERROR_REGISTRY_IO_FAILED', + 'ERROR_REGISTRY_QUOTA_LIMIT', + 'ERROR_REGISTRY_RECOVERED', + 'ERROR_REG_NAT_CONSUMPTION', + 'ERROR_RELOC_CHAIN_XEEDS_SEGLIM', + 'ERROR_REMOTE_FILE_VERSION_MISMATCH', + 'ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED', + 'ERROR_REMOTE_SESSION_LIMIT_EXCEEDED', + 'ERROR_REMOTE_STORAGE_MEDIA_ERROR', + 'ERROR_REMOTE_STORAGE_NOT_ACTIVE', + 'ERROR_REMOVE_FAILED', + 'ERROR_REM_NOT_LIST', + 'ERROR_REPARSE', + 'ERROR_REPARSE_ATTRIBUTE_CONFLICT', + 'ERROR_REPARSE_OBJECT', + 'ERROR_REPARSE_POINT_ENCOUNTERED', + 'ERROR_REPARSE_TAG_INVALID', + 'ERROR_REPARSE_TAG_MISMATCH', + 'ERROR_REPLY_MESSAGE_MISMATCH', + 'ERROR_REQUEST_ABORTED', + 'ERROR_REQUEST_OUT_OF_SEQUENCE', + 'ERROR_REQUEST_PAUSED', + 'ERROR_REQUEST_REFUSED', + 'ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION', + 'ERROR_REQ_NOT_ACCEP', + 'ERROR_RESIDENT_FILE_NOT_SUPPORTED', + 'ERROR_RESILIENCY_FILE_CORRUPT', + 'ERROR_RESMON_CREATE_FAILED', + 'ERROR_RESMON_INVALID_STATE', + 'ERROR_RESMON_ONLINE_FAILED', + 'ERROR_RESMON_SYSTEM_RESOURCES_LACKING', + 'ERROR_RESOURCEMANAGER_NOT_FOUND', + 'ERROR_RESOURCEMANAGER_READ_ONLY', + 'ERROR_RESOURCE_CALL_TIMED_OUT', + 'ERROR_RESOURCE_DATA_NOT_FOUND', + 'ERROR_RESOURCE_DISABLED', + 'ERROR_RESOURCE_ENUM_USER_STOP', + 'ERROR_RESOURCE_FAILED', + 'ERROR_RESOURCE_LANG_NOT_FOUND', + 'ERROR_RESOURCE_NAME_NOT_FOUND', + 'ERROR_RESOURCE_NOT_AVAILABLE', + 'ERROR_RESOURCE_NOT_FOUND', + 'ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE', + 'ERROR_RESOURCE_NOT_ONLINE', + 'ERROR_RESOURCE_NOT_PRESENT', + 'ERROR_RESOURCE_ONLINE', + 'ERROR_RESOURCE_PROPERTIES_STORED', + 'ERROR_RESOURCE_PROPERTY_UNCHANGEABLE', + 'ERROR_RESOURCE_REQUIREMENTS_CHANGED', + 'ERROR_RESOURCE_TYPE_NOT_FOUND', + 'ERROR_RESTART_APPLICATION', + 'ERROR_RESUME_HIBERNATION', + 'ERROR_RETRY', + 'ERROR_REVISION_MISMATCH', + 'ERROR_RING2SEG_MUST_BE_MOVABLE', + 'ERROR_RING2_STACK_IN_USE', + 'ERROR_RMODE_APP', + 'ERROR_RM_ALREADY_STARTED', + 'ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT', + 'ERROR_RM_DISCONNECTED', + 'ERROR_RM_METADATA_CORRUPT', + 'ERROR_RM_NOT_ACTIVE', + 'ERROR_ROLLBACK_TIMER_EXPIRED', + 'ERROR_ROWSNOTRELEASED', + 'ERROR_RPL_NOT_ALLOWED', + 'ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT', + 'ERROR_RUNLEVEL_SWITCH_IN_PROGRESS', + 'ERROR_RUNLEVEL_SWITCH_TIMEOUT', + 'ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED', + 'ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET', + 'ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE', + 'ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER', + 'ERROR_RXACT_COMMITTED', + 'ERROR_RXACT_COMMIT_FAILURE', + 'ERROR_RXACT_COMMIT_NECESSARY', + 'ERROR_RXACT_INVALID_STATE', + 'ERROR_RXACT_STATE_CREATED', + 'ERROR_SAME_DRIVE', + 'ERROR_SAM_INIT_FAILURE', + 'ERROR_SCOPE_NOT_FOUND', + 'ERROR_SCREEN_ALREADY_LOCKED', + 'ERROR_SCRUB_DATA_DISABLED', + 'ERROR_SECCORE_INVALID_COMMAND', + 'ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED', + 'ERROR_SECRET_TOO_LONG', + 'ERROR_SECTOR_NOT_FOUND', + 'ERROR_SECUREBOOT_FILE_REPLACED', + 'ERROR_SECUREBOOT_INVALID_POLICY', + 'ERROR_SECUREBOOT_NOT_BASE_POLICY', + 'ERROR_SECUREBOOT_NOT_ENABLED', + 'ERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY', + 'ERROR_SECUREBOOT_PLATFORM_ID_MISMATCH', + 'ERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION', + 'ERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED', + 'ERROR_SECUREBOOT_POLICY_NOT_SIGNED', + 'ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND', + 'ERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED', + 'ERROR_SECUREBOOT_POLICY_UNKNOWN', + 'ERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH', + 'ERROR_SECUREBOOT_POLICY_VIOLATION', + 'ERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING', + 'ERROR_SECUREBOOT_ROLLBACK_DETECTED', + 'ERROR_SECURITY_STREAM_IS_INCONSISTENT', + 'ERROR_SEEK', + 'ERROR_SEEK_ON_DEVICE', + 'ERROR_SEGMENT_NOTIFICATION', + 'ERROR_SEM_IS_SET', + 'ERROR_SEM_NOT_FOUND', + 'ERROR_SEM_OWNER_DIED', + 'ERROR_SEM_TIMEOUT', + 'ERROR_SEM_USER_LIMIT', + 'ERROR_SERIAL_NO_DEVICE', + 'ERROR_SERVER_DISABLED', + 'ERROR_SERVER_HAS_OPEN_HANDLES', + 'ERROR_SERVER_NOT_DISABLED', + 'ERROR_SERVER_SHUTDOWN_IN_PROGRESS', + 'ERROR_SERVER_SID_MISMATCH', + 'ERROR_SERVICES_FAILED_AUTOSTART', + 'ERROR_SERVICE_ALREADY_RUNNING', + 'ERROR_SERVICE_CANNOT_ACCEPT_CTRL', + 'ERROR_SERVICE_DATABASE_LOCKED', + 'ERROR_SERVICE_DEPENDENCY_DELETED', + 'ERROR_SERVICE_DEPENDENCY_FAIL', + 'ERROR_SERVICE_DISABLED', + 'ERROR_SERVICE_DOES_NOT_EXIST', + 'ERROR_SERVICE_EXISTS', + 'ERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE', + 'ERROR_SERVICE_LOGON_FAILED', + 'ERROR_SERVICE_MARKED_FOR_DELETE', + 'ERROR_SERVICE_NEVER_STARTED', + 'ERROR_SERVICE_NOTIFICATION', + 'ERROR_SERVICE_NOTIFY_CLIENT_LAGGING', + 'ERROR_SERVICE_NOT_ACTIVE', + 'ERROR_SERVICE_NOT_FOUND', + 'ERROR_SERVICE_NOT_IN_EXE', + 'ERROR_SERVICE_NO_THREAD', + 'ERROR_SERVICE_REQUEST_TIMEOUT', + 'ERROR_SERVICE_SPECIFIC_ERROR', + 'ERROR_SERVICE_START_HANG', + 'ERROR_SESSION_CREDENTIAL_CONFLICT', + 'ERROR_SETCOUNT_ON_BAD_LB', + 'ERROR_SETMARK_DETECTED', + 'ERROR_SET_CONTEXT_DENIED', + 'ERROR_SET_NOT_FOUND', + 'ERROR_SET_POWER_STATE_FAILED', + 'ERROR_SET_POWER_STATE_VETOED', + 'ERROR_SHARED_POLICY', + 'ERROR_SHARING_BUFFER_EXCEEDED', + 'ERROR_SHARING_PAUSED', + 'ERROR_SHARING_VIOLATION', + 'ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME', + 'ERROR_SHUTDOWN_CLUSTER', + 'ERROR_SHUTDOWN_IN_PROGRESS', + 'ERROR_SHUTDOWN_IS_SCHEDULED', + 'ERROR_SHUTDOWN_USERS_LOGGED_ON', + 'ERROR_SIGNAL_PENDING', + 'ERROR_SIGNAL_REFUSED', + 'ERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER', + 'ERROR_SINGLE_INSTANCE_APP', + 'ERROR_SMARTCARD_SUBSYSTEM_FAILURE', + 'ERROR_SMB1_NOT_AVAILABLE', + 'ERROR_SMB_BAD_CLUSTER_DIALECT', + 'ERROR_SMB_GUEST_LOGON_BLOCKED', + 'ERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP', + 'ERROR_SMI_PRIMITIVE_INSTALLER_FAILED', + 'ERROR_SMR_GARBAGE_COLLECTION_REQUIRED', + 'ERROR_SOME_NOT_MAPPED', + 'ERROR_SOURCE_ELEMENT_EMPTY', + 'ERROR_SPACES_ALLOCATION_SIZE_INVALID', + 'ERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID', + 'ERROR_SPACES_DRIVE_REDUNDANCY_INVALID', + 'ERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID', + 'ERROR_SPACES_ENCLOSURE_AWARE_INVALID', + 'ERROR_SPACES_ENTRY_INCOMPLETE', + 'ERROR_SPACES_ENTRY_INVALID', + 'ERROR_SPACES_EXTENDED_ERROR', + 'ERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID', + 'ERROR_SPACES_INTERLEAVE_LENGTH_INVALID', + 'ERROR_SPACES_INTERNAL_ERROR', + 'ERROR_SPACES_NOT_ENOUGH_DRIVES', + 'ERROR_SPACES_NUMBER_OF_COLUMNS_INVALID', + 'ERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID', + 'ERROR_SPACES_NUMBER_OF_GROUPS_INVALID', + 'ERROR_SPACES_PARITY_LAYOUT_INVALID', + 'ERROR_SPACES_POOL_WAS_DELETED', + 'ERROR_SPACES_PROVISIONING_TYPE_INVALID', + 'ERROR_SPACES_RESILIENCY_TYPE_INVALID', + 'ERROR_SPACES_WRITE_CACHE_SIZE_INVALID', + 'ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION', + 'ERROR_SPECIAL_ACCOUNT', + 'ERROR_SPECIAL_GROUP', + 'ERROR_SPECIAL_USER', + 'ERROR_SPL_NO_ADDJOB', + 'ERROR_SPL_NO_STARTDOC', + 'ERROR_SPOOL_FILE_NOT_FOUND', + 'ERROR_SRC_SRV_DLL_LOAD_FAILED', + 'ERROR_STACK_BUFFER_OVERRUN', + 'ERROR_STACK_OVERFLOW', + 'ERROR_STACK_OVERFLOW_READ', + 'ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED', + 'ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED', + 'ERROR_STATE_CREATE_CONTAINER_FAILED', + 'ERROR_STATE_DELETE_CONTAINER_FAILED', + 'ERROR_STATE_DELETE_SETTING_FAILED', + 'ERROR_STATE_ENUMERATE_CONTAINER_FAILED', + 'ERROR_STATE_ENUMERATE_SETTINGS_FAILED', + 'ERROR_STATE_GET_VERSION_FAILED', + 'ERROR_STATE_LOAD_STORE_FAILED', + 'ERROR_STATE_OPEN_CONTAINER_FAILED', + 'ERROR_STATE_QUERY_SETTING_FAILED', + 'ERROR_STATE_READ_COMPOSITE_SETTING_FAILED', + 'ERROR_STATE_READ_SETTING_FAILED', + 'ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED', + 'ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED', + 'ERROR_STATE_SET_VERSION_FAILED', + 'ERROR_STATE_STRUCTURED_RESET_FAILED', + 'ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED', + 'ERROR_STATE_WRITE_SETTING_FAILED', + 'ERROR_STATIC_INIT', + 'ERROR_STOPPED_ON_SYMLINK', + 'ERROR_STORAGE_LOST_DATA_PERSISTENCE', + 'ERROR_STORAGE_RESERVE_ALREADY_EXISTS', + 'ERROR_STORAGE_RESERVE_DOES_NOT_EXIST', + 'ERROR_STORAGE_RESERVE_ID_INVALID', + 'ERROR_STORAGE_RESERVE_NOT_EMPTY', + 'ERROR_STORAGE_TOPOLOGY_ID_MISMATCH', + 'ERROR_STREAM_MINIVERSION_NOT_FOUND', + 'ERROR_STREAM_MINIVERSION_NOT_VALID', + 'ERROR_STRICT_CFG_VIOLATION', + 'ERROR_SUBST_TO_JOIN', + 'ERROR_SUBST_TO_SUBST', + 'ERROR_SUCCESS', + 'ERROR_SUCCESS_REBOOT_INITIATED', + 'ERROR_SUCCESS_REBOOT_REQUIRED', + 'ERROR_SUCCESS_RESTART_REQUIRED', + 'ERROR_SVHDX_ERROR_NOT_AVAILABLE', + 'ERROR_SVHDX_ERROR_STORED', + 'ERROR_SVHDX_NO_INITIATOR', + 'ERROR_SVHDX_RESERVATION_CONFLICT', + 'ERROR_SVHDX_UNIT_ATTENTION_AVAILABLE', + 'ERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED', + 'ERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED', + 'ERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED', + 'ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED', + 'ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED', + 'ERROR_SVHDX_VERSION_MISMATCH', + 'ERROR_SVHDX_WRONG_FILE_TYPE', + 'ERROR_SWAPERROR', + 'ERROR_SXS_ACTIVATION_CONTEXT_DISABLED', + 'ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT', + 'ERROR_SXS_ASSEMBLY_MISSING', + 'ERROR_SXS_ASSEMBLY_NOT_FOUND', + 'ERROR_SXS_ASSEMBLY_NOT_LOCKED', + 'ERROR_SXS_CANT_GEN_ACTCTX', + 'ERROR_SXS_COMPONENT_STORE_CORRUPT', + 'ERROR_SXS_CORRUPTION', + 'ERROR_SXS_CORRUPT_ACTIVATION_STACK', + 'ERROR_SXS_DUPLICATE_ACTIVATABLE_CLASS', + 'ERROR_SXS_DUPLICATE_ASSEMBLY_NAME', + 'ERROR_SXS_DUPLICATE_CLSID', + 'ERROR_SXS_DUPLICATE_DLL_NAME', + 'ERROR_SXS_DUPLICATE_IID', + 'ERROR_SXS_DUPLICATE_PROGID', + 'ERROR_SXS_DUPLICATE_TLBID', + 'ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME', + 'ERROR_SXS_EARLY_DEACTIVATION', + 'ERROR_SXS_FILE_HASH_MISMATCH', + 'ERROR_SXS_FILE_HASH_MISSING', + 'ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY', + 'ERROR_SXS_IDENTITIES_DIFFERENT', + 'ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE', + 'ERROR_SXS_IDENTITY_PARSE_ERROR', + 'ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN', + 'ERROR_SXS_INVALID_ACTCTXDATA_FORMAT', + 'ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE', + 'ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME', + 'ERROR_SXS_INVALID_DEACTIVATION', + 'ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME', + 'ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE', + 'ERROR_SXS_INVALID_XML_NAMESPACE_URI', + 'ERROR_SXS_KEY_NOT_FOUND', + 'ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED', + 'ERROR_SXS_MANIFEST_FORMAT_ERROR', + 'ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT', + 'ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE', + 'ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE', + 'ERROR_SXS_MANIFEST_PARSE_ERROR', + 'ERROR_SXS_MANIFEST_TOO_BIG', + 'ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE', + 'ERROR_SXS_MULTIPLE_DEACTIVATION', + 'ERROR_SXS_POLICY_PARSE_ERROR', + 'ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT', + 'ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET', + 'ERROR_SXS_PROCESS_TERMINATION_REQUESTED', + 'ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING', + 'ERROR_SXS_PROTECTION_CATALOG_NOT_VALID', + 'ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT', + 'ERROR_SXS_PROTECTION_RECOVERY_FAILED', + 'ERROR_SXS_RELEASE_ACTIVATION_CONTEXT', + 'ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED', + 'ERROR_SXS_SECTION_NOT_FOUND', + 'ERROR_SXS_SETTING_NOT_REGISTERED', + 'ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY', + 'ERROR_SXS_THREAD_QUERIES_DISABLED', + 'ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE', + 'ERROR_SXS_UNKNOWN_ENCODING', + 'ERROR_SXS_UNKNOWN_ENCODING_GROUP', + 'ERROR_SXS_UNTRANSLATABLE_HRESULT', + 'ERROR_SXS_VERSION_CONFLICT', + 'ERROR_SXS_WRONG_SECTION_TYPE', + 'ERROR_SXS_XML_E_BADCHARDATA', + 'ERROR_SXS_XML_E_BADCHARINSTRING', + 'ERROR_SXS_XML_E_BADNAMECHAR', + 'ERROR_SXS_XML_E_BADPEREFINSUBSET', + 'ERROR_SXS_XML_E_BADSTARTNAMECHAR', + 'ERROR_SXS_XML_E_BADXMLCASE', + 'ERROR_SXS_XML_E_BADXMLDECL', + 'ERROR_SXS_XML_E_COMMENTSYNTAX', + 'ERROR_SXS_XML_E_DUPLICATEATTRIBUTE', + 'ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE', + 'ERROR_SXS_XML_E_EXPECTINGTAGEND', + 'ERROR_SXS_XML_E_INCOMPLETE_ENCODING', + 'ERROR_SXS_XML_E_INTERNALERROR', + 'ERROR_SXS_XML_E_INVALIDATROOTLEVEL', + 'ERROR_SXS_XML_E_INVALIDENCODING', + 'ERROR_SXS_XML_E_INVALIDSWITCH', + 'ERROR_SXS_XML_E_INVALID_DECIMAL', + 'ERROR_SXS_XML_E_INVALID_HEXIDECIMAL', + 'ERROR_SXS_XML_E_INVALID_STANDALONE', + 'ERROR_SXS_XML_E_INVALID_UNICODE', + 'ERROR_SXS_XML_E_INVALID_VERSION', + 'ERROR_SXS_XML_E_MISSINGEQUALS', + 'ERROR_SXS_XML_E_MISSINGQUOTE', + 'ERROR_SXS_XML_E_MISSINGROOT', + 'ERROR_SXS_XML_E_MISSINGSEMICOLON', + 'ERROR_SXS_XML_E_MISSINGWHITESPACE', + 'ERROR_SXS_XML_E_MISSING_PAREN', + 'ERROR_SXS_XML_E_MULTIPLEROOTS', + 'ERROR_SXS_XML_E_MULTIPLE_COLONS', + 'ERROR_SXS_XML_E_RESERVEDNAMESPACE', + 'ERROR_SXS_XML_E_UNBALANCEDPAREN', + 'ERROR_SXS_XML_E_UNCLOSEDCDATA', + 'ERROR_SXS_XML_E_UNCLOSEDCOMMENT', + 'ERROR_SXS_XML_E_UNCLOSEDDECL', + 'ERROR_SXS_XML_E_UNCLOSEDENDTAG', + 'ERROR_SXS_XML_E_UNCLOSEDSTARTTAG', + 'ERROR_SXS_XML_E_UNCLOSEDSTRING', + 'ERROR_SXS_XML_E_UNCLOSEDTAG', + 'ERROR_SXS_XML_E_UNEXPECTEDENDTAG', + 'ERROR_SXS_XML_E_UNEXPECTEDEOF', + 'ERROR_SXS_XML_E_UNEXPECTED_STANDALONE', + 'ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE', + 'ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK', + 'ERROR_SXS_XML_E_XMLDECLSYNTAX', + 'ERROR_SYMLINK_CLASS_DISABLED', + 'ERROR_SYMLINK_NOT_SUPPORTED', + 'ERROR_SYNCHRONIZATION_REQUIRED', + 'ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED', + 'ERROR_SYSTEM_DEVICE_NOT_FOUND', + 'ERROR_SYSTEM_HIVE_TOO_LARGE', + 'ERROR_SYSTEM_IMAGE_BAD_SIGNATURE', + 'ERROR_SYSTEM_INTEGRITY_INVALID_POLICY', + 'ERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED', + 'ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION', + 'ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED', + 'ERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED', + 'ERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES', + 'ERROR_SYSTEM_NEEDS_REMEDIATION', + 'ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION', + 'ERROR_SYSTEM_POWERSTATE_TRANSITION', + 'ERROR_SYSTEM_PROCESS_TERMINATED', + 'ERROR_SYSTEM_SHUTDOWN', + 'ERROR_SYSTEM_TRACE', + 'ERROR_TAG_NOT_FOUND', + 'ERROR_TAG_NOT_PRESENT', + 'ERROR_THREAD_1_INACTIVE', + 'ERROR_THREAD_ALREADY_IN_TASK', + 'ERROR_THREAD_MODE_ALREADY_BACKGROUND', + 'ERROR_THREAD_MODE_NOT_BACKGROUND', + 'ERROR_THREAD_NOT_IN_PROCESS', + 'ERROR_THREAD_WAS_SUSPENDED', + 'ERROR_TIERING_ALREADY_PROCESSING', + 'ERROR_TIERING_CANNOT_PIN_OBJECT', + 'ERROR_TIERING_FILE_IS_NOT_PINNED', + 'ERROR_TIERING_INVALID_FILE_ID', + 'ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME', + 'ERROR_TIERING_STORAGE_TIER_NOT_FOUND', + 'ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS', + 'ERROR_TIERING_WRONG_CLUSTER_NODE', + 'ERROR_TIMEOUT', + 'ERROR_TIMER_NOT_CANCELED', + 'ERROR_TIMER_RESOLUTION_NOT_SET', + 'ERROR_TIMER_RESUME_IGNORED', + 'ERROR_TIME_SENSITIVE_THREAD', + 'ERROR_TIME_SKEW', + 'ERROR_TLW_WITH_WSCHILD', + 'ERROR_TM_IDENTITY_MISMATCH', + 'ERROR_TM_INITIALIZATION_FAILED', + 'ERROR_TM_VOLATILE', + 'ERROR_TOKEN_ALREADY_IN_USE', + 'ERROR_TOO_MANY_CMDS', + 'ERROR_TOO_MANY_CONTEXT_IDS', + 'ERROR_TOO_MANY_DESCRIPTORS', + 'ERROR_TOO_MANY_LINKS', + 'ERROR_TOO_MANY_LUIDS_REQUESTED', + 'ERROR_TOO_MANY_MODULES', + 'ERROR_TOO_MANY_MUXWAITERS', + 'ERROR_TOO_MANY_NAMES', + 'ERROR_TOO_MANY_OPEN_FILES', + 'ERROR_TOO_MANY_POSTS', + 'ERROR_TOO_MANY_SECRETS', + 'ERROR_TOO_MANY_SEMAPHORES', + 'ERROR_TOO_MANY_SEM_REQUESTS', + 'ERROR_TOO_MANY_SESS', + 'ERROR_TOO_MANY_SIDS', + 'ERROR_TOO_MANY_TCBS', + 'ERROR_TOO_MANY_THREADS', + 'ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE', + 'ERROR_TRANSACTIONAL_CONFLICT', + 'ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED', + 'ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH', + 'ERROR_TRANSACTIONMANAGER_NOT_FOUND', + 'ERROR_TRANSACTIONMANAGER_NOT_ONLINE', + 'ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION', + 'ERROR_TRANSACTIONS_NOT_FROZEN', + 'ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE', + 'ERROR_TRANSACTION_ALREADY_ABORTED', + 'ERROR_TRANSACTION_ALREADY_COMMITTED', + 'ERROR_TRANSACTION_FREEZE_IN_PROGRESS', + 'ERROR_TRANSACTION_INTEGRITY_VIOLATED', + 'ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER', + 'ERROR_TRANSACTION_MUST_WRITETHROUGH', + 'ERROR_TRANSACTION_NOT_ACTIVE', + 'ERROR_TRANSACTION_NOT_ENLISTED', + 'ERROR_TRANSACTION_NOT_FOUND', + 'ERROR_TRANSACTION_NOT_JOINED', + 'ERROR_TRANSACTION_NOT_REQUESTED', + 'ERROR_TRANSACTION_NOT_ROOT', + 'ERROR_TRANSACTION_NO_SUPERIOR', + 'ERROR_TRANSACTION_OBJECT_EXPIRED', + 'ERROR_TRANSACTION_PROPAGATION_FAILED', + 'ERROR_TRANSACTION_RECORD_TOO_LONG', + 'ERROR_TRANSACTION_REQUEST_NOT_VALID', + 'ERROR_TRANSACTION_REQUIRED_PROMOTION', + 'ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED', + 'ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET', + 'ERROR_TRANSACTION_SUPERIOR_EXISTS', + 'ERROR_TRANSFORM_NOT_SUPPORTED', + 'ERROR_TRANSLATION_COMPLETE', + 'ERROR_TRANSPORT_FULL', + 'ERROR_TRUSTED_DOMAIN_FAILURE', + 'ERROR_TRUSTED_RELATIONSHIP_FAILURE', + 'ERROR_TRUST_FAILURE', + 'ERROR_TS_INCOMPATIBLE_SESSIONS', + 'ERROR_TS_VIDEO_SUBSYSTEM_ERROR', + 'ERROR_TXF_ATTRIBUTE_CORRUPT', + 'ERROR_TXF_DIR_NOT_EMPTY', + 'ERROR_TXF_METADATA_ALREADY_PRESENT', + 'ERROR_UNABLE_TO_CLEAN', + 'ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA', + 'ERROR_UNABLE_TO_INVENTORY_DRIVE', + 'ERROR_UNABLE_TO_INVENTORY_SLOT', + 'ERROR_UNABLE_TO_INVENTORY_TRANSPORT', + 'ERROR_UNABLE_TO_LOAD_MEDIUM', + 'ERROR_UNABLE_TO_LOCK_MEDIA', + 'ERROR_UNABLE_TO_MOVE_REPLACEMENT', + 'ERROR_UNABLE_TO_MOVE_REPLACEMENT_2', + 'ERROR_UNABLE_TO_REMOVE_REPLACED', + 'ERROR_UNABLE_TO_UNLOAD_MEDIA', + 'ERROR_UNDEFINED_CHARACTER', + 'ERROR_UNDEFINED_SCOPE', + 'ERROR_UNEXPECTED_MM_CREATE_ERR', + 'ERROR_UNEXPECTED_MM_EXTEND_ERR', + 'ERROR_UNEXPECTED_MM_MAP_ERROR', + 'ERROR_UNEXPECTED_OMID', + 'ERROR_UNEXP_NET_ERR', + 'ERROR_UNHANDLED_EXCEPTION', + 'ERROR_UNIDENTIFIED_ERROR', + 'ERROR_UNKNOWN_COMPONENT', + 'ERROR_UNKNOWN_FEATURE', + 'ERROR_UNKNOWN_PATCH', + 'ERROR_UNKNOWN_PORT', + 'ERROR_UNKNOWN_PRINTER_DRIVER', + 'ERROR_UNKNOWN_PRINTPROCESSOR', + 'ERROR_UNKNOWN_PRINT_MONITOR', + 'ERROR_UNKNOWN_PRODUCT', + 'ERROR_UNKNOWN_PROPERTY', + 'ERROR_UNKNOWN_REVISION', + 'ERROR_UNMAPPED_SUBSTITUTION_STRING', + 'ERROR_UNRECOGNIZED_MEDIA', + 'ERROR_UNRECOGNIZED_VOLUME', + 'ERROR_UNSUPPORTED_COMPRESSION', + 'ERROR_UNSUPPORTED_TYPE', + 'ERROR_UNWIND', + 'ERROR_UNWIND_CONSOLIDATE', + 'ERROR_USER_APC', + 'ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED', + 'ERROR_USER_EXISTS', + 'ERROR_USER_MAPPED_FILE', + 'ERROR_USER_PROFILE_LOAD', + 'ERROR_VALIDATE_CONTINUE', + 'ERROR_VC_DISCONNECTED', + 'ERROR_VDM_DISALLOWED', + 'ERROR_VDM_HARD_ERROR', + 'ERROR_VERIFIER_STOP', + 'ERROR_VERSION_PARSE_ERROR', + 'ERROR_VHDSET_BACKING_STORAGE_NOT_FOUND', + 'ERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE', + 'ERROR_VHD_BITMAP_MISMATCH', + 'ERROR_VHD_BLOCK_ALLOCATION_FAILURE', + 'ERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT', + 'ERROR_VHD_CHANGE_TRACKING_DISABLED', + 'ERROR_VHD_CHILD_PARENT_ID_MISMATCH', + 'ERROR_VHD_CHILD_PARENT_SIZE_MISMATCH', + 'ERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH', + 'ERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE', + 'ERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED', + 'ERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT', + 'ERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH', + 'ERROR_VHD_DRIVE_FOOTER_CORRUPT', + 'ERROR_VHD_DRIVE_FOOTER_MISSING', + 'ERROR_VHD_FORMAT_UNKNOWN', + 'ERROR_VHD_FORMAT_UNSUPPORTED_VERSION', + 'ERROR_VHD_INVALID_BLOCK_SIZE', + 'ERROR_VHD_INVALID_CHANGE_TRACKING_ID', + 'ERROR_VHD_INVALID_FILE_SIZE', + 'ERROR_VHD_INVALID_SIZE', + 'ERROR_VHD_INVALID_STATE', + 'ERROR_VHD_INVALID_TYPE', + 'ERROR_VHD_METADATA_FULL', + 'ERROR_VHD_METADATA_READ_FAILURE', + 'ERROR_VHD_METADATA_WRITE_FAILURE', + 'ERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION', + 'ERROR_VHD_PARENT_VHD_ACCESS_DENIED', + 'ERROR_VHD_PARENT_VHD_NOT_FOUND', + 'ERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA', + 'ERROR_VHD_SHARED', + 'ERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH', + 'ERROR_VHD_SPARSE_HEADER_CORRUPT', + 'ERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION', + 'ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED', + 'ERROR_VID_DUPLICATE_HANDLER', + 'ERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT', + 'ERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT', + 'ERROR_VID_HANDLER_NOT_PRESENT', + 'ERROR_VID_INVALID_CHILD_GPA_PAGE_SET', + 'ERROR_VID_INVALID_GPA_RANGE_HANDLE', + 'ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE', + 'ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE', + 'ERROR_VID_INVALID_NUMA_NODE_INDEX', + 'ERROR_VID_INVALID_NUMA_SETTINGS', + 'ERROR_VID_INVALID_OBJECT_NAME', + 'ERROR_VID_INVALID_PPM_HANDLE', + 'ERROR_VID_INVALID_PROCESSOR_STATE', + 'ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED', + 'ERROR_VID_MBPS_ARE_LOCKED', + 'ERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE', + 'ERROR_VID_MBP_COUNT_EXCEEDED_LIMIT', + 'ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET', + 'ERROR_VID_MB_STILL_REFERENCED', + 'ERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED', + 'ERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS', + 'ERROR_VID_MESSAGE_QUEUE_CLOSED', + 'ERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG', + 'ERROR_VID_MMIO_RANGE_DESTROYED', + 'ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED', + 'ERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE', + 'ERROR_VID_PAGE_RANGE_OVERFLOW', + 'ERROR_VID_PARTITION_ALREADY_EXISTS', + 'ERROR_VID_PARTITION_DOES_NOT_EXIST', + 'ERROR_VID_PARTITION_NAME_NOT_FOUND', + 'ERROR_VID_PARTITION_NAME_TOO_LONG', + 'ERROR_VID_QUEUE_FULL', + 'ERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED', + 'ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED', + 'ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL', + 'ERROR_VID_SAVED_STATE_CORRUPT', + 'ERROR_VID_SAVED_STATE_INCOMPATIBLE', + 'ERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM', + 'ERROR_VID_STOP_PENDING', + 'ERROR_VID_TOO_MANY_HANDLERS', + 'ERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED', + 'ERROR_VID_VTL_ACCESS_DENIED', + 'ERROR_VIRTDISK_DISK_ALREADY_OWNED', + 'ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE', + 'ERROR_VIRTDISK_NOT_VIRTUAL_DISK', + 'ERROR_VIRTDISK_PROVIDER_NOT_FOUND', + 'ERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE', + 'ERROR_VIRTUAL_DISK_LIMITATION', + 'ERROR_VIRUS_DELETED', + 'ERROR_VIRUS_INFECTED', + 'ERROR_VMCOMPUTE_CONNECTION_CLOSED', + 'ERROR_VMCOMPUTE_CONNECT_FAILED', + 'ERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED', + 'ERROR_VMCOMPUTE_IMAGE_MISMATCH', + 'ERROR_VMCOMPUTE_INVALID_JSON', + 'ERROR_VMCOMPUTE_INVALID_LAYER', + 'ERROR_VMCOMPUTE_INVALID_STATE', + 'ERROR_VMCOMPUTE_OPERATION_PENDING', + 'ERROR_VMCOMPUTE_PROTOCOL_ERROR', + 'ERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS', + 'ERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED', + 'ERROR_VMCOMPUTE_SYSTEM_NOT_FOUND', + 'ERROR_VMCOMPUTE_TERMINATED', + 'ERROR_VMCOMPUTE_TERMINATED_DURING_START', + 'ERROR_VMCOMPUTE_TIMEOUT', + 'ERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS', + 'ERROR_VMCOMPUTE_UNEXPECTED_EXIT', + 'ERROR_VMCOMPUTE_UNKNOWN_MESSAGE', + 'ERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION', + 'ERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED', + 'ERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND', + 'ERROR_VOLMGR_ALL_DISKS_FAILED', + 'ERROR_VOLMGR_BAD_BOOT_DISK', + 'ERROR_VOLMGR_DATABASE_FULL', + 'ERROR_VOLMGR_DIFFERENT_SECTOR_SIZE', + 'ERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED', + 'ERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC', + 'ERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME', + 'ERROR_VOLMGR_DISK_DUPLICATE', + 'ERROR_VOLMGR_DISK_DYNAMIC', + 'ERROR_VOLMGR_DISK_ID_INVALID', + 'ERROR_VOLMGR_DISK_INVALID', + 'ERROR_VOLMGR_DISK_LAST_VOTER', + 'ERROR_VOLMGR_DISK_LAYOUT_INVALID', + 'ERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS', + 'ERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED', + 'ERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL', + 'ERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS', + 'ERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS', + 'ERROR_VOLMGR_DISK_MISSING', + 'ERROR_VOLMGR_DISK_NOT_EMPTY', + 'ERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE', + 'ERROR_VOLMGR_DISK_REVECTORING_FAILED', + 'ERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID', + 'ERROR_VOLMGR_DISK_SET_NOT_CONTAINED', + 'ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS', + 'ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES', + 'ERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED', + 'ERROR_VOLMGR_EXTENT_ALREADY_USED', + 'ERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS', + 'ERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION', + 'ERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED', + 'ERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION', + 'ERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH', + 'ERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED', + 'ERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION', + 'ERROR_VOLMGR_INCOMPLETE_REGENERATION', + 'ERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID', + 'ERROR_VOLMGR_MAXIMUM_REGISTERED_USERS', + 'ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE', + 'ERROR_VOLMGR_MEMBER_INDEX_INVALID', + 'ERROR_VOLMGR_MEMBER_IN_SYNC', + 'ERROR_VOLMGR_MEMBER_MISSING', + 'ERROR_VOLMGR_MEMBER_NOT_DETACHED', + 'ERROR_VOLMGR_MEMBER_REGENERATING', + 'ERROR_VOLMGR_MIRROR_NOT_SUPPORTED', + 'ERROR_VOLMGR_NOTIFICATION_RESET', + 'ERROR_VOLMGR_NOT_PRIMARY_PACK', + 'ERROR_VOLMGR_NO_REGISTERED_USERS', + 'ERROR_VOLMGR_NO_SUCH_USER', + 'ERROR_VOLMGR_NO_VALID_LOG_COPIES', + 'ERROR_VOLMGR_NUMBER_OF_DISKS_INVALID', + 'ERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID', + 'ERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID', + 'ERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID', + 'ERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID', + 'ERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID', + 'ERROR_VOLMGR_PACK_CONFIG_OFFLINE', + 'ERROR_VOLMGR_PACK_CONFIG_ONLINE', + 'ERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED', + 'ERROR_VOLMGR_PACK_DUPLICATE', + 'ERROR_VOLMGR_PACK_HAS_QUORUM', + 'ERROR_VOLMGR_PACK_ID_INVALID', + 'ERROR_VOLMGR_PACK_INVALID', + 'ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED', + 'ERROR_VOLMGR_PACK_NAME_INVALID', + 'ERROR_VOLMGR_PACK_OFFLINE', + 'ERROR_VOLMGR_PACK_WITHOUT_QUORUM', + 'ERROR_VOLMGR_PARTITION_STYLE_INVALID', + 'ERROR_VOLMGR_PARTITION_UPDATE_FAILED', + 'ERROR_VOLMGR_PLEX_INDEX_DUPLICATE', + 'ERROR_VOLMGR_PLEX_INDEX_INVALID', + 'ERROR_VOLMGR_PLEX_IN_SYNC', + 'ERROR_VOLMGR_PLEX_LAST_ACTIVE', + 'ERROR_VOLMGR_PLEX_MISSING', + 'ERROR_VOLMGR_PLEX_NOT_RAID5', + 'ERROR_VOLMGR_PLEX_NOT_SIMPLE', + 'ERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED', + 'ERROR_VOLMGR_PLEX_REGENERATING', + 'ERROR_VOLMGR_PLEX_TYPE_INVALID', + 'ERROR_VOLMGR_PRIMARY_PACK_PRESENT', + 'ERROR_VOLMGR_RAID5_NOT_SUPPORTED', + 'ERROR_VOLMGR_STRUCTURE_SIZE_INVALID', + 'ERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS', + 'ERROR_VOLMGR_TRANSACTION_IN_PROGRESS', + 'ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE', + 'ERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK', + 'ERROR_VOLMGR_VOLUME_ID_INVALID', + 'ERROR_VOLMGR_VOLUME_LENGTH_INVALID', + 'ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE', + 'ERROR_VOLMGR_VOLUME_MIRRORED', + 'ERROR_VOLMGR_VOLUME_NOT_MIRRORED', + 'ERROR_VOLMGR_VOLUME_NOT_RETAINED', + 'ERROR_VOLMGR_VOLUME_OFFLINE', + 'ERROR_VOLMGR_VOLUME_RETAINED', + 'ERROR_VOLSNAP_ACTIVATION_TIMEOUT', + 'ERROR_VOLSNAP_BOOTFILE_NOT_VALID', + 'ERROR_VOLSNAP_HIBERNATE_READY', + 'ERROR_VOLSNAP_PREPARE_HIBERNATE', + 'ERROR_VOLUME_CONTAINS_SYS_FILES', + 'ERROR_VOLUME_DIRTY', + 'ERROR_VOLUME_MOUNTED', + 'ERROR_VOLUME_NOT_CLUSTER_ALIGNED', + 'ERROR_VOLUME_NOT_SIS_ENABLED', + 'ERROR_VOLUME_NOT_SUPPORT_EFS', + 'ERROR_VRF_CFG_ENABLED', + 'ERROR_VSMB_SAVED_STATE_CORRUPT', + 'ERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND', + 'ERROR_VSM_DMA_PROTECTION_NOT_IN_USE', + 'ERROR_VSM_NOT_INITIALIZED', + 'ERROR_WAIT_1', + 'ERROR_WAIT_2', + 'ERROR_WAIT_3', + 'ERROR_WAIT_63', + 'ERROR_WAIT_FOR_OPLOCK', + 'ERROR_WAIT_NO_CHILDREN', + 'ERROR_WAKE_SYSTEM', + 'ERROR_WAKE_SYSTEM_DEBUGGER', + 'ERROR_WAS_LOCKED', + 'ERROR_WAS_UNLOCKED', + 'ERROR_WINDOW_NOT_COMBOBOX', + 'ERROR_WINDOW_NOT_DIALOG', + 'ERROR_WINDOW_OF_OTHER_THREAD', + 'ERROR_WINS_INTERNAL', + 'ERROR_WIP_ENCRYPTION_FAILED', + 'ERROR_WMI_ALREADY_DISABLED', + 'ERROR_WMI_ALREADY_ENABLED', + 'ERROR_WMI_DP_FAILED', + 'ERROR_WMI_DP_NOT_FOUND', + 'ERROR_WMI_GUID_DISCONNECTED', + 'ERROR_WMI_GUID_NOT_FOUND', + 'ERROR_WMI_INSTANCE_NOT_FOUND', + 'ERROR_WMI_INVALID_MOF', + 'ERROR_WMI_INVALID_REGINFO', + 'ERROR_WMI_ITEMID_NOT_FOUND', + 'ERROR_WMI_READ_ONLY', + 'ERROR_WMI_SERVER_UNAVAILABLE', + 'ERROR_WMI_SET_FAILURE', + 'ERROR_WMI_TRY_AGAIN', + 'ERROR_WMI_UNRESOLVED_INSTANCE_REF', + 'ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT', + 'ERROR_WOF_WIM_HEADER_CORRUPT', + 'ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT', + 'ERROR_WORKING_SET_QUOTA', + 'ERROR_WOW_ASSERTION', + 'ERROR_WRITE_FAULT', + 'ERROR_WRITE_PROTECT', + 'ERROR_WRONG_COMPARTMENT', + 'ERROR_WRONG_DISK', + 'ERROR_WRONG_EFS', + 'ERROR_WRONG_PASSWORD', + 'ERROR_WRONG_TARGET_NAME', + 'ERROR_WX86_ERROR', + 'ERROR_WX86_WARNING', + 'ERROR_XMLDSIG_ERROR', + 'ERROR_XML_ENCODING_MISMATCH', + 'ERROR_XML_PARSE_ERROR', + 'EVENT_E_ALL_SUBSCRIBERS_FAILED', + 'EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT', + 'EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT', + 'EVENT_E_COMPLUS_NOT_INSTALLED', + 'EVENT_E_FIRST', + 'EVENT_E_INTERNALERROR', + 'EVENT_E_INTERNALEXCEPTION', + 'EVENT_E_INVALID_EVENT_CLASS_PARTITION', + 'EVENT_E_INVALID_PER_USER_SID', + 'EVENT_E_LAST', + 'EVENT_E_MISSING_EVENTCLASS', + 'EVENT_E_NOT_ALL_REMOVED', + 'EVENT_E_PER_USER_SID_NOT_LOGGED_ON', + 'EVENT_E_QUERYFIELD', + 'EVENT_E_QUERYSYNTAX', + 'EVENT_E_TOO_MANY_METHODS', + 'EVENT_E_USER_EXCEPTION', + 'EVENT_S_FIRST', + 'EVENT_S_LAST', + 'EVENT_S_NOSUBSCRIBERS', + 'EVENT_S_SOME_SUBSCRIBERS_FAILED', + 'E_ABORT', + 'E_ACCESSDENIED', + 'E_APPLICATION_ACTIVATION_EXEC_FAILURE', + 'E_APPLICATION_ACTIVATION_TIMED_OUT', + 'E_APPLICATION_EXITING', + 'E_APPLICATION_MANAGER_NOT_RUNNING', + 'E_APPLICATION_NOT_REGISTERED', + 'E_APPLICATION_TEMPORARY_LICENSE_ERROR', + 'E_APPLICATION_TRIAL_LICENSE_EXPIRED', + 'E_APPLICATION_VIEW_EXITING', + 'E_ASYNC_OPERATION_NOT_STARTED', + 'E_AUDIO_ENGINE_NODE_NOT_FOUND', + 'E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND', + 'E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG', + 'E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION', + 'E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION', + 'E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION', + 'E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE', + 'E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES', + 'E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH', + 'E_BLUETOOTH_ATT_INVALID_HANDLE', + 'E_BLUETOOTH_ATT_INVALID_OFFSET', + 'E_BLUETOOTH_ATT_INVALID_PDU', + 'E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL', + 'E_BLUETOOTH_ATT_READ_NOT_PERMITTED', + 'E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED', + 'E_BLUETOOTH_ATT_UNKNOWN_ERROR', + 'E_BLUETOOTH_ATT_UNLIKELY', + 'E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE', + 'E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED', + 'E_BOUNDS', + 'E_CHANGED_STATE', + 'E_ELEVATED_ACTIVATION_NOT_SUPPORTED', + 'E_FAIL', + 'E_FULL_ADMIN_NOT_SUPPORTED', + 'E_HANDLE', + 'E_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED', + 'E_HDAUDIO_EMPTY_CONNECTION_LIST', + 'E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED', + 'E_HDAUDIO_NULL_LINKED_LIST_ENTRY', + 'E_ILLEGAL_DELEGATE_ASSIGNMENT', + 'E_ILLEGAL_METHOD_CALL', + 'E_ILLEGAL_STATE_CHANGE', + 'E_INVALIDARG', + 'E_INVALID_PROTOCOL_FORMAT', + 'E_INVALID_PROTOCOL_OPERATION', + 'E_MBN_BAD_SIM', + 'E_MBN_CONTEXT_NOT_ACTIVATED', + 'E_MBN_DATA_CLASS_NOT_AVAILABLE', + 'E_MBN_DEFAULT_PROFILE_EXIST', + 'E_MBN_FAILURE', + 'E_MBN_INVALID_ACCESS_STRING', + 'E_MBN_INVALID_CACHE', + 'E_MBN_INVALID_PROFILE', + 'E_MBN_MAX_ACTIVATED_CONTEXTS', + 'E_MBN_NOT_REGISTERED', + 'E_MBN_PACKET_SVC_DETACHED', + 'E_MBN_PIN_DISABLED', + 'E_MBN_PIN_NOT_SUPPORTED', + 'E_MBN_PIN_REQUIRED', + 'E_MBN_PROVIDERS_NOT_FOUND', + 'E_MBN_PROVIDER_NOT_VISIBLE', + 'E_MBN_RADIO_POWER_OFF', + 'E_MBN_SERVICE_NOT_ACTIVATED', + 'E_MBN_SIM_NOT_INSERTED', + 'E_MBN_SMS_ENCODING_NOT_SUPPORTED', + 'E_MBN_SMS_FILTER_NOT_SUPPORTED', + 'E_MBN_SMS_FORMAT_NOT_SUPPORTED', + 'E_MBN_SMS_INVALID_MEMORY_INDEX', + 'E_MBN_SMS_LANG_NOT_SUPPORTED', + 'E_MBN_SMS_MEMORY_FAILURE', + 'E_MBN_SMS_MEMORY_FULL', + 'E_MBN_SMS_NETWORK_TIMEOUT', + 'E_MBN_SMS_OPERATION_NOT_ALLOWED', + 'E_MBN_SMS_UNKNOWN_SMSC_ADDRESS', + 'E_MBN_VOICE_CALL_IN_PROGRESS', + 'E_MONITOR_RESOLUTION_TOO_LOW', + 'E_MULTIPLE_EXTENSIONS_FOR_APPLICATION', + 'E_MULTIPLE_PACKAGES_FOR_FAMILY', + 'E_NOINTERFACE', + 'E_NOTIMPL', + 'E_NOT_SET', + 'E_NOT_SUFFICIENT_BUFFER', + 'E_NOT_VALID_STATE', + 'E_NO_TASK_QUEUE', + 'E_OUTOFMEMORY', + 'E_PENDING', + 'E_POINTER', + 'E_PROTOCOL_EXTENSIONS_NOT_SUPPORTED', + 'E_PROTOCOL_VERSION_NOT_SUPPORTED', + 'E_SKYDRIVE_FILE_NOT_UPLOADED', + 'E_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX', + 'E_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED', + 'E_SKYDRIVE_ROOT_TARGET_OVERLAP', + 'E_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED', + 'E_SKYDRIVE_UPDATE_AVAILABILITY_FAIL', + 'E_STRING_NOT_NULL_TERMINATED', + 'E_SUBPROTOCOL_NOT_SUPPORTED', + 'E_SYNCENGINE_CLIENT_UPDATE_NEEDED', + 'E_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN', + 'E_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA', + 'E_SYNCENGINE_FILE_SIZE_OVER_LIMIT', + 'E_SYNCENGINE_FILE_SYNC_PARTNER_ERROR', + 'E_SYNCENGINE_FOLDER_INACCESSIBLE', + 'E_SYNCENGINE_FOLDER_IN_REDIRECTION', + 'E_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED', + 'E_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED', + 'E_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED', + 'E_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED', + 'E_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE', + 'E_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR', + 'E_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED', + 'E_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE', + 'E_SYNCENGINE_STORAGE_SERVICE_BLOCKED', + 'E_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED', + 'E_SYNCENGINE_SYNC_PAUSED_BY_SERVICE', + 'E_SYNCENGINE_UNKNOWN_SERVICE_ERROR', + 'E_SYNCENGINE_UNSUPPORTED_FILE_NAME', + 'E_SYNCENGINE_UNSUPPORTED_FOLDER_NAME', + 'E_SYNCENGINE_UNSUPPORTED_MARKET', + 'E_SYNCENGINE_UNSUPPORTED_REPARSE_POINT', + 'E_TIME_SENSITIVE_THREAD', + 'E_UAC_DISABLED', + 'E_UNEXPECTED', + 'FACILITY_AAF', + 'FACILITY_ACCELERATOR', + 'FACILITY_ACS', + 'FACILITY_ACTION_QUEUE', + 'FACILITY_AUDCLNT', + 'FACILITY_AUDIO', + 'FACILITY_AUDIOSTREAMING', + 'FACILITY_BACKGROUNDCOPY', + 'FACILITY_BCD', + 'FACILITY_BLB', + 'FACILITY_BLBUI', + 'FACILITY_BLB_CLI', + 'FACILITY_BLUETOOTH_ATT', + 'FACILITY_CERT', + 'FACILITY_CMI', + 'FACILITY_COMPLUS', + 'FACILITY_CONFIGURATION', + 'FACILITY_CONTROL', + 'FACILITY_DAF', + 'FACILITY_DEBUGGERS', + 'FACILITY_DEFRAG', + 'FACILITY_DELIVERY_OPTIMIZATION', + 'FACILITY_DEPLOYMENT_SERVICES_BINLSVC', + 'FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER', + 'FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING', + 'FACILITY_DEPLOYMENT_SERVICES_IMAGING', + 'FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT', + 'FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT', + 'FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER', + 'FACILITY_DEPLOYMENT_SERVICES_PXE', + 'FACILITY_DEPLOYMENT_SERVICES_SERVER', + 'FACILITY_DEPLOYMENT_SERVICES_TFTP', + 'FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT', + 'FACILITY_DEPLOYMENT_SERVICES_UTIL', + 'FACILITY_DEVICE_UPDATE_AGENT', + 'FACILITY_DIRECT2D', + 'FACILITY_DIRECT3D10', + 'FACILITY_DIRECT3D11', + 'FACILITY_DIRECT3D11_DEBUG', + 'FACILITY_DIRECT3D12', + 'FACILITY_DIRECT3D12_DEBUG', + 'FACILITY_DIRECTMUSIC', + 'FACILITY_DIRECTORYSERVICE', + 'FACILITY_DISPATCH', + 'FACILITY_DLS', + 'FACILITY_DMSERVER', + 'FACILITY_DPLAY', + 'FACILITY_DRVSERVICING', + 'FACILITY_DXGI', + 'FACILITY_DXGI_DDI', + 'FACILITY_EAP', + 'FACILITY_EAS', + 'FACILITY_FVE', + 'FACILITY_FWP', + 'FACILITY_GAME', + 'FACILITY_GRAPHICS', + 'FACILITY_HTTP', + 'FACILITY_INPUT', + 'FACILITY_INTERNET', + 'FACILITY_ITF', + 'FACILITY_JSCRIPT', + 'FACILITY_LEAP', + 'FACILITY_LINGUISTIC_SERVICES', + 'FACILITY_MBN', + 'FACILITY_MEDIASERVER', + 'FACILITY_METADIRECTORY', + 'FACILITY_MOBILE', + 'FACILITY_MSMQ', + 'FACILITY_NAP', + 'FACILITY_NDIS', + 'FACILITY_NT_BIT', + 'FACILITY_NULL', + 'FACILITY_ONLINE_ID', + 'FACILITY_OPC', + 'FACILITY_P2P', + 'FACILITY_P2P_INT', + 'FACILITY_PARSE', + 'FACILITY_PIDGENX', + 'FACILITY_PIX', + 'FACILITY_PLA', + 'FACILITY_POWERSHELL', + 'FACILITY_RAS', + 'FACILITY_RESTORE', + 'FACILITY_RPC', + 'FACILITY_SCARD', + 'FACILITY_SCRIPT', + 'FACILITY_SDIAG', + 'FACILITY_SECURITY', + 'FACILITY_SETUPAPI', + 'FACILITY_SHELL', + 'FACILITY_SOS', + 'FACILITY_SPP', + 'FACILITY_SQLITE', + 'FACILITY_SSPI', + 'FACILITY_STATEREPOSITORY', + 'FACILITY_STATE_MANAGEMENT', + 'FACILITY_STORAGE', + 'FACILITY_SXS', + 'FACILITY_SYNCENGINE', + 'FACILITY_TIERING', + 'FACILITY_TPM_SERVICES', + 'FACILITY_TPM_SOFTWARE', + 'FACILITY_UI', + 'FACILITY_UMI', + 'FACILITY_URT', + 'FACILITY_USERMODE_COMMONLOG', + 'FACILITY_USERMODE_FILTER_MANAGER', + 'FACILITY_USERMODE_HNS', + 'FACILITY_USERMODE_HYPERVISOR', + 'FACILITY_USERMODE_LICENSING', + 'FACILITY_USERMODE_SDBUS', + 'FACILITY_USERMODE_SPACES', + 'FACILITY_USERMODE_VHD', + 'FACILITY_USERMODE_VIRTUALIZATION', + 'FACILITY_USERMODE_VOLMGR', + 'FACILITY_USERMODE_VOLSNAP', + 'FACILITY_USER_MODE_SECURITY_CORE', + 'FACILITY_USN', + 'FACILITY_UTC', + 'FACILITY_VISUALCPP', + 'FACILITY_WEB', + 'FACILITY_WEBSERVICES', + 'FACILITY_WEB_SOCKET', + 'FACILITY_WEP', + 'FACILITY_WER', + 'FACILITY_WIA', + 'FACILITY_WIN32', + 'FACILITY_WINCODEC_DWRITE_DWM', + 'FACILITY_WINDOWS', + 'FACILITY_WINDOWSUPDATE', + 'FACILITY_WINDOWS_CE', + 'FACILITY_WINDOWS_DEFENDER', + 'FACILITY_WINDOWS_SETUP', + 'FACILITY_WINDOWS_STORE', + 'FACILITY_WINML', + 'FACILITY_WINPE', + 'FACILITY_WINRM', + 'FACILITY_WMAAECMA', + 'FACILITY_WPN', + 'FACILITY_WSBAPP', + 'FACILITY_WSB_ONLINE', + 'FACILITY_XAML', + 'FACILITY_XBOX', + 'FACILITY_XPS', + 'FA_E_HOMEGROUP_NOT_AVAILABLE', + 'FA_E_MAX_PERSISTED_ITEMS_REACHED', + 'FRS_ERR_AUTHENTICATION', + 'FRS_ERR_CHILD_TO_PARENT_COMM', + 'FRS_ERR_INSUFFICIENT_PRIV', + 'FRS_ERR_INTERNAL', + 'FRS_ERR_INTERNAL_API', + 'FRS_ERR_INVALID_API_SEQUENCE', + 'FRS_ERR_INVALID_SERVICE_PARAMETER', + 'FRS_ERR_PARENT_AUTHENTICATION', + 'FRS_ERR_PARENT_INSUFFICIENT_PRIV', + 'FRS_ERR_PARENT_TO_CHILD_COMM', + 'FRS_ERR_SERVICE_COMM', + 'FRS_ERR_STARTING_SERVICE', + 'FRS_ERR_STOPPING_SERVICE', + 'FRS_ERR_SYSVOL_DEMOTE', + 'FRS_ERR_SYSVOL_IS_BUSY', + 'FRS_ERR_SYSVOL_POPULATE', + 'FRS_ERR_SYSVOL_POPULATE_TIMEOUT', + 'FVE_E_ACTION_NOT_ALLOWED', + 'FVE_E_ADBACKUP_NOT_ENABLED', + 'FVE_E_AD_ATTR_NOT_SET', + 'FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_FIXED_DRIVE', + 'FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_OS_DRIVE', + 'FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_REMOVABLE_DRIVE', + 'FVE_E_AD_GUID_NOT_FOUND', + 'FVE_E_AD_INSUFFICIENT_BUFFER', + 'FVE_E_AD_INVALID_DATASIZE', + 'FVE_E_AD_INVALID_DATATYPE', + 'FVE_E_AD_NO_VALUES', + 'FVE_E_AD_SCHEMA_NOT_INSTALLED', + 'FVE_E_AUTH_INVALID_APPLICATION', + 'FVE_E_AUTH_INVALID_CONFIG', + 'FVE_E_AUTOUNLOCK_ENABLED', + 'FVE_E_BAD_DATA', + 'FVE_E_BAD_INFORMATION', + 'FVE_E_BAD_PARTITION_SIZE', + 'FVE_E_BCD_APPLICATIONS_PATH_INCORRECT', + 'FVE_E_BOOTABLE_CDDVD', + 'FVE_E_BUFFER_TOO_LARGE', + 'FVE_E_CANNOT_ENCRYPT_NO_KEY', + 'FVE_E_CANNOT_SET_FVEK_ENCRYPTED', + 'FVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME', + 'FVE_E_CLUSTERING_NOT_SUPPORTED', + 'FVE_E_CONV_READ', + 'FVE_E_CONV_RECOVERY_FAILED', + 'FVE_E_CONV_WRITE', + 'FVE_E_DEBUGGER_ENABLED', + 'FVE_E_DEVICELOCKOUT_COUNTER_MISMATCH', + 'FVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE', + 'FVE_E_DEVICE_NOT_JOINED', + 'FVE_E_DE_DEVICE_LOCKEDOUT', + 'FVE_E_DE_FIXED_DATA_NOT_SUPPORTED', + 'FVE_E_DE_HARDWARE_NOT_COMPLIANT', + 'FVE_E_DE_OS_VOLUME_NOT_PROTECTED', + 'FVE_E_DE_PREVENTED_FOR_OS', + 'FVE_E_DE_PROTECTION_NOT_YET_ENABLED', + 'FVE_E_DE_PROTECTION_SUSPENDED', + 'FVE_E_DE_VOLUME_NOT_SUPPORTED', + 'FVE_E_DE_VOLUME_OPTED_OUT', + 'FVE_E_DE_WINRE_NOT_CONFIGURED', + 'FVE_E_DRY_RUN_FAILED', + 'FVE_E_DV_NOT_ALLOWED_BY_GP', + 'FVE_E_DV_NOT_SUPPORTED_ON_FS', + 'FVE_E_EDRIVE_BAND_IN_USE', + 'FVE_E_EDRIVE_DISALLOWED_BY_GP', + 'FVE_E_EDRIVE_DRY_RUN_FAILED', + 'FVE_E_EDRIVE_DV_NOT_SUPPORTED', + 'FVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE', + 'FVE_E_EDRIVE_INCOMPATIBLE_VOLUME', + 'FVE_E_EDRIVE_NO_FAILOVER_TO_SW', + 'FVE_E_EFI_ONLY', + 'FVE_E_ENH_PIN_INVALID', + 'FVE_E_EOW_NOT_SUPPORTED_IN_VERSION', + 'FVE_E_EXECUTE_REQUEST_SENT_TOO_SOON', + 'FVE_E_FAILED_AUTHENTICATION', + 'FVE_E_FAILED_SECTOR_SIZE', + 'FVE_E_FAILED_WRONG_FS', + 'FVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED', + 'FVE_E_FIPS_HASH_KDF_NOT_ALLOWED', + 'FVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT', + 'FVE_E_FIPS_PREVENTS_PASSPHRASE', + 'FVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD', + 'FVE_E_FIPS_RNG_CHECK_FAILED', + 'FVE_E_FIRMWARE_TYPE_NOT_SUPPORTED', + 'FVE_E_FOREIGN_VOLUME', + 'FVE_E_FS_MOUNTED', + 'FVE_E_FS_NOT_EXTENDED', + 'FVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE', + 'FVE_E_HIDDEN_VOLUME', + 'FVE_E_INVALID_BITLOCKER_OID', + 'FVE_E_INVALID_DATUM_TYPE', + 'FVE_E_INVALID_KEY_FORMAT', + 'FVE_E_INVALID_NKP_CERT', + 'FVE_E_INVALID_PASSWORD_FORMAT', + 'FVE_E_INVALID_PIN_CHARS', + 'FVE_E_INVALID_PIN_CHARS_DETAILED', + 'FVE_E_INVALID_PROTECTOR_TYPE', + 'FVE_E_INVALID_STARTUP_OPTIONS', + 'FVE_E_KEYFILE_INVALID', + 'FVE_E_KEYFILE_NOT_FOUND', + 'FVE_E_KEYFILE_NO_VMK', + 'FVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE', + 'FVE_E_KEY_PROTECTOR_NOT_SUPPORTED', + 'FVE_E_KEY_REQUIRED', + 'FVE_E_KEY_ROTATION_NOT_ENABLED', + 'FVE_E_KEY_ROTATION_NOT_SUPPORTED', + 'FVE_E_LIVEID_ACCOUNT_BLOCKED', + 'FVE_E_LIVEID_ACCOUNT_SUSPENDED', + 'FVE_E_LOCKED_VOLUME', + 'FVE_E_MOR_FAILED', + 'FVE_E_MULTIPLE_NKP_CERTS', + 'FVE_E_NON_BITLOCKER_KU', + 'FVE_E_NON_BITLOCKER_OID', + 'FVE_E_NOT_ACTIVATED', + 'FVE_E_NOT_ALLOWED_IN_SAFE_MODE', + 'FVE_E_NOT_ALLOWED_IN_VERSION', + 'FVE_E_NOT_ALLOWED_ON_CLUSTER', + 'FVE_E_NOT_ALLOWED_ON_CSV_STACK', + 'FVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING', + 'FVE_E_NOT_DATA_VOLUME', + 'FVE_E_NOT_DECRYPTED', + 'FVE_E_NOT_DE_VOLUME', + 'FVE_E_NOT_ENCRYPTED', + 'FVE_E_NOT_ON_STACK', + 'FVE_E_NOT_OS_VOLUME', + 'FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES', + 'FVE_E_NOT_SUPPORTED', + 'FVE_E_NO_AUTOUNLOCK_MASTER_KEY', + 'FVE_E_NO_BOOTMGR_METRIC', + 'FVE_E_NO_BOOTSECTOR_METRIC', + 'FVE_E_NO_EXISTING_PASSPHRASE', + 'FVE_E_NO_EXISTING_PIN', + 'FVE_E_NO_FEATURE_LICENSE', + 'FVE_E_NO_LICENSE', + 'FVE_E_NO_MBR_METRIC', + 'FVE_E_NO_PASSPHRASE_WITH_TPM', + 'FVE_E_NO_PREBOOT_KEYBOARD_DETECTED', + 'FVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED', + 'FVE_E_NO_PROTECTORS_TO_TEST', + 'FVE_E_NO_SUCH_CAPABILITY_ON_TARGET', + 'FVE_E_NO_TPM_BIOS', + 'FVE_E_NO_TPM_WITH_PASSPHRASE', + 'FVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME', + 'FVE_E_OSV_KSR_NOT_ALLOWED', + 'FVE_E_OS_NOT_PROTECTED', + 'FVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED', + 'FVE_E_OVERLAPPED_UPDATE', + 'FVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED', + 'FVE_E_PASSPHRASE_TOO_LONG', + 'FVE_E_PIN_INVALID', + 'FVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED', + 'FVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON', + 'FVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON', + 'FVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON', + 'FVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON', + 'FVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON', + 'FVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED', + 'FVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS', + 'FVE_E_POLICY_INVALID_PASSPHRASE_LENGTH', + 'FVE_E_POLICY_INVALID_PIN_LENGTH', + 'FVE_E_POLICY_PASSPHRASE_NOT_ALLOWED', + 'FVE_E_POLICY_PASSPHRASE_REQUIRED', + 'FVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII', + 'FVE_E_POLICY_PASSPHRASE_TOO_SIMPLE', + 'FVE_E_POLICY_PASSWORD_REQUIRED', + 'FVE_E_POLICY_PROHIBITS_SELFSIGNED', + 'FVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED', + 'FVE_E_POLICY_RECOVERY_KEY_REQUIRED', + 'FVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED', + 'FVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED', + 'FVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE', + 'FVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE', + 'FVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED', + 'FVE_E_POLICY_STARTUP_KEY_REQUIRED', + 'FVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED', + 'FVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED', + 'FVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED', + 'FVE_E_POLICY_STARTUP_PIN_REQUIRED', + 'FVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED', + 'FVE_E_POLICY_STARTUP_TPM_REQUIRED', + 'FVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED', + 'FVE_E_POLICY_USER_CERTIFICATE_REQUIRED', + 'FVE_E_POLICY_USER_CERT_MUST_BE_HW', + 'FVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED', + 'FVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED', + 'FVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED', + 'FVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED', + 'FVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED', + 'FVE_E_PRIVATEKEY_AUTH_FAILED', + 'FVE_E_PROTECTION_CANNOT_BE_DISABLED', + 'FVE_E_PROTECTION_DISABLED', + 'FVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED', + 'FVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED', + 'FVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH', + 'FVE_E_PROTECTOR_CHANGE_PIN_MISMATCH', + 'FVE_E_PROTECTOR_EXISTS', + 'FVE_E_PROTECTOR_NOT_FOUND', + 'FVE_E_PUBKEY_NOT_ALLOWED', + 'FVE_E_RAW_ACCESS', + 'FVE_E_RAW_BLOCKED', + 'FVE_E_REBOOT_REQUIRED', + 'FVE_E_RECOVERY_KEY_REQUIRED', + 'FVE_E_RECOVERY_PARTITION', + 'FVE_E_RELATIVE_PATH', + 'FVE_E_REMOVAL_OF_DRA_FAILED', + 'FVE_E_REMOVAL_OF_NKP_FAILED', + 'FVE_E_SECUREBOOT_CONFIGURATION_INVALID', + 'FVE_E_SECUREBOOT_DISABLED', + 'FVE_E_SECURE_KEY_REQUIRED', + 'FVE_E_SHADOW_COPY_PRESENT', + 'FVE_E_SYSTEM_VOLUME', + 'FVE_E_TOKEN_NOT_IMPERSONATED', + 'FVE_E_TOO_SMALL', + 'FVE_E_TPM_DISABLED', + 'FVE_E_TPM_INVALID_PCR', + 'FVE_E_TPM_NOT_OWNED', + 'FVE_E_TPM_NO_VMK', + 'FVE_E_TPM_SRK_AUTH_NOT_ZERO', + 'FVE_E_TRANSIENT_STATE', + 'FVE_E_VIRTUALIZED_SPACE_TOO_BIG', + 'FVE_E_VOLUME_BOUND_ALREADY', + 'FVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT', + 'FVE_E_VOLUME_HANDLE_OPEN', + 'FVE_E_VOLUME_NOT_BOUND', + 'FVE_E_VOLUME_TOO_SMALL', + 'FVE_E_WIPE_CANCEL_NOT_APPLICABLE', + 'FVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE', + 'FVE_E_WRONG_BOOTMGR', + 'FVE_E_WRONG_BOOTSECTOR', + 'FVE_E_WRONG_SYSTEM_FS', + 'FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER', + 'FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER', + 'FWP_E_ALREADY_EXISTS', + 'FWP_E_BUILTIN_OBJECT', + 'FWP_E_CALLOUT_NOTIFICATION_FAILED', + 'FWP_E_CALLOUT_NOT_FOUND', + 'FWP_E_CONDITION_NOT_FOUND', + 'FWP_E_CONNECTIONS_DISABLED', + 'FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT', + 'FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER', + 'FWP_E_DROP_NOICMP', + 'FWP_E_DUPLICATE_AUTH_METHOD', + 'FWP_E_DUPLICATE_CONDITION', + 'FWP_E_DUPLICATE_KEYMOD', + 'FWP_E_DYNAMIC_SESSION_IN_PROGRESS', + 'FWP_E_EM_NOT_SUPPORTED', + 'FWP_E_FILTER_NOT_FOUND', + 'FWP_E_IKEEXT_NOT_RUNNING', + 'FWP_E_INCOMPATIBLE_AUTH_METHOD', + 'FWP_E_INCOMPATIBLE_CIPHER_TRANSFORM', + 'FWP_E_INCOMPATIBLE_DH_GROUP', + 'FWP_E_INCOMPATIBLE_LAYER', + 'FWP_E_INCOMPATIBLE_SA_STATE', + 'FWP_E_INCOMPATIBLE_TXN', + 'FWP_E_INVALID_ACTION_TYPE', + 'FWP_E_INVALID_AUTH_TRANSFORM', + 'FWP_E_INVALID_CIPHER_TRANSFORM', + 'FWP_E_INVALID_DNS_NAME', + 'FWP_E_INVALID_ENUMERATOR', + 'FWP_E_INVALID_FLAGS', + 'FWP_E_INVALID_INTERVAL', + 'FWP_E_INVALID_NET_MASK', + 'FWP_E_INVALID_PARAMETER', + 'FWP_E_INVALID_RANGE', + 'FWP_E_INVALID_TRANSFORM_COMBINATION', + 'FWP_E_INVALID_TUNNEL_ENDPOINT', + 'FWP_E_INVALID_WEIGHT', + 'FWP_E_IN_USE', + 'FWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL', + 'FWP_E_KEY_DICTATOR_ALREADY_REGISTERED', + 'FWP_E_KM_CLIENTS_ONLY', + 'FWP_E_L2_DRIVER_NOT_READY', + 'FWP_E_LAYER_NOT_FOUND', + 'FWP_E_LIFETIME_MISMATCH', + 'FWP_E_MATCH_TYPE_MISMATCH', + 'FWP_E_NET_EVENTS_DISABLED', + 'FWP_E_NEVER_MATCH', + 'FWP_E_NOTIFICATION_DROPPED', + 'FWP_E_NOT_FOUND', + 'FWP_E_NO_TXN_IN_PROGRESS', + 'FWP_E_NULL_DISPLAY_NAME', + 'FWP_E_NULL_POINTER', + 'FWP_E_OUT_OF_BOUNDS', + 'FWP_E_PROVIDER_CONTEXT_MISMATCH', + 'FWP_E_PROVIDER_CONTEXT_NOT_FOUND', + 'FWP_E_PROVIDER_NOT_FOUND', + 'FWP_E_RESERVED', + 'FWP_E_SESSION_ABORTED', + 'FWP_E_STILL_ON', + 'FWP_E_SUBLAYER_NOT_FOUND', + 'FWP_E_TIMEOUT', + 'FWP_E_TOO_MANY_CALLOUTS', + 'FWP_E_TOO_MANY_SUBLAYERS', + 'FWP_E_TRAFFIC_MISMATCH', + 'FWP_E_TXN_ABORTED', + 'FWP_E_TXN_IN_PROGRESS', + 'FWP_E_TYPE_MISMATCH', + 'FWP_E_WRONG_SESSION', + 'FWP_E_ZERO_LENGTH_ARRAY', + 'GCN_E_DEFAULTNAMESPACE_EXISTS', + 'GCN_E_MODULE_NOT_FOUND', + 'GCN_E_NETADAPTER_NOT_FOUND', + 'GCN_E_NETADAPTER_TIMEOUT', + 'GCN_E_NETCOMPARTMENT_NOT_FOUND', + 'GCN_E_NETINTERFACE_NOT_FOUND', + 'GCN_E_NO_REQUEST_HANDLERS', + 'GCN_E_REQUEST_UNSUPPORTED', + 'GCN_E_RUNTIMEKEYS_FAILED', + 'HCN_E_ADAPTER_NOT_FOUND', + 'HCN_E_ADDR_INVALID_OR_RESERVED', + 'HCN_E_DEGRADED_OPERATION', + 'HCN_E_ENDPOINT_ALREADY_ATTACHED', + 'HCN_E_ENDPOINT_NAMESPACE_ALREADY_EXISTS', + 'HCN_E_ENDPOINT_NOT_FOUND', + 'HCN_E_ENDPOINT_SHARING_DISABLED', + 'HCN_E_ENTITY_HAS_REFERENCES', + 'HCN_E_GUID_CONVERSION_FAILURE', + 'HCN_E_ICS_DISABLED', + 'HCN_E_INVALID_ENDPOINT', + 'HCN_E_INVALID_INTERNAL_PORT', + 'HCN_E_INVALID_IP', + 'HCN_E_INVALID_JSON', + 'HCN_E_INVALID_JSON_REFERENCE', + 'HCN_E_INVALID_NETWORK', + 'HCN_E_INVALID_NETWORK_TYPE', + 'HCN_E_INVALID_POLICY', + 'HCN_E_INVALID_POLICY_TYPE', + 'HCN_E_INVALID_REMOTE_ENDPOINT_OPERATION', + 'HCN_E_LAYER_ALREADY_EXISTS', + 'HCN_E_LAYER_NOT_FOUND', + 'HCN_E_MANAGER_STOPPED', + 'HCN_E_MAPPING_NOT_SUPPORTED', + 'HCN_E_NAMESPACE_ATTACH_FAILED', + 'HCN_E_NETWORK_ALREADY_EXISTS', + 'HCN_E_NETWORK_NOT_FOUND', + 'HCN_E_POLICY_ALREADY_EXISTS', + 'HCN_E_POLICY_NOT_FOUND', + 'HCN_E_PORT_ALREADY_EXISTS', + 'HCN_E_PORT_NOT_FOUND', + 'HCN_E_REGKEY_FAILURE', + 'HCN_E_REQUEST_UNSUPPORTED', + 'HCN_E_SHARED_SWITCH_MODIFICATION', + 'HCN_E_SUBNET_NOT_FOUND', + 'HCN_E_SWITCH_EXTENSION_NOT_FOUND', + 'HCN_E_SWITCH_NOT_FOUND', + 'HCN_E_VFP_PORTSETTING_NOT_FOUND', + 'HCS_E_ACCESS_DENIED', + 'HCS_E_CONNECTION_CLOSED', + 'HCS_E_CONNECTION_TIMEOUT', + 'HCS_E_CONNECT_FAILED', + 'HCS_E_GUEST_CRITICAL_ERROR', + 'HCS_E_HYPERV_NOT_INSTALLED', + 'HCS_E_IMAGE_MISMATCH', + 'HCS_E_INVALID_JSON', + 'HCS_E_INVALID_LAYER', + 'HCS_E_INVALID_STATE', + 'HCS_E_OPERATION_ALREADY_STARTED', + 'HCS_E_OPERATION_NOT_STARTED', + 'HCS_E_OPERATION_PENDING', + 'HCS_E_OPERATION_RESULT_ALLOCATION_FAILED', + 'HCS_E_OPERATION_SYSTEM_CALLBACK_ALREADY_SET', + 'HCS_E_OPERATION_TIMEOUT', + 'HCS_E_PROTOCOL_ERROR', + 'HCS_E_SERVICE_NOT_AVAILABLE', + 'HCS_E_SYSTEM_ALREADY_EXISTS', + 'HCS_E_SYSTEM_ALREADY_STOPPED', + 'HCS_E_SYSTEM_NOT_FOUND', + 'HCS_E_TERMINATED', + 'HCS_E_TERMINATED_DURING_START', + 'HCS_E_UNEXPECTED_EXIT', + 'HCS_E_UNKNOWN_MESSAGE', + 'HCS_E_UNSUPPORTED_PROTOCOL_VERSION', + 'HCS_E_WINDOWS_INSIDER_REQUIRED', + 'HTTP_E_STATUS_AMBIGUOUS', + 'HTTP_E_STATUS_BAD_GATEWAY', + 'HTTP_E_STATUS_BAD_METHOD', + 'HTTP_E_STATUS_BAD_REQUEST', + 'HTTP_E_STATUS_CONFLICT', + 'HTTP_E_STATUS_DENIED', + 'HTTP_E_STATUS_EXPECTATION_FAILED', + 'HTTP_E_STATUS_FORBIDDEN', + 'HTTP_E_STATUS_GATEWAY_TIMEOUT', + 'HTTP_E_STATUS_GONE', + 'HTTP_E_STATUS_LENGTH_REQUIRED', + 'HTTP_E_STATUS_MOVED', + 'HTTP_E_STATUS_NONE_ACCEPTABLE', + 'HTTP_E_STATUS_NOT_FOUND', + 'HTTP_E_STATUS_NOT_MODIFIED', + 'HTTP_E_STATUS_NOT_SUPPORTED', + 'HTTP_E_STATUS_PAYMENT_REQ', + 'HTTP_E_STATUS_PRECOND_FAILED', + 'HTTP_E_STATUS_PROXY_AUTH_REQ', + 'HTTP_E_STATUS_RANGE_NOT_SATISFIABLE', + 'HTTP_E_STATUS_REDIRECT', + 'HTTP_E_STATUS_REDIRECT_KEEP_VERB', + 'HTTP_E_STATUS_REDIRECT_METHOD', + 'HTTP_E_STATUS_REQUEST_TIMEOUT', + 'HTTP_E_STATUS_REQUEST_TOO_LARGE', + 'HTTP_E_STATUS_SERVER_ERROR', + 'HTTP_E_STATUS_SERVICE_UNAVAIL', + 'HTTP_E_STATUS_UNEXPECTED', + 'HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR', + 'HTTP_E_STATUS_UNEXPECTED_REDIRECTION', + 'HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR', + 'HTTP_E_STATUS_UNSUPPORTED_MEDIA', + 'HTTP_E_STATUS_URI_TOO_LONG', + 'HTTP_E_STATUS_USE_PROXY', + 'HTTP_E_STATUS_VERSION_NOT_SUP', + 'INET_E_AUTHENTICATION_REQUIRED', + 'INET_E_CANNOT_CONNECT', + 'INET_E_CANNOT_INSTANTIATE_OBJECT', + 'INET_E_CANNOT_LOAD_DATA', + 'INET_E_CONNECTION_TIMEOUT', + 'INET_E_DATA_NOT_AVAILABLE', + 'INET_E_DOWNLOAD_FAILURE', + 'INET_E_INVALID_CERTIFICATE', + 'INET_E_INVALID_REQUEST', + 'INET_E_INVALID_URL', + 'INET_E_NO_SESSION', + 'INET_E_NO_VALID_MEDIA', + 'INET_E_OBJECT_NOT_FOUND', + 'INET_E_REDIRECT_FAILED', + 'INET_E_REDIRECT_TO_DIR', + 'INET_E_RESOURCE_NOT_FOUND', + 'INET_E_SECURITY_PROBLEM', + 'INET_E_UNKNOWN_PROTOCOL', + 'INPLACE_E_FIRST', + 'INPLACE_E_LAST', + 'INPLACE_E_NOTOOLSPACE', + 'INPLACE_E_NOTUNDOABLE', + 'INPLACE_S_FIRST', + 'INPLACE_S_LAST', + 'INPLACE_S_TRUNCATED', + 'INPUT_E_DEVICE_INFO', + 'INPUT_E_DEVICE_PROPERTY', + 'INPUT_E_FRAME', + 'INPUT_E_HISTORY', + 'INPUT_E_MULTIMODAL', + 'INPUT_E_OUT_OF_ORDER', + 'INPUT_E_PACKET', + 'INPUT_E_REENTRANCY', + 'INPUT_E_TRANSFORM', + 'JSCRIPT_E_CANTEXECUTE', + 'MARSHAL_E_FIRST', + 'MARSHAL_E_LAST', + 'MARSHAL_S_FIRST', + 'MARSHAL_S_LAST', + 'MEM_E_INVALID_LINK', + 'MEM_E_INVALID_ROOT', + 'MEM_E_INVALID_SIZE', + 'MILAVERR_INSUFFICIENTVIDEORESOURCES', + 'MILAVERR_INVALIDWMPVERSION', + 'MILAVERR_MEDIAPLAYERCLOSED', + 'MILAVERR_MODULENOTLOADED', + 'MILAVERR_NOCLOCK', + 'MILAVERR_NOMEDIATYPE', + 'MILAVERR_NOREADYFRAMES', + 'MILAVERR_NOVIDEOMIXER', + 'MILAVERR_NOVIDEOPRESENTER', + 'MILAVERR_REQUESTEDTEXTURETOOBIG', + 'MILAVERR_SEEKFAILED', + 'MILAVERR_UNEXPECTEDWMPFAILURE', + 'MILAVERR_UNKNOWNHARDWAREERROR', + 'MILAVERR_VIDEOACCELERATIONNOTAVAILABLE', + 'MILAVERR_WMPFACTORYNOTREGISTERED', + 'MILEFFECTSERR_ALREADYATTACHEDTOLISTENER', + 'MILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT', + 'MILEFFECTSERR_CONNECTORNOTCONNECTED', + 'MILEFFECTSERR_CYCLEDETECTED', + 'MILEFFECTSERR_EFFECTALREADYINAGRAPH', + 'MILEFFECTSERR_EFFECTHASNOCHILDREN', + 'MILEFFECTSERR_EFFECTINMORETHANONEGRAPH', + 'MILEFFECTSERR_EFFECTNOTPARTOFGROUP', + 'MILEFFECTSERR_EMPTYBOUNDS', + 'MILEFFECTSERR_NOINPUTSOURCEATTACHED', + 'MILEFFECTSERR_NOTAFFINETRANSFORM', + 'MILEFFECTSERR_OUTPUTSIZETOOLARGE', + 'MILEFFECTSERR_RESERVED', + 'MILEFFECTSERR_UNKNOWNPROPERTY', + 'MILERR_ADAPTER_NOT_FOUND', + 'MILERR_ALREADYLOCKED', + 'MILERR_ALREADY_INITIALIZED', + 'MILERR_BADNUMBER', + 'MILERR_COLORSPACE_NOT_SUPPORTED', + 'MILERR_DEVICECANNOTRENDERTEXT', + 'MILERR_DISPLAYFORMATNOTSUPPORTED', + 'MILERR_DISPLAYID_ACCESS_DENIED', + 'MILERR_DISPLAYSTATEINVALID', + 'MILERR_DXGI_ENUMERATION_OUT_OF_SYNC', + 'MILERR_GENERIC_IGNORE', + 'MILERR_GLYPHBITMAPMISSED', + 'MILERR_INSUFFICIENTBUFFER', + 'MILERR_INTERNALERROR', + 'MILERR_INVALIDCALL', + 'MILERR_MALFORMEDGLYPHCACHE', + 'MILERR_MALFORMED_GUIDELINE_DATA', + 'MILERR_MAX_TEXTURE_SIZE_EXCEEDED', + 'MILERR_MISMATCHED_SIZE', + 'MILERR_MROW_READLOCK_FAILED', + 'MILERR_MROW_UPDATE_FAILED', + 'MILERR_NEED_RECREATE_AND_PRESENT', + 'MILERR_NONINVERTIBLEMATRIX', + 'MILERR_NOTLOCKED', + 'MILERR_NOT_QUEUING_PRESENTS', + 'MILERR_NO_HARDWARE_DEVICE', + 'MILERR_NO_REDIRECTION_SURFACE_AVAILABLE', + 'MILERR_NO_REDIRECTION_SURFACE_RETRY_LATER', + 'MILERR_OBJECTBUSY', + 'MILERR_PREFILTER_NOT_SUPPORTED', + 'MILERR_QPC_TIME_WENT_BACKWARD', + 'MILERR_QUEUED_PRESENT_NOT_SUPPORTED', + 'MILERR_REMOTING_NOT_SUPPORTED', + 'MILERR_SCANNER_FAILED', + 'MILERR_SCREENACCESSDENIED', + 'MILERR_SHADER_COMPILE_FAILED', + 'MILERR_TERMINATED', + 'MILERR_TOOMANYSHADERELEMNTS', + 'MILERR_WIN32ERROR', + 'MILERR_ZEROVECTOR', + 'MK_E_CANTOPENFILE', + 'MK_E_CONNECTMANUALLY', + 'MK_E_ENUMERATION_FAILED', + 'MK_E_EXCEEDEDDEADLINE', + 'MK_E_FIRST', + 'MK_E_INTERMEDIATEINTERFACENOTSUPPORTED', + 'MK_E_INVALIDEXTENSION', + 'MK_E_LAST', + 'MK_E_MUSTBOTHERUSER', + 'MK_E_NEEDGENERIC', + 'MK_E_NOINVERSE', + 'MK_E_NOOBJECT', + 'MK_E_NOPREFIX', + 'MK_E_NOSTORAGE', + 'MK_E_NOTBINDABLE', + 'MK_E_NOTBOUND', + 'MK_E_NO_NORMALIZED', + 'MK_E_SYNTAX', + 'MK_E_UNAVAILABLE', + 'MK_S_FIRST', + 'MK_S_HIM', + 'MK_S_LAST', + 'MK_S_ME', + 'MK_S_MONIKERALREADYREGISTERED', + 'MK_S_REDUCED_TO_SELF', + 'MK_S_US', + 'MSDTC_E_DUPLICATE_RESOURCE', + 'MSSIPOTF_E_BADVERSION', + 'MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT', + 'MSSIPOTF_E_BAD_MAGICNUMBER', + 'MSSIPOTF_E_BAD_OFFSET_TABLE', + 'MSSIPOTF_E_CANTGETOBJECT', + 'MSSIPOTF_E_CRYPT', + 'MSSIPOTF_E_DSIG_STRUCTURE', + 'MSSIPOTF_E_FAILED_HINTS_CHECK', + 'MSSIPOTF_E_FAILED_POLICY', + 'MSSIPOTF_E_FILE', + 'MSSIPOTF_E_FILETOOSMALL', + 'MSSIPOTF_E_FILE_CHECKSUM', + 'MSSIPOTF_E_NOHEADTABLE', + 'MSSIPOTF_E_NOT_OPENTYPE', + 'MSSIPOTF_E_OUTOFMEMRANGE', + 'MSSIPOTF_E_PCONST_CHECK', + 'MSSIPOTF_E_STRUCTURE', + 'MSSIPOTF_E_TABLES_OVERLAP', + 'MSSIPOTF_E_TABLE_CHECKSUM', + 'MSSIPOTF_E_TABLE_LONGWORD', + 'MSSIPOTF_E_TABLE_PADBYTES', + 'MSSIPOTF_E_TABLE_TAGORDER', + 'NAP_E_CONFLICTING_ID', + 'NAP_E_ENTITY_DISABLED', + 'NAP_E_ID_NOT_FOUND', + 'NAP_E_INVALID_PACKET', + 'NAP_E_MAXSIZE_TOO_SMALL', + 'NAP_E_MISMATCHED_ID', + 'NAP_E_MISSING_SOH', + 'NAP_E_NETSH_GROUPPOLICY_ERROR', + 'NAP_E_NOT_INITIALIZED', + 'NAP_E_NOT_PENDING', + 'NAP_E_NOT_REGISTERED', + 'NAP_E_NO_CACHED_SOH', + 'NAP_E_SERVICE_NOT_RUNNING', + 'NAP_E_SHV_CONFIG_EXISTED', + 'NAP_E_SHV_CONFIG_NOT_FOUND', + 'NAP_E_SHV_TIMEOUT', + 'NAP_E_STILL_BOUND', + 'NAP_E_TOO_MANY_CALLS', + 'NAP_S_CERT_ALREADY_PRESENT', + 'NOERROR', + 'NO_ERROR', + 'NTE_AUTHENTICATION_IGNORED', + 'NTE_BAD_ALGID', + 'NTE_BAD_DATA', + 'NTE_BAD_FLAGS', + 'NTE_BAD_HASH', + 'NTE_BAD_HASH_STATE', + 'NTE_BAD_KEY', + 'NTE_BAD_KEYSET', + 'NTE_BAD_KEYSET_PARAM', + 'NTE_BAD_KEY_STATE', + 'NTE_BAD_LEN', + 'NTE_BAD_PROVIDER', + 'NTE_BAD_PROV_TYPE', + 'NTE_BAD_PUBLIC_KEY', + 'NTE_BAD_SIGNATURE', + 'NTE_BAD_TYPE', + 'NTE_BAD_UID', + 'NTE_BAD_VER', + 'NTE_BUFFERS_OVERLAP', + 'NTE_BUFFER_TOO_SMALL', + 'NTE_DECRYPTION_FAILURE', + 'NTE_DEVICE_NOT_FOUND', + 'NTE_DEVICE_NOT_READY', + 'NTE_DOUBLE_ENCRYPT', + 'NTE_ENCRYPTION_FAILURE', + 'NTE_EXISTS', + 'NTE_FAIL', + 'NTE_FIXEDPARAMETER', + 'NTE_HMAC_NOT_SUPPORTED', + 'NTE_INCORRECT_PASSWORD', + 'NTE_INTERNAL_ERROR', + 'NTE_INVALID_HANDLE', + 'NTE_INVALID_PARAMETER', + 'NTE_KEYSET_ENTRY_BAD', + 'NTE_KEYSET_NOT_DEF', + 'NTE_NOT_ACTIVE_CONSOLE', + 'NTE_NOT_FOUND', + 'NTE_NOT_SUPPORTED', + 'NTE_NO_KEY', + 'NTE_NO_MEMORY', + 'NTE_NO_MORE_ITEMS', + 'NTE_OP_OK', + 'NTE_PASSWORD_CHANGE_REQUIRED', + 'NTE_PERM', + 'NTE_PROVIDER_DLL_FAIL', + 'NTE_PROV_DLL_NOT_FOUND', + 'NTE_PROV_TYPE_ENTRY_BAD', + 'NTE_PROV_TYPE_NOT_DEF', + 'NTE_PROV_TYPE_NO_MATCH', + 'NTE_SIGNATURE_FILE_BAD', + 'NTE_SILENT_CONTEXT', + 'NTE_SYS_ERR', + 'NTE_TEMPORARY_PROFILE', + 'NTE_TOKEN_KEYSET_STORAGE_FULL', + 'NTE_UI_REQUIRED', + 'NTE_USER_CANCELLED', + 'NTE_VALIDATION_FAILED', + 'OLEOBJ_E_FIRST', + 'OLEOBJ_E_INVALIDVERB', + 'OLEOBJ_E_LAST', + 'OLEOBJ_E_NOVERBS', + 'OLEOBJ_S_CANNOT_DOVERB_NOW', + 'OLEOBJ_S_FIRST', + 'OLEOBJ_S_INVALIDHWND', + 'OLEOBJ_S_INVALIDVERB', + 'OLEOBJ_S_LAST', + 'OLE_E_ADVF', + 'OLE_E_ADVISENOTSUPPORTED', + 'OLE_E_BLANK', + 'OLE_E_CANTCONVERT', + 'OLE_E_CANT_BINDTOSOURCE', + 'OLE_E_CANT_GETMONIKER', + 'OLE_E_CLASSDIFF', + 'OLE_E_ENUM_NOMORE', + 'OLE_E_FIRST', + 'OLE_E_INVALIDHWND', + 'OLE_E_INVALIDRECT', + 'OLE_E_LAST', + 'OLE_E_NOCACHE', + 'OLE_E_NOCONNECTION', + 'OLE_E_NOSTORAGE', + 'OLE_E_NOTRUNNING', + 'OLE_E_NOT_INPLACEACTIVE', + 'OLE_E_OLEVERB', + 'OLE_E_PROMPTSAVECANCELLED', + 'OLE_E_STATIC', + 'OLE_E_WRONGCOMPOBJ', + 'OLE_S_FIRST', + 'OLE_S_LAST', + 'OLE_S_MAC_CLIPFORMAT', + 'OLE_S_STATIC', + 'OLE_S_USEREG', + 'ONL_CONNECTION_COUNT_LIMIT', + 'ONL_E_ACCESS_DENIED_BY_TOU', + 'ONL_E_ACCOUNT_LOCKED', + 'ONL_E_ACCOUNT_SUSPENDED_ABUSE', + 'ONL_E_ACCOUNT_SUSPENDED_COMPROIMISE', + 'ONL_E_ACCOUNT_UPDATE_REQUIRED', + 'ONL_E_ACTION_REQUIRED', + 'ONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT', + 'ONL_E_EMAIL_VERIFICATION_REQUIRED', + 'ONL_E_FORCESIGNIN', + 'ONL_E_INVALID_APPLICATION', + 'ONL_E_INVALID_AUTHENTICATION_TARGET', + 'ONL_E_PARENTAL_CONSENT_REQUIRED', + 'ONL_E_PASSWORD_UPDATE_REQUIRED', + 'ONL_E_REQUEST_THROTTLED', + 'ONL_E_USER_AUTHENTICATION_REQUIRED', + 'OR_INVALID_OID', + 'OR_INVALID_OXID', + 'OR_INVALID_SET', + 'OSS_ACCESS_SERIALIZATION_ERROR', + 'OSS_API_DLL_NOT_LINKED', + 'OSS_BAD_ARG', + 'OSS_BAD_ENCRULES', + 'OSS_BAD_PTR', + 'OSS_BAD_TABLE', + 'OSS_BAD_TIME', + 'OSS_BAD_VERSION', + 'OSS_BERDER_DLL_NOT_LINKED', + 'OSS_CANT_CLOSE_TRACE_FILE', + 'OSS_CANT_OPEN_TRACE_FILE', + 'OSS_CANT_OPEN_TRACE_WINDOW', + 'OSS_COMPARATOR_CODE_NOT_LINKED', + 'OSS_COMPARATOR_DLL_NOT_LINKED', + 'OSS_CONSTRAINT_DLL_NOT_LINKED', + 'OSS_CONSTRAINT_VIOLATED', + 'OSS_COPIER_DLL_NOT_LINKED', + 'OSS_DATA_ERROR', + 'OSS_FATAL_ERROR', + 'OSS_INDEFINITE_NOT_SUPPORTED', + 'OSS_LIMITED', + 'OSS_MEM_ERROR', + 'OSS_MEM_MGR_DLL_NOT_LINKED', + 'OSS_MORE_BUF', + 'OSS_MORE_INPUT', + 'OSS_MUTEX_NOT_CREATED', + 'OSS_NEGATIVE_UINTEGER', + 'OSS_NULL_FCN', + 'OSS_NULL_TBL', + 'OSS_OID_DLL_NOT_LINKED', + 'OSS_OPEN_TYPE_ERROR', + 'OSS_OUT_MEMORY', + 'OSS_OUT_OF_RANGE', + 'OSS_PDU_MISMATCH', + 'OSS_PDU_RANGE', + 'OSS_PDV_CODE_NOT_LINKED', + 'OSS_PDV_DLL_NOT_LINKED', + 'OSS_PER_DLL_NOT_LINKED', + 'OSS_REAL_CODE_NOT_LINKED', + 'OSS_REAL_DLL_NOT_LINKED', + 'OSS_TABLE_MISMATCH', + 'OSS_TOO_LONG', + 'OSS_TRACE_FILE_ALREADY_OPEN', + 'OSS_TYPE_NOT_SUPPORTED', + 'OSS_UNAVAIL_ENCRULES', + 'OSS_UNIMPLEMENTED', + 'PEERDIST_ERROR_ALREADY_COMPLETED', + 'PEERDIST_ERROR_ALREADY_EXISTS', + 'PEERDIST_ERROR_ALREADY_INITIALIZED', + 'PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO', + 'PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED', + 'PEERDIST_ERROR_INVALIDATED', + 'PEERDIST_ERROR_INVALID_CONFIGURATION', + 'PEERDIST_ERROR_MISSING_DATA', + 'PEERDIST_ERROR_NOT_INITIALIZED', + 'PEERDIST_ERROR_NOT_LICENSED', + 'PEERDIST_ERROR_NO_MORE', + 'PEERDIST_ERROR_OPERATION_NOTFOUND', + 'PEERDIST_ERROR_OUT_OF_BOUNDS', + 'PEERDIST_ERROR_SERVICE_UNAVAILABLE', + 'PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS', + 'PEERDIST_ERROR_TRUST_FAILURE', + 'PEERDIST_ERROR_VERSION_UNSUPPORTED', + 'PEER_E_ALREADY_LISTENING', + 'PEER_E_CANNOT_CONVERT_PEER_NAME', + 'PEER_E_CANNOT_START_SERVICE', + 'PEER_E_CERT_STORE_CORRUPTED', + 'PEER_E_CHAIN_TOO_LONG', + 'PEER_E_CIRCULAR_CHAIN_DETECTED', + 'PEER_E_CLASSIFIER_TOO_LONG', + 'PEER_E_CLOUD_NAME_AMBIGUOUS', + 'PEER_E_CONNECTION_FAILED', + 'PEER_E_CONNECTION_NOT_AUTHENTICATED', + 'PEER_E_CONNECTION_NOT_FOUND', + 'PEER_E_CONNECTION_REFUSED', + 'PEER_E_CONNECT_SELF', + 'PEER_E_CONTACT_NOT_FOUND', + 'PEER_E_DATABASE_ACCESSDENIED', + 'PEER_E_DATABASE_ALREADY_PRESENT', + 'PEER_E_DATABASE_NOT_PRESENT', + 'PEER_E_DBINITIALIZATION_FAILED', + 'PEER_E_DBNAME_CHANGED', + 'PEER_E_DEFERRED_VALIDATION', + 'PEER_E_DUPLICATE_GRAPH', + 'PEER_E_EVENT_HANDLE_NOT_FOUND', + 'PEER_E_FW_BLOCKED_BY_POLICY', + 'PEER_E_FW_BLOCKED_BY_SHIELDS_UP', + 'PEER_E_FW_DECLINED', + 'PEER_E_FW_EXCEPTION_DISABLED', + 'PEER_E_GRAPH_IN_USE', + 'PEER_E_GRAPH_NOT_READY', + 'PEER_E_GRAPH_SHUTTING_DOWN', + 'PEER_E_GROUPS_EXIST', + 'PEER_E_GROUP_IN_USE', + 'PEER_E_GROUP_NOT_READY', + 'PEER_E_IDENTITY_DELETED', + 'PEER_E_IDENTITY_NOT_FOUND', + 'PEER_E_INVALID_ADDRESS', + 'PEER_E_INVALID_ATTRIBUTES', + 'PEER_E_INVALID_CLASSIFIER', + 'PEER_E_INVALID_CLASSIFIER_PROPERTY', + 'PEER_E_INVALID_CREDENTIAL', + 'PEER_E_INVALID_CREDENTIAL_INFO', + 'PEER_E_INVALID_DATABASE', + 'PEER_E_INVALID_FRIENDLY_NAME', + 'PEER_E_INVALID_GRAPH', + 'PEER_E_INVALID_GROUP', + 'PEER_E_INVALID_GROUP_PROPERTIES', + 'PEER_E_INVALID_PEER_HOST_NAME', + 'PEER_E_INVALID_PEER_NAME', + 'PEER_E_INVALID_RECORD', + 'PEER_E_INVALID_RECORD_EXPIRATION', + 'PEER_E_INVALID_RECORD_SIZE', + 'PEER_E_INVALID_ROLE_PROPERTY', + 'PEER_E_INVALID_SEARCH', + 'PEER_E_INVALID_TIME_PERIOD', + 'PEER_E_INVITATION_NOT_TRUSTED', + 'PEER_E_INVITE_CANCELLED', + 'PEER_E_INVITE_RESPONSE_NOT_AVAILABLE', + 'PEER_E_IPV6_NOT_INSTALLED', + 'PEER_E_MAX_RECORD_SIZE_EXCEEDED', + 'PEER_E_NODE_NOT_FOUND', + 'PEER_E_NOT_AUTHORIZED', + 'PEER_E_NOT_INITIALIZED', + 'PEER_E_NOT_LICENSED', + 'PEER_E_NOT_SIGNED_IN', + 'PEER_E_NO_CLOUD', + 'PEER_E_NO_KEY_ACCESS', + 'PEER_E_NO_MEMBERS_FOUND', + 'PEER_E_NO_MEMBER_CONNECTIONS', + 'PEER_E_NO_MORE', + 'PEER_E_PASSWORD_DOES_NOT_MEET_POLICY', + 'PEER_E_PNRP_DUPLICATE_PEER_NAME', + 'PEER_E_PRIVACY_DECLINED', + 'PEER_E_RECORD_NOT_FOUND', + 'PEER_E_SERVICE_NOT_AVAILABLE', + 'PEER_E_TIMEOUT', + 'PEER_E_TOO_MANY_ATTRIBUTES', + 'PEER_E_TOO_MANY_IDENTITIES', + 'PEER_E_UNABLE_TO_LISTEN', + 'PEER_E_UNSUPPORTED_VERSION', + 'PEER_S_ALREADY_A_MEMBER', + 'PEER_S_ALREADY_CONNECTED', + 'PEER_S_GRAPH_DATA_CREATED', + 'PEER_S_NO_CONNECTIVITY', + 'PEER_S_NO_EVENT_DATA', + 'PEER_S_SUBSCRIPTION_EXISTS', + 'PERSIST_E_NOTSELFSIZING', + 'PERSIST_E_SIZEDEFINITE', + 'PERSIST_E_SIZEINDEFINITE', + 'PLA_E_CABAPI_FAILURE', + 'PLA_E_CONFLICT_INCL_EXCL_API', + 'PLA_E_CREDENTIALS_REQUIRED', + 'PLA_E_DCS_ALREADY_EXISTS', + 'PLA_E_DCS_IN_USE', + 'PLA_E_DCS_NOT_FOUND', + 'PLA_E_DCS_NOT_RUNNING', + 'PLA_E_DCS_SINGLETON_REQUIRED', + 'PLA_E_DCS_START_WAIT_TIMEOUT', + 'PLA_E_DC_ALREADY_EXISTS', + 'PLA_E_DC_START_WAIT_TIMEOUT', + 'PLA_E_EXE_ALREADY_CONFIGURED', + 'PLA_E_EXE_FULL_PATH_REQUIRED', + 'PLA_E_EXE_PATH_NOT_VALID', + 'PLA_E_INVALID_SESSION_NAME', + 'PLA_E_NETWORK_EXE_NOT_VALID', + 'PLA_E_NO_DUPLICATES', + 'PLA_E_NO_MIN_DISK', + 'PLA_E_PLA_CHANNEL_NOT_ENABLED', + 'PLA_E_PROPERTY_CONFLICT', + 'PLA_E_REPORT_WAIT_TIMEOUT', + 'PLA_E_RULES_MANAGER_FAILED', + 'PLA_E_TASKSCHED_CHANNEL_NOT_ENABLED', + 'PLA_E_TOO_MANY_FOLDERS', + 'PLA_S_PROPERTY_IGNORED', + 'REGDB_E_BADTHREADINGMODEL', + 'REGDB_E_CLASSNOTREG', + 'REGDB_E_FIRST', + 'REGDB_E_IIDNOTREG', + 'REGDB_E_INVALIDVALUE', + 'REGDB_E_KEYMISSING', + 'REGDB_E_LAST', + 'REGDB_E_PACKAGEPOLICYVIOLATION', + 'REGDB_E_READREGDB', + 'REGDB_E_WRITEREGDB', + 'REGDB_S_FIRST', + 'REGDB_S_LAST', + 'RO_E_BLOCKED_CROSS_ASTA_CALL', + 'RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER', + 'RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER', + 'RO_E_CHANGE_NOTIFICATION_IN_PROGRESS', + 'RO_E_CLOSED', + 'RO_E_COMMITTED', + 'RO_E_ERROR_STRING_NOT_FOUND', + 'RO_E_EXCLUSIVE_WRITE', + 'RO_E_INVALID_METADATA_FILE', + 'RO_E_METADATA_INVALID_TYPE_FORMAT', + 'RO_E_METADATA_NAME_IS_NAMESPACE', + 'RO_E_METADATA_NAME_NOT_FOUND', + 'RO_E_MUST_BE_AGILE', + 'RO_E_UNSUPPORTED_FROM_MTA', + 'RPC_E_ACCESS_DENIED', + 'RPC_E_ATTEMPTED_MULTITHREAD', + 'RPC_E_CALL_CANCELED', + 'RPC_E_CALL_COMPLETE', + 'RPC_E_CALL_REJECTED', + 'RPC_E_CANTCALLOUT_AGAIN', + 'RPC_E_CANTCALLOUT_INASYNCCALL', + 'RPC_E_CANTCALLOUT_INEXTERNALCALL', + 'RPC_E_CANTCALLOUT_ININPUTSYNCCALL', + 'RPC_E_CANTPOST_INSENDCALL', + 'RPC_E_CANTTRANSMIT_CALL', + 'RPC_E_CHANGED_MODE', + 'RPC_E_CLIENT_CANTMARSHAL_DATA', + 'RPC_E_CLIENT_CANTUNMARSHAL_DATA', + 'RPC_E_CLIENT_DIED', + 'RPC_E_CONNECTION_TERMINATED', + 'RPC_E_DISCONNECTED', + 'RPC_E_FAULT', + 'RPC_E_FULLSIC_REQUIRED', + 'RPC_E_INVALIDMETHOD', + 'RPC_E_INVALID_CALLDATA', + 'RPC_E_INVALID_DATA', + 'RPC_E_INVALID_DATAPACKET', + 'RPC_E_INVALID_EXTENSION', + 'RPC_E_INVALID_HEADER', + 'RPC_E_INVALID_IPID', + 'RPC_E_INVALID_OBJECT', + 'RPC_E_INVALID_OBJREF', + 'RPC_E_INVALID_PARAMETER', + 'RPC_E_INVALID_STD_NAME', + 'RPC_E_NOT_REGISTERED', + 'RPC_E_NO_CONTEXT', + 'RPC_E_NO_GOOD_SECURITY_PACKAGES', + 'RPC_E_NO_SYNC', + 'RPC_E_OUT_OF_RESOURCES', + 'RPC_E_REMOTE_DISABLED', + 'RPC_E_RETRY', + 'RPC_E_SERVERCALL_REJECTED', + 'RPC_E_SERVERCALL_RETRYLATER', + 'RPC_E_SERVERFAULT', + 'RPC_E_SERVER_CANTMARSHAL_DATA', + 'RPC_E_SERVER_CANTUNMARSHAL_DATA', + 'RPC_E_SERVER_DIED', + 'RPC_E_SERVER_DIED_DNE', + 'RPC_E_SYS_CALL_FAILED', + 'RPC_E_THREAD_NOT_INIT', + 'RPC_E_TIMEOUT', + 'RPC_E_TOO_LATE', + 'RPC_E_UNEXPECTED', + 'RPC_E_UNSECURE_CALL', + 'RPC_E_VERSION_MISMATCH', + 'RPC_E_WRONG_THREAD', + 'RPC_NT_ADDRESS_ERROR', + 'RPC_NT_ALREADY_LISTENING', + 'RPC_NT_ALREADY_REGISTERED', + 'RPC_NT_BAD_STUB_DATA', + 'RPC_NT_BINDING_HAS_NO_AUTH', + 'RPC_NT_BINDING_INCOMPLETE', + 'RPC_NT_BYTE_COUNT_TOO_SMALL', + 'RPC_NT_CALL_CANCELLED', + 'RPC_NT_CALL_FAILED', + 'RPC_NT_CALL_FAILED_DNE', + 'RPC_NT_CALL_IN_PROGRESS', + 'RPC_NT_CANNOT_SUPPORT', + 'RPC_NT_CANT_CREATE_ENDPOINT', + 'RPC_NT_COMM_FAILURE', + 'RPC_NT_DUPLICATE_ENDPOINT', + 'RPC_NT_ENTRY_ALREADY_EXISTS', + 'RPC_NT_ENTRY_NOT_FOUND', + 'RPC_NT_ENUM_VALUE_OUT_OF_RANGE', + 'RPC_NT_FP_DIV_ZERO', + 'RPC_NT_FP_OVERFLOW', + 'RPC_NT_FP_UNDERFLOW', + 'RPC_NT_GROUP_MEMBER_NOT_FOUND', + 'RPC_NT_INCOMPLETE_NAME', + 'RPC_NT_INTERFACE_NOT_FOUND', + 'RPC_NT_INTERNAL_ERROR', + 'RPC_NT_INVALID_ASYNC_CALL', + 'RPC_NT_INVALID_ASYNC_HANDLE', + 'RPC_NT_INVALID_AUTH_IDENTITY', + 'RPC_NT_INVALID_BINDING', + 'RPC_NT_INVALID_BOUND', + 'RPC_NT_INVALID_ENDPOINT_FORMAT', + 'RPC_NT_INVALID_ES_ACTION', + 'RPC_NT_INVALID_NAF_ID', + 'RPC_NT_INVALID_NAME_SYNTAX', + 'RPC_NT_INVALID_NETWORK_OPTIONS', + 'RPC_NT_INVALID_NET_ADDR', + 'RPC_NT_INVALID_OBJECT', + 'RPC_NT_INVALID_PIPE_OBJECT', + 'RPC_NT_INVALID_PIPE_OPERATION', + 'RPC_NT_INVALID_RPC_PROTSEQ', + 'RPC_NT_INVALID_STRING_BINDING', + 'RPC_NT_INVALID_STRING_UUID', + 'RPC_NT_INVALID_TAG', + 'RPC_NT_INVALID_TIMEOUT', + 'RPC_NT_INVALID_VERS_OPTION', + 'RPC_NT_MAX_CALLS_TOO_SMALL', + 'RPC_NT_NAME_SERVICE_UNAVAILABLE', + 'RPC_NT_NOTHING_TO_EXPORT', + 'RPC_NT_NOT_ALL_OBJS_UNEXPORTED', + 'RPC_NT_NOT_CANCELLED', + 'RPC_NT_NOT_LISTENING', + 'RPC_NT_NOT_RPC_ERROR', + 'RPC_NT_NO_BINDINGS', + 'RPC_NT_NO_CALL_ACTIVE', + 'RPC_NT_NO_CONTEXT_AVAILABLE', + 'RPC_NT_NO_ENDPOINT_FOUND', + 'RPC_NT_NO_ENTRY_NAME', + 'RPC_NT_NO_INTERFACES', + 'RPC_NT_NO_MORE_BINDINGS', + 'RPC_NT_NO_MORE_ENTRIES', + 'RPC_NT_NO_MORE_MEMBERS', + 'RPC_NT_NO_PRINC_NAME', + 'RPC_NT_NO_PROTSEQS', + 'RPC_NT_NO_PROTSEQS_REGISTERED', + 'RPC_NT_NULL_REF_POINTER', + 'RPC_NT_OBJECT_NOT_FOUND', + 'RPC_NT_OUT_OF_RESOURCES', + 'RPC_NT_PIPE_CLOSED', + 'RPC_NT_PIPE_DISCIPLINE_ERROR', + 'RPC_NT_PIPE_EMPTY', + 'RPC_NT_PROCNUM_OUT_OF_RANGE', + 'RPC_NT_PROTOCOL_ERROR', + 'RPC_NT_PROTSEQ_NOT_FOUND', + 'RPC_NT_PROTSEQ_NOT_SUPPORTED', + 'RPC_NT_PROXY_ACCESS_DENIED', + 'RPC_NT_SEC_PKG_ERROR', + 'RPC_NT_SEND_INCOMPLETE', + 'RPC_NT_SERVER_TOO_BUSY', + 'RPC_NT_SERVER_UNAVAILABLE', + 'RPC_NT_SS_CANNOT_GET_CALL_HANDLE', + 'RPC_NT_SS_CHAR_TRANS_OPEN_FAIL', + 'RPC_NT_SS_CHAR_TRANS_SHORT_FILE', + 'RPC_NT_SS_CONTEXT_DAMAGED', + 'RPC_NT_SS_CONTEXT_MISMATCH', + 'RPC_NT_SS_HANDLES_MISMATCH', + 'RPC_NT_SS_IN_NULL_CONTEXT', + 'RPC_NT_STRING_TOO_LONG', + 'RPC_NT_TYPE_ALREADY_REGISTERED', + 'RPC_NT_UNKNOWN_AUTHN_LEVEL', + 'RPC_NT_UNKNOWN_AUTHN_SERVICE', + 'RPC_NT_UNKNOWN_AUTHN_TYPE', + 'RPC_NT_UNKNOWN_AUTHZ_SERVICE', + 'RPC_NT_UNKNOWN_IF', + 'RPC_NT_UNKNOWN_MGR_TYPE', + 'RPC_NT_UNSUPPORTED_AUTHN_LEVEL', + 'RPC_NT_UNSUPPORTED_NAME_SYNTAX', + 'RPC_NT_UNSUPPORTED_TRANS_SYN', + 'RPC_NT_UNSUPPORTED_TYPE', + 'RPC_NT_UUID_LOCAL_ONLY', + 'RPC_NT_UUID_NO_ADDRESS', + 'RPC_NT_WRONG_ES_VERSION', + 'RPC_NT_WRONG_KIND_OF_BINDING', + 'RPC_NT_WRONG_PIPE_VERSION', + 'RPC_NT_WRONG_STUB_VERSION', + 'RPC_NT_ZERO_DIVIDE', + 'RPC_S_ADDRESS_ERROR', + 'RPC_S_ALREADY_LISTENING', + 'RPC_S_ALREADY_REGISTERED', + 'RPC_S_BINDING_HAS_NO_AUTH', + 'RPC_S_BINDING_INCOMPLETE', + 'RPC_S_CALLPENDING', + 'RPC_S_CALL_CANCELLED', + 'RPC_S_CALL_FAILED', + 'RPC_S_CALL_FAILED_DNE', + 'RPC_S_CALL_IN_PROGRESS', + 'RPC_S_CANNOT_SUPPORT', + 'RPC_S_CANT_CREATE_ENDPOINT', + 'RPC_S_COMM_FAILURE', + 'RPC_S_COOKIE_AUTH_FAILED', + 'RPC_S_DO_NOT_DISTURB', + 'RPC_S_DUPLICATE_ENDPOINT', + 'RPC_S_ENTRY_ALREADY_EXISTS', + 'RPC_S_ENTRY_NOT_FOUND', + 'RPC_S_ENTRY_TYPE_MISMATCH', + 'RPC_S_FP_DIV_ZERO', + 'RPC_S_FP_OVERFLOW', + 'RPC_S_FP_UNDERFLOW', + 'RPC_S_GROUP_MEMBER_NOT_FOUND', + 'RPC_S_GRP_ELT_NOT_ADDED', + 'RPC_S_GRP_ELT_NOT_REMOVED', + 'RPC_S_INCOMPLETE_NAME', + 'RPC_S_INTERFACE_NOT_EXPORTED', + 'RPC_S_INTERFACE_NOT_FOUND', + 'RPC_S_INTERNAL_ERROR', + 'RPC_S_INVALID_ASYNC_CALL', + 'RPC_S_INVALID_ASYNC_HANDLE', + 'RPC_S_INVALID_AUTH_IDENTITY', + 'RPC_S_INVALID_BINDING', + 'RPC_S_INVALID_BOUND', + 'RPC_S_INVALID_ENDPOINT_FORMAT', + 'RPC_S_INVALID_NAF_ID', + 'RPC_S_INVALID_NAME_SYNTAX', + 'RPC_S_INVALID_NETWORK_OPTIONS', + 'RPC_S_INVALID_NET_ADDR', + 'RPC_S_INVALID_OBJECT', + 'RPC_S_INVALID_RPC_PROTSEQ', + 'RPC_S_INVALID_STRING_BINDING', + 'RPC_S_INVALID_STRING_UUID', + 'RPC_S_INVALID_TAG', + 'RPC_S_INVALID_TIMEOUT', + 'RPC_S_INVALID_VERS_OPTION', + 'RPC_S_MAX_CALLS_TOO_SMALL', + 'RPC_S_NAME_SERVICE_UNAVAILABLE', + 'RPC_S_NOTHING_TO_EXPORT', + 'RPC_S_NOT_ALL_OBJS_EXPORTED', + 'RPC_S_NOT_ALL_OBJS_UNEXPORTED', + 'RPC_S_NOT_CANCELLED', + 'RPC_S_NOT_LISTENING', + 'RPC_S_NOT_RPC_ERROR', + 'RPC_S_NO_BINDINGS', + 'RPC_S_NO_CALL_ACTIVE', + 'RPC_S_NO_CONTEXT_AVAILABLE', + 'RPC_S_NO_ENDPOINT_FOUND', + 'RPC_S_NO_ENTRY_NAME', + 'RPC_S_NO_INTERFACES', + 'RPC_S_NO_MORE_BINDINGS', + 'RPC_S_NO_MORE_MEMBERS', + 'RPC_S_NO_PRINC_NAME', + 'RPC_S_NO_PROTSEQS', + 'RPC_S_NO_PROTSEQS_REGISTERED', + 'RPC_S_OBJECT_NOT_FOUND', + 'RPC_S_OUT_OF_RESOURCES', + 'RPC_S_PRF_ELT_NOT_ADDED', + 'RPC_S_PRF_ELT_NOT_REMOVED', + 'RPC_S_PROCNUM_OUT_OF_RANGE', + 'RPC_S_PROFILE_NOT_ADDED', + 'RPC_S_PROTOCOL_ERROR', + 'RPC_S_PROTSEQ_NOT_FOUND', + 'RPC_S_PROTSEQ_NOT_SUPPORTED', + 'RPC_S_PROXY_ACCESS_DENIED', + 'RPC_S_SEC_PKG_ERROR', + 'RPC_S_SEND_INCOMPLETE', + 'RPC_S_SERVER_TOO_BUSY', + 'RPC_S_SERVER_UNAVAILABLE', + 'RPC_S_STRING_TOO_LONG', + 'RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED', + 'RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH', + 'RPC_S_TYPE_ALREADY_REGISTERED', + 'RPC_S_UNKNOWN_AUTHN_LEVEL', + 'RPC_S_UNKNOWN_AUTHN_SERVICE', + 'RPC_S_UNKNOWN_AUTHN_TYPE', + 'RPC_S_UNKNOWN_AUTHZ_SERVICE', + 'RPC_S_UNKNOWN_IF', + 'RPC_S_UNKNOWN_MGR_TYPE', + 'RPC_S_UNSUPPORTED_AUTHN_LEVEL', + 'RPC_S_UNSUPPORTED_NAME_SYNTAX', + 'RPC_S_UNSUPPORTED_TRANS_SYN', + 'RPC_S_UNSUPPORTED_TYPE', + 'RPC_S_UUID_LOCAL_ONLY', + 'RPC_S_UUID_NO_ADDRESS', + 'RPC_S_WAITONTIMER', + 'RPC_S_WRONG_KIND_OF_BINDING', + 'RPC_S_ZERO_DIVIDE', + 'RPC_X_BAD_STUB_DATA', + 'RPC_X_BYTE_COUNT_TOO_SMALL', + 'RPC_X_ENUM_VALUE_OUT_OF_RANGE', + 'RPC_X_INVALID_ES_ACTION', + 'RPC_X_INVALID_PIPE_OBJECT', + 'RPC_X_NO_MORE_ENTRIES', + 'RPC_X_NULL_REF_POINTER', + 'RPC_X_PIPE_CLOSED', + 'RPC_X_PIPE_DISCIPLINE_ERROR', + 'RPC_X_PIPE_EMPTY', + 'RPC_X_SS_CANNOT_GET_CALL_HANDLE', + 'RPC_X_SS_CHAR_TRANS_OPEN_FAIL', + 'RPC_X_SS_CHAR_TRANS_SHORT_FILE', + 'RPC_X_SS_CONTEXT_DAMAGED', + 'RPC_X_SS_HANDLES_MISMATCH', + 'RPC_X_SS_IN_NULL_CONTEXT', + 'RPC_X_WRONG_ES_VERSION', + 'RPC_X_WRONG_PIPE_ORDER', + 'RPC_X_WRONG_PIPE_VERSION', + 'RPC_X_WRONG_STUB_VERSION', + 'SCARD_E_BAD_SEEK', + 'SCARD_E_CANCELLED', + 'SCARD_E_CANT_DISPOSE', + 'SCARD_E_CARD_UNSUPPORTED', + 'SCARD_E_CERTIFICATE_UNAVAILABLE', + 'SCARD_E_COMM_DATA_LOST', + 'SCARD_E_DIR_NOT_FOUND', + 'SCARD_E_DUPLICATE_READER', + 'SCARD_E_FILE_NOT_FOUND', + 'SCARD_E_ICC_CREATEORDER', + 'SCARD_E_ICC_INSTALLATION', + 'SCARD_E_INSUFFICIENT_BUFFER', + 'SCARD_E_INVALID_ATR', + 'SCARD_E_INVALID_CHV', + 'SCARD_E_INVALID_HANDLE', + 'SCARD_E_INVALID_PARAMETER', + 'SCARD_E_INVALID_TARGET', + 'SCARD_E_INVALID_VALUE', + 'SCARD_E_NOT_READY', + 'SCARD_E_NOT_TRANSACTED', + 'SCARD_E_NO_ACCESS', + 'SCARD_E_NO_DIR', + 'SCARD_E_NO_FILE', + 'SCARD_E_NO_KEY_CONTAINER', + 'SCARD_E_NO_MEMORY', + 'SCARD_E_NO_PIN_CACHE', + 'SCARD_E_NO_READERS_AVAILABLE', + 'SCARD_E_NO_SERVICE', + 'SCARD_E_NO_SMARTCARD', + 'SCARD_E_NO_SUCH_CERTIFICATE', + 'SCARD_E_PCI_TOO_SMALL', + 'SCARD_E_PIN_CACHE_EXPIRED', + 'SCARD_E_PROTO_MISMATCH', + 'SCARD_E_READER_UNAVAILABLE', + 'SCARD_E_READER_UNSUPPORTED', + 'SCARD_E_READ_ONLY_CARD', + 'SCARD_E_SERVER_TOO_BUSY', + 'SCARD_E_SERVICE_STOPPED', + 'SCARD_E_SHARING_VIOLATION', + 'SCARD_E_SYSTEM_CANCELLED', + 'SCARD_E_TIMEOUT', + 'SCARD_E_UNEXPECTED', + 'SCARD_E_UNKNOWN_CARD', + 'SCARD_E_UNKNOWN_READER', + 'SCARD_E_UNKNOWN_RES_MNG', + 'SCARD_E_UNSUPPORTED_FEATURE', + 'SCARD_E_WRITE_TOO_MANY', + 'SCARD_F_COMM_ERROR', + 'SCARD_F_INTERNAL_ERROR', + 'SCARD_F_UNKNOWN_ERROR', + 'SCARD_F_WAITED_TOO_LONG', + 'SCARD_P_SHUTDOWN', + 'SCARD_S_SUCCESS', + 'SCARD_W_CACHE_ITEM_NOT_FOUND', + 'SCARD_W_CACHE_ITEM_STALE', + 'SCARD_W_CACHE_ITEM_TOO_BIG', + 'SCARD_W_CANCELLED_BY_USER', + 'SCARD_W_CARD_NOT_AUTHENTICATED', + 'SCARD_W_CHV_BLOCKED', + 'SCARD_W_EOF', + 'SCARD_W_REMOVED_CARD', + 'SCARD_W_RESET_CARD', + 'SCARD_W_SECURITY_VIOLATION', + 'SCARD_W_UNPOWERED_CARD', + 'SCARD_W_UNRESPONSIVE_CARD', + 'SCARD_W_UNSUPPORTED_CARD', + 'SCARD_W_WRONG_CHV', + 'SCHED_E_ACCOUNT_DBASE_CORRUPT', + 'SCHED_E_ACCOUNT_INFORMATION_NOT_SET', + 'SCHED_E_ACCOUNT_NAME_NOT_FOUND', + 'SCHED_E_ALREADY_RUNNING', + 'SCHED_E_CANNOT_OPEN_TASK', + 'SCHED_E_DEPRECATED_FEATURE_USED', + 'SCHED_E_INVALIDVALUE', + 'SCHED_E_INVALID_TASK', + 'SCHED_E_INVALID_TASK_HASH', + 'SCHED_E_MALFORMEDXML', + 'SCHED_E_MISSINGNODE', + 'SCHED_E_NAMESPACE', + 'SCHED_E_NO_SECURITY_SERVICES', + 'SCHED_E_PAST_END_BOUNDARY', + 'SCHED_E_SERVICE_NOT_AVAILABLE', + 'SCHED_E_SERVICE_NOT_INSTALLED', + 'SCHED_E_SERVICE_NOT_LOCALSYSTEM', + 'SCHED_E_SERVICE_NOT_RUNNING', + 'SCHED_E_SERVICE_TOO_BUSY', + 'SCHED_E_START_ON_DEMAND', + 'SCHED_E_TASK_ATTEMPTED', + 'SCHED_E_TASK_DISABLED', + 'SCHED_E_TASK_NOT_READY', + 'SCHED_E_TASK_NOT_RUNNING', + 'SCHED_E_TASK_NOT_UBPM_COMPAT', + 'SCHED_E_TASK_NOT_V1_COMPAT', + 'SCHED_E_TOO_MANY_NODES', + 'SCHED_E_TRIGGER_NOT_FOUND', + 'SCHED_E_UNEXPECTEDNODE', + 'SCHED_E_UNKNOWN_OBJECT_VERSION', + 'SCHED_E_UNSUPPORTED_ACCOUNT_OPTION', + 'SCHED_E_USER_NOT_LOGGED_ON', + 'SCHED_S_BATCH_LOGON_PROBLEM', + 'SCHED_S_EVENT_TRIGGER', + 'SCHED_S_SOME_TRIGGERS_FAILED', + 'SCHED_S_TASK_DISABLED', + 'SCHED_S_TASK_HAS_NOT_RUN', + 'SCHED_S_TASK_NOT_SCHEDULED', + 'SCHED_S_TASK_NO_MORE_RUNS', + 'SCHED_S_TASK_NO_VALID_TRIGGERS', + 'SCHED_S_TASK_QUEUED', + 'SCHED_S_TASK_READY', + 'SCHED_S_TASK_RUNNING', + 'SCHED_S_TASK_TERMINATED', + 'SDIAG_E_CANCELLED', + 'SDIAG_E_CANNOTRUN', + 'SDIAG_E_DISABLED', + 'SDIAG_E_MANAGEDHOST', + 'SDIAG_E_NOVERIFIER', + 'SDIAG_E_POWERSHELL', + 'SDIAG_E_RESOURCE', + 'SDIAG_E_ROOTCAUSE', + 'SDIAG_E_SCRIPT', + 'SDIAG_E_TRUST', + 'SDIAG_E_VERSION', + 'SDIAG_S_CANNOTRUN', + 'SEC_E_ALGORITHM_MISMATCH', + 'SEC_E_APPLICATION_PROTOCOL_MISMATCH', + 'SEC_E_BAD_BINDINGS', + 'SEC_E_BAD_PKGID', + 'SEC_E_BUFFER_TOO_SMALL', + 'SEC_E_CANNOT_INSTALL', + 'SEC_E_CANNOT_PACK', + 'SEC_E_CERT_EXPIRED', + 'SEC_E_CERT_UNKNOWN', + 'SEC_E_CERT_WRONG_USAGE', + 'SEC_E_CONTEXT_EXPIRED', + 'SEC_E_CROSSREALM_DELEGATION_FAILURE', + 'SEC_E_CRYPTO_SYSTEM_INVALID', + 'SEC_E_DECRYPT_FAILURE', + 'SEC_E_DELEGATION_POLICY', + 'SEC_E_DELEGATION_REQUIRED', + 'SEC_E_DOWNGRADE_DETECTED', + 'SEC_E_ENCRYPT_FAILURE', + 'SEC_E_EXT_BUFFER_TOO_SMALL', + 'SEC_E_ILLEGAL_MESSAGE', + 'SEC_E_INCOMPLETE_CREDENTIALS', + 'SEC_E_INCOMPLETE_MESSAGE', + 'SEC_E_INSUFFICIENT_BUFFERS', + 'SEC_E_INSUFFICIENT_MEMORY', + 'SEC_E_INTERNAL_ERROR', + 'SEC_E_INVALID_HANDLE', + 'SEC_E_INVALID_PARAMETER', + 'SEC_E_INVALID_TOKEN', + 'SEC_E_INVALID_UPN_NAME', + 'SEC_E_ISSUING_CA_UNTRUSTED', + 'SEC_E_ISSUING_CA_UNTRUSTED_KDC', + 'SEC_E_KDC_CERT_EXPIRED', + 'SEC_E_KDC_CERT_REVOKED', + 'SEC_E_KDC_INVALID_REQUEST', + 'SEC_E_KDC_UNABLE_TO_REFER', + 'SEC_E_KDC_UNKNOWN_ETYPE', + 'SEC_E_LOGON_DENIED', + 'SEC_E_MAX_REFERRALS_EXCEEDED', + 'SEC_E_MESSAGE_ALTERED', + 'SEC_E_MULTIPLE_ACCOUNTS', + 'SEC_E_MUST_BE_KDC', + 'SEC_E_MUTUAL_AUTH_FAILED', + 'SEC_E_NOT_OWNER', + 'SEC_E_NOT_SUPPORTED', + 'SEC_E_NO_AUTHENTICATING_AUTHORITY', + 'SEC_E_NO_CONTEXT', + 'SEC_E_NO_CREDENTIALS', + 'SEC_E_NO_IMPERSONATION', + 'SEC_E_NO_IP_ADDRESSES', + 'SEC_E_NO_KERB_KEY', + 'SEC_E_NO_PA_DATA', + 'SEC_E_NO_S4U_PROT_SUPPORT', + 'SEC_E_NO_SPM', + 'SEC_E_NO_TGT_REPLY', + 'SEC_E_OK', + 'SEC_E_ONLY_HTTPS_ALLOWED', + 'SEC_E_OUT_OF_SEQUENCE', + 'SEC_E_PKINIT_CLIENT_FAILURE', + 'SEC_E_PKINIT_NAME_MISMATCH', + 'SEC_E_PKU2U_CERT_FAILURE', + 'SEC_E_POLICY_NLTM_ONLY', + 'SEC_E_QOP_NOT_SUPPORTED', + 'SEC_E_REVOCATION_OFFLINE_C', + 'SEC_E_REVOCATION_OFFLINE_KDC', + 'SEC_E_SECPKG_NOT_FOUND', + 'SEC_E_SECURITY_QOS_FAILED', + 'SEC_E_SHUTDOWN_IN_PROGRESS', + 'SEC_E_SMARTCARD_CERT_EXPIRED', + 'SEC_E_SMARTCARD_CERT_REVOKED', + 'SEC_E_SMARTCARD_LOGON_REQUIRED', + 'SEC_E_STRONG_CRYPTO_NOT_SUPPORTED', + 'SEC_E_TARGET_UNKNOWN', + 'SEC_E_TIME_SKEW', + 'SEC_E_TOO_MANY_PRINCIPALS', + 'SEC_E_UNFINISHED_CONTEXT_DELETED', + 'SEC_E_UNKNOWN_CREDENTIALS', + 'SEC_E_UNSUPPORTED_FUNCTION', + 'SEC_E_UNSUPPORTED_PREAUTH', + 'SEC_E_UNTRUSTED_ROOT', + 'SEC_E_WRONG_CREDENTIAL_HANDLE', + 'SEC_E_WRONG_PRINCIPAL', + 'SEC_I_ASYNC_CALL_PENDING', + 'SEC_I_COMPLETE_AND_CONTINUE', + 'SEC_I_COMPLETE_NEEDED', + 'SEC_I_CONTEXT_EXPIRED', + 'SEC_I_CONTINUE_NEEDED', + 'SEC_I_CONTINUE_NEEDED_MESSAGE_OK', + 'SEC_I_GENERIC_EXTENSION_RECEIVED', + 'SEC_I_INCOMPLETE_CREDENTIALS', + 'SEC_I_LOCAL_LOGON', + 'SEC_I_MESSAGE_FRAGMENT', + 'SEC_I_NO_LSA_CONTEXT', + 'SEC_I_NO_RENEGOTIATION', + 'SEC_I_RENEGOTIATE', + 'SEC_I_SIGNATURE_NEEDED', + 'SEVERITY_ERROR', + 'SEVERITY_SUCCESS', + 'SPAPI_E_AUTHENTICODE_DISALLOWED', + 'SPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED', + 'SPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER', + 'SPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED', + 'SPAPI_E_BAD_INTERFACE_INSTALLSECT', + 'SPAPI_E_BAD_SECTION_NAME_LINE', + 'SPAPI_E_BAD_SERVICE_INSTALLSECT', + 'SPAPI_E_CANT_LOAD_CLASS_ICON', + 'SPAPI_E_CANT_REMOVE_DEVINST', + 'SPAPI_E_CLASS_MISMATCH', + 'SPAPI_E_DEVICE_INSTALLER_NOT_READY', + 'SPAPI_E_DEVICE_INSTALL_BLOCKED', + 'SPAPI_E_DEVICE_INTERFACE_ACTIVE', + 'SPAPI_E_DEVICE_INTERFACE_REMOVED', + 'SPAPI_E_DEVINFO_DATA_LOCKED', + 'SPAPI_E_DEVINFO_LIST_LOCKED', + 'SPAPI_E_DEVINFO_NOT_REGISTERED', + 'SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE', + 'SPAPI_E_DEVINST_ALREADY_EXISTS', + 'SPAPI_E_DI_BAD_PATH', + 'SPAPI_E_DI_DONT_INSTALL', + 'SPAPI_E_DI_DO_DEFAULT', + 'SPAPI_E_DI_FUNCTION_OBSOLETE', + 'SPAPI_E_DI_NOFILECOPY', + 'SPAPI_E_DI_POSTPROCESSING_REQUIRED', + 'SPAPI_E_DRIVER_INSTALL_BLOCKED', + 'SPAPI_E_DRIVER_NONNATIVE', + 'SPAPI_E_DRIVER_STORE_ADD_FAILED', + 'SPAPI_E_DRIVER_STORE_DELETE_FAILED', + 'SPAPI_E_DUPLICATE_FOUND', + 'SPAPI_E_ERROR_NOT_INSTALLED', + 'SPAPI_E_EXPECTED_SECTION_NAME', + 'SPAPI_E_FILEQUEUE_LOCKED', + 'SPAPI_E_FILE_HASH_NOT_IN_CATALOG', + 'SPAPI_E_GENERAL_SYNTAX', + 'SPAPI_E_INCORRECTLY_COPIED_INF', + 'SPAPI_E_INF_IN_USE_BY_DEVICES', + 'SPAPI_E_INVALID_CLASS', + 'SPAPI_E_INVALID_CLASS_INSTALLER', + 'SPAPI_E_INVALID_COINSTALLER', + 'SPAPI_E_INVALID_DEVINST_NAME', + 'SPAPI_E_INVALID_FILTER_DRIVER', + 'SPAPI_E_INVALID_HWPROFILE', + 'SPAPI_E_INVALID_INF_LOGCONFIG', + 'SPAPI_E_INVALID_MACHINENAME', + 'SPAPI_E_INVALID_PROPPAGE_PROVIDER', + 'SPAPI_E_INVALID_REFERENCE_STRING', + 'SPAPI_E_INVALID_REG_PROPERTY', + 'SPAPI_E_INVALID_TARGET', + 'SPAPI_E_IN_WOW64', + 'SPAPI_E_KEY_DOES_NOT_EXIST', + 'SPAPI_E_LINE_NOT_FOUND', + 'SPAPI_E_MACHINE_UNAVAILABLE', + 'SPAPI_E_NON_WINDOWS_DRIVER', + 'SPAPI_E_NON_WINDOWS_NT_DRIVER', + 'SPAPI_E_NOT_AN_INSTALLED_OEM_INF', + 'SPAPI_E_NOT_DISABLEABLE', + 'SPAPI_E_NO_ASSOCIATED_CLASS', + 'SPAPI_E_NO_ASSOCIATED_SERVICE', + 'SPAPI_E_NO_AUTHENTICODE_CATALOG', + 'SPAPI_E_NO_BACKUP', + 'SPAPI_E_NO_CATALOG_FOR_OEM_INF', + 'SPAPI_E_NO_CLASSINSTALL_PARAMS', + 'SPAPI_E_NO_CLASS_DRIVER_LIST', + 'SPAPI_E_NO_COMPAT_DRIVERS', + 'SPAPI_E_NO_CONFIGMGR_SERVICES', + 'SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE', + 'SPAPI_E_NO_DEVICE_ICON', + 'SPAPI_E_NO_DEVICE_SELECTED', + 'SPAPI_E_NO_DRIVER_SELECTED', + 'SPAPI_E_NO_INF', + 'SPAPI_E_NO_SUCH_DEVICE_INTERFACE', + 'SPAPI_E_NO_SUCH_DEVINST', + 'SPAPI_E_NO_SUCH_INTERFACE_CLASS', + 'SPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE', + 'SPAPI_E_PNP_REGISTRY_ERROR', + 'SPAPI_E_REMOTE_COMM_FAILURE', + 'SPAPI_E_REMOTE_REQUEST_UNSUPPORTED', + 'SPAPI_E_SCE_DISABLED', + 'SPAPI_E_SECTION_NAME_TOO_LONG', + 'SPAPI_E_SECTION_NOT_FOUND', + 'SPAPI_E_SET_SYSTEM_RESTORE_POINT', + 'SPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH', + 'SPAPI_E_UNKNOWN_EXCEPTION', + 'SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW', + 'SPAPI_E_WRONG_INF_STYLE', + 'SPAPI_E_WRONG_INF_TYPE', + 'SQLITE_E_ABORT', + 'SQLITE_E_ABORT_ROLLBACK', + 'SQLITE_E_AUTH', + 'SQLITE_E_BUSY', + 'SQLITE_E_BUSY_RECOVERY', + 'SQLITE_E_BUSY_SNAPSHOT', + 'SQLITE_E_CANTOPEN', + 'SQLITE_E_CANTOPEN_CONVPATH', + 'SQLITE_E_CANTOPEN_FULLPATH', + 'SQLITE_E_CANTOPEN_ISDIR', + 'SQLITE_E_CANTOPEN_NOTEMPDIR', + 'SQLITE_E_CONSTRAINT', + 'SQLITE_E_CONSTRAINT_CHECK', + 'SQLITE_E_CONSTRAINT_COMMITHOOK', + 'SQLITE_E_CONSTRAINT_FOREIGNKEY', + 'SQLITE_E_CONSTRAINT_FUNCTION', + 'SQLITE_E_CONSTRAINT_NOTNULL', + 'SQLITE_E_CONSTRAINT_PRIMARYKEY', + 'SQLITE_E_CONSTRAINT_ROWID', + 'SQLITE_E_CONSTRAINT_TRIGGER', + 'SQLITE_E_CONSTRAINT_UNIQUE', + 'SQLITE_E_CONSTRAINT_VTAB', + 'SQLITE_E_CORRUPT', + 'SQLITE_E_CORRUPT_VTAB', + 'SQLITE_E_DONE', + 'SQLITE_E_EMPTY', + 'SQLITE_E_ERROR', + 'SQLITE_E_FORMAT', + 'SQLITE_E_FULL', + 'SQLITE_E_INTERNAL', + 'SQLITE_E_INTERRUPT', + 'SQLITE_E_IOERR', + 'SQLITE_E_IOERR_ACCESS', + 'SQLITE_E_IOERR_AUTH', + 'SQLITE_E_IOERR_BLOCKED', + 'SQLITE_E_IOERR_CHECKRESERVEDLOCK', + 'SQLITE_E_IOERR_CLOSE', + 'SQLITE_E_IOERR_CONVPATH', + 'SQLITE_E_IOERR_DELETE', + 'SQLITE_E_IOERR_DELETE_NOENT', + 'SQLITE_E_IOERR_DIR_CLOSE', + 'SQLITE_E_IOERR_DIR_FSYNC', + 'SQLITE_E_IOERR_FSTAT', + 'SQLITE_E_IOERR_FSYNC', + 'SQLITE_E_IOERR_GETTEMPPATH', + 'SQLITE_E_IOERR_LOCK', + 'SQLITE_E_IOERR_MMAP', + 'SQLITE_E_IOERR_NOMEM', + 'SQLITE_E_IOERR_RDLOCK', + 'SQLITE_E_IOERR_READ', + 'SQLITE_E_IOERR_SEEK', + 'SQLITE_E_IOERR_SHMLOCK', + 'SQLITE_E_IOERR_SHMMAP', + 'SQLITE_E_IOERR_SHMOPEN', + 'SQLITE_E_IOERR_SHMSIZE', + 'SQLITE_E_IOERR_SHORT_READ', + 'SQLITE_E_IOERR_TRUNCATE', + 'SQLITE_E_IOERR_UNLOCK', + 'SQLITE_E_IOERR_VNODE', + 'SQLITE_E_IOERR_WRITE', + 'SQLITE_E_LOCKED', + 'SQLITE_E_LOCKED_SHAREDCACHE', + 'SQLITE_E_MISMATCH', + 'SQLITE_E_MISUSE', + 'SQLITE_E_NOLFS', + 'SQLITE_E_NOMEM', + 'SQLITE_E_NOTADB', + 'SQLITE_E_NOTFOUND', + 'SQLITE_E_NOTICE', + 'SQLITE_E_NOTICE_RECOVER_ROLLBACK', + 'SQLITE_E_NOTICE_RECOVER_WAL', + 'SQLITE_E_PERM', + 'SQLITE_E_PROTOCOL', + 'SQLITE_E_RANGE', + 'SQLITE_E_READONLY', + 'SQLITE_E_READONLY_CANTLOCK', + 'SQLITE_E_READONLY_DBMOVED', + 'SQLITE_E_READONLY_RECOVERY', + 'SQLITE_E_READONLY_ROLLBACK', + 'SQLITE_E_ROW', + 'SQLITE_E_SCHEMA', + 'SQLITE_E_TOOBIG', + 'SQLITE_E_WARNING', + 'SQLITE_E_WARNING_AUTOINDEX', + 'STATEREPOSITORY_ERROR_CACHE_CORRUPTED', + 'STATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED', + 'STATEREPOSITORY_E_BLOCKED', + 'STATEREPOSITORY_E_BUSY_RECOVERY_RETRY', + 'STATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED', + 'STATEREPOSITORY_E_BUSY_RETRY', + 'STATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED', + 'STATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE', + 'STATEREPOSITORY_E_CONFIGURATION_INVALID', + 'STATEREPOSITORY_E_LOCKED_RETRY', + 'STATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY', + 'STATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED', + 'STATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED', + 'STATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS', + 'STATEREPOSITORY_E_STATEMENT_INPROGRESS', + 'STATEREPOSITORY_E_TRANSACTION_REQUIRED', + 'STATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION', + 'STATEREPOSITORY_TRANSACTION_CALLER_ID_CHANGED', + 'STATEREPOSITORY_TRANSACTION_IN_PROGRESS', + 'STATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED', + 'STATUS_ABANDONED', + 'STATUS_ABANDONED_WAIT_0', + 'STATUS_ABANDONED_WAIT_63', + 'STATUS_ABANDON_HIBERFILE', + 'STATUS_ACCESS_AUDIT_BY_POLICY', + 'STATUS_ACCESS_DENIED', + 'STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT', + 'STATUS_ACCESS_DISABLED_BY_POLICY_OTHER', + 'STATUS_ACCESS_DISABLED_BY_POLICY_PATH', + 'STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER', + 'STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY', + 'STATUS_ACCESS_VIOLATION', + 'STATUS_ACCOUNT_DISABLED', + 'STATUS_ACCOUNT_EXPIRED', + 'STATUS_ACCOUNT_LOCKED_OUT', + 'STATUS_ACCOUNT_RESTRICTION', + 'STATUS_ACPI_ACQUIRE_GLOBAL_LOCK', + 'STATUS_ACPI_ADDRESS_NOT_MAPPED', + 'STATUS_ACPI_ALREADY_INITIALIZED', + 'STATUS_ACPI_ASSERT_FAILED', + 'STATUS_ACPI_FATAL', + 'STATUS_ACPI_HANDLER_COLLISION', + 'STATUS_ACPI_INCORRECT_ARGUMENT_COUNT', + 'STATUS_ACPI_INVALID_ACCESS_SIZE', + 'STATUS_ACPI_INVALID_ARGTYPE', + 'STATUS_ACPI_INVALID_ARGUMENT', + 'STATUS_ACPI_INVALID_DATA', + 'STATUS_ACPI_INVALID_EVENTTYPE', + 'STATUS_ACPI_INVALID_INDEX', + 'STATUS_ACPI_INVALID_MUTEX_LEVEL', + 'STATUS_ACPI_INVALID_OBJTYPE', + 'STATUS_ACPI_INVALID_OPCODE', + 'STATUS_ACPI_INVALID_REGION', + 'STATUS_ACPI_INVALID_SUPERNAME', + 'STATUS_ACPI_INVALID_TABLE', + 'STATUS_ACPI_INVALID_TARGETTYPE', + 'STATUS_ACPI_MUTEX_NOT_OWNED', + 'STATUS_ACPI_MUTEX_NOT_OWNER', + 'STATUS_ACPI_NOT_INITIALIZED', + 'STATUS_ACPI_POWER_REQUEST_FAILED', + 'STATUS_ACPI_REG_HANDLER_FAILED', + 'STATUS_ACPI_RS_ACCESS', + 'STATUS_ACPI_STACK_OVERFLOW', + 'STATUS_ADAPTER_HARDWARE_ERROR', + 'STATUS_ADDRESS_ALREADY_ASSOCIATED', + 'STATUS_ADDRESS_ALREADY_EXISTS', + 'STATUS_ADDRESS_CLOSED', + 'STATUS_ADDRESS_NOT_ASSOCIATED', + 'STATUS_ADVANCED_INSTALLER_FAILED', + 'STATUS_AGENTS_EXHAUSTED', + 'STATUS_ALERTED', + 'STATUS_ALIAS_EXISTS', + 'STATUS_ALLOCATE_BUCKET', + 'STATUS_ALLOTTED_SPACE_EXCEEDED', + 'STATUS_ALL_SIDS_FILTERED', + 'STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED', + 'STATUS_ALPC_CHECK_COMPLETION_LIST', + 'STATUS_ALREADY_COMMITTED', + 'STATUS_ALREADY_DISCONNECTED', + 'STATUS_ALREADY_REGISTERED', + 'STATUS_ALREADY_WIN32', + 'STATUS_AMBIGUOUS_SYSTEM_DEVICE', + 'STATUS_APC_RETURNED_WHILE_IMPERSONATING', + 'STATUS_APPHELP_BLOCK', + 'STATUS_APP_INIT_FAILURE', + 'STATUS_ARBITRATION_UNHANDLED', + 'STATUS_ARRAY_BOUNDS_EXCEEDED', + 'STATUS_ASSERTION_FAILURE', + 'STATUS_AUDITING_DISABLED', + 'STATUS_AUDIT_FAILED', + 'STATUS_AUTHENTICATION_FIREWALL_FAILED', + 'STATUS_AUTHIP_FAILURE', + 'STATUS_BACKUP_CONTROLLER', + 'STATUS_BAD_BINDINGS', + 'STATUS_BAD_CLUSTERS', + 'STATUS_BAD_COMPRESSION_BUFFER', + 'STATUS_BAD_CURRENT_DIRECTORY', + 'STATUS_BAD_DESCRIPTOR_FORMAT', + 'STATUS_BAD_DEVICE_TYPE', + 'STATUS_BAD_DLL_ENTRYPOINT', + 'STATUS_BAD_FILE_TYPE', + 'STATUS_BAD_FUNCTION_TABLE', + 'STATUS_BAD_IMPERSONATION_LEVEL', + 'STATUS_BAD_INHERITANCE_ACL', + 'STATUS_BAD_INITIAL_PC', + 'STATUS_BAD_INITIAL_STACK', + 'STATUS_BAD_LOGON_SESSION_STATE', + 'STATUS_BAD_MASTER_BOOT_RECORD', + 'STATUS_BAD_MCFG_TABLE', + 'STATUS_BAD_NETWORK_NAME', + 'STATUS_BAD_NETWORK_PATH', + 'STATUS_BAD_REMOTE_ADAPTER', + 'STATUS_BAD_SERVICE_ENTRYPOINT', + 'STATUS_BAD_STACK', + 'STATUS_BAD_TOKEN_TYPE', + 'STATUS_BAD_VALIDATION_CLASS', + 'STATUS_BAD_WORKING_SET_LIMIT', + 'STATUS_BEGINNING_OF_MEDIA', + 'STATUS_BEYOND_VDL', + 'STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT', + 'STATUS_BIZRULES_NOT_ENABLED', + 'STATUS_BREAKPOINT', + 'STATUS_BUFFER_ALL_ZEROS', + 'STATUS_BUFFER_OVERFLOW', + 'STATUS_BUFFER_TOO_SMALL', + 'STATUS_BUS_RESET', + 'STATUS_CACHE_PAGE_LOCKED', + 'STATUS_CALLBACK_BYPASS', + 'STATUS_CALLBACK_POP_STACK', + 'STATUS_CALLBACK_RETURNED_LANG', + 'STATUS_CALLBACK_RETURNED_LDR_LOCK', + 'STATUS_CALLBACK_RETURNED_PRI_BACK', + 'STATUS_CALLBACK_RETURNED_THREAD_AFFINITY', + 'STATUS_CALLBACK_RETURNED_THREAD_PRIORITY', + 'STATUS_CALLBACK_RETURNED_TRANSACTION', + 'STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING', + 'STATUS_CANCELLED', + 'STATUS_CANNOT_ABORT_TRANSACTIONS', + 'STATUS_CANNOT_ACCEPT_TRANSACTED_WORK', + 'STATUS_CANNOT_BREAK_OPLOCK', + 'STATUS_CANNOT_DELETE', + 'STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION', + 'STATUS_CANNOT_IMPERSONATE', + 'STATUS_CANNOT_LOAD_REGISTRY_FILE', + 'STATUS_CANNOT_MAKE', + 'STATUS_CANT_ACCESS_DOMAIN_INFO', + 'STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY', + 'STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS', + 'STATUS_CANT_CROSS_RM_BOUNDARY', + 'STATUS_CANT_DISABLE_MANDATORY', + 'STATUS_CANT_ENABLE_DENY_ONLY', + 'STATUS_CANT_OPEN_ANONYMOUS', + 'STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT', + 'STATUS_CANT_RECOVER_WITH_HANDLE_OPEN', + 'STATUS_CANT_TERMINATE_SELF', + 'STATUS_CANT_WAIT', + 'STATUS_CARDBUS_NOT_SUPPORTED', + 'STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE', + 'STATUS_CHECKING_FILE_SYSTEM', + 'STATUS_CHECKOUT_REQUIRED', + 'STATUS_CHILD_MUST_BE_VOLATILE', + 'STATUS_CLEANER_CARTRIDGE_INSTALLED', + 'STATUS_CLIENT_SERVER_PARAMETERS_INVALID', + 'STATUS_CLUSTER_INVALID_NETWORK', + 'STATUS_CLUSTER_INVALID_NETWORK_PROVIDER', + 'STATUS_CLUSTER_INVALID_NODE', + 'STATUS_CLUSTER_INVALID_REQUEST', + 'STATUS_CLUSTER_JOIN_IN_PROGRESS', + 'STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS', + 'STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND', + 'STATUS_CLUSTER_NETINTERFACE_EXISTS', + 'STATUS_CLUSTER_NETINTERFACE_NOT_FOUND', + 'STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE', + 'STATUS_CLUSTER_NETWORK_ALREADY_ONLINE', + 'STATUS_CLUSTER_NETWORK_EXISTS', + 'STATUS_CLUSTER_NETWORK_NOT_FOUND', + 'STATUS_CLUSTER_NETWORK_NOT_INTERNAL', + 'STATUS_CLUSTER_NODE_ALREADY_DOWN', + 'STATUS_CLUSTER_NODE_ALREADY_MEMBER', + 'STATUS_CLUSTER_NODE_ALREADY_UP', + 'STATUS_CLUSTER_NODE_DOWN', + 'STATUS_CLUSTER_NODE_EXISTS', + 'STATUS_CLUSTER_NODE_NOT_FOUND', + 'STATUS_CLUSTER_NODE_NOT_MEMBER', + 'STATUS_CLUSTER_NODE_NOT_PAUSED', + 'STATUS_CLUSTER_NODE_PAUSED', + 'STATUS_CLUSTER_NODE_UNREACHABLE', + 'STATUS_CLUSTER_NODE_UP', + 'STATUS_CLUSTER_NO_NET_ADAPTERS', + 'STATUS_CLUSTER_NO_SECURITY_CONTEXT', + 'STATUS_CLUSTER_POISONED', + 'STATUS_COMMITMENT_LIMIT', + 'STATUS_COMMITMENT_MINIMUM', + 'STATUS_COMPRESSION_DISABLED', + 'STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION', + 'STATUS_CONFLICTING_ADDRESSES', + 'STATUS_CONNECTION_ABORTED', + 'STATUS_CONNECTION_ACTIVE', + 'STATUS_CONNECTION_COUNT_LIMIT', + 'STATUS_CONNECTION_DISCONNECTED', + 'STATUS_CONNECTION_INVALID', + 'STATUS_CONNECTION_IN_USE', + 'STATUS_CONNECTION_REFUSED', + 'STATUS_CONNECTION_RESET', + 'STATUS_CONTENT_BLOCKED', + 'STATUS_CONTEXT_MISMATCH', + 'STATUS_CONTROL_C_EXIT', + 'STATUS_CONVERT_TO_LARGE', + 'STATUS_COPY_PROTECTION_FAILURE', + 'STATUS_CORRUPT_SYSTEM_FILE', + 'STATUS_COULD_NOT_INTERPRET', + 'STATUS_COULD_NOT_RESIZE_LOG', + 'STATUS_CRASH_DUMP', + 'STATUS_CRC_ERROR', + 'STATUS_CRED_REQUIRES_CONFIRMATION', + 'STATUS_CRM_PROTOCOL_ALREADY_EXISTS', + 'STATUS_CRM_PROTOCOL_NOT_FOUND', + 'STATUS_CROSSREALM_DELEGATION_FAILURE', + 'STATUS_CRYPTO_SYSTEM_INVALID', + 'STATUS_CSS_AUTHENTICATION_FAILURE', + 'STATUS_CSS_KEY_NOT_ESTABLISHED', + 'STATUS_CSS_KEY_NOT_PRESENT', + 'STATUS_CSS_REGION_MISMATCH', + 'STATUS_CSS_RESETS_EXHAUSTED', + 'STATUS_CSS_SCRAMBLED_SECTOR', + 'STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE', + 'STATUS_CS_ENCRYPTION_FILE_NOT_CSE', + 'STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE', + 'STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE', + 'STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER', + 'STATUS_CTL_FILE_NOT_SUPPORTED', + 'STATUS_CTX_BAD_VIDEO_MODE', + 'STATUS_CTX_CDM_CONNECT', + 'STATUS_CTX_CDM_DISCONNECT', + 'STATUS_CTX_CLIENT_LICENSE_IN_USE', + 'STATUS_CTX_CLIENT_LICENSE_NOT_SET', + 'STATUS_CTX_CLIENT_QUERY_TIMEOUT', + 'STATUS_CTX_CLOSE_PENDING', + 'STATUS_CTX_CONSOLE_CONNECT', + 'STATUS_CTX_CONSOLE_DISCONNECT', + 'STATUS_CTX_GRAPHICS_INVALID', + 'STATUS_CTX_INVALID_MODEMNAME', + 'STATUS_CTX_INVALID_PD', + 'STATUS_CTX_INVALID_WD', + 'STATUS_CTX_LICENSE_CLIENT_INVALID', + 'STATUS_CTX_LICENSE_EXPIRED', + 'STATUS_CTX_LICENSE_NOT_AVAILABLE', + 'STATUS_CTX_LOGON_DISABLED', + 'STATUS_CTX_MODEM_INF_NOT_FOUND', + 'STATUS_CTX_MODEM_RESPONSE_BUSY', + 'STATUS_CTX_MODEM_RESPONSE_NO_CARRIER', + 'STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE', + 'STATUS_CTX_MODEM_RESPONSE_TIMEOUT', + 'STATUS_CTX_MODEM_RESPONSE_VOICE', + 'STATUS_CTX_NOT_CONSOLE', + 'STATUS_CTX_NO_OUTBUF', + 'STATUS_CTX_PD_NOT_FOUND', + 'STATUS_CTX_RESPONSE_ERROR', + 'STATUS_CTX_SECURITY_LAYER_ERROR', + 'STATUS_CTX_SHADOW_DENIED', + 'STATUS_CTX_SHADOW_DISABLED', + 'STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE', + 'STATUS_CTX_SHADOW_INVALID', + 'STATUS_CTX_SHADOW_NOT_RUNNING', + 'STATUS_CTX_TD_ERROR', + 'STATUS_CTX_WD_NOT_FOUND', + 'STATUS_CTX_WINSTATION_ACCESS_DENIED', + 'STATUS_CTX_WINSTATION_BUSY', + 'STATUS_CTX_WINSTATION_NAME_COLLISION', + 'STATUS_CTX_WINSTATION_NAME_INVALID', + 'STATUS_CTX_WINSTATION_NOT_FOUND', + 'STATUS_CURRENT_DOMAIN_NOT_ALLOWED', + 'STATUS_CURRENT_TRANSACTION_NOT_VALID', + 'STATUS_DATATYPE_MISALIGNMENT', + 'STATUS_DATATYPE_MISALIGNMENT_ERROR', + 'STATUS_DATA_ERROR', + 'STATUS_DATA_LATE_ERROR', + 'STATUS_DATA_LOST_REPAIR', + 'STATUS_DATA_NOT_ACCEPTED', + 'STATUS_DATA_OVERRUN', + 'STATUS_DEBUGGER_INACTIVE', + 'STATUS_DEBUG_ATTACH_FAILED', + 'STATUS_DECRYPTION_FAILED', + 'STATUS_DELAY_LOAD_FAILED', + 'STATUS_DELETE_PENDING', + 'STATUS_DESTINATION_ELEMENT_FULL', + 'STATUS_DEVICE_ALREADY_ATTACHED', + 'STATUS_DEVICE_BUSY', + 'STATUS_DEVICE_CONFIGURATION_ERROR', + 'STATUS_DEVICE_DATA_ERROR', + 'STATUS_DEVICE_DOES_NOT_EXIST', + 'STATUS_DEVICE_DOOR_OPEN', + 'STATUS_DEVICE_ENUMERATION_ERROR', + 'STATUS_DEVICE_FEATURE_NOT_SUPPORTED', + 'STATUS_DEVICE_NOT_CONNECTED', + 'STATUS_DEVICE_NOT_PARTITIONED', + 'STATUS_DEVICE_NOT_READY', + 'STATUS_DEVICE_OFF_LINE', + 'STATUS_DEVICE_PAPER_EMPTY', + 'STATUS_DEVICE_POWERED_OFF', + 'STATUS_DEVICE_PROTOCOL_ERROR', + 'STATUS_DEVICE_REMOVED', + 'STATUS_DEVICE_REQUIRES_CLEANING', + 'STATUS_DEVICE_UNREACHABLE', + 'STATUS_DFS_EXIT_PATH_FOUND', + 'STATUS_DFS_UNAVAILABLE', + 'STATUS_DIRECTORY_IS_A_REPARSE_POINT', + 'STATUS_DIRECTORY_NOT_EMPTY', + 'STATUS_DIRECTORY_NOT_RM', + 'STATUS_DIRECTORY_SERVICE_REQUIRED', + 'STATUS_DISK_CORRUPT_ERROR', + 'STATUS_DISK_FULL', + 'STATUS_DISK_OPERATION_FAILED', + 'STATUS_DISK_QUOTA_EXCEEDED', + 'STATUS_DISK_RECALIBRATE_FAILED', + 'STATUS_DISK_REPAIR_DISABLED', + 'STATUS_DISK_RESET_FAILED', + 'STATUS_DLL_INIT_FAILED', + 'STATUS_DLL_INIT_FAILED_LOGOFF', + 'STATUS_DLL_MIGHT_BE_INCOMPATIBLE', + 'STATUS_DLL_MIGHT_BE_INSECURE', + 'STATUS_DLL_NOT_FOUND', + 'STATUS_DOMAIN_CONTROLLER_NOT_FOUND', + 'STATUS_DOMAIN_CTRLR_CONFIG_ERROR', + 'STATUS_DOMAIN_EXISTS', + 'STATUS_DOMAIN_LIMIT_EXCEEDED', + 'STATUS_DOMAIN_TRUST_INCONSISTENT', + 'STATUS_DOWNGRADE_DETECTED', + 'STATUS_DRIVERS_LEAKING_LOCKED_PAGES', + 'STATUS_DRIVER_BLOCKED', + 'STATUS_DRIVER_BLOCKED_CRITICAL', + 'STATUS_DRIVER_CANCEL_TIMEOUT', + 'STATUS_DRIVER_DATABASE_ERROR', + 'STATUS_DRIVER_ENTRYPOINT_NOT_FOUND', + 'STATUS_DRIVER_FAILED_PRIOR_UNLOAD', + 'STATUS_DRIVER_FAILED_SLEEP', + 'STATUS_DRIVER_INTERNAL_ERROR', + 'STATUS_DRIVER_ORDINAL_NOT_FOUND', + 'STATUS_DRIVER_PROCESS_TERMINATED', + 'STATUS_DRIVER_UNABLE_TO_LOAD', + 'STATUS_DS_ADMIN_LIMIT_EXCEEDED', + 'STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER', + 'STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS', + 'STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED', + 'STATUS_DS_BUSY', + 'STATUS_DS_CANT_MOD_OBJ_CLASS', + 'STATUS_DS_CANT_MOD_PRIMARYGROUPID', + 'STATUS_DS_CANT_ON_NON_LEAF', + 'STATUS_DS_CANT_ON_RDN', + 'STATUS_DS_CANT_START', + 'STATUS_DS_CROSS_DOM_MOVE_FAILED', + 'STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST', + 'STATUS_DS_DOMAIN_RENAME_IN_PROGRESS', + 'STATUS_DS_DUPLICATE_ID_FOUND', + 'STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST', + 'STATUS_DS_GC_NOT_AVAILABLE', + 'STATUS_DS_GC_REQUIRED', + 'STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER', + 'STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER', + 'STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER', + 'STATUS_DS_GROUP_CONVERSION_ERROR', + 'STATUS_DS_HAVE_PRIMARY_MEMBERS', + 'STATUS_DS_INCORRECT_ROLE_OWNER', + 'STATUS_DS_INIT_FAILURE', + 'STATUS_DS_INIT_FAILURE_CONSOLE', + 'STATUS_DS_INVALID_ATTRIBUTE_SYNTAX', + 'STATUS_DS_INVALID_GROUP_TYPE', + 'STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER', + 'STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY', + 'STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED', + 'STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY', + 'STATUS_DS_NAME_NOT_UNIQUE', + 'STATUS_DS_NO_ATTRIBUTE_OR_VALUE', + 'STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS', + 'STATUS_DS_NO_MORE_RIDS', + 'STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN', + 'STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN', + 'STATUS_DS_NO_RIDS_ALLOCATED', + 'STATUS_DS_OBJ_CLASS_VIOLATION', + 'STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS', + 'STATUS_DS_OID_NOT_FOUND', + 'STATUS_DS_RIDMGR_INIT_ERROR', + 'STATUS_DS_SAM_INIT_FAILURE', + 'STATUS_DS_SAM_INIT_FAILURE_CONSOLE', + 'STATUS_DS_SENSITIVE_GROUP_VIOLATION', + 'STATUS_DS_SHUTTING_DOWN', + 'STATUS_DS_SRC_SID_EXISTS_IN_FOREST', + 'STATUS_DS_UNAVAILABLE', + 'STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER', + 'STATUS_DS_VERSION_CHECK_FAILURE', + 'STATUS_DUPLICATE_NAME', + 'STATUS_DUPLICATE_OBJECTID', + 'STATUS_EAS_NOT_SUPPORTED', + 'STATUS_EA_CORRUPT_ERROR', + 'STATUS_EA_LIST_INCONSISTENT', + 'STATUS_EA_TOO_LARGE', + 'STATUS_EFS_ALG_BLOB_TOO_BIG', + 'STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION', + 'STATUS_ELEVATION_REQUIRED', + 'STATUS_ENCOUNTERED_WRITE_IN_PROGRESS', + 'STATUS_ENCRYPTION_FAILED', + 'STATUS_END_OF_FILE', + 'STATUS_END_OF_MEDIA', + 'STATUS_ENLISTMENT_NOT_FOUND', + 'STATUS_ENLISTMENT_NOT_SUPERIOR', + 'STATUS_ENTRYPOINT_NOT_FOUND', + 'STATUS_EOM_OVERFLOW', + 'STATUS_EVALUATION_EXPIRATION', + 'STATUS_EVENTLOG_CANT_START', + 'STATUS_EVENTLOG_FILE_CHANGED', + 'STATUS_EVENTLOG_FILE_CORRUPT', + 'STATUS_EVENT_DONE', + 'STATUS_EVENT_PENDING', + 'STATUS_EXPIRED_HANDLE', + 'STATUS_EXTRANEOUS_INFORMATION', + 'STATUS_FAILED_DRIVER_ENTRY', + 'STATUS_FAILED_STACK_SWITCH', + 'STATUS_FAIL_CHECK', + 'STATUS_FAIL_FAST_EXCEPTION', + 'STATUS_FATAL_APP_EXIT', + 'STATUS_FILEMARK_DETECTED', + 'STATUS_FILES_OPEN', + 'STATUS_FILE_CHECKED_OUT', + 'STATUS_FILE_CLOSED', + 'STATUS_FILE_CORRUPT_ERROR', + 'STATUS_FILE_DELETED', + 'STATUS_FILE_ENCRYPTED', + 'STATUS_FILE_FORCED_CLOSED', + 'STATUS_FILE_IDENTITY_NOT_PERSISTENT', + 'STATUS_FILE_INVALID', + 'STATUS_FILE_IS_A_DIRECTORY', + 'STATUS_FILE_IS_OFFLINE', + 'STATUS_FILE_LOCKED_WITH_ONLY_READERS', + 'STATUS_FILE_LOCKED_WITH_WRITERS', + 'STATUS_FILE_LOCK_CONFLICT', + 'STATUS_FILE_NOT_AVAILABLE', + 'STATUS_FILE_NOT_ENCRYPTED', + 'STATUS_FILE_RENAMED', + 'STATUS_FILE_SYSTEM_LIMITATION', + 'STATUS_FILE_TOO_LARGE', + 'STATUS_FIRMWARE_UPDATED', + 'STATUS_FLOATED_SECTION', + 'STATUS_FLOAT_DENORMAL_OPERAND', + 'STATUS_FLOAT_DIVIDE_BY_ZERO', + 'STATUS_FLOAT_INEXACT_RESULT', + 'STATUS_FLOAT_INVALID_OPERATION', + 'STATUS_FLOAT_MULTIPLE_FAULTS', + 'STATUS_FLOAT_MULTIPLE_TRAPS', + 'STATUS_FLOAT_OVERFLOW', + 'STATUS_FLOAT_STACK_CHECK', + 'STATUS_FLOAT_UNDERFLOW', + 'STATUS_FLOPPY_BAD_REGISTERS', + 'STATUS_FLOPPY_ID_MARK_NOT_FOUND', + 'STATUS_FLOPPY_UNKNOWN_ERROR', + 'STATUS_FLOPPY_VOLUME', + 'STATUS_FLOPPY_WRONG_CYLINDER', + 'STATUS_FLT_ALREADY_ENLISTED', + 'STATUS_FLT_BUFFER_TOO_SMALL', + 'STATUS_FLT_CBDQ_DISABLED', + 'STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND', + 'STATUS_FLT_CONTEXT_ALREADY_DEFINED', + 'STATUS_FLT_CONTEXT_ALREADY_LINKED', + 'STATUS_FLT_DELETING_OBJECT', + 'STATUS_FLT_DISALLOW_FAST_IO', + 'STATUS_FLT_DO_NOT_ATTACH', + 'STATUS_FLT_DO_NOT_DETACH', + 'STATUS_FLT_DUPLICATE_ENTRY', + 'STATUS_FLT_FILTER_NOT_FOUND', + 'STATUS_FLT_FILTER_NOT_READY', + 'STATUS_FLT_INSTANCE_ALTITUDE_COLLISION', + 'STATUS_FLT_INSTANCE_NAME_COLLISION', + 'STATUS_FLT_INSTANCE_NOT_FOUND', + 'STATUS_FLT_INTERNAL_ERROR', + 'STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST', + 'STATUS_FLT_INVALID_CONTEXT_REGISTRATION', + 'STATUS_FLT_INVALID_NAME_REQUEST', + 'STATUS_FLT_IO_COMPLETE', + 'STATUS_FLT_MUST_BE_NONPAGED_POOL', + 'STATUS_FLT_NAME_CACHE_MISS', + 'STATUS_FLT_NOT_INITIALIZED', + 'STATUS_FLT_NOT_SAFE_TO_POST_OPERATION', + 'STATUS_FLT_NO_DEVICE_OBJECT', + 'STATUS_FLT_NO_HANDLER_DEFINED', + 'STATUS_FLT_NO_WAITER_FOR_REPLY', + 'STATUS_FLT_POST_OPERATION_CLEANUP', + 'STATUS_FLT_VOLUME_ALREADY_MOUNTED', + 'STATUS_FLT_VOLUME_NOT_FOUND', + 'STATUS_FORMS_AUTH_REQUIRED', + 'STATUS_FOUND_OUT_OF_SCOPE', + 'STATUS_FREE_VM_NOT_AT_BASE', + 'STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY', + 'STATUS_FS_DRIVER_REQUIRED', + 'STATUS_FT_MISSING_MEMBER', + 'STATUS_FT_ORPHANING', + 'STATUS_FT_READ_RECOVERY_FROM_BACKUP', + 'STATUS_FT_WRITE_RECOVERY', + 'STATUS_FULLSCREEN_MODE', + 'STATUS_FVE_ACTION_NOT_ALLOWED', + 'STATUS_FVE_AUTH_INVALID_APPLICATION', + 'STATUS_FVE_AUTH_INVALID_CONFIG', + 'STATUS_FVE_BAD_DATA', + 'STATUS_FVE_BAD_INFORMATION', + 'STATUS_FVE_BAD_METADATA_POINTER', + 'STATUS_FVE_CONV_READ_ERROR', + 'STATUS_FVE_CONV_RECOVERY_FAILED', + 'STATUS_FVE_CONV_WRITE_ERROR', + 'STATUS_FVE_DEBUGGER_ENABLED', + 'STATUS_FVE_DRY_RUN_FAILED', + 'STATUS_FVE_FAILED_AUTHENTICATION', + 'STATUS_FVE_FAILED_BAD_FS', + 'STATUS_FVE_FAILED_SECTOR_SIZE', + 'STATUS_FVE_FAILED_WRONG_FS', + 'STATUS_FVE_FS_MOUNTED', + 'STATUS_FVE_FS_NOT_EXTENDED', + 'STATUS_FVE_KEYFILE_INVALID', + 'STATUS_FVE_KEYFILE_NOT_FOUND', + 'STATUS_FVE_KEYFILE_NO_VMK', + 'STATUS_FVE_LOCKED_VOLUME', + 'STATUS_FVE_NOT_DATA_VOLUME', + 'STATUS_FVE_NOT_ENCRYPTED', + 'STATUS_FVE_NOT_OS_VOLUME', + 'STATUS_FVE_NO_FEATURE_LICENSE', + 'STATUS_FVE_NO_LICENSE', + 'STATUS_FVE_OLD_METADATA_COPY', + 'STATUS_FVE_OVERLAPPED_UPDATE', + 'STATUS_FVE_PARTIAL_METADATA', + 'STATUS_FVE_PIN_INVALID', + 'STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED', + 'STATUS_FVE_RAW_ACCESS', + 'STATUS_FVE_RAW_BLOCKED', + 'STATUS_FVE_REBOOT_REQUIRED', + 'STATUS_FVE_TOO_SMALL', + 'STATUS_FVE_TPM_DISABLED', + 'STATUS_FVE_TPM_INVALID_PCR', + 'STATUS_FVE_TPM_NO_VMK', + 'STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO', + 'STATUS_FVE_TRANSIENT_STATE', + 'STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG', + 'STATUS_FVE_VOLUME_NOT_BOUND', + 'STATUS_FVE_VOLUME_TOO_SMALL', + 'STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER', + 'STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER', + 'STATUS_FWP_ALREADY_EXISTS', + 'STATUS_FWP_BUILTIN_OBJECT', + 'STATUS_FWP_CALLOUT_NOTIFICATION_FAILED', + 'STATUS_FWP_CALLOUT_NOT_FOUND', + 'STATUS_FWP_CANNOT_PEND', + 'STATUS_FWP_CONDITION_NOT_FOUND', + 'STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT', + 'STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER', + 'STATUS_FWP_DUPLICATE_AUTH_METHOD', + 'STATUS_FWP_DUPLICATE_CONDITION', + 'STATUS_FWP_DUPLICATE_KEYMOD', + 'STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS', + 'STATUS_FWP_EM_NOT_SUPPORTED', + 'STATUS_FWP_FILTER_NOT_FOUND', + 'STATUS_FWP_INCOMPATIBLE_AUTH_CONFIG', + 'STATUS_FWP_INCOMPATIBLE_AUTH_METHOD', + 'STATUS_FWP_INCOMPATIBLE_CIPHER_CONFIG', + 'STATUS_FWP_INCOMPATIBLE_DH_GROUP', + 'STATUS_FWP_INCOMPATIBLE_LAYER', + 'STATUS_FWP_INCOMPATIBLE_SA_STATE', + 'STATUS_FWP_INCOMPATIBLE_TXN', + 'STATUS_FWP_INJECT_HANDLE_CLOSING', + 'STATUS_FWP_INJECT_HANDLE_STALE', + 'STATUS_FWP_INVALID_ACTION_TYPE', + 'STATUS_FWP_INVALID_ENUMERATOR', + 'STATUS_FWP_INVALID_FLAGS', + 'STATUS_FWP_INVALID_INTERVAL', + 'STATUS_FWP_INVALID_NET_MASK', + 'STATUS_FWP_INVALID_PARAMETER', + 'STATUS_FWP_INVALID_RANGE', + 'STATUS_FWP_INVALID_WEIGHT', + 'STATUS_FWP_IN_USE', + 'STATUS_FWP_KM_CLIENTS_ONLY', + 'STATUS_FWP_LAYER_NOT_FOUND', + 'STATUS_FWP_LIFETIME_MISMATCH', + 'STATUS_FWP_MATCH_TYPE_MISMATCH', + 'STATUS_FWP_NET_EVENTS_DISABLED', + 'STATUS_FWP_NEVER_MATCH', + 'STATUS_FWP_NOTIFICATION_DROPPED', + 'STATUS_FWP_NOT_FOUND', + 'STATUS_FWP_NO_TXN_IN_PROGRESS', + 'STATUS_FWP_NULL_DISPLAY_NAME', + 'STATUS_FWP_NULL_POINTER', + 'STATUS_FWP_OUT_OF_BOUNDS', + 'STATUS_FWP_PROVIDER_CONTEXT_MISMATCH', + 'STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND', + 'STATUS_FWP_PROVIDER_NOT_FOUND', + 'STATUS_FWP_RESERVED', + 'STATUS_FWP_SESSION_ABORTED', + 'STATUS_FWP_SUBLAYER_NOT_FOUND', + 'STATUS_FWP_TCPIP_NOT_READY', + 'STATUS_FWP_TIMEOUT', + 'STATUS_FWP_TOO_MANY_BOOTTIME_FILTERS', + 'STATUS_FWP_TOO_MANY_CALLOUTS', + 'STATUS_FWP_TOO_MANY_SUBLAYERS', + 'STATUS_FWP_TRAFFIC_MISMATCH', + 'STATUS_FWP_TXN_ABORTED', + 'STATUS_FWP_TXN_IN_PROGRESS', + 'STATUS_FWP_TYPE_MISMATCH', + 'STATUS_FWP_WRONG_SESSION', + 'STATUS_FWP_ZERO_LENGTH_ARRAY', + 'STATUS_GENERIC_COMMAND_FAILED', + 'STATUS_GENERIC_NOT_MAPPED', + 'STATUS_GRACEFUL_DISCONNECT', + 'STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED', + 'STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY', + 'STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE', + 'STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET', + 'STATUS_GRAPHICS_ADAPTER_WAS_RESET', + 'STATUS_GRAPHICS_ALLOCATION_BUSY', + 'STATUS_GRAPHICS_ALLOCATION_CLOSED', + 'STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST', + 'STATUS_GRAPHICS_ALLOCATION_INVALID', + 'STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION', + 'STATUS_GRAPHICS_CANNOTCOLORCONVERT', + 'STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN', + 'STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION', + 'STATUS_GRAPHICS_CANT_LOCK_MEMORY', + 'STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION', + 'STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED', + 'STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON', + 'STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED', + 'STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED', + 'STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET', + 'STATUS_GRAPHICS_COPP_NOT_SUPPORTED', + 'STATUS_GRAPHICS_DATASET_IS_EMPTY', + 'STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING', + 'STATUS_GRAPHICS_DDCCI_INVALID_DATA', + 'STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM', + 'STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND', + 'STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH', + 'STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE', + 'STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED', + 'STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP', + 'STATUS_GRAPHICS_DRIVER_MISMATCH', + 'STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION', + 'STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET', + 'STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET', + 'STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED', + 'STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE', + 'STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST', + 'STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA', + 'STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA', + 'STATUS_GRAPHICS_I2C_NOT_SUPPORTED', + 'STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT', + 'STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE', + 'STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER', + 'STATUS_GRAPHICS_INTERNAL_ERROR', + 'STATUS_GRAPHICS_INVALID_ACTIVE_REGION', + 'STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE', + 'STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE', + 'STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE', + 'STATUS_GRAPHICS_INVALID_CLIENT_TYPE', + 'STATUS_GRAPHICS_INVALID_COLORBASIS', + 'STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE', + 'STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER', + 'STATUS_GRAPHICS_INVALID_DRIVER_MODEL', + 'STATUS_GRAPHICS_INVALID_FREQUENCY', + 'STATUS_GRAPHICS_INVALID_GAMMA_RAMP', + 'STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM', + 'STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR', + 'STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET', + 'STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN', + 'STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE', + 'STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET', + 'STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT', + 'STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET', + 'STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE', + 'STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION', + 'STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE', + 'STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL', + 'STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE', + 'STATUS_GRAPHICS_INVALID_PIXELFORMAT', + 'STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE', + 'STATUS_GRAPHICS_INVALID_POINTER', + 'STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE', + 'STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING', + 'STATUS_GRAPHICS_INVALID_STRIDE', + 'STATUS_GRAPHICS_INVALID_TOTAL_REGION', + 'STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET', + 'STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET', + 'STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE', + 'STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE', + 'STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET', + 'STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE', + 'STATUS_GRAPHICS_INVALID_VIDPN', + 'STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH', + 'STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET', + 'STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET', + 'STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE', + 'STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY', + 'STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON', + 'STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE', + 'STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED', + 'STATUS_GRAPHICS_LEADLINK_START_DEFERRED', + 'STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED', + 'STATUS_GRAPHICS_MCA_INTERNAL_ERROR', + 'STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED', + 'STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET', + 'STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE', + 'STATUS_GRAPHICS_MODE_NOT_IN_MODESET', + 'STATUS_GRAPHICS_MODE_NOT_PINNED', + 'STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET', + 'STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE', + 'STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET', + 'STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER', + 'STATUS_GRAPHICS_MONITOR_NOT_CONNECTED', + 'STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS', + 'STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED', + 'STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER', + 'STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER', + 'STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER', + 'STATUS_GRAPHICS_NO_ACTIVE_VIDPN', + 'STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS', + 'STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET', + 'STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME', + 'STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT', + 'STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE', + 'STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET', + 'STATUS_GRAPHICS_NO_PREFERRED_MODE', + 'STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN', + 'STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY', + 'STATUS_GRAPHICS_NO_VIDEO_MEMORY', + 'STATUS_GRAPHICS_NO_VIDPNMGR', + 'STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED', + 'STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE', + 'STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR', + 'STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET', + 'STATUS_GRAPHICS_OPM_INTERNAL_ERROR', + 'STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST', + 'STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS', + 'STATUS_GRAPHICS_OPM_INVALID_HANDLE', + 'STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST', + 'STATUS_GRAPHICS_OPM_INVALID_POINTER', + 'STATUS_GRAPHICS_OPM_INVALID_SRM', + 'STATUS_GRAPHICS_OPM_NOT_SUPPORTED', + 'STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST', + 'STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP', + 'STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA', + 'STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP', + 'STATUS_GRAPHICS_OPM_PARAMETER_ARRAY_TOO_SMALL', + 'STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS', + 'STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS', + 'STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS', + 'STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH', + 'STATUS_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS', + 'STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED', + 'STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED', + 'STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED', + 'STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL', + 'STATUS_GRAPHICS_PARTIAL_DATA_POPULATED', + 'STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY', + 'STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED', + 'STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED', + 'STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY', + 'STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET', + 'STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY', + 'STATUS_GRAPHICS_PRESENT_DENIED', + 'STATUS_GRAPHICS_PRESENT_MODE_CHANGED', + 'STATUS_GRAPHICS_PRESENT_OCCLUDED', + 'STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED', + 'STATUS_GRAPHICS_PRESENT_UNOCCLUDED', + 'STATUS_GRAPHICS_PVP_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP', + 'STATUS_GRAPHICS_PVP_HFS_FAILED', + 'STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH', + 'STATUS_GRAPHICS_PVP_MIRRORING_DEVICES_NOT_SUPPORTED', + 'STATUS_GRAPHICS_PVP_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME', + 'STATUS_GRAPHICS_PVP_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE', + 'STATUS_GRAPHICS_RESOURCES_NOT_RELATED', + 'STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS', + 'STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET', + 'STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE', + 'STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY', + 'STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED', + 'STATUS_GRAPHICS_STALE_MODESET', + 'STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY', + 'STATUS_GRAPHICS_START_DEFERRED', + 'STATUS_GRAPHICS_TARGET_ALREADY_IN_SET', + 'STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE', + 'STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY', + 'STATUS_GRAPHICS_TOO_MANY_REFERENCES', + 'STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED', + 'STATUS_GRAPHICS_TRY_AGAIN_LATER', + 'STATUS_GRAPHICS_TRY_AGAIN_NOW', + 'STATUS_GRAPHICS_UAB_NOT_SUPPORTED', + 'STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS', + 'STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS', + 'STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE', + 'STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED', + 'STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES', + 'STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED', + 'STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE', + 'STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED', + 'STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED', + 'STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE', + 'STATUS_GROUP_EXISTS', + 'STATUS_GUARD_PAGE_VIOLATION', + 'STATUS_GUIDS_EXHAUSTED', + 'STATUS_GUID_SUBSTITUTION_MADE', + 'STATUS_HANDLES_CLOSED', + 'STATUS_HANDLE_NOT_CLOSABLE', + 'STATUS_HANDLE_NO_LONGER_VALID', + 'STATUS_HARDWARE_MEMORY_ERROR', + 'STATUS_HASH_NOT_PRESENT', + 'STATUS_HASH_NOT_SUPPORTED', + 'STATUS_HEAP_CORRUPTION', + 'STATUS_HIBERNATED', + 'STATUS_HIBERNATION_FAILURE', + 'STATUS_HIVE_UNLOADED', + 'STATUS_HMAC_NOT_SUPPORTED', + 'STATUS_HOPLIMIT_EXCEEDED', + 'STATUS_HOST_DOWN', + 'STATUS_HOST_UNREACHABLE', + 'STATUS_HUNG_DISPLAY_DRIVER_THREAD', + 'STATUS_ILLEGAL_CHARACTER', + 'STATUS_ILLEGAL_DLL_RELOCATION', + 'STATUS_ILLEGAL_ELEMENT_ADDRESS', + 'STATUS_ILLEGAL_FLOAT_CONTEXT', + 'STATUS_ILLEGAL_FUNCTION', + 'STATUS_ILLEGAL_INSTRUCTION', + 'STATUS_ILL_FORMED_PASSWORD', + 'STATUS_ILL_FORMED_SERVICE_ENTRY', + 'STATUS_IMAGE_ALREADY_LOADED', + 'STATUS_IMAGE_ALREADY_LOADED_AS_DLL', + 'STATUS_IMAGE_CERT_REVOKED', + 'STATUS_IMAGE_CHECKSUM_MISMATCH', + 'STATUS_IMAGE_MACHINE_TYPE_MISMATCH', + 'STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE', + 'STATUS_IMAGE_MP_UP_MISMATCH', + 'STATUS_IMAGE_NOT_AT_BASE', + 'STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT', + 'STATUS_IMPLEMENTATION_LIMIT', + 'STATUS_INCOMPATIBLE_DRIVER_BLOCKED', + 'STATUS_INCOMPATIBLE_FILE_MAP', + 'STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING', + 'STATUS_INDOUBT_TRANSACTIONS_EXIST', + 'STATUS_INFO_LENGTH_MISMATCH', + 'STATUS_INSTANCE_NOT_AVAILABLE', + 'STATUS_INSTRUCTION_MISALIGNMENT', + 'STATUS_INSUFFICIENT_LOGON_INFO', + 'STATUS_INSUFFICIENT_NVRAM_RESOURCES', + 'STATUS_INSUFFICIENT_POWER', + 'STATUS_INSUFFICIENT_RESOURCES', + 'STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE', + 'STATUS_INSUFF_SERVER_RESOURCES', + 'STATUS_INTEGER_DIVIDE_BY_ZERO', + 'STATUS_INTEGER_OVERFLOW', + 'STATUS_INTERNAL_DB_CORRUPTION', + 'STATUS_INTERNAL_DB_ERROR', + 'STATUS_INTERNAL_ERROR', + 'STATUS_INTERRUPT_STILL_CONNECTED', + 'STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED', + 'STATUS_INVALID_ACCOUNT_NAME', + 'STATUS_INVALID_ACE_CONDITION', + 'STATUS_INVALID_ACL', + 'STATUS_INVALID_ADDRESS', + 'STATUS_INVALID_ADDRESS_COMPONENT', + 'STATUS_INVALID_ADDRESS_WILDCARD', + 'STATUS_INVALID_BLOCK_LENGTH', + 'STATUS_INVALID_BUFFER_SIZE', + 'STATUS_INVALID_CID', + 'STATUS_INVALID_COMPUTER_NAME', + 'STATUS_INVALID_CONNECTION', + 'STATUS_INVALID_CRUNTIME_PARAMETER', + 'STATUS_INVALID_DEVICE_OBJECT_PARAMETER', + 'STATUS_INVALID_DEVICE_REQUEST', + 'STATUS_INVALID_DEVICE_STATE', + 'STATUS_INVALID_DISPOSITION', + 'STATUS_INVALID_DOMAIN_ROLE', + 'STATUS_INVALID_DOMAIN_STATE', + 'STATUS_INVALID_EA_FLAG', + 'STATUS_INVALID_EA_NAME', + 'STATUS_INVALID_FILE_FOR_SECTION', + 'STATUS_INVALID_GROUP_ATTRIBUTES', + 'STATUS_INVALID_HANDLE', + 'STATUS_INVALID_HW_PROFILE', + 'STATUS_INVALID_IDN_NORMALIZATION', + 'STATUS_INVALID_ID_AUTHORITY', + 'STATUS_INVALID_IMAGE_FORMAT', + 'STATUS_INVALID_IMAGE_HASH', + 'STATUS_INVALID_IMAGE_LE_FORMAT', + 'STATUS_INVALID_IMAGE_NE_FORMAT', + 'STATUS_INVALID_IMAGE_NOT_MZ', + 'STATUS_INVALID_IMAGE_PROTECT', + 'STATUS_INVALID_IMAGE_WIN_16', + 'STATUS_INVALID_IMAGE_WIN_32', + 'STATUS_INVALID_IMAGE_WIN_64', + 'STATUS_INVALID_IMPORT_OF_NON_DLL', + 'STATUS_INVALID_INFO_CLASS', + 'STATUS_INVALID_LABEL', + 'STATUS_INVALID_LDT_DESCRIPTOR', + 'STATUS_INVALID_LDT_OFFSET', + 'STATUS_INVALID_LDT_SIZE', + 'STATUS_INVALID_LEVEL', + 'STATUS_INVALID_LOCK_RANGE', + 'STATUS_INVALID_LOCK_SEQUENCE', + 'STATUS_INVALID_LOGON_HOURS', + 'STATUS_INVALID_LOGON_TYPE', + 'STATUS_INVALID_MEMBER', + 'STATUS_INVALID_MESSAGE', + 'STATUS_INVALID_NETWORK_RESPONSE', + 'STATUS_INVALID_OPLOCK_PROTOCOL', + 'STATUS_INVALID_OWNER', + 'STATUS_INVALID_PAGE_PROTECTION', + 'STATUS_INVALID_PARAMETER', + 'STATUS_INVALID_PARAMETER_1', + 'STATUS_INVALID_PARAMETER_10', + 'STATUS_INVALID_PARAMETER_11', + 'STATUS_INVALID_PARAMETER_12', + 'STATUS_INVALID_PARAMETER_2', + 'STATUS_INVALID_PARAMETER_3', + 'STATUS_INVALID_PARAMETER_4', + 'STATUS_INVALID_PARAMETER_5', + 'STATUS_INVALID_PARAMETER_6', + 'STATUS_INVALID_PARAMETER_7', + 'STATUS_INVALID_PARAMETER_8', + 'STATUS_INVALID_PARAMETER_9', + 'STATUS_INVALID_PARAMETER_MIX', + 'STATUS_INVALID_PIPE_STATE', + 'STATUS_INVALID_PLUGPLAY_DEVICE_PATH', + 'STATUS_INVALID_PORT_ATTRIBUTES', + 'STATUS_INVALID_PORT_HANDLE', + 'STATUS_INVALID_PRIMARY_GROUP', + 'STATUS_INVALID_QUOTA_LOWER', + 'STATUS_INVALID_READ_MODE', + 'STATUS_INVALID_SECURITY_DESCR', + 'STATUS_INVALID_SERVER_STATE', + 'STATUS_INVALID_SID', + 'STATUS_INVALID_SIGNATURE', + 'STATUS_INVALID_SUB_AUTHORITY', + 'STATUS_INVALID_SYSTEM_SERVICE', + 'STATUS_INVALID_TASK_INDEX', + 'STATUS_INVALID_TASK_NAME', + 'STATUS_INVALID_THREAD', + 'STATUS_INVALID_TOKEN', + 'STATUS_INVALID_TRANSACTION', + 'STATUS_INVALID_UNWIND_TARGET', + 'STATUS_INVALID_USER_BUFFER', + 'STATUS_INVALID_USER_PRINCIPAL_NAME', + 'STATUS_INVALID_VARIANT', + 'STATUS_INVALID_VIEW_SIZE', + 'STATUS_INVALID_VOLUME_LABEL', + 'STATUS_INVALID_WORKSTATION', + 'STATUS_IN_PAGE_ERROR', + 'STATUS_IO_DEVICE_ERROR', + 'STATUS_IO_PRIVILEGE_FAILED', + 'STATUS_IO_REISSUE_AS_CACHED', + 'STATUS_IO_REPARSE_DATA_INVALID', + 'STATUS_IO_REPARSE_TAG_INVALID', + 'STATUS_IO_REPARSE_TAG_MISMATCH', + 'STATUS_IO_REPARSE_TAG_NOT_HANDLED', + 'STATUS_IO_TIMEOUT', + 'STATUS_IPSEC_AUTH_FIREWALL_DROP', + 'STATUS_IPSEC_BAD_SPI', + 'STATUS_IPSEC_CLEAR_TEXT_DROP', + 'STATUS_IPSEC_DOSP_BLOCK', + 'STATUS_IPSEC_DOSP_INVALID_PACKET', + 'STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED', + 'STATUS_IPSEC_DOSP_MAX_ENTRIES', + 'STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES', + 'STATUS_IPSEC_DOSP_RECEIVED_MULTICAST', + 'STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED', + 'STATUS_IPSEC_INTEGRITY_CHECK_FAILED', + 'STATUS_IPSEC_INVALID_PACKET', + 'STATUS_IPSEC_QUEUE_OVERFLOW', + 'STATUS_IPSEC_REPLAY_CHECK_FAILED', + 'STATUS_IPSEC_SA_LIFETIME_EXPIRED', + 'STATUS_IPSEC_THROTTLE_DROP', + 'STATUS_IPSEC_WRONG_SA', + 'STATUS_IP_ADDRESS_CONFLICT1', + 'STATUS_IP_ADDRESS_CONFLICT2', + 'STATUS_ISSUING_CA_UNTRUSTED', + 'STATUS_ISSUING_CA_UNTRUSTED_KDC', + 'STATUS_JOURNAL_DELETE_IN_PROGRESS', + 'STATUS_JOURNAL_ENTRY_DELETED', + 'STATUS_JOURNAL_NOT_ACTIVE', + 'STATUS_KDC_CERT_EXPIRED', + 'STATUS_KDC_CERT_REVOKED', + 'STATUS_KDC_INVALID_REQUEST', + 'STATUS_KDC_UNABLE_TO_REFER', + 'STATUS_KDC_UNKNOWN_ETYPE', + 'STATUS_KEY_DELETED', + 'STATUS_KEY_HAS_CHILDREN', + 'STATUS_LAST_ADMIN', + 'STATUS_LICENSE_QUOTA_EXCEEDED', + 'STATUS_LICENSE_VIOLATION', + 'STATUS_LINK_FAILED', + 'STATUS_LINK_TIMEOUT', + 'STATUS_LM_CROSS_ENCRYPTION_REQUIRED', + 'STATUS_LOCAL_DISCONNECT', + 'STATUS_LOCAL_USER_SESSION_KEY', + 'STATUS_LOCK_NOT_GRANTED', + 'STATUS_LOGIN_TIME_RESTRICTION', + 'STATUS_LOGIN_WKSTA_RESTRICTION', + 'STATUS_LOGON_FAILURE', + 'STATUS_LOGON_NOT_GRANTED', + 'STATUS_LOGON_SERVER_CONFLICT', + 'STATUS_LOGON_SESSION_COLLISION', + 'STATUS_LOGON_SESSION_EXISTS', + 'STATUS_LOGON_TYPE_NOT_GRANTED', + 'STATUS_LOG_APPENDED_FLUSH_FAILED', + 'STATUS_LOG_ARCHIVE_IN_PROGRESS', + 'STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS', + 'STATUS_LOG_BLOCKS_EXHAUSTED', + 'STATUS_LOG_BLOCK_INCOMPLETE', + 'STATUS_LOG_BLOCK_INVALID', + 'STATUS_LOG_BLOCK_VERSION', + 'STATUS_LOG_CANT_DELETE', + 'STATUS_LOG_CLIENT_ALREADY_REGISTERED', + 'STATUS_LOG_CLIENT_NOT_REGISTERED', + 'STATUS_LOG_CONTAINER_LIMIT_EXCEEDED', + 'STATUS_LOG_CONTAINER_OPEN_FAILED', + 'STATUS_LOG_CONTAINER_READ_FAILED', + 'STATUS_LOG_CONTAINER_STATE_INVALID', + 'STATUS_LOG_CONTAINER_WRITE_FAILED', + 'STATUS_LOG_CORRUPTION_DETECTED', + 'STATUS_LOG_DEDICATED', + 'STATUS_LOG_EPHEMERAL', + 'STATUS_LOG_FILE_FULL', + 'STATUS_LOG_FULL', + 'STATUS_LOG_FULL_HANDLER_IN_PROGRESS', + 'STATUS_LOG_GROWTH_FAILED', + 'STATUS_LOG_HARD_ERROR', + 'STATUS_LOG_INCONSISTENT_SECURITY', + 'STATUS_LOG_INVALID_RANGE', + 'STATUS_LOG_METADATA_CORRUPT', + 'STATUS_LOG_METADATA_FLUSH_FAILED', + 'STATUS_LOG_METADATA_INCONSISTENT', + 'STATUS_LOG_METADATA_INVALID', + 'STATUS_LOG_MULTIPLEXED', + 'STATUS_LOG_NOT_ENOUGH_CONTAINERS', + 'STATUS_LOG_NO_RESTART', + 'STATUS_LOG_PINNED', + 'STATUS_LOG_PINNED_ARCHIVE_TAIL', + 'STATUS_LOG_PINNED_RESERVATION', + 'STATUS_LOG_POLICY_ALREADY_INSTALLED', + 'STATUS_LOG_POLICY_CONFLICT', + 'STATUS_LOG_POLICY_INVALID', + 'STATUS_LOG_POLICY_NOT_INSTALLED', + 'STATUS_LOG_READ_CONTEXT_INVALID', + 'STATUS_LOG_READ_MODE_INVALID', + 'STATUS_LOG_RECORDS_RESERVED_INVALID', + 'STATUS_LOG_RECORD_NONEXISTENT', + 'STATUS_LOG_RESERVATION_INVALID', + 'STATUS_LOG_RESIZE_INVALID_SIZE', + 'STATUS_LOG_RESTART_INVALID', + 'STATUS_LOG_SECTOR_INVALID', + 'STATUS_LOG_SECTOR_PARITY_INVALID', + 'STATUS_LOG_SECTOR_REMAPPED', + 'STATUS_LOG_SPACE_RESERVED_INVALID', + 'STATUS_LOG_START_OF_LOG', + 'STATUS_LOG_STATE_INVALID', + 'STATUS_LOG_TAIL_INVALID', + 'STATUS_LONGJUMP', + 'STATUS_LOST_WRITEBEHIND_DATA', + 'STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR', + 'STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED', + 'STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR', + 'STATUS_LPC_INVALID_CONNECTION_USAGE', + 'STATUS_LPC_RECEIVE_BUFFER_EXPECTED', + 'STATUS_LPC_REPLY_LOST', + 'STATUS_LPC_REQUESTS_NOT_ALLOWED', + 'STATUS_LUIDS_EXHAUSTED', + 'STATUS_MAGAZINE_NOT_PRESENT', + 'STATUS_MAPPED_ALIGNMENT', + 'STATUS_MAPPED_FILE_SIZE_ZERO', + 'STATUS_MARSHALL_OVERFLOW', + 'STATUS_MAX_REFERRALS_EXCEEDED', + 'STATUS_MCA_EXCEPTION', + 'STATUS_MCA_OCCURED', + 'STATUS_MEDIA_CHANGED', + 'STATUS_MEDIA_CHECK', + 'STATUS_MEDIA_WRITE_PROTECTED', + 'STATUS_MEMBERS_PRIMARY_GROUP', + 'STATUS_MEMBER_IN_ALIAS', + 'STATUS_MEMBER_IN_GROUP', + 'STATUS_MEMBER_NOT_IN_ALIAS', + 'STATUS_MEMBER_NOT_IN_GROUP', + 'STATUS_MEMORY_NOT_ALLOCATED', + 'STATUS_MESSAGE_LOST', + 'STATUS_MESSAGE_NOT_FOUND', + 'STATUS_MESSAGE_RETRIEVED', + 'STATUS_MFT_TOO_FRAGMENTED', + 'STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION', + 'STATUS_MISSING_SYSTEMFILE', + 'STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM', + 'STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK', + 'STATUS_MONITOR_INVALID_MANUFACTURE_DATE', + 'STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK', + 'STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK', + 'STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK', + 'STATUS_MONITOR_NO_DESCRIPTOR', + 'STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA', + 'STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT', + 'STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED', + 'STATUS_MORE_ENTRIES', + 'STATUS_MORE_PROCESSING_REQUIRED', + 'STATUS_MOUNT_POINT_NOT_RESOLVED', + 'STATUS_MP_PROCESSOR_MISMATCH', + 'STATUS_MUI_FILE_NOT_FOUND', + 'STATUS_MUI_FILE_NOT_LOADED', + 'STATUS_MUI_INVALID_FILE', + 'STATUS_MUI_INVALID_LOCALE_NAME', + 'STATUS_MUI_INVALID_RC_CONFIG', + 'STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME', + 'STATUS_MUST_BE_KDC', + 'STATUS_MUTANT_LIMIT_EXCEEDED', + 'STATUS_MUTANT_NOT_OWNED', + 'STATUS_MUTUAL_AUTHENTICATION_FAILED', + 'STATUS_NAME_TOO_LONG', + 'STATUS_NDIS_ADAPTER_NOT_FOUND', + 'STATUS_NDIS_ADAPTER_NOT_READY', + 'STATUS_NDIS_ADAPTER_REMOVED', + 'STATUS_NDIS_ALREADY_MAPPED', + 'STATUS_NDIS_BAD_CHARACTERISTICS', + 'STATUS_NDIS_BAD_VERSION', + 'STATUS_NDIS_BUFFER_TOO_SHORT', + 'STATUS_NDIS_CLOSING', + 'STATUS_NDIS_DEVICE_FAILED', + 'STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED', + 'STATUS_NDIS_DOT11_MEDIA_IN_USE', + 'STATUS_NDIS_DOT11_POWER_STATE_INVALID', + 'STATUS_NDIS_ERROR_READING_FILE', + 'STATUS_NDIS_FILE_NOT_FOUND', + 'STATUS_NDIS_GROUP_ADDRESS_IN_USE', + 'STATUS_NDIS_INDICATION_REQUIRED', + 'STATUS_NDIS_INTERFACE_NOT_FOUND', + 'STATUS_NDIS_INVALID_ADDRESS', + 'STATUS_NDIS_INVALID_DATA', + 'STATUS_NDIS_INVALID_DEVICE_REQUEST', + 'STATUS_NDIS_INVALID_LENGTH', + 'STATUS_NDIS_INVALID_OID', + 'STATUS_NDIS_INVALID_PACKET', + 'STATUS_NDIS_INVALID_PORT', + 'STATUS_NDIS_INVALID_PORT_STATE', + 'STATUS_NDIS_LOW_POWER_STATE', + 'STATUS_NDIS_MEDIA_DISCONNECTED', + 'STATUS_NDIS_MULTICAST_EXISTS', + 'STATUS_NDIS_MULTICAST_FULL', + 'STATUS_NDIS_MULTICAST_NOT_FOUND', + 'STATUS_NDIS_NOT_SUPPORTED', + 'STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED', + 'STATUS_NDIS_OFFLOAD_PATH_REJECTED', + 'STATUS_NDIS_OFFLOAD_POLICY', + 'STATUS_NDIS_OPEN_FAILED', + 'STATUS_NDIS_PAUSED', + 'STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL', + 'STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL', + 'STATUS_NDIS_REQUEST_ABORTED', + 'STATUS_NDIS_RESET_IN_PROGRESS', + 'STATUS_NDIS_RESOURCE_CONFLICT', + 'STATUS_NDIS_UNSUPPORTED_MEDIA', + 'STATUS_NDIS_UNSUPPORTED_REVISION', + 'STATUS_ND_QUEUE_OVERFLOW', + 'STATUS_NETLOGON_NOT_STARTED', + 'STATUS_NETWORK_ACCESS_DENIED', + 'STATUS_NETWORK_BUSY', + 'STATUS_NETWORK_CREDENTIAL_CONFLICT', + 'STATUS_NETWORK_NAME_DELETED', + 'STATUS_NETWORK_OPEN_RESTRICTION', + 'STATUS_NETWORK_SESSION_EXPIRED', + 'STATUS_NETWORK_UNREACHABLE', + 'STATUS_NET_WRITE_FAULT', + 'STATUS_NOINTERFACE', + 'STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT', + 'STATUS_NOLOGON_SERVER_TRUST_ACCOUNT', + 'STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT', + 'STATUS_NONCONTINUABLE_EXCEPTION', + 'STATUS_NONEXISTENT_EA_ENTRY', + 'STATUS_NONEXISTENT_SECTOR', + 'STATUS_NONE_MAPPED', + 'STATUS_NOTHING_TO_TERMINATE', + 'STATUS_NOTIFICATION_GUID_ALREADY_DEFINED', + 'STATUS_NOTIFY_CLEANUP', + 'STATUS_NOTIFY_ENUM_DIR', + 'STATUS_NOT_ALL_ASSIGNED', + 'STATUS_NOT_A_DIRECTORY', + 'STATUS_NOT_A_REPARSE_POINT', + 'STATUS_NOT_CAPABLE', + 'STATUS_NOT_CLIENT_SESSION', + 'STATUS_NOT_COMMITTED', + 'STATUS_NOT_EXPORT_FORMAT', + 'STATUS_NOT_FOUND', + 'STATUS_NOT_IMPLEMENTED', + 'STATUS_NOT_LOCKED', + 'STATUS_NOT_LOGON_PROCESS', + 'STATUS_NOT_MAPPED_DATA', + 'STATUS_NOT_MAPPED_VIEW', + 'STATUS_NOT_REGISTRY_FILE', + 'STATUS_NOT_SAFE_MODE_DRIVER', + 'STATUS_NOT_SAME_DEVICE', + 'STATUS_NOT_SERVER_SESSION', + 'STATUS_NOT_SNAPSHOT_VOLUME', + 'STATUS_NOT_SUPPORTED', + 'STATUS_NOT_SUPPORTED_ON_SBS', + 'STATUS_NOT_TINY_STREAM', + 'STATUS_NO_BROWSER_SERVERS_FOUND', + 'STATUS_NO_CALLBACK_ACTIVE', + 'STATUS_NO_DATA_DETECTED', + 'STATUS_NO_EAS_ON_FILE', + 'STATUS_NO_EFS', + 'STATUS_NO_EVENT_PAIR', + 'STATUS_NO_GUID_TRANSLATION', + 'STATUS_NO_IMPERSONATION_TOKEN', + 'STATUS_NO_INHERITANCE', + 'STATUS_NO_IP_ADDRESSES', + 'STATUS_NO_KERB_KEY', + 'STATUS_NO_LDT', + 'STATUS_NO_LINK_TRACKING_IN_TRANSACTION', + 'STATUS_NO_LOGON_SERVERS', + 'STATUS_NO_LOG_SPACE', + 'STATUS_NO_MATCH', + 'STATUS_NO_MEDIA', + 'STATUS_NO_MEDIA_IN_DEVICE', + 'STATUS_NO_MEMORY', + 'STATUS_NO_MORE_EAS', + 'STATUS_NO_MORE_ENTRIES', + 'STATUS_NO_MORE_FILES', + 'STATUS_NO_MORE_MATCHES', + 'STATUS_NO_PAGEFILE', + 'STATUS_NO_PA_DATA', + 'STATUS_NO_QUOTAS_FOR_ACCOUNT', + 'STATUS_NO_RANGES_PROCESSED', + 'STATUS_NO_RECOVERY_POLICY', + 'STATUS_NO_S4U_PROT_SUPPORT', + 'STATUS_NO_SAVEPOINT_WITH_OPEN_FILES', + 'STATUS_NO_SECRETS', + 'STATUS_NO_SECURITY_CONTEXT', + 'STATUS_NO_SECURITY_ON_OBJECT', + 'STATUS_NO_SPOOL_SPACE', + 'STATUS_NO_SUCH_ALIAS', + 'STATUS_NO_SUCH_DEVICE', + 'STATUS_NO_SUCH_DOMAIN', + 'STATUS_NO_SUCH_FILE', + 'STATUS_NO_SUCH_GROUP', + 'STATUS_NO_SUCH_LOGON_SESSION', + 'STATUS_NO_SUCH_MEMBER', + 'STATUS_NO_SUCH_PACKAGE', + 'STATUS_NO_SUCH_PRIVILEGE', + 'STATUS_NO_SUCH_USER', + 'STATUS_NO_TGT_REPLY', + 'STATUS_NO_TOKEN', + 'STATUS_NO_TRACKING_SERVICE', + 'STATUS_NO_TRUST_LSA_SECRET', + 'STATUS_NO_TRUST_SAM_ACCOUNT', + 'STATUS_NO_TXF_METADATA', + 'STATUS_NO_UNICODE_TRANSLATION', + 'STATUS_NO_USER_KEYS', + 'STATUS_NO_USER_SESSION_KEY', + 'STATUS_NO_YIELD_PERFORMED', + 'STATUS_NTLM_BLOCKED', + 'STATUS_NT_CROSS_ENCRYPTION_REQUIRED', + 'STATUS_NULL_LM_PASSWORD', + 'STATUS_OBJECTID_EXISTS', + 'STATUS_OBJECTID_NOT_FOUND', + 'STATUS_OBJECT_NAME_COLLISION', + 'STATUS_OBJECT_NAME_EXISTS', + 'STATUS_OBJECT_NAME_INVALID', + 'STATUS_OBJECT_NAME_NOT_FOUND', + 'STATUS_OBJECT_NO_LONGER_EXISTS', + 'STATUS_OBJECT_PATH_INVALID', + 'STATUS_OBJECT_PATH_NOT_FOUND', + 'STATUS_OBJECT_PATH_SYNTAX_BAD', + 'STATUS_OBJECT_TYPE_MISMATCH', + 'STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED', + 'STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED', + 'STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED', + 'STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED', + 'STATUS_ONLY_IF_CONNECTED', + 'STATUS_OPEN_FAILED', + 'STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION', + 'STATUS_OPLOCK_BREAK_IN_PROGRESS', + 'STATUS_OPLOCK_NOT_GRANTED', + 'STATUS_ORDINAL_NOT_FOUND', + 'STATUS_PAGEFILE_CREATE_FAILED', + 'STATUS_PAGEFILE_QUOTA', + 'STATUS_PAGEFILE_QUOTA_EXCEEDED', + 'STATUS_PAGE_FAULT_COPY_ON_WRITE', + 'STATUS_PAGE_FAULT_DEMAND_ZERO', + 'STATUS_PAGE_FAULT_GUARD_PAGE', + 'STATUS_PAGE_FAULT_PAGING_FILE', + 'STATUS_PAGE_FAULT_TRANSITION', + 'STATUS_PARAMETER_QUOTA_EXCEEDED', + 'STATUS_PARITY_ERROR', + 'STATUS_PARTIAL_COPY', + 'STATUS_PARTITION_FAILURE', + 'STATUS_PASSWORD_EXPIRED', + 'STATUS_PASSWORD_MUST_CHANGE', + 'STATUS_PASSWORD_RESTRICTION', + 'STATUS_PATH_NOT_COVERED', + 'STATUS_PENDING', + 'STATUS_PER_USER_TRUST_QUOTA_EXCEEDED', + 'STATUS_PIPE_BROKEN', + 'STATUS_PIPE_BUSY', + 'STATUS_PIPE_CLOSING', + 'STATUS_PIPE_CONNECTED', + 'STATUS_PIPE_DISCONNECTED', + 'STATUS_PIPE_EMPTY', + 'STATUS_PIPE_LISTENING', + 'STATUS_PIPE_NOT_AVAILABLE', + 'STATUS_PKINIT_CLIENT_FAILURE', + 'STATUS_PKINIT_FAILURE', + 'STATUS_PKINIT_NAME_MISMATCH', + 'STATUS_PKU2U_CERT_FAILURE', + 'STATUS_PLUGPLAY_NO_DEVICE', + 'STATUS_PLUGPLAY_QUERY_VETOED', + 'STATUS_PNP_BAD_MPS_TABLE', + 'STATUS_PNP_INVALID_ID', + 'STATUS_PNP_IRQ_TRANSLATION_FAILED', + 'STATUS_PNP_REBOOT_REQUIRED', + 'STATUS_PNP_RESTART_ENUMERATION', + 'STATUS_PNP_TRANSLATION_FAILED', + 'STATUS_POLICY_OBJECT_NOT_FOUND', + 'STATUS_POLICY_ONLY_IN_DS', + 'STATUS_PORT_ALREADY_HAS_COMPLETION_LIST', + 'STATUS_PORT_ALREADY_SET', + 'STATUS_PORT_CLOSED', + 'STATUS_PORT_CONNECTION_REFUSED', + 'STATUS_PORT_DISCONNECTED', + 'STATUS_PORT_MESSAGE_TOO_LONG', + 'STATUS_PORT_NOT_SET', + 'STATUS_PORT_UNREACHABLE', + 'STATUS_POSSIBLE_DEADLOCK', + 'STATUS_POWER_STATE_INVALID', + 'STATUS_PREDEFINED_HANDLE', + 'STATUS_PRENT4_MACHINE_ACCOUNT', + 'STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED', + 'STATUS_PRINT_CANCELLED', + 'STATUS_PRINT_QUEUE_FULL', + 'STATUS_PRIVILEGED_INSTRUCTION', + 'STATUS_PRIVILEGE_NOT_HELD', + 'STATUS_PROCEDURE_NOT_FOUND', + 'STATUS_PROCESS_CLONED', + 'STATUS_PROCESS_IN_JOB', + 'STATUS_PROCESS_IS_PROTECTED', + 'STATUS_PROCESS_IS_TERMINATING', + 'STATUS_PROCESS_NOT_IN_JOB', + 'STATUS_PROFILING_AT_LIMIT', + 'STATUS_PROFILING_NOT_STARTED', + 'STATUS_PROFILING_NOT_STOPPED', + 'STATUS_PROPSET_NOT_FOUND', + 'STATUS_PROTOCOL_NOT_SUPPORTED', + 'STATUS_PROTOCOL_UNREACHABLE', + 'STATUS_PTE_CHANGED', + 'STATUS_PURGE_FAILED', + 'STATUS_PWD_HISTORY_CONFLICT', + 'STATUS_PWD_TOO_RECENT', + 'STATUS_PWD_TOO_SHORT', + 'STATUS_QUOTA_EXCEEDED', + 'STATUS_QUOTA_LIST_INCONSISTENT', + 'STATUS_RANGE_LIST_CONFLICT', + 'STATUS_RANGE_NOT_FOUND', + 'STATUS_RANGE_NOT_LOCKED', + 'STATUS_RDP_PROTOCOL_ERROR', + 'STATUS_RECEIVE_EXPEDITED', + 'STATUS_RECEIVE_PARTIAL', + 'STATUS_RECEIVE_PARTIAL_EXPEDITED', + 'STATUS_RECOVERY_FAILURE', + 'STATUS_RECOVERY_NOT_NEEDED', + 'STATUS_RECURSIVE_DISPATCH', + 'STATUS_REDIRECTOR_HAS_OPEN_HANDLES', + 'STATUS_REDIRECTOR_NOT_STARTED', + 'STATUS_REDIRECTOR_PAUSED', + 'STATUS_REDIRECTOR_STARTED', + 'STATUS_REGISTRY_CORRUPT', + 'STATUS_REGISTRY_HIVE_RECOVERED', + 'STATUS_REGISTRY_IO_FAILED', + 'STATUS_REGISTRY_QUOTA_LIMIT', + 'STATUS_REGISTRY_RECOVERED', + 'STATUS_REG_NAT_CONSUMPTION', + 'STATUS_REINITIALIZATION_NEEDED', + 'STATUS_REMOTE_DISCONNECT', + 'STATUS_REMOTE_FILE_VERSION_MISMATCH', + 'STATUS_REMOTE_NOT_LISTENING', + 'STATUS_REMOTE_RESOURCES', + 'STATUS_REMOTE_SESSION_LIMIT', + 'STATUS_REMOTE_STORAGE_MEDIA_ERROR', + 'STATUS_REMOTE_STORAGE_NOT_ACTIVE', + 'STATUS_REPARSE', + 'STATUS_REPARSE_ATTRIBUTE_CONFLICT', + 'STATUS_REPARSE_OBJECT', + 'STATUS_REPARSE_POINT_NOT_RESOLVED', + 'STATUS_REPLY_MESSAGE_MISMATCH', + 'STATUS_REQUEST_ABORTED', + 'STATUS_REQUEST_CANCELED', + 'STATUS_REQUEST_NOT_ACCEPTED', + 'STATUS_REQUEST_OUT_OF_SEQUENCE', + 'STATUS_RESOURCEMANAGER_NOT_FOUND', + 'STATUS_RESOURCEMANAGER_READ_ONLY', + 'STATUS_RESOURCE_DATA_NOT_FOUND', + 'STATUS_RESOURCE_ENUM_USER_STOP', + 'STATUS_RESOURCE_IN_USE', + 'STATUS_RESOURCE_LANG_NOT_FOUND', + 'STATUS_RESOURCE_NAME_NOT_FOUND', + 'STATUS_RESOURCE_NOT_OWNED', + 'STATUS_RESOURCE_REQUIREMENTS_CHANGED', + 'STATUS_RESOURCE_TYPE_NOT_FOUND', + 'STATUS_RESTART_BOOT_APPLICATION', + 'STATUS_RESUME_HIBERNATION', + 'STATUS_RETRY', + 'STATUS_REVISION_MISMATCH', + 'STATUS_REVOCATION_OFFLINE_C', + 'STATUS_REVOCATION_OFFLINE_KDC', + 'STATUS_RM_ALREADY_STARTED', + 'STATUS_RM_DISCONNECTED', + 'STATUS_RM_METADATA_CORRUPT', + 'STATUS_RM_NOT_ACTIVE', + 'STATUS_ROLLBACK_TIMER_EXPIRED', + 'STATUS_RXACT_COMMITTED', + 'STATUS_RXACT_COMMIT_FAILURE', + 'STATUS_RXACT_COMMIT_NECESSARY', + 'STATUS_RXACT_INVALID_STATE', + 'STATUS_RXACT_STATE_CREATED', + 'STATUS_SAM_INIT_FAILURE', + 'STATUS_SAM_NEED_BOOTKEY_FLOPPY', + 'STATUS_SAM_NEED_BOOTKEY_PASSWORD', + 'STATUS_SECRET_TOO_LONG', + 'STATUS_SECTION_NOT_EXTENDED', + 'STATUS_SECTION_NOT_IMAGE', + 'STATUS_SECTION_PROTECTION', + 'STATUS_SECTION_TOO_BIG', + 'STATUS_SECURITY_STREAM_IS_INCONSISTENT', + 'STATUS_SEGMENT_NOTIFICATION', + 'STATUS_SEMAPHORE_LIMIT_EXCEEDED', + 'STATUS_SERIAL_COUNTER_TIMEOUT', + 'STATUS_SERIAL_MORE_WRITES', + 'STATUS_SERIAL_NO_DEVICE_INITED', + 'STATUS_SERVER_DISABLED', + 'STATUS_SERVER_HAS_OPEN_HANDLES', + 'STATUS_SERVER_NOT_DISABLED', + 'STATUS_SERVER_SHUTDOWN_IN_PROGRESS', + 'STATUS_SERVER_SID_MISMATCH', + 'STATUS_SERVER_UNAVAILABLE', + 'STATUS_SERVICE_NOTIFICATION', + 'STATUS_SETMARK_DETECTED', + 'STATUS_SHARED_IRQ_BUSY', + 'STATUS_SHARED_POLICY', + 'STATUS_SHARING_PAUSED', + 'STATUS_SHARING_VIOLATION', + 'STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME', + 'STATUS_SHUTDOWN_IN_PROGRESS', + 'STATUS_SINGLE_STEP', + 'STATUS_SMARTCARD_CARD_BLOCKED', + 'STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED', + 'STATUS_SMARTCARD_CERT_EXPIRED', + 'STATUS_SMARTCARD_CERT_REVOKED', + 'STATUS_SMARTCARD_IO_ERROR', + 'STATUS_SMARTCARD_LOGON_REQUIRED', + 'STATUS_SMARTCARD_NO_CARD', + 'STATUS_SMARTCARD_NO_CERTIFICATE', + 'STATUS_SMARTCARD_NO_KEYSET', + 'STATUS_SMARTCARD_NO_KEY_CONTAINER', + 'STATUS_SMARTCARD_SILENT_CONTEXT', + 'STATUS_SMARTCARD_SUBSYSTEM_FAILURE', + 'STATUS_SMARTCARD_WRONG_PIN', + 'STATUS_SMI_PRIMITIVE_INSTALLER_FAILED', + 'STATUS_SOME_NOT_MAPPED', + 'STATUS_SOURCE_ELEMENT_EMPTY', + 'STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION', + 'STATUS_SPECIAL_ACCOUNT', + 'STATUS_SPECIAL_GROUP', + 'STATUS_SPECIAL_USER', + 'STATUS_STACK_BUFFER_OVERRUN', + 'STATUS_STACK_OVERFLOW', + 'STATUS_STACK_OVERFLOW_READ', + 'STATUS_STOPPED_ON_SYMLINK', + 'STATUS_STREAM_MINIVERSION_NOT_FOUND', + 'STATUS_STREAM_MINIVERSION_NOT_VALID', + 'STATUS_STRONG_CRYPTO_NOT_SUPPORTED', + 'STATUS_SUCCESS', + 'STATUS_SUSPEND_COUNT_EXCEEDED', + 'STATUS_SXS_ACTIVATION_CONTEXT_DISABLED', + 'STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT', + 'STATUS_SXS_ASSEMBLY_MISSING', + 'STATUS_SXS_ASSEMBLY_NOT_FOUND', + 'STATUS_SXS_CANT_GEN_ACTCTX', + 'STATUS_SXS_COMPONENT_STORE_CORRUPT', + 'STATUS_SXS_CORRUPTION', + 'STATUS_SXS_CORRUPT_ACTIVATION_STACK', + 'STATUS_SXS_EARLY_DEACTIVATION', + 'STATUS_SXS_FILE_HASH_MISMATCH', + 'STATUS_SXS_FILE_HASH_MISSING', + 'STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY', + 'STATUS_SXS_IDENTITIES_DIFFERENT', + 'STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE', + 'STATUS_SXS_IDENTITY_PARSE_ERROR', + 'STATUS_SXS_INVALID_ACTCTXDATA_FORMAT', + 'STATUS_SXS_INVALID_DEACTIVATION', + 'STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME', + 'STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE', + 'STATUS_SXS_KEY_NOT_FOUND', + 'STATUS_SXS_MANIFEST_FORMAT_ERROR', + 'STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT', + 'STATUS_SXS_MANIFEST_PARSE_ERROR', + 'STATUS_SXS_MANIFEST_TOO_BIG', + 'STATUS_SXS_MULTIPLE_DEACTIVATION', + 'STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET', + 'STATUS_SXS_PROCESS_TERMINATION_REQUESTED', + 'STATUS_SXS_RELEASE_ACTIVATION_CONTEXT', + 'STATUS_SXS_SECTION_NOT_FOUND', + 'STATUS_SXS_SETTING_NOT_REGISTERED', + 'STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY', + 'STATUS_SXS_THREAD_QUERIES_DISABLED', + 'STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE', + 'STATUS_SXS_VERSION_CONFLICT', + 'STATUS_SXS_WRONG_SECTION_TYPE', + 'STATUS_SYMLINK_CLASS_DISABLED', + 'STATUS_SYNCHRONIZATION_REQUIRED', + 'STATUS_SYSTEM_DEVICE_NOT_FOUND', + 'STATUS_SYSTEM_HIVE_TOO_LARGE', + 'STATUS_SYSTEM_IMAGE_BAD_SIGNATURE', + 'STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION', + 'STATUS_SYSTEM_POWERSTATE_TRANSITION', + 'STATUS_SYSTEM_PROCESS_TERMINATED', + 'STATUS_SYSTEM_SHUTDOWN', + 'STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED', + 'STATUS_THREADPOOL_HANDLE_EXCEPTION', + 'STATUS_THREADPOOL_RELEASED_DURING_OPERATION', + 'STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED', + 'STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED', + 'STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED', + 'STATUS_THREAD_ALREADY_IN_TASK', + 'STATUS_THREAD_IS_TERMINATING', + 'STATUS_THREAD_NOT_IN_PROCESS', + 'STATUS_THREAD_WAS_SUSPENDED', + 'STATUS_TIMEOUT', + 'STATUS_TIMER_NOT_CANCELED', + 'STATUS_TIMER_RESOLUTION_NOT_SET', + 'STATUS_TIMER_RESUME_IGNORED', + 'STATUS_TIME_DIFFERENCE_AT_DC', + 'STATUS_TM_IDENTITY_MISMATCH', + 'STATUS_TM_INITIALIZATION_FAILED', + 'STATUS_TM_VOLATILE', + 'STATUS_TOKEN_ALREADY_IN_USE', + 'STATUS_TOO_LATE', + 'STATUS_TOO_MANY_ADDRESSES', + 'STATUS_TOO_MANY_COMMANDS', + 'STATUS_TOO_MANY_CONTEXT_IDS', + 'STATUS_TOO_MANY_GUIDS_REQUESTED', + 'STATUS_TOO_MANY_LINKS', + 'STATUS_TOO_MANY_LUIDS_REQUESTED', + 'STATUS_TOO_MANY_NAMES', + 'STATUS_TOO_MANY_NODES', + 'STATUS_TOO_MANY_OPENED_FILES', + 'STATUS_TOO_MANY_PAGING_FILES', + 'STATUS_TOO_MANY_PRINCIPALS', + 'STATUS_TOO_MANY_SECRETS', + 'STATUS_TOO_MANY_SESSIONS', + 'STATUS_TOO_MANY_SIDS', + 'STATUS_TOO_MANY_THREADS', + 'STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE', + 'STATUS_TRANSACTIONAL_CONFLICT', + 'STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED', + 'STATUS_TRANSACTIONMANAGER_NOT_FOUND', + 'STATUS_TRANSACTIONMANAGER_NOT_ONLINE', + 'STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION', + 'STATUS_TRANSACTIONS_NOT_FROZEN', + 'STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE', + 'STATUS_TRANSACTION_ABORTED', + 'STATUS_TRANSACTION_ALREADY_ABORTED', + 'STATUS_TRANSACTION_ALREADY_COMMITTED', + 'STATUS_TRANSACTION_FREEZE_IN_PROGRESS', + 'STATUS_TRANSACTION_INTEGRITY_VIOLATED', + 'STATUS_TRANSACTION_INVALID_ID', + 'STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER', + 'STATUS_TRANSACTION_INVALID_TYPE', + 'STATUS_TRANSACTION_NOT_ACTIVE', + 'STATUS_TRANSACTION_NOT_ENLISTED', + 'STATUS_TRANSACTION_NOT_FOUND', + 'STATUS_TRANSACTION_NOT_JOINED', + 'STATUS_TRANSACTION_NOT_REQUESTED', + 'STATUS_TRANSACTION_NOT_ROOT', + 'STATUS_TRANSACTION_NO_MATCH', + 'STATUS_TRANSACTION_NO_RELEASE', + 'STATUS_TRANSACTION_OBJECT_EXPIRED', + 'STATUS_TRANSACTION_PROPAGATION_FAILED', + 'STATUS_TRANSACTION_RECORD_TOO_LONG', + 'STATUS_TRANSACTION_REQUEST_NOT_VALID', + 'STATUS_TRANSACTION_REQUIRED_PROMOTION', + 'STATUS_TRANSACTION_RESPONDED', + 'STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED', + 'STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET', + 'STATUS_TRANSACTION_SUPERIOR_EXISTS', + 'STATUS_TRANSACTION_TIMED_OUT', + 'STATUS_TRANSLATION_COMPLETE', + 'STATUS_TRANSPORT_FULL', + 'STATUS_TRUSTED_DOMAIN_FAILURE', + 'STATUS_TRUSTED_RELATIONSHIP_FAILURE', + 'STATUS_TRUST_FAILURE', + 'STATUS_TS_INCOMPATIBLE_SESSIONS', + 'STATUS_TXF_ATTRIBUTE_CORRUPT', + 'STATUS_TXF_DIR_NOT_EMPTY', + 'STATUS_TXF_METADATA_ALREADY_PRESENT', + 'STATUS_UNABLE_TO_DECOMMIT_VM', + 'STATUS_UNABLE_TO_DELETE_SECTION', + 'STATUS_UNABLE_TO_FREE_VM', + 'STATUS_UNABLE_TO_LOCK_MEDIA', + 'STATUS_UNABLE_TO_UNLOAD_MEDIA', + 'STATUS_UNDEFINED_CHARACTER', + 'STATUS_UNEXPECTED_IO_ERROR', + 'STATUS_UNEXPECTED_MM_CREATE_ERR', + 'STATUS_UNEXPECTED_MM_EXTEND_ERR', + 'STATUS_UNEXPECTED_MM_MAP_ERROR', + 'STATUS_UNEXPECTED_NETWORK_ERROR', + 'STATUS_UNFINISHED_CONTEXT_DELETED', + 'STATUS_UNHANDLED_EXCEPTION', + 'STATUS_UNKNOWN_REVISION', + 'STATUS_UNMAPPABLE_CHARACTER', + 'STATUS_UNRECOGNIZED_MEDIA', + 'STATUS_UNRECOGNIZED_VOLUME', + 'STATUS_UNSUCCESSFUL', + 'STATUS_UNSUPPORTED_COMPRESSION', + 'STATUS_UNSUPPORTED_PREAUTH', + 'STATUS_UNWIND', + 'STATUS_UNWIND_CONSOLIDATE', + 'STATUS_USER2USER_REQUIRED', + 'STATUS_USER_APC', + 'STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED', + 'STATUS_USER_EXISTS', + 'STATUS_USER_MAPPED_FILE', + 'STATUS_USER_SESSION_DELETED', + 'STATUS_VALIDATE_CONTINUE', + 'STATUS_VARIABLE_NOT_FOUND', + 'STATUS_VDM_DISALLOWED', + 'STATUS_VDM_HARD_ERROR', + 'STATUS_VERIFIER_STOP', + 'STATUS_VERIFY_REQUIRED', + 'STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH', + 'STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED', + 'STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT', + 'STATUS_VHD_PARENT_VHD_ACCESS_DENIED', + 'STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST', + 'STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD', + 'STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED', + 'STATUS_VIRTDISK_NOT_VIRTUAL_DISK', + 'STATUS_VIRTDISK_PROVIDER_NOT_FOUND', + 'STATUS_VIRTUAL_CIRCUIT_CLOSED', + 'STATUS_VIRUS_DELETED', + 'STATUS_VIRUS_INFECTED', + 'STATUS_VOLMGR_MIRROR_NOT_SUPPORTED', + 'STATUS_VOLMGR_RAID5_NOT_SUPPORTED', + 'STATUS_VOLSNAP_HIBERNATE_READY', + 'STATUS_VOLSNAP_PREPARE_HIBERNATE', + 'STATUS_VOLUME_DIRTY', + 'STATUS_VOLUME_DISMOUNTED', + 'STATUS_VOLUME_MOUNTED', + 'STATUS_VOLUME_NOT_UPGRADED', + 'STATUS_WAIT_0', + 'STATUS_WAIT_1', + 'STATUS_WAIT_2', + 'STATUS_WAIT_3', + 'STATUS_WAIT_63', + 'STATUS_WAIT_FOR_OPLOCK', + 'STATUS_WAKE_SYSTEM', + 'STATUS_WAKE_SYSTEM_DEBUGGER', + 'STATUS_WAS_LOCKED', + 'STATUS_WAS_UNLOCKED', + 'STATUS_WMI_ALREADY_DISABLED', + 'STATUS_WMI_ALREADY_ENABLED', + 'STATUS_WMI_GUID_DISCONNECTED', + 'STATUS_WMI_GUID_NOT_FOUND', + 'STATUS_WMI_INSTANCE_NOT_FOUND', + 'STATUS_WMI_ITEMID_NOT_FOUND', + 'STATUS_WMI_NOT_SUPPORTED', + 'STATUS_WMI_READ_ONLY', + 'STATUS_WMI_SET_FAILURE', + 'STATUS_WMI_TRY_AGAIN', + 'STATUS_WORKING_SET_LIMIT_RANGE', + 'STATUS_WORKING_SET_QUOTA', + 'STATUS_WOW_ASSERTION', + 'STATUS_WRONG_COMPARTMENT', + 'STATUS_WRONG_CREDENTIAL_HANDLE', + 'STATUS_WRONG_EFS', + 'STATUS_WRONG_PASSWORD', + 'STATUS_WRONG_PASSWORD_CORE', + 'STATUS_WRONG_VOLUME', + 'STATUS_WX86_BREAKPOINT', + 'STATUS_WX86_CONTINUE', + 'STATUS_WX86_CREATEWX86TIB', + 'STATUS_WX86_EXCEPTION_CHAIN', + 'STATUS_WX86_EXCEPTION_CONTINUE', + 'STATUS_WX86_EXCEPTION_LASTCHANCE', + 'STATUS_WX86_FLOAT_STACK_CHECK', + 'STATUS_WX86_INTERNAL_ERROR', + 'STATUS_WX86_SINGLE_STEP', + 'STATUS_WX86_UNSIMULATE', + 'STATUS_XMLDSIG_ERROR', + 'STATUS_XML_ENCODING_MISMATCH', + 'STATUS_XML_PARSE_ERROR', + 'STG_E_ABNORMALAPIEXIT', + 'STG_E_ACCESSDENIED', + 'STG_E_BADBASEADDRESS', + 'STG_E_CANTSAVE', + 'STG_E_CSS_AUTHENTICATION_FAILURE', + 'STG_E_CSS_KEY_NOT_ESTABLISHED', + 'STG_E_CSS_KEY_NOT_PRESENT', + 'STG_E_CSS_REGION_MISMATCH', + 'STG_E_CSS_SCRAMBLED_SECTOR', + 'STG_E_DEVICE_UNRESPONSIVE', + 'STG_E_DISKISWRITEPROTECTED', + 'STG_E_DOCFILECORRUPT', + 'STG_E_DOCFILETOOLARGE', + 'STG_E_EXTANTMARSHALLINGS', + 'STG_E_FILEALREADYEXISTS', + 'STG_E_FILENOTFOUND', + 'STG_E_FIRMWARE_IMAGE_INVALID', + 'STG_E_FIRMWARE_SLOT_INVALID', + 'STG_E_INCOMPLETE', + 'STG_E_INSUFFICIENTMEMORY', + 'STG_E_INUSE', + 'STG_E_INVALIDFLAG', + 'STG_E_INVALIDFUNCTION', + 'STG_E_INVALIDHANDLE', + 'STG_E_INVALIDHEADER', + 'STG_E_INVALIDNAME', + 'STG_E_INVALIDPARAMETER', + 'STG_E_INVALIDPOINTER', + 'STG_E_LOCKVIOLATION', + 'STG_E_MEDIUMFULL', + 'STG_E_NOMOREFILES', + 'STG_E_NOTCURRENT', + 'STG_E_NOTFILEBASEDSTORAGE', + 'STG_E_NOTSIMPLEFORMAT', + 'STG_E_OLDDLL', + 'STG_E_OLDFORMAT', + 'STG_E_PATHNOTFOUND', + 'STG_E_PROPSETMISMATCHED', + 'STG_E_READFAULT', + 'STG_E_RESETS_EXHAUSTED', + 'STG_E_REVERTED', + 'STG_E_SEEKERROR', + 'STG_E_SHAREREQUIRED', + 'STG_E_SHAREVIOLATION', + 'STG_E_STATUS_COPY_PROTECTION_FAILURE', + 'STG_E_TERMINATED', + 'STG_E_TOOMANYOPENFILES', + 'STG_E_UNIMPLEMENTEDFUNCTION', + 'STG_E_UNKNOWN', + 'STG_E_WRITEFAULT', + 'STG_S_BLOCK', + 'STG_S_CANNOTCONSOLIDATE', + 'STG_S_CONSOLIDATIONFAILED', + 'STG_S_CONVERTED', + 'STG_S_MONITORING', + 'STG_S_MULTIPLEOPENS', + 'STG_S_POWER_CYCLE_REQUIRED', + 'STG_S_RETRYNOW', + 'STORE_ERROR_LICENSE_REVOKED', + 'STORE_ERROR_PENDING_COM_TRANSACTION', + 'STORE_ERROR_UNLICENSED', + 'STORE_ERROR_UNLICENSED_USER', + 'S_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG', + 'S_FALSE', + 'S_OK', + 'S_STORE_LAUNCHED_FOR_REMEDIATION', + 'TBSIMP_E_BUFFER_TOO_SMALL', + 'TBSIMP_E_CLEANUP_FAILED', + 'TBSIMP_E_COMMAND_CANCELED', + 'TBSIMP_E_COMMAND_FAILED', + 'TBSIMP_E_DUPLICATE_VHANDLE', + 'TBSIMP_E_HASH_BAD_KEY', + 'TBSIMP_E_HASH_TABLE_FULL', + 'TBSIMP_E_INVALID_CONTEXT_HANDLE', + 'TBSIMP_E_INVALID_CONTEXT_PARAM', + 'TBSIMP_E_INVALID_OUTPUT_POINTER', + 'TBSIMP_E_INVALID_PARAMETER', + 'TBSIMP_E_INVALID_RESOURCE', + 'TBSIMP_E_LIST_NOT_FOUND', + 'TBSIMP_E_LIST_NO_MORE_ITEMS', + 'TBSIMP_E_NOTHING_TO_UNLOAD', + 'TBSIMP_E_NOT_ENOUGH_SPACE', + 'TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS', + 'TBSIMP_E_NO_EVENT_LOG', + 'TBSIMP_E_OUT_OF_MEMORY', + 'TBSIMP_E_PPI_NOT_SUPPORTED', + 'TBSIMP_E_RESOURCE_EXPIRED', + 'TBSIMP_E_RPC_INIT_FAILED', + 'TBSIMP_E_SCHEDULER_NOT_RUNNING', + 'TBSIMP_E_TOO_MANY_RESOURCES', + 'TBSIMP_E_TOO_MANY_TBS_CONTEXTS', + 'TBSIMP_E_TPM_ERROR', + 'TBSIMP_E_TPM_INCOMPATIBLE', + 'TBSIMP_E_UNKNOWN_ORDINAL', + 'TBS_E_ACCESS_DENIED', + 'TBS_E_BAD_PARAMETER', + 'TBS_E_BUFFER_TOO_LARGE', + 'TBS_E_COMMAND_CANCELED', + 'TBS_E_INSUFFICIENT_BUFFER', + 'TBS_E_INTERNAL_ERROR', + 'TBS_E_INVALID_CONTEXT', + 'TBS_E_INVALID_CONTEXT_PARAM', + 'TBS_E_INVALID_OUTPUT_POINTER', + 'TBS_E_IOERROR', + 'TBS_E_NO_EVENT_LOG', + 'TBS_E_OWNERAUTH_NOT_FOUND', + 'TBS_E_PPI_FUNCTION_UNSUPPORTED', + 'TBS_E_PPI_NOT_SUPPORTED', + 'TBS_E_PROVISIONING_INCOMPLETE', + 'TBS_E_PROVISIONING_NOT_ALLOWED', + 'TBS_E_SERVICE_DISABLED', + 'TBS_E_SERVICE_NOT_RUNNING', + 'TBS_E_SERVICE_START_PENDING', + 'TBS_E_TOO_MANY_RESOURCES', + 'TBS_E_TOO_MANY_TBS_CONTEXTS', + 'TBS_E_TPM_NOT_FOUND', + 'TPC_E_INITIALIZE_FAIL', + 'TPC_E_INVALID_CONFIGURATION', + 'TPC_E_INVALID_DATA_FROM_RECOGNIZER', + 'TPC_E_INVALID_INPUT_RECT', + 'TPC_E_INVALID_PACKET_DESCRIPTION', + 'TPC_E_INVALID_PROPERTY', + 'TPC_E_INVALID_RIGHTS', + 'TPC_E_INVALID_STROKE', + 'TPC_E_NOT_RELEVANT', + 'TPC_E_NO_DEFAULT_TABLET', + 'TPC_E_OUT_OF_ORDER_CALL', + 'TPC_E_QUEUE_FULL', + 'TPC_E_RECOGNIZER_NOT_REGISTERED', + 'TPC_E_UNKNOWN_PROPERTY', + 'TPC_S_INTERRUPTED', + 'TPC_S_NO_DATA_TO_PROCESS', + 'TPC_S_TRUNCATED', + 'TPMAPI_E_ACCESS_DENIED', + 'TPMAPI_E_AUTHORIZATION_FAILED', + 'TPMAPI_E_AUTHORIZATION_REVOKED', + 'TPMAPI_E_AUTHORIZING_KEY_NOT_SUPPORTED', + 'TPMAPI_E_BUFFER_TOO_SMALL', + 'TPMAPI_E_EMPTY_TCG_LOG', + 'TPMAPI_E_ENCRYPTION_FAILED', + 'TPMAPI_E_ENDORSEMENT_AUTH_NOT_NULL', + 'TPMAPI_E_FIPS_RNG_CHECK_FAILED', + 'TPMAPI_E_INTERNAL_ERROR', + 'TPMAPI_E_INVALID_AUTHORIZATION_SIGNATURE', + 'TPMAPI_E_INVALID_CONTEXT_HANDLE', + 'TPMAPI_E_INVALID_CONTEXT_PARAMS', + 'TPMAPI_E_INVALID_DELEGATE_BLOB', + 'TPMAPI_E_INVALID_ENCODING', + 'TPMAPI_E_INVALID_KEY_BLOB', + 'TPMAPI_E_INVALID_KEY_PARAMS', + 'TPMAPI_E_INVALID_KEY_SIZE', + 'TPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB', + 'TPMAPI_E_INVALID_OUTPUT_POINTER', + 'TPMAPI_E_INVALID_OWNER_AUTH', + 'TPMAPI_E_INVALID_PARAMETER', + 'TPMAPI_E_INVALID_PCR_DATA', + 'TPMAPI_E_INVALID_PCR_INDEX', + 'TPMAPI_E_INVALID_STATE', + 'TPMAPI_E_INVALID_TCG_LOG_ENTRY', + 'TPMAPI_E_MALFORMED_AUTHORIZATION_KEY', + 'TPMAPI_E_MALFORMED_AUTHORIZATION_OTHER', + 'TPMAPI_E_MALFORMED_AUTHORIZATION_POLICY', + 'TPMAPI_E_MESSAGE_TOO_LARGE', + 'TPMAPI_E_NOT_ENOUGH_DATA', + 'TPMAPI_E_NO_AUTHORIZATION_CHAIN_FOUND', + 'TPMAPI_E_NV_BITS_NOT_DEFINED', + 'TPMAPI_E_NV_BITS_NOT_READY', + 'TPMAPI_E_OUT_OF_MEMORY', + 'TPMAPI_E_OWNER_AUTH_NOT_NULL', + 'TPMAPI_E_POLICY_DENIES_OPERATION', + 'TPMAPI_E_SEALING_KEY_CHANGED', + 'TPMAPI_E_SEALING_KEY_NOT_AVAILABLE', + 'TPMAPI_E_SVN_COUNTER_NOT_AVAILABLE', + 'TPMAPI_E_TBS_COMMUNICATION_ERROR', + 'TPMAPI_E_TCG_INVALID_DIGEST_ENTRY', + 'TPMAPI_E_TCG_SEPARATOR_ABSENT', + 'TPMAPI_E_TOO_MUCH_DATA', + 'TPMAPI_E_TPM_COMMAND_ERROR', + 'TPM_20_E_ASYMMETRIC', + 'TPM_20_E_ATTRIBUTES', + 'TPM_20_E_AUTHSIZE', + 'TPM_20_E_AUTH_CONTEXT', + 'TPM_20_E_AUTH_FAIL', + 'TPM_20_E_AUTH_MISSING', + 'TPM_20_E_AUTH_TYPE', + 'TPM_20_E_AUTH_UNAVAILABLE', + 'TPM_20_E_BAD_AUTH', + 'TPM_20_E_BAD_CONTEXT', + 'TPM_20_E_BINDING', + 'TPM_20_E_CANCELED', + 'TPM_20_E_COMMAND_CODE', + 'TPM_20_E_COMMAND_SIZE', + 'TPM_20_E_CONTEXT_GAP', + 'TPM_20_E_CPHASH', + 'TPM_20_E_CURVE', + 'TPM_20_E_DISABLED', + 'TPM_20_E_ECC_CURVE', + 'TPM_20_E_ECC_POINT', + 'TPM_20_E_EXCLUSIVE', + 'TPM_20_E_EXPIRED', + 'TPM_20_E_FAILURE', + 'TPM_20_E_HANDLE', + 'TPM_20_E_HASH', + 'TPM_20_E_HIERARCHY', + 'TPM_20_E_HMAC', + 'TPM_20_E_INITIALIZE', + 'TPM_20_E_INSUFFICIENT', + 'TPM_20_E_INTEGRITY', + 'TPM_20_E_KDF', + 'TPM_20_E_KEY', + 'TPM_20_E_KEY_SIZE', + 'TPM_20_E_LOCALITY', + 'TPM_20_E_LOCKOUT', + 'TPM_20_E_MEMORY', + 'TPM_20_E_MGF', + 'TPM_20_E_MODE', + 'TPM_20_E_NEEDS_TEST', + 'TPM_20_E_NONCE', + 'TPM_20_E_NO_RESULT', + 'TPM_20_E_NV_AUTHORIZATION', + 'TPM_20_E_NV_DEFINED', + 'TPM_20_E_NV_LOCKED', + 'TPM_20_E_NV_RANGE', + 'TPM_20_E_NV_RATE', + 'TPM_20_E_NV_SIZE', + 'TPM_20_E_NV_SPACE', + 'TPM_20_E_NV_UNAVAILABLE', + 'TPM_20_E_NV_UNINITIALIZED', + 'TPM_20_E_OBJECT_HANDLES', + 'TPM_20_E_OBJECT_MEMORY', + 'TPM_20_E_PARENT', + 'TPM_20_E_PCR', + 'TPM_20_E_PCR_CHANGED', + 'TPM_20_E_POLICY', + 'TPM_20_E_POLICY_CC', + 'TPM_20_E_POLICY_FAIL', + 'TPM_20_E_PP', + 'TPM_20_E_PRIVATE', + 'TPM_20_E_RANGE', + 'TPM_20_E_REBOOT', + 'TPM_20_E_RESERVED_BITS', + 'TPM_20_E_RETRY', + 'TPM_20_E_SCHEME', + 'TPM_20_E_SELECTOR', + 'TPM_20_E_SENSITIVE', + 'TPM_20_E_SEQUENCE', + 'TPM_20_E_SESSION_HANDLES', + 'TPM_20_E_SESSION_MEMORY', + 'TPM_20_E_SIGNATURE', + 'TPM_20_E_SIZE', + 'TPM_20_E_SYMMETRIC', + 'TPM_20_E_TAG', + 'TPM_20_E_TESTING', + 'TPM_20_E_TICKET', + 'TPM_20_E_TOO_MANY_CONTEXTS', + 'TPM_20_E_TYPE', + 'TPM_20_E_UNBALANCED', + 'TPM_20_E_UPGRADE', + 'TPM_20_E_VALUE', + 'TPM_20_E_YIELDED', + 'TPM_E_AREA_LOCKED', + 'TPM_E_ATTESTATION_CHALLENGE_NOT_SET', + 'TPM_E_AUDITFAILURE', + 'TPM_E_AUDITFAIL_SUCCESSFUL', + 'TPM_E_AUDITFAIL_UNSUCCESSFUL', + 'TPM_E_AUTH2FAIL', + 'TPM_E_AUTHFAIL', + 'TPM_E_AUTH_CONFLICT', + 'TPM_E_BADCONTEXT', + 'TPM_E_BADINDEX', + 'TPM_E_BADTAG', + 'TPM_E_BAD_ATTRIBUTES', + 'TPM_E_BAD_COUNTER', + 'TPM_E_BAD_DATASIZE', + 'TPM_E_BAD_DELEGATE', + 'TPM_E_BAD_HANDLE', + 'TPM_E_BAD_KEY_PROPERTY', + 'TPM_E_BAD_LOCALITY', + 'TPM_E_BAD_MIGRATION', + 'TPM_E_BAD_MODE', + 'TPM_E_BAD_ORDINAL', + 'TPM_E_BAD_PARAMETER', + 'TPM_E_BAD_PARAM_SIZE', + 'TPM_E_BAD_PRESENCE', + 'TPM_E_BAD_SCHEME', + 'TPM_E_BAD_SIGNATURE', + 'TPM_E_BAD_TYPE', + 'TPM_E_BAD_VERSION', + 'TPM_E_BUFFER_LENGTH_MISMATCH', + 'TPM_E_CLAIM_TYPE_NOT_SUPPORTED', + 'TPM_E_CLEAR_DISABLED', + 'TPM_E_COMMAND_BLOCKED', + 'TPM_E_CONTEXT_GAP', + 'TPM_E_DAA_INPUT_DATA0', + 'TPM_E_DAA_INPUT_DATA1', + 'TPM_E_DAA_ISSUER_SETTINGS', + 'TPM_E_DAA_ISSUER_VALIDITY', + 'TPM_E_DAA_RESOURCES', + 'TPM_E_DAA_STAGE', + 'TPM_E_DAA_TPM_SETTINGS', + 'TPM_E_DAA_WRONG_W', + 'TPM_E_DEACTIVATED', + 'TPM_E_DECRYPT_ERROR', + 'TPM_E_DEFEND_LOCK_RUNNING', + 'TPM_E_DELEGATE_ADMIN', + 'TPM_E_DELEGATE_FAMILY', + 'TPM_E_DELEGATE_LOCK', + 'TPM_E_DISABLED', + 'TPM_E_DISABLED_CMD', + 'TPM_E_DOING_SELFTEST', + 'TPM_E_DUPLICATE_VHANDLE', + 'TPM_E_EMBEDDED_COMMAND_BLOCKED', + 'TPM_E_EMBEDDED_COMMAND_UNSUPPORTED', + 'TPM_E_ENCRYPT_ERROR', + 'TPM_E_ERROR_MASK', + 'TPM_E_FAIL', + 'TPM_E_FAILEDSELFTEST', + 'TPM_E_FAMILYCOUNT', + 'TPM_E_INAPPROPRIATE_ENC', + 'TPM_E_INAPPROPRIATE_SIG', + 'TPM_E_INSTALL_DISABLED', + 'TPM_E_INVALID_AUTHHANDLE', + 'TPM_E_INVALID_FAMILY', + 'TPM_E_INVALID_HANDLE', + 'TPM_E_INVALID_KEYHANDLE', + 'TPM_E_INVALID_KEYUSAGE', + 'TPM_E_INVALID_PCR_INFO', + 'TPM_E_INVALID_POSTINIT', + 'TPM_E_INVALID_RESOURCE', + 'TPM_E_INVALID_STRUCTURE', + 'TPM_E_IOERROR', + 'TPM_E_KEYNOTFOUND', + 'TPM_E_KEY_ALREADY_FINALIZED', + 'TPM_E_KEY_NOTSUPPORTED', + 'TPM_E_KEY_NOT_AUTHENTICATED', + 'TPM_E_KEY_NOT_FINALIZED', + 'TPM_E_KEY_NOT_LOADED', + 'TPM_E_KEY_NOT_SIGNING_KEY', + 'TPM_E_KEY_OWNER_CONTROL', + 'TPM_E_KEY_USAGE_POLICY_INVALID', + 'TPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED', + 'TPM_E_LOCKED_OUT', + 'TPM_E_MAXNVWRITES', + 'TPM_E_MA_AUTHORITY', + 'TPM_E_MA_DESTINATION', + 'TPM_E_MA_SOURCE', + 'TPM_E_MA_TICKET_SIGNATURE', + 'TPM_E_MIGRATEFAIL', + 'TPM_E_NEEDS_SELFTEST', + 'TPM_E_NOCONTEXTSPACE', + 'TPM_E_NOOPERATOR', + 'TPM_E_NOSPACE', + 'TPM_E_NOSRK', + 'TPM_E_NOTFIPS', + 'TPM_E_NOTLOCAL', + 'TPM_E_NOTRESETABLE', + 'TPM_E_NOTSEALED_BLOB', + 'TPM_E_NOT_FULLWRITE', + 'TPM_E_NOT_PCR_BOUND', + 'TPM_E_NO_ENDORSEMENT', + 'TPM_E_NO_KEY_CERTIFICATION', + 'TPM_E_NO_NV_PERMISSION', + 'TPM_E_NO_WRAP_TRANSPORT', + 'TPM_E_OWNER_CONTROL', + 'TPM_E_OWNER_SET', + 'TPM_E_PCP_AUTHENTICATION_FAILED', + 'TPM_E_PCP_AUTHENTICATION_IGNORED', + 'TPM_E_PCP_BUFFER_TOO_SMALL', + 'TPM_E_PCP_DEVICE_NOT_READY', + 'TPM_E_PCP_ERROR_MASK', + 'TPM_E_PCP_FLAG_NOT_SUPPORTED', + 'TPM_E_PCP_IFX_RSA_KEY_CREATION_BLOCKED', + 'TPM_E_PCP_INTERNAL_ERROR', + 'TPM_E_PCP_INVALID_HANDLE', + 'TPM_E_PCP_INVALID_PARAMETER', + 'TPM_E_PCP_KEY_HANDLE_INVALIDATED', + 'TPM_E_PCP_KEY_NOT_AIK', + 'TPM_E_PCP_NOT_SUPPORTED', + 'TPM_E_PCP_POLICY_NOT_FOUND', + 'TPM_E_PCP_PROFILE_NOT_FOUND', + 'TPM_E_PCP_RAW_POLICY_NOT_SUPPORTED', + 'TPM_E_PCP_TICKET_MISSING', + 'TPM_E_PCP_UNSUPPORTED_PSS_SALT', + 'TPM_E_PCP_VALIDATION_FAILED', + 'TPM_E_PCP_WRONG_PARENT', + 'TPM_E_PERMANENTEK', + 'TPM_E_PER_NOWRITE', + 'TPM_E_PPI_ACPI_FAILURE', + 'TPM_E_PPI_BIOS_FAILURE', + 'TPM_E_PPI_BLOCKED_IN_BIOS', + 'TPM_E_PPI_NOT_SUPPORTED', + 'TPM_E_PPI_USER_ABORT', + 'TPM_E_READ_ONLY', + 'TPM_E_REQUIRES_SIGN', + 'TPM_E_RESOURCEMISSING', + 'TPM_E_RESOURCES', + 'TPM_E_RETRY', + 'TPM_E_SHA_ERROR', + 'TPM_E_SHA_THREAD', + 'TPM_E_SHORTRANDOM', + 'TPM_E_SIZE', + 'TPM_E_SOFT_KEY_ERROR', + 'TPM_E_TOOMANYCONTEXTS', + 'TPM_E_TRANSPORT_NOTEXCLUSIVE', + 'TPM_E_VERSION_NOT_SUPPORTED', + 'TPM_E_WRITE_LOCKED', + 'TPM_E_WRONGPCRVAL', + 'TPM_E_WRONG_ENTITYTYPE', + 'TPM_E_ZERO_EXHAUST_ENABLED', + 'TRUST_E_ACTION_UNKNOWN', + 'TRUST_E_BAD_DIGEST', + 'TRUST_E_BASIC_CONSTRAINTS', + 'TRUST_E_CERT_SIGNATURE', + 'TRUST_E_COUNTER_SIGNER', + 'TRUST_E_EXPLICIT_DISTRUST', + 'TRUST_E_FAIL', + 'TRUST_E_FINANCIAL_CRITERIA', + 'TRUST_E_MALFORMED_SIGNATURE', + 'TRUST_E_NOSIGNATURE', + 'TRUST_E_NO_SIGNER_CERT', + 'TRUST_E_PROVIDER_UNKNOWN', + 'TRUST_E_SUBJECT_FORM_UNKNOWN', + 'TRUST_E_SUBJECT_NOT_TRUSTED', + 'TRUST_E_SYSTEM_ERROR', + 'TRUST_E_TIME_STAMP', + 'TYPE_E_AMBIGUOUSNAME', + 'TYPE_E_BADMODULEKIND', + 'TYPE_E_BUFFERTOOSMALL', + 'TYPE_E_CANTCREATETMPFILE', + 'TYPE_E_CANTLOADLIBRARY', + 'TYPE_E_CIRCULARTYPE', + 'TYPE_E_DLLFUNCTIONNOTFOUND', + 'TYPE_E_DUPLICATEID', + 'TYPE_E_ELEMENTNOTFOUND', + 'TYPE_E_FIELDNOTFOUND', + 'TYPE_E_INCONSISTENTPROPFUNCS', + 'TYPE_E_INVALIDID', + 'TYPE_E_INVALIDSTATE', + 'TYPE_E_INVDATAREAD', + 'TYPE_E_IOERROR', + 'TYPE_E_LIBNOTREGISTERED', + 'TYPE_E_NAMECONFLICT', + 'TYPE_E_OUTOFBOUNDS', + 'TYPE_E_QUALIFIEDNAMEDISALLOWED', + 'TYPE_E_REGISTRYACCESS', + 'TYPE_E_SIZETOOBIG', + 'TYPE_E_TYPEMISMATCH', + 'TYPE_E_UNDEFINEDTYPE', + 'TYPE_E_UNKNOWNLCID', + 'TYPE_E_UNSUPFORMAT', + 'TYPE_E_WRONGTYPEKIND', + 'UCEERR_BLOCKSFULL', + 'UCEERR_CHANNELSYNCABANDONED', + 'UCEERR_CHANNELSYNCTIMEDOUT', + 'UCEERR_COMMANDTRANSPORTDENIED', + 'UCEERR_CONNECTIONIDLOOKUPFAILED', + 'UCEERR_CTXSTACKFRSTTARGETNULL', + 'UCEERR_FEEDBACK_UNSUPPORTED', + 'UCEERR_GRAPHICSSTREAMALREADYOPEN', + 'UCEERR_GRAPHICSSTREAMUNAVAILABLE', + 'UCEERR_HANDLELOOKUPFAILED', + 'UCEERR_ILLEGALHANDLE', + 'UCEERR_ILLEGALPACKET', + 'UCEERR_ILLEGALRECORDTYPE', + 'UCEERR_INVALIDPACKETHEADER', + 'UCEERR_MALFORMEDPACKET', + 'UCEERR_MEMORYFAILURE', + 'UCEERR_MISSINGBEGINCOMMAND', + 'UCEERR_MISSINGENDCOMMAND', + 'UCEERR_NO_MULTIPLE_WORKER_THREADS', + 'UCEERR_OUTOFHANDLES', + 'UCEERR_PACKETRECORDOUTOFRANGE', + 'UCEERR_PARTITION_ZOMBIED', + 'UCEERR_REMOTINGNOTSUPPORTED', + 'UCEERR_RENDERTHREADFAILURE', + 'UCEERR_TRANSPORTDISCONNECTED', + 'UCEERR_TRANSPORTOVERLOADED', + 'UCEERR_TRANSPORTUNAVAILABLE', + 'UCEERR_UNCHANGABLE_UPDATE_ATTEMPTED', + 'UCEERR_UNKNOWNPACKET', + 'UCEERR_UNSUPPORTEDTRANSPORTVERSION', + 'UI_E_AMBIGUOUS_MATCH', + 'UI_E_BOOLEAN_EXPECTED', + 'UI_E_CREATE_FAILED', + 'UI_E_DIFFERENT_OWNER', + 'UI_E_END_KEYFRAME_NOT_DETERMINED', + 'UI_E_FP_OVERFLOW', + 'UI_E_ILLEGAL_REENTRANCY', + 'UI_E_INVALID_DIMENSION', + 'UI_E_INVALID_OUTPUT', + 'UI_E_LOOPS_OVERLAP', + 'UI_E_OBJECT_SEALED', + 'UI_E_PRIMITIVE_OUT_OF_BOUNDS', + 'UI_E_SHUTDOWN_CALLED', + 'UI_E_START_KEYFRAME_AFTER_END', + 'UI_E_STORYBOARD_ACTIVE', + 'UI_E_STORYBOARD_NOT_PLAYING', + 'UI_E_TIMER_CLIENT_ALREADY_CONNECTED', + 'UI_E_TIME_BEFORE_LAST_UPDATE', + 'UI_E_TRANSITION_ALREADY_USED', + 'UI_E_TRANSITION_ECLIPSED', + 'UI_E_TRANSITION_NOT_IN_STORYBOARD', + 'UI_E_VALUE_NOT_DETERMINED', + 'UI_E_VALUE_NOT_SET', + 'UI_E_WINDOW_CLOSED', + 'UI_E_WRONG_THREAD', + 'UTC_E_ACTION_NOT_SUPPORTED_IN_DESTINATION', + 'UTC_E_AGENT_DIAGNOSTICS_TOO_LARGE', + 'UTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT', + 'UTC_E_AOT_NOT_RUNNING', + 'UTC_E_API_BUSY', + 'UTC_E_API_NOT_SUPPORTED', + 'UTC_E_API_RESULT_UNAVAILABLE', + 'UTC_E_BINARY_MISSING', + 'UTC_E_CANNOT_LOAD_SCENARIO_EDITOR_XML', + 'UTC_E_CERT_REV_FAILED', + 'UTC_E_CHILD_PROCESS_FAILED', + 'UTC_E_COMMAND_LINE_NOT_AUTHORIZED', + 'UTC_E_DELAY_TERMINATED', + 'UTC_E_DEVICE_TICKET_ERROR', + 'UTC_E_DIAGRULES_SCHEMAVERSION_MISMATCH', + 'UTC_E_ESCALATION_ALREADY_RUNNING', + 'UTC_E_ESCALATION_CANCELLED_AT_SHUTDOWN', + 'UTC_E_ESCALATION_DIRECTORY_ALREADY_EXISTS', + 'UTC_E_ESCALATION_NOT_AUTHORIZED', + 'UTC_E_ESCALATION_TIMED_OUT', + 'UTC_E_EVENTLOG_ENTRY_MALFORMED', + 'UTC_E_EXCLUSIVITY_NOT_AVAILABLE', + 'UTC_E_EXE_TERMINATED', + 'UTC_E_FAILED_TO_RECEIVE_AGENT_DIAGNOSTICS', + 'UTC_E_FAILED_TO_RESOLVE_CONTAINER_ID', + 'UTC_E_FAILED_TO_START_NDISCAP', + 'UTC_E_FILTER_FUNCTION_RESTRICTED', + 'UTC_E_FILTER_ILLEGAL_EVAL', + 'UTC_E_FILTER_INVALID_COMMAND', + 'UTC_E_FILTER_INVALID_FUNCTION', + 'UTC_E_FILTER_INVALID_FUNCTION_PARAMS', + 'UTC_E_FILTER_INVALID_TYPE', + 'UTC_E_FILTER_MISSING_ATTRIBUTE', + 'UTC_E_FILTER_VARIABLE_NOT_FOUND', + 'UTC_E_FILTER_VERSION_MISMATCH', + 'UTC_E_FORWARDER_ALREADY_DISABLED', + 'UTC_E_FORWARDER_ALREADY_ENABLED', + 'UTC_E_FORWARDER_PRODUCER_MISMATCH', + 'UTC_E_GETFILEINFOACTION_FILE_NOT_APPROVED', + 'UTC_E_GETFILE_EXTERNAL_PATH_NOT_APPROVED', + 'UTC_E_GETFILE_FILE_PATH_NOT_APPROVED', + 'UTC_E_INSUFFICIENT_SPACE_TO_START_TRACE', + 'UTC_E_INTENTIONAL_SCRIPT_FAILURE', + 'UTC_E_INVALID_AGGREGATION_STRUCT', + 'UTC_E_INVALID_CUSTOM_FILTER', + 'UTC_E_INVALID_FILTER', + 'UTC_E_KERNELDUMP_LIMIT_REACHED', + 'UTC_E_MISSING_AGGREGATE_EVENT_TAG', + 'UTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE', + 'UTC_E_NETWORK_CAPTURE_NOT_ALLOWED', + 'UTC_E_NO_WER_LOGGER_SUPPORTED', + 'UTC_E_PERFTRACK_ALREADY_TRACING', + 'UTC_E_REACHED_MAX_ESCALATIONS', + 'UTC_E_REESCALATED_TOO_QUICKLY', + 'UTC_E_RPC_TIMEOUT', + 'UTC_E_RPC_WAIT_FAILED', + 'UTC_E_SCENARIODEF_NOT_FOUND', + 'UTC_E_SCENARIODEF_SCHEMAVERSION_MISMATCH', + 'UTC_E_SCENARIO_HAS_NO_ACTIONS', + 'UTC_E_SCENARIO_THROTTLED', + 'UTC_E_SCRIPT_MISSING', + 'UTC_E_SCRIPT_TERMINATED', + 'UTC_E_SCRIPT_TYPE_INVALID', + 'UTC_E_SETREGKEYACTION_TYPE_NOT_APPROVED', + 'UTC_E_SETUP_NOT_AUTHORIZED', + 'UTC_E_SETUP_TIMED_OUT', + 'UTC_E_SIF_NOT_SUPPORTED', + 'UTC_E_SQM_INIT_FAILED', + 'UTC_E_THROTTLED', + 'UTC_E_TIME_TRIGGER_INVALID_TIME_RANGE', + 'UTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION', + 'UTC_E_TIME_TRIGGER_ON_START_INVALID', + 'UTC_E_TOGGLE_TRACE_STARTED', + 'UTC_E_TRACEPROFILE_NOT_FOUND', + 'UTC_E_TRACERS_DONT_EXIST', + 'UTC_E_TRACE_BUFFER_LIMIT_EXCEEDED', + 'UTC_E_TRACE_MIN_DURATION_REQUIREMENT_NOT_MET', + 'UTC_E_TRACE_NOT_RUNNING', + 'UTC_E_TRIGGER_MISMATCH', + 'UTC_E_TRIGGER_NOT_FOUND', + 'UTC_E_TRY_GET_SCENARIO_TIMEOUT_EXCEEDED', + 'UTC_E_TTTRACER_RETURNED_ERROR', + 'UTC_E_TTTRACER_STORAGE_FULL', + 'UTC_E_UNABLE_TO_RESOLVE_SESSION', + 'UTC_E_UNAPPROVED_SCRIPT', + 'UTC_E_WINRT_INIT_FAILED', + 'VIEW_E_DRAW', + 'VIEW_E_FIRST', + 'VIEW_E_LAST', + 'VIEW_S_ALREADY_FROZEN', + 'VIEW_S_FIRST', + 'VIEW_S_LAST', + 'WAIT_TIMEOUT', + 'WARNING_IPSEC_MM_POLICY_PRUNED', + 'WARNING_IPSEC_QM_POLICY_PRUNED', + 'WEB_E_INVALID_JSON_NUMBER', + 'WEB_E_INVALID_JSON_STRING', + 'WEB_E_INVALID_XML', + 'WEB_E_JSON_VALUE_NOT_FOUND', + 'WEB_E_MISSING_REQUIRED_ATTRIBUTE', + 'WEB_E_MISSING_REQUIRED_ELEMENT', + 'WEB_E_RESOURCE_TOO_LARGE', + 'WEB_E_UNEXPECTED_CONTENT', + 'WEB_E_UNSUPPORTED_FORMAT', + 'WEP_E_BUFFER_TOO_LARGE', + 'WEP_E_FIXED_DATA_NOT_SUPPORTED', + 'WEP_E_HARDWARE_NOT_COMPLIANT', + 'WEP_E_LOCK_NOT_CONFIGURED', + 'WEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES', + 'WEP_E_NO_LICENSE', + 'WEP_E_OS_NOT_PROTECTED', + 'WEP_E_PROTECTION_SUSPENDED', + 'WEP_E_UNEXPECTED_FAIL', + 'WER_E_ALREADY_REPORTING', + 'WER_E_CANCELED', + 'WER_E_CRASH_FAILURE', + 'WER_E_DUMP_THROTTLED', + 'WER_E_INSUFFICIENT_CONSENT', + 'WER_E_NETWORK_FAILURE', + 'WER_E_NOT_INITIALIZED', + 'WER_E_TOO_HEAVY', + 'WER_S_ASSERT_CONTINUE', + 'WER_S_DISABLED', + 'WER_S_DISABLED_ARCHIVE', + 'WER_S_DISABLED_QUEUE', + 'WER_S_IGNORE_ALL_ASSERTS', + 'WER_S_IGNORE_ASSERT_INSTANCE', + 'WER_S_REPORT_ASYNC', + 'WER_S_REPORT_DEBUG', + 'WER_S_REPORT_QUEUED', + 'WER_S_REPORT_UPLOADED', + 'WER_S_REPORT_UPLOADED_CAB', + 'WER_S_SUSPENDED_UPLOAD', + 'WER_S_THROTTLED', + 'WHV_E_GPA_RANGE_NOT_FOUND', + 'WHV_E_INSUFFICIENT_BUFFER', + 'WHV_E_INVALID_PARTITION_CONFIG', + 'WHV_E_INVALID_VP_REGISTER_NAME', + 'WHV_E_INVALID_VP_STATE', + 'WHV_E_UNKNOWN_CAPABILITY', + 'WHV_E_UNKNOWN_PROPERTY', + 'WHV_E_UNSUPPORTED_HYPERVISOR_CONFIG', + 'WHV_E_VP_ALREADY_EXISTS', + 'WHV_E_VP_DOES_NOT_EXIST', + 'WINCODEC_ERR_ALREADYLOCKED', + 'WINCODEC_ERR_BADHEADER', + 'WINCODEC_ERR_BADIMAGE', + 'WINCODEC_ERR_BADMETADATAHEADER', + 'WINCODEC_ERR_BADSTREAMDATA', + 'WINCODEC_ERR_CODECNOTHUMBNAIL', + 'WINCODEC_ERR_CODECPRESENT', + 'WINCODEC_ERR_CODECTOOMANYSCANLINES', + 'WINCODEC_ERR_COMPONENTINITIALIZEFAILURE', + 'WINCODEC_ERR_COMPONENTNOTFOUND', + 'WINCODEC_ERR_DUPLICATEMETADATAPRESENT', + 'WINCODEC_ERR_FRAMEMISSING', + 'WINCODEC_ERR_IMAGESIZEOUTOFRANGE', + 'WINCODEC_ERR_INSUFFICIENTBUFFER', + 'WINCODEC_ERR_INTERNALERROR', + 'WINCODEC_ERR_INVALIDJPEGSCANINDEX', + 'WINCODEC_ERR_INVALIDPROGRESSIVELEVEL', + 'WINCODEC_ERR_INVALIDQUERYCHARACTER', + 'WINCODEC_ERR_INVALIDQUERYREQUEST', + 'WINCODEC_ERR_INVALIDREGISTRATION', + 'WINCODEC_ERR_NOTINITIALIZED', + 'WINCODEC_ERR_PALETTEUNAVAILABLE', + 'WINCODEC_ERR_PROPERTYNOTFOUND', + 'WINCODEC_ERR_PROPERTYNOTSUPPORTED', + 'WINCODEC_ERR_PROPERTYSIZE', + 'WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE', + 'WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT', + 'WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS', + 'WINCODEC_ERR_STREAMNOTAVAILABLE', + 'WINCODEC_ERR_STREAMREAD', + 'WINCODEC_ERR_STREAMWRITE', + 'WINCODEC_ERR_TOOMUCHMETADATA', + 'WINCODEC_ERR_UNEXPECTEDMETADATATYPE', + 'WINCODEC_ERR_UNEXPECTEDSIZE', + 'WINCODEC_ERR_UNKNOWNIMAGEFORMAT', + 'WINCODEC_ERR_UNSUPPORTEDOPERATION', + 'WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT', + 'WINCODEC_ERR_UNSUPPORTEDVERSION', + 'WINCODEC_ERR_VALUEOUTOFRANGE', + 'WINCODEC_ERR_WIN32ERROR', + 'WINCODEC_ERR_WRONGSTATE', + 'WININET_E_ASYNC_THREAD_FAILED', + 'WININET_E_BAD_AUTO_PROXY_SCRIPT', + 'WININET_E_BAD_OPTION_LENGTH', + 'WININET_E_BAD_REGISTRY_PARAMETER', + 'WININET_E_CANNOT_CONNECT', + 'WININET_E_CHG_POST_IS_NON_SECURE', + 'WININET_E_CLIENT_AUTH_CERT_NEEDED', + 'WININET_E_CLIENT_AUTH_NOT_SETUP', + 'WININET_E_CONNECTION_ABORTED', + 'WININET_E_CONNECTION_RESET', + 'WININET_E_COOKIE_DECLINED', + 'WININET_E_COOKIE_NEEDS_CONFIRMATION', + 'WININET_E_DECODING_FAILED', + 'WININET_E_DIALOG_PENDING', + 'WININET_E_DISCONNECTED', + 'WININET_E_DOWNLEVEL_SERVER', + 'WININET_E_EXTENDED_ERROR', + 'WININET_E_FAILED_DUETOSECURITYCHECK', + 'WININET_E_FORCE_RETRY', + 'WININET_E_HANDLE_EXISTS', + 'WININET_E_HEADER_ALREADY_EXISTS', + 'WININET_E_HEADER_NOT_FOUND', + 'WININET_E_HTTPS_HTTP_SUBMIT_REDIR', + 'WININET_E_HTTPS_TO_HTTP_ON_REDIR', + 'WININET_E_HTTP_TO_HTTPS_ON_REDIR', + 'WININET_E_INCORRECT_FORMAT', + 'WININET_E_INCORRECT_HANDLE_STATE', + 'WININET_E_INCORRECT_HANDLE_TYPE', + 'WININET_E_INCORRECT_PASSWORD', + 'WININET_E_INCORRECT_USER_NAME', + 'WININET_E_INTERNAL_ERROR', + 'WININET_E_INVALID_CA', + 'WININET_E_INVALID_HEADER', + 'WININET_E_INVALID_OPERATION', + 'WININET_E_INVALID_OPTION', + 'WININET_E_INVALID_PROXY_REQUEST', + 'WININET_E_INVALID_QUERY_REQUEST', + 'WININET_E_INVALID_SERVER_RESPONSE', + 'WININET_E_INVALID_URL', + 'WININET_E_ITEM_NOT_FOUND', + 'WININET_E_LOGIN_FAILURE', + 'WININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY', + 'WININET_E_MIXED_SECURITY', + 'WININET_E_NAME_NOT_RESOLVED', + 'WININET_E_NEED_UI', + 'WININET_E_NOT_INITIALIZED', + 'WININET_E_NOT_PROXY_REQUEST', + 'WININET_E_NOT_REDIRECTED', + 'WININET_E_NO_CALLBACK', + 'WININET_E_NO_CONTEXT', + 'WININET_E_NO_DIRECT_ACCESS', + 'WININET_E_NO_NEW_CONTAINERS', + 'WININET_E_OPERATION_CANCELLED', + 'WININET_E_OPTION_NOT_SETTABLE', + 'WININET_E_OUT_OF_HANDLES', + 'WININET_E_POST_IS_NON_SECURE', + 'WININET_E_PROTOCOL_NOT_FOUND', + 'WININET_E_PROXY_SERVER_UNREACHABLE', + 'WININET_E_REDIRECT_FAILED', + 'WININET_E_REDIRECT_NEEDS_CONFIRMATION', + 'WININET_E_REDIRECT_SCHEME_CHANGE', + 'WININET_E_REGISTRY_VALUE_NOT_FOUND', + 'WININET_E_REQUEST_PENDING', + 'WININET_E_RETRY_DIALOG', + 'WININET_E_SECURITY_CHANNEL_ERROR', + 'WININET_E_SEC_CERT_CN_INVALID', + 'WININET_E_SEC_CERT_DATE_INVALID', + 'WININET_E_SEC_CERT_ERRORS', + 'WININET_E_SEC_CERT_REVOKED', + 'WININET_E_SEC_CERT_REV_FAILED', + 'WININET_E_SEC_INVALID_CERT', + 'WININET_E_SERVER_UNREACHABLE', + 'WININET_E_SHUTDOWN', + 'WININET_E_TCPIP_NOT_INSTALLED', + 'WININET_E_TIMEOUT', + 'WININET_E_UNABLE_TO_CACHE_FILE', + 'WININET_E_UNABLE_TO_DOWNLOAD_SCRIPT', + 'WININET_E_UNRECOGNIZED_SCHEME', + 'WINML_ERR_INVALID_BINDING', + 'WINML_ERR_INVALID_DEVICE', + 'WINML_ERR_SIZE_MISMATCH', + 'WINML_ERR_VALUE_NOTFOUND', + 'WPN_E_ACCESS_DENIED', + 'WPN_E_ALL_URL_NOT_COMPLETED', + 'WPN_E_CALLBACK_ALREADY_REGISTERED', + 'WPN_E_CHANNEL_CLOSED', + 'WPN_E_CHANNEL_REQUEST_NOT_COMPLETE', + 'WPN_E_CLOUD_AUTH_UNAVAILABLE', + 'WPN_E_CLOUD_DISABLED', + 'WPN_E_CLOUD_DISABLED_FOR_APP', + 'WPN_E_CLOUD_INCAPABLE', + 'WPN_E_CLOUD_SERVICE_UNAVAILABLE', + 'WPN_E_DEV_ID_SIZE', + 'WPN_E_DUPLICATE_CHANNEL', + 'WPN_E_DUPLICATE_REGISTRATION', + 'WPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION', + 'WPN_E_GROUP_ALPHANUMERIC', + 'WPN_E_GROUP_SIZE', + 'WPN_E_IMAGE_NOT_FOUND_IN_CACHE', + 'WPN_E_INTERNET_INCAPABLE', + 'WPN_E_INVALID_APP', + 'WPN_E_INVALID_CLOUD_IMAGE', + 'WPN_E_INVALID_HTTP_STATUS_CODE', + 'WPN_E_NOTIFICATION_DISABLED', + 'WPN_E_NOTIFICATION_HIDDEN', + 'WPN_E_NOTIFICATION_ID_MATCHED', + 'WPN_E_NOTIFICATION_INCAPABLE', + 'WPN_E_NOTIFICATION_NOT_POSTED', + 'WPN_E_NOTIFICATION_POSTED', + 'WPN_E_NOTIFICATION_SIZE', + 'WPN_E_NOTIFICATION_TYPE_DISABLED', + 'WPN_E_OUTSTANDING_CHANNEL_REQUEST', + 'WPN_E_OUT_OF_SESSION', + 'WPN_E_PLATFORM_UNAVAILABLE', + 'WPN_E_POWER_SAVE', + 'WPN_E_PUSH_NOTIFICATION_INCAPABLE', + 'WPN_E_STORAGE_LOCKED', + 'WPN_E_TAG_ALPHANUMERIC', + 'WPN_E_TAG_SIZE', + 'WPN_E_TOAST_NOTIFICATION_DROPPED', + 'WSABASEERR', + 'WSAEACCES', + 'WSAEADDRINUSE', + 'WSAEADDRNOTAVAIL', + 'WSAEAFNOSUPPORT', + 'WSAEALREADY', + 'WSAEBADF', + 'WSAECANCELLED', + 'WSAECONNABORTED', + 'WSAECONNREFUSED', + 'WSAECONNRESET', + 'WSAEDESTADDRREQ', + 'WSAEDISCON', + 'WSAEDQUOT', + 'WSAEFAULT', + 'WSAEHOSTDOWN', + 'WSAEHOSTUNREACH', + 'WSAEINPROGRESS', + 'WSAEINTR', + 'WSAEINVAL', + 'WSAEINVALIDPROCTABLE', + 'WSAEINVALIDPROVIDER', + 'WSAEISCONN', + 'WSAELOOP', + 'WSAEMFILE', + 'WSAEMSGSIZE', + 'WSAENAMETOOLONG', + 'WSAENETDOWN', + 'WSAENETRESET', + 'WSAENETUNREACH', + 'WSAENOBUFS', + 'WSAENOMORE', + 'WSAENOPROTOOPT', + 'WSAENOTCONN', + 'WSAENOTEMPTY', + 'WSAENOTSOCK', + 'WSAEOPNOTSUPP', + 'WSAEPFNOSUPPORT', + 'WSAEPROCLIM', + 'WSAEPROTONOSUPPORT', + 'WSAEPROTOTYPE', + 'WSAEPROVIDERFAILEDINIT', + 'WSAEREFUSED', + 'WSAEREMOTE', + 'WSAESHUTDOWN', + 'WSAESOCKTNOSUPPORT', + 'WSAESTALE', + 'WSAETIMEDOUT', + 'WSAETOOMANYREFS', + 'WSAEUSERS', + 'WSAEWOULDBLOCK', + 'WSAHOST_NOT_FOUND', + 'WSANOTINITIALISED', + 'WSANO_DATA', + 'WSANO_RECOVERY', + 'WSASERVICE_NOT_FOUND', + 'WSASYSCALLFAILURE', + 'WSASYSNOTREADY', + 'WSATRY_AGAIN', + 'WSATYPE_NOT_FOUND', + 'WSAVERNOTSUPPORTED', + 'WSA_E_CANCELLED', + 'WSA_E_NO_MORE', + 'WSA_IPSEC_NAME_POLICY_ERROR', + 'WSA_QOS_ADMISSION_FAILURE', + 'WSA_QOS_BAD_OBJECT', + 'WSA_QOS_BAD_STYLE', + 'WSA_QOS_EFILTERCOUNT', + 'WSA_QOS_EFILTERSTYLE', + 'WSA_QOS_EFILTERTYPE', + 'WSA_QOS_EFLOWCOUNT', + 'WSA_QOS_EFLOWDESC', + 'WSA_QOS_EFLOWSPEC', + 'WSA_QOS_EOBJLENGTH', + 'WSA_QOS_EPOLICYOBJ', + 'WSA_QOS_EPROVSPECBUF', + 'WSA_QOS_EPSFILTERSPEC', + 'WSA_QOS_EPSFLOWSPEC', + 'WSA_QOS_ESDMODEOBJ', + 'WSA_QOS_ESERVICETYPE', + 'WSA_QOS_ESHAPERATEOBJ', + 'WSA_QOS_EUNKOWNPSOBJ', + 'WSA_QOS_GENERIC_ERROR', + 'WSA_QOS_NO_RECEIVERS', + 'WSA_QOS_NO_SENDERS', + 'WSA_QOS_POLICY_FAILURE', + 'WSA_QOS_RECEIVERS', + 'WSA_QOS_REQUEST_CONFIRMED', + 'WSA_QOS_RESERVED_PETYPE', + 'WSA_QOS_SENDERS', + 'WSA_QOS_TRAFFIC_CTRL_ERROR', + 'WSA_SECURE_HOST_NOT_FOUND', + 'WS_E_ADDRESS_IN_USE', + 'WS_E_ADDRESS_NOT_AVAILABLE', + 'WS_E_ENDPOINT_ACCESS_DENIED', + 'WS_E_ENDPOINT_ACTION_NOT_SUPPORTED', + 'WS_E_ENDPOINT_DISCONNECTED', + 'WS_E_ENDPOINT_FAILURE', + 'WS_E_ENDPOINT_FAULT_RECEIVED', + 'WS_E_ENDPOINT_NOT_AVAILABLE', + 'WS_E_ENDPOINT_NOT_FOUND', + 'WS_E_ENDPOINT_TOO_BUSY', + 'WS_E_ENDPOINT_UNREACHABLE', + 'WS_E_INVALID_ENDPOINT_URL', + 'WS_E_INVALID_FORMAT', + 'WS_E_INVALID_OPERATION', + 'WS_E_NOT_SUPPORTED', + 'WS_E_NO_TRANSLATION_AVAILABLE', + 'WS_E_NUMERIC_OVERFLOW', + 'WS_E_OBJECT_FAULTED', + 'WS_E_OPERATION_ABANDONED', + 'WS_E_OPERATION_ABORTED', + 'WS_E_OPERATION_TIMED_OUT', + 'WS_E_OTHER', + 'WS_E_PROXY_ACCESS_DENIED', + 'WS_E_PROXY_FAILURE', + 'WS_E_PROXY_REQUIRES_BASIC_AUTH', + 'WS_E_PROXY_REQUIRES_DIGEST_AUTH', + 'WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH', + 'WS_E_PROXY_REQUIRES_NTLM_AUTH', + 'WS_E_QUOTA_EXCEEDED', + 'WS_E_SECURITY_SYSTEM_FAILURE', + 'WS_E_SECURITY_TOKEN_EXPIRED', + 'WS_E_SECURITY_VERIFICATION_FAILURE', + 'WS_E_SERVER_REQUIRES_BASIC_AUTH', + 'WS_E_SERVER_REQUIRES_DIGEST_AUTH', + 'WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH', + 'WS_E_SERVER_REQUIRES_NTLM_AUTH', + 'WS_S_ASYNC', + 'WS_S_END', + 'XACT_E_ABORTED', + 'XACT_E_ABORTING', + 'XACT_E_ALREADYINPROGRESS', + 'XACT_E_ALREADYOTHERSINGLEPHASE', + 'XACT_E_CANTRETAIN', + 'XACT_E_CLERKEXISTS', + 'XACT_E_CLERKNOTFOUND', + 'XACT_E_COMMITFAILED', + 'XACT_E_COMMITPREVENTED', + 'XACT_E_CONNECTION_DENIED', + 'XACT_E_CONNECTION_DOWN', + 'XACT_E_DEST_TMNOTAVAILABLE', + 'XACT_E_FIRST', + 'XACT_E_HEURISTICABORT', + 'XACT_E_HEURISTICCOMMIT', + 'XACT_E_HEURISTICDAMAGE', + 'XACT_E_HEURISTICDANGER', + 'XACT_E_INDOUBT', + 'XACT_E_INVALIDCOOKIE', + 'XACT_E_INVALIDLSN', + 'XACT_E_ISOLATIONLEVEL', + 'XACT_E_LAST', + 'XACT_E_LOGFULL', + 'XACT_E_LU_TX_DISABLED', + 'XACT_E_NETWORK_TX_DISABLED', + 'XACT_E_NOASYNC', + 'XACT_E_NOENLIST', + 'XACT_E_NOIMPORTOBJECT', + 'XACT_E_NOISORETAIN', + 'XACT_E_NORESOURCE', + 'XACT_E_NOTCURRENT', + 'XACT_E_NOTIMEOUT', + 'XACT_E_NOTRANSACTION', + 'XACT_E_NOTSUPPORTED', + 'XACT_E_PARTNER_NETWORK_TX_DISABLED', + 'XACT_E_PULL_COMM_FAILURE', + 'XACT_E_PUSH_COMM_FAILURE', + 'XACT_E_RECOVERYINPROGRESS', + 'XACT_E_REENLISTTIMEOUT', + 'XACT_E_REPLAYREQUEST', + 'XACT_E_TIP_CONNECT_FAILED', + 'XACT_E_TIP_DISABLED', + 'XACT_E_TIP_PROTOCOL_ERROR', + 'XACT_E_TIP_PULL_FAILED', + 'XACT_E_TMNOTAVAILABLE', + 'XACT_E_TRANSACTIONCLOSED', + 'XACT_E_UNABLE_TO_LOAD_DTC_PROXY', + 'XACT_E_UNABLE_TO_READ_DTC_CONFIG', + 'XACT_E_UNKNOWNRMGRID', + 'XACT_E_WRONGSTATE', + 'XACT_E_WRONGUOW', + 'XACT_E_XA_TX_DISABLED', + 'XACT_E_XTIONEXISTS', + 'XACT_S_ABORTING', + 'XACT_S_ALLNORETAIN', + 'XACT_S_ASYNC', + 'XACT_S_DEFECT', + 'XACT_S_FIRST', + 'XACT_S_LAST', + 'XACT_S_LASTRESOURCEMANAGER', + 'XACT_S_LOCALLY_OK', + 'XACT_S_MADECHANGESCONTENT', + 'XACT_S_MADECHANGESINFORM', + 'XACT_S_OKINFORM', + 'XACT_S_READONLY', + 'XACT_S_SINGLEPHASE', + 'XACT_S_SOMENORETAIN', + 'XENROLL_E_CANNOT_ADD_ROOT_CERT', + 'XENROLL_E_KEYSPEC_SMIME_MISMATCH', + 'XENROLL_E_KEY_NOT_EXPORTABLE', + 'XENROLL_E_RESPONSE_KA_HASH_MISMATCH', + 'XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND', + 'XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH']) +structs = set(['ACCESS_ALLOWED_ACE', + 'ACCESS_ALLOWED_CALLBACK_ACE', + 'ACCESS_ALLOWED_CALLBACK_OBJECT_ACE', + 'ACCESS_ALLOWED_OBJECT_ACE', + 'ACCESS_DENIED_ACE', + 'ACCESS_DENIED_CALLBACK_ACE', + 'ACCESS_DENIED_CALLBACK_OBJECT_ACE', + 'ACCESS_DENIED_OBJECT_ACE', + 'ACE_HEADER', + 'ACL', + 'ACL_REVISION_INFORMATION', + 'ACL_SIZE_INFORMATION', + 'ADDRESS', + 'ADDRESS64', + 'ADDRINFOA', + 'ADDRINFOW', + 'ALPC_CONTEXT_ATTR', + 'ALPC_CONTEXT_ATTR32', + 'ALPC_CONTEXT_ATTR64', + 'ALPC_DATA_VIEW_ATTR', + 'ALPC_DATA_VIEW_ATTR32', + 'ALPC_DATA_VIEW_ATTR64', + 'ALPC_DIRECT_ATTR', + 'ALPC_DIRECT_ATTR32', + 'ALPC_DIRECT_ATTR64', + 'ALPC_HANDLE_ATTR', + 'ALPC_HANDLE_ATTR32', + 'ALPC_HANDLE_ATTR64', + 'ALPC_MESSAGE_ATTRIBUTES', + 'ALPC_PORT_ATTRIBUTES32', + 'ALPC_PORT_ATTRIBUTES64', + 'ALPC_SECURITY_ATTR', + 'ALPC_SECURITY_ATTR32', + 'ALPC_SECURITY_ATTR64', + 'ALPC_SERVER_INFORMATION', + 'ALPC_SERVER_INFORMATION_TMP_IN', + 'ALPC_SERVER_INFORMATION_TMP_OUT', + 'ALPC_TOKEN_ATTR', + 'ALPC_WORK_ON_BEHALF_ATTR', + 'API_SET_NAMESPACE_ARRAY', + 'API_SET_NAMESPACE_ARRAY_V2', + 'API_SET_NAMESPACE_ARRAY_V4', + 'API_SET_NAMESPACE_ENTRY', + 'API_SET_NAMESPACE_ENTRY_V2', + 'API_SET_NAMESPACE_ENTRY_V4', + 'API_SET_NAMESPACE_ENTRY_V6', + 'API_SET_NAMESPACE_V6', + 'API_SET_VALUE_ARRAY_V2', + 'API_SET_VALUE_ARRAY_V4', + 'API_SET_VALUE_ENTRY', + 'API_SET_VALUE_ENTRY_V2', + 'ARRAYDESC', + 'ATTACH_VIRTUAL_DISK_PARAMETERS', + 'BG_AUTH_CREDENTIALS', + 'BG_AUTH_CREDENTIALS_UNION', + 'BG_BASIC_CREDENTIALS', + 'BG_FILE_INFO', + 'BG_FILE_PROGRESS', + 'BG_FILE_RANGE', + 'BG_JOB_PROGRESS', + 'BG_JOB_REPLY_PROGRESS', + 'BG_JOB_TIMES', + 'BINDPTR', + 'BIND_OPTS', + 'BITMAP', + 'BITMAPCOREHEADER', + 'BITMAPCOREINFO', + 'BITMAPFILEHEADER', + 'BITMAPINFO', + 'BITMAPINFOHEADER', + 'BLOBHEADER', + 'BUSNUMBER_DES', + 'BUSNUMBER_RANGE', + 'BUSNUMBER_RESOURCE', + 'BusNumber_Des_s', + 'BusNumber_Range_s', + 'BusNumber_Resource_s', + 'CALLFRAMEINFO', + 'CALLFRAMEPARAMINFO', + 'CALLFRAME_MARSHALCONTEXT', + 'CATALOG_INFO', + 'CATALOG_INFO_', + 'CERT_BLOB', + 'CERT_CHAIN_CONTEXT', + 'CERT_CHAIN_ELEMENT', + 'CERT_CHAIN_ENGINE_CONFIG', + 'CERT_CHAIN_PARA', + 'CERT_CONTEXT', + 'CERT_ENHKEY_USAGE', + 'CERT_EXTENSION', + 'CERT_EXTENSIONS', + 'CERT_ID', + 'CERT_INFO', + 'CERT_ISSUER_SERIAL_NUMBER', + 'CERT_KEY_CONTEXT', + 'CERT_NAME_BLOB', + 'CERT_PUBLIC_KEY_INFO', + 'CERT_RDN_VALUE_BLOB', + 'CERT_REVOCATION_CRL_INFO', + 'CERT_REVOCATION_INFO', + 'CERT_SIMPLE_CHAIN', + 'CERT_STRONG_SIGN_PARA', + 'CERT_STRONG_SIGN_SERIALIZED_INFO', + 'CERT_TRUST_LIST_INFO', + 'CERT_TRUST_STATUS', + 'CERT_USAGE_MATCH', + 'CLAIM_SECURITY_ATTRIBUTES_INFORMATION', + 'CLAIM_SECURITY_ATTRIBUTES_INFORMATION_UNION', + 'CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE', + 'CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE', + 'CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE', + 'CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1', + 'CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_UNION', + 'CLAIM_SECURITY_ATTRIBUTE_V1', + 'CLAIM_SECURITY_ATTRIBUTE_V1_UNION', + 'CLIENT_ID', + 'CLIENT_ID32', + 'CLIENT_ID64', + 'CLSID', + 'CMSG_CTRL_DECRYPT_PARA', + 'CMSG_ENVELOPED_ENCODE_INFO', + 'CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO', + 'CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO', + 'CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO', + 'CMSG_RECIPIENT_ENCODE_INFO', + 'CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO', + 'CMSG_SIGNER_INFO', + 'CMSG_STREAM_INFO', + 'COAUTHIDENTITY', + 'COAUTHINFO', + 'COMVERSION', + 'CONTEXT32', + 'CONTEXT64', + 'COSERVERINFO', + 'CREATE_PROCESS_DEBUG_INFO', + 'CREATE_THREAD_DEBUG_INFO', + 'CRL_BLOB', + 'CRL_CONTEXT', + 'CRL_ENTRY', + 'CRL_INFO', + 'CRYPTCATATTRIBUTE', + 'CRYPTCATATTRIBUTE_', + 'CRYPTCATMEMBER', + 'CRYPTCATMEMBER_', + 'CRYPTPROTECT_PROMPTSTRUCT', + 'CRYPT_ALGORITHM_IDENTIFIER', + 'CRYPT_ATTRIBUTE', + 'CRYPT_ATTRIBUTES', + 'CRYPT_ATTRIBUTE_TYPE_VALUE', + 'CRYPT_ATTR_BLOB', + 'CRYPT_BIT_BLOB', + 'CRYPT_DATA_BLOB', + 'CRYPT_DECRYPT_MESSAGE_PARA', + 'CRYPT_DER_BLOB', + 'CRYPT_DIGEST_BLOB', + 'CRYPT_ENCODE_PARA', + 'CRYPT_ENCRYPT_MESSAGE_PARA', + 'CRYPT_HASH_BLOB', + 'CRYPT_HASH_MESSAGE_PARA', + 'CRYPT_INTEGER_BLOB', + 'CRYPT_KEY_PROV_INFO', + 'CRYPT_KEY_PROV_PARAM', + 'CRYPT_KEY_VERIFY_MESSAGE_PARA', + 'CRYPT_OBJID_BLOB', + 'CRYPT_SIGN_MESSAGE_PARA', + 'CRYPT_UINT_BLOB', + 'CRYPT_VERIFY_MESSAGE_PARA', + 'CS_DES', + 'CS_Des_s', + 'CS_RESOURCE', + 'CS_Resource_s', + 'CTL_CONTEXT', + 'CTL_ENTRY', + 'CTL_INFO', + 'CTL_USAGE', + 'CURDIR', + 'DATA_BLOB', + 'DEBUG_BREAKPOINT_PARAMETERS', + 'DEBUG_EVENT', + 'DEBUG_EXCEPTION_FILTER_PARAMETERS', + 'DEBUG_LAST_EVENT_INFO_BREAKPOINT', + 'DEBUG_LAST_EVENT_INFO_EXCEPTION', + 'DEBUG_LAST_EVENT_INFO_EXIT_PROCESS', + 'DEBUG_LAST_EVENT_INFO_EXIT_THREAD', + 'DEBUG_LAST_EVENT_INFO_LOAD_MODULE', + 'DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR', + 'DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE', + 'DEBUG_MODULE_AND_ID', + 'DEBUG_MODULE_PARAMETERS', + 'DEBUG_OFFSET_REGION', + 'DEBUG_PROCESSOR_IDENTIFICATION_ALL', + 'DEBUG_PROCESSOR_IDENTIFICATION_ALPHA', + 'DEBUG_PROCESSOR_IDENTIFICATION_AMD64', + 'DEBUG_PROCESSOR_IDENTIFICATION_ARM', + 'DEBUG_PROCESSOR_IDENTIFICATION_IA64', + 'DEBUG_PROCESSOR_IDENTIFICATION_X86', + 'DEBUG_REGISTER_DESCRIPTION', + 'DEBUG_SPECIFIC_FILTER_PARAMETERS', + 'DEBUG_STACK_FRAME', + 'DEBUG_SYMBOL_ENTRY', + 'DEBUG_SYMBOL_PARAMETERS', + 'DEBUG_SYMBOL_SOURCE_ENTRY', + 'DEBUG_VALUE', + 'DEBUG_VALUE_TMP_SUBSTRUCT1', + 'DEBUG_VALUE_TMP_SUBSTRUCT2', + 'DEBUG_VALUE_TMP_SUBSTRUCT3', + 'DEBUG_VALUE_TMP_UNION', + 'DECIMAL', + 'DISPPARAMS', + 'DMA_DES', + 'DMA_Des_s', + 'DMA_RANGE', + 'DMA_RESOURCE', + 'DMA_Range_s', + 'DMA_Resource_s', + 'DNS_AAAA_DATA', + 'DNS_ADDR', + 'DNS_ADDR_ARRAY', + 'DNS_ATMA_DATA', + 'DNS_A_DATA', + 'DNS_CACHE_ENTRY', + 'DNS_DHCID_DATA', + 'DNS_DNSKEY_DATA', + 'DNS_DS_DATA', + 'DNS_KEY_DATA', + 'DNS_LOC_DATA', + 'DNS_MINFO_DATAA', + 'DNS_MINFO_DATAW', + 'DNS_MX_DATAA', + 'DNS_MX_DATAW', + 'DNS_NAPTR_DATAA', + 'DNS_NAPTR_DATAW', + 'DNS_NSEC3PARAM_DATA', + 'DNS_NSEC3_DATA', + 'DNS_NSEC_DATAA', + 'DNS_NSEC_DATAW', + 'DNS_NULL_DATA', + 'DNS_NXT_DATAA', + 'DNS_NXT_DATAW', + 'DNS_OPT_DATA', + 'DNS_PTR_DATAA', + 'DNS_PTR_DATAW', + 'DNS_QUERY_CANCEL', + 'DNS_QUERY_REQUEST', + 'DNS_QUERY_RESULT', + 'DNS_RECORDA', + 'DNS_RECORDW', + 'DNS_RECORD_FLAGS', + 'DNS_RRSIG_DATAA', + 'DNS_RRSIG_DATAW', + 'DNS_SIG_DATAA', + 'DNS_SIG_DATAW', + 'DNS_SOA_DATAA', + 'DNS_SOA_DATAW', + 'DNS_SRV_DATAA', + 'DNS_SRV_DATAW', + 'DNS_TKEY_DATAA', + 'DNS_TKEY_DATAW', + 'DNS_TLSA_DATA', + 'DNS_TSIG_DATAA', + 'DNS_TSIG_DATAW', + 'DNS_TXT_DATAA', + 'DNS_TXT_DATAW', + 'DNS_UNKNOWN_DATA', + 'DNS_WINSR_DATAA', + 'DNS_WINSR_DATAW', + 'DNS_WINS_DATA', + 'DNS_WKS_DATA', + 'ELEMDESC', + 'ENABLE_TRACE_PARAMETERS', + 'ENUM_SERVICE_STATUSA', + 'ENUM_SERVICE_STATUSW', + 'ENUM_SERVICE_STATUS_PROCESSA', + 'ENUM_SERVICE_STATUS_PROCESSW', + 'ETW_BUFFER_CONTEXT', + 'EVENTLOGRECORD', + 'EVENTLOG_FULL_INFORMATION', + 'EVENT_DATA_DESCRIPTOR', + 'EVENT_DESCRIPTOR', + 'EVENT_FILTER_DESCRIPTOR', + 'EVENT_HEADER', + 'EVENT_HEADER_EXTENDED_DATA_ITEM', + 'EVENT_RECORD', + 'EVENT_TRACE', + 'EVENT_TRACE_HEADER', + 'EVENT_TRACE_LOGFILEA', + 'EVENT_TRACE_LOGFILEW', + 'EVENT_TRACE_PROPERTIES', + 'EVT_RPC_LOGIN', + 'EVT_VARIANT', + 'EXCEPINFO', + 'EXCEPTION_DEBUG_INFO', + 'EXCEPTION_POINTERS32', + 'EXCEPTION_POINTERS64', + 'EXCEPTION_RECORD', + 'EXCEPTION_RECORD32', + 'EXCEPTION_RECORD64', + 'EXIT_PROCESS_DEBUG_INFO', + 'EXIT_THREAD_DEBUG_INFO', + 'EXPLICIT_ACCESSW', + 'EXPLICIT_ACCESS_W', + 'FILETIME', + 'FILE_ACCESS_INFORMATION', + 'FILE_ALIGNMENT_INFORMATION', + 'FILE_ALL_INFORMATION', + 'FILE_ATTRIBUTE_TAG_INFORMATION', + 'FILE_BASIC_INFORMATION', + 'FILE_DISPOSITION_INFORMATION', + 'FILE_EA_INFORMATION', + 'FILE_FS_ATTRIBUTE_INFORMATION', + 'FILE_FS_CONTROL_INFORMATION', + 'FILE_FS_DEVICE_INFORMATION', + 'FILE_FS_DRIVER_PATH_INFORMATION', + 'FILE_FS_FULL_SIZE_INFORMATION', + 'FILE_FS_LABEL_INFORMATION', + 'FILE_FS_OBJECTID_INFORMATION', + 'FILE_FS_SECTOR_SIZE_INFORMATION', + 'FILE_FS_SIZE_INFORMATION', + 'FILE_FS_VOLUME_INFORMATION', + 'FILE_FULL_EA_INFORMATION', + 'FILE_GET_EA_INFORMATION', + 'FILE_INTERNAL_INFORMATION', + 'FILE_IO_PRIORITY_HINT_INFORMATION', + 'FILE_IS_REMOTE_DEVICE_INFORMATION', + 'FILE_LINK_INFORMATION', + 'FILE_MODE_INFORMATION', + 'FILE_NAME_INFORMATION', + 'FILE_NETWORK_OPEN_INFORMATION', + 'FILE_NOTIFY_EXTENDED_INFORMATION', + 'FILE_NOTIFY_INFORMATION', + 'FILE_POSITION_INFORMATION', + 'FILE_RENAME_INFORMATION', + 'FILE_STANDARD_INFORMATION', + 'FILE_STREAM_INFORMATION', + 'FLOATING_SAVE_AREA', + 'FUNCDESC', + 'GENERIC_MAPPING', + 'GROUP_INFO_0', + 'GROUP_INFO_1', + 'GROUP_INFO_2', + 'GROUP_INFO_3', + 'GROUP_USERS_INFO_0', + 'GROUP_USERS_INFO_1', + 'GUID', + 'IDLDESC', + 'IID', + 'IMAGEHLP_CBA_EVENT', + 'IMAGEHLP_CBA_EVENTW', + 'IMAGEHLP_CBA_READ_MEMORY', + 'IMAGEHLP_DEFERRED_SYMBOL_LOAD', + 'IMAGEHLP_DEFERRED_SYMBOL_LOAD64', + 'IMAGEHLP_DEFERRED_SYMBOL_LOADW64', + 'IMAGEHLP_DUPLICATE_SYMBOL', + 'IMAGEHLP_DUPLICATE_SYMBOL64', + 'IMAGEHLP_MODULE64', + 'IMAGEHLP_MODULEW64', + 'IMAGEHLP_STACK_FRAME', + 'IMAGEHLP_SYMBOL', + 'IMAGEHLP_SYMBOL64', + 'IMAGEHLP_SYMBOLW64', + 'IMAGE_BASE_RELOCATION', + 'IMAGE_DATA_DIRECTORY', + 'IMAGE_DEBUG_DIRECTORY', + 'IMAGE_EXPORT_DIRECTORY', + 'IMAGE_FILE_HEADER', + 'IMAGE_IMPORT_BY_NAME', + 'IMAGE_IMPORT_DESCRIPTOR', + 'IMAGE_NT_HEADERS32', + 'IMAGE_NT_HEADERS64', + 'IMAGE_OPTIONAL_HEADER32', + 'IMAGE_OPTIONAL_HEADER64', + 'IMAGE_SECTION_HEADER', + 'INTERNET_BUFFERSA', + 'INTERNET_BUFFERSW', + 'IO_DES', + 'IO_Des_s', + 'IO_RANGE', + 'IO_RESOURCE', + 'IO_Range_s', + 'IO_Resource_s', + 'IO_STATUS_BLOCK', + 'IP6_ADDRESS', + 'IP_ADAPTER_INDEX_MAP', + 'IP_ADAPTER_INFO', + 'IP_ADDRESS_STRING', + 'IP_ADDR_STRING', + 'IP_INTERFACE_INFO', + 'IP_MASK_STRING', + 'IP_PER_ADAPTER_INFO', + 'IP_PER_ADAPTER_INFO_W2KSP1', + 'IRQ_DES_32', + 'IRQ_DES_64', + 'IRQ_Des_32_s', + 'IRQ_Des_64_s', + 'IRQ_RANGE', + 'IRQ_RESOURCE_32', + 'IRQ_RESOURCE_64', + 'IRQ_Range_s', + 'IRQ_Resource_32_s', + 'IRQ_Resource_64_s', + 'ITEMIDLIST', + 'JIT_DEBUG_INFO', + 'KDHELP', + 'KDHELP64', + 'KEY_VALUE_BASIC_INFORMATION', + 'KEY_VALUE_FULL_INFORMATION', + 'KEY_VALUE_PARTIAL_INFORMATION', + 'LDR_DATA_TABLE_ENTRY', + 'LIST_ENTRY', + 'LOAD_DLL_DEBUG_INFO', + 'LOCALGROUP_INFO_0', + 'LOCALGROUP_INFO_1', + 'LOCALGROUP_MEMBERS_INFO_0', + 'LOCALGROUP_MEMBERS_INFO_1', + 'LOCALGROUP_MEMBERS_INFO_2', + 'LOCALGROUP_MEMBERS_INFO_3', + 'LOCALTHIS', + 'LPADDRESS', + 'LPADDRESS64', + 'LPBINDPTR', + 'LPBIND_OPTS', + 'LPBITMAP', + 'LPBITMAPCOREHEADER', + 'LPBITMAPCOREINFO', + 'LPBITMAPFILEHEADER', + 'LPBITMAPINFO', + 'LPBITMAPINFOHEADER', + 'LPCGUID', + 'LPCLSID', + 'LPCONTEXT32', + 'LPCONTEXT64', + 'LPCREATE_PROCESS_DEBUG_INFO', + 'LPCREATE_THREAD_DEBUG_INFO', + 'LPDEBUG_EVENT', + 'LPELEMDESC', + 'LPENUM_SERVICE_STATUSA', + 'LPENUM_SERVICE_STATUSW', + 'LPENUM_SERVICE_STATUS_PROCESSA', + 'LPENUM_SERVICE_STATUS_PROCESSW', + 'LPEVENTLOG_FULL_INFORMATION', + 'LPEXCEPTION_DEBUG_INFO', + 'LPEXIT_PROCESS_DEBUG_INFO', + 'LPEXIT_THREAD_DEBUG_INFO', + 'LPFILETIME', + 'LPFUNCDESC', + 'LPGROUP_INFO_0', + 'LPGROUP_INFO_1', + 'LPGROUP_USERS_INFO_0', + 'LPGROUP_USERS_INFO_1', + 'LPGUID', + 'LPIDLDESC', + 'LPINTERNET_BUFFERSA', + 'LPINTERNET_BUFFERSW', + 'LPJIT_DEBUG_INFO', + 'LPLOAD_DLL_DEBUG_INFO', + 'LPLOCALGROUP_INFO_0', + 'LPLOCALGROUP_INFO_1', + 'LPLOCALGROUP_MEMBERS_INFO_0', + 'LPLOCALGROUP_MEMBERS_INFO_1', + 'LPLOCALGROUP_MEMBERS_INFO_2', + 'LPLOCALGROUP_MEMBERS_INFO_3', + 'LPOSVERSIONINFOA', + 'LPOSVERSIONINFOEXA', + 'LPOSVERSIONINFOEXW', + 'LPOSVERSIONINFOW', + 'LPOUTPUT_DEBUG_STRING_INFO', + 'LPOVERLAPPED', + 'LPPARAMDESC', + 'LPPARAMDESCEX', + 'LPPROCESSENTRY32', + 'LPPROCESSENTRY32W', + 'LPPROCESS_INFORMATION', + 'LPQUERY_SERVICE_CONFIGA', + 'LPQUERY_SERVICE_CONFIGW', + 'LPRGBTRIPLE', + 'LPRIP_INFO', + 'LPSAFEARRAY', + 'LPSAFEARRAYBOUND', + 'LPSECURITY_ATTRIBUTES', + 'LPSERVICE_STATUS', + 'LPSERVICE_STATUS_PROCESS', + 'LPSERVICE_TABLE_ENTRYA', + 'LPSERVICE_TABLE_ENTRYW', + 'LPSHFILEOPSTRUCTA', + 'LPSTACKFRAME', + 'LPSTACKFRAME64', + 'LPSTACKFRAME_EX', + 'LPSTARTUPINFOA', + 'LPSTARTUPINFOEXA', + 'LPSTARTUPINFOEXW', + 'LPSTARTUPINFOW', + 'LPSYSTEMTIME', + 'LPTHREADENTRY32', + 'LPTIME_ZONE_INFORMATION', + 'LPTLIBATTR', + 'LPTYPEATTR', + 'LPUNLOAD_DLL_DEBUG_INFO', + 'LPUSER_INFO_0', + 'LPUSER_INFO_1', + 'LPUSER_INFO_10', + 'LPUSER_INFO_11', + 'LPUSER_INFO_2', + 'LPUSER_INFO_20', + 'LPUSER_INFO_23', + 'LPUSER_INFO_3', + 'LPVARDESC', + 'LPVARIANT', + 'LPVARIANTARG', + 'LPWIN32_FIND_DATAA', + 'LPWIN32_FIND_DATAW', + 'LPWNDCLASSEXA', + 'LPWNDCLASSEXW', + 'LPWSADATA32', + 'LPWSADATA64', + 'LPWSAPROTOCOLCHAIN', + 'LPWSAPROTOCOL_INFOA', + 'LPWSAPROTOCOL_INFOW', + 'LSA_OBJECT_ATTRIBUTES', + 'LSA_REFERENCED_DOMAIN_LIST', + 'LSA_TRANSLATED_NAME', + 'LSA_TRANSLATED_SID', + 'LSA_TRANSLATED_SID2', + 'LSA_TRUST_INFORMATION', + 'LSA_UNICODE_STRING', + 'LUID', + 'LUID_AND_ATTRIBUTES', + 'M128A', + 'MEMORY_BASIC_INFORMATION', + 'MEMORY_BASIC_INFORMATION32', + 'MEMORY_BASIC_INFORMATION64', + 'MEM_DES', + 'MEM_LARGE_DES', + 'MEM_LARGE_RANGE', + 'MEM_LARGE_RESOURCE', + 'MEM_RANGE', + 'MEM_RESOURCE', + 'MFCARD_DES', + 'MFCARD_RESOURCE', + 'MIB_IFROW', + 'MIB_IFTABLE', + 'MIB_IPADDRROW', + 'MIB_IPADDRROW_XP', + 'MIB_IPADDRTABLE', + 'MIB_IPNETROW', + 'MIB_IPNETTABLE', + 'MIB_TCP6ROW_OWNER_PID', + 'MIB_TCP6TABLE_OWNER_PID', + 'MIB_TCPROW', + 'MIB_TCPROW_OWNER_PID', + 'MIB_TCPTABLE_OWNER_PID', + 'MIB_UDP6ROW_OWNER_PID', + 'MIB_UDP6TABLE_OWNER_PID', + 'MIB_UDPROW_OWNER_PID', + 'MIB_UDPTABLE_OWNER_PID', + 'MIDL_XmitDefs_0001', + 'MODLOAD_DATA', + 'MULTI_QI', + 'Mem_Des_s', + 'Mem_Large_Des_s', + 'Mem_Large_Range_s', + 'Mem_Large_Resource_s', + 'Mem_Range_s', + 'Mem_Resource_s', + 'MfCard_Des_s', + 'MfCard_Resource_s', + 'NET_DISPLAY_GROUP', + 'NET_DISPLAY_MACHINE', + 'NET_DISPLAY_USER', + 'NPBITMAP', + 'NPRGBTRIPLE', + 'OBJECTS_AND_NAME_A', + 'OBJECTS_AND_NAME_W', + 'OBJECTS_AND_SID', + 'OBJECT_ATTRIBUTES', + 'OBJECT_DIRECTORY_INFORMATION', + 'OBJECT_TYPES_INFORMATION', + 'OPEN_VIRTUAL_DISK_PARAMETERS', + 'ORPCTHIS', + 'OSVERSIONINFOA', + 'OSVERSIONINFOEXA', + 'OSVERSIONINFOEXW', + 'OSVERSIONINFOW', + 'OUTPUT_DEBUG_STRING_INFO', + 'OVERLAPPED', + 'PACCESS_ALLOWED_ACE', + 'PACCESS_ALLOWED_CALLBACK_ACE', + 'PACCESS_ALLOWED_CALLBACK_OBJECT_ACE', + 'PACCESS_ALLOWED_OBJECT_ACE', + 'PACCESS_DENIED_ACE', + 'PACCESS_DENIED_CALLBACK_ACE', + 'PACCESS_DENIED_CALLBACK_OBJECT_ACE', + 'PACCESS_DENIED_OBJECT_ACE', + 'PACE_HEADER', + 'PACL', + 'PACL_REVISION_INFORMATION', + 'PACL_SIZE_INFORMATION', + 'PADDRINFOA', + 'PADDRINFOW', + 'PALPC_CONTEXT_ATTR', + 'PALPC_CONTEXT_ATTR32', + 'PALPC_CONTEXT_ATTR64', + 'PALPC_DATA_VIEW_ATTR', + 'PALPC_DATA_VIEW_ATTR32', + 'PALPC_DATA_VIEW_ATTR64', + 'PALPC_DIRECT_ATTR', + 'PALPC_DIRECT_ATTR32', + 'PALPC_DIRECT_ATTR64', + 'PALPC_HANDLE_ATTR', + 'PALPC_HANDLE_ATTR32', + 'PALPC_HANDLE_ATTR64', + 'PALPC_MESSAGE_ATTRIBUTES', + 'PALPC_PORT_ATTRIBUTES32', + 'PALPC_PORT_ATTRIBUTES64', + 'PALPC_SECURITY_ATTR', + 'PALPC_SECURITY_ATTR32', + 'PALPC_SECURITY_ATTR64', + 'PALPC_TOKEN_ATTR', + 'PALPC_WORK_ON_BEHALF_ATTR', + 'PANSI_STRING', + 'PAPI_SET_NAMESPACE_ARRAY', + 'PAPI_SET_NAMESPACE_ARRAY_V2', + 'PAPI_SET_NAMESPACE_ARRAY_V4', + 'PAPI_SET_NAMESPACE_ENTRY', + 'PAPI_SET_NAMESPACE_ENTRY_V2', + 'PAPI_SET_NAMESPACE_ENTRY_V4', + 'PAPI_SET_VALUE_ARRAY_V2', + 'PAPI_SET_VALUE_ENTRY', + 'PAPI_SET_VALUE_ENTRY_V2', + 'PARAMDESC', + 'PARAMDESCEX', + 'PATTACH_VIRTUAL_DISK_PARAMETERS', + 'PBITMAP', + 'PBITMAPCOREHEADER', + 'PBITMAPCOREINFO', + 'PBITMAPFILEHEADER', + 'PBITMAPINFO', + 'PBITMAPINFOHEADER', + 'PBUSNUMBER_DES', + 'PBUSNUMBER_RANGE', + 'PBUSNUMBER_RESOURCE', + 'PCANSI_STRING', + 'PCCARD_DES', + 'PCCARD_RESOURCE', + 'PCCERT_CHAIN_CONTEXT', + 'PCCERT_CHAIN_ELEMENT', + 'PCCERT_CONTEXT', + 'PCCERT_SIMPLE_CHAIN', + 'PCCERT_STRONG_SIGN_PARA', + 'PCCRL_CONTEXT', + 'PCCTL_CONTEXT', + 'PCERT_BLOB', + 'PCERT_CHAIN_CONTEXT', + 'PCERT_CHAIN_ELEMENT', + 'PCERT_CHAIN_ENGINE_CONFIG', + 'PCERT_CHAIN_PARA', + 'PCERT_CONTEXT', + 'PCERT_ENHKEY_USAGE', + 'PCERT_EXTENSION', + 'PCERT_EXTENSIONS', + 'PCERT_ID', + 'PCERT_INFO', + 'PCERT_ISSUER_SERIAL_NUMBER', + 'PCERT_KEY_CONTEXT', + 'PCERT_NAME_BLOB', + 'PCERT_PUBLIC_KEY_INFO', + 'PCERT_RDN_VALUE_BLOB', + 'PCERT_REVOCATION_CRL_INFO', + 'PCERT_REVOCATION_INFO', + 'PCERT_SIMPLE_CHAIN', + 'PCERT_STRONG_SIGN_PARA', + 'PCERT_STRONG_SIGN_SERIALIZED_INFO', + 'PCERT_TRUST_LIST_INFO', + 'PCERT_TRUST_STATUS', + 'PCERT_USAGE_MATCH', + 'PCEVENT_DESCRIPTOR', + 'PCIDLIST_ABSOLUTE', + 'PCLAIM_SECURITY_ATTRIBUTES_INFORMATION', + 'PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE', + 'PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE', + 'PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE', + 'PCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1', + 'PCLAIM_SECURITY_ATTRIBUTE_V1', + 'PCLIENT_ID', + 'PCLIENT_ID32', + 'PCLIENT_ID64', + 'PCMSG_CTRL_DECRYPT_PARA', + 'PCMSG_ENVELOPED_ENCODE_INFO', + 'PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO', + 'PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO', + 'PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO', + 'PCMSG_RECIPIENT_ENCODE_INFO', + 'PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO', + 'PCMSG_SIGNER_INFO', + 'PCMSG_STREAM_INFO', + 'PCONTEXT32', + 'PCONTEXT64', + 'PCRL_BLOB', + 'PCRL_CONTEXT', + 'PCRL_ENTRY', + 'PCRL_INFO', + 'PCRYPTCATATTRIBUTE', + 'PCRYPTCATMEMBER', + 'PCRYPTPROTECT_PROMPTSTRUCT', + 'PCRYPT_ALGORITHM_IDENTIFIER', + 'PCRYPT_ATTRIBUTE', + 'PCRYPT_ATTRIBUTES', + 'PCRYPT_ATTRIBUTE_TYPE_VALUE', + 'PCRYPT_ATTR_BLOB', + 'PCRYPT_BIT_BLOB', + 'PCRYPT_DATA_BLOB', + 'PCRYPT_DECRYPT_MESSAGE_PARA', + 'PCRYPT_DER_BLOB', + 'PCRYPT_DIGEST_BLOB', + 'PCRYPT_ENCODE_PARA', + 'PCRYPT_ENCRYPT_MESSAGE_PARA', + 'PCRYPT_HASH_BLOB', + 'PCRYPT_HASH_MESSAGE_PARA', + 'PCRYPT_INTEGER_BLOB', + 'PCRYPT_KEY_PROV_INFO', + 'PCRYPT_KEY_PROV_PARAM', + 'PCRYPT_KEY_VERIFY_MESSAGE_PARA', + 'PCRYPT_OBJID_BLOB', + 'PCRYPT_SIGN_MESSAGE_PARA', + 'PCRYPT_UINT_BLOB', + 'PCRYPT_VERIFY_MESSAGE_PARA', + 'PCS_DES', + 'PCS_RESOURCE', + 'PCTL_CONTEXT', + 'PCTL_ENTRY', + 'PCTL_INFO', + 'PCTL_USAGE', + 'PCURDIR', + 'PDATA_BLOB', + 'PDEBUG_BREAKPOINT_PARAMETERS', + 'PDEBUG_EXCEPTION_FILTER_PARAMETERS', + 'PDEBUG_LAST_EVENT_INFO_BREAKPOINT', + 'PDEBUG_LAST_EVENT_INFO_EXCEPTION', + 'PDEBUG_LAST_EVENT_INFO_EXIT_PROCESS', + 'PDEBUG_LAST_EVENT_INFO_EXIT_THREAD', + 'PDEBUG_LAST_EVENT_INFO_LOAD_MODULE', + 'PDEBUG_LAST_EVENT_INFO_SYSTEM_ERROR', + 'PDEBUG_LAST_EVENT_INFO_UNLOAD_MODULE', + 'PDEBUG_MODULE_AND_ID', + 'PDEBUG_MODULE_PARAMETERS', + 'PDEBUG_OFFSET_REGION', + 'PDEBUG_PROCESSOR_IDENTIFICATION_ALL', + 'PDEBUG_PROCESSOR_IDENTIFICATION_ALPHA', + 'PDEBUG_PROCESSOR_IDENTIFICATION_AMD64', + 'PDEBUG_PROCESSOR_IDENTIFICATION_ARM', + 'PDEBUG_PROCESSOR_IDENTIFICATION_IA64', + 'PDEBUG_PROCESSOR_IDENTIFICATION_X86', + 'PDEBUG_REGISTER_DESCRIPTION', + 'PDEBUG_SPECIFIC_FILTER_PARAMETERS', + 'PDEBUG_STACK_FRAME', + 'PDEBUG_SYMBOL_ENTRY', + 'PDEBUG_SYMBOL_PARAMETERS', + 'PDEBUG_SYMBOL_SOURCE_ENTRY', + 'PDEBUG_VALUE', + 'PDMA_DES', + 'PDMA_RANGE', + 'PDMA_RESOURCE', + 'PDNS_AAAA_DATA', + 'PDNS_ADDR', + 'PDNS_ADDR_ARRAY', + 'PDNS_ATMA_DATA', + 'PDNS_A_DATA', + 'PDNS_CACHE_ENTRY', + 'PDNS_DHCID_DATA', + 'PDNS_DNSKEY_DATA', + 'PDNS_DS_DATA', + 'PDNS_KEY_DATA', + 'PDNS_LOC_DATA', + 'PDNS_MINFO_DATAA', + 'PDNS_MINFO_DATAW', + 'PDNS_MX_DATAA', + 'PDNS_MX_DATAW', + 'PDNS_NAPTR_DATAA', + 'PDNS_NAPTR_DATAW', + 'PDNS_NSEC3PARAM_DATA', + 'PDNS_NSEC3_DATA', + 'PDNS_NSEC_DATAA', + 'PDNS_NSEC_DATAW', + 'PDNS_NULL_DATA', + 'PDNS_NXT_DATAA', + 'PDNS_NXT_DATAW', + 'PDNS_OPT_DATA', + 'PDNS_PTR_DATAA', + 'PDNS_PTR_DATAW', + 'PDNS_QUERY_CANCEL', + 'PDNS_QUERY_REQUEST', + 'PDNS_QUERY_RESULT', + 'PDNS_RECORDA', + 'PDNS_RECORDW', + 'PDNS_RRSIG_DATAA', + 'PDNS_RRSIG_DATAW', + 'PDNS_SIG_DATAA', + 'PDNS_SIG_DATAW', + 'PDNS_SOA_DATAA', + 'PDNS_SOA_DATAW', + 'PDNS_SRV_DATAA', + 'PDNS_SRV_DATAW', + 'PDNS_TKEY_DATAA', + 'PDNS_TKEY_DATAW', + 'PDNS_TLSA_DATA', + 'PDNS_TSIG_DATAA', + 'PDNS_TSIG_DATAW', + 'PDNS_TXT_DATAA', + 'PDNS_TXT_DATAW', + 'PDNS_UNKNOWN_DATA', + 'PDNS_WINSR_DATAA', + 'PDNS_WINSR_DATAW', + 'PDNS_WINS_DATA', + 'PDNS_WKS_DATA', + 'PEB', + 'PEB_LDR_DATA', + 'PENABLE_TRACE_PARAMETERS', + 'PETW_BUFFER_CONTEXT', + 'PEVENTLOGRECORD', + 'PEVENT_DATA_DESCRIPTOR', + 'PEVENT_DESCRIPTOR', + 'PEVENT_FILTER_DESCRIPTOR', + 'PEVENT_HEADER', + 'PEVENT_HEADER_EXTENDED_DATA_ITEM', + 'PEVENT_RECORD', + 'PEVENT_TRACE', + 'PEVENT_TRACE_HEADER', + 'PEVENT_TRACE_LOGFILEA', + 'PEVENT_TRACE_LOGFILEW', + 'PEVENT_TRACE_PROPERTIES', + 'PEVT_VARIANT', + 'PEXCEPTION_POINTERS32', + 'PEXCEPTION_POINTERS64', + 'PEXCEPTION_RECORD', + 'PEXCEPTION_RECORD32', + 'PEXCEPTION_RECORD64', + 'PEXPLICIT_ACCESSW', + 'PEXPLICIT_ACCESS_W', + 'PFILETIME', + 'PFILE_ACCESS_INFORMATION', + 'PFILE_ALIGNMENT_INFORMATION', + 'PFILE_ALL_INFORMATION', + 'PFILE_ATTRIBUTE_TAG_INFORMATION', + 'PFILE_BASIC_INFORMATION', + 'PFILE_DISPOSITION_INFORMATION', + 'PFILE_EA_INFORMATION', + 'PFILE_FS_ATTRIBUTE_INFORMATION', + 'PFILE_FS_CONTROL_INFORMATION', + 'PFILE_FS_DEVICE_INFORMATION', + 'PFILE_FS_DRIVER_PATH_INFORMATION', + 'PFILE_FS_FULL_SIZE_INFORMATION', + 'PFILE_FS_LABEL_INFORMATION', + 'PFILE_FS_OBJECTID_INFORMATION', + 'PFILE_FS_SECTOR_SIZE_INFORMATION', + 'PFILE_FS_SIZE_INFORMATION', + 'PFILE_FS_VOLUME_INFORMATION', + 'PFILE_FULL_EA_INFORMATION', + 'PFILE_GET_EA_INFORMATION', + 'PFILE_INTERNAL_INFORMATION', + 'PFILE_IO_PRIORITY_HINT_INFORMATION', + 'PFILE_IS_REMOTE_DEVICE_INFORMATION', + 'PFILE_LINK_INFORMATION', + 'PFILE_MODE_INFORMATION', + 'PFILE_NAME_INFORMATION', + 'PFILE_NETWORK_OPEN_INFORMATION', + 'PFILE_NOTIFY_EXTENDED_INFORMATION', + 'PFILE_NOTIFY_INFORMATION', + 'PFILE_POSITION_INFORMATION', + 'PFILE_RENAME_INFORMATION', + 'PFILE_STANDARD_INFORMATION', + 'PFILE_STREAM_INFORMATION', + 'PGENERIC_MAPPING', + 'PGROUP_INFO_0', + 'PGROUP_INFO_1', + 'PGROUP_INFO_2', + 'PGROUP_INFO_3', + 'PGROUP_USERS_INFO_0', + 'PGROUP_USERS_INFO_1', + 'PIDLIST_ABSOLUTE', + 'PIMAGEHLP_CBA_EVENT', + 'PIMAGEHLP_CBA_EVENTW', + 'PIMAGEHLP_CBA_READ_MEMORY', + 'PIMAGEHLP_DEFERRED_SYMBOL_LOAD', + 'PIMAGEHLP_DEFERRED_SYMBOL_LOAD64', + 'PIMAGEHLP_DEFERRED_SYMBOL_LOADW64', + 'PIMAGEHLP_DUPLICATE_SYMBOL', + 'PIMAGEHLP_DUPLICATE_SYMBOL64', + 'PIMAGEHLP_MODULE64', + 'PIMAGEHLP_MODULEW64', + 'PIMAGEHLP_STACK_FRAME', + 'PIMAGEHLP_SYMBOL', + 'PIMAGEHLP_SYMBOL64', + 'PIMAGEHLP_SYMBOLW64', + 'PIMAGE_BASE_RELOCATION', + 'PIMAGE_DATA_DIRECTORY', + 'PIMAGE_DEBUG_DIRECTORY', + 'PIMAGE_EXPORT_DIRECTORY', + 'PIMAGE_FILE_HEADER', + 'PIMAGE_IMPORT_BY_NAME', + 'PIMAGE_IMPORT_DESCRIPTOR', + 'PIMAGE_NT_HEADERS32', + 'PIMAGE_NT_HEADERS64', + 'PIMAGE_OPTIONAL_HEADER32', + 'PIMAGE_OPTIONAL_HEADER64', + 'PIMAGE_SECTION_HEADER', + 'PIO_DES', + 'PIO_RANGE', + 'PIO_RESOURCE', + 'PIO_STATUS_BLOCK', + 'PIP6_ADDRESS', + 'PIP_ADAPTER_INDEX_MAP', + 'PIP_ADAPTER_INFO', + 'PIP_ADDRESS_STRING', + 'PIP_ADDR_STRING', + 'PIP_INTERFACE_INFO', + 'PIP_MASK_STRING', + 'PIP_PER_ADAPTER_INFO', + 'PIP_PER_ADAPTER_INFO_W2KSP1', + 'PIRQ_DES_32', + 'PIRQ_DES_64', + 'PIRQ_RANGE', + 'PIRQ_RESOURCE_32', + 'PIRQ_RESOURCE_64', + 'PISECURITY_DESCRIPTOR', + 'PKDHELP', + 'PKDHELP64', + 'PKEY_VALUE_BASIC_INFORMATION', + 'PKEY_VALUE_FULL_INFORMATION', + 'PKEY_VALUE_PARTIAL_INFORMATION', + 'PLDR_DATA_TABLE_ENTRY', + 'PLIST_ENTRY', + 'PLOCALGROUP_INFO_0', + 'PLOCALGROUP_INFO_1', + 'PLOCALGROUP_MEMBERS_INFO_0', + 'PLOCALGROUP_MEMBERS_INFO_1', + 'PLOCALGROUP_MEMBERS_INFO_2', + 'PLOCALGROUP_MEMBERS_INFO_3', + 'PLSA_OBJECT_ATTRIBUTES', + 'PLSA_REFERENCED_DOMAIN_LIST', + 'PLSA_TRANSLATED_NAME', + 'PLSA_TRANSLATED_SID', + 'PLSA_TRANSLATED_SID2', + 'PLSA_TRUST_INFORMATION', + 'PLSA_UNICODE_STRING', + 'PLUID', + 'PLUID_AND_ATTRIBUTES', + 'PM128A', + 'PMEMORY_BASIC_INFORMATION', + 'PMEMORY_BASIC_INFORMATION32', + 'PMEMORY_BASIC_INFORMATION64', + 'PMEM_DES', + 'PMEM_LARGE_DES', + 'PMEM_LARGE_RANGE', + 'PMEM_LARGE_RESOURCE', + 'PMEM_RANGE', + 'PMEM_RESOURCE', + 'PMFCARD_DES', + 'PMFCARD_RESOURCE', + 'PMIB_IFROW', + 'PMIB_IFTABLE', + 'PMIB_IPADDRROW_XP', + 'PMIB_IPADDRTABLE', + 'PMIB_IPNETROW', + 'PMIB_IPNETTABLE', + 'PMIB_TCP6ROW_OWNER_PID', + 'PMIB_TCP6TABLE_OWNER_PID', + 'PMIB_TCPROW', + 'PMIB_TCPROW_OWNER_PID', + 'PMIB_TCPTABLE_OWNER_PID', + 'PMIB_UDP6ROW_OWNER_PID', + 'PMIB_UDP6TABLE_OWNER_PID', + 'PMIB_UDPROW_OWNER_PID', + 'PMIB_UDPTABLE_OWNER_PID', + 'PMODLOAD_DATA', + 'PNET_DISPLAY_GROUP', + 'PNET_DISPLAY_MACHINE', + 'PNET_DISPLAY_USER', + 'POBJECTS_AND_NAME_A', + 'POBJECTS_AND_NAME_W', + 'POBJECTS_AND_SID', + 'POBJECT_ATTRIBUTES', + 'POBJECT_DIRECTORY_INFORMATION', + 'POBJECT_TYPES_INFORMATION', + 'POLICY_ACCOUNT_DOMAIN_INFO', + 'POLICY_LSA_SERVER_ROLE_INFO', + 'POLICY_PRIMARY_DOMAIN_INFO', + 'POPEN_VIRTUAL_DISK_PARAMETERS', + 'PORT_MESSAGE32', + 'PORT_MESSAGE64', + 'PORT_MESSAGE_TMP_UNION', + 'PORT_VIEW', + 'POSVERSIONINFOA', + 'POSVERSIONINFOEXA', + 'POSVERSIONINFOEXW', + 'POSVERSIONINFOW', + 'PPCCARD_DES', + 'PPCCARD_RESOURCE', + 'PPEB', + 'PPEB_LDR_DATA', + 'PPOLICY_ACCOUNT_DOMAIN_INFO', + 'PPOLICY_LSA_SERVER_ROLE_INFO', + 'PPOLICY_PRIMARY_DOMAIN_INFO', + 'PPORT_MESSAGE32', + 'PPORT_MESSAGE64', + 'PPORT_VIEW', + 'PPRIVILEGE_SET', + 'PPROCESSENTRY32', + 'PPROCESSENTRY32W', + 'PPROCESS_BASIC_INFORMATION', + 'PPROCESS_INFORMATION', + 'PPROCESS_INSTRUMENTATION_CALLBACK_INFORMATION', + 'PPROCESS_MEMORY_COUNTERS', + 'PPROCESS_MITIGATION_ASLR_POLICY', + 'PPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY', + 'PPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY', + 'PPROCESS_MITIGATION_DEP_POLICY', + 'PPROCESS_MITIGATION_DYNAMIC_CODE_POLICY', + 'PPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY', + 'PPROCESS_MITIGATION_IMAGE_LOAD_POLICY', + 'PPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY', + 'PPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY', + 'PPROVIDER_ENUMERATION_INFO', + 'PPSAPI_WORKING_SET_BLOCK', + 'PPSAPI_WORKING_SET_BLOCK32', + 'PPSAPI_WORKING_SET_BLOCK64', + 'PPSAPI_WORKING_SET_EX_BLOCK', + 'PPSAPI_WORKING_SET_EX_BLOCK32', + 'PPSAPI_WORKING_SET_EX_BLOCK64', + 'PPSAPI_WORKING_SET_EX_INFORMATION', + 'PPSAPI_WORKING_SET_EX_INFORMATION32', + 'PPSAPI_WORKING_SET_EX_INFORMATION64', + 'PPSAPI_WORKING_SET_INFORMATION', + 'PPSAPI_WORKING_SET_INFORMATION32', + 'PPSAPI_WORKING_SET_INFORMATION64', + 'PPUBLIC_OBJECT_BASIC_INFORMATION', + 'PPUBLIC_OBJECT_TYPE_INFORMATION', + 'PREMOTE_PORT_VIEW', + 'PRGBTRIPLE', + 'PRIVILEGE_SET', + 'PRLIST_ENTRY', + 'PROCESSENTRY32', + 'PROCESSENTRY32W', + 'PROCESS_BASIC_INFORMATION', + 'PROCESS_INFORMATION', + 'PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION', + 'PROCESS_MEMORY_COUNTERS', + 'PROCESS_MEMORY_COUNTERS_EX', + 'PROCESS_MITIGATION_ASLR_POLICY', + 'PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY', + 'PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY', + 'PROCESS_MITIGATION_DEP_POLICY', + 'PROCESS_MITIGATION_DYNAMIC_CODE_POLICY', + 'PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY', + 'PROCESS_MITIGATION_IMAGE_LOAD_POLICY', + 'PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY', + 'PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY', + 'PROPERTYKEY', + 'PROVIDER_ENUMERATION_INFO', + 'PRTLP_CURDIR_REF', + 'PRTL_DRIVE_LETTER_CURDIR', + 'PRTL_OSVERSIONINFOEXW', + 'PRTL_OSVERSIONINFOW', + 'PRTL_RELATIVE_NAME_U', + 'PRTL_UNLOAD_EVENT_TRACE', + 'PRTL_UNLOAD_EVENT_TRACE32', + 'PRTL_UNLOAD_EVENT_TRACE64', + 'PRTL_USER_PROCESS_PARAMETERS', + 'PSAPI_WORKING_SET_BLOCK', + 'PSAPI_WORKING_SET_BLOCK32', + 'PSAPI_WORKING_SET_BLOCK64', + 'PSAPI_WORKING_SET_EX_BLOCK', + 'PSAPI_WORKING_SET_EX_BLOCK32', + 'PSAPI_WORKING_SET_EX_BLOCK64', + 'PSAPI_WORKING_SET_EX_INFORMATION', + 'PSAPI_WORKING_SET_EX_INFORMATION32', + 'PSAPI_WORKING_SET_EX_INFORMATION64', + 'PSAPI_WORKING_SET_INFORMATION', + 'PSAPI_WORKING_SET_INFORMATION32', + 'PSAPI_WORKING_SET_INFORMATION64', + 'PSECURITY_ATTRIBUTES', + 'PSECURITY_QUALITY_OF_SERVICE', + 'PSID_AND_ATTRIBUTES', + 'PSID_AND_ATTRIBUTES_HASH', + 'PSID_IDENTIFIER_AUTHORITY', + 'PSIP_INDIRECT_DATA', + 'PSOLE_AUTHENTICATION_SERVICE', + 'PSPC_INDIRECT_DATA_CONTENT', + 'PSPC_LINK', + 'PSPC_PE_IMAGE_DATA', + 'PSPC_SERIALIZED_OBJECT', + 'PSPC_SP_OPUS_INFO', + 'PSP_DEVICE_INTERFACE_DATA', + 'PSP_DEVINFO_DATA', + 'PSTRING', + 'PSTRUCT_PLAINTEXTKEYBLOB', + 'PSYMBOL_INFO', + 'PSYMBOL_INFOW', + 'PSYMSRV_INDEX_INFO', + 'PSYMSRV_INDEX_INFOW', + 'PSYSTEMTIME', + 'PSYSTEM_ALARM_CALLBACK_ACE', + 'PSYSTEM_ALARM_CALLBACK_OBJECT_ACE', + 'PSYSTEM_ALARM_OBJECT_ACE', + 'PSYSTEM_AUDIT_CALLBACK_ACE', + 'PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE', + 'PSYSTEM_AUDIT_OBJECT_ACE', + 'PSYSTEM_BASIC_INFORMATION', + 'PSYSTEM_HANDLE_INFORMATION', + 'PSYSTEM_HANDLE_INFORMATION64', + 'PSYSTEM_MANDATORY_LABEL_ACE', + 'PSYSTEM_MODULE32', + 'PSYSTEM_MODULE64', + 'PSYSTEM_MODULE_INFORMATION32', + 'PSYSTEM_MODULE_INFORMATION64', + 'PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION', + 'PSYSTEM_PROCESS_ID_INFORMATION', + 'PSYSTEM_PROCESS_INFORMATION', + 'PSYSTEM_PROCESS_TRUST_LABEL_ACE', + 'PSYSTEM_REGISTRY_QUOTA_INFORMATION', + 'PSYSTEM_RESOURCE_ATTRIBUTE_ACE', + 'PSYSTEM_SCOPED_POLICY_ID_ACE', + 'PSYSTEM_VERIFIER_INFORMATION', + 'PTHREADENTRY32', + 'PTHREAD_BASIC_INFORMATION', + 'PTIME_ZONE_INFORMATION', + 'PTOKEN_ACCESS_INFORMATION', + 'PTOKEN_APPCONTAINER_INFORMATION', + 'PTOKEN_DEFAULT_DACL', + 'PTOKEN_ELEVATION', + 'PTOKEN_GROUPS', + 'PTOKEN_GROUPS_AND_PRIVILEGES', + 'PTOKEN_LINKED_TOKEN', + 'PTOKEN_MANDATORY_LABEL', + 'PTOKEN_MANDATORY_POLICY', + 'PTOKEN_ORIGIN', + 'PTOKEN_OWNER', + 'PTOKEN_PRIMARY_GROUP', + 'PTOKEN_PRIVILEGES', + 'PTOKEN_SECURITY_ATTRIBUTES_INFORMATION', + 'PTOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE', + 'PTOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE', + 'PTOKEN_SECURITY_ATTRIBUTE_V1', + 'PTOKEN_SOURCE', + 'PTOKEN_STATISTICS', + 'PTOKEN_USER', + 'PTRACE_ENABLE_INFO', + 'PTRACE_GUID_INFO', + 'PTRACE_GUID_REGISTRATION', + 'PTRACE_LOGFILE_HEADER', + 'PTRACE_PROVIDER_INSTANCE_INFO', + 'PTRUSTEEA', + 'PTRUSTEEW', + 'PTRUSTEE_A', + 'PTRUSTEE_W', + 'PUBLICKEYSTRUC', + 'PUBLIC_OBJECT_BASIC_INFORMATION', + 'PUBLIC_OBJECT_TYPE_INFORMATION', + 'PUNICODE_STRING', + 'PUSER_INFO_0', + 'PUSER_INFO_1', + 'PUSER_INFO_10', + 'PUSER_INFO_11', + 'PUSER_INFO_2', + 'PUSER_INFO_20', + 'PUSER_INFO_23', + 'PUSER_INFO_3', + 'PVIRTUAL_STORAGE_TYPE', + 'PWIN32_FIND_DATAA', + 'PWIN32_FIND_DATAW', + 'PWINTRUST_BLOB_INFO', + 'PWINTRUST_CATALOG_INFO', + 'PWINTRUST_CERT_INFO', + 'PWINTRUST_DATA', + 'PWINTRUST_FILE_INFO', + 'PWINTRUST_SGNR_INFO', + 'PWNDCLASSEXA', + 'PWNDCLASSEXW', + 'PWNODE_HEADER', + 'PWOW64_CONTEXT', + 'PXSAVE_FORMAT_32', + 'PXSAVE_FORMAT_64', + 'PcCard_Des_s', + 'PcCard_Resource_s', + 'QUERY_SERVICE_CONFIGA', + 'QUERY_SERVICE_CONFIGW', + 'REFCLSID', + 'REFGUID', + 'REFIID', + 'REFPROPERTYKEY', + 'REMOTE_PORT_VIEW', + 'RGBQUAD', + 'RGBTRIPLE', + 'RIP_INFO', + 'RPC_IF_ID', + 'RTLP_CURDIR_REF', + 'RTL_DRIVE_LETTER_CURDIR', + 'RTL_OSVERSIONINFOEXW', + 'RTL_OSVERSIONINFOW', + 'RTL_RELATIVE_NAME_U', + 'RTL_UNLOAD_EVENT_TRACE', + 'RTL_UNLOAD_EVENT_TRACE32', + 'RTL_UNLOAD_EVENT_TRACE64', + 'RTL_USER_PROCESS_PARAMETERS', + 'SAFEARRAY', + 'SAFEARRAYBOUND', + 'SECURITY_ATTRIBUTES', + 'SECURITY_DESCRIPTOR', + 'SECURITY_QUALITY_OF_SERVICE', + 'SERVICE_STATUS', + 'SERVICE_STATUS_PROCESS', + 'SERVICE_TABLE_ENTRYA', + 'SERVICE_TABLE_ENTRYW', + 'SHFILEOPSTRUCTA', + 'SHITEMID', + 'SID_AND_ATTRIBUTES', + 'SID_AND_ATTRIBUTES_HASH', + 'SID_IDENTIFIER_AUTHORITY', + 'SIP_INDIRECT_DATA', + 'SIP_INDIRECT_DATA_', + 'SOLE_AUTHENTICATION_SERVICE', + 'SPC_INDIRECT_DATA_CONTENT', + 'SPC_LINK', + 'SPC_LINK_', + 'SPC_PE_IMAGE_DATA', + 'SPC_SERIALIZED_OBJECT', + 'SPC_SP_OPUS_INFO', + 'SP_DEVICE_INTERFACE_DATA', + 'SP_DEVINFO_DATA', + 'STACKFRAME', + 'STACKFRAME64', + 'STACKFRAME_EX', + 'STARTUPINFOA', + 'STARTUPINFOEXA', + 'STARTUPINFOEXW', + 'STARTUPINFOW', + 'STATSTG', + 'STRING', + 'STRUCT_PLAINTEXTKEYBLOB', + 'SYMBOL_INFO', + 'SYMBOL_INFOW', + 'SYMSRV_INDEX_INFO', + 'SYMSRV_INDEX_INFOW', + 'SYSTEMTIME', + 'SYSTEM_ALARM_ACE', + 'SYSTEM_ALARM_CALLBACK_ACE', + 'SYSTEM_ALARM_CALLBACK_OBJECT_ACE', + 'SYSTEM_ALARM_OBJECT_ACE', + 'SYSTEM_AUDIT_ACE', + 'SYSTEM_AUDIT_CALLBACK_ACE', + 'SYSTEM_AUDIT_CALLBACK_OBJECT_ACE', + 'SYSTEM_AUDIT_OBJECT_ACE', + 'SYSTEM_BASIC_INFORMATION', + 'SYSTEM_HANDLE', + 'SYSTEM_HANDLE64', + 'SYSTEM_HANDLE_INFORMATION', + 'SYSTEM_HANDLE_INFORMATION64', + 'SYSTEM_MANDATORY_LABEL_ACE', + 'SYSTEM_MODULE32', + 'SYSTEM_MODULE64', + 'SYSTEM_MODULE_INFORMATION32', + 'SYSTEM_MODULE_INFORMATION64', + 'SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION', + 'SYSTEM_PROCESS_ID_INFORMATION', + 'SYSTEM_PROCESS_INFORMATION', + 'SYSTEM_PROCESS_TRUST_LABEL_ACE', + 'SYSTEM_REGISTRY_QUOTA_INFORMATION', + 'SYSTEM_RESOURCE_ATTRIBUTE_ACE', + 'SYSTEM_SCOPED_POLICY_ID_ACE', + 'SYSTEM_VERIFIER_INFORMATION', + 'THREADENTRY32', + 'THREAD_BASIC_INFORMATION', + 'TIME_ZONE_INFORMATION', + 'TLIBATTR', + 'TMPUNION_CERT_ID', + 'TMPUNION_CMSG_CTRL_DECRYPT_PARA', + 'TMPUNION_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO', + 'TMPUNION_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO', + 'TMP_CERT_STRONG_SIGN_PARA_UNION_TYPE', + 'TMP_CMSG_RECIPIENT_ENCODE_INFO_UNION', + 'TMP_CONTEXT64_SUBUNION', + 'TMP_DUMMYSTRUCTNAME', + 'TMP_SPC_LINK_UNION', + 'TMP_TYPEDESC_UNION', + 'TMP_UNION_DEBUG_INFO', + 'TMP_UNION_IO_STATUS_BLOCK', + 'TMP_VARDESC_UNION', + 'TMP_WINTRUST_UNION_TYPE', + 'TMP_lowmid_union', + 'TMP_signscale_union', + 'TOKEN_ACCESS_INFORMATION', + 'TOKEN_APPCONTAINER_INFORMATION', + 'TOKEN_DEFAULT_DACL', + 'TOKEN_ELEVATION', + 'TOKEN_GROUPS', + 'TOKEN_GROUPS_AND_PRIVILEGES', + 'TOKEN_LINKED_TOKEN', + 'TOKEN_MANDATORY_LABEL', + 'TOKEN_MANDATORY_POLICY', + 'TOKEN_ORIGIN', + 'TOKEN_OWNER', + 'TOKEN_PRIMARY_GROUP', + 'TOKEN_PRIVILEGES', + 'TOKEN_SECURITY_ATTRIBUTES_INFORMATION', + 'TOKEN_SECURITY_ATTRIBUTES_INFORMATION_UNION', + 'TOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE', + 'TOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE', + 'TOKEN_SECURITY_ATTRIBUTE_V1', + 'TOKEN_SECURITY_ATTRIBUTE_V1_UNION', + 'TOKEN_SOURCE', + 'TOKEN_STATISTICS', + 'TOKEN_USER', + 'TRACE_ENABLE_INFO', + 'TRACE_GUID_INFO', + 'TRACE_GUID_REGISTRATION', + 'TRACE_LOGFILE_HEADER', + 'TRACE_PROVIDER_INFO', + 'TRACE_PROVIDER_INSTANCE_INFO', + 'TRUSTEEA', + 'TRUSTEEW', + 'TRUSTEE_A', + 'TRUSTEE_W', + 'TYPEATTR', + 'TYPEDESC', + 'UNICODE_STRING', + 'UNLOAD_DLL_DEBUG_INFO', + 'USER_INFO_0', + 'USER_INFO_1', + 'USER_INFO_10', + 'USER_INFO_11', + 'USER_INFO_2', + 'USER_INFO_20', + 'USER_INFO_23', + 'USER_INFO_3', + 'VARDESC', + 'VARIANT', + 'VARIANTARG', + 'VIRTUAL_STORAGE_TYPE', + 'VS_FIXEDFILEINFO', + 'WIN32_FIND_DATAA', + 'WIN32_FIND_DATAW', + 'WINTRUST_BLOB_INFO', + 'WINTRUST_BLOB_INFO_', + 'WINTRUST_CATALOG_INFO', + 'WINTRUST_CATALOG_INFO_', + 'WINTRUST_CERT_INFO', + 'WINTRUST_CERT_INFO_', + 'WINTRUST_DATA', + 'WINTRUST_FILE_INFO', + 'WINTRUST_FILE_INFO_', + 'WINTRUST_SGNR_INFO', + 'WINTRUST_SGNR_INFO_', + 'WNDCLASSEXA', + 'WNDCLASSEXW', + 'WNODE_HEADER', + 'WOW64_CONTEXT', + 'WOW64_FLOATING_SAVE_AREA', + 'WSADATA32', + 'WSADATA64', + 'WSAData32', + 'WSAData64', + 'WSAPROTOCOLCHAIN', + 'WSAPROTOCOL_INFOA', + 'WSAPROTOCOL_INFOW', + 'XSAVE_FORMAT_32', + 'XSAVE_FORMAT_64', + '_ACCESS_ALLOWED_ACE', + '_ACCESS_ALLOWED_CALLBACK_ACE', + '_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE', + '_ACCESS_ALLOWED_OBJECT_ACE', + '_ACCESS_DENIED_ACE', + '_ACCESS_DENIED_CALLBACK_ACE', + '_ACCESS_DENIED_CALLBACK_OBJECT_ACE', + '_ACCESS_DENIED_OBJECT_ACE', + '_ACE_HEADER', + '_ACL', + '_ACL_REVISION_INFORMATION', + '_ACL_SIZE_INFORMATION', + '_ALPC_CONTEXT_ATTR', + '_ALPC_CONTEXT_ATTR32', + '_ALPC_CONTEXT_ATTR64', + '_ALPC_DATA_VIEW_ATTR', + '_ALPC_DATA_VIEW_ATTR32', + '_ALPC_DATA_VIEW_ATTR64', + '_ALPC_DIRECT_ATTR', + '_ALPC_DIRECT_ATTR32', + '_ALPC_DIRECT_ATTR64', + '_ALPC_HANDLE_ATTR', + '_ALPC_HANDLE_ATTR32', + '_ALPC_HANDLE_ATTR64', + '_ALPC_MESSAGE_ATTRIBUTES', + '_ALPC_PORT_ATTRIBUTES32', + '_ALPC_PORT_ATTRIBUTES64', + '_ALPC_SECURITY_ATTR', + '_ALPC_SECURITY_ATTR32', + '_ALPC_SECURITY_ATTR64', + '_ALPC_SERVER_INFORMATION_TMP_IN', + '_ALPC_SERVER_INFORMATION_TMP_OUT', + '_ALPC_TOKEN_ATTR', + '_ALPC_WORK_ON_BEHALF_ATTR', + '_ANON_PEB_SYSTEM_DEPENDENT_02', + '_ANON_PEB_SYSTEM_DEPENDENT_03', + '_ANON_PEB_SYSTEM_DEPENDENT_06', + '_ANON_PEB_SYSTEM_DEPENDENT_07', + '_ANON_PEB_UNION_1', + '_ANON_PEB_UNION_2', + '_ANON_TMP_variant_sub_union', + '_API_SET_NAMESPACE_ARRAY', + '_API_SET_NAMESPACE_ARRAY_V2', + '_API_SET_NAMESPACE_ARRAY_V4', + '_API_SET_NAMESPACE_ENTRY', + '_API_SET_NAMESPACE_ENTRY_V2', + '_API_SET_NAMESPACE_ENTRY_V4', + '_API_SET_NAMESPACE_ENTRY_V6', + '_API_SET_NAMESPACE_V6', + '_API_SET_VALUE_ARRAY_V2', + '_API_SET_VALUE_ARRAY_V4', + '_API_SET_VALUE_ENTRY', + '_API_SET_VALUE_ENTRY_V2', + '_ATTACH_VIRTUAL_DISK_PARAMETERS', + '_BG_FILE_INFO', + '_BG_FILE_PROGRESS', + '_BG_FILE_RANGE', + '_BG_JOB_PROGRESS', + '_BG_JOB_REPLY_PROGRESS', + '_BG_JOB_TIMES', + '_CALLFRAMEINFO', + '_CALLFRAMEPARAMINFO', + '_CALLFRAME_MARSHALCONTEXT', + '_CERT_CHAIN_CONTEXT', + '_CERT_CHAIN_ELEMENT', + '_CERT_CHAIN_ENGINE_CONFIG', + '_CERT_CHAIN_PARA', + '_CERT_CONTEXT', + '_CERT_EXTENSION', + '_CERT_EXTENSIONS', + '_CERT_ID', + '_CERT_INFO', + '_CERT_ISSUER_SERIAL_NUMBER', + '_CERT_KEY_CONTEXT', + '_CERT_PUBLIC_KEY_INFO', + '_CERT_REVOCATION_CRL_INFO', + '_CERT_REVOCATION_INFO', + '_CERT_SIMPLE_CHAIN', + '_CERT_STRONG_SIGN_PARA', + '_CERT_STRONG_SIGN_SERIALIZED_INFO', + '_CERT_TRUST_LIST_INFO', + '_CERT_TRUST_STATUS', + '_CERT_USAGE_MATCH', + '_CLAIM_SECURITY_ATTRIBUTES_INFORMATION', + '_CLAIM_SECURITY_ATTRIBUTES_INFORMATION_UNION', + '_CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE', + '_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE', + '_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE', + '_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1', + '_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_UNION', + '_CLAIM_SECURITY_ATTRIBUTE_V1', + '_CLAIM_SECURITY_ATTRIBUTE_V1_UNION', + '_CLIENT_ID', + '_CLIENT_ID32', + '_CLIENT_ID64', + '_CMSG_CTRL_DECRYPT_PARA', + '_CMSG_ENVELOPED_ENCODE_INFO', + '_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO', + '_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO', + '_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO', + '_CMSG_RECIPIENT_ENCODE_INFO', + '_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO', + '_CMSG_SIGNER_INFO', + '_CMSG_STREAM_INFO', + '_COAUTHIDENTITY', + '_COAUTHINFO', + '_CONTEXT32', + '_CONTEXT64', + '_COSERVERINFO', + '_CREATE_PROCESS_DEBUG_INFO', + '_CREATE_THREAD_DEBUG_INFO', + '_CRL_CONTEXT', + '_CRL_ENTRY', + '_CRL_INFO', + '_CRYPTOAPI_BLOB', + '_CRYPTPROTECT_PROMPTSTRUCT', + '_CRYPT_ALGORITHM_IDENTIFIER', + '_CRYPT_ATTRIBUTE', + '_CRYPT_ATTRIBUTES', + '_CRYPT_ATTRIBUTE_TYPE_VALUE', + '_CRYPT_BIT_BLOB', + '_CRYPT_DECRYPT_MESSAGE_PARA', + '_CRYPT_ENCODE_PARA', + '_CRYPT_ENCRYPT_MESSAGE_PARA', + '_CRYPT_HASH_MESSAGE_PARA', + '_CRYPT_KEY_PROV_INFO', + '_CRYPT_KEY_PROV_PARAM', + '_CRYPT_KEY_VERIFY_MESSAGE_PARA', + '_CRYPT_SIGN_MESSAGE_PARA', + '_CRYPT_VERIFY_MESSAGE_PARA', + '_CTL_CONTEXT', + '_CTL_ENTRY', + '_CTL_INFO', + '_CTL_USAGE', + '_CURDIR', + '_DEBUG_BREAKPOINT_PARAMETERS', + '_DEBUG_EVENT', + '_DEBUG_EXCEPTION_FILTER_PARAMETERS', + '_DEBUG_LAST_EVENT_INFO_BREAKPOINT', + '_DEBUG_LAST_EVENT_INFO_EXCEPTION', + '_DEBUG_LAST_EVENT_INFO_EXIT_PROCESS', + '_DEBUG_LAST_EVENT_INFO_EXIT_THREAD', + '_DEBUG_LAST_EVENT_INFO_LOAD_MODULE', + '_DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR', + '_DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE', + '_DEBUG_MODULE_AND_ID', + '_DEBUG_MODULE_PARAMETERS', + '_DEBUG_OFFSET_REGION', + '_DEBUG_PROCESSOR_IDENTIFICATION_ALL', + '_DEBUG_PROCESSOR_IDENTIFICATION_ALPHA', + '_DEBUG_PROCESSOR_IDENTIFICATION_AMD64', + '_DEBUG_PROCESSOR_IDENTIFICATION_ARM', + '_DEBUG_PROCESSOR_IDENTIFICATION_IA64', + '_DEBUG_PROCESSOR_IDENTIFICATION_X86', + '_DEBUG_REGISTER_DESCRIPTION', + '_DEBUG_SPECIFIC_FILTER_PARAMETERS', + '_DEBUG_STACK_FRAME', + '_DEBUG_SYMBOL_ENTRY', + '_DEBUG_SYMBOL_PARAMETERS', + '_DEBUG_SYMBOL_SOURCE_ENTRY', + '_DEBUG_VALUE', + '_DEBUG_VALUE_TMP_SUBSTRUCT1', + '_DEBUG_VALUE_TMP_SUBSTRUCT2', + '_DEBUG_VALUE_TMP_SUBSTRUCT3', + '_DEBUG_VALUE_TMP_UNION', + '_DNS_CACHE_ENTRY', + '_DNS_QUERY_CANCEL', + '_DNS_QUERY_REQUEST', + '_DNS_QUERY_RESULT', + '_DnsAddr', + '_DnsAddrArray', + '_DnsRecordA', + '_DnsRecordFlags', + '_DnsRecordW', + '_ENABLE_TRACE_PARAMETERS', + '_ENUM_SERVICE_STATUSA', + '_ENUM_SERVICE_STATUSW', + '_ENUM_SERVICE_STATUS_PROCESSA', + '_ENUM_SERVICE_STATUS_PROCESSW', + '_ETW_BUFFER_CONTEXT', + '_EVENTLOGRECORD', + '_EVENTLOG_FULL_INFORMATION', + '_EVENT_DATA_DESCRIPTOR', + '_EVENT_DESCRIPTOR', + '_EVENT_FILTER_DESCRIPTOR', + '_EVENT_HEADER', + '_EVENT_HEADER_EXTENDED_DATA_ITEM', + '_EVENT_RECORD', + '_EVENT_TRACE', + '_EVENT_TRACE_HEADER', + '_EVENT_TRACE_LOGFILEA', + '_EVENT_TRACE_LOGFILEW', + '_EVENT_TRACE_PROPERTIES', + '_EVT_RPC_LOGIN', + '_EVT_VARIANT', + '_EXCEPTION_DEBUG_INFO', + '_EXCEPTION_POINTERS32', + '_EXCEPTION_POINTERS64', + '_EXCEPTION_RECORD', + '_EXCEPTION_RECORD32', + '_EXCEPTION_RECORD64', + '_EXIT_PROCESS_DEBUG_INFO', + '_EXIT_THREAD_DEBUG_INFO', + '_EXPLICIT_ACCESS_W', + '_FILETIME', + '_FILE_ACCESS_INFORMATION', + '_FILE_ALIGNMENT_INFORMATION', + '_FILE_ALL_INFORMATION', + '_FILE_ATTRIBUTE_TAG_INFORMATION', + '_FILE_BASIC_INFORMATION', + '_FILE_DISPOSITION_INFORMATION', + '_FILE_EA_INFORMATION', + '_FILE_FS_ATTRIBUTE_INFORMATION', + '_FILE_FS_CONTROL_INFORMATION', + '_FILE_FS_DEVICE_INFORMATION', + '_FILE_FS_DRIVER_PATH_INFORMATION', + '_FILE_FS_FULL_SIZE_INFORMATION', + '_FILE_FS_LABEL_INFORMATION', + '_FILE_FS_OBJECTID_INFORMATION', + '_FILE_FS_SECTOR_SIZE_INFORMATION', + '_FILE_FS_SIZE_INFORMATION', + '_FILE_FS_VOLUME_INFORMATION', + '_FILE_FULL_EA_INFORMATION', + '_FILE_GET_EA_INFORMATION', + '_FILE_INTERNAL_INFORMATION', + '_FILE_IO_PRIORITY_HINT_INFORMATION', + '_FILE_IS_REMOTE_DEVICE_INFORMATION', + '_FILE_LINK_INFORMATION', + '_FILE_MODE_INFORMATION', + '_FILE_NAME_INFORMATION', + '_FILE_NETWORK_OPEN_INFORMATION', + '_FILE_NOTIFY_EXTENDED_INFORMATION', + '_FILE_NOTIFY_INFORMATION', + '_FILE_POSITION_INFORMATION', + '_FILE_RENAME_INFORMATION', + '_FILE_STANDARD_INFORMATION', + '_FILE_STREAM_INFORMATION', + '_FLOATING_SAVE_AREA', + '_GENERIC_MAPPING', + '_GROUP_INFO_0', + '_GROUP_INFO_1', + '_GROUP_INFO_2', + '_GROUP_INFO_3', + '_GROUP_USERS_INFO_0', + '_GROUP_USERS_INFO_1', + '_GUID', + '_IMAGEHLP_CBA_EVENT', + '_IMAGEHLP_CBA_EVENTW', + '_IMAGEHLP_CBA_READ_MEMORY', + '_IMAGEHLP_DEFERRED_SYMBOL_LOAD', + '_IMAGEHLP_DEFERRED_SYMBOL_LOAD64', + '_IMAGEHLP_DEFERRED_SYMBOL_LOADW64', + '_IMAGEHLP_DUPLICATE_SYMBOL', + '_IMAGEHLP_DUPLICATE_SYMBOL64', + '_IMAGEHLP_MODULE64', + '_IMAGEHLP_MODULEW64', + '_IMAGEHLP_STACK_FRAME', + '_IMAGEHLP_SYMBOL', + '_IMAGEHLP_SYMBOL64', + '_IMAGEHLP_SYMBOLW64', + '_IMAGE_BASE_RELOCATION', + '_IMAGE_DATA_DIRECTORY', + '_IMAGE_DEBUG_DIRECTORY', + '_IMAGE_EXPORT_DIRECTORY', + '_IMAGE_FILE_HEADER', + '_IMAGE_IMPORT_BY_NAME', + '_IMAGE_IMPORT_DESCRIPTOR', + '_IMAGE_NT_HEADERS', + '_IMAGE_NT_HEADERS64', + '_IMAGE_OPTIONAL_HEADER', + '_IMAGE_OPTIONAL_HEADER64', + '_IMAGE_SECTION_HEADER', + '_INTERNET_BUFFERSA', + '_INTERNET_BUFFERSW', + '_IO_STATUS_BLOCK', + '_IP_ADAPTER_INDEX_MAP', + '_IP_ADAPTER_INFO', + '_IP_ADDR_STRING', + '_IP_INTERFACE_INFO', + '_IP_PER_ADAPTER_INFO_W2KSP1', + '_ITEMIDLIST', + '_JIT_DEBUG_INFO', + '_KDHELP', + '_KDHELP64', + '_KEY_VALUE_BASIC_INFORMATION', + '_KEY_VALUE_FULL_INFORMATION', + '_KEY_VALUE_PARTIAL_INFORMATION', + '_LDR_DATA_TABLE_ENTRY', + '_LIST_ENTRY', + '_LOAD_DLL_DEBUG_INFO', + '_LOCALGROUP_INFO_0', + '_LOCALGROUP_INFO_1', + '_LOCALGROUP_MEMBERS_INFO_0', + '_LOCALGROUP_MEMBERS_INFO_1', + '_LOCALGROUP_MEMBERS_INFO_2', + '_LOCALGROUP_MEMBERS_INFO_3', + '_LOCALTHIS', + '_LSA_OBJECT_ATTRIBUTES', + '_LSA_REFERENCED_DOMAIN_LIST', + '_LSA_TRANSLATED_NAME', + '_LSA_TRANSLATED_SID', + '_LSA_TRANSLATED_SID2', + '_LSA_TRUST_INFORMATION', + '_LSA_UNICODE_STRING', + '_LUID', + '_LUID_AND_ATTRIBUTES', + '_M128A', + '_MEMORY_BASIC_INFORMATION', + '_MEMORY_BASIC_INFORMATION32', + '_MEMORY_BASIC_INFORMATION64', + '_MIB_IFROW', + '_MIB_IFTABLE', + '_MIB_IPADDRROW_XP', + '_MIB_IPADDRTABLE', + '_MIB_IPNETROW_LH', + '_MIB_IPNETTABLE', + '_MIB_TCP6ROW_OWNER_PID', + '_MIB_TCP6TABLE_OWNER_PID', + '_MIB_TCPROW', + '_MIB_TCPROW_OWNER_PID', + '_MIB_TCPTABLE_OWNER_PID', + '_MIB_UDP6ROW_OWNER_PID', + '_MIB_UDP6TABLE_OWNER_PID', + '_MIB_UDPROW_OWNER_PID', + '_MIB_UDPTABLE_OWNER_PID', + '_MODLOAD_DATA', + '_NET_DISPLAY_GROUP', + '_NET_DISPLAY_MACHINE', + '_NET_DISPLAY_USER', + '_OBJECTS_AND_NAME_A', + '_OBJECTS_AND_NAME_W', + '_OBJECTS_AND_SID', + '_OBJECT_ATTRIBUTES', + '_OBJECT_DIRECTORY_INFORMATION', + '_OBJECT_TYPES_INFORMATION', + '_OPEN_VIRTUAL_DISK_PARAMETERS', + '_OSVERSIONINFOA', + '_OSVERSIONINFOEXA', + '_OSVERSIONINFOEXW', + '_OSVERSIONINFOW', + '_OUTPUT_DEBUG_STRING_INFO', + '_OVERLAPPED', + '_PEB', + '_PEB_LDR_DATA', + '_POLICY_ACCOUNT_DOMAIN_INFO', + '_POLICY_LSA_SERVER_ROLE_INFO', + '_POLICY_PRIMARY_DOMAIN_INFO', + '_PORT_MESSAGE32', + '_PORT_MESSAGE32_TMP_UNION', + '_PORT_MESSAGE64', + '_PORT_MESSAGE64_TMP_UNION', + '_PORT_MESSAGE_TMP_SUBSTRUCT_S1', + '_PORT_MESSAGE_TMP_SUBSTRUCT_S2', + '_PORT_MESSAGE_TMP_UNION_U1', + '_PORT_MESSAGE_TMP_UNION_U2', + '_PORT_VIEW', + '_PRIVILEGE_SET', + '_PROCESS_BASIC_INFORMATION', + '_PROCESS_INFORMATION', + '_PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION', + '_PROCESS_MEMORY_COUNTERS', + '_PROCESS_MEMORY_COUNTERS_EX', + '_PROCESS_MITIGATION_ASLR_POLICY', + '_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY', + '_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY', + '_PROCESS_MITIGATION_DEP_POLICY', + '_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY', + '_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY', + '_PROCESS_MITIGATION_IMAGE_LOAD_POLICY', + '_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY', + '_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY', + '_PROVIDER_ENUMERATION_INFO', + '_PSAPI_WORKING_SET_BLOCK', + '_PSAPI_WORKING_SET_BLOCK32', + '_PSAPI_WORKING_SET_BLOCK64', + '_PSAPI_WORKING_SET_EX_BLOCK', + '_PSAPI_WORKING_SET_EX_BLOCK32', + '_PSAPI_WORKING_SET_EX_BLOCK64', + '_PSAPI_WORKING_SET_EX_INFORMATION', + '_PSAPI_WORKING_SET_EX_INFORMATION32', + '_PSAPI_WORKING_SET_EX_INFORMATION64', + '_PSAPI_WORKING_SET_INFORMATION', + '_PSAPI_WORKING_SET_INFORMATION32', + '_PSAPI_WORKING_SET_INFORMATION64', + '_PUBLICKEYSTRUC', + '_PUBLIC_OBJECT_BASIC_INFORMATION', + '_QUERY_SERVICE_CONFIGA', + '_QUERY_SERVICE_CONFIGW', + '_REMOTE_PORT_VIEW', + '_RIP_INFO', + '_RPC_IF_ID', + '_RTLP_CURDIR_REF', + '_RTL_DRIVE_LETTER_CURDIR', + '_RTL_RELATIVE_NAME_U', + '_RTL_UNLOAD_EVENT_TRACE', + '_RTL_UNLOAD_EVENT_TRACE32', + '_RTL_UNLOAD_EVENT_TRACE64', + '_RTL_USER_PROCESS_PARAMETERS', + '_SECURITY_ATTRIBUTES', + '_SECURITY_DESCRIPTOR', + '_SECURITY_QUALITY_OF_SERVICE', + '_SERVICE_STATUS', + '_SERVICE_STATUS_PROCESS', + '_SERVICE_TABLE_ENTRYA', + '_SERVICE_TABLE_ENTRYW', + '_SHFILEOPSTRUCTA', + '_SHITEMID', + '_SID_AND_ATTRIBUTES', + '_SID_AND_ATTRIBUTES_HASH', + '_SID_IDENTIFIER_AUTHORITY', + '_SPC_INDIRECT_DATA_CONTENT', + '_SPC_PE_IMAGE_DATA', + '_SPC_SERIALIZED_OBJECT', + '_SPC_SP_OPUS_INFO', + '_SP_DEVICE_INTERFACE_DATA', + '_SP_DEVINFO_DATA', + '_STARTUPINFOA', + '_STARTUPINFOEXA', + '_STARTUPINFOEXW', + '_STARTUPINFOW', + '_STRING', + '_STRUCT_PLAINTEXTKEYBLOB', + '_SYMBOL_INFO', + '_SYMBOL_INFOW', + '_SYSTEMTIME', + '_SYSTEM_ALARM_ACE', + '_SYSTEM_ALARM_CALLBACK_ACE', + '_SYSTEM_ALARM_CALLBACK_OBJECT_ACE', + '_SYSTEM_ALARM_OBJECT_ACE', + '_SYSTEM_AUDIT_ACE', + '_SYSTEM_AUDIT_CALLBACK_ACE', + '_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE', + '_SYSTEM_AUDIT_OBJECT_ACE', + '_SYSTEM_BASIC_INFORMATION', + '_SYSTEM_HANDLE', + '_SYSTEM_HANDLE64', + '_SYSTEM_HANDLE_INFORMATION', + '_SYSTEM_HANDLE_INFORMATION64', + '_SYSTEM_MANDATORY_LABEL_ACE', + '_SYSTEM_MODULE32', + '_SYSTEM_MODULE64', + '_SYSTEM_MODULE_INFORMATION32', + '_SYSTEM_MODULE_INFORMATION64', + '_SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION', + '_SYSTEM_PROCESS_ID_INFORMATION', + '_SYSTEM_PROCESS_INFORMATION', + '_SYSTEM_PROCESS_TRUST_LABEL_ACE', + '_SYSTEM_REGISTRY_QUOTA_INFORMATION', + '_SYSTEM_RESOURCE_ATTRIBUTE_ACE', + '_SYSTEM_SCOPED_POLICY_ID_ACE', + '_SYSTEM_VERIFIER_INFORMATION', + '_THREAD_BASIC_INFORMATION', + '_TIME_ZONE_INFORMATION', + '_TMPUNION_CERT_ID', + '_TMPUNION_CMSG_CTRL_DECRYPT_PARA', + '_TMPUNION_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO', + '_TMPUNION_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO', + '_TMP_CMSG_RECIPIENT_ENCODE_INFO_UNION', + '_TMP_CONTEXT64_SUBUNION', + '_TMP_DUMMYSTRUCTNAME', + '_TMP_SPC_LINK_UNION', + '_TMP_TYPEDESC_UNION', + '_TMP_UNION_DEBUG_INFO', + '_TMP_UNION_IO_STATUS_BLOCK', + '_TMP_VARDESC_UNION', + '_TMP_WINTRUST_UNION_TYPE', + '_TMP_lowmid', + '_TMP_signscale', + '_TOKEN_ACCESS_INFORMATION', + '_TOKEN_APPCONTAINER_INFORMATION', + '_TOKEN_DEFAULT_DACL', + '_TOKEN_ELEVATION', + '_TOKEN_GROUPS', + '_TOKEN_GROUPS_AND_PRIVILEGES', + '_TOKEN_LINKED_TOKEN', + '_TOKEN_MANDATORY_LABEL', + '_TOKEN_MANDATORY_POLICY', + '_TOKEN_ORIGIN', + '_TOKEN_OWNER', + '_TOKEN_PRIMARY_GROUP', + '_TOKEN_PRIVILEGES', + '_TOKEN_SECURITY_ATTRIBUTES_INFORMATION', + '_TOKEN_SECURITY_ATTRIBUTES_INFORMATION_UNION', + '_TOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE', + '_TOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE', + '_TOKEN_SECURITY_ATTRIBUTE_V1', + '_TOKEN_SECURITY_ATTRIBUTE_V1_UNION', + '_TOKEN_SOURCE', + '_TOKEN_STATISTICS', + '_TOKEN_USER', + '_TRACE_ENABLE_INFO', + '_TRACE_GUID_INFO', + '_TRACE_GUID_REGISTRATION', + '_TRACE_LOGFILE_HEADER', + '_TRACE_PROVIDER_INFO', + '_TRACE_PROVIDER_INSTANCE_INFO', + '_TRUSTEE_A', + '_TRUSTEE_W', + '_UNLOAD_DLL_DEBUG_INFO', + '_USER_INFO_0', + '_USER_INFO_1', + '_USER_INFO_10', + '_USER_INFO_11', + '_USER_INFO_2', + '_USER_INFO_20', + '_USER_INFO_23', + '_USER_INFO_3', + '_VIRTUAL_STORAGE_TYPE', + '_WIN32_FIND_DATAA', + '_WIN32_FIND_DATAW', + '_WINTRUST_DATA', + '_WNODE_HEADER', + '_WOW64_CONTEXT', + '_WOW64_FLOATING_SAVE_AREA', + '_WSAPROTOCOLCHAIN', + '_WSAPROTOCOL_INFOA', + '_WSAPROTOCOL_INFOW', + '_XSAVE_FORMAT_32', + '_XSAVE_FORMAT_64', + '__MIDL_IBackgroundCopyJob2_0003', + '__MIDL_IBackgroundCopyJob2_0004', + '__MIDL_XmitDefs_0001', + '__PUBLIC_OBJECT_TYPE_INFORMATION', + '__tagBRECORD', + '__tagVARIANT', + '_tagADDRESS', + '_tagADDRESS64', + '_tagBRECORD', + '_tagSTACKFRAME', + '_tagSTACKFRAME64', + '_tagSTACKFRAME_EX', + '_tagVARIANT', + '_tagpropertykey', + 'addrinfo', + 'addrinfoW', + 'in_addr', + 'sockaddr', + 'sockaddr_in', + 'tagARRAYDESC', + 'tagBINDPTR', + 'tagBIND_OPTS', + 'tagBITMAP', + 'tagBITMAPCOREHEADER', + 'tagBITMAPCOREINFO', + 'tagBITMAPFILEHEADER', + 'tagBITMAPINFO', + 'tagBITMAPINFOHEADER', + 'tagCOMVERSION', + 'tagDEC', + 'tagDISPPARAMS', + 'tagELEMDESC', + 'tagEXCEPINFO', + 'tagFUNCDESC', + 'tagIDLDESC', + 'tagMULTI_QI', + 'tagORPCTHIS', + 'tagPARAMDESC', + 'tagPARAMDESCEX', + 'tagPROCESSENTRY32', + 'tagPROCESSENTRY32W', + 'tagRGBQUAD', + 'tagRGBTRIPLE', + 'tagSAFEARRAY', + 'tagSAFEARRAYBOUND', + 'tagSOLE_AUTHENTICATION_SERVICE', + 'tagSTATSTG', + 'tagTHREADENTRY32', + 'tagTLIBATTR', + 'tagTYPEATTR', + 'tagTYPEDESC', + 'tagVARDESC', + 'tagVS_FIXEDFILEINFO', + 'tagWNDCLASSEXA', + 'tagWNDCLASSEXW']) +enums = set(['ACCESS_MODE', + 'ACL_INFORMATION_CLASS', + 'ACTIVATEOPTIONS', + 'ADDRESS_MODE', + 'ALPC_MESSAGE_INFORMATION_CLASS', + 'ALPC_PORT_INFORMATION_CLASS', + 'ATTACH_VIRTUAL_DISK_FLAG', + 'ATTACH_VIRTUAL_DISK_VERSION', + 'BG_AUTH_SCHEME', + 'BG_AUTH_TARGET', + 'BG_ERROR_CONTEXT', + 'BG_JOB_PRIORITY', + 'BG_JOB_PROXY_USAGE', + 'BG_JOB_STATE', + 'BG_JOB_TYPE', + 'BasicType', + 'CALLCONV', + 'CALLFRAME_COPY', + 'CALLFRAME_WALK', + 'CBA_EVENT_SEVERITY', + 'CLSCTX', + 'COINIT', + 'COMPUTER_NAME_FORMAT', + 'COMSD', + 'DESCKIND', + 'DNS_FREE_TYPE', + 'DataKind', + 'EVT_CHANNEL_CONFIG_PROPERTY_ID', + 'EVT_CHANNEL_ISOLATION_TYPE', + 'EVT_CHANNEL_TYPE', + 'EVT_EVENT_METADATA_PROPERTY_ID', + 'EVT_FORMAT_MESSAGE_FLAGS', + 'EVT_LOGIN_CLASS', + 'EVT_LOG_PROPERTY_ID', + 'EVT_OPEN_LOG_FLAGS', + 'EVT_PUBLISHER_METADATA_PROPERTY_ID', + 'EVT_QUERY_FLAGS', + 'EVT_RENDER_CONTEXT_FLAGS', + 'EVT_RENDER_FLAGS', + 'EVT_SEEK_FLAGS', + 'EVT_SYSTEM_PROPERTY_ID', + 'EVT_VARIANT_TYPE', + 'EXPCMDFLAGS', + 'EXPCMDSTATE', + 'FILE_INFORMATION_CLASS', + 'FS_INFORMATION_CLASS', + 'FUNCKIND', + 'GETPROPERTYSTOREFLAGS', + 'IMAGEHLP_EXTENDED_OPTIONS', + 'IMAGEHLP_SYMBOL_TYPE_INFO', + 'INTERNAL_IF_OPER_STATUS', + 'INVOKEKIND', + 'IO_PRIORITY_HINT', + 'KEY_INFORMATION_CLASS', + 'KEY_VALUE_INFORMATION_CLASS', + 'MEMORY_INFORMATION_CLASS', + 'MIB_TCP_STATE', + 'MSHLFLAGS', + 'MULTIPLE_TRUSTEE_OPERATION', + 'NDR_FORMAT_CHARACTER', + 'NET_FW_ACTION', + 'NET_FW_ACTION_', + 'NET_FW_IP_PROTOCOL', + 'NET_FW_IP_PROTOCOL_', + 'NET_FW_MODIFY_STATE', + 'NET_FW_MODIFY_STATE_', + 'NET_FW_PROFILE_TYPE2', + 'NET_FW_PROFILE_TYPE2_', + 'NET_FW_RULE_DIRECTION', + 'NET_FW_RULE_DIRECTION_', + 'OBJECT_INFORMATION_CLASS', + 'OPEN_VIRTUAL_DISK_FLAG', + 'OPEN_VIRTUAL_DISK_VERSION', + 'PACKAGE_EXECUTION_STATE', + 'PALPC_MESSAGE_INFORMATION_CLASS', + 'PFILE_INFORMATION_CLASS', + 'POLICY_INFORMATION_CLASS', + 'POLICY_LSA_SERVER_ROLE', + 'PPOLICY_INFORMATION_CLASS', + 'PPOLICY_LSA_SERVER_ROLE', + 'PPROCESS_MITIGATION_POLICY', + 'PREAD_DIRECTORY_NOTIFY_INFORMATION_CLASS', + 'PROCESSINFOCLASS', + 'PROCESS_MITIGATION_POLICY', + 'PSECURITY_IMPERSONATION_LEVEL', + 'PSID_NAME_USE', + 'PTHREAD_INFORMATION_CLASS', + 'PTOKEN_ELEVATION_TYPE', + 'PTOKEN_INFORMATION_CLASS', + 'PTOKEN_TYPE', + 'READ_DIRECTORY_NOTIFY_INFORMATION_CLASS', + 'RTL_PATH_TYPE', + 'SC_ENUM_TYPE', + 'SC_STATUS_TYPE', + 'SECTION_INHERIT', + 'SECURITY_IMPERSONATION_LEVEL', + 'SE_OBJECT_TYPE', + 'SIATTRIBFLAGS', + 'SICHINTF', + 'SID_NAME_USE', + 'SIGDN', + 'SYM_TYPE', + 'SYSKIND', + 'SYSTEM_INFORMATION_CLASS', + 'SymTagEnum', + 'TASK_ACTION_TYPE', + 'TASK_COMPATIBILITY', + 'TASK_CREATION', + 'TASK_ENUM_FLAGS', + 'TASK_INSTANCES_POLICY', + 'TASK_LOGON_TYPE', + 'TASK_RUNLEVEL_TYPE', + 'TASK_RUN_FLAGS', + 'TASK_STATE', + 'TASK_TRIGGER_TYPE2', + 'TCP_TABLE_CLASS', + 'THREAD_INFORMATION_CLASS', + 'TOKEN_ELEVATION_TYPE', + 'TOKEN_INFORMATION_CLASS', + 'TOKEN_TYPE', + 'TRACE_INFO_CLASS', + 'TRACE_QUERY_INFO_CLASS', + 'TRUSTEE_FORM', + 'TRUSTEE_TYPE', + 'TYPEKIND', + 'UDP_TABLE_CLASS', + 'UdtKind', + 'VARENUM', + 'VARKIND', + 'VIRTUAL_DISK_ACCESS_MASK', + 'WBEMSTATUS', + 'WBEM_CHANGE_FLAG_TYPE', + 'WBEM_CONNECT_OPTIONS', + 'WBEM_GENERIC_FLAG_TYPE', + 'WBEM_GENUS_TYPE', + 'WBEM_QUERY_FLAG_TYPE', + 'WBEM_TIMEOUT_TYPE', + 'WELL_KNOWN_SID_TYPE', + 'WMIDPREQUESTCODE', + '_ACCESS_MODE', + '_ACL_INFORMATION_CLASS', + '_ALPC_MESSAGE_INFORMATION_CLASS', + '_ALPC_PORT_INFORMATION_CLASS', + '_ATTACH_VIRTUAL_DISK_FLAG', + '_ATTACH_VIRTUAL_DISK_VERSION', + '_BG_ERROR_CONTEXT', + '_BG_JOB_PRIORITY', + '_BG_JOB_PROXY_USAGE', + '_BG_JOB_STATE', + '_BG_JOB_TYPE', + '_CALLFRAME_COPY', + '_CBA_EVENT_SEVERITY', + '_COMPUTER_NAME_FORMAT', + '_EVT_CHANNEL_CONFIG_PROPERTY_ID', + '_EVT_CHANNEL_ISOLATION_TYPE', + '_EVT_CHANNEL_TYPE', + '_EVT_EVENT_METADATA_PROPERTY_ID', + '_EVT_FORMAT_MESSAGE_FLAGS', + '_EVT_LOGIN_CLASS', + '_EVT_LOG_PROPERTY_ID', + '_EVT_OPEN_LOG_FLAGS', + '_EVT_PUBLISHER_METADATA_PROPERTY_ID', + '_EVT_QUERY_FLAGS', + '_EVT_RENDER_CONTEXT_FLAGS', + '_EVT_RENDER_FLAGS', + '_EVT_SEEK_FLAGS', + '_EVT_SYSTEM_PROPERTY_ID', + '_EVT_VARIANT_TYPE', + '_EXPCMDFLAGS', + '_EXPCMDSTATE', + '_FILE_INFORMATION_CLASS', + '_FS_INFORMATION_CLASS', + '_IMAGEHLP_EXTENDED_OPTIONS', + '_IMAGEHLP_SYMBOL_TYPE_INFO', + '_INTERNAL_IF_OPER_STATUS', + '_IO_PRIORITY_HINT', + '_KEY_INFORMATION_CLASS', + '_KEY_VALUE_INFORMATION_CLASS', + '_MEMORY_INFORMATION_CLASS', + '_MIB_TCP_STATE', + '_MULTIPLE_TRUSTEE_OPERATION', + '_OBJECT_INFORMATION_CLASS', + '_OPEN_VIRTUAL_DISK_FLAG', + '_OPEN_VIRTUAL_DISK_VERSION', + '_POLICY_INFORMATION_CLASS', + '_POLICY_LSA_SERVER_ROLE', + '_PROCESSINFOCLASS', + '_PROCESS_MITIGATION_POLICY', + '_READ_DIRECTORY_NOTIFY_INFORMATION_CLASS', + '_RTL_PATH_TYPE', + '_SC_ENUM_TYPE', + '_SC_STATUS_TYPE', + '_SECTION_INHERIT', + '_SECURITY_IMPERSONATION_LEVEL', + '_SE_OBJECT_TYPE', + '_SID_NAME_USE', + '_SIGDN', + '_SYSTEM_INFORMATION_CLASS', + '_SymTagEnum', + '_TASK_ACTION_TYPE', + '_TASK_COMPATIBILITY', + '_TASK_CREATION', + '_TASK_ENUM_FLAGS', + '_TASK_INSTANCES_POLICY', + '_TASK_LOGON_TYPE', + '_TASK_RUNLEVEL_TYPE', + '_TASK_STATE', + '_TASK_TRIGGER_TYPE2', + '_TCP_TABLE_CLASS', + '_THREAD_INFORMATION_CLASS', + '_TOKEN_ELEVATION_TYPE', + '_TOKEN_INFORMATION_CLASS', + '_TRUSTEE_FORM', + '_TRUSTEE_TYPE', + '_UDP_TABLE_CLASS', + '_VARENUM', + '_VIRTUAL_DISK_ACCESS_MASK', + '_WELL_KNOWN_SID_TYPE', + '__MIDL_IBackgroundCopyJob2_0001', + '__MIDL_IBackgroundCopyJob2_0002', + 'tagCALLCONV', + 'tagCALLFRAME_WALK', + 'tagCLSCTX', + 'tagCOINIT', + 'tagCOMSD', + 'tagDESCKIND', + 'tagFUNCKIND', + 'tagINVOKEKIND', + 'tagMSHLFLAGS', + 'tagSYSKIND', + 'tagTOKEN_TYPE', + 'tagTYPEKIND', + 'tagVARKIND', + 'tag_WBEMSTATUS', + 'tag_WBEM_CHANGE_FLAG_TYPE', + 'tag_WBEM_CONNECT_OPTIONS', + 'tag_WBEM_GENERIC_FLAG_TYPE', + 'tag_WBEM_GENUS_TYPE', + 'tag_WBEM_QUERY_FLAG_TYPE', + 'tag_WBEM_TIMEOUT_TYPE']) +functions = set(['AccessCheck', + 'AddAccessAllowedAce', + 'AddAccessAllowedAceEx', + 'AddAccessDeniedAce', + 'AddAccessDeniedAceEx', + 'AddAtomA', + 'AddAtomW', + 'AddVectoredContinueHandler', + 'AddVectoredExceptionHandler', + 'AdjustTokenPrivileges', + 'AllocConsole', + 'AlpcGetMessageAttribute', + 'AlpcInitializeMessageAttribute', + 'ApiSetResolveToHost', + 'AttachVirtualDisk', + 'BringWindowToTop', + 'BuildSecurityDescriptorW', + 'CLSIDFromProgID', + 'CM_Enumerate_Classes', + 'CM_Enumerate_Classes_Ex', + 'CM_Free_Res_Des_Handle', + 'CM_Get_Child', + 'CM_Get_Child_Ex', + 'CM_Get_First_Log_Conf', + 'CM_Get_First_Log_Conf_Ex', + 'CM_Get_Log_Conf_Priority', + 'CM_Get_Log_Conf_Priority_Ex', + 'CM_Get_Next_Log_Conf', + 'CM_Get_Next_Log_Conf_Ex', + 'CM_Get_Next_Res_Des', + 'CM_Get_Next_Res_Des_Ex', + 'CM_Get_Parent', + 'CM_Get_Parent_Ex', + 'CM_Get_Res_Des_Data', + 'CM_Get_Res_Des_Data_Size', + 'CM_Get_Res_Des_Data_Size_Ex', + 'CM_Get_Sibling', + 'CM_Get_Sibling_Ex', + 'CM_Get_Version', + 'CM_Get_Version_Ex', + 'CM_Locate_DevNodeA', + 'CM_Locate_DevNodeW', + 'CM_Locate_DevNode_ExA', + 'CM_Locate_DevNode_ExW', + 'CertAddCertificateContextToStore', + 'CertCloseStore', + 'CertCompareCertificate', + 'CertCreateCertificateContext', + 'CertCreateSelfSignCertificate', + 'CertDuplicateCTLContext', + 'CertDuplicateCertificateContext', + 'CertEnumCTLsInStore', + 'CertEnumCertificateContextProperties', + 'CertEnumCertificatesInStore', + 'CertFindCertificateInStore', + 'CertFreeCTLContext', + 'CertFreeCertificateContext', + 'CertGetCertificateChain', + 'CertGetCertificateContextProperty', + 'CertGetNameStringA', + 'CertGetNameStringW', + 'CertOpenStore', + 'CertStrToNameA', + 'CertStrToNameW', + 'ChangeServiceConfig2A', + 'ChangeServiceConfig2W', + 'ChangeServiceConfigA', + 'ChangeServiceConfigW', + 'CloseClipboard', + 'CloseEventLog', + 'CloseHandle', + 'CloseServiceHandle', + 'CloseWindow', + 'CoCreateInstance', + 'CoCreateInstanceEx', + 'CoGetClassObject', + 'CoGetInterceptor', + 'CoInitializeEx', + 'CoInitializeSecurity', + 'CoTaskMemFree', + 'CommitTransaction', + 'ConnectNamedPipe', + 'ContinueDebugEvent', + 'ControlService', + 'ControlServiceExA', + 'ControlServiceExW', + 'ControlTraceA', + 'ControlTraceW', + 'ConvertSecurityDescriptorToStringSecurityDescriptorA', + 'ConvertSecurityDescriptorToStringSecurityDescriptorW', + 'ConvertSidToStringSidA', + 'ConvertSidToStringSidW', + 'ConvertStringSecurityDescriptorToSecurityDescriptorA', + 'ConvertStringSecurityDescriptorToSecurityDescriptorW', + 'ConvertStringSidToSidA', + 'ConvertStringSidToSidW', + 'CopySid', + 'CreateEventA', + 'CreateEventExA', + 'CreateEventExW', + 'CreateEventW', + 'CreateFileA', + 'CreateFileMappingA', + 'CreateFileMappingW', + 'CreateFileTransactedA', + 'CreateFileTransactedW', + 'CreateFileW', + 'CreateNamedPipeA', + 'CreateNamedPipeW', + 'CreatePipe', + 'CreateProcessA', + 'CreateProcessAsUserA', + 'CreateProcessAsUserW', + 'CreateProcessW', + 'CreateRemoteThread', + 'CreateServiceA', + 'CreateServiceW', + 'CreateThread', + 'CreateToolhelp32Snapshot', + 'CreateTransaction', + 'CreateWellKnownSid', + 'CryptAcquireCertificatePrivateKey', + 'CryptAcquireContextA', + 'CryptAcquireContextW', + 'CryptCATAdminAcquireContext', + 'CryptCATAdminAcquireContext2', + 'CryptCATAdminCalcHashFromFileHandle', + 'CryptCATAdminCalcHashFromFileHandle2', + 'CryptCATAdminEnumCatalogFromHash', + 'CryptCATAdminReleaseCatalogContext', + 'CryptCATAdminReleaseContext', + 'CryptCATCatalogInfoFromContext', + 'CryptCATEnumerateAttr', + 'CryptCATEnumerateCatAttr', + 'CryptCATEnumerateMember', + 'CryptCATGetAttrInfo', + 'CryptCATGetMemberInfo', + 'CryptCreateHash', + 'CryptDecodeObject', + 'CryptDecrypt', + 'CryptDecryptMessage', + 'CryptDeriveKey', + 'CryptDestroyHash', + 'CryptDestroyKey', + 'CryptEncodeObjectEx', + 'CryptEncrypt', + 'CryptEncryptMessage', + 'CryptEnumOIDFunction', + 'CryptExportKey', + 'CryptGenKey', + 'CryptGetHashParam', + 'CryptGetOIDFunctionValue', + 'CryptHashCertificate', + 'CryptHashData', + 'CryptImportKey', + 'CryptMsgClose', + 'CryptMsgControl', + 'CryptMsgGetParam', + 'CryptMsgOpenToDecode', + 'CryptMsgOpenToEncode', + 'CryptMsgUpdate', + 'CryptMsgVerifyCountersignatureEncoded', + 'CryptMsgVerifyCountersignatureEncodedEx', + 'CryptProtectData', + 'CryptProtectMemory', + 'CryptQueryObject', + 'CryptReleaseContext', + 'CryptSignAndEncryptMessage', + 'CryptSignHashA', + 'CryptSignHashW', + 'CryptSignMessage', + 'CryptUIDlgViewContext', + 'CryptUnprotectData', + 'CryptUnprotectMemory', + 'CryptVerifyMessageHash', + 'CryptVerifyMessageSignature', + 'CryptVerifyMessageSignatureWithKey', + 'CryptVerifySignatureA', + 'CryptVerifySignatureW', + 'DebugActiveProcess', + 'DebugActiveProcessStop', + 'DebugBreak', + 'DebugBreakProcess', + 'DebugSetProcessKillOnExit', + 'DeleteProcThreadAttributeList', + 'DeleteService', + 'DeviceIoControl', + 'DnsFree', + 'DnsGetCacheDataTable', + 'DnsQueryEx', + 'DnsQuery_A', + 'DnsQuery_W', + 'DuplicateHandle', + 'DuplicateToken', + 'DuplicateTokenEx', + 'EmptyClipboard', + 'EnableTrace', + 'EnableTraceEx', + 'EnableTraceEx2', + 'EnumChildWindows', + 'EnumClipboardFormats', + 'EnumDependentServicesA', + 'EnumDependentServicesW', + 'EnumResourceNamesA', + 'EnumResourceNamesW', + 'EnumResourceTypesA', + 'EnumResourceTypesW', + 'EnumServicesStatusExA', + 'EnumServicesStatusExW', + 'EnumWindows', + 'EnumerateTraceGuidsEx', + 'EqualSid', + 'EvtClose', + 'EvtCreateRenderContext', + 'EvtFormatMessage', + 'EvtGetChannelConfigProperty', + 'EvtGetEventMetadataProperty', + 'EvtGetLogInfo', + 'EvtGetObjectArrayProperty', + 'EvtGetObjectArraySize', + 'EvtGetPublisherMetadataProperty', + 'EvtNext', + 'EvtNextChannelPath', + 'EvtNextEventMetadata', + 'EvtNextPublisherId', + 'EvtOpenChannelConfig', + 'EvtOpenChannelEnum', + 'EvtOpenEventMetadataEnum', + 'EvtOpenLog', + 'EvtOpenPublisherEnum', + 'EvtOpenPublisherMetadata', + 'EvtOpenSession', + 'EvtQuery', + 'EvtRender', + 'EvtSeek', + 'ExitProcess', + 'ExitThread', + 'FileTimeToSystemTime', + 'FindClose', + 'FindCloseChangeNotification', + 'FindFirstChangeNotificationA', + 'FindFirstChangeNotificationW', + 'FindFirstFileA', + 'FindFirstFileW', + 'FindFirstVolumeA', + 'FindFirstVolumeW', + 'FindNextChangeNotification', + 'FindNextFileA', + 'FindNextFileW', + 'FindNextVolumeA', + 'FindNextVolumeW', + 'FindResourceA', + 'FindResourceW', + 'FindWindowA', + 'FindWindowW', + 'FreeConsole', + 'FreeLibrary', + 'FreeResource', + 'FreeSid', + 'GetAce', + 'GetAclInformation', + 'GetAdaptersInfo', + 'GetAddrInfoW', + 'GetClassInfoExA', + 'GetClassInfoExW', + 'GetClassNameA', + 'GetClassNameW', + 'GetClipboardData', + 'GetClipboardFormatNameA', + 'GetClipboardFormatNameW', + 'GetComputerNameA', + 'GetComputerNameExA', + 'GetComputerNameExW', + 'GetComputerNameW', + 'GetCurrentProcess', + 'GetCurrentProcessorNumber', + 'GetCurrentThread', + 'GetCurrentThreadId', + 'GetCursorPos', + 'GetDesktopWindow', + 'GetDriveTypeA', + 'GetDriveTypeW', + 'GetEventLogInformation', + 'GetExitCodeProcess', + 'GetExitCodeThread', + 'GetExtendedTcpTable', + 'GetExtendedUdpTable', + 'GetFileVersionInfoA', + 'GetFileVersionInfoExA', + 'GetFileVersionInfoExW', + 'GetFileVersionInfoSizeA', + 'GetFileVersionInfoSizeExA', + 'GetFileVersionInfoSizeExW', + 'GetFileVersionInfoSizeW', + 'GetFileVersionInfoW', + 'GetFirmwareEnvironmentVariableA', + 'GetFirmwareEnvironmentVariableExA', + 'GetFirmwareEnvironmentVariableExW', + 'GetFirmwareEnvironmentVariableW', + 'GetForegroundWindow', + 'GetIfTable', + 'GetInterfaceInfo', + 'GetIpAddrTable', + 'GetIpNetTable', + 'GetLastError', + 'GetLengthSid', + 'GetLocalTime', + 'GetLogicalDriveStringsA', + 'GetLogicalDriveStringsW', + 'GetLongPathNameA', + 'GetLongPathNameW', + 'GetMappedFileNameA', + 'GetMappedFileNameW', + 'GetModuleBaseNameA', + 'GetModuleBaseNameW', + 'GetModuleFileNameA', + 'GetModuleFileNameW', + 'GetModuleHandleA', + 'GetModuleHandleW', + 'GetNamedSecurityInfoA', + 'GetNamedSecurityInfoW', + 'GetNumberOfEventLogRecords', + 'GetParent', + 'GetPerAdapterInfo', + 'GetPriorityClass', + 'GetProcAddress', + 'GetProcessDEPPolicy', + 'GetProcessId', + 'GetProcessImageFileNameA', + 'GetProcessImageFileNameW', + 'GetProcessMemoryInfo', + 'GetProcessMitigationPolicy', + 'GetProcessTimes', + 'GetProductInfo', + 'GetSecurityDescriptorControl', + 'GetSecurityDescriptorDacl', + 'GetSecurityDescriptorGroup', + 'GetSecurityDescriptorLength', + 'GetSecurityDescriptorOwner', + 'GetSecurityDescriptorRMControl', + 'GetSecurityDescriptorSacl', + 'GetSecurityInfo', + 'GetServiceDisplayNameA', + 'GetServiceDisplayNameW', + 'GetServiceKeyNameA', + 'GetServiceKeyNameW', + 'GetShortPathNameA', + 'GetShortPathNameW', + 'GetSidIdentifierAuthority', + 'GetSidLengthRequired', + 'GetSidSubAuthority', + 'GetSidSubAuthorityCount', + 'GetStdHandle', + 'GetStringConditionFromBinary', + 'GetSystemMetrics', + 'GetSystemTime', + 'GetSystemTimeAsFileTime', + 'GetSystemTimes', + 'GetThreadContext', + 'GetThreadId', + 'GetTickCount', + 'GetTickCount64', + 'GetTokenInformation', + 'GetTraceLoggerHandle', + 'GetVersion', + 'GetVersionExA', + 'GetVersionExW', + 'GetVolumeInformationA', + 'GetVolumeInformationW', + 'GetVolumeNameForVolumeMountPointA', + 'GetVolumeNameForVolumeMountPointW', + 'GetWindowModuleFileNameA', + 'GetWindowModuleFileNameW', + 'GetWindowRect', + 'GetWindowTextA', + 'GetWindowTextW', + 'GetWindowThreadProcessId', + 'GetWindowsDirectoryA', + 'GetWindowsDirectoryW', + 'GlobalAddAtomA', + 'GlobalAddAtomExA', + 'GlobalAddAtomExW', + 'GlobalAddAtomW', + 'GlobalAlloc', + 'GlobalDeleteAtom', + 'GlobalFree', + 'GlobalGetAtomNameA', + 'GlobalGetAtomNameW', + 'GlobalLock', + 'GlobalUnlock', + 'HeapAlloc', + 'HttpOpenRequestA', + 'HttpOpenRequestW', + 'HttpQueryInfoA', + 'HttpQueryInfoW', + 'HttpSendRequestA', + 'HttpSendRequestW', + 'InitializeAcl', + 'InitializeProcThreadAttributeList', + 'InitializeSecurityDescriptor', + 'InternetCheckConnectionA', + 'InternetCheckConnectionW', + 'InternetConnectA', + 'InternetConnectW', + 'InternetOpenA', + 'InternetOpenUrlA', + 'InternetOpenUrlW', + 'InternetOpenW', + 'InternetReadFile', + 'InternetReadFileExA', + 'InternetReadFileExW', + 'InternetSetOptionA', + 'InternetSetOptionW', + 'IsDebuggerPresent', + 'IsOS', + 'IsValidSecurityDescriptor', + 'LdrLoadDll', + 'LoadLibraryA', + 'LoadLibraryExA', + 'LoadLibraryExW', + 'LoadLibraryW', + 'LoadResource', + 'LocalFree', + 'LockResource', + 'LookupAccountNameA', + 'LookupAccountNameW', + 'LookupAccountSidA', + 'LookupAccountSidW', + 'LookupPrivilegeNameA', + 'LookupPrivilegeNameW', + 'LookupPrivilegeValueA', + 'LookupPrivilegeValueW', + 'LsaClose', + 'LsaLookupNames', + 'LsaLookupNames2', + 'LsaLookupSids', + 'LsaLookupSids2', + 'LsaNtStatusToWinError', + 'LsaOpenPolicy', + 'LsaQueryInformationPolicy', + 'MakeAbsoluteSD', + 'MakeSelfRelativeSD', + 'MapGenericMask', + 'MapViewOfFile', + 'MessageBoxA', + 'MessageBoxW', + 'MoveWindow', + 'NetApiBufferFree', + 'NetGroupEnum', + 'NetGroupGetInfo', + 'NetGroupGetUsers', + 'NetLocalGroupEnum', + 'NetLocalGroupGetInfo', + 'NetLocalGroupGetMembers', + 'NetQueryDisplayInformation', + 'NetUserEnum', + 'NtAllocateVirtualMemory', + 'NtAlpcAcceptConnectPort', + 'NtAlpcConnectPort', + 'NtAlpcConnectPortEx', + 'NtAlpcCreatePort', + 'NtAlpcCreatePortSection', + 'NtAlpcCreateResourceReserve', + 'NtAlpcCreateSectionView', + 'NtAlpcCreateSecurityContext', + 'NtAlpcDeletePortSection', + 'NtAlpcDeleteResourceReserve', + 'NtAlpcDeleteSectionView', + 'NtAlpcDeleteSecurityContext', + 'NtAlpcDisconnectPort', + 'NtAlpcImpersonateClientOfPort', + 'NtAlpcQueryInformation', + 'NtAlpcQueryInformationMessage', + 'NtAlpcRevokeSecurityContext', + 'NtAlpcSendWaitReceivePort', + 'NtConnectPort', + 'NtCreateFile', + 'NtCreateKey', + 'NtCreateNamedPipeFile', + 'NtCreateProcessEx', + 'NtCreateSection', + 'NtCreateSymbolicLinkObject', + 'NtCreateThreadEx', + 'NtDelayExecution', + 'NtDeleteValueKey', + 'NtEnumerateSystemEnvironmentValuesEx', + 'NtEnumerateValueKey', + 'NtFreeVirtualMemory', + 'NtGetContextThread', + 'NtMapViewOfSection', + 'NtOpenDirectoryObject', + 'NtOpenEvent', + 'NtOpenFile', + 'NtOpenKey', + 'NtOpenProcess', + 'NtOpenSection', + 'NtOpenSymbolicLinkObject', + 'NtProtectVirtualMemory', + 'NtQueryDirectoryFile', + 'NtQueryDirectoryObject', + 'NtQueryEaFile', + 'NtQueryInformationFile', + 'NtQueryInformationProcess', + 'NtQueryInformationThread', + 'NtQueryKey', + 'NtQueryLicenseValue', + 'NtQueryObject', + 'NtQuerySymbolicLinkObject', + 'NtQuerySystemInformation', + 'NtQueryValueKey', + 'NtQueryVirtualMemory', + 'NtQueryVolumeInformationFile', + 'NtReadVirtualMemory', + 'NtSetContextThread', + 'NtSetEaFile', + 'NtSetInformationFile', + 'NtSetInformationProcess', + 'NtSetValueKey', + 'NtTerminateProcess', + 'NtUnmapViewOfSection', + 'NtWow64ReadVirtualMemory64', + 'NtWow64WriteVirtualMemory64', + 'NtWriteVirtualMemory', + 'ObjectFromLresult', + 'OpenBackupEventLogA', + 'OpenBackupEventLogW', + 'OpenClipboard', + 'OpenEventA', + 'OpenEventLogA', + 'OpenEventLogW', + 'OpenEventW', + 'OpenFileMappingA', + 'OpenFileMappingW', + 'OpenProcess', + 'OpenProcessToken', + 'OpenSCManagerA', + 'OpenSCManagerW', + 'OpenServiceA', + 'OpenServiceW', + 'OpenThread', + 'OpenThreadToken', + 'OpenTraceA', + 'OpenTraceW', + 'OpenTransaction', + 'OpenVirtualDisk', + 'PFXExportCertStoreEx', + 'PFXImportCertStore', + 'PeekNamedPipe', + 'PfnCryptGetSignerCertificate', + 'Process32First', + 'Process32FirstW', + 'Process32Next', + 'Process32NextW', + 'ProcessTrace', + 'QueryAllTracesA', + 'QueryAllTracesW', + 'QueryDosDeviceA', + 'QueryDosDeviceW', + 'QueryServiceConfig2A', + 'QueryServiceConfig2W', + 'QueryServiceConfigA', + 'QueryServiceConfigW', + 'QueryServiceDynamicInformation', + 'QueryServiceStatus', + 'QueryServiceStatusEx', + 'QueryWorkingSet', + 'QueryWorkingSetEx', + 'ReadDirectoryChangesExW', + 'ReadDirectoryChangesW', + 'ReadEventLogA', + 'ReadEventLogW', + 'ReadFile', + 'ReadProcessMemory', + 'RealGetWindowClassA', + 'RealGetWindowClassW', + 'RegCloseKey', + 'RegCreateKeyExA', + 'RegCreateKeyExW', + 'RegDeleteKeyExA', + 'RegDeleteKeyExW', + 'RegDeleteKeyValueA', + 'RegDeleteKeyValueW', + 'RegDeleteTreeA', + 'RegDeleteTreeW', + 'RegDeleteValueA', + 'RegDeleteValueW', + 'RegEnumKeyExA', + 'RegEnumKeyExW', + 'RegEnumValueA', + 'RegEnumValueW', + 'RegGetKeySecurity', + 'RegGetValueA', + 'RegGetValueW', + 'RegLoadKeyA', + 'RegLoadKeyW', + 'RegOpenKeyExA', + 'RegOpenKeyExW', + 'RegQueryInfoKeyA', + 'RegQueryInfoKeyW', + 'RegQueryValueExA', + 'RegQueryValueExW', + 'RegSaveKeyA', + 'RegSaveKeyExA', + 'RegSaveKeyExW', + 'RegSaveKeyW', + 'RegSetKeyValueA', + 'RegSetKeyValueW', + 'RegSetValueExA', + 'RegSetValueExW', + 'RegUnLoadKeyA', + 'RegUnLoadKeyW', + 'RegisterTraceGuidsA', + 'RegisterTraceGuidsW', + 'RemoveVectoredExceptionHandler', + 'ResumeThread', + 'RollbackTransaction', + 'RtlAnsiStringToUnicodeString', + 'RtlCompressBuffer', + 'RtlDecompressBuffer', + 'RtlDecompressBufferEx', + 'RtlDosPathNameToNtPathName_U', + 'RtlEqualUnicodeString', + 'RtlGetCompressionWorkSpaceSize', + 'RtlGetUnloadEventTraceEx', + 'RtlInitString', + 'RtlInitUnicodeString', + 'RtlMoveMemory', + 'SHFileOperationA', + 'SHGetPathFromIDListA', + 'SHGetPathFromIDListW', + 'SafeArrayCopy', + 'SafeArrayCopyData', + 'SafeArrayCreate', + 'SafeArrayCreateVector', + 'SafeArrayDestroy', + 'SafeArrayDestroyData', + 'SafeArrayGetDim', + 'SafeArrayGetElement', + 'SafeArrayGetElemsize', + 'SafeArrayGetLBound', + 'SafeArrayGetUBound', + 'SafeArrayGetVartype', + 'SafeArrayPutElement', + 'SetAclInformation', + 'SetClipboardData', + 'SetConsoleCtrlHandler', + 'SetNamedPipeHandleState', + 'SetNamedSecurityInfoA', + 'SetNamedSecurityInfoW', + 'SetPriorityClass', + 'SetProcessMitigationPolicy', + 'SetSecurityDescriptorDacl', + 'SetSecurityDescriptorOwner', + 'SetSecurityInfo', + 'SetStdHandle', + 'SetTcpEntry', + 'SetThreadAffinityMask', + 'SetThreadContext', + 'SetThreadToken', + 'SetTokenInformation', + 'SetWindowPos', + 'SetWindowTextA', + 'SetWindowTextW', + 'SetupDiClassNameFromGuidA', + 'SetupDiClassNameFromGuidExA', + 'SetupDiClassNameFromGuidExW', + 'SetupDiClassNameFromGuidW', + 'SetupDiDeleteDeviceInfo', + 'SetupDiDestroyDeviceInfoList', + 'SetupDiEnumDeviceInfo', + 'SetupDiEnumDeviceInterfaces', + 'SetupDiGetClassDevsA', + 'SetupDiGetClassDevsW', + 'SetupDiGetDeviceRegistryPropertyA', + 'SetupDiGetDeviceRegistryPropertyW', + 'ShellExecuteA', + 'ShellExecuteW', + 'SizeofResource', + 'Sleep', + 'SleepEx', + 'StackWalk', + 'StackWalk64', + 'StackWalkEx', + 'StartServiceA', + 'StartServiceCtrlDispatcherA', + 'StartServiceCtrlDispatcherW', + 'StartServiceW', + 'StartTraceA', + 'StartTraceW', + 'StopTraceA', + 'StopTraceW', + 'StrStrIA', + 'StrStrIW', + 'SuspendThread', + 'SymCleanup', + 'SymEnumProcesses', + 'SymEnumSymbols', + 'SymEnumSymbolsEx', + 'SymEnumSymbolsForAddr', + 'SymEnumSymbolsForAddrW', + 'SymEnumTypes', + 'SymEnumTypesByName', + 'SymEnumerateModules64', + 'SymFromAddr', + 'SymFromName', + 'SymFromNameW', + 'SymFunctionTableAccess', + 'SymFunctionTableAccess64', + 'SymGetModuleBase', + 'SymGetModuleBase64', + 'SymGetModuleInfo64', + 'SymGetModuleInfoW64', + 'SymGetOptions', + 'SymGetSearchPath', + 'SymGetSearchPathW', + 'SymGetTypeFromName', + 'SymGetTypeInfo', + 'SymInitialize', + 'SymLoadModuleEx', + 'SymLoadModuleExA', + 'SymLoadModuleExW', + 'SymNext', + 'SymNextW', + 'SymPrev', + 'SymPrevW', + 'SymRefreshModuleList', + 'SymRegisterCallback', + 'SymRegisterCallback64', + 'SymRegisterCallbackW64', + 'SymSearch', + 'SymSearchW', + 'SymSetContext', + 'SymSetExtendedOption', + 'SymSetOptions', + 'SymSetSearchPath', + 'SymSetSearchPathW', + 'SymSrvGetFileIndexInfo', + 'SymSrvGetFileIndexInfoW', + 'SymSrvGetFileIndexString', + 'SymSrvGetFileIndexStringW', + 'SymSrvGetFileIndexes', + 'SymSrvGetFileIndexesW', + 'SymUnDName', + 'SymUnDName64', + 'SymUnloadModule', + 'SymUnloadModule64', + 'SysAllocString', + 'SysFreeString', + 'SystemTimeToFileTime', + 'TdhEnumerateProviders', + 'TerminateProcess', + 'TerminateThread', + 'Thread32First', + 'Thread32Next', + 'TpCallbackSendAlpcMessageOnCompletion', + 'TraceEvent', + 'TraceQueryInformation', + 'TraceSetInformation', + 'UnDecorateSymbolName', + 'UnDecorateSymbolNameW', + 'UnmapViewOfFile', + 'UpdateProcThreadAttribute', + 'VerQueryValueA', + 'VerQueryValueW', + 'VirtualAlloc', + 'VirtualAllocEx', + 'VirtualFree', + 'VirtualFreeEx', + 'VirtualProtect', + 'VirtualProtectEx', + 'VirtualQuery', + 'VirtualQueryEx', + 'WSACleanup', + 'WSAGetLastError', + 'WSASocketA', + 'WSASocketW', + 'WSAStartup', + 'WaitForDebugEvent', + 'WaitForSingleObject', + 'WinHttpAddRequestHeaders', + 'WinHttpCloseHandle', + 'WinHttpConnect', + 'WinHttpOpen', + 'WinHttpOpenRequest', + 'WinHttpQueryDataAvailable', + 'WinHttpQueryHeaders', + 'WinHttpReadData', + 'WinHttpReceiveResponse', + 'WinHttpSendRequest', + 'WinVerifyTrust', + 'WindowFromPoint', + 'Wow64DisableWow64FsRedirection', + 'Wow64EnableWow64FsRedirection', + 'Wow64GetThreadContext', + 'Wow64RevertWow64FsRedirection', + 'Wow64SetThreadContext', + 'WriteFile', + 'WriteProcessMemory', + 'ZwDuplicateObject', + 'closesocket', + 'connect', + 'getaddrinfo', + 'lstrcmpA', + 'lstrcmpW', + 'recv', + 'send', + 'shutdown', + 'socket']) +interfaces = set(['IAction', + 'IActionCollection', + 'IApplicationActivationManager', + 'IBackgroundCopyCallback', + 'IBackgroundCopyError', + 'IBackgroundCopyFile', + 'IBackgroundCopyFile2', + 'IBackgroundCopyFile3', + 'IBackgroundCopyJob', + 'IBackgroundCopyJob2', + 'IBackgroundCopyManager', + 'IBindCtx', + 'ICallFrame', + 'ICallFrameEvents', + 'ICallFrameWalker', + 'ICallInterceptor', + 'IComHandlerAction', + 'IDispatch', + 'IEmailAction', + 'IEnumBackgroundCopyFiles', + 'IEnumBackgroundCopyJobs', + 'IEnumExplorerCommand', + 'IEnumMoniker', + 'IEnumShellItems', + 'IEnumString', + 'IEnumVARIANT', + 'IEnumWbemClassObject', + 'IExecAction', + 'IExplorerCommand', + 'IIdleSettings', + 'IMoniker', + 'INetFwPolicy2', + 'INetFwRule', + 'INetFwRules', + 'INetFwServiceRestriction', + 'INetworkSettings', + 'IPackageDebugSettings', + 'IPackageExecutionStateChangeNotification', + 'IPersist', + 'IPersistFile', + 'IPrincipal', + 'IRegisteredTask', + 'IRegisteredTaskCollection', + 'IRegistrationInfo', + 'IRepetitionPattern', + 'IRunningObjectTable', + 'IRunningTask', + 'IRunningTaskCollection', + 'IShellItem', + 'IShellItemArray', + 'IShellLinkA', + 'IShellLinkW', + 'IShowMessageAction', + 'IStream', + 'ITaskDefinition', + 'ITaskFolder', + 'ITaskFolderCollection', + 'ITaskNamedValueCollection', + 'ITaskNamedValuePair', + 'ITaskService', + 'ITaskSettings', + 'ITrigger', + 'ITriggerCollection', + 'ITypeComp', + 'ITypeInfo', + 'ITypeLib', + 'IUnknown', + 'IWbemCallResult', + 'IWbemClassObject', + 'IWbemContext', + 'IWbemLocator', + 'IWbemObjectSink', + 'IWbemObjectTextSrc', + 'IWbemQualifierSet', + 'IWbemServices', + 'IWebBrowser2']) + +def generate_walker(namelist, target_module): + def my_walker(): + for name in namelist: + yield name, getattr(target_module, name) + return my_walker + +from . import windef as windef_module +windef_walker = generate_walker(windef, windef_module) +from . import windef as windef_module +errors_walker = generate_walker(errors, windef_module) +from . import winstructs as winstructs_module +structs_walker = generate_walker(structs, winstructs_module) +from . import winstructs as winstructs_module +enums_walker = generate_walker(enums, winstructs_module) +from . import winfuncs as winfuncs_module +functions_walker = generate_walker(functions, winfuncs_module) +from . import interfaces as interfaces_module +interfaces_walker = generate_walker(interfaces, interfaces_module) diff --git a/pythonmemorymodule/windows/generated_def/ntstatus.py b/pythonmemorymodule/windows/generated_def/ntstatus.py new file mode 100644 index 0000000..8fac648 --- /dev/null +++ b/pythonmemorymodule/windows/generated_def/ntstatus.py @@ -0,0 +1,1830 @@ +import sys +import ctypes +from .flag import Flag + +is_py3 = (sys.version_info.major >= 3) + +class NtStatusException(WindowsError): + ALL_STATUS = {} + def __init__(self , code): + try: + x = self.ALL_STATUS[code] + except KeyError: + x = (code, 'UNKNOW_ERROR', 'Error non documented in ntstatus.py') + self.code = x[0] + self.name = x[1] + self.descr = x[2] + code_as_long = ctypes.c_long(x[0]).value + if is_py3: + vals = code_as_long, x[1], x[2], code_as_long + else: + vals = code_as_long, x[1], x[2] + return super(NtStatusException, self).__init__(*vals) + + def __str__(self): + return "{e.name}(0x{e.code:x}): {e.descr}".format(e=self) + + def __repr__(self): + return "{0}(0x{1:08x}, {2})".format(type(self).__name__, self.code, self.name) + + @classmethod + def register_ntstatus(cls, code, name, descr): + if code in cls.ALL_STATUS: + return # Use the first def + cls.ALL_STATUS[code] = (code, name, descr) + return Flag(name, code) + +STATUS_SUCCESS = NtStatusException.register_ntstatus(0x0, "STATUS_SUCCESS", "The operation completed successfully") +STATUS_WAIT_0 = NtStatusException.register_ntstatus(0x0, "STATUS_WAIT_0", "The caller specified WaitAny for WaitType and one of the dispatcher objects in the Object array has been set to the signaled state") +STATUS_WAIT_1 = NtStatusException.register_ntstatus(0x1, "STATUS_WAIT_1", "The caller specified WaitAny for WaitType and one of the dispatcher objects in the Object array has been set to the signaled state") +STATUS_WAIT_2 = NtStatusException.register_ntstatus(0x2, "STATUS_WAIT_2", "The caller specified WaitAny for WaitType and one of the dispatcher objects in the Object array has been set to the signaled state") +STATUS_WAIT_3 = NtStatusException.register_ntstatus(0x3, "STATUS_WAIT_3", "The caller specified WaitAny for WaitType and one of the dispatcher objects in the Object array has been set to the signaled state") +STATUS_WAIT_63 = NtStatusException.register_ntstatus(0x3f, "STATUS_WAIT_63", "The caller specified WaitAny for WaitType and one of the dispatcher objects in the Object array has been set to the signaled state") +STATUS_ABANDONED = NtStatusException.register_ntstatus(0x80, "STATUS_ABANDONED", "The caller attempted to wait for a mutex that has been abandoned") +STATUS_ABANDONED_WAIT_0 = NtStatusException.register_ntstatus(0x80, "STATUS_ABANDONED_WAIT_0", "The caller attempted to wait for a mutex that has been abandoned") +STATUS_ABANDONED_WAIT_63 = NtStatusException.register_ntstatus(0xbf, "STATUS_ABANDONED_WAIT_63", "The caller attempted to wait for a mutex that has been abandoned") +STATUS_USER_APC = NtStatusException.register_ntstatus(0xc0, "STATUS_USER_APC", "A user-mode APC was delivered before the given Interval expired") +STATUS_ALERTED = NtStatusException.register_ntstatus(0x101, "STATUS_ALERTED", "The delay completed because the thread was alerted") +STATUS_TIMEOUT = NtStatusException.register_ntstatus(0x102, "STATUS_TIMEOUT", "The given Timeout interval expired") +STATUS_PENDING = NtStatusException.register_ntstatus(0x103, "STATUS_PENDING", "The operation that was requested is pending completion") +STATUS_REPARSE = NtStatusException.register_ntstatus(0x104, "STATUS_REPARSE", "A reparse should be performed by the Object Manager because the name of the file resulted in a symbolic link") +STATUS_MORE_ENTRIES = NtStatusException.register_ntstatus(0x105, "STATUS_MORE_ENTRIES", "Returned by enumeration APIs to indicate more information is available to successive calls") +STATUS_NOT_ALL_ASSIGNED = NtStatusException.register_ntstatus(0x106, "STATUS_NOT_ALL_ASSIGNED", "Indicates not all privileges or groups that are referenced are assigned to the caller. This allows, for example, all privileges to be disabled without having to know exactly which privileges are assigned") +STATUS_SOME_NOT_MAPPED = NtStatusException.register_ntstatus(0x107, "STATUS_SOME_NOT_MAPPED", "Some of the information to be translated has not been translated") +STATUS_OPLOCK_BREAK_IN_PROGRESS = NtStatusException.register_ntstatus(0x108, "STATUS_OPLOCK_BREAK_IN_PROGRESS", "An open/create operation completed while an opportunistic lock (oplock) break is underway") +STATUS_VOLUME_MOUNTED = NtStatusException.register_ntstatus(0x109, "STATUS_VOLUME_MOUNTED", "A new volume has been mounted by a file system") +STATUS_RXACT_COMMITTED = NtStatusException.register_ntstatus(0x10a, "STATUS_RXACT_COMMITTED", "This success level status indicates that the transaction state already exists for the registry subtree but that a transaction commit was previously aborted. The commit has now been completed") +STATUS_NOTIFY_CLEANUP = NtStatusException.register_ntstatus(0x10b, "STATUS_NOTIFY_CLEANUP", "Indicates that a notify change request has been completed due to closing the handle that made the notify change request") +STATUS_NOTIFY_ENUM_DIR = NtStatusException.register_ntstatus(0x10c, "STATUS_NOTIFY_ENUM_DIR", "Indicates that a notify change request is being completed and that the information is not being returned in the caller's buffer. The caller now needs to enumerate the files to find the changes") +STATUS_NO_QUOTAS_FOR_ACCOUNT = NtStatusException.register_ntstatus(0x10d, "STATUS_NO_QUOTAS_FOR_ACCOUNT", "{No Quotas} No system quota limits are specifically set for this account") +STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED = NtStatusException.register_ntstatus(0x10e, "STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED", "{Connect Failure on Primary Transport} An attempt was made to connect to the remote server %hs on the primary transport, but the connection failed. The computer WAS able to connect on a secondary transport") +STATUS_PAGE_FAULT_TRANSITION = NtStatusException.register_ntstatus(0x110, "STATUS_PAGE_FAULT_TRANSITION", "The page fault was a transition fault") +STATUS_PAGE_FAULT_DEMAND_ZERO = NtStatusException.register_ntstatus(0x111, "STATUS_PAGE_FAULT_DEMAND_ZERO", "The page fault was a demand zero fault") +STATUS_PAGE_FAULT_COPY_ON_WRITE = NtStatusException.register_ntstatus(0x112, "STATUS_PAGE_FAULT_COPY_ON_WRITE", "The page fault was a demand zero fault") +STATUS_PAGE_FAULT_GUARD_PAGE = NtStatusException.register_ntstatus(0x113, "STATUS_PAGE_FAULT_GUARD_PAGE", "The page fault was a demand zero fault") +STATUS_PAGE_FAULT_PAGING_FILE = NtStatusException.register_ntstatus(0x114, "STATUS_PAGE_FAULT_PAGING_FILE", "The page fault was satisfied by reading from a secondary storage device") +STATUS_CACHE_PAGE_LOCKED = NtStatusException.register_ntstatus(0x115, "STATUS_CACHE_PAGE_LOCKED", "The cached page was locked during operation") +STATUS_CRASH_DUMP = NtStatusException.register_ntstatus(0x116, "STATUS_CRASH_DUMP", "The crash dump exists in a paging file") +STATUS_BUFFER_ALL_ZEROS = NtStatusException.register_ntstatus(0x117, "STATUS_BUFFER_ALL_ZEROS", "The specified buffer contains all zeros") +STATUS_REPARSE_OBJECT = NtStatusException.register_ntstatus(0x118, "STATUS_REPARSE_OBJECT", "A reparse should be performed by the Object Manager because the name of the file resulted in a symbolic link") +STATUS_RESOURCE_REQUIREMENTS_CHANGED = NtStatusException.register_ntstatus(0x119, "STATUS_RESOURCE_REQUIREMENTS_CHANGED", "The device has succeeded a query-stop and its resource requirements have changed") +STATUS_TRANSLATION_COMPLETE = NtStatusException.register_ntstatus(0x120, "STATUS_TRANSLATION_COMPLETE", "The translator has translated these resources into the global space and no additional translations should be performed") +STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY = NtStatusException.register_ntstatus(0x121, "STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY", "The directory service evaluated group memberships locally, because it was unable to contact a global catalog server") +STATUS_NOTHING_TO_TERMINATE = NtStatusException.register_ntstatus(0x122, "STATUS_NOTHING_TO_TERMINATE", "A process being terminated has no threads to terminate") +STATUS_PROCESS_NOT_IN_JOB = NtStatusException.register_ntstatus(0x123, "STATUS_PROCESS_NOT_IN_JOB", "The specified process is not part of a job") +STATUS_PROCESS_IN_JOB = NtStatusException.register_ntstatus(0x124, "STATUS_PROCESS_IN_JOB", "The specified process is part of a job") +STATUS_VOLSNAP_HIBERNATE_READY = NtStatusException.register_ntstatus(0x125, "STATUS_VOLSNAP_HIBERNATE_READY", "{Volume Shadow Copy Service} The system is now ready for hibernation") +STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY = NtStatusException.register_ntstatus(0x126, "STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY", "A file system or file system filter driver has successfully completed an FsFilter operation") +STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED = NtStatusException.register_ntstatus(0x127, "STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED", "The specified interrupt vector was already connected") +STATUS_INTERRUPT_STILL_CONNECTED = NtStatusException.register_ntstatus(0x128, "STATUS_INTERRUPT_STILL_CONNECTED", "The specified interrupt vector is still connected") +STATUS_PROCESS_CLONED = NtStatusException.register_ntstatus(0x129, "STATUS_PROCESS_CLONED", "The current process is a cloned process") +STATUS_FILE_LOCKED_WITH_ONLY_READERS = NtStatusException.register_ntstatus(0x12a, "STATUS_FILE_LOCKED_WITH_ONLY_READERS", "The file was locked and all users of the file can only read") +STATUS_FILE_LOCKED_WITH_WRITERS = NtStatusException.register_ntstatus(0x12b, "STATUS_FILE_LOCKED_WITH_WRITERS", "The file was locked and at least one user of the file can write") +STATUS_RESOURCEMANAGER_READ_ONLY = NtStatusException.register_ntstatus(0x202, "STATUS_RESOURCEMANAGER_READ_ONLY", "The specified ResourceManager made no changes or updates to the resource under this transaction") +STATUS_WAIT_FOR_OPLOCK = NtStatusException.register_ntstatus(0x367, "STATUS_WAIT_FOR_OPLOCK", "An operation is blocked and waiting for an oplock") +DBG_EXCEPTION_HANDLED = NtStatusException.register_ntstatus(0x10001, "DBG_EXCEPTION_HANDLED", "Debugger handled the exception") +DBG_CONTINUE = NtStatusException.register_ntstatus(0x10002, "DBG_CONTINUE", "The debugger continued") +STATUS_FLT_IO_COMPLETE = NtStatusException.register_ntstatus(0x1c0001, "STATUS_FLT_IO_COMPLETE", "The IO was completed by a filter") +STATUS_FILE_NOT_AVAILABLE = NtStatusException.register_ntstatus(0xc0000467, "STATUS_FILE_NOT_AVAILABLE", "The file is temporarily unavailable") +STATUS_CALLBACK_RETURNED_THREAD_AFFINITY = NtStatusException.register_ntstatus(0xc0000721, "STATUS_CALLBACK_RETURNED_THREAD_AFFINITY", "A threadpool worker thread entered a callback at thread affinity %p and exited at affinity %p. This is unexpected, indicating that the callback missed restoring the priority") +STATUS_OBJECT_NAME_EXISTS = NtStatusException.register_ntstatus(0x40000000, "STATUS_OBJECT_NAME_EXISTS", "{Object Exists} An attempt was made to create an object but the object name already exists") +STATUS_THREAD_WAS_SUSPENDED = NtStatusException.register_ntstatus(0x40000001, "STATUS_THREAD_WAS_SUSPENDED", "{Thread Suspended} A thread termination occurred while the thread was suspended. The thread resumed, and termination proceeded") +STATUS_WORKING_SET_LIMIT_RANGE = NtStatusException.register_ntstatus(0x40000002, "STATUS_WORKING_SET_LIMIT_RANGE", "{Working Set Range Error} An attempt was made to set the working set minimum or maximum to values that are outside the allowable range") +STATUS_IMAGE_NOT_AT_BASE = NtStatusException.register_ntstatus(0x40000003, "STATUS_IMAGE_NOT_AT_BASE", "{Image Relocated} An image file could not be mapped at the address that is specified in the image file. Local fixes must be performed on this image") +STATUS_RXACT_STATE_CREATED = NtStatusException.register_ntstatus(0x40000004, "STATUS_RXACT_STATE_CREATED", "This informational level status indicates that a specified registry subtree transaction state did not yet exist and had to be created") +STATUS_SEGMENT_NOTIFICATION = NtStatusException.register_ntstatus(0x40000005, "STATUS_SEGMENT_NOTIFICATION", "{Segment Load} A virtual DOS machine (VDM) is loading, unloading, or moving an MS-DOS or Win16 program segment image. An exception is raised so that a debugger can load, unload, or track symbols and breakpoints within these 16-bit segments") +STATUS_LOCAL_USER_SESSION_KEY = NtStatusException.register_ntstatus(0x40000006, "STATUS_LOCAL_USER_SESSION_KEY", "{Local Session Key} A user session key was requested for a local remote procedure call (RPC) connection. The session key that is returned is a constant value and not unique to this connection") +STATUS_BAD_CURRENT_DIRECTORY = NtStatusException.register_ntstatus(0x40000007, "STATUS_BAD_CURRENT_DIRECTORY", "{Invalid Current Directory} The process cannot switch to the startup current directory %hs. Select OK to set the current directory to %hs, or select CANCEL to exit") +STATUS_SERIAL_MORE_WRITES = NtStatusException.register_ntstatus(0x40000008, "STATUS_SERIAL_MORE_WRITES", "{Serial IOCTL Complete} A serial I/O operation was completed by another write to a serial port. (The IOCTL_SERIAL_XOFF_COUNTER reached zero.") +STATUS_REGISTRY_RECOVERED = NtStatusException.register_ntstatus(0x40000009, "STATUS_REGISTRY_RECOVERED", "{Registry Recovery} One of the files that contains the system registry data had to be recovered by using a log or alternate copy. The recovery was successful") +STATUS_FT_READ_RECOVERY_FROM_BACKUP = NtStatusException.register_ntstatus(0x4000000a, "STATUS_FT_READ_RECOVERY_FROM_BACKUP", "{Redundant Read} To satisfy a read request, the Windows NT operating system fault-tolerant file system successfully read the requested data from a redundant copy. This was done because the file system encountered a failure on a member of the fault-tolerant volume but was unable to reassign the failing area of the device") +STATUS_FT_WRITE_RECOVERY = NtStatusException.register_ntstatus(0x4000000b, "STATUS_FT_WRITE_RECOVERY", "{Redundant Write} To satisfy a write request, the Windows NT fault-tolerant file system successfully wrote a redundant copy of the information. This was done because the file system encountered a failure on a member of the fault-tolerant volume but was unable to reassign the failing area of the device") +STATUS_SERIAL_COUNTER_TIMEOUT = NtStatusException.register_ntstatus(0x4000000c, "STATUS_SERIAL_COUNTER_TIMEOUT", "{Serial IOCTL Timeout} A serial I/O operation completed because the time-out period expired. (The IOCTL_SERIAL_XOFF_COUNTER had not reached zero.") +STATUS_NULL_LM_PASSWORD = NtStatusException.register_ntstatus(0x4000000d, "STATUS_NULL_LM_PASSWORD", "{Password Too Complex} The Windows password is too complex to be converted to a LAN Manager password. The LAN Manager password that returned is a NULL string") +STATUS_IMAGE_MACHINE_TYPE_MISMATCH = NtStatusException.register_ntstatus(0x4000000e, "STATUS_IMAGE_MACHINE_TYPE_MISMATCH", "{Machine Type Mismatch} The image file %hs is valid but is for a machine type other than the current machine. Select OK to continue, or CANCEL to fail the DLL load") +STATUS_RECEIVE_PARTIAL = NtStatusException.register_ntstatus(0x4000000f, "STATUS_RECEIVE_PARTIAL", "{Partial Data Received} The network transport returned partial data to its client. The remaining data will be sent later") +STATUS_RECEIVE_EXPEDITED = NtStatusException.register_ntstatus(0x40000010, "STATUS_RECEIVE_EXPEDITED", "{Expedited Data Received} The network transport returned data to its client that was marked as expedited by the remote system") +STATUS_RECEIVE_PARTIAL_EXPEDITED = NtStatusException.register_ntstatus(0x40000011, "STATUS_RECEIVE_PARTIAL_EXPEDITED", "{Partial Expedited Data Received} The network transport returned partial data to its client and this data was marked as expedited by the remote system. The remaining data will be sent later") +STATUS_EVENT_DONE = NtStatusException.register_ntstatus(0x40000012, "STATUS_EVENT_DONE", "{TDI Event Done} The TDI indication has completed successfully") +STATUS_EVENT_PENDING = NtStatusException.register_ntstatus(0x40000013, "STATUS_EVENT_PENDING", "{TDI Event Pending} The TDI indication has entered the pending state") +STATUS_CHECKING_FILE_SYSTEM = NtStatusException.register_ntstatus(0x40000014, "STATUS_CHECKING_FILE_SYSTEM", "Checking file system on %wZ") +STATUS_FATAL_APP_EXIT = NtStatusException.register_ntstatus(0x40000015, "STATUS_FATAL_APP_EXIT", "{Fatal Application Exit} %h") +STATUS_PREDEFINED_HANDLE = NtStatusException.register_ntstatus(0x40000016, "STATUS_PREDEFINED_HANDLE", "The specified registry key is referenced by a predefined handle") +STATUS_WAS_UNLOCKED = NtStatusException.register_ntstatus(0x40000017, "STATUS_WAS_UNLOCKED", "{Page Unlocked} The page protection of a locked page was changed to 'No Access' and the page was unlocked from memory and from the process") +STATUS_SERVICE_NOTIFICATION = NtStatusException.register_ntstatus(0x40000018, "STATUS_SERVICE_NOTIFICATION", "%h") +STATUS_WAS_LOCKED = NtStatusException.register_ntstatus(0x40000019, "STATUS_WAS_LOCKED", "{Page Locked} One of the pages to lock was already locked") +STATUS_LOG_HARD_ERROR = NtStatusException.register_ntstatus(0x4000001a, "STATUS_LOG_HARD_ERROR", "Application popup: %1 : %") +STATUS_ALREADY_WIN32 = NtStatusException.register_ntstatus(0x4000001b, "STATUS_ALREADY_WIN32", "A Win32 process already exists") +STATUS_WX86_UNSIMULATE = NtStatusException.register_ntstatus(0x4000001c, "STATUS_WX86_UNSIMULATE", "An exception status code that is used by the Win32 x86 emulation subsystem") +STATUS_WX86_CONTINUE = NtStatusException.register_ntstatus(0x4000001d, "STATUS_WX86_CONTINUE", "An exception status code that is used by the Win32 x86 emulation subsystem") +STATUS_WX86_SINGLE_STEP = NtStatusException.register_ntstatus(0x4000001e, "STATUS_WX86_SINGLE_STEP", "An exception status code that is used by the Win32 x86 emulation subsystem") +STATUS_WX86_BREAKPOINT = NtStatusException.register_ntstatus(0x4000001f, "STATUS_WX86_BREAKPOINT", "An exception status code that is used by the Win32 x86 emulation subsystem") +STATUS_WX86_EXCEPTION_CONTINUE = NtStatusException.register_ntstatus(0x40000020, "STATUS_WX86_EXCEPTION_CONTINUE", "An exception status code that is used by the Win32 x86 emulation subsystem") +STATUS_WX86_EXCEPTION_LASTCHANCE = NtStatusException.register_ntstatus(0x40000021, "STATUS_WX86_EXCEPTION_LASTCHANCE", "An exception status code that is used by the Win32 x86 emulation subsystem") +STATUS_WX86_EXCEPTION_CHAIN = NtStatusException.register_ntstatus(0x40000022, "STATUS_WX86_EXCEPTION_CHAIN", "An exception status code that is used by the Win32 x86 emulation subsystem") +STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE = NtStatusException.register_ntstatus(0x40000023, "STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE", "{Machine Type Mismatch} The image file %hs is valid but is for a machine type other than the current machine") +STATUS_NO_YIELD_PERFORMED = NtStatusException.register_ntstatus(0x40000024, "STATUS_NO_YIELD_PERFORMED", "A yield execution was performed and no thread was available to run") +STATUS_TIMER_RESUME_IGNORED = NtStatusException.register_ntstatus(0x40000025, "STATUS_TIMER_RESUME_IGNORED", "The resume flag to a timer API was ignored") +STATUS_ARBITRATION_UNHANDLED = NtStatusException.register_ntstatus(0x40000026, "STATUS_ARBITRATION_UNHANDLED", "The arbiter has deferred arbitration of these resources to its parent") +STATUS_CARDBUS_NOT_SUPPORTED = NtStatusException.register_ntstatus(0x40000027, "STATUS_CARDBUS_NOT_SUPPORTED", "The device has detected a CardBus card in its slot") +STATUS_WX86_CREATEWX86TIB = NtStatusException.register_ntstatus(0x40000028, "STATUS_WX86_CREATEWX86TIB", "An exception status code that is used by the Win32 x86 emulation subsystem") +STATUS_MP_PROCESSOR_MISMATCH = NtStatusException.register_ntstatus(0x40000029, "STATUS_MP_PROCESSOR_MISMATCH", "The CPUs in this multiprocessor system are not all the same revision level. To use all processors, the operating system restricts itself to the features of the least capable processor in the system. If problems occur with this system, contact the CPU manufacturer to see if this mix of processors is supported") +STATUS_HIBERNATED = NtStatusException.register_ntstatus(0x4000002a, "STATUS_HIBERNATED", "The system was put into hibernation") +STATUS_RESUME_HIBERNATION = NtStatusException.register_ntstatus(0x4000002b, "STATUS_RESUME_HIBERNATION", "The system was resumed from hibernation") +STATUS_FIRMWARE_UPDATED = NtStatusException.register_ntstatus(0x4000002c, "STATUS_FIRMWARE_UPDATED", "Windows has detected that the system firmware (BIOS) was updated [previous firmware date = %2, current firmware date %3]") +STATUS_DRIVERS_LEAKING_LOCKED_PAGES = NtStatusException.register_ntstatus(0x4000002d, "STATUS_DRIVERS_LEAKING_LOCKED_PAGES", "A device driver is leaking locked I/O pages and is causing system degradation. The system has automatically enabled the tracking code to try and catch the culprit") +STATUS_MESSAGE_RETRIEVED = NtStatusException.register_ntstatus(0x4000002e, "STATUS_MESSAGE_RETRIEVED", "The ALPC message being canceled has already been retrieved from the queue on the other side") +STATUS_SYSTEM_POWERSTATE_TRANSITION = NtStatusException.register_ntstatus(0x4000002f, "STATUS_SYSTEM_POWERSTATE_TRANSITION", "The system power state is transitioning from %2 to %3") +STATUS_ALPC_CHECK_COMPLETION_LIST = NtStatusException.register_ntstatus(0x40000030, "STATUS_ALPC_CHECK_COMPLETION_LIST", "The receive operation was successful. Check the ALPC completion list for the received message") +STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION = NtStatusException.register_ntstatus(0x40000031, "STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION", "The system power state is transitioning from %2 to %3 but could enter %4") +STATUS_ACCESS_AUDIT_BY_POLICY = NtStatusException.register_ntstatus(0x40000032, "STATUS_ACCESS_AUDIT_BY_POLICY", "Access to %1 is monitored by policy rule %2") +STATUS_ABANDON_HIBERFILE = NtStatusException.register_ntstatus(0x40000033, "STATUS_ABANDON_HIBERFILE", "A valid hibernation file has been invalidated and should be abandoned") +STATUS_BIZRULES_NOT_ENABLED = NtStatusException.register_ntstatus(0x40000034, "STATUS_BIZRULES_NOT_ENABLED", "Business rule scripts are disabled for the calling application") +STATUS_WAKE_SYSTEM = NtStatusException.register_ntstatus(0x40000294, "STATUS_WAKE_SYSTEM", "The system has awoken") +STATUS_DS_SHUTTING_DOWN = NtStatusException.register_ntstatus(0x40000370, "STATUS_DS_SHUTTING_DOWN", "The directory service is shutting down") +DBG_REPLY_LATER = NtStatusException.register_ntstatus(0x40010001, "DBG_REPLY_LATER", "Debugger will reply later") +DBG_UNABLE_TO_PROVIDE_HANDLE = NtStatusException.register_ntstatus(0x40010002, "DBG_UNABLE_TO_PROVIDE_HANDLE", "Debugger cannot provide a handle") +DBG_TERMINATE_THREAD = NtStatusException.register_ntstatus(0x40010003, "DBG_TERMINATE_THREAD", "Debugger terminated the thread") +DBG_TERMINATE_PROCESS = NtStatusException.register_ntstatus(0x40010004, "DBG_TERMINATE_PROCESS", "Debugger terminated the process") +DBG_CONTROL_C = NtStatusException.register_ntstatus(0x40010005, "DBG_CONTROL_C", "Debugger obtained control of C") +DBG_PRINTEXCEPTION_C = NtStatusException.register_ntstatus(0x40010006, "DBG_PRINTEXCEPTION_C", "Debugger printed an exception on control C") +DBG_RIPEXCEPTION = NtStatusException.register_ntstatus(0x40010007, "DBG_RIPEXCEPTION", "Debugger received a RIP exception") +DBG_CONTROL_BREAK = NtStatusException.register_ntstatus(0x40010008, "DBG_CONTROL_BREAK", "Debugger received a control break") +DBG_COMMAND_EXCEPTION = NtStatusException.register_ntstatus(0x40010009, "DBG_COMMAND_EXCEPTION", "Debugger command communication exception") +RPC_NT_UUID_LOCAL_ONLY = NtStatusException.register_ntstatus(0x40020056, "RPC_NT_UUID_LOCAL_ONLY", "A UUID that is valid only on this computer has been allocated") +RPC_NT_SEND_INCOMPLETE = NtStatusException.register_ntstatus(0x400200af, "RPC_NT_SEND_INCOMPLETE", "Some data remains to be sent in the request buffer") +STATUS_CTX_CDM_CONNECT = NtStatusException.register_ntstatus(0x400a0004, "STATUS_CTX_CDM_CONNECT", "The Client Drive Mapping Service has connected on Terminal Connection") +STATUS_CTX_CDM_DISCONNECT = NtStatusException.register_ntstatus(0x400a0005, "STATUS_CTX_CDM_DISCONNECT", "The Client Drive Mapping Service has disconnected on Terminal Connection") +STATUS_SXS_RELEASE_ACTIVATION_CONTEXT = NtStatusException.register_ntstatus(0x4015000d, "STATUS_SXS_RELEASE_ACTIVATION_CONTEXT", "A kernel mode component is releasing a reference on an activation context") +STATUS_RECOVERY_NOT_NEEDED = NtStatusException.register_ntstatus(0x40190034, "STATUS_RECOVERY_NOT_NEEDED", "The transactional resource manager is already consistent. Recovery is not needed") +STATUS_RM_ALREADY_STARTED = NtStatusException.register_ntstatus(0x40190035, "STATUS_RM_ALREADY_STARTED", "The transactional resource manager has already been started") +STATUS_LOG_NO_RESTART = NtStatusException.register_ntstatus(0x401a000c, "STATUS_LOG_NO_RESTART", "The log service encountered a log stream with no restart area") +STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST = NtStatusException.register_ntstatus(0x401b00ec, "STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST", "{Display Driver Recovered From Failure} The %hs display driver has detected a failure and recovered from it. Some graphical operations may have failed. The next time you restart the machine, a dialog box appears, giving you an opportunity to upload data about this failure to Microsoft") +STATUS_GRAPHICS_PARTIAL_DATA_POPULATED = NtStatusException.register_ntstatus(0x401e000a, "STATUS_GRAPHICS_PARTIAL_DATA_POPULATED", "The specified buffer is not big enough to contain the entire requested dataset. Partial data is populated up to the size of the buffer. The caller needs to provide a buffer of the size as specified in the partially populated buffer's content (interface specific)") +STATUS_GRAPHICS_DRIVER_MISMATCH = NtStatusException.register_ntstatus(0x401e0117, "STATUS_GRAPHICS_DRIVER_MISMATCH", "The kernel driver detected a version mismatch between it and the user mode driver") +STATUS_GRAPHICS_MODE_NOT_PINNED = NtStatusException.register_ntstatus(0x401e0307, "STATUS_GRAPHICS_MODE_NOT_PINNED", "No mode is pinned on the specified VidPN source/target") +STATUS_GRAPHICS_NO_PREFERRED_MODE = NtStatusException.register_ntstatus(0x401e031e, "STATUS_GRAPHICS_NO_PREFERRED_MODE", "The specified mode set does not specify a preference for one of its modes") +STATUS_GRAPHICS_DATASET_IS_EMPTY = NtStatusException.register_ntstatus(0x401e034b, "STATUS_GRAPHICS_DATASET_IS_EMPTY", "The specified dataset (for example, mode set, frequency range set, descriptor set, or topology) is empty") +STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET = NtStatusException.register_ntstatus(0x401e034c, "STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET", "The specified dataset (for example, mode set, frequency range set, descriptor set, or topology) does not contain any more elements") +STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED = NtStatusException.register_ntstatus(0x401e0351, "STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED", "The specified content transformation is not pinned on the specified VidPN present path") +STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS = NtStatusException.register_ntstatus(0x401e042f, "STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS", "The child device presence was not reliably detected") +STATUS_GRAPHICS_LEADLINK_START_DEFERRED = NtStatusException.register_ntstatus(0x401e0437, "STATUS_GRAPHICS_LEADLINK_START_DEFERRED", "Starting the lead adapter in a linked configuration has been temporarily deferred") +STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY = NtStatusException.register_ntstatus(0x401e0439, "STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY", "The display adapter is being polled for children too frequently at the same polling level") +STATUS_GRAPHICS_START_DEFERRED = NtStatusException.register_ntstatus(0x401e043a, "STATUS_GRAPHICS_START_DEFERRED", "Starting the adapter has been temporarily deferred") +STATUS_NDIS_INDICATION_REQUIRED = NtStatusException.register_ntstatus(0x40230001, "STATUS_NDIS_INDICATION_REQUIRED", "The request will be completed later by an NDIS status indication") +STATUS_GUARD_PAGE_VIOLATION = NtStatusException.register_ntstatus(0x80000001, "STATUS_GUARD_PAGE_VIOLATION", "{EXCEPTION} Guard Page Exception A page of memory that marks the end of a data structure, such as a stack or an array, has been accessed") +STATUS_DATATYPE_MISALIGNMENT = NtStatusException.register_ntstatus(0x80000002, "STATUS_DATATYPE_MISALIGNMENT", "{EXCEPTION} Alignment Fault A data type misalignment was detected in a load or store instruction") +STATUS_BREAKPOINT = NtStatusException.register_ntstatus(0x80000003, "STATUS_BREAKPOINT", "{EXCEPTION} Breakpoint A breakpoint has been reached") +STATUS_SINGLE_STEP = NtStatusException.register_ntstatus(0x80000004, "STATUS_SINGLE_STEP", "{EXCEPTION} Single Step A single step or trace operation has just been completed") +STATUS_BUFFER_OVERFLOW = NtStatusException.register_ntstatus(0x80000005, "STATUS_BUFFER_OVERFLOW", "{Buffer Overflow} The data was too large to fit into the specified buffer") +STATUS_NO_MORE_FILES = NtStatusException.register_ntstatus(0x80000006, "STATUS_NO_MORE_FILES", "{No More Files} No more files were found which match the file specification") +STATUS_WAKE_SYSTEM_DEBUGGER = NtStatusException.register_ntstatus(0x80000007, "STATUS_WAKE_SYSTEM_DEBUGGER", "{Kernel Debugger Awakened} The system debugger was awakened by an interrupt") +STATUS_HANDLES_CLOSED = NtStatusException.register_ntstatus(0x8000000a, "STATUS_HANDLES_CLOSED", "{Handles Closed} Handles to objects have been automatically closed because of the requested operation") +STATUS_NO_INHERITANCE = NtStatusException.register_ntstatus(0x8000000b, "STATUS_NO_INHERITANCE", "{Non-Inheritable ACL} An access control list (ACL) contains no components that can be inherited") +STATUS_GUID_SUBSTITUTION_MADE = NtStatusException.register_ntstatus(0x8000000c, "STATUS_GUID_SUBSTITUTION_MADE", "{GUID Substitution} During the translation of a globally unique identifier (GUID) to a Windows security ID (SID), no administratively defined GUID prefix was found. A substitute prefix was used, which will not compromise system security. However, this may provide a more restrictive access than intended") +STATUS_PARTIAL_COPY = NtStatusException.register_ntstatus(0x8000000d, "STATUS_PARTIAL_COPY", "Because of protection conflicts, not all the requested bytes could be copied") +STATUS_DEVICE_PAPER_EMPTY = NtStatusException.register_ntstatus(0x8000000e, "STATUS_DEVICE_PAPER_EMPTY", "{Out of Paper} The printer is out of paper") +STATUS_DEVICE_POWERED_OFF = NtStatusException.register_ntstatus(0x8000000f, "STATUS_DEVICE_POWERED_OFF", "{Device Power Is Off} The printer power has been turned off") +STATUS_DEVICE_OFF_LINE = NtStatusException.register_ntstatus(0x80000010, "STATUS_DEVICE_OFF_LINE", "{Device Offline} The printer has been taken offline") +STATUS_DEVICE_BUSY = NtStatusException.register_ntstatus(0x80000011, "STATUS_DEVICE_BUSY", "{Device Busy} The device is currently busy") +STATUS_NO_MORE_EAS = NtStatusException.register_ntstatus(0x80000012, "STATUS_NO_MORE_EAS", "{No More EAs} No more extended attributes (EAs) were found for the file") +STATUS_INVALID_EA_NAME = NtStatusException.register_ntstatus(0x80000013, "STATUS_INVALID_EA_NAME", "{Illegal EA} The specified extended attribute (EA) name contains at least one illegal character") +STATUS_EA_LIST_INCONSISTENT = NtStatusException.register_ntstatus(0x80000014, "STATUS_EA_LIST_INCONSISTENT", "{Inconsistent EA List} The extended attribute (EA) list is inconsistent") +STATUS_INVALID_EA_FLAG = NtStatusException.register_ntstatus(0x80000015, "STATUS_INVALID_EA_FLAG", "{Invalid EA Flag} An invalid extended attribute (EA) flag was set") +STATUS_VERIFY_REQUIRED = NtStatusException.register_ntstatus(0x80000016, "STATUS_VERIFY_REQUIRED", "{Verifying Disk} The media has changed and a verify operation is in progress; therefore, no reads or writes may be performed to the device, except those that are used in the verify operation") +STATUS_EXTRANEOUS_INFORMATION = NtStatusException.register_ntstatus(0x80000017, "STATUS_EXTRANEOUS_INFORMATION", "{Too Much Information} The specified access control list (ACL) contained more information than was expected") +STATUS_RXACT_COMMIT_NECESSARY = NtStatusException.register_ntstatus(0x80000018, "STATUS_RXACT_COMMIT_NECESSARY", "This warning level status indicates that the transaction state already exists for the registry subtree, but that a transaction commit was previously aborted. The commit has NOT been completed but has not been rolled back either; therefore, it may still be committed, if needed") +STATUS_NO_MORE_ENTRIES = NtStatusException.register_ntstatus(0x8000001a, "STATUS_NO_MORE_ENTRIES", "{No More Entries} No more entries are available from an enumeration operation") +STATUS_FILEMARK_DETECTED = NtStatusException.register_ntstatus(0x8000001b, "STATUS_FILEMARK_DETECTED", "{Filemark Found} A filemark was detected") +STATUS_MEDIA_CHANGED = NtStatusException.register_ntstatus(0x8000001c, "STATUS_MEDIA_CHANGED", "{Media Changed} The media may have changed") +STATUS_BUS_RESET = NtStatusException.register_ntstatus(0x8000001d, "STATUS_BUS_RESET", "{I/O Bus Reset} An I/O bus reset was detected") +STATUS_END_OF_MEDIA = NtStatusException.register_ntstatus(0x8000001e, "STATUS_END_OF_MEDIA", "{End of Media} The end of the media was encountered") +STATUS_BEGINNING_OF_MEDIA = NtStatusException.register_ntstatus(0x8000001f, "STATUS_BEGINNING_OF_MEDIA", "The beginning of a tape or partition has been detected") +STATUS_MEDIA_CHECK = NtStatusException.register_ntstatus(0x80000020, "STATUS_MEDIA_CHECK", "{Media Changed} The media may have changed") +STATUS_SETMARK_DETECTED = NtStatusException.register_ntstatus(0x80000021, "STATUS_SETMARK_DETECTED", "A tape access reached a set mark") +STATUS_NO_DATA_DETECTED = NtStatusException.register_ntstatus(0x80000022, "STATUS_NO_DATA_DETECTED", "During a tape access, the end of the data written is reached") +STATUS_REDIRECTOR_HAS_OPEN_HANDLES = NtStatusException.register_ntstatus(0x80000023, "STATUS_REDIRECTOR_HAS_OPEN_HANDLES", "The redirector is in use and cannot be unloaded") +STATUS_SERVER_HAS_OPEN_HANDLES = NtStatusException.register_ntstatus(0x80000024, "STATUS_SERVER_HAS_OPEN_HANDLES", "The server is in use and cannot be unloaded") +STATUS_ALREADY_DISCONNECTED = NtStatusException.register_ntstatus(0x80000025, "STATUS_ALREADY_DISCONNECTED", "The specified connection has already been disconnected") +STATUS_LONGJUMP = NtStatusException.register_ntstatus(0x80000026, "STATUS_LONGJUMP", "A long jump has been executed") +STATUS_CLEANER_CARTRIDGE_INSTALLED = NtStatusException.register_ntstatus(0x80000027, "STATUS_CLEANER_CARTRIDGE_INSTALLED", "A cleaner cartridge is present in the tape library") +STATUS_PLUGPLAY_QUERY_VETOED = NtStatusException.register_ntstatus(0x80000028, "STATUS_PLUGPLAY_QUERY_VETOED", "The Plug and Play query operation was not successful") +STATUS_UNWIND_CONSOLIDATE = NtStatusException.register_ntstatus(0x80000029, "STATUS_UNWIND_CONSOLIDATE", "A frame consolidation has been executed") +STATUS_REGISTRY_HIVE_RECOVERED = NtStatusException.register_ntstatus(0x8000002a, "STATUS_REGISTRY_HIVE_RECOVERED", "{Registry Hive Recovered} The registry hive (file): %hs was corrupted and it has been recovered. Some data might have been lost") +STATUS_DLL_MIGHT_BE_INSECURE = NtStatusException.register_ntstatus(0x8000002b, "STATUS_DLL_MIGHT_BE_INSECURE", "The application is attempting to run executable code from the module %hs. This may be insecure. An alternative, %hs, is available. Should the application use the secure module %hs") +STATUS_DLL_MIGHT_BE_INCOMPATIBLE = NtStatusException.register_ntstatus(0x8000002c, "STATUS_DLL_MIGHT_BE_INCOMPATIBLE", "The application is loading executable code from the module %hs. This is secure but may be incompatible with previous releases of the operating system. An alternative, %hs, is available. Should the application use the secure module %hs") +STATUS_STOPPED_ON_SYMLINK = NtStatusException.register_ntstatus(0x8000002d, "STATUS_STOPPED_ON_SYMLINK", "The create operation stopped after reaching a symbolic link") +STATUS_DEVICE_REQUIRES_CLEANING = NtStatusException.register_ntstatus(0x80000288, "STATUS_DEVICE_REQUIRES_CLEANING", "The device has indicated that cleaning is necessary") +STATUS_DEVICE_DOOR_OPEN = NtStatusException.register_ntstatus(0x80000289, "STATUS_DEVICE_DOOR_OPEN", "The device has indicated that its door is open. Further operations require it closed and secured") +STATUS_DATA_LOST_REPAIR = NtStatusException.register_ntstatus(0x80000803, "STATUS_DATA_LOST_REPAIR", "Windows discovered a corruption in the file %hs. This file has now been repaired. Check if any data in the file was lost because of the corruption") +DBG_EXCEPTION_NOT_HANDLED = NtStatusException.register_ntstatus(0x80010001, "DBG_EXCEPTION_NOT_HANDLED", "Debugger did not handle the exception") +STATUS_CLUSTER_NODE_ALREADY_UP = NtStatusException.register_ntstatus(0x80130001, "STATUS_CLUSTER_NODE_ALREADY_UP", "The cluster node is already up") +STATUS_CLUSTER_NODE_ALREADY_DOWN = NtStatusException.register_ntstatus(0x80130002, "STATUS_CLUSTER_NODE_ALREADY_DOWN", "The cluster node is already down") +STATUS_CLUSTER_NETWORK_ALREADY_ONLINE = NtStatusException.register_ntstatus(0x80130003, "STATUS_CLUSTER_NETWORK_ALREADY_ONLINE", "The cluster network is already online") +STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE = NtStatusException.register_ntstatus(0x80130004, "STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE", "The cluster network is already offline") +STATUS_CLUSTER_NODE_ALREADY_MEMBER = NtStatusException.register_ntstatus(0x80130005, "STATUS_CLUSTER_NODE_ALREADY_MEMBER", "The cluster node is already a member of the cluster") +STATUS_COULD_NOT_RESIZE_LOG = NtStatusException.register_ntstatus(0x80190009, "STATUS_COULD_NOT_RESIZE_LOG", "The log could not be set to the requested size") +STATUS_NO_TXF_METADATA = NtStatusException.register_ntstatus(0x80190029, "STATUS_NO_TXF_METADATA", "There is no transaction metadata on the file") +STATUS_CANT_RECOVER_WITH_HANDLE_OPEN = NtStatusException.register_ntstatus(0x80190031, "STATUS_CANT_RECOVER_WITH_HANDLE_OPEN", "The file cannot be recovered because there is a handle still open on it") +STATUS_TXF_METADATA_ALREADY_PRESENT = NtStatusException.register_ntstatus(0x80190041, "STATUS_TXF_METADATA_ALREADY_PRESENT", "Transaction metadata is already present on this file and cannot be superseded") +STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET = NtStatusException.register_ntstatus(0x80190042, "STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET", "A transaction scope could not be entered because the scope handler has not been initialized") +STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED = NtStatusException.register_ntstatus(0x801b00eb, "STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED", "{Display Driver Stopped Responding and recovered} The %hs display driver has stopped working normally. The recovery had been performed") +STATUS_FLT_BUFFER_TOO_SMALL = NtStatusException.register_ntstatus(0x801c0001, "STATUS_FLT_BUFFER_TOO_SMALL", "{Buffer too small} The buffer is too small to contain the entry. No information has been written to the buffer") +STATUS_FVE_PARTIAL_METADATA = NtStatusException.register_ntstatus(0x80210001, "STATUS_FVE_PARTIAL_METADATA", "Volume metadata read or write is incomplete") +STATUS_FVE_TRANSIENT_STATE = NtStatusException.register_ntstatus(0x80210002, "STATUS_FVE_TRANSIENT_STATE", "BitLocker encryption keys were ignored because the volume was in a transient state") +STATUS_UNSUCCESSFUL = NtStatusException.register_ntstatus(0xc0000001, "STATUS_UNSUCCESSFUL", "{Operation Failed} The requested operation was unsuccessful") +STATUS_NOT_IMPLEMENTED = NtStatusException.register_ntstatus(0xc0000002, "STATUS_NOT_IMPLEMENTED", "{Not Implemented} The requested operation is not implemented") +STATUS_INVALID_INFO_CLASS = NtStatusException.register_ntstatus(0xc0000003, "STATUS_INVALID_INFO_CLASS", "{Invalid Parameter} The specified information class is not a valid information class for the specified object") +STATUS_INFO_LENGTH_MISMATCH = NtStatusException.register_ntstatus(0xc0000004, "STATUS_INFO_LENGTH_MISMATCH", "The specified information record length does not match the length that is required for the specified information class") +STATUS_ACCESS_VIOLATION = NtStatusException.register_ntstatus(0xc0000005, "STATUS_ACCESS_VIOLATION", "The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s") +STATUS_IN_PAGE_ERROR = NtStatusException.register_ntstatus(0xc0000006, "STATUS_IN_PAGE_ERROR", "The instruction at 0x%08lx referenced memory at 0x%08lx. The required data was not placed into memory because of an I/O error status of 0x%08lx") +STATUS_PAGEFILE_QUOTA = NtStatusException.register_ntstatus(0xc0000007, "STATUS_PAGEFILE_QUOTA", "The page file quota for the process has been exhausted") +STATUS_INVALID_HANDLE = NtStatusException.register_ntstatus(0xc0000008, "STATUS_INVALID_HANDLE", "An invalid HANDLE was specified") +STATUS_BAD_INITIAL_STACK = NtStatusException.register_ntstatus(0xc0000009, "STATUS_BAD_INITIAL_STACK", "An invalid initial stack was specified in a call to NtCreateThread") +STATUS_BAD_INITIAL_PC = NtStatusException.register_ntstatus(0xc000000a, "STATUS_BAD_INITIAL_PC", "An invalid initial start address was specified in a call to NtCreateThread") +STATUS_INVALID_CID = NtStatusException.register_ntstatus(0xc000000b, "STATUS_INVALID_CID", "An invalid client ID was specified") +STATUS_TIMER_NOT_CANCELED = NtStatusException.register_ntstatus(0xc000000c, "STATUS_TIMER_NOT_CANCELED", "An attempt was made to cancel or set a timer that has an associated APC and the specified thread is not the thread that originally set the timer with an associated APC routine") +STATUS_INVALID_PARAMETER = NtStatusException.register_ntstatus(0xc000000d, "STATUS_INVALID_PARAMETER", "An invalid parameter was passed to a service or function") +STATUS_NO_SUCH_DEVICE = NtStatusException.register_ntstatus(0xc000000e, "STATUS_NO_SUCH_DEVICE", "A device that does not exist was specified") +STATUS_NO_SUCH_FILE = NtStatusException.register_ntstatus(0xc000000f, "STATUS_NO_SUCH_FILE", "{File Not Found} The file %hs does not exist") +STATUS_INVALID_DEVICE_REQUEST = NtStatusException.register_ntstatus(0xc0000010, "STATUS_INVALID_DEVICE_REQUEST", "The specified request is not a valid operation for the target device") +STATUS_END_OF_FILE = NtStatusException.register_ntstatus(0xc0000011, "STATUS_END_OF_FILE", "The end-of-file marker has been reached. There is no valid data in the file beyond this marker") +STATUS_WRONG_VOLUME = NtStatusException.register_ntstatus(0xc0000012, "STATUS_WRONG_VOLUME", "{Wrong Volume} The wrong volume is in the drive. Insert volume %hs into drive %hs") +STATUS_NO_MEDIA_IN_DEVICE = NtStatusException.register_ntstatus(0xc0000013, "STATUS_NO_MEDIA_IN_DEVICE", "{No Disk} There is no disk in the drive. Insert a disk into drive %hs") +STATUS_UNRECOGNIZED_MEDIA = NtStatusException.register_ntstatus(0xc0000014, "STATUS_UNRECOGNIZED_MEDIA", "{Unknown Disk Format} The disk in drive %hs is not formatted properly. Check the disk, and reformat it, if needed") +STATUS_NONEXISTENT_SECTOR = NtStatusException.register_ntstatus(0xc0000015, "STATUS_NONEXISTENT_SECTOR", "{Sector Not Found} The specified sector does not exist") +STATUS_MORE_PROCESSING_REQUIRED = NtStatusException.register_ntstatus(0xc0000016, "STATUS_MORE_PROCESSING_REQUIRED", "{Still Busy} The specified I/O request packet (IRP) cannot be disposed of because the I/O operation is not complete") +STATUS_NO_MEMORY = NtStatusException.register_ntstatus(0xc0000017, "STATUS_NO_MEMORY", "{Not Enough Quota} Not enough virtual memory or paging file quota is available to complete the specified operation") +STATUS_CONFLICTING_ADDRESSES = NtStatusException.register_ntstatus(0xc0000018, "STATUS_CONFLICTING_ADDRESSES", "{Conflicting Address Range} The specified address range conflicts with the address space") +STATUS_NOT_MAPPED_VIEW = NtStatusException.register_ntstatus(0xc0000019, "STATUS_NOT_MAPPED_VIEW", "The address range to unmap is not a mapped view") +STATUS_UNABLE_TO_FREE_VM = NtStatusException.register_ntstatus(0xc000001a, "STATUS_UNABLE_TO_FREE_VM", "The virtual memory cannot be freed") +STATUS_UNABLE_TO_DELETE_SECTION = NtStatusException.register_ntstatus(0xc000001b, "STATUS_UNABLE_TO_DELETE_SECTION", "The specified section cannot be deleted") +STATUS_INVALID_SYSTEM_SERVICE = NtStatusException.register_ntstatus(0xc000001c, "STATUS_INVALID_SYSTEM_SERVICE", "An invalid system service was specified in a system service call") +STATUS_ILLEGAL_INSTRUCTION = NtStatusException.register_ntstatus(0xc000001d, "STATUS_ILLEGAL_INSTRUCTION", "{EXCEPTION} Illegal Instruction An attempt was made to execute an illegal instruction") +STATUS_INVALID_LOCK_SEQUENCE = NtStatusException.register_ntstatus(0xc000001e, "STATUS_INVALID_LOCK_SEQUENCE", "{Invalid Lock Sequence} An attempt was made to execute an invalid lock sequence") +STATUS_INVALID_VIEW_SIZE = NtStatusException.register_ntstatus(0xc000001f, "STATUS_INVALID_VIEW_SIZE", "{Invalid Mapping} An attempt was made to create a view for a section that is bigger than the section") +STATUS_INVALID_FILE_FOR_SECTION = NtStatusException.register_ntstatus(0xc0000020, "STATUS_INVALID_FILE_FOR_SECTION", "{Bad File} The attributes of the specified mapping file for a section of memory cannot be read") +STATUS_ALREADY_COMMITTED = NtStatusException.register_ntstatus(0xc0000021, "STATUS_ALREADY_COMMITTED", "{Already Committed} The specified address range is already committed") +STATUS_ACCESS_DENIED = NtStatusException.register_ntstatus(0xc0000022, "STATUS_ACCESS_DENIED", "{Access Denied} A process has requested access to an object but has not been granted those access rights") +STATUS_BUFFER_TOO_SMALL = NtStatusException.register_ntstatus(0xc0000023, "STATUS_BUFFER_TOO_SMALL", "{Buffer Too Small} The buffer is too small to contain the entry. No information has been written to the buffer") +STATUS_OBJECT_TYPE_MISMATCH = NtStatusException.register_ntstatus(0xc0000024, "STATUS_OBJECT_TYPE_MISMATCH", "{Wrong Type} There is a mismatch between the type of object that is required by the requested operation and the type of object that is specified in the request") +STATUS_NONCONTINUABLE_EXCEPTION = NtStatusException.register_ntstatus(0xc0000025, "STATUS_NONCONTINUABLE_EXCEPTION", "{EXCEPTION} Cannot Continue Windows cannot continue from this exception") +STATUS_INVALID_DISPOSITION = NtStatusException.register_ntstatus(0xc0000026, "STATUS_INVALID_DISPOSITION", "An invalid exception disposition was returned by an exception handler") +STATUS_UNWIND = NtStatusException.register_ntstatus(0xc0000027, "STATUS_UNWIND", "Unwind exception code") +STATUS_BAD_STACK = NtStatusException.register_ntstatus(0xc0000028, "STATUS_BAD_STACK", "An invalid or unaligned stack was encountered during an unwind operation") +STATUS_INVALID_UNWIND_TARGET = NtStatusException.register_ntstatus(0xc0000029, "STATUS_INVALID_UNWIND_TARGET", "An invalid unwind target was encountered during an unwind operation") +STATUS_NOT_LOCKED = NtStatusException.register_ntstatus(0xc000002a, "STATUS_NOT_LOCKED", "An attempt was made to unlock a page of memory that was not locked") +STATUS_PARITY_ERROR = NtStatusException.register_ntstatus(0xc000002b, "STATUS_PARITY_ERROR", "A device parity error on an I/O operation") +STATUS_UNABLE_TO_DECOMMIT_VM = NtStatusException.register_ntstatus(0xc000002c, "STATUS_UNABLE_TO_DECOMMIT_VM", "An attempt was made to decommit uncommitted virtual memory") +STATUS_NOT_COMMITTED = NtStatusException.register_ntstatus(0xc000002d, "STATUS_NOT_COMMITTED", "An attempt was made to change the attributes on memory that has not been committed") +STATUS_INVALID_PORT_ATTRIBUTES = NtStatusException.register_ntstatus(0xc000002e, "STATUS_INVALID_PORT_ATTRIBUTES", "Invalid object attributes specified to NtCreatePort or invalid port attributes specified to NtConnectPort") +STATUS_PORT_MESSAGE_TOO_LONG = NtStatusException.register_ntstatus(0xc000002f, "STATUS_PORT_MESSAGE_TOO_LONG", "The length of the message that was passed to NtRequestPort or NtRequestWaitReplyPort is longer than the maximum message that is allowed by the port") +STATUS_INVALID_PARAMETER_MIX = NtStatusException.register_ntstatus(0xc0000030, "STATUS_INVALID_PARAMETER_MIX", "An invalid combination of parameters was specified") +STATUS_INVALID_QUOTA_LOWER = NtStatusException.register_ntstatus(0xc0000031, "STATUS_INVALID_QUOTA_LOWER", "An attempt was made to lower a quota limit below the current usage") +STATUS_DISK_CORRUPT_ERROR = NtStatusException.register_ntstatus(0xc0000032, "STATUS_DISK_CORRUPT_ERROR", "{Corrupt Disk} The file system structure on the disk is corrupt and unusable. Run the Chkdsk utility on the volume %hs") +STATUS_OBJECT_NAME_INVALID = NtStatusException.register_ntstatus(0xc0000033, "STATUS_OBJECT_NAME_INVALID", "The object name is invalid") +STATUS_OBJECT_NAME_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000034, "STATUS_OBJECT_NAME_NOT_FOUND", "The object name is not found") +STATUS_OBJECT_NAME_COLLISION = NtStatusException.register_ntstatus(0xc0000035, "STATUS_OBJECT_NAME_COLLISION", "The object name already exists") +STATUS_PORT_DISCONNECTED = NtStatusException.register_ntstatus(0xc0000037, "STATUS_PORT_DISCONNECTED", "An attempt was made to send a message to a disconnected communication port") +STATUS_DEVICE_ALREADY_ATTACHED = NtStatusException.register_ntstatus(0xc0000038, "STATUS_DEVICE_ALREADY_ATTACHED", "An attempt was made to attach to a device that was already attached to another device") +STATUS_OBJECT_PATH_INVALID = NtStatusException.register_ntstatus(0xc0000039, "STATUS_OBJECT_PATH_INVALID", "The object path component was not a directory object") +STATUS_OBJECT_PATH_NOT_FOUND = NtStatusException.register_ntstatus(0xc000003a, "STATUS_OBJECT_PATH_NOT_FOUND", "{Path Not Found} The path %hs does not exist") +STATUS_OBJECT_PATH_SYNTAX_BAD = NtStatusException.register_ntstatus(0xc000003b, "STATUS_OBJECT_PATH_SYNTAX_BAD", "The object path component was not a directory object") +STATUS_DATA_OVERRUN = NtStatusException.register_ntstatus(0xc000003c, "STATUS_DATA_OVERRUN", "{Data Overrun} A data overrun error occurred") +STATUS_DATA_LATE_ERROR = NtStatusException.register_ntstatus(0xc000003d, "STATUS_DATA_LATE_ERROR", "{Data Late} A data late error occurred") +STATUS_DATA_ERROR = NtStatusException.register_ntstatus(0xc000003e, "STATUS_DATA_ERROR", "{Data Error} An error occurred in reading or writing data") +STATUS_CRC_ERROR = NtStatusException.register_ntstatus(0xc000003f, "STATUS_CRC_ERROR", "{Bad CRC} A cyclic redundancy check (CRC) checksum error occurred") +STATUS_SECTION_TOO_BIG = NtStatusException.register_ntstatus(0xc0000040, "STATUS_SECTION_TOO_BIG", "{Section Too Large} The specified section is too big to map the file") +STATUS_PORT_CONNECTION_REFUSED = NtStatusException.register_ntstatus(0xc0000041, "STATUS_PORT_CONNECTION_REFUSED", "The NtConnectPort request is refused") +STATUS_INVALID_PORT_HANDLE = NtStatusException.register_ntstatus(0xc0000042, "STATUS_INVALID_PORT_HANDLE", "The type of port handle is invalid for the operation that is requested") +STATUS_SHARING_VIOLATION = NtStatusException.register_ntstatus(0xc0000043, "STATUS_SHARING_VIOLATION", "A file cannot be opened because the share access flags are incompatible") +STATUS_QUOTA_EXCEEDED = NtStatusException.register_ntstatus(0xc0000044, "STATUS_QUOTA_EXCEEDED", "Insufficient quota exists to complete the operation") +STATUS_INVALID_PAGE_PROTECTION = NtStatusException.register_ntstatus(0xc0000045, "STATUS_INVALID_PAGE_PROTECTION", "The specified page protection was not valid") +STATUS_MUTANT_NOT_OWNED = NtStatusException.register_ntstatus(0xc0000046, "STATUS_MUTANT_NOT_OWNED", "An attempt to release a mutant object was made by a thread that was not the owner of the mutant object") +STATUS_SEMAPHORE_LIMIT_EXCEEDED = NtStatusException.register_ntstatus(0xc0000047, "STATUS_SEMAPHORE_LIMIT_EXCEEDED", "An attempt was made to release a semaphore such that its maximum count would have been exceeded") +STATUS_PORT_ALREADY_SET = NtStatusException.register_ntstatus(0xc0000048, "STATUS_PORT_ALREADY_SET", "An attempt was made to set the DebugPort or ExceptionPort of a process, but a port already exists in the process, or an attempt was made to set the CompletionPort of a file but a port was already set in the file, or an attempt was made to set the associated completion port of an ALPC port but it is already set") +STATUS_SECTION_NOT_IMAGE = NtStatusException.register_ntstatus(0xc0000049, "STATUS_SECTION_NOT_IMAGE", "An attempt was made to query image information on a section that does not map an image") +STATUS_SUSPEND_COUNT_EXCEEDED = NtStatusException.register_ntstatus(0xc000004a, "STATUS_SUSPEND_COUNT_EXCEEDED", "An attempt was made to suspend a thread whose suspend count was at its maximum") +STATUS_THREAD_IS_TERMINATING = NtStatusException.register_ntstatus(0xc000004b, "STATUS_THREAD_IS_TERMINATING", "An attempt was made to suspend a thread that has begun termination") +STATUS_BAD_WORKING_SET_LIMIT = NtStatusException.register_ntstatus(0xc000004c, "STATUS_BAD_WORKING_SET_LIMIT", "An attempt was made to set the working set limit to an invalid value (for example, the minimum greater than maximum)") +STATUS_INCOMPATIBLE_FILE_MAP = NtStatusException.register_ntstatus(0xc000004d, "STATUS_INCOMPATIBLE_FILE_MAP", "A section was created to map a file that is not compatible with an already existing section that maps the same file") +STATUS_SECTION_PROTECTION = NtStatusException.register_ntstatus(0xc000004e, "STATUS_SECTION_PROTECTION", "A view to a section specifies a protection that is incompatible with the protection of the initial view") +STATUS_EAS_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc000004f, "STATUS_EAS_NOT_SUPPORTED", "An operation involving EAs failed because the file system does not support EAs") +STATUS_EA_TOO_LARGE = NtStatusException.register_ntstatus(0xc0000050, "STATUS_EA_TOO_LARGE", "An EA operation failed because the EA set is too large") +STATUS_NONEXISTENT_EA_ENTRY = NtStatusException.register_ntstatus(0xc0000051, "STATUS_NONEXISTENT_EA_ENTRY", "An EA operation failed because the name or EA index is invalid") +STATUS_NO_EAS_ON_FILE = NtStatusException.register_ntstatus(0xc0000052, "STATUS_NO_EAS_ON_FILE", "The file for which EAs were requested has no EAs") +STATUS_EA_CORRUPT_ERROR = NtStatusException.register_ntstatus(0xc0000053, "STATUS_EA_CORRUPT_ERROR", "The EA is corrupt and cannot be read") +STATUS_FILE_LOCK_CONFLICT = NtStatusException.register_ntstatus(0xc0000054, "STATUS_FILE_LOCK_CONFLICT", "A requested read/write cannot be granted due to a conflicting file lock") +STATUS_LOCK_NOT_GRANTED = NtStatusException.register_ntstatus(0xc0000055, "STATUS_LOCK_NOT_GRANTED", "A requested file lock cannot be granted due to other existing locks") +STATUS_DELETE_PENDING = NtStatusException.register_ntstatus(0xc0000056, "STATUS_DELETE_PENDING", "A non-close operation has been requested of a file object that has a delete pending") +STATUS_CTL_FILE_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc0000057, "STATUS_CTL_FILE_NOT_SUPPORTED", "An attempt was made to set the control attribute on a file. This attribute is not supported in the destination file system") +STATUS_UNKNOWN_REVISION = NtStatusException.register_ntstatus(0xc0000058, "STATUS_UNKNOWN_REVISION", "Indicates a revision number that was encountered or specified is not one that is known by the service. It may be a more recent revision than the service is aware of") +STATUS_REVISION_MISMATCH = NtStatusException.register_ntstatus(0xc0000059, "STATUS_REVISION_MISMATCH", "Indicates that two revision levels are incompatible") +STATUS_INVALID_OWNER = NtStatusException.register_ntstatus(0xc000005a, "STATUS_INVALID_OWNER", "Indicates a particular security ID may not be assigned as the owner of an object") +STATUS_INVALID_PRIMARY_GROUP = NtStatusException.register_ntstatus(0xc000005b, "STATUS_INVALID_PRIMARY_GROUP", "Indicates a particular security ID may not be assigned as the primary group of an object") +STATUS_NO_IMPERSONATION_TOKEN = NtStatusException.register_ntstatus(0xc000005c, "STATUS_NO_IMPERSONATION_TOKEN", "An attempt has been made to operate on an impersonation token by a thread that is not currently impersonating a client") +STATUS_CANT_DISABLE_MANDATORY = NtStatusException.register_ntstatus(0xc000005d, "STATUS_CANT_DISABLE_MANDATORY", "A mandatory group may not be disabled") +STATUS_NO_LOGON_SERVERS = NtStatusException.register_ntstatus(0xc000005e, "STATUS_NO_LOGON_SERVERS", "No logon servers are currently available to service the logon request") +STATUS_NO_SUCH_LOGON_SESSION = NtStatusException.register_ntstatus(0xc000005f, "STATUS_NO_SUCH_LOGON_SESSION", "A specified logon session does not exist. It may already have been terminated") +STATUS_NO_SUCH_PRIVILEGE = NtStatusException.register_ntstatus(0xc0000060, "STATUS_NO_SUCH_PRIVILEGE", "A specified privilege does not exist") +STATUS_PRIVILEGE_NOT_HELD = NtStatusException.register_ntstatus(0xc0000061, "STATUS_PRIVILEGE_NOT_HELD", "A required privilege is not held by the client") +STATUS_INVALID_ACCOUNT_NAME = NtStatusException.register_ntstatus(0xc0000062, "STATUS_INVALID_ACCOUNT_NAME", "The name provided is not a properly formed account name") +STATUS_USER_EXISTS = NtStatusException.register_ntstatus(0xc0000063, "STATUS_USER_EXISTS", "The specified account already exists") +STATUS_NO_SUCH_USER = NtStatusException.register_ntstatus(0xc0000064, "STATUS_NO_SUCH_USER", "The specified account does not exist") +STATUS_GROUP_EXISTS = NtStatusException.register_ntstatus(0xc0000065, "STATUS_GROUP_EXISTS", "The specified group already exists") +STATUS_NO_SUCH_GROUP = NtStatusException.register_ntstatus(0xc0000066, "STATUS_NO_SUCH_GROUP", "The specified group does not exist") +STATUS_MEMBER_IN_GROUP = NtStatusException.register_ntstatus(0xc0000067, "STATUS_MEMBER_IN_GROUP", "The specified user account is already in the specified group account. Also used to indicate a group cannot be deleted because it contains a member") +STATUS_MEMBER_NOT_IN_GROUP = NtStatusException.register_ntstatus(0xc0000068, "STATUS_MEMBER_NOT_IN_GROUP", "The specified user account is not a member of the specified group account") +STATUS_LAST_ADMIN = NtStatusException.register_ntstatus(0xc0000069, "STATUS_LAST_ADMIN", "Indicates the requested operation would disable or delete the last remaining administration account. This is not allowed to prevent creating a situation in which the system cannot be administrated") +STATUS_WRONG_PASSWORD = NtStatusException.register_ntstatus(0xc000006a, "STATUS_WRONG_PASSWORD", "When trying to update a password, this return status indicates that the value provided as the current password is not correct") +STATUS_ILL_FORMED_PASSWORD = NtStatusException.register_ntstatus(0xc000006b, "STATUS_ILL_FORMED_PASSWORD", "When trying to update a password, this return status indicates that the value provided for the new password contains values that are not allowed in passwords") +STATUS_PASSWORD_RESTRICTION = NtStatusException.register_ntstatus(0xc000006c, "STATUS_PASSWORD_RESTRICTION", "When trying to update a password, this status indicates that some password update rule has been violated. For example, the password may not meet length criteria") +STATUS_LOGON_FAILURE = NtStatusException.register_ntstatus(0xc000006d, "STATUS_LOGON_FAILURE", "The attempted logon is invalid. This is either due to a bad username or authentication information") +STATUS_ACCOUNT_RESTRICTION = NtStatusException.register_ntstatus(0xc000006e, "STATUS_ACCOUNT_RESTRICTION", "Indicates a referenced user name and authentication information are valid, but some user account restriction has prevented successful authentication (such as time-of-day restrictions)") +STATUS_INVALID_LOGON_HOURS = NtStatusException.register_ntstatus(0xc000006f, "STATUS_INVALID_LOGON_HOURS", "The user account has time restrictions and may not be logged onto at this time") +STATUS_INVALID_WORKSTATION = NtStatusException.register_ntstatus(0xc0000070, "STATUS_INVALID_WORKSTATION", "The user account is restricted so that it may not be used to log on from the source workstation") +STATUS_PASSWORD_EXPIRED = NtStatusException.register_ntstatus(0xc0000071, "STATUS_PASSWORD_EXPIRED", "The user account password has expired") +STATUS_ACCOUNT_DISABLED = NtStatusException.register_ntstatus(0xc0000072, "STATUS_ACCOUNT_DISABLED", "The referenced account is currently disabled and may not be logged on to") +STATUS_NONE_MAPPED = NtStatusException.register_ntstatus(0xc0000073, "STATUS_NONE_MAPPED", "None of the information to be translated has been translated") +STATUS_TOO_MANY_LUIDS_REQUESTED = NtStatusException.register_ntstatus(0xc0000074, "STATUS_TOO_MANY_LUIDS_REQUESTED", "The number of LUIDs requested may not be allocated with a single allocation") +STATUS_LUIDS_EXHAUSTED = NtStatusException.register_ntstatus(0xc0000075, "STATUS_LUIDS_EXHAUSTED", "Indicates there are no more LUIDs to allocate") +STATUS_INVALID_SUB_AUTHORITY = NtStatusException.register_ntstatus(0xc0000076, "STATUS_INVALID_SUB_AUTHORITY", "Indicates the sub-authority value is invalid for the particular use") +STATUS_INVALID_ACL = NtStatusException.register_ntstatus(0xc0000077, "STATUS_INVALID_ACL", "Indicates the ACL structure is not valid") +STATUS_INVALID_SID = NtStatusException.register_ntstatus(0xc0000078, "STATUS_INVALID_SID", "Indicates the SID structure is not valid") +STATUS_INVALID_SECURITY_DESCR = NtStatusException.register_ntstatus(0xc0000079, "STATUS_INVALID_SECURITY_DESCR", "Indicates the SECURITY_DESCRIPTOR structure is not valid") +STATUS_PROCEDURE_NOT_FOUND = NtStatusException.register_ntstatus(0xc000007a, "STATUS_PROCEDURE_NOT_FOUND", "Indicates the specified procedure address cannot be found in the DLL") +STATUS_INVALID_IMAGE_FORMAT = NtStatusException.register_ntstatus(0xc000007b, "STATUS_INVALID_IMAGE_FORMAT", "{Bad Image} %hs is either not designed to run on Windows or it contains an error. Try installing the program again using the original installation media or contact your system administrator or the software vendor for support") +STATUS_NO_TOKEN = NtStatusException.register_ntstatus(0xc000007c, "STATUS_NO_TOKEN", "An attempt was made to reference a token that does not exist. This is typically done by referencing the token that is associated with a thread when the thread is not impersonating a client") +STATUS_BAD_INHERITANCE_ACL = NtStatusException.register_ntstatus(0xc000007d, "STATUS_BAD_INHERITANCE_ACL", "Indicates that an attempt to build either an inherited ACL or ACE was not successful. This can be caused by a number of things. One of the more probable causes is the replacement of a CreatorId with a SID that did not fit into the ACE or ACL") +STATUS_RANGE_NOT_LOCKED = NtStatusException.register_ntstatus(0xc000007e, "STATUS_RANGE_NOT_LOCKED", "The range specified in NtUnlockFile was not locked") +STATUS_DISK_FULL = NtStatusException.register_ntstatus(0xc000007f, "STATUS_DISK_FULL", "An operation failed because the disk was full") +STATUS_SERVER_DISABLED = NtStatusException.register_ntstatus(0xc0000080, "STATUS_SERVER_DISABLED", "The GUID allocation server is disabled at the moment") +STATUS_SERVER_NOT_DISABLED = NtStatusException.register_ntstatus(0xc0000081, "STATUS_SERVER_NOT_DISABLED", "The GUID allocation server is enabled at the moment") +STATUS_TOO_MANY_GUIDS_REQUESTED = NtStatusException.register_ntstatus(0xc0000082, "STATUS_TOO_MANY_GUIDS_REQUESTED", "Too many GUIDs were requested from the allocation server at once") +STATUS_GUIDS_EXHAUSTED = NtStatusException.register_ntstatus(0xc0000083, "STATUS_GUIDS_EXHAUSTED", "The GUIDs could not be allocated because the Authority Agent was exhausted") +STATUS_INVALID_ID_AUTHORITY = NtStatusException.register_ntstatus(0xc0000084, "STATUS_INVALID_ID_AUTHORITY", "The value provided was an invalid value for an identifier authority") +STATUS_AGENTS_EXHAUSTED = NtStatusException.register_ntstatus(0xc0000085, "STATUS_AGENTS_EXHAUSTED", "No more authority agent values are available for the particular identifier authority value") +STATUS_INVALID_VOLUME_LABEL = NtStatusException.register_ntstatus(0xc0000086, "STATUS_INVALID_VOLUME_LABEL", "An invalid volume label has been specified") +STATUS_SECTION_NOT_EXTENDED = NtStatusException.register_ntstatus(0xc0000087, "STATUS_SECTION_NOT_EXTENDED", "A mapped section could not be extended") +STATUS_NOT_MAPPED_DATA = NtStatusException.register_ntstatus(0xc0000088, "STATUS_NOT_MAPPED_DATA", "Specified section to flush does not map a data file") +STATUS_RESOURCE_DATA_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000089, "STATUS_RESOURCE_DATA_NOT_FOUND", "Indicates the specified image file did not contain a resource section") +STATUS_RESOURCE_TYPE_NOT_FOUND = NtStatusException.register_ntstatus(0xc000008a, "STATUS_RESOURCE_TYPE_NOT_FOUND", "Indicates the specified resource type cannot be found in the image file") +STATUS_RESOURCE_NAME_NOT_FOUND = NtStatusException.register_ntstatus(0xc000008b, "STATUS_RESOURCE_NAME_NOT_FOUND", "Indicates the specified resource name cannot be found in the image file") +STATUS_ARRAY_BOUNDS_EXCEEDED = NtStatusException.register_ntstatus(0xc000008c, "STATUS_ARRAY_BOUNDS_EXCEEDED", "{EXCEPTION} Array bounds exceeded") +STATUS_FLOAT_DENORMAL_OPERAND = NtStatusException.register_ntstatus(0xc000008d, "STATUS_FLOAT_DENORMAL_OPERAND", "{EXCEPTION} Floating-point denormal operand") +STATUS_FLOAT_DIVIDE_BY_ZERO = NtStatusException.register_ntstatus(0xc000008e, "STATUS_FLOAT_DIVIDE_BY_ZERO", "{EXCEPTION} Floating-point division by zero") +STATUS_FLOAT_INEXACT_RESULT = NtStatusException.register_ntstatus(0xc000008f, "STATUS_FLOAT_INEXACT_RESULT", "{EXCEPTION} Floating-point inexact result") +STATUS_FLOAT_INVALID_OPERATION = NtStatusException.register_ntstatus(0xc0000090, "STATUS_FLOAT_INVALID_OPERATION", "{EXCEPTION} Floating-point invalid operation") +STATUS_FLOAT_OVERFLOW = NtStatusException.register_ntstatus(0xc0000091, "STATUS_FLOAT_OVERFLOW", "{EXCEPTION} Floating-point overflow") +STATUS_FLOAT_STACK_CHECK = NtStatusException.register_ntstatus(0xc0000092, "STATUS_FLOAT_STACK_CHECK", "{EXCEPTION} Floating-point stack check") +STATUS_FLOAT_UNDERFLOW = NtStatusException.register_ntstatus(0xc0000093, "STATUS_FLOAT_UNDERFLOW", "{EXCEPTION} Floating-point underflow") +STATUS_INTEGER_DIVIDE_BY_ZERO = NtStatusException.register_ntstatus(0xc0000094, "STATUS_INTEGER_DIVIDE_BY_ZERO", "{EXCEPTION} Integer division by zero") +STATUS_INTEGER_OVERFLOW = NtStatusException.register_ntstatus(0xc0000095, "STATUS_INTEGER_OVERFLOW", "{EXCEPTION} Integer overflow") +STATUS_PRIVILEGED_INSTRUCTION = NtStatusException.register_ntstatus(0xc0000096, "STATUS_PRIVILEGED_INSTRUCTION", "{EXCEPTION} Privileged instruction") +STATUS_TOO_MANY_PAGING_FILES = NtStatusException.register_ntstatus(0xc0000097, "STATUS_TOO_MANY_PAGING_FILES", "An attempt was made to install more paging files than the system supports") +STATUS_FILE_INVALID = NtStatusException.register_ntstatus(0xc0000098, "STATUS_FILE_INVALID", "The volume for a file has been externally altered such that the opened file is no longer valid") +STATUS_ALLOTTED_SPACE_EXCEEDED = NtStatusException.register_ntstatus(0xc0000099, "STATUS_ALLOTTED_SPACE_EXCEEDED", "When a block of memory is allotted for future updates, such as the memory allocated to hold discretionary access control and primary group information, successive updates may exceed the amount of memory originally allotted. Because a quota may already have been charged to several processes that have handles to the object, it is not reasonable to alter the size of the allocated memory. Instead, a request that requires more memory than has been allotted must fail and the STATUS_ALLOTTED_SPACE_EXCEEDED error returned") +STATUS_INSUFFICIENT_RESOURCES = NtStatusException.register_ntstatus(0xc000009a, "STATUS_INSUFFICIENT_RESOURCES", "Insufficient system resources exist to complete the API") +STATUS_DFS_EXIT_PATH_FOUND = NtStatusException.register_ntstatus(0xc000009b, "STATUS_DFS_EXIT_PATH_FOUND", "An attempt has been made to open a DFS exit path control file") +STATUS_DEVICE_DATA_ERROR = NtStatusException.register_ntstatus(0xc000009c, "STATUS_DEVICE_DATA_ERROR", "There are bad blocks (sectors) on the hard disk") +STATUS_DEVICE_NOT_CONNECTED = NtStatusException.register_ntstatus(0xc000009d, "STATUS_DEVICE_NOT_CONNECTED", "There is bad cabling, non-termination, or the controller is not able to obtain access to the hard disk") +STATUS_FREE_VM_NOT_AT_BASE = NtStatusException.register_ntstatus(0xc000009f, "STATUS_FREE_VM_NOT_AT_BASE", "Virtual memory cannot be freed because the base address is not the base of the region and a region size of zero was specified") +STATUS_MEMORY_NOT_ALLOCATED = NtStatusException.register_ntstatus(0xc00000a0, "STATUS_MEMORY_NOT_ALLOCATED", "An attempt was made to free virtual memory that is not allocated") +STATUS_WORKING_SET_QUOTA = NtStatusException.register_ntstatus(0xc00000a1, "STATUS_WORKING_SET_QUOTA", "The working set is not big enough to allow the requested pages to be locked") +STATUS_MEDIA_WRITE_PROTECTED = NtStatusException.register_ntstatus(0xc00000a2, "STATUS_MEDIA_WRITE_PROTECTED", "{Write Protect Error} The disk cannot be written to because it is write-protected. Remove the write protection from the volume %hs in drive %hs") +STATUS_DEVICE_NOT_READY = NtStatusException.register_ntstatus(0xc00000a3, "STATUS_DEVICE_NOT_READY", "{Drive Not Ready} The drive is not ready for use; its door may be open. Check drive %hs and make sure that a disk is inserted and that the drive door is closed") +STATUS_INVALID_GROUP_ATTRIBUTES = NtStatusException.register_ntstatus(0xc00000a4, "STATUS_INVALID_GROUP_ATTRIBUTES", "The specified attributes are invalid or are incompatible with the attributes for the group as a whole") +STATUS_BAD_IMPERSONATION_LEVEL = NtStatusException.register_ntstatus(0xc00000a5, "STATUS_BAD_IMPERSONATION_LEVEL", "A specified impersonation level is invalid. Also used to indicate that a required impersonation level was not provided") +STATUS_CANT_OPEN_ANONYMOUS = NtStatusException.register_ntstatus(0xc00000a6, "STATUS_CANT_OPEN_ANONYMOUS", "An attempt was made to open an anonymous-level token. Anonymous tokens may not be opened") +STATUS_BAD_VALIDATION_CLASS = NtStatusException.register_ntstatus(0xc00000a7, "STATUS_BAD_VALIDATION_CLASS", "The validation information class requested was invalid") +STATUS_BAD_TOKEN_TYPE = NtStatusException.register_ntstatus(0xc00000a8, "STATUS_BAD_TOKEN_TYPE", "The type of a token object is inappropriate for its attempted use") +STATUS_BAD_MASTER_BOOT_RECORD = NtStatusException.register_ntstatus(0xc00000a9, "STATUS_BAD_MASTER_BOOT_RECORD", "The type of a token object is inappropriate for its attempted use") +STATUS_INSTRUCTION_MISALIGNMENT = NtStatusException.register_ntstatus(0xc00000aa, "STATUS_INSTRUCTION_MISALIGNMENT", "An attempt was made to execute an instruction at an unaligned address and the host system does not support unaligned instruction references") +STATUS_INSTANCE_NOT_AVAILABLE = NtStatusException.register_ntstatus(0xc00000ab, "STATUS_INSTANCE_NOT_AVAILABLE", "The maximum named pipe instance count has been reached") +STATUS_PIPE_NOT_AVAILABLE = NtStatusException.register_ntstatus(0xc00000ac, "STATUS_PIPE_NOT_AVAILABLE", "An instance of a named pipe cannot be found in the listening state") +STATUS_INVALID_PIPE_STATE = NtStatusException.register_ntstatus(0xc00000ad, "STATUS_INVALID_PIPE_STATE", "The named pipe is not in the connected or closing state") +STATUS_PIPE_BUSY = NtStatusException.register_ntstatus(0xc00000ae, "STATUS_PIPE_BUSY", "The specified pipe is set to complete operations and there are current I/O operations queued so that it cannot be changed to queue operations") +STATUS_ILLEGAL_FUNCTION = NtStatusException.register_ntstatus(0xc00000af, "STATUS_ILLEGAL_FUNCTION", "The specified handle is not open to the server end of the named pipe") +STATUS_PIPE_DISCONNECTED = NtStatusException.register_ntstatus(0xc00000b0, "STATUS_PIPE_DISCONNECTED", "The specified named pipe is in the disconnected state") +STATUS_PIPE_CLOSING = NtStatusException.register_ntstatus(0xc00000b1, "STATUS_PIPE_CLOSING", "The specified named pipe is in the closing state") +STATUS_PIPE_CONNECTED = NtStatusException.register_ntstatus(0xc00000b2, "STATUS_PIPE_CONNECTED", "The specified named pipe is in the connected state") +STATUS_PIPE_LISTENING = NtStatusException.register_ntstatus(0xc00000b3, "STATUS_PIPE_LISTENING", "The specified named pipe is in the listening state") +STATUS_INVALID_READ_MODE = NtStatusException.register_ntstatus(0xc00000b4, "STATUS_INVALID_READ_MODE", "The specified named pipe is not in message mode") +STATUS_IO_TIMEOUT = NtStatusException.register_ntstatus(0xc00000b5, "STATUS_IO_TIMEOUT", "{Device Timeout} The specified I/O operation on %hs was not completed before the time-out period expired") +STATUS_FILE_FORCED_CLOSED = NtStatusException.register_ntstatus(0xc00000b6, "STATUS_FILE_FORCED_CLOSED", "The specified file has been closed by another process") +STATUS_PROFILING_NOT_STARTED = NtStatusException.register_ntstatus(0xc00000b7, "STATUS_PROFILING_NOT_STARTED", "Profiling is not started") +STATUS_PROFILING_NOT_STOPPED = NtStatusException.register_ntstatus(0xc00000b8, "STATUS_PROFILING_NOT_STOPPED", "Profiling is not stopped") +STATUS_COULD_NOT_INTERPRET = NtStatusException.register_ntstatus(0xc00000b9, "STATUS_COULD_NOT_INTERPRET", "The passed ACL did not contain the minimum required information") +STATUS_FILE_IS_A_DIRECTORY = NtStatusException.register_ntstatus(0xc00000ba, "STATUS_FILE_IS_A_DIRECTORY", "The file that was specified as a target is a directory, and the caller specified that it could be anything but a directory") +STATUS_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc00000bb, "STATUS_NOT_SUPPORTED", "The request is not supported") +STATUS_REMOTE_NOT_LISTENING = NtStatusException.register_ntstatus(0xc00000bc, "STATUS_REMOTE_NOT_LISTENING", "This remote computer is not listening") +STATUS_DUPLICATE_NAME = NtStatusException.register_ntstatus(0xc00000bd, "STATUS_DUPLICATE_NAME", "A duplicate name exists on the network") +STATUS_BAD_NETWORK_PATH = NtStatusException.register_ntstatus(0xc00000be, "STATUS_BAD_NETWORK_PATH", "The network path cannot be located") +STATUS_NETWORK_BUSY = NtStatusException.register_ntstatus(0xc00000bf, "STATUS_NETWORK_BUSY", "The network is busy") +STATUS_DEVICE_DOES_NOT_EXIST = NtStatusException.register_ntstatus(0xc00000c0, "STATUS_DEVICE_DOES_NOT_EXIST", "This device does not exist") +STATUS_TOO_MANY_COMMANDS = NtStatusException.register_ntstatus(0xc00000c1, "STATUS_TOO_MANY_COMMANDS", "The network BIOS command limit has been reached") +STATUS_ADAPTER_HARDWARE_ERROR = NtStatusException.register_ntstatus(0xc00000c2, "STATUS_ADAPTER_HARDWARE_ERROR", "An I/O adapter hardware error has occurred") +STATUS_INVALID_NETWORK_RESPONSE = NtStatusException.register_ntstatus(0xc00000c3, "STATUS_INVALID_NETWORK_RESPONSE", "The network responded incorrectly") +STATUS_UNEXPECTED_NETWORK_ERROR = NtStatusException.register_ntstatus(0xc00000c4, "STATUS_UNEXPECTED_NETWORK_ERROR", "An unexpected network error occurred") +STATUS_BAD_REMOTE_ADAPTER = NtStatusException.register_ntstatus(0xc00000c5, "STATUS_BAD_REMOTE_ADAPTER", "The remote adapter is not compatible") +STATUS_PRINT_QUEUE_FULL = NtStatusException.register_ntstatus(0xc00000c6, "STATUS_PRINT_QUEUE_FULL", "The print queue is full") +STATUS_NO_SPOOL_SPACE = NtStatusException.register_ntstatus(0xc00000c7, "STATUS_NO_SPOOL_SPACE", "Space to store the file that is waiting to be printed is not available on the server") +STATUS_PRINT_CANCELLED = NtStatusException.register_ntstatus(0xc00000c8, "STATUS_PRINT_CANCELLED", "The requested print file has been canceled") +STATUS_NETWORK_NAME_DELETED = NtStatusException.register_ntstatus(0xc00000c9, "STATUS_NETWORK_NAME_DELETED", "The network name was deleted") +STATUS_NETWORK_ACCESS_DENIED = NtStatusException.register_ntstatus(0xc00000ca, "STATUS_NETWORK_ACCESS_DENIED", "Network access is denied") +STATUS_BAD_DEVICE_TYPE = NtStatusException.register_ntstatus(0xc00000cb, "STATUS_BAD_DEVICE_TYPE", "{Incorrect Network Resource Type} The specified device type (LPT, for example) conflicts with the actual device type on the remote resource") +STATUS_BAD_NETWORK_NAME = NtStatusException.register_ntstatus(0xc00000cc, "STATUS_BAD_NETWORK_NAME", "{Network Name Not Found} The specified share name cannot be found on the remote server") +STATUS_TOO_MANY_NAMES = NtStatusException.register_ntstatus(0xc00000cd, "STATUS_TOO_MANY_NAMES", "The name limit for the network adapter card of the local computer was exceeded") +STATUS_TOO_MANY_SESSIONS = NtStatusException.register_ntstatus(0xc00000ce, "STATUS_TOO_MANY_SESSIONS", "The network BIOS session limit was exceeded") +STATUS_SHARING_PAUSED = NtStatusException.register_ntstatus(0xc00000cf, "STATUS_SHARING_PAUSED", "File sharing has been temporarily paused") +STATUS_REQUEST_NOT_ACCEPTED = NtStatusException.register_ntstatus(0xc00000d0, "STATUS_REQUEST_NOT_ACCEPTED", "No more connections can be made to this remote computer at this time because the computer has already accepted the maximum number of connections") +STATUS_REDIRECTOR_PAUSED = NtStatusException.register_ntstatus(0xc00000d1, "STATUS_REDIRECTOR_PAUSED", "Print or disk redirection is temporarily paused") +STATUS_NET_WRITE_FAULT = NtStatusException.register_ntstatus(0xc00000d2, "STATUS_NET_WRITE_FAULT", "A network data fault occurred") +STATUS_PROFILING_AT_LIMIT = NtStatusException.register_ntstatus(0xc00000d3, "STATUS_PROFILING_AT_LIMIT", "The number of active profiling objects is at the maximum and no more may be started") +STATUS_NOT_SAME_DEVICE = NtStatusException.register_ntstatus(0xc00000d4, "STATUS_NOT_SAME_DEVICE", "{Incorrect Volume} The destination file of a rename request is located on a different device than the source of the rename request") +STATUS_FILE_RENAMED = NtStatusException.register_ntstatus(0xc00000d5, "STATUS_FILE_RENAMED", "The specified file has been renamed and thus cannot be modified") +STATUS_VIRTUAL_CIRCUIT_CLOSED = NtStatusException.register_ntstatus(0xc00000d6, "STATUS_VIRTUAL_CIRCUIT_CLOSED", "{Network Request Timeout} The session with a remote server has been disconnected because the time-out interval for a request has expired") +STATUS_NO_SECURITY_ON_OBJECT = NtStatusException.register_ntstatus(0xc00000d7, "STATUS_NO_SECURITY_ON_OBJECT", "Indicates an attempt was made to operate on the security of an object that does not have security associated with it") +STATUS_CANT_WAIT = NtStatusException.register_ntstatus(0xc00000d8, "STATUS_CANT_WAIT", "Used to indicate that an operation cannot continue without blocking for I/O") +STATUS_PIPE_EMPTY = NtStatusException.register_ntstatus(0xc00000d9, "STATUS_PIPE_EMPTY", "Used to indicate that a read operation was done on an empty pipe") +STATUS_CANT_ACCESS_DOMAIN_INFO = NtStatusException.register_ntstatus(0xc00000da, "STATUS_CANT_ACCESS_DOMAIN_INFO", "Configuration information could not be read from the domain controller, either because the machine is unavailable or access has been denied") +STATUS_CANT_TERMINATE_SELF = NtStatusException.register_ntstatus(0xc00000db, "STATUS_CANT_TERMINATE_SELF", "Indicates that a thread attempted to terminate itself by default (called NtTerminateThread with NULL) and it was the last thread in the current process") +STATUS_INVALID_SERVER_STATE = NtStatusException.register_ntstatus(0xc00000dc, "STATUS_INVALID_SERVER_STATE", "Indicates the Sam Server was in the wrong state to perform the desired operation") +STATUS_INVALID_DOMAIN_STATE = NtStatusException.register_ntstatus(0xc00000dd, "STATUS_INVALID_DOMAIN_STATE", "Indicates the domain was in the wrong state to perform the desired operation") +STATUS_INVALID_DOMAIN_ROLE = NtStatusException.register_ntstatus(0xc00000de, "STATUS_INVALID_DOMAIN_ROLE", "This operation is only allowed for the primary domain controller of the domain") +STATUS_NO_SUCH_DOMAIN = NtStatusException.register_ntstatus(0xc00000df, "STATUS_NO_SUCH_DOMAIN", "The specified domain did not exist") +STATUS_DOMAIN_EXISTS = NtStatusException.register_ntstatus(0xc00000e0, "STATUS_DOMAIN_EXISTS", "The specified domain already exists") +STATUS_DOMAIN_LIMIT_EXCEEDED = NtStatusException.register_ntstatus(0xc00000e1, "STATUS_DOMAIN_LIMIT_EXCEEDED", "An attempt was made to exceed the limit on the number of domains per server for this release") +STATUS_OPLOCK_NOT_GRANTED = NtStatusException.register_ntstatus(0xc00000e2, "STATUS_OPLOCK_NOT_GRANTED", "An error status returned when the opportunistic lock (oplock) request is denied") +STATUS_INVALID_OPLOCK_PROTOCOL = NtStatusException.register_ntstatus(0xc00000e3, "STATUS_INVALID_OPLOCK_PROTOCOL", "An error status returned when an invalid opportunistic lock (oplock) acknowledgment is received by a file system") +STATUS_INTERNAL_DB_CORRUPTION = NtStatusException.register_ntstatus(0xc00000e4, "STATUS_INTERNAL_DB_CORRUPTION", "This error indicates that the requested operation cannot be completed due to a catastrophic media failure or an on-disk data structure corruption") +STATUS_INTERNAL_ERROR = NtStatusException.register_ntstatus(0xc00000e5, "STATUS_INTERNAL_ERROR", "An internal error occurred") +STATUS_GENERIC_NOT_MAPPED = NtStatusException.register_ntstatus(0xc00000e6, "STATUS_GENERIC_NOT_MAPPED", "Indicates generic access types were contained in an access mask which should already be mapped to non-generic access types") +STATUS_BAD_DESCRIPTOR_FORMAT = NtStatusException.register_ntstatus(0xc00000e7, "STATUS_BAD_DESCRIPTOR_FORMAT", "Indicates a security descriptor is not in the necessary format (absolute or self-relative)") +STATUS_INVALID_USER_BUFFER = NtStatusException.register_ntstatus(0xc00000e8, "STATUS_INVALID_USER_BUFFER", "An access to a user buffer failed at an expected point in time. This code is defined because the caller does not want to accept STATUS_ACCESS_VIOLATION in its filter") +STATUS_UNEXPECTED_IO_ERROR = NtStatusException.register_ntstatus(0xc00000e9, "STATUS_UNEXPECTED_IO_ERROR", "If an I/O error that is not defined in the standard FsRtl filter is returned, it is converted to the following error, which is guaranteed to be in the filter. In this case, information is lost; however, the filter correctly handles the exception") +STATUS_UNEXPECTED_MM_CREATE_ERR = NtStatusException.register_ntstatus(0xc00000ea, "STATUS_UNEXPECTED_MM_CREATE_ERR", "If an MM error that is not defined in the standard FsRtl filter is returned, it is converted to one of the following errors, which are guaranteed to be in the filter. In this case, information is lost; however, the filter correctly handles the exception") +STATUS_UNEXPECTED_MM_MAP_ERROR = NtStatusException.register_ntstatus(0xc00000eb, "STATUS_UNEXPECTED_MM_MAP_ERROR", "If an MM error that is not defined in the standard FsRtl filter is returned, it is converted to one of the following errors, which are guaranteed to be in the filter. In this case, information is lost; however, the filter correctly handles the exception") +STATUS_UNEXPECTED_MM_EXTEND_ERR = NtStatusException.register_ntstatus(0xc00000ec, "STATUS_UNEXPECTED_MM_EXTEND_ERR", "If an MM error that is not defined in the standard FsRtl filter is returned, it is converted to one of the following errors, which are guaranteed to be in the filter. In this case, information is lost; however, the filter correctly handles the exception") +STATUS_NOT_LOGON_PROCESS = NtStatusException.register_ntstatus(0xc00000ed, "STATUS_NOT_LOGON_PROCESS", "The requested action is restricted for use by logon processes only. The calling process has not registered as a logon process") +STATUS_LOGON_SESSION_EXISTS = NtStatusException.register_ntstatus(0xc00000ee, "STATUS_LOGON_SESSION_EXISTS", "An attempt has been made to start a new session manager or LSA logon session by using an ID that is already in use") +STATUS_INVALID_PARAMETER_1 = NtStatusException.register_ntstatus(0xc00000ef, "STATUS_INVALID_PARAMETER_1", "An invalid parameter was passed to a service or function as the first argument") +STATUS_INVALID_PARAMETER_2 = NtStatusException.register_ntstatus(0xc00000f0, "STATUS_INVALID_PARAMETER_2", "An invalid parameter was passed to a service or function as the second argument") +STATUS_INVALID_PARAMETER_3 = NtStatusException.register_ntstatus(0xc00000f1, "STATUS_INVALID_PARAMETER_3", "An invalid parameter was passed to a service or function as the third argument") +STATUS_INVALID_PARAMETER_4 = NtStatusException.register_ntstatus(0xc00000f2, "STATUS_INVALID_PARAMETER_4", "An invalid parameter was passed to a service or function as the fourth argument") +STATUS_INVALID_PARAMETER_5 = NtStatusException.register_ntstatus(0xc00000f3, "STATUS_INVALID_PARAMETER_5", "An invalid parameter was passed to a service or function as the fifth argument") +STATUS_INVALID_PARAMETER_6 = NtStatusException.register_ntstatus(0xc00000f4, "STATUS_INVALID_PARAMETER_6", "An invalid parameter was passed to a service or function as the sixth argument") +STATUS_INVALID_PARAMETER_7 = NtStatusException.register_ntstatus(0xc00000f5, "STATUS_INVALID_PARAMETER_7", "An invalid parameter was passed to a service or function as the seventh argument") +STATUS_INVALID_PARAMETER_8 = NtStatusException.register_ntstatus(0xc00000f6, "STATUS_INVALID_PARAMETER_8", "An invalid parameter was passed to a service or function as the eighth argument") +STATUS_INVALID_PARAMETER_9 = NtStatusException.register_ntstatus(0xc00000f7, "STATUS_INVALID_PARAMETER_9", "An invalid parameter was passed to a service or function as the ninth argument") +STATUS_INVALID_PARAMETER_10 = NtStatusException.register_ntstatus(0xc00000f8, "STATUS_INVALID_PARAMETER_10", "An invalid parameter was passed to a service or function as the tenth argument") +STATUS_INVALID_PARAMETER_11 = NtStatusException.register_ntstatus(0xc00000f9, "STATUS_INVALID_PARAMETER_11", "An invalid parameter was passed to a service or function as the eleventh argument") +STATUS_INVALID_PARAMETER_12 = NtStatusException.register_ntstatus(0xc00000fa, "STATUS_INVALID_PARAMETER_12", "An invalid parameter was passed to a service or function as the twelfth argument") +STATUS_REDIRECTOR_NOT_STARTED = NtStatusException.register_ntstatus(0xc00000fb, "STATUS_REDIRECTOR_NOT_STARTED", "An attempt was made to access a network file, but the network software was not yet started") +STATUS_REDIRECTOR_STARTED = NtStatusException.register_ntstatus(0xc00000fc, "STATUS_REDIRECTOR_STARTED", "An attempt was made to start the redirector, but the redirector has already been started") +STATUS_STACK_OVERFLOW = NtStatusException.register_ntstatus(0xc00000fd, "STATUS_STACK_OVERFLOW", "A new guard page for the stack cannot be created") +STATUS_NO_SUCH_PACKAGE = NtStatusException.register_ntstatus(0xc00000fe, "STATUS_NO_SUCH_PACKAGE", "A specified authentication package is unknown") +STATUS_BAD_FUNCTION_TABLE = NtStatusException.register_ntstatus(0xc00000ff, "STATUS_BAD_FUNCTION_TABLE", "A malformed function table was encountered during an unwind operation") +STATUS_VARIABLE_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000100, "STATUS_VARIABLE_NOT_FOUND", "Indicates the specified environment variable name was not found in the specified environment block") +STATUS_DIRECTORY_NOT_EMPTY = NtStatusException.register_ntstatus(0xc0000101, "STATUS_DIRECTORY_NOT_EMPTY", "Indicates that the directory trying to be deleted is not empty") +STATUS_FILE_CORRUPT_ERROR = NtStatusException.register_ntstatus(0xc0000102, "STATUS_FILE_CORRUPT_ERROR", "{Corrupt File} The file or directory %hs is corrupt and unreadable. Run the Chkdsk utility") +STATUS_NOT_A_DIRECTORY = NtStatusException.register_ntstatus(0xc0000103, "STATUS_NOT_A_DIRECTORY", "A requested opened file is not a directory") +STATUS_BAD_LOGON_SESSION_STATE = NtStatusException.register_ntstatus(0xc0000104, "STATUS_BAD_LOGON_SESSION_STATE", "The logon session is not in a state that is consistent with the requested operation") +STATUS_LOGON_SESSION_COLLISION = NtStatusException.register_ntstatus(0xc0000105, "STATUS_LOGON_SESSION_COLLISION", "An internal LSA error has occurred. An authentication package has requested the creation of a logon session but the ID of an already existing logon session has been specified") +STATUS_NAME_TOO_LONG = NtStatusException.register_ntstatus(0xc0000106, "STATUS_NAME_TOO_LONG", "A specified name string is too long for its intended use") +STATUS_FILES_OPEN = NtStatusException.register_ntstatus(0xc0000107, "STATUS_FILES_OPEN", "The user attempted to force close the files on a redirected drive, but there were opened files on the drive, and the user did not specify a sufficient level of force") +STATUS_CONNECTION_IN_USE = NtStatusException.register_ntstatus(0xc0000108, "STATUS_CONNECTION_IN_USE", "The user attempted to force close the files on a redirected drive, but there were opened directories on the drive, and the user did not specify a sufficient level of force") +STATUS_MESSAGE_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000109, "STATUS_MESSAGE_NOT_FOUND", "RtlFindMessage could not locate the requested message ID in the message table resource") +STATUS_PROCESS_IS_TERMINATING = NtStatusException.register_ntstatus(0xc000010a, "STATUS_PROCESS_IS_TERMINATING", "An attempt was made to duplicate an object handle into or out of an exiting process") +STATUS_INVALID_LOGON_TYPE = NtStatusException.register_ntstatus(0xc000010b, "STATUS_INVALID_LOGON_TYPE", "Indicates an invalid value has been provided for the LogonType requested") +STATUS_NO_GUID_TRANSLATION = NtStatusException.register_ntstatus(0xc000010c, "STATUS_NO_GUID_TRANSLATION", "Indicates that an attempt was made to assign protection to a file system file or directory and one of the SIDs in the security descriptor could not be translated into a GUID that could be stored by the file system. This causes the protection attempt to fail, which may cause a file creation attempt to fail") +STATUS_CANNOT_IMPERSONATE = NtStatusException.register_ntstatus(0xc000010d, "STATUS_CANNOT_IMPERSONATE", "Indicates that an attempt has been made to impersonate via a named pipe that has not yet been read from") +STATUS_IMAGE_ALREADY_LOADED = NtStatusException.register_ntstatus(0xc000010e, "STATUS_IMAGE_ALREADY_LOADED", "Indicates that the specified image is already loaded") +STATUS_NO_LDT = NtStatusException.register_ntstatus(0xc0000117, "STATUS_NO_LDT", "Indicates that an attempt was made to change the size of the LDT for a process that has no LDT") +STATUS_INVALID_LDT_SIZE = NtStatusException.register_ntstatus(0xc0000118, "STATUS_INVALID_LDT_SIZE", "Indicates that an attempt was made to grow an LDT by setting its size, or that the size was not an even number of selectors") +STATUS_INVALID_LDT_OFFSET = NtStatusException.register_ntstatus(0xc0000119, "STATUS_INVALID_LDT_OFFSET", "Indicates that the starting value for the LDT information was not an integral multiple of the selector size") +STATUS_INVALID_LDT_DESCRIPTOR = NtStatusException.register_ntstatus(0xc000011a, "STATUS_INVALID_LDT_DESCRIPTOR", "Indicates that the user supplied an invalid descriptor when trying to set up LDT descriptors") +STATUS_INVALID_IMAGE_NE_FORMAT = NtStatusException.register_ntstatus(0xc000011b, "STATUS_INVALID_IMAGE_NE_FORMAT", "The specified image file did not have the correct format. It appears to be NE format") +STATUS_RXACT_INVALID_STATE = NtStatusException.register_ntstatus(0xc000011c, "STATUS_RXACT_INVALID_STATE", "Indicates that the transaction state of a registry subtree is incompatible with the requested operation. For example, a request has been made to start a new transaction with one already in progress, or a request has been made to apply a transaction when one is not currently in progress") +STATUS_RXACT_COMMIT_FAILURE = NtStatusException.register_ntstatus(0xc000011d, "STATUS_RXACT_COMMIT_FAILURE", "Indicates an error has occurred during a registry transaction commit. The database has been left in an unknown, but probably inconsistent, state. The state of the registry transaction is left as COMMITTING") +STATUS_MAPPED_FILE_SIZE_ZERO = NtStatusException.register_ntstatus(0xc000011e, "STATUS_MAPPED_FILE_SIZE_ZERO", "An attempt was made to map a file of size zero with the maximum size specified as zero") +STATUS_TOO_MANY_OPENED_FILES = NtStatusException.register_ntstatus(0xc000011f, "STATUS_TOO_MANY_OPENED_FILES", "Too many files are opened on a remote server. This error should only be returned by the Windows redirector on a remote drive") +STATUS_CANCELLED = NtStatusException.register_ntstatus(0xc0000120, "STATUS_CANCELLED", "The I/O request was canceled") +STATUS_CANNOT_DELETE = NtStatusException.register_ntstatus(0xc0000121, "STATUS_CANNOT_DELETE", "An attempt has been made to remove a file or directory that cannot be deleted") +STATUS_INVALID_COMPUTER_NAME = NtStatusException.register_ntstatus(0xc0000122, "STATUS_INVALID_COMPUTER_NAME", "Indicates a name that was specified as a remote computer name is syntactically invalid") +STATUS_FILE_DELETED = NtStatusException.register_ntstatus(0xc0000123, "STATUS_FILE_DELETED", "An I/O request other than close was performed on a file after it was deleted, which can only happen to a request that did not complete before the last handle was closed via NtClose") +STATUS_SPECIAL_ACCOUNT = NtStatusException.register_ntstatus(0xc0000124, "STATUS_SPECIAL_ACCOUNT", "Indicates an operation that is incompatible with built-in accounts has been attempted on a built-in (special) SAM account. For example, built-in accounts cannot be deleted") +STATUS_SPECIAL_GROUP = NtStatusException.register_ntstatus(0xc0000125, "STATUS_SPECIAL_GROUP", "The operation requested may not be performed on the specified group because it is a built-in special group") +STATUS_SPECIAL_USER = NtStatusException.register_ntstatus(0xc0000126, "STATUS_SPECIAL_USER", "The operation requested may not be performed on the specified user because it is a built-in special user") +STATUS_MEMBERS_PRIMARY_GROUP = NtStatusException.register_ntstatus(0xc0000127, "STATUS_MEMBERS_PRIMARY_GROUP", "Indicates a member cannot be removed from a group because the group is currently the member's primary group") +STATUS_FILE_CLOSED = NtStatusException.register_ntstatus(0xc0000128, "STATUS_FILE_CLOSED", "An I/O request other than close and several other special case operations was attempted using a file object that had already been closed") +STATUS_TOO_MANY_THREADS = NtStatusException.register_ntstatus(0xc0000129, "STATUS_TOO_MANY_THREADS", "Indicates a process has too many threads to perform the requested action. For example, assignment of a primary token may only be performed when a process has zero or one threads") +STATUS_THREAD_NOT_IN_PROCESS = NtStatusException.register_ntstatus(0xc000012a, "STATUS_THREAD_NOT_IN_PROCESS", "An attempt was made to operate on a thread within a specific process, but the specified thread is not in the specified process") +STATUS_TOKEN_ALREADY_IN_USE = NtStatusException.register_ntstatus(0xc000012b, "STATUS_TOKEN_ALREADY_IN_USE", "An attempt was made to establish a token for use as a primary token but the token is already in use. A token can only be the primary token of one process at a time") +STATUS_PAGEFILE_QUOTA_EXCEEDED = NtStatusException.register_ntstatus(0xc000012c, "STATUS_PAGEFILE_QUOTA_EXCEEDED", "The page file quota was exceeded") +STATUS_COMMITMENT_LIMIT = NtStatusException.register_ntstatus(0xc000012d, "STATUS_COMMITMENT_LIMIT", "{Out of Virtual Memory} Your system is low on virtual memory. To ensure that Windows runs correctly, increase the size of your virtual memory paging file. For more information, see Help") +STATUS_INVALID_IMAGE_LE_FORMAT = NtStatusException.register_ntstatus(0xc000012e, "STATUS_INVALID_IMAGE_LE_FORMAT", "The specified image file did not have the correct format: it appears to be LE format") +STATUS_INVALID_IMAGE_NOT_MZ = NtStatusException.register_ntstatus(0xc000012f, "STATUS_INVALID_IMAGE_NOT_MZ", "The specified image file did not have the correct format: it did not have an initial MZ") +STATUS_INVALID_IMAGE_PROTECT = NtStatusException.register_ntstatus(0xc0000130, "STATUS_INVALID_IMAGE_PROTECT", "The specified image file did not have the correct format: it did not have a proper e_lfarlc in the MZ header") +STATUS_INVALID_IMAGE_WIN_16 = NtStatusException.register_ntstatus(0xc0000131, "STATUS_INVALID_IMAGE_WIN_16", "The specified image file did not have the correct format: it appears to be a 16-bit Windows image") +STATUS_LOGON_SERVER_CONFLICT = NtStatusException.register_ntstatus(0xc0000132, "STATUS_LOGON_SERVER_CONFLICT", "The Netlogon service cannot start because another Netlogon service running in the domain conflicts with the specified role") +STATUS_TIME_DIFFERENCE_AT_DC = NtStatusException.register_ntstatus(0xc0000133, "STATUS_TIME_DIFFERENCE_AT_DC", "The time at the primary domain controller is different from the time at the backup domain controller or member server by too large an amount") +STATUS_SYNCHRONIZATION_REQUIRED = NtStatusException.register_ntstatus(0xc0000134, "STATUS_SYNCHRONIZATION_REQUIRED", "The SAM database on a Windows Server operating system is significantly out of synchronization with the copy on the domain controller. A complete synchronization is required") +STATUS_DLL_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000135, "STATUS_DLL_NOT_FOUND", "{Unable To Locate Component} This application has failed to start because %hs was not found. Reinstalling the application may fix this problem") +STATUS_OPEN_FAILED = NtStatusException.register_ntstatus(0xc0000136, "STATUS_OPEN_FAILED", "The NtCreateFile API failed. This error should never be returned to an application; it is a place holder for the Windows LAN Manager Redirector to use in its internal error-mapping routines") +STATUS_IO_PRIVILEGE_FAILED = NtStatusException.register_ntstatus(0xc0000137, "STATUS_IO_PRIVILEGE_FAILED", "{Privilege Failed} The I/O permissions for the process could not be changed") +STATUS_ORDINAL_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000138, "STATUS_ORDINAL_NOT_FOUND", "{Ordinal Not Found} The ordinal %ld could not be located in the dynamic link library %hs") +STATUS_ENTRYPOINT_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000139, "STATUS_ENTRYPOINT_NOT_FOUND", "{Entry Point Not Found} The procedure entry point %hs could not be located in the dynamic link library %hs") +STATUS_CONTROL_C_EXIT = NtStatusException.register_ntstatus(0xc000013a, "STATUS_CONTROL_C_EXIT", "{Application Exit by CTRL+C} The application terminated as a result of a CTRL+C") +STATUS_LOCAL_DISCONNECT = NtStatusException.register_ntstatus(0xc000013b, "STATUS_LOCAL_DISCONNECT", "{Virtual Circuit Closed} The network transport on your computer has closed a network connection. There may or may not be I/O requests outstanding") +STATUS_REMOTE_DISCONNECT = NtStatusException.register_ntstatus(0xc000013c, "STATUS_REMOTE_DISCONNECT", "{Virtual Circuit Closed} The network transport on a remote computer has closed a network connection. There may or may not be I/O requests outstanding") +STATUS_REMOTE_RESOURCES = NtStatusException.register_ntstatus(0xc000013d, "STATUS_REMOTE_RESOURCES", "{Insufficient Resources on Remote Computer} The remote computer has insufficient resources to complete the network request. For example, the remote computer may not have enough available memory to carry out the request at this time") +STATUS_LINK_FAILED = NtStatusException.register_ntstatus(0xc000013e, "STATUS_LINK_FAILED", "{Virtual Circuit Closed} An existing connection (virtual circuit) has been broken at the remote computer. There is probably something wrong with the network software protocol or the network hardware on the remote computer") +STATUS_LINK_TIMEOUT = NtStatusException.register_ntstatus(0xc000013f, "STATUS_LINK_TIMEOUT", "{Virtual Circuit Closed} The network transport on your computer has closed a network connection because it had to wait too long for a response from the remote computer") +STATUS_INVALID_CONNECTION = NtStatusException.register_ntstatus(0xc0000140, "STATUS_INVALID_CONNECTION", "The connection handle that was given to the transport was invalid") +STATUS_INVALID_ADDRESS = NtStatusException.register_ntstatus(0xc0000141, "STATUS_INVALID_ADDRESS", "The address handle that was given to the transport was invalid") +STATUS_DLL_INIT_FAILED = NtStatusException.register_ntstatus(0xc0000142, "STATUS_DLL_INIT_FAILED", "{DLL Initialization Failed} Initialization of the dynamic link library %hs failed. The process is terminating abnormally") +STATUS_MISSING_SYSTEMFILE = NtStatusException.register_ntstatus(0xc0000143, "STATUS_MISSING_SYSTEMFILE", "{Missing System File} The required system file %hs is bad or missing") +STATUS_UNHANDLED_EXCEPTION = NtStatusException.register_ntstatus(0xc0000144, "STATUS_UNHANDLED_EXCEPTION", "{Application Error} The exception %s (0x%08lx) occurred in the application at location 0x%08lx") +STATUS_APP_INIT_FAILURE = NtStatusException.register_ntstatus(0xc0000145, "STATUS_APP_INIT_FAILURE", "{Application Error} The application failed to initialize properly (0x%lx). Click OK to terminate the application") +STATUS_PAGEFILE_CREATE_FAILED = NtStatusException.register_ntstatus(0xc0000146, "STATUS_PAGEFILE_CREATE_FAILED", "{Unable to Create Paging File} The creation of the paging file %hs failed (%lx). The requested size was %ld") +STATUS_NO_PAGEFILE = NtStatusException.register_ntstatus(0xc0000147, "STATUS_NO_PAGEFILE", "{No Paging File Specified} No paging file was specified in the system configuration") +STATUS_INVALID_LEVEL = NtStatusException.register_ntstatus(0xc0000148, "STATUS_INVALID_LEVEL", "{Incorrect System Call Level} An invalid level was passed into the specified system call") +STATUS_WRONG_PASSWORD_CORE = NtStatusException.register_ntstatus(0xc0000149, "STATUS_WRONG_PASSWORD_CORE", "{Incorrect Password to LAN Manager Server} You specified an incorrect password to a LAN Manager 2.x or MS-NET server") +STATUS_ILLEGAL_FLOAT_CONTEXT = NtStatusException.register_ntstatus(0xc000014a, "STATUS_ILLEGAL_FLOAT_CONTEXT", "{EXCEPTION} A real-mode application issued a floating-point instruction and floating-point hardware is not present") +STATUS_PIPE_BROKEN = NtStatusException.register_ntstatus(0xc000014b, "STATUS_PIPE_BROKEN", "The pipe operation has failed because the other end of the pipe has been closed") +STATUS_REGISTRY_CORRUPT = NtStatusException.register_ntstatus(0xc000014c, "STATUS_REGISTRY_CORRUPT", "{The Registry Is Corrupt} The structure of one of the files that contains registry data is corrupt; the image of the file in memory is corrupt; or the file could not be recovered because the alternate copy or log was absent or corrupt") +STATUS_REGISTRY_IO_FAILED = NtStatusException.register_ntstatus(0xc000014d, "STATUS_REGISTRY_IO_FAILED", "An I/O operation initiated by the Registry failed and cannot be recovered. The registry could not read in, write out, or flush one of the files that contain the system's image of the registry") +STATUS_NO_EVENT_PAIR = NtStatusException.register_ntstatus(0xc000014e, "STATUS_NO_EVENT_PAIR", "An event pair synchronization operation was performed using the thread-specific client/server event pair object, but no event pair object was associated with the thread") +STATUS_UNRECOGNIZED_VOLUME = NtStatusException.register_ntstatus(0xc000014f, "STATUS_UNRECOGNIZED_VOLUME", "The volume does not contain a recognized file system. Be sure that all required file system drivers are loaded and that the volume is not corrupt") +STATUS_SERIAL_NO_DEVICE_INITED = NtStatusException.register_ntstatus(0xc0000150, "STATUS_SERIAL_NO_DEVICE_INITED", "No serial device was successfully initialized. The serial driver will unload") +STATUS_NO_SUCH_ALIAS = NtStatusException.register_ntstatus(0xc0000151, "STATUS_NO_SUCH_ALIAS", "The specified local group does not exist") +STATUS_MEMBER_NOT_IN_ALIAS = NtStatusException.register_ntstatus(0xc0000152, "STATUS_MEMBER_NOT_IN_ALIAS", "The specified account name is not a member of the group") +STATUS_MEMBER_IN_ALIAS = NtStatusException.register_ntstatus(0xc0000153, "STATUS_MEMBER_IN_ALIAS", "The specified account name is already a member of the group") +STATUS_ALIAS_EXISTS = NtStatusException.register_ntstatus(0xc0000154, "STATUS_ALIAS_EXISTS", "The specified local group already exists") +STATUS_LOGON_NOT_GRANTED = NtStatusException.register_ntstatus(0xc0000155, "STATUS_LOGON_NOT_GRANTED", "A requested type of logon (for example, interactive, network, and service) is not granted by the local security policy of the target system. Ask the system administrator to grant the necessary form of logon") +STATUS_TOO_MANY_SECRETS = NtStatusException.register_ntstatus(0xc0000156, "STATUS_TOO_MANY_SECRETS", "The maximum number of secrets that may be stored in a single system was exceeded. The length and number of secrets is limited to satisfy U.S. State Department export restrictions") +STATUS_SECRET_TOO_LONG = NtStatusException.register_ntstatus(0xc0000157, "STATUS_SECRET_TOO_LONG", "The length of a secret exceeds the maximum allowable length. The length and number of secrets is limited to satisfy U.S. State Department export restrictions") +STATUS_INTERNAL_DB_ERROR = NtStatusException.register_ntstatus(0xc0000158, "STATUS_INTERNAL_DB_ERROR", "The local security authority (LSA) database contains an internal inconsistency") +STATUS_FULLSCREEN_MODE = NtStatusException.register_ntstatus(0xc0000159, "STATUS_FULLSCREEN_MODE", "The requested operation cannot be performed in full-screen mode") +STATUS_TOO_MANY_CONTEXT_IDS = NtStatusException.register_ntstatus(0xc000015a, "STATUS_TOO_MANY_CONTEXT_IDS", "During a logon attempt, the user's security context accumulated too many security IDs. This is a very unusual situation. Remove the user from some global or local groups to reduce the number of security IDs to incorporate into the security context") +STATUS_LOGON_TYPE_NOT_GRANTED = NtStatusException.register_ntstatus(0xc000015b, "STATUS_LOGON_TYPE_NOT_GRANTED", "A user has requested a type of logon (for example, interactive or network) that has not been granted. An administrator has control over who may logon interactively and through the network") +STATUS_NOT_REGISTRY_FILE = NtStatusException.register_ntstatus(0xc000015c, "STATUS_NOT_REGISTRY_FILE", "The system has attempted to load or restore a file into the registry, and the specified file is not in the format of a registry file") +STATUS_NT_CROSS_ENCRYPTION_REQUIRED = NtStatusException.register_ntstatus(0xc000015d, "STATUS_NT_CROSS_ENCRYPTION_REQUIRED", "An attempt was made to change a user password in the security account manager without providing the necessary Windows cross-encrypted password") +STATUS_DOMAIN_CTRLR_CONFIG_ERROR = NtStatusException.register_ntstatus(0xc000015e, "STATUS_DOMAIN_CTRLR_CONFIG_ERROR", "A Windows Server has an incorrect configuration") +STATUS_FT_MISSING_MEMBER = NtStatusException.register_ntstatus(0xc000015f, "STATUS_FT_MISSING_MEMBER", "An attempt was made to explicitly access the secondary copy of information via a device control to the fault tolerance driver and the secondary copy is not present in the system") +STATUS_ILL_FORMED_SERVICE_ENTRY = NtStatusException.register_ntstatus(0xc0000160, "STATUS_ILL_FORMED_SERVICE_ENTRY", "A configuration registry node that represents a driver service entry was ill-formed and did not contain the required value entries") +STATUS_ILLEGAL_CHARACTER = NtStatusException.register_ntstatus(0xc0000161, "STATUS_ILLEGAL_CHARACTER", "An illegal character was encountered. For a multibyte character set, this includes a lead byte without a succeeding trail byte. For the Unicode character set this includes the characters 0xFFFF and 0xFFFE") +STATUS_UNMAPPABLE_CHARACTER = NtStatusException.register_ntstatus(0xc0000162, "STATUS_UNMAPPABLE_CHARACTER", "No mapping for the Unicode character exists in the target multibyte code page") +STATUS_UNDEFINED_CHARACTER = NtStatusException.register_ntstatus(0xc0000163, "STATUS_UNDEFINED_CHARACTER", "The Unicode character is not defined in the Unicode character set that is installed on the system") +STATUS_FLOPPY_VOLUME = NtStatusException.register_ntstatus(0xc0000164, "STATUS_FLOPPY_VOLUME", "The paging file cannot be created on a floppy disk") +STATUS_FLOPPY_ID_MARK_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000165, "STATUS_FLOPPY_ID_MARK_NOT_FOUND", "{Floppy Disk Error} While accessing a floppy disk, an ID address mark was not found") +STATUS_FLOPPY_WRONG_CYLINDER = NtStatusException.register_ntstatus(0xc0000166, "STATUS_FLOPPY_WRONG_CYLINDER", "{Floppy Disk Error} While accessing a floppy disk, the track address from the sector ID field was found to be different from the track address that is maintained by the controller") +STATUS_FLOPPY_UNKNOWN_ERROR = NtStatusException.register_ntstatus(0xc0000167, "STATUS_FLOPPY_UNKNOWN_ERROR", "{Floppy Disk Error} The floppy disk controller reported an error that is not recognized by the floppy disk driver") +STATUS_FLOPPY_BAD_REGISTERS = NtStatusException.register_ntstatus(0xc0000168, "STATUS_FLOPPY_BAD_REGISTERS", "{Floppy Disk Error} While accessing a floppy-disk, the controller returned inconsistent results via its registers") +STATUS_DISK_RECALIBRATE_FAILED = NtStatusException.register_ntstatus(0xc0000169, "STATUS_DISK_RECALIBRATE_FAILED", "{Hard Disk Error} While accessing the hard disk, a recalibrate operation failed, even after retries") +STATUS_DISK_OPERATION_FAILED = NtStatusException.register_ntstatus(0xc000016a, "STATUS_DISK_OPERATION_FAILED", "{Hard Disk Error} While accessing the hard disk, a disk operation failed even after retries") +STATUS_DISK_RESET_FAILED = NtStatusException.register_ntstatus(0xc000016b, "STATUS_DISK_RESET_FAILED", "{Hard Disk Error} While accessing the hard disk, a disk controller reset was needed, but even that failed") +STATUS_SHARED_IRQ_BUSY = NtStatusException.register_ntstatus(0xc000016c, "STATUS_SHARED_IRQ_BUSY", "An attempt was made to open a device that was sharing an interrupt request (IRQ) with other devices. At least one other device that uses that IRQ was already opened. Two concurrent opens of devices that share an IRQ and only work via interrupts is not supported for the particular bus type that the devices use") +STATUS_FT_ORPHANING = NtStatusException.register_ntstatus(0xc000016d, "STATUS_FT_ORPHANING", "{FT Orphaning} A disk that is part of a fault-tolerant volume can no longer be accessed") +STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT = NtStatusException.register_ntstatus(0xc000016e, "STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT", "The basic input/output system (BIOS) failed to connect a system interrupt to the device or bus for which the device is connected") +STATUS_PARTITION_FAILURE = NtStatusException.register_ntstatus(0xc0000172, "STATUS_PARTITION_FAILURE", "The tape could not be partitioned") +STATUS_INVALID_BLOCK_LENGTH = NtStatusException.register_ntstatus(0xc0000173, "STATUS_INVALID_BLOCK_LENGTH", "When accessing a new tape of a multi-volume partition, the current blocksize is incorrect") +STATUS_DEVICE_NOT_PARTITIONED = NtStatusException.register_ntstatus(0xc0000174, "STATUS_DEVICE_NOT_PARTITIONED", "The tape partition information could not be found when loading a tape") +STATUS_UNABLE_TO_LOCK_MEDIA = NtStatusException.register_ntstatus(0xc0000175, "STATUS_UNABLE_TO_LOCK_MEDIA", "An attempt to lock the eject media mechanism failed") +STATUS_UNABLE_TO_UNLOAD_MEDIA = NtStatusException.register_ntstatus(0xc0000176, "STATUS_UNABLE_TO_UNLOAD_MEDIA", "An attempt to unload media failed") +STATUS_EOM_OVERFLOW = NtStatusException.register_ntstatus(0xc0000177, "STATUS_EOM_OVERFLOW", "The physical end of tape was detected") +STATUS_NO_MEDIA = NtStatusException.register_ntstatus(0xc0000178, "STATUS_NO_MEDIA", "{No Media} There is no media in the drive. Insert media into drive %hs") +STATUS_NO_SUCH_MEMBER = NtStatusException.register_ntstatus(0xc000017a, "STATUS_NO_SUCH_MEMBER", "A member could not be added to or removed from the local group because the member does not exist") +STATUS_INVALID_MEMBER = NtStatusException.register_ntstatus(0xc000017b, "STATUS_INVALID_MEMBER", "A new member could not be added to a local group because the member has the wrong account type") +STATUS_KEY_DELETED = NtStatusException.register_ntstatus(0xc000017c, "STATUS_KEY_DELETED", "An illegal operation was attempted on a registry key that has been marked for deletion") +STATUS_NO_LOG_SPACE = NtStatusException.register_ntstatus(0xc000017d, "STATUS_NO_LOG_SPACE", "The system could not allocate the required space in a registry log") +STATUS_TOO_MANY_SIDS = NtStatusException.register_ntstatus(0xc000017e, "STATUS_TOO_MANY_SIDS", "Too many SIDs have been specified") +STATUS_LM_CROSS_ENCRYPTION_REQUIRED = NtStatusException.register_ntstatus(0xc000017f, "STATUS_LM_CROSS_ENCRYPTION_REQUIRED", "An attempt was made to change a user password in the security account manager without providing the necessary LM cross-encrypted password") +STATUS_KEY_HAS_CHILDREN = NtStatusException.register_ntstatus(0xc0000180, "STATUS_KEY_HAS_CHILDREN", "An attempt was made to create a symbolic link in a registry key that already has subkeys or values") +STATUS_CHILD_MUST_BE_VOLATILE = NtStatusException.register_ntstatus(0xc0000181, "STATUS_CHILD_MUST_BE_VOLATILE", "An attempt was made to create a stable subkey under a volatile parent key") +STATUS_DEVICE_CONFIGURATION_ERROR = NtStatusException.register_ntstatus(0xc0000182, "STATUS_DEVICE_CONFIGURATION_ERROR", "The I/O device is configured incorrectly or the configuration parameters to the driver are incorrect") +STATUS_DRIVER_INTERNAL_ERROR = NtStatusException.register_ntstatus(0xc0000183, "STATUS_DRIVER_INTERNAL_ERROR", "An error was detected between two drivers or within an I/O driver") +STATUS_INVALID_DEVICE_STATE = NtStatusException.register_ntstatus(0xc0000184, "STATUS_INVALID_DEVICE_STATE", "The device is not in a valid state to perform this request") +STATUS_IO_DEVICE_ERROR = NtStatusException.register_ntstatus(0xc0000185, "STATUS_IO_DEVICE_ERROR", "The I/O device reported an I/O error") +STATUS_DEVICE_PROTOCOL_ERROR = NtStatusException.register_ntstatus(0xc0000186, "STATUS_DEVICE_PROTOCOL_ERROR", "A protocol error was detected between the driver and the device") +STATUS_BACKUP_CONTROLLER = NtStatusException.register_ntstatus(0xc0000187, "STATUS_BACKUP_CONTROLLER", "This operation is only allowed for the primary domain controller of the domain") +STATUS_LOG_FILE_FULL = NtStatusException.register_ntstatus(0xc0000188, "STATUS_LOG_FILE_FULL", "The log file space is insufficient to support this operation") +STATUS_TOO_LATE = NtStatusException.register_ntstatus(0xc0000189, "STATUS_TOO_LATE", "A write operation was attempted to a volume after it was dismounted") +STATUS_NO_TRUST_LSA_SECRET = NtStatusException.register_ntstatus(0xc000018a, "STATUS_NO_TRUST_LSA_SECRET", "The workstation does not have a trust secret for the primary domain in the local LSA database") +STATUS_NO_TRUST_SAM_ACCOUNT = NtStatusException.register_ntstatus(0xc000018b, "STATUS_NO_TRUST_SAM_ACCOUNT", "The SAM database on the Windows Server does not have a computer account for this workstation trust relationship") +STATUS_TRUSTED_DOMAIN_FAILURE = NtStatusException.register_ntstatus(0xc000018c, "STATUS_TRUSTED_DOMAIN_FAILURE", "The logon request failed because the trust relationship between the primary domain and the trusted domain failed") +STATUS_TRUSTED_RELATIONSHIP_FAILURE = NtStatusException.register_ntstatus(0xc000018d, "STATUS_TRUSTED_RELATIONSHIP_FAILURE", "The logon request failed because the trust relationship between this workstation and the primary domain failed") +STATUS_EVENTLOG_FILE_CORRUPT = NtStatusException.register_ntstatus(0xc000018e, "STATUS_EVENTLOG_FILE_CORRUPT", "The Eventlog log file is corrupt") +STATUS_EVENTLOG_CANT_START = NtStatusException.register_ntstatus(0xc000018f, "STATUS_EVENTLOG_CANT_START", "No Eventlog log file could be opened. The Eventlog service did not start") +STATUS_TRUST_FAILURE = NtStatusException.register_ntstatus(0xc0000190, "STATUS_TRUST_FAILURE", "The network logon failed. This may be because the validation authority cannot be reached") +STATUS_MUTANT_LIMIT_EXCEEDED = NtStatusException.register_ntstatus(0xc0000191, "STATUS_MUTANT_LIMIT_EXCEEDED", "An attempt was made to acquire a mutant such that its maximum count would have been exceeded") +STATUS_NETLOGON_NOT_STARTED = NtStatusException.register_ntstatus(0xc0000192, "STATUS_NETLOGON_NOT_STARTED", "An attempt was made to logon, but the NetLogon service was not started") +STATUS_ACCOUNT_EXPIRED = NtStatusException.register_ntstatus(0xc0000193, "STATUS_ACCOUNT_EXPIRED", "The user account has expired") +STATUS_POSSIBLE_DEADLOCK = NtStatusException.register_ntstatus(0xc0000194, "STATUS_POSSIBLE_DEADLOCK", "{EXCEPTION} Possible deadlock condition") +STATUS_NETWORK_CREDENTIAL_CONFLICT = NtStatusException.register_ntstatus(0xc0000195, "STATUS_NETWORK_CREDENTIAL_CONFLICT", "Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous connections to the server or shared resource and try again") +STATUS_REMOTE_SESSION_LIMIT = NtStatusException.register_ntstatus(0xc0000196, "STATUS_REMOTE_SESSION_LIMIT", "An attempt was made to establish a session to a network server, but there are already too many sessions established to that server") +STATUS_EVENTLOG_FILE_CHANGED = NtStatusException.register_ntstatus(0xc0000197, "STATUS_EVENTLOG_FILE_CHANGED", "The log file has changed between reads") +STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = NtStatusException.register_ntstatus(0xc0000198, "STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT", "The account used is an interdomain trust account. Use your global user account or local user account to access this server") +STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT = NtStatusException.register_ntstatus(0xc0000199, "STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT", "The account used is a computer account. Use your global user account or local user account to access this server") +STATUS_NOLOGON_SERVER_TRUST_ACCOUNT = NtStatusException.register_ntstatus(0xc000019a, "STATUS_NOLOGON_SERVER_TRUST_ACCOUNT", "The account used is a server trust account. Use your global user account or local user account to access this server") +STATUS_DOMAIN_TRUST_INCONSISTENT = NtStatusException.register_ntstatus(0xc000019b, "STATUS_DOMAIN_TRUST_INCONSISTENT", "The name or SID of the specified domain is inconsistent with the trust information for that domain") +STATUS_FS_DRIVER_REQUIRED = NtStatusException.register_ntstatus(0xc000019c, "STATUS_FS_DRIVER_REQUIRED", "A volume has been accessed for which a file system driver is required that has not yet been loaded") +STATUS_IMAGE_ALREADY_LOADED_AS_DLL = NtStatusException.register_ntstatus(0xc000019d, "STATUS_IMAGE_ALREADY_LOADED_AS_DLL", "Indicates that the specified image is already loaded as a DLL") +STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING = NtStatusException.register_ntstatus(0xc000019e, "STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING", "Short name settings may not be changed on this volume due to the global registry setting") +STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME = NtStatusException.register_ntstatus(0xc000019f, "STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME", "Short names are not enabled on this volume") +STATUS_SECURITY_STREAM_IS_INCONSISTENT = NtStatusException.register_ntstatus(0xc00001a0, "STATUS_SECURITY_STREAM_IS_INCONSISTENT", "The security stream for the given volume is in an inconsistent state. Please run CHKDSK on the volume") +STATUS_INVALID_LOCK_RANGE = NtStatusException.register_ntstatus(0xc00001a1, "STATUS_INVALID_LOCK_RANGE", "A requested file lock operation cannot be processed due to an invalid byte range") +STATUS_INVALID_ACE_CONDITION = NtStatusException.register_ntstatus(0xc00001a2, "STATUS_INVALID_ACE_CONDITION", "The specified access control entry (ACE) contains an invalid condition") +STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT = NtStatusException.register_ntstatus(0xc00001a3, "STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT", "The subsystem needed to support the image type is not present") +STATUS_NOTIFICATION_GUID_ALREADY_DEFINED = NtStatusException.register_ntstatus(0xc00001a4, "STATUS_NOTIFICATION_GUID_ALREADY_DEFINED", "The specified file already has a notification GUID associated with it") +STATUS_NETWORK_OPEN_RESTRICTION = NtStatusException.register_ntstatus(0xc0000201, "STATUS_NETWORK_OPEN_RESTRICTION", "A remote open failed because the network open restrictions were not satisfied") +STATUS_NO_USER_SESSION_KEY = NtStatusException.register_ntstatus(0xc0000202, "STATUS_NO_USER_SESSION_KEY", "There is no user session key for the specified logon session") +STATUS_USER_SESSION_DELETED = NtStatusException.register_ntstatus(0xc0000203, "STATUS_USER_SESSION_DELETED", "The remote user session has been deleted") +STATUS_RESOURCE_LANG_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000204, "STATUS_RESOURCE_LANG_NOT_FOUND", "Indicates the specified resource language ID cannot be found in the image file") +STATUS_INSUFF_SERVER_RESOURCES = NtStatusException.register_ntstatus(0xc0000205, "STATUS_INSUFF_SERVER_RESOURCES", "Insufficient server resources exist to complete the request") +STATUS_INVALID_BUFFER_SIZE = NtStatusException.register_ntstatus(0xc0000206, "STATUS_INVALID_BUFFER_SIZE", "The size of the buffer is invalid for the specified operation") +STATUS_INVALID_ADDRESS_COMPONENT = NtStatusException.register_ntstatus(0xc0000207, "STATUS_INVALID_ADDRESS_COMPONENT", "The transport rejected the specified network address as invalid") +STATUS_INVALID_ADDRESS_WILDCARD = NtStatusException.register_ntstatus(0xc0000208, "STATUS_INVALID_ADDRESS_WILDCARD", "The transport rejected the specified network address due to invalid use of a wildcard") +STATUS_TOO_MANY_ADDRESSES = NtStatusException.register_ntstatus(0xc0000209, "STATUS_TOO_MANY_ADDRESSES", "The transport address could not be opened because all the available addresses are in use") +STATUS_ADDRESS_ALREADY_EXISTS = NtStatusException.register_ntstatus(0xc000020a, "STATUS_ADDRESS_ALREADY_EXISTS", "The transport address could not be opened because it already exists") +STATUS_ADDRESS_CLOSED = NtStatusException.register_ntstatus(0xc000020b, "STATUS_ADDRESS_CLOSED", "The transport address is now closed") +STATUS_CONNECTION_DISCONNECTED = NtStatusException.register_ntstatus(0xc000020c, "STATUS_CONNECTION_DISCONNECTED", "The transport connection is now disconnected") +STATUS_CONNECTION_RESET = NtStatusException.register_ntstatus(0xc000020d, "STATUS_CONNECTION_RESET", "The transport connection has been reset") +STATUS_TOO_MANY_NODES = NtStatusException.register_ntstatus(0xc000020e, "STATUS_TOO_MANY_NODES", "The transport cannot dynamically acquire any more nodes") +STATUS_TRANSACTION_ABORTED = NtStatusException.register_ntstatus(0xc000020f, "STATUS_TRANSACTION_ABORTED", "The transport aborted a pending transaction") +STATUS_TRANSACTION_TIMED_OUT = NtStatusException.register_ntstatus(0xc0000210, "STATUS_TRANSACTION_TIMED_OUT", "The transport timed out a request that is waiting for a response") +STATUS_TRANSACTION_NO_RELEASE = NtStatusException.register_ntstatus(0xc0000211, "STATUS_TRANSACTION_NO_RELEASE", "The transport did not receive a release for a pending response") +STATUS_TRANSACTION_NO_MATCH = NtStatusException.register_ntstatus(0xc0000212, "STATUS_TRANSACTION_NO_MATCH", "The transport did not find a transaction that matches the specific token") +STATUS_TRANSACTION_RESPONDED = NtStatusException.register_ntstatus(0xc0000213, "STATUS_TRANSACTION_RESPONDED", "The transport had previously responded to a transaction request") +STATUS_TRANSACTION_INVALID_ID = NtStatusException.register_ntstatus(0xc0000214, "STATUS_TRANSACTION_INVALID_ID", "The transport does not recognize the specified transaction request ID") +STATUS_TRANSACTION_INVALID_TYPE = NtStatusException.register_ntstatus(0xc0000215, "STATUS_TRANSACTION_INVALID_TYPE", "The transport does not recognize the specified transaction request type") +STATUS_NOT_SERVER_SESSION = NtStatusException.register_ntstatus(0xc0000216, "STATUS_NOT_SERVER_SESSION", "The transport can only process the specified request on the server side of a session") +STATUS_NOT_CLIENT_SESSION = NtStatusException.register_ntstatus(0xc0000217, "STATUS_NOT_CLIENT_SESSION", "The transport can only process the specified request on the client side of a session") +STATUS_CANNOT_LOAD_REGISTRY_FILE = NtStatusException.register_ntstatus(0xc0000218, "STATUS_CANNOT_LOAD_REGISTRY_FILE", "{Registry File Failure} The registry cannot load the hive (file): %hs or its log or alternate. It is corrupt, absent, or not writable") +STATUS_DEBUG_ATTACH_FAILED = NtStatusException.register_ntstatus(0xc0000219, "STATUS_DEBUG_ATTACH_FAILED", "{Unexpected Failure in DebugActiveProcess} An unexpected failure occurred while processing a DebugActiveProcess API request. You may choose OK to terminate the process, or Cancel to ignore the error") +STATUS_SYSTEM_PROCESS_TERMINATED = NtStatusException.register_ntstatus(0xc000021a, "STATUS_SYSTEM_PROCESS_TERMINATED", "{Fatal System Error} The %hs system process terminated unexpectedly with a status of 0x%08x (0x%08x 0x%08x). The system has been shut down") +STATUS_DATA_NOT_ACCEPTED = NtStatusException.register_ntstatus(0xc000021b, "STATUS_DATA_NOT_ACCEPTED", "{Data Not Accepted} The TDI client could not handle the data received during an indication") +STATUS_NO_BROWSER_SERVERS_FOUND = NtStatusException.register_ntstatus(0xc000021c, "STATUS_NO_BROWSER_SERVERS_FOUND", "{Unable to Retrieve Browser Server List} The list of servers for this workgroup is not currently available") +STATUS_VDM_HARD_ERROR = NtStatusException.register_ntstatus(0xc000021d, "STATUS_VDM_HARD_ERROR", "NTVDM encountered a hard error") +STATUS_DRIVER_CANCEL_TIMEOUT = NtStatusException.register_ntstatus(0xc000021e, "STATUS_DRIVER_CANCEL_TIMEOUT", "{Cancel Timeout} The driver %hs failed to complete a canceled I/O request in the allotted time") +STATUS_REPLY_MESSAGE_MISMATCH = NtStatusException.register_ntstatus(0xc000021f, "STATUS_REPLY_MESSAGE_MISMATCH", "{Reply Message Mismatch} An attempt was made to reply to an LPC message, but the thread specified by the client ID in the message was not waiting on that message") +STATUS_MAPPED_ALIGNMENT = NtStatusException.register_ntstatus(0xc0000220, "STATUS_MAPPED_ALIGNMENT", "{Mapped View Alignment Incorrect} An attempt was made to map a view of a file, but either the specified base address or the offset into the file were not aligned on the proper allocation granularity") +STATUS_IMAGE_CHECKSUM_MISMATCH = NtStatusException.register_ntstatus(0xc0000221, "STATUS_IMAGE_CHECKSUM_MISMATCH", "{Bad Image Checksum} The image %hs is possibly corrupt. The header checksum does not match the computed checksum") +STATUS_LOST_WRITEBEHIND_DATA = NtStatusException.register_ntstatus(0xc0000222, "STATUS_LOST_WRITEBEHIND_DATA", "{Delayed Write Failed} Windows was unable to save all the data for the file %hs. The data has been lost. This error may be caused by a failure of your computer hardware or network connection. Try to save this file elsewhere") +STATUS_CLIENT_SERVER_PARAMETERS_INVALID = NtStatusException.register_ntstatus(0xc0000223, "STATUS_CLIENT_SERVER_PARAMETERS_INVALID", "The parameters passed to the server in the client/server shared memory window were invalid. Too much data may have been put in the shared memory window") +STATUS_PASSWORD_MUST_CHANGE = NtStatusException.register_ntstatus(0xc0000224, "STATUS_PASSWORD_MUST_CHANGE", "The user password must be changed before logging on the first time") +STATUS_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000225, "STATUS_NOT_FOUND", "The object was not found") +STATUS_NOT_TINY_STREAM = NtStatusException.register_ntstatus(0xc0000226, "STATUS_NOT_TINY_STREAM", "The stream is not a tiny stream") +STATUS_RECOVERY_FAILURE = NtStatusException.register_ntstatus(0xc0000227, "STATUS_RECOVERY_FAILURE", "A transaction recovery failed") +STATUS_STACK_OVERFLOW_READ = NtStatusException.register_ntstatus(0xc0000228, "STATUS_STACK_OVERFLOW_READ", "The request must be handled by the stack overflow code") +STATUS_FAIL_CHECK = NtStatusException.register_ntstatus(0xc0000229, "STATUS_FAIL_CHECK", "A consistency check failed") +STATUS_DUPLICATE_OBJECTID = NtStatusException.register_ntstatus(0xc000022a, "STATUS_DUPLICATE_OBJECTID", "The attempt to insert the ID in the index failed because the ID is already in the index") +STATUS_OBJECTID_EXISTS = NtStatusException.register_ntstatus(0xc000022b, "STATUS_OBJECTID_EXISTS", "The attempt to set the object ID failed because the object already has an ID") +STATUS_CONVERT_TO_LARGE = NtStatusException.register_ntstatus(0xc000022c, "STATUS_CONVERT_TO_LARGE", "Internal OFS status codes indicating how an allocation operation is handled. Either it is retried after the containing oNode is moved or the extent stream is converted to a large stream") +STATUS_RETRY = NtStatusException.register_ntstatus(0xc000022d, "STATUS_RETRY", "The request needs to be retried") +STATUS_FOUND_OUT_OF_SCOPE = NtStatusException.register_ntstatus(0xc000022e, "STATUS_FOUND_OUT_OF_SCOPE", "The attempt to find the object found an object on the volume that matches by ID; however, it is out of the scope of the handle that is used for the operation") +STATUS_ALLOCATE_BUCKET = NtStatusException.register_ntstatus(0xc000022f, "STATUS_ALLOCATE_BUCKET", "The bucket array must be grown. Retry the transaction after doing so") +STATUS_PROPSET_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000230, "STATUS_PROPSET_NOT_FOUND", "The specified property set does not exist on the object") +STATUS_MARSHALL_OVERFLOW = NtStatusException.register_ntstatus(0xc0000231, "STATUS_MARSHALL_OVERFLOW", "The user/kernel marshaling buffer has overflowed") +STATUS_INVALID_VARIANT = NtStatusException.register_ntstatus(0xc0000232, "STATUS_INVALID_VARIANT", "The supplied variant structure contains invalid data") +STATUS_DOMAIN_CONTROLLER_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000233, "STATUS_DOMAIN_CONTROLLER_NOT_FOUND", "A domain controller for this domain was not found") +STATUS_ACCOUNT_LOCKED_OUT = NtStatusException.register_ntstatus(0xc0000234, "STATUS_ACCOUNT_LOCKED_OUT", "The user account has been automatically locked because too many invalid logon attempts or password change attempts have been requested") +STATUS_HANDLE_NOT_CLOSABLE = NtStatusException.register_ntstatus(0xc0000235, "STATUS_HANDLE_NOT_CLOSABLE", "NtClose was called on a handle that was protected from close via NtSetInformationObject") +STATUS_CONNECTION_REFUSED = NtStatusException.register_ntstatus(0xc0000236, "STATUS_CONNECTION_REFUSED", "The transport-connection attempt was refused by the remote system") +STATUS_GRACEFUL_DISCONNECT = NtStatusException.register_ntstatus(0xc0000237, "STATUS_GRACEFUL_DISCONNECT", "The transport connection was gracefully closed") +STATUS_ADDRESS_ALREADY_ASSOCIATED = NtStatusException.register_ntstatus(0xc0000238, "STATUS_ADDRESS_ALREADY_ASSOCIATED", "The transport endpoint already has an address associated with it") +STATUS_ADDRESS_NOT_ASSOCIATED = NtStatusException.register_ntstatus(0xc0000239, "STATUS_ADDRESS_NOT_ASSOCIATED", "An address has not yet been associated with the transport endpoint") +STATUS_CONNECTION_INVALID = NtStatusException.register_ntstatus(0xc000023a, "STATUS_CONNECTION_INVALID", "An operation was attempted on a nonexistent transport connection") +STATUS_CONNECTION_ACTIVE = NtStatusException.register_ntstatus(0xc000023b, "STATUS_CONNECTION_ACTIVE", "An invalid operation was attempted on an active transport connection") +STATUS_NETWORK_UNREACHABLE = NtStatusException.register_ntstatus(0xc000023c, "STATUS_NETWORK_UNREACHABLE", "The remote network is not reachable by the transport") +STATUS_HOST_UNREACHABLE = NtStatusException.register_ntstatus(0xc000023d, "STATUS_HOST_UNREACHABLE", "The remote system is not reachable by the transport") +STATUS_PROTOCOL_UNREACHABLE = NtStatusException.register_ntstatus(0xc000023e, "STATUS_PROTOCOL_UNREACHABLE", "The remote system does not support the transport protocol") +STATUS_PORT_UNREACHABLE = NtStatusException.register_ntstatus(0xc000023f, "STATUS_PORT_UNREACHABLE", "No service is operating at the destination port of the transport on the remote system") +STATUS_REQUEST_ABORTED = NtStatusException.register_ntstatus(0xc0000240, "STATUS_REQUEST_ABORTED", "The request was aborted") +STATUS_CONNECTION_ABORTED = NtStatusException.register_ntstatus(0xc0000241, "STATUS_CONNECTION_ABORTED", "The transport connection was aborted by the local system") +STATUS_BAD_COMPRESSION_BUFFER = NtStatusException.register_ntstatus(0xc0000242, "STATUS_BAD_COMPRESSION_BUFFER", "The specified buffer contains ill-formed data") +STATUS_USER_MAPPED_FILE = NtStatusException.register_ntstatus(0xc0000243, "STATUS_USER_MAPPED_FILE", "The requested operation cannot be performed on a file with a user mapped section open") +STATUS_AUDIT_FAILED = NtStatusException.register_ntstatus(0xc0000244, "STATUS_AUDIT_FAILED", "{Audit Failed} An attempt to generate a security audit failed") +STATUS_TIMER_RESOLUTION_NOT_SET = NtStatusException.register_ntstatus(0xc0000245, "STATUS_TIMER_RESOLUTION_NOT_SET", "The timer resolution was not previously set by the current process") +STATUS_CONNECTION_COUNT_LIMIT = NtStatusException.register_ntstatus(0xc0000246, "STATUS_CONNECTION_COUNT_LIMIT", "A connection to the server could not be made because the limit on the number of concurrent connections for this account has been reached") +STATUS_LOGIN_TIME_RESTRICTION = NtStatusException.register_ntstatus(0xc0000247, "STATUS_LOGIN_TIME_RESTRICTION", "Attempting to log on during an unauthorized time of day for this account") +STATUS_LOGIN_WKSTA_RESTRICTION = NtStatusException.register_ntstatus(0xc0000248, "STATUS_LOGIN_WKSTA_RESTRICTION", "The account is not authorized to log on from this station") +STATUS_IMAGE_MP_UP_MISMATCH = NtStatusException.register_ntstatus(0xc0000249, "STATUS_IMAGE_MP_UP_MISMATCH", "{UP/MP Image Mismatch} The image %hs has been modified for use on a uniprocessor system, but you are running it on a multiprocessor machine. Reinstall the image file") +STATUS_INSUFFICIENT_LOGON_INFO = NtStatusException.register_ntstatus(0xc0000250, "STATUS_INSUFFICIENT_LOGON_INFO", "There is insufficient account information to log you on") +STATUS_BAD_DLL_ENTRYPOINT = NtStatusException.register_ntstatus(0xc0000251, "STATUS_BAD_DLL_ENTRYPOINT", "{Invalid DLL Entrypoint} The dynamic link library %hs is not written correctly. The stack pointer has been left in an inconsistent state. The entry point should be declared as WINAPI or STDCALL. Select YES to fail the DLL load. Select NO to continue execution. Selecting NO may cause the application to operate incorrectly") +STATUS_BAD_SERVICE_ENTRYPOINT = NtStatusException.register_ntstatus(0xc0000252, "STATUS_BAD_SERVICE_ENTRYPOINT", "{Invalid Service Callback Entrypoint} The %hs service is not written correctly. The stack pointer has been left in an inconsistent state. The callback entry point should be declared as WINAPI or STDCALL. Selecting OK will cause the service to continue operation. However, the service process may operate incorrectly") +STATUS_LPC_REPLY_LOST = NtStatusException.register_ntstatus(0xc0000253, "STATUS_LPC_REPLY_LOST", "The server received the messages but did not send a reply") +STATUS_IP_ADDRESS_CONFLICT1 = NtStatusException.register_ntstatus(0xc0000254, "STATUS_IP_ADDRESS_CONFLICT1", "There is an IP address conflict with another system on the network") +STATUS_IP_ADDRESS_CONFLICT2 = NtStatusException.register_ntstatus(0xc0000255, "STATUS_IP_ADDRESS_CONFLICT2", "There is an IP address conflict with another system on the network") +STATUS_REGISTRY_QUOTA_LIMIT = NtStatusException.register_ntstatus(0xc0000256, "STATUS_REGISTRY_QUOTA_LIMIT", "{Low On Registry Space} The system has reached the maximum size that is allowed for the system part of the registry. Additional storage requests will be ignored") +STATUS_PATH_NOT_COVERED = NtStatusException.register_ntstatus(0xc0000257, "STATUS_PATH_NOT_COVERED", "The contacted server does not support the indicated part of the DFS namespace") +STATUS_NO_CALLBACK_ACTIVE = NtStatusException.register_ntstatus(0xc0000258, "STATUS_NO_CALLBACK_ACTIVE", "A callback return system service cannot be executed when no callback is active") +STATUS_LICENSE_QUOTA_EXCEEDED = NtStatusException.register_ntstatus(0xc0000259, "STATUS_LICENSE_QUOTA_EXCEEDED", "The service being accessed is licensed for a particular number of connections. No more connections can be made to the service at this time because the service has already accepted the maximum number of connections") +STATUS_PWD_TOO_SHORT = NtStatusException.register_ntstatus(0xc000025a, "STATUS_PWD_TOO_SHORT", "The password provided is too short to meet the policy of your user account. Choose a longer password") +STATUS_PWD_TOO_RECENT = NtStatusException.register_ntstatus(0xc000025b, "STATUS_PWD_TOO_RECENT", "The policy of your user account does not allow you to change passwords too frequently. This is done to prevent users from changing back to a familiar, but potentially discovered, password. If you feel your password has been compromised, contact your administrator immediately to have a new one assigned") +STATUS_PWD_HISTORY_CONFLICT = NtStatusException.register_ntstatus(0xc000025c, "STATUS_PWD_HISTORY_CONFLICT", "You have attempted to change your password to one that you have used in the past. The policy of your user account does not allow this. Select a password that you have not previously used") +STATUS_PLUGPLAY_NO_DEVICE = NtStatusException.register_ntstatus(0xc000025e, "STATUS_PLUGPLAY_NO_DEVICE", "You have attempted to load a legacy device driver while its device instance had been disabled") +STATUS_UNSUPPORTED_COMPRESSION = NtStatusException.register_ntstatus(0xc000025f, "STATUS_UNSUPPORTED_COMPRESSION", "The specified compression format is unsupported") +STATUS_INVALID_HW_PROFILE = NtStatusException.register_ntstatus(0xc0000260, "STATUS_INVALID_HW_PROFILE", "The specified hardware profile configuration is invalid") +STATUS_INVALID_PLUGPLAY_DEVICE_PATH = NtStatusException.register_ntstatus(0xc0000261, "STATUS_INVALID_PLUGPLAY_DEVICE_PATH", "The specified Plug and Play registry device path is invalid") +STATUS_DRIVER_ORDINAL_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000262, "STATUS_DRIVER_ORDINAL_NOT_FOUND", "{Driver Entry Point Not Found} The %hs device driver could not locate the ordinal %ld in driver %hs") +STATUS_DRIVER_ENTRYPOINT_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000263, "STATUS_DRIVER_ENTRYPOINT_NOT_FOUND", "{Driver Entry Point Not Found} The %hs device driver could not locate the entry point %hs in driver %hs") +STATUS_RESOURCE_NOT_OWNED = NtStatusException.register_ntstatus(0xc0000264, "STATUS_RESOURCE_NOT_OWNED", "{Application Error} The application attempted to release a resource it did not own. Click OK to terminate the application") +STATUS_TOO_MANY_LINKS = NtStatusException.register_ntstatus(0xc0000265, "STATUS_TOO_MANY_LINKS", "An attempt was made to create more links on a file than the file system supports") +STATUS_QUOTA_LIST_INCONSISTENT = NtStatusException.register_ntstatus(0xc0000266, "STATUS_QUOTA_LIST_INCONSISTENT", "The specified quota list is internally inconsistent with its descriptor") +STATUS_FILE_IS_OFFLINE = NtStatusException.register_ntstatus(0xc0000267, "STATUS_FILE_IS_OFFLINE", "The specified file has been relocated to offline storage") +STATUS_EVALUATION_EXPIRATION = NtStatusException.register_ntstatus(0xc0000268, "STATUS_EVALUATION_EXPIRATION", "{Windows Evaluation Notification} The evaluation period for this installation of Windows has expired. This system will shutdown in 1 hour. To restore access to this installation of Windows, upgrade this installation by using a licensed distribution of this product") +STATUS_ILLEGAL_DLL_RELOCATION = NtStatusException.register_ntstatus(0xc0000269, "STATUS_ILLEGAL_DLL_RELOCATION", "{Illegal System DLL Relocation} The system DLL %hs was relocated in memory. The application will not run properly. The relocation occurred because the DLL %hs occupied an address range that is reserved for Windows system DLLs. The vendor supplying the DLL should be contacted for a new DLL") +STATUS_LICENSE_VIOLATION = NtStatusException.register_ntstatus(0xc000026a, "STATUS_LICENSE_VIOLATION", "{License Violation} The system has detected tampering with your registered product type. This is a violation of your software license. Tampering with the product type is not permitted") +STATUS_DLL_INIT_FAILED_LOGOFF = NtStatusException.register_ntstatus(0xc000026b, "STATUS_DLL_INIT_FAILED_LOGOFF", "{DLL Initialization Failed} The application failed to initialize because the window station is shutting down") +STATUS_DRIVER_UNABLE_TO_LOAD = NtStatusException.register_ntstatus(0xc000026c, "STATUS_DRIVER_UNABLE_TO_LOAD", "{Unable to Load Device Driver} %hs device driver could not be loaded. Error Status was 0x%x") +STATUS_DFS_UNAVAILABLE = NtStatusException.register_ntstatus(0xc000026d, "STATUS_DFS_UNAVAILABLE", "DFS is unavailable on the contacted server") +STATUS_VOLUME_DISMOUNTED = NtStatusException.register_ntstatus(0xc000026e, "STATUS_VOLUME_DISMOUNTED", "An operation was attempted to a volume after it was dismounted") +STATUS_WX86_INTERNAL_ERROR = NtStatusException.register_ntstatus(0xc000026f, "STATUS_WX86_INTERNAL_ERROR", "An internal error occurred in the Win32 x86 emulation subsystem") +STATUS_WX86_FLOAT_STACK_CHECK = NtStatusException.register_ntstatus(0xc0000270, "STATUS_WX86_FLOAT_STACK_CHECK", "Win32 x86 emulation subsystem floating-point stack check") +STATUS_VALIDATE_CONTINUE = NtStatusException.register_ntstatus(0xc0000271, "STATUS_VALIDATE_CONTINUE", "The validation process needs to continue on to the next step") +STATUS_NO_MATCH = NtStatusException.register_ntstatus(0xc0000272, "STATUS_NO_MATCH", "There was no match for the specified key in the index") +STATUS_NO_MORE_MATCHES = NtStatusException.register_ntstatus(0xc0000273, "STATUS_NO_MORE_MATCHES", "There are no more matches for the current index enumeration") +STATUS_NOT_A_REPARSE_POINT = NtStatusException.register_ntstatus(0xc0000275, "STATUS_NOT_A_REPARSE_POINT", "The NTFS file or directory is not a reparse point") +STATUS_IO_REPARSE_TAG_INVALID = NtStatusException.register_ntstatus(0xc0000276, "STATUS_IO_REPARSE_TAG_INVALID", "The Windows I/O reparse tag passed for the NTFS reparse point is invalid") +STATUS_IO_REPARSE_TAG_MISMATCH = NtStatusException.register_ntstatus(0xc0000277, "STATUS_IO_REPARSE_TAG_MISMATCH", "The Windows I/O reparse tag does not match the one that is in the NTFS reparse point") +STATUS_IO_REPARSE_DATA_INVALID = NtStatusException.register_ntstatus(0xc0000278, "STATUS_IO_REPARSE_DATA_INVALID", "The user data passed for the NTFS reparse point is invalid") +STATUS_IO_REPARSE_TAG_NOT_HANDLED = NtStatusException.register_ntstatus(0xc0000279, "STATUS_IO_REPARSE_TAG_NOT_HANDLED", "The layered file system driver for this I/O tag did not handle it when needed") +STATUS_REPARSE_POINT_NOT_RESOLVED = NtStatusException.register_ntstatus(0xc0000280, "STATUS_REPARSE_POINT_NOT_RESOLVED", "The NTFS symbolic link could not be resolved even though the initial file name is valid") +STATUS_DIRECTORY_IS_A_REPARSE_POINT = NtStatusException.register_ntstatus(0xc0000281, "STATUS_DIRECTORY_IS_A_REPARSE_POINT", "The NTFS directory is a reparse point") +STATUS_RANGE_LIST_CONFLICT = NtStatusException.register_ntstatus(0xc0000282, "STATUS_RANGE_LIST_CONFLICT", "The range could not be added to the range list because of a conflict") +STATUS_SOURCE_ELEMENT_EMPTY = NtStatusException.register_ntstatus(0xc0000283, "STATUS_SOURCE_ELEMENT_EMPTY", "The specified medium changer source element contains no media") +STATUS_DESTINATION_ELEMENT_FULL = NtStatusException.register_ntstatus(0xc0000284, "STATUS_DESTINATION_ELEMENT_FULL", "The specified medium changer destination element already contains media") +STATUS_ILLEGAL_ELEMENT_ADDRESS = NtStatusException.register_ntstatus(0xc0000285, "STATUS_ILLEGAL_ELEMENT_ADDRESS", "The specified medium changer element does not exist") +STATUS_MAGAZINE_NOT_PRESENT = NtStatusException.register_ntstatus(0xc0000286, "STATUS_MAGAZINE_NOT_PRESENT", "The specified element is contained in a magazine that is no longer present") +STATUS_REINITIALIZATION_NEEDED = NtStatusException.register_ntstatus(0xc0000287, "STATUS_REINITIALIZATION_NEEDED", "The device requires re-initialization due to hardware errors") +STATUS_ENCRYPTION_FAILED = NtStatusException.register_ntstatus(0xc000028a, "STATUS_ENCRYPTION_FAILED", "The file encryption attempt failed") +STATUS_DECRYPTION_FAILED = NtStatusException.register_ntstatus(0xc000028b, "STATUS_DECRYPTION_FAILED", "The file decryption attempt failed") +STATUS_RANGE_NOT_FOUND = NtStatusException.register_ntstatus(0xc000028c, "STATUS_RANGE_NOT_FOUND", "The specified range could not be found in the range list") +STATUS_NO_RECOVERY_POLICY = NtStatusException.register_ntstatus(0xc000028d, "STATUS_NO_RECOVERY_POLICY", "There is no encryption recovery policy configured for this system") +STATUS_NO_EFS = NtStatusException.register_ntstatus(0xc000028e, "STATUS_NO_EFS", "The required encryption driver is not loaded for this system") +STATUS_WRONG_EFS = NtStatusException.register_ntstatus(0xc000028f, "STATUS_WRONG_EFS", "The file was encrypted with a different encryption driver than is currently loaded") +STATUS_NO_USER_KEYS = NtStatusException.register_ntstatus(0xc0000290, "STATUS_NO_USER_KEYS", "There are no EFS keys defined for the user") +STATUS_FILE_NOT_ENCRYPTED = NtStatusException.register_ntstatus(0xc0000291, "STATUS_FILE_NOT_ENCRYPTED", "The specified file is not encrypted") +STATUS_NOT_EXPORT_FORMAT = NtStatusException.register_ntstatus(0xc0000292, "STATUS_NOT_EXPORT_FORMAT", "The specified file is not in the defined EFS export format") +STATUS_FILE_ENCRYPTED = NtStatusException.register_ntstatus(0xc0000293, "STATUS_FILE_ENCRYPTED", "The specified file is encrypted and the user does not have the ability to decrypt it") +STATUS_WMI_GUID_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000295, "STATUS_WMI_GUID_NOT_FOUND", "The GUID passed was not recognized as valid by a WMI data provider") +STATUS_WMI_INSTANCE_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000296, "STATUS_WMI_INSTANCE_NOT_FOUND", "The instance name passed was not recognized as valid by a WMI data provider") +STATUS_WMI_ITEMID_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000297, "STATUS_WMI_ITEMID_NOT_FOUND", "The data item ID passed was not recognized as valid by a WMI data provider") +STATUS_WMI_TRY_AGAIN = NtStatusException.register_ntstatus(0xc0000298, "STATUS_WMI_TRY_AGAIN", "The WMI request could not be completed and should be retried") +STATUS_SHARED_POLICY = NtStatusException.register_ntstatus(0xc0000299, "STATUS_SHARED_POLICY", "The policy object is shared and can only be modified at the root") +STATUS_POLICY_OBJECT_NOT_FOUND = NtStatusException.register_ntstatus(0xc000029a, "STATUS_POLICY_OBJECT_NOT_FOUND", "The policy object does not exist when it should") +STATUS_POLICY_ONLY_IN_DS = NtStatusException.register_ntstatus(0xc000029b, "STATUS_POLICY_ONLY_IN_DS", "The requested policy information only lives in the Ds") +STATUS_VOLUME_NOT_UPGRADED = NtStatusException.register_ntstatus(0xc000029c, "STATUS_VOLUME_NOT_UPGRADED", "The volume must be upgraded to enable this feature") +STATUS_REMOTE_STORAGE_NOT_ACTIVE = NtStatusException.register_ntstatus(0xc000029d, "STATUS_REMOTE_STORAGE_NOT_ACTIVE", "The remote storage service is not operational at this time") +STATUS_REMOTE_STORAGE_MEDIA_ERROR = NtStatusException.register_ntstatus(0xc000029e, "STATUS_REMOTE_STORAGE_MEDIA_ERROR", "The remote storage service encountered a media error") +STATUS_NO_TRACKING_SERVICE = NtStatusException.register_ntstatus(0xc000029f, "STATUS_NO_TRACKING_SERVICE", "The tracking (workstation) service is not running") +STATUS_SERVER_SID_MISMATCH = NtStatusException.register_ntstatus(0xc00002a0, "STATUS_SERVER_SID_MISMATCH", "The server process is running under a SID that is different from the SID that is required by client") +STATUS_DS_NO_ATTRIBUTE_OR_VALUE = NtStatusException.register_ntstatus(0xc00002a1, "STATUS_DS_NO_ATTRIBUTE_OR_VALUE", "The specified directory service attribute or value does not exist") +STATUS_DS_INVALID_ATTRIBUTE_SYNTAX = NtStatusException.register_ntstatus(0xc00002a2, "STATUS_DS_INVALID_ATTRIBUTE_SYNTAX", "The attribute syntax specified to the directory service is invalid") +STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED = NtStatusException.register_ntstatus(0xc00002a3, "STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED", "The attribute type specified to the directory service is not defined") +STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS = NtStatusException.register_ntstatus(0xc00002a4, "STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS", "The specified directory service attribute or value already exists") +STATUS_DS_BUSY = NtStatusException.register_ntstatus(0xc00002a5, "STATUS_DS_BUSY", "The directory service is busy") +STATUS_DS_UNAVAILABLE = NtStatusException.register_ntstatus(0xc00002a6, "STATUS_DS_UNAVAILABLE", "The directory service is unavailable") +STATUS_DS_NO_RIDS_ALLOCATED = NtStatusException.register_ntstatus(0xc00002a7, "STATUS_DS_NO_RIDS_ALLOCATED", "The directory service was unable to allocate a relative identifier") +STATUS_DS_NO_MORE_RIDS = NtStatusException.register_ntstatus(0xc00002a8, "STATUS_DS_NO_MORE_RIDS", "The directory service has exhausted the pool of relative identifiers") +STATUS_DS_INCORRECT_ROLE_OWNER = NtStatusException.register_ntstatus(0xc00002a9, "STATUS_DS_INCORRECT_ROLE_OWNER", "The requested operation could not be performed because the directory service is not the master for that type of operation") +STATUS_DS_RIDMGR_INIT_ERROR = NtStatusException.register_ntstatus(0xc00002aa, "STATUS_DS_RIDMGR_INIT_ERROR", "The directory service was unable to initialize the subsystem that allocates relative identifiers") +STATUS_DS_OBJ_CLASS_VIOLATION = NtStatusException.register_ntstatus(0xc00002ab, "STATUS_DS_OBJ_CLASS_VIOLATION", "The requested operation did not satisfy one or more constraints that are associated with the class of the object") +STATUS_DS_CANT_ON_NON_LEAF = NtStatusException.register_ntstatus(0xc00002ac, "STATUS_DS_CANT_ON_NON_LEAF", "The directory service can perform the requested operation only on a leaf object") +STATUS_DS_CANT_ON_RDN = NtStatusException.register_ntstatus(0xc00002ad, "STATUS_DS_CANT_ON_RDN", "The directory service cannot perform the requested operation on the Relatively Defined Name (RDN) attribute of an object") +STATUS_DS_CANT_MOD_OBJ_CLASS = NtStatusException.register_ntstatus(0xc00002ae, "STATUS_DS_CANT_MOD_OBJ_CLASS", "The directory service detected an attempt to modify the object class of an object") +STATUS_DS_CROSS_DOM_MOVE_FAILED = NtStatusException.register_ntstatus(0xc00002af, "STATUS_DS_CROSS_DOM_MOVE_FAILED", "An error occurred while performing a cross domain move operation") +STATUS_DS_GC_NOT_AVAILABLE = NtStatusException.register_ntstatus(0xc00002b0, "STATUS_DS_GC_NOT_AVAILABLE", "Unable to contact the global catalog server") +STATUS_DIRECTORY_SERVICE_REQUIRED = NtStatusException.register_ntstatus(0xc00002b1, "STATUS_DIRECTORY_SERVICE_REQUIRED", "The requested operation requires a directory service, and none was available") +STATUS_REPARSE_ATTRIBUTE_CONFLICT = NtStatusException.register_ntstatus(0xc00002b2, "STATUS_REPARSE_ATTRIBUTE_CONFLICT", "The reparse attribute cannot be set because it is incompatible with an existing attribute") +STATUS_CANT_ENABLE_DENY_ONLY = NtStatusException.register_ntstatus(0xc00002b3, "STATUS_CANT_ENABLE_DENY_ONLY", "A group marked 'use for deny only' cannot be enabled") +STATUS_FLOAT_MULTIPLE_FAULTS = NtStatusException.register_ntstatus(0xc00002b4, "STATUS_FLOAT_MULTIPLE_FAULTS", "{EXCEPTION} Multiple floating-point faults") +STATUS_FLOAT_MULTIPLE_TRAPS = NtStatusException.register_ntstatus(0xc00002b5, "STATUS_FLOAT_MULTIPLE_TRAPS", "{EXCEPTION} Multiple floating-point traps") +STATUS_DEVICE_REMOVED = NtStatusException.register_ntstatus(0xc00002b6, "STATUS_DEVICE_REMOVED", "The device has been removed") +STATUS_JOURNAL_DELETE_IN_PROGRESS = NtStatusException.register_ntstatus(0xc00002b7, "STATUS_JOURNAL_DELETE_IN_PROGRESS", "The volume change journal is being deleted") +STATUS_JOURNAL_NOT_ACTIVE = NtStatusException.register_ntstatus(0xc00002b8, "STATUS_JOURNAL_NOT_ACTIVE", "The volume change journal is not active") +STATUS_NOINTERFACE = NtStatusException.register_ntstatus(0xc00002b9, "STATUS_NOINTERFACE", "The requested interface is not supported") +STATUS_DS_ADMIN_LIMIT_EXCEEDED = NtStatusException.register_ntstatus(0xc00002c1, "STATUS_DS_ADMIN_LIMIT_EXCEEDED", "A directory service resource limit has been exceeded") +STATUS_DRIVER_FAILED_SLEEP = NtStatusException.register_ntstatus(0xc00002c2, "STATUS_DRIVER_FAILED_SLEEP", "{System Standby Failed} The driver %hs does not support standby mode. Updating this driver may allow the system to go to standby mode") +STATUS_MUTUAL_AUTHENTICATION_FAILED = NtStatusException.register_ntstatus(0xc00002c3, "STATUS_MUTUAL_AUTHENTICATION_FAILED", "Mutual Authentication failed. The server password is out of date at the domain controller") +STATUS_CORRUPT_SYSTEM_FILE = NtStatusException.register_ntstatus(0xc00002c4, "STATUS_CORRUPT_SYSTEM_FILE", "The system file %1 has become corrupt and has been replaced") +STATUS_DATATYPE_MISALIGNMENT_ERROR = NtStatusException.register_ntstatus(0xc00002c5, "STATUS_DATATYPE_MISALIGNMENT_ERROR", "{EXCEPTION} Alignment Error A data type misalignment error was detected in a load or store instruction") +STATUS_WMI_READ_ONLY = NtStatusException.register_ntstatus(0xc00002c6, "STATUS_WMI_READ_ONLY", "The WMI data item or data block is read-only") +STATUS_WMI_SET_FAILURE = NtStatusException.register_ntstatus(0xc00002c7, "STATUS_WMI_SET_FAILURE", "The WMI data item or data block could not be changed") +STATUS_COMMITMENT_MINIMUM = NtStatusException.register_ntstatus(0xc00002c8, "STATUS_COMMITMENT_MINIMUM", "{Virtual Memory Minimum Too Low} Your system is low on virtual memory. Windows is increasing the size of your virtual memory paging file. During this process, memory requests for some applications may be denied. For more information, see Help") +STATUS_REG_NAT_CONSUMPTION = NtStatusException.register_ntstatus(0xc00002c9, "STATUS_REG_NAT_CONSUMPTION", "{EXCEPTION} Register NaT consumption faults. A NaT value is consumed on a non-speculative instruction") +STATUS_TRANSPORT_FULL = NtStatusException.register_ntstatus(0xc00002ca, "STATUS_TRANSPORT_FULL", "The transport element of the medium changer contains media, which is causing the operation to fail") +STATUS_DS_SAM_INIT_FAILURE = NtStatusException.register_ntstatus(0xc00002cb, "STATUS_DS_SAM_INIT_FAILURE", "Security Accounts Manager initialization failed because of the following error: %hs Error Status: 0x%x. Click OK to shut down this system and restart in Directory Services Restore Mode. Check the event log for more detailed information") +STATUS_ONLY_IF_CONNECTED = NtStatusException.register_ntstatus(0xc00002cc, "STATUS_ONLY_IF_CONNECTED", "This operation is supported only when you are connected to the server") +STATUS_DS_SENSITIVE_GROUP_VIOLATION = NtStatusException.register_ntstatus(0xc00002cd, "STATUS_DS_SENSITIVE_GROUP_VIOLATION", "Only an administrator can modify the membership list of an administrative group") +STATUS_PNP_RESTART_ENUMERATION = NtStatusException.register_ntstatus(0xc00002ce, "STATUS_PNP_RESTART_ENUMERATION", "A device was removed so enumeration must be restarted") +STATUS_JOURNAL_ENTRY_DELETED = NtStatusException.register_ntstatus(0xc00002cf, "STATUS_JOURNAL_ENTRY_DELETED", "The journal entry has been deleted from the journal") +STATUS_DS_CANT_MOD_PRIMARYGROUPID = NtStatusException.register_ntstatus(0xc00002d0, "STATUS_DS_CANT_MOD_PRIMARYGROUPID", "Cannot change the primary group ID of a domain controller account") +STATUS_SYSTEM_IMAGE_BAD_SIGNATURE = NtStatusException.register_ntstatus(0xc00002d1, "STATUS_SYSTEM_IMAGE_BAD_SIGNATURE", "{Fatal System Error} The system image %s is not properly signed. The file has been replaced with the signed file. The system has been shut down") +STATUS_PNP_REBOOT_REQUIRED = NtStatusException.register_ntstatus(0xc00002d2, "STATUS_PNP_REBOOT_REQUIRED", "The device will not start without a reboot") +STATUS_POWER_STATE_INVALID = NtStatusException.register_ntstatus(0xc00002d3, "STATUS_POWER_STATE_INVALID", "The power state of the current device cannot support this request") +STATUS_DS_INVALID_GROUP_TYPE = NtStatusException.register_ntstatus(0xc00002d4, "STATUS_DS_INVALID_GROUP_TYPE", "The specified group type is invalid") +STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN = NtStatusException.register_ntstatus(0xc00002d5, "STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN", "In a mixed domain, no nesting of a global group if the group is security enabled") +STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN = NtStatusException.register_ntstatus(0xc00002d6, "STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN", "In a mixed domain, cannot nest local groups with other local groups, if the group is security enabled") +STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER = NtStatusException.register_ntstatus(0xc00002d7, "STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER", "A global group cannot have a local group as a member") +STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER = NtStatusException.register_ntstatus(0xc00002d8, "STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER", "A global group cannot have a universal group as a member") +STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER = NtStatusException.register_ntstatus(0xc00002d9, "STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER", "A universal group cannot have a local group as a member") +STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER = NtStatusException.register_ntstatus(0xc00002da, "STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER", "A global group cannot have a cross-domain member") +STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER = NtStatusException.register_ntstatus(0xc00002db, "STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER", "A local group cannot have another cross-domain local group as a member") +STATUS_DS_HAVE_PRIMARY_MEMBERS = NtStatusException.register_ntstatus(0xc00002dc, "STATUS_DS_HAVE_PRIMARY_MEMBERS", "Cannot change to a security-disabled group because primary members are in this group") +STATUS_WMI_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc00002dd, "STATUS_WMI_NOT_SUPPORTED", "The WMI operation is not supported by the data block or method") +STATUS_INSUFFICIENT_POWER = NtStatusException.register_ntstatus(0xc00002de, "STATUS_INSUFFICIENT_POWER", "There is not enough power to complete the requested operation") +STATUS_SAM_NEED_BOOTKEY_PASSWORD = NtStatusException.register_ntstatus(0xc00002df, "STATUS_SAM_NEED_BOOTKEY_PASSWORD", "The Security Accounts Manager needs to get the boot password") +STATUS_SAM_NEED_BOOTKEY_FLOPPY = NtStatusException.register_ntstatus(0xc00002e0, "STATUS_SAM_NEED_BOOTKEY_FLOPPY", "The Security Accounts Manager needs to get the boot key from the floppy disk") +STATUS_DS_CANT_START = NtStatusException.register_ntstatus(0xc00002e1, "STATUS_DS_CANT_START", "The directory service cannot start") +STATUS_DS_INIT_FAILURE = NtStatusException.register_ntstatus(0xc00002e2, "STATUS_DS_INIT_FAILURE", "The directory service could not start because of the following error: %hs Error Status: 0x%x. Click OK to shut down this system and restart in Directory Services Restore Mode. Check the event log for more detailed information") +STATUS_SAM_INIT_FAILURE = NtStatusException.register_ntstatus(0xc00002e3, "STATUS_SAM_INIT_FAILURE", "The Security Accounts Manager initialization failed because of the following error: %hs Error Status: 0x%x. Click OK to shut down this system and restart in Safe Mode. Check the event log for more detailed information") +STATUS_DS_GC_REQUIRED = NtStatusException.register_ntstatus(0xc00002e4, "STATUS_DS_GC_REQUIRED", "The requested operation can be performed only on a global catalog server") +STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY = NtStatusException.register_ntstatus(0xc00002e5, "STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY", "A local group can only be a member of other local groups in the same domain") +STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS = NtStatusException.register_ntstatus(0xc00002e6, "STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS", "Foreign security principals cannot be members of universal groups") +STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED = NtStatusException.register_ntstatus(0xc00002e7, "STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED", "Your computer could not be joined to the domain. You have exceeded the maximum number of computer accounts you are allowed to create in this domain. Contact your system administrator to have this limit reset or increased") +STATUS_CURRENT_DOMAIN_NOT_ALLOWED = NtStatusException.register_ntstatus(0xc00002e9, "STATUS_CURRENT_DOMAIN_NOT_ALLOWED", "This operation cannot be performed on the current domain") +STATUS_CANNOT_MAKE = NtStatusException.register_ntstatus(0xc00002ea, "STATUS_CANNOT_MAKE", "The directory or file cannot be created") +STATUS_SYSTEM_SHUTDOWN = NtStatusException.register_ntstatus(0xc00002eb, "STATUS_SYSTEM_SHUTDOWN", "The system is in the process of shutting down") +STATUS_DS_INIT_FAILURE_CONSOLE = NtStatusException.register_ntstatus(0xc00002ec, "STATUS_DS_INIT_FAILURE_CONSOLE", "Directory Services could not start because of the following error: %hs Error Status: 0x%x. Click OK to shut down the system. You can use the recovery console to diagnose the system further") +STATUS_DS_SAM_INIT_FAILURE_CONSOLE = NtStatusException.register_ntstatus(0xc00002ed, "STATUS_DS_SAM_INIT_FAILURE_CONSOLE", "Security Accounts Manager initialization failed because of the following error: %hs Error Status: 0x%x. Click OK to shut down the system. You can use the recovery console to diagnose the system further") +STATUS_UNFINISHED_CONTEXT_DELETED = NtStatusException.register_ntstatus(0xc00002ee, "STATUS_UNFINISHED_CONTEXT_DELETED", "A security context was deleted before the context was completed. This is considered a logon failure") +STATUS_NO_TGT_REPLY = NtStatusException.register_ntstatus(0xc00002ef, "STATUS_NO_TGT_REPLY", "The client is trying to negotiate a context and the server requires user-to-user but did not send a TGT reply") +STATUS_OBJECTID_NOT_FOUND = NtStatusException.register_ntstatus(0xc00002f0, "STATUS_OBJECTID_NOT_FOUND", "An object ID was not found in the file") +STATUS_NO_IP_ADDRESSES = NtStatusException.register_ntstatus(0xc00002f1, "STATUS_NO_IP_ADDRESSES", "Unable to accomplish the requested task because the local machine does not have any IP addresses") +STATUS_WRONG_CREDENTIAL_HANDLE = NtStatusException.register_ntstatus(0xc00002f2, "STATUS_WRONG_CREDENTIAL_HANDLE", "The supplied credential handle does not match the credential that is associated with the security context") +STATUS_CRYPTO_SYSTEM_INVALID = NtStatusException.register_ntstatus(0xc00002f3, "STATUS_CRYPTO_SYSTEM_INVALID", "The crypto system or checksum function is invalid because a required function is unavailable") +STATUS_MAX_REFERRALS_EXCEEDED = NtStatusException.register_ntstatus(0xc00002f4, "STATUS_MAX_REFERRALS_EXCEEDED", "The number of maximum ticket referrals has been exceeded") +STATUS_MUST_BE_KDC = NtStatusException.register_ntstatus(0xc00002f5, "STATUS_MUST_BE_KDC", "The local machine must be a Kerberos KDC (domain controller) and it is not") +STATUS_STRONG_CRYPTO_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc00002f6, "STATUS_STRONG_CRYPTO_NOT_SUPPORTED", "The other end of the security negotiation requires strong crypto but it is not supported on the local machine") +STATUS_TOO_MANY_PRINCIPALS = NtStatusException.register_ntstatus(0xc00002f7, "STATUS_TOO_MANY_PRINCIPALS", "The KDC reply contained more than one principal name") +STATUS_NO_PA_DATA = NtStatusException.register_ntstatus(0xc00002f8, "STATUS_NO_PA_DATA", "Expected to find PA data for a hint of what etype to use, but it was not found") +STATUS_PKINIT_NAME_MISMATCH = NtStatusException.register_ntstatus(0xc00002f9, "STATUS_PKINIT_NAME_MISMATCH", "The client certificate does not contain a valid UPN, or does not match the client name in the logon request. Contact your administrator") +STATUS_SMARTCARD_LOGON_REQUIRED = NtStatusException.register_ntstatus(0xc00002fa, "STATUS_SMARTCARD_LOGON_REQUIRED", "Smart card logon is required and was not used") +STATUS_KDC_INVALID_REQUEST = NtStatusException.register_ntstatus(0xc00002fb, "STATUS_KDC_INVALID_REQUEST", "An invalid request was sent to the KDC") +STATUS_KDC_UNABLE_TO_REFER = NtStatusException.register_ntstatus(0xc00002fc, "STATUS_KDC_UNABLE_TO_REFER", "The KDC was unable to generate a referral for the service requested") +STATUS_KDC_UNKNOWN_ETYPE = NtStatusException.register_ntstatus(0xc00002fd, "STATUS_KDC_UNKNOWN_ETYPE", "The encryption type requested is not supported by the KDC") +STATUS_SHUTDOWN_IN_PROGRESS = NtStatusException.register_ntstatus(0xc00002fe, "STATUS_SHUTDOWN_IN_PROGRESS", "A system shutdown is in progress") +STATUS_SERVER_SHUTDOWN_IN_PROGRESS = NtStatusException.register_ntstatus(0xc00002ff, "STATUS_SERVER_SHUTDOWN_IN_PROGRESS", "The server machine is shutting down") +STATUS_NOT_SUPPORTED_ON_SBS = NtStatusException.register_ntstatus(0xc0000300, "STATUS_NOT_SUPPORTED_ON_SBS", "This operation is not supported on a computer running Windows Server 2003 operating system for Small Business Server") +STATUS_WMI_GUID_DISCONNECTED = NtStatusException.register_ntstatus(0xc0000301, "STATUS_WMI_GUID_DISCONNECTED", "The WMI GUID is no longer available") +STATUS_WMI_ALREADY_DISABLED = NtStatusException.register_ntstatus(0xc0000302, "STATUS_WMI_ALREADY_DISABLED", "Collection or events for the WMI GUID is already disabled") +STATUS_WMI_ALREADY_ENABLED = NtStatusException.register_ntstatus(0xc0000303, "STATUS_WMI_ALREADY_ENABLED", "Collection or events for the WMI GUID is already enabled") +STATUS_MFT_TOO_FRAGMENTED = NtStatusException.register_ntstatus(0xc0000304, "STATUS_MFT_TOO_FRAGMENTED", "The master file table on the volume is too fragmented to complete this operation") +STATUS_COPY_PROTECTION_FAILURE = NtStatusException.register_ntstatus(0xc0000305, "STATUS_COPY_PROTECTION_FAILURE", "Copy protection failure") +STATUS_CSS_AUTHENTICATION_FAILURE = NtStatusException.register_ntstatus(0xc0000306, "STATUS_CSS_AUTHENTICATION_FAILURE", "Copy protection error?DVD CSS Authentication failed") +STATUS_CSS_KEY_NOT_PRESENT = NtStatusException.register_ntstatus(0xc0000307, "STATUS_CSS_KEY_NOT_PRESENT", "Copy protection error?The specified sector does not contain a valid key") +STATUS_CSS_KEY_NOT_ESTABLISHED = NtStatusException.register_ntstatus(0xc0000308, "STATUS_CSS_KEY_NOT_ESTABLISHED", "Copy protection error?DVD session key not established") +STATUS_CSS_SCRAMBLED_SECTOR = NtStatusException.register_ntstatus(0xc0000309, "STATUS_CSS_SCRAMBLED_SECTOR", "Copy protection error?The read failed because the sector is encrypted") +STATUS_CSS_REGION_MISMATCH = NtStatusException.register_ntstatus(0xc000030a, "STATUS_CSS_REGION_MISMATCH", "Copy protection error?The region of the specified DVD does not correspond to the region setting of the drive") +STATUS_CSS_RESETS_EXHAUSTED = NtStatusException.register_ntstatus(0xc000030b, "STATUS_CSS_RESETS_EXHAUSTED", "Copy protection error?The region setting of the drive may be permanent") +STATUS_PKINIT_FAILURE = NtStatusException.register_ntstatus(0xc0000320, "STATUS_PKINIT_FAILURE", "The Kerberos protocol encountered an error while validating the KDC certificate during smart card logon. There is more information in the system event log") +STATUS_SMARTCARD_SUBSYSTEM_FAILURE = NtStatusException.register_ntstatus(0xc0000321, "STATUS_SMARTCARD_SUBSYSTEM_FAILURE", "The Kerberos protocol encountered an error while attempting to use the smart card subsystem") +STATUS_NO_KERB_KEY = NtStatusException.register_ntstatus(0xc0000322, "STATUS_NO_KERB_KEY", "The target server does not have acceptable Kerberos credentials") +STATUS_HOST_DOWN = NtStatusException.register_ntstatus(0xc0000350, "STATUS_HOST_DOWN", "The transport determined that the remote system is down") +STATUS_UNSUPPORTED_PREAUTH = NtStatusException.register_ntstatus(0xc0000351, "STATUS_UNSUPPORTED_PREAUTH", "An unsupported pre-authentication mechanism was presented to the Kerberos package") +STATUS_EFS_ALG_BLOB_TOO_BIG = NtStatusException.register_ntstatus(0xc0000352, "STATUS_EFS_ALG_BLOB_TOO_BIG", "The encryption algorithm that is used on the source file needs a bigger key buffer than the one that is used on the destination file") +STATUS_PORT_NOT_SET = NtStatusException.register_ntstatus(0xc0000353, "STATUS_PORT_NOT_SET", "An attempt to remove a processes DebugPort was made, but a port was not already associated with the process") +STATUS_DEBUGGER_INACTIVE = NtStatusException.register_ntstatus(0xc0000354, "STATUS_DEBUGGER_INACTIVE", "An attempt to do an operation on a debug port failed because the port is in the process of being deleted") +STATUS_DS_VERSION_CHECK_FAILURE = NtStatusException.register_ntstatus(0xc0000355, "STATUS_DS_VERSION_CHECK_FAILURE", "This version of Windows is not compatible with the behavior version of the directory forest, domain, or domain controller") +STATUS_AUDITING_DISABLED = NtStatusException.register_ntstatus(0xc0000356, "STATUS_AUDITING_DISABLED", "The specified event is currently not being audited") +STATUS_PRENT4_MACHINE_ACCOUNT = NtStatusException.register_ntstatus(0xc0000357, "STATUS_PRENT4_MACHINE_ACCOUNT", "The machine account was created prior to Windows NT 4.0 operating system. The account needs to be recreated") +STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER = NtStatusException.register_ntstatus(0xc0000358, "STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER", "An account group cannot have a universal group as a member") +STATUS_INVALID_IMAGE_WIN_32 = NtStatusException.register_ntstatus(0xc0000359, "STATUS_INVALID_IMAGE_WIN_32", "The specified image file did not have the correct format; it appears to be a 32-bit Windows image") +STATUS_INVALID_IMAGE_WIN_64 = NtStatusException.register_ntstatus(0xc000035a, "STATUS_INVALID_IMAGE_WIN_64", "The specified image file did not have the correct format; it appears to be a 64-bit Windows image") +STATUS_BAD_BINDINGS = NtStatusException.register_ntstatus(0xc000035b, "STATUS_BAD_BINDINGS", "The client's supplied SSPI channel bindings were incorrect") +STATUS_NETWORK_SESSION_EXPIRED = NtStatusException.register_ntstatus(0xc000035c, "STATUS_NETWORK_SESSION_EXPIRED", "The client session has expired; so the client must re-authenticate to continue accessing the remote resources") +STATUS_APPHELP_BLOCK = NtStatusException.register_ntstatus(0xc000035d, "STATUS_APPHELP_BLOCK", "The AppHelp dialog box canceled; thus preventing the application from starting") +STATUS_ALL_SIDS_FILTERED = NtStatusException.register_ntstatus(0xc000035e, "STATUS_ALL_SIDS_FILTERED", "The SID filtering operation removed all SIDs") +STATUS_NOT_SAFE_MODE_DRIVER = NtStatusException.register_ntstatus(0xc000035f, "STATUS_NOT_SAFE_MODE_DRIVER", "The driver was not loaded because the system is starting in safe mode") +STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT = NtStatusException.register_ntstatus(0xc0000361, "STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT", "Access to %1 has been restricted by your Administrator by the default software restriction policy level") +STATUS_ACCESS_DISABLED_BY_POLICY_PATH = NtStatusException.register_ntstatus(0xc0000362, "STATUS_ACCESS_DISABLED_BY_POLICY_PATH", "Access to %1 has been restricted by your Administrator by location with policy rule %2 placed on path %3") +STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER = NtStatusException.register_ntstatus(0xc0000363, "STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER", "Access to %1 has been restricted by your Administrator by software publisher policy") +STATUS_ACCESS_DISABLED_BY_POLICY_OTHER = NtStatusException.register_ntstatus(0xc0000364, "STATUS_ACCESS_DISABLED_BY_POLICY_OTHER", "Access to %1 has been restricted by your Administrator by policy rule %2") +STATUS_FAILED_DRIVER_ENTRY = NtStatusException.register_ntstatus(0xc0000365, "STATUS_FAILED_DRIVER_ENTRY", "The driver was not loaded because it failed its initialization call") +STATUS_DEVICE_ENUMERATION_ERROR = NtStatusException.register_ntstatus(0xc0000366, "STATUS_DEVICE_ENUMERATION_ERROR", "The device encountered an error while applying power or reading the device configuration. This may be caused by a failure of your hardware or by a poor connection") +STATUS_MOUNT_POINT_NOT_RESOLVED = NtStatusException.register_ntstatus(0xc0000368, "STATUS_MOUNT_POINT_NOT_RESOLVED", "The create operation failed because the name contained at least one mount point that resolves to a volume to which the specified device object is not attached") +STATUS_INVALID_DEVICE_OBJECT_PARAMETER = NtStatusException.register_ntstatus(0xc0000369, "STATUS_INVALID_DEVICE_OBJECT_PARAMETER", "The device object parameter is either not a valid device object or is not attached to the volume that is specified by the file name") +STATUS_MCA_OCCURED = NtStatusException.register_ntstatus(0xc000036a, "STATUS_MCA_OCCURED", "A machine check error has occurred. Check the system event log for additional information") +STATUS_DRIVER_BLOCKED_CRITICAL = NtStatusException.register_ntstatus(0xc000036b, "STATUS_DRIVER_BLOCKED_CRITICAL", "Driver %2 has been blocked from loading") +STATUS_DRIVER_BLOCKED = NtStatusException.register_ntstatus(0xc000036c, "STATUS_DRIVER_BLOCKED", "Driver %2 has been blocked from loading") +STATUS_DRIVER_DATABASE_ERROR = NtStatusException.register_ntstatus(0xc000036d, "STATUS_DRIVER_DATABASE_ERROR", "There was error [%2] processing the driver database") +STATUS_SYSTEM_HIVE_TOO_LARGE = NtStatusException.register_ntstatus(0xc000036e, "STATUS_SYSTEM_HIVE_TOO_LARGE", "System hive size has exceeded its limit") +STATUS_INVALID_IMPORT_OF_NON_DLL = NtStatusException.register_ntstatus(0xc000036f, "STATUS_INVALID_IMPORT_OF_NON_DLL", "A dynamic link library (DLL) referenced a module that was neither a DLL nor the process's executable image") +STATUS_NO_SECRETS = NtStatusException.register_ntstatus(0xc0000371, "STATUS_NO_SECRETS", "The local account store does not contain secret material for the specified account") +STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY = NtStatusException.register_ntstatus(0xc0000372, "STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY", "Access to %1 has been restricted by your Administrator by policy rule %2") +STATUS_FAILED_STACK_SWITCH = NtStatusException.register_ntstatus(0xc0000373, "STATUS_FAILED_STACK_SWITCH", "The system was not able to allocate enough memory to perform a stack switch") +STATUS_HEAP_CORRUPTION = NtStatusException.register_ntstatus(0xc0000374, "STATUS_HEAP_CORRUPTION", "A heap has been corrupted") +STATUS_SMARTCARD_WRONG_PIN = NtStatusException.register_ntstatus(0xc0000380, "STATUS_SMARTCARD_WRONG_PIN", "An incorrect PIN was presented to the smart card") +STATUS_SMARTCARD_CARD_BLOCKED = NtStatusException.register_ntstatus(0xc0000381, "STATUS_SMARTCARD_CARD_BLOCKED", "The smart card is blocked") +STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED = NtStatusException.register_ntstatus(0xc0000382, "STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED", "No PIN was presented to the smart card") +STATUS_SMARTCARD_NO_CARD = NtStatusException.register_ntstatus(0xc0000383, "STATUS_SMARTCARD_NO_CARD", "No smart card is available") +STATUS_SMARTCARD_NO_KEY_CONTAINER = NtStatusException.register_ntstatus(0xc0000384, "STATUS_SMARTCARD_NO_KEY_CONTAINER", "The requested key container does not exist on the smart card") +STATUS_SMARTCARD_NO_CERTIFICATE = NtStatusException.register_ntstatus(0xc0000385, "STATUS_SMARTCARD_NO_CERTIFICATE", "The requested certificate does not exist on the smart card") +STATUS_SMARTCARD_NO_KEYSET = NtStatusException.register_ntstatus(0xc0000386, "STATUS_SMARTCARD_NO_KEYSET", "The requested keyset does not exist") +STATUS_SMARTCARD_IO_ERROR = NtStatusException.register_ntstatus(0xc0000387, "STATUS_SMARTCARD_IO_ERROR", "A communication error with the smart card has been detected") +STATUS_DOWNGRADE_DETECTED = NtStatusException.register_ntstatus(0xc0000388, "STATUS_DOWNGRADE_DETECTED", "The system detected a possible attempt to compromise security. Ensure that you can contact the server that authenticated you") +STATUS_SMARTCARD_CERT_REVOKED = NtStatusException.register_ntstatus(0xc0000389, "STATUS_SMARTCARD_CERT_REVOKED", "The smart card certificate used for authentication has been revoked. Contact your system administrator. There may be additional information in the event log") +STATUS_ISSUING_CA_UNTRUSTED = NtStatusException.register_ntstatus(0xc000038a, "STATUS_ISSUING_CA_UNTRUSTED", "An untrusted certificate authority was detected while processing the smart card certificate that is used for authentication. Contact your system administrator") +STATUS_REVOCATION_OFFLINE_C = NtStatusException.register_ntstatus(0xc000038b, "STATUS_REVOCATION_OFFLINE_C", "The revocation status of the smart card certificate that is used for authentication could not be determined. Contact your system administrator") +STATUS_PKINIT_CLIENT_FAILURE = NtStatusException.register_ntstatus(0xc000038c, "STATUS_PKINIT_CLIENT_FAILURE", "The smart card certificate used for authentication was not trusted. Contact your system administrator") +STATUS_SMARTCARD_CERT_EXPIRED = NtStatusException.register_ntstatus(0xc000038d, "STATUS_SMARTCARD_CERT_EXPIRED", "The smart card certificate used for authentication has expired. Contact your system administrator") +STATUS_DRIVER_FAILED_PRIOR_UNLOAD = NtStatusException.register_ntstatus(0xc000038e, "STATUS_DRIVER_FAILED_PRIOR_UNLOAD", "The driver could not be loaded because a previous version of the driver is still in memory") +STATUS_SMARTCARD_SILENT_CONTEXT = NtStatusException.register_ntstatus(0xc000038f, "STATUS_SMARTCARD_SILENT_CONTEXT", "The smart card provider could not perform the action because the context was acquired as silent") +STATUS_PER_USER_TRUST_QUOTA_EXCEEDED = NtStatusException.register_ntstatus(0xc0000401, "STATUS_PER_USER_TRUST_QUOTA_EXCEEDED", "The delegated trust creation quota of the current user has been exceeded") +STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED = NtStatusException.register_ntstatus(0xc0000402, "STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED", "The total delegated trust creation quota has been exceeded") +STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED = NtStatusException.register_ntstatus(0xc0000403, "STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED", "The delegated trust deletion quota of the current user has been exceeded") +STATUS_DS_NAME_NOT_UNIQUE = NtStatusException.register_ntstatus(0xc0000404, "STATUS_DS_NAME_NOT_UNIQUE", "The requested name already exists as a unique identifier") +STATUS_DS_DUPLICATE_ID_FOUND = NtStatusException.register_ntstatus(0xc0000405, "STATUS_DS_DUPLICATE_ID_FOUND", "The requested object has a non-unique identifier and cannot be retrieved") +STATUS_DS_GROUP_CONVERSION_ERROR = NtStatusException.register_ntstatus(0xc0000406, "STATUS_DS_GROUP_CONVERSION_ERROR", "The group cannot be converted due to attribute restrictions on the requested group type") +STATUS_VOLSNAP_PREPARE_HIBERNATE = NtStatusException.register_ntstatus(0xc0000407, "STATUS_VOLSNAP_PREPARE_HIBERNATE", "{Volume Shadow Copy Service} Wait while the Volume Shadow Copy Service prepares volume %hs for hibernation") +STATUS_USER2USER_REQUIRED = NtStatusException.register_ntstatus(0xc0000408, "STATUS_USER2USER_REQUIRED", "Kerberos sub-protocol User2User is required") +STATUS_STACK_BUFFER_OVERRUN = NtStatusException.register_ntstatus(0xc0000409, "STATUS_STACK_BUFFER_OVERRUN", "The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application") +STATUS_NO_S4U_PROT_SUPPORT = NtStatusException.register_ntstatus(0xc000040a, "STATUS_NO_S4U_PROT_SUPPORT", "The Kerberos subsystem encountered an error. A service for user protocol request was made against a domain controller which does not support service for user") +STATUS_CROSSREALM_DELEGATION_FAILURE = NtStatusException.register_ntstatus(0xc000040b, "STATUS_CROSSREALM_DELEGATION_FAILURE", "An attempt was made by this server to make a Kerberos constrained delegation request for a target that is outside the server realm. This action is not supported and the resulting error indicates a misconfiguration on the allowed-to-delegate-to list for this server. Contact your administrator") +STATUS_REVOCATION_OFFLINE_KDC = NtStatusException.register_ntstatus(0xc000040c, "STATUS_REVOCATION_OFFLINE_KDC", "The revocation status of the domain controller certificate used for smart card authentication could not be determined. There is additional information in the system event log. Contact your system administrator") +STATUS_ISSUING_CA_UNTRUSTED_KDC = NtStatusException.register_ntstatus(0xc000040d, "STATUS_ISSUING_CA_UNTRUSTED_KDC", "An untrusted certificate authority was detected while processing the domain controller certificate used for authentication. There is additional information in the system event log. Contact your system administrator") +STATUS_KDC_CERT_EXPIRED = NtStatusException.register_ntstatus(0xc000040e, "STATUS_KDC_CERT_EXPIRED", "The domain controller certificate used for smart card logon has expired. Contact your system administrator with the contents of your system event log") +STATUS_KDC_CERT_REVOKED = NtStatusException.register_ntstatus(0xc000040f, "STATUS_KDC_CERT_REVOKED", "The domain controller certificate used for smart card logon has been revoked. Contact your system administrator with the contents of your system event log") +STATUS_PARAMETER_QUOTA_EXCEEDED = NtStatusException.register_ntstatus(0xc0000410, "STATUS_PARAMETER_QUOTA_EXCEEDED", "Data present in one of the parameters is more than the function can operate on") +STATUS_HIBERNATION_FAILURE = NtStatusException.register_ntstatus(0xc0000411, "STATUS_HIBERNATION_FAILURE", "The system has failed to hibernate (The error code is %hs). Hibernation will be disabled until the system is restarted") +STATUS_DELAY_LOAD_FAILED = NtStatusException.register_ntstatus(0xc0000412, "STATUS_DELAY_LOAD_FAILED", "An attempt to delay-load a .dll or get a function address in a delay-loaded .dll failed") +STATUS_AUTHENTICATION_FIREWALL_FAILED = NtStatusException.register_ntstatus(0xc0000413, "STATUS_AUTHENTICATION_FIREWALL_FAILED", "Logon Failure: The machine you are logging onto is protected by an authentication firewall. The specified account is not allowed to authenticate to the machine") +STATUS_VDM_DISALLOWED = NtStatusException.register_ntstatus(0xc0000414, "STATUS_VDM_DISALLOWED", "%hs is a 16-bit application. You do not have permissions to execute 16-bit applications. Check your permissions with your system administrator") +STATUS_HUNG_DISPLAY_DRIVER_THREAD = NtStatusException.register_ntstatus(0xc0000415, "STATUS_HUNG_DISPLAY_DRIVER_THREAD", "{Display Driver Stopped Responding} The %hs display driver has stopped working normally. Save your work and reboot the system to restore full display functionality. The next time you reboot the machine a dialog will be displayed giving you a chance to report this failure to Microsoft") +STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE = NtStatusException.register_ntstatus(0xc0000416, "STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE", "The Desktop heap encountered an error while allocating session memory. There is more information in the system event log") +STATUS_INVALID_CRUNTIME_PARAMETER = NtStatusException.register_ntstatus(0xc0000417, "STATUS_INVALID_CRUNTIME_PARAMETER", "An invalid parameter was passed to a C runtime function") +STATUS_NTLM_BLOCKED = NtStatusException.register_ntstatus(0xc0000418, "STATUS_NTLM_BLOCKED", "The authentication failed because NTLM was blocked") +STATUS_DS_SRC_SID_EXISTS_IN_FOREST = NtStatusException.register_ntstatus(0xc0000419, "STATUS_DS_SRC_SID_EXISTS_IN_FOREST", "The source object's SID already exists in destination forest") +STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST = NtStatusException.register_ntstatus(0xc000041a, "STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST", "The domain name of the trusted domain already exists in the forest") +STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST = NtStatusException.register_ntstatus(0xc000041b, "STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST", "The flat name of the trusted domain already exists in the forest") +STATUS_INVALID_USER_PRINCIPAL_NAME = NtStatusException.register_ntstatus(0xc000041c, "STATUS_INVALID_USER_PRINCIPAL_NAME", "The User Principal Name (UPN) is invalid") +STATUS_ASSERTION_FAILURE = NtStatusException.register_ntstatus(0xc0000420, "STATUS_ASSERTION_FAILURE", "There has been an assertion failure") +STATUS_VERIFIER_STOP = NtStatusException.register_ntstatus(0xc0000421, "STATUS_VERIFIER_STOP", "Application verifier has found an error in the current process") +STATUS_CALLBACK_POP_STACK = NtStatusException.register_ntstatus(0xc0000423, "STATUS_CALLBACK_POP_STACK", "A user mode unwind is in progress") +STATUS_INCOMPATIBLE_DRIVER_BLOCKED = NtStatusException.register_ntstatus(0xc0000424, "STATUS_INCOMPATIBLE_DRIVER_BLOCKED", "%2 has been blocked from loading due to incompatibility with this system. Contact your software vendor for a compatible version of the driver") +STATUS_HIVE_UNLOADED = NtStatusException.register_ntstatus(0xc0000425, "STATUS_HIVE_UNLOADED", "Illegal operation attempted on a registry key which has already been unloaded") +STATUS_COMPRESSION_DISABLED = NtStatusException.register_ntstatus(0xc0000426, "STATUS_COMPRESSION_DISABLED", "Compression is disabled for this volume") +STATUS_FILE_SYSTEM_LIMITATION = NtStatusException.register_ntstatus(0xc0000427, "STATUS_FILE_SYSTEM_LIMITATION", "The requested operation could not be completed due to a file system limitation") +STATUS_INVALID_IMAGE_HASH = NtStatusException.register_ntstatus(0xc0000428, "STATUS_INVALID_IMAGE_HASH", "The hash for image %hs cannot be found in the system catalogs. The image is likely corrupt or the victim of tampering") +STATUS_NOT_CAPABLE = NtStatusException.register_ntstatus(0xc0000429, "STATUS_NOT_CAPABLE", "The implementation is not capable of performing the request") +STATUS_REQUEST_OUT_OF_SEQUENCE = NtStatusException.register_ntstatus(0xc000042a, "STATUS_REQUEST_OUT_OF_SEQUENCE", "The requested operation is out of order with respect to other operations") +STATUS_IMPLEMENTATION_LIMIT = NtStatusException.register_ntstatus(0xc000042b, "STATUS_IMPLEMENTATION_LIMIT", "An operation attempted to exceed an implementation-defined limit") +STATUS_ELEVATION_REQUIRED = NtStatusException.register_ntstatus(0xc000042c, "STATUS_ELEVATION_REQUIRED", "The requested operation requires elevation") +STATUS_NO_SECURITY_CONTEXT = NtStatusException.register_ntstatus(0xc000042d, "STATUS_NO_SECURITY_CONTEXT", "The required security context does not exist") +STATUS_PKU2U_CERT_FAILURE = NtStatusException.register_ntstatus(0xc000042e, "STATUS_PKU2U_CERT_FAILURE", "The PKU2U protocol encountered an error while attempting to utilize the associated certificates") +STATUS_BEYOND_VDL = NtStatusException.register_ntstatus(0xc0000432, "STATUS_BEYOND_VDL", "The operation was attempted beyond the valid data length of the file") +STATUS_ENCOUNTERED_WRITE_IN_PROGRESS = NtStatusException.register_ntstatus(0xc0000433, "STATUS_ENCOUNTERED_WRITE_IN_PROGRESS", "The attempted write operation encountered a write already in progress for some portion of the range") +STATUS_PTE_CHANGED = NtStatusException.register_ntstatus(0xc0000434, "STATUS_PTE_CHANGED", "The page fault mappings changed in the middle of processing a fault so the operation must be retried") +STATUS_PURGE_FAILED = NtStatusException.register_ntstatus(0xc0000435, "STATUS_PURGE_FAILED", "The attempt to purge this file from memory failed to purge some or all the data from memory") +STATUS_CRED_REQUIRES_CONFIRMATION = NtStatusException.register_ntstatus(0xc0000440, "STATUS_CRED_REQUIRES_CONFIRMATION", "The requested credential requires confirmation") +STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE = NtStatusException.register_ntstatus(0xc0000441, "STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE", "The remote server sent an invalid response for a file being opened with Client Side Encryption") +STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER = NtStatusException.register_ntstatus(0xc0000442, "STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER", "Client Side Encryption is not supported by the remote server even though it claims to support it") +STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE = NtStatusException.register_ntstatus(0xc0000443, "STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE", "File is encrypted and should be opened in Client Side Encryption mode") +STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE = NtStatusException.register_ntstatus(0xc0000444, "STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE", "A new encrypted file is being created and a $EFS needs to be provided") +STATUS_CS_ENCRYPTION_FILE_NOT_CSE = NtStatusException.register_ntstatus(0xc0000445, "STATUS_CS_ENCRYPTION_FILE_NOT_CSE", "The SMB client requested a CSE FSCTL on a non-CSE file") +STATUS_INVALID_LABEL = NtStatusException.register_ntstatus(0xc0000446, "STATUS_INVALID_LABEL", "Indicates a particular Security ID may not be assigned as the label of an object") +STATUS_DRIVER_PROCESS_TERMINATED = NtStatusException.register_ntstatus(0xc0000450, "STATUS_DRIVER_PROCESS_TERMINATED", "The process hosting the driver for this device has terminated") +STATUS_AMBIGUOUS_SYSTEM_DEVICE = NtStatusException.register_ntstatus(0xc0000451, "STATUS_AMBIGUOUS_SYSTEM_DEVICE", "The requested system device cannot be identified due to multiple indistinguishable devices potentially matching the identification criteria") +STATUS_SYSTEM_DEVICE_NOT_FOUND = NtStatusException.register_ntstatus(0xc0000452, "STATUS_SYSTEM_DEVICE_NOT_FOUND", "The requested system device cannot be found") +STATUS_RESTART_BOOT_APPLICATION = NtStatusException.register_ntstatus(0xc0000453, "STATUS_RESTART_BOOT_APPLICATION", "This boot application must be restarted") +STATUS_INSUFFICIENT_NVRAM_RESOURCES = NtStatusException.register_ntstatus(0xc0000454, "STATUS_INSUFFICIENT_NVRAM_RESOURCES", "Insufficient NVRAM resources exist to complete the API.? A reboot might be required") +STATUS_NO_RANGES_PROCESSED = NtStatusException.register_ntstatus(0xc0000460, "STATUS_NO_RANGES_PROCESSED", "No ranges for the specified operation were able to be processed") +STATUS_DEVICE_FEATURE_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc0000463, "STATUS_DEVICE_FEATURE_NOT_SUPPORTED", "The storage device does not support Offload Write") +STATUS_DEVICE_UNREACHABLE = NtStatusException.register_ntstatus(0xc0000464, "STATUS_DEVICE_UNREACHABLE", "Data cannot be moved because the source device cannot communicate with the destination device") +STATUS_INVALID_TOKEN = NtStatusException.register_ntstatus(0xc0000465, "STATUS_INVALID_TOKEN", "The token representing the data is invalid or expired") +STATUS_SERVER_UNAVAILABLE = NtStatusException.register_ntstatus(0xc0000466, "STATUS_SERVER_UNAVAILABLE", "The file server is temporarily unavailable") +STATUS_INVALID_TASK_NAME = NtStatusException.register_ntstatus(0xc0000500, "STATUS_INVALID_TASK_NAME", "The specified task name is invalid") +STATUS_INVALID_TASK_INDEX = NtStatusException.register_ntstatus(0xc0000501, "STATUS_INVALID_TASK_INDEX", "The specified task index is invalid") +STATUS_THREAD_ALREADY_IN_TASK = NtStatusException.register_ntstatus(0xc0000502, "STATUS_THREAD_ALREADY_IN_TASK", "The specified thread is already joining a task") +STATUS_CALLBACK_BYPASS = NtStatusException.register_ntstatus(0xc0000503, "STATUS_CALLBACK_BYPASS", "A callback has requested to bypass native code") +STATUS_FAIL_FAST_EXCEPTION = NtStatusException.register_ntstatus(0xc0000602, "STATUS_FAIL_FAST_EXCEPTION", "A fail fast exception occurred. Exception handlers will not be invoked and the process will be terminated immediately") +STATUS_IMAGE_CERT_REVOKED = NtStatusException.register_ntstatus(0xc0000603, "STATUS_IMAGE_CERT_REVOKED", "Windows cannot verify the digital signature for this file. The signing certificate for this file has been revoked") +STATUS_PORT_CLOSED = NtStatusException.register_ntstatus(0xc0000700, "STATUS_PORT_CLOSED", "The ALPC port is closed") +STATUS_MESSAGE_LOST = NtStatusException.register_ntstatus(0xc0000701, "STATUS_MESSAGE_LOST", "The ALPC message requested is no longer available") +STATUS_INVALID_MESSAGE = NtStatusException.register_ntstatus(0xc0000702, "STATUS_INVALID_MESSAGE", "The ALPC message supplied is invalid") +STATUS_REQUEST_CANCELED = NtStatusException.register_ntstatus(0xc0000703, "STATUS_REQUEST_CANCELED", "The ALPC message has been canceled") +STATUS_RECURSIVE_DISPATCH = NtStatusException.register_ntstatus(0xc0000704, "STATUS_RECURSIVE_DISPATCH", "Invalid recursive dispatch attempt") +STATUS_LPC_RECEIVE_BUFFER_EXPECTED = NtStatusException.register_ntstatus(0xc0000705, "STATUS_LPC_RECEIVE_BUFFER_EXPECTED", "No receive buffer has been supplied in a synchronous request") +STATUS_LPC_INVALID_CONNECTION_USAGE = NtStatusException.register_ntstatus(0xc0000706, "STATUS_LPC_INVALID_CONNECTION_USAGE", "The connection port is used in an invalid context") +STATUS_LPC_REQUESTS_NOT_ALLOWED = NtStatusException.register_ntstatus(0xc0000707, "STATUS_LPC_REQUESTS_NOT_ALLOWED", "The ALPC port does not accept new request messages") +STATUS_RESOURCE_IN_USE = NtStatusException.register_ntstatus(0xc0000708, "STATUS_RESOURCE_IN_USE", "The resource requested is already in use") +STATUS_HARDWARE_MEMORY_ERROR = NtStatusException.register_ntstatus(0xc0000709, "STATUS_HARDWARE_MEMORY_ERROR", "The hardware has reported an uncorrectable memory error") +STATUS_THREADPOOL_HANDLE_EXCEPTION = NtStatusException.register_ntstatus(0xc000070a, "STATUS_THREADPOOL_HANDLE_EXCEPTION", "Status 0x%08x was returned, waiting on handle 0x%x for wait 0x%p, in waiter 0x%p") +STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED = NtStatusException.register_ntstatus(0xc000070b, "STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED", "After a callback to 0x%p(0x%p), a completion call to Set event(0x%p) failed with status 0x%08x") +STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED = NtStatusException.register_ntstatus(0xc000070c, "STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED", "After a callback to 0x%p(0x%p), a completion call to ReleaseSemaphore(0x%p, %d) failed with status 0x%08x") +STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED = NtStatusException.register_ntstatus(0xc000070d, "STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED", "After a callback to 0x%p(0x%p), a completion call to ReleaseMutex(%p) failed with status 0x%08x") +STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED = NtStatusException.register_ntstatus(0xc000070e, "STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED", "After a callback to 0x%p(0x%p), a completion call to FreeLibrary(%p) failed with status 0x%08x") +STATUS_THREADPOOL_RELEASED_DURING_OPERATION = NtStatusException.register_ntstatus(0xc000070f, "STATUS_THREADPOOL_RELEASED_DURING_OPERATION", "The thread pool 0x%p was released while a thread was posting a callback to 0x%p(0x%p) to it") +STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING = NtStatusException.register_ntstatus(0xc0000710, "STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING", "A thread pool worker thread is impersonating a client, after a callback to 0x%p(0x%p). This is unexpected, indicating that the callback is missing a call to revert the impersonation") +STATUS_APC_RETURNED_WHILE_IMPERSONATING = NtStatusException.register_ntstatus(0xc0000711, "STATUS_APC_RETURNED_WHILE_IMPERSONATING", "A thread pool worker thread is impersonating a client, after executing an APC. This is unexpected, indicating that the APC is missing a call to revert the impersonation") +STATUS_PROCESS_IS_PROTECTED = NtStatusException.register_ntstatus(0xc0000712, "STATUS_PROCESS_IS_PROTECTED", "Either the target process, or the target thread's containing process, is a protected process") +STATUS_MCA_EXCEPTION = NtStatusException.register_ntstatus(0xc0000713, "STATUS_MCA_EXCEPTION", "A thread is getting dispatched with MCA EXCEPTION because of MCA") +STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE = NtStatusException.register_ntstatus(0xc0000714, "STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE", "The client certificate account mapping is not unique") +STATUS_SYMLINK_CLASS_DISABLED = NtStatusException.register_ntstatus(0xc0000715, "STATUS_SYMLINK_CLASS_DISABLED", "The symbolic link cannot be followed because its type is disabled") +STATUS_INVALID_IDN_NORMALIZATION = NtStatusException.register_ntstatus(0xc0000716, "STATUS_INVALID_IDN_NORMALIZATION", "Indicates that the specified string is not valid for IDN normalization") +STATUS_NO_UNICODE_TRANSLATION = NtStatusException.register_ntstatus(0xc0000717, "STATUS_NO_UNICODE_TRANSLATION", "No mapping for the Unicode character exists in the target multi-byte code page") +STATUS_ALREADY_REGISTERED = NtStatusException.register_ntstatus(0xc0000718, "STATUS_ALREADY_REGISTERED", "The provided callback is already registered") +STATUS_CONTEXT_MISMATCH = NtStatusException.register_ntstatus(0xc0000719, "STATUS_CONTEXT_MISMATCH", "The provided context did not match the target") +STATUS_PORT_ALREADY_HAS_COMPLETION_LIST = NtStatusException.register_ntstatus(0xc000071a, "STATUS_PORT_ALREADY_HAS_COMPLETION_LIST", "The specified port already has a completion list") +STATUS_CALLBACK_RETURNED_THREAD_PRIORITY = NtStatusException.register_ntstatus(0xc000071b, "STATUS_CALLBACK_RETURNED_THREAD_PRIORITY", "A threadpool worker thread entered a callback at thread base priority 0x%x and exited at priority 0x%x. This is unexpected, indicating that the callback missed restoring the priority") +STATUS_INVALID_THREAD = NtStatusException.register_ntstatus(0xc000071c, "STATUS_INVALID_THREAD", "An invalid thread, handle %p, is specified for this operation. Possibly, a threadpool worker thread was specified") +STATUS_CALLBACK_RETURNED_TRANSACTION = NtStatusException.register_ntstatus(0xc000071d, "STATUS_CALLBACK_RETURNED_TRANSACTION", "A threadpool worker thread entered a callback, which left transaction state. This is unexpected, indicating that the callback missed clearing the transaction") +STATUS_CALLBACK_RETURNED_LDR_LOCK = NtStatusException.register_ntstatus(0xc000071e, "STATUS_CALLBACK_RETURNED_LDR_LOCK", "A threadpool worker thread entered a callback, which left the loader lock held. This is unexpected, indicating that the callback missed releasing the lock") +STATUS_CALLBACK_RETURNED_LANG = NtStatusException.register_ntstatus(0xc000071f, "STATUS_CALLBACK_RETURNED_LANG", "A threadpool worker thread entered a callback, which left with preferred languages set. This is unexpected, indicating that the callback missed clearing them") +STATUS_CALLBACK_RETURNED_PRI_BACK = NtStatusException.register_ntstatus(0xc0000720, "STATUS_CALLBACK_RETURNED_PRI_BACK", "A threadpool worker thread entered a callback, which left with background priorities set. This is unexpected, indicating that the callback missed restoring the original priorities") +STATUS_DISK_REPAIR_DISABLED = NtStatusException.register_ntstatus(0xc0000800, "STATUS_DISK_REPAIR_DISABLED", "The attempted operation required self healing to be enabled") +STATUS_DS_DOMAIN_RENAME_IN_PROGRESS = NtStatusException.register_ntstatus(0xc0000801, "STATUS_DS_DOMAIN_RENAME_IN_PROGRESS", "The directory service cannot perform the requested operation because a domain rename operation is in progress") +STATUS_DISK_QUOTA_EXCEEDED = NtStatusException.register_ntstatus(0xc0000802, "STATUS_DISK_QUOTA_EXCEEDED", "An operation failed because the storage quota was exceeded") +STATUS_CONTENT_BLOCKED = NtStatusException.register_ntstatus(0xc0000804, "STATUS_CONTENT_BLOCKED", "An operation failed because the content was blocked") +STATUS_BAD_CLUSTERS = NtStatusException.register_ntstatus(0xc0000805, "STATUS_BAD_CLUSTERS", "The operation could not be completed due to bad clusters on disk") +STATUS_VOLUME_DIRTY = NtStatusException.register_ntstatus(0xc0000806, "STATUS_VOLUME_DIRTY", "The operation could not be completed because the volume is dirty. Please run the Chkdsk utility and try again") +STATUS_FILE_CHECKED_OUT = NtStatusException.register_ntstatus(0xc0000901, "STATUS_FILE_CHECKED_OUT", "This file is checked out or locked for editing by another user") +STATUS_CHECKOUT_REQUIRED = NtStatusException.register_ntstatus(0xc0000902, "STATUS_CHECKOUT_REQUIRED", "The file must be checked out before saving changes") +STATUS_BAD_FILE_TYPE = NtStatusException.register_ntstatus(0xc0000903, "STATUS_BAD_FILE_TYPE", "The file type being saved or retrieved has been blocked") +STATUS_FILE_TOO_LARGE = NtStatusException.register_ntstatus(0xc0000904, "STATUS_FILE_TOO_LARGE", "The file size exceeds the limit allowed and cannot be saved") +STATUS_FORMS_AUTH_REQUIRED = NtStatusException.register_ntstatus(0xc0000905, "STATUS_FORMS_AUTH_REQUIRED", "Access Denied. Before opening files in this location, you must first browse to the e.g. site and select the option to log on automatically") +STATUS_VIRUS_INFECTED = NtStatusException.register_ntstatus(0xc0000906, "STATUS_VIRUS_INFECTED", "The operation did not complete successfully because the file contains a virus") +STATUS_VIRUS_DELETED = NtStatusException.register_ntstatus(0xc0000907, "STATUS_VIRUS_DELETED", "This file contains a virus and cannot be opened. Due to the nature of this virus, the file has been removed from this location") +STATUS_BAD_MCFG_TABLE = NtStatusException.register_ntstatus(0xc0000908, "STATUS_BAD_MCFG_TABLE", "The resources required for this device conflict with the MCFG table") +STATUS_CANNOT_BREAK_OPLOCK = NtStatusException.register_ntstatus(0xc0000909, "STATUS_CANNOT_BREAK_OPLOCK", "The operation did not complete successfully because it would cause an oplock to be broken. The caller has requested that existing oplocks not be broken") +STATUS_WOW_ASSERTION = NtStatusException.register_ntstatus(0xc0009898, "STATUS_WOW_ASSERTION", "WOW Assertion Error") +STATUS_INVALID_SIGNATURE = NtStatusException.register_ntstatus(0xc000a000, "STATUS_INVALID_SIGNATURE", "The cryptographic signature is invalid") +STATUS_HMAC_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc000a001, "STATUS_HMAC_NOT_SUPPORTED", "The cryptographic provider does not support HMAC") +STATUS_IPSEC_QUEUE_OVERFLOW = NtStatusException.register_ntstatus(0xc000a010, "STATUS_IPSEC_QUEUE_OVERFLOW", "The IPsec queue overflowed") +STATUS_ND_QUEUE_OVERFLOW = NtStatusException.register_ntstatus(0xc000a011, "STATUS_ND_QUEUE_OVERFLOW", "The neighbor discovery queue overflowed") +STATUS_HOPLIMIT_EXCEEDED = NtStatusException.register_ntstatus(0xc000a012, "STATUS_HOPLIMIT_EXCEEDED", "An Internet Control Message Protocol (ICMP) hop limit exceeded error was received") +STATUS_PROTOCOL_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc000a013, "STATUS_PROTOCOL_NOT_SUPPORTED", "The protocol is not installed on the local machine") +STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED = NtStatusException.register_ntstatus(0xc000a080, "STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED", "{Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error may be caused by network connectivity issues. Try to save this file elsewhere") +STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR = NtStatusException.register_ntstatus(0xc000a081, "STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR", "{Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error was returned by the server on which the file exists. Try to save this file elsewhere") +STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR = NtStatusException.register_ntstatus(0xc000a082, "STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR", "{Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error may be caused if the device has been removed or the media is write-protected") +STATUS_XML_PARSE_ERROR = NtStatusException.register_ntstatus(0xc000a083, "STATUS_XML_PARSE_ERROR", "Windows was unable to parse the requested XML data") +STATUS_XMLDSIG_ERROR = NtStatusException.register_ntstatus(0xc000a084, "STATUS_XMLDSIG_ERROR", "An error was encountered while processing an XML digital signature") +STATUS_WRONG_COMPARTMENT = NtStatusException.register_ntstatus(0xc000a085, "STATUS_WRONG_COMPARTMENT", "This indicates that the caller made the connection request in the wrong routing compartment") +STATUS_AUTHIP_FAILURE = NtStatusException.register_ntstatus(0xc000a086, "STATUS_AUTHIP_FAILURE", "This indicates that there was an AuthIP failure when attempting to connect to the remote host") +STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS = NtStatusException.register_ntstatus(0xc000a087, "STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS", "OID mapped groups cannot have members") +STATUS_DS_OID_NOT_FOUND = NtStatusException.register_ntstatus(0xc000a088, "STATUS_DS_OID_NOT_FOUND", "The specified OID cannot be found") +STATUS_HASH_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc000a100, "STATUS_HASH_NOT_SUPPORTED", "Hash generation for the specified version and hash type is not enabled on server") +STATUS_HASH_NOT_PRESENT = NtStatusException.register_ntstatus(0xc000a101, "STATUS_HASH_NOT_PRESENT", "The hash requests is not present or not up to date with the current file contents") +STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc000a2a1, "STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED", "A file system filter on the server has not opted in for Offload Read support") +STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc000a2a2, "STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED", "A file system filter on the server has not opted in for Offload Write support") +STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc000a2a3, "STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED", "Offload read operations cannot be performed on: Compressed files Sparse files Encrypted files File system metadata file") +STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc000a2a4, "STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED", "Offload write operations cannot be performed on: Compressed files Sparse files Encrypted files File system metadata file") +DBG_NO_STATE_CHANGE = NtStatusException.register_ntstatus(0xc0010001, "DBG_NO_STATE_CHANGE", "The debugger did not perform a state change") +DBG_APP_NOT_IDLE = NtStatusException.register_ntstatus(0xc0010002, "DBG_APP_NOT_IDLE", "The debugger found that the application is not idle") +RPC_NT_INVALID_STRING_BINDING = NtStatusException.register_ntstatus(0xc0020001, "RPC_NT_INVALID_STRING_BINDING", "The string binding is invalid") +RPC_NT_WRONG_KIND_OF_BINDING = NtStatusException.register_ntstatus(0xc0020002, "RPC_NT_WRONG_KIND_OF_BINDING", "The binding handle is not the correct type") +RPC_NT_INVALID_BINDING = NtStatusException.register_ntstatus(0xc0020003, "RPC_NT_INVALID_BINDING", "The binding handle is invalid") +RPC_NT_PROTSEQ_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc0020004, "RPC_NT_PROTSEQ_NOT_SUPPORTED", "The RPC protocol sequence is not supported") +RPC_NT_INVALID_RPC_PROTSEQ = NtStatusException.register_ntstatus(0xc0020005, "RPC_NT_INVALID_RPC_PROTSEQ", "The RPC protocol sequence is invalid") +RPC_NT_INVALID_STRING_UUID = NtStatusException.register_ntstatus(0xc0020006, "RPC_NT_INVALID_STRING_UUID", "The string UUID is invalid") +RPC_NT_INVALID_ENDPOINT_FORMAT = NtStatusException.register_ntstatus(0xc0020007, "RPC_NT_INVALID_ENDPOINT_FORMAT", "The endpoint format is invalid") +RPC_NT_INVALID_NET_ADDR = NtStatusException.register_ntstatus(0xc0020008, "RPC_NT_INVALID_NET_ADDR", "The network address is invalid") +RPC_NT_NO_ENDPOINT_FOUND = NtStatusException.register_ntstatus(0xc0020009, "RPC_NT_NO_ENDPOINT_FOUND", "No endpoint was found") +RPC_NT_INVALID_TIMEOUT = NtStatusException.register_ntstatus(0xc002000a, "RPC_NT_INVALID_TIMEOUT", "The time-out value is invalid") +RPC_NT_OBJECT_NOT_FOUND = NtStatusException.register_ntstatus(0xc002000b, "RPC_NT_OBJECT_NOT_FOUND", "The object UUID was not found") +RPC_NT_ALREADY_REGISTERED = NtStatusException.register_ntstatus(0xc002000c, "RPC_NT_ALREADY_REGISTERED", "The object UUID has already been registered") +RPC_NT_TYPE_ALREADY_REGISTERED = NtStatusException.register_ntstatus(0xc002000d, "RPC_NT_TYPE_ALREADY_REGISTERED", "The type UUID has already been registered") +RPC_NT_ALREADY_LISTENING = NtStatusException.register_ntstatus(0xc002000e, "RPC_NT_ALREADY_LISTENING", "The RPC server is already listening") +RPC_NT_NO_PROTSEQS_REGISTERED = NtStatusException.register_ntstatus(0xc002000f, "RPC_NT_NO_PROTSEQS_REGISTERED", "No protocol sequences have been registered") +RPC_NT_NOT_LISTENING = NtStatusException.register_ntstatus(0xc0020010, "RPC_NT_NOT_LISTENING", "The RPC server is not listening") +RPC_NT_UNKNOWN_MGR_TYPE = NtStatusException.register_ntstatus(0xc0020011, "RPC_NT_UNKNOWN_MGR_TYPE", "The manager type is unknown") +RPC_NT_UNKNOWN_IF = NtStatusException.register_ntstatus(0xc0020012, "RPC_NT_UNKNOWN_IF", "The interface is unknown") +RPC_NT_NO_BINDINGS = NtStatusException.register_ntstatus(0xc0020013, "RPC_NT_NO_BINDINGS", "There are no bindings") +RPC_NT_NO_PROTSEQS = NtStatusException.register_ntstatus(0xc0020014, "RPC_NT_NO_PROTSEQS", "There are no protocol sequences") +RPC_NT_CANT_CREATE_ENDPOINT = NtStatusException.register_ntstatus(0xc0020015, "RPC_NT_CANT_CREATE_ENDPOINT", "The endpoint cannot be created") +RPC_NT_OUT_OF_RESOURCES = NtStatusException.register_ntstatus(0xc0020016, "RPC_NT_OUT_OF_RESOURCES", "Insufficient resources are available to complete this operation") +RPC_NT_SERVER_UNAVAILABLE = NtStatusException.register_ntstatus(0xc0020017, "RPC_NT_SERVER_UNAVAILABLE", "The RPC server is unavailable") +RPC_NT_SERVER_TOO_BUSY = NtStatusException.register_ntstatus(0xc0020018, "RPC_NT_SERVER_TOO_BUSY", "The RPC server is too busy to complete this operation") +RPC_NT_INVALID_NETWORK_OPTIONS = NtStatusException.register_ntstatus(0xc0020019, "RPC_NT_INVALID_NETWORK_OPTIONS", "The network options are invalid") +RPC_NT_NO_CALL_ACTIVE = NtStatusException.register_ntstatus(0xc002001a, "RPC_NT_NO_CALL_ACTIVE", "No RPCs are active on this thread") +RPC_NT_CALL_FAILED = NtStatusException.register_ntstatus(0xc002001b, "RPC_NT_CALL_FAILED", "The RPC failed") +RPC_NT_CALL_FAILED_DNE = NtStatusException.register_ntstatus(0xc002001c, "RPC_NT_CALL_FAILED_DNE", "The RPC failed and did not execute") +RPC_NT_PROTOCOL_ERROR = NtStatusException.register_ntstatus(0xc002001d, "RPC_NT_PROTOCOL_ERROR", "An RPC protocol error occurred") +RPC_NT_UNSUPPORTED_TRANS_SYN = NtStatusException.register_ntstatus(0xc002001f, "RPC_NT_UNSUPPORTED_TRANS_SYN", "The RPC server does not support the transfer syntax") +RPC_NT_UNSUPPORTED_TYPE = NtStatusException.register_ntstatus(0xc0020021, "RPC_NT_UNSUPPORTED_TYPE", "The type UUID is not supported") +RPC_NT_INVALID_TAG = NtStatusException.register_ntstatus(0xc0020022, "RPC_NT_INVALID_TAG", "The tag is invalid") +RPC_NT_INVALID_BOUND = NtStatusException.register_ntstatus(0xc0020023, "RPC_NT_INVALID_BOUND", "The array bounds are invalid") +RPC_NT_NO_ENTRY_NAME = NtStatusException.register_ntstatus(0xc0020024, "RPC_NT_NO_ENTRY_NAME", "The binding does not contain an entry name") +RPC_NT_INVALID_NAME_SYNTAX = NtStatusException.register_ntstatus(0xc0020025, "RPC_NT_INVALID_NAME_SYNTAX", "The name syntax is invalid") +RPC_NT_UNSUPPORTED_NAME_SYNTAX = NtStatusException.register_ntstatus(0xc0020026, "RPC_NT_UNSUPPORTED_NAME_SYNTAX", "The name syntax is not supported") +RPC_NT_UUID_NO_ADDRESS = NtStatusException.register_ntstatus(0xc0020028, "RPC_NT_UUID_NO_ADDRESS", "No network address is available to construct a UUID") +RPC_NT_DUPLICATE_ENDPOINT = NtStatusException.register_ntstatus(0xc0020029, "RPC_NT_DUPLICATE_ENDPOINT", "The endpoint is a duplicate") +RPC_NT_UNKNOWN_AUTHN_TYPE = NtStatusException.register_ntstatus(0xc002002a, "RPC_NT_UNKNOWN_AUTHN_TYPE", "The authentication type is unknown") +RPC_NT_MAX_CALLS_TOO_SMALL = NtStatusException.register_ntstatus(0xc002002b, "RPC_NT_MAX_CALLS_TOO_SMALL", "The maximum number of calls is too small") +RPC_NT_STRING_TOO_LONG = NtStatusException.register_ntstatus(0xc002002c, "RPC_NT_STRING_TOO_LONG", "The string is too long") +RPC_NT_PROTSEQ_NOT_FOUND = NtStatusException.register_ntstatus(0xc002002d, "RPC_NT_PROTSEQ_NOT_FOUND", "The RPC protocol sequence was not found") +RPC_NT_PROCNUM_OUT_OF_RANGE = NtStatusException.register_ntstatus(0xc002002e, "RPC_NT_PROCNUM_OUT_OF_RANGE", "The procedure number is out of range") +RPC_NT_BINDING_HAS_NO_AUTH = NtStatusException.register_ntstatus(0xc002002f, "RPC_NT_BINDING_HAS_NO_AUTH", "The binding does not contain any authentication information") +RPC_NT_UNKNOWN_AUTHN_SERVICE = NtStatusException.register_ntstatus(0xc0020030, "RPC_NT_UNKNOWN_AUTHN_SERVICE", "The authentication service is unknown") +RPC_NT_UNKNOWN_AUTHN_LEVEL = NtStatusException.register_ntstatus(0xc0020031, "RPC_NT_UNKNOWN_AUTHN_LEVEL", "The authentication level is unknown") +RPC_NT_INVALID_AUTH_IDENTITY = NtStatusException.register_ntstatus(0xc0020032, "RPC_NT_INVALID_AUTH_IDENTITY", "The security context is invalid") +RPC_NT_UNKNOWN_AUTHZ_SERVICE = NtStatusException.register_ntstatus(0xc0020033, "RPC_NT_UNKNOWN_AUTHZ_SERVICE", "The authorization service is unknown") +EPT_NT_INVALID_ENTRY = NtStatusException.register_ntstatus(0xc0020034, "EPT_NT_INVALID_ENTRY", "The entry is invalid") +EPT_NT_CANT_PERFORM_OP = NtStatusException.register_ntstatus(0xc0020035, "EPT_NT_CANT_PERFORM_OP", "The operation cannot be performed") +EPT_NT_NOT_REGISTERED = NtStatusException.register_ntstatus(0xc0020036, "EPT_NT_NOT_REGISTERED", "No more endpoints are available from the endpoint mapper") +RPC_NT_NOTHING_TO_EXPORT = NtStatusException.register_ntstatus(0xc0020037, "RPC_NT_NOTHING_TO_EXPORT", "No interfaces have been exported") +RPC_NT_INCOMPLETE_NAME = NtStatusException.register_ntstatus(0xc0020038, "RPC_NT_INCOMPLETE_NAME", "The entry name is incomplete") +RPC_NT_INVALID_VERS_OPTION = NtStatusException.register_ntstatus(0xc0020039, "RPC_NT_INVALID_VERS_OPTION", "The version option is invalid") +RPC_NT_NO_MORE_MEMBERS = NtStatusException.register_ntstatus(0xc002003a, "RPC_NT_NO_MORE_MEMBERS", "There are no more members") +RPC_NT_NOT_ALL_OBJS_UNEXPORTED = NtStatusException.register_ntstatus(0xc002003b, "RPC_NT_NOT_ALL_OBJS_UNEXPORTED", "There is nothing to unexport") +RPC_NT_INTERFACE_NOT_FOUND = NtStatusException.register_ntstatus(0xc002003c, "RPC_NT_INTERFACE_NOT_FOUND", "The interface was not found") +RPC_NT_ENTRY_ALREADY_EXISTS = NtStatusException.register_ntstatus(0xc002003d, "RPC_NT_ENTRY_ALREADY_EXISTS", "The entry already exists") +RPC_NT_ENTRY_NOT_FOUND = NtStatusException.register_ntstatus(0xc002003e, "RPC_NT_ENTRY_NOT_FOUND", "The entry was not found") +RPC_NT_NAME_SERVICE_UNAVAILABLE = NtStatusException.register_ntstatus(0xc002003f, "RPC_NT_NAME_SERVICE_UNAVAILABLE", "The name service is unavailable") +RPC_NT_INVALID_NAF_ID = NtStatusException.register_ntstatus(0xc0020040, "RPC_NT_INVALID_NAF_ID", "The network address family is invalid") +RPC_NT_CANNOT_SUPPORT = NtStatusException.register_ntstatus(0xc0020041, "RPC_NT_CANNOT_SUPPORT", "The requested operation is not supported") +RPC_NT_NO_CONTEXT_AVAILABLE = NtStatusException.register_ntstatus(0xc0020042, "RPC_NT_NO_CONTEXT_AVAILABLE", "No security context is available to allow impersonation") +RPC_NT_INTERNAL_ERROR = NtStatusException.register_ntstatus(0xc0020043, "RPC_NT_INTERNAL_ERROR", "An internal error occurred in the RPC") +RPC_NT_ZERO_DIVIDE = NtStatusException.register_ntstatus(0xc0020044, "RPC_NT_ZERO_DIVIDE", "The RPC server attempted to divide an integer by zero") +RPC_NT_ADDRESS_ERROR = NtStatusException.register_ntstatus(0xc0020045, "RPC_NT_ADDRESS_ERROR", "An addressing error occurred in the RPC server") +RPC_NT_FP_DIV_ZERO = NtStatusException.register_ntstatus(0xc0020046, "RPC_NT_FP_DIV_ZERO", "A floating point operation at the RPC server caused a divide by zero") +RPC_NT_FP_UNDERFLOW = NtStatusException.register_ntstatus(0xc0020047, "RPC_NT_FP_UNDERFLOW", "A floating point underflow occurred at the RPC server") +RPC_NT_FP_OVERFLOW = NtStatusException.register_ntstatus(0xc0020048, "RPC_NT_FP_OVERFLOW", "A floating point overflow occurred at the RPC server") +RPC_NT_CALL_IN_PROGRESS = NtStatusException.register_ntstatus(0xc0020049, "RPC_NT_CALL_IN_PROGRESS", "An RPC is already in progress for this thread") +RPC_NT_NO_MORE_BINDINGS = NtStatusException.register_ntstatus(0xc002004a, "RPC_NT_NO_MORE_BINDINGS", "There are no more bindings") +RPC_NT_GROUP_MEMBER_NOT_FOUND = NtStatusException.register_ntstatus(0xc002004b, "RPC_NT_GROUP_MEMBER_NOT_FOUND", "The group member was not found") +EPT_NT_CANT_CREATE = NtStatusException.register_ntstatus(0xc002004c, "EPT_NT_CANT_CREATE", "The endpoint mapper database entry could not be created") +RPC_NT_INVALID_OBJECT = NtStatusException.register_ntstatus(0xc002004d, "RPC_NT_INVALID_OBJECT", "The object UUID is the nil UUID") +RPC_NT_NO_INTERFACES = NtStatusException.register_ntstatus(0xc002004f, "RPC_NT_NO_INTERFACES", "No interfaces have been registered") +RPC_NT_CALL_CANCELLED = NtStatusException.register_ntstatus(0xc0020050, "RPC_NT_CALL_CANCELLED", "The RPC was canceled") +RPC_NT_BINDING_INCOMPLETE = NtStatusException.register_ntstatus(0xc0020051, "RPC_NT_BINDING_INCOMPLETE", "The binding handle does not contain all the required information") +RPC_NT_COMM_FAILURE = NtStatusException.register_ntstatus(0xc0020052, "RPC_NT_COMM_FAILURE", "A communications failure occurred during an RPC") +RPC_NT_UNSUPPORTED_AUTHN_LEVEL = NtStatusException.register_ntstatus(0xc0020053, "RPC_NT_UNSUPPORTED_AUTHN_LEVEL", "The requested authentication level is not supported") +RPC_NT_NO_PRINC_NAME = NtStatusException.register_ntstatus(0xc0020054, "RPC_NT_NO_PRINC_NAME", "No principal name was registered") +RPC_NT_NOT_RPC_ERROR = NtStatusException.register_ntstatus(0xc0020055, "RPC_NT_NOT_RPC_ERROR", "The error specified is not a valid Windows RPC error code") +RPC_NT_SEC_PKG_ERROR = NtStatusException.register_ntstatus(0xc0020057, "RPC_NT_SEC_PKG_ERROR", "A security package-specific error occurred") +RPC_NT_NOT_CANCELLED = NtStatusException.register_ntstatus(0xc0020058, "RPC_NT_NOT_CANCELLED", "The thread was not canceled") +RPC_NT_INVALID_ASYNC_HANDLE = NtStatusException.register_ntstatus(0xc0020062, "RPC_NT_INVALID_ASYNC_HANDLE", "Invalid asynchronous RPC handle") +RPC_NT_INVALID_ASYNC_CALL = NtStatusException.register_ntstatus(0xc0020063, "RPC_NT_INVALID_ASYNC_CALL", "Invalid asynchronous RPC call handle for this operation") +RPC_NT_PROXY_ACCESS_DENIED = NtStatusException.register_ntstatus(0xc0020064, "RPC_NT_PROXY_ACCESS_DENIED", "Access to the HTTP proxy is denied") +RPC_NT_NO_MORE_ENTRIES = NtStatusException.register_ntstatus(0xc0030001, "RPC_NT_NO_MORE_ENTRIES", "The list of RPC servers available for auto-handle binding has been exhausted") +RPC_NT_SS_CHAR_TRANS_OPEN_FAIL = NtStatusException.register_ntstatus(0xc0030002, "RPC_NT_SS_CHAR_TRANS_OPEN_FAIL", "The file designated by DCERPCCHARTRANS cannot be opened") +RPC_NT_SS_CHAR_TRANS_SHORT_FILE = NtStatusException.register_ntstatus(0xc0030003, "RPC_NT_SS_CHAR_TRANS_SHORT_FILE", "The file containing the character translation table has fewer than 512 bytes") +RPC_NT_SS_IN_NULL_CONTEXT = NtStatusException.register_ntstatus(0xc0030004, "RPC_NT_SS_IN_NULL_CONTEXT", "A null context handle is passed as an [in] parameter") +RPC_NT_SS_CONTEXT_MISMATCH = NtStatusException.register_ntstatus(0xc0030005, "RPC_NT_SS_CONTEXT_MISMATCH", "The context handle does not match any known context handles") +RPC_NT_SS_CONTEXT_DAMAGED = NtStatusException.register_ntstatus(0xc0030006, "RPC_NT_SS_CONTEXT_DAMAGED", "The context handle changed during a call") +RPC_NT_SS_HANDLES_MISMATCH = NtStatusException.register_ntstatus(0xc0030007, "RPC_NT_SS_HANDLES_MISMATCH", "The binding handles passed to an RPC do not match") +RPC_NT_SS_CANNOT_GET_CALL_HANDLE = NtStatusException.register_ntstatus(0xc0030008, "RPC_NT_SS_CANNOT_GET_CALL_HANDLE", "The stub is unable to get the call handle") +RPC_NT_NULL_REF_POINTER = NtStatusException.register_ntstatus(0xc0030009, "RPC_NT_NULL_REF_POINTER", "A null reference pointer was passed to the stub") +RPC_NT_ENUM_VALUE_OUT_OF_RANGE = NtStatusException.register_ntstatus(0xc003000a, "RPC_NT_ENUM_VALUE_OUT_OF_RANGE", "The enumeration value is out of range") +RPC_NT_BYTE_COUNT_TOO_SMALL = NtStatusException.register_ntstatus(0xc003000b, "RPC_NT_BYTE_COUNT_TOO_SMALL", "The byte count is too small") +RPC_NT_BAD_STUB_DATA = NtStatusException.register_ntstatus(0xc003000c, "RPC_NT_BAD_STUB_DATA", "The stub received bad data") +RPC_NT_INVALID_ES_ACTION = NtStatusException.register_ntstatus(0xc0030059, "RPC_NT_INVALID_ES_ACTION", "Invalid operation on the encoding/decoding handle") +RPC_NT_WRONG_ES_VERSION = NtStatusException.register_ntstatus(0xc003005a, "RPC_NT_WRONG_ES_VERSION", "Incompatible version of the serializing package") +RPC_NT_WRONG_STUB_VERSION = NtStatusException.register_ntstatus(0xc003005b, "RPC_NT_WRONG_STUB_VERSION", "Incompatible version of the RPC stub") +RPC_NT_INVALID_PIPE_OBJECT = NtStatusException.register_ntstatus(0xc003005c, "RPC_NT_INVALID_PIPE_OBJECT", "The RPC pipe object is invalid or corrupt") +RPC_NT_INVALID_PIPE_OPERATION = NtStatusException.register_ntstatus(0xc003005d, "RPC_NT_INVALID_PIPE_OPERATION", "An invalid operation was attempted on an RPC pipe object") +RPC_NT_WRONG_PIPE_VERSION = NtStatusException.register_ntstatus(0xc003005e, "RPC_NT_WRONG_PIPE_VERSION", "Unsupported RPC pipe version") +RPC_NT_PIPE_CLOSED = NtStatusException.register_ntstatus(0xc003005f, "RPC_NT_PIPE_CLOSED", "The RPC pipe object has already been closed") +RPC_NT_PIPE_DISCIPLINE_ERROR = NtStatusException.register_ntstatus(0xc0030060, "RPC_NT_PIPE_DISCIPLINE_ERROR", "The RPC call completed before all pipes were processed") +RPC_NT_PIPE_EMPTY = NtStatusException.register_ntstatus(0xc0030061, "RPC_NT_PIPE_EMPTY", "No more data is available from the RPC pipe") +STATUS_PNP_BAD_MPS_TABLE = NtStatusException.register_ntstatus(0xc0040035, "STATUS_PNP_BAD_MPS_TABLE", "A device is missing in the system BIOS MPS table. This device will not be used. Contact your system vendor for a system BIOS update") +STATUS_PNP_TRANSLATION_FAILED = NtStatusException.register_ntstatus(0xc0040036, "STATUS_PNP_TRANSLATION_FAILED", "A translator failed to translate resources") +STATUS_PNP_IRQ_TRANSLATION_FAILED = NtStatusException.register_ntstatus(0xc0040037, "STATUS_PNP_IRQ_TRANSLATION_FAILED", "An IRQ translator failed to translate resources") +STATUS_PNP_INVALID_ID = NtStatusException.register_ntstatus(0xc0040038, "STATUS_PNP_INVALID_ID", "Driver %2 returned an invalid ID for a child device (%3)") +STATUS_IO_REISSUE_AS_CACHED = NtStatusException.register_ntstatus(0xc0040039, "STATUS_IO_REISSUE_AS_CACHED", "Reissue the given operation as a cached I/O operatio") +STATUS_CTX_WINSTATION_NAME_INVALID = NtStatusException.register_ntstatus(0xc00a0001, "STATUS_CTX_WINSTATION_NAME_INVALID", "Session name %1 is invalid") +STATUS_CTX_INVALID_PD = NtStatusException.register_ntstatus(0xc00a0002, "STATUS_CTX_INVALID_PD", "The protocol driver %1 is invalid") +STATUS_CTX_PD_NOT_FOUND = NtStatusException.register_ntstatus(0xc00a0003, "STATUS_CTX_PD_NOT_FOUND", "The protocol driver %1 was not found in the system path") +STATUS_CTX_CLOSE_PENDING = NtStatusException.register_ntstatus(0xc00a0006, "STATUS_CTX_CLOSE_PENDING", "A close operation is pending on the terminal connection") +STATUS_CTX_NO_OUTBUF = NtStatusException.register_ntstatus(0xc00a0007, "STATUS_CTX_NO_OUTBUF", "No free output buffers are available") +STATUS_CTX_MODEM_INF_NOT_FOUND = NtStatusException.register_ntstatus(0xc00a0008, "STATUS_CTX_MODEM_INF_NOT_FOUND", "The MODEM.INF file was not found") +STATUS_CTX_INVALID_MODEMNAME = NtStatusException.register_ntstatus(0xc00a0009, "STATUS_CTX_INVALID_MODEMNAME", "The modem (%1) was not found in the MODEM.INF file") +STATUS_CTX_RESPONSE_ERROR = NtStatusException.register_ntstatus(0xc00a000a, "STATUS_CTX_RESPONSE_ERROR", "The modem did not accept the command sent to it. Verify that the configured modem name matches the attached modem") +STATUS_CTX_MODEM_RESPONSE_TIMEOUT = NtStatusException.register_ntstatus(0xc00a000b, "STATUS_CTX_MODEM_RESPONSE_TIMEOUT", "The modem did not respond to the command sent to it. Verify that the modem cable is properly attached and the modem is turned on") +STATUS_CTX_MODEM_RESPONSE_NO_CARRIER = NtStatusException.register_ntstatus(0xc00a000c, "STATUS_CTX_MODEM_RESPONSE_NO_CARRIER", "Carrier detection has failed or the carrier has been dropped due to disconnection") +STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE = NtStatusException.register_ntstatus(0xc00a000d, "STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE", "A dial tone was not detected within the required time. Verify that the phone cable is properly attached and functional") +STATUS_CTX_MODEM_RESPONSE_BUSY = NtStatusException.register_ntstatus(0xc00a000e, "STATUS_CTX_MODEM_RESPONSE_BUSY", "A busy signal was detected at a remote site on callback") +STATUS_CTX_MODEM_RESPONSE_VOICE = NtStatusException.register_ntstatus(0xc00a000f, "STATUS_CTX_MODEM_RESPONSE_VOICE", "A voice was detected at a remote site on callback") +STATUS_CTX_TD_ERROR = NtStatusException.register_ntstatus(0xc00a0010, "STATUS_CTX_TD_ERROR", "Transport driver error") +STATUS_CTX_LICENSE_CLIENT_INVALID = NtStatusException.register_ntstatus(0xc00a0012, "STATUS_CTX_LICENSE_CLIENT_INVALID", "The client you are using is not licensed to use this system. Your logon request is denied") +STATUS_CTX_LICENSE_NOT_AVAILABLE = NtStatusException.register_ntstatus(0xc00a0013, "STATUS_CTX_LICENSE_NOT_AVAILABLE", "The system has reached its licensed logon limit. Try again later") +STATUS_CTX_LICENSE_EXPIRED = NtStatusException.register_ntstatus(0xc00a0014, "STATUS_CTX_LICENSE_EXPIRED", "The system license has expired. Your logon request is denied") +STATUS_CTX_WINSTATION_NOT_FOUND = NtStatusException.register_ntstatus(0xc00a0015, "STATUS_CTX_WINSTATION_NOT_FOUND", "The specified session cannot be found") +STATUS_CTX_WINSTATION_NAME_COLLISION = NtStatusException.register_ntstatus(0xc00a0016, "STATUS_CTX_WINSTATION_NAME_COLLISION", "The specified session name is already in use") +STATUS_CTX_WINSTATION_BUSY = NtStatusException.register_ntstatus(0xc00a0017, "STATUS_CTX_WINSTATION_BUSY", "The requested operation cannot be completed because the terminal connection is currently processing a connect, disconnect, reset, or delete operation") +STATUS_CTX_BAD_VIDEO_MODE = NtStatusException.register_ntstatus(0xc00a0018, "STATUS_CTX_BAD_VIDEO_MODE", "An attempt has been made to connect to a session whose video mode is not supported by the current client") +STATUS_CTX_GRAPHICS_INVALID = NtStatusException.register_ntstatus(0xc00a0022, "STATUS_CTX_GRAPHICS_INVALID", "The application attempted to enable DOS graphics mode. DOS graphics mode is not supported") +STATUS_CTX_NOT_CONSOLE = NtStatusException.register_ntstatus(0xc00a0024, "STATUS_CTX_NOT_CONSOLE", "The requested operation can be performed only on the system console. This is most often the result of a driver or system DLL requiring direct console access") +STATUS_CTX_CLIENT_QUERY_TIMEOUT = NtStatusException.register_ntstatus(0xc00a0026, "STATUS_CTX_CLIENT_QUERY_TIMEOUT", "The client failed to respond to the server connect message") +STATUS_CTX_CONSOLE_DISCONNECT = NtStatusException.register_ntstatus(0xc00a0027, "STATUS_CTX_CONSOLE_DISCONNECT", "Disconnecting the console session is not supported") +STATUS_CTX_CONSOLE_CONNECT = NtStatusException.register_ntstatus(0xc00a0028, "STATUS_CTX_CONSOLE_CONNECT", "Reconnecting a disconnected session to the console is not supported") +STATUS_CTX_SHADOW_DENIED = NtStatusException.register_ntstatus(0xc00a002a, "STATUS_CTX_SHADOW_DENIED", "The request to control another session remotely was denied") +STATUS_CTX_WINSTATION_ACCESS_DENIED = NtStatusException.register_ntstatus(0xc00a002b, "STATUS_CTX_WINSTATION_ACCESS_DENIED", "A process has requested access to a session, but has not been granted those access rights") +STATUS_CTX_INVALID_WD = NtStatusException.register_ntstatus(0xc00a002e, "STATUS_CTX_INVALID_WD", "The terminal connection driver %1 is invalid") +STATUS_CTX_WD_NOT_FOUND = NtStatusException.register_ntstatus(0xc00a002f, "STATUS_CTX_WD_NOT_FOUND", "The terminal connection driver %1 was not found in the system path") +STATUS_CTX_SHADOW_INVALID = NtStatusException.register_ntstatus(0xc00a0030, "STATUS_CTX_SHADOW_INVALID", "The requested session cannot be controlled remotely. You cannot control your own session, a session that is trying to control your session, a session that has no user logged on, or other sessions from the console") +STATUS_CTX_SHADOW_DISABLED = NtStatusException.register_ntstatus(0xc00a0031, "STATUS_CTX_SHADOW_DISABLED", "The requested session is not configured to allow remote control") +STATUS_RDP_PROTOCOL_ERROR = NtStatusException.register_ntstatus(0xc00a0032, "STATUS_RDP_PROTOCOL_ERROR", "The RDP protocol component %2 detected an error in the protocol stream and has disconnected the client") +STATUS_CTX_CLIENT_LICENSE_NOT_SET = NtStatusException.register_ntstatus(0xc00a0033, "STATUS_CTX_CLIENT_LICENSE_NOT_SET", "Your request to connect to this terminal server has been rejected. Your terminal server client license number has not been entered for this copy of the terminal client. Contact your system administrator for help in entering a valid, unique license number for this terminal server client. Click OK to continue") +STATUS_CTX_CLIENT_LICENSE_IN_USE = NtStatusException.register_ntstatus(0xc00a0034, "STATUS_CTX_CLIENT_LICENSE_IN_USE", "Your request to connect to this terminal server has been rejected. Your terminal server client license number is currently being used by another user. Contact your system administrator to obtain a new copy of the terminal server client with a valid, unique license number. Click OK to continue") +STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE = NtStatusException.register_ntstatus(0xc00a0035, "STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE", "The remote control of the console was terminated because the display mode was changed. Changing the display mode in a remote control session is not supported") +STATUS_CTX_SHADOW_NOT_RUNNING = NtStatusException.register_ntstatus(0xc00a0036, "STATUS_CTX_SHADOW_NOT_RUNNING", "Remote control could not be terminated because the specified session is not currently being remotely controlled") +STATUS_CTX_LOGON_DISABLED = NtStatusException.register_ntstatus(0xc00a0037, "STATUS_CTX_LOGON_DISABLED", "Your interactive logon privilege has been disabled. Contact your system administrator") +STATUS_CTX_SECURITY_LAYER_ERROR = NtStatusException.register_ntstatus(0xc00a0038, "STATUS_CTX_SECURITY_LAYER_ERROR", "The terminal server security layer detected an error in the protocol stream and has disconnected the client") +STATUS_TS_INCOMPATIBLE_SESSIONS = NtStatusException.register_ntstatus(0xc00a0039, "STATUS_TS_INCOMPATIBLE_SESSIONS", "The target session is incompatible with the current session") +STATUS_MUI_FILE_NOT_FOUND = NtStatusException.register_ntstatus(0xc00b0001, "STATUS_MUI_FILE_NOT_FOUND", "The resource loader failed to find an MUI file") +STATUS_MUI_INVALID_FILE = NtStatusException.register_ntstatus(0xc00b0002, "STATUS_MUI_INVALID_FILE", "The resource loader failed to load an MUI file because the file failed to pass validation") +STATUS_MUI_INVALID_RC_CONFIG = NtStatusException.register_ntstatus(0xc00b0003, "STATUS_MUI_INVALID_RC_CONFIG", "The RC manifest is corrupted with garbage data, is an unsupported version, or is missing a required item") +STATUS_MUI_INVALID_LOCALE_NAME = NtStatusException.register_ntstatus(0xc00b0004, "STATUS_MUI_INVALID_LOCALE_NAME", "The RC manifest has an invalid culture name") +STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME = NtStatusException.register_ntstatus(0xc00b0005, "STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME", "The RC manifest has and invalid ultimate fallback name") +STATUS_MUI_FILE_NOT_LOADED = NtStatusException.register_ntstatus(0xc00b0006, "STATUS_MUI_FILE_NOT_LOADED", "The resource loader cache does not have a loaded MUI entry") +STATUS_RESOURCE_ENUM_USER_STOP = NtStatusException.register_ntstatus(0xc00b0007, "STATUS_RESOURCE_ENUM_USER_STOP", "The user stopped resource enumeration") +STATUS_CLUSTER_INVALID_NODE = NtStatusException.register_ntstatus(0xc0130001, "STATUS_CLUSTER_INVALID_NODE", "The cluster node is not valid") +STATUS_CLUSTER_NODE_EXISTS = NtStatusException.register_ntstatus(0xc0130002, "STATUS_CLUSTER_NODE_EXISTS", "The cluster node already exists") +STATUS_CLUSTER_JOIN_IN_PROGRESS = NtStatusException.register_ntstatus(0xc0130003, "STATUS_CLUSTER_JOIN_IN_PROGRESS", "A node is in the process of joining the cluster") +STATUS_CLUSTER_NODE_NOT_FOUND = NtStatusException.register_ntstatus(0xc0130004, "STATUS_CLUSTER_NODE_NOT_FOUND", "The cluster node was not found") +STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND = NtStatusException.register_ntstatus(0xc0130005, "STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND", "The cluster local node information was not found") +STATUS_CLUSTER_NETWORK_EXISTS = NtStatusException.register_ntstatus(0xc0130006, "STATUS_CLUSTER_NETWORK_EXISTS", "The cluster network already exists") +STATUS_CLUSTER_NETWORK_NOT_FOUND = NtStatusException.register_ntstatus(0xc0130007, "STATUS_CLUSTER_NETWORK_NOT_FOUND", "The cluster network was not found") +STATUS_CLUSTER_NETINTERFACE_EXISTS = NtStatusException.register_ntstatus(0xc0130008, "STATUS_CLUSTER_NETINTERFACE_EXISTS", "The cluster network interface already exists") +STATUS_CLUSTER_NETINTERFACE_NOT_FOUND = NtStatusException.register_ntstatus(0xc0130009, "STATUS_CLUSTER_NETINTERFACE_NOT_FOUND", "The cluster network interface was not found") +STATUS_CLUSTER_INVALID_REQUEST = NtStatusException.register_ntstatus(0xc013000a, "STATUS_CLUSTER_INVALID_REQUEST", "The cluster request is not valid for this object") +STATUS_CLUSTER_INVALID_NETWORK_PROVIDER = NtStatusException.register_ntstatus(0xc013000b, "STATUS_CLUSTER_INVALID_NETWORK_PROVIDER", "The cluster network provider is not valid") +STATUS_CLUSTER_NODE_DOWN = NtStatusException.register_ntstatus(0xc013000c, "STATUS_CLUSTER_NODE_DOWN", "The cluster node is down") +STATUS_CLUSTER_NODE_UNREACHABLE = NtStatusException.register_ntstatus(0xc013000d, "STATUS_CLUSTER_NODE_UNREACHABLE", "The cluster node is not reachable") +STATUS_CLUSTER_NODE_NOT_MEMBER = NtStatusException.register_ntstatus(0xc013000e, "STATUS_CLUSTER_NODE_NOT_MEMBER", "The cluster node is not a member of the cluster") +STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS = NtStatusException.register_ntstatus(0xc013000f, "STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS", "A cluster join operation is not in progress") +STATUS_CLUSTER_INVALID_NETWORK = NtStatusException.register_ntstatus(0xc0130010, "STATUS_CLUSTER_INVALID_NETWORK", "The cluster network is not valid") +STATUS_CLUSTER_NO_NET_ADAPTERS = NtStatusException.register_ntstatus(0xc0130011, "STATUS_CLUSTER_NO_NET_ADAPTERS", "No network adapters are available") +STATUS_CLUSTER_NODE_UP = NtStatusException.register_ntstatus(0xc0130012, "STATUS_CLUSTER_NODE_UP", "The cluster node is up") +STATUS_CLUSTER_NODE_PAUSED = NtStatusException.register_ntstatus(0xc0130013, "STATUS_CLUSTER_NODE_PAUSED", "The cluster node is paused") +STATUS_CLUSTER_NODE_NOT_PAUSED = NtStatusException.register_ntstatus(0xc0130014, "STATUS_CLUSTER_NODE_NOT_PAUSED", "The cluster node is not paused") +STATUS_CLUSTER_NO_SECURITY_CONTEXT = NtStatusException.register_ntstatus(0xc0130015, "STATUS_CLUSTER_NO_SECURITY_CONTEXT", "No cluster security context is available") +STATUS_CLUSTER_NETWORK_NOT_INTERNAL = NtStatusException.register_ntstatus(0xc0130016, "STATUS_CLUSTER_NETWORK_NOT_INTERNAL", "The cluster network is not configured for internal cluster communication") +STATUS_CLUSTER_POISONED = NtStatusException.register_ntstatus(0xc0130017, "STATUS_CLUSTER_POISONED", "The cluster node has been poisoned") +STATUS_ACPI_INVALID_OPCODE = NtStatusException.register_ntstatus(0xc0140001, "STATUS_ACPI_INVALID_OPCODE", "An attempt was made to run an invalid AML opcode") +STATUS_ACPI_STACK_OVERFLOW = NtStatusException.register_ntstatus(0xc0140002, "STATUS_ACPI_STACK_OVERFLOW", "The AML interpreter stack has overflowed") +STATUS_ACPI_ASSERT_FAILED = NtStatusException.register_ntstatus(0xc0140003, "STATUS_ACPI_ASSERT_FAILED", "An inconsistent state has occurred") +STATUS_ACPI_INVALID_INDEX = NtStatusException.register_ntstatus(0xc0140004, "STATUS_ACPI_INVALID_INDEX", "An attempt was made to access an array outside its bounds") +STATUS_ACPI_INVALID_ARGUMENT = NtStatusException.register_ntstatus(0xc0140005, "STATUS_ACPI_INVALID_ARGUMENT", "A required argument was not specified") +STATUS_ACPI_FATAL = NtStatusException.register_ntstatus(0xc0140006, "STATUS_ACPI_FATAL", "A fatal error has occurred") +STATUS_ACPI_INVALID_SUPERNAME = NtStatusException.register_ntstatus(0xc0140007, "STATUS_ACPI_INVALID_SUPERNAME", "An invalid SuperName was specified") +STATUS_ACPI_INVALID_ARGTYPE = NtStatusException.register_ntstatus(0xc0140008, "STATUS_ACPI_INVALID_ARGTYPE", "An argument with an incorrect type was specified") +STATUS_ACPI_INVALID_OBJTYPE = NtStatusException.register_ntstatus(0xc0140009, "STATUS_ACPI_INVALID_OBJTYPE", "An object with an incorrect type was specified") +STATUS_ACPI_INVALID_TARGETTYPE = NtStatusException.register_ntstatus(0xc014000a, "STATUS_ACPI_INVALID_TARGETTYPE", "A target with an incorrect type was specified") +STATUS_ACPI_INCORRECT_ARGUMENT_COUNT = NtStatusException.register_ntstatus(0xc014000b, "STATUS_ACPI_INCORRECT_ARGUMENT_COUNT", "An incorrect number of arguments was specified") +STATUS_ACPI_ADDRESS_NOT_MAPPED = NtStatusException.register_ntstatus(0xc014000c, "STATUS_ACPI_ADDRESS_NOT_MAPPED", "An address failed to translate") +STATUS_ACPI_INVALID_EVENTTYPE = NtStatusException.register_ntstatus(0xc014000d, "STATUS_ACPI_INVALID_EVENTTYPE", "An incorrect event type was specified") +STATUS_ACPI_HANDLER_COLLISION = NtStatusException.register_ntstatus(0xc014000e, "STATUS_ACPI_HANDLER_COLLISION", "A handler for the target already exists") +STATUS_ACPI_INVALID_DATA = NtStatusException.register_ntstatus(0xc014000f, "STATUS_ACPI_INVALID_DATA", "Invalid data for the target was specified") +STATUS_ACPI_INVALID_REGION = NtStatusException.register_ntstatus(0xc0140010, "STATUS_ACPI_INVALID_REGION", "An invalid region for the target was specified") +STATUS_ACPI_INVALID_ACCESS_SIZE = NtStatusException.register_ntstatus(0xc0140011, "STATUS_ACPI_INVALID_ACCESS_SIZE", "An attempt was made to access a field outside the defined range") +STATUS_ACPI_ACQUIRE_GLOBAL_LOCK = NtStatusException.register_ntstatus(0xc0140012, "STATUS_ACPI_ACQUIRE_GLOBAL_LOCK", "The global system lock could not be acquired") +STATUS_ACPI_ALREADY_INITIALIZED = NtStatusException.register_ntstatus(0xc0140013, "STATUS_ACPI_ALREADY_INITIALIZED", "An attempt was made to reinitialize the ACPI subsystem") +STATUS_ACPI_NOT_INITIALIZED = NtStatusException.register_ntstatus(0xc0140014, "STATUS_ACPI_NOT_INITIALIZED", "The ACPI subsystem has not been initialized") +STATUS_ACPI_INVALID_MUTEX_LEVEL = NtStatusException.register_ntstatus(0xc0140015, "STATUS_ACPI_INVALID_MUTEX_LEVEL", "An incorrect mutex was specified") +STATUS_ACPI_MUTEX_NOT_OWNED = NtStatusException.register_ntstatus(0xc0140016, "STATUS_ACPI_MUTEX_NOT_OWNED", "The mutex is not currently owned") +STATUS_ACPI_MUTEX_NOT_OWNER = NtStatusException.register_ntstatus(0xc0140017, "STATUS_ACPI_MUTEX_NOT_OWNER", "An attempt was made to access the mutex by a process that was not the owner") +STATUS_ACPI_RS_ACCESS = NtStatusException.register_ntstatus(0xc0140018, "STATUS_ACPI_RS_ACCESS", "An error occurred during an access to region space") +STATUS_ACPI_INVALID_TABLE = NtStatusException.register_ntstatus(0xc0140019, "STATUS_ACPI_INVALID_TABLE", "An attempt was made to use an incorrect table") +STATUS_ACPI_REG_HANDLER_FAILED = NtStatusException.register_ntstatus(0xc0140020, "STATUS_ACPI_REG_HANDLER_FAILED", "The registration of an ACPI event failed") +STATUS_ACPI_POWER_REQUEST_FAILED = NtStatusException.register_ntstatus(0xc0140021, "STATUS_ACPI_POWER_REQUEST_FAILED", "An ACPI power object failed to transition state") +STATUS_SXS_SECTION_NOT_FOUND = NtStatusException.register_ntstatus(0xc0150001, "STATUS_SXS_SECTION_NOT_FOUND", "The requested section is not present in the activation context") +STATUS_SXS_CANT_GEN_ACTCTX = NtStatusException.register_ntstatus(0xc0150002, "STATUS_SXS_CANT_GEN_ACTCTX", "Windows was unble to process the application binding information. Refer to the system event log for further information") +STATUS_SXS_INVALID_ACTCTXDATA_FORMAT = NtStatusException.register_ntstatus(0xc0150003, "STATUS_SXS_INVALID_ACTCTXDATA_FORMAT", "The application binding data format is invalid") +STATUS_SXS_ASSEMBLY_NOT_FOUND = NtStatusException.register_ntstatus(0xc0150004, "STATUS_SXS_ASSEMBLY_NOT_FOUND", "The referenced assembly is not installed on the system") +STATUS_SXS_MANIFEST_FORMAT_ERROR = NtStatusException.register_ntstatus(0xc0150005, "STATUS_SXS_MANIFEST_FORMAT_ERROR", "The manifest file does not begin with the required tag and format information") +STATUS_SXS_MANIFEST_PARSE_ERROR = NtStatusException.register_ntstatus(0xc0150006, "STATUS_SXS_MANIFEST_PARSE_ERROR", "The manifest file contains one or more syntax errors") +STATUS_SXS_ACTIVATION_CONTEXT_DISABLED = NtStatusException.register_ntstatus(0xc0150007, "STATUS_SXS_ACTIVATION_CONTEXT_DISABLED", "The application attempted to activate a disabled activation context") +STATUS_SXS_KEY_NOT_FOUND = NtStatusException.register_ntstatus(0xc0150008, "STATUS_SXS_KEY_NOT_FOUND", "The requested lookup key was not found in any active activation context") +STATUS_SXS_VERSION_CONFLICT = NtStatusException.register_ntstatus(0xc0150009, "STATUS_SXS_VERSION_CONFLICT", "A component version required by the application conflicts with another component version that is already active") +STATUS_SXS_WRONG_SECTION_TYPE = NtStatusException.register_ntstatus(0xc015000a, "STATUS_SXS_WRONG_SECTION_TYPE", "The type requested activation context section does not match the query API used") +STATUS_SXS_THREAD_QUERIES_DISABLED = NtStatusException.register_ntstatus(0xc015000b, "STATUS_SXS_THREAD_QUERIES_DISABLED", "Lack of system resources has required isolated activation to be disabled for the current thread of execution") +STATUS_SXS_ASSEMBLY_MISSING = NtStatusException.register_ntstatus(0xc015000c, "STATUS_SXS_ASSEMBLY_MISSING", "The referenced assembly could not be found") +STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET = NtStatusException.register_ntstatus(0xc015000e, "STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET", "An attempt to set the process default activation context failed because the process default activation context was already set") +STATUS_SXS_EARLY_DEACTIVATION = NtStatusException.register_ntstatus(0xc015000f, "STATUS_SXS_EARLY_DEACTIVATION", "The activation context being deactivated is not the most recently activated one") +STATUS_SXS_INVALID_DEACTIVATION = NtStatusException.register_ntstatus(0xc0150010, "STATUS_SXS_INVALID_DEACTIVATION", "The activation context being deactivated is not active for the current thread of execution") +STATUS_SXS_MULTIPLE_DEACTIVATION = NtStatusException.register_ntstatus(0xc0150011, "STATUS_SXS_MULTIPLE_DEACTIVATION", "The activation context being deactivated has already been deactivated") +STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY = NtStatusException.register_ntstatus(0xc0150012, "STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY", "The activation context of the system default assembly could not be generated") +STATUS_SXS_PROCESS_TERMINATION_REQUESTED = NtStatusException.register_ntstatus(0xc0150013, "STATUS_SXS_PROCESS_TERMINATION_REQUESTED", "A component used by the isolation facility has requested that the process be terminated") +STATUS_SXS_CORRUPT_ACTIVATION_STACK = NtStatusException.register_ntstatus(0xc0150014, "STATUS_SXS_CORRUPT_ACTIVATION_STACK", "The activation context activation stack for the running thread of execution is corrupt") +STATUS_SXS_CORRUPTION = NtStatusException.register_ntstatus(0xc0150015, "STATUS_SXS_CORRUPTION", "The application isolation metadata for this process or thread has become corrupt") +STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE = NtStatusException.register_ntstatus(0xc0150016, "STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE", "The value of an attribute in an identity is not within the legal range") +STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME = NtStatusException.register_ntstatus(0xc0150017, "STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME", "The name of an attribute in an identity is not within the legal range") +STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE = NtStatusException.register_ntstatus(0xc0150018, "STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE", "An identity contains two definitions for the same attribute") +STATUS_SXS_IDENTITY_PARSE_ERROR = NtStatusException.register_ntstatus(0xc0150019, "STATUS_SXS_IDENTITY_PARSE_ERROR", "The identity string is malformed. This may be due to a trailing comma, more than two unnamed attributes, a missing attribute name, or a missing attribute value") +STATUS_SXS_COMPONENT_STORE_CORRUPT = NtStatusException.register_ntstatus(0xc015001a, "STATUS_SXS_COMPONENT_STORE_CORRUPT", "The component store has become corrupted") +STATUS_SXS_FILE_HASH_MISMATCH = NtStatusException.register_ntstatus(0xc015001b, "STATUS_SXS_FILE_HASH_MISMATCH", "A component's file does not match the verification information present in the component manifest") +STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT = NtStatusException.register_ntstatus(0xc015001c, "STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT", "The identities of the manifests are identical, but their contents are different") +STATUS_SXS_IDENTITIES_DIFFERENT = NtStatusException.register_ntstatus(0xc015001d, "STATUS_SXS_IDENTITIES_DIFFERENT", "The component identities are different") +STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT = NtStatusException.register_ntstatus(0xc015001e, "STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT", "The assembly is not a deployment") +STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY = NtStatusException.register_ntstatus(0xc015001f, "STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY", "The file is not a part of the assembly") +STATUS_ADVANCED_INSTALLER_FAILED = NtStatusException.register_ntstatus(0xc0150020, "STATUS_ADVANCED_INSTALLER_FAILED", "An advanced installer failed during setup or servicing") +STATUS_XML_ENCODING_MISMATCH = NtStatusException.register_ntstatus(0xc0150021, "STATUS_XML_ENCODING_MISMATCH", "The character encoding in the XML declaration did not match the encoding used in the document") +STATUS_SXS_MANIFEST_TOO_BIG = NtStatusException.register_ntstatus(0xc0150022, "STATUS_SXS_MANIFEST_TOO_BIG", "The size of the manifest exceeds the maximum allowed") +STATUS_SXS_SETTING_NOT_REGISTERED = NtStatusException.register_ntstatus(0xc0150023, "STATUS_SXS_SETTING_NOT_REGISTERED", "The setting is not registered") +STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE = NtStatusException.register_ntstatus(0xc0150024, "STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE", "One or more required transaction members are not present") +STATUS_SMI_PRIMITIVE_INSTALLER_FAILED = NtStatusException.register_ntstatus(0xc0150025, "STATUS_SMI_PRIMITIVE_INSTALLER_FAILED", "The SMI primitive installer failed during setup or servicing") +STATUS_GENERIC_COMMAND_FAILED = NtStatusException.register_ntstatus(0xc0150026, "STATUS_GENERIC_COMMAND_FAILED", "A generic command executable returned a result that indicates failure") +STATUS_SXS_FILE_HASH_MISSING = NtStatusException.register_ntstatus(0xc0150027, "STATUS_SXS_FILE_HASH_MISSING", "A component is missing file verification information in its manifest") +STATUS_TRANSACTIONAL_CONFLICT = NtStatusException.register_ntstatus(0xc0190001, "STATUS_TRANSACTIONAL_CONFLICT", "The function attempted to use a name that is reserved for use by another transaction") +STATUS_INVALID_TRANSACTION = NtStatusException.register_ntstatus(0xc0190002, "STATUS_INVALID_TRANSACTION", "The transaction handle associated with this operation is invalid") +STATUS_TRANSACTION_NOT_ACTIVE = NtStatusException.register_ntstatus(0xc0190003, "STATUS_TRANSACTION_NOT_ACTIVE", "The requested operation was made in the context of a transaction that is no longer active") +STATUS_TM_INITIALIZATION_FAILED = NtStatusException.register_ntstatus(0xc0190004, "STATUS_TM_INITIALIZATION_FAILED", "The transaction manager was unable to be successfully initialized. Transacted operations are not supported") +STATUS_RM_NOT_ACTIVE = NtStatusException.register_ntstatus(0xc0190005, "STATUS_RM_NOT_ACTIVE", "Transaction support within the specified file system resource manager was not started or was shut down due to an error") +STATUS_RM_METADATA_CORRUPT = NtStatusException.register_ntstatus(0xc0190006, "STATUS_RM_METADATA_CORRUPT", "The metadata of the resource manager has been corrupted. The resource manager will not function") +STATUS_TRANSACTION_NOT_JOINED = NtStatusException.register_ntstatus(0xc0190007, "STATUS_TRANSACTION_NOT_JOINED", "The resource manager attempted to prepare a transaction that it has not successfully joined") +STATUS_DIRECTORY_NOT_RM = NtStatusException.register_ntstatus(0xc0190008, "STATUS_DIRECTORY_NOT_RM", "The specified directory does not contain a file system resource manager") +STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE = NtStatusException.register_ntstatus(0xc019000a, "STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE", "The remote server or share does not support transacted file operations") +STATUS_LOG_RESIZE_INVALID_SIZE = NtStatusException.register_ntstatus(0xc019000b, "STATUS_LOG_RESIZE_INVALID_SIZE", "The requested log size for the file system resource manager is invalid") +STATUS_REMOTE_FILE_VERSION_MISMATCH = NtStatusException.register_ntstatus(0xc019000c, "STATUS_REMOTE_FILE_VERSION_MISMATCH", "The remote server sent mismatching version number or Fid for a file opened with transactions") +STATUS_CRM_PROTOCOL_ALREADY_EXISTS = NtStatusException.register_ntstatus(0xc019000f, "STATUS_CRM_PROTOCOL_ALREADY_EXISTS", "The resource manager tried to register a protocol that already exists") +STATUS_TRANSACTION_PROPAGATION_FAILED = NtStatusException.register_ntstatus(0xc0190010, "STATUS_TRANSACTION_PROPAGATION_FAILED", "The attempt to propagate the transaction failed") +STATUS_CRM_PROTOCOL_NOT_FOUND = NtStatusException.register_ntstatus(0xc0190011, "STATUS_CRM_PROTOCOL_NOT_FOUND", "The requested propagation protocol was not registered as a CRM") +STATUS_TRANSACTION_SUPERIOR_EXISTS = NtStatusException.register_ntstatus(0xc0190012, "STATUS_TRANSACTION_SUPERIOR_EXISTS", "The transaction object already has a superior enlistment, and the caller attempted an operation that would have created a new superior. Only a single superior enlistment is allowed") +STATUS_TRANSACTION_REQUEST_NOT_VALID = NtStatusException.register_ntstatus(0xc0190013, "STATUS_TRANSACTION_REQUEST_NOT_VALID", "The requested operation is not valid on the transaction object in its current state") +STATUS_TRANSACTION_NOT_REQUESTED = NtStatusException.register_ntstatus(0xc0190014, "STATUS_TRANSACTION_NOT_REQUESTED", "The caller has called a response API, but the response is not expected because the transaction manager did not issue the corresponding request to the caller") +STATUS_TRANSACTION_ALREADY_ABORTED = NtStatusException.register_ntstatus(0xc0190015, "STATUS_TRANSACTION_ALREADY_ABORTED", "It is too late to perform the requested operation, because the transaction has already been aborted") +STATUS_TRANSACTION_ALREADY_COMMITTED = NtStatusException.register_ntstatus(0xc0190016, "STATUS_TRANSACTION_ALREADY_COMMITTED", "It is too late to perform the requested operation, because the transaction has already been committed") +STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER = NtStatusException.register_ntstatus(0xc0190017, "STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER", "The buffer passed in to NtPushTransaction or NtPullTransaction is not in a valid format") +STATUS_CURRENT_TRANSACTION_NOT_VALID = NtStatusException.register_ntstatus(0xc0190018, "STATUS_CURRENT_TRANSACTION_NOT_VALID", "The current transaction context associated with the thread is not a valid handle to a transaction object") +STATUS_LOG_GROWTH_FAILED = NtStatusException.register_ntstatus(0xc0190019, "STATUS_LOG_GROWTH_FAILED", "An attempt to create space in the transactional resource manager's log failed. The failure status has been recorded in the event log") +STATUS_OBJECT_NO_LONGER_EXISTS = NtStatusException.register_ntstatus(0xc0190021, "STATUS_OBJECT_NO_LONGER_EXISTS", "The object (file, stream, or link) that corresponds to the handle has been deleted by a transaction savepoint rollback") +STATUS_STREAM_MINIVERSION_NOT_FOUND = NtStatusException.register_ntstatus(0xc0190022, "STATUS_STREAM_MINIVERSION_NOT_FOUND", "The specified file miniversion was not found for this transacted file open") +STATUS_STREAM_MINIVERSION_NOT_VALID = NtStatusException.register_ntstatus(0xc0190023, "STATUS_STREAM_MINIVERSION_NOT_VALID", "The specified file miniversion was found but has been invalidated. The most likely cause is a transaction savepoint rollback") +STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION = NtStatusException.register_ntstatus(0xc0190024, "STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION", "A miniversion may be opened only in the context of the transaction that created it") +STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT = NtStatusException.register_ntstatus(0xc0190025, "STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT", "It is not possible to open a miniversion with modify access") +STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS = NtStatusException.register_ntstatus(0xc0190026, "STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS", "It is not possible to create any more miniversions for this stream") +STATUS_HANDLE_NO_LONGER_VALID = NtStatusException.register_ntstatus(0xc0190028, "STATUS_HANDLE_NO_LONGER_VALID", "The handle has been invalidated by a transaction. The most likely cause is the presence of memory mapping on a file or an open handle when the transaction ended or rolled back to savepoint") +STATUS_LOG_CORRUPTION_DETECTED = NtStatusException.register_ntstatus(0xc0190030, "STATUS_LOG_CORRUPTION_DETECTED", "The log data is corrupt") +STATUS_RM_DISCONNECTED = NtStatusException.register_ntstatus(0xc0190032, "STATUS_RM_DISCONNECTED", "The transaction outcome is unavailable because the resource manager responsible for it is disconnected") +STATUS_ENLISTMENT_NOT_SUPERIOR = NtStatusException.register_ntstatus(0xc0190033, "STATUS_ENLISTMENT_NOT_SUPERIOR", "The request was rejected because the enlistment in question is not a superior enlistment") +STATUS_FILE_IDENTITY_NOT_PERSISTENT = NtStatusException.register_ntstatus(0xc0190036, "STATUS_FILE_IDENTITY_NOT_PERSISTENT", "The file cannot be opened in a transaction because its identity depends on the outcome of an unresolved transaction") +STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY = NtStatusException.register_ntstatus(0xc0190037, "STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY", "The operation cannot be performed because another transaction is depending on this property not changing") +STATUS_CANT_CROSS_RM_BOUNDARY = NtStatusException.register_ntstatus(0xc0190038, "STATUS_CANT_CROSS_RM_BOUNDARY", "The operation would involve a single file with two transactional resource managers and is, therefore, not allowed") +STATUS_TXF_DIR_NOT_EMPTY = NtStatusException.register_ntstatus(0xc0190039, "STATUS_TXF_DIR_NOT_EMPTY", "The $Txf directory must be empty for this operation to succeed") +STATUS_INDOUBT_TRANSACTIONS_EXIST = NtStatusException.register_ntstatus(0xc019003a, "STATUS_INDOUBT_TRANSACTIONS_EXIST", "The operation would leave a transactional resource manager in an inconsistent state and is therefore not allowed") +STATUS_TM_VOLATILE = NtStatusException.register_ntstatus(0xc019003b, "STATUS_TM_VOLATILE", "The operation could not be completed because the transaction manager does not have a log") +STATUS_ROLLBACK_TIMER_EXPIRED = NtStatusException.register_ntstatus(0xc019003c, "STATUS_ROLLBACK_TIMER_EXPIRED", "A rollback could not be scheduled because a previously scheduled rollback has already executed or been queued for execution") +STATUS_TXF_ATTRIBUTE_CORRUPT = NtStatusException.register_ntstatus(0xc019003d, "STATUS_TXF_ATTRIBUTE_CORRUPT", "The transactional metadata attribute on the file or directory %hs is corrupt and unreadable") +STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION = NtStatusException.register_ntstatus(0xc019003e, "STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION", "The encryption operation could not be completed because a transaction is active") +STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED = NtStatusException.register_ntstatus(0xc019003f, "STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED", "This object is not allowed to be opened in a transaction") +STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE = NtStatusException.register_ntstatus(0xc0190040, "STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE", "Memory mapping (creating a mapped section) a remote file under a transaction is not supported") +STATUS_TRANSACTION_REQUIRED_PROMOTION = NtStatusException.register_ntstatus(0xc0190043, "STATUS_TRANSACTION_REQUIRED_PROMOTION", "Promotion was required to allow the resource manager to enlist, but the transaction was set to disallow it") +STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION = NtStatusException.register_ntstatus(0xc0190044, "STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION", "This file is open for modification in an unresolved transaction and may be opened for execute only by a transacted reader") +STATUS_TRANSACTIONS_NOT_FROZEN = NtStatusException.register_ntstatus(0xc0190045, "STATUS_TRANSACTIONS_NOT_FROZEN", "The request to thaw frozen transactions was ignored because transactions were not previously frozen") +STATUS_TRANSACTION_FREEZE_IN_PROGRESS = NtStatusException.register_ntstatus(0xc0190046, "STATUS_TRANSACTION_FREEZE_IN_PROGRESS", "Transactions cannot be frozen because a freeze is already in progress") +STATUS_NOT_SNAPSHOT_VOLUME = NtStatusException.register_ntstatus(0xc0190047, "STATUS_NOT_SNAPSHOT_VOLUME", "The target volume is not a snapshot volume. This operation is valid only on a volume mounted as a snapshot") +STATUS_NO_SAVEPOINT_WITH_OPEN_FILES = NtStatusException.register_ntstatus(0xc0190048, "STATUS_NO_SAVEPOINT_WITH_OPEN_FILES", "The savepoint operation failed because files are open on the transaction, which is not permitted") +STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION = NtStatusException.register_ntstatus(0xc0190049, "STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION", "The sparse operation could not be completed because a transaction is active on the file") +STATUS_TM_IDENTITY_MISMATCH = NtStatusException.register_ntstatus(0xc019004a, "STATUS_TM_IDENTITY_MISMATCH", "The call to create a transaction manager object failed because the Tm Identity that is stored in the log file does not match the Tm Identity that was passed in as an argument") +STATUS_FLOATED_SECTION = NtStatusException.register_ntstatus(0xc019004b, "STATUS_FLOATED_SECTION", "I/O was attempted on a section object that has been floated as a result of a transaction ending. There is no valid data") +STATUS_CANNOT_ACCEPT_TRANSACTED_WORK = NtStatusException.register_ntstatus(0xc019004c, "STATUS_CANNOT_ACCEPT_TRANSACTED_WORK", "The transactional resource manager cannot currently accept transacted work due to a transient condition, such as low resources") +STATUS_CANNOT_ABORT_TRANSACTIONS = NtStatusException.register_ntstatus(0xc019004d, "STATUS_CANNOT_ABORT_TRANSACTIONS", "The transactional resource manager had too many transactions outstanding that could not be aborted. The transactional resource manager has been shut down") +STATUS_TRANSACTION_NOT_FOUND = NtStatusException.register_ntstatus(0xc019004e, "STATUS_TRANSACTION_NOT_FOUND", "The specified transaction was unable to be opened because it was not found") +STATUS_RESOURCEMANAGER_NOT_FOUND = NtStatusException.register_ntstatus(0xc019004f, "STATUS_RESOURCEMANAGER_NOT_FOUND", "The specified resource manager was unable to be opened because it was not found") +STATUS_ENLISTMENT_NOT_FOUND = NtStatusException.register_ntstatus(0xc0190050, "STATUS_ENLISTMENT_NOT_FOUND", "The specified enlistment was unable to be opened because it was not found") +STATUS_TRANSACTIONMANAGER_NOT_FOUND = NtStatusException.register_ntstatus(0xc0190051, "STATUS_TRANSACTIONMANAGER_NOT_FOUND", "The specified transaction manager was unable to be opened because it was not found") +STATUS_TRANSACTIONMANAGER_NOT_ONLINE = NtStatusException.register_ntstatus(0xc0190052, "STATUS_TRANSACTIONMANAGER_NOT_ONLINE", "The specified resource manager was unable to create an enlistment because its associated transaction manager is not online") +STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION = NtStatusException.register_ntstatus(0xc0190053, "STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION", "The specified transaction manager was unable to create the objects contained in its log file in the Ob namespace. Therefore, the transaction manager was unable to recover") +STATUS_TRANSACTION_NOT_ROOT = NtStatusException.register_ntstatus(0xc0190054, "STATUS_TRANSACTION_NOT_ROOT", "The call to create a superior enlistment on this transaction object could not be completed because the transaction object specified for the enlistment is a subordinate branch of the transaction. Only the root of the transaction can be enlisted as a superior") +STATUS_TRANSACTION_OBJECT_EXPIRED = NtStatusException.register_ntstatus(0xc0190055, "STATUS_TRANSACTION_OBJECT_EXPIRED", "Because the associated transaction manager or resource manager has been closed, the handle is no longer valid") +STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION = NtStatusException.register_ntstatus(0xc0190056, "STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION", "The compression operation could not be completed because a transaction is active on the file") +STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED = NtStatusException.register_ntstatus(0xc0190057, "STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED", "The specified operation could not be performed on this superior enlistment because the enlistment was not created with the corresponding completion response in the NotificationMask") +STATUS_TRANSACTION_RECORD_TOO_LONG = NtStatusException.register_ntstatus(0xc0190058, "STATUS_TRANSACTION_RECORD_TOO_LONG", "The specified operation could not be performed because the record to be logged was too long. This can occur because either there are too many enlistments on this transaction or the combined RecoveryInformation being logged on behalf of those enlistments is too long") +STATUS_NO_LINK_TRACKING_IN_TRANSACTION = NtStatusException.register_ntstatus(0xc0190059, "STATUS_NO_LINK_TRACKING_IN_TRANSACTION", "The link-tracking operation could not be completed because a transaction is active") +STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION = NtStatusException.register_ntstatus(0xc019005a, "STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION", "This operation cannot be performed in a transaction") +STATUS_TRANSACTION_INTEGRITY_VIOLATED = NtStatusException.register_ntstatus(0xc019005b, "STATUS_TRANSACTION_INTEGRITY_VIOLATED", "The kernel transaction manager had to abort or forget the transaction because it blocked forward progress") +STATUS_EXPIRED_HANDLE = NtStatusException.register_ntstatus(0xc0190060, "STATUS_EXPIRED_HANDLE", "The handle is no longer properly associated with its transaction.? It may have been opened in a transactional resource manager that was subsequently forced to restart.? Please close the handle and open a new one") +STATUS_TRANSACTION_NOT_ENLISTED = NtStatusException.register_ntstatus(0xc0190061, "STATUS_TRANSACTION_NOT_ENLISTED", "The specified operation could not be performed because the resource manager is not enlisted in the transaction") +STATUS_LOG_SECTOR_INVALID = NtStatusException.register_ntstatus(0xc01a0001, "STATUS_LOG_SECTOR_INVALID", "The log service found an invalid log sector") +STATUS_LOG_SECTOR_PARITY_INVALID = NtStatusException.register_ntstatus(0xc01a0002, "STATUS_LOG_SECTOR_PARITY_INVALID", "The log service encountered a log sector with invalid block parity") +STATUS_LOG_SECTOR_REMAPPED = NtStatusException.register_ntstatus(0xc01a0003, "STATUS_LOG_SECTOR_REMAPPED", "The log service encountered a remapped log sector") +STATUS_LOG_BLOCK_INCOMPLETE = NtStatusException.register_ntstatus(0xc01a0004, "STATUS_LOG_BLOCK_INCOMPLETE", "The log service encountered a partial or incomplete log block") +STATUS_LOG_INVALID_RANGE = NtStatusException.register_ntstatus(0xc01a0005, "STATUS_LOG_INVALID_RANGE", "The log service encountered an attempt to access data outside the active log range") +STATUS_LOG_BLOCKS_EXHAUSTED = NtStatusException.register_ntstatus(0xc01a0006, "STATUS_LOG_BLOCKS_EXHAUSTED", "The log service user-log marshaling buffers are exhausted") +STATUS_LOG_READ_CONTEXT_INVALID = NtStatusException.register_ntstatus(0xc01a0007, "STATUS_LOG_READ_CONTEXT_INVALID", "The log service encountered an attempt to read from a marshaling area with an invalid read context") +STATUS_LOG_RESTART_INVALID = NtStatusException.register_ntstatus(0xc01a0008, "STATUS_LOG_RESTART_INVALID", "The log service encountered an invalid log restart area") +STATUS_LOG_BLOCK_VERSION = NtStatusException.register_ntstatus(0xc01a0009, "STATUS_LOG_BLOCK_VERSION", "The log service encountered an invalid log block version") +STATUS_LOG_BLOCK_INVALID = NtStatusException.register_ntstatus(0xc01a000a, "STATUS_LOG_BLOCK_INVALID", "The log service encountered an invalid log block") +STATUS_LOG_READ_MODE_INVALID = NtStatusException.register_ntstatus(0xc01a000b, "STATUS_LOG_READ_MODE_INVALID", "The log service encountered an attempt to read the log with an invalid read mode") +STATUS_LOG_METADATA_CORRUPT = NtStatusException.register_ntstatus(0xc01a000d, "STATUS_LOG_METADATA_CORRUPT", "The log service encountered a corrupted metadata file") +STATUS_LOG_METADATA_INVALID = NtStatusException.register_ntstatus(0xc01a000e, "STATUS_LOG_METADATA_INVALID", "The log service encountered a metadata file that could not be created by the log file system") +STATUS_LOG_METADATA_INCONSISTENT = NtStatusException.register_ntstatus(0xc01a000f, "STATUS_LOG_METADATA_INCONSISTENT", "The log service encountered a metadata file with inconsistent data") +STATUS_LOG_RESERVATION_INVALID = NtStatusException.register_ntstatus(0xc01a0010, "STATUS_LOG_RESERVATION_INVALID", "The log service encountered an attempt to erroneously allocate or dispose reservation space") +STATUS_LOG_CANT_DELETE = NtStatusException.register_ntstatus(0xc01a0011, "STATUS_LOG_CANT_DELETE", "The log service cannot delete the log file or the file system container") +STATUS_LOG_CONTAINER_LIMIT_EXCEEDED = NtStatusException.register_ntstatus(0xc01a0012, "STATUS_LOG_CONTAINER_LIMIT_EXCEEDED", "The log service has reached the maximum allowable containers allocated to a log file") +STATUS_LOG_START_OF_LOG = NtStatusException.register_ntstatus(0xc01a0013, "STATUS_LOG_START_OF_LOG", "The log service has attempted to read or write backward past the start of the log") +STATUS_LOG_POLICY_ALREADY_INSTALLED = NtStatusException.register_ntstatus(0xc01a0014, "STATUS_LOG_POLICY_ALREADY_INSTALLED", "The log policy could not be installed because a policy of the same type is already present") +STATUS_LOG_POLICY_NOT_INSTALLED = NtStatusException.register_ntstatus(0xc01a0015, "STATUS_LOG_POLICY_NOT_INSTALLED", "The log policy in question was not installed at the time of the request") +STATUS_LOG_POLICY_INVALID = NtStatusException.register_ntstatus(0xc01a0016, "STATUS_LOG_POLICY_INVALID", "The installed set of policies on the log is invalid") +STATUS_LOG_POLICY_CONFLICT = NtStatusException.register_ntstatus(0xc01a0017, "STATUS_LOG_POLICY_CONFLICT", "A policy on the log in question prevented the operation from completing") +STATUS_LOG_PINNED_ARCHIVE_TAIL = NtStatusException.register_ntstatus(0xc01a0018, "STATUS_LOG_PINNED_ARCHIVE_TAIL", "The log space cannot be reclaimed because the log is pinned by the archive tail") +STATUS_LOG_RECORD_NONEXISTENT = NtStatusException.register_ntstatus(0xc01a0019, "STATUS_LOG_RECORD_NONEXISTENT", "The log record is not a record in the log file") +STATUS_LOG_RECORDS_RESERVED_INVALID = NtStatusException.register_ntstatus(0xc01a001a, "STATUS_LOG_RECORDS_RESERVED_INVALID", "The number of reserved log records or the adjustment of the number of reserved log records is invalid") +STATUS_LOG_SPACE_RESERVED_INVALID = NtStatusException.register_ntstatus(0xc01a001b, "STATUS_LOG_SPACE_RESERVED_INVALID", "The reserved log space or the adjustment of the log space is invalid") +STATUS_LOG_TAIL_INVALID = NtStatusException.register_ntstatus(0xc01a001c, "STATUS_LOG_TAIL_INVALID", "A new or existing archive tail or the base of the active log is invalid") +STATUS_LOG_FULL = NtStatusException.register_ntstatus(0xc01a001d, "STATUS_LOG_FULL", "The log space is exhausted") +STATUS_LOG_MULTIPLEXED = NtStatusException.register_ntstatus(0xc01a001e, "STATUS_LOG_MULTIPLEXED", "The log is multiplexed; no direct writes to the physical log are allowed") +STATUS_LOG_DEDICATED = NtStatusException.register_ntstatus(0xc01a001f, "STATUS_LOG_DEDICATED", "The operation failed because the log is dedicated") +STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS = NtStatusException.register_ntstatus(0xc01a0020, "STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS", "The operation requires an archive context") +STATUS_LOG_ARCHIVE_IN_PROGRESS = NtStatusException.register_ntstatus(0xc01a0021, "STATUS_LOG_ARCHIVE_IN_PROGRESS", "Log archival is in progress") +STATUS_LOG_EPHEMERAL = NtStatusException.register_ntstatus(0xc01a0022, "STATUS_LOG_EPHEMERAL", "The operation requires a nonephemeral log, but the log is ephemeral") +STATUS_LOG_NOT_ENOUGH_CONTAINERS = NtStatusException.register_ntstatus(0xc01a0023, "STATUS_LOG_NOT_ENOUGH_CONTAINERS", "The log must have at least two containers before it can be read from or written to") +STATUS_LOG_CLIENT_ALREADY_REGISTERED = NtStatusException.register_ntstatus(0xc01a0024, "STATUS_LOG_CLIENT_ALREADY_REGISTERED", "A log client has already registered on the stream") +STATUS_LOG_CLIENT_NOT_REGISTERED = NtStatusException.register_ntstatus(0xc01a0025, "STATUS_LOG_CLIENT_NOT_REGISTERED", "A log client has not been registered on the stream") +STATUS_LOG_FULL_HANDLER_IN_PROGRESS = NtStatusException.register_ntstatus(0xc01a0026, "STATUS_LOG_FULL_HANDLER_IN_PROGRESS", "A request has already been made to handle the log full condition") +STATUS_LOG_CONTAINER_READ_FAILED = NtStatusException.register_ntstatus(0xc01a0027, "STATUS_LOG_CONTAINER_READ_FAILED", "The log service encountered an error when attempting to read from a log container") +STATUS_LOG_CONTAINER_WRITE_FAILED = NtStatusException.register_ntstatus(0xc01a0028, "STATUS_LOG_CONTAINER_WRITE_FAILED", "The log service encountered an error when attempting to write to a log container") +STATUS_LOG_CONTAINER_OPEN_FAILED = NtStatusException.register_ntstatus(0xc01a0029, "STATUS_LOG_CONTAINER_OPEN_FAILED", "The log service encountered an error when attempting to open a log container") +STATUS_LOG_CONTAINER_STATE_INVALID = NtStatusException.register_ntstatus(0xc01a002a, "STATUS_LOG_CONTAINER_STATE_INVALID", "The log service encountered an invalid container state when attempting a requested action") +STATUS_LOG_STATE_INVALID = NtStatusException.register_ntstatus(0xc01a002b, "STATUS_LOG_STATE_INVALID", "The log service is not in the correct state to perform a requested action") +STATUS_LOG_PINNED = NtStatusException.register_ntstatus(0xc01a002c, "STATUS_LOG_PINNED", "The log space cannot be reclaimed because the log is pinned") +STATUS_LOG_METADATA_FLUSH_FAILED = NtStatusException.register_ntstatus(0xc01a002d, "STATUS_LOG_METADATA_FLUSH_FAILED", "The log metadata flush failed") +STATUS_LOG_INCONSISTENT_SECURITY = NtStatusException.register_ntstatus(0xc01a002e, "STATUS_LOG_INCONSISTENT_SECURITY", "Security on the log and its containers is inconsistent") +STATUS_LOG_APPENDED_FLUSH_FAILED = NtStatusException.register_ntstatus(0xc01a002f, "STATUS_LOG_APPENDED_FLUSH_FAILED", "Records were appended to the log or reservation changes were made, but the log could not be flushed") +STATUS_LOG_PINNED_RESERVATION = NtStatusException.register_ntstatus(0xc01a0030, "STATUS_LOG_PINNED_RESERVATION", "The log is pinned due to reservation consuming most of the log space. Free some reserved records to make space available") +STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD = NtStatusException.register_ntstatus(0xc01b00ea, "STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD", "{Display Driver Stopped Responding} The %hs display driver has stopped working normally. Save your work and reboot the system to restore full display functionality. The next time you reboot the computer, a dialog box will allow you to upload data about this failure to Microsoft") +STATUS_FLT_NO_HANDLER_DEFINED = NtStatusException.register_ntstatus(0xc01c0001, "STATUS_FLT_NO_HANDLER_DEFINED", "A handler was not defined by the filter for this operation") +STATUS_FLT_CONTEXT_ALREADY_DEFINED = NtStatusException.register_ntstatus(0xc01c0002, "STATUS_FLT_CONTEXT_ALREADY_DEFINED", "A context is already defined for this object") +STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST = NtStatusException.register_ntstatus(0xc01c0003, "STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST", "Asynchronous requests are not valid for this operation") +STATUS_FLT_DISALLOW_FAST_IO = NtStatusException.register_ntstatus(0xc01c0004, "STATUS_FLT_DISALLOW_FAST_IO", "This is an internal error code used by the filter manager to determine if a fast I/O operation should be forced down the input/output request packet (IRP) path. Minifilters should never return this value") +STATUS_FLT_INVALID_NAME_REQUEST = NtStatusException.register_ntstatus(0xc01c0005, "STATUS_FLT_INVALID_NAME_REQUEST", "An invalid name request was made. The name requested cannot be retrieved at this time") +STATUS_FLT_NOT_SAFE_TO_POST_OPERATION = NtStatusException.register_ntstatus(0xc01c0006, "STATUS_FLT_NOT_SAFE_TO_POST_OPERATION", "Posting this operation to a worker thread for further processing is not safe at this time because it could lead to a system deadlock") +STATUS_FLT_NOT_INITIALIZED = NtStatusException.register_ntstatus(0xc01c0007, "STATUS_FLT_NOT_INITIALIZED", "The Filter Manager was not initialized when a filter tried to register. Make sure that the Filter Manager is loaded as a driver") +STATUS_FLT_FILTER_NOT_READY = NtStatusException.register_ntstatus(0xc01c0008, "STATUS_FLT_FILTER_NOT_READY", "The filter is not ready for attachment to volumes because it has not finished initializing (FltStartFiltering has not been called)") +STATUS_FLT_POST_OPERATION_CLEANUP = NtStatusException.register_ntstatus(0xc01c0009, "STATUS_FLT_POST_OPERATION_CLEANUP", "The filter must clean up any operation-specific context at this time because it is being removed from the system before the operation is completed by the lower drivers") +STATUS_FLT_INTERNAL_ERROR = NtStatusException.register_ntstatus(0xc01c000a, "STATUS_FLT_INTERNAL_ERROR", "The Filter Manager had an internal error from which it cannot recover; therefore, the operation has failed. This is usually the result of a filter returning an invalid value from a pre-operation callback") +STATUS_FLT_DELETING_OBJECT = NtStatusException.register_ntstatus(0xc01c000b, "STATUS_FLT_DELETING_OBJECT", "The object specified for this action is in the process of being deleted; therefore, the action requested cannot be completed at this time") +STATUS_FLT_MUST_BE_NONPAGED_POOL = NtStatusException.register_ntstatus(0xc01c000c, "STATUS_FLT_MUST_BE_NONPAGED_POOL", "A nonpaged pool must be used for this type of context") +STATUS_FLT_DUPLICATE_ENTRY = NtStatusException.register_ntstatus(0xc01c000d, "STATUS_FLT_DUPLICATE_ENTRY", "A duplicate handler definition has been provided for an operation") +STATUS_FLT_CBDQ_DISABLED = NtStatusException.register_ntstatus(0xc01c000e, "STATUS_FLT_CBDQ_DISABLED", "The callback data queue has been disabled") +STATUS_FLT_DO_NOT_ATTACH = NtStatusException.register_ntstatus(0xc01c000f, "STATUS_FLT_DO_NOT_ATTACH", "Do not attach the filter to the volume at this time") +STATUS_FLT_DO_NOT_DETACH = NtStatusException.register_ntstatus(0xc01c0010, "STATUS_FLT_DO_NOT_DETACH", "Do not detach the filter from the volume at this time") +STATUS_FLT_INSTANCE_ALTITUDE_COLLISION = NtStatusException.register_ntstatus(0xc01c0011, "STATUS_FLT_INSTANCE_ALTITUDE_COLLISION", "An instance already exists at this altitude on the volume specified") +STATUS_FLT_INSTANCE_NAME_COLLISION = NtStatusException.register_ntstatus(0xc01c0012, "STATUS_FLT_INSTANCE_NAME_COLLISION", "An instance already exists with this name on the volume specified") +STATUS_FLT_FILTER_NOT_FOUND = NtStatusException.register_ntstatus(0xc01c0013, "STATUS_FLT_FILTER_NOT_FOUND", "The system could not find the filter specified") +STATUS_FLT_VOLUME_NOT_FOUND = NtStatusException.register_ntstatus(0xc01c0014, "STATUS_FLT_VOLUME_NOT_FOUND", "The system could not find the volume specified") +STATUS_FLT_INSTANCE_NOT_FOUND = NtStatusException.register_ntstatus(0xc01c0015, "STATUS_FLT_INSTANCE_NOT_FOUND", "The system could not find the instance specified") +STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND = NtStatusException.register_ntstatus(0xc01c0016, "STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND", "No registered context allocation definition was found for the given request") +STATUS_FLT_INVALID_CONTEXT_REGISTRATION = NtStatusException.register_ntstatus(0xc01c0017, "STATUS_FLT_INVALID_CONTEXT_REGISTRATION", "An invalid parameter was specified during context registration") +STATUS_FLT_NAME_CACHE_MISS = NtStatusException.register_ntstatus(0xc01c0018, "STATUS_FLT_NAME_CACHE_MISS", "The name requested was not found in the Filter Manager name cache and could not be retrieved from the file system") +STATUS_FLT_NO_DEVICE_OBJECT = NtStatusException.register_ntstatus(0xc01c0019, "STATUS_FLT_NO_DEVICE_OBJECT", "The requested device object does not exist for the given volume") +STATUS_FLT_VOLUME_ALREADY_MOUNTED = NtStatusException.register_ntstatus(0xc01c001a, "STATUS_FLT_VOLUME_ALREADY_MOUNTED", "The specified volume is already mounted") +STATUS_FLT_ALREADY_ENLISTED = NtStatusException.register_ntstatus(0xc01c001b, "STATUS_FLT_ALREADY_ENLISTED", "The specified transaction context is already enlisted in a transaction") +STATUS_FLT_CONTEXT_ALREADY_LINKED = NtStatusException.register_ntstatus(0xc01c001c, "STATUS_FLT_CONTEXT_ALREADY_LINKED", "The specified context is already attached to another object") +STATUS_FLT_NO_WAITER_FOR_REPLY = NtStatusException.register_ntstatus(0xc01c0020, "STATUS_FLT_NO_WAITER_FOR_REPLY", "No waiter is present for the filter's reply to this message") +STATUS_MONITOR_NO_DESCRIPTOR = NtStatusException.register_ntstatus(0xc01d0001, "STATUS_MONITOR_NO_DESCRIPTOR", "A monitor descriptor could not be obtained") +STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT = NtStatusException.register_ntstatus(0xc01d0002, "STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT", "This release does not support the format of the obtained monitor descriptor") +STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM = NtStatusException.register_ntstatus(0xc01d0003, "STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM", "The checksum of the obtained monitor descriptor is invalid") +STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK = NtStatusException.register_ntstatus(0xc01d0004, "STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK", "The monitor descriptor contains an invalid standard timing block") +STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED = NtStatusException.register_ntstatus(0xc01d0005, "STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED", "WMI data-block registration failed for one of the MSMonitorClass WMI subclasses") +STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK = NtStatusException.register_ntstatus(0xc01d0006, "STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK", "The provided monitor descriptor block is either corrupted or does not contain the monitor's detailed serial number") +STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK = NtStatusException.register_ntstatus(0xc01d0007, "STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK", "The provided monitor descriptor block is either corrupted or does not contain the monitor's user-friendly name") +STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA = NtStatusException.register_ntstatus(0xc01d0008, "STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA", "There is no monitor descriptor data at the specified (offset or size) region") +STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK = NtStatusException.register_ntstatus(0xc01d0009, "STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK", "The monitor descriptor contains an invalid detailed timing block") +STATUS_MONITOR_INVALID_MANUFACTURE_DATE = NtStatusException.register_ntstatus(0xc01d000a, "STATUS_MONITOR_INVALID_MANUFACTURE_DATE", "Monitor descriptor contains invalid manufacture date") +STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER = NtStatusException.register_ntstatus(0xc01e0000, "STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER", "Exclusive mode ownership is needed to create an unmanaged primary allocation") +STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER = NtStatusException.register_ntstatus(0xc01e0001, "STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER", "The driver needs more DMA buffer space to complete the requested operation") +STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER = NtStatusException.register_ntstatus(0xc01e0002, "STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER", "The specified display adapter handle is invalid") +STATUS_GRAPHICS_ADAPTER_WAS_RESET = NtStatusException.register_ntstatus(0xc01e0003, "STATUS_GRAPHICS_ADAPTER_WAS_RESET", "The specified display adapter and all of its state have been reset") +STATUS_GRAPHICS_INVALID_DRIVER_MODEL = NtStatusException.register_ntstatus(0xc01e0004, "STATUS_GRAPHICS_INVALID_DRIVER_MODEL", "The driver stack does not match the expected driver model") +STATUS_GRAPHICS_PRESENT_MODE_CHANGED = NtStatusException.register_ntstatus(0xc01e0005, "STATUS_GRAPHICS_PRESENT_MODE_CHANGED", "Present happened but ended up into the changed desktop mode") +STATUS_GRAPHICS_PRESENT_OCCLUDED = NtStatusException.register_ntstatus(0xc01e0006, "STATUS_GRAPHICS_PRESENT_OCCLUDED", "Nothing to present due to desktop occlusion") +STATUS_GRAPHICS_PRESENT_DENIED = NtStatusException.register_ntstatus(0xc01e0007, "STATUS_GRAPHICS_PRESENT_DENIED", "Not able to present due to denial of desktop access") +STATUS_GRAPHICS_CANNOTCOLORCONVERT = NtStatusException.register_ntstatus(0xc01e0008, "STATUS_GRAPHICS_CANNOTCOLORCONVERT", "Not able to present with color conversion") +STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED = NtStatusException.register_ntstatus(0xc01e000b, "STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED", "Present redirection is disabled (desktop windowing management subsystem is off)") +STATUS_GRAPHICS_PRESENT_UNOCCLUDED = NtStatusException.register_ntstatus(0xc01e000c, "STATUS_GRAPHICS_PRESENT_UNOCCLUDED", "Previous exclusive VidPn source owner has released its ownershi") +STATUS_GRAPHICS_NO_VIDEO_MEMORY = NtStatusException.register_ntstatus(0xc01e0100, "STATUS_GRAPHICS_NO_VIDEO_MEMORY", "Not enough video memory is available to complete the operation") +STATUS_GRAPHICS_CANT_LOCK_MEMORY = NtStatusException.register_ntstatus(0xc01e0101, "STATUS_GRAPHICS_CANT_LOCK_MEMORY", "Could not probe and lock the underlying memory of an allocation") +STATUS_GRAPHICS_ALLOCATION_BUSY = NtStatusException.register_ntstatus(0xc01e0102, "STATUS_GRAPHICS_ALLOCATION_BUSY", "The allocation is currently busy") +STATUS_GRAPHICS_TOO_MANY_REFERENCES = NtStatusException.register_ntstatus(0xc01e0103, "STATUS_GRAPHICS_TOO_MANY_REFERENCES", "An object being referenced has already reached the maximum reference count and cannot be referenced further") +STATUS_GRAPHICS_TRY_AGAIN_LATER = NtStatusException.register_ntstatus(0xc01e0104, "STATUS_GRAPHICS_TRY_AGAIN_LATER", "A problem could not be solved due to an existing condition. Try again later") +STATUS_GRAPHICS_TRY_AGAIN_NOW = NtStatusException.register_ntstatus(0xc01e0105, "STATUS_GRAPHICS_TRY_AGAIN_NOW", "A problem could not be solved due to an existing condition. Try again now") +STATUS_GRAPHICS_ALLOCATION_INVALID = NtStatusException.register_ntstatus(0xc01e0106, "STATUS_GRAPHICS_ALLOCATION_INVALID", "The allocation is invalid") +STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE = NtStatusException.register_ntstatus(0xc01e0107, "STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE", "No more unswizzling apertures are currently available") +STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED = NtStatusException.register_ntstatus(0xc01e0108, "STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED", "The current allocation cannot be unswizzled by an aperture") +STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION = NtStatusException.register_ntstatus(0xc01e0109, "STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION", "The request failed because a pinned allocation cannot be evicted") +STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE = NtStatusException.register_ntstatus(0xc01e0110, "STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE", "The allocation cannot be used from its current segment location for the specified operation") +STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION = NtStatusException.register_ntstatus(0xc01e0111, "STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION", "A locked allocation cannot be used in the current command buffer") +STATUS_GRAPHICS_ALLOCATION_CLOSED = NtStatusException.register_ntstatus(0xc01e0112, "STATUS_GRAPHICS_ALLOCATION_CLOSED", "The allocation being referenced has been closed permanently") +STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE = NtStatusException.register_ntstatus(0xc01e0113, "STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE", "An invalid allocation instance is being referenced") +STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE = NtStatusException.register_ntstatus(0xc01e0114, "STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE", "An invalid allocation handle is being referenced") +STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE = NtStatusException.register_ntstatus(0xc01e0115, "STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE", "The allocation being referenced does not belong to the current device") +STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST = NtStatusException.register_ntstatus(0xc01e0116, "STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST", "The specified allocation lost its content") +STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE = NtStatusException.register_ntstatus(0xc01e0200, "STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE", "A GPU exception was detected on the given device. The device cannot be scheduled") +STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY = NtStatusException.register_ntstatus(0xc01e0300, "STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY", "The specified VidPN topology is invalid") +STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0301, "STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED", "The specified VidPN topology is valid but is not supported by this model of the display adapter") +STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0302, "STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED", "The specified VidPN topology is valid but is not currently supported by the display adapter due to allocation of its resources") +STATUS_GRAPHICS_INVALID_VIDPN = NtStatusException.register_ntstatus(0xc01e0303, "STATUS_GRAPHICS_INVALID_VIDPN", "The specified VidPN handle is invalid") +STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE = NtStatusException.register_ntstatus(0xc01e0304, "STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE", "The specified video present source is invalid") +STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET = NtStatusException.register_ntstatus(0xc01e0305, "STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET", "The specified video present target is invalid") +STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0306, "STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED", "The specified VidPN modality is not supported (for example, at least two of the pinned modes are not co-functional)") +STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET = NtStatusException.register_ntstatus(0xc01e0308, "STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET", "The specified VidPN source mode set is invalid") +STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET = NtStatusException.register_ntstatus(0xc01e0309, "STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET", "The specified VidPN target mode set is invalid") +STATUS_GRAPHICS_INVALID_FREQUENCY = NtStatusException.register_ntstatus(0xc01e030a, "STATUS_GRAPHICS_INVALID_FREQUENCY", "The specified video signal frequency is invalid") +STATUS_GRAPHICS_INVALID_ACTIVE_REGION = NtStatusException.register_ntstatus(0xc01e030b, "STATUS_GRAPHICS_INVALID_ACTIVE_REGION", "The specified video signal active region is invalid") +STATUS_GRAPHICS_INVALID_TOTAL_REGION = NtStatusException.register_ntstatus(0xc01e030c, "STATUS_GRAPHICS_INVALID_TOTAL_REGION", "The specified video signal total region is invalid") +STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE = NtStatusException.register_ntstatus(0xc01e0310, "STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE", "The specified video present source mode is invalid") +STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE = NtStatusException.register_ntstatus(0xc01e0311, "STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE", "The specified video present target mode is invalid") +STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET = NtStatusException.register_ntstatus(0xc01e0312, "STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET", "The pinned mode must remain in the set on the VidPN's co-functional modality enumeration") +STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY = NtStatusException.register_ntstatus(0xc01e0313, "STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY", "The specified video present path is already in the VidPN's topology") +STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET = NtStatusException.register_ntstatus(0xc01e0314, "STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET", "The specified mode is already in the mode set") +STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET = NtStatusException.register_ntstatus(0xc01e0315, "STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET", "The specified video present source set is invalid") +STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET = NtStatusException.register_ntstatus(0xc01e0316, "STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET", "The specified video present target set is invalid") +STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET = NtStatusException.register_ntstatus(0xc01e0317, "STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET", "The specified video present source is already in the video present source set") +STATUS_GRAPHICS_TARGET_ALREADY_IN_SET = NtStatusException.register_ntstatus(0xc01e0318, "STATUS_GRAPHICS_TARGET_ALREADY_IN_SET", "The specified video present target is already in the video present target set") +STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH = NtStatusException.register_ntstatus(0xc01e0319, "STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH", "The specified VidPN present path is invalid") +STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY = NtStatusException.register_ntstatus(0xc01e031a, "STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY", "The miniport has no recommendation for augmenting the specified VidPN's topology") +STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET = NtStatusException.register_ntstatus(0xc01e031b, "STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET", "The specified monitor frequency range set is invalid") +STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE = NtStatusException.register_ntstatus(0xc01e031c, "STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE", "The specified monitor frequency range is invalid") +STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET = NtStatusException.register_ntstatus(0xc01e031d, "STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET", "The specified frequency range is not in the specified monitor frequency range set") +STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET = NtStatusException.register_ntstatus(0xc01e031f, "STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET", "The specified frequency range is already in the specified monitor frequency range set") +STATUS_GRAPHICS_STALE_MODESET = NtStatusException.register_ntstatus(0xc01e0320, "STATUS_GRAPHICS_STALE_MODESET", "The specified mode set is stale. Reacquire the new mode set") +STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET = NtStatusException.register_ntstatus(0xc01e0321, "STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET", "The specified monitor source mode set is invalid") +STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE = NtStatusException.register_ntstatus(0xc01e0322, "STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE", "The specified monitor source mode is invalid") +STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN = NtStatusException.register_ntstatus(0xc01e0323, "STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN", "The miniport does not have a recommendation regarding the request to provide a functional VidPN given the current display adapter configuration") +STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE = NtStatusException.register_ntstatus(0xc01e0324, "STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE", "The ID of the specified mode is being used by another mode in the set") +STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION = NtStatusException.register_ntstatus(0xc01e0325, "STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION", "The system failed to determine a mode that is supported by both the display adapter and the monitor connected to it") +STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES = NtStatusException.register_ntstatus(0xc01e0326, "STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES", "The number of video present targets must be greater than or equal to the number of video present sources") +STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY = NtStatusException.register_ntstatus(0xc01e0327, "STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY", "The specified present path is not in the VidPN's topology") +STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE = NtStatusException.register_ntstatus(0xc01e0328, "STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE", "The display adapter must have at least one video present source") +STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET = NtStatusException.register_ntstatus(0xc01e0329, "STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET", "The display adapter must have at least one video present target") +STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET = NtStatusException.register_ntstatus(0xc01e032a, "STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET", "The specified monitor descriptor set is invalid") +STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR = NtStatusException.register_ntstatus(0xc01e032b, "STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR", "The specified monitor descriptor is invalid") +STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET = NtStatusException.register_ntstatus(0xc01e032c, "STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET", "The specified descriptor is not in the specified monitor descriptor set") +STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET = NtStatusException.register_ntstatus(0xc01e032d, "STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET", "The specified descriptor is already in the specified monitor descriptor set") +STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE = NtStatusException.register_ntstatus(0xc01e032e, "STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE", "The ID of the specified monitor descriptor is being used by another descriptor in the set") +STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE = NtStatusException.register_ntstatus(0xc01e032f, "STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE", "The specified video present target subset type is invalid") +STATUS_GRAPHICS_RESOURCES_NOT_RELATED = NtStatusException.register_ntstatus(0xc01e0330, "STATUS_GRAPHICS_RESOURCES_NOT_RELATED", "Two or more of the specified resources are not related to each other, as defined by the interface semantics") +STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE = NtStatusException.register_ntstatus(0xc01e0331, "STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE", "The ID of the specified video present source is being used by another source in the set") +STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE = NtStatusException.register_ntstatus(0xc01e0332, "STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE", "The ID of the specified video present target is being used by another target in the set") +STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET = NtStatusException.register_ntstatus(0xc01e0333, "STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET", "The specified VidPN source cannot be used because there is no available VidPN target to connect it to") +STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER = NtStatusException.register_ntstatus(0xc01e0334, "STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER", "The newly arrived monitor could not be associated with a display adapter") +STATUS_GRAPHICS_NO_VIDPNMGR = NtStatusException.register_ntstatus(0xc01e0335, "STATUS_GRAPHICS_NO_VIDPNMGR", "The particular display adapter does not have an associated VidPN manager") +STATUS_GRAPHICS_NO_ACTIVE_VIDPN = NtStatusException.register_ntstatus(0xc01e0336, "STATUS_GRAPHICS_NO_ACTIVE_VIDPN", "The VidPN manager of the particular display adapter does not have an active VidPN") +STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY = NtStatusException.register_ntstatus(0xc01e0337, "STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY", "The specified VidPN topology is stale; obtain the new topology") +STATUS_GRAPHICS_MONITOR_NOT_CONNECTED = NtStatusException.register_ntstatus(0xc01e0338, "STATUS_GRAPHICS_MONITOR_NOT_CONNECTED", "No monitor is connected on the specified video present target") +STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY = NtStatusException.register_ntstatus(0xc01e0339, "STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY", "The specified source is not part of the specified VidPN's topology") +STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE = NtStatusException.register_ntstatus(0xc01e033a, "STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE", "The specified primary surface size is invalid") +STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE = NtStatusException.register_ntstatus(0xc01e033b, "STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE", "The specified visible region size is invalid") +STATUS_GRAPHICS_INVALID_STRIDE = NtStatusException.register_ntstatus(0xc01e033c, "STATUS_GRAPHICS_INVALID_STRIDE", "The specified stride is invalid") +STATUS_GRAPHICS_INVALID_PIXELFORMAT = NtStatusException.register_ntstatus(0xc01e033d, "STATUS_GRAPHICS_INVALID_PIXELFORMAT", "The specified pixel format is invalid") +STATUS_GRAPHICS_INVALID_COLORBASIS = NtStatusException.register_ntstatus(0xc01e033e, "STATUS_GRAPHICS_INVALID_COLORBASIS", "The specified color basis is invalid") +STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE = NtStatusException.register_ntstatus(0xc01e033f, "STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE", "The specified pixel value access mode is invalid") +STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY = NtStatusException.register_ntstatus(0xc01e0340, "STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY", "The specified target is not part of the specified VidPN's topology") +STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT = NtStatusException.register_ntstatus(0xc01e0341, "STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT", "Failed to acquire the display mode management interface") +STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE = NtStatusException.register_ntstatus(0xc01e0342, "STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE", "The specified VidPN source is already owned by a DMM client and cannot be used until that client releases it") +STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN = NtStatusException.register_ntstatus(0xc01e0343, "STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN", "The specified VidPN is active and cannot be accessed") +STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL = NtStatusException.register_ntstatus(0xc01e0344, "STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL", "The specified VidPN's present path importance ordinal is invalid") +STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION = NtStatusException.register_ntstatus(0xc01e0345, "STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION", "The specified VidPN's present path content geometry transformation is invalid") +STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0346, "STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED", "The specified content geometry transformation is not supported on the respective VidPN present path") +STATUS_GRAPHICS_INVALID_GAMMA_RAMP = NtStatusException.register_ntstatus(0xc01e0347, "STATUS_GRAPHICS_INVALID_GAMMA_RAMP", "The specified gamma ramp is invalid") +STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0348, "STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED", "The specified gamma ramp is not supported on the respective VidPN present path") +STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0349, "STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED", "Multisampling is not supported on the respective VidPN present path") +STATUS_GRAPHICS_MODE_NOT_IN_MODESET = NtStatusException.register_ntstatus(0xc01e034a, "STATUS_GRAPHICS_MODE_NOT_IN_MODESET", "The specified mode is not in the specified mode set") +STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON = NtStatusException.register_ntstatus(0xc01e034d, "STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON", "The specified VidPN topology recommendation reason is invalid") +STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE = NtStatusException.register_ntstatus(0xc01e034e, "STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE", "The specified VidPN present path content type is invalid") +STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE = NtStatusException.register_ntstatus(0xc01e034f, "STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE", "The specified VidPN present path copy protection type is invalid") +STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS = NtStatusException.register_ntstatus(0xc01e0350, "STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS", "Only one unassigned mode set can exist at any one time for a particular VidPN source or target") +STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING = NtStatusException.register_ntstatus(0xc01e0352, "STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING", "The specified scan line ordering type is invalid") +STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED = NtStatusException.register_ntstatus(0xc01e0353, "STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED", "The topology changes are not allowed for the specified VidPN") +STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS = NtStatusException.register_ntstatus(0xc01e0354, "STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS", "All available importance ordinals are being used in the specified topology") +STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT = NtStatusException.register_ntstatus(0xc01e0355, "STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT", "The specified primary surface has a different private-format attribute than the current primary surface") +STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM = NtStatusException.register_ntstatus(0xc01e0356, "STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM", "The specified mode-pruning algorithm is invalid") +STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN = NtStatusException.register_ntstatus(0xc01e0357, "STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN", "The specified monitor-capability origin is invalid") +STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT = NtStatusException.register_ntstatus(0xc01e0358, "STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT", "The specified monitor-frequency range constraint is invalid") +STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED = NtStatusException.register_ntstatus(0xc01e0359, "STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED", "The maximum supported number of present paths has been reached") +STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION = NtStatusException.register_ntstatus(0xc01e035a, "STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION", "The miniport requested that augmentation be canceled for the specified source of the specified VidPN's topology") +STATUS_GRAPHICS_INVALID_CLIENT_TYPE = NtStatusException.register_ntstatus(0xc01e035b, "STATUS_GRAPHICS_INVALID_CLIENT_TYPE", "The specified client type was not recognized") +STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET = NtStatusException.register_ntstatus(0xc01e035c, "STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET", "The client VidPN is not set on this adapter (for example, no user mode-initiated mode changes have taken place on this adapter)") +STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED = NtStatusException.register_ntstatus(0xc01e0400, "STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED", "The specified display adapter child device already has an external device connected to it") +STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0401, "STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED", "The display adapter child device does not support reporting a descriptor") +STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER = NtStatusException.register_ntstatus(0xc01e0430, "STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER", "The display adapter is not linked to any other adapters") +STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED = NtStatusException.register_ntstatus(0xc01e0431, "STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED", "The lead adapter in a linked configuration was not enumerated yet") +STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED = NtStatusException.register_ntstatus(0xc01e0432, "STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED", "Some chain adapters in a linked configuration have not yet been enumerated") +STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY = NtStatusException.register_ntstatus(0xc01e0433, "STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY", "The chain of linked adapters is not ready to start because of an unknown failure") +STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED = NtStatusException.register_ntstatus(0xc01e0434, "STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED", "An attempt was made to start a lead link display adapter when the chain links had not yet started") +STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON = NtStatusException.register_ntstatus(0xc01e0435, "STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON", "An attempt was made to turn on a lead link display adapter when the chain links were turned off") +STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE = NtStatusException.register_ntstatus(0xc01e0436, "STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE", "The adapter link was found in an inconsistent state. Not all adapters are in an expected PNP/power state") +STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER = NtStatusException.register_ntstatus(0xc01e0438, "STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER", "The driver trying to start is not the same as the driver for the posted display adapter") +STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED = NtStatusException.register_ntstatus(0xc01e043b, "STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED", "An operation is being attempted that requires the display adapter to be in a quiescent state") +STATUS_GRAPHICS_OPM_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0500, "STATUS_GRAPHICS_OPM_NOT_SUPPORTED", "The driver does not support OPM") +STATUS_GRAPHICS_COPP_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0501, "STATUS_GRAPHICS_COPP_NOT_SUPPORTED", "The driver does not support COPP") +STATUS_GRAPHICS_UAB_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0502, "STATUS_GRAPHICS_UAB_NOT_SUPPORTED", "The driver does not support UAB") +STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS = NtStatusException.register_ntstatus(0xc01e0503, "STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS", "The specified encrypted parameters are invalid") +STATUS_GRAPHICS_OPM_PARAMETER_ARRAY_TOO_SMALL = NtStatusException.register_ntstatus(0xc01e0504, "STATUS_GRAPHICS_OPM_PARAMETER_ARRAY_TOO_SMALL", "An array passed to a function cannot hold all of the data that the function wants to put in it") +STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST = NtStatusException.register_ntstatus(0xc01e0505, "STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST", "The GDI display device passed to this function does not have any active protected outputs") +STATUS_GRAPHICS_PVP_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME = NtStatusException.register_ntstatus(0xc01e0506, "STATUS_GRAPHICS_PVP_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME", "The PVP cannot find an actual GDI display device that corresponds to the passed-in GDI display device name") +STATUS_GRAPHICS_PVP_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP = NtStatusException.register_ntstatus(0xc01e0507, "STATUS_GRAPHICS_PVP_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP", "This function failed because the GDI display device passed to it was not attached to the Windows desktop") +STATUS_GRAPHICS_PVP_MIRRORING_DEVICES_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0508, "STATUS_GRAPHICS_PVP_MIRRORING_DEVICES_NOT_SUPPORTED", "The PVP does not support mirroring display devices because they do not have any protected outputs") +STATUS_GRAPHICS_OPM_INVALID_POINTER = NtStatusException.register_ntstatus(0xc01e050a, "STATUS_GRAPHICS_OPM_INVALID_POINTER", "The function failed because an invalid pointer parameter was passed to it. A pointer parameter is invalid if it is null, is not correctly aligned, or it points to an invalid address or a kernel mode address") +STATUS_GRAPHICS_OPM_INTERNAL_ERROR = NtStatusException.register_ntstatus(0xc01e050b, "STATUS_GRAPHICS_OPM_INTERNAL_ERROR", "An internal error caused an operation to fail") +STATUS_GRAPHICS_OPM_INVALID_HANDLE = NtStatusException.register_ntstatus(0xc01e050c, "STATUS_GRAPHICS_OPM_INVALID_HANDLE", "The function failed because the caller passed in an invalid OPM user-mode handle") +STATUS_GRAPHICS_PVP_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE = NtStatusException.register_ntstatus(0xc01e050d, "STATUS_GRAPHICS_PVP_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE", "This function failed because the GDI device passed to it did not have any monitors associated with it") +STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH = NtStatusException.register_ntstatus(0xc01e050e, "STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH", "A certificate could not be returned because the certificate buffer passed to the function was too small") +STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED = NtStatusException.register_ntstatus(0xc01e050f, "STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED", "DxgkDdiOpmCreateProtectedOutput() could not create a protected output because the video present yarget is in spanning mode") +STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED = NtStatusException.register_ntstatus(0xc01e0510, "STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED", "DxgkDdiOpmCreateProtectedOutput() could not create a protected output because the video present target is in theater mode") +STATUS_GRAPHICS_PVP_HFS_FAILED = NtStatusException.register_ntstatus(0xc01e0511, "STATUS_GRAPHICS_PVP_HFS_FAILED", "The function call failed because the display adapter's hardware functionality scan (HFS) failed to validate the graphics hardware") +STATUS_GRAPHICS_OPM_INVALID_SRM = NtStatusException.register_ntstatus(0xc01e0512, "STATUS_GRAPHICS_OPM_INVALID_SRM", "The HDCP SRM passed to this function did not comply with section 5 of the HDCP 1.1 specification") +STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP = NtStatusException.register_ntstatus(0xc01e0513, "STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP", "The protected output cannot enable the HDCP system because it does not support it") +STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP = NtStatusException.register_ntstatus(0xc01e0514, "STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP", "The protected output cannot enable analog copy protection because it does not support it") +STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA = NtStatusException.register_ntstatus(0xc01e0515, "STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA", "The protected output cannot enable the CGMS-A protection technology because it does not support it") +STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET = NtStatusException.register_ntstatus(0xc01e0516, "STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET", "DxgkDdiOPMGetInformation() cannot return the version of the SRM being used because the application never successfully passed an SRM to the protected output") +STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH = NtStatusException.register_ntstatus(0xc01e0517, "STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH", "DxgkDdiOPMConfigureProtectedOutput() cannot enable the specified output protection technology because the output's screen resolution is too high") +STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE = NtStatusException.register_ntstatus(0xc01e0518, "STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE", "DxgkDdiOPMConfigureProtectedOutput() cannot enable HDCP because other physical outputs are using the display adapter's HDCP hardware") +STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS = NtStatusException.register_ntstatus(0xc01e051a, "STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS", "The operating system asynchronously destroyed this OPM-protected output because the operating system state changed. This error typically occurs because the monitor PDO associated with this protected output was removed or stopped, the protected output's session became a nonconsole session, or the protected output's desktop became inactive") +STATUS_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS = NtStatusException.register_ntstatus(0xc01e051b, "STATUS_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS", "OPM functions cannot be called when a session is changing its type. Three types of sessions currently exist: console, disconnected, and remote (RDP or ICA)") +STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS = NtStatusException.register_ntstatus(0xc01e051c, "STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS", "The DxgkDdiOPMGetCOPPCompatibleInformation, DxgkDdiOPMGetInformation, or DxgkDdiOPMConfigureProtectedOutput function failed. This error is returned only if a protected output has OPM semantics. DxgkDdiOPMGetCOPPCompatibleInformation always returns this error if a protected output has OPM semantics. DxgkDdiOPMGetInformation returns this error code if the caller requested COPP-specific information. DxgkDdiOPMConfigureProtectedOutput returns this error when the caller tries to use a COPP-specific command") +STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST = NtStatusException.register_ntstatus(0xc01e051d, "STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST", "The DxgkDdiOPMGetInformation and DxgkDdiOPMGetCOPPCompatibleInformation functions return this error code if the passed-in sequence number is not the expected sequence number or the passed-in OMAC value is invalid") +STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR = NtStatusException.register_ntstatus(0xc01e051e, "STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR", "The function failed because an unexpected error occurred inside a display driver") +STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS = NtStatusException.register_ntstatus(0xc01e051f, "STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS", "The DxgkDdiOPMGetCOPPCompatibleInformation, DxgkDdiOPMGetInformation, or DxgkDdiOPMConfigureProtectedOutput function failed. This error is returned only if a protected output has COPP semantics. DxgkDdiOPMGetCOPPCompatibleInformation returns this error code if the caller requested OPM-specific information. DxgkDdiOPMGetInformation always returns this error if a protected output has COPP semantics. DxgkDdiOPMConfigureProtectedOutput returns this error when the caller tries to use an OPM-specific command") +STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0520, "STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED", "The DxgkDdiOPMGetCOPPCompatibleInformation and DxgkDdiOPMConfigureProtectedOutput functions return this error if the display driver does not support the DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING and DXGKMDT_OPM_SET_ACP_AND_CGMSA_SIGNALING GUIDs") +STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST = NtStatusException.register_ntstatus(0xc01e0521, "STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST", "The DxgkDdiOPMConfigureProtectedOutput function returns this error code if the passed-in sequence number is not the expected sequence number or the passed-in OMAC value is invalid") +STATUS_GRAPHICS_I2C_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0580, "STATUS_GRAPHICS_I2C_NOT_SUPPORTED", "The monitor connected to the specified video output does not have an I2C bus") +STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST = NtStatusException.register_ntstatus(0xc01e0581, "STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST", "No device on the I2C bus has the specified address") +STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA = NtStatusException.register_ntstatus(0xc01e0582, "STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA", "An error occurred while transmitting data to the device on the I2C bus") +STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA = NtStatusException.register_ntstatus(0xc01e0583, "STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA", "An error occurred while receiving data from the device on the I2C bus") +STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e0584, "STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED", "The monitor does not support the specified VCP code") +STATUS_GRAPHICS_DDCCI_INVALID_DATA = NtStatusException.register_ntstatus(0xc01e0585, "STATUS_GRAPHICS_DDCCI_INVALID_DATA", "The data received from the monitor is invalid") +STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE = NtStatusException.register_ntstatus(0xc01e0586, "STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE", "A function call failed because a monitor returned an invalid timing status byte when the operating system used the DDC/CI get timing report and timing message command to get a timing report from a monitor") +STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING = NtStatusException.register_ntstatus(0xc01e0587, "STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING", "A monitor returned a DDC/CI capabilities string that did not comply with the ACCESS.bus 3.0, DDC/CI 1.1, or MCCS 2 Revision 1 specification") +STATUS_GRAPHICS_MCA_INTERNAL_ERROR = NtStatusException.register_ntstatus(0xc01e0588, "STATUS_GRAPHICS_MCA_INTERNAL_ERROR", "An internal error caused an operation to fail") +STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND = NtStatusException.register_ntstatus(0xc01e0589, "STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND", "An operation failed because a DDC/CI message had an invalid value in its command field") +STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH = NtStatusException.register_ntstatus(0xc01e058a, "STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH", "This error occurred because a DDC/CI message had an invalid value in its length field") +STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM = NtStatusException.register_ntstatus(0xc01e058b, "STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM", "This error occurred because the value in a DDC/CI message's checksum field did not match the message's computed checksum value. This error implies that the data was corrupted while it was being transmitted from a monitor to a computer") +STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE = NtStatusException.register_ntstatus(0xc01e058c, "STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE", "This function failed because an invalid monitor handle was passed to it") +STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS = NtStatusException.register_ntstatus(0xc01e058d, "STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS", "The operating system asynchronously destroyed the monitor that corresponds to this handle because the operating system's state changed. This error typically occurs because the monitor PDO associated with this handle was removed or stopped, or a display mode change occurred. A display mode change occurs when Windows sends a WM_DISPLAYCHANGE message to applications") +STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED = NtStatusException.register_ntstatus(0xc01e05e0, "STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED", "This function can be used only if a program is running in the local console session. It cannot be used if a program is running on a remote desktop session or on a terminal server session") +STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME = NtStatusException.register_ntstatus(0xc01e05e1, "STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME", "This function cannot find an actual GDI display device that corresponds to the specified GDI display device name") +STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP = NtStatusException.register_ntstatus(0xc01e05e2, "STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP", "The function failed because the specified GDI display device was not attached to the Windows desktop") +STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc01e05e3, "STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED", "This function does not support GDI mirroring display devices because GDI mirroring display devices do not have any physical monitors associated with them") +STATUS_GRAPHICS_INVALID_POINTER = NtStatusException.register_ntstatus(0xc01e05e4, "STATUS_GRAPHICS_INVALID_POINTER", "The function failed because an invalid pointer parameter was passed to it. A pointer parameter is invalid if it is null, is not correctly aligned, or points to an invalid address or to a kernel mode address") +STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE = NtStatusException.register_ntstatus(0xc01e05e5, "STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE", "This function failed because the GDI device passed to it did not have a monitor associated with it") +STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL = NtStatusException.register_ntstatus(0xc01e05e6, "STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL", "An array passed to the function cannot hold all of the data that the function must copy into the array") +STATUS_GRAPHICS_INTERNAL_ERROR = NtStatusException.register_ntstatus(0xc01e05e7, "STATUS_GRAPHICS_INTERNAL_ERROR", "An internal error caused an operation to fail") +STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS = NtStatusException.register_ntstatus(0xc01e05e8, "STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS", "The function failed because the current session is changing its type. This function cannot be called when the current session is changing its type. Three types of sessions currently exist: console, disconnected, and remote (RDP or ICA)") +STATUS_FVE_LOCKED_VOLUME = NtStatusException.register_ntstatus(0xc0210000, "STATUS_FVE_LOCKED_VOLUME", "The volume must be unlocked before it can be used") +STATUS_FVE_NOT_ENCRYPTED = NtStatusException.register_ntstatus(0xc0210001, "STATUS_FVE_NOT_ENCRYPTED", "The volume is fully decrypted and no key is available") +STATUS_FVE_BAD_INFORMATION = NtStatusException.register_ntstatus(0xc0210002, "STATUS_FVE_BAD_INFORMATION", "The control block for the encrypted volume is not valid") +STATUS_FVE_TOO_SMALL = NtStatusException.register_ntstatus(0xc0210003, "STATUS_FVE_TOO_SMALL", "Not enough free space remains on the volume to allow encryption") +STATUS_FVE_FAILED_WRONG_FS = NtStatusException.register_ntstatus(0xc0210004, "STATUS_FVE_FAILED_WRONG_FS", "The partition cannot be encrypted because the file system is not supported") +STATUS_FVE_FAILED_BAD_FS = NtStatusException.register_ntstatus(0xc0210005, "STATUS_FVE_FAILED_BAD_FS", "The file system is inconsistent. Run the Check Disk utility") +STATUS_FVE_FS_NOT_EXTENDED = NtStatusException.register_ntstatus(0xc0210006, "STATUS_FVE_FS_NOT_EXTENDED", "The file system does not extend to the end of the volume") +STATUS_FVE_FS_MOUNTED = NtStatusException.register_ntstatus(0xc0210007, "STATUS_FVE_FS_MOUNTED", "This operation cannot be performed while a file system is mounted on the volume") +STATUS_FVE_NO_LICENSE = NtStatusException.register_ntstatus(0xc0210008, "STATUS_FVE_NO_LICENSE", "BitLocker Drive Encryption is not included with this version of Windows") +STATUS_FVE_ACTION_NOT_ALLOWED = NtStatusException.register_ntstatus(0xc0210009, "STATUS_FVE_ACTION_NOT_ALLOWED", "The requested action was denied by the FVE control engine") +STATUS_FVE_BAD_DATA = NtStatusException.register_ntstatus(0xc021000a, "STATUS_FVE_BAD_DATA", "The data supplied is malformed") +STATUS_FVE_VOLUME_NOT_BOUND = NtStatusException.register_ntstatus(0xc021000b, "STATUS_FVE_VOLUME_NOT_BOUND", "The volume is not bound to the system") +STATUS_FVE_NOT_DATA_VOLUME = NtStatusException.register_ntstatus(0xc021000c, "STATUS_FVE_NOT_DATA_VOLUME", "The volume specified is not a data volume") +STATUS_FVE_CONV_READ_ERROR = NtStatusException.register_ntstatus(0xc021000d, "STATUS_FVE_CONV_READ_ERROR", "A read operation failed while converting the volume") +STATUS_FVE_CONV_WRITE_ERROR = NtStatusException.register_ntstatus(0xc021000e, "STATUS_FVE_CONV_WRITE_ERROR", "A write operation failed while converting the volume") +STATUS_FVE_OVERLAPPED_UPDATE = NtStatusException.register_ntstatus(0xc021000f, "STATUS_FVE_OVERLAPPED_UPDATE", "The control block for the encrypted volume was updated by another thread. Try again") +STATUS_FVE_FAILED_SECTOR_SIZE = NtStatusException.register_ntstatus(0xc0210010, "STATUS_FVE_FAILED_SECTOR_SIZE", "The volume encryption algorithm cannot be used on this sector size") +STATUS_FVE_FAILED_AUTHENTICATION = NtStatusException.register_ntstatus(0xc0210011, "STATUS_FVE_FAILED_AUTHENTICATION", "BitLocker recovery authentication failed") +STATUS_FVE_NOT_OS_VOLUME = NtStatusException.register_ntstatus(0xc0210012, "STATUS_FVE_NOT_OS_VOLUME", "The volume specified is not the boot operating system volume") +STATUS_FVE_KEYFILE_NOT_FOUND = NtStatusException.register_ntstatus(0xc0210013, "STATUS_FVE_KEYFILE_NOT_FOUND", "The BitLocker startup key or recovery password could not be read from external media") +STATUS_FVE_KEYFILE_INVALID = NtStatusException.register_ntstatus(0xc0210014, "STATUS_FVE_KEYFILE_INVALID", "The BitLocker startup key or recovery password file is corrupt or invalid") +STATUS_FVE_KEYFILE_NO_VMK = NtStatusException.register_ntstatus(0xc0210015, "STATUS_FVE_KEYFILE_NO_VMK", "The BitLocker encryption key could not be obtained from the startup key or the recovery password") +STATUS_FVE_TPM_DISABLED = NtStatusException.register_ntstatus(0xc0210016, "STATUS_FVE_TPM_DISABLED", "The TPM is disabled") +STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO = NtStatusException.register_ntstatus(0xc0210017, "STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO", "The authorization data for the SRK of the TPM is not zero") +STATUS_FVE_TPM_INVALID_PCR = NtStatusException.register_ntstatus(0xc0210018, "STATUS_FVE_TPM_INVALID_PCR", "The system boot information changed or the TPM locked out access to BitLocker encryption keys until the computer is restarted") +STATUS_FVE_TPM_NO_VMK = NtStatusException.register_ntstatus(0xc0210019, "STATUS_FVE_TPM_NO_VMK", "The BitLocker encryption key could not be obtained from the TPM") +STATUS_FVE_PIN_INVALID = NtStatusException.register_ntstatus(0xc021001a, "STATUS_FVE_PIN_INVALID", "The BitLocker encryption key could not be obtained from the TPM and PIN") +STATUS_FVE_AUTH_INVALID_APPLICATION = NtStatusException.register_ntstatus(0xc021001b, "STATUS_FVE_AUTH_INVALID_APPLICATION", "A boot application hash does not match the hash computed when BitLocker was turned on") +STATUS_FVE_AUTH_INVALID_CONFIG = NtStatusException.register_ntstatus(0xc021001c, "STATUS_FVE_AUTH_INVALID_CONFIG", "The Boot Configuration Data (BCD) settings are not supported or have changed because BitLocker was enabled") +STATUS_FVE_DEBUGGER_ENABLED = NtStatusException.register_ntstatus(0xc021001d, "STATUS_FVE_DEBUGGER_ENABLED", "Boot debugging is enabled. Run Windows Boot Configuration Data Store Editor (bcdedit.exe) to turn it off") +STATUS_FVE_DRY_RUN_FAILED = NtStatusException.register_ntstatus(0xc021001e, "STATUS_FVE_DRY_RUN_FAILED", "The BitLocker encryption key could not be obtained") +STATUS_FVE_BAD_METADATA_POINTER = NtStatusException.register_ntstatus(0xc021001f, "STATUS_FVE_BAD_METADATA_POINTER", "The metadata disk region pointer is incorrect") +STATUS_FVE_OLD_METADATA_COPY = NtStatusException.register_ntstatus(0xc0210020, "STATUS_FVE_OLD_METADATA_COPY", "The backup copy of the metadata is out of date") +STATUS_FVE_REBOOT_REQUIRED = NtStatusException.register_ntstatus(0xc0210021, "STATUS_FVE_REBOOT_REQUIRED", "No action was taken because a system restart is required") +STATUS_FVE_RAW_ACCESS = NtStatusException.register_ntstatus(0xc0210022, "STATUS_FVE_RAW_ACCESS", "No action was taken because BitLocker Drive Encryption is in RAW access mode") +STATUS_FVE_RAW_BLOCKED = NtStatusException.register_ntstatus(0xc0210023, "STATUS_FVE_RAW_BLOCKED", "BitLocker Drive Encryption cannot enter RAW access mode for this volume") +STATUS_FVE_NO_FEATURE_LICENSE = NtStatusException.register_ntstatus(0xc0210026, "STATUS_FVE_NO_FEATURE_LICENSE", "This feature of BitLocker Drive Encryption is not included with this version of Windows") +STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED = NtStatusException.register_ntstatus(0xc0210027, "STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED", "Group policy does not permit turning off BitLocker Drive Encryption on roaming data volumes") +STATUS_FVE_CONV_RECOVERY_FAILED = NtStatusException.register_ntstatus(0xc0210028, "STATUS_FVE_CONV_RECOVERY_FAILED", "Bitlocker Drive Encryption failed to recover from aborted conversion. This could be due to either all conversion logs being corrupted or the media being write-protected") +STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG = NtStatusException.register_ntstatus(0xc0210029, "STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG", "The requested virtualization size is too big") +STATUS_FVE_VOLUME_TOO_SMALL = NtStatusException.register_ntstatus(0xc0210030, "STATUS_FVE_VOLUME_TOO_SMALL", "The drive is too small to be protected using BitLocker Drive Encryption") +STATUS_FWP_CALLOUT_NOT_FOUND = NtStatusException.register_ntstatus(0xc0220001, "STATUS_FWP_CALLOUT_NOT_FOUND", "The callout does not exist") +STATUS_FWP_CONDITION_NOT_FOUND = NtStatusException.register_ntstatus(0xc0220002, "STATUS_FWP_CONDITION_NOT_FOUND", "The filter condition does not exist") +STATUS_FWP_FILTER_NOT_FOUND = NtStatusException.register_ntstatus(0xc0220003, "STATUS_FWP_FILTER_NOT_FOUND", "The filter does not exist") +STATUS_FWP_LAYER_NOT_FOUND = NtStatusException.register_ntstatus(0xc0220004, "STATUS_FWP_LAYER_NOT_FOUND", "The layer does not exist") +STATUS_FWP_PROVIDER_NOT_FOUND = NtStatusException.register_ntstatus(0xc0220005, "STATUS_FWP_PROVIDER_NOT_FOUND", "The provider does not exist") +STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND = NtStatusException.register_ntstatus(0xc0220006, "STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND", "The provider context does not exist") +STATUS_FWP_SUBLAYER_NOT_FOUND = NtStatusException.register_ntstatus(0xc0220007, "STATUS_FWP_SUBLAYER_NOT_FOUND", "The sublayer does not exist") +STATUS_FWP_NOT_FOUND = NtStatusException.register_ntstatus(0xc0220008, "STATUS_FWP_NOT_FOUND", "The object does not exist") +STATUS_FWP_ALREADY_EXISTS = NtStatusException.register_ntstatus(0xc0220009, "STATUS_FWP_ALREADY_EXISTS", "An object with that GUID or LUID already exists") +STATUS_FWP_IN_USE = NtStatusException.register_ntstatus(0xc022000a, "STATUS_FWP_IN_USE", "The object is referenced by other objects and cannot be deleted") +STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS = NtStatusException.register_ntstatus(0xc022000b, "STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS", "The call is not allowed from within a dynamic session") +STATUS_FWP_WRONG_SESSION = NtStatusException.register_ntstatus(0xc022000c, "STATUS_FWP_WRONG_SESSION", "The call was made from the wrong session and cannot be completed") +STATUS_FWP_NO_TXN_IN_PROGRESS = NtStatusException.register_ntstatus(0xc022000d, "STATUS_FWP_NO_TXN_IN_PROGRESS", "The call must be made from within an explicit transaction") +STATUS_FWP_TXN_IN_PROGRESS = NtStatusException.register_ntstatus(0xc022000e, "STATUS_FWP_TXN_IN_PROGRESS", "The call is not allowed from within an explicit transaction") +STATUS_FWP_TXN_ABORTED = NtStatusException.register_ntstatus(0xc022000f, "STATUS_FWP_TXN_ABORTED", "The explicit transaction has been forcibly canceled") +STATUS_FWP_SESSION_ABORTED = NtStatusException.register_ntstatus(0xc0220010, "STATUS_FWP_SESSION_ABORTED", "The session has been canceled") +STATUS_FWP_INCOMPATIBLE_TXN = NtStatusException.register_ntstatus(0xc0220011, "STATUS_FWP_INCOMPATIBLE_TXN", "The call is not allowed from within a read-only transaction") +STATUS_FWP_TIMEOUT = NtStatusException.register_ntstatus(0xc0220012, "STATUS_FWP_TIMEOUT", "The call timed out while waiting to acquire the transaction lock") +STATUS_FWP_NET_EVENTS_DISABLED = NtStatusException.register_ntstatus(0xc0220013, "STATUS_FWP_NET_EVENTS_DISABLED", "The collection of network diagnostic events is disabled") +STATUS_FWP_INCOMPATIBLE_LAYER = NtStatusException.register_ntstatus(0xc0220014, "STATUS_FWP_INCOMPATIBLE_LAYER", "The operation is not supported by the specified layer") +STATUS_FWP_KM_CLIENTS_ONLY = NtStatusException.register_ntstatus(0xc0220015, "STATUS_FWP_KM_CLIENTS_ONLY", "The call is allowed for kernel-mode callers only") +STATUS_FWP_LIFETIME_MISMATCH = NtStatusException.register_ntstatus(0xc0220016, "STATUS_FWP_LIFETIME_MISMATCH", "The call tried to associate two objects with incompatible lifetimes") +STATUS_FWP_BUILTIN_OBJECT = NtStatusException.register_ntstatus(0xc0220017, "STATUS_FWP_BUILTIN_OBJECT", "The object is built-in and cannot be deleted") +STATUS_FWP_TOO_MANY_BOOTTIME_FILTERS = NtStatusException.register_ntstatus(0xc0220018, "STATUS_FWP_TOO_MANY_BOOTTIME_FILTERS", "The maximum number of boot-time filters has been reached") +STATUS_FWP_TOO_MANY_CALLOUTS = NtStatusException.register_ntstatus(0xc0220018, "STATUS_FWP_TOO_MANY_CALLOUTS", "The maximum number of callouts has been reached") +STATUS_FWP_NOTIFICATION_DROPPED = NtStatusException.register_ntstatus(0xc0220019, "STATUS_FWP_NOTIFICATION_DROPPED", "A notification could not be delivered because a message queue has reached maximum capacity") +STATUS_FWP_TRAFFIC_MISMATCH = NtStatusException.register_ntstatus(0xc022001a, "STATUS_FWP_TRAFFIC_MISMATCH", "The traffic parameters do not match those for the security association context") +STATUS_FWP_INCOMPATIBLE_SA_STATE = NtStatusException.register_ntstatus(0xc022001b, "STATUS_FWP_INCOMPATIBLE_SA_STATE", "The call is not allowed for the current security association state") +STATUS_FWP_NULL_POINTER = NtStatusException.register_ntstatus(0xc022001c, "STATUS_FWP_NULL_POINTER", "A required pointer is null") +STATUS_FWP_INVALID_ENUMERATOR = NtStatusException.register_ntstatus(0xc022001d, "STATUS_FWP_INVALID_ENUMERATOR", "An enumerator is not valid") +STATUS_FWP_INVALID_FLAGS = NtStatusException.register_ntstatus(0xc022001e, "STATUS_FWP_INVALID_FLAGS", "The flags field contains an invalid value") +STATUS_FWP_INVALID_NET_MASK = NtStatusException.register_ntstatus(0xc022001f, "STATUS_FWP_INVALID_NET_MASK", "A network mask is not valid") +STATUS_FWP_INVALID_RANGE = NtStatusException.register_ntstatus(0xc0220020, "STATUS_FWP_INVALID_RANGE", "An FWP_RANGE is not valid") +STATUS_FWP_INVALID_INTERVAL = NtStatusException.register_ntstatus(0xc0220021, "STATUS_FWP_INVALID_INTERVAL", "The time interval is not valid") +STATUS_FWP_ZERO_LENGTH_ARRAY = NtStatusException.register_ntstatus(0xc0220022, "STATUS_FWP_ZERO_LENGTH_ARRAY", "An array that must contain at least one element has a zero length") +STATUS_FWP_NULL_DISPLAY_NAME = NtStatusException.register_ntstatus(0xc0220023, "STATUS_FWP_NULL_DISPLAY_NAME", "The displayData.name field cannot be null") +STATUS_FWP_INVALID_ACTION_TYPE = NtStatusException.register_ntstatus(0xc0220024, "STATUS_FWP_INVALID_ACTION_TYPE", "The action type is not one of the allowed action types for a filter") +STATUS_FWP_INVALID_WEIGHT = NtStatusException.register_ntstatus(0xc0220025, "STATUS_FWP_INVALID_WEIGHT", "The filter weight is not valid") +STATUS_FWP_MATCH_TYPE_MISMATCH = NtStatusException.register_ntstatus(0xc0220026, "STATUS_FWP_MATCH_TYPE_MISMATCH", "A filter condition contains a match type that is not compatible with the operands") +STATUS_FWP_TYPE_MISMATCH = NtStatusException.register_ntstatus(0xc0220027, "STATUS_FWP_TYPE_MISMATCH", "An FWP_VALUE or FWPM_CONDITION_VALUE is of the wrong type") +STATUS_FWP_OUT_OF_BOUNDS = NtStatusException.register_ntstatus(0xc0220028, "STATUS_FWP_OUT_OF_BOUNDS", "An integer value is outside the allowed range") +STATUS_FWP_RESERVED = NtStatusException.register_ntstatus(0xc0220029, "STATUS_FWP_RESERVED", "A reserved field is nonzero") +STATUS_FWP_DUPLICATE_CONDITION = NtStatusException.register_ntstatus(0xc022002a, "STATUS_FWP_DUPLICATE_CONDITION", "A filter cannot contain multiple conditions operating on a single field") +STATUS_FWP_DUPLICATE_KEYMOD = NtStatusException.register_ntstatus(0xc022002b, "STATUS_FWP_DUPLICATE_KEYMOD", "A policy cannot contain the same keying module more than once") +STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER = NtStatusException.register_ntstatus(0xc022002c, "STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER", "The action type is not compatible with the layer") +STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER = NtStatusException.register_ntstatus(0xc022002d, "STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER", "The action type is not compatible with the sublayer") +STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER = NtStatusException.register_ntstatus(0xc022002e, "STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER", "The raw context or the provider context is not compatible with the layer") +STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT = NtStatusException.register_ntstatus(0xc022002f, "STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT", "The raw context or the provider context is not compatible with the callout") +STATUS_FWP_INCOMPATIBLE_AUTH_METHOD = NtStatusException.register_ntstatus(0xc0220030, "STATUS_FWP_INCOMPATIBLE_AUTH_METHOD", "The authentication method is not compatible with the policy type") +STATUS_FWP_INCOMPATIBLE_DH_GROUP = NtStatusException.register_ntstatus(0xc0220031, "STATUS_FWP_INCOMPATIBLE_DH_GROUP", "The Diffie-Hellman group is not compatible with the policy type") +STATUS_FWP_EM_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc0220032, "STATUS_FWP_EM_NOT_SUPPORTED", "An IKE policy cannot contain an Extended Mode policy") +STATUS_FWP_NEVER_MATCH = NtStatusException.register_ntstatus(0xc0220033, "STATUS_FWP_NEVER_MATCH", "The enumeration template or subscription will never match any objects") +STATUS_FWP_PROVIDER_CONTEXT_MISMATCH = NtStatusException.register_ntstatus(0xc0220034, "STATUS_FWP_PROVIDER_CONTEXT_MISMATCH", "The provider context is of the wrong type") +STATUS_FWP_INVALID_PARAMETER = NtStatusException.register_ntstatus(0xc0220035, "STATUS_FWP_INVALID_PARAMETER", "The parameter is incorrect") +STATUS_FWP_TOO_MANY_SUBLAYERS = NtStatusException.register_ntstatus(0xc0220036, "STATUS_FWP_TOO_MANY_SUBLAYERS", "The maximum number of sublayers has been reached") +STATUS_FWP_CALLOUT_NOTIFICATION_FAILED = NtStatusException.register_ntstatus(0xc0220037, "STATUS_FWP_CALLOUT_NOTIFICATION_FAILED", "The notification function for a callout returned an error") +STATUS_FWP_INCOMPATIBLE_AUTH_CONFIG = NtStatusException.register_ntstatus(0xc0220038, "STATUS_FWP_INCOMPATIBLE_AUTH_CONFIG", "The IPsec authentication configuration is not compatible with the authentication type") +STATUS_FWP_INCOMPATIBLE_CIPHER_CONFIG = NtStatusException.register_ntstatus(0xc0220039, "STATUS_FWP_INCOMPATIBLE_CIPHER_CONFIG", "The IPsec cipher configuration is not compatible with the cipher type") +STATUS_FWP_DUPLICATE_AUTH_METHOD = NtStatusException.register_ntstatus(0xc022003c, "STATUS_FWP_DUPLICATE_AUTH_METHOD", "A policy cannot contain the same auth method more than once") +STATUS_FWP_TCPIP_NOT_READY = NtStatusException.register_ntstatus(0xc0220100, "STATUS_FWP_TCPIP_NOT_READY", "The TCP/IP stack is not ready") +STATUS_FWP_INJECT_HANDLE_CLOSING = NtStatusException.register_ntstatus(0xc0220101, "STATUS_FWP_INJECT_HANDLE_CLOSING", "The injection handle is being closed by another thread") +STATUS_FWP_INJECT_HANDLE_STALE = NtStatusException.register_ntstatus(0xc0220102, "STATUS_FWP_INJECT_HANDLE_STALE", "The injection handle is stale") +STATUS_FWP_CANNOT_PEND = NtStatusException.register_ntstatus(0xc0220103, "STATUS_FWP_CANNOT_PEND", "The classify cannot be pended") +STATUS_NDIS_CLOSING = NtStatusException.register_ntstatus(0xc0230002, "STATUS_NDIS_CLOSING", "The binding to the network interface is being closed") +STATUS_NDIS_BAD_VERSION = NtStatusException.register_ntstatus(0xc0230004, "STATUS_NDIS_BAD_VERSION", "An invalid version was specified") +STATUS_NDIS_BAD_CHARACTERISTICS = NtStatusException.register_ntstatus(0xc0230005, "STATUS_NDIS_BAD_CHARACTERISTICS", "An invalid characteristics table was used") +STATUS_NDIS_ADAPTER_NOT_FOUND = NtStatusException.register_ntstatus(0xc0230006, "STATUS_NDIS_ADAPTER_NOT_FOUND", "Failed to find the network interface or the network interface is not ready") +STATUS_NDIS_OPEN_FAILED = NtStatusException.register_ntstatus(0xc0230007, "STATUS_NDIS_OPEN_FAILED", "Failed to open the network interface") +STATUS_NDIS_DEVICE_FAILED = NtStatusException.register_ntstatus(0xc0230008, "STATUS_NDIS_DEVICE_FAILED", "The network interface has encountered an internal unrecoverable failure") +STATUS_NDIS_MULTICAST_FULL = NtStatusException.register_ntstatus(0xc0230009, "STATUS_NDIS_MULTICAST_FULL", "The multicast list on the network interface is full") +STATUS_NDIS_MULTICAST_EXISTS = NtStatusException.register_ntstatus(0xc023000a, "STATUS_NDIS_MULTICAST_EXISTS", "An attempt was made to add a duplicate multicast address to the list") +STATUS_NDIS_MULTICAST_NOT_FOUND = NtStatusException.register_ntstatus(0xc023000b, "STATUS_NDIS_MULTICAST_NOT_FOUND", "At attempt was made to remove a multicast address that was never added") +STATUS_NDIS_REQUEST_ABORTED = NtStatusException.register_ntstatus(0xc023000c, "STATUS_NDIS_REQUEST_ABORTED", "The network interface aborted the request") +STATUS_NDIS_RESET_IN_PROGRESS = NtStatusException.register_ntstatus(0xc023000d, "STATUS_NDIS_RESET_IN_PROGRESS", "The network interface cannot process the request because it is being reset") +STATUS_NDIS_INVALID_PACKET = NtStatusException.register_ntstatus(0xc023000f, "STATUS_NDIS_INVALID_PACKET", "An attempt was made to send an invalid packet on a network interface") +STATUS_NDIS_INVALID_DEVICE_REQUEST = NtStatusException.register_ntstatus(0xc0230010, "STATUS_NDIS_INVALID_DEVICE_REQUEST", "The specified request is not a valid operation for the target device") +STATUS_NDIS_ADAPTER_NOT_READY = NtStatusException.register_ntstatus(0xc0230011, "STATUS_NDIS_ADAPTER_NOT_READY", "The network interface is not ready to complete this operation") +STATUS_NDIS_INVALID_LENGTH = NtStatusException.register_ntstatus(0xc0230014, "STATUS_NDIS_INVALID_LENGTH", "The length of the buffer submitted for this operation is not valid") +STATUS_NDIS_INVALID_DATA = NtStatusException.register_ntstatus(0xc0230015, "STATUS_NDIS_INVALID_DATA", "The data used for this operation is not valid") +STATUS_NDIS_BUFFER_TOO_SHORT = NtStatusException.register_ntstatus(0xc0230016, "STATUS_NDIS_BUFFER_TOO_SHORT", "The length of the submitted buffer for this operation is too small") +STATUS_NDIS_INVALID_OID = NtStatusException.register_ntstatus(0xc0230017, "STATUS_NDIS_INVALID_OID", "The network interface does not support this object identifier") +STATUS_NDIS_ADAPTER_REMOVED = NtStatusException.register_ntstatus(0xc0230018, "STATUS_NDIS_ADAPTER_REMOVED", "The network interface has been removed") +STATUS_NDIS_UNSUPPORTED_MEDIA = NtStatusException.register_ntstatus(0xc0230019, "STATUS_NDIS_UNSUPPORTED_MEDIA", "The network interface does not support this media type") +STATUS_NDIS_GROUP_ADDRESS_IN_USE = NtStatusException.register_ntstatus(0xc023001a, "STATUS_NDIS_GROUP_ADDRESS_IN_USE", "An attempt was made to remove a token ring group address that is in use by other components") +STATUS_NDIS_FILE_NOT_FOUND = NtStatusException.register_ntstatus(0xc023001b, "STATUS_NDIS_FILE_NOT_FOUND", "An attempt was made to map a file that cannot be found") +STATUS_NDIS_ERROR_READING_FILE = NtStatusException.register_ntstatus(0xc023001c, "STATUS_NDIS_ERROR_READING_FILE", "An error occurred while NDIS tried to map the file") +STATUS_NDIS_ALREADY_MAPPED = NtStatusException.register_ntstatus(0xc023001d, "STATUS_NDIS_ALREADY_MAPPED", "An attempt was made to map a file that is already mapped") +STATUS_NDIS_RESOURCE_CONFLICT = NtStatusException.register_ntstatus(0xc023001e, "STATUS_NDIS_RESOURCE_CONFLICT", "An attempt to allocate a hardware resource failed because the resource is used by another component") +STATUS_NDIS_MEDIA_DISCONNECTED = NtStatusException.register_ntstatus(0xc023001f, "STATUS_NDIS_MEDIA_DISCONNECTED", "The I/O operation failed because the network media is disconnected or the wireless access point is out of range") +STATUS_NDIS_INVALID_ADDRESS = NtStatusException.register_ntstatus(0xc0230022, "STATUS_NDIS_INVALID_ADDRESS", "The network address used in the request is invalid") +STATUS_NDIS_PAUSED = NtStatusException.register_ntstatus(0xc023002a, "STATUS_NDIS_PAUSED", "The offload operation on the network interface has been paused") +STATUS_NDIS_INTERFACE_NOT_FOUND = NtStatusException.register_ntstatus(0xc023002b, "STATUS_NDIS_INTERFACE_NOT_FOUND", "The network interface was not found") +STATUS_NDIS_UNSUPPORTED_REVISION = NtStatusException.register_ntstatus(0xc023002c, "STATUS_NDIS_UNSUPPORTED_REVISION", "The revision number specified in the structure is not supported") +STATUS_NDIS_INVALID_PORT = NtStatusException.register_ntstatus(0xc023002d, "STATUS_NDIS_INVALID_PORT", "The specified port does not exist on this network interface") +STATUS_NDIS_INVALID_PORT_STATE = NtStatusException.register_ntstatus(0xc023002e, "STATUS_NDIS_INVALID_PORT_STATE", "The current state of the specified port on this network interface does not support the requested operation") +STATUS_NDIS_LOW_POWER_STATE = NtStatusException.register_ntstatus(0xc023002f, "STATUS_NDIS_LOW_POWER_STATE", "The miniport adapter is in a lower power state") +STATUS_NDIS_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc02300bb, "STATUS_NDIS_NOT_SUPPORTED", "The network interface does not support this request") +STATUS_NDIS_OFFLOAD_POLICY = NtStatusException.register_ntstatus(0xc023100f, "STATUS_NDIS_OFFLOAD_POLICY", "The TCP connection is not offloadable because of a local policy setting") +STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED = NtStatusException.register_ntstatus(0xc0231012, "STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED", "The TCP connection is not offloadable by the Chimney offload target") +STATUS_NDIS_OFFLOAD_PATH_REJECTED = NtStatusException.register_ntstatus(0xc0231013, "STATUS_NDIS_OFFLOAD_PATH_REJECTED", "The IP Path object is not in an offloadable state") +STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED = NtStatusException.register_ntstatus(0xc0232000, "STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED", "The wireless LAN interface is in auto-configuration mode and does not support the requested parameter change operation") +STATUS_NDIS_DOT11_MEDIA_IN_USE = NtStatusException.register_ntstatus(0xc0232001, "STATUS_NDIS_DOT11_MEDIA_IN_USE", "The wireless LAN interface is busy and cannot perform the requested operation") +STATUS_NDIS_DOT11_POWER_STATE_INVALID = NtStatusException.register_ntstatus(0xc0232002, "STATUS_NDIS_DOT11_POWER_STATE_INVALID", "The wireless LAN interface is power down and does not support the requested operation") +STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL = NtStatusException.register_ntstatus(0xc0232003, "STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL", "The list of wake on LAN patterns is full") +STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL = NtStatusException.register_ntstatus(0xc0232004, "STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL", "The list of low power protocol offloads is full") +STATUS_IPSEC_BAD_SPI = NtStatusException.register_ntstatus(0xc0360001, "STATUS_IPSEC_BAD_SPI", "The SPI in the packet does not match a valid IPsec SA") +STATUS_IPSEC_SA_LIFETIME_EXPIRED = NtStatusException.register_ntstatus(0xc0360002, "STATUS_IPSEC_SA_LIFETIME_EXPIRED", "The packet was received on an IPsec SA whose lifetime has expired") +STATUS_IPSEC_WRONG_SA = NtStatusException.register_ntstatus(0xc0360003, "STATUS_IPSEC_WRONG_SA", "The packet was received on an IPsec SA that does not match the packet characteristics") +STATUS_IPSEC_REPLAY_CHECK_FAILED = NtStatusException.register_ntstatus(0xc0360004, "STATUS_IPSEC_REPLAY_CHECK_FAILED", "The packet sequence number replay check failed") +STATUS_IPSEC_INVALID_PACKET = NtStatusException.register_ntstatus(0xc0360005, "STATUS_IPSEC_INVALID_PACKET", "The IPsec header and/or trailer in the packet is invalid") +STATUS_IPSEC_INTEGRITY_CHECK_FAILED = NtStatusException.register_ntstatus(0xc0360006, "STATUS_IPSEC_INTEGRITY_CHECK_FAILED", "The IPsec integrity check failed") +STATUS_IPSEC_CLEAR_TEXT_DROP = NtStatusException.register_ntstatus(0xc0360007, "STATUS_IPSEC_CLEAR_TEXT_DROP", "IPsec dropped a clear text packet") +STATUS_IPSEC_AUTH_FIREWALL_DROP = NtStatusException.register_ntstatus(0xc0360008, "STATUS_IPSEC_AUTH_FIREWALL_DROP", "IPsec dropped an incoming ESP packet in authenticated firewall mode.? This drop is benign") +STATUS_IPSEC_THROTTLE_DROP = NtStatusException.register_ntstatus(0xc0360009, "STATUS_IPSEC_THROTTLE_DROP", "IPsec dropped a packet due to DOS throttle") +STATUS_IPSEC_DOSP_BLOCK = NtStatusException.register_ntstatus(0xc0368000, "STATUS_IPSEC_DOSP_BLOCK", "IPsec Dos Protection matched an explicit block rule") +STATUS_IPSEC_DOSP_RECEIVED_MULTICAST = NtStatusException.register_ntstatus(0xc0368001, "STATUS_IPSEC_DOSP_RECEIVED_MULTICAST", "IPsec Dos Protection received an IPsec specific multicast packet which is not allowed") +STATUS_IPSEC_DOSP_INVALID_PACKET = NtStatusException.register_ntstatus(0xc0368002, "STATUS_IPSEC_DOSP_INVALID_PACKET", "IPsec Dos Protection received an incorrectly formatted packet") +STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED = NtStatusException.register_ntstatus(0xc0368003, "STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED", "IPsec Dos Protection failed to lookup state") +STATUS_IPSEC_DOSP_MAX_ENTRIES = NtStatusException.register_ntstatus(0xc0368004, "STATUS_IPSEC_DOSP_MAX_ENTRIES", "IPsec Dos Protection failed to create state because there are already maximum number of entries allowed by policy") +STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED = NtStatusException.register_ntstatus(0xc0368005, "STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED", "IPsec Dos Protection received an IPsec negotiation packet for a keying module which is not allowed by policy") +STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES = NtStatusException.register_ntstatus(0xc0368006, "STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES", "IPsec Dos Protection failed to create per internal IP ratelimit queue because there is already maximum number of queues allowed by policy") +STATUS_VOLMGR_MIRROR_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc038005b, "STATUS_VOLMGR_MIRROR_NOT_SUPPORTED", "The system does not support mirrored volumes") +STATUS_VOLMGR_RAID5_NOT_SUPPORTED = NtStatusException.register_ntstatus(0xc038005c, "STATUS_VOLMGR_RAID5_NOT_SUPPORTED", "The system does not support RAID-5 volumes") +STATUS_VIRTDISK_PROVIDER_NOT_FOUND = NtStatusException.register_ntstatus(0xc03a0014, "STATUS_VIRTDISK_PROVIDER_NOT_FOUND", "A virtual disk support provider for the specified file was not found") +STATUS_VIRTDISK_NOT_VIRTUAL_DISK = NtStatusException.register_ntstatus(0xc03a0015, "STATUS_VIRTDISK_NOT_VIRTUAL_DISK", "The specified disk is not a virtual disk") +STATUS_VHD_PARENT_VHD_ACCESS_DENIED = NtStatusException.register_ntstatus(0xc03a0016, "STATUS_VHD_PARENT_VHD_ACCESS_DENIED", "The chain of virtual hard disks is inaccessible. The process has not been granted access rights to the parent virtual hard disk for the differencing disk") +STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH = NtStatusException.register_ntstatus(0xc03a0017, "STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH", "The chain of virtual hard disks is corrupted. There is a mismatch in the virtual sizes of the parent virtual hard disk and differencing disk") +STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED = NtStatusException.register_ntstatus(0xc03a0018, "STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED", "The chain of virtual hard disks is corrupted. A differencing disk is indicated in its own parent chain") +STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT = NtStatusException.register_ntstatus(0xc03a0019, "STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT", "The chain of virtual hard disks is inaccessible. There was an error opening a virtual hard disk further up the chain") diff --git a/pythonmemorymodule/windows/generated_def/windef.py b/pythonmemorymodule/windows/generated_def/windef.py new file mode 100644 index 0000000..b7b91e0 --- /dev/null +++ b/pythonmemorymodule/windows/generated_def/windef.py @@ -0,0 +1,3134 @@ +import platform +from .flag import make_flag + +bits = platform.architecture()[0] +bitness = int(bits[:2]) + +NATIVE_WORD_MAX_VALUE = 0xffffffff if bitness == 32 else 0xffffffffffffffff +from .ntstatus import * +from .winerror import * +BG_JOB_ENUM_ALL_USERS = make_flag("BG_JOB_ENUM_ALL_USERS", 0x0001) +BG_NOTIFY_JOB_TRANSFERRED = make_flag("BG_NOTIFY_JOB_TRANSFERRED", 0x0001) +BG_NOTIFY_JOB_ERROR = make_flag("BG_NOTIFY_JOB_ERROR", 0x0002) +BG_NOTIFY_DISABLE = make_flag("BG_NOTIFY_DISABLE", 0x0004) +BG_NOTIFY_JOB_MODIFICATION = make_flag("BG_NOTIFY_JOB_MODIFICATION", 0x0008) +BG_NOTIFY_FILE_TRANSFERRED = make_flag("BG_NOTIFY_FILE_TRANSFERRED", 0x0010) +MAX_DEVICE_ID_LEN = make_flag("MAX_DEVICE_ID_LEN", 200) +MAX_DEVNODE_ID_LEN = make_flag("MAX_DEVNODE_ID_LEN", MAX_DEVICE_ID_LEN) +MAX_GUID_STRING_LEN = make_flag("MAX_GUID_STRING_LEN", 39) +MAX_CLASS_NAME_LEN = make_flag("MAX_CLASS_NAME_LEN", 32) +MAX_PROFILE_LEN = make_flag("MAX_PROFILE_LEN", 80) +MAX_CONFIG_VALUE = make_flag("MAX_CONFIG_VALUE", 9999) +MAX_INSTANCE_VALUE = make_flag("MAX_INSTANCE_VALUE", 9999) +MAX_MEM_REGISTERS = make_flag("MAX_MEM_REGISTERS", 9) +MAX_IO_PORTS = make_flag("MAX_IO_PORTS", 20) +MAX_IRQS = make_flag("MAX_IRQS", 7) +MAX_DMA_CHANNELS = make_flag("MAX_DMA_CHANNELS", 7) +DWORD_MAX = make_flag("DWORD_MAX", 0xffffffff) +DWORDLONG_MAX = make_flag("DWORDLONG_MAX", 0xffffffffffffffff) +CM_DEVCAP_LOCKSUPPORTED = make_flag("CM_DEVCAP_LOCKSUPPORTED", ( 0x00000001 )) +CM_DEVCAP_EJECTSUPPORTED = make_flag("CM_DEVCAP_EJECTSUPPORTED", ( 0x00000002 )) +CM_DEVCAP_REMOVABLE = make_flag("CM_DEVCAP_REMOVABLE", ( 0x00000004 )) +CM_DEVCAP_DOCKDEVICE = make_flag("CM_DEVCAP_DOCKDEVICE", ( 0x00000008 )) +CM_DEVCAP_UNIQUEID = make_flag("CM_DEVCAP_UNIQUEID", ( 0x00000010 )) +CM_DEVCAP_SILENTINSTALL = make_flag("CM_DEVCAP_SILENTINSTALL", ( 0x00000020 )) +CM_DEVCAP_RAWDEVICEOK = make_flag("CM_DEVCAP_RAWDEVICEOK", ( 0x00000040 )) +CM_DEVCAP_SURPRISEREMOVALOK = make_flag("CM_DEVCAP_SURPRISEREMOVALOK", ( 0x00000080 )) +CM_DEVCAP_HARDWAREDISABLED = make_flag("CM_DEVCAP_HARDWAREDISABLED", ( 0x00000100 )) +CM_DEVCAP_NONDYNAMIC = make_flag("CM_DEVCAP_NONDYNAMIC", ( 0x00000200 )) +ResType_All = make_flag("ResType_All", ( 0x00000000 )) +ResType_None = make_flag("ResType_None", ( 0x00000000 )) +ResType_Mem = make_flag("ResType_Mem", ( 0x00000001 )) +ResType_IO = make_flag("ResType_IO", ( 0x00000002 )) +ResType_DMA = make_flag("ResType_DMA", ( 0x00000003 )) +ResType_IRQ = make_flag("ResType_IRQ", ( 0x00000004 )) +ResType_DoNotUse = make_flag("ResType_DoNotUse", ( 0x00000005 )) +ResType_BusNumber = make_flag("ResType_BusNumber", ( 0x00000006 )) +ResType_MemLarge = make_flag("ResType_MemLarge", ( 0x00000007 )) +ResType_MAX = make_flag("ResType_MAX", ( 0x00000007 )) +ResType_Ignored_Bit = make_flag("ResType_Ignored_Bit", ( 0x00008000 )) +ResType_ClassSpecific = make_flag("ResType_ClassSpecific", ( 0x0000FFFF )) +ResType_Reserved = make_flag("ResType_Reserved", ( 0x00008000 )) +ResType_DevicePrivate = make_flag("ResType_DevicePrivate", ( 0x00008001 )) +ResType_PcCardConfig = make_flag("ResType_PcCardConfig", ( 0x00008002 )) +ResType_MfCardConfig = make_flag("ResType_MfCardConfig", ( 0x00008003 )) +ResType_Connection = make_flag("ResType_Connection", ( 0x00008004 )) +BASIC_LOG_CONF = make_flag("BASIC_LOG_CONF", 0x00000000) +FILTERED_LOG_CONF = make_flag("FILTERED_LOG_CONF", 0x00000001) +ALLOC_LOG_CONF = make_flag("ALLOC_LOG_CONF", 0x00000002) +BOOT_LOG_CONF = make_flag("BOOT_LOG_CONF", 0x00000003) +FORCED_LOG_CONF = make_flag("FORCED_LOG_CONF", 0x00000004) +OVERRIDE_LOG_CONF = make_flag("OVERRIDE_LOG_CONF", 0x00000005) +NUM_LOG_CONF = make_flag("NUM_LOG_CONF", 0x00000006) +LOG_CONF_BITS = make_flag("LOG_CONF_BITS", 0x00000007) +PRIORITY_EQUAL_FIRST = make_flag("PRIORITY_EQUAL_FIRST", ( 0x00000008 )) +PRIORITY_EQUAL_LAST = make_flag("PRIORITY_EQUAL_LAST", ( 0x00000000 )) +PRIORITY_BIT = make_flag("PRIORITY_BIT", ( 0x00000008 )) +CR_SUCCESS = make_flag("CR_SUCCESS", ( 0x00000000 )) +CR_DEFAULT = make_flag("CR_DEFAULT", ( 0x00000001 )) +CR_OUT_OF_MEMORY = make_flag("CR_OUT_OF_MEMORY", ( 0x00000002 )) +CR_INVALID_POINTER = make_flag("CR_INVALID_POINTER", ( 0x00000003 )) +CR_INVALID_FLAG = make_flag("CR_INVALID_FLAG", ( 0x00000004 )) +CR_INVALID_DEVNODE = make_flag("CR_INVALID_DEVNODE", ( 0x00000005 )) +CR_INVALID_DEVINST = make_flag("CR_INVALID_DEVINST", CR_INVALID_DEVNODE) +CR_INVALID_RES_DES = make_flag("CR_INVALID_RES_DES", ( 0x00000006 )) +CR_INVALID_LOG_CONF = make_flag("CR_INVALID_LOG_CONF", ( 0x00000007 )) +CR_INVALID_ARBITRATOR = make_flag("CR_INVALID_ARBITRATOR", ( 0x00000008 )) +CR_INVALID_NODELIST = make_flag("CR_INVALID_NODELIST", ( 0x00000009 )) +CR_DEVNODE_HAS_REQS = make_flag("CR_DEVNODE_HAS_REQS", ( 0x0000000A )) +CR_DEVINST_HAS_REQS = make_flag("CR_DEVINST_HAS_REQS", CR_DEVNODE_HAS_REQS) +CR_INVALID_RESOURCEID = make_flag("CR_INVALID_RESOURCEID", ( 0x0000000B )) +CR_DLVXD_NOT_FOUND = make_flag("CR_DLVXD_NOT_FOUND", ( 0x0000000C )) +CR_NO_SUCH_DEVNODE = make_flag("CR_NO_SUCH_DEVNODE", ( 0x0000000D )) +CR_NO_SUCH_DEVINST = make_flag("CR_NO_SUCH_DEVINST", CR_NO_SUCH_DEVNODE) +CR_NO_MORE_LOG_CONF = make_flag("CR_NO_MORE_LOG_CONF", ( 0x0000000E )) +CR_NO_MORE_RES_DES = make_flag("CR_NO_MORE_RES_DES", ( 0x0000000F )) +CR_ALREADY_SUCH_DEVNODE = make_flag("CR_ALREADY_SUCH_DEVNODE", ( 0x00000010 )) +CR_ALREADY_SUCH_DEVINST = make_flag("CR_ALREADY_SUCH_DEVINST", CR_ALREADY_SUCH_DEVNODE) +CR_INVALID_RANGE_LIST = make_flag("CR_INVALID_RANGE_LIST", ( 0x00000011 )) +CR_INVALID_RANGE = make_flag("CR_INVALID_RANGE", ( 0x00000012 )) +CR_FAILURE = make_flag("CR_FAILURE", ( 0x00000013 )) +CR_NO_SUCH_LOGICAL_DEV = make_flag("CR_NO_SUCH_LOGICAL_DEV", ( 0x00000014 )) +CR_CREATE_BLOCKED = make_flag("CR_CREATE_BLOCKED", ( 0x00000015 )) +CR_NOT_SYSTEM_VM = make_flag("CR_NOT_SYSTEM_VM", ( 0x00000016 )) +CR_REMOVE_VETOED = make_flag("CR_REMOVE_VETOED", ( 0x00000017 )) +CR_APM_VETOED = make_flag("CR_APM_VETOED", ( 0x00000018 )) +CR_INVALID_LOAD_TYPE = make_flag("CR_INVALID_LOAD_TYPE", ( 0x00000019 )) +CR_BUFFER_SMALL = make_flag("CR_BUFFER_SMALL", ( 0x0000001A )) +CR_NO_ARBITRATOR = make_flag("CR_NO_ARBITRATOR", ( 0x0000001B )) +CR_NO_REGISTRY_HANDLE = make_flag("CR_NO_REGISTRY_HANDLE", ( 0x0000001C )) +CR_REGISTRY_ERROR = make_flag("CR_REGISTRY_ERROR", ( 0x0000001D )) +CR_INVALID_DEVICE_ID = make_flag("CR_INVALID_DEVICE_ID", ( 0x0000001E )) +CR_INVALID_DATA = make_flag("CR_INVALID_DATA", ( 0x0000001F )) +CR_INVALID_API = make_flag("CR_INVALID_API", ( 0x00000020 )) +CR_DEVLOADER_NOT_READY = make_flag("CR_DEVLOADER_NOT_READY", ( 0x00000021 )) +CR_NEED_RESTART = make_flag("CR_NEED_RESTART", ( 0x00000022 )) +CR_NO_MORE_HW_PROFILES = make_flag("CR_NO_MORE_HW_PROFILES", ( 0x00000023 )) +CR_DEVICE_NOT_THERE = make_flag("CR_DEVICE_NOT_THERE", ( 0x00000024 )) +CR_NO_SUCH_VALUE = make_flag("CR_NO_SUCH_VALUE", ( 0x00000025 )) +CR_WRONG_TYPE = make_flag("CR_WRONG_TYPE", ( 0x00000026 )) +CR_INVALID_PRIORITY = make_flag("CR_INVALID_PRIORITY", ( 0x00000027 )) +CR_NOT_DISABLEABLE = make_flag("CR_NOT_DISABLEABLE", ( 0x00000028 )) +CR_FREE_RESOURCES = make_flag("CR_FREE_RESOURCES", ( 0x00000029 )) +CR_QUERY_VETOED = make_flag("CR_QUERY_VETOED", ( 0x0000002A )) +CR_CANT_SHARE_IRQ = make_flag("CR_CANT_SHARE_IRQ", ( 0x0000002B )) +CR_NO_DEPENDENT = make_flag("CR_NO_DEPENDENT", ( 0x0000002C )) +CR_SAME_RESOURCES = make_flag("CR_SAME_RESOURCES", ( 0x0000002D )) +CR_NO_SUCH_REGISTRY_KEY = make_flag("CR_NO_SUCH_REGISTRY_KEY", ( 0x0000002E )) +CR_INVALID_MACHINENAME = make_flag("CR_INVALID_MACHINENAME", ( 0x0000002F )) +CR_REMOTE_COMM_FAILURE = make_flag("CR_REMOTE_COMM_FAILURE", ( 0x00000030 )) +CR_MACHINE_UNAVAILABLE = make_flag("CR_MACHINE_UNAVAILABLE", ( 0x00000031 )) +CR_NO_CM_SERVICES = make_flag("CR_NO_CM_SERVICES", ( 0x00000032 )) +CR_ACCESS_DENIED = make_flag("CR_ACCESS_DENIED", ( 0x00000033 )) +CR_CALL_NOT_IMPLEMENTED = make_flag("CR_CALL_NOT_IMPLEMENTED", ( 0x00000034 )) +CR_INVALID_PROPERTY = make_flag("CR_INVALID_PROPERTY", ( 0x00000035 )) +CR_DEVICE_INTERFACE_ACTIVE = make_flag("CR_DEVICE_INTERFACE_ACTIVE", ( 0x00000036 )) +CR_NO_SUCH_DEVICE_INTERFACE = make_flag("CR_NO_SUCH_DEVICE_INTERFACE", ( 0x00000037 )) +CR_INVALID_REFERENCE_STRING = make_flag("CR_INVALID_REFERENCE_STRING", ( 0x00000038 )) +CR_INVALID_CONFLICT_LIST = make_flag("CR_INVALID_CONFLICT_LIST", ( 0x00000039 )) +CR_INVALID_INDEX = make_flag("CR_INVALID_INDEX", ( 0x0000003A )) +CR_INVALID_STRUCTURE_SIZE = make_flag("CR_INVALID_STRUCTURE_SIZE", ( 0x0000003B )) +NUM_CR_RESULTS = make_flag("NUM_CR_RESULTS", ( 0x0000003C )) +PCD_MAX_MEMORY = make_flag("PCD_MAX_MEMORY", 2) +PCD_MAX_IO = make_flag("PCD_MAX_IO", 2) +CWCSTORAGENAME = make_flag("CWCSTORAGENAME", 32) +STGM_DIRECT = make_flag("STGM_DIRECT", 0x00000000) +STGM_TRANSACTED = make_flag("STGM_TRANSACTED", 0x00010000) +STGM_SIMPLE = make_flag("STGM_SIMPLE", 0x08000000) +STGM_READ = make_flag("STGM_READ", 0x00000000) +STGM_WRITE = make_flag("STGM_WRITE", 0x00000001) +STGM_READWRITE = make_flag("STGM_READWRITE", 0x00000002) +STGM_SHARE_DENY_NONE = make_flag("STGM_SHARE_DENY_NONE", 0x00000040) +STGM_SHARE_DENY_READ = make_flag("STGM_SHARE_DENY_READ", 0x00000030) +STGM_SHARE_DENY_WRITE = make_flag("STGM_SHARE_DENY_WRITE", 0x00000020) +STGM_SHARE_EXCLUSIVE = make_flag("STGM_SHARE_EXCLUSIVE", 0x00000010) +STGM_PRIORITY = make_flag("STGM_PRIORITY", 0x00040000) +STGM_DELETEONRELEASE = make_flag("STGM_DELETEONRELEASE", 0x04000000) +STGM_NOSCRATCH = make_flag("STGM_NOSCRATCH", 0x00100000) +STGM_CREATE = make_flag("STGM_CREATE", 0x00001000) +STGM_CONVERT = make_flag("STGM_CONVERT", 0x00020000) +STGM_FAILIFTHERE = make_flag("STGM_FAILIFTHERE", 0x00000000) +STGM_NOSNAPSHOT = make_flag("STGM_NOSNAPSHOT", 0x00200000) +STGM_DIRECT_SWMR = make_flag("STGM_DIRECT_SWMR", 0x00400000) +ASYNC_MODE_COMPATIBILITY = make_flag("ASYNC_MODE_COMPATIBILITY", 0x00000001) +ASYNC_MODE_DEFAULT = make_flag("ASYNC_MODE_DEFAULT", 0x00000000) +STGTY_REPEAT = make_flag("STGTY_REPEAT", 0x00000100) +STG_TOEND = make_flag("STG_TOEND", 0xFFFFFFFF) +STG_LAYOUT_SEQUENTIAL = make_flag("STG_LAYOUT_SEQUENTIAL", 0x00000000) +STG_LAYOUT_INTERLEAVED = make_flag("STG_LAYOUT_INTERLEAVED", 0x00000001) +STGFMT_STORAGE = make_flag("STGFMT_STORAGE", 0) +STGFMT_NATIVE = make_flag("STGFMT_NATIVE", 1) +STGFMT_FILE = make_flag("STGFMT_FILE", 3) +STGFMT_ANY = make_flag("STGFMT_ANY", 4) +STGFMT_DOCFILE = make_flag("STGFMT_DOCFILE", 5) +STGFMT_DOCUMENT = make_flag("STGFMT_DOCUMENT", 0) +ALG_CLASS_ANY = make_flag("ALG_CLASS_ANY", ( 0 )) +ALG_CLASS_SIGNATURE = make_flag("ALG_CLASS_SIGNATURE", ( 1 << 13 )) +ALG_CLASS_MSG_ENCRYPT = make_flag("ALG_CLASS_MSG_ENCRYPT", ( 2 << 13 )) +ALG_CLASS_DATA_ENCRYPT = make_flag("ALG_CLASS_DATA_ENCRYPT", ( 3 << 13 )) +ALG_CLASS_HASH = make_flag("ALG_CLASS_HASH", ( 4 << 13 )) +ALG_CLASS_KEY_EXCHANGE = make_flag("ALG_CLASS_KEY_EXCHANGE", ( 5 << 13 )) +ALG_CLASS_ALL = make_flag("ALG_CLASS_ALL", ( 7 << 13 )) +ALG_TYPE_ANY = make_flag("ALG_TYPE_ANY", ( 0 )) +ALG_TYPE_DSS = make_flag("ALG_TYPE_DSS", ( 1 << 9 )) +ALG_TYPE_RSA = make_flag("ALG_TYPE_RSA", ( 2 << 9 )) +ALG_TYPE_BLOCK = make_flag("ALG_TYPE_BLOCK", ( 3 << 9 )) +ALG_TYPE_STREAM = make_flag("ALG_TYPE_STREAM", ( 4 << 9 )) +ALG_TYPE_DH = make_flag("ALG_TYPE_DH", ( 5 << 9 )) +ALG_TYPE_SECURECHANNEL = make_flag("ALG_TYPE_SECURECHANNEL", ( 6 << 9 )) +ALG_TYPE_ECDH = make_flag("ALG_TYPE_ECDH", ( 7 << 9 )) +ALG_SID_ANY = make_flag("ALG_SID_ANY", ( 0 )) +ALG_SID_RSA_ANY = make_flag("ALG_SID_RSA_ANY", 0) +ALG_SID_RSA_PKCS = make_flag("ALG_SID_RSA_PKCS", 1) +ALG_SID_RSA_MSATWORK = make_flag("ALG_SID_RSA_MSATWORK", 2) +ALG_SID_RSA_ENTRUST = make_flag("ALG_SID_RSA_ENTRUST", 3) +ALG_SID_RSA_PGP = make_flag("ALG_SID_RSA_PGP", 4) +ALG_SID_DSS_ANY = make_flag("ALG_SID_DSS_ANY", 0) +ALG_SID_DSS_PKCS = make_flag("ALG_SID_DSS_PKCS", 1) +ALG_SID_DSS_DMS = make_flag("ALG_SID_DSS_DMS", 2) +ALG_SID_ECDSA = make_flag("ALG_SID_ECDSA", 3) +ALG_SID_DES = make_flag("ALG_SID_DES", 1) +ALG_SID_3DES = make_flag("ALG_SID_3DES", 3) +ALG_SID_DESX = make_flag("ALG_SID_DESX", 4) +ALG_SID_IDEA = make_flag("ALG_SID_IDEA", 5) +ALG_SID_CAST = make_flag("ALG_SID_CAST", 6) +ALG_SID_SAFERSK64 = make_flag("ALG_SID_SAFERSK64", 7) +ALG_SID_SAFERSK128 = make_flag("ALG_SID_SAFERSK128", 8) +ALG_SID_3DES_112 = make_flag("ALG_SID_3DES_112", 9) +ALG_SID_CYLINK_MEK = make_flag("ALG_SID_CYLINK_MEK", 12) +ALG_SID_RC5 = make_flag("ALG_SID_RC5", 13) +ALG_SID_AES_128 = make_flag("ALG_SID_AES_128", 14) +ALG_SID_AES_192 = make_flag("ALG_SID_AES_192", 15) +ALG_SID_AES_256 = make_flag("ALG_SID_AES_256", 16) +ALG_SID_AES = make_flag("ALG_SID_AES", 17) +ALG_SID_SKIPJACK = make_flag("ALG_SID_SKIPJACK", 10) +ALG_SID_TEK = make_flag("ALG_SID_TEK", 11) +ALG_SID_DH_SANDF = make_flag("ALG_SID_DH_SANDF", 1) +ALG_SID_DH_EPHEM = make_flag("ALG_SID_DH_EPHEM", 2) +ALG_SID_AGREED_KEY_ANY = make_flag("ALG_SID_AGREED_KEY_ANY", 3) +ALG_SID_KEA = make_flag("ALG_SID_KEA", 4) +ALG_SID_ECDH = make_flag("ALG_SID_ECDH", 5) +ALG_SID_ECDH_EPHEM = make_flag("ALG_SID_ECDH_EPHEM", 6) +ALG_SID_RC4 = make_flag("ALG_SID_RC4", 1) +ALG_SID_RC2 = make_flag("ALG_SID_RC2", 2) +ALG_SID_SEAL = make_flag("ALG_SID_SEAL", 2) +ALG_SID_MD2 = make_flag("ALG_SID_MD2", 1) +ALG_SID_MD4 = make_flag("ALG_SID_MD4", 2) +ALG_SID_MD5 = make_flag("ALG_SID_MD5", 3) +ALG_SID_SHA = make_flag("ALG_SID_SHA", 4) +ALG_SID_SHA1 = make_flag("ALG_SID_SHA1", ALG_SID_SHA) +ALG_SID_MAC = make_flag("ALG_SID_MAC", 5) +ALG_SID_RIPEMD = make_flag("ALG_SID_RIPEMD", 6) +ALG_SID_RIPEMD160 = make_flag("ALG_SID_RIPEMD160", 7) +ALG_SID_SSL3SHAMD5 = make_flag("ALG_SID_SSL3SHAMD5", 8) +ALG_SID_HMAC = make_flag("ALG_SID_HMAC", 9) +ALG_SID_TLS1PRF = make_flag("ALG_SID_TLS1PRF", 10) +ALG_SID_HASH_REPLACE_OWF = make_flag("ALG_SID_HASH_REPLACE_OWF", 11) +ALG_SID_SHA_256 = make_flag("ALG_SID_SHA_256", 12) +ALG_SID_SHA_384 = make_flag("ALG_SID_SHA_384", 13) +ALG_SID_SHA_512 = make_flag("ALG_SID_SHA_512", 14) +ALG_SID_SSL3_MASTER = make_flag("ALG_SID_SSL3_MASTER", 1) +ALG_SID_SCHANNEL_MASTER_HASH = make_flag("ALG_SID_SCHANNEL_MASTER_HASH", 2) +ALG_SID_SCHANNEL_MAC_KEY = make_flag("ALG_SID_SCHANNEL_MAC_KEY", 3) +ALG_SID_PCT1_MASTER = make_flag("ALG_SID_PCT1_MASTER", 4) +ALG_SID_SSL2_MASTER = make_flag("ALG_SID_SSL2_MASTER", 5) +ALG_SID_TLS1_MASTER = make_flag("ALG_SID_TLS1_MASTER", 6) +ALG_SID_SCHANNEL_ENC_KEY = make_flag("ALG_SID_SCHANNEL_ENC_KEY", 7) +ALG_SID_EXAMPLE = make_flag("ALG_SID_EXAMPLE", 80) +ALG_SID_ECMQV = make_flag("ALG_SID_ECMQV", 1) +CALG_MD2 = make_flag("CALG_MD2", ( ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD2 )) +CALG_MD4 = make_flag("CALG_MD4", ( ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD4 )) +CALG_MD5 = make_flag("CALG_MD5", ( ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD5 )) +CALG_SHA = make_flag("CALG_SHA", ( ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA )) +CALG_SHA1 = make_flag("CALG_SHA1", CALG_SHA) +CALG_MAC = make_flag("CALG_MAC", ( ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MAC )) +CALG_SSL3_SHAMD5 = make_flag("CALG_SSL3_SHAMD5", ( ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SSL3SHAMD5 )) +CALG_HMAC = make_flag("CALG_HMAC", ( ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HMAC )) +CALG_TLS1PRF = make_flag("CALG_TLS1PRF", ( ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_TLS1PRF )) +CALG_HASH_REPLACE_OWF = make_flag("CALG_HASH_REPLACE_OWF", ( ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HASH_REPLACE_OWF )) +CALG_SHA_256 = make_flag("CALG_SHA_256", ( ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256 )) +CALG_SHA_384 = make_flag("CALG_SHA_384", ( ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384 )) +CALG_SHA_512 = make_flag("CALG_SHA_512", ( ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512 )) +CALG_RSA_SIGN = make_flag("CALG_RSA_SIGN", ( ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY )) +CALG_DSS_SIGN = make_flag("CALG_DSS_SIGN", ( ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY )) +CALG_NO_SIGN = make_flag("CALG_NO_SIGN", ( ALG_CLASS_SIGNATURE | ALG_TYPE_ANY | ALG_SID_ANY )) +CALG_ECDSA = make_flag("CALG_ECDSA", ( ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_ECDSA )) +CALG_DH_SF = make_flag("CALG_DH_SF", ( ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_DH_SANDF )) +CALG_DH_EPHEM = make_flag("CALG_DH_EPHEM", ( ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_DH_EPHEM )) +CALG_AGREEDKEY_ANY = make_flag("CALG_AGREEDKEY_ANY", ( ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_AGREED_KEY_ANY )) +CALG_KEA_KEYX = make_flag("CALG_KEA_KEYX", ( ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_KEA )) +CALG_HUGHES_MD5 = make_flag("CALG_HUGHES_MD5", ( ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ANY | ALG_SID_MD5 )) +CALG_ECDH = make_flag("CALG_ECDH", ( ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_ECDH )) +CALG_ECDH_EPHEM = make_flag("CALG_ECDH_EPHEM", ( ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ECDH | ALG_SID_ECDH_EPHEM )) +CALG_RSA_KEYX = make_flag("CALG_RSA_KEYX", ( ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_RSA | ALG_SID_RSA_ANY )) +CALG_ECMQV = make_flag("CALG_ECMQV", ( ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ANY | ALG_SID_ECMQV )) +CALG_DES = make_flag("CALG_DES", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DES )) +CALG_RC2 = make_flag("CALG_RC2", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_RC2 )) +CALG_3DES = make_flag("CALG_3DES", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_3DES )) +CALG_3DES_112 = make_flag("CALG_3DES_112", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_3DES_112 )) +CALG_DESX = make_flag("CALG_DESX", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DESX )) +CALG_AES_128 = make_flag("CALG_AES_128", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_128 )) +CALG_AES_192 = make_flag("CALG_AES_192", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_192 )) +CALG_AES_256 = make_flag("CALG_AES_256", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_256 )) +CALG_AES = make_flag("CALG_AES", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES )) +CALG_RC4 = make_flag("CALG_RC4", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC4 )) +CALG_SEAL = make_flag("CALG_SEAL", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_SEAL )) +CALG_RC5 = make_flag("CALG_RC5", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC5 )) +CALG_SKIPJACK = make_flag("CALG_SKIPJACK", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_SKIPJACK )) +CALG_TEK = make_flag("CALG_TEK", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_TEK )) +CALG_CYLINK_MEK = make_flag("CALG_CYLINK_MEK", ( ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_CYLINK_MEK )) +CALG_SSL3_MASTER = make_flag("CALG_SSL3_MASTER", ( ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SSL3_MASTER )) +CALG_SCHANNEL_MASTER_HASH = make_flag("CALG_SCHANNEL_MASTER_HASH", ( ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_MASTER_HASH )) +CALG_SCHANNEL_MAC_KEY = make_flag("CALG_SCHANNEL_MAC_KEY", ( ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_MAC_KEY )) +CALG_SCHANNEL_ENC_KEY = make_flag("CALG_SCHANNEL_ENC_KEY", ( ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_ENC_KEY )) +CALG_PCT1_MASTER = make_flag("CALG_PCT1_MASTER", ( ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_PCT1_MASTER )) +CALG_SSL2_MASTER = make_flag("CALG_SSL2_MASTER", ( ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SSL2_MASTER )) +CALG_TLS1_MASTER = make_flag("CALG_TLS1_MASTER", ( ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_TLS1_MASTER )) +CRYPT_FLAG_PCT1 = make_flag("CRYPT_FLAG_PCT1", 0x0001) +CRYPT_FLAG_SSL2 = make_flag("CRYPT_FLAG_SSL2", 0x0002) +CRYPT_FLAG_SSL3 = make_flag("CRYPT_FLAG_SSL3", 0x0004) +CRYPT_FLAG_TLS1 = make_flag("CRYPT_FLAG_TLS1", 0x0008) +CRYPT_FLAG_IPSEC = make_flag("CRYPT_FLAG_IPSEC", 0x0010) +CRYPT_FLAG_SIGNING = make_flag("CRYPT_FLAG_SIGNING", 0x0020) +HP_ALGID = make_flag("HP_ALGID", 0x0001) +HP_HASHVAL = make_flag("HP_HASHVAL", 0x0002) +HP_HASHSIZE = make_flag("HP_HASHSIZE", 0x0004) +HP_HMAC_INFO = make_flag("HP_HMAC_INFO", 0x0005) +HP_TLS1PRF_LABEL = make_flag("HP_TLS1PRF_LABEL", 0x0006) +HP_TLS1PRF_SEED = make_flag("HP_TLS1PRF_SEED", 0x0007) +RPC_REQUEST_TYPE_CALL = make_flag("RPC_REQUEST_TYPE_CALL", 0) +RPC_REQUEST_TYPE_BIND = make_flag("RPC_REQUEST_TYPE_BIND", 1) +RPC_RESPONSE_TYPE_BIND_OK = make_flag("RPC_RESPONSE_TYPE_BIND_OK", 1) +RPC_RESPONSE_TYPE_FAIL = make_flag("RPC_RESPONSE_TYPE_FAIL", 2) +RPC_RESPONSE_TYPE_SUCCESS = make_flag("RPC_RESPONSE_TYPE_SUCCESS", 3) +BIND_IF_SYNTAX_NDR32 = make_flag("BIND_IF_SYNTAX_NDR32", 1) +BIND_IF_SYNTAX_NDR64 = make_flag("BIND_IF_SYNTAX_NDR64", 2) +BIND_IF_SYNTAX_UNKNOWN = make_flag("BIND_IF_SYNTAX_UNKNOWN", 4) +FILE_DEVICE_8042_PORT = make_flag("FILE_DEVICE_8042_PORT", 0x00000027) +FILE_DEVICE_ACPI = make_flag("FILE_DEVICE_ACPI", 0x00000032) +FILE_DEVICE_BATTERY = make_flag("FILE_DEVICE_BATTERY", 0x00000029) +FILE_DEVICE_BEEP = make_flag("FILE_DEVICE_BEEP", 0x00000001) +FILE_DEVICE_BUS_EXTENDER = make_flag("FILE_DEVICE_BUS_EXTENDER", 0x0000002a) +FILE_DEVICE_CD_ROM = make_flag("FILE_DEVICE_CD_ROM", 0x00000002) +FILE_DEVICE_CD_ROM_FILE_SYSTEM = make_flag("FILE_DEVICE_CD_ROM_FILE_SYSTEM", 0x00000003) +FILE_DEVICE_CHANGER = make_flag("FILE_DEVICE_CHANGER", 0x00000030) +FILE_DEVICE_CONTROLLER = make_flag("FILE_DEVICE_CONTROLLER", 0x00000004) +FILE_DEVICE_DATALINK = make_flag("FILE_DEVICE_DATALINK", 0x00000005) +FILE_DEVICE_DFS = make_flag("FILE_DEVICE_DFS", 0x00000006) +FILE_DEVICE_DFS_FILE_SYSTEM = make_flag("FILE_DEVICE_DFS_FILE_SYSTEM", 0x00000035) +FILE_DEVICE_DFS_VOLUME = make_flag("FILE_DEVICE_DFS_VOLUME", 0x00000036) +FILE_DEVICE_DISK = make_flag("FILE_DEVICE_DISK", 0x00000007) +FILE_DEVICE_DISK_FILE_SYSTEM = make_flag("FILE_DEVICE_DISK_FILE_SYSTEM", 0x00000008) +FILE_DEVICE_DVD = make_flag("FILE_DEVICE_DVD", 0x00000033) +FILE_DEVICE_FILE_SYSTEM = make_flag("FILE_DEVICE_FILE_SYSTEM", 0x00000009) +FILE_DEVICE_FIPS = make_flag("FILE_DEVICE_FIPS", 0x0000003a) +FILE_DEVICE_FULLSCREEN_VIDEO = make_flag("FILE_DEVICE_FULLSCREEN_VIDEO", 0x00000034) +FILE_DEVICE_INPORT_PORT = make_flag("FILE_DEVICE_INPORT_PORT", 0x0000000a) +FILE_DEVICE_KEYBOARD = make_flag("FILE_DEVICE_KEYBOARD", 0x0000000b) +FILE_DEVICE_KS = make_flag("FILE_DEVICE_KS", 0x0000002f) +FILE_DEVICE_KSEC = make_flag("FILE_DEVICE_KSEC", 0x00000039) +FILE_DEVICE_MAILSLOT = make_flag("FILE_DEVICE_MAILSLOT", 0x0000000c) +FILE_DEVICE_MASS_STORAGE = make_flag("FILE_DEVICE_MASS_STORAGE", 0x0000002d) +FILE_DEVICE_MIDI_IN = make_flag("FILE_DEVICE_MIDI_IN", 0x0000000d) +FILE_DEVICE_MIDI_OUT = make_flag("FILE_DEVICE_MIDI_OUT", 0x0000000e) +FILE_DEVICE_MODEM = make_flag("FILE_DEVICE_MODEM", 0x0000002b) +FILE_DEVICE_MOUSE = make_flag("FILE_DEVICE_MOUSE", 0x0000000f) +FILE_DEVICE_MULTI_UNC_PROVIDER = make_flag("FILE_DEVICE_MULTI_UNC_PROVIDER", 0x00000010) +FILE_DEVICE_NAMED_PIPE = make_flag("FILE_DEVICE_NAMED_PIPE", 0x00000011) +FILE_DEVICE_NETWORK = make_flag("FILE_DEVICE_NETWORK", 0x00000012) +FILE_DEVICE_NETWORK_BROWSER = make_flag("FILE_DEVICE_NETWORK_BROWSER", 0x00000013) +FILE_DEVICE_NETWORK_FILE_SYSTEM = make_flag("FILE_DEVICE_NETWORK_FILE_SYSTEM", 0x00000014) +FILE_DEVICE_NETWORK_REDIRECTOR = make_flag("FILE_DEVICE_NETWORK_REDIRECTOR", 0x00000028) +FILE_DEVICE_NULL = make_flag("FILE_DEVICE_NULL", 0x00000015) +FILE_DEVICE_PARALLEL_PORT = make_flag("FILE_DEVICE_PARALLEL_PORT", 0x00000016) +FILE_DEVICE_PHYSICAL_NETCARD = make_flag("FILE_DEVICE_PHYSICAL_NETCARD", 0x00000017) +FILE_DEVICE_PRINTER = make_flag("FILE_DEVICE_PRINTER", 0x00000018) +FILE_DEVICE_SCANNER = make_flag("FILE_DEVICE_SCANNER", 0x00000019) +FILE_DEVICE_SCREEN = make_flag("FILE_DEVICE_SCREEN", 0x0000001c) +FILE_DEVICE_SERENUM = make_flag("FILE_DEVICE_SERENUM", 0x00000037) +FILE_DEVICE_SERIAL_MOUSE_PORT = make_flag("FILE_DEVICE_SERIAL_MOUSE_PORT", 0x0000001a) +FILE_DEVICE_SERIAL_PORT = make_flag("FILE_DEVICE_SERIAL_PORT", 0x0000001b) +FILE_DEVICE_SMARTCARD = make_flag("FILE_DEVICE_SMARTCARD", 0x00000031) +FILE_DEVICE_SMB = make_flag("FILE_DEVICE_SMB", 0x0000002e) +FILE_DEVICE_SOUND = make_flag("FILE_DEVICE_SOUND", 0x0000001d) +FILE_DEVICE_STREAMS = make_flag("FILE_DEVICE_STREAMS", 0x0000001e) +FILE_DEVICE_TAPE = make_flag("FILE_DEVICE_TAPE", 0x0000001f) +FILE_DEVICE_TAPE_FILE_SYSTEM = make_flag("FILE_DEVICE_TAPE_FILE_SYSTEM", 0x00000020) +FILE_DEVICE_TERMSRV = make_flag("FILE_DEVICE_TERMSRV", 0x00000038) +FILE_DEVICE_TRANSPORT = make_flag("FILE_DEVICE_TRANSPORT", 0x00000021) +FILE_DEVICE_UNKNOWN = make_flag("FILE_DEVICE_UNKNOWN", 0x00000022) +FILE_DEVICE_VDM = make_flag("FILE_DEVICE_VDM", 0x0000002c) +FILE_DEVICE_VIDEO = make_flag("FILE_DEVICE_VIDEO", 0x00000023) +FILE_DEVICE_VIRTUAL_DISK = make_flag("FILE_DEVICE_VIRTUAL_DISK", 0x00000024) +FILE_DEVICE_WAVE_IN = make_flag("FILE_DEVICE_WAVE_IN", 0x00000025) +FILE_DEVICE_WAVE_OUT = make_flag("FILE_DEVICE_WAVE_OUT", 0x00000026) +VIRTUAL_STORAGE_TYPE_DEVICE_UNKNOWN = make_flag("VIRTUAL_STORAGE_TYPE_DEVICE_UNKNOWN", 0) +VIRTUAL_STORAGE_TYPE_DEVICE_ISO = make_flag("VIRTUAL_STORAGE_TYPE_DEVICE_ISO", 1) +VIRTUAL_STORAGE_TYPE_DEVICE_VHD = make_flag("VIRTUAL_STORAGE_TYPE_DEVICE_VHD", 2) +VIRTUAL_STORAGE_TYPE_DEVICE_VHDX = make_flag("VIRTUAL_STORAGE_TYPE_DEVICE_VHDX", 3) +CRYPTPROTECT_PROMPT_ON_UNPROTECT = make_flag("CRYPTPROTECT_PROMPT_ON_UNPROTECT", 0x1) +CRYPTPROTECT_PROMPT_ON_PROTECT = make_flag("CRYPTPROTECT_PROMPT_ON_PROTECT", 0x2) +CRYPTPROTECT_PROMPT_RESERVED = make_flag("CRYPTPROTECT_PROMPT_RESERVED", 0x04) +CRYPTPROTECT_PROMPT_STRONG = make_flag("CRYPTPROTECT_PROMPT_STRONG", 0x08) +CRYPTPROTECT_PROMPT_REQUIRE_STRONG = make_flag("CRYPTPROTECT_PROMPT_REQUIRE_STRONG", 0x10) +CRYPTPROTECT_UI_FORBIDDEN = make_flag("CRYPTPROTECT_UI_FORBIDDEN", 0x1) +CRYPTPROTECT_LOCAL_MACHINE = make_flag("CRYPTPROTECT_LOCAL_MACHINE", 0x4) +CRYPTPROTECT_CRED_SYNC = make_flag("CRYPTPROTECT_CRED_SYNC", 0x8) +CRYPTPROTECT_AUDIT = make_flag("CRYPTPROTECT_AUDIT", 0x10) +CRYPTPROTECT_NO_RECOVERY = make_flag("CRYPTPROTECT_NO_RECOVERY", 0x20) +CRYPTPROTECT_VERIFY_PROTECTION = make_flag("CRYPTPROTECT_VERIFY_PROTECTION", 0x40) +CRYPTPROTECT_CRED_REGENERATE = make_flag("CRYPTPROTECT_CRED_REGENERATE", 0x80) +CRYPTPROTECT_FIRST_RESERVED_FLAGVAL = make_flag("CRYPTPROTECT_FIRST_RESERVED_FLAGVAL", 0x0FFFFFFF) +CRYPTPROTECT_LAST_RESERVED_FLAGVAL = make_flag("CRYPTPROTECT_LAST_RESERVED_FLAGVAL", 0xFFFFFFFF) +CRYPTPROTECTMEMORY_BLOCK_SIZE = make_flag("CRYPTPROTECTMEMORY_BLOCK_SIZE", 16) +CRYPTPROTECTMEMORY_SAME_PROCESS = make_flag("CRYPTPROTECTMEMORY_SAME_PROCESS", 0x00) +CRYPTPROTECTMEMORY_CROSS_PROCESS = make_flag("CRYPTPROTECTMEMORY_CROSS_PROCESS", 0x01) +CRYPTPROTECTMEMORY_SAME_LOGON = make_flag("CRYPTPROTECTMEMORY_SAME_LOGON", 0x02) +PRODUCT_UNDEFINED = make_flag("PRODUCT_UNDEFINED", 0x00000000) +PRODUCT_ULTIMATE = make_flag("PRODUCT_ULTIMATE", 0x00000001) +PRODUCT_HOME_BASIC = make_flag("PRODUCT_HOME_BASIC", 0x00000002) +PRODUCT_HOME_PREMIUM = make_flag("PRODUCT_HOME_PREMIUM", 0x00000003) +PRODUCT_ENTERPRISE = make_flag("PRODUCT_ENTERPRISE", 0x00000004) +PRODUCT_HOME_BASIC_N = make_flag("PRODUCT_HOME_BASIC_N", 0x00000005) +PRODUCT_BUSINESS = make_flag("PRODUCT_BUSINESS", 0x00000006) +PRODUCT_STANDARD_SERVER = make_flag("PRODUCT_STANDARD_SERVER", 0x00000007) +PRODUCT_DATACENTER_SERVER = make_flag("PRODUCT_DATACENTER_SERVER", 0x00000008) +PRODUCT_SMALLBUSINESS_SERVER = make_flag("PRODUCT_SMALLBUSINESS_SERVER", 0x00000009) +PRODUCT_ENTERPRISE_SERVER = make_flag("PRODUCT_ENTERPRISE_SERVER", 0x0000000A) +PRODUCT_STARTER = make_flag("PRODUCT_STARTER", 0x0000000B) +PRODUCT_DATACENTER_SERVER_CORE = make_flag("PRODUCT_DATACENTER_SERVER_CORE", 0x0000000C) +PRODUCT_STANDARD_SERVER_CORE = make_flag("PRODUCT_STANDARD_SERVER_CORE", 0x0000000D) +PRODUCT_ENTERPRISE_SERVER_CORE = make_flag("PRODUCT_ENTERPRISE_SERVER_CORE", 0x0000000E) +PRODUCT_ENTERPRISE_SERVER_IA64 = make_flag("PRODUCT_ENTERPRISE_SERVER_IA64", 0x0000000F) +PRODUCT_BUSINESS_N = make_flag("PRODUCT_BUSINESS_N", 0x00000010) +PRODUCT_WEB_SERVER = make_flag("PRODUCT_WEB_SERVER", 0x00000011) +PRODUCT_CLUSTER_SERVER = make_flag("PRODUCT_CLUSTER_SERVER", 0x00000012) +PRODUCT_HOME_SERVER = make_flag("PRODUCT_HOME_SERVER", 0x00000013) +PRODUCT_STORAGE_EXPRESS_SERVER = make_flag("PRODUCT_STORAGE_EXPRESS_SERVER", 0x00000014) +PRODUCT_STORAGE_STANDARD_SERVER = make_flag("PRODUCT_STORAGE_STANDARD_SERVER", 0x00000015) +PRODUCT_STORAGE_WORKGROUP_SERVER = make_flag("PRODUCT_STORAGE_WORKGROUP_SERVER", 0x00000016) +PRODUCT_STORAGE_ENTERPRISE_SERVER = make_flag("PRODUCT_STORAGE_ENTERPRISE_SERVER", 0x00000017) +PRODUCT_SERVER_FOR_SMALLBUSINESS = make_flag("PRODUCT_SERVER_FOR_SMALLBUSINESS", 0x00000018) +PRODUCT_SMALLBUSINESS_SERVER_PREMIUM = make_flag("PRODUCT_SMALLBUSINESS_SERVER_PREMIUM", 0x00000019) +PRODUCT_HOME_PREMIUM_N = make_flag("PRODUCT_HOME_PREMIUM_N", 0x0000001A) +PRODUCT_ENTERPRISE_N = make_flag("PRODUCT_ENTERPRISE_N", 0x0000001B) +PRODUCT_ULTIMATE_N = make_flag("PRODUCT_ULTIMATE_N", 0x0000001C) +PRODUCT_WEB_SERVER_CORE = make_flag("PRODUCT_WEB_SERVER_CORE", 0x0000001D) +PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT = make_flag("PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT", 0x0000001E) +PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY = make_flag("PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY", 0x0000001F) +PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING = make_flag("PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING", 0x00000020) +PRODUCT_SERVER_FOUNDATION = make_flag("PRODUCT_SERVER_FOUNDATION", 0x00000021) +PRODUCT_HOME_PREMIUM_SERVER = make_flag("PRODUCT_HOME_PREMIUM_SERVER", 0x00000022) +PRODUCT_SERVER_FOR_SMALLBUSINESS_V = make_flag("PRODUCT_SERVER_FOR_SMALLBUSINESS_V", 0x00000023) +PRODUCT_STANDARD_SERVER_V = make_flag("PRODUCT_STANDARD_SERVER_V", 0x00000024) +PRODUCT_DATACENTER_SERVER_V = make_flag("PRODUCT_DATACENTER_SERVER_V", 0x00000025) +PRODUCT_ENTERPRISE_SERVER_V = make_flag("PRODUCT_ENTERPRISE_SERVER_V", 0x00000026) +PRODUCT_DATACENTER_SERVER_CORE_V = make_flag("PRODUCT_DATACENTER_SERVER_CORE_V", 0x00000027) +PRODUCT_STANDARD_SERVER_CORE_V = make_flag("PRODUCT_STANDARD_SERVER_CORE_V", 0x00000028) +PRODUCT_ENTERPRISE_SERVER_CORE_V = make_flag("PRODUCT_ENTERPRISE_SERVER_CORE_V", 0x00000029) +PRODUCT_HYPERV = make_flag("PRODUCT_HYPERV", 0x0000002A) +PRODUCT_STORAGE_EXPRESS_SERVER_CORE = make_flag("PRODUCT_STORAGE_EXPRESS_SERVER_CORE", 0x0000002B) +PRODUCT_STORAGE_STANDARD_SERVER_CORE = make_flag("PRODUCT_STORAGE_STANDARD_SERVER_CORE", 0x0000002C) +PRODUCT_STORAGE_WORKGROUP_SERVER_CORE = make_flag("PRODUCT_STORAGE_WORKGROUP_SERVER_CORE", 0x0000002D) +PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE = make_flag("PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE", 0x0000002E) +PRODUCT_STARTER_N = make_flag("PRODUCT_STARTER_N", 0x0000002F) +PRODUCT_PROFESSIONAL = make_flag("PRODUCT_PROFESSIONAL", 0x00000030) +PRODUCT_PROFESSIONAL_N = make_flag("PRODUCT_PROFESSIONAL_N", 0x00000031) +PRODUCT_SB_SOLUTION_SERVER = make_flag("PRODUCT_SB_SOLUTION_SERVER", 0x00000032) +PRODUCT_SERVER_FOR_SB_SOLUTIONS = make_flag("PRODUCT_SERVER_FOR_SB_SOLUTIONS", 0x00000033) +PRODUCT_STANDARD_SERVER_SOLUTIONS = make_flag("PRODUCT_STANDARD_SERVER_SOLUTIONS", 0x00000034) +PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE = make_flag("PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE", 0x00000035) +PRODUCT_SB_SOLUTION_SERVER_EM = make_flag("PRODUCT_SB_SOLUTION_SERVER_EM", 0x00000036) +PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM = make_flag("PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM", 0x00000037) +PRODUCT_SOLUTION_EMBEDDEDSERVER = make_flag("PRODUCT_SOLUTION_EMBEDDEDSERVER", 0x00000038) +PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE = make_flag("PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE", 0x00000039) +PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE = make_flag("PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE", 0x0000003F) +PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT = make_flag("PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT", 0x0000003B) +PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL = make_flag("PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL", 0x0000003C) +PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC = make_flag("PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC", 0x0000003D) +PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC = make_flag("PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC", 0x0000003E) +PRODUCT_CLUSTER_SERVER_V = make_flag("PRODUCT_CLUSTER_SERVER_V", 0x00000040) +PRODUCT_EMBEDDED = make_flag("PRODUCT_EMBEDDED", 0x00000041) +PRODUCT_STARTER_E = make_flag("PRODUCT_STARTER_E", 0x00000042) +PRODUCT_HOME_BASIC_E = make_flag("PRODUCT_HOME_BASIC_E", 0x00000043) +PRODUCT_HOME_PREMIUM_E = make_flag("PRODUCT_HOME_PREMIUM_E", 0x00000044) +PRODUCT_PROFESSIONAL_E = make_flag("PRODUCT_PROFESSIONAL_E", 0x00000045) +PRODUCT_ENTERPRISE_E = make_flag("PRODUCT_ENTERPRISE_E", 0x00000046) +PRODUCT_ULTIMATE_E = make_flag("PRODUCT_ULTIMATE_E", 0x00000047) +PRODUCT_ENTERPRISE_EVALUATION = make_flag("PRODUCT_ENTERPRISE_EVALUATION", 0x00000048) +PRODUCT_MULTIPOINT_STANDARD_SERVER = make_flag("PRODUCT_MULTIPOINT_STANDARD_SERVER", 0x0000004C) +PRODUCT_MULTIPOINT_PREMIUM_SERVER = make_flag("PRODUCT_MULTIPOINT_PREMIUM_SERVER", 0x0000004D) +PRODUCT_STANDARD_EVALUATION_SERVER = make_flag("PRODUCT_STANDARD_EVALUATION_SERVER", 0x0000004F) +PRODUCT_DATACENTER_EVALUATION_SERVER = make_flag("PRODUCT_DATACENTER_EVALUATION_SERVER", 0x00000050) +PRODUCT_ENTERPRISE_N_EVALUATION = make_flag("PRODUCT_ENTERPRISE_N_EVALUATION", 0x00000054) +PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER = make_flag("PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER", 0x0000005F) +PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER = make_flag("PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER", 0x00000060) +PRODUCT_CORE_ARM = make_flag("PRODUCT_CORE_ARM", 0x00000061) +PRODUCT_CORE_N = make_flag("PRODUCT_CORE_N", 0x00000062) +PRODUCT_CORE_COUNTRYSPECIFIC = make_flag("PRODUCT_CORE_COUNTRYSPECIFIC", 0x00000063) +PRODUCT_CORE_LANGUAGESPECIFIC = make_flag("PRODUCT_CORE_LANGUAGESPECIFIC", 0x00000064) +PRODUCT_CORE = make_flag("PRODUCT_CORE", 0x00000065) +PRODUCT_PROFESSIONAL_WMC = make_flag("PRODUCT_PROFESSIONAL_WMC", 0x00000067) +PRODUCT_UNLICENSED = make_flag("PRODUCT_UNLICENSED", 0xABCDABCD) +APPLICATION_ERROR_MASK = make_flag("APPLICATION_ERROR_MASK", 0x20000000) +ERROR_SEVERITY_SUCCESS = make_flag("ERROR_SEVERITY_SUCCESS", 0x00000000) +ERROR_SEVERITY_INFORMATIONAL = make_flag("ERROR_SEVERITY_INFORMATIONAL", 0x40000000) +ERROR_SEVERITY_WARNING = make_flag("ERROR_SEVERITY_WARNING", 0x80000000) +ERROR_SEVERITY_ERROR = make_flag("ERROR_SEVERITY_ERROR", 0xC0000000) +EVENT_TRACE_FLAG_DISPATCHER = make_flag("EVENT_TRACE_FLAG_DISPATCHER", 0x00000800) +EVENT_TRACE_FLAG_VIRTUAL_ALLOC = make_flag("EVENT_TRACE_FLAG_VIRTUAL_ALLOC", 0x00004000) +EVENT_TRACE_FLAG_VAMAP = make_flag("EVENT_TRACE_FLAG_VAMAP", 0x00008000) +EVENT_TRACE_FLAG_NO_SYSCONFIG = make_flag("EVENT_TRACE_FLAG_NO_SYSCONFIG", 0x10000000) +EVENT_TRACE_FLAG_EXTENSION = make_flag("EVENT_TRACE_FLAG_EXTENSION", 0x80000000) +EVENT_TRACE_FLAG_FORWARD_WMI = make_flag("EVENT_TRACE_FLAG_FORWARD_WMI", 0x40000000) +EVENT_TRACE_FLAG_ENABLE_RESERVE = make_flag("EVENT_TRACE_FLAG_ENABLE_RESERVE", 0x20000000) +EVENT_TRACE_FILE_MODE_NONE = make_flag("EVENT_TRACE_FILE_MODE_NONE", 0x00000000) +EVENT_TRACE_FILE_MODE_SEQUENTIAL = make_flag("EVENT_TRACE_FILE_MODE_SEQUENTIAL", 0x00000001) +EVENT_TRACE_FILE_MODE_CIRCULAR = make_flag("EVENT_TRACE_FILE_MODE_CIRCULAR", 0x00000002) +EVENT_TRACE_FILE_MODE_APPEND = make_flag("EVENT_TRACE_FILE_MODE_APPEND", 0x00000004) +EVENT_TRACE_REAL_TIME_MODE = make_flag("EVENT_TRACE_REAL_TIME_MODE", 0x00000100) +EVENT_TRACE_DELAY_OPEN_FILE_MODE = make_flag("EVENT_TRACE_DELAY_OPEN_FILE_MODE", 0x00000200) +EVENT_TRACE_BUFFERING_MODE = make_flag("EVENT_TRACE_BUFFERING_MODE", 0x00000400) +EVENT_TRACE_PRIVATE_LOGGER_MODE = make_flag("EVENT_TRACE_PRIVATE_LOGGER_MODE", 0x00000800) +EVENT_TRACE_ADD_HEADER_MODE = make_flag("EVENT_TRACE_ADD_HEADER_MODE", 0x00001000) +EVENT_TRACE_USE_GLOBAL_SEQUENCE = make_flag("EVENT_TRACE_USE_GLOBAL_SEQUENCE", 0x00004000) +EVENT_TRACE_USE_LOCAL_SEQUENCE = make_flag("EVENT_TRACE_USE_LOCAL_SEQUENCE", 0x00008000) +EVENT_TRACE_RELOG_MODE = make_flag("EVENT_TRACE_RELOG_MODE", 0x00010000) +EVENT_TRACE_USE_PAGED_MEMORY = make_flag("EVENT_TRACE_USE_PAGED_MEMORY", 0x01000000) +EVENT_TRACE_FILE_MODE_NEWFILE = make_flag("EVENT_TRACE_FILE_MODE_NEWFILE", 0x00000008) +EVENT_TRACE_FILE_MODE_PREALLOCATE = make_flag("EVENT_TRACE_FILE_MODE_PREALLOCATE", 0x00000020) +EVENT_TRACE_FILE_MODE_NEWFILE = make_flag("EVENT_TRACE_FILE_MODE_NEWFILE", 0x00000008) +EVENT_TRACE_FILE_MODE_PREALLOCATE = make_flag("EVENT_TRACE_FILE_MODE_PREALLOCATE", 0x00000020) +EVENT_TRACE_NONSTOPPABLE_MODE = make_flag("EVENT_TRACE_NONSTOPPABLE_MODE", 0x00000040) +EVENT_TRACE_SECURE_MODE = make_flag("EVENT_TRACE_SECURE_MODE", 0x00000080) +EVENT_TRACE_USE_KBYTES_FOR_SIZE = make_flag("EVENT_TRACE_USE_KBYTES_FOR_SIZE", 0x00002000) +EVENT_TRACE_PRIVATE_IN_PROC = make_flag("EVENT_TRACE_PRIVATE_IN_PROC", 0x00020000) +EVENT_TRACE_MODE_RESERVED = make_flag("EVENT_TRACE_MODE_RESERVED", 0x00100000) +EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING = make_flag("EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING", 0x10000000) +EVENT_TRACE_SYSTEM_LOGGER_MODE = make_flag("EVENT_TRACE_SYSTEM_LOGGER_MODE", 0x02000000) +EVENT_TRACE_ADDTO_TRIAGE_DUMP = make_flag("EVENT_TRACE_ADDTO_TRIAGE_DUMP", 0x80000000) +EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN = make_flag("EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN", 0x00400000) +EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN = make_flag("EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN", 0x00800000) +EVENT_TRACE_INDEPENDENT_SESSION_MODE = make_flag("EVENT_TRACE_INDEPENDENT_SESSION_MODE", 0x08000000) +EVENT_TRACE_CONTROL_QUERY = make_flag("EVENT_TRACE_CONTROL_QUERY", 0) +EVENT_TRACE_CONTROL_STOP = make_flag("EVENT_TRACE_CONTROL_STOP", 1) +EVENT_TRACE_CONTROL_UPDATE = make_flag("EVENT_TRACE_CONTROL_UPDATE", 2) +EVENT_TRACE_CONTROL_FLUSH = make_flag("EVENT_TRACE_CONTROL_FLUSH", 3) +PROCESS_TRACE_MODE_REAL_TIME = make_flag("PROCESS_TRACE_MODE_REAL_TIME", 0x00000100) +PROCESS_TRACE_MODE_RAW_TIMESTAMP = make_flag("PROCESS_TRACE_MODE_RAW_TIMESTAMP", 0x00001000) +PROCESS_TRACE_MODE_EVENT_RECORD = make_flag("PROCESS_TRACE_MODE_EVENT_RECORD", 0x10000000) +EVENT_HEADER_PROPERTY_XML = make_flag("EVENT_HEADER_PROPERTY_XML", 0x0001) +EVENT_HEADER_PROPERTY_FORWARDED_XML = make_flag("EVENT_HEADER_PROPERTY_FORWARDED_XML", 0x0002) +EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG = make_flag("EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG", 0x0004) +EVENT_HEADER_FLAG_EXTENDED_INFO = make_flag("EVENT_HEADER_FLAG_EXTENDED_INFO", 0x0001) +EVENT_HEADER_FLAG_PRIVATE_SESSION = make_flag("EVENT_HEADER_FLAG_PRIVATE_SESSION", 0x0002) +EVENT_HEADER_FLAG_STRING_ONLY = make_flag("EVENT_HEADER_FLAG_STRING_ONLY", 0x0004) +EVENT_HEADER_FLAG_TRACE_MESSAGE = make_flag("EVENT_HEADER_FLAG_TRACE_MESSAGE", 0x0008) +EVENT_HEADER_FLAG_NO_CPUTIME = make_flag("EVENT_HEADER_FLAG_NO_CPUTIME", 0x0010) +EVENT_HEADER_FLAG_32_BIT_HEADER = make_flag("EVENT_HEADER_FLAG_32_BIT_HEADER", 0x0020) +EVENT_HEADER_FLAG_64_BIT_HEADER = make_flag("EVENT_HEADER_FLAG_64_BIT_HEADER", 0x0040) +EVENT_HEADER_FLAG_CLASSIC_HEADER = make_flag("EVENT_HEADER_FLAG_CLASSIC_HEADER", 0x0100) +EVENT_HEADER_FLAG_PROCESSOR_INDEX = make_flag("EVENT_HEADER_FLAG_PROCESSOR_INDEX", 0x0200) +EVENT_TRACE_TYPE_CONFIG_CPU = make_flag("EVENT_TRACE_TYPE_CONFIG_CPU", 0x0A) +EVENT_TRACE_TYPE_CONFIG_PHYSICALDISK = make_flag("EVENT_TRACE_TYPE_CONFIG_PHYSICALDISK", 0x0B) +EVENT_TRACE_TYPE_CONFIG_LOGICALDISK = make_flag("EVENT_TRACE_TYPE_CONFIG_LOGICALDISK", 0x0C) +EVENT_TRACE_TYPE_CONFIG_NIC = make_flag("EVENT_TRACE_TYPE_CONFIG_NIC", 0x0D) +EVENT_TRACE_TYPE_CONFIG_VIDEO = make_flag("EVENT_TRACE_TYPE_CONFIG_VIDEO", 0x0E) +EVENT_TRACE_TYPE_CONFIG_SERVICES = make_flag("EVENT_TRACE_TYPE_CONFIG_SERVICES", 0x0F) +EVENT_TRACE_TYPE_CONFIG_POWER = make_flag("EVENT_TRACE_TYPE_CONFIG_POWER", 0x10) +EVENT_TRACE_TYPE_CONFIG_NETINFO = make_flag("EVENT_TRACE_TYPE_CONFIG_NETINFO", 0x11) +EVENT_TRACE_FLAG_PROCESS = make_flag("EVENT_TRACE_FLAG_PROCESS", 0x00000001) +EVENT_TRACE_FLAG_THREAD = make_flag("EVENT_TRACE_FLAG_THREAD", 0x00000002) +EVENT_TRACE_FLAG_IMAGE_LOAD = make_flag("EVENT_TRACE_FLAG_IMAGE_LOAD", 0x00000004) +EVENT_TRACE_FLAG_DISK_IO = make_flag("EVENT_TRACE_FLAG_DISK_IO", 0x00000100) +EVENT_TRACE_FLAG_DISK_FILE_IO = make_flag("EVENT_TRACE_FLAG_DISK_FILE_IO", 0x00000200) +EVENT_TRACE_FLAG_MEMORY_PAGE_FAULTS = make_flag("EVENT_TRACE_FLAG_MEMORY_PAGE_FAULTS", 0x00001000) +EVENT_TRACE_FLAG_MEMORY_HARD_FAULTS = make_flag("EVENT_TRACE_FLAG_MEMORY_HARD_FAULTS", 0x00002000) +EVENT_TRACE_FLAG_NETWORK_TCPIP = make_flag("EVENT_TRACE_FLAG_NETWORK_TCPIP", 0x00010000) +EVENT_TRACE_FLAG_REGISTRY = make_flag("EVENT_TRACE_FLAG_REGISTRY", 0x00020000) +EVENT_TRACE_FLAG_DBGPRINT = make_flag("EVENT_TRACE_FLAG_DBGPRINT", 0x00040000) +EVENT_TRACE_FLAG_VOLMGR = make_flag("EVENT_TRACE_FLAG_VOLMGR", 0x00200000) +FILE_NOTIFY_CHANGE_FILE_NAME = make_flag("FILE_NOTIFY_CHANGE_FILE_NAME", 0x00000001) +FILE_NOTIFY_CHANGE_DIR_NAME = make_flag("FILE_NOTIFY_CHANGE_DIR_NAME", 0x00000002) +FILE_NOTIFY_CHANGE_NAME = make_flag("FILE_NOTIFY_CHANGE_NAME", 0x00000003) +FILE_NOTIFY_CHANGE_ATTRIBUTES = make_flag("FILE_NOTIFY_CHANGE_ATTRIBUTES", 0x00000004) +FILE_NOTIFY_CHANGE_SIZE = make_flag("FILE_NOTIFY_CHANGE_SIZE", 0x00000008) +FILE_NOTIFY_CHANGE_LAST_WRITE = make_flag("FILE_NOTIFY_CHANGE_LAST_WRITE", 0x00000010) +FILE_NOTIFY_CHANGE_LAST_ACCESS = make_flag("FILE_NOTIFY_CHANGE_LAST_ACCESS", 0x00000020) +FILE_NOTIFY_CHANGE_CREATION = make_flag("FILE_NOTIFY_CHANGE_CREATION", 0x00000040) +FILE_NOTIFY_CHANGE_EA = make_flag("FILE_NOTIFY_CHANGE_EA", 0x00000080) +FILE_NOTIFY_CHANGE_SECURITY = make_flag("FILE_NOTIFY_CHANGE_SECURITY", 0x00000100) +FILE_NOTIFY_CHANGE_STREAM_NAME = make_flag("FILE_NOTIFY_CHANGE_STREAM_NAME", 0x00000200) +FILE_NOTIFY_CHANGE_STREAM_SIZE = make_flag("FILE_NOTIFY_CHANGE_STREAM_SIZE", 0x00000400) +FILE_NOTIFY_CHANGE_STREAM_WRITE = make_flag("FILE_NOTIFY_CHANGE_STREAM_WRITE", 0x00000800) +FILE_NOTIFY_VALID_MASK = make_flag("FILE_NOTIFY_VALID_MASK", 0x00000fff) +FILE_ACTION_ADDED = make_flag("FILE_ACTION_ADDED", 0x00000001) +FILE_ACTION_REMOVED = make_flag("FILE_ACTION_REMOVED", 0x00000002) +FILE_ACTION_MODIFIED = make_flag("FILE_ACTION_MODIFIED", 0x00000003) +FILE_ACTION_RENAMED_OLD_NAME = make_flag("FILE_ACTION_RENAMED_OLD_NAME", 0x00000004) +FILE_ACTION_RENAMED_NEW_NAME = make_flag("FILE_ACTION_RENAMED_NEW_NAME", 0x00000005) +FILE_ACTION_ADDED_STREAM = make_flag("FILE_ACTION_ADDED_STREAM", 0x00000006) +FILE_ACTION_REMOVED_STREAM = make_flag("FILE_ACTION_REMOVED_STREAM", 0x00000007) +FILE_ACTION_MODIFIED_STREAM = make_flag("FILE_ACTION_MODIFIED_STREAM", 0x00000008) +FILE_ACTION_REMOVED_BY_DELETE = make_flag("FILE_ACTION_REMOVED_BY_DELETE", 0x00000009) +FILE_ACTION_ID_NOT_TUNNELLED = make_flag("FILE_ACTION_ID_NOT_TUNNELLED", 0x0000000A) +FILE_ACTION_TUNNELLED_ID_COLLISION = make_flag("FILE_ACTION_TUNNELLED_ID_COLLISION", 0x0000000B) +FILE_CASE_SENSITIVE_SEARCH = make_flag("FILE_CASE_SENSITIVE_SEARCH", 0x00000001) +FILE_CASE_PRESERVED_NAMES = make_flag("FILE_CASE_PRESERVED_NAMES", 0x00000002) +FILE_UNICODE_ON_DISK = make_flag("FILE_UNICODE_ON_DISK", 0x00000004) +FILE_PERSISTENT_ACLS = make_flag("FILE_PERSISTENT_ACLS", 0x00000008) +FILE_FILE_COMPRESSION = make_flag("FILE_FILE_COMPRESSION", 0x00000010) +FILE_VOLUME_QUOTAS = make_flag("FILE_VOLUME_QUOTAS", 0x00000020) +FILE_SUPPORTS_SPARSE_FILES = make_flag("FILE_SUPPORTS_SPARSE_FILES", 0x00000040) +FILE_SUPPORTS_REPARSE_POINTS = make_flag("FILE_SUPPORTS_REPARSE_POINTS", 0x00000080) +FILE_SUPPORTS_REMOTE_STORAGE = make_flag("FILE_SUPPORTS_REMOTE_STORAGE", 0x00000100) +FILE_VOLUME_IS_COMPRESSED = make_flag("FILE_VOLUME_IS_COMPRESSED", 0x00008000) +FILE_SUPPORTS_OBJECT_IDS = make_flag("FILE_SUPPORTS_OBJECT_IDS", 0x00010000) +FILE_SUPPORTS_ENCRYPTION = make_flag("FILE_SUPPORTS_ENCRYPTION", 0x00020000) +FILE_NAMED_STREAMS = make_flag("FILE_NAMED_STREAMS", 0x00040000) +FILE_READ_ONLY_VOLUME = make_flag("FILE_READ_ONLY_VOLUME", 0x00080000) +FILE_SEQUENTIAL_WRITE_ONCE = make_flag("FILE_SEQUENTIAL_WRITE_ONCE", 0x00100000) +FILE_SUPPORTS_TRANSACTIONS = make_flag("FILE_SUPPORTS_TRANSACTIONS", 0x00200000) +FILE_SUPPORTS_HARD_LINKS = make_flag("FILE_SUPPORTS_HARD_LINKS", 0x00400000) +FILE_SUPPORTS_EXTENDED_ATTRIBUTES = make_flag("FILE_SUPPORTS_EXTENDED_ATTRIBUTES", 0x00800000) +FILE_SUPPORTS_OPEN_BY_FILE_ID = make_flag("FILE_SUPPORTS_OPEN_BY_FILE_ID", 0x01000000) +FILE_SUPPORTS_USN_JOURNAL = make_flag("FILE_SUPPORTS_USN_JOURNAL", 0x02000000) +FILE_SHARE_READ = make_flag("FILE_SHARE_READ", 0x00000001) +FILE_SHARE_WRITE = make_flag("FILE_SHARE_WRITE", 0x00000002) +FILE_SHARE_DELETE = make_flag("FILE_SHARE_DELETE", 0x00000004) +FILE_ATTRIBUTE_READONLY = make_flag("FILE_ATTRIBUTE_READONLY", 0x00000001) +FILE_ATTRIBUTE_HIDDEN = make_flag("FILE_ATTRIBUTE_HIDDEN", 0x00000002) +FILE_ATTRIBUTE_SYSTEM = make_flag("FILE_ATTRIBUTE_SYSTEM", 0x00000004) +FILE_ATTRIBUTE_DIRECTORY = make_flag("FILE_ATTRIBUTE_DIRECTORY", 0x00000010) +FILE_ATTRIBUTE_ARCHIVE = make_flag("FILE_ATTRIBUTE_ARCHIVE", 0x00000020) +FILE_ATTRIBUTE_DEVICE = make_flag("FILE_ATTRIBUTE_DEVICE", 0x00000040) +FILE_ATTRIBUTE_NORMAL = make_flag("FILE_ATTRIBUTE_NORMAL", 0x00000080) +FILE_ATTRIBUTE_TEMPORARY = make_flag("FILE_ATTRIBUTE_TEMPORARY", 0x00000100) +FILE_ATTRIBUTE_SPARSE_FILE = make_flag("FILE_ATTRIBUTE_SPARSE_FILE", 0x00000200) +FILE_ATTRIBUTE_REPARSE_POINT = make_flag("FILE_ATTRIBUTE_REPARSE_POINT", 0x00000400) +FILE_ATTRIBUTE_COMPRESSED = make_flag("FILE_ATTRIBUTE_COMPRESSED", 0x00000800) +FILE_ATTRIBUTE_OFFLINE = make_flag("FILE_ATTRIBUTE_OFFLINE", 0x00001000) +FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = make_flag("FILE_ATTRIBUTE_NOT_CONTENT_INDEXED", 0x00002000) +FILE_ATTRIBUTE_ENCRYPTED = make_flag("FILE_ATTRIBUTE_ENCRYPTED", 0x00004000) +FILE_ATTRIBUTE_VIRTUAL = make_flag("FILE_ATTRIBUTE_VIRTUAL", 0x00010000) +X86_KGDT_NULL = make_flag("X86_KGDT_NULL", 0) +X86_KGDT_R0_CODE = make_flag("X86_KGDT_R0_CODE", 8) +X86_KGDT_R0_DATA = make_flag("X86_KGDT_R0_DATA", 16) +X86_KGDT_R3_CODE = make_flag("X86_KGDT_R3_CODE", 24) +X86_KGDT_R3_DATA = make_flag("X86_KGDT_R3_DATA", 32) +X86_KGDT_TSS = make_flag("X86_KGDT_TSS", 40) +X86_KGDT_R0_PCR = make_flag("X86_KGDT_R0_PCR", 48) +X86_KGDT_R3_TEB = make_flag("X86_KGDT_R3_TEB", 56) +X86_KGDT_VDM_TILE = make_flag("X86_KGDT_VDM_TILE", 64) +X86_KGDT_LDT = make_flag("X86_KGDT_LDT", 72) +X86_KGDT_DF_TSS = make_flag("X86_KGDT_DF_TSS", 80) +X86_KGDT_NMI_TSS = make_flag("X86_KGDT_NMI_TSS", 88) +X86_FRAME_EDITED = make_flag("X86_FRAME_EDITED", 0xfff8) +X86_MODE_MASK = make_flag("X86_MODE_MASK", 1) +X86_EFLAGS_V86_MASK = make_flag("X86_EFLAGS_V86_MASK", 0x00020000) +AMD64_KGDT64_NULL = make_flag("AMD64_KGDT64_NULL", ( 0 * 16 )) +AMD64_KGDT64_R0_CODE = make_flag("AMD64_KGDT64_R0_CODE", ( 1 * 16 )) +AMD64_KGDT64_R0_DATA = make_flag("AMD64_KGDT64_R0_DATA", ( 1 * 16 ) + 8) +AMD64_KGDT64_R3_CMCODE = make_flag("AMD64_KGDT64_R3_CMCODE", ( 2 * 16 )) +AMD64_KGDT64_R3_DATA = make_flag("AMD64_KGDT64_R3_DATA", ( 2 * 16 ) + 8) +AMD64_KGDT64_R3_CODE = make_flag("AMD64_KGDT64_R3_CODE", ( 3 * 16 )) +AMD64_KGDT64_SYS_TSS = make_flag("AMD64_KGDT64_SYS_TSS", ( 4 * 16 )) +AMD64_KGDT64_R3_CMTEB = make_flag("AMD64_KGDT64_R3_CMTEB", ( 5 * 16 )) +AMD64_KGDT64_LAST = make_flag("AMD64_KGDT64_LAST", ( 6 * 16 )) +MODE_BIT = make_flag("MODE_BIT", 0) +MODE_MASK = make_flag("MODE_MASK", 1) +RPL_MASK = make_flag("RPL_MASK", 3) +CS_USER_32B = make_flag("CS_USER_32B", ( AMD64_KGDT64_R3_CMCODE | RPL_MASK )) +CS_USER_64B = make_flag("CS_USER_64B", ( AMD64_KGDT64_R3_CODE | RPL_MASK )) +FC_ALLOCATE_ALL_NODES = make_flag("FC_ALLOCATE_ALL_NODES", 0x01) +FC_DONT_FREE = make_flag("FC_DONT_FREE", 0x02) +FC_ALLOCED_ON_STACK = make_flag("FC_ALLOCED_ON_STACK", 0x04) +FC_SIMPLE_POINTER = make_flag("FC_SIMPLE_POINTER", 0x08) +FC_POINTER_DEREF = make_flag("FC_POINTER_DEREF", 0x10) +MAX_PREFERRED_LENGTH = make_flag("MAX_PREFERRED_LENGTH", 0xffffffff) +NERR_Success = make_flag("NERR_Success", 0) +NERR_BASE = make_flag("NERR_BASE", 2100) +NERR_NetNotStarted = make_flag("NERR_NetNotStarted", ( NERR_BASE + 2 )) +NERR_UnknownServer = make_flag("NERR_UnknownServer", ( NERR_BASE + 3 )) +NERR_ShareMem = make_flag("NERR_ShareMem", ( NERR_BASE + 4 )) +NERR_NoNetworkResource = make_flag("NERR_NoNetworkResource", ( NERR_BASE + 5 )) +NERR_RemoteOnly = make_flag("NERR_RemoteOnly", ( NERR_BASE + 6 )) +NERR_DevNotRedirected = make_flag("NERR_DevNotRedirected", ( NERR_BASE + 7 )) +NERR_ServerNotStarted = make_flag("NERR_ServerNotStarted", ( NERR_BASE + 14 )) +NERR_ItemNotFound = make_flag("NERR_ItemNotFound", ( NERR_BASE + 15 )) +NERR_UnknownDevDir = make_flag("NERR_UnknownDevDir", ( NERR_BASE + 16 )) +NERR_RedirectedPath = make_flag("NERR_RedirectedPath", ( NERR_BASE + 17 )) +NERR_DuplicateShare = make_flag("NERR_DuplicateShare", ( NERR_BASE + 18 )) +NERR_NoRoom = make_flag("NERR_NoRoom", ( NERR_BASE + 19 )) +NERR_TooManyItems = make_flag("NERR_TooManyItems", ( NERR_BASE + 21 )) +NERR_InvalidMaxUsers = make_flag("NERR_InvalidMaxUsers", ( NERR_BASE + 22 )) +NERR_BufTooSmall = make_flag("NERR_BufTooSmall", ( NERR_BASE + 23 )) +NERR_RemoteErr = make_flag("NERR_RemoteErr", ( NERR_BASE + 27 )) +NERR_LanmanIniError = make_flag("NERR_LanmanIniError", ( NERR_BASE + 31 )) +NERR_NetworkError = make_flag("NERR_NetworkError", ( NERR_BASE + 36 )) +NERR_WkstaInconsistentState = make_flag("NERR_WkstaInconsistentState", ( NERR_BASE + 37 )) +NERR_WkstaNotStarted = make_flag("NERR_WkstaNotStarted", ( NERR_BASE + 38 )) +NERR_BrowserNotStarted = make_flag("NERR_BrowserNotStarted", ( NERR_BASE + 39 )) +NERR_InternalError = make_flag("NERR_InternalError", ( NERR_BASE + 40 )) +NERR_BadTransactConfig = make_flag("NERR_BadTransactConfig", ( NERR_BASE + 41 )) +NERR_InvalidAPI = make_flag("NERR_InvalidAPI", ( NERR_BASE + 42 )) +NERR_BadEventName = make_flag("NERR_BadEventName", ( NERR_BASE + 43 )) +NERR_DupNameReboot = make_flag("NERR_DupNameReboot", ( NERR_BASE + 44 )) +NERR_CfgCompNotFound = make_flag("NERR_CfgCompNotFound", ( NERR_BASE + 46 )) +NERR_CfgParamNotFound = make_flag("NERR_CfgParamNotFound", ( NERR_BASE + 47 )) +NERR_LineTooLong = make_flag("NERR_LineTooLong", ( NERR_BASE + 49 )) +NERR_QNotFound = make_flag("NERR_QNotFound", ( NERR_BASE + 50 )) +NERR_JobNotFound = make_flag("NERR_JobNotFound", ( NERR_BASE + 51 )) +NERR_DestNotFound = make_flag("NERR_DestNotFound", ( NERR_BASE + 52 )) +NERR_DestExists = make_flag("NERR_DestExists", ( NERR_BASE + 53 )) +NERR_QExists = make_flag("NERR_QExists", ( NERR_BASE + 54 )) +NERR_QNoRoom = make_flag("NERR_QNoRoom", ( NERR_BASE + 55 )) +NERR_JobNoRoom = make_flag("NERR_JobNoRoom", ( NERR_BASE + 56 )) +NERR_DestNoRoom = make_flag("NERR_DestNoRoom", ( NERR_BASE + 57 )) +NERR_DestIdle = make_flag("NERR_DestIdle", ( NERR_BASE + 58 )) +NERR_DestInvalidOp = make_flag("NERR_DestInvalidOp", ( NERR_BASE + 59 )) +NERR_ProcNoRespond = make_flag("NERR_ProcNoRespond", ( NERR_BASE + 60 )) +NERR_SpoolerNotLoaded = make_flag("NERR_SpoolerNotLoaded", ( NERR_BASE + 61 )) +NERR_DestInvalidState = make_flag("NERR_DestInvalidState", ( NERR_BASE + 62 )) +NERR_QInvalidState = make_flag("NERR_QInvalidState", ( NERR_BASE + 63 )) +NERR_JobInvalidState = make_flag("NERR_JobInvalidState", ( NERR_BASE + 64 )) +NERR_SpoolNoMemory = make_flag("NERR_SpoolNoMemory", ( NERR_BASE + 65 )) +NERR_DriverNotFound = make_flag("NERR_DriverNotFound", ( NERR_BASE + 66 )) +NERR_DataTypeInvalid = make_flag("NERR_DataTypeInvalid", ( NERR_BASE + 67 )) +NERR_ProcNotFound = make_flag("NERR_ProcNotFound", ( NERR_BASE + 68 )) +NERR_ServiceTableLocked = make_flag("NERR_ServiceTableLocked", ( NERR_BASE + 80 )) +NERR_ServiceTableFull = make_flag("NERR_ServiceTableFull", ( NERR_BASE + 81 )) +NERR_ServiceInstalled = make_flag("NERR_ServiceInstalled", ( NERR_BASE + 82 )) +NERR_ServiceEntryLocked = make_flag("NERR_ServiceEntryLocked", ( NERR_BASE + 83 )) +NERR_ServiceNotInstalled = make_flag("NERR_ServiceNotInstalled", ( NERR_BASE + 84 )) +NERR_BadServiceName = make_flag("NERR_BadServiceName", ( NERR_BASE + 85 )) +NERR_ServiceCtlTimeout = make_flag("NERR_ServiceCtlTimeout", ( NERR_BASE + 86 )) +NERR_ServiceCtlBusy = make_flag("NERR_ServiceCtlBusy", ( NERR_BASE + 87 )) +NERR_BadServiceProgName = make_flag("NERR_BadServiceProgName", ( NERR_BASE + 88 )) +NERR_ServiceNotCtrl = make_flag("NERR_ServiceNotCtrl", ( NERR_BASE + 89 )) +NERR_ServiceKillProc = make_flag("NERR_ServiceKillProc", ( NERR_BASE + 90 )) +NERR_ServiceCtlNotValid = make_flag("NERR_ServiceCtlNotValid", ( NERR_BASE + 91 )) +NERR_NotInDispatchTbl = make_flag("NERR_NotInDispatchTbl", ( NERR_BASE + 92 )) +NERR_BadControlRecv = make_flag("NERR_BadControlRecv", ( NERR_BASE + 93 )) +NERR_ServiceNotStarting = make_flag("NERR_ServiceNotStarting", ( NERR_BASE + 94 )) +NERR_AlreadyLoggedOn = make_flag("NERR_AlreadyLoggedOn", ( NERR_BASE + 100 )) +NERR_NotLoggedOn = make_flag("NERR_NotLoggedOn", ( NERR_BASE + 101 )) +NERR_BadUsername = make_flag("NERR_BadUsername", ( NERR_BASE + 102 )) +NERR_BadPassword = make_flag("NERR_BadPassword", ( NERR_BASE + 103 )) +NERR_UnableToAddName_W = make_flag("NERR_UnableToAddName_W", ( NERR_BASE + 104 )) +NERR_UnableToAddName_F = make_flag("NERR_UnableToAddName_F", ( NERR_BASE + 105 )) +NERR_UnableToDelName_W = make_flag("NERR_UnableToDelName_W", ( NERR_BASE + 106 )) +NERR_UnableToDelName_F = make_flag("NERR_UnableToDelName_F", ( NERR_BASE + 107 )) +NERR_LogonsPaused = make_flag("NERR_LogonsPaused", ( NERR_BASE + 109 )) +NERR_LogonServerConflict = make_flag("NERR_LogonServerConflict", ( NERR_BASE + 110 )) +NERR_LogonNoUserPath = make_flag("NERR_LogonNoUserPath", ( NERR_BASE + 111 )) +NERR_LogonScriptError = make_flag("NERR_LogonScriptError", ( NERR_BASE + 112 )) +NERR_StandaloneLogon = make_flag("NERR_StandaloneLogon", ( NERR_BASE + 114 )) +NERR_LogonServerNotFound = make_flag("NERR_LogonServerNotFound", ( NERR_BASE + 115 )) +NERR_LogonDomainExists = make_flag("NERR_LogonDomainExists", ( NERR_BASE + 116 )) +NERR_NonValidatedLogon = make_flag("NERR_NonValidatedLogon", ( NERR_BASE + 117 )) +NERR_ACFNotFound = make_flag("NERR_ACFNotFound", ( NERR_BASE + 119 )) +NERR_GroupNotFound = make_flag("NERR_GroupNotFound", ( NERR_BASE + 120 )) +NERR_UserNotFound = make_flag("NERR_UserNotFound", ( NERR_BASE + 121 )) +NERR_ResourceNotFound = make_flag("NERR_ResourceNotFound", ( NERR_BASE + 122 )) +NERR_GroupExists = make_flag("NERR_GroupExists", ( NERR_BASE + 123 )) +NERR_UserExists = make_flag("NERR_UserExists", ( NERR_BASE + 124 )) +NERR_ResourceExists = make_flag("NERR_ResourceExists", ( NERR_BASE + 125 )) +NERR_NotPrimary = make_flag("NERR_NotPrimary", ( NERR_BASE + 126 )) +NERR_ACFNotLoaded = make_flag("NERR_ACFNotLoaded", ( NERR_BASE + 127 )) +NERR_ACFNoRoom = make_flag("NERR_ACFNoRoom", ( NERR_BASE + 128 )) +NERR_ACFFileIOFail = make_flag("NERR_ACFFileIOFail", ( NERR_BASE + 129 )) +NERR_ACFTooManyLists = make_flag("NERR_ACFTooManyLists", ( NERR_BASE + 130 )) +NERR_UserLogon = make_flag("NERR_UserLogon", ( NERR_BASE + 131 )) +NERR_ACFNoParent = make_flag("NERR_ACFNoParent", ( NERR_BASE + 132 )) +NERR_CanNotGrowSegment = make_flag("NERR_CanNotGrowSegment", ( NERR_BASE + 133 )) +NERR_SpeGroupOp = make_flag("NERR_SpeGroupOp", ( NERR_BASE + 134 )) +NERR_NotInCache = make_flag("NERR_NotInCache", ( NERR_BASE + 135 )) +NERR_UserInGroup = make_flag("NERR_UserInGroup", ( NERR_BASE + 136 )) +NERR_UserNotInGroup = make_flag("NERR_UserNotInGroup", ( NERR_BASE + 137 )) +NERR_AccountUndefined = make_flag("NERR_AccountUndefined", ( NERR_BASE + 138 )) +NERR_AccountExpired = make_flag("NERR_AccountExpired", ( NERR_BASE + 139 )) +NERR_InvalidWorkstation = make_flag("NERR_InvalidWorkstation", ( NERR_BASE + 140 )) +NERR_InvalidLogonHours = make_flag("NERR_InvalidLogonHours", ( NERR_BASE + 141 )) +NERR_PasswordExpired = make_flag("NERR_PasswordExpired", ( NERR_BASE + 142 )) +NERR_PasswordCantChange = make_flag("NERR_PasswordCantChange", ( NERR_BASE + 143 )) +NERR_PasswordHistConflict = make_flag("NERR_PasswordHistConflict", ( NERR_BASE + 144 )) +NERR_PasswordTooShort = make_flag("NERR_PasswordTooShort", ( NERR_BASE + 145 )) +NERR_PasswordTooRecent = make_flag("NERR_PasswordTooRecent", ( NERR_BASE + 146 )) +NERR_InvalidDatabase = make_flag("NERR_InvalidDatabase", ( NERR_BASE + 147 )) +NERR_DatabaseUpToDate = make_flag("NERR_DatabaseUpToDate", ( NERR_BASE + 148 )) +NERR_SyncRequired = make_flag("NERR_SyncRequired", ( NERR_BASE + 149 )) +NERR_UseNotFound = make_flag("NERR_UseNotFound", ( NERR_BASE + 150 )) +NERR_BadAsgType = make_flag("NERR_BadAsgType", ( NERR_BASE + 151 )) +NERR_DeviceIsShared = make_flag("NERR_DeviceIsShared", ( NERR_BASE + 152 )) +NERR_SameAsComputerName = make_flag("NERR_SameAsComputerName", ( NERR_BASE + 153 )) +NERR_NoComputerName = make_flag("NERR_NoComputerName", ( NERR_BASE + 170 )) +NERR_MsgAlreadyStarted = make_flag("NERR_MsgAlreadyStarted", ( NERR_BASE + 171 )) +NERR_MsgInitFailed = make_flag("NERR_MsgInitFailed", ( NERR_BASE + 172 )) +NERR_NameNotFound = make_flag("NERR_NameNotFound", ( NERR_BASE + 173 )) +NERR_AlreadyForwarded = make_flag("NERR_AlreadyForwarded", ( NERR_BASE + 174 )) +NERR_AddForwarded = make_flag("NERR_AddForwarded", ( NERR_BASE + 175 )) +NERR_AlreadyExists = make_flag("NERR_AlreadyExists", ( NERR_BASE + 176 )) +NERR_TooManyNames = make_flag("NERR_TooManyNames", ( NERR_BASE + 177 )) +NERR_DelComputerName = make_flag("NERR_DelComputerName", ( NERR_BASE + 178 )) +NERR_LocalForward = make_flag("NERR_LocalForward", ( NERR_BASE + 179 )) +NERR_GrpMsgProcessor = make_flag("NERR_GrpMsgProcessor", ( NERR_BASE + 180 )) +NERR_PausedRemote = make_flag("NERR_PausedRemote", ( NERR_BASE + 181 )) +NERR_BadReceive = make_flag("NERR_BadReceive", ( NERR_BASE + 182 )) +NERR_NameInUse = make_flag("NERR_NameInUse", ( NERR_BASE + 183 )) +NERR_MsgNotStarted = make_flag("NERR_MsgNotStarted", ( NERR_BASE + 184 )) +NERR_NotLocalName = make_flag("NERR_NotLocalName", ( NERR_BASE + 185 )) +NERR_NoForwardName = make_flag("NERR_NoForwardName", ( NERR_BASE + 186 )) +NERR_RemoteFull = make_flag("NERR_RemoteFull", ( NERR_BASE + 187 )) +NERR_NameNotForwarded = make_flag("NERR_NameNotForwarded", ( NERR_BASE + 188 )) +NERR_TruncatedBroadcast = make_flag("NERR_TruncatedBroadcast", ( NERR_BASE + 189 )) +NERR_InvalidDevice = make_flag("NERR_InvalidDevice", ( NERR_BASE + 194 )) +NERR_WriteFault = make_flag("NERR_WriteFault", ( NERR_BASE + 195 )) +NERR_DuplicateName = make_flag("NERR_DuplicateName", ( NERR_BASE + 197 )) +NERR_DeleteLater = make_flag("NERR_DeleteLater", ( NERR_BASE + 198 )) +NERR_IncompleteDel = make_flag("NERR_IncompleteDel", ( NERR_BASE + 199 )) +NERR_MultipleNets = make_flag("NERR_MultipleNets", ( NERR_BASE + 200 )) +NERR_NetNameNotFound = make_flag("NERR_NetNameNotFound", ( NERR_BASE + 210 )) +NERR_DeviceNotShared = make_flag("NERR_DeviceNotShared", ( NERR_BASE + 211 )) +NERR_ClientNameNotFound = make_flag("NERR_ClientNameNotFound", ( NERR_BASE + 212 )) +NERR_FileIdNotFound = make_flag("NERR_FileIdNotFound", ( NERR_BASE + 214 )) +NERR_ExecFailure = make_flag("NERR_ExecFailure", ( NERR_BASE + 215 )) +NERR_TmpFile = make_flag("NERR_TmpFile", ( NERR_BASE + 216 )) +NERR_TooMuchData = make_flag("NERR_TooMuchData", ( NERR_BASE + 217 )) +NERR_DeviceShareConflict = make_flag("NERR_DeviceShareConflict", ( NERR_BASE + 218 )) +NERR_BrowserTableIncomplete = make_flag("NERR_BrowserTableIncomplete", ( NERR_BASE + 219 )) +NERR_NotLocalDomain = make_flag("NERR_NotLocalDomain", ( NERR_BASE + 220 )) +NERR_IsDfsShare = make_flag("NERR_IsDfsShare", ( NERR_BASE + 221 )) +NERR_DevInvalidOpCode = make_flag("NERR_DevInvalidOpCode", ( NERR_BASE + 231 )) +NERR_DevNotFound = make_flag("NERR_DevNotFound", ( NERR_BASE + 232 )) +NERR_DevNotOpen = make_flag("NERR_DevNotOpen", ( NERR_BASE + 233 )) +NERR_BadQueueDevString = make_flag("NERR_BadQueueDevString", ( NERR_BASE + 234 )) +NERR_BadQueuePriority = make_flag("NERR_BadQueuePriority", ( NERR_BASE + 235 )) +NERR_NoCommDevs = make_flag("NERR_NoCommDevs", ( NERR_BASE + 237 )) +NERR_QueueNotFound = make_flag("NERR_QueueNotFound", ( NERR_BASE + 238 )) +NERR_BadDevString = make_flag("NERR_BadDevString", ( NERR_BASE + 240 )) +NERR_BadDev = make_flag("NERR_BadDev", ( NERR_BASE + 241 )) +NERR_InUseBySpooler = make_flag("NERR_InUseBySpooler", ( NERR_BASE + 242 )) +NERR_CommDevInUse = make_flag("NERR_CommDevInUse", ( NERR_BASE + 243 )) +NERR_InvalidComputer = make_flag("NERR_InvalidComputer", ( NERR_BASE + 251 )) +NERR_MaxLenExceeded = make_flag("NERR_MaxLenExceeded", ( NERR_BASE + 254 )) +NERR_BadComponent = make_flag("NERR_BadComponent", ( NERR_BASE + 256 )) +NERR_CantType = make_flag("NERR_CantType", ( NERR_BASE + 257 )) +NERR_TooManyEntries = make_flag("NERR_TooManyEntries", ( NERR_BASE + 262 )) +NERR_ProfileFileTooBig = make_flag("NERR_ProfileFileTooBig", ( NERR_BASE + 270 )) +NERR_ProfileOffset = make_flag("NERR_ProfileOffset", ( NERR_BASE + 271 )) +NERR_ProfileCleanup = make_flag("NERR_ProfileCleanup", ( NERR_BASE + 272 )) +NERR_ProfileUnknownCmd = make_flag("NERR_ProfileUnknownCmd", ( NERR_BASE + 273 )) +NERR_ProfileLoadErr = make_flag("NERR_ProfileLoadErr", ( NERR_BASE + 274 )) +NERR_ProfileSaveErr = make_flag("NERR_ProfileSaveErr", ( NERR_BASE + 275 )) +NERR_LogOverflow = make_flag("NERR_LogOverflow", ( NERR_BASE + 277 )) +NERR_LogFileChanged = make_flag("NERR_LogFileChanged", ( NERR_BASE + 278 )) +NERR_LogFileCorrupt = make_flag("NERR_LogFileCorrupt", ( NERR_BASE + 279 )) +NERR_SourceIsDir = make_flag("NERR_SourceIsDir", ( NERR_BASE + 280 )) +NERR_BadSource = make_flag("NERR_BadSource", ( NERR_BASE + 281 )) +NERR_BadDest = make_flag("NERR_BadDest", ( NERR_BASE + 282 )) +NERR_DifferentServers = make_flag("NERR_DifferentServers", ( NERR_BASE + 283 )) +NERR_RunSrvPaused = make_flag("NERR_RunSrvPaused", ( NERR_BASE + 285 )) +NERR_ErrCommRunSrv = make_flag("NERR_ErrCommRunSrv", ( NERR_BASE + 289 )) +NERR_ErrorExecingGhost = make_flag("NERR_ErrorExecingGhost", ( NERR_BASE + 291 )) +NERR_ShareNotFound = make_flag("NERR_ShareNotFound", ( NERR_BASE + 292 )) +NERR_InvalidLana = make_flag("NERR_InvalidLana", ( NERR_BASE + 300 )) +NERR_OpenFiles = make_flag("NERR_OpenFiles", ( NERR_BASE + 301 )) +NERR_ActiveConns = make_flag("NERR_ActiveConns", ( NERR_BASE + 302 )) +NERR_BadPasswordCore = make_flag("NERR_BadPasswordCore", ( NERR_BASE + 303 )) +NERR_DevInUse = make_flag("NERR_DevInUse", ( NERR_BASE + 304 )) +NERR_LocalDrive = make_flag("NERR_LocalDrive", ( NERR_BASE + 305 )) +NERR_AlertExists = make_flag("NERR_AlertExists", ( NERR_BASE + 330 )) +NERR_TooManyAlerts = make_flag("NERR_TooManyAlerts", ( NERR_BASE + 331 )) +NERR_NoSuchAlert = make_flag("NERR_NoSuchAlert", ( NERR_BASE + 332 )) +NERR_BadRecipient = make_flag("NERR_BadRecipient", ( NERR_BASE + 333 )) +NERR_AcctLimitExceeded = make_flag("NERR_AcctLimitExceeded", ( NERR_BASE + 334 )) +NERR_InvalidLogSeek = make_flag("NERR_InvalidLogSeek", ( NERR_BASE + 340 )) +NERR_BadUasConfig = make_flag("NERR_BadUasConfig", ( NERR_BASE + 350 )) +NERR_InvalidUASOp = make_flag("NERR_InvalidUASOp", ( NERR_BASE + 351 )) +NERR_LastAdmin = make_flag("NERR_LastAdmin", ( NERR_BASE + 352 )) +NERR_DCNotFound = make_flag("NERR_DCNotFound", ( NERR_BASE + 353 )) +NERR_LogonTrackingError = make_flag("NERR_LogonTrackingError", ( NERR_BASE + 354 )) +NERR_NetlogonNotStarted = make_flag("NERR_NetlogonNotStarted", ( NERR_BASE + 355 )) +NERR_CanNotGrowUASFile = make_flag("NERR_CanNotGrowUASFile", ( NERR_BASE + 356 )) +NERR_TimeDiffAtDC = make_flag("NERR_TimeDiffAtDC", ( NERR_BASE + 357 )) +NERR_PasswordMismatch = make_flag("NERR_PasswordMismatch", ( NERR_BASE + 358 )) +NERR_NoSuchServer = make_flag("NERR_NoSuchServer", ( NERR_BASE + 360 )) +NERR_NoSuchSession = make_flag("NERR_NoSuchSession", ( NERR_BASE + 361 )) +NERR_NoSuchConnection = make_flag("NERR_NoSuchConnection", ( NERR_BASE + 362 )) +NERR_TooManyServers = make_flag("NERR_TooManyServers", ( NERR_BASE + 363 )) +NERR_TooManySessions = make_flag("NERR_TooManySessions", ( NERR_BASE + 364 )) +NERR_TooManyConnections = make_flag("NERR_TooManyConnections", ( NERR_BASE + 365 )) +NERR_TooManyFiles = make_flag("NERR_TooManyFiles", ( NERR_BASE + 366 )) +NERR_NoAlternateServers = make_flag("NERR_NoAlternateServers", ( NERR_BASE + 367 )) +NERR_TryDownLevel = make_flag("NERR_TryDownLevel", ( NERR_BASE + 370 )) +NERR_UPSDriverNotStarted = make_flag("NERR_UPSDriverNotStarted", ( NERR_BASE + 380 )) +NERR_UPSInvalidConfig = make_flag("NERR_UPSInvalidConfig", ( NERR_BASE + 381 )) +NERR_UPSInvalidCommPort = make_flag("NERR_UPSInvalidCommPort", ( NERR_BASE + 382 )) +NERR_UPSSignalAsserted = make_flag("NERR_UPSSignalAsserted", ( NERR_BASE + 383 )) +NERR_UPSShutdownFailed = make_flag("NERR_UPSShutdownFailed", ( NERR_BASE + 384 )) +NERR_BadDosRetCode = make_flag("NERR_BadDosRetCode", ( NERR_BASE + 400 )) +NERR_ProgNeedsExtraMem = make_flag("NERR_ProgNeedsExtraMem", ( NERR_BASE + 401 )) +NERR_BadDosFunction = make_flag("NERR_BadDosFunction", ( NERR_BASE + 402 )) +NERR_RemoteBootFailed = make_flag("NERR_RemoteBootFailed", ( NERR_BASE + 403 )) +NERR_BadFileCheckSum = make_flag("NERR_BadFileCheckSum", ( NERR_BASE + 404 )) +NERR_NoRplBootSystem = make_flag("NERR_NoRplBootSystem", ( NERR_BASE + 405 )) +NERR_RplLoadrNetBiosErr = make_flag("NERR_RplLoadrNetBiosErr", ( NERR_BASE + 406 )) +NERR_RplLoadrDiskErr = make_flag("NERR_RplLoadrDiskErr", ( NERR_BASE + 407 )) +NERR_ImageParamErr = make_flag("NERR_ImageParamErr", ( NERR_BASE + 408 )) +NERR_TooManyImageParams = make_flag("NERR_TooManyImageParams", ( NERR_BASE + 409 )) +NERR_NonDosFloppyUsed = make_flag("NERR_NonDosFloppyUsed", ( NERR_BASE + 410 )) +NERR_RplBootRestart = make_flag("NERR_RplBootRestart", ( NERR_BASE + 411 )) +NERR_RplSrvrCallFailed = make_flag("NERR_RplSrvrCallFailed", ( NERR_BASE + 412 )) +NERR_CantConnectRplSrvr = make_flag("NERR_CantConnectRplSrvr", ( NERR_BASE + 413 )) +NERR_CantOpenImageFile = make_flag("NERR_CantOpenImageFile", ( NERR_BASE + 414 )) +NERR_CallingRplSrvr = make_flag("NERR_CallingRplSrvr", ( NERR_BASE + 415 )) +NERR_StartingRplBoot = make_flag("NERR_StartingRplBoot", ( NERR_BASE + 416 )) +NERR_RplBootServiceTerm = make_flag("NERR_RplBootServiceTerm", ( NERR_BASE + 417 )) +NERR_RplBootStartFailed = make_flag("NERR_RplBootStartFailed", ( NERR_BASE + 418 )) +NERR_RPL_CONNECTED = make_flag("NERR_RPL_CONNECTED", ( NERR_BASE + 419 )) +NERR_BrowserConfiguredToNotRun = make_flag("NERR_BrowserConfiguredToNotRun", ( NERR_BASE + 450 )) +NERR_RplNoAdaptersStarted = make_flag("NERR_RplNoAdaptersStarted", ( NERR_BASE + 510 )) +NERR_RplBadRegistry = make_flag("NERR_RplBadRegistry", ( NERR_BASE + 511 )) +NERR_RplBadDatabase = make_flag("NERR_RplBadDatabase", ( NERR_BASE + 512 )) +NERR_RplRplfilesShare = make_flag("NERR_RplRplfilesShare", ( NERR_BASE + 513 )) +NERR_RplNotRplServer = make_flag("NERR_RplNotRplServer", ( NERR_BASE + 514 )) +NERR_RplCannotEnum = make_flag("NERR_RplCannotEnum", ( NERR_BASE + 515 )) +NERR_RplWkstaInfoCorrupted = make_flag("NERR_RplWkstaInfoCorrupted", ( NERR_BASE + 516 )) +NERR_RplWkstaNotFound = make_flag("NERR_RplWkstaNotFound", ( NERR_BASE + 517 )) +NERR_RplWkstaNameUnavailable = make_flag("NERR_RplWkstaNameUnavailable", ( NERR_BASE + 518 )) +NERR_RplProfileInfoCorrupted = make_flag("NERR_RplProfileInfoCorrupted", ( NERR_BASE + 519 )) +NERR_RplProfileNotFound = make_flag("NERR_RplProfileNotFound", ( NERR_BASE + 520 )) +NERR_RplProfileNameUnavailable = make_flag("NERR_RplProfileNameUnavailable", ( NERR_BASE + 521 )) +NERR_RplProfileNotEmpty = make_flag("NERR_RplProfileNotEmpty", ( NERR_BASE + 522 )) +NERR_RplConfigInfoCorrupted = make_flag("NERR_RplConfigInfoCorrupted", ( NERR_BASE + 523 )) +NERR_RplConfigNotFound = make_flag("NERR_RplConfigNotFound", ( NERR_BASE + 524 )) +NERR_RplAdapterInfoCorrupted = make_flag("NERR_RplAdapterInfoCorrupted", ( NERR_BASE + 525 )) +NERR_RplInternal = make_flag("NERR_RplInternal", ( NERR_BASE + 526 )) +NERR_RplVendorInfoCorrupted = make_flag("NERR_RplVendorInfoCorrupted", ( NERR_BASE + 527 )) +NERR_RplBootInfoCorrupted = make_flag("NERR_RplBootInfoCorrupted", ( NERR_BASE + 528 )) +NERR_RplWkstaNeedsUserAcct = make_flag("NERR_RplWkstaNeedsUserAcct", ( NERR_BASE + 529 )) +NERR_RplNeedsRPLUSERAcct = make_flag("NERR_RplNeedsRPLUSERAcct", ( NERR_BASE + 530 )) +NERR_RplBootNotFound = make_flag("NERR_RplBootNotFound", ( NERR_BASE + 531 )) +NERR_RplIncompatibleProfile = make_flag("NERR_RplIncompatibleProfile", ( NERR_BASE + 532 )) +NERR_RplAdapterNameUnavailable = make_flag("NERR_RplAdapterNameUnavailable", ( NERR_BASE + 533 )) +NERR_RplConfigNotEmpty = make_flag("NERR_RplConfigNotEmpty", ( NERR_BASE + 534 )) +NERR_RplBootInUse = make_flag("NERR_RplBootInUse", ( NERR_BASE + 535 )) +NERR_RplBackupDatabase = make_flag("NERR_RplBackupDatabase", ( NERR_BASE + 536 )) +NERR_RplAdapterNotFound = make_flag("NERR_RplAdapterNotFound", ( NERR_BASE + 537 )) +NERR_RplVendorNotFound = make_flag("NERR_RplVendorNotFound", ( NERR_BASE + 538 )) +NERR_RplVendorNameUnavailable = make_flag("NERR_RplVendorNameUnavailable", ( NERR_BASE + 539 )) +NERR_RplBootNameUnavailable = make_flag("NERR_RplBootNameUnavailable", ( NERR_BASE + 540 )) +NERR_RplConfigNameUnavailable = make_flag("NERR_RplConfigNameUnavailable", ( NERR_BASE + 541 )) +NERR_DfsInternalCorruption = make_flag("NERR_DfsInternalCorruption", ( NERR_BASE + 560 )) +NERR_DfsVolumeDataCorrupt = make_flag("NERR_DfsVolumeDataCorrupt", ( NERR_BASE + 561 )) +NERR_DfsNoSuchVolume = make_flag("NERR_DfsNoSuchVolume", ( NERR_BASE + 562 )) +NERR_DfsVolumeAlreadyExists = make_flag("NERR_DfsVolumeAlreadyExists", ( NERR_BASE + 563 )) +NERR_DfsAlreadyShared = make_flag("NERR_DfsAlreadyShared", ( NERR_BASE + 564 )) +NERR_DfsNoSuchShare = make_flag("NERR_DfsNoSuchShare", ( NERR_BASE + 565 )) +NERR_DfsNotALeafVolume = make_flag("NERR_DfsNotALeafVolume", ( NERR_BASE + 566 )) +NERR_DfsLeafVolume = make_flag("NERR_DfsLeafVolume", ( NERR_BASE + 567 )) +NERR_DfsVolumeHasMultipleServers = make_flag("NERR_DfsVolumeHasMultipleServers", ( NERR_BASE + 568 )) +NERR_DfsCantCreateJunctionPoint = make_flag("NERR_DfsCantCreateJunctionPoint", ( NERR_BASE + 569 )) +NERR_DfsServerNotDfsAware = make_flag("NERR_DfsServerNotDfsAware", ( NERR_BASE + 570 )) +NERR_DfsBadRenamePath = make_flag("NERR_DfsBadRenamePath", ( NERR_BASE + 571 )) +NERR_DfsVolumeIsOffline = make_flag("NERR_DfsVolumeIsOffline", ( NERR_BASE + 572 )) +NERR_DfsNoSuchServer = make_flag("NERR_DfsNoSuchServer", ( NERR_BASE + 573 )) +NERR_DfsCyclicalName = make_flag("NERR_DfsCyclicalName", ( NERR_BASE + 574 )) +NERR_DfsNotSupportedInServerDfs = make_flag("NERR_DfsNotSupportedInServerDfs", ( NERR_BASE + 575 )) +NERR_DfsDuplicateService = make_flag("NERR_DfsDuplicateService", ( NERR_BASE + 576 )) +NERR_DfsCantRemoveLastServerShare = make_flag("NERR_DfsCantRemoveLastServerShare", ( NERR_BASE + 577 )) +NERR_DfsVolumeIsInterDfs = make_flag("NERR_DfsVolumeIsInterDfs", ( NERR_BASE + 578 )) +NERR_DfsInconsistent = make_flag("NERR_DfsInconsistent", ( NERR_BASE + 579 )) +NERR_DfsServerUpgraded = make_flag("NERR_DfsServerUpgraded", ( NERR_BASE + 580 )) +NERR_DfsDataIsIdentical = make_flag("NERR_DfsDataIsIdentical", ( NERR_BASE + 581 )) +NERR_DfsCantRemoveDfsRoot = make_flag("NERR_DfsCantRemoveDfsRoot", ( NERR_BASE + 582 )) +NERR_DfsChildOrParentInDfs = make_flag("NERR_DfsChildOrParentInDfs", ( NERR_BASE + 583 )) +NERR_DfsInternalError = make_flag("NERR_DfsInternalError", ( NERR_BASE + 590 )) +NERR_SetupAlreadyJoined = make_flag("NERR_SetupAlreadyJoined", ( NERR_BASE + 591 )) +NERR_SetupNotJoined = make_flag("NERR_SetupNotJoined", ( NERR_BASE + 592 )) +NERR_SetupDomainController = make_flag("NERR_SetupDomainController", ( NERR_BASE + 593 )) +NERR_DefaultJoinRequired = make_flag("NERR_DefaultJoinRequired", ( NERR_BASE + 594 )) +NERR_InvalidWorkgroupName = make_flag("NERR_InvalidWorkgroupName", ( NERR_BASE + 595 )) +NERR_NameUsesIncompatibleCodePage = make_flag("NERR_NameUsesIncompatibleCodePage", ( NERR_BASE + 596 )) +NERR_ComputerAccountNotFound = make_flag("NERR_ComputerAccountNotFound", ( NERR_BASE + 597 )) +NERR_PersonalSku = make_flag("NERR_PersonalSku", ( NERR_BASE + 598 )) +NERR_SetupCheckDNSConfig = make_flag("NERR_SetupCheckDNSConfig", ( NERR_BASE + 599 )) +NERR_AlreadyCloudDomainJoined = make_flag("NERR_AlreadyCloudDomainJoined", ( NERR_BASE + 600 )) +NERR_PasswordMustChange = make_flag("NERR_PasswordMustChange", ( NERR_BASE + 601 )) +NERR_AccountLockedOut = make_flag("NERR_AccountLockedOut", ( NERR_BASE + 602 )) +NERR_PasswordTooLong = make_flag("NERR_PasswordTooLong", ( NERR_BASE + 603 )) +NERR_PasswordNotComplexEnough = make_flag("NERR_PasswordNotComplexEnough", ( NERR_BASE + 604 )) +NERR_PasswordFilterError = make_flag("NERR_PasswordFilterError", ( NERR_BASE + 605 )) +NERR_NoOfflineJoinInfo = make_flag("NERR_NoOfflineJoinInfo", ( NERR_BASE + 609 )) +NERR_BadOfflineJoinInfo = make_flag("NERR_BadOfflineJoinInfo", ( NERR_BASE + 610 )) +NERR_CantCreateJoinInfo = make_flag("NERR_CantCreateJoinInfo", ( NERR_BASE + 611 )) +NERR_BadDomainJoinInfo = make_flag("NERR_BadDomainJoinInfo", ( NERR_BASE + 612 )) +NERR_JoinPerformedMustRestart = make_flag("NERR_JoinPerformedMustRestart", ( NERR_BASE + 613 )) +NERR_NoJoinPending = make_flag("NERR_NoJoinPending", ( NERR_BASE + 614 )) +NERR_ValuesNotSet = make_flag("NERR_ValuesNotSet", ( NERR_BASE + 615 )) +NERR_CantVerifyHostname = make_flag("NERR_CantVerifyHostname", ( NERR_BASE + 616 )) +NERR_CantLoadOfflineHive = make_flag("NERR_CantLoadOfflineHive", ( NERR_BASE + 617 )) +NERR_ConnectionInsecure = make_flag("NERR_ConnectionInsecure", ( NERR_BASE + 618 )) +NERR_ProvisioningBlobUnsupported = make_flag("NERR_ProvisioningBlobUnsupported", ( NERR_BASE + 619 )) +NERR_DS8DCRequired = make_flag("NERR_DS8DCRequired", ( NERR_BASE + 620 )) +NERR_LDAPCapableDCRequired = make_flag("NERR_LDAPCapableDCRequired", ( NERR_BASE + 621 )) +NERR_DS8DCNotFound = make_flag("NERR_DS8DCNotFound", ( NERR_BASE + 622 )) +NERR_TargetVersionUnsupported = make_flag("NERR_TargetVersionUnsupported", ( NERR_BASE + 623 )) +NERR_InvalidMachineNameForJoin = make_flag("NERR_InvalidMachineNameForJoin", ( NERR_BASE + 624 )) +NERR_DS9DCNotFound = make_flag("NERR_DS9DCNotFound", ( NERR_BASE + 625 )) +NERR_PlainTextSecretsRequired = make_flag("NERR_PlainTextSecretsRequired", ( NERR_BASE + 626 )) +NERR_CannotUnjoinAadDomain = make_flag("NERR_CannotUnjoinAadDomain", ( NERR_BASE + 627 )) +MAX_NERR = make_flag("MAX_NERR", ( NERR_BASE + 899 )) +ATM_E164 = make_flag("ATM_E164", 0x01) +ATM_NSAP = make_flag("ATM_NSAP", 0x02) +ATM_AESA = make_flag("ATM_AESA", 0x02) +ATM_ADDR_SIZE = make_flag("ATM_ADDR_SIZE", 20) +DNS_ATMA_FORMAT_E164 = make_flag("DNS_ATMA_FORMAT_E164", ATM_E164) +DNS_ATMA_FORMAT_AESA = make_flag("DNS_ATMA_FORMAT_AESA", ATM_AESA) +DNS_ATMA_MAX_ADDR_LENGTH = make_flag("DNS_ATMA_MAX_ADDR_LENGTH", ATM_ADDR_SIZE) +DNS_ADDR_MAX_SOCKADDR_LENGTH = make_flag("DNS_ADDR_MAX_SOCKADDR_LENGTH", ( 32 )) +DNS_TYPE_ZERO = make_flag("DNS_TYPE_ZERO", 0x0000) +DNS_TYPE_A = make_flag("DNS_TYPE_A", 0x0001) +DNS_TYPE_NS = make_flag("DNS_TYPE_NS", 0x0002) +DNS_TYPE_MD = make_flag("DNS_TYPE_MD", 0x0003) +DNS_TYPE_MF = make_flag("DNS_TYPE_MF", 0x0004) +DNS_TYPE_CNAME = make_flag("DNS_TYPE_CNAME", 0x0005) +DNS_TYPE_SOA = make_flag("DNS_TYPE_SOA", 0x0006) +DNS_TYPE_MB = make_flag("DNS_TYPE_MB", 0x0007) +DNS_TYPE_MG = make_flag("DNS_TYPE_MG", 0x0008) +DNS_TYPE_MR = make_flag("DNS_TYPE_MR", 0x0009) +DNS_TYPE_NULL = make_flag("DNS_TYPE_NULL", 0x000a) +DNS_TYPE_WKS = make_flag("DNS_TYPE_WKS", 0x000b) +DNS_TYPE_PTR = make_flag("DNS_TYPE_PTR", 0x000c) +DNS_TYPE_HINFO = make_flag("DNS_TYPE_HINFO", 0x000d) +DNS_TYPE_MINFO = make_flag("DNS_TYPE_MINFO", 0x000e) +DNS_TYPE_MX = make_flag("DNS_TYPE_MX", 0x000f) +DNS_TYPE_TEXT = make_flag("DNS_TYPE_TEXT", 0x0010) +DNS_TYPE_RP = make_flag("DNS_TYPE_RP", 0x0011) +DNS_TYPE_AFSDB = make_flag("DNS_TYPE_AFSDB", 0x0012) +DNS_TYPE_X25 = make_flag("DNS_TYPE_X25", 0x0013) +DNS_TYPE_ISDN = make_flag("DNS_TYPE_ISDN", 0x0014) +DNS_TYPE_RT = make_flag("DNS_TYPE_RT", 0x0015) +DNS_TYPE_NSAP = make_flag("DNS_TYPE_NSAP", 0x0016) +DNS_TYPE_NSAPPTR = make_flag("DNS_TYPE_NSAPPTR", 0x0017) +DNS_TYPE_SIG = make_flag("DNS_TYPE_SIG", 0x0018) +DNS_TYPE_KEY = make_flag("DNS_TYPE_KEY", 0x0019) +DNS_TYPE_PX = make_flag("DNS_TYPE_PX", 0x001a) +DNS_TYPE_GPOS = make_flag("DNS_TYPE_GPOS", 0x001b) +DNS_TYPE_AAAA = make_flag("DNS_TYPE_AAAA", 0x001c) +DNS_TYPE_LOC = make_flag("DNS_TYPE_LOC", 0x001d) +DNS_TYPE_NXT = make_flag("DNS_TYPE_NXT", 0x001e) +DNS_TYPE_EID = make_flag("DNS_TYPE_EID", 0x001f) +DNS_TYPE_NIMLOC = make_flag("DNS_TYPE_NIMLOC", 0x0020) +DNS_TYPE_SRV = make_flag("DNS_TYPE_SRV", 0x0021) +DNS_TYPE_ATMA = make_flag("DNS_TYPE_ATMA", 0x0022) +DNS_TYPE_NAPTR = make_flag("DNS_TYPE_NAPTR", 0x0023) +DNS_TYPE_KX = make_flag("DNS_TYPE_KX", 0x0024) +DNS_TYPE_CERT = make_flag("DNS_TYPE_CERT", 0x0025) +DNS_TYPE_A6 = make_flag("DNS_TYPE_A6", 0x0026) +DNS_TYPE_DNAME = make_flag("DNS_TYPE_DNAME", 0x0027) +DNS_TYPE_SINK = make_flag("DNS_TYPE_SINK", 0x0028) +DNS_TYPE_OPT = make_flag("DNS_TYPE_OPT", 0x0029) +DNS_TYPE_DS = make_flag("DNS_TYPE_DS", 0x002b) +DNS_TYPE_RRSIG = make_flag("DNS_TYPE_RRSIG", 0x002e) +DNS_TYPE_NSEC = make_flag("DNS_TYPE_NSEC", 0x002f) +DNS_TYPE_DNSKEY = make_flag("DNS_TYPE_DNSKEY", 0x0030) +DNS_TYPE_DHCID = make_flag("DNS_TYPE_DHCID", 0x0031) +DNS_TYPE_NSEC3 = make_flag("DNS_TYPE_NSEC3", 0x0032) +DNS_TYPE_NSEC3PARAM = make_flag("DNS_TYPE_NSEC3PARAM", 0x0033) +DNS_TYPE_UINFO = make_flag("DNS_TYPE_UINFO", 0x0064) +DNS_TYPE_UID = make_flag("DNS_TYPE_UID", 0x0065) +DNS_TYPE_GID = make_flag("DNS_TYPE_GID", 0x0066) +DNS_TYPE_UNSPEC = make_flag("DNS_TYPE_UNSPEC", 0x0067) +DNS_TYPE_ADDRS = make_flag("DNS_TYPE_ADDRS", 0x00f8) +DNS_TYPE_TKEY = make_flag("DNS_TYPE_TKEY", 0x00f9) +DNS_TYPE_TSIG = make_flag("DNS_TYPE_TSIG", 0x00fa) +DNS_TYPE_IXFR = make_flag("DNS_TYPE_IXFR", 0x00fb) +DNS_TYPE_AXFR = make_flag("DNS_TYPE_AXFR", 0x00fc) +DNS_TYPE_MAILB = make_flag("DNS_TYPE_MAILB", 0x00fd) +DNS_TYPE_MAILA = make_flag("DNS_TYPE_MAILA", 0x00fe) +DNS_TYPE_ALL = make_flag("DNS_TYPE_ALL", 0x00ff) +DNS_TYPE_ANY = make_flag("DNS_TYPE_ANY", 0x00ff) +DNS_TYPE_WINS = make_flag("DNS_TYPE_WINS", 0xff01) +DNS_TYPE_WINSR = make_flag("DNS_TYPE_WINSR", 0xff02) +DNS_TYPE_NBSTAT = make_flag("DNS_TYPE_NBSTAT", ( DNS_TYPE_WINSR )) +DNS_QUERY_STANDARD = make_flag("DNS_QUERY_STANDARD", 0x00000000) +DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE = make_flag("DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE", 0x00000001) +DNS_QUERY_USE_TCP_ONLY = make_flag("DNS_QUERY_USE_TCP_ONLY", 0x00000002) +DNS_QUERY_NO_RECURSION = make_flag("DNS_QUERY_NO_RECURSION", 0x00000004) +DNS_QUERY_BYPASS_CACHE = make_flag("DNS_QUERY_BYPASS_CACHE", 0x00000008) +DNS_QUERY_NO_WIRE_QUERY = make_flag("DNS_QUERY_NO_WIRE_QUERY", 0x00000010) +DNS_QUERY_NO_LOCAL_NAME = make_flag("DNS_QUERY_NO_LOCAL_NAME", 0x00000020) +DNS_QUERY_NO_HOSTS_FILE = make_flag("DNS_QUERY_NO_HOSTS_FILE", 0x00000040) +DNS_QUERY_NO_NETBT = make_flag("DNS_QUERY_NO_NETBT", 0x00000080) +DNS_QUERY_WIRE_ONLY = make_flag("DNS_QUERY_WIRE_ONLY", 0x00000100) +DNS_QUERY_RETURN_MESSAGE = make_flag("DNS_QUERY_RETURN_MESSAGE", 0x00000200) +DNS_QUERY_MULTICAST_ONLY = make_flag("DNS_QUERY_MULTICAST_ONLY", 0x00000400) +DNS_QUERY_NO_MULTICAST = make_flag("DNS_QUERY_NO_MULTICAST", 0x00000800) +DNS_QUERY_TREAT_AS_FQDN = make_flag("DNS_QUERY_TREAT_AS_FQDN", 0x00001000) +DNS_QUERY_ADDRCONFIG = make_flag("DNS_QUERY_ADDRCONFIG", 0x00002000) +DNS_QUERY_DUAL_ADDR = make_flag("DNS_QUERY_DUAL_ADDR", 0x00004000) +DNS_QUERY_DONT_RESET_TTL_VALUES = make_flag("DNS_QUERY_DONT_RESET_TTL_VALUES", 0x00100000) +DNS_QUERY_DISABLE_IDN_ENCODING = make_flag("DNS_QUERY_DISABLE_IDN_ENCODING", 0x00200000) +DNS_QUERY_APPEND_MULTILABEL = make_flag("DNS_QUERY_APPEND_MULTILABEL", 0x00800000) +DNS_QUERY_DNSSEC_OK = make_flag("DNS_QUERY_DNSSEC_OK", 0x01000000) +DNS_QUERY_DNSSEC_CHECKING_DISABLED = make_flag("DNS_QUERY_DNSSEC_CHECKING_DISABLED", 0x02000000) +DNS_QUERY_RESERVED = make_flag("DNS_QUERY_RESERVED", 0xf0000000) +MAX_ADAPTER_DESCRIPTION_LENGTH = make_flag("MAX_ADAPTER_DESCRIPTION_LENGTH", 128) +MAX_ADAPTER_NAME_LENGTH = make_flag("MAX_ADAPTER_NAME_LENGTH", 256) +MAX_ADAPTER_ADDRESS_LENGTH = make_flag("MAX_ADAPTER_ADDRESS_LENGTH", 8) +DEFAULT_MINIMUM_ENTITIES = make_flag("DEFAULT_MINIMUM_ENTITIES", 32) +MAX_HOSTNAME_LEN = make_flag("MAX_HOSTNAME_LEN", 128) +MAX_DOMAIN_NAME_LEN = make_flag("MAX_DOMAIN_NAME_LEN", 128) +MAX_SCOPE_ID_LEN = make_flag("MAX_SCOPE_ID_LEN", 256) +MAX_DHCPV6_DUID_LENGTH = make_flag("MAX_DHCPV6_DUID_LENGTH", 130) +MAX_DNS_SUFFIX_STRING_LENGTH = make_flag("MAX_DNS_SUFFIX_STRING_LENGTH", 256) +PIPE_ACCESS_INBOUND = make_flag("PIPE_ACCESS_INBOUND", 0x00000001) +PIPE_ACCESS_OUTBOUND = make_flag("PIPE_ACCESS_OUTBOUND", 0x00000002) +PIPE_ACCESS_DUPLEX = make_flag("PIPE_ACCESS_DUPLEX", 0x00000003) +PIPE_CLIENT_END = make_flag("PIPE_CLIENT_END", 0x00000000) +PIPE_SERVER_END = make_flag("PIPE_SERVER_END", 0x00000001) +PIPE_WAIT = make_flag("PIPE_WAIT", 0x00000000) +PIPE_NOWAIT = make_flag("PIPE_NOWAIT", 0x00000001) +PIPE_READMODE_BYTE = make_flag("PIPE_READMODE_BYTE", 0x00000000) +PIPE_READMODE_MESSAGE = make_flag("PIPE_READMODE_MESSAGE", 0x00000002) +PIPE_TYPE_BYTE = make_flag("PIPE_TYPE_BYTE", 0x00000000) +PIPE_TYPE_MESSAGE = make_flag("PIPE_TYPE_MESSAGE", 0x00000004) +PIPE_ACCEPT_REMOTE_CLIENTS = make_flag("PIPE_ACCEPT_REMOTE_CLIENTS", 0x00000000) +PIPE_REJECT_REMOTE_CLIENTS = make_flag("PIPE_REJECT_REMOTE_CLIENTS", 0x00000008) +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) +HKEY_CLASSES_ROOT = make_flag("HKEY_CLASSES_ROOT", ( 0x80000000 )) +HKEY_CURRENT_USER = make_flag("HKEY_CURRENT_USER", ( 0x80000001 )) +HKEY_LOCAL_MACHINE = make_flag("HKEY_LOCAL_MACHINE", ( 0x80000002 )) +HKEY_USERS = make_flag("HKEY_USERS", ( 0x80000003 )) +HKEY_PERFORMANCE_DATA = make_flag("HKEY_PERFORMANCE_DATA", ( 0x80000004 )) +HKEY_PERFORMANCE_TEXT = make_flag("HKEY_PERFORMANCE_TEXT", ( 0x80000050 )) +HKEY_PERFORMANCE_NLSTEXT = make_flag("HKEY_PERFORMANCE_NLSTEXT", ( 0x80000060 )) +HKEY_CURRENT_CONFIG = make_flag("HKEY_CURRENT_CONFIG", ( 0x80000005 )) +HKEY_DYN_DATA = make_flag("HKEY_DYN_DATA", ( 0x80000006 )) +HKEY_CURRENT_USER_LOCAL_SETTINGS = make_flag("HKEY_CURRENT_USER_LOCAL_SETTINGS", ( 0x80000007 )) +REG_OPTION_RESERVED = make_flag("REG_OPTION_RESERVED", ( 0x00000000 )) +REG_OPTION_NON_VOLATILE = make_flag("REG_OPTION_NON_VOLATILE", ( 0x00000000 )) +REG_OPTION_VOLATILE = make_flag("REG_OPTION_VOLATILE", ( 0x00000001 )) +REG_OPTION_CREATE_LINK = make_flag("REG_OPTION_CREATE_LINK", ( 0x00000002 )) +REG_OPTION_BACKUP_RESTORE = make_flag("REG_OPTION_BACKUP_RESTORE", ( 0x00000004 )) +REG_OPTION_OPEN_LINK = make_flag("REG_OPTION_OPEN_LINK", ( 0x00000008 )) +REG_LEGAL_OPTION = make_flag("REG_LEGAL_OPTION", ( REG_OPTION_RESERVED | REG_OPTION_NON_VOLATILE | REG_OPTION_VOLATILE | REG_OPTION_CREATE_LINK | REG_OPTION_BACKUP_RESTORE | REG_OPTION_OPEN_LINK )) +REG_STANDARD_FORMAT = make_flag("REG_STANDARD_FORMAT", 1) +REG_LATEST_FORMAT = make_flag("REG_LATEST_FORMAT", 2) +REG_NO_COMPRESSION = make_flag("REG_NO_COMPRESSION", 4) +ACCESS_MIN_MS_ACE_TYPE = make_flag("ACCESS_MIN_MS_ACE_TYPE", ( 0x0 )) +ACCESS_ALLOWED_ACE_TYPE = make_flag("ACCESS_ALLOWED_ACE_TYPE", ( 0x0 )) +ACCESS_DENIED_ACE_TYPE = make_flag("ACCESS_DENIED_ACE_TYPE", ( 0x1 )) +SYSTEM_AUDIT_ACE_TYPE = make_flag("SYSTEM_AUDIT_ACE_TYPE", ( 0x2 )) +SYSTEM_ALARM_ACE_TYPE = make_flag("SYSTEM_ALARM_ACE_TYPE", ( 0x3 )) +ACCESS_MAX_MS_V2_ACE_TYPE = make_flag("ACCESS_MAX_MS_V2_ACE_TYPE", ( 0x3 )) +ACCESS_ALLOWED_COMPOUND_ACE_TYPE = make_flag("ACCESS_ALLOWED_COMPOUND_ACE_TYPE", ( 0x4 )) +ACCESS_MAX_MS_V3_ACE_TYPE = make_flag("ACCESS_MAX_MS_V3_ACE_TYPE", ( 0x4 )) +ACCESS_MIN_MS_OBJECT_ACE_TYPE = make_flag("ACCESS_MIN_MS_OBJECT_ACE_TYPE", ( 0x5 )) +ACCESS_ALLOWED_OBJECT_ACE_TYPE = make_flag("ACCESS_ALLOWED_OBJECT_ACE_TYPE", ( 0x5 )) +ACCESS_DENIED_OBJECT_ACE_TYPE = make_flag("ACCESS_DENIED_OBJECT_ACE_TYPE", ( 0x6 )) +SYSTEM_AUDIT_OBJECT_ACE_TYPE = make_flag("SYSTEM_AUDIT_OBJECT_ACE_TYPE", ( 0x7 )) +SYSTEM_ALARM_OBJECT_ACE_TYPE = make_flag("SYSTEM_ALARM_OBJECT_ACE_TYPE", ( 0x8 )) +ACCESS_MAX_MS_OBJECT_ACE_TYPE = make_flag("ACCESS_MAX_MS_OBJECT_ACE_TYPE", ( 0x8 )) +ACCESS_MAX_MS_V4_ACE_TYPE = make_flag("ACCESS_MAX_MS_V4_ACE_TYPE", ( 0x8 )) +ACCESS_MAX_MS_ACE_TYPE = make_flag("ACCESS_MAX_MS_ACE_TYPE", ( 0x8 )) +ACCESS_ALLOWED_CALLBACK_ACE_TYPE = make_flag("ACCESS_ALLOWED_CALLBACK_ACE_TYPE", ( 0x9 )) +ACCESS_DENIED_CALLBACK_ACE_TYPE = make_flag("ACCESS_DENIED_CALLBACK_ACE_TYPE", ( 0xA )) +ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE = make_flag("ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE", ( 0xB )) +ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE = make_flag("ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE", ( 0xC )) +SYSTEM_AUDIT_CALLBACK_ACE_TYPE = make_flag("SYSTEM_AUDIT_CALLBACK_ACE_TYPE", ( 0xD )) +SYSTEM_ALARM_CALLBACK_ACE_TYPE = make_flag("SYSTEM_ALARM_CALLBACK_ACE_TYPE", ( 0xE )) +SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE = make_flag("SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE", ( 0xF )) +SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE = make_flag("SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE", ( 0x10 )) +SYSTEM_MANDATORY_LABEL_ACE_TYPE = make_flag("SYSTEM_MANDATORY_LABEL_ACE_TYPE", ( 0x11 )) +ACCESS_MAX_MS_V5_ACE_TYPE = make_flag("ACCESS_MAX_MS_V5_ACE_TYPE", ( 0x11 )) +SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE = make_flag("SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE", ( 0x12 )) +SYSTEM_SCOPED_POLICY_ID_ACE_TYPE = make_flag("SYSTEM_SCOPED_POLICY_ID_ACE_TYPE", ( 0x13 )) +SYSTEM_PROCESS_TRUST_LABEL_ACE_TYPE = make_flag("SYSTEM_PROCESS_TRUST_LABEL_ACE_TYPE", ( 0x14 )) +ACCESS_MAX_MS_V5_ACE_TYPE = make_flag("ACCESS_MAX_MS_V5_ACE_TYPE", ( 0x14 )) +SEC_WINNT_AUTH_IDENTITY_ANSI = make_flag("SEC_WINNT_AUTH_IDENTITY_ANSI", 0x1) +SEC_WINNT_AUTH_IDENTITY_UNICODE = make_flag("SEC_WINNT_AUTH_IDENTITY_UNICODE", 0x2) +SE_OWNER_DEFAULTED = make_flag("SE_OWNER_DEFAULTED", 0x00000001) +SE_GROUP_DEFAULTED = make_flag("SE_GROUP_DEFAULTED", 0x00000002) +SE_DACL_PRESENT = make_flag("SE_DACL_PRESENT", 0x00000004) +SE_DACL_DEFAULTED = make_flag("SE_DACL_DEFAULTED", 0x00000008) +SE_SACL_PRESENT = make_flag("SE_SACL_PRESENT", 0x00000010) +SE_SACL_DEFAULTED = make_flag("SE_SACL_DEFAULTED", 0x00000020) +SE_DACL_UNTRUSTED = make_flag("SE_DACL_UNTRUSTED", ( 0x0040 )) +SE_SERVER_SECURITY = make_flag("SE_SERVER_SECURITY", ( 0x0080 )) +SE_DACL_AUTO_INHERIT_REQ = make_flag("SE_DACL_AUTO_INHERIT_REQ", 0x00000100) +SE_SACL_AUTO_INHERIT_REQ = make_flag("SE_SACL_AUTO_INHERIT_REQ", 0x00000200) +SE_DACL_AUTO_INHERITED = make_flag("SE_DACL_AUTO_INHERITED", 0x00000400) +SE_SACL_AUTO_INHERITED = make_flag("SE_SACL_AUTO_INHERITED", 0x00000800) +SE_DACL_PROTECTED = make_flag("SE_DACL_PROTECTED", 0x00001000) +SE_SACL_PROTECTED = make_flag("SE_SACL_PROTECTED", 0x00002000) +SE_RM_CONTROL_VALID = make_flag("SE_RM_CONTROL_VALID", 0x00004000) +SE_SELF_RELATIVE = make_flag("SE_SELF_RELATIVE", 0x00008000) +SDDL_REVISION_1 = make_flag("SDDL_REVISION_1", 0x1) +ACE_OBJECT_TYPE_PRESENT = make_flag("ACE_OBJECT_TYPE_PRESENT", 0x1) +ACE_INHERITED_OBJECT_TYPE_PRESENT = make_flag("ACE_INHERITED_OBJECT_TYPE_PRESENT", 0x2) +OBJECT_INHERIT_ACE = make_flag("OBJECT_INHERIT_ACE", ( 0x1 )) +CONTAINER_INHERIT_ACE = make_flag("CONTAINER_INHERIT_ACE", ( 0x2 )) +NO_PROPAGATE_INHERIT_ACE = make_flag("NO_PROPAGATE_INHERIT_ACE", ( 0x4 )) +INHERIT_ONLY_ACE = make_flag("INHERIT_ONLY_ACE", ( 0x8 )) +INHERITED_ACE = make_flag("INHERITED_ACE", ( 0x10 )) +VALID_INHERIT_FLAGS = make_flag("VALID_INHERIT_FLAGS", ( 0x1F )) +SUCCESSFUL_ACCESS_ACE_FLAG = make_flag("SUCCESSFUL_ACCESS_ACE_FLAG", ( 0x40 )) +FAILED_ACCESS_ACE_FLAG = make_flag("FAILED_ACCESS_ACE_FLAG", ( 0x80 )) +SYSTEM_MANDATORY_LABEL_NO_WRITE_UP = make_flag("SYSTEM_MANDATORY_LABEL_NO_WRITE_UP", 0x1) +SYSTEM_MANDATORY_LABEL_NO_READ_UP = make_flag("SYSTEM_MANDATORY_LABEL_NO_READ_UP", 0x2) +SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP = make_flag("SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP", 0x4) +SYSTEM_PROCESS_TRUST_LABEL_VALID_MASK = make_flag("SYSTEM_PROCESS_TRUST_LABEL_VALID_MASK", 0x00ffffff) +SYSTEM_PROCESS_TRUST_NOCONSTRAINT_MASK = make_flag("SYSTEM_PROCESS_TRUST_NOCONSTRAINT_MASK", 0xffffffff) +CLAIM_SECURITY_ATTRIBUTE_TYPE_INVALID = make_flag("CLAIM_SECURITY_ATTRIBUTE_TYPE_INVALID", 0x00) +CLAIM_SECURITY_ATTRIBUTE_TYPE_INT64 = make_flag("CLAIM_SECURITY_ATTRIBUTE_TYPE_INT64", 0x01) +CLAIM_SECURITY_ATTRIBUTE_TYPE_UINT64 = make_flag("CLAIM_SECURITY_ATTRIBUTE_TYPE_UINT64", 0x02) +CLAIM_SECURITY_ATTRIBUTE_TYPE_STRING = make_flag("CLAIM_SECURITY_ATTRIBUTE_TYPE_STRING", 0x03) +CLAIM_SECURITY_ATTRIBUTE_TYPE_FQBN = make_flag("CLAIM_SECURITY_ATTRIBUTE_TYPE_FQBN", 0x04) +CLAIM_SECURITY_ATTRIBUTE_TYPE_SID = make_flag("CLAIM_SECURITY_ATTRIBUTE_TYPE_SID", 0x05) +CLAIM_SECURITY_ATTRIBUTE_TYPE_BOOLEAN = make_flag("CLAIM_SECURITY_ATTRIBUTE_TYPE_BOOLEAN", 0x06) +CLAIM_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING = make_flag("CLAIM_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING", 0x10) +SE_GROUP_MANDATORY = make_flag("SE_GROUP_MANDATORY", ( 0x00000001 )) +SE_GROUP_ENABLED_BY_DEFAULT = make_flag("SE_GROUP_ENABLED_BY_DEFAULT", ( 0x00000002 )) +SE_GROUP_ENABLED = make_flag("SE_GROUP_ENABLED", ( 0x00000004 )) +SE_GROUP_OWNER = make_flag("SE_GROUP_OWNER", ( 0x00000008 )) +SE_GROUP_USE_FOR_DENY_ONLY = make_flag("SE_GROUP_USE_FOR_DENY_ONLY", ( 0x00000010 )) +SE_GROUP_INTEGRITY = make_flag("SE_GROUP_INTEGRITY", ( 0x00000020 )) +SE_GROUP_INTEGRITY_ENABLED = make_flag("SE_GROUP_INTEGRITY_ENABLED", ( 0x00000040 )) +SE_GROUP_LOGON_ID = make_flag("SE_GROUP_LOGON_ID", ( 0xC0000000 )) +SE_GROUP_RESOURCE = make_flag("SE_GROUP_RESOURCE", ( 0x20000000 )) +SE_GROUP_VALID_ATTRIBUTES = make_flag("SE_GROUP_VALID_ATTRIBUTES", ( SE_GROUP_MANDATORY | SE_GROUP_ENABLED_BY_DEFAULT | SE_GROUP_ENABLED | SE_GROUP_OWNER | SE_GROUP_USE_FOR_DENY_ONLY | SE_GROUP_LOGON_ID | SE_GROUP_RESOURCE | SE_GROUP_INTEGRITY | SE_GROUP_INTEGRITY_ENABLED )) +OWNER_SECURITY_INFORMATION = make_flag("OWNER_SECURITY_INFORMATION", ( 0x00000001 )) +GROUP_SECURITY_INFORMATION = make_flag("GROUP_SECURITY_INFORMATION", ( 0x00000002 )) +DACL_SECURITY_INFORMATION = make_flag("DACL_SECURITY_INFORMATION", ( 0x00000004 )) +SACL_SECURITY_INFORMATION = make_flag("SACL_SECURITY_INFORMATION", ( 0x00000008 )) +LABEL_SECURITY_INFORMATION = make_flag("LABEL_SECURITY_INFORMATION", ( 0x00000010 )) +ATTRIBUTE_SECURITY_INFORMATION = make_flag("ATTRIBUTE_SECURITY_INFORMATION", ( 0x00000020 )) +SCOPE_SECURITY_INFORMATION = make_flag("SCOPE_SECURITY_INFORMATION", ( 0x00000040 )) +PROCESS_TRUST_LABEL_SECURITY_INFORMATION = make_flag("PROCESS_TRUST_LABEL_SECURITY_INFORMATION", ( 0x00000080 )) +BACKUP_SECURITY_INFORMATION = make_flag("BACKUP_SECURITY_INFORMATION", ( 0x00010000 )) +PROTECTED_DACL_SECURITY_INFORMATION = make_flag("PROTECTED_DACL_SECURITY_INFORMATION", ( 0x80000000 )) +PROTECTED_SACL_SECURITY_INFORMATION = make_flag("PROTECTED_SACL_SECURITY_INFORMATION", ( 0x40000000 )) +UNPROTECTED_DACL_SECURITY_INFORMATION = make_flag("UNPROTECTED_DACL_SECURITY_INFORMATION", ( 0x20000000 )) +UNPROTECTED_SACL_SECURITY_INFORMATION = make_flag("UNPROTECTED_SACL_SECURITY_INFORMATION", ( 0x10000000 )) +SECURITY_DESCRIPTOR_REVISION = make_flag("SECURITY_DESCRIPTOR_REVISION", 1) +SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL = make_flag("SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL", 1) +SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY = make_flag("SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY", 2) +SERVICE_TRIGGER_TYPE_DOMAIN_JOIN = make_flag("SERVICE_TRIGGER_TYPE_DOMAIN_JOIN", 3) +SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT = make_flag("SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT", 4) +SERVICE_TRIGGER_TYPE_GROUP_POLICY = make_flag("SERVICE_TRIGGER_TYPE_GROUP_POLICY", 5) +SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT = make_flag("SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT", 6) +SERVICE_TRIGGER_TYPE_CUSTOM_SYSTEM_STATE_CHANGE = make_flag("SERVICE_TRIGGER_TYPE_CUSTOM_SYSTEM_STATE_CHANGE", 7) +SERVICE_TRIGGER_TYPE_CUSTOM = make_flag("SERVICE_TRIGGER_TYPE_CUSTOM", 20) +SERVICE_TRIGGER_DATA_TYPE_BINARY = make_flag("SERVICE_TRIGGER_DATA_TYPE_BINARY", 1) +SERVICE_TRIGGER_DATA_TYPE_STRING = make_flag("SERVICE_TRIGGER_DATA_TYPE_STRING", 2) +SERVICE_TRIGGER_DATA_TYPE_LEVEL = make_flag("SERVICE_TRIGGER_DATA_TYPE_LEVEL", 3) +SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY = make_flag("SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY", 4) +SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL = make_flag("SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL", 5) +SERVICE_RUNS_IN_SYSTEM_PROCESS = make_flag("SERVICE_RUNS_IN_SYSTEM_PROCESS", 0x00000001) +SERVICE_KERNEL_DRIVER = make_flag("SERVICE_KERNEL_DRIVER", 0x00000001) +SERVICE_FILE_SYSTEM_DRIVER = make_flag("SERVICE_FILE_SYSTEM_DRIVER", 0x00000002) +SERVICE_ADAPTER = make_flag("SERVICE_ADAPTER", 0x00000004) +SERVICE_RECOGNIZER_DRIVER = make_flag("SERVICE_RECOGNIZER_DRIVER", 0x00000008) +SERVICE_DRIVER = make_flag("SERVICE_DRIVER", ( SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER )) +SERVICE_WIN32_OWN_PROCESS = make_flag("SERVICE_WIN32_OWN_PROCESS", 0x00000010) +SERVICE_WIN32_SHARE_PROCESS = make_flag("SERVICE_WIN32_SHARE_PROCESS", 0x00000020) +SERVICE_USER_OWN_PROCESS = make_flag("SERVICE_USER_OWN_PROCESS", 0x00000050) +SERVICE_USER_SHARE_PROCESS = make_flag("SERVICE_USER_SHARE_PROCESS", 0x00000060) +SERVICE_WIN32 = make_flag("SERVICE_WIN32", ( SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS )) +SERVICE_INTERACTIVE_PROCESS = make_flag("SERVICE_INTERACTIVE_PROCESS", 0x00000100) +SERVICE_TYPE_ALL = make_flag("SERVICE_TYPE_ALL", ( SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS )) +SERVICE_BOOT_START = make_flag("SERVICE_BOOT_START", 0x00000000) +SERVICE_SYSTEM_START = make_flag("SERVICE_SYSTEM_START", 0x00000001) +SERVICE_AUTO_START = make_flag("SERVICE_AUTO_START", 0x00000002) +SERVICE_DEMAND_START = make_flag("SERVICE_DEMAND_START", 0x00000003) +SERVICE_DISABLED = make_flag("SERVICE_DISABLED", 0x00000004) +SERVICE_ERROR_IGNORE = make_flag("SERVICE_ERROR_IGNORE", 0x00000000) +SERVICE_ERROR_NORMAL = make_flag("SERVICE_ERROR_NORMAL", 0x00000001) +SERVICE_ERROR_SEVERE = make_flag("SERVICE_ERROR_SEVERE", 0x00000002) +SERVICE_ERROR_CRITICAL = make_flag("SERVICE_ERROR_CRITICAL", 0x00000003) +SERVICE_ACTIVE = make_flag("SERVICE_ACTIVE", 0x00000001) +SERVICE_INACTIVE = make_flag("SERVICE_INACTIVE", 0x00000002) +SERVICE_STATE_ALL = make_flag("SERVICE_STATE_ALL", ( SERVICE_ACTIVE | SERVICE_INACTIVE )) +SERVICE_CONTROL_STOP = make_flag("SERVICE_CONTROL_STOP", 0x00000001) +SERVICE_CONTROL_PAUSE = make_flag("SERVICE_CONTROL_PAUSE", 0x00000002) +SERVICE_CONTROL_CONTINUE = make_flag("SERVICE_CONTROL_CONTINUE", 0x00000003) +SERVICE_CONTROL_INTERROGATE = make_flag("SERVICE_CONTROL_INTERROGATE", 0x00000004) +SERVICE_CONTROL_SHUTDOWN = make_flag("SERVICE_CONTROL_SHUTDOWN", 0x00000005) +SERVICE_CONTROL_PARAMCHANGE = make_flag("SERVICE_CONTROL_PARAMCHANGE", 0x00000006) +SERVICE_CONTROL_NETBINDADD = make_flag("SERVICE_CONTROL_NETBINDADD", 0x00000007) +SERVICE_CONTROL_NETBINDREMOVE = make_flag("SERVICE_CONTROL_NETBINDREMOVE", 0x00000008) +SERVICE_CONTROL_NETBINDENABLE = make_flag("SERVICE_CONTROL_NETBINDENABLE", 0x00000009) +SERVICE_CONTROL_NETBINDDISABLE = make_flag("SERVICE_CONTROL_NETBINDDISABLE", 0x0000000A) +SERVICE_CONTROL_DEVICEEVENT = make_flag("SERVICE_CONTROL_DEVICEEVENT", 0x0000000B) +SERVICE_CONTROL_HARDWAREPROFILECHANGE = make_flag("SERVICE_CONTROL_HARDWAREPROFILECHANGE", 0x0000000C) +SERVICE_CONTROL_POWEREVENT = make_flag("SERVICE_CONTROL_POWEREVENT", 0x0000000D) +SERVICE_CONTROL_SESSIONCHANGE = make_flag("SERVICE_CONTROL_SESSIONCHANGE", 0x0000000E) +SERVICE_CONTROL_PRESHUTDOWN = make_flag("SERVICE_CONTROL_PRESHUTDOWN", 0x0000000F) +SERVICE_CONTROL_TIMECHANGE = make_flag("SERVICE_CONTROL_TIMECHANGE", 0x00000010) +SERVICE_CONTROL_TRIGGEREVENT = make_flag("SERVICE_CONTROL_TRIGGEREVENT", 0x00000020) +SERVICE_STOPPED = make_flag("SERVICE_STOPPED", 0x00000001) +SERVICE_START_PENDING = make_flag("SERVICE_START_PENDING", 0x00000002) +SERVICE_STOP_PENDING = make_flag("SERVICE_STOP_PENDING", 0x00000003) +SERVICE_RUNNING = make_flag("SERVICE_RUNNING", 0x00000004) +SERVICE_CONTINUE_PENDING = make_flag("SERVICE_CONTINUE_PENDING", 0x00000005) +SERVICE_PAUSE_PENDING = make_flag("SERVICE_PAUSE_PENDING", 0x00000006) +SERVICE_PAUSED = make_flag("SERVICE_PAUSED", 0x00000007) +SERVICE_ACCEPT_STOP = make_flag("SERVICE_ACCEPT_STOP", 0x00000001) +SERVICE_ACCEPT_PAUSE_CONTINUE = make_flag("SERVICE_ACCEPT_PAUSE_CONTINUE", 0x00000002) +SERVICE_ACCEPT_SHUTDOWN = make_flag("SERVICE_ACCEPT_SHUTDOWN", 0x00000004) +SERVICE_ACCEPT_PARAMCHANGE = make_flag("SERVICE_ACCEPT_PARAMCHANGE", 0x00000008) +SERVICE_ACCEPT_NETBINDCHANGE = make_flag("SERVICE_ACCEPT_NETBINDCHANGE", 0x00000010) +SERVICE_ACCEPT_HARDWAREPROFILECHANGE = make_flag("SERVICE_ACCEPT_HARDWAREPROFILECHANGE", 0x00000020) +SERVICE_ACCEPT_POWEREVENT = make_flag("SERVICE_ACCEPT_POWEREVENT", 0x00000040) +SERVICE_ACCEPT_SESSIONCHANGE = make_flag("SERVICE_ACCEPT_SESSIONCHANGE", 0x00000080) +SERVICE_ACCEPT_PRESHUTDOWN = make_flag("SERVICE_ACCEPT_PRESHUTDOWN", 0x00000100) +SERVICE_ACCEPT_TIMECHANGE = make_flag("SERVICE_ACCEPT_TIMECHANGE", 0x00000200) +SERVICE_ACCEPT_TRIGGEREVENT = make_flag("SERVICE_ACCEPT_TRIGGEREVENT", 0x00000400) +SPDRP_DEVICEDESC = make_flag("SPDRP_DEVICEDESC", ( 0x00000000 )) +SPDRP_HARDWAREID = make_flag("SPDRP_HARDWAREID", ( 0x00000001 )) +SPDRP_COMPATIBLEIDS = make_flag("SPDRP_COMPATIBLEIDS", ( 0x00000002 )) +SPDRP_UNUSED0 = make_flag("SPDRP_UNUSED0", ( 0x00000003 )) +SPDRP_SERVICE = make_flag("SPDRP_SERVICE", ( 0x00000004 )) +SPDRP_UNUSED1 = make_flag("SPDRP_UNUSED1", ( 0x00000005 )) +SPDRP_UNUSED2 = make_flag("SPDRP_UNUSED2", ( 0x00000006 )) +SPDRP_CLASS = make_flag("SPDRP_CLASS", ( 0x00000007 )) +SPDRP_CLASSGUID = make_flag("SPDRP_CLASSGUID", ( 0x00000008 )) +SPDRP_DRIVER = make_flag("SPDRP_DRIVER", ( 0x00000009 )) +SPDRP_CONFIGFLAGS = make_flag("SPDRP_CONFIGFLAGS", ( 0x0000000A )) +SPDRP_MFG = make_flag("SPDRP_MFG", ( 0x0000000B )) +SPDRP_FRIENDLYNAME = make_flag("SPDRP_FRIENDLYNAME", ( 0x0000000C )) +SPDRP_LOCATION_INFORMATION = make_flag("SPDRP_LOCATION_INFORMATION", ( 0x0000000D )) +SPDRP_PHYSICAL_DEVICE_OBJECT_NAME = make_flag("SPDRP_PHYSICAL_DEVICE_OBJECT_NAME", ( 0x0000000E )) +SPDRP_CAPABILITIES = make_flag("SPDRP_CAPABILITIES", ( 0x0000000F )) +SPDRP_UI_NUMBER = make_flag("SPDRP_UI_NUMBER", ( 0x00000010 )) +SPDRP_UPPERFILTERS = make_flag("SPDRP_UPPERFILTERS", ( 0x00000011 )) +SPDRP_LOWERFILTERS = make_flag("SPDRP_LOWERFILTERS", ( 0x00000012 )) +SPDRP_BUSTYPEGUID = make_flag("SPDRP_BUSTYPEGUID", ( 0x00000013 )) +SPDRP_LEGACYBUSTYPE = make_flag("SPDRP_LEGACYBUSTYPE", ( 0x00000014 )) +SPDRP_BUSNUMBER = make_flag("SPDRP_BUSNUMBER", ( 0x00000015 )) +SPDRP_ENUMERATOR_NAME = make_flag("SPDRP_ENUMERATOR_NAME", ( 0x00000016 )) +SPDRP_SECURITY = make_flag("SPDRP_SECURITY", ( 0x00000017 )) +SPDRP_SECURITY_SDS = make_flag("SPDRP_SECURITY_SDS", ( 0x00000018 )) +SPDRP_DEVTYPE = make_flag("SPDRP_DEVTYPE", ( 0x00000019 )) +SPDRP_EXCLUSIVE = make_flag("SPDRP_EXCLUSIVE", ( 0x0000001A )) +SPDRP_CHARACTERISTICS = make_flag("SPDRP_CHARACTERISTICS", ( 0x0000001B )) +SPDRP_ADDRESS = make_flag("SPDRP_ADDRESS", ( 0x0000001C )) +SPDRP_UI_NUMBER_DESC_FORMAT = make_flag("SPDRP_UI_NUMBER_DESC_FORMAT", ( 0X0000001D )) +SPDRP_DEVICE_POWER_DATA = make_flag("SPDRP_DEVICE_POWER_DATA", ( 0x0000001E )) +SPDRP_REMOVAL_POLICY = make_flag("SPDRP_REMOVAL_POLICY", ( 0x0000001F )) +SPDRP_REMOVAL_POLICY_HW_DEFAULT = make_flag("SPDRP_REMOVAL_POLICY_HW_DEFAULT", ( 0x00000020 )) +SPDRP_REMOVAL_POLICY_OVERRIDE = make_flag("SPDRP_REMOVAL_POLICY_OVERRIDE", ( 0x00000021 )) +SPDRP_INSTALL_STATE = make_flag("SPDRP_INSTALL_STATE", ( 0x00000022 )) +SPDRP_LOCATION_PATHS = make_flag("SPDRP_LOCATION_PATHS", ( 0x00000023 )) +SPDRP_BASE_CONTAINERID = make_flag("SPDRP_BASE_CONTAINERID", ( 0x00000024 )) +SPDRP_MAXIMUM_PROPERTY = make_flag("SPDRP_MAXIMUM_PROPERTY", ( 0x00000025 )) +ERROR_EXPECTED_SECTION_NAME = make_flag("ERROR_EXPECTED_SECTION_NAME", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0 )) +ERROR_BAD_SECTION_NAME_LINE = make_flag("ERROR_BAD_SECTION_NAME_LINE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|1 )) +ERROR_SECTION_NAME_TOO_LONG = make_flag("ERROR_SECTION_NAME_TOO_LONG", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|2 )) +ERROR_GENERAL_SYNTAX = make_flag("ERROR_GENERAL_SYNTAX", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|3 )) +ERROR_WRONG_INF_STYLE = make_flag("ERROR_WRONG_INF_STYLE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x100 )) +ERROR_SECTION_NOT_FOUND = make_flag("ERROR_SECTION_NOT_FOUND", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x101 )) +ERROR_LINE_NOT_FOUND = make_flag("ERROR_LINE_NOT_FOUND", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x102 )) +ERROR_NO_BACKUP = make_flag("ERROR_NO_BACKUP", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x103 )) +ERROR_NO_ASSOCIATED_CLASS = make_flag("ERROR_NO_ASSOCIATED_CLASS", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x200 )) +ERROR_CLASS_MISMATCH = make_flag("ERROR_CLASS_MISMATCH", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x201 )) +ERROR_DUPLICATE_FOUND = make_flag("ERROR_DUPLICATE_FOUND", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x202 )) +ERROR_NO_DRIVER_SELECTED = make_flag("ERROR_NO_DRIVER_SELECTED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x203 )) +ERROR_KEY_DOES_NOT_EXIST = make_flag("ERROR_KEY_DOES_NOT_EXIST", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x204 )) +ERROR_INVALID_DEVINST_NAME = make_flag("ERROR_INVALID_DEVINST_NAME", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x205 )) +ERROR_INVALID_CLASS = make_flag("ERROR_INVALID_CLASS", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x206 )) +ERROR_DEVINST_ALREADY_EXISTS = make_flag("ERROR_DEVINST_ALREADY_EXISTS", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x207 )) +ERROR_DEVINFO_NOT_REGISTERED = make_flag("ERROR_DEVINFO_NOT_REGISTERED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x208 )) +ERROR_INVALID_REG_PROPERTY = make_flag("ERROR_INVALID_REG_PROPERTY", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x209 )) +ERROR_NO_INF = make_flag("ERROR_NO_INF", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20A )) +ERROR_NO_SUCH_DEVINST = make_flag("ERROR_NO_SUCH_DEVINST", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20B )) +ERROR_CANT_LOAD_CLASS_ICON = make_flag("ERROR_CANT_LOAD_CLASS_ICON", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20C )) +ERROR_INVALID_CLASS_INSTALLER = make_flag("ERROR_INVALID_CLASS_INSTALLER", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20D )) +ERROR_DI_DO_DEFAULT = make_flag("ERROR_DI_DO_DEFAULT", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20E )) +ERROR_DI_NOFILECOPY = make_flag("ERROR_DI_NOFILECOPY", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20F )) +ERROR_INVALID_HWPROFILE = make_flag("ERROR_INVALID_HWPROFILE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x210 )) +ERROR_NO_DEVICE_SELECTED = make_flag("ERROR_NO_DEVICE_SELECTED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x211 )) +ERROR_DEVINFO_LIST_LOCKED = make_flag("ERROR_DEVINFO_LIST_LOCKED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x212 )) +ERROR_DEVINFO_DATA_LOCKED = make_flag("ERROR_DEVINFO_DATA_LOCKED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x213 )) +ERROR_DI_BAD_PATH = make_flag("ERROR_DI_BAD_PATH", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x214 )) +ERROR_NO_CLASSINSTALL_PARAMS = make_flag("ERROR_NO_CLASSINSTALL_PARAMS", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x215 )) +ERROR_FILEQUEUE_LOCKED = make_flag("ERROR_FILEQUEUE_LOCKED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x216 )) +ERROR_BAD_SERVICE_INSTALLSECT = make_flag("ERROR_BAD_SERVICE_INSTALLSECT", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x217 )) +ERROR_NO_CLASS_DRIVER_LIST = make_flag("ERROR_NO_CLASS_DRIVER_LIST", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x218 )) +ERROR_NO_ASSOCIATED_SERVICE = make_flag("ERROR_NO_ASSOCIATED_SERVICE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x219 )) +ERROR_NO_DEFAULT_DEVICE_INTERFACE = make_flag("ERROR_NO_DEFAULT_DEVICE_INTERFACE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21A )) +ERROR_DEVICE_INTERFACE_ACTIVE = make_flag("ERROR_DEVICE_INTERFACE_ACTIVE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21B )) +ERROR_DEVICE_INTERFACE_REMOVED = make_flag("ERROR_DEVICE_INTERFACE_REMOVED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21C )) +ERROR_BAD_INTERFACE_INSTALLSECT = make_flag("ERROR_BAD_INTERFACE_INSTALLSECT", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21D )) +ERROR_NO_SUCH_INTERFACE_CLASS = make_flag("ERROR_NO_SUCH_INTERFACE_CLASS", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21E )) +ERROR_INVALID_REFERENCE_STRING = make_flag("ERROR_INVALID_REFERENCE_STRING", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21F )) +ERROR_INVALID_MACHINENAME = make_flag("ERROR_INVALID_MACHINENAME", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x220 )) +ERROR_REMOTE_COMM_FAILURE = make_flag("ERROR_REMOTE_COMM_FAILURE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x221 )) +ERROR_MACHINE_UNAVAILABLE = make_flag("ERROR_MACHINE_UNAVAILABLE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x222 )) +ERROR_NO_CONFIGMGR_SERVICES = make_flag("ERROR_NO_CONFIGMGR_SERVICES", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x223 )) +ERROR_INVALID_PROPPAGE_PROVIDER = make_flag("ERROR_INVALID_PROPPAGE_PROVIDER", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x224 )) +ERROR_NO_SUCH_DEVICE_INTERFACE = make_flag("ERROR_NO_SUCH_DEVICE_INTERFACE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x225 )) +ERROR_DI_POSTPROCESSING_REQUIRED = make_flag("ERROR_DI_POSTPROCESSING_REQUIRED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x226 )) +ERROR_INVALID_COINSTALLER = make_flag("ERROR_INVALID_COINSTALLER", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x227 )) +ERROR_NO_COMPAT_DRIVERS = make_flag("ERROR_NO_COMPAT_DRIVERS", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x228 )) +ERROR_NO_DEVICE_ICON = make_flag("ERROR_NO_DEVICE_ICON", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x229 )) +ERROR_INVALID_INF_LOGCONFIG = make_flag("ERROR_INVALID_INF_LOGCONFIG", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22A )) +ERROR_DI_DONT_INSTALL = make_flag("ERROR_DI_DONT_INSTALL", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22B )) +ERROR_INVALID_FILTER_DRIVER = make_flag("ERROR_INVALID_FILTER_DRIVER", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22C )) +ERROR_NON_WINDOWS_NT_DRIVER = make_flag("ERROR_NON_WINDOWS_NT_DRIVER", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22D )) +ERROR_NON_WINDOWS_DRIVER = make_flag("ERROR_NON_WINDOWS_DRIVER", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22E )) +ERROR_NO_CATALOG_FOR_OEM_INF = make_flag("ERROR_NO_CATALOG_FOR_OEM_INF", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22F )) +ERROR_DEVINSTALL_QUEUE_NONNATIVE = make_flag("ERROR_DEVINSTALL_QUEUE_NONNATIVE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x230 )) +ERROR_NOT_DISABLEABLE = make_flag("ERROR_NOT_DISABLEABLE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x231 )) +ERROR_CANT_REMOVE_DEVINST = make_flag("ERROR_CANT_REMOVE_DEVINST", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x232 )) +ERROR_INVALID_TARGET = make_flag("ERROR_INVALID_TARGET", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x233 )) +ERROR_DRIVER_NONNATIVE = make_flag("ERROR_DRIVER_NONNATIVE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x234 )) +ERROR_IN_WOW64 = make_flag("ERROR_IN_WOW64", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x235 )) +ERROR_SET_SYSTEM_RESTORE_POINT = make_flag("ERROR_SET_SYSTEM_RESTORE_POINT", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x236 )) +ERROR_SCE_DISABLED = make_flag("ERROR_SCE_DISABLED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x238 )) +ERROR_UNKNOWN_EXCEPTION = make_flag("ERROR_UNKNOWN_EXCEPTION", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x239 )) +ERROR_PNP_REGISTRY_ERROR = make_flag("ERROR_PNP_REGISTRY_ERROR", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23A )) +ERROR_REMOTE_REQUEST_UNSUPPORTED = make_flag("ERROR_REMOTE_REQUEST_UNSUPPORTED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23B )) +ERROR_NOT_AN_INSTALLED_OEM_INF = make_flag("ERROR_NOT_AN_INSTALLED_OEM_INF", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23C )) +ERROR_INF_IN_USE_BY_DEVICES = make_flag("ERROR_INF_IN_USE_BY_DEVICES", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23D )) +ERROR_DI_FUNCTION_OBSOLETE = make_flag("ERROR_DI_FUNCTION_OBSOLETE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23E )) +ERROR_NO_AUTHENTICODE_CATALOG = make_flag("ERROR_NO_AUTHENTICODE_CATALOG", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23F )) +ERROR_AUTHENTICODE_DISALLOWED = make_flag("ERROR_AUTHENTICODE_DISALLOWED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x240 )) +ERROR_AUTHENTICODE_TRUSTED_PUBLISHER = make_flag("ERROR_AUTHENTICODE_TRUSTED_PUBLISHER", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x241 )) +ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED = make_flag("ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x242 )) +ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED = make_flag("ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x243 )) +ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH = make_flag("ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x244 )) +ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE = make_flag("ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x245 )) +ERROR_DEVICE_INSTALLER_NOT_READY = make_flag("ERROR_DEVICE_INSTALLER_NOT_READY", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x246 )) +ERROR_DRIVER_STORE_ADD_FAILED = make_flag("ERROR_DRIVER_STORE_ADD_FAILED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x247 )) +ERROR_DEVICE_INSTALL_BLOCKED = make_flag("ERROR_DEVICE_INSTALL_BLOCKED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x248 )) +ERROR_DRIVER_INSTALL_BLOCKED = make_flag("ERROR_DRIVER_INSTALL_BLOCKED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x249 )) +ERROR_WRONG_INF_TYPE = make_flag("ERROR_WRONG_INF_TYPE", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x24A )) +ERROR_FILE_HASH_NOT_IN_CATALOG = make_flag("ERROR_FILE_HASH_NOT_IN_CATALOG", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x24B )) +ERROR_DRIVER_STORE_DELETE_FAILED = make_flag("ERROR_DRIVER_STORE_DELETE_FAILED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x24C )) +ERROR_UNRECOVERABLE_STACK_OVERFLOW = make_flag("ERROR_UNRECOVERABLE_STACK_OVERFLOW", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x300 )) +EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW = make_flag("EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW", ERROR_UNRECOVERABLE_STACK_OVERFLOW) +ERROR_NO_DEFAULT_INTERFACE_DEVICE = make_flag("ERROR_NO_DEFAULT_INTERFACE_DEVICE", ERROR_NO_DEFAULT_DEVICE_INTERFACE) +ERROR_INTERFACE_DEVICE_ACTIVE = make_flag("ERROR_INTERFACE_DEVICE_ACTIVE", ERROR_DEVICE_INTERFACE_ACTIVE) +ERROR_INTERFACE_DEVICE_REMOVED = make_flag("ERROR_INTERFACE_DEVICE_REMOVED", ERROR_DEVICE_INTERFACE_REMOVED) +ERROR_NO_SUCH_INTERFACE_DEVICE = make_flag("ERROR_NO_SUCH_INTERFACE_DEVICE", ERROR_NO_SUCH_DEVICE_INTERFACE) +ERROR_NOT_INSTALLED = make_flag("ERROR_NOT_INSTALLED", ( APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x1000 )) +FO_MOVE = make_flag("FO_MOVE", 0x0001) +FO_COPY = make_flag("FO_COPY", 0x0002) +FO_DELETE = make_flag("FO_DELETE", 0x0003) +FO_RENAME = make_flag("FO_RENAME", 0x0004) +FOF_MULTIDESTFILES = make_flag("FOF_MULTIDESTFILES", 0x0001) +FOF_CONFIRMMOUSE = make_flag("FOF_CONFIRMMOUSE", 0x0002) +FOF_SILENT = make_flag("FOF_SILENT", 0x0004) +FOF_RENAMEONCOLLISION = make_flag("FOF_RENAMEONCOLLISION", 0x0008) +FOF_NOCONFIRMATION = make_flag("FOF_NOCONFIRMATION", 0x0010) +FOF_WANTMAPPINGHANDLE = make_flag("FOF_WANTMAPPINGHANDLE", 0x0020) +FOF_ALLOWUNDO = make_flag("FOF_ALLOWUNDO", 0x0040) +FOF_FILESONLY = make_flag("FOF_FILESONLY", 0x0080) +FOF_SIMPLEPROGRESS = make_flag("FOF_SIMPLEPROGRESS", 0x0100) +FOF_NOCONFIRMMKDIR = make_flag("FOF_NOCONFIRMMKDIR", 0x0200) +FOF_NOERRORUI = make_flag("FOF_NOERRORUI", 0x0400) +FOF_NOCOPYSECURITYATTRIBS = make_flag("FOF_NOCOPYSECURITYATTRIBS", 0x0800) +FOF_NORECURSION = make_flag("FOF_NORECURSION", 0x1000) +FOF_NO_CONNECTED_ELEMENTS = make_flag("FOF_NO_CONNECTED_ELEMENTS", 0x2000) +FOF_WANTNUKEWARNING = make_flag("FOF_WANTNUKEWARNING", 0x4000) +FOF_NORECURSEREPARSE = make_flag("FOF_NORECURSEREPARSE", 0x8000) +FOF_NO_UI = make_flag("FOF_NO_UI", ( FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NOCONFIRMMKDIR )) +OS_WINDOWS = make_flag("OS_WINDOWS", 0) +OS_NT = make_flag("OS_NT", 1) +OS_WIN95ORGREATER = make_flag("OS_WIN95ORGREATER", 2) +OS_NT4ORGREATER = make_flag("OS_NT4ORGREATER", 3) +OS_WIN98ORGREATER = make_flag("OS_WIN98ORGREATER", 5) +OS_WIN98_GOLD = make_flag("OS_WIN98_GOLD", 6) +OS_WIN2000ORGREATER = make_flag("OS_WIN2000ORGREATER", 7) +OS_WIN2000PRO = make_flag("OS_WIN2000PRO", 8) +OS_WIN2000SERVER = make_flag("OS_WIN2000SERVER", 9) +OS_WIN2000ADVSERVER = make_flag("OS_WIN2000ADVSERVER", 10) +OS_WIN2000DATACENTER = make_flag("OS_WIN2000DATACENTER", 11) +OS_WIN2000TERMINAL = make_flag("OS_WIN2000TERMINAL", 12) +OS_EMBEDDED = make_flag("OS_EMBEDDED", 13) +OS_TERMINALCLIENT = make_flag("OS_TERMINALCLIENT", 14) +OS_TERMINALREMOTEADMIN = make_flag("OS_TERMINALREMOTEADMIN", 15) +OS_WIN95_GOLD = make_flag("OS_WIN95_GOLD", 16) +OS_MEORGREATER = make_flag("OS_MEORGREATER", 17) +OS_XPORGREATER = make_flag("OS_XPORGREATER", 18) +OS_HOME = make_flag("OS_HOME", 19) +OS_PROFESSIONAL = make_flag("OS_PROFESSIONAL", 20) +OS_DATACENTER = make_flag("OS_DATACENTER", 21) +OS_ADVSERVER = make_flag("OS_ADVSERVER", 22) +OS_SERVER = make_flag("OS_SERVER", 23) +OS_TERMINALSERVER = make_flag("OS_TERMINALSERVER", 24) +OS_PERSONALTERMINALSERVER = make_flag("OS_PERSONALTERMINALSERVER", 25) +OS_FASTUSERSWITCHING = make_flag("OS_FASTUSERSWITCHING", 26) +OS_WELCOMELOGONUI = make_flag("OS_WELCOMELOGONUI", 27) +OS_DOMAINMEMBER = make_flag("OS_DOMAINMEMBER", 28) +OS_ANYSERVER = make_flag("OS_ANYSERVER", 29) +OS_WOW6432 = make_flag("OS_WOW6432", 30) +OS_WEBSERVER = make_flag("OS_WEBSERVER", 31) +OS_SMALLBUSINESSSERVER = make_flag("OS_SMALLBUSINESSSERVER", 32) +OS_TABLETPC = make_flag("OS_TABLETPC", 33) +OS_SERVERADMINUI = make_flag("OS_SERVERADMINUI", 34) +OS_MEDIACENTER = make_flag("OS_MEDIACENTER", 35) +OS_APPLIANCE = make_flag("OS_APPLIANCE", 36) +SYMSEARCH_MASKOBJS = make_flag("SYMSEARCH_MASKOBJS", 0x01) +SYMSEARCH_RECURSE = make_flag("SYMSEARCH_RECURSE", 0X02) +SYMSEARCH_GLOBALSONLY = make_flag("SYMSEARCH_GLOBALSONLY", 0X04) +SYMSEARCH_ALLITEMS = make_flag("SYMSEARCH_ALLITEMS", 0X08) +CBA_DEFERRED_SYMBOL_LOAD_START = make_flag("CBA_DEFERRED_SYMBOL_LOAD_START", 0x00000001) +CBA_DEFERRED_SYMBOL_LOAD_COMPLETE = make_flag("CBA_DEFERRED_SYMBOL_LOAD_COMPLETE", 0x00000002) +CBA_DEFERRED_SYMBOL_LOAD_FAILURE = make_flag("CBA_DEFERRED_SYMBOL_LOAD_FAILURE", 0x00000003) +CBA_SYMBOLS_UNLOADED = make_flag("CBA_SYMBOLS_UNLOADED", 0x00000004) +CBA_DUPLICATE_SYMBOL = make_flag("CBA_DUPLICATE_SYMBOL", 0x00000005) +CBA_READ_MEMORY = make_flag("CBA_READ_MEMORY", 0x00000006) +CBA_DEFERRED_SYMBOL_LOAD_CANCEL = make_flag("CBA_DEFERRED_SYMBOL_LOAD_CANCEL", 0x00000007) +CBA_SET_OPTIONS = make_flag("CBA_SET_OPTIONS", 0x00000008) +CBA_EVENT = make_flag("CBA_EVENT", 0x00000010) +CBA_DEFERRED_SYMBOL_LOAD_PARTIAL = make_flag("CBA_DEFERRED_SYMBOL_LOAD_PARTIAL", 0x00000020) +CBA_DEBUG_INFO = make_flag("CBA_DEBUG_INFO", 0x10000000) +CBA_SRCSRV_INFO = make_flag("CBA_SRCSRV_INFO", 0x20000000) +CBA_SRCSRV_EVENT = make_flag("CBA_SRCSRV_EVENT", 0x40000000) +CBA_UPDATE_STATUS_BAR = make_flag("CBA_UPDATE_STATUS_BAR", 0x50000000) +CBA_ENGINE_PRESENT = make_flag("CBA_ENGINE_PRESENT", 0x60000000) +CBA_CHECK_ENGOPT_DISALLOW_NETWORK_PATHS = make_flag("CBA_CHECK_ENGOPT_DISALLOW_NETWORK_PATHS", 0x70000000) +EVENT_SRCSPEW_START = make_flag("EVENT_SRCSPEW_START", 100) +EVENT_SRCSPEW = make_flag("EVENT_SRCSPEW", 100) +EVENT_SRCSPEW_END = make_flag("EVENT_SRCSPEW_END", 199) +DSLFLAG_MISMATCHED_PDB = make_flag("DSLFLAG_MISMATCHED_PDB", 0x1) +DSLFLAG_MISMATCHED_DBG = make_flag("DSLFLAG_MISMATCHED_DBG", 0x2) +FLAG_ENGINE_PRESENT = make_flag("FLAG_ENGINE_PRESENT", 0x4) +FLAG_ENGOPT_DISALLOW_NETWORK_PATHS = make_flag("FLAG_ENGOPT_DISALLOW_NETWORK_PATHS", 0x8) +SYMOPT_CASE_INSENSITIVE = make_flag("SYMOPT_CASE_INSENSITIVE", 0x00000001) +SYMOPT_UNDNAME = make_flag("SYMOPT_UNDNAME", 0x00000002) +SYMOPT_DEFERRED_LOADS = make_flag("SYMOPT_DEFERRED_LOADS", 0x00000004) +SYMOPT_NO_CPP = make_flag("SYMOPT_NO_CPP", 0x00000008) +SYMOPT_LOAD_LINES = make_flag("SYMOPT_LOAD_LINES", 0x00000010) +SYMOPT_OMAP_FIND_NEAREST = make_flag("SYMOPT_OMAP_FIND_NEAREST", 0x00000020) +SYMOPT_LOAD_ANYTHING = make_flag("SYMOPT_LOAD_ANYTHING", 0x00000040) +SYMOPT_IGNORE_CVREC = make_flag("SYMOPT_IGNORE_CVREC", 0x00000080) +SYMOPT_NO_UNQUALIFIED_LOADS = make_flag("SYMOPT_NO_UNQUALIFIED_LOADS", 0x00000100) +SYMOPT_FAIL_CRITICAL_ERRORS = make_flag("SYMOPT_FAIL_CRITICAL_ERRORS", 0x00000200) +SYMOPT_EXACT_SYMBOLS = make_flag("SYMOPT_EXACT_SYMBOLS", 0x00000400) +SYMOPT_ALLOW_ABSOLUTE_SYMBOLS = make_flag("SYMOPT_ALLOW_ABSOLUTE_SYMBOLS", 0x00000800) +SYMOPT_IGNORE_NT_SYMPATH = make_flag("SYMOPT_IGNORE_NT_SYMPATH", 0x00001000) +SYMOPT_INCLUDE_32BIT_MODULES = make_flag("SYMOPT_INCLUDE_32BIT_MODULES", 0x00002000) +SYMOPT_PUBLICS_ONLY = make_flag("SYMOPT_PUBLICS_ONLY", 0x00004000) +SYMOPT_NO_PUBLICS = make_flag("SYMOPT_NO_PUBLICS", 0x00008000) +SYMOPT_AUTO_PUBLICS = make_flag("SYMOPT_AUTO_PUBLICS", 0x00010000) +SYMOPT_NO_IMAGE_SEARCH = make_flag("SYMOPT_NO_IMAGE_SEARCH", 0x00020000) +SYMOPT_SECURE = make_flag("SYMOPT_SECURE", 0x00040000) +SYMOPT_NO_PROMPTS = make_flag("SYMOPT_NO_PROMPTS", 0x00080000) +SYMOPT_OVERWRITE = make_flag("SYMOPT_OVERWRITE", 0x00100000) +SYMOPT_IGNORE_IMAGEDIR = make_flag("SYMOPT_IGNORE_IMAGEDIR", 0x00200000) +SYMOPT_FLAT_DIRECTORY = make_flag("SYMOPT_FLAT_DIRECTORY", 0x00400000) +SYMOPT_FAVOR_COMPRESSED = make_flag("SYMOPT_FAVOR_COMPRESSED", 0x00800000) +SYMOPT_ALLOW_ZERO_ADDRESS = make_flag("SYMOPT_ALLOW_ZERO_ADDRESS", 0x01000000) +SYMOPT_DISABLE_SYMSRV_AUTODETECT = make_flag("SYMOPT_DISABLE_SYMSRV_AUTODETECT", 0x02000000) +SYMOPT_READONLY_CACHE = make_flag("SYMOPT_READONLY_CACHE", 0x04000000) +SYMOPT_SYMPATH_LAST = make_flag("SYMOPT_SYMPATH_LAST", 0x08000000) +SYMOPT_DISABLE_FAST_SYMBOLS = make_flag("SYMOPT_DISABLE_FAST_SYMBOLS", 0x10000000) +SYMOPT_DISABLE_SYMSRV_TIMEOUT = make_flag("SYMOPT_DISABLE_SYMSRV_TIMEOUT", 0x20000000) +SYMOPT_DISABLE_SRVSTAR_ON_STARTUP = make_flag("SYMOPT_DISABLE_SRVSTAR_ON_STARTUP", 0x40000000) +SYMOPT_DEBUG = make_flag("SYMOPT_DEBUG", 0x80000000) +szOID_TRUSTED_CODESIGNING_CA_LIST = make_flag("szOID_TRUSTED_CODESIGNING_CA_LIST", "1.3.6.1.4.1.311.2.2.1") +szOID_TRUSTED_CLIENT_AUTH_CA_LIST = make_flag("szOID_TRUSTED_CLIENT_AUTH_CA_LIST", "1.3.6.1.4.1.311.2.2.2") +szOID_TRUSTED_SERVER_AUTH_CA_LIST = make_flag("szOID_TRUSTED_SERVER_AUTH_CA_LIST", "1.3.6.1.4.1.311.2.2.3") +szOID_RSA = make_flag("szOID_RSA", "1.2.840.113549") +szOID_PKCS = make_flag("szOID_PKCS", "1.2.840.113549.1") +szOID_RSA_HASH = make_flag("szOID_RSA_HASH", "1.2.840.113549.2") +szOID_RSA_ENCRYPT = make_flag("szOID_RSA_ENCRYPT", "1.2.840.113549.3") +szOID_PKCS_1 = make_flag("szOID_PKCS_1", "1.2.840.113549.1.1") +szOID_PKCS_2 = make_flag("szOID_PKCS_2", "1.2.840.113549.1.2") +szOID_PKCS_3 = make_flag("szOID_PKCS_3", "1.2.840.113549.1.3") +szOID_PKCS_4 = make_flag("szOID_PKCS_4", "1.2.840.113549.1.4") +szOID_PKCS_5 = make_flag("szOID_PKCS_5", "1.2.840.113549.1.5") +szOID_PKCS_6 = make_flag("szOID_PKCS_6", "1.2.840.113549.1.6") +szOID_PKCS_7 = make_flag("szOID_PKCS_7", "1.2.840.113549.1.7") +szOID_PKCS_8 = make_flag("szOID_PKCS_8", "1.2.840.113549.1.8") +szOID_PKCS_9 = make_flag("szOID_PKCS_9", "1.2.840.113549.1.9") +szOID_PKCS_10 = make_flag("szOID_PKCS_10", "1.2.840.113549.1.10") +szOID_PKCS_12 = make_flag("szOID_PKCS_12", "1.2.840.113549.1.12") +szOID_RSA_RSA = make_flag("szOID_RSA_RSA", "1.2.840.113549.1.1.1") +szOID_RSA_MD2RSA = make_flag("szOID_RSA_MD2RSA", "1.2.840.113549.1.1.2") +szOID_RSA_MD4RSA = make_flag("szOID_RSA_MD4RSA", "1.2.840.113549.1.1.3") +szOID_RSA_MD5RSA = make_flag("szOID_RSA_MD5RSA", "1.2.840.113549.1.1.4") +szOID_RSA_SHA1RSA = make_flag("szOID_RSA_SHA1RSA", "1.2.840.113549.1.1.5") +szOID_RSA_SETOAEP_RSA = make_flag("szOID_RSA_SETOAEP_RSA", "1.2.840.113549.1.1.6") +szOID_RSAES_OAEP = make_flag("szOID_RSAES_OAEP", "1.2.840.113549.1.1.7") +szOID_RSA_MGF1 = make_flag("szOID_RSA_MGF1", "1.2.840.113549.1.1.8") +szOID_RSA_PSPECIFIED = make_flag("szOID_RSA_PSPECIFIED", "1.2.840.113549.1.1.9") +szOID_RSA_SSA_PSS = make_flag("szOID_RSA_SSA_PSS", "1.2.840.113549.1.1.10") +szOID_RSA_SHA256RSA = make_flag("szOID_RSA_SHA256RSA", "1.2.840.113549.1.1.11") +szOID_RSA_SHA384RSA = make_flag("szOID_RSA_SHA384RSA", "1.2.840.113549.1.1.12") +szOID_RSA_SHA512RSA = make_flag("szOID_RSA_SHA512RSA", "1.2.840.113549.1.1.13") +szOID_RSA_DH = make_flag("szOID_RSA_DH", "1.2.840.113549.1.3.1") +szOID_RSA_data = make_flag("szOID_RSA_data", "1.2.840.113549.1.7.1") +szOID_RSA_signedData = make_flag("szOID_RSA_signedData", "1.2.840.113549.1.7.2") +szOID_RSA_envelopedData = make_flag("szOID_RSA_envelopedData", "1.2.840.113549.1.7.3") +szOID_RSA_signEnvData = make_flag("szOID_RSA_signEnvData", "1.2.840.113549.1.7.4") +szOID_RSA_digestedData = make_flag("szOID_RSA_digestedData", "1.2.840.113549.1.7.5") +szOID_RSA_hashedData = make_flag("szOID_RSA_hashedData", "1.2.840.113549.1.7.5") +szOID_RSA_encryptedData = make_flag("szOID_RSA_encryptedData", "1.2.840.113549.1.7.6") +szOID_RSA_emailAddr = make_flag("szOID_RSA_emailAddr", "1.2.840.113549.1.9.1") +szOID_RSA_unstructName = make_flag("szOID_RSA_unstructName", "1.2.840.113549.1.9.2") +szOID_RSA_contentType = make_flag("szOID_RSA_contentType", "1.2.840.113549.1.9.3") +szOID_RSA_messageDigest = make_flag("szOID_RSA_messageDigest", "1.2.840.113549.1.9.4") +szOID_RSA_signingTime = make_flag("szOID_RSA_signingTime", "1.2.840.113549.1.9.5") +szOID_RSA_counterSign = make_flag("szOID_RSA_counterSign", "1.2.840.113549.1.9.6") +szOID_RSA_challengePwd = make_flag("szOID_RSA_challengePwd", "1.2.840.113549.1.9.7") +szOID_RSA_unstructAddr = make_flag("szOID_RSA_unstructAddr", "1.2.840.113549.1.9.8") +szOID_RSA_extCertAttrs = make_flag("szOID_RSA_extCertAttrs", "1.2.840.113549.1.9.9") +szOID_RSA_certExtensions = make_flag("szOID_RSA_certExtensions", "1.2.840.113549.1.9.14") +szOID_RSA_SMIMECapabilities = make_flag("szOID_RSA_SMIMECapabilities", "1.2.840.113549.1.9.15") +szOID_RSA_preferSignedData = make_flag("szOID_RSA_preferSignedData", "1.2.840.113549.1.9.15.1") +szOID_TIMESTAMP_TOKEN = make_flag("szOID_TIMESTAMP_TOKEN", "1.2.840.113549.1.9.16.1.4") +szOID_RFC3161_counterSign = make_flag("szOID_RFC3161_counterSign", "1.3.6.1.4.1.311.3.3.1") +szOID_RSA_SMIMEalg = make_flag("szOID_RSA_SMIMEalg", "1.2.840.113549.1.9.16.3") +szOID_RSA_SMIMEalgESDH = make_flag("szOID_RSA_SMIMEalgESDH", "1.2.840.113549.1.9.16.3.5") +szOID_RSA_SMIMEalgCMS3DESwrap = make_flag("szOID_RSA_SMIMEalgCMS3DESwrap", "1.2.840.113549.1.9.16.3.6") +szOID_RSA_SMIMEalgCMSRC2wrap = make_flag("szOID_RSA_SMIMEalgCMSRC2wrap", "1.2.840.113549.1.9.16.3.7") +szOID_RSA_MD2 = make_flag("szOID_RSA_MD2", "1.2.840.113549.2.2") +szOID_RSA_MD4 = make_flag("szOID_RSA_MD4", "1.2.840.113549.2.4") +szOID_RSA_MD5 = make_flag("szOID_RSA_MD5", "1.2.840.113549.2.5") +szOID_RSA_RC2CBC = make_flag("szOID_RSA_RC2CBC", "1.2.840.113549.3.2") +szOID_RSA_RC4 = make_flag("szOID_RSA_RC4", "1.2.840.113549.3.4") +szOID_RSA_DES_EDE3_CBC = make_flag("szOID_RSA_DES_EDE3_CBC", "1.2.840.113549.3.7") +szOID_RSA_RC5_CBCPad = make_flag("szOID_RSA_RC5_CBCPad", "1.2.840.113549.3.9") +szOID_ANSI_X942 = make_flag("szOID_ANSI_X942", "1.2.840.10046") +szOID_ANSI_X942_DH = make_flag("szOID_ANSI_X942_DH", "1.2.840.10046.2.1") +szOID_X957 = make_flag("szOID_X957", "1.2.840.10040") +szOID_X957_DSA = make_flag("szOID_X957_DSA", "1.2.840.10040.4.1") +szOID_X957_SHA1DSA = make_flag("szOID_X957_SHA1DSA", "1.2.840.10040.4.3") +szOID_ECC_PUBLIC_KEY = make_flag("szOID_ECC_PUBLIC_KEY", "1.2.840.10045.2.1") +szOID_ECC_CURVE_P256 = make_flag("szOID_ECC_CURVE_P256", "1.2.840.10045.3.1.7") +szOID_ECC_CURVE_P384 = make_flag("szOID_ECC_CURVE_P384", "1.3.132.0.34") +szOID_ECC_CURVE_P521 = make_flag("szOID_ECC_CURVE_P521", "1.3.132.0.35") +szOID_ECDSA_SHA1 = make_flag("szOID_ECDSA_SHA1", "1.2.840.10045.4.1") +szOID_ECDSA_SPECIFIED = make_flag("szOID_ECDSA_SPECIFIED", "1.2.840.10045.4.3") +szOID_ECDSA_SHA256 = make_flag("szOID_ECDSA_SHA256", "1.2.840.10045.4.3.2") +szOID_ECDSA_SHA384 = make_flag("szOID_ECDSA_SHA384", "1.2.840.10045.4.3.3") +szOID_ECDSA_SHA512 = make_flag("szOID_ECDSA_SHA512", "1.2.840.10045.4.3.4") +szOID_NIST_AES128_CBC = make_flag("szOID_NIST_AES128_CBC", "2.16.840.1.101.3.4.1.2") +szOID_NIST_AES192_CBC = make_flag("szOID_NIST_AES192_CBC", "2.16.840.1.101.3.4.1.22") +szOID_NIST_AES256_CBC = make_flag("szOID_NIST_AES256_CBC", "2.16.840.1.101.3.4.1.42") +szOID_NIST_AES128_WRAP = make_flag("szOID_NIST_AES128_WRAP", "2.16.840.1.101.3.4.1.5") +szOID_NIST_AES192_WRAP = make_flag("szOID_NIST_AES192_WRAP", "2.16.840.1.101.3.4.1.25") +szOID_NIST_AES256_WRAP = make_flag("szOID_NIST_AES256_WRAP", "2.16.840.1.101.3.4.1.45") +szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF = make_flag("szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF", "1.3.133.16.840.63.0.2") +szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF = make_flag("szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF", "1.3.132.1.11.1") +szOID_DH_SINGLE_PASS_STDDH_SHA384_KDF = make_flag("szOID_DH_SINGLE_PASS_STDDH_SHA384_KDF", "1.3.132.1.11.2") +szOID_DS = make_flag("szOID_DS", "2.5") +szOID_DSALG = make_flag("szOID_DSALG", "2.5.8") +szOID_DSALG_CRPT = make_flag("szOID_DSALG_CRPT", "2.5.8.1") +szOID_DSALG_HASH = make_flag("szOID_DSALG_HASH", "2.5.8.2") +szOID_DSALG_SIGN = make_flag("szOID_DSALG_SIGN", "2.5.8.3") +szOID_DSALG_RSA = make_flag("szOID_DSALG_RSA", "2.5.8.1.1") +szOID_OIW = make_flag("szOID_OIW", "1.3.14") +szOID_OIWSEC = make_flag("szOID_OIWSEC", "1.3.14.3.2") +szOID_OIWSEC_md4RSA = make_flag("szOID_OIWSEC_md4RSA", "1.3.14.3.2.2") +szOID_OIWSEC_md5RSA = make_flag("szOID_OIWSEC_md5RSA", "1.3.14.3.2.3") +szOID_OIWSEC_md4RSA2 = make_flag("szOID_OIWSEC_md4RSA2", "1.3.14.3.2.4") +szOID_OIWSEC_desECB = make_flag("szOID_OIWSEC_desECB", "1.3.14.3.2.6") +szOID_OIWSEC_desCBC = make_flag("szOID_OIWSEC_desCBC", "1.3.14.3.2.7") +szOID_OIWSEC_desOFB = make_flag("szOID_OIWSEC_desOFB", "1.3.14.3.2.8") +szOID_OIWSEC_desCFB = make_flag("szOID_OIWSEC_desCFB", "1.3.14.3.2.9") +szOID_OIWSEC_desMAC = make_flag("szOID_OIWSEC_desMAC", "1.3.14.3.2.10") +szOID_OIWSEC_rsaSign = make_flag("szOID_OIWSEC_rsaSign", "1.3.14.3.2.11") +szOID_OIWSEC_dsa = make_flag("szOID_OIWSEC_dsa", "1.3.14.3.2.12") +szOID_OIWSEC_shaDSA = make_flag("szOID_OIWSEC_shaDSA", "1.3.14.3.2.13") +szOID_OIWSEC_mdc2RSA = make_flag("szOID_OIWSEC_mdc2RSA", "1.3.14.3.2.14") +szOID_OIWSEC_shaRSA = make_flag("szOID_OIWSEC_shaRSA", "1.3.14.3.2.15") +szOID_OIWSEC_dhCommMod = make_flag("szOID_OIWSEC_dhCommMod", "1.3.14.3.2.16") +szOID_OIWSEC_desEDE = make_flag("szOID_OIWSEC_desEDE", "1.3.14.3.2.17") +szOID_OIWSEC_sha = make_flag("szOID_OIWSEC_sha", "1.3.14.3.2.18") +szOID_OIWSEC_mdc2 = make_flag("szOID_OIWSEC_mdc2", "1.3.14.3.2.19") +szOID_OIWSEC_dsaComm = make_flag("szOID_OIWSEC_dsaComm", "1.3.14.3.2.20") +szOID_OIWSEC_dsaCommSHA = make_flag("szOID_OIWSEC_dsaCommSHA", "1.3.14.3.2.21") +szOID_OIWSEC_rsaXchg = make_flag("szOID_OIWSEC_rsaXchg", "1.3.14.3.2.22") +szOID_OIWSEC_keyHashSeal = make_flag("szOID_OIWSEC_keyHashSeal", "1.3.14.3.2.23") +szOID_OIWSEC_md2RSASign = make_flag("szOID_OIWSEC_md2RSASign", "1.3.14.3.2.24") +szOID_OIWSEC_md5RSASign = make_flag("szOID_OIWSEC_md5RSASign", "1.3.14.3.2.25") +szOID_OIWSEC_sha1 = make_flag("szOID_OIWSEC_sha1", "1.3.14.3.2.26") +szOID_OIWSEC_dsaSHA1 = make_flag("szOID_OIWSEC_dsaSHA1", "1.3.14.3.2.27") +szOID_OIWSEC_dsaCommSHA1 = make_flag("szOID_OIWSEC_dsaCommSHA1", "1.3.14.3.2.28") +szOID_OIWSEC_sha1RSASign = make_flag("szOID_OIWSEC_sha1RSASign", "1.3.14.3.2.29") +szOID_OIWDIR = make_flag("szOID_OIWDIR", "1.3.14.7.2") +szOID_OIWDIR_CRPT = make_flag("szOID_OIWDIR_CRPT", "1.3.14.7.2.1") +szOID_OIWDIR_HASH = make_flag("szOID_OIWDIR_HASH", "1.3.14.7.2.2") +szOID_OIWDIR_SIGN = make_flag("szOID_OIWDIR_SIGN", "1.3.14.7.2.3") +szOID_OIWDIR_md2 = make_flag("szOID_OIWDIR_md2", "1.3.14.7.2.2.1") +szOID_OIWDIR_md2RSA = make_flag("szOID_OIWDIR_md2RSA", "1.3.14.7.2.3.1") +szOID_INFOSEC = make_flag("szOID_INFOSEC", "2.16.840.1.101.2.1") +szOID_INFOSEC_sdnsSignature = make_flag("szOID_INFOSEC_sdnsSignature", "2.16.840.1.101.2.1.1.1") +szOID_INFOSEC_mosaicSignature = make_flag("szOID_INFOSEC_mosaicSignature", "2.16.840.1.101.2.1.1.2") +szOID_INFOSEC_sdnsConfidentiality = make_flag("szOID_INFOSEC_sdnsConfidentiality", "2.16.840.1.101.2.1.1.3") +szOID_INFOSEC_mosaicConfidentiality = make_flag("szOID_INFOSEC_mosaicConfidentiality", "2.16.840.1.101.2.1.1.4") +szOID_INFOSEC_sdnsIntegrity = make_flag("szOID_INFOSEC_sdnsIntegrity", "2.16.840.1.101.2.1.1.5") +szOID_INFOSEC_mosaicIntegrity = make_flag("szOID_INFOSEC_mosaicIntegrity", "2.16.840.1.101.2.1.1.6") +szOID_INFOSEC_sdnsTokenProtection = make_flag("szOID_INFOSEC_sdnsTokenProtection", "2.16.840.1.101.2.1.1.7") +szOID_INFOSEC_mosaicTokenProtection = make_flag("szOID_INFOSEC_mosaicTokenProtection", "2.16.840.1.101.2.1.1.8") +szOID_INFOSEC_sdnsKeyManagement = make_flag("szOID_INFOSEC_sdnsKeyManagement", "2.16.840.1.101.2.1.1.9") +szOID_INFOSEC_mosaicKeyManagement = make_flag("szOID_INFOSEC_mosaicKeyManagement", "2.16.840.1.101.2.1.1.10") +szOID_INFOSEC_sdnsKMandSig = make_flag("szOID_INFOSEC_sdnsKMandSig", "2.16.840.1.101.2.1.1.11") +szOID_INFOSEC_mosaicKMandSig = make_flag("szOID_INFOSEC_mosaicKMandSig", "2.16.840.1.101.2.1.1.12") +szOID_INFOSEC_SuiteASignature = make_flag("szOID_INFOSEC_SuiteASignature", "2.16.840.1.101.2.1.1.13") +szOID_INFOSEC_SuiteAConfidentiality = make_flag("szOID_INFOSEC_SuiteAConfidentiality", "2.16.840.1.101.2.1.1.14") +szOID_INFOSEC_SuiteAIntegrity = make_flag("szOID_INFOSEC_SuiteAIntegrity", "2.16.840.1.101.2.1.1.15") +szOID_INFOSEC_SuiteATokenProtection = make_flag("szOID_INFOSEC_SuiteATokenProtection", "2.16.840.1.101.2.1.1.16") +szOID_INFOSEC_SuiteAKeyManagement = make_flag("szOID_INFOSEC_SuiteAKeyManagement", "2.16.840.1.101.2.1.1.17") +szOID_INFOSEC_SuiteAKMandSig = make_flag("szOID_INFOSEC_SuiteAKMandSig", "2.16.840.1.101.2.1.1.18") +szOID_INFOSEC_mosaicUpdatedSig = make_flag("szOID_INFOSEC_mosaicUpdatedSig", "2.16.840.1.101.2.1.1.19") +szOID_INFOSEC_mosaicKMandUpdSig = make_flag("szOID_INFOSEC_mosaicKMandUpdSig", "2.16.840.1.101.2.1.1.20") +szOID_INFOSEC_mosaicUpdatedInteg = make_flag("szOID_INFOSEC_mosaicUpdatedInteg", "2.16.840.1.101.2.1.1.21") +szOID_NIST_sha256 = make_flag("szOID_NIST_sha256", "2.16.840.1.101.3.4.2.1") +szOID_NIST_sha384 = make_flag("szOID_NIST_sha384", "2.16.840.1.101.3.4.2.2") +szOID_NIST_sha512 = make_flag("szOID_NIST_sha512", "2.16.840.1.101.3.4.2.3") +SPC_PE_IMAGE_PAGE_HASHES_V1_OBJID = make_flag("SPC_PE_IMAGE_PAGE_HASHES_V1_OBJID", "1.3.6.1.4.1.311.2.3.1") +SPC_PE_IMAGE_PAGE_HASHES_V2_OBJID = make_flag("SPC_PE_IMAGE_PAGE_HASHES_V2_OBJID", "1.3.6.1.4.1.311.2.3.2") +szOID_NESTED_SIGNATURE = make_flag("szOID_NESTED_SIGNATURE", "1.3.6.1.4.1.311.2.4.1") +szOID_INTENT_TO_SEAL = make_flag("szOID_INTENT_TO_SEAL", "1.3.6.1.4.1.311.2.4.2") +szOID_SEALING_SIGNATURE = make_flag("szOID_SEALING_SIGNATURE", "1.3.6.1.4.1.311.2.4.3") +szOID_SEALING_TIMESTAMP = make_flag("szOID_SEALING_TIMESTAMP", "1.3.6.1.4.1.311.2.4.4") +szOID_ENHANCED_HASH = make_flag("szOID_ENHANCED_HASH", "1.3.6.1.4.1.311.2.5.1") +szOID_PKCS_9_SEQUENCE_NUMBER = make_flag("szOID_PKCS_9_SEQUENCE_NUMBER", "1.2.840.113549.1.9.25.4") +CAT_NAMEVALUE_OBJID = make_flag("CAT_NAMEVALUE_OBJID", "1.3.6.1.4.1.311.12.2.1") +CAT_MEMBERINFO_OBJID = make_flag("CAT_MEMBERINFO_OBJID", "1.3.6.1.4.1.311.12.2.2") +CAT_MEMBERINFO2_OBJID = make_flag("CAT_MEMBERINFO2_OBJID", "1.3.6.1.4.1.311.12.2.3") +szOID_COMMON_NAME = make_flag("szOID_COMMON_NAME", "2.5.4.3") +SPC_COMMON_NAME_OBJID = make_flag("SPC_COMMON_NAME_OBJID", szOID_COMMON_NAME) +SPC_TIME_STAMP_REQUEST_OBJID = make_flag("SPC_TIME_STAMP_REQUEST_OBJID", "1.3.6.1.4.1.311.3.2.1") +SPC_INDIRECT_DATA_OBJID = make_flag("SPC_INDIRECT_DATA_OBJID", "1.3.6.1.4.1.311.2.1.4") +SPC_SP_AGENCY_INFO_OBJID = make_flag("SPC_SP_AGENCY_INFO_OBJID", "1.3.6.1.4.1.311.2.1.10") +SPC_STATEMENT_TYPE_OBJID = make_flag("SPC_STATEMENT_TYPE_OBJID", "1.3.6.1.4.1.311.2.1.11") +SPC_SP_OPUS_INFO_OBJID = make_flag("SPC_SP_OPUS_INFO_OBJID", "1.3.6.1.4.1.311.2.1.12") +SPC_CERT_EXTENSIONS_OBJID = make_flag("SPC_CERT_EXTENSIONS_OBJID", "1.3.6.1.4.1.311.2.1.14") +SPC_PE_IMAGE_DATA_OBJID = make_flag("SPC_PE_IMAGE_DATA_OBJID", "1.3.6.1.4.1.311.2.1.15") +SPC_RAW_FILE_DATA_OBJID = make_flag("SPC_RAW_FILE_DATA_OBJID", "1.3.6.1.4.1.311.2.1.18") +SPC_STRUCTURED_STORAGE_DATA_OBJID = make_flag("SPC_STRUCTURED_STORAGE_DATA_OBJID", "1.3.6.1.4.1.311.2.1.19") +SPC_JAVA_CLASS_DATA_OBJID = make_flag("SPC_JAVA_CLASS_DATA_OBJID", "1.3.6.1.4.1.311.2.1.20") +SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID = make_flag("SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID", "1.3.6.1.4.1.311.2.1.21") +SPC_COMMERCIAL_SP_KEY_PURPOSE_OBJID = make_flag("SPC_COMMERCIAL_SP_KEY_PURPOSE_OBJID", "1.3.6.1.4.1.311.2.1.22") +SPC_CAB_DATA_OBJID = make_flag("SPC_CAB_DATA_OBJID", "1.3.6.1.4.1.311.2.1.25") +SPC_GLUE_RDN_OBJID = make_flag("SPC_GLUE_RDN_OBJID", "1.3.6.1.4.1.311.2.1.25") +SPC_MINIMAL_CRITERIA_OBJID = make_flag("SPC_MINIMAL_CRITERIA_OBJID", "1.3.6.1.4.1.311.2.1.26") +SPC_FINANCIAL_CRITERIA_OBJID = make_flag("SPC_FINANCIAL_CRITERIA_OBJID", "1.3.6.1.4.1.311.2.1.27") +SPC_LINK_OBJID = make_flag("SPC_LINK_OBJID", "1.3.6.1.4.1.311.2.1.28") +SPC_SIGINFO_OBJID = make_flag("SPC_SIGINFO_OBJID", "1.3.6.1.4.1.311.2.1.30") +FILE_VER_GET_LOCALISED = make_flag("FILE_VER_GET_LOCALISED", 0x01) +FILE_VER_GET_NEUTRAL = make_flag("FILE_VER_GET_NEUTRAL", 0x02) +FILE_VER_GET_PREFETCHED = make_flag("FILE_VER_GET_PREFETCHED", 0x04) +INVALID_HANDLE_VALUE = make_flag("INVALID_HANDLE_VALUE", ( ( -1 ) & NATIVE_WORD_MAX_VALUE )) +NULL = make_flag("NULL", 0) +MAX_PATH = make_flag("MAX_PATH", 260) +ANYSIZE_ARRAY = make_flag("ANYSIZE_ARRAY", 1) +ANY_SIZE = make_flag("ANY_SIZE", 1) +IMAGE_SIZEOF_SHORT_NAME = make_flag("IMAGE_SIZEOF_SHORT_NAME", 8) +IMAGE_NUMBEROF_DIRECTORY_ENTRIES = make_flag("IMAGE_NUMBEROF_DIRECTORY_ENTRIES", 16) +INFINITE = make_flag("INFINITE", 0xFFFFFFFF) +STD_INPUT_HANDLE = make_flag("STD_INPUT_HANDLE", -10) +STD_OUTPUT_HANDLE = make_flag("STD_OUTPUT_HANDLE", -11) +STD_ERROR_HANDLE = make_flag("STD_ERROR_HANDLE", -12) +WARMING_NOT_SAME_FLAG_FOR_WINXP = make_flag("WARMING_NOT_SAME_FLAG_FOR_WINXP", 0) +STARTF_USESHOWWINDOW = make_flag("STARTF_USESHOWWINDOW", 0x00000001) +STARTF_USESIZE = make_flag("STARTF_USESIZE", 0x00000002) +STARTF_USEPOSITION = make_flag("STARTF_USEPOSITION", 0x00000004) +STARTF_USECOUNTCHARS = make_flag("STARTF_USECOUNTCHARS", 0x00000008) +STARTF_USEFILLATTRIBUTE = make_flag("STARTF_USEFILLATTRIBUTE", 0x00000010) +STARTF_RUNFULLSCREEN = make_flag("STARTF_RUNFULLSCREEN", 0x00000020) +STARTF_FORCEONFEEDBACK = make_flag("STARTF_FORCEONFEEDBACK", 0x00000040) +STARTF_FORCEOFFFEEDBACK = make_flag("STARTF_FORCEOFFFEEDBACK", 0x00000080) +STARTF_USESTDHANDLES = make_flag("STARTF_USESTDHANDLES", 0x00000100) +SW_HIDE = make_flag("SW_HIDE", 0) +SW_SHOWNORMAL = make_flag("SW_SHOWNORMAL", 1) +SW_NORMAL = make_flag("SW_NORMAL", 1) +SW_SHOWMINIMIZED = make_flag("SW_SHOWMINIMIZED", 2) +SW_SHOWMAXIMIZED = make_flag("SW_SHOWMAXIMIZED", 3) +SW_MAXIMIZE = make_flag("SW_MAXIMIZE", 3) +SW_SHOWNOACTIVATE = make_flag("SW_SHOWNOACTIVATE", 4) +SW_SHOW = make_flag("SW_SHOW", 5) +SW_MINIMIZE = make_flag("SW_MINIMIZE", 6) +SW_SHOWMINNOACTIVE = make_flag("SW_SHOWMINNOACTIVE", 7) +SW_SHOWNA = make_flag("SW_SHOWNA", 8) +SW_RESTORE = make_flag("SW_RESTORE", 9) +SW_SHOWDEFAULT = make_flag("SW_SHOWDEFAULT", 10) +SW_FORCEMINIMIZE = make_flag("SW_FORCEMINIMIZE", 11) +SW_MAX = make_flag("SW_MAX", 11) +DEBUG_PROCESS = make_flag("DEBUG_PROCESS", 0x00000001) +DEBUG_ONLY_THIS_PROCESS = make_flag("DEBUG_ONLY_THIS_PROCESS", 0x00000002) +CREATE_SUSPENDED = make_flag("CREATE_SUSPENDED", 0x00000004) +DETACHED_PROCESS = make_flag("DETACHED_PROCESS", 0x00000008) +CREATE_NEW_CONSOLE = make_flag("CREATE_NEW_CONSOLE", 0x00000010) +NORMAL_PRIORITY_CLASS = make_flag("NORMAL_PRIORITY_CLASS", 0x00000020) +IDLE_PRIORITY_CLASS = make_flag("IDLE_PRIORITY_CLASS", 0x00000040) +HIGH_PRIORITY_CLASS = make_flag("HIGH_PRIORITY_CLASS", 0x00000080) +REALTIME_PRIORITY_CLASS = make_flag("REALTIME_PRIORITY_CLASS", 0x00000100) +CREATE_NEW_PROCESS_GROUP = make_flag("CREATE_NEW_PROCESS_GROUP", 0x00000200) +CREATE_UNICODE_ENVIRONMENT = make_flag("CREATE_UNICODE_ENVIRONMENT", 0x00000400) +CREATE_SEPARATE_WOW_VDM = make_flag("CREATE_SEPARATE_WOW_VDM", 0x00000800) +CREATE_SHARED_WOW_VDM = make_flag("CREATE_SHARED_WOW_VDM", 0x00001000) +CREATE_FORCEDOS = make_flag("CREATE_FORCEDOS", 0x00002000) +BELOW_NORMAL_PRIORITY_CLASS = make_flag("BELOW_NORMAL_PRIORITY_CLASS", 0x00004000) +ABOVE_NORMAL_PRIORITY_CLASS = make_flag("ABOVE_NORMAL_PRIORITY_CLASS", 0x00008000) +INHERIT_PARENT_AFFINITY = make_flag("INHERIT_PARENT_AFFINITY", 0x00010000) +INHERIT_CALLER_PRIORITY = make_flag("INHERIT_CALLER_PRIORITY", 0x00020000) +CREATE_PROTECTED_PROCESS = make_flag("CREATE_PROTECTED_PROCESS", 0x00040000) +EXTENDED_STARTUPINFO_PRESENT = make_flag("EXTENDED_STARTUPINFO_PRESENT", 0x00080000) +PROCESS_MODE_BACKGROUND_BEGIN = make_flag("PROCESS_MODE_BACKGROUND_BEGIN", 0x00100000) +PROCESS_MODE_BACKGROUND_END = make_flag("PROCESS_MODE_BACKGROUND_END", 0x00200000) +CREATE_BREAKAWAY_FROM_JOB = make_flag("CREATE_BREAKAWAY_FROM_JOB", 0x01000000) +CREATE_PRESERVE_CODE_AUTHZ_LEVEL = make_flag("CREATE_PRESERVE_CODE_AUTHZ_LEVEL", 0x02000000) +CREATE_DEFAULT_ERROR_MODE = make_flag("CREATE_DEFAULT_ERROR_MODE", 0x04000000) +CREATE_NO_WINDOW = make_flag("CREATE_NO_WINDOW", 0x08000000) +PROFILE_USER = make_flag("PROFILE_USER", 0x10000000) +PROFILE_KERNEL = make_flag("PROFILE_KERNEL", 0x20000000) +PROFILE_SERVER = make_flag("PROFILE_SERVER", 0x40000000) +CREATE_IGNORE_SYSTEM_DEFAULT = make_flag("CREATE_IGNORE_SYSTEM_DEFAULT", 0x80000000) +WAIT_IO_COMPLETION = make_flag("WAIT_IO_COMPLETION", STATUS_USER_APC) +STILL_ACTIVE = make_flag("STILL_ACTIVE", STATUS_PENDING) +EXCEPTION_ACCESS_VIOLATION = make_flag("EXCEPTION_ACCESS_VIOLATION", STATUS_ACCESS_VIOLATION) +EXCEPTION_DATATYPE_MISALIGNMENT = make_flag("EXCEPTION_DATATYPE_MISALIGNMENT", STATUS_DATATYPE_MISALIGNMENT) +EXCEPTION_BREAKPOINT = make_flag("EXCEPTION_BREAKPOINT", STATUS_BREAKPOINT) +EXCEPTION_SINGLE_STEP = make_flag("EXCEPTION_SINGLE_STEP", STATUS_SINGLE_STEP) +EXCEPTION_ARRAY_BOUNDS_EXCEEDED = make_flag("EXCEPTION_ARRAY_BOUNDS_EXCEEDED", STATUS_ARRAY_BOUNDS_EXCEEDED) +EXCEPTION_FLT_DENORMAL_OPERAND = make_flag("EXCEPTION_FLT_DENORMAL_OPERAND", STATUS_FLOAT_DENORMAL_OPERAND) +EXCEPTION_FLT_DIVIDE_BY_ZERO = make_flag("EXCEPTION_FLT_DIVIDE_BY_ZERO", STATUS_FLOAT_DIVIDE_BY_ZERO) +EXCEPTION_FLT_INEXACT_RESULT = make_flag("EXCEPTION_FLT_INEXACT_RESULT", STATUS_FLOAT_INEXACT_RESULT) +EXCEPTION_FLT_INVALID_OPERATION = make_flag("EXCEPTION_FLT_INVALID_OPERATION", STATUS_FLOAT_INVALID_OPERATION) +EXCEPTION_FLT_OVERFLOW = make_flag("EXCEPTION_FLT_OVERFLOW", STATUS_FLOAT_OVERFLOW) +EXCEPTION_FLT_STACK_CHECK = make_flag("EXCEPTION_FLT_STACK_CHECK", STATUS_FLOAT_STACK_CHECK) +EXCEPTION_FLT_UNDERFLOW = make_flag("EXCEPTION_FLT_UNDERFLOW", STATUS_FLOAT_UNDERFLOW) +EXCEPTION_INT_DIVIDE_BY_ZERO = make_flag("EXCEPTION_INT_DIVIDE_BY_ZERO", STATUS_INTEGER_DIVIDE_BY_ZERO) +EXCEPTION_INT_OVERFLOW = make_flag("EXCEPTION_INT_OVERFLOW", STATUS_INTEGER_OVERFLOW) +EXCEPTION_PRIV_INSTRUCTION = make_flag("EXCEPTION_PRIV_INSTRUCTION", STATUS_PRIVILEGED_INSTRUCTION) +EXCEPTION_IN_PAGE_ERROR = make_flag("EXCEPTION_IN_PAGE_ERROR", STATUS_IN_PAGE_ERROR) +EXCEPTION_ILLEGAL_INSTRUCTION = make_flag("EXCEPTION_ILLEGAL_INSTRUCTION", STATUS_ILLEGAL_INSTRUCTION) +EXCEPTION_NONCONTINUABLE_EXCEPTION = make_flag("EXCEPTION_NONCONTINUABLE_EXCEPTION", STATUS_NONCONTINUABLE_EXCEPTION) +EXCEPTION_STACK_OVERFLOW = make_flag("EXCEPTION_STACK_OVERFLOW", STATUS_STACK_OVERFLOW) +EXCEPTION_INVALID_DISPOSITION = make_flag("EXCEPTION_INVALID_DISPOSITION", STATUS_INVALID_DISPOSITION) +EXCEPTION_GUARD_PAGE = make_flag("EXCEPTION_GUARD_PAGE", STATUS_GUARD_PAGE_VIOLATION) +EXCEPTION_INVALID_HANDLE = make_flag("EXCEPTION_INVALID_HANDLE", STATUS_INVALID_HANDLE) +EXCEPTION_POSSIBLE_DEADLOCK = make_flag("EXCEPTION_POSSIBLE_DEADLOCK", STATUS_POSSIBLE_DEADLOCK) +CONTROL_C_EXIT = make_flag("CONTROL_C_EXIT", STATUS_CONTROL_C_EXIT) +EXCEPTION_DEBUG_EVENT = make_flag("EXCEPTION_DEBUG_EVENT", 1) +CREATE_THREAD_DEBUG_EVENT = make_flag("CREATE_THREAD_DEBUG_EVENT", 2) +CREATE_PROCESS_DEBUG_EVENT = make_flag("CREATE_PROCESS_DEBUG_EVENT", 3) +EXIT_THREAD_DEBUG_EVENT = make_flag("EXIT_THREAD_DEBUG_EVENT", 4) +EXIT_PROCESS_DEBUG_EVENT = make_flag("EXIT_PROCESS_DEBUG_EVENT", 5) +LOAD_DLL_DEBUG_EVENT = make_flag("LOAD_DLL_DEBUG_EVENT", 6) +UNLOAD_DLL_DEBUG_EVENT = make_flag("UNLOAD_DLL_DEBUG_EVENT", 7) +OUTPUT_DEBUG_STRING_EVENT = make_flag("OUTPUT_DEBUG_STRING_EVENT", 8) +RIP_EVENT = make_flag("RIP_EVENT", 9) +TH32CS_SNAPHEAPLIST = make_flag("TH32CS_SNAPHEAPLIST", 0x00000001) +TH32CS_SNAPPROCESS = make_flag("TH32CS_SNAPPROCESS", 0x00000002) +TH32CS_SNAPTHREAD = make_flag("TH32CS_SNAPTHREAD", 0x00000004) +TH32CS_SNAPMODULE = make_flag("TH32CS_SNAPMODULE", 0x00000008) +TH32CS_SNAPMODULE32 = make_flag("TH32CS_SNAPMODULE32", 0x00000010) +TH32CS_SNAPALL = make_flag("TH32CS_SNAPALL", ( TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE )) +TH32CS_INHERIT = make_flag("TH32CS_INHERIT", 0x80000000) +CONTEXT_I386 = make_flag("CONTEXT_I386", 0x00010000) +CONTEXT_CONTROL = make_flag("CONTEXT_CONTROL", 0x00000001) +CONTEXT_INTEGER = make_flag("CONTEXT_INTEGER", 0x00000002) +CONTEXT_SEGMENTS = make_flag("CONTEXT_SEGMENTS", 0x00000004) +CONTEXT_FLOATING_POINT = make_flag("CONTEXT_FLOATING_POINT", 0x00000008) +CONTEXT_DEBUG_REGISTERS = make_flag("CONTEXT_DEBUG_REGISTERS", 0x00000010) +CONTEXT_EXTENDED_REGISTERS = make_flag("CONTEXT_EXTENDED_REGISTERS", 0x00000020) +CONTEXT_FULL = make_flag("CONTEXT_FULL", ( CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS )) +CONTEXT_ALL = make_flag("CONTEXT_ALL", ( CONTEXT_FULL | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS | CONTEXT_EXTENDED_REGISTERS )) +CONTEXT_FULL = make_flag("CONTEXT_FULL", CONTEXT_I386 | CONTEXT_FULL) +CONTEXT_ALL = make_flag("CONTEXT_ALL", CONTEXT_I386 | CONTEXT_ALL) +CONTEXT_XSTATE = make_flag("CONTEXT_XSTATE", ( CONTEXT_I386 | 0x00000040 )) +PAGE_NOACCESS = make_flag("PAGE_NOACCESS", 0x01) +PAGE_READONLY = make_flag("PAGE_READONLY", 0x02) +PAGE_READWRITE = make_flag("PAGE_READWRITE", 0x04) +PAGE_WRITECOPY = make_flag("PAGE_WRITECOPY", 0x08) +PAGE_EXECUTE = make_flag("PAGE_EXECUTE", 0x10) +PAGE_EXECUTE_READ = make_flag("PAGE_EXECUTE_READ", 0x20) +PAGE_EXECUTE_READWRITE = make_flag("PAGE_EXECUTE_READWRITE", 0x40) +PAGE_EXECUTE_WRITECOPY = make_flag("PAGE_EXECUTE_WRITECOPY", 0x80) +PAGE_GUARD = make_flag("PAGE_GUARD", 0x100) +PAGE_NOCACHE = make_flag("PAGE_NOCACHE", 0x200) +PAGE_WRITECOMBINE = make_flag("PAGE_WRITECOMBINE", 0x400) +MEM_COMMIT = make_flag("MEM_COMMIT", 0x1000) +MEM_RESERVE = make_flag("MEM_RESERVE", 0x2000) +MEM_DECOMMIT = make_flag("MEM_DECOMMIT", 0x4000) +MEM_RELEASE = make_flag("MEM_RELEASE", 0x8000) +MEM_FREE = make_flag("MEM_FREE", 0x10000) +MEM_PRIVATE = make_flag("MEM_PRIVATE", 0x20000) +MEM_MAPPED = make_flag("MEM_MAPPED", 0x40000) +MEM_RESET = make_flag("MEM_RESET", 0x80000) +MEM_TOP_DOWN = make_flag("MEM_TOP_DOWN", 0x100000) +MEM_WRITE_WATCH = make_flag("MEM_WRITE_WATCH", 0x200000) +MEM_PHYSICAL = make_flag("MEM_PHYSICAL", 0x400000) +MEM_ROTATE = make_flag("MEM_ROTATE", 0x800000) +MEM_LARGE_PAGES = make_flag("MEM_LARGE_PAGES", 0x20000000) +MEM_4MB_PAGES = make_flag("MEM_4MB_PAGES", 0x80000000) +SEC_FILE = make_flag("SEC_FILE", 0x800000) +SEC_IMAGE = make_flag("SEC_IMAGE", 0x1000000) +SEC_PROTECTED_IMAGE = make_flag("SEC_PROTECTED_IMAGE", 0x2000000) +SEC_RESERVE = make_flag("SEC_RESERVE", 0x4000000) +SEC_COMMIT = make_flag("SEC_COMMIT", 0x8000000) +SEC_NOCACHE = make_flag("SEC_NOCACHE", 0x10000000) +SEC_WRITECOMBINE = make_flag("SEC_WRITECOMBINE", 0x40000000) +SEC_LARGE_PAGES = make_flag("SEC_LARGE_PAGES", 0x80000000) +MEM_IMAGE = make_flag("MEM_IMAGE", SEC_IMAGE) +WRITE_WATCH_FLAG_RESET = make_flag("WRITE_WATCH_FLAG_RESET", 0x01) +DELETE = make_flag("DELETE", ( 0x00010000 )) +READ_CONTROL = make_flag("READ_CONTROL", ( 0x00020000 )) +WRITE_DAC = make_flag("WRITE_DAC", ( 0x00040000 )) +WRITE_OWNER = make_flag("WRITE_OWNER", ( 0x00080000 )) +SYNCHRONIZE = make_flag("SYNCHRONIZE", ( 0x00100000 )) +STANDARD_RIGHTS_REQUIRED = make_flag("STANDARD_RIGHTS_REQUIRED", ( 0x000F0000 )) +STANDARD_RIGHTS_READ = make_flag("STANDARD_RIGHTS_READ", ( READ_CONTROL )) +STANDARD_RIGHTS_WRITE = make_flag("STANDARD_RIGHTS_WRITE", ( READ_CONTROL )) +STANDARD_RIGHTS_EXECUTE = make_flag("STANDARD_RIGHTS_EXECUTE", ( READ_CONTROL )) +STANDARD_RIGHTS_ALL = make_flag("STANDARD_RIGHTS_ALL", ( 0x001F0000 )) +SPECIFIC_RIGHTS_ALL = make_flag("SPECIFIC_RIGHTS_ALL", ( 0x0000FFFF )) +EXCEPTION_NONCONTINUABLE = make_flag("EXCEPTION_NONCONTINUABLE", 0x1) +EXCEPTION_MAXIMUM_PARAMETERS = make_flag("EXCEPTION_MAXIMUM_PARAMETERS", 15) +EXCEPTION_EXECUTE_HANDLER = make_flag("EXCEPTION_EXECUTE_HANDLER", 1) +EXCEPTION_CONTINUE_SEARCH = make_flag("EXCEPTION_CONTINUE_SEARCH", 0) +EXCEPTION_CONTINUE_EXECUTION = make_flag("EXCEPTION_CONTINUE_EXECUTION", -1) +GENERIC_READ = make_flag("GENERIC_READ", ( 0x80000000 )) +GENERIC_WRITE = make_flag("GENERIC_WRITE", ( 0x40000000 )) +GENERIC_EXECUTE = make_flag("GENERIC_EXECUTE", ( 0x20000000 )) +GENERIC_ALL = make_flag("GENERIC_ALL", ( 0x10000000 )) +FILE_FLAG_WRITE_THROUGH = make_flag("FILE_FLAG_WRITE_THROUGH", 0x80000000) +FILE_FLAG_OVERLAPPED = make_flag("FILE_FLAG_OVERLAPPED", 0x40000000) +FILE_FLAG_NO_BUFFERING = make_flag("FILE_FLAG_NO_BUFFERING", 0x20000000) +FILE_FLAG_RANDOM_ACCESS = make_flag("FILE_FLAG_RANDOM_ACCESS", 0x10000000) +FILE_FLAG_SEQUENTIAL_SCAN = make_flag("FILE_FLAG_SEQUENTIAL_SCAN", 0x08000000) +FILE_FLAG_DELETE_ON_CLOSE = make_flag("FILE_FLAG_DELETE_ON_CLOSE", 0x04000000) +FILE_FLAG_BACKUP_SEMANTICS = make_flag("FILE_FLAG_BACKUP_SEMANTICS", 0x02000000) +FILE_FLAG_POSIX_SEMANTICS = make_flag("FILE_FLAG_POSIX_SEMANTICS", 0x01000000) +FILE_FLAG_OPEN_REPARSE_POINT = make_flag("FILE_FLAG_OPEN_REPARSE_POINT", 0x00200000) +FILE_FLAG_OPEN_NO_RECALL = make_flag("FILE_FLAG_OPEN_NO_RECALL", 0x00100000) +FILE_FLAG_FIRST_PIPE_INSTANCE = make_flag("FILE_FLAG_FIRST_PIPE_INSTANCE", 0x00080000) +CREATE_NEW = make_flag("CREATE_NEW", 1) +CREATE_ALWAYS = make_flag("CREATE_ALWAYS", 2) +OPEN_EXISTING = make_flag("OPEN_EXISTING", 3) +OPEN_ALWAYS = make_flag("OPEN_ALWAYS", 4) +TRUNCATE_EXISTING = make_flag("TRUNCATE_EXISTING", 5) +MAILSLOT_NO_MESSAGE = make_flag("MAILSLOT_NO_MESSAGE", ( -1 )) +MAILSLOT_WAIT_FOREVER = make_flag("MAILSLOT_WAIT_FOREVER", ( -1 )) +RRF_RT_REG_NONE = make_flag("RRF_RT_REG_NONE", 0x00000001) +RRF_RT_REG_SZ = make_flag("RRF_RT_REG_SZ", 0x00000002) +RRF_RT_REG_EXPAND_SZ = make_flag("RRF_RT_REG_EXPAND_SZ", 0x00000004) +RRF_RT_REG_BINARY = make_flag("RRF_RT_REG_BINARY", 0x00000008) +RRF_RT_REG_DWORD = make_flag("RRF_RT_REG_DWORD", 0x00000010) +RRF_RT_REG_MULTI_SZ = make_flag("RRF_RT_REG_MULTI_SZ", 0x00000020) +RRF_RT_REG_QWORD = make_flag("RRF_RT_REG_QWORD", 0x00000040) +RRF_RT_DWORD = make_flag("RRF_RT_DWORD", ( RRF_RT_REG_BINARY | RRF_RT_REG_DWORD )) +RRF_RT_QWORD = make_flag("RRF_RT_QWORD", ( RRF_RT_REG_BINARY | RRF_RT_REG_QWORD )) +RRF_RT_ANY = make_flag("RRF_RT_ANY", 0x0000ffff) +RRF_NOEXPAND = make_flag("RRF_NOEXPAND", 0x10000000) +RRF_ZEROONFAILURE = make_flag("RRF_ZEROONFAILURE", 0x20000000) +DEBUG_EVENT_BREAKPOINT = make_flag("DEBUG_EVENT_BREAKPOINT", 0x00000001) +DEBUG_EVENT_EXCEPTION = make_flag("DEBUG_EVENT_EXCEPTION", 0x00000002) +DEBUG_EVENT_CREATE_THREAD = make_flag("DEBUG_EVENT_CREATE_THREAD", 0x00000004) +DEBUG_EVENT_EXIT_THREAD = make_flag("DEBUG_EVENT_EXIT_THREAD", 0x00000008) +DEBUG_EVENT_CREATE_PROCESS = make_flag("DEBUG_EVENT_CREATE_PROCESS", 0x00000010) +DEBUG_EVENT_EXIT_PROCESS = make_flag("DEBUG_EVENT_EXIT_PROCESS", 0x00000020) +DEBUG_EVENT_LOAD_MODULE = make_flag("DEBUG_EVENT_LOAD_MODULE", 0x00000040) +DEBUG_EVENT_UNLOAD_MODULE = make_flag("DEBUG_EVENT_UNLOAD_MODULE", 0x00000080) +DEBUG_EVENT_SYSTEM_ERROR = make_flag("DEBUG_EVENT_SYSTEM_ERROR", 0x00000100) +DEBUG_EVENT_SESSION_STATUS = make_flag("DEBUG_EVENT_SESSION_STATUS", 0x00000200) +DEBUG_EVENT_CHANGE_DEBUGGEE_STATE = make_flag("DEBUG_EVENT_CHANGE_DEBUGGEE_STATE", 0x00000400) +DEBUG_EVENT_CHANGE_ENGINE_STATE = make_flag("DEBUG_EVENT_CHANGE_ENGINE_STATE", 0x00000800) +DEBUG_EVENT_CHANGE_SYMBOL_STATE = make_flag("DEBUG_EVENT_CHANGE_SYMBOL_STATE", 0x00001000) +WOW64_MAXIMUM_SUPPORTED_EXTENSION = make_flag("WOW64_MAXIMUM_SUPPORTED_EXTENSION", 512) +WOW64_SIZE_OF_80387_REGISTERS = make_flag("WOW64_SIZE_OF_80387_REGISTERS", 80) +REG_NONE = make_flag("REG_NONE", ( 0 )) +REG_SZ = make_flag("REG_SZ", ( 1 )) +REG_EXPAND_SZ = make_flag("REG_EXPAND_SZ", ( 2 )) +REG_BINARY = make_flag("REG_BINARY", ( 3 )) +REG_DWORD = make_flag("REG_DWORD", ( 4 )) +REG_DWORD_LITTLE_ENDIAN = make_flag("REG_DWORD_LITTLE_ENDIAN", ( 4 )) +REG_DWORD_BIG_ENDIAN = make_flag("REG_DWORD_BIG_ENDIAN", ( 5 )) +REG_LINK = make_flag("REG_LINK", ( 6 )) +REG_MULTI_SZ = make_flag("REG_MULTI_SZ", ( 7 )) +REG_RESOURCE_LIST = make_flag("REG_RESOURCE_LIST", ( 8 )) +REG_FULL_RESOURCE_DESCRIPTOR = make_flag("REG_FULL_RESOURCE_DESCRIPTOR", ( 9 )) +REG_RESOURCE_REQUIREMENTS_LIST = make_flag("REG_RESOURCE_REQUIREMENTS_LIST", ( 10 )) +REG_QWORD = make_flag("REG_QWORD", ( 11 )) +REG_QWORD_LITTLE_ENDIAN = make_flag("REG_QWORD_LITTLE_ENDIAN", ( 11 )) +IMAGE_FILE_RELOCS_STRIPPED = make_flag("IMAGE_FILE_RELOCS_STRIPPED", 0x0001) +IMAGE_FILE_EXECUTABLE_IMAGE = make_flag("IMAGE_FILE_EXECUTABLE_IMAGE", 0x0002) +IMAGE_FILE_LINE_NUMS_STRIPPED = make_flag("IMAGE_FILE_LINE_NUMS_STRIPPED", 0x0004) +IMAGE_FILE_LOCAL_SYMS_STRIPPED = make_flag("IMAGE_FILE_LOCAL_SYMS_STRIPPED", 0x0008) +IMAGE_FILE_AGGRESIVE_WS_TRIM = make_flag("IMAGE_FILE_AGGRESIVE_WS_TRIM", 0x0010) +IMAGE_FILE_LARGE_ADDRESS_AWARE = make_flag("IMAGE_FILE_LARGE_ADDRESS_AWARE", 0x0020) +IMAGE_FILE_BYTES_REVERSED_LO = make_flag("IMAGE_FILE_BYTES_REVERSED_LO", 0x0080) +IMAGE_FILE_32BIT_MACHINE = make_flag("IMAGE_FILE_32BIT_MACHINE", 0x0100) +IMAGE_FILE_DEBUG_STRIPPED = make_flag("IMAGE_FILE_DEBUG_STRIPPED", 0x0200) +IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = make_flag("IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP", 0x0400) +IMAGE_FILE_NET_RUN_FROM_SWAP = make_flag("IMAGE_FILE_NET_RUN_FROM_SWAP", 0x0800) +IMAGE_FILE_SYSTEM = make_flag("IMAGE_FILE_SYSTEM", 0x1000) +IMAGE_FILE_DLL = make_flag("IMAGE_FILE_DLL", 0x2000) +IMAGE_FILE_UP_SYSTEM_ONLY = make_flag("IMAGE_FILE_UP_SYSTEM_ONLY", 0x4000) +IMAGE_FILE_BYTES_REVERSED_HI = make_flag("IMAGE_FILE_BYTES_REVERSED_HI", 0x8000) +SECURITY_MANDATORY_UNTRUSTED_RID = make_flag("SECURITY_MANDATORY_UNTRUSTED_RID", ( 0x00000000 )) +SECURITY_MANDATORY_LOW_RID = make_flag("SECURITY_MANDATORY_LOW_RID", ( 0x00001000 )) +SECURITY_MANDATORY_MEDIUM_RID = make_flag("SECURITY_MANDATORY_MEDIUM_RID", ( 0x00002000 )) +SECURITY_MANDATORY_MEDIUM_PLUS_RID = make_flag("SECURITY_MANDATORY_MEDIUM_PLUS_RID", ( SECURITY_MANDATORY_MEDIUM_RID + 0x100 )) +SECURITY_MANDATORY_HIGH_RID = make_flag("SECURITY_MANDATORY_HIGH_RID", ( 0x00003000 )) +SECURITY_MANDATORY_SYSTEM_RID = make_flag("SECURITY_MANDATORY_SYSTEM_RID", ( 0x00004000 )) +SECURITY_MANDATORY_PROTECTED_PROCESS_RID = make_flag("SECURITY_MANDATORY_PROTECTED_PROCESS_RID", ( 0x00005000 )) +DRIVE_UNKNOWN = make_flag("DRIVE_UNKNOWN", 0) +DRIVE_NO_ROOT_DIR = make_flag("DRIVE_NO_ROOT_DIR", 1) +DRIVE_REMOVABLE = make_flag("DRIVE_REMOVABLE", 2) +DRIVE_FIXED = make_flag("DRIVE_FIXED", 3) +DRIVE_REMOTE = make_flag("DRIVE_REMOTE", 4) +DRIVE_CDROM = make_flag("DRIVE_CDROM", 5) +DRIVE_RAMDISK = make_flag("DRIVE_RAMDISK", 6) +DUPLICATE_CLOSE_SOURCE = make_flag("DUPLICATE_CLOSE_SOURCE", 0x00000001) +DUPLICATE_SAME_ACCESS = make_flag("DUPLICATE_SAME_ACCESS", 0x00000002) +VER_NT_WORKSTATION = make_flag("VER_NT_WORKSTATION", 0x0000001) +VER_NT_DOMAIN_CONTROLLER = make_flag("VER_NT_DOMAIN_CONTROLLER", 0x0000002) +VER_NT_SERVER = make_flag("VER_NT_SERVER", 0x0000003) +SM_CXSCREEN = make_flag("SM_CXSCREEN", 0) +SM_CYSCREEN = make_flag("SM_CYSCREEN", 1) +SM_CXVSCROLL = make_flag("SM_CXVSCROLL", 2) +SM_CYHSCROLL = make_flag("SM_CYHSCROLL", 3) +SM_CYCAPTION = make_flag("SM_CYCAPTION", 4) +SM_CXBORDER = make_flag("SM_CXBORDER", 5) +SM_CYBORDER = make_flag("SM_CYBORDER", 6) +SM_CXDLGFRAME = make_flag("SM_CXDLGFRAME", 7) +SM_CYDLGFRAME = make_flag("SM_CYDLGFRAME", 8) +SM_CYVTHUMB = make_flag("SM_CYVTHUMB", 9) +SM_CXHTHUMB = make_flag("SM_CXHTHUMB", 10) +SM_CXICON = make_flag("SM_CXICON", 11) +SM_CYICON = make_flag("SM_CYICON", 12) +SM_CXCURSOR = make_flag("SM_CXCURSOR", 13) +SM_CYCURSOR = make_flag("SM_CYCURSOR", 14) +SM_CYMENU = make_flag("SM_CYMENU", 15) +SM_CXFULLSCREEN = make_flag("SM_CXFULLSCREEN", 16) +SM_CYFULLSCREEN = make_flag("SM_CYFULLSCREEN", 17) +SM_CYKANJIWINDOW = make_flag("SM_CYKANJIWINDOW", 18) +SM_MOUSEPRESENT = make_flag("SM_MOUSEPRESENT", 19) +SM_CYVSCROLL = make_flag("SM_CYVSCROLL", 20) +SM_CXHSCROLL = make_flag("SM_CXHSCROLL", 21) +SM_DEBUG = make_flag("SM_DEBUG", 22) +SM_SWAPBUTTON = make_flag("SM_SWAPBUTTON", 23) +SM_RESERVED1 = make_flag("SM_RESERVED1", 24) +SM_RESERVED2 = make_flag("SM_RESERVED2", 25) +SM_RESERVED3 = make_flag("SM_RESERVED3", 26) +SM_RESERVED4 = make_flag("SM_RESERVED4", 27) +SM_CXMIN = make_flag("SM_CXMIN", 28) +SM_CYMIN = make_flag("SM_CYMIN", 29) +SM_CXSIZE = make_flag("SM_CXSIZE", 30) +SM_CYSIZE = make_flag("SM_CYSIZE", 31) +SM_CXFRAME = make_flag("SM_CXFRAME", 32) +SM_CYFRAME = make_flag("SM_CYFRAME", 33) +SM_CXMINTRACK = make_flag("SM_CXMINTRACK", 34) +SM_CYMINTRACK = make_flag("SM_CYMINTRACK", 35) +SM_CXDOUBLECLK = make_flag("SM_CXDOUBLECLK", 36) +SM_CYDOUBLECLK = make_flag("SM_CYDOUBLECLK", 37) +SM_CXICONSPACING = make_flag("SM_CXICONSPACING", 38) +SM_CYICONSPACING = make_flag("SM_CYICONSPACING", 39) +SM_MENUDROPALIGNMENT = make_flag("SM_MENUDROPALIGNMENT", 40) +SM_PENWINDOWS = make_flag("SM_PENWINDOWS", 41) +SM_DBCSENABLED = make_flag("SM_DBCSENABLED", 42) +SM_CMOUSEBUTTONS = make_flag("SM_CMOUSEBUTTONS", 43) +SM_CXFIXEDFRAME = make_flag("SM_CXFIXEDFRAME", SM_CXDLGFRAME) +SM_CYFIXEDFRAME = make_flag("SM_CYFIXEDFRAME", SM_CYDLGFRAME) +SM_CXSIZEFRAME = make_flag("SM_CXSIZEFRAME", SM_CXFRAME) +SM_CYSIZEFRAME = make_flag("SM_CYSIZEFRAME", SM_CYFRAME) +SM_SECURE = make_flag("SM_SECURE", 44) +SM_CXEDGE = make_flag("SM_CXEDGE", 45) +SM_CYEDGE = make_flag("SM_CYEDGE", 46) +SM_CXMINSPACING = make_flag("SM_CXMINSPACING", 47) +SM_CYMINSPACING = make_flag("SM_CYMINSPACING", 48) +SM_CXSMICON = make_flag("SM_CXSMICON", 49) +SM_CYSMICON = make_flag("SM_CYSMICON", 50) +SM_CYSMCAPTION = make_flag("SM_CYSMCAPTION", 51) +SM_CXSMSIZE = make_flag("SM_CXSMSIZE", 52) +SM_CYSMSIZE = make_flag("SM_CYSMSIZE", 53) +SM_CXMENUSIZE = make_flag("SM_CXMENUSIZE", 54) +SM_CYMENUSIZE = make_flag("SM_CYMENUSIZE", 55) +SM_ARRANGE = make_flag("SM_ARRANGE", 56) +SM_CXMINIMIZED = make_flag("SM_CXMINIMIZED", 57) +SM_CYMINIMIZED = make_flag("SM_CYMINIMIZED", 58) +SM_CXMAXTRACK = make_flag("SM_CXMAXTRACK", 59) +SM_CYMAXTRACK = make_flag("SM_CYMAXTRACK", 60) +SM_CXMAXIMIZED = make_flag("SM_CXMAXIMIZED", 61) +SM_CYMAXIMIZED = make_flag("SM_CYMAXIMIZED", 62) +SM_NETWORK = make_flag("SM_NETWORK", 63) +SM_CLEANBOOT = make_flag("SM_CLEANBOOT", 67) +SM_CXDRAG = make_flag("SM_CXDRAG", 68) +SM_CYDRAG = make_flag("SM_CYDRAG", 69) +SM_SHOWSOUNDS = make_flag("SM_SHOWSOUNDS", 70) +SM_CXMENUCHECK = make_flag("SM_CXMENUCHECK", 71) +SM_CYMENUCHECK = make_flag("SM_CYMENUCHECK", 72) +SM_SLOWMACHINE = make_flag("SM_SLOWMACHINE", 73) +SM_MIDEASTENABLED = make_flag("SM_MIDEASTENABLED", 74) +SM_MOUSEWHEELPRESENT = make_flag("SM_MOUSEWHEELPRESENT", 75) +SM_XVIRTUALSCREEN = make_flag("SM_XVIRTUALSCREEN", 76) +SM_YVIRTUALSCREEN = make_flag("SM_YVIRTUALSCREEN", 77) +SM_CXVIRTUALSCREEN = make_flag("SM_CXVIRTUALSCREEN", 78) +SM_CYVIRTUALSCREEN = make_flag("SM_CYVIRTUALSCREEN", 79) +SM_CMONITORS = make_flag("SM_CMONITORS", 80) +SM_SAMEDISPLAYFORMAT = make_flag("SM_SAMEDISPLAYFORMAT", 81) +SM_IMMENABLED = make_flag("SM_IMMENABLED", 82) +SM_CXFOCUSBORDER = make_flag("SM_CXFOCUSBORDER", 83) +SM_CYFOCUSBORDER = make_flag("SM_CYFOCUSBORDER", 84) +SM_TABLETPC = make_flag("SM_TABLETPC", 86) +SM_MEDIACENTER = make_flag("SM_MEDIACENTER", 87) +SM_STARTER = make_flag("SM_STARTER", 88) +SM_SERVERR2 = make_flag("SM_SERVERR2", 89) +SM_MOUSEHORIZONTALWHEELPRESENT = make_flag("SM_MOUSEHORIZONTALWHEELPRESENT", 91) +SM_CXPADDEDBORDER = make_flag("SM_CXPADDEDBORDER", 92) +SM_DIGITIZER = make_flag("SM_DIGITIZER", 94) +SM_MAXIMUMTOUCHES = make_flag("SM_MAXIMUMTOUCHES", 95) +SM_REMOTESESSION = make_flag("SM_REMOTESESSION", 0x1000) +SM_SHUTTINGDOWN = make_flag("SM_SHUTTINGDOWN", 0x2000) +SM_REMOTECONTROL = make_flag("SM_REMOTECONTROL", 0x2001) +SM_CARETBLINKINGENABLED = make_flag("SM_CARETBLINKINGENABLED", 0x2002) +RPC_C_AUTHN_LEVEL_DEFAULT = make_flag("RPC_C_AUTHN_LEVEL_DEFAULT", 0) +RPC_C_AUTHN_LEVEL_NONE = make_flag("RPC_C_AUTHN_LEVEL_NONE", 1) +RPC_C_AUTHN_LEVEL_CONNECT = make_flag("RPC_C_AUTHN_LEVEL_CONNECT", 2) +RPC_C_AUTHN_LEVEL_CALL = make_flag("RPC_C_AUTHN_LEVEL_CALL", 3) +RPC_C_AUTHN_LEVEL_PKT = make_flag("RPC_C_AUTHN_LEVEL_PKT", 4) +RPC_C_AUTHN_LEVEL_PKT_INTEGRITY = make_flag("RPC_C_AUTHN_LEVEL_PKT_INTEGRITY", 5) +RPC_C_AUTHN_LEVEL_PKT_PRIVACY = make_flag("RPC_C_AUTHN_LEVEL_PKT_PRIVACY", 6) +RPC_C_IMP_LEVEL_DEFAULT = make_flag("RPC_C_IMP_LEVEL_DEFAULT", 0) +RPC_C_IMP_LEVEL_ANONYMOUS = make_flag("RPC_C_IMP_LEVEL_ANONYMOUS", 1) +RPC_C_IMP_LEVEL_IDENTIFY = make_flag("RPC_C_IMP_LEVEL_IDENTIFY", 2) +RPC_C_IMP_LEVEL_IMPERSONATE = make_flag("RPC_C_IMP_LEVEL_IMPERSONATE", 3) +RPC_C_IMP_LEVEL_DELEGATE = make_flag("RPC_C_IMP_LEVEL_DELEGATE", 4) +RPC_C_QOS_IDENTITY_STATIC = make_flag("RPC_C_QOS_IDENTITY_STATIC", 0) +RPC_C_QOS_IDENTITY_DYNAMIC = make_flag("RPC_C_QOS_IDENTITY_DYNAMIC", 1) +RPC_C_QOS_CAPABILITIES_DEFAULT = make_flag("RPC_C_QOS_CAPABILITIES_DEFAULT", 0x0) +RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH = make_flag("RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH", 0x1) +RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC = make_flag("RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC", 0x2) +RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY = make_flag("RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY", 0x4) +MAX_ADAPTER_NAME = make_flag("MAX_ADAPTER_NAME", 128) +MAXLEN_PHYSADDR = make_flag("MAXLEN_PHYSADDR", 8) +MAXLEN_IFDESCR = make_flag("MAXLEN_IFDESCR", 256) +MAX_INTERFACE_NAME_LEN = make_flag("MAX_INTERFACE_NAME_LEN", 256) +OBJ_INHERIT = make_flag("OBJ_INHERIT", 0x00000002) +OBJ_PERMANENT = make_flag("OBJ_PERMANENT", 0x00000010) +OBJ_EXCLUSIVE = make_flag("OBJ_EXCLUSIVE", 0x00000020) +OBJ_CASE_INSENSITIVE = make_flag("OBJ_CASE_INSENSITIVE", 0x00000040) +OBJ_OPENIF = make_flag("OBJ_OPENIF", 0x00000080) +OBJ_OPENLINK = make_flag("OBJ_OPENLINK", 0x00000100) +OBJ_KERNEL_HANDLE = make_flag("OBJ_KERNEL_HANDLE", 0x00000200) +OBJ_FORCE_ACCESS_CHECK = make_flag("OBJ_FORCE_ACCESS_CHECK", 0x00000400) +OBJ_VALID_ATTRIBUTES = make_flag("OBJ_VALID_ATTRIBUTES", 0x000007F2) +FILE_SUPERSEDE = make_flag("FILE_SUPERSEDE", 0x00000000) +FILE_OPEN = make_flag("FILE_OPEN", 0x00000001) +FILE_CREATE = make_flag("FILE_CREATE", 0x00000002) +FILE_OPEN_IF = make_flag("FILE_OPEN_IF", 0x00000003) +FILE_OVERWRITE = make_flag("FILE_OVERWRITE", 0x00000004) +FILE_OVERWRITE_IF = make_flag("FILE_OVERWRITE_IF", 0x00000005) +FILE_MAXIMUM_DISPOSITION = make_flag("FILE_MAXIMUM_DISPOSITION", 0x00000005) +IMAGE_SCN_TYPE_REG = make_flag("IMAGE_SCN_TYPE_REG", 0x00000000) +IMAGE_SCN_TYPE_DSECT = make_flag("IMAGE_SCN_TYPE_DSECT", 0x00000001) +IMAGE_SCN_TYPE_NOLOAD = make_flag("IMAGE_SCN_TYPE_NOLOAD", 0x00000002) +IMAGE_SCN_TYPE_GROUP = make_flag("IMAGE_SCN_TYPE_GROUP", 0x00000004) +IMAGE_SCN_TYPE_NO_PAD = make_flag("IMAGE_SCN_TYPE_NO_PAD", 0x00000008) +IMAGE_SCN_TYPE_COPY = make_flag("IMAGE_SCN_TYPE_COPY", 0x00000010) +IMAGE_SCN_CNT_CODE = make_flag("IMAGE_SCN_CNT_CODE", 0x00000020) +IMAGE_SCN_CNT_INITIALIZED_DATA = make_flag("IMAGE_SCN_CNT_INITIALIZED_DATA", 0x00000040) +IMAGE_SCN_CNT_UNINITIALIZED_DATA = make_flag("IMAGE_SCN_CNT_UNINITIALIZED_DATA", 0x00000080) +IMAGE_SCN_LNK_OTHER = make_flag("IMAGE_SCN_LNK_OTHER", 0x00000100) +IMAGE_SCN_LNK_INFO = make_flag("IMAGE_SCN_LNK_INFO", 0x00000200) +IMAGE_SCN_TYPE_OVER = make_flag("IMAGE_SCN_TYPE_OVER", 0x00000400) +IMAGE_SCN_LNK_REMOVE = make_flag("IMAGE_SCN_LNK_REMOVE", 0x00000800) +IMAGE_SCN_LNK_COMDAT = make_flag("IMAGE_SCN_LNK_COMDAT", 0x00001000) +IMAGE_SCN_NO_DEFER_SPEC_EXC = make_flag("IMAGE_SCN_NO_DEFER_SPEC_EXC", 0x00004000) +IMAGE_SCN_GPREL = make_flag("IMAGE_SCN_GPREL", 0x00008000) +IMAGE_SCN_MEM_FARDATA = make_flag("IMAGE_SCN_MEM_FARDATA", 0x00008000) +IMAGE_SCN_MEM_PURGEABLE = make_flag("IMAGE_SCN_MEM_PURGEABLE", 0x00020000) +IMAGE_SCN_MEM_16BIT = make_flag("IMAGE_SCN_MEM_16BIT", 0x00020000) +IMAGE_SCN_MEM_LOCKED = make_flag("IMAGE_SCN_MEM_LOCKED", 0x00040000) +IMAGE_SCN_MEM_PRELOAD = make_flag("IMAGE_SCN_MEM_PRELOAD", 0x00080000) +IMAGE_SCN_ALIGN_1BYTES = make_flag("IMAGE_SCN_ALIGN_1BYTES", 0x00100000) +IMAGE_SCN_ALIGN_2BYTES = make_flag("IMAGE_SCN_ALIGN_2BYTES", 0x00200000) +IMAGE_SCN_ALIGN_4BYTES = make_flag("IMAGE_SCN_ALIGN_4BYTES", 0x00300000) +IMAGE_SCN_ALIGN_8BYTES = make_flag("IMAGE_SCN_ALIGN_8BYTES", 0x00400000) +IMAGE_SCN_ALIGN_16BYTES = make_flag("IMAGE_SCN_ALIGN_16BYTES", 0x00500000) +IMAGE_SCN_ALIGN_32BYTES = make_flag("IMAGE_SCN_ALIGN_32BYTES", 0x00600000) +IMAGE_SCN_ALIGN_64BYTES = make_flag("IMAGE_SCN_ALIGN_64BYTES", 0x00700000) +IMAGE_SCN_ALIGN_128BYTES = make_flag("IMAGE_SCN_ALIGN_128BYTES", 0x00800000) +IMAGE_SCN_ALIGN_256BYTES = make_flag("IMAGE_SCN_ALIGN_256BYTES", 0x00900000) +IMAGE_SCN_ALIGN_512BYTES = make_flag("IMAGE_SCN_ALIGN_512BYTES", 0x00A00000) +IMAGE_SCN_ALIGN_1024BYTES = make_flag("IMAGE_SCN_ALIGN_1024BYTES", 0x00B00000) +IMAGE_SCN_ALIGN_2048BYTES = make_flag("IMAGE_SCN_ALIGN_2048BYTES", 0x00C00000) +IMAGE_SCN_ALIGN_4096BYTES = make_flag("IMAGE_SCN_ALIGN_4096BYTES", 0x00D00000) +IMAGE_SCN_ALIGN_8192BYTES = make_flag("IMAGE_SCN_ALIGN_8192BYTES", 0x00E00000) +IMAGE_SCN_ALIGN_MASK = make_flag("IMAGE_SCN_ALIGN_MASK", 0x00F00000) +IMAGE_SCN_LNK_NRELOC_OVFL = make_flag("IMAGE_SCN_LNK_NRELOC_OVFL", 0x01000000) +IMAGE_SCN_MEM_DISCARDABLE = make_flag("IMAGE_SCN_MEM_DISCARDABLE", 0x02000000) +IMAGE_SCN_MEM_NOT_CACHED = make_flag("IMAGE_SCN_MEM_NOT_CACHED", 0x04000000) +IMAGE_SCN_MEM_NOT_PAGED = make_flag("IMAGE_SCN_MEM_NOT_PAGED", 0x08000000) +IMAGE_SCN_MEM_SHARED = make_flag("IMAGE_SCN_MEM_SHARED", 0x10000000) +IMAGE_SCN_MEM_EXECUTE = make_flag("IMAGE_SCN_MEM_EXECUTE", 0x20000000) +IMAGE_SCN_MEM_READ = make_flag("IMAGE_SCN_MEM_READ", 0x40000000) +IMAGE_SCN_MEM_WRITE = make_flag("IMAGE_SCN_MEM_WRITE", 0x80000000) +LPC_REQUEST = make_flag("LPC_REQUEST", 1) +LPC_REPLY = make_flag("LPC_REPLY", 2) +LPC_DATAGRAM = make_flag("LPC_DATAGRAM", 3) +LPC_LOST_REPLY = make_flag("LPC_LOST_REPLY", 4) +LPC_PORT_CLOSED = make_flag("LPC_PORT_CLOSED", 5) +LPC_CLIENT_DIED = make_flag("LPC_CLIENT_DIED", 6) +LPC_EXCEPTION = make_flag("LPC_EXCEPTION", 7) +LPC_DEBUG_EVENT = make_flag("LPC_DEBUG_EVENT", 8) +LPC_ERROR_EVENT = make_flag("LPC_ERROR_EVENT", 9) +LPC_CONNECTION_REQUEST = make_flag("LPC_CONNECTION_REQUEST", 10) +ALPC_MESSAGE_SECURITY_ATTRIBUTE = make_flag("ALPC_MESSAGE_SECURITY_ATTRIBUTE", 0x80000000) +ALPC_MESSAGE_VIEW_ATTRIBUTE = make_flag("ALPC_MESSAGE_VIEW_ATTRIBUTE", 0x40000000) +ALPC_MESSAGE_CONTEXT_ATTRIBUTE = make_flag("ALPC_MESSAGE_CONTEXT_ATTRIBUTE", 0x20000000) +ALPC_MESSAGE_HANDLE_ATTRIBUTE = make_flag("ALPC_MESSAGE_HANDLE_ATTRIBUTE", 0x10000000) +ALPC_MESSAGE_TOKEN_ATTRIBUTE = make_flag("ALPC_MESSAGE_TOKEN_ATTRIBUTE", 0x8000000) +ALPC_MESSAGE_DIRECT_ATTRIBUTE = make_flag("ALPC_MESSAGE_DIRECT_ATTRIBUTE", 0x4000000) +ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE = make_flag("ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE", 0x2000000) +ALPC_MSGFLG_REPLY_MESSAGE = make_flag("ALPC_MSGFLG_REPLY_MESSAGE", 0x1) +ALPC_MSGFLG_LPC_MODE = make_flag("ALPC_MSGFLG_LPC_MODE", 0x2) +ALPC_MSGFLG_RELEASE_MESSAGE = make_flag("ALPC_MSGFLG_RELEASE_MESSAGE", 0x10000) +ALPC_MSGFLG_SYNC_REQUEST = make_flag("ALPC_MSGFLG_SYNC_REQUEST", 0x20000) +ALPC_MSGFLG_WAIT_USER_MODE = make_flag("ALPC_MSGFLG_WAIT_USER_MODE", 0x100000) +ALPC_MSGFLG_WAIT_ALERTABLE = make_flag("ALPC_MSGFLG_WAIT_ALERTABLE", 0x200000) +ALPC_MSGFLG_WOW64_CALL = make_flag("ALPC_MSGFLG_WOW64_CALL", 0x80000000) +ALPC_PORFLG_ALLOW_LPC_REQUESTS = make_flag("ALPC_PORFLG_ALLOW_LPC_REQUESTS", 0x20000) +ALPC_PORFLG_WAITABLE_PORT = make_flag("ALPC_PORFLG_WAITABLE_PORT", 0x40000) +ALPC_PORFLG_SYSTEM_PROCESS = make_flag("ALPC_PORFLG_SYSTEM_PROCESS", 0x100000) +ALPC_CANCELFLG_TRY_CANCEL = make_flag("ALPC_CANCELFLG_TRY_CANCEL", 0x1) +ALPC_CANCELFLG_NO_CONTEXT_CHECK = make_flag("ALPC_CANCELFLG_NO_CONTEXT_CHECK", 0x8) +ALPC_CANCELFLGP_FLUSH = make_flag("ALPC_CANCELFLGP_FLUSH", 0x10000) +ALPC_HANDLEFLG_DUPLICATE_SAME_ACCESS = make_flag("ALPC_HANDLEFLG_DUPLICATE_SAME_ACCESS", 0x10000) +ALPC_HANDLEFLG_DUPLICATE_SAME_ATTRIBUTES = make_flag("ALPC_HANDLEFLG_DUPLICATE_SAME_ATTRIBUTES", 0x20000) +ALPC_HANDLEFLG_DUPLICATE_INHERIT = make_flag("ALPC_HANDLEFLG_DUPLICATE_INHERIT", 0x80000) +ALPC_SECFLG_CREATE_HANDLE = make_flag("ALPC_SECFLG_CREATE_HANDLE", 0x20000) +ALPC_VIEWFLG_NOT_SECURE = make_flag("ALPC_VIEWFLG_NOT_SECURE", 0x40000) +CERT_STORE_CERTIFICATE_CONTEXT = make_flag("CERT_STORE_CERTIFICATE_CONTEXT", 1) +CERT_STORE_CRL_CONTEXT = make_flag("CERT_STORE_CRL_CONTEXT", 2) +CERT_STORE_CTL_CONTEXT = make_flag("CERT_STORE_CTL_CONTEXT", 3) +WTD_UI_ALL = make_flag("WTD_UI_ALL", 1) +WTD_UI_NONE = make_flag("WTD_UI_NONE", 2) +WTD_UI_NOBAD = make_flag("WTD_UI_NOBAD", 3) +WTD_UI_NOGOOD = make_flag("WTD_UI_NOGOOD", 4) +WTD_REVOKE_NONE = make_flag("WTD_REVOKE_NONE", 0x00000000) +WTD_REVOKE_WHOLECHAIN = make_flag("WTD_REVOKE_WHOLECHAIN", 0x00000001) +WTD_CHOICE_FILE = make_flag("WTD_CHOICE_FILE", 1) +WTD_CHOICE_CATALOG = make_flag("WTD_CHOICE_CATALOG", 2) +WTD_CHOICE_BLOB = make_flag("WTD_CHOICE_BLOB", 3) +WTD_CHOICE_SIGNER = make_flag("WTD_CHOICE_SIGNER", 4) +WTD_CHOICE_CERT = make_flag("WTD_CHOICE_CERT", 5) +WTD_STATEACTION_IGNORE = make_flag("WTD_STATEACTION_IGNORE", 0x00000000) +WTD_STATEACTION_VERIFY = make_flag("WTD_STATEACTION_VERIFY", 0x00000001) +WTD_STATEACTION_CLOSE = make_flag("WTD_STATEACTION_CLOSE", 0x00000002) +WTD_STATEACTION_AUTO_CACHE = make_flag("WTD_STATEACTION_AUTO_CACHE", 0x00000003) +WTD_STATEACTION_AUTO_CACHE_FLUSH = make_flag("WTD_STATEACTION_AUTO_CACHE_FLUSH", 0x00000004) +COMPRESSION_FORMAT_NONE = make_flag("COMPRESSION_FORMAT_NONE", ( 0x0000 )) +COMPRESSION_FORMAT_DEFAULT = make_flag("COMPRESSION_FORMAT_DEFAULT", ( 0x0001 )) +COMPRESSION_FORMAT_LZNT1 = make_flag("COMPRESSION_FORMAT_LZNT1", ( 0x0002 )) +COMPRESSION_FORMAT_XPRESS = make_flag("COMPRESSION_FORMAT_XPRESS", ( 0x0003 )) +COMPRESSION_FORMAT_XPRESS_HUFF = make_flag("COMPRESSION_FORMAT_XPRESS_HUFF", ( 0x0004 )) +COMPRESSION_ENGINE_STANDARD = make_flag("COMPRESSION_ENGINE_STANDARD", ( 0x0000 )) +COMPRESSION_ENGINE_MAXIMUM = make_flag("COMPRESSION_ENGINE_MAXIMUM", ( 0x0100 )) +COMPRESSION_ENGINE_HIBER = make_flag("COMPRESSION_ENGINE_HIBER", ( 0x0200 )) +FILE_DIRECTORY_FILE = make_flag("FILE_DIRECTORY_FILE", 0x00000001) +FILE_WRITE_THROUGH = make_flag("FILE_WRITE_THROUGH", 0x00000002) +FILE_SEQUENTIAL_ONLY = make_flag("FILE_SEQUENTIAL_ONLY", 0x00000004) +FILE_NO_INTERMEDIATE_BUFFERING = make_flag("FILE_NO_INTERMEDIATE_BUFFERING", 0x00000008) +FILE_SYNCHRONOUS_IO_ALERT = make_flag("FILE_SYNCHRONOUS_IO_ALERT", 0x00000010) +FILE_SYNCHRONOUS_IO_NONALERT = make_flag("FILE_SYNCHRONOUS_IO_NONALERT", 0x00000020) +FILE_NON_DIRECTORY_FILE = make_flag("FILE_NON_DIRECTORY_FILE", 0x00000040) +FILE_CREATE_TREE_CONNECTION = make_flag("FILE_CREATE_TREE_CONNECTION", 0x00000080) +FILE_COMPLETE_IF_OPLOCKED = make_flag("FILE_COMPLETE_IF_OPLOCKED", 0x00000100) +FILE_NO_EA_KNOWLEDGE = make_flag("FILE_NO_EA_KNOWLEDGE", 0x00000200) +FILE_OPEN_REMOTE_INSTANCE = make_flag("FILE_OPEN_REMOTE_INSTANCE", 0x00000400) +FILE_RANDOM_ACCESS = make_flag("FILE_RANDOM_ACCESS", 0x00000800) +FILE_DELETE_ON_CLOSE = make_flag("FILE_DELETE_ON_CLOSE", 0x00001000) +FILE_OPEN_BY_FILE_ID = make_flag("FILE_OPEN_BY_FILE_ID", 0x00002000) +FILE_OPEN_FOR_BACKUP_INTENT = make_flag("FILE_OPEN_FOR_BACKUP_INTENT", 0x00004000) +FILE_NO_COMPRESSION = make_flag("FILE_NO_COMPRESSION", 0x00008000) +FILE_OPEN_REQUIRING_OPLOCK = make_flag("FILE_OPEN_REQUIRING_OPLOCK", 0x00010000) +FILE_RESERVE_OPFILTER = make_flag("FILE_RESERVE_OPFILTER", 0x00100000) +FILE_OPEN_REPARSE_POINT = make_flag("FILE_OPEN_REPARSE_POINT", 0x00200000) +FILE_OPEN_NO_RECALL = make_flag("FILE_OPEN_NO_RECALL", 0x00400000) +FILE_OPEN_FOR_FREE_SPACE_QUERY = make_flag("FILE_OPEN_FOR_FREE_SPACE_QUERY", 0x00800000) +FILE_VALID_OPTION_FLAGS = make_flag("FILE_VALID_OPTION_FLAGS", 0x00ffffff) +FILE_VALID_PIPE_OPTION_FLAGS = make_flag("FILE_VALID_PIPE_OPTION_FLAGS", 0x00000032) +FILE_VALID_MAILSLOT_OPTION_FLAGS = make_flag("FILE_VALID_MAILSLOT_OPTION_FLAGS", 0x00000032) +FILE_VALID_SET_FLAGS = make_flag("FILE_VALID_SET_FLAGS", 0x00000036) +FILE_SUPERSEDED = make_flag("FILE_SUPERSEDED", 0x00000000) +FILE_OPENED = make_flag("FILE_OPENED", 0x00000001) +FILE_CREATED = make_flag("FILE_CREATED", 0x00000002) +FILE_OVERWRITTEN = make_flag("FILE_OVERWRITTEN", 0x00000003) +FILE_EXISTS = make_flag("FILE_EXISTS", 0x00000004) +FILE_DOES_NOT_EXIST = make_flag("FILE_DOES_NOT_EXIST", 0x00000005) +API_SET_SCHEMA_VERSION_V2 = make_flag("API_SET_SCHEMA_VERSION_V2", 0x00000002) +API_SET_SCHEMA_VERSION_V3 = make_flag("API_SET_SCHEMA_VERSION_V3", 0x00000003) +API_SET_SCHEMA_VERSION_V4 = make_flag("API_SET_SCHEMA_VERSION_V4", 0x00000004) +API_SET_LOAD_SCHEMA_ORDINAL = make_flag("API_SET_LOAD_SCHEMA_ORDINAL", 1) +API_SET_LOOKUP_ORDINAL = make_flag("API_SET_LOOKUP_ORDINAL", 2) +API_SET_RELEASE_SCHEMA_ORDINAL = make_flag("API_SET_RELEASE_SCHEMA_ORDINAL", 3) +API_SET_SCHEMA_FLAGS_SEALED = make_flag("API_SET_SCHEMA_FLAGS_SEALED", 0x00000001) +API_SET_SCHEMA_FLAGS_HOST_EXTENSION = make_flag("API_SET_SCHEMA_FLAGS_HOST_EXTENSION", 0x00000002) +API_SET_SCHEMA_ENTRY_FLAGS_SEALED = make_flag("API_SET_SCHEMA_ENTRY_FLAGS_SEALED", 0x00000001) +API_SET_SCHEMA_ENTRY_FLAGS_EXTENSION = make_flag("API_SET_SCHEMA_ENTRY_FLAGS_EXTENSION", 0x00000002) +CMSG_VERIFY_SIGNER_PUBKEY = make_flag("CMSG_VERIFY_SIGNER_PUBKEY", 1) +CMSG_VERIFY_SIGNER_CERT = make_flag("CMSG_VERIFY_SIGNER_CERT", 2) +CMSG_VERIFY_SIGNER_CHAIN = make_flag("CMSG_VERIFY_SIGNER_CHAIN", 3) +CMSG_VERIFY_SIGNER_NULL = make_flag("CMSG_VERIFY_SIGNER_NULL", 4) +TXFS_MINIVERSION_COMMITTED_VIEW = make_flag("TXFS_MINIVERSION_COMMITTED_VIEW", ( 0x0000 )) +TXFS_MINIVERSION_DIRTY_VIEW = make_flag("TXFS_MINIVERSION_DIRTY_VIEW", ( 0xFFFF )) +TXFS_MINIVERSION_DEFAULT_VIEW = make_flag("TXFS_MINIVERSION_DEFAULT_VIEW", ( 0xFFFE )) +ACCESS_SYSTEM_SECURITY = make_flag("ACCESS_SYSTEM_SECURITY", ( 0x01000000 )) +MAXIMUM_ALLOWED = make_flag("MAXIMUM_ALLOWED", ( 0x02000000 )) +FILE_READ_DATA = make_flag("FILE_READ_DATA", ( 0x0001 )) +FILE_LIST_DIRECTORY = make_flag("FILE_LIST_DIRECTORY", ( 0x0001 )) +FILE_WRITE_DATA = make_flag("FILE_WRITE_DATA", ( 0x0002 )) +FILE_ADD_FILE = make_flag("FILE_ADD_FILE", ( 0x0002 )) +FILE_APPEND_DATA = make_flag("FILE_APPEND_DATA", ( 0x0004 )) +FILE_ADD_SUBDIRECTORY = make_flag("FILE_ADD_SUBDIRECTORY", ( 0x0004 )) +FILE_CREATE_PIPE_INSTANCE = make_flag("FILE_CREATE_PIPE_INSTANCE", ( 0x0004 )) +FILE_READ_EA = make_flag("FILE_READ_EA", ( 0x0008 )) +FILE_WRITE_EA = make_flag("FILE_WRITE_EA", ( 0x0010 )) +FILE_EXECUTE = make_flag("FILE_EXECUTE", ( 0x0020 )) +FILE_TRAVERSE = make_flag("FILE_TRAVERSE", ( 0x0020 )) +FILE_DELETE_CHILD = make_flag("FILE_DELETE_CHILD", ( 0x0040 )) +FILE_READ_ATTRIBUTES = make_flag("FILE_READ_ATTRIBUTES", ( 0x0080 )) +FILE_WRITE_ATTRIBUTES = make_flag("FILE_WRITE_ATTRIBUTES", ( 0x0100 )) +FILE_ALL_ACCESS = make_flag("FILE_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF )) +FILE_GENERIC_READ = make_flag("FILE_GENERIC_READ", ( STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE )) +FILE_GENERIC_WRITE = make_flag("FILE_GENERIC_WRITE", ( STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE )) +FILE_GENERIC_EXECUTE = make_flag("FILE_GENERIC_EXECUTE", ( STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE )) +CALLBACK_MODIFY_STATE = make_flag("CALLBACK_MODIFY_STATE", 0x0001) +CALLBACK_ALL_ACCESS = make_flag("CALLBACK_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| CALLBACK_MODIFY_STATE )) +EVENT_QUERY_STATE = make_flag("EVENT_QUERY_STATE", 0x0001) +EVENT_MODIFY_STATE = make_flag("EVENT_MODIFY_STATE", 0x0002) +EVENT_ALL_ACCESS = make_flag("EVENT_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 )) +MUTANT_QUERY_STATE = make_flag("MUTANT_QUERY_STATE", 0x0001) +MUTANT_ALL_ACCESS = make_flag("MUTANT_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| MUTANT_QUERY_STATE )) +SEMAPHORE_QUERY_STATE = make_flag("SEMAPHORE_QUERY_STATE", 0x0001) +SEMAPHORE_MODIFY_STATE = make_flag("SEMAPHORE_MODIFY_STATE", 0x0002) +SEMAPHORE_ALL_ACCESS = make_flag("SEMAPHORE_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 )) +TIMER_QUERY_STATE = make_flag("TIMER_QUERY_STATE", 0x0001) +TIMER_MODIFY_STATE = make_flag("TIMER_MODIFY_STATE", 0x0002) +TIMER_ALL_ACCESS = make_flag("TIMER_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| TIMER_QUERY_STATE|TIMER_MODIFY_STATE )) +IO_COMPLETION_QUERY_STATE = make_flag("IO_COMPLETION_QUERY_STATE", 0x0001) +IO_COMPLETION_MODIFY_STATE = make_flag("IO_COMPLETION_MODIFY_STATE", 0x0002) +IO_COMPLETION_ALL_ACCESS = make_flag("IO_COMPLETION_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 )) +PORT_CONNECT = make_flag("PORT_CONNECT", ( 0x0001 )) +PORT_ALL_ACCESS = make_flag("PORT_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1 )) +OBJECT_TYPE_CREATE = make_flag("OBJECT_TYPE_CREATE", ( 0x0001 )) +OBJECT_TYPE_ALL_ACCESS = make_flag("OBJECT_TYPE_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED | 0x1 )) +DIRECTORY_QUERY = make_flag("DIRECTORY_QUERY", ( 0x0001 )) +DIRECTORY_TRAVERSE = make_flag("DIRECTORY_TRAVERSE", ( 0x0002 )) +DIRECTORY_CREATE_OBJECT = make_flag("DIRECTORY_CREATE_OBJECT", ( 0x0004 )) +DIRECTORY_CREATE_SUBDIRECTORY = make_flag("DIRECTORY_CREATE_SUBDIRECTORY", ( 0x0008 )) +DIRECTORY_ALL_ACCESS = make_flag("DIRECTORY_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED | 0xF )) +SYMBOLIC_LINK_QUERY = make_flag("SYMBOLIC_LINK_QUERY", ( 0x0001 )) +SYMBOLIC_LINK_ALL_ACCESS = make_flag("SYMBOLIC_LINK_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED | 0x1 )) +PROCESS_TERMINATE = make_flag("PROCESS_TERMINATE", ( 0x0001 )) +PROCESS_CREATE_THREAD = make_flag("PROCESS_CREATE_THREAD", ( 0x0002 )) +PROCESS_SET_SESSIONID = make_flag("PROCESS_SET_SESSIONID", ( 0x0004 )) +PROCESS_VM_OPERATION = make_flag("PROCESS_VM_OPERATION", ( 0x0008 )) +PROCESS_VM_READ = make_flag("PROCESS_VM_READ", ( 0x0010 )) +PROCESS_VM_WRITE = make_flag("PROCESS_VM_WRITE", ( 0x0020 )) +PROCESS_DUP_HANDLE = make_flag("PROCESS_DUP_HANDLE", ( 0x0040 )) +PROCESS_CREATE_PROCESS = make_flag("PROCESS_CREATE_PROCESS", ( 0x0080 )) +PROCESS_SET_QUOTA = make_flag("PROCESS_SET_QUOTA", ( 0x0100 )) +PROCESS_SET_INFORMATION = make_flag("PROCESS_SET_INFORMATION", ( 0x0200 )) +PROCESS_QUERY_INFORMATION = make_flag("PROCESS_QUERY_INFORMATION", ( 0x0400 )) +PROCESS_SUSPEND_RESUME = make_flag("PROCESS_SUSPEND_RESUME", ( 0x0800 )) +PROCESS_QUERY_LIMITED_INFORMATION = make_flag("PROCESS_QUERY_LIMITED_INFORMATION", ( 0x1000 )) +PROCESS_SET_LIMITED_INFORMATION = make_flag("PROCESS_SET_LIMITED_INFORMATION", ( 0x2000 )) +PROCESS_ALL_ACCESS = make_flag("PROCESS_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF )) +THREAD_TERMINATE = make_flag("THREAD_TERMINATE", ( 0x0001 )) +THREAD_SUSPEND_RESUME = make_flag("THREAD_SUSPEND_RESUME", ( 0x0002 )) +THREAD_GET_CONTEXT = make_flag("THREAD_GET_CONTEXT", ( 0x0008 )) +THREAD_SET_CONTEXT = make_flag("THREAD_SET_CONTEXT", ( 0x0010 )) +THREAD_QUERY_INFORMATION = make_flag("THREAD_QUERY_INFORMATION", ( 0x0040 )) +THREAD_SET_INFORMATION = make_flag("THREAD_SET_INFORMATION", ( 0x0020 )) +THREAD_SET_THREAD_TOKEN = make_flag("THREAD_SET_THREAD_TOKEN", ( 0x0080 )) +THREAD_IMPERSONATE = make_flag("THREAD_IMPERSONATE", ( 0x0100 )) +THREAD_DIRECT_IMPERSONATION = make_flag("THREAD_DIRECT_IMPERSONATION", ( 0x0200 )) +THREAD_ALL_ACCESS = make_flag("THREAD_ALL_ACCESS", 0x001F03FF) +JOB_OBJECT_ASSIGN_PROCESS = make_flag("JOB_OBJECT_ASSIGN_PROCESS", ( 0x0001 )) +JOB_OBJECT_SET_ATTRIBUTES = make_flag("JOB_OBJECT_SET_ATTRIBUTES", ( 0x0002 )) +JOB_OBJECT_QUERY = make_flag("JOB_OBJECT_QUERY", ( 0x0004 )) +JOB_OBJECT_TERMINATE = make_flag("JOB_OBJECT_TERMINATE", ( 0x0008 )) +JOB_OBJECT_SET_SECURITY_ATTRIBUTES = make_flag("JOB_OBJECT_SET_SECURITY_ATTRIBUTES", ( 0x0010 )) +JOB_OBJECT_ALL_ACCESS = make_flag("JOB_OBJECT_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1F )) +KEY_QUERY_VALUE = make_flag("KEY_QUERY_VALUE", ( 0x0001 )) +KEY_SET_VALUE = make_flag("KEY_SET_VALUE", ( 0x0002 )) +KEY_CREATE_SUB_KEY = make_flag("KEY_CREATE_SUB_KEY", ( 0x0004 )) +KEY_ENUMERATE_SUB_KEYS = make_flag("KEY_ENUMERATE_SUB_KEYS", ( 0x0008 )) +KEY_NOTIFY = make_flag("KEY_NOTIFY", ( 0x0010 )) +KEY_CREATE_LINK = make_flag("KEY_CREATE_LINK", ( 0x0020 )) +KEY_WOW64_32KEY = make_flag("KEY_WOW64_32KEY", ( 0x0200 )) +KEY_WOW64_64KEY = make_flag("KEY_WOW64_64KEY", ( 0x0100 )) +KEY_WOW64_RES = make_flag("KEY_WOW64_RES", ( 0x0300 )) +KEY_READ = make_flag("KEY_READ", ( ( STANDARD_RIGHTS_READ|KEY_QUERY_VALUE|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY ) & ( ~SYNCHRONIZE ) )) +KEY_WRITE = make_flag("KEY_WRITE", ( ( STANDARD_RIGHTS_WRITE|KEY_SET_VALUE|KEY_CREATE_SUB_KEY ) & ( ~SYNCHRONIZE ) )) +KEY_EXECUTE = make_flag("KEY_EXECUTE", ( ( KEY_READ ) & ( ~SYNCHRONIZE ) )) +KEY_ALL_ACCESS = make_flag("KEY_ALL_ACCESS", ( ( STANDARD_RIGHTS_ALL|KEY_QUERY_VALUE|KEY_SET_VALUE|KEY_CREATE_SUB_KEY|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY|KEY_CREATE_LINK ) & ( ~SYNCHRONIZE ) )) +CLUSAPI_READ_ACCESS = make_flag("CLUSAPI_READ_ACCESS", 0x00000001) +CLUSAPI_CHANGE_ACCESS = make_flag("CLUSAPI_CHANGE_ACCESS", 0x00000002) +CLUSAPI_NO_ACCESS = make_flag("CLUSAPI_NO_ACCESS", 0x00000004) +CLUSAPI_ALL_ACCESS = make_flag("CLUSAPI_ALL_ACCESS", ( CLUSAPI_READ_ACCESS | CLUSAPI_CHANGE_ACCESS )) +FAX_JOB_SUBMIT = make_flag("FAX_JOB_SUBMIT", ( 0x0001 )) +FAX_JOB_QUERY = make_flag("FAX_JOB_QUERY", ( 0x0002 )) +FAX_CONFIG_QUERY = make_flag("FAX_CONFIG_QUERY", ( 0x0004 )) +FAX_CONFIG_SET = make_flag("FAX_CONFIG_SET", ( 0x0008 )) +FAX_PORT_QUERY = make_flag("FAX_PORT_QUERY", ( 0x0010 )) +FAX_PORT_SET = make_flag("FAX_PORT_SET", ( 0x0020 )) +FAX_JOB_MANAGE = make_flag("FAX_JOB_MANAGE", ( 0x0040 )) +COM_EXECUTE = make_flag("COM_EXECUTE", ( 0x0001 )) +COM_EXECUTE_LOCAL = make_flag("COM_EXECUTE_LOCAL", ( 0x0002 )) +COM_EXECUTE_REMOTE = make_flag("COM_EXECUTE_REMOTE", ( 0x0004 )) +COM_ACTIVATE_LOCAL = make_flag("COM_ACTIVATE_LOCAL", ( 0x0008 )) +COM_ACTIVATE_REMOTE = make_flag("COM_ACTIVATE_REMOTE", ( 0x0010 )) +SECTION_QUERY = make_flag("SECTION_QUERY", 0x0001) +SECTION_MAP_WRITE = make_flag("SECTION_MAP_WRITE", 0x0002) +SECTION_MAP_READ = make_flag("SECTION_MAP_READ", 0x0004) +SECTION_MAP_EXECUTE = make_flag("SECTION_MAP_EXECUTE", 0x0008) +SECTION_EXTEND_SIZE = make_flag("SECTION_EXTEND_SIZE", 0x0010) +SECTION_MAP_EXECUTE_EXPLICIT = make_flag("SECTION_MAP_EXECUTE_EXPLICIT", 0x0020) +SECTION_ALL_ACCESS = make_flag("SECTION_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED|SECTION_QUERY| SECTION_MAP_WRITE |SECTION_MAP_READ |SECTION_MAP_EXECUTE |SECTION_EXTEND_SIZE )) +FILE_MAP_COPY = make_flag("FILE_MAP_COPY", SECTION_QUERY) +FILE_MAP_WRITE = make_flag("FILE_MAP_WRITE", SECTION_MAP_WRITE) +FILE_MAP_READ = make_flag("FILE_MAP_READ", SECTION_MAP_READ) +FILE_MAP_ALL_ACCESS = make_flag("FILE_MAP_ALL_ACCESS", SECTION_ALL_ACCESS) +FILE_MAP_EXECUTE = make_flag("FILE_MAP_EXECUTE", SECTION_MAP_EXECUTE_EXPLICIT) +SERVICE_QUERY_CONFIG = make_flag("SERVICE_QUERY_CONFIG", 0x0001) +SERVICE_CHANGE_CONFIG = make_flag("SERVICE_CHANGE_CONFIG", 0x0002) +SERVICE_QUERY_STATUS = make_flag("SERVICE_QUERY_STATUS", 0x0004) +SERVICE_ENUMERATE_DEPENDENTS = make_flag("SERVICE_ENUMERATE_DEPENDENTS", 0x0008) +SERVICE_START = make_flag("SERVICE_START", 0x0010) +SERVICE_STOP = make_flag("SERVICE_STOP", 0x0020) +SERVICE_PAUSE_CONTINUE = make_flag("SERVICE_PAUSE_CONTINUE", 0x0040) +SERVICE_INTERROGATE = make_flag("SERVICE_INTERROGATE", 0x0080) +SERVICE_USER_DEFINED_CONTROL = make_flag("SERVICE_USER_DEFINED_CONTROL", 0x0100) +SERVICE_ALL_ACCESS = make_flag("SERVICE_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL )) +SC_MANAGER_CONNECT = make_flag("SC_MANAGER_CONNECT", 0x0001) +SC_MANAGER_CREATE_SERVICE = make_flag("SC_MANAGER_CREATE_SERVICE", 0x0002) +SC_MANAGER_ENUMERATE_SERVICE = make_flag("SC_MANAGER_ENUMERATE_SERVICE", 0x0004) +SC_MANAGER_LOCK = make_flag("SC_MANAGER_LOCK", 0x0008) +SC_MANAGER_QUERY_LOCK_STATUS = make_flag("SC_MANAGER_QUERY_LOCK_STATUS", 0x0010) +SC_MANAGER_MODIFY_BOOT_CONFIG = make_flag("SC_MANAGER_MODIFY_BOOT_CONFIG", 0x0020) +SC_MANAGER_ALL_ACCESS = make_flag("SC_MANAGER_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED | SC_MANAGER_CONNECT | SC_MANAGER_CREATE_SERVICE | SC_MANAGER_ENUMERATE_SERVICE | SC_MANAGER_LOCK | SC_MANAGER_QUERY_LOCK_STATUS | SC_MANAGER_MODIFY_BOOT_CONFIG )) +ADS_RIGHT_DELETE = make_flag("ADS_RIGHT_DELETE", 0x10000) +ADS_RIGHT_READ_CONTROL = make_flag("ADS_RIGHT_READ_CONTROL", 0x20000) +ADS_RIGHT_WRITE_DAC = make_flag("ADS_RIGHT_WRITE_DAC", 0x40000) +ADS_RIGHT_WRITE_OWNER = make_flag("ADS_RIGHT_WRITE_OWNER", 0x80000) +ADS_RIGHT_SYNCHRONIZE = make_flag("ADS_RIGHT_SYNCHRONIZE", 0x100000) +ADS_RIGHT_ACCESS_SYSTEM_SECURITY = make_flag("ADS_RIGHT_ACCESS_SYSTEM_SECURITY", 0x1000000) +ADS_RIGHT_GENERIC_READ = make_flag("ADS_RIGHT_GENERIC_READ", 0x80000000) +ADS_RIGHT_GENERIC_WRITE = make_flag("ADS_RIGHT_GENERIC_WRITE", 0x40000000) +ADS_RIGHT_GENERIC_EXECUTE = make_flag("ADS_RIGHT_GENERIC_EXECUTE", 0x20000000) +ADS_RIGHT_GENERIC_ALL = make_flag("ADS_RIGHT_GENERIC_ALL", 0x10000000) +ADS_RIGHT_DS_CREATE_CHILD = make_flag("ADS_RIGHT_DS_CREATE_CHILD", 0x1) +ADS_RIGHT_DS_DELETE_CHILD = make_flag("ADS_RIGHT_DS_DELETE_CHILD", 0x2) +ADS_RIGHT_ACTRL_DS_LIST = make_flag("ADS_RIGHT_ACTRL_DS_LIST", 0x4) +ADS_RIGHT_DS_SELF = make_flag("ADS_RIGHT_DS_SELF", 0x8) +ADS_RIGHT_DS_READ_PROP = make_flag("ADS_RIGHT_DS_READ_PROP", 0x10) +ADS_RIGHT_DS_WRITE_PROP = make_flag("ADS_RIGHT_DS_WRITE_PROP", 0x20) +ADS_RIGHT_DS_DELETE_TREE = make_flag("ADS_RIGHT_DS_DELETE_TREE", 0x40) +ADS_RIGHT_DS_LIST_OBJECT = make_flag("ADS_RIGHT_DS_LIST_OBJECT", 0x80) +ADS_RIGHT_DS_CONTROL_ACCESS = make_flag("ADS_RIGHT_DS_CONTROL_ACCESS", 0x100) +POLICY_VIEW_LOCAL_INFORMATION = make_flag("POLICY_VIEW_LOCAL_INFORMATION", 0x00000001) +POLICY_VIEW_AUDIT_INFORMATION = make_flag("POLICY_VIEW_AUDIT_INFORMATION", 0x00000002) +POLICY_GET_PRIVATE_INFORMATION = make_flag("POLICY_GET_PRIVATE_INFORMATION", 0x00000004) +POLICY_TRUST_ADMIN = make_flag("POLICY_TRUST_ADMIN", 0x00000008) +POLICY_CREATE_ACCOUNT = make_flag("POLICY_CREATE_ACCOUNT", 0x00000010) +POLICY_CREATE_SECRET = make_flag("POLICY_CREATE_SECRET", 0x00000020) +POLICY_CREATE_PRIVILEGE = make_flag("POLICY_CREATE_PRIVILEGE", 0x00000040) +POLICY_SET_DEFAULT_QUOTA_LIMITS = make_flag("POLICY_SET_DEFAULT_QUOTA_LIMITS", 0x00000080) +POLICY_SET_AUDIT_REQUIREMENTS = make_flag("POLICY_SET_AUDIT_REQUIREMENTS", 0x00000100) +POLICY_AUDIT_LOG_ADMIN = make_flag("POLICY_AUDIT_LOG_ADMIN", 0x00000200) +POLICY_SERVER_ADMIN = make_flag("POLICY_SERVER_ADMIN", 0x00000400) +POLICY_LOOKUP_NAMES = make_flag("POLICY_LOOKUP_NAMES", 0x00000800) +POLICY_NOTIFICATION = make_flag("POLICY_NOTIFICATION", 0x00001000) +POLICY_ALL_ACCESS = make_flag("POLICY_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED | POLICY_VIEW_LOCAL_INFORMATION | POLICY_VIEW_AUDIT_INFORMATION | POLICY_GET_PRIVATE_INFORMATION | POLICY_TRUST_ADMIN | POLICY_CREATE_ACCOUNT | POLICY_CREATE_SECRET | POLICY_CREATE_PRIVILEGE | POLICY_SET_DEFAULT_QUOTA_LIMITS | POLICY_SET_AUDIT_REQUIREMENTS | POLICY_AUDIT_LOG_ADMIN | POLICY_SERVER_ADMIN | POLICY_LOOKUP_NAMES )) +TOKEN_SOURCE_LENGTH = make_flag("TOKEN_SOURCE_LENGTH", 8) +SID_HASH_SIZE = make_flag("SID_HASH_SIZE", 32) +TOKEN_MANDATORY_POLICY_OFF = make_flag("TOKEN_MANDATORY_POLICY_OFF", 0x0) +TOKEN_MANDATORY_POLICY_NO_WRITE_UP = make_flag("TOKEN_MANDATORY_POLICY_NO_WRITE_UP", 0x1) +TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN = make_flag("TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN", 0x2) +TOKEN_MANDATORY_POLICY_VALID_MASK = make_flag("TOKEN_MANDATORY_POLICY_VALID_MASK", ( TOKEN_MANDATORY_POLICY_NO_WRITE_UP | TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN )) +TOKEN_SECURITY_ATTRIBUTE_TYPE_INVALID = make_flag("TOKEN_SECURITY_ATTRIBUTE_TYPE_INVALID", 0x00) +TOKEN_SECURITY_ATTRIBUTE_TYPE_INT64 = make_flag("TOKEN_SECURITY_ATTRIBUTE_TYPE_INT64", 0x01) +TOKEN_SECURITY_ATTRIBUTE_TYPE_UINT64 = make_flag("TOKEN_SECURITY_ATTRIBUTE_TYPE_UINT64", 0x02) +TOKEN_SECURITY_ATTRIBUTE_TYPE_STRING = make_flag("TOKEN_SECURITY_ATTRIBUTE_TYPE_STRING", 0x03) +TOKEN_SECURITY_ATTRIBUTE_TYPE_FQBN = make_flag("TOKEN_SECURITY_ATTRIBUTE_TYPE_FQBN", 0x04) +TOKEN_SECURITY_ATTRIBUTE_TYPE_SID = make_flag("TOKEN_SECURITY_ATTRIBUTE_TYPE_SID", 0x05) +TOKEN_SECURITY_ATTRIBUTE_TYPE_BOOLEAN = make_flag("TOKEN_SECURITY_ATTRIBUTE_TYPE_BOOLEAN", 0x06) +TOKEN_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING = make_flag("TOKEN_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING", 0x10) +TOKEN_SECURITY_ATTRIBUTE_NON_INHERITABLE = make_flag("TOKEN_SECURITY_ATTRIBUTE_NON_INHERITABLE", 0x0001) +TOKEN_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE = make_flag("TOKEN_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE", 0x0002) +TOKEN_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY = make_flag("TOKEN_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY", 0x0004) +TOKEN_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT = make_flag("TOKEN_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT", 0x0008) +TOKEN_SECURITY_ATTRIBUTE_DISABLED = make_flag("TOKEN_SECURITY_ATTRIBUTE_DISABLED", 0x0010) +TOKEN_SECURITY_ATTRIBUTE_MANDATORY = make_flag("TOKEN_SECURITY_ATTRIBUTE_MANDATORY", 0x0020) +TOKEN_SECURITY_ATTRIBUTE_VALID_FLAGS = make_flag("TOKEN_SECURITY_ATTRIBUTE_VALID_FLAGS", ( TOKEN_SECURITY_ATTRIBUTE_NON_INHERITABLE | TOKEN_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE | TOKEN_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY | TOKEN_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT | TOKEN_SECURITY_ATTRIBUTE_DISABLED | TOKEN_SECURITY_ATTRIBUTE_MANDATORY )) +TOKEN_SECURITY_ATTRIBUTE_CUSTOM_FLAGS = make_flag("TOKEN_SECURITY_ATTRIBUTE_CUSTOM_FLAGS", 0xffff0000) +TOKEN_ASSIGN_PRIMARY = make_flag("TOKEN_ASSIGN_PRIMARY", ( 0x0001 )) +TOKEN_DUPLICATE = make_flag("TOKEN_DUPLICATE", ( 0x0002 )) +TOKEN_IMPERSONATE = make_flag("TOKEN_IMPERSONATE", ( 0x0004 )) +TOKEN_QUERY = make_flag("TOKEN_QUERY", ( 0x0008 )) +TOKEN_QUERY_SOURCE = make_flag("TOKEN_QUERY_SOURCE", ( 0x0010 )) +TOKEN_ADJUST_PRIVILEGES = make_flag("TOKEN_ADJUST_PRIVILEGES", ( 0x0020 )) +TOKEN_ADJUST_GROUPS = make_flag("TOKEN_ADJUST_GROUPS", ( 0x0040 )) +TOKEN_ADJUST_DEFAULT = make_flag("TOKEN_ADJUST_DEFAULT", ( 0x0080 )) +TOKEN_ADJUST_SESSIONID = make_flag("TOKEN_ADJUST_SESSIONID", ( 0x0100 )) +TOKEN_ALL_ACCESS_P = make_flag("TOKEN_ALL_ACCESS_P", ( STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_IMPERSONATE | TOKEN_QUERY | TOKEN_QUERY_SOURCE | TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT )) +TOKEN_ALL_ACCESS = make_flag("TOKEN_ALL_ACCESS", ( TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID )) +SE_PRIVILEGE_ENABLED_BY_DEFAULT = make_flag("SE_PRIVILEGE_ENABLED_BY_DEFAULT", ( 0x00000001 )) +SE_PRIVILEGE_ENABLED = make_flag("SE_PRIVILEGE_ENABLED", ( 0x00000002 )) +SE_PRIVILEGE_REMOVED = make_flag("SE_PRIVILEGE_REMOVED", ( 0X00000004 )) +SE_PRIVILEGE_USED_FOR_ACCESS = make_flag("SE_PRIVILEGE_USED_FOR_ACCESS", ( 0x80000000 )) +SE_CREATE_TOKEN_NAME = make_flag("SE_CREATE_TOKEN_NAME", ( "SeCreateTokenPrivilege" )) +SE_ASSIGNPRIMARYTOKEN_NAME = make_flag("SE_ASSIGNPRIMARYTOKEN_NAME", ( "SeAssignPrimaryTokenPrivilege" )) +SE_LOCK_MEMORY_NAME = make_flag("SE_LOCK_MEMORY_NAME", ( "SeLockMemoryPrivilege" )) +SE_INCREASE_QUOTA_NAME = make_flag("SE_INCREASE_QUOTA_NAME", ( "SeIncreaseQuotaPrivilege" )) +SE_UNSOLICITED_INPUT_NAME = make_flag("SE_UNSOLICITED_INPUT_NAME", ( "SeUnsolicitedInputPrivilege" )) +SE_MACHINE_ACCOUNT_NAME = make_flag("SE_MACHINE_ACCOUNT_NAME", ( "SeMachineAccountPrivilege" )) +SE_TCB_NAME = make_flag("SE_TCB_NAME", ( "SeTcbPrivilege" )) +SE_SECURITY_NAME = make_flag("SE_SECURITY_NAME", ( "SeSecurityPrivilege" )) +SE_TAKE_OWNERSHIP_NAME = make_flag("SE_TAKE_OWNERSHIP_NAME", ( "SeTakeOwnershipPrivilege" )) +SE_LOAD_DRIVER_NAME = make_flag("SE_LOAD_DRIVER_NAME", ( "SeLoadDriverPrivilege" )) +SE_SYSTEM_PROFILE_NAME = make_flag("SE_SYSTEM_PROFILE_NAME", ( "SeSystemProfilePrivilege" )) +SE_SYSTEMTIME_NAME = make_flag("SE_SYSTEMTIME_NAME", ( "SeSystemtimePrivilege" )) +SE_PROF_SINGLE_PROCESS_NAME = make_flag("SE_PROF_SINGLE_PROCESS_NAME", ( "SeProfileSingleProcessPrivilege" )) +SE_INC_BASE_PRIORITY_NAME = make_flag("SE_INC_BASE_PRIORITY_NAME", ( "SeIncreaseBasePriorityPrivilege" )) +SE_CREATE_PAGEFILE_NAME = make_flag("SE_CREATE_PAGEFILE_NAME", ( "SeCreatePagefilePrivilege" )) +SE_CREATE_PERMANENT_NAME = make_flag("SE_CREATE_PERMANENT_NAME", ( "SeCreatePermanentPrivilege" )) +SE_BACKUP_NAME = make_flag("SE_BACKUP_NAME", ( "SeBackupPrivilege" )) +SE_RESTORE_NAME = make_flag("SE_RESTORE_NAME", ( "SeRestorePrivilege" )) +SE_SHUTDOWN_NAME = make_flag("SE_SHUTDOWN_NAME", ( "SeShutdownPrivilege" )) +SE_DEBUG_NAME = make_flag("SE_DEBUG_NAME", ( "SeDebugPrivilege" )) +SE_AUDIT_NAME = make_flag("SE_AUDIT_NAME", ( "SeAuditPrivilege" )) +SE_SYSTEM_ENVIRONMENT_NAME = make_flag("SE_SYSTEM_ENVIRONMENT_NAME", ( "SeSystemEnvironmentPrivilege" )) +SE_CHANGE_NOTIFY_NAME = make_flag("SE_CHANGE_NOTIFY_NAME", ( "SeChangeNotifyPrivilege" )) +SE_REMOTE_SHUTDOWN_NAME = make_flag("SE_REMOTE_SHUTDOWN_NAME", ( "SeRemoteShutdownPrivilege" )) +SE_UNDOCK_NAME = make_flag("SE_UNDOCK_NAME", ( "SeUndockPrivilege" )) +SE_SYNC_AGENT_NAME = make_flag("SE_SYNC_AGENT_NAME", ( "SeSyncAgentPrivilege" )) +SE_ENABLE_DELEGATION_NAME = make_flag("SE_ENABLE_DELEGATION_NAME", ( "SeEnableDelegationPrivilege" )) +SE_MANAGE_VOLUME_NAME = make_flag("SE_MANAGE_VOLUME_NAME", ( "SeManageVolumePrivilege" )) +SE_IMPERSONATE_NAME = make_flag("SE_IMPERSONATE_NAME", ( "SeImpersonatePrivilege" )) +SE_CREATE_GLOBAL_NAME = make_flag("SE_CREATE_GLOBAL_NAME", ( "SeCreateGlobalPrivilege" )) +SE_TRUSTED_CREDMAN_ACCESS_NAME = make_flag("SE_TRUSTED_CREDMAN_ACCESS_NAME", ( "SeTrustedCredManAccessPrivilege" )) +SE_RELABEL_NAME = make_flag("SE_RELABEL_NAME", ( "SeRelabelPrivilege" )) +SE_INC_WORKING_SET_NAME = make_flag("SE_INC_WORKING_SET_NAME", ( "SeIncreaseWorkingSetPrivilege" )) +SE_TIME_ZONE_NAME = make_flag("SE_TIME_ZONE_NAME", ( "SeTimeZonePrivilege" )) +SE_CREATE_SYMBOLIC_LINK_NAME = make_flag("SE_CREATE_SYMBOLIC_LINK_NAME", ( "SeCreateSymbolicLinkPrivilege" )) +EVENTLOG_SUCCESS = make_flag("EVENTLOG_SUCCESS", 0x0000) +EVENTLOG_ERROR_TYPE = make_flag("EVENTLOG_ERROR_TYPE", 0x0001) +EVENTLOG_WARNING_TYPE = make_flag("EVENTLOG_WARNING_TYPE", 0x0002) +EVENTLOG_INFORMATION_TYPE = make_flag("EVENTLOG_INFORMATION_TYPE", 0x0004) +EVENTLOG_AUDIT_SUCCESS = make_flag("EVENTLOG_AUDIT_SUCCESS", 0x0008) +EVENTLOG_AUDIT_FAILURE = make_flag("EVENTLOG_AUDIT_FAILURE", 0x0010) +EVENTLOG_SEQUENTIAL_READ = make_flag("EVENTLOG_SEQUENTIAL_READ", 0x0001) +EVENTLOG_SEEK_READ = make_flag("EVENTLOG_SEEK_READ", 0x0002) +EVENTLOG_FORWARDS_READ = make_flag("EVENTLOG_FORWARDS_READ", 0x0004) +EVENTLOG_BACKWARDS_READ = make_flag("EVENTLOG_BACKWARDS_READ", 0x0008) +EVT_VARIANT_TYPE_MASK = make_flag("EVT_VARIANT_TYPE_MASK", 0x7f) +EVT_VARIANT_TYPE_ARRAY = make_flag("EVT_VARIANT_TYPE_ARRAY", 128) +IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA = make_flag("IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA", 0x0020) +IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE = make_flag("IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE", 0x0040) +IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY = make_flag("IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY", 0x0080) +IMAGE_DLLCHARACTERISTICS_NX_COMPAT = make_flag("IMAGE_DLLCHARACTERISTICS_NX_COMPAT", 0x0100) +IMAGE_DLLCHARACTERISTICS_NO_ISOLATION = make_flag("IMAGE_DLLCHARACTERISTICS_NO_ISOLATION", 0x0200) +IMAGE_DLLCHARACTERISTICS_NO_SEH = make_flag("IMAGE_DLLCHARACTERISTICS_NO_SEH", 0x0400) +IMAGE_DLLCHARACTERISTICS_NO_BIND = make_flag("IMAGE_DLLCHARACTERISTICS_NO_BIND", 0x0800) +IMAGE_DLLCHARACTERISTICS_APPCONTAINER = make_flag("IMAGE_DLLCHARACTERISTICS_APPCONTAINER", 0x1000) +IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = make_flag("IMAGE_DLLCHARACTERISTICS_WDM_DRIVER", 0x2000) +IMAGE_DLLCHARACTERISTICS_GUARD_CF = make_flag("IMAGE_DLLCHARACTERISTICS_GUARD_CF", 0x4000) +IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = make_flag("IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE", 0x8000) +IMAGE_DIRECTORY_ENTRY_EXPORT = make_flag("IMAGE_DIRECTORY_ENTRY_EXPORT", 0) +IMAGE_DIRECTORY_ENTRY_IMPORT = make_flag("IMAGE_DIRECTORY_ENTRY_IMPORT", 1) +IMAGE_DIRECTORY_ENTRY_RESOURCE = make_flag("IMAGE_DIRECTORY_ENTRY_RESOURCE", 2) +IMAGE_DIRECTORY_ENTRY_EXCEPTION = make_flag("IMAGE_DIRECTORY_ENTRY_EXCEPTION", 3) +IMAGE_DIRECTORY_ENTRY_SECURITY = make_flag("IMAGE_DIRECTORY_ENTRY_SECURITY", 4) +IMAGE_DIRECTORY_ENTRY_BASERELOC = make_flag("IMAGE_DIRECTORY_ENTRY_BASERELOC", 5) +IMAGE_DIRECTORY_ENTRY_DEBUG = make_flag("IMAGE_DIRECTORY_ENTRY_DEBUG", 6) +IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = make_flag("IMAGE_DIRECTORY_ENTRY_ARCHITECTURE", 7) +IMAGE_DIRECTORY_ENTRY_GLOBALPTR = make_flag("IMAGE_DIRECTORY_ENTRY_GLOBALPTR", 8) +IMAGE_DIRECTORY_ENTRY_TLS = make_flag("IMAGE_DIRECTORY_ENTRY_TLS", 9) +IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = make_flag("IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", 10) +IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = make_flag("IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", 11) +IMAGE_DIRECTORY_ENTRY_IAT = make_flag("IMAGE_DIRECTORY_ENTRY_IAT", 12) +IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = make_flag("IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", 13) +IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = make_flag("IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", 14) +IMAGE_REL_BASED_ABSOLUTE = make_flag("IMAGE_REL_BASED_ABSOLUTE", 0) +IMAGE_REL_BASED_HIGH = make_flag("IMAGE_REL_BASED_HIGH", 1) +IMAGE_REL_BASED_LOW = make_flag("IMAGE_REL_BASED_LOW", 2) +IMAGE_REL_BASED_HIGHLOW = make_flag("IMAGE_REL_BASED_HIGHLOW", 3) +IMAGE_REL_BASED_HIGHADJ = make_flag("IMAGE_REL_BASED_HIGHADJ", 4) +IMAGE_REL_BASED_MACHINE_SPECIFIC_5 = make_flag("IMAGE_REL_BASED_MACHINE_SPECIFIC_5", 5) +IMAGE_REL_BASED_RESERVED = make_flag("IMAGE_REL_BASED_RESERVED", 6) +IMAGE_REL_BASED_MACHINE_SPECIFIC_7 = make_flag("IMAGE_REL_BASED_MACHINE_SPECIFIC_7", 7) +IMAGE_REL_BASED_MACHINE_SPECIFIC_8 = make_flag("IMAGE_REL_BASED_MACHINE_SPECIFIC_8", 8) +IMAGE_REL_BASED_MACHINE_SPECIFIC_9 = make_flag("IMAGE_REL_BASED_MACHINE_SPECIFIC_9", 9) +IMAGE_REL_BASED_DIR64 = make_flag("IMAGE_REL_BASED_DIR64", 10) +WIN_CERT_REVISION_1_0 = make_flag("WIN_CERT_REVISION_1_0", ( 0x0100 )) +WIN_CERT_REVISION_2_0 = make_flag("WIN_CERT_REVISION_2_0", ( 0x0200 )) +WIN_CERT_TYPE_X509 = make_flag("WIN_CERT_TYPE_X509", ( 0x0001 )) +WIN_CERT_TYPE_PKCS_SIGNED_DATA = make_flag("WIN_CERT_TYPE_PKCS_SIGNED_DATA", ( 0x0002 )) +WIN_CERT_TYPE_RESERVED_1 = make_flag("WIN_CERT_TYPE_RESERVED_1", ( 0x0003 )) +WIN_CERT_TYPE_TS_STACK_SIGNED = make_flag("WIN_CERT_TYPE_TS_STACK_SIGNED", ( 0x0004 )) +IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = make_flag("IMAGE_SIZEOF_ROM_OPTIONAL_HEADER", 56) +IMAGE_SIZEOF_STD_OPTIONAL_HEADER = make_flag("IMAGE_SIZEOF_STD_OPTIONAL_HEADER", 28) +IMAGE_SIZEOF_NT_OPTIONAL32_HEADER = make_flag("IMAGE_SIZEOF_NT_OPTIONAL32_HEADER", 224) +IMAGE_SIZEOF_NT_OPTIONAL64_HEADER = make_flag("IMAGE_SIZEOF_NT_OPTIONAL64_HEADER", 240) +IMAGE_NT_OPTIONAL_HDR32_MAGIC = make_flag("IMAGE_NT_OPTIONAL_HDR32_MAGIC", 0x10b) +IMAGE_NT_OPTIONAL_HDR64_MAGIC = make_flag("IMAGE_NT_OPTIONAL_HDR64_MAGIC", 0x20b) +IMAGE_ROM_OPTIONAL_HDR_MAGIC = make_flag("IMAGE_ROM_OPTIONAL_HDR_MAGIC", 0x107) +IMAGE_FILE_MACHINE_UNKNOWN = make_flag("IMAGE_FILE_MACHINE_UNKNOWN", 0) +IMAGE_FILE_MACHINE_I386 = make_flag("IMAGE_FILE_MACHINE_I386", 0x014c) +IMAGE_FILE_MACHINE_R3000 = make_flag("IMAGE_FILE_MACHINE_R3000", 0x0162) +IMAGE_FILE_MACHINE_R4000 = make_flag("IMAGE_FILE_MACHINE_R4000", 0x0166) +IMAGE_FILE_MACHINE_R10000 = make_flag("IMAGE_FILE_MACHINE_R10000", 0x0168) +IMAGE_FILE_MACHINE_WCEMIPSV2 = make_flag("IMAGE_FILE_MACHINE_WCEMIPSV2", 0x0169) +IMAGE_FILE_MACHINE_ALPHA = make_flag("IMAGE_FILE_MACHINE_ALPHA", 0x0184) +IMAGE_FILE_MACHINE_SH3 = make_flag("IMAGE_FILE_MACHINE_SH3", 0x01a2) +IMAGE_FILE_MACHINE_SH3DSP = make_flag("IMAGE_FILE_MACHINE_SH3DSP", 0x01a3) +IMAGE_FILE_MACHINE_SH3E = make_flag("IMAGE_FILE_MACHINE_SH3E", 0x01a4) +IMAGE_FILE_MACHINE_SH4 = make_flag("IMAGE_FILE_MACHINE_SH4", 0x01a6) +IMAGE_FILE_MACHINE_SH5 = make_flag("IMAGE_FILE_MACHINE_SH5", 0x01a8) +IMAGE_FILE_MACHINE_ARM = make_flag("IMAGE_FILE_MACHINE_ARM", 0x01c0) +IMAGE_FILE_MACHINE_THUMB = make_flag("IMAGE_FILE_MACHINE_THUMB", 0x01c2) +IMAGE_FILE_MACHINE_ARMNT = make_flag("IMAGE_FILE_MACHINE_ARMNT", 0x01c4) +IMAGE_FILE_MACHINE_AM33 = make_flag("IMAGE_FILE_MACHINE_AM33", 0x01d3) +IMAGE_FILE_MACHINE_POWERPC = make_flag("IMAGE_FILE_MACHINE_POWERPC", 0x01F0) +IMAGE_FILE_MACHINE_POWERPCFP = make_flag("IMAGE_FILE_MACHINE_POWERPCFP", 0x01f1) +IMAGE_FILE_MACHINE_IA64 = make_flag("IMAGE_FILE_MACHINE_IA64", 0x0200) +IMAGE_FILE_MACHINE_MIPS16 = make_flag("IMAGE_FILE_MACHINE_MIPS16", 0x0266) +IMAGE_FILE_MACHINE_ALPHA64 = make_flag("IMAGE_FILE_MACHINE_ALPHA64", 0x0284) +IMAGE_FILE_MACHINE_MIPSFPU = make_flag("IMAGE_FILE_MACHINE_MIPSFPU", 0x0366) +IMAGE_FILE_MACHINE_MIPSFPU16 = make_flag("IMAGE_FILE_MACHINE_MIPSFPU16", 0x0466) +IMAGE_FILE_MACHINE_AXP64 = make_flag("IMAGE_FILE_MACHINE_AXP64", IMAGE_FILE_MACHINE_ALPHA64) +IMAGE_FILE_MACHINE_TRICORE = make_flag("IMAGE_FILE_MACHINE_TRICORE", 0x0520) +IMAGE_FILE_MACHINE_CEF = make_flag("IMAGE_FILE_MACHINE_CEF", 0x0CEF) +IMAGE_FILE_MACHINE_EBC = make_flag("IMAGE_FILE_MACHINE_EBC", 0x0EBC) +IMAGE_FILE_MACHINE_AMD64 = make_flag("IMAGE_FILE_MACHINE_AMD64", 0x8664) +IMAGE_FILE_MACHINE_M32R = make_flag("IMAGE_FILE_MACHINE_M32R", 0x9041) +IMAGE_FILE_MACHINE_CEE = make_flag("IMAGE_FILE_MACHINE_CEE", 0xC0EE) +IMAGE_FILE_MACHINE_ARM64 = make_flag("IMAGE_FILE_MACHINE_ARM64", 0xAA64) +CERT_QUERY_OBJECT_FILE = make_flag("CERT_QUERY_OBJECT_FILE", 0x00000001) +CERT_QUERY_OBJECT_BLOB = make_flag("CERT_QUERY_OBJECT_BLOB", 0x00000002) +CERT_QUERY_CONTENT_CERT = make_flag("CERT_QUERY_CONTENT_CERT", 1) +CERT_QUERY_CONTENT_CTL = make_flag("CERT_QUERY_CONTENT_CTL", 2) +CERT_QUERY_CONTENT_CRL = make_flag("CERT_QUERY_CONTENT_CRL", 3) +CERT_QUERY_CONTENT_SERIALIZED_STORE = make_flag("CERT_QUERY_CONTENT_SERIALIZED_STORE", 4) +CERT_QUERY_CONTENT_SERIALIZED_CERT = make_flag("CERT_QUERY_CONTENT_SERIALIZED_CERT", 5) +CERT_QUERY_CONTENT_SERIALIZED_CTL = make_flag("CERT_QUERY_CONTENT_SERIALIZED_CTL", 6) +CERT_QUERY_CONTENT_SERIALIZED_CRL = make_flag("CERT_QUERY_CONTENT_SERIALIZED_CRL", 7) +CERT_QUERY_CONTENT_PKCS7_SIGNED = make_flag("CERT_QUERY_CONTENT_PKCS7_SIGNED", 8) +CERT_QUERY_CONTENT_PKCS7_UNSIGNED = make_flag("CERT_QUERY_CONTENT_PKCS7_UNSIGNED", 9) +CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED = make_flag("CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED", 10) +CERT_QUERY_CONTENT_PKCS10 = make_flag("CERT_QUERY_CONTENT_PKCS10", 11) +CERT_QUERY_CONTENT_PFX = make_flag("CERT_QUERY_CONTENT_PFX", 12) +CERT_QUERY_CONTENT_CERT_PAIR = make_flag("CERT_QUERY_CONTENT_CERT_PAIR", 13) +CERT_QUERY_CONTENT_PFX_AND_LOAD = make_flag("CERT_QUERY_CONTENT_PFX_AND_LOAD", 14) +CERT_QUERY_FORMAT_BINARY = make_flag("CERT_QUERY_FORMAT_BINARY", 1) +CERT_QUERY_FORMAT_BASE64_ENCODED = make_flag("CERT_QUERY_FORMAT_BASE64_ENCODED", 2) +CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED = make_flag("CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED", 3) +CERT_QUERY_FORMAT_FLAG_BINARY = make_flag("CERT_QUERY_FORMAT_FLAG_BINARY", ( 1 << CERT_QUERY_FORMAT_BINARY )) +CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED = make_flag("CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED", ( 1 << CERT_QUERY_FORMAT_BASE64_ENCODED )) +CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED = make_flag("CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED", ( 1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED )) +CERT_QUERY_FORMAT_FLAG_ALL = make_flag("CERT_QUERY_FORMAT_FLAG_ALL", ( CERT_QUERY_FORMAT_FLAG_BINARY | CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED )) +CERT_QUERY_CONTENT_FLAG_CERT = make_flag("CERT_QUERY_CONTENT_FLAG_CERT", ( 1 << CERT_QUERY_CONTENT_CERT )) +CERT_QUERY_CONTENT_FLAG_CTL = make_flag("CERT_QUERY_CONTENT_FLAG_CTL", ( 1 << CERT_QUERY_CONTENT_CTL )) +CERT_QUERY_CONTENT_FLAG_CRL = make_flag("CERT_QUERY_CONTENT_FLAG_CRL", ( 1 << CERT_QUERY_CONTENT_CRL )) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE = make_flag("CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE", ( 1 << CERT_QUERY_CONTENT_SERIALIZED_STORE )) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT = make_flag("CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT", ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CERT )) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL = make_flag("CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL", ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CTL )) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL = make_flag("CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL", ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CRL )) +CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED = make_flag("CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED", ( 1 << CERT_QUERY_CONTENT_PKCS7_SIGNED )) +CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED = make_flag("CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED", ( 1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED )) +CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED = make_flag("CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED", ( 1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED )) +CERT_QUERY_CONTENT_FLAG_PKCS10 = make_flag("CERT_QUERY_CONTENT_FLAG_PKCS10", ( 1 << CERT_QUERY_CONTENT_PKCS10 )) +CERT_QUERY_CONTENT_FLAG_PFX = make_flag("CERT_QUERY_CONTENT_FLAG_PFX", ( 1 << CERT_QUERY_CONTENT_PFX )) +CERT_QUERY_CONTENT_FLAG_CERT_PAIR = make_flag("CERT_QUERY_CONTENT_FLAG_CERT_PAIR", ( 1 << CERT_QUERY_CONTENT_CERT_PAIR )) +CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD = make_flag("CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD", ( 1 << CERT_QUERY_CONTENT_PFX_AND_LOAD )) +CERT_QUERY_CONTENT_FLAG_ALL = make_flag("CERT_QUERY_CONTENT_FLAG_ALL", ( CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_CTL | CERT_QUERY_CONTENT_FLAG_CRL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED | CERT_QUERY_CONTENT_FLAG_PKCS10 | CERT_QUERY_CONTENT_FLAG_PFX | CERT_QUERY_CONTENT_FLAG_CERT_PAIR )) +CRYPT_ASN_ENCODING = make_flag("CRYPT_ASN_ENCODING", 0x00000001) +CRYPT_NDR_ENCODING = make_flag("CRYPT_NDR_ENCODING", 0x00000002) +X509_ASN_ENCODING = make_flag("X509_ASN_ENCODING", 0x00000001) +X509_NDR_ENCODING = make_flag("X509_NDR_ENCODING", 0x00000002) +PKCS_7_ASN_ENCODING = make_flag("PKCS_7_ASN_ENCODING", 0x00010000) +PKCS_7_NDR_ENCODING = make_flag("PKCS_7_NDR_ENCODING", 0x00020000) +CERT_ENCODING_TYPE_MASK = make_flag("CERT_ENCODING_TYPE_MASK", 0x0000FFFF) +CMSG_ENCODING_TYPE_MASK = make_flag("CMSG_ENCODING_TYPE_MASK", 0xFFFF0000) +CERT_COMPARE_MASK = make_flag("CERT_COMPARE_MASK", 0xFFFF) +CERT_COMPARE_SHIFT = make_flag("CERT_COMPARE_SHIFT", 16) +CERT_COMPARE_ANY = make_flag("CERT_COMPARE_ANY", 0) +CERT_COMPARE_SHA1_HASH = make_flag("CERT_COMPARE_SHA1_HASH", 1) +CERT_COMPARE_NAME = make_flag("CERT_COMPARE_NAME", 2) +CERT_COMPARE_ATTR = make_flag("CERT_COMPARE_ATTR", 3) +CERT_COMPARE_MD5_HASH = make_flag("CERT_COMPARE_MD5_HASH", 4) +CERT_COMPARE_PROPERTY = make_flag("CERT_COMPARE_PROPERTY", 5) +CERT_COMPARE_PUBLIC_KEY = make_flag("CERT_COMPARE_PUBLIC_KEY", 6) +CERT_COMPARE_HASH = make_flag("CERT_COMPARE_HASH", CERT_COMPARE_SHA1_HASH) +CERT_COMPARE_NAME_STR_A = make_flag("CERT_COMPARE_NAME_STR_A", 7) +CERT_COMPARE_NAME_STR_W = make_flag("CERT_COMPARE_NAME_STR_W", 8) +CERT_COMPARE_KEY_SPEC = make_flag("CERT_COMPARE_KEY_SPEC", 9) +CERT_COMPARE_ENHKEY_USAGE = make_flag("CERT_COMPARE_ENHKEY_USAGE", 10) +CERT_COMPARE_CTL_USAGE = make_flag("CERT_COMPARE_CTL_USAGE", CERT_COMPARE_ENHKEY_USAGE) +CERT_COMPARE_SUBJECT_CERT = make_flag("CERT_COMPARE_SUBJECT_CERT", 11) +CERT_COMPARE_ISSUER_OF = make_flag("CERT_COMPARE_ISSUER_OF", 12) +CERT_COMPARE_EXISTING = make_flag("CERT_COMPARE_EXISTING", 13) +CERT_COMPARE_SIGNATURE_HASH = make_flag("CERT_COMPARE_SIGNATURE_HASH", 14) +CERT_COMPARE_KEY_IDENTIFIER = make_flag("CERT_COMPARE_KEY_IDENTIFIER", 15) +CERT_COMPARE_CERT_ID = make_flag("CERT_COMPARE_CERT_ID", 16) +CERT_COMPARE_CROSS_CERT_DIST_POINTS = make_flag("CERT_COMPARE_CROSS_CERT_DIST_POINTS", 17) +CERT_COMPARE_PUBKEY_MD5_HASH = make_flag("CERT_COMPARE_PUBKEY_MD5_HASH", 18) +CERT_COMPARE_SUBJECT_INFO_ACCESS = make_flag("CERT_COMPARE_SUBJECT_INFO_ACCESS", 19) +CERT_NAME_ISSUER_FLAG = make_flag("CERT_NAME_ISSUER_FLAG", 0x1) +CERT_NAME_DISABLE_IE4_UTF8_FLAG = make_flag("CERT_NAME_DISABLE_IE4_UTF8_FLAG", 0x00010000) +USAGE_MATCH_TYPE_AND = make_flag("USAGE_MATCH_TYPE_AND", 0x00000000) +USAGE_MATCH_TYPE_OR = make_flag("USAGE_MATCH_TYPE_OR", 0x00000001) +CERT_CHAIN_REVOCATION_CHECK_END_CERT = make_flag("CERT_CHAIN_REVOCATION_CHECK_END_CERT", 0x10000000) +CERT_CHAIN_REVOCATION_CHECK_CHAIN = make_flag("CERT_CHAIN_REVOCATION_CHECK_CHAIN", 0x20000000) +CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = make_flag("CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT", 0x40000000) +CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY = make_flag("CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY", 0x80000000) +CERT_TRUST_NO_ERROR = make_flag("CERT_TRUST_NO_ERROR", 0x00000000) +CERT_TRUST_IS_NOT_TIME_VALID = make_flag("CERT_TRUST_IS_NOT_TIME_VALID", 0x00000001) +CERT_TRUST_IS_NOT_TIME_NESTED = make_flag("CERT_TRUST_IS_NOT_TIME_NESTED", 0x00000002) +CERT_TRUST_IS_REVOKED = make_flag("CERT_TRUST_IS_REVOKED", 0x00000004) +CERT_TRUST_IS_NOT_SIGNATURE_VALID = make_flag("CERT_TRUST_IS_NOT_SIGNATURE_VALID", 0x00000008) +CERT_TRUST_IS_NOT_VALID_FOR_USAGE = make_flag("CERT_TRUST_IS_NOT_VALID_FOR_USAGE", 0x00000010) +CERT_TRUST_IS_UNTRUSTED_ROOT = make_flag("CERT_TRUST_IS_UNTRUSTED_ROOT", 0x00000020) +CERT_TRUST_REVOCATION_STATUS_UNKNOWN = make_flag("CERT_TRUST_REVOCATION_STATUS_UNKNOWN", 0x00000040) +CERT_TRUST_IS_CYCLIC = make_flag("CERT_TRUST_IS_CYCLIC", 0x00000080) +CERT_TRUST_INVALID_EXTENSION = make_flag("CERT_TRUST_INVALID_EXTENSION", 0x00000100) +CERT_TRUST_INVALID_POLICY_CONSTRAINTS = make_flag("CERT_TRUST_INVALID_POLICY_CONSTRAINTS", 0x00000200) +CERT_TRUST_INVALID_BASIC_CONSTRAINTS = make_flag("CERT_TRUST_INVALID_BASIC_CONSTRAINTS", 0x00000400) +CERT_TRUST_INVALID_NAME_CONSTRAINTS = make_flag("CERT_TRUST_INVALID_NAME_CONSTRAINTS", 0x00000800) +CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = make_flag("CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT", 0x00001000) +CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = make_flag("CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT", 0x00002000) +CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = make_flag("CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT", 0x00004000) +CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = make_flag("CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT", 0x00008000) +CERT_TRUST_IS_OFFLINE_REVOCATION = make_flag("CERT_TRUST_IS_OFFLINE_REVOCATION", 0x01000000) +CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = make_flag("CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY", 0x02000000) +CERT_TRUST_IS_EXPLICIT_DISTRUST = make_flag("CERT_TRUST_IS_EXPLICIT_DISTRUST", 0x04000000) +CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = make_flag("CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT", 0x08000000) +CERT_TRUST_IS_PARTIAL_CHAIN = make_flag("CERT_TRUST_IS_PARTIAL_CHAIN", 0x00010000) +CERT_TRUST_CTL_IS_NOT_TIME_VALID = make_flag("CERT_TRUST_CTL_IS_NOT_TIME_VALID", 0x00020000) +CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = make_flag("CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID", 0x00040000) +CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = make_flag("CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE", 0x00080000) +CERT_TRUST_HAS_EXACT_MATCH_ISSUER = make_flag("CERT_TRUST_HAS_EXACT_MATCH_ISSUER", 0x00000001) +CERT_TRUST_HAS_KEY_MATCH_ISSUER = make_flag("CERT_TRUST_HAS_KEY_MATCH_ISSUER", 0x00000002) +CERT_TRUST_HAS_NAME_MATCH_ISSUER = make_flag("CERT_TRUST_HAS_NAME_MATCH_ISSUER", 0x00000004) +CERT_TRUST_IS_SELF_SIGNED = make_flag("CERT_TRUST_IS_SELF_SIGNED", 0x00000008) +CERT_TRUST_HAS_PREFERRED_ISSUER = make_flag("CERT_TRUST_HAS_PREFERRED_ISSUER", 0x00000100) +CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = make_flag("CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY", 0x00000200) +CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = make_flag("CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS", 0x00000400) +CERT_TRUST_IS_PEER_TRUSTED = make_flag("CERT_TRUST_IS_PEER_TRUSTED", 0x00000800) +CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED = make_flag("CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED", 0x00001000) +CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = make_flag("CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE", 0x00002000) +CERT_TRUST_IS_COMPLEX_CHAIN = make_flag("CERT_TRUST_IS_COMPLEX_CHAIN", 0x00010000) +CMSG_TYPE_PARAM = make_flag("CMSG_TYPE_PARAM", 1) +CMSG_CONTENT_PARAM = make_flag("CMSG_CONTENT_PARAM", 2) +CMSG_BARE_CONTENT_PARAM = make_flag("CMSG_BARE_CONTENT_PARAM", 3) +CMSG_INNER_CONTENT_TYPE_PARAM = make_flag("CMSG_INNER_CONTENT_TYPE_PARAM", 4) +CMSG_SIGNER_COUNT_PARAM = make_flag("CMSG_SIGNER_COUNT_PARAM", 5) +CMSG_SIGNER_INFO_PARAM = make_flag("CMSG_SIGNER_INFO_PARAM", 6) +CMSG_SIGNER_CERT_INFO_PARAM = make_flag("CMSG_SIGNER_CERT_INFO_PARAM", 7) +CMSG_SIGNER_HASH_ALGORITHM_PARAM = make_flag("CMSG_SIGNER_HASH_ALGORITHM_PARAM", 8) +CMSG_SIGNER_AUTH_ATTR_PARAM = make_flag("CMSG_SIGNER_AUTH_ATTR_PARAM", 9) +CMSG_SIGNER_UNAUTH_ATTR_PARAM = make_flag("CMSG_SIGNER_UNAUTH_ATTR_PARAM", 10) +CMSG_CERT_COUNT_PARAM = make_flag("CMSG_CERT_COUNT_PARAM", 11) +CMSG_CERT_PARAM = make_flag("CMSG_CERT_PARAM", 12) +CMSG_CRL_COUNT_PARAM = make_flag("CMSG_CRL_COUNT_PARAM", 13) +CMSG_CRL_PARAM = make_flag("CMSG_CRL_PARAM", 14) +CMSG_ENVELOPE_ALGORITHM_PARAM = make_flag("CMSG_ENVELOPE_ALGORITHM_PARAM", 15) +CMSG_RECIPIENT_COUNT_PARAM = make_flag("CMSG_RECIPIENT_COUNT_PARAM", 17) +CMSG_RECIPIENT_INDEX_PARAM = make_flag("CMSG_RECIPIENT_INDEX_PARAM", 18) +CMSG_RECIPIENT_INFO_PARAM = make_flag("CMSG_RECIPIENT_INFO_PARAM", 19) +CMSG_HASH_ALGORITHM_PARAM = make_flag("CMSG_HASH_ALGORITHM_PARAM", 20) +CMSG_HASH_DATA_PARAM = make_flag("CMSG_HASH_DATA_PARAM", 21) +CMSG_COMPUTED_HASH_PARAM = make_flag("CMSG_COMPUTED_HASH_PARAM", 22) +CMSG_ENCRYPT_PARAM = make_flag("CMSG_ENCRYPT_PARAM", 26) +CMSG_ENCRYPTED_DIGEST = make_flag("CMSG_ENCRYPTED_DIGEST", 27) +CMSG_ENCODED_SIGNER = make_flag("CMSG_ENCODED_SIGNER", 28) +CMSG_ENCODED_MESSAGE = make_flag("CMSG_ENCODED_MESSAGE", 29) +CMSG_VERSION_PARAM = make_flag("CMSG_VERSION_PARAM", 30) +CMSG_ATTR_CERT_COUNT_PARAM = make_flag("CMSG_ATTR_CERT_COUNT_PARAM", 31) +CMSG_ATTR_CERT_PARAM = make_flag("CMSG_ATTR_CERT_PARAM", 32) +CMSG_CMS_RECIPIENT_COUNT_PARAM = make_flag("CMSG_CMS_RECIPIENT_COUNT_PARAM", 33) +CMSG_CMS_RECIPIENT_INDEX_PARAM = make_flag("CMSG_CMS_RECIPIENT_INDEX_PARAM", 34) +CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM = make_flag("CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM", 35) +CMSG_CMS_RECIPIENT_INFO_PARAM = make_flag("CMSG_CMS_RECIPIENT_INFO_PARAM", 36) +CMSG_UNPROTECTED_ATTR_PARAM = make_flag("CMSG_UNPROTECTED_ATTR_PARAM", 37) +CMSG_SIGNER_CERT_ID_PARAM = make_flag("CMSG_SIGNER_CERT_ID_PARAM", 38) +CMSG_CMS_SIGNER_INFO_PARAM = make_flag("CMSG_CMS_SIGNER_INFO_PARAM", 39) +CERT_INFO_VERSION_FLAG = make_flag("CERT_INFO_VERSION_FLAG", 1) +CERT_INFO_SERIAL_NUMBER_FLAG = make_flag("CERT_INFO_SERIAL_NUMBER_FLAG", 2) +CERT_INFO_SIGNATURE_ALGORITHM_FLAG = make_flag("CERT_INFO_SIGNATURE_ALGORITHM_FLAG", 3) +CERT_INFO_ISSUER_FLAG = make_flag("CERT_INFO_ISSUER_FLAG", 4) +CERT_INFO_NOT_BEFORE_FLAG = make_flag("CERT_INFO_NOT_BEFORE_FLAG", 5) +CERT_INFO_NOT_AFTER_FLAG = make_flag("CERT_INFO_NOT_AFTER_FLAG", 6) +CERT_INFO_SUBJECT_FLAG = make_flag("CERT_INFO_SUBJECT_FLAG", 7) +CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = make_flag("CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG", 8) +CERT_INFO_ISSUER_UNIQUE_ID_FLAG = make_flag("CERT_INFO_ISSUER_UNIQUE_ID_FLAG", 9) +CERT_INFO_SUBJECT_UNIQUE_ID_FLAG = make_flag("CERT_INFO_SUBJECT_UNIQUE_ID_FLAG", 10) +CERT_INFO_EXTENSION_FLAG = make_flag("CERT_INFO_EXTENSION_FLAG", 11) +CERT_FIND_ANY = make_flag("CERT_FIND_ANY", ( CERT_COMPARE_ANY << CERT_COMPARE_SHIFT )) +CERT_FIND_SHA1_HASH = make_flag("CERT_FIND_SHA1_HASH", ( CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT )) +CERT_FIND_MD5_HASH = make_flag("CERT_FIND_MD5_HASH", ( CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT )) +CERT_FIND_SIGNATURE_HASH = make_flag("CERT_FIND_SIGNATURE_HASH", ( CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT )) +CERT_FIND_KEY_IDENTIFIER = make_flag("CERT_FIND_KEY_IDENTIFIER", ( CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT )) +CERT_FIND_HASH = make_flag("CERT_FIND_HASH", CERT_FIND_SHA1_HASH) +CERT_FIND_PROPERTY = make_flag("CERT_FIND_PROPERTY", ( CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT )) +CERT_FIND_PUBLIC_KEY = make_flag("CERT_FIND_PUBLIC_KEY", ( CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT )) +CERT_FIND_SUBJECT_NAME = make_flag("CERT_FIND_SUBJECT_NAME", ( CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG )) +CERT_FIND_SUBJECT_ATTR = make_flag("CERT_FIND_SUBJECT_ATTR", ( CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG )) +CERT_FIND_ISSUER_NAME = make_flag("CERT_FIND_ISSUER_NAME", ( CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG )) +CERT_FIND_ISSUER_ATTR = make_flag("CERT_FIND_ISSUER_ATTR", ( CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG )) +CERT_FIND_SUBJECT_STR_A = make_flag("CERT_FIND_SUBJECT_STR_A", ( CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG )) +CERT_FIND_SUBJECT_STR_W = make_flag("CERT_FIND_SUBJECT_STR_W", ( CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG )) +CERT_FIND_SUBJECT_STR = make_flag("CERT_FIND_SUBJECT_STR", CERT_FIND_SUBJECT_STR_W) +CERT_FIND_ISSUER_STR_A = make_flag("CERT_FIND_ISSUER_STR_A", ( CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG )) +CERT_FIND_ISSUER_STR_W = make_flag("CERT_FIND_ISSUER_STR_W", ( CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG )) +CERT_FIND_ISSUER_STR = make_flag("CERT_FIND_ISSUER_STR", CERT_FIND_ISSUER_STR_W) +CERT_FIND_KEY_SPEC = make_flag("CERT_FIND_KEY_SPEC", ( CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT )) +CERT_FIND_ENHKEY_USAGE = make_flag("CERT_FIND_ENHKEY_USAGE", ( CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT )) +CERT_FIND_CTL_USAGE = make_flag("CERT_FIND_CTL_USAGE", CERT_FIND_ENHKEY_USAGE) +CERT_FIND_SUBJECT_CERT = make_flag("CERT_FIND_SUBJECT_CERT", ( CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT )) +CERT_FIND_ISSUER_OF = make_flag("CERT_FIND_ISSUER_OF", ( CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT )) +CERT_FIND_EXISTING = make_flag("CERT_FIND_EXISTING", ( CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT )) +CERT_FIND_CERT_ID = make_flag("CERT_FIND_CERT_ID", ( CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT )) +CERT_FIND_CROSS_CERT_DIST_POINTS = make_flag("CERT_FIND_CROSS_CERT_DIST_POINTS", ( CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT )) +CERT_FIND_PUBKEY_MD5_HASH = make_flag("CERT_FIND_PUBKEY_MD5_HASH", ( CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT )) +CERT_FIND_SUBJECT_INFO_ACCESS = make_flag("CERT_FIND_SUBJECT_INFO_ACCESS", ( CERT_COMPARE_SUBJECT_INFO_ACCESS << CERT_COMPARE_SHIFT )) +CERT_NAME_EMAIL_TYPE = make_flag("CERT_NAME_EMAIL_TYPE", 1) +CERT_NAME_RDN_TYPE = make_flag("CERT_NAME_RDN_TYPE", 2) +CERT_NAME_ATTR_TYPE = make_flag("CERT_NAME_ATTR_TYPE", 3) +CERT_NAME_SIMPLE_DISPLAY_TYPE = make_flag("CERT_NAME_SIMPLE_DISPLAY_TYPE", 4) +CERT_NAME_FRIENDLY_DISPLAY_TYPE = make_flag("CERT_NAME_FRIENDLY_DISPLAY_TYPE", 5) +CERT_NAME_DNS_TYPE = make_flag("CERT_NAME_DNS_TYPE", 6) +CERT_NAME_URL_TYPE = make_flag("CERT_NAME_URL_TYPE", 7) +CERT_NAME_UPN_TYPE = make_flag("CERT_NAME_UPN_TYPE", 8) +CERT_KEY_PROV_HANDLE_PROP_ID = make_flag("CERT_KEY_PROV_HANDLE_PROP_ID", 1) +CERT_KEY_PROV_INFO_PROP_ID = make_flag("CERT_KEY_PROV_INFO_PROP_ID", 2) +CERT_SHA1_HASH_PROP_ID = make_flag("CERT_SHA1_HASH_PROP_ID", 3) +CERT_MD5_HASH_PROP_ID = make_flag("CERT_MD5_HASH_PROP_ID", 4) +CERT_HASH_PROP_ID = make_flag("CERT_HASH_PROP_ID", CERT_SHA1_HASH_PROP_ID) +CERT_KEY_CONTEXT_PROP_ID = make_flag("CERT_KEY_CONTEXT_PROP_ID", 5) +CERT_KEY_SPEC_PROP_ID = make_flag("CERT_KEY_SPEC_PROP_ID", 6) +CERT_IE30_RESERVED_PROP_ID = make_flag("CERT_IE30_RESERVED_PROP_ID", 7) +CERT_PUBKEY_HASH_RESERVED_PROP_ID = make_flag("CERT_PUBKEY_HASH_RESERVED_PROP_ID", 8) +CERT_ENHKEY_USAGE_PROP_ID = make_flag("CERT_ENHKEY_USAGE_PROP_ID", 9) +CERT_CTL_USAGE_PROP_ID = make_flag("CERT_CTL_USAGE_PROP_ID", CERT_ENHKEY_USAGE_PROP_ID) +CERT_NEXT_UPDATE_LOCATION_PROP_ID = make_flag("CERT_NEXT_UPDATE_LOCATION_PROP_ID", 10) +CERT_FRIENDLY_NAME_PROP_ID = make_flag("CERT_FRIENDLY_NAME_PROP_ID", 11) +CERT_PVK_FILE_PROP_ID = make_flag("CERT_PVK_FILE_PROP_ID", 12) +CERT_DESCRIPTION_PROP_ID = make_flag("CERT_DESCRIPTION_PROP_ID", 13) +CERT_ACCESS_STATE_PROP_ID = make_flag("CERT_ACCESS_STATE_PROP_ID", 14) +CERT_SIGNATURE_HASH_PROP_ID = make_flag("CERT_SIGNATURE_HASH_PROP_ID", 15) +CERT_SMART_CARD_DATA_PROP_ID = make_flag("CERT_SMART_CARD_DATA_PROP_ID", 16) +CERT_EFS_PROP_ID = make_flag("CERT_EFS_PROP_ID", 17) +CERT_FORTEZZA_DATA_PROP_ID = make_flag("CERT_FORTEZZA_DATA_PROP_ID", 18) +CERT_ARCHIVED_PROP_ID = make_flag("CERT_ARCHIVED_PROP_ID", 19) +CERT_KEY_IDENTIFIER_PROP_ID = make_flag("CERT_KEY_IDENTIFIER_PROP_ID", 20) +CERT_AUTO_ENROLL_PROP_ID = make_flag("CERT_AUTO_ENROLL_PROP_ID", 21) +CERT_PUBKEY_ALG_PARA_PROP_ID = make_flag("CERT_PUBKEY_ALG_PARA_PROP_ID", 22) +CERT_CROSS_CERT_DIST_POINTS_PROP_ID = make_flag("CERT_CROSS_CERT_DIST_POINTS_PROP_ID", 23) +CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID = make_flag("CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID", 24) +CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID = make_flag("CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID", 25) +CERT_ENROLLMENT_PROP_ID = make_flag("CERT_ENROLLMENT_PROP_ID", 26) +CERT_DATE_STAMP_PROP_ID = make_flag("CERT_DATE_STAMP_PROP_ID", 27) +CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = make_flag("CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID", 28) +CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = make_flag("CERT_SUBJECT_NAME_MD5_HASH_PROP_ID", 29) +CERT_EXTENDED_ERROR_INFO_PROP_ID = make_flag("CERT_EXTENDED_ERROR_INFO_PROP_ID", 30) +CERT_RENEWAL_PROP_ID = make_flag("CERT_RENEWAL_PROP_ID", 64) +CERT_ARCHIVED_KEY_HASH_PROP_ID = make_flag("CERT_ARCHIVED_KEY_HASH_PROP_ID", 65) +CERT_AUTO_ENROLL_RETRY_PROP_ID = make_flag("CERT_AUTO_ENROLL_RETRY_PROP_ID", 66) +CERT_AIA_URL_RETRIEVED_PROP_ID = make_flag("CERT_AIA_URL_RETRIEVED_PROP_ID", 67) +CERT_AUTHORITY_INFO_ACCESS_PROP_ID = make_flag("CERT_AUTHORITY_INFO_ACCESS_PROP_ID", 68) +CERT_BACKED_UP_PROP_ID = make_flag("CERT_BACKED_UP_PROP_ID", 69) +CERT_OCSP_RESPONSE_PROP_ID = make_flag("CERT_OCSP_RESPONSE_PROP_ID", 70) +CERT_REQUEST_ORIGINATOR_PROP_ID = make_flag("CERT_REQUEST_ORIGINATOR_PROP_ID", 71) +CERT_SOURCE_LOCATION_PROP_ID = make_flag("CERT_SOURCE_LOCATION_PROP_ID", 72) +CRYPT_ACQUIRE_CACHE_FLAG = make_flag("CRYPT_ACQUIRE_CACHE_FLAG", 0x00000001) +CRYPT_ACQUIRE_USE_PROV_INFO_FLAG = make_flag("CRYPT_ACQUIRE_USE_PROV_INFO_FLAG", 0x00000002) +CRYPT_ACQUIRE_COMPARE_KEY_FLAG = make_flag("CRYPT_ACQUIRE_COMPARE_KEY_FLAG", 0x00000004) +CRYPT_ACQUIRE_NO_HEALING = make_flag("CRYPT_ACQUIRE_NO_HEALING", 0x00000008) +CRYPT_ACQUIRE_SILENT_FLAG = make_flag("CRYPT_ACQUIRE_SILENT_FLAG", 0x00000040) +CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK = make_flag("CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK", 0x00070000) +CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG = make_flag("CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG", 0x00010000) +CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG = make_flag("CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG", 0x00020000) +CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG = make_flag("CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG", 0x00040000) +CERT_STORE_PROV_MSG = make_flag("CERT_STORE_PROV_MSG", ( 1 )) +CERT_STORE_PROV_MEMORY = make_flag("CERT_STORE_PROV_MEMORY", ( 2 )) +CERT_STORE_PROV_FILE = make_flag("CERT_STORE_PROV_FILE", ( 3 )) +CERT_STORE_PROV_REG = make_flag("CERT_STORE_PROV_REG", ( 4 )) +CERT_STORE_PROV_PKCS7 = make_flag("CERT_STORE_PROV_PKCS7", ( 5 )) +CERT_STORE_PROV_SERIALIZED = make_flag("CERT_STORE_PROV_SERIALIZED", ( 6 )) +CERT_STORE_PROV_FILENAME_A = make_flag("CERT_STORE_PROV_FILENAME_A", ( 7 )) +CERT_STORE_PROV_FILENAME_W = make_flag("CERT_STORE_PROV_FILENAME_W", ( 8 )) +CERT_STORE_PROV_FILENAME = make_flag("CERT_STORE_PROV_FILENAME", CERT_STORE_PROV_FILENAME_W) +CERT_STORE_PROV_SYSTEM_A = make_flag("CERT_STORE_PROV_SYSTEM_A", ( 9 )) +CERT_STORE_PROV_SYSTEM_W = make_flag("CERT_STORE_PROV_SYSTEM_W", ( 10 )) +CERT_STORE_PROV_SYSTEM = make_flag("CERT_STORE_PROV_SYSTEM", CERT_STORE_PROV_SYSTEM_W) +CERT_STORE_PROV_COLLECTION = make_flag("CERT_STORE_PROV_COLLECTION", ( 11 )) +CERT_STORE_PROV_SYSTEM_REGISTRY_A = make_flag("CERT_STORE_PROV_SYSTEM_REGISTRY_A", ( 12 )) +CERT_STORE_PROV_SYSTEM_REGISTRY_W = make_flag("CERT_STORE_PROV_SYSTEM_REGISTRY_W", ( 13 )) +CERT_STORE_PROV_SYSTEM_REGISTRY = make_flag("CERT_STORE_PROV_SYSTEM_REGISTRY", CERT_STORE_PROV_SYSTEM_REGISTRY_W) +CERT_STORE_PROV_PHYSICAL_W = make_flag("CERT_STORE_PROV_PHYSICAL_W", ( 14 )) +CERT_STORE_PROV_PHYSICAL = make_flag("CERT_STORE_PROV_PHYSICAL", CERT_STORE_PROV_PHYSICAL_W) +CERT_STORE_PROV_SMART_CARD_W = make_flag("CERT_STORE_PROV_SMART_CARD_W", ( 15 )) +CERT_STORE_PROV_SMART_CARD = make_flag("CERT_STORE_PROV_SMART_CARD", CERT_STORE_PROV_SMART_CARD_W) +CERT_STORE_PROV_LDAP_W = make_flag("CERT_STORE_PROV_LDAP_W", ( 16 )) +CERT_STORE_PROV_LDAP = make_flag("CERT_STORE_PROV_LDAP", CERT_STORE_PROV_LDAP_W) +CERT_STORE_PROV_PKCS12 = make_flag("CERT_STORE_PROV_PKCS12", ( 17 )) +CERT_STORE_NO_CRYPT_RELEASE_FLAG = make_flag("CERT_STORE_NO_CRYPT_RELEASE_FLAG", 0x00000001) +CERT_STORE_SET_LOCALIZED_NAME_FLAG = make_flag("CERT_STORE_SET_LOCALIZED_NAME_FLAG", 0x00000002) +CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = make_flag("CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG", 0x00000004) +CERT_STORE_DELETE_FLAG = make_flag("CERT_STORE_DELETE_FLAG", 0x00000010) +CERT_STORE_UNSAFE_PHYSICAL_FLAG = make_flag("CERT_STORE_UNSAFE_PHYSICAL_FLAG", 0x00000020) +CERT_STORE_SHARE_STORE_FLAG = make_flag("CERT_STORE_SHARE_STORE_FLAG", 0x00000040) +CERT_STORE_SHARE_CONTEXT_FLAG = make_flag("CERT_STORE_SHARE_CONTEXT_FLAG", 0x00000080) +CERT_STORE_MANIFOLD_FLAG = make_flag("CERT_STORE_MANIFOLD_FLAG", 0x00000100) +CERT_STORE_ENUM_ARCHIVED_FLAG = make_flag("CERT_STORE_ENUM_ARCHIVED_FLAG", 0x00000200) +CERT_STORE_UPDATE_KEYID_FLAG = make_flag("CERT_STORE_UPDATE_KEYID_FLAG", 0x00000400) +CERT_STORE_BACKUP_RESTORE_FLAG = make_flag("CERT_STORE_BACKUP_RESTORE_FLAG", 0x00000800) +CERT_STORE_READONLY_FLAG = make_flag("CERT_STORE_READONLY_FLAG", 0x00008000) +CERT_STORE_OPEN_EXISTING_FLAG = make_flag("CERT_STORE_OPEN_EXISTING_FLAG", 0x00004000) +CERT_STORE_CREATE_NEW_FLAG = make_flag("CERT_STORE_CREATE_NEW_FLAG", 0x00002000) +CERT_STORE_MAXIMUM_ALLOWED_FLAG = make_flag("CERT_STORE_MAXIMUM_ALLOWED_FLAG", 0x00001000) +CRYPT_USER_KEYSET = make_flag("CRYPT_USER_KEYSET", 0x00001000) +PKCS12_PREFER_CNG_KSP = make_flag("PKCS12_PREFER_CNG_KSP", 0x00000100) +PKCS12_ALWAYS_CNG_KSP = make_flag("PKCS12_ALWAYS_CNG_KSP", 0x00000200) +PKCS12_ALLOW_OVERWRITE_KEY = make_flag("PKCS12_ALLOW_OVERWRITE_KEY", 0x00004000) +PKCS12_NO_PERSIST_KEY = make_flag("PKCS12_NO_PERSIST_KEY", 0x00008000) +CRYPT_VERIFYCONTEXT = make_flag("CRYPT_VERIFYCONTEXT", 0xF0000000) +CRYPT_NEWKEYSET = make_flag("CRYPT_NEWKEYSET", 0x00000008) +CRYPT_DELETEKEYSET = make_flag("CRYPT_DELETEKEYSET", 0x00000010) +CRYPT_MACHINE_KEYSET = make_flag("CRYPT_MACHINE_KEYSET", 0x00000020) +CRYPT_SILENT = make_flag("CRYPT_SILENT", 0x00000040) +CRYPT_DEFAULT_CONTAINER_OPTIONAL = make_flag("CRYPT_DEFAULT_CONTAINER_OPTIONAL", 0x00000080) +CRYPT_EXPORTABLE = make_flag("CRYPT_EXPORTABLE", 0x00000001) +CRYPT_USER_PROTECTED = make_flag("CRYPT_USER_PROTECTED", 0x00000002) +CRYPT_CREATE_SALT = make_flag("CRYPT_CREATE_SALT", 0x00000004) +CRYPT_UPDATE_KEY = make_flag("CRYPT_UPDATE_KEY", 0x00000008) +CRYPT_NO_SALT = make_flag("CRYPT_NO_SALT", 0x00000010) +CRYPT_PREGEN = make_flag("CRYPT_PREGEN", 0x00000040) +CRYPT_RECIPIENT = make_flag("CRYPT_RECIPIENT", 0x00000010) +CRYPT_INITIATOR = make_flag("CRYPT_INITIATOR", 0x00000040) +CRYPT_ONLINE = make_flag("CRYPT_ONLINE", 0x00000080) +CRYPT_SF = make_flag("CRYPT_SF", 0x00000100) +CRYPT_CREATE_IV = make_flag("CRYPT_CREATE_IV", 0x00000200) +CRYPT_KEK = make_flag("CRYPT_KEK", 0x00000400) +CRYPT_DATA_KEY = make_flag("CRYPT_DATA_KEY", 0x00000800) +CRYPT_VOLATILE = make_flag("CRYPT_VOLATILE", 0x00001000) +CRYPT_SGCKEY = make_flag("CRYPT_SGCKEY", 0x00002000) +CRYPT_ARCHIVABLE = make_flag("CRYPT_ARCHIVABLE", 0x00004000) +CRYPT_FORCE_KEY_PROTECTION_HIGH = make_flag("CRYPT_FORCE_KEY_PROTECTION_HIGH", 0x00008000) +CRYPT_ENCODE_DECODE_NONE = make_flag("CRYPT_ENCODE_DECODE_NONE", 0) +X509_CERT = make_flag("X509_CERT", ( 1 )) +X509_CERT_TO_BE_SIGNED = make_flag("X509_CERT_TO_BE_SIGNED", ( 2 )) +X509_CERT_CRL_TO_BE_SIGNED = make_flag("X509_CERT_CRL_TO_BE_SIGNED", ( 3 )) +X509_CERT_REQUEST_TO_BE_SIGNED = make_flag("X509_CERT_REQUEST_TO_BE_SIGNED", ( 4 )) +X509_EXTENSIONS = make_flag("X509_EXTENSIONS", ( 5 )) +X509_NAME_VALUE = make_flag("X509_NAME_VALUE", ( 6 )) +X509_NAME = make_flag("X509_NAME", ( 7 )) +X509_PUBLIC_KEY_INFO = make_flag("X509_PUBLIC_KEY_INFO", ( 8 )) +X509_AUTHORITY_KEY_ID = make_flag("X509_AUTHORITY_KEY_ID", ( 9 )) +X509_KEY_ATTRIBUTES = make_flag("X509_KEY_ATTRIBUTES", ( 10 )) +X509_KEY_USAGE_RESTRICTION = make_flag("X509_KEY_USAGE_RESTRICTION", ( 11 )) +X509_ALTERNATE_NAME = make_flag("X509_ALTERNATE_NAME", ( 12 )) +X509_BASIC_CONSTRAINTS = make_flag("X509_BASIC_CONSTRAINTS", ( 13 )) +X509_KEY_USAGE = make_flag("X509_KEY_USAGE", ( 14 )) +X509_BASIC_CONSTRAINTS2 = make_flag("X509_BASIC_CONSTRAINTS2", ( 15 )) +X509_CERT_POLICIES = make_flag("X509_CERT_POLICIES", ( 16 )) +PKCS_UTC_TIME = make_flag("PKCS_UTC_TIME", ( 17 )) +PKCS_TIME_REQUEST = make_flag("PKCS_TIME_REQUEST", ( 18 )) +RSA_CSP_PUBLICKEYBLOB = make_flag("RSA_CSP_PUBLICKEYBLOB", ( 19 )) +X509_UNICODE_NAME = make_flag("X509_UNICODE_NAME", ( 20 )) +X509_KEYGEN_REQUEST_TO_BE_SIGNED = make_flag("X509_KEYGEN_REQUEST_TO_BE_SIGNED", ( 21 )) +PKCS_ATTRIBUTE = make_flag("PKCS_ATTRIBUTE", ( 22 )) +PKCS_CONTENT_INFO_SEQUENCE_OF_ANY = make_flag("PKCS_CONTENT_INFO_SEQUENCE_OF_ANY", ( 23 )) +X509_UNICODE_NAME_VALUE = make_flag("X509_UNICODE_NAME_VALUE", ( 24 )) +X509_ANY_STRING = make_flag("X509_ANY_STRING", X509_NAME_VALUE) +X509_UNICODE_ANY_STRING = make_flag("X509_UNICODE_ANY_STRING", X509_UNICODE_NAME_VALUE) +X509_OCTET_STRING = make_flag("X509_OCTET_STRING", ( 25 )) +X509_BITS = make_flag("X509_BITS", ( 26 )) +X509_INTEGER = make_flag("X509_INTEGER", ( 27 )) +X509_MULTI_BYTE_INTEGER = make_flag("X509_MULTI_BYTE_INTEGER", ( 28 )) +X509_ENUMERATED = make_flag("X509_ENUMERATED", ( 29 )) +X509_CHOICE_OF_TIME = make_flag("X509_CHOICE_OF_TIME", ( 30 )) +CERT_SIMPLE_NAME_STR = make_flag("CERT_SIMPLE_NAME_STR", 1) +CERT_OID_NAME_STR = make_flag("CERT_OID_NAME_STR", 2) +CERT_X500_NAME_STR = make_flag("CERT_X500_NAME_STR", 3) +CERT_XML_NAME_STR = make_flag("CERT_XML_NAME_STR", 4) +AT_KEYEXCHANGE = make_flag("AT_KEYEXCHANGE", 1) +AT_SIGNATURE = make_flag("AT_SIGNATURE", 2) +MS_DEF_PROV_A = make_flag("MS_DEF_PROV_A", "Microsoft Base Cryptographic Provider v1.0") +MS_DEF_PROV_W = make_flag("MS_DEF_PROV_W", u"Microsoft Base Cryptographic Provider v1.0") +MS_DEF_PROV = make_flag("MS_DEF_PROV", MS_DEF_PROV_A) +MS_ENHANCED_PROV_A = make_flag("MS_ENHANCED_PROV_A", "Microsoft Enhanced Cryptographic Provider v1.0") +MS_ENHANCED_PROV_W = make_flag("MS_ENHANCED_PROV_W", u"Microsoft Enhanced Cryptographic Provider v1.0") +MS_ENHANCED_PROV = make_flag("MS_ENHANCED_PROV", MS_ENHANCED_PROV_A) +MS_STRONG_PROV_A = make_flag("MS_STRONG_PROV_A", "Microsoft Strong Cryptographic Provider") +MS_STRONG_PROV_W = make_flag("MS_STRONG_PROV_W", u"Microsoft Strong Cryptographic Provider") +MS_STRONG_PROV = make_flag("MS_STRONG_PROV", MS_STRONG_PROV_A) +MS_DEF_RSA_SIG_PROV_A = make_flag("MS_DEF_RSA_SIG_PROV_A", "Microsoft RSA Signature Cryptographic Provider") +MS_DEF_RSA_SIG_PROV_W = make_flag("MS_DEF_RSA_SIG_PROV_W", u"Microsoft RSA Signature Cryptographic Provider") +MS_DEF_RSA_SIG_PROV = make_flag("MS_DEF_RSA_SIG_PROV", MS_DEF_RSA_SIG_PROV_A) +MS_ENH_RSA_AES_PROV_A = make_flag("MS_ENH_RSA_AES_PROV_A", "Microsoft Enhanced RSA and AES Cryptographic Provider") +MS_ENH_RSA_AES_PROV_W = make_flag("MS_ENH_RSA_AES_PROV_W", u"Microsoft Enhanced RSA and AES Cryptographic Provider") +MS_ENH_RSA_AES_PROV_XP_A = make_flag("MS_ENH_RSA_AES_PROV_XP_A", "Microsoft Enhanced RSA and AES Cryptographic Provider ( Prototype ) ") +MS_ENH_RSA_AES_PROV_XP_W = make_flag("MS_ENH_RSA_AES_PROV_XP_W", u"Microsoft Enhanced RSA and AES Cryptographic Provider ( Prototype ) ") +CERT_STORE_ADD_NEW = make_flag("CERT_STORE_ADD_NEW", 1) +CERT_STORE_ADD_USE_EXISTING = make_flag("CERT_STORE_ADD_USE_EXISTING", 2) +CERT_STORE_ADD_REPLACE_EXISTING = make_flag("CERT_STORE_ADD_REPLACE_EXISTING", 3) +CERT_STORE_ADD_ALWAYS = make_flag("CERT_STORE_ADD_ALWAYS", 4) +CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = make_flag("CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES", 5) +CERT_STORE_ADD_NEWER = make_flag("CERT_STORE_ADD_NEWER", 6) +CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = make_flag("CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES", 7) +PROV_RSA_FULL = make_flag("PROV_RSA_FULL", 1) +PROV_RSA_SIG = make_flag("PROV_RSA_SIG", 2) +PROV_DSS = make_flag("PROV_DSS", 3) +PROV_FORTEZZA = make_flag("PROV_FORTEZZA", 4) +PROV_MS_EXCHANGE = make_flag("PROV_MS_EXCHANGE", 5) +PROV_SSL = make_flag("PROV_SSL", 6) +PROV_RSA_SCHANNEL = make_flag("PROV_RSA_SCHANNEL", 12) +PROV_DSS_DH = make_flag("PROV_DSS_DH", 13) +PROV_EC_ECDSA_SIG = make_flag("PROV_EC_ECDSA_SIG", 14) +PROV_EC_ECNRA_SIG = make_flag("PROV_EC_ECNRA_SIG", 15) +PROV_EC_ECDSA_FULL = make_flag("PROV_EC_ECDSA_FULL", 16) +PROV_EC_ECNRA_FULL = make_flag("PROV_EC_ECNRA_FULL", 17) +PROV_DH_SCHANNEL = make_flag("PROV_DH_SCHANNEL", 18) +PROV_SPYRUS_LYNKS = make_flag("PROV_SPYRUS_LYNKS", 20) +PROV_RNG = make_flag("PROV_RNG", 21) +PROV_INTEL_SEC = make_flag("PROV_INTEL_SEC", 22) +PROV_REPLACE_OWF = make_flag("PROV_REPLACE_OWF", 23) +PROV_RSA_AES = make_flag("PROV_RSA_AES", 24) +REPORT_NO_PRIVATE_KEY = make_flag("REPORT_NO_PRIVATE_KEY", 0x0001) +REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY = make_flag("REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY", 0x0002) +EXPORT_PRIVATE_KEYS = make_flag("EXPORT_PRIVATE_KEYS", 0x0004) +PKCS12_INCLUDE_EXTENDED_PROPERTIES = make_flag("PKCS12_INCLUDE_EXTENDED_PROPERTIES", 0x0010) +PKCS12_EXPORT_RESERVED_MASK = make_flag("PKCS12_EXPORT_RESERVED_MASK", 0xffff0000) +CERT_SYSTEM_STORE_UNPROTECTED_FLAG = make_flag("CERT_SYSTEM_STORE_UNPROTECTED_FLAG", 0x40000000) +CERT_SYSTEM_STORE_LOCATION_MASK = make_flag("CERT_SYSTEM_STORE_LOCATION_MASK", 0x00FF0000) +CERT_SYSTEM_STORE_LOCATION_SHIFT = make_flag("CERT_SYSTEM_STORE_LOCATION_SHIFT", 16) +CERT_SYSTEM_STORE_CURRENT_USER_ID = make_flag("CERT_SYSTEM_STORE_CURRENT_USER_ID", 1) +CERT_SYSTEM_STORE_LOCAL_MACHINE_ID = make_flag("CERT_SYSTEM_STORE_LOCAL_MACHINE_ID", 2) +CERT_SYSTEM_STORE_CURRENT_SERVICE_ID = make_flag("CERT_SYSTEM_STORE_CURRENT_SERVICE_ID", 4) +CERT_SYSTEM_STORE_SERVICES_ID = make_flag("CERT_SYSTEM_STORE_SERVICES_ID", 5) +CERT_SYSTEM_STORE_USERS_ID = make_flag("CERT_SYSTEM_STORE_USERS_ID", 6) +CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID = make_flag("CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID", 7) +CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID = make_flag("CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID", 8) +CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID = make_flag("CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID", 9) +CERT_SYSTEM_STORE_CURRENT_USER = make_flag("CERT_SYSTEM_STORE_CURRENT_USER", ( CERT_SYSTEM_STORE_CURRENT_USER_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_LOCAL_MACHINE = make_flag("CERT_SYSTEM_STORE_LOCAL_MACHINE", ( CERT_SYSTEM_STORE_LOCAL_MACHINE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_CURRENT_SERVICE = make_flag("CERT_SYSTEM_STORE_CURRENT_SERVICE", ( CERT_SYSTEM_STORE_CURRENT_SERVICE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_SERVICES = make_flag("CERT_SYSTEM_STORE_SERVICES", ( CERT_SYSTEM_STORE_SERVICES_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_USERS = make_flag("CERT_SYSTEM_STORE_USERS", ( CERT_SYSTEM_STORE_USERS_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = make_flag("CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY", ( CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = make_flag("CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY", ( CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = make_flag("CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE", ( CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CMSG_DATA = make_flag("CMSG_DATA", 1) +CMSG_SIGNED = make_flag("CMSG_SIGNED", 2) +CMSG_ENVELOPED = make_flag("CMSG_ENVELOPED", 3) +CMSG_SIGNED_AND_ENVELOPED = make_flag("CMSG_SIGNED_AND_ENVELOPED", 4) +CMSG_HASHED = make_flag("CMSG_HASHED", 5) +CMSG_ENCRYPTED = make_flag("CMSG_ENCRYPTED", 6) +CMSG_BARE_CONTENT_FLAG = make_flag("CMSG_BARE_CONTENT_FLAG", 0x00000001) +CMSG_LENGTH_ONLY_FLAG = make_flag("CMSG_LENGTH_ONLY_FLAG", 0x00000002) +CMSG_DETACHED_FLAG = make_flag("CMSG_DETACHED_FLAG", 0x00000004) +CMSG_AUTHENTICATED_ATTRIBUTES_FLAG = make_flag("CMSG_AUTHENTICATED_ATTRIBUTES_FLAG", 0x00000008) +CMSG_CONTENTS_OCTETS_FLAG = make_flag("CMSG_CONTENTS_OCTETS_FLAG", 0x00000010) +CMSG_MAX_LENGTH_FLAG = make_flag("CMSG_MAX_LENGTH_FLAG", 0x00000020) +CMSG_CMS_ENCAPSULATED_CONTENT_FLAG = make_flag("CMSG_CMS_ENCAPSULATED_CONTENT_FLAG", 0x00000040) +CMSG_CRYPT_RELEASE_CONTEXT_FLAG = make_flag("CMSG_CRYPT_RELEASE_CONTEXT_FLAG", 0x00008000) +CMSG_INDEFINITE_LENGTH = make_flag("CMSG_INDEFINITE_LENGTH", ( 0xFFFFFFFF )) +CMSG_CTRL_VERIFY_SIGNATURE = make_flag("CMSG_CTRL_VERIFY_SIGNATURE", 1) +CMSG_CTRL_DECRYPT = make_flag("CMSG_CTRL_DECRYPT", 2) +CMSG_CTRL_VERIFY_HASH = make_flag("CMSG_CTRL_VERIFY_HASH", 5) +CMSG_CTRL_ADD_SIGNER = make_flag("CMSG_CTRL_ADD_SIGNER", 6) +CMSG_CTRL_DEL_SIGNER = make_flag("CMSG_CTRL_DEL_SIGNER", 7) +CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR = make_flag("CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR", 8) +CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR = make_flag("CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR", 9) +CMSG_CTRL_ADD_CERT = make_flag("CMSG_CTRL_ADD_CERT", 10) +CMSG_CTRL_DEL_CERT = make_flag("CMSG_CTRL_DEL_CERT", 11) +CMSG_CTRL_ADD_CRL = make_flag("CMSG_CTRL_ADD_CRL", 12) +CMSG_CTRL_DEL_CRL = make_flag("CMSG_CTRL_DEL_CRL", 13) +CMSG_CTRL_ADD_ATTR_CERT = make_flag("CMSG_CTRL_ADD_ATTR_CERT", 14) +CMSG_CTRL_DEL_ATTR_CERT = make_flag("CMSG_CTRL_DEL_ATTR_CERT", 15) +CMSG_CTRL_KEY_TRANS_DECRYPT = make_flag("CMSG_CTRL_KEY_TRANS_DECRYPT", 16) +CMSG_CTRL_KEY_AGREE_DECRYPT = make_flag("CMSG_CTRL_KEY_AGREE_DECRYPT", 17) +CMSG_CTRL_MAIL_LIST_DECRYPT = make_flag("CMSG_CTRL_MAIL_LIST_DECRYPT", 18) +CMSG_CTRL_VERIFY_SIGNATURE_EX = make_flag("CMSG_CTRL_VERIFY_SIGNATURE_EX", 19) +CMSG_CTRL_ADD_CMS_SIGNER_INFO = make_flag("CMSG_CTRL_ADD_CMS_SIGNER_INFO", 20) +CMSG_CTRL_ENABLE_STRONG_SIGNATURE = make_flag("CMSG_CTRL_ENABLE_STRONG_SIGNATURE", 21) +WSADESCRIPTION_LEN = make_flag("WSADESCRIPTION_LEN", 256) +WSASYS_STATUS_LEN = make_flag("WSASYS_STATUS_LEN", 128) +WSAPROTOCOL_LEN = make_flag("WSAPROTOCOL_LEN", 255) +MAX_PROTOCOL_CHAIN = make_flag("MAX_PROTOCOL_CHAIN", 7) +BASE_PROTOCOL = make_flag("BASE_PROTOCOL", 1) +LAYERED_PROTOCOL = make_flag("LAYERED_PROTOCOL", 0) +INVALID_SOCKET32 = make_flag("INVALID_SOCKET32", ( 0xffffffff )) +INVALID_SOCKET64 = make_flag("INVALID_SOCKET64", ( 0xffffffffffffffff )) +SOCKET_ERROR = make_flag("SOCKET_ERROR", ( -1 )) +SOCK_STREAM = make_flag("SOCK_STREAM", 1) +SOCK_DGRAM = make_flag("SOCK_DGRAM", 2) +SOCK_RAW = make_flag("SOCK_RAW", 3) +SOCK_RDM = make_flag("SOCK_RDM", 4) +SOCK_SEQPACKET = make_flag("SOCK_SEQPACKET", 5) +IPPROTO_IP = make_flag("IPPROTO_IP", 0) +IPPROTO_ICMP = make_flag("IPPROTO_ICMP", 1) +IPPROTO_IGMP = make_flag("IPPROTO_IGMP", 2) +IPPROTO_GGP = make_flag("IPPROTO_GGP", 3) +IPPROTO_TCP = make_flag("IPPROTO_TCP", 6) +IPPROTO_PUP = make_flag("IPPROTO_PUP", 12) +IPPROTO_UDP = make_flag("IPPROTO_UDP", 17) +IPPROTO_IDP = make_flag("IPPROTO_IDP", 22) +IPPROTO_ND = make_flag("IPPROTO_ND", 77) +IPPROTO_RAW = make_flag("IPPROTO_RAW", 255) +IPPROTO_MAX = make_flag("IPPROTO_MAX", 256) +IPPORT_ECHO = make_flag("IPPORT_ECHO", 7) +IPPORT_DISCARD = make_flag("IPPORT_DISCARD", 9) +IPPORT_SYSTAT = make_flag("IPPORT_SYSTAT", 11) +IPPORT_DAYTIME = make_flag("IPPORT_DAYTIME", 13) +IPPORT_NETSTAT = make_flag("IPPORT_NETSTAT", 15) +IPPORT_FTP = make_flag("IPPORT_FTP", 21) +IPPORT_TELNET = make_flag("IPPORT_TELNET", 23) +IPPORT_SMTP = make_flag("IPPORT_SMTP", 25) +IPPORT_TIMESERVER = make_flag("IPPORT_TIMESERVER", 37) +IPPORT_NAMESERVER = make_flag("IPPORT_NAMESERVER", 42) +IPPORT_WHOIS = make_flag("IPPORT_WHOIS", 43) +IPPORT_MTP = make_flag("IPPORT_MTP", 57) +AF_UNSPEC = make_flag("AF_UNSPEC", 0) +AF_UNIX = make_flag("AF_UNIX", 1) +AF_INET = make_flag("AF_INET", 2) +AF_IMPLINK = make_flag("AF_IMPLINK", 3) +AF_PUP = make_flag("AF_PUP", 4) +AF_CHAOS = make_flag("AF_CHAOS", 5) +AF_IPX = make_flag("AF_IPX", 6) +AF_NS = make_flag("AF_NS", 6) +AF_ISO = make_flag("AF_ISO", 7) +AF_OSI = make_flag("AF_OSI", AF_ISO) +AF_ECMA = make_flag("AF_ECMA", 8) +AF_DATAKIT = make_flag("AF_DATAKIT", 9) +AF_CCITT = make_flag("AF_CCITT", 10) +AF_SNA = make_flag("AF_SNA", 11) +AF_DECnet = make_flag("AF_DECnet", 12) +AF_DLI = make_flag("AF_DLI", 13) +AF_LAT = make_flag("AF_LAT", 14) +AF_HYLINK = make_flag("AF_HYLINK", 15) +AF_APPLETALK = make_flag("AF_APPLETALK", 16) +AF_NETBIOS = make_flag("AF_NETBIOS", 17) +AF_VOICEVIEW = make_flag("AF_VOICEVIEW", 18) +AF_FIREFOX = make_flag("AF_FIREFOX", 19) +AF_UNKNOWN1 = make_flag("AF_UNKNOWN1", 20) +AF_BAN = make_flag("AF_BAN", 21) +AF_ATM = make_flag("AF_ATM", 22) +AF_INET6 = make_flag("AF_INET6", 23) +AF_CLUSTER = make_flag("AF_CLUSTER", 24) +AF_12844 = make_flag("AF_12844", 25) +AF_IRDA = make_flag("AF_IRDA", 26) +AF_NETDES = make_flag("AF_NETDES", 28) +AF_MAX = make_flag("AF_MAX", 22) diff --git a/pythonmemorymodule/windows/generated_def/winerror.py b/pythonmemorymodule/windows/generated_def/winerror.py new file mode 100644 index 0000000..e09b219 --- /dev/null +++ b/pythonmemorymodule/windows/generated_def/winerror.py @@ -0,0 +1,6892 @@ +from .flag import make_flag, FlagMapper + +FACILITY_NULL = make_flag("FACILITY_NULL", 0) +FACILITY_RPC = make_flag("FACILITY_RPC", 1) +FACILITY_DISPATCH = make_flag("FACILITY_DISPATCH", 2) +FACILITY_STORAGE = make_flag("FACILITY_STORAGE", 3) +FACILITY_ITF = make_flag("FACILITY_ITF", 4) +FACILITY_WIN32 = make_flag("FACILITY_WIN32", 7) +FACILITY_WINDOWS = make_flag("FACILITY_WINDOWS", 8) +FACILITY_SSPI = make_flag("FACILITY_SSPI", 9) +FACILITY_SECURITY = make_flag("FACILITY_SECURITY", 9) +FACILITY_CONTROL = make_flag("FACILITY_CONTROL", 10) +FACILITY_CERT = make_flag("FACILITY_CERT", 11) +FACILITY_INTERNET = make_flag("FACILITY_INTERNET", 12) +FACILITY_MEDIASERVER = make_flag("FACILITY_MEDIASERVER", 13) +FACILITY_MSMQ = make_flag("FACILITY_MSMQ", 14) +FACILITY_SETUPAPI = make_flag("FACILITY_SETUPAPI", 15) +FACILITY_SCARD = make_flag("FACILITY_SCARD", 16) +FACILITY_COMPLUS = make_flag("FACILITY_COMPLUS", 17) +FACILITY_AAF = make_flag("FACILITY_AAF", 18) +FACILITY_URT = make_flag("FACILITY_URT", 19) +FACILITY_ACS = make_flag("FACILITY_ACS", 20) +FACILITY_DPLAY = make_flag("FACILITY_DPLAY", 21) +FACILITY_UMI = make_flag("FACILITY_UMI", 22) +FACILITY_SXS = make_flag("FACILITY_SXS", 23) +FACILITY_WINDOWS_CE = make_flag("FACILITY_WINDOWS_CE", 24) +FACILITY_HTTP = make_flag("FACILITY_HTTP", 25) +FACILITY_USERMODE_COMMONLOG = make_flag("FACILITY_USERMODE_COMMONLOG", 26) +FACILITY_WER = make_flag("FACILITY_WER", 27) +FACILITY_USERMODE_FILTER_MANAGER = make_flag("FACILITY_USERMODE_FILTER_MANAGER", 31) +FACILITY_BACKGROUNDCOPY = make_flag("FACILITY_BACKGROUNDCOPY", 32) +FACILITY_CONFIGURATION = make_flag("FACILITY_CONFIGURATION", 33) +FACILITY_WIA = make_flag("FACILITY_WIA", 33) +FACILITY_STATE_MANAGEMENT = make_flag("FACILITY_STATE_MANAGEMENT", 34) +FACILITY_METADIRECTORY = make_flag("FACILITY_METADIRECTORY", 35) +FACILITY_WINDOWSUPDATE = make_flag("FACILITY_WINDOWSUPDATE", 36) +FACILITY_DIRECTORYSERVICE = make_flag("FACILITY_DIRECTORYSERVICE", 37) +FACILITY_GRAPHICS = make_flag("FACILITY_GRAPHICS", 38) +FACILITY_SHELL = make_flag("FACILITY_SHELL", 39) +FACILITY_NAP = make_flag("FACILITY_NAP", 39) +FACILITY_TPM_SERVICES = make_flag("FACILITY_TPM_SERVICES", 40) +FACILITY_TPM_SOFTWARE = make_flag("FACILITY_TPM_SOFTWARE", 41) +FACILITY_UI = make_flag("FACILITY_UI", 42) +FACILITY_XAML = make_flag("FACILITY_XAML", 43) +FACILITY_ACTION_QUEUE = make_flag("FACILITY_ACTION_QUEUE", 44) +FACILITY_PLA = make_flag("FACILITY_PLA", 48) +FACILITY_WINDOWS_SETUP = make_flag("FACILITY_WINDOWS_SETUP", 48) +FACILITY_FVE = make_flag("FACILITY_FVE", 49) +FACILITY_FWP = make_flag("FACILITY_FWP", 50) +FACILITY_WINRM = make_flag("FACILITY_WINRM", 51) +FACILITY_NDIS = make_flag("FACILITY_NDIS", 52) +FACILITY_USERMODE_HYPERVISOR = make_flag("FACILITY_USERMODE_HYPERVISOR", 53) +FACILITY_CMI = make_flag("FACILITY_CMI", 54) +FACILITY_USERMODE_VIRTUALIZATION = make_flag("FACILITY_USERMODE_VIRTUALIZATION", 55) +FACILITY_USERMODE_VOLMGR = make_flag("FACILITY_USERMODE_VOLMGR", 56) +FACILITY_BCD = make_flag("FACILITY_BCD", 57) +FACILITY_USERMODE_VHD = make_flag("FACILITY_USERMODE_VHD", 58) +FACILITY_USERMODE_HNS = make_flag("FACILITY_USERMODE_HNS", 59) +FACILITY_SDIAG = make_flag("FACILITY_SDIAG", 60) +FACILITY_WEBSERVICES = make_flag("FACILITY_WEBSERVICES", 61) +FACILITY_WINPE = make_flag("FACILITY_WINPE", 61) +FACILITY_WPN = make_flag("FACILITY_WPN", 62) +FACILITY_WINDOWS_STORE = make_flag("FACILITY_WINDOWS_STORE", 63) +FACILITY_INPUT = make_flag("FACILITY_INPUT", 64) +FACILITY_EAP = make_flag("FACILITY_EAP", 66) +FACILITY_WINDOWS_DEFENDER = make_flag("FACILITY_WINDOWS_DEFENDER", 80) +FACILITY_OPC = make_flag("FACILITY_OPC", 81) +FACILITY_XPS = make_flag("FACILITY_XPS", 82) +FACILITY_MBN = make_flag("FACILITY_MBN", 84) +FACILITY_POWERSHELL = make_flag("FACILITY_POWERSHELL", 84) +FACILITY_RAS = make_flag("FACILITY_RAS", 83) +FACILITY_P2P_INT = make_flag("FACILITY_P2P_INT", 98) +FACILITY_P2P = make_flag("FACILITY_P2P", 99) +FACILITY_DAF = make_flag("FACILITY_DAF", 100) +FACILITY_BLUETOOTH_ATT = make_flag("FACILITY_BLUETOOTH_ATT", 101) +FACILITY_AUDIO = make_flag("FACILITY_AUDIO", 102) +FACILITY_STATEREPOSITORY = make_flag("FACILITY_STATEREPOSITORY", 103) +FACILITY_VISUALCPP = make_flag("FACILITY_VISUALCPP", 109) +FACILITY_SCRIPT = make_flag("FACILITY_SCRIPT", 112) +FACILITY_PARSE = make_flag("FACILITY_PARSE", 113) +FACILITY_BLB = make_flag("FACILITY_BLB", 120) +FACILITY_BLB_CLI = make_flag("FACILITY_BLB_CLI", 121) +FACILITY_WSBAPP = make_flag("FACILITY_WSBAPP", 122) +FACILITY_BLBUI = make_flag("FACILITY_BLBUI", 128) +FACILITY_USN = make_flag("FACILITY_USN", 129) +FACILITY_USERMODE_VOLSNAP = make_flag("FACILITY_USERMODE_VOLSNAP", 130) +FACILITY_TIERING = make_flag("FACILITY_TIERING", 131) +FACILITY_WSB_ONLINE = make_flag("FACILITY_WSB_ONLINE", 133) +FACILITY_ONLINE_ID = make_flag("FACILITY_ONLINE_ID", 134) +FACILITY_DEVICE_UPDATE_AGENT = make_flag("FACILITY_DEVICE_UPDATE_AGENT", 135) +FACILITY_DRVSERVICING = make_flag("FACILITY_DRVSERVICING", 136) +FACILITY_DLS = make_flag("FACILITY_DLS", 153) +FACILITY_DELIVERY_OPTIMIZATION = make_flag("FACILITY_DELIVERY_OPTIMIZATION", 208) +FACILITY_USERMODE_SPACES = make_flag("FACILITY_USERMODE_SPACES", 231) +FACILITY_USER_MODE_SECURITY_CORE = make_flag("FACILITY_USER_MODE_SECURITY_CORE", 232) +FACILITY_USERMODE_LICENSING = make_flag("FACILITY_USERMODE_LICENSING", 234) +FACILITY_SOS = make_flag("FACILITY_SOS", 160) +FACILITY_DEBUGGERS = make_flag("FACILITY_DEBUGGERS", 176) +FACILITY_SPP = make_flag("FACILITY_SPP", 256) +FACILITY_RESTORE = make_flag("FACILITY_RESTORE", 256) +FACILITY_DMSERVER = make_flag("FACILITY_DMSERVER", 256) +FACILITY_DEPLOYMENT_SERVICES_SERVER = make_flag("FACILITY_DEPLOYMENT_SERVICES_SERVER", 257) +FACILITY_DEPLOYMENT_SERVICES_IMAGING = make_flag("FACILITY_DEPLOYMENT_SERVICES_IMAGING", 258) +FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT = make_flag("FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT", 259) +FACILITY_DEPLOYMENT_SERVICES_UTIL = make_flag("FACILITY_DEPLOYMENT_SERVICES_UTIL", 260) +FACILITY_DEPLOYMENT_SERVICES_BINLSVC = make_flag("FACILITY_DEPLOYMENT_SERVICES_BINLSVC", 261) +FACILITY_DEPLOYMENT_SERVICES_PXE = make_flag("FACILITY_DEPLOYMENT_SERVICES_PXE", 263) +FACILITY_DEPLOYMENT_SERVICES_TFTP = make_flag("FACILITY_DEPLOYMENT_SERVICES_TFTP", 264) +FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT = make_flag("FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT", 272) +FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING = make_flag("FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING", 278) +FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER = make_flag("FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER", 289) +FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT = make_flag("FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT", 290) +FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER = make_flag("FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER", 293) +FACILITY_LINGUISTIC_SERVICES = make_flag("FACILITY_LINGUISTIC_SERVICES", 305) +FACILITY_AUDIOSTREAMING = make_flag("FACILITY_AUDIOSTREAMING", 1094) +FACILITY_ACCELERATOR = make_flag("FACILITY_ACCELERATOR", 1536) +FACILITY_WMAAECMA = make_flag("FACILITY_WMAAECMA", 1996) +FACILITY_DIRECTMUSIC = make_flag("FACILITY_DIRECTMUSIC", 2168) +FACILITY_DIRECT3D10 = make_flag("FACILITY_DIRECT3D10", 2169) +FACILITY_DXGI = make_flag("FACILITY_DXGI", 2170) +FACILITY_DXGI_DDI = make_flag("FACILITY_DXGI_DDI", 2171) +FACILITY_DIRECT3D11 = make_flag("FACILITY_DIRECT3D11", 2172) +FACILITY_DIRECT3D11_DEBUG = make_flag("FACILITY_DIRECT3D11_DEBUG", 2173) +FACILITY_DIRECT3D12 = make_flag("FACILITY_DIRECT3D12", 2174) +FACILITY_DIRECT3D12_DEBUG = make_flag("FACILITY_DIRECT3D12_DEBUG", 2175) +FACILITY_LEAP = make_flag("FACILITY_LEAP", 2184) +FACILITY_AUDCLNT = make_flag("FACILITY_AUDCLNT", 2185) +FACILITY_WINCODEC_DWRITE_DWM = make_flag("FACILITY_WINCODEC_DWRITE_DWM", 2200) +FACILITY_WINML = make_flag("FACILITY_WINML", 2192) +FACILITY_DIRECT2D = make_flag("FACILITY_DIRECT2D", 2201) +FACILITY_DEFRAG = make_flag("FACILITY_DEFRAG", 2304) +FACILITY_USERMODE_SDBUS = make_flag("FACILITY_USERMODE_SDBUS", 2305) +FACILITY_JSCRIPT = make_flag("FACILITY_JSCRIPT", 2306) +FACILITY_PIDGENX = make_flag("FACILITY_PIDGENX", 2561) +FACILITY_EAS = make_flag("FACILITY_EAS", 85) +FACILITY_WEB = make_flag("FACILITY_WEB", 885) +FACILITY_WEB_SOCKET = make_flag("FACILITY_WEB_SOCKET", 886) +FACILITY_MOBILE = make_flag("FACILITY_MOBILE", 1793) +FACILITY_SQLITE = make_flag("FACILITY_SQLITE", 1967) +FACILITY_UTC = make_flag("FACILITY_UTC", 1989) +FACILITY_WEP = make_flag("FACILITY_WEP", 2049) +FACILITY_SYNCENGINE = make_flag("FACILITY_SYNCENGINE", 2050) +FACILITY_XBOX = make_flag("FACILITY_XBOX", 2339) +FACILITY_GAME = make_flag("FACILITY_GAME", 2340) +FACILITY_PIX = make_flag("FACILITY_PIX", 2748) +ERROR_SUCCESS = make_flag("ERROR_SUCCESS", 0) +NO_ERROR = make_flag("NO_ERROR", 0) +SEC_E_OK = make_flag("SEC_E_OK", ( 0x00000000 )) +ERROR_INVALID_FUNCTION = make_flag("ERROR_INVALID_FUNCTION", 1) +ERROR_FILE_NOT_FOUND = make_flag("ERROR_FILE_NOT_FOUND", 2) +ERROR_PATH_NOT_FOUND = make_flag("ERROR_PATH_NOT_FOUND", 3) +ERROR_TOO_MANY_OPEN_FILES = make_flag("ERROR_TOO_MANY_OPEN_FILES", 4) +ERROR_ACCESS_DENIED = make_flag("ERROR_ACCESS_DENIED", 5) +ERROR_INVALID_HANDLE = make_flag("ERROR_INVALID_HANDLE", 6) +ERROR_ARENA_TRASHED = make_flag("ERROR_ARENA_TRASHED", 7) +ERROR_NOT_ENOUGH_MEMORY = make_flag("ERROR_NOT_ENOUGH_MEMORY", 8) +ERROR_INVALID_BLOCK = make_flag("ERROR_INVALID_BLOCK", 9) +ERROR_BAD_ENVIRONMENT = make_flag("ERROR_BAD_ENVIRONMENT", 10) +ERROR_BAD_FORMAT = make_flag("ERROR_BAD_FORMAT", 11) +ERROR_INVALID_ACCESS = make_flag("ERROR_INVALID_ACCESS", 12) +ERROR_INVALID_DATA = make_flag("ERROR_INVALID_DATA", 13) +ERROR_OUTOFMEMORY = make_flag("ERROR_OUTOFMEMORY", 14) +ERROR_INVALID_DRIVE = make_flag("ERROR_INVALID_DRIVE", 15) +ERROR_CURRENT_DIRECTORY = make_flag("ERROR_CURRENT_DIRECTORY", 16) +ERROR_NOT_SAME_DEVICE = make_flag("ERROR_NOT_SAME_DEVICE", 17) +ERROR_NO_MORE_FILES = make_flag("ERROR_NO_MORE_FILES", 18) +ERROR_WRITE_PROTECT = make_flag("ERROR_WRITE_PROTECT", 19) +ERROR_BAD_UNIT = make_flag("ERROR_BAD_UNIT", 20) +ERROR_NOT_READY = make_flag("ERROR_NOT_READY", 21) +ERROR_BAD_COMMAND = make_flag("ERROR_BAD_COMMAND", 22) +ERROR_CRC = make_flag("ERROR_CRC", 23) +ERROR_BAD_LENGTH = make_flag("ERROR_BAD_LENGTH", 24) +ERROR_SEEK = make_flag("ERROR_SEEK", 25) +ERROR_NOT_DOS_DISK = make_flag("ERROR_NOT_DOS_DISK", 26) +ERROR_SECTOR_NOT_FOUND = make_flag("ERROR_SECTOR_NOT_FOUND", 27) +ERROR_OUT_OF_PAPER = make_flag("ERROR_OUT_OF_PAPER", 28) +ERROR_WRITE_FAULT = make_flag("ERROR_WRITE_FAULT", 29) +ERROR_READ_FAULT = make_flag("ERROR_READ_FAULT", 30) +ERROR_GEN_FAILURE = make_flag("ERROR_GEN_FAILURE", 31) +ERROR_SHARING_VIOLATION = make_flag("ERROR_SHARING_VIOLATION", 32) +ERROR_LOCK_VIOLATION = make_flag("ERROR_LOCK_VIOLATION", 33) +ERROR_WRONG_DISK = make_flag("ERROR_WRONG_DISK", 34) +ERROR_SHARING_BUFFER_EXCEEDED = make_flag("ERROR_SHARING_BUFFER_EXCEEDED", 36) +ERROR_HANDLE_EOF = make_flag("ERROR_HANDLE_EOF", 38) +ERROR_HANDLE_DISK_FULL = make_flag("ERROR_HANDLE_DISK_FULL", 39) +ERROR_NOT_SUPPORTED = make_flag("ERROR_NOT_SUPPORTED", 50) +ERROR_REM_NOT_LIST = make_flag("ERROR_REM_NOT_LIST", 51) +ERROR_DUP_NAME = make_flag("ERROR_DUP_NAME", 52) +ERROR_BAD_NETPATH = make_flag("ERROR_BAD_NETPATH", 53) +ERROR_NETWORK_BUSY = make_flag("ERROR_NETWORK_BUSY", 54) +ERROR_DEV_NOT_EXIST = make_flag("ERROR_DEV_NOT_EXIST", 55) +ERROR_TOO_MANY_CMDS = make_flag("ERROR_TOO_MANY_CMDS", 56) +ERROR_ADAP_HDW_ERR = make_flag("ERROR_ADAP_HDW_ERR", 57) +ERROR_BAD_NET_RESP = make_flag("ERROR_BAD_NET_RESP", 58) +ERROR_UNEXP_NET_ERR = make_flag("ERROR_UNEXP_NET_ERR", 59) +ERROR_BAD_REM_ADAP = make_flag("ERROR_BAD_REM_ADAP", 60) +ERROR_PRINTQ_FULL = make_flag("ERROR_PRINTQ_FULL", 61) +ERROR_NO_SPOOL_SPACE = make_flag("ERROR_NO_SPOOL_SPACE", 62) +ERROR_PRINT_CANCELLED = make_flag("ERROR_PRINT_CANCELLED", 63) +ERROR_NETNAME_DELETED = make_flag("ERROR_NETNAME_DELETED", 64) +ERROR_NETWORK_ACCESS_DENIED = make_flag("ERROR_NETWORK_ACCESS_DENIED", 65) +ERROR_BAD_DEV_TYPE = make_flag("ERROR_BAD_DEV_TYPE", 66) +ERROR_BAD_NET_NAME = make_flag("ERROR_BAD_NET_NAME", 67) +ERROR_TOO_MANY_NAMES = make_flag("ERROR_TOO_MANY_NAMES", 68) +ERROR_TOO_MANY_SESS = make_flag("ERROR_TOO_MANY_SESS", 69) +ERROR_SHARING_PAUSED = make_flag("ERROR_SHARING_PAUSED", 70) +ERROR_REQ_NOT_ACCEP = make_flag("ERROR_REQ_NOT_ACCEP", 71) +ERROR_REDIR_PAUSED = make_flag("ERROR_REDIR_PAUSED", 72) +ERROR_FILE_EXISTS = make_flag("ERROR_FILE_EXISTS", 80) +ERROR_CANNOT_MAKE = make_flag("ERROR_CANNOT_MAKE", 82) +ERROR_FAIL_I24 = make_flag("ERROR_FAIL_I24", 83) +ERROR_OUT_OF_STRUCTURES = make_flag("ERROR_OUT_OF_STRUCTURES", 84) +ERROR_ALREADY_ASSIGNED = make_flag("ERROR_ALREADY_ASSIGNED", 85) +ERROR_INVALID_PASSWORD = make_flag("ERROR_INVALID_PASSWORD", 86) +ERROR_INVALID_PARAMETER = make_flag("ERROR_INVALID_PARAMETER", 87) +ERROR_NET_WRITE_FAULT = make_flag("ERROR_NET_WRITE_FAULT", 88) +ERROR_NO_PROC_SLOTS = make_flag("ERROR_NO_PROC_SLOTS", 89) +ERROR_TOO_MANY_SEMAPHORES = make_flag("ERROR_TOO_MANY_SEMAPHORES", 100) +ERROR_EXCL_SEM_ALREADY_OWNED = make_flag("ERROR_EXCL_SEM_ALREADY_OWNED", 101) +ERROR_SEM_IS_SET = make_flag("ERROR_SEM_IS_SET", 102) +ERROR_TOO_MANY_SEM_REQUESTS = make_flag("ERROR_TOO_MANY_SEM_REQUESTS", 103) +ERROR_INVALID_AT_INTERRUPT_TIME = make_flag("ERROR_INVALID_AT_INTERRUPT_TIME", 104) +ERROR_SEM_OWNER_DIED = make_flag("ERROR_SEM_OWNER_DIED", 105) +ERROR_SEM_USER_LIMIT = make_flag("ERROR_SEM_USER_LIMIT", 106) +ERROR_DISK_CHANGE = make_flag("ERROR_DISK_CHANGE", 107) +ERROR_DRIVE_LOCKED = make_flag("ERROR_DRIVE_LOCKED", 108) +ERROR_BROKEN_PIPE = make_flag("ERROR_BROKEN_PIPE", 109) +ERROR_OPEN_FAILED = make_flag("ERROR_OPEN_FAILED", 110) +ERROR_BUFFER_OVERFLOW = make_flag("ERROR_BUFFER_OVERFLOW", 111) +ERROR_DISK_FULL = make_flag("ERROR_DISK_FULL", 112) +ERROR_NO_MORE_SEARCH_HANDLES = make_flag("ERROR_NO_MORE_SEARCH_HANDLES", 113) +ERROR_INVALID_TARGET_HANDLE = make_flag("ERROR_INVALID_TARGET_HANDLE", 114) +ERROR_INVALID_CATEGORY = make_flag("ERROR_INVALID_CATEGORY", 117) +ERROR_INVALID_VERIFY_SWITCH = make_flag("ERROR_INVALID_VERIFY_SWITCH", 118) +ERROR_BAD_DRIVER_LEVEL = make_flag("ERROR_BAD_DRIVER_LEVEL", 119) +ERROR_CALL_NOT_IMPLEMENTED = make_flag("ERROR_CALL_NOT_IMPLEMENTED", 120) +ERROR_SEM_TIMEOUT = make_flag("ERROR_SEM_TIMEOUT", 121) +ERROR_INSUFFICIENT_BUFFER = make_flag("ERROR_INSUFFICIENT_BUFFER", 122) +ERROR_INVALID_NAME = make_flag("ERROR_INVALID_NAME", 123) +ERROR_INVALID_LEVEL = make_flag("ERROR_INVALID_LEVEL", 124) +ERROR_NO_VOLUME_LABEL = make_flag("ERROR_NO_VOLUME_LABEL", 125) +ERROR_MOD_NOT_FOUND = make_flag("ERROR_MOD_NOT_FOUND", 126) +ERROR_PROC_NOT_FOUND = make_flag("ERROR_PROC_NOT_FOUND", 127) +ERROR_WAIT_NO_CHILDREN = make_flag("ERROR_WAIT_NO_CHILDREN", 128) +ERROR_CHILD_NOT_COMPLETE = make_flag("ERROR_CHILD_NOT_COMPLETE", 129) +ERROR_DIRECT_ACCESS_HANDLE = make_flag("ERROR_DIRECT_ACCESS_HANDLE", 130) +ERROR_NEGATIVE_SEEK = make_flag("ERROR_NEGATIVE_SEEK", 131) +ERROR_SEEK_ON_DEVICE = make_flag("ERROR_SEEK_ON_DEVICE", 132) +ERROR_IS_JOIN_TARGET = make_flag("ERROR_IS_JOIN_TARGET", 133) +ERROR_IS_JOINED = make_flag("ERROR_IS_JOINED", 134) +ERROR_IS_SUBSTED = make_flag("ERROR_IS_SUBSTED", 135) +ERROR_NOT_JOINED = make_flag("ERROR_NOT_JOINED", 136) +ERROR_NOT_SUBSTED = make_flag("ERROR_NOT_SUBSTED", 137) +ERROR_JOIN_TO_JOIN = make_flag("ERROR_JOIN_TO_JOIN", 138) +ERROR_SUBST_TO_SUBST = make_flag("ERROR_SUBST_TO_SUBST", 139) +ERROR_JOIN_TO_SUBST = make_flag("ERROR_JOIN_TO_SUBST", 140) +ERROR_SUBST_TO_JOIN = make_flag("ERROR_SUBST_TO_JOIN", 141) +ERROR_BUSY_DRIVE = make_flag("ERROR_BUSY_DRIVE", 142) +ERROR_SAME_DRIVE = make_flag("ERROR_SAME_DRIVE", 143) +ERROR_DIR_NOT_ROOT = make_flag("ERROR_DIR_NOT_ROOT", 144) +ERROR_DIR_NOT_EMPTY = make_flag("ERROR_DIR_NOT_EMPTY", 145) +ERROR_IS_SUBST_PATH = make_flag("ERROR_IS_SUBST_PATH", 146) +ERROR_IS_JOIN_PATH = make_flag("ERROR_IS_JOIN_PATH", 147) +ERROR_PATH_BUSY = make_flag("ERROR_PATH_BUSY", 148) +ERROR_IS_SUBST_TARGET = make_flag("ERROR_IS_SUBST_TARGET", 149) +ERROR_SYSTEM_TRACE = make_flag("ERROR_SYSTEM_TRACE", 150) +ERROR_INVALID_EVENT_COUNT = make_flag("ERROR_INVALID_EVENT_COUNT", 151) +ERROR_TOO_MANY_MUXWAITERS = make_flag("ERROR_TOO_MANY_MUXWAITERS", 152) +ERROR_INVALID_LIST_FORMAT = make_flag("ERROR_INVALID_LIST_FORMAT", 153) +ERROR_LABEL_TOO_LONG = make_flag("ERROR_LABEL_TOO_LONG", 154) +ERROR_TOO_MANY_TCBS = make_flag("ERROR_TOO_MANY_TCBS", 155) +ERROR_SIGNAL_REFUSED = make_flag("ERROR_SIGNAL_REFUSED", 156) +ERROR_DISCARDED = make_flag("ERROR_DISCARDED", 157) +ERROR_NOT_LOCKED = make_flag("ERROR_NOT_LOCKED", 158) +ERROR_BAD_THREADID_ADDR = make_flag("ERROR_BAD_THREADID_ADDR", 159) +ERROR_BAD_ARGUMENTS = make_flag("ERROR_BAD_ARGUMENTS", 160) +ERROR_BAD_PATHNAME = make_flag("ERROR_BAD_PATHNAME", 161) +ERROR_SIGNAL_PENDING = make_flag("ERROR_SIGNAL_PENDING", 162) +ERROR_MAX_THRDS_REACHED = make_flag("ERROR_MAX_THRDS_REACHED", 164) +ERROR_LOCK_FAILED = make_flag("ERROR_LOCK_FAILED", 167) +ERROR_BUSY = make_flag("ERROR_BUSY", 170) +ERROR_DEVICE_SUPPORT_IN_PROGRESS = make_flag("ERROR_DEVICE_SUPPORT_IN_PROGRESS", 171) +ERROR_CANCEL_VIOLATION = make_flag("ERROR_CANCEL_VIOLATION", 173) +ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = make_flag("ERROR_ATOMIC_LOCKS_NOT_SUPPORTED", 174) +ERROR_INVALID_SEGMENT_NUMBER = make_flag("ERROR_INVALID_SEGMENT_NUMBER", 180) +ERROR_INVALID_ORDINAL = make_flag("ERROR_INVALID_ORDINAL", 182) +ERROR_ALREADY_EXISTS = make_flag("ERROR_ALREADY_EXISTS", 183) +ERROR_INVALID_FLAG_NUMBER = make_flag("ERROR_INVALID_FLAG_NUMBER", 186) +ERROR_SEM_NOT_FOUND = make_flag("ERROR_SEM_NOT_FOUND", 187) +ERROR_INVALID_STARTING_CODESEG = make_flag("ERROR_INVALID_STARTING_CODESEG", 188) +ERROR_INVALID_STACKSEG = make_flag("ERROR_INVALID_STACKSEG", 189) +ERROR_INVALID_MODULETYPE = make_flag("ERROR_INVALID_MODULETYPE", 190) +ERROR_INVALID_EXE_SIGNATURE = make_flag("ERROR_INVALID_EXE_SIGNATURE", 191) +ERROR_EXE_MARKED_INVALID = make_flag("ERROR_EXE_MARKED_INVALID", 192) +ERROR_BAD_EXE_FORMAT = make_flag("ERROR_BAD_EXE_FORMAT", 193) +ERROR_ITERATED_DATA_EXCEEDS_64k = make_flag("ERROR_ITERATED_DATA_EXCEEDS_64k", 194) +ERROR_INVALID_MINALLOCSIZE = make_flag("ERROR_INVALID_MINALLOCSIZE", 195) +ERROR_DYNLINK_FROM_INVALID_RING = make_flag("ERROR_DYNLINK_FROM_INVALID_RING", 196) +ERROR_IOPL_NOT_ENABLED = make_flag("ERROR_IOPL_NOT_ENABLED", 197) +ERROR_INVALID_SEGDPL = make_flag("ERROR_INVALID_SEGDPL", 198) +ERROR_AUTODATASEG_EXCEEDS_64k = make_flag("ERROR_AUTODATASEG_EXCEEDS_64k", 199) +ERROR_RING2SEG_MUST_BE_MOVABLE = make_flag("ERROR_RING2SEG_MUST_BE_MOVABLE", 200) +ERROR_RELOC_CHAIN_XEEDS_SEGLIM = make_flag("ERROR_RELOC_CHAIN_XEEDS_SEGLIM", 201) +ERROR_INFLOOP_IN_RELOC_CHAIN = make_flag("ERROR_INFLOOP_IN_RELOC_CHAIN", 202) +ERROR_ENVVAR_NOT_FOUND = make_flag("ERROR_ENVVAR_NOT_FOUND", 203) +ERROR_NO_SIGNAL_SENT = make_flag("ERROR_NO_SIGNAL_SENT", 205) +ERROR_FILENAME_EXCED_RANGE = make_flag("ERROR_FILENAME_EXCED_RANGE", 206) +ERROR_RING2_STACK_IN_USE = make_flag("ERROR_RING2_STACK_IN_USE", 207) +ERROR_META_EXPANSION_TOO_LONG = make_flag("ERROR_META_EXPANSION_TOO_LONG", 208) +ERROR_INVALID_SIGNAL_NUMBER = make_flag("ERROR_INVALID_SIGNAL_NUMBER", 209) +ERROR_THREAD_1_INACTIVE = make_flag("ERROR_THREAD_1_INACTIVE", 210) +ERROR_LOCKED = make_flag("ERROR_LOCKED", 212) +ERROR_TOO_MANY_MODULES = make_flag("ERROR_TOO_MANY_MODULES", 214) +ERROR_NESTING_NOT_ALLOWED = make_flag("ERROR_NESTING_NOT_ALLOWED", 215) +ERROR_EXE_MACHINE_TYPE_MISMATCH = make_flag("ERROR_EXE_MACHINE_TYPE_MISMATCH", 216) +ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY = make_flag("ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY", 217) +ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY = make_flag("ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY", 218) +ERROR_FILE_CHECKED_OUT = make_flag("ERROR_FILE_CHECKED_OUT", 220) +ERROR_CHECKOUT_REQUIRED = make_flag("ERROR_CHECKOUT_REQUIRED", 221) +ERROR_BAD_FILE_TYPE = make_flag("ERROR_BAD_FILE_TYPE", 222) +ERROR_FILE_TOO_LARGE = make_flag("ERROR_FILE_TOO_LARGE", 223) +ERROR_FORMS_AUTH_REQUIRED = make_flag("ERROR_FORMS_AUTH_REQUIRED", 224) +ERROR_VIRUS_INFECTED = make_flag("ERROR_VIRUS_INFECTED", 225) +ERROR_VIRUS_DELETED = make_flag("ERROR_VIRUS_DELETED", 226) +ERROR_PIPE_LOCAL = make_flag("ERROR_PIPE_LOCAL", 229) +ERROR_BAD_PIPE = make_flag("ERROR_BAD_PIPE", 230) +ERROR_PIPE_BUSY = make_flag("ERROR_PIPE_BUSY", 231) +ERROR_NO_DATA = make_flag("ERROR_NO_DATA", 232) +ERROR_PIPE_NOT_CONNECTED = make_flag("ERROR_PIPE_NOT_CONNECTED", 233) +ERROR_MORE_DATA = make_flag("ERROR_MORE_DATA", 234) +ERROR_NO_WORK_DONE = make_flag("ERROR_NO_WORK_DONE", 235) +ERROR_VC_DISCONNECTED = make_flag("ERROR_VC_DISCONNECTED", 240) +ERROR_INVALID_EA_NAME = make_flag("ERROR_INVALID_EA_NAME", 254) +ERROR_EA_LIST_INCONSISTENT = make_flag("ERROR_EA_LIST_INCONSISTENT", 255) +WAIT_TIMEOUT = make_flag("WAIT_TIMEOUT", 258) +ERROR_NO_MORE_ITEMS = make_flag("ERROR_NO_MORE_ITEMS", 259) +ERROR_CANNOT_COPY = make_flag("ERROR_CANNOT_COPY", 266) +ERROR_DIRECTORY = make_flag("ERROR_DIRECTORY", 267) +ERROR_EAS_DIDNT_FIT = make_flag("ERROR_EAS_DIDNT_FIT", 275) +ERROR_EA_FILE_CORRUPT = make_flag("ERROR_EA_FILE_CORRUPT", 276) +ERROR_EA_TABLE_FULL = make_flag("ERROR_EA_TABLE_FULL", 277) +ERROR_INVALID_EA_HANDLE = make_flag("ERROR_INVALID_EA_HANDLE", 278) +ERROR_EAS_NOT_SUPPORTED = make_flag("ERROR_EAS_NOT_SUPPORTED", 282) +ERROR_NOT_OWNER = make_flag("ERROR_NOT_OWNER", 288) +ERROR_TOO_MANY_POSTS = make_flag("ERROR_TOO_MANY_POSTS", 298) +ERROR_PARTIAL_COPY = make_flag("ERROR_PARTIAL_COPY", 299) +ERROR_OPLOCK_NOT_GRANTED = make_flag("ERROR_OPLOCK_NOT_GRANTED", 300) +ERROR_INVALID_OPLOCK_PROTOCOL = make_flag("ERROR_INVALID_OPLOCK_PROTOCOL", 301) +ERROR_DISK_TOO_FRAGMENTED = make_flag("ERROR_DISK_TOO_FRAGMENTED", 302) +ERROR_DELETE_PENDING = make_flag("ERROR_DELETE_PENDING", 303) +ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING = make_flag("ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING", 304) +ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME = make_flag("ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME", 305) +ERROR_SECURITY_STREAM_IS_INCONSISTENT = make_flag("ERROR_SECURITY_STREAM_IS_INCONSISTENT", 306) +ERROR_INVALID_LOCK_RANGE = make_flag("ERROR_INVALID_LOCK_RANGE", 307) +ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT = make_flag("ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT", 308) +ERROR_NOTIFICATION_GUID_ALREADY_DEFINED = make_flag("ERROR_NOTIFICATION_GUID_ALREADY_DEFINED", 309) +ERROR_INVALID_EXCEPTION_HANDLER = make_flag("ERROR_INVALID_EXCEPTION_HANDLER", 310) +ERROR_DUPLICATE_PRIVILEGES = make_flag("ERROR_DUPLICATE_PRIVILEGES", 311) +ERROR_NO_RANGES_PROCESSED = make_flag("ERROR_NO_RANGES_PROCESSED", 312) +ERROR_NOT_ALLOWED_ON_SYSTEM_FILE = make_flag("ERROR_NOT_ALLOWED_ON_SYSTEM_FILE", 313) +ERROR_DISK_RESOURCES_EXHAUSTED = make_flag("ERROR_DISK_RESOURCES_EXHAUSTED", 314) +ERROR_INVALID_TOKEN = make_flag("ERROR_INVALID_TOKEN", 315) +ERROR_DEVICE_FEATURE_NOT_SUPPORTED = make_flag("ERROR_DEVICE_FEATURE_NOT_SUPPORTED", 316) +ERROR_MR_MID_NOT_FOUND = make_flag("ERROR_MR_MID_NOT_FOUND", 317) +ERROR_SCOPE_NOT_FOUND = make_flag("ERROR_SCOPE_NOT_FOUND", 318) +ERROR_UNDEFINED_SCOPE = make_flag("ERROR_UNDEFINED_SCOPE", 319) +ERROR_INVALID_CAP = make_flag("ERROR_INVALID_CAP", 320) +ERROR_DEVICE_UNREACHABLE = make_flag("ERROR_DEVICE_UNREACHABLE", 321) +ERROR_DEVICE_NO_RESOURCES = make_flag("ERROR_DEVICE_NO_RESOURCES", 322) +ERROR_DATA_CHECKSUM_ERROR = make_flag("ERROR_DATA_CHECKSUM_ERROR", 323) +ERROR_INTERMIXED_KERNEL_EA_OPERATION = make_flag("ERROR_INTERMIXED_KERNEL_EA_OPERATION", 324) +ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED = make_flag("ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED", 326) +ERROR_OFFSET_ALIGNMENT_VIOLATION = make_flag("ERROR_OFFSET_ALIGNMENT_VIOLATION", 327) +ERROR_INVALID_FIELD_IN_PARAMETER_LIST = make_flag("ERROR_INVALID_FIELD_IN_PARAMETER_LIST", 328) +ERROR_OPERATION_IN_PROGRESS = make_flag("ERROR_OPERATION_IN_PROGRESS", 329) +ERROR_BAD_DEVICE_PATH = make_flag("ERROR_BAD_DEVICE_PATH", 330) +ERROR_TOO_MANY_DESCRIPTORS = make_flag("ERROR_TOO_MANY_DESCRIPTORS", 331) +ERROR_SCRUB_DATA_DISABLED = make_flag("ERROR_SCRUB_DATA_DISABLED", 332) +ERROR_NOT_REDUNDANT_STORAGE = make_flag("ERROR_NOT_REDUNDANT_STORAGE", 333) +ERROR_RESIDENT_FILE_NOT_SUPPORTED = make_flag("ERROR_RESIDENT_FILE_NOT_SUPPORTED", 334) +ERROR_COMPRESSED_FILE_NOT_SUPPORTED = make_flag("ERROR_COMPRESSED_FILE_NOT_SUPPORTED", 335) +ERROR_DIRECTORY_NOT_SUPPORTED = make_flag("ERROR_DIRECTORY_NOT_SUPPORTED", 336) +ERROR_NOT_READ_FROM_COPY = make_flag("ERROR_NOT_READ_FROM_COPY", 337) +ERROR_FT_WRITE_FAILURE = make_flag("ERROR_FT_WRITE_FAILURE", 338) +ERROR_FT_DI_SCAN_REQUIRED = make_flag("ERROR_FT_DI_SCAN_REQUIRED", 339) +ERROR_INVALID_KERNEL_INFO_VERSION = make_flag("ERROR_INVALID_KERNEL_INFO_VERSION", 340) +ERROR_INVALID_PEP_INFO_VERSION = make_flag("ERROR_INVALID_PEP_INFO_VERSION", 341) +ERROR_OBJECT_NOT_EXTERNALLY_BACKED = make_flag("ERROR_OBJECT_NOT_EXTERNALLY_BACKED", 342) +ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN = make_flag("ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN", 343) +ERROR_COMPRESSION_NOT_BENEFICIAL = make_flag("ERROR_COMPRESSION_NOT_BENEFICIAL", 344) +ERROR_STORAGE_TOPOLOGY_ID_MISMATCH = make_flag("ERROR_STORAGE_TOPOLOGY_ID_MISMATCH", 345) +ERROR_BLOCKED_BY_PARENTAL_CONTROLS = make_flag("ERROR_BLOCKED_BY_PARENTAL_CONTROLS", 346) +ERROR_BLOCK_TOO_MANY_REFERENCES = make_flag("ERROR_BLOCK_TOO_MANY_REFERENCES", 347) +ERROR_MARKED_TO_DISALLOW_WRITES = make_flag("ERROR_MARKED_TO_DISALLOW_WRITES", 348) +ERROR_ENCLAVE_FAILURE = make_flag("ERROR_ENCLAVE_FAILURE", 349) +ERROR_FAIL_NOACTION_REBOOT = make_flag("ERROR_FAIL_NOACTION_REBOOT", 350) +ERROR_FAIL_SHUTDOWN = make_flag("ERROR_FAIL_SHUTDOWN", 351) +ERROR_FAIL_RESTART = make_flag("ERROR_FAIL_RESTART", 352) +ERROR_MAX_SESSIONS_REACHED = make_flag("ERROR_MAX_SESSIONS_REACHED", 353) +ERROR_NETWORK_ACCESS_DENIED_EDP = make_flag("ERROR_NETWORK_ACCESS_DENIED_EDP", 354) +ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL = make_flag("ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL", 355) +ERROR_EDP_POLICY_DENIES_OPERATION = make_flag("ERROR_EDP_POLICY_DENIES_OPERATION", 356) +ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED = make_flag("ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED", 357) +ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT = make_flag("ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT", 358) +ERROR_DEVICE_IN_MAINTENANCE = make_flag("ERROR_DEVICE_IN_MAINTENANCE", 359) +ERROR_NOT_SUPPORTED_ON_DAX = make_flag("ERROR_NOT_SUPPORTED_ON_DAX", 360) +ERROR_DAX_MAPPING_EXISTS = make_flag("ERROR_DAX_MAPPING_EXISTS", 361) +ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING = make_flag("ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING", 362) +ERROR_CLOUD_FILE_METADATA_CORRUPT = make_flag("ERROR_CLOUD_FILE_METADATA_CORRUPT", 363) +ERROR_CLOUD_FILE_METADATA_TOO_LARGE = make_flag("ERROR_CLOUD_FILE_METADATA_TOO_LARGE", 364) +ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE = make_flag("ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE", 365) +ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH = make_flag("ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH", 366) +ERROR_CHILD_PROCESS_BLOCKED = make_flag("ERROR_CHILD_PROCESS_BLOCKED", 367) +ERROR_STORAGE_LOST_DATA_PERSISTENCE = make_flag("ERROR_STORAGE_LOST_DATA_PERSISTENCE", 368) +ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE = make_flag("ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE", 369) +ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT = make_flag("ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT", 370) +ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY = make_flag("ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY", 371) +ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN = make_flag("ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN", 372) +ERROR_GDI_HANDLE_LEAK = make_flag("ERROR_GDI_HANDLE_LEAK", 373) +ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS = make_flag("ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS", 374) +ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED = make_flag("ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED", 375) +ERROR_NOT_A_CLOUD_FILE = make_flag("ERROR_NOT_A_CLOUD_FILE", 376) +ERROR_CLOUD_FILE_NOT_IN_SYNC = make_flag("ERROR_CLOUD_FILE_NOT_IN_SYNC", 377) +ERROR_CLOUD_FILE_ALREADY_CONNECTED = make_flag("ERROR_CLOUD_FILE_ALREADY_CONNECTED", 378) +ERROR_CLOUD_FILE_NOT_SUPPORTED = make_flag("ERROR_CLOUD_FILE_NOT_SUPPORTED", 379) +ERROR_CLOUD_FILE_INVALID_REQUEST = make_flag("ERROR_CLOUD_FILE_INVALID_REQUEST", 380) +ERROR_CLOUD_FILE_READ_ONLY_VOLUME = make_flag("ERROR_CLOUD_FILE_READ_ONLY_VOLUME", 381) +ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY = make_flag("ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY", 382) +ERROR_CLOUD_FILE_VALIDATION_FAILED = make_flag("ERROR_CLOUD_FILE_VALIDATION_FAILED", 383) +ERROR_SMB1_NOT_AVAILABLE = make_flag("ERROR_SMB1_NOT_AVAILABLE", 384) +ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION = make_flag("ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION", 385) +ERROR_CLOUD_FILE_AUTHENTICATION_FAILED = make_flag("ERROR_CLOUD_FILE_AUTHENTICATION_FAILED", 386) +ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES = make_flag("ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES", 387) +ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE = make_flag("ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE", 388) +ERROR_CLOUD_FILE_UNSUCCESSFUL = make_flag("ERROR_CLOUD_FILE_UNSUCCESSFUL", 389) +ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT = make_flag("ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT", 390) +ERROR_CLOUD_FILE_IN_USE = make_flag("ERROR_CLOUD_FILE_IN_USE", 391) +ERROR_CLOUD_FILE_PINNED = make_flag("ERROR_CLOUD_FILE_PINNED", 392) +ERROR_CLOUD_FILE_REQUEST_ABORTED = make_flag("ERROR_CLOUD_FILE_REQUEST_ABORTED", 393) +ERROR_CLOUD_FILE_PROPERTY_CORRUPT = make_flag("ERROR_CLOUD_FILE_PROPERTY_CORRUPT", 394) +ERROR_CLOUD_FILE_ACCESS_DENIED = make_flag("ERROR_CLOUD_FILE_ACCESS_DENIED", 395) +ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS = make_flag("ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS", 396) +ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT = make_flag("ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT", 397) +ERROR_CLOUD_FILE_REQUEST_CANCELED = make_flag("ERROR_CLOUD_FILE_REQUEST_CANCELED", 398) +ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED = make_flag("ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED", 399) +ERROR_THREAD_MODE_ALREADY_BACKGROUND = make_flag("ERROR_THREAD_MODE_ALREADY_BACKGROUND", 400) +ERROR_THREAD_MODE_NOT_BACKGROUND = make_flag("ERROR_THREAD_MODE_NOT_BACKGROUND", 401) +ERROR_PROCESS_MODE_ALREADY_BACKGROUND = make_flag("ERROR_PROCESS_MODE_ALREADY_BACKGROUND", 402) +ERROR_PROCESS_MODE_NOT_BACKGROUND = make_flag("ERROR_PROCESS_MODE_NOT_BACKGROUND", 403) +ERROR_CLOUD_FILE_PROVIDER_TERMINATED = make_flag("ERROR_CLOUD_FILE_PROVIDER_TERMINATED", 404) +ERROR_NOT_A_CLOUD_SYNC_ROOT = make_flag("ERROR_NOT_A_CLOUD_SYNC_ROOT", 405) +ERROR_FILE_PROTECTED_UNDER_DPL = make_flag("ERROR_FILE_PROTECTED_UNDER_DPL", 406) +ERROR_VOLUME_NOT_CLUSTER_ALIGNED = make_flag("ERROR_VOLUME_NOT_CLUSTER_ALIGNED", 407) +ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND = make_flag("ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND", 408) +ERROR_APPX_FILE_NOT_ENCRYPTED = make_flag("ERROR_APPX_FILE_NOT_ENCRYPTED", 409) +ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED = make_flag("ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED", 410) +ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET = make_flag("ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET", 411) +ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE = make_flag("ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE", 412) +ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER = make_flag("ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER", 413) +ERROR_LINUX_SUBSYSTEM_NOT_PRESENT = make_flag("ERROR_LINUX_SUBSYSTEM_NOT_PRESENT", 414) +ERROR_FT_READ_FAILURE = make_flag("ERROR_FT_READ_FAILURE", 415) +ERROR_STORAGE_RESERVE_ID_INVALID = make_flag("ERROR_STORAGE_RESERVE_ID_INVALID", 416) +ERROR_STORAGE_RESERVE_DOES_NOT_EXIST = make_flag("ERROR_STORAGE_RESERVE_DOES_NOT_EXIST", 417) +ERROR_STORAGE_RESERVE_ALREADY_EXISTS = make_flag("ERROR_STORAGE_RESERVE_ALREADY_EXISTS", 418) +ERROR_STORAGE_RESERVE_NOT_EMPTY = make_flag("ERROR_STORAGE_RESERVE_NOT_EMPTY", 419) +ERROR_NOT_A_DAX_VOLUME = make_flag("ERROR_NOT_A_DAX_VOLUME", 420) +ERROR_NOT_DAX_MAPPABLE = make_flag("ERROR_NOT_DAX_MAPPABLE", 421) +ERROR_TIME_SENSITIVE_THREAD = make_flag("ERROR_TIME_SENSITIVE_THREAD", 422) +ERROR_DPL_NOT_SUPPORTED_FOR_USER = make_flag("ERROR_DPL_NOT_SUPPORTED_FOR_USER", 423) +ERROR_CASE_DIFFERING_NAMES_IN_DIR = make_flag("ERROR_CASE_DIFFERING_NAMES_IN_DIR", 424) +ERROR_FILE_NOT_SUPPORTED = make_flag("ERROR_FILE_NOT_SUPPORTED", 425) +ERROR_CLOUD_FILE_REQUEST_TIMEOUT = make_flag("ERROR_CLOUD_FILE_REQUEST_TIMEOUT", 426) +ERROR_NO_TASK_QUEUE = make_flag("ERROR_NO_TASK_QUEUE", 427) +ERROR_SRC_SRV_DLL_LOAD_FAILED = make_flag("ERROR_SRC_SRV_DLL_LOAD_FAILED", 428) +ERROR_NOT_SUPPORTED_WITH_BTT = make_flag("ERROR_NOT_SUPPORTED_WITH_BTT", 429) +ERROR_ENCRYPTION_DISABLED = make_flag("ERROR_ENCRYPTION_DISABLED", 430) +ERROR_ENCRYPTING_METADATA_DISALLOWED = make_flag("ERROR_ENCRYPTING_METADATA_DISALLOWED", 431) +ERROR_CANT_CLEAR_ENCRYPTION_FLAG = make_flag("ERROR_CANT_CLEAR_ENCRYPTION_FLAG", 432) +ERROR_NO_SUCH_DEVICE = make_flag("ERROR_NO_SUCH_DEVICE", 433) +ERROR_CAPAUTHZ_NOT_DEVUNLOCKED = make_flag("ERROR_CAPAUTHZ_NOT_DEVUNLOCKED", 450) +ERROR_CAPAUTHZ_CHANGE_TYPE = make_flag("ERROR_CAPAUTHZ_CHANGE_TYPE", 451) +ERROR_CAPAUTHZ_NOT_PROVISIONED = make_flag("ERROR_CAPAUTHZ_NOT_PROVISIONED", 452) +ERROR_CAPAUTHZ_NOT_AUTHORIZED = make_flag("ERROR_CAPAUTHZ_NOT_AUTHORIZED", 453) +ERROR_CAPAUTHZ_NO_POLICY = make_flag("ERROR_CAPAUTHZ_NO_POLICY", 454) +ERROR_CAPAUTHZ_DB_CORRUPTED = make_flag("ERROR_CAPAUTHZ_DB_CORRUPTED", 455) +ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG = make_flag("ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG", 456) +ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY = make_flag("ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY", 457) +ERROR_CAPAUTHZ_SCCD_PARSE_ERROR = make_flag("ERROR_CAPAUTHZ_SCCD_PARSE_ERROR", 458) +ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED = make_flag("ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED", 459) +ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH = make_flag("ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH", 460) +ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT = make_flag("ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT", 480) +ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT = make_flag("ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT", 481) +ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT = make_flag("ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT", 482) +ERROR_DEVICE_HARDWARE_ERROR = make_flag("ERROR_DEVICE_HARDWARE_ERROR", 483) +ERROR_INVALID_ADDRESS = make_flag("ERROR_INVALID_ADDRESS", 487) +ERROR_VRF_CFG_ENABLED = make_flag("ERROR_VRF_CFG_ENABLED", 1183) +ERROR_PARTITION_TERMINATING = make_flag("ERROR_PARTITION_TERMINATING", 1184) +ERROR_USER_PROFILE_LOAD = make_flag("ERROR_USER_PROFILE_LOAD", 500) +ERROR_ARITHMETIC_OVERFLOW = make_flag("ERROR_ARITHMETIC_OVERFLOW", 534) +ERROR_PIPE_CONNECTED = make_flag("ERROR_PIPE_CONNECTED", 535) +ERROR_PIPE_LISTENING = make_flag("ERROR_PIPE_LISTENING", 536) +ERROR_VERIFIER_STOP = make_flag("ERROR_VERIFIER_STOP", 537) +ERROR_ABIOS_ERROR = make_flag("ERROR_ABIOS_ERROR", 538) +ERROR_WX86_WARNING = make_flag("ERROR_WX86_WARNING", 539) +ERROR_WX86_ERROR = make_flag("ERROR_WX86_ERROR", 540) +ERROR_TIMER_NOT_CANCELED = make_flag("ERROR_TIMER_NOT_CANCELED", 541) +ERROR_UNWIND = make_flag("ERROR_UNWIND", 542) +ERROR_BAD_STACK = make_flag("ERROR_BAD_STACK", 543) +ERROR_INVALID_UNWIND_TARGET = make_flag("ERROR_INVALID_UNWIND_TARGET", 544) +ERROR_INVALID_PORT_ATTRIBUTES = make_flag("ERROR_INVALID_PORT_ATTRIBUTES", 545) +ERROR_PORT_MESSAGE_TOO_LONG = make_flag("ERROR_PORT_MESSAGE_TOO_LONG", 546) +ERROR_INVALID_QUOTA_LOWER = make_flag("ERROR_INVALID_QUOTA_LOWER", 547) +ERROR_DEVICE_ALREADY_ATTACHED = make_flag("ERROR_DEVICE_ALREADY_ATTACHED", 548) +ERROR_INSTRUCTION_MISALIGNMENT = make_flag("ERROR_INSTRUCTION_MISALIGNMENT", 549) +ERROR_PROFILING_NOT_STARTED = make_flag("ERROR_PROFILING_NOT_STARTED", 550) +ERROR_PROFILING_NOT_STOPPED = make_flag("ERROR_PROFILING_NOT_STOPPED", 551) +ERROR_COULD_NOT_INTERPRET = make_flag("ERROR_COULD_NOT_INTERPRET", 552) +ERROR_PROFILING_AT_LIMIT = make_flag("ERROR_PROFILING_AT_LIMIT", 553) +ERROR_CANT_WAIT = make_flag("ERROR_CANT_WAIT", 554) +ERROR_CANT_TERMINATE_SELF = make_flag("ERROR_CANT_TERMINATE_SELF", 555) +ERROR_UNEXPECTED_MM_CREATE_ERR = make_flag("ERROR_UNEXPECTED_MM_CREATE_ERR", 556) +ERROR_UNEXPECTED_MM_MAP_ERROR = make_flag("ERROR_UNEXPECTED_MM_MAP_ERROR", 557) +ERROR_UNEXPECTED_MM_EXTEND_ERR = make_flag("ERROR_UNEXPECTED_MM_EXTEND_ERR", 558) +ERROR_BAD_FUNCTION_TABLE = make_flag("ERROR_BAD_FUNCTION_TABLE", 559) +ERROR_NO_GUID_TRANSLATION = make_flag("ERROR_NO_GUID_TRANSLATION", 560) +ERROR_INVALID_LDT_SIZE = make_flag("ERROR_INVALID_LDT_SIZE", 561) +ERROR_INVALID_LDT_OFFSET = make_flag("ERROR_INVALID_LDT_OFFSET", 563) +ERROR_INVALID_LDT_DESCRIPTOR = make_flag("ERROR_INVALID_LDT_DESCRIPTOR", 564) +ERROR_TOO_MANY_THREADS = make_flag("ERROR_TOO_MANY_THREADS", 565) +ERROR_THREAD_NOT_IN_PROCESS = make_flag("ERROR_THREAD_NOT_IN_PROCESS", 566) +ERROR_PAGEFILE_QUOTA_EXCEEDED = make_flag("ERROR_PAGEFILE_QUOTA_EXCEEDED", 567) +ERROR_LOGON_SERVER_CONFLICT = make_flag("ERROR_LOGON_SERVER_CONFLICT", 568) +ERROR_SYNCHRONIZATION_REQUIRED = make_flag("ERROR_SYNCHRONIZATION_REQUIRED", 569) +ERROR_NET_OPEN_FAILED = make_flag("ERROR_NET_OPEN_FAILED", 570) +ERROR_IO_PRIVILEGE_FAILED = make_flag("ERROR_IO_PRIVILEGE_FAILED", 571) +ERROR_CONTROL_C_EXIT = make_flag("ERROR_CONTROL_C_EXIT", 572) +ERROR_MISSING_SYSTEMFILE = make_flag("ERROR_MISSING_SYSTEMFILE", 573) +ERROR_UNHANDLED_EXCEPTION = make_flag("ERROR_UNHANDLED_EXCEPTION", 574) +ERROR_APP_INIT_FAILURE = make_flag("ERROR_APP_INIT_FAILURE", 575) +ERROR_PAGEFILE_CREATE_FAILED = make_flag("ERROR_PAGEFILE_CREATE_FAILED", 576) +ERROR_INVALID_IMAGE_HASH = make_flag("ERROR_INVALID_IMAGE_HASH", 577) +ERROR_NO_PAGEFILE = make_flag("ERROR_NO_PAGEFILE", 578) +ERROR_ILLEGAL_FLOAT_CONTEXT = make_flag("ERROR_ILLEGAL_FLOAT_CONTEXT", 579) +ERROR_NO_EVENT_PAIR = make_flag("ERROR_NO_EVENT_PAIR", 580) +ERROR_DOMAIN_CTRLR_CONFIG_ERROR = make_flag("ERROR_DOMAIN_CTRLR_CONFIG_ERROR", 581) +ERROR_ILLEGAL_CHARACTER = make_flag("ERROR_ILLEGAL_CHARACTER", 582) +ERROR_UNDEFINED_CHARACTER = make_flag("ERROR_UNDEFINED_CHARACTER", 583) +ERROR_FLOPPY_VOLUME = make_flag("ERROR_FLOPPY_VOLUME", 584) +ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT = make_flag("ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT", 585) +ERROR_BACKUP_CONTROLLER = make_flag("ERROR_BACKUP_CONTROLLER", 586) +ERROR_MUTANT_LIMIT_EXCEEDED = make_flag("ERROR_MUTANT_LIMIT_EXCEEDED", 587) +ERROR_FS_DRIVER_REQUIRED = make_flag("ERROR_FS_DRIVER_REQUIRED", 588) +ERROR_CANNOT_LOAD_REGISTRY_FILE = make_flag("ERROR_CANNOT_LOAD_REGISTRY_FILE", 589) +ERROR_DEBUG_ATTACH_FAILED = make_flag("ERROR_DEBUG_ATTACH_FAILED", 590) +ERROR_SYSTEM_PROCESS_TERMINATED = make_flag("ERROR_SYSTEM_PROCESS_TERMINATED", 591) +ERROR_DATA_NOT_ACCEPTED = make_flag("ERROR_DATA_NOT_ACCEPTED", 592) +ERROR_VDM_HARD_ERROR = make_flag("ERROR_VDM_HARD_ERROR", 593) +ERROR_DRIVER_CANCEL_TIMEOUT = make_flag("ERROR_DRIVER_CANCEL_TIMEOUT", 594) +ERROR_REPLY_MESSAGE_MISMATCH = make_flag("ERROR_REPLY_MESSAGE_MISMATCH", 595) +ERROR_LOST_WRITEBEHIND_DATA = make_flag("ERROR_LOST_WRITEBEHIND_DATA", 596) +ERROR_CLIENT_SERVER_PARAMETERS_INVALID = make_flag("ERROR_CLIENT_SERVER_PARAMETERS_INVALID", 597) +ERROR_NOT_TINY_STREAM = make_flag("ERROR_NOT_TINY_STREAM", 598) +ERROR_STACK_OVERFLOW_READ = make_flag("ERROR_STACK_OVERFLOW_READ", 599) +ERROR_CONVERT_TO_LARGE = make_flag("ERROR_CONVERT_TO_LARGE", 600) +ERROR_FOUND_OUT_OF_SCOPE = make_flag("ERROR_FOUND_OUT_OF_SCOPE", 601) +ERROR_ALLOCATE_BUCKET = make_flag("ERROR_ALLOCATE_BUCKET", 602) +ERROR_MARSHALL_OVERFLOW = make_flag("ERROR_MARSHALL_OVERFLOW", 603) +ERROR_INVALID_VARIANT = make_flag("ERROR_INVALID_VARIANT", 604) +ERROR_BAD_COMPRESSION_BUFFER = make_flag("ERROR_BAD_COMPRESSION_BUFFER", 605) +ERROR_AUDIT_FAILED = make_flag("ERROR_AUDIT_FAILED", 606) +ERROR_TIMER_RESOLUTION_NOT_SET = make_flag("ERROR_TIMER_RESOLUTION_NOT_SET", 607) +ERROR_INSUFFICIENT_LOGON_INFO = make_flag("ERROR_INSUFFICIENT_LOGON_INFO", 608) +ERROR_BAD_DLL_ENTRYPOINT = make_flag("ERROR_BAD_DLL_ENTRYPOINT", 609) +ERROR_BAD_SERVICE_ENTRYPOINT = make_flag("ERROR_BAD_SERVICE_ENTRYPOINT", 610) +ERROR_IP_ADDRESS_CONFLICT1 = make_flag("ERROR_IP_ADDRESS_CONFLICT1", 611) +ERROR_IP_ADDRESS_CONFLICT2 = make_flag("ERROR_IP_ADDRESS_CONFLICT2", 612) +ERROR_REGISTRY_QUOTA_LIMIT = make_flag("ERROR_REGISTRY_QUOTA_LIMIT", 613) +ERROR_NO_CALLBACK_ACTIVE = make_flag("ERROR_NO_CALLBACK_ACTIVE", 614) +ERROR_PWD_TOO_SHORT = make_flag("ERROR_PWD_TOO_SHORT", 615) +ERROR_PWD_TOO_RECENT = make_flag("ERROR_PWD_TOO_RECENT", 616) +ERROR_PWD_HISTORY_CONFLICT = make_flag("ERROR_PWD_HISTORY_CONFLICT", 617) +ERROR_UNSUPPORTED_COMPRESSION = make_flag("ERROR_UNSUPPORTED_COMPRESSION", 618) +ERROR_INVALID_HW_PROFILE = make_flag("ERROR_INVALID_HW_PROFILE", 619) +ERROR_INVALID_PLUGPLAY_DEVICE_PATH = make_flag("ERROR_INVALID_PLUGPLAY_DEVICE_PATH", 620) +ERROR_QUOTA_LIST_INCONSISTENT = make_flag("ERROR_QUOTA_LIST_INCONSISTENT", 621) +ERROR_EVALUATION_EXPIRATION = make_flag("ERROR_EVALUATION_EXPIRATION", 622) +ERROR_ILLEGAL_DLL_RELOCATION = make_flag("ERROR_ILLEGAL_DLL_RELOCATION", 623) +ERROR_DLL_INIT_FAILED_LOGOFF = make_flag("ERROR_DLL_INIT_FAILED_LOGOFF", 624) +ERROR_VALIDATE_CONTINUE = make_flag("ERROR_VALIDATE_CONTINUE", 625) +ERROR_NO_MORE_MATCHES = make_flag("ERROR_NO_MORE_MATCHES", 626) +ERROR_RANGE_LIST_CONFLICT = make_flag("ERROR_RANGE_LIST_CONFLICT", 627) +ERROR_SERVER_SID_MISMATCH = make_flag("ERROR_SERVER_SID_MISMATCH", 628) +ERROR_CANT_ENABLE_DENY_ONLY = make_flag("ERROR_CANT_ENABLE_DENY_ONLY", 629) +ERROR_FLOAT_MULTIPLE_FAULTS = make_flag("ERROR_FLOAT_MULTIPLE_FAULTS", 630) +ERROR_FLOAT_MULTIPLE_TRAPS = make_flag("ERROR_FLOAT_MULTIPLE_TRAPS", 631) +ERROR_NOINTERFACE = make_flag("ERROR_NOINTERFACE", 632) +ERROR_DRIVER_FAILED_SLEEP = make_flag("ERROR_DRIVER_FAILED_SLEEP", 633) +ERROR_CORRUPT_SYSTEM_FILE = make_flag("ERROR_CORRUPT_SYSTEM_FILE", 634) +ERROR_COMMITMENT_MINIMUM = make_flag("ERROR_COMMITMENT_MINIMUM", 635) +ERROR_PNP_RESTART_ENUMERATION = make_flag("ERROR_PNP_RESTART_ENUMERATION", 636) +ERROR_SYSTEM_IMAGE_BAD_SIGNATURE = make_flag("ERROR_SYSTEM_IMAGE_BAD_SIGNATURE", 637) +ERROR_PNP_REBOOT_REQUIRED = make_flag("ERROR_PNP_REBOOT_REQUIRED", 638) +ERROR_INSUFFICIENT_POWER = make_flag("ERROR_INSUFFICIENT_POWER", 639) +ERROR_MULTIPLE_FAULT_VIOLATION = make_flag("ERROR_MULTIPLE_FAULT_VIOLATION", 640) +ERROR_SYSTEM_SHUTDOWN = make_flag("ERROR_SYSTEM_SHUTDOWN", 641) +ERROR_PORT_NOT_SET = make_flag("ERROR_PORT_NOT_SET", 642) +ERROR_DS_VERSION_CHECK_FAILURE = make_flag("ERROR_DS_VERSION_CHECK_FAILURE", 643) +ERROR_RANGE_NOT_FOUND = make_flag("ERROR_RANGE_NOT_FOUND", 644) +ERROR_NOT_SAFE_MODE_DRIVER = make_flag("ERROR_NOT_SAFE_MODE_DRIVER", 646) +ERROR_FAILED_DRIVER_ENTRY = make_flag("ERROR_FAILED_DRIVER_ENTRY", 647) +ERROR_DEVICE_ENUMERATION_ERROR = make_flag("ERROR_DEVICE_ENUMERATION_ERROR", 648) +ERROR_MOUNT_POINT_NOT_RESOLVED = make_flag("ERROR_MOUNT_POINT_NOT_RESOLVED", 649) +ERROR_INVALID_DEVICE_OBJECT_PARAMETER = make_flag("ERROR_INVALID_DEVICE_OBJECT_PARAMETER", 650) +ERROR_MCA_OCCURED = make_flag("ERROR_MCA_OCCURED", 651) +ERROR_DRIVER_DATABASE_ERROR = make_flag("ERROR_DRIVER_DATABASE_ERROR", 652) +ERROR_SYSTEM_HIVE_TOO_LARGE = make_flag("ERROR_SYSTEM_HIVE_TOO_LARGE", 653) +ERROR_DRIVER_FAILED_PRIOR_UNLOAD = make_flag("ERROR_DRIVER_FAILED_PRIOR_UNLOAD", 654) +ERROR_VOLSNAP_PREPARE_HIBERNATE = make_flag("ERROR_VOLSNAP_PREPARE_HIBERNATE", 655) +ERROR_HIBERNATION_FAILURE = make_flag("ERROR_HIBERNATION_FAILURE", 656) +ERROR_PWD_TOO_LONG = make_flag("ERROR_PWD_TOO_LONG", 657) +ERROR_FILE_SYSTEM_LIMITATION = make_flag("ERROR_FILE_SYSTEM_LIMITATION", 665) +ERROR_ASSERTION_FAILURE = make_flag("ERROR_ASSERTION_FAILURE", 668) +ERROR_ACPI_ERROR = make_flag("ERROR_ACPI_ERROR", 669) +ERROR_WOW_ASSERTION = make_flag("ERROR_WOW_ASSERTION", 670) +ERROR_PNP_BAD_MPS_TABLE = make_flag("ERROR_PNP_BAD_MPS_TABLE", 671) +ERROR_PNP_TRANSLATION_FAILED = make_flag("ERROR_PNP_TRANSLATION_FAILED", 672) +ERROR_PNP_IRQ_TRANSLATION_FAILED = make_flag("ERROR_PNP_IRQ_TRANSLATION_FAILED", 673) +ERROR_PNP_INVALID_ID = make_flag("ERROR_PNP_INVALID_ID", 674) +ERROR_WAKE_SYSTEM_DEBUGGER = make_flag("ERROR_WAKE_SYSTEM_DEBUGGER", 675) +ERROR_HANDLES_CLOSED = make_flag("ERROR_HANDLES_CLOSED", 676) +ERROR_EXTRANEOUS_INFORMATION = make_flag("ERROR_EXTRANEOUS_INFORMATION", 677) +ERROR_RXACT_COMMIT_NECESSARY = make_flag("ERROR_RXACT_COMMIT_NECESSARY", 678) +ERROR_MEDIA_CHECK = make_flag("ERROR_MEDIA_CHECK", 679) +ERROR_GUID_SUBSTITUTION_MADE = make_flag("ERROR_GUID_SUBSTITUTION_MADE", 680) +ERROR_STOPPED_ON_SYMLINK = make_flag("ERROR_STOPPED_ON_SYMLINK", 681) +ERROR_LONGJUMP = make_flag("ERROR_LONGJUMP", 682) +ERROR_PLUGPLAY_QUERY_VETOED = make_flag("ERROR_PLUGPLAY_QUERY_VETOED", 683) +ERROR_UNWIND_CONSOLIDATE = make_flag("ERROR_UNWIND_CONSOLIDATE", 684) +ERROR_REGISTRY_HIVE_RECOVERED = make_flag("ERROR_REGISTRY_HIVE_RECOVERED", 685) +ERROR_DLL_MIGHT_BE_INSECURE = make_flag("ERROR_DLL_MIGHT_BE_INSECURE", 686) +ERROR_DLL_MIGHT_BE_INCOMPATIBLE = make_flag("ERROR_DLL_MIGHT_BE_INCOMPATIBLE", 687) +ERROR_DBG_EXCEPTION_NOT_HANDLED = make_flag("ERROR_DBG_EXCEPTION_NOT_HANDLED", 688) +ERROR_DBG_REPLY_LATER = make_flag("ERROR_DBG_REPLY_LATER", 689) +ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE = make_flag("ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE", 690) +ERROR_DBG_TERMINATE_THREAD = make_flag("ERROR_DBG_TERMINATE_THREAD", 691) +ERROR_DBG_TERMINATE_PROCESS = make_flag("ERROR_DBG_TERMINATE_PROCESS", 692) +ERROR_DBG_CONTROL_C = make_flag("ERROR_DBG_CONTROL_C", 693) +ERROR_DBG_PRINTEXCEPTION_C = make_flag("ERROR_DBG_PRINTEXCEPTION_C", 694) +ERROR_DBG_RIPEXCEPTION = make_flag("ERROR_DBG_RIPEXCEPTION", 695) +ERROR_DBG_CONTROL_BREAK = make_flag("ERROR_DBG_CONTROL_BREAK", 696) +ERROR_DBG_COMMAND_EXCEPTION = make_flag("ERROR_DBG_COMMAND_EXCEPTION", 697) +ERROR_OBJECT_NAME_EXISTS = make_flag("ERROR_OBJECT_NAME_EXISTS", 698) +ERROR_THREAD_WAS_SUSPENDED = make_flag("ERROR_THREAD_WAS_SUSPENDED", 699) +ERROR_IMAGE_NOT_AT_BASE = make_flag("ERROR_IMAGE_NOT_AT_BASE", 700) +ERROR_RXACT_STATE_CREATED = make_flag("ERROR_RXACT_STATE_CREATED", 701) +ERROR_SEGMENT_NOTIFICATION = make_flag("ERROR_SEGMENT_NOTIFICATION", 702) +ERROR_BAD_CURRENT_DIRECTORY = make_flag("ERROR_BAD_CURRENT_DIRECTORY", 703) +ERROR_FT_READ_RECOVERY_FROM_BACKUP = make_flag("ERROR_FT_READ_RECOVERY_FROM_BACKUP", 704) +ERROR_FT_WRITE_RECOVERY = make_flag("ERROR_FT_WRITE_RECOVERY", 705) +ERROR_IMAGE_MACHINE_TYPE_MISMATCH = make_flag("ERROR_IMAGE_MACHINE_TYPE_MISMATCH", 706) +ERROR_RECEIVE_PARTIAL = make_flag("ERROR_RECEIVE_PARTIAL", 707) +ERROR_RECEIVE_EXPEDITED = make_flag("ERROR_RECEIVE_EXPEDITED", 708) +ERROR_RECEIVE_PARTIAL_EXPEDITED = make_flag("ERROR_RECEIVE_PARTIAL_EXPEDITED", 709) +ERROR_EVENT_DONE = make_flag("ERROR_EVENT_DONE", 710) +ERROR_EVENT_PENDING = make_flag("ERROR_EVENT_PENDING", 711) +ERROR_CHECKING_FILE_SYSTEM = make_flag("ERROR_CHECKING_FILE_SYSTEM", 712) +ERROR_FATAL_APP_EXIT = make_flag("ERROR_FATAL_APP_EXIT", 713) +ERROR_PREDEFINED_HANDLE = make_flag("ERROR_PREDEFINED_HANDLE", 714) +ERROR_WAS_UNLOCKED = make_flag("ERROR_WAS_UNLOCKED", 715) +ERROR_SERVICE_NOTIFICATION = make_flag("ERROR_SERVICE_NOTIFICATION", 716) +ERROR_WAS_LOCKED = make_flag("ERROR_WAS_LOCKED", 717) +ERROR_LOG_HARD_ERROR = make_flag("ERROR_LOG_HARD_ERROR", 718) +ERROR_ALREADY_WIN32 = make_flag("ERROR_ALREADY_WIN32", 719) +ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE = make_flag("ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE", 720) +ERROR_NO_YIELD_PERFORMED = make_flag("ERROR_NO_YIELD_PERFORMED", 721) +ERROR_TIMER_RESUME_IGNORED = make_flag("ERROR_TIMER_RESUME_IGNORED", 722) +ERROR_ARBITRATION_UNHANDLED = make_flag("ERROR_ARBITRATION_UNHANDLED", 723) +ERROR_CARDBUS_NOT_SUPPORTED = make_flag("ERROR_CARDBUS_NOT_SUPPORTED", 724) +ERROR_MP_PROCESSOR_MISMATCH = make_flag("ERROR_MP_PROCESSOR_MISMATCH", 725) +ERROR_HIBERNATED = make_flag("ERROR_HIBERNATED", 726) +ERROR_RESUME_HIBERNATION = make_flag("ERROR_RESUME_HIBERNATION", 727) +ERROR_FIRMWARE_UPDATED = make_flag("ERROR_FIRMWARE_UPDATED", 728) +ERROR_DRIVERS_LEAKING_LOCKED_PAGES = make_flag("ERROR_DRIVERS_LEAKING_LOCKED_PAGES", 729) +ERROR_WAKE_SYSTEM = make_flag("ERROR_WAKE_SYSTEM", 730) +ERROR_WAIT_1 = make_flag("ERROR_WAIT_1", 731) +ERROR_WAIT_2 = make_flag("ERROR_WAIT_2", 732) +ERROR_WAIT_3 = make_flag("ERROR_WAIT_3", 733) +ERROR_WAIT_63 = make_flag("ERROR_WAIT_63", 734) +ERROR_ABANDONED_WAIT_0 = make_flag("ERROR_ABANDONED_WAIT_0", 735) +ERROR_ABANDONED_WAIT_63 = make_flag("ERROR_ABANDONED_WAIT_63", 736) +ERROR_USER_APC = make_flag("ERROR_USER_APC", 737) +ERROR_KERNEL_APC = make_flag("ERROR_KERNEL_APC", 738) +ERROR_ALERTED = make_flag("ERROR_ALERTED", 739) +ERROR_ELEVATION_REQUIRED = make_flag("ERROR_ELEVATION_REQUIRED", 740) +ERROR_REPARSE = make_flag("ERROR_REPARSE", 741) +ERROR_OPLOCK_BREAK_IN_PROGRESS = make_flag("ERROR_OPLOCK_BREAK_IN_PROGRESS", 742) +ERROR_VOLUME_MOUNTED = make_flag("ERROR_VOLUME_MOUNTED", 743) +ERROR_RXACT_COMMITTED = make_flag("ERROR_RXACT_COMMITTED", 744) +ERROR_NOTIFY_CLEANUP = make_flag("ERROR_NOTIFY_CLEANUP", 745) +ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED = make_flag("ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED", 746) +ERROR_PAGE_FAULT_TRANSITION = make_flag("ERROR_PAGE_FAULT_TRANSITION", 747) +ERROR_PAGE_FAULT_DEMAND_ZERO = make_flag("ERROR_PAGE_FAULT_DEMAND_ZERO", 748) +ERROR_PAGE_FAULT_COPY_ON_WRITE = make_flag("ERROR_PAGE_FAULT_COPY_ON_WRITE", 749) +ERROR_PAGE_FAULT_GUARD_PAGE = make_flag("ERROR_PAGE_FAULT_GUARD_PAGE", 750) +ERROR_PAGE_FAULT_PAGING_FILE = make_flag("ERROR_PAGE_FAULT_PAGING_FILE", 751) +ERROR_CACHE_PAGE_LOCKED = make_flag("ERROR_CACHE_PAGE_LOCKED", 752) +ERROR_CRASH_DUMP = make_flag("ERROR_CRASH_DUMP", 753) +ERROR_BUFFER_ALL_ZEROS = make_flag("ERROR_BUFFER_ALL_ZEROS", 754) +ERROR_REPARSE_OBJECT = make_flag("ERROR_REPARSE_OBJECT", 755) +ERROR_RESOURCE_REQUIREMENTS_CHANGED = make_flag("ERROR_RESOURCE_REQUIREMENTS_CHANGED", 756) +ERROR_TRANSLATION_COMPLETE = make_flag("ERROR_TRANSLATION_COMPLETE", 757) +ERROR_NOTHING_TO_TERMINATE = make_flag("ERROR_NOTHING_TO_TERMINATE", 758) +ERROR_PROCESS_NOT_IN_JOB = make_flag("ERROR_PROCESS_NOT_IN_JOB", 759) +ERROR_PROCESS_IN_JOB = make_flag("ERROR_PROCESS_IN_JOB", 760) +ERROR_VOLSNAP_HIBERNATE_READY = make_flag("ERROR_VOLSNAP_HIBERNATE_READY", 761) +ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY = make_flag("ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY", 762) +ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED = make_flag("ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED", 763) +ERROR_INTERRUPT_STILL_CONNECTED = make_flag("ERROR_INTERRUPT_STILL_CONNECTED", 764) +ERROR_WAIT_FOR_OPLOCK = make_flag("ERROR_WAIT_FOR_OPLOCK", 765) +ERROR_DBG_EXCEPTION_HANDLED = make_flag("ERROR_DBG_EXCEPTION_HANDLED", 766) +ERROR_DBG_CONTINUE = make_flag("ERROR_DBG_CONTINUE", 767) +ERROR_CALLBACK_POP_STACK = make_flag("ERROR_CALLBACK_POP_STACK", 768) +ERROR_COMPRESSION_DISABLED = make_flag("ERROR_COMPRESSION_DISABLED", 769) +ERROR_CANTFETCHBACKWARDS = make_flag("ERROR_CANTFETCHBACKWARDS", 770) +ERROR_CANTSCROLLBACKWARDS = make_flag("ERROR_CANTSCROLLBACKWARDS", 771) +ERROR_ROWSNOTRELEASED = make_flag("ERROR_ROWSNOTRELEASED", 772) +ERROR_BAD_ACCESSOR_FLAGS = make_flag("ERROR_BAD_ACCESSOR_FLAGS", 773) +ERROR_ERRORS_ENCOUNTERED = make_flag("ERROR_ERRORS_ENCOUNTERED", 774) +ERROR_NOT_CAPABLE = make_flag("ERROR_NOT_CAPABLE", 775) +ERROR_REQUEST_OUT_OF_SEQUENCE = make_flag("ERROR_REQUEST_OUT_OF_SEQUENCE", 776) +ERROR_VERSION_PARSE_ERROR = make_flag("ERROR_VERSION_PARSE_ERROR", 777) +ERROR_BADSTARTPOSITION = make_flag("ERROR_BADSTARTPOSITION", 778) +ERROR_MEMORY_HARDWARE = make_flag("ERROR_MEMORY_HARDWARE", 779) +ERROR_DISK_REPAIR_DISABLED = make_flag("ERROR_DISK_REPAIR_DISABLED", 780) +ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE = make_flag("ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE", 781) +ERROR_SYSTEM_POWERSTATE_TRANSITION = make_flag("ERROR_SYSTEM_POWERSTATE_TRANSITION", 782) +ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION = make_flag("ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION", 783) +ERROR_MCA_EXCEPTION = make_flag("ERROR_MCA_EXCEPTION", 784) +ERROR_ACCESS_AUDIT_BY_POLICY = make_flag("ERROR_ACCESS_AUDIT_BY_POLICY", 785) +ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY = make_flag("ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY", 786) +ERROR_ABANDON_HIBERFILE = make_flag("ERROR_ABANDON_HIBERFILE", 787) +ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED = make_flag("ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED", 788) +ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR = make_flag("ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR", 789) +ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR = make_flag("ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR", 790) +ERROR_BAD_MCFG_TABLE = make_flag("ERROR_BAD_MCFG_TABLE", 791) +ERROR_DISK_REPAIR_REDIRECTED = make_flag("ERROR_DISK_REPAIR_REDIRECTED", 792) +ERROR_DISK_REPAIR_UNSUCCESSFUL = make_flag("ERROR_DISK_REPAIR_UNSUCCESSFUL", 793) +ERROR_CORRUPT_LOG_OVERFULL = make_flag("ERROR_CORRUPT_LOG_OVERFULL", 794) +ERROR_CORRUPT_LOG_CORRUPTED = make_flag("ERROR_CORRUPT_LOG_CORRUPTED", 795) +ERROR_CORRUPT_LOG_UNAVAILABLE = make_flag("ERROR_CORRUPT_LOG_UNAVAILABLE", 796) +ERROR_CORRUPT_LOG_DELETED_FULL = make_flag("ERROR_CORRUPT_LOG_DELETED_FULL", 797) +ERROR_CORRUPT_LOG_CLEARED = make_flag("ERROR_CORRUPT_LOG_CLEARED", 798) +ERROR_ORPHAN_NAME_EXHAUSTED = make_flag("ERROR_ORPHAN_NAME_EXHAUSTED", 799) +ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE = make_flag("ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE", 800) +ERROR_CANNOT_GRANT_REQUESTED_OPLOCK = make_flag("ERROR_CANNOT_GRANT_REQUESTED_OPLOCK", 801) +ERROR_CANNOT_BREAK_OPLOCK = make_flag("ERROR_CANNOT_BREAK_OPLOCK", 802) +ERROR_OPLOCK_HANDLE_CLOSED = make_flag("ERROR_OPLOCK_HANDLE_CLOSED", 803) +ERROR_NO_ACE_CONDITION = make_flag("ERROR_NO_ACE_CONDITION", 804) +ERROR_INVALID_ACE_CONDITION = make_flag("ERROR_INVALID_ACE_CONDITION", 805) +ERROR_FILE_HANDLE_REVOKED = make_flag("ERROR_FILE_HANDLE_REVOKED", 806) +ERROR_IMAGE_AT_DIFFERENT_BASE = make_flag("ERROR_IMAGE_AT_DIFFERENT_BASE", 807) +ERROR_ENCRYPTED_IO_NOT_POSSIBLE = make_flag("ERROR_ENCRYPTED_IO_NOT_POSSIBLE", 808) +ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS = make_flag("ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS", 809) +ERROR_QUOTA_ACTIVITY = make_flag("ERROR_QUOTA_ACTIVITY", 810) +ERROR_HANDLE_REVOKED = make_flag("ERROR_HANDLE_REVOKED", 811) +ERROR_CALLBACK_INVOKE_INLINE = make_flag("ERROR_CALLBACK_INVOKE_INLINE", 812) +ERROR_CPU_SET_INVALID = make_flag("ERROR_CPU_SET_INVALID", 813) +ERROR_ENCLAVE_NOT_TERMINATED = make_flag("ERROR_ENCLAVE_NOT_TERMINATED", 814) +ERROR_ENCLAVE_VIOLATION = make_flag("ERROR_ENCLAVE_VIOLATION", 815) +ERROR_EA_ACCESS_DENIED = make_flag("ERROR_EA_ACCESS_DENIED", 994) +ERROR_OPERATION_ABORTED = make_flag("ERROR_OPERATION_ABORTED", 995) +ERROR_IO_INCOMPLETE = make_flag("ERROR_IO_INCOMPLETE", 996) +ERROR_IO_PENDING = make_flag("ERROR_IO_PENDING", 997) +ERROR_NOACCESS = make_flag("ERROR_NOACCESS", 998) +ERROR_SWAPERROR = make_flag("ERROR_SWAPERROR", 999) +ERROR_STACK_OVERFLOW = make_flag("ERROR_STACK_OVERFLOW", 1001) +ERROR_INVALID_MESSAGE = make_flag("ERROR_INVALID_MESSAGE", 1002) +ERROR_CAN_NOT_COMPLETE = make_flag("ERROR_CAN_NOT_COMPLETE", 1003) +ERROR_INVALID_FLAGS = make_flag("ERROR_INVALID_FLAGS", 1004) +ERROR_UNRECOGNIZED_VOLUME = make_flag("ERROR_UNRECOGNIZED_VOLUME", 1005) +ERROR_FILE_INVALID = make_flag("ERROR_FILE_INVALID", 1006) +ERROR_FULLSCREEN_MODE = make_flag("ERROR_FULLSCREEN_MODE", 1007) +ERROR_NO_TOKEN = make_flag("ERROR_NO_TOKEN", 1008) +ERROR_BADDB = make_flag("ERROR_BADDB", 1009) +ERROR_BADKEY = make_flag("ERROR_BADKEY", 1010) +ERROR_CANTOPEN = make_flag("ERROR_CANTOPEN", 1011) +ERROR_CANTREAD = make_flag("ERROR_CANTREAD", 1012) +ERROR_CANTWRITE = make_flag("ERROR_CANTWRITE", 1013) +ERROR_REGISTRY_RECOVERED = make_flag("ERROR_REGISTRY_RECOVERED", 1014) +ERROR_REGISTRY_CORRUPT = make_flag("ERROR_REGISTRY_CORRUPT", 1015) +ERROR_REGISTRY_IO_FAILED = make_flag("ERROR_REGISTRY_IO_FAILED", 1016) +ERROR_NOT_REGISTRY_FILE = make_flag("ERROR_NOT_REGISTRY_FILE", 1017) +ERROR_KEY_DELETED = make_flag("ERROR_KEY_DELETED", 1018) +ERROR_NO_LOG_SPACE = make_flag("ERROR_NO_LOG_SPACE", 1019) +ERROR_KEY_HAS_CHILDREN = make_flag("ERROR_KEY_HAS_CHILDREN", 1020) +ERROR_CHILD_MUST_BE_VOLATILE = make_flag("ERROR_CHILD_MUST_BE_VOLATILE", 1021) +ERROR_NOTIFY_ENUM_DIR = make_flag("ERROR_NOTIFY_ENUM_DIR", 1022) +ERROR_DEPENDENT_SERVICES_RUNNING = make_flag("ERROR_DEPENDENT_SERVICES_RUNNING", 1051) +ERROR_INVALID_SERVICE_CONTROL = make_flag("ERROR_INVALID_SERVICE_CONTROL", 1052) +ERROR_SERVICE_REQUEST_TIMEOUT = make_flag("ERROR_SERVICE_REQUEST_TIMEOUT", 1053) +ERROR_SERVICE_NO_THREAD = make_flag("ERROR_SERVICE_NO_THREAD", 1054) +ERROR_SERVICE_DATABASE_LOCKED = make_flag("ERROR_SERVICE_DATABASE_LOCKED", 1055) +ERROR_SERVICE_ALREADY_RUNNING = make_flag("ERROR_SERVICE_ALREADY_RUNNING", 1056) +ERROR_INVALID_SERVICE_ACCOUNT = make_flag("ERROR_INVALID_SERVICE_ACCOUNT", 1057) +ERROR_SERVICE_DISABLED = make_flag("ERROR_SERVICE_DISABLED", 1058) +ERROR_CIRCULAR_DEPENDENCY = make_flag("ERROR_CIRCULAR_DEPENDENCY", 1059) +ERROR_SERVICE_DOES_NOT_EXIST = make_flag("ERROR_SERVICE_DOES_NOT_EXIST", 1060) +ERROR_SERVICE_CANNOT_ACCEPT_CTRL = make_flag("ERROR_SERVICE_CANNOT_ACCEPT_CTRL", 1061) +ERROR_SERVICE_NOT_ACTIVE = make_flag("ERROR_SERVICE_NOT_ACTIVE", 1062) +ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = make_flag("ERROR_FAILED_SERVICE_CONTROLLER_CONNECT", 1063) +ERROR_EXCEPTION_IN_SERVICE = make_flag("ERROR_EXCEPTION_IN_SERVICE", 1064) +ERROR_DATABASE_DOES_NOT_EXIST = make_flag("ERROR_DATABASE_DOES_NOT_EXIST", 1065) +ERROR_SERVICE_SPECIFIC_ERROR = make_flag("ERROR_SERVICE_SPECIFIC_ERROR", 1066) +ERROR_PROCESS_ABORTED = make_flag("ERROR_PROCESS_ABORTED", 1067) +ERROR_SERVICE_DEPENDENCY_FAIL = make_flag("ERROR_SERVICE_DEPENDENCY_FAIL", 1068) +ERROR_SERVICE_LOGON_FAILED = make_flag("ERROR_SERVICE_LOGON_FAILED", 1069) +ERROR_SERVICE_START_HANG = make_flag("ERROR_SERVICE_START_HANG", 1070) +ERROR_INVALID_SERVICE_LOCK = make_flag("ERROR_INVALID_SERVICE_LOCK", 1071) +ERROR_SERVICE_MARKED_FOR_DELETE = make_flag("ERROR_SERVICE_MARKED_FOR_DELETE", 1072) +ERROR_SERVICE_EXISTS = make_flag("ERROR_SERVICE_EXISTS", 1073) +ERROR_ALREADY_RUNNING_LKG = make_flag("ERROR_ALREADY_RUNNING_LKG", 1074) +ERROR_SERVICE_DEPENDENCY_DELETED = make_flag("ERROR_SERVICE_DEPENDENCY_DELETED", 1075) +ERROR_BOOT_ALREADY_ACCEPTED = make_flag("ERROR_BOOT_ALREADY_ACCEPTED", 1076) +ERROR_SERVICE_NEVER_STARTED = make_flag("ERROR_SERVICE_NEVER_STARTED", 1077) +ERROR_DUPLICATE_SERVICE_NAME = make_flag("ERROR_DUPLICATE_SERVICE_NAME", 1078) +ERROR_DIFFERENT_SERVICE_ACCOUNT = make_flag("ERROR_DIFFERENT_SERVICE_ACCOUNT", 1079) +ERROR_CANNOT_DETECT_DRIVER_FAILURE = make_flag("ERROR_CANNOT_DETECT_DRIVER_FAILURE", 1080) +ERROR_CANNOT_DETECT_PROCESS_ABORT = make_flag("ERROR_CANNOT_DETECT_PROCESS_ABORT", 1081) +ERROR_NO_RECOVERY_PROGRAM = make_flag("ERROR_NO_RECOVERY_PROGRAM", 1082) +ERROR_SERVICE_NOT_IN_EXE = make_flag("ERROR_SERVICE_NOT_IN_EXE", 1083) +ERROR_NOT_SAFEBOOT_SERVICE = make_flag("ERROR_NOT_SAFEBOOT_SERVICE", 1084) +ERROR_END_OF_MEDIA = make_flag("ERROR_END_OF_MEDIA", 1100) +ERROR_FILEMARK_DETECTED = make_flag("ERROR_FILEMARK_DETECTED", 1101) +ERROR_BEGINNING_OF_MEDIA = make_flag("ERROR_BEGINNING_OF_MEDIA", 1102) +ERROR_SETMARK_DETECTED = make_flag("ERROR_SETMARK_DETECTED", 1103) +ERROR_NO_DATA_DETECTED = make_flag("ERROR_NO_DATA_DETECTED", 1104) +ERROR_PARTITION_FAILURE = make_flag("ERROR_PARTITION_FAILURE", 1105) +ERROR_INVALID_BLOCK_LENGTH = make_flag("ERROR_INVALID_BLOCK_LENGTH", 1106) +ERROR_DEVICE_NOT_PARTITIONED = make_flag("ERROR_DEVICE_NOT_PARTITIONED", 1107) +ERROR_UNABLE_TO_LOCK_MEDIA = make_flag("ERROR_UNABLE_TO_LOCK_MEDIA", 1108) +ERROR_UNABLE_TO_UNLOAD_MEDIA = make_flag("ERROR_UNABLE_TO_UNLOAD_MEDIA", 1109) +ERROR_MEDIA_CHANGED = make_flag("ERROR_MEDIA_CHANGED", 1110) +ERROR_BUS_RESET = make_flag("ERROR_BUS_RESET", 1111) +ERROR_NO_MEDIA_IN_DRIVE = make_flag("ERROR_NO_MEDIA_IN_DRIVE", 1112) +ERROR_NO_UNICODE_TRANSLATION = make_flag("ERROR_NO_UNICODE_TRANSLATION", 1113) +ERROR_DLL_INIT_FAILED = make_flag("ERROR_DLL_INIT_FAILED", 1114) +ERROR_SHUTDOWN_IN_PROGRESS = make_flag("ERROR_SHUTDOWN_IN_PROGRESS", 1115) +ERROR_NO_SHUTDOWN_IN_PROGRESS = make_flag("ERROR_NO_SHUTDOWN_IN_PROGRESS", 1116) +ERROR_IO_DEVICE = make_flag("ERROR_IO_DEVICE", 1117) +ERROR_SERIAL_NO_DEVICE = make_flag("ERROR_SERIAL_NO_DEVICE", 1118) +ERROR_IRQ_BUSY = make_flag("ERROR_IRQ_BUSY", 1119) +ERROR_MORE_WRITES = make_flag("ERROR_MORE_WRITES", 1120) +ERROR_COUNTER_TIMEOUT = make_flag("ERROR_COUNTER_TIMEOUT", 1121) +ERROR_FLOPPY_ID_MARK_NOT_FOUND = make_flag("ERROR_FLOPPY_ID_MARK_NOT_FOUND", 1122) +ERROR_FLOPPY_WRONG_CYLINDER = make_flag("ERROR_FLOPPY_WRONG_CYLINDER", 1123) +ERROR_FLOPPY_UNKNOWN_ERROR = make_flag("ERROR_FLOPPY_UNKNOWN_ERROR", 1124) +ERROR_FLOPPY_BAD_REGISTERS = make_flag("ERROR_FLOPPY_BAD_REGISTERS", 1125) +ERROR_DISK_RECALIBRATE_FAILED = make_flag("ERROR_DISK_RECALIBRATE_FAILED", 1126) +ERROR_DISK_OPERATION_FAILED = make_flag("ERROR_DISK_OPERATION_FAILED", 1127) +ERROR_DISK_RESET_FAILED = make_flag("ERROR_DISK_RESET_FAILED", 1128) +ERROR_EOM_OVERFLOW = make_flag("ERROR_EOM_OVERFLOW", 1129) +ERROR_NOT_ENOUGH_SERVER_MEMORY = make_flag("ERROR_NOT_ENOUGH_SERVER_MEMORY", 1130) +ERROR_POSSIBLE_DEADLOCK = make_flag("ERROR_POSSIBLE_DEADLOCK", 1131) +ERROR_MAPPED_ALIGNMENT = make_flag("ERROR_MAPPED_ALIGNMENT", 1132) +ERROR_SET_POWER_STATE_VETOED = make_flag("ERROR_SET_POWER_STATE_VETOED", 1140) +ERROR_SET_POWER_STATE_FAILED = make_flag("ERROR_SET_POWER_STATE_FAILED", 1141) +ERROR_TOO_MANY_LINKS = make_flag("ERROR_TOO_MANY_LINKS", 1142) +ERROR_OLD_WIN_VERSION = make_flag("ERROR_OLD_WIN_VERSION", 1150) +ERROR_APP_WRONG_OS = make_flag("ERROR_APP_WRONG_OS", 1151) +ERROR_SINGLE_INSTANCE_APP = make_flag("ERROR_SINGLE_INSTANCE_APP", 1152) +ERROR_RMODE_APP = make_flag("ERROR_RMODE_APP", 1153) +ERROR_INVALID_DLL = make_flag("ERROR_INVALID_DLL", 1154) +ERROR_NO_ASSOCIATION = make_flag("ERROR_NO_ASSOCIATION", 1155) +ERROR_DDE_FAIL = make_flag("ERROR_DDE_FAIL", 1156) +ERROR_DLL_NOT_FOUND = make_flag("ERROR_DLL_NOT_FOUND", 1157) +ERROR_NO_MORE_USER_HANDLES = make_flag("ERROR_NO_MORE_USER_HANDLES", 1158) +ERROR_MESSAGE_SYNC_ONLY = make_flag("ERROR_MESSAGE_SYNC_ONLY", 1159) +ERROR_SOURCE_ELEMENT_EMPTY = make_flag("ERROR_SOURCE_ELEMENT_EMPTY", 1160) +ERROR_DESTINATION_ELEMENT_FULL = make_flag("ERROR_DESTINATION_ELEMENT_FULL", 1161) +ERROR_ILLEGAL_ELEMENT_ADDRESS = make_flag("ERROR_ILLEGAL_ELEMENT_ADDRESS", 1162) +ERROR_MAGAZINE_NOT_PRESENT = make_flag("ERROR_MAGAZINE_NOT_PRESENT", 1163) +ERROR_DEVICE_REINITIALIZATION_NEEDED = make_flag("ERROR_DEVICE_REINITIALIZATION_NEEDED", 1164) +ERROR_DEVICE_REQUIRES_CLEANING = make_flag("ERROR_DEVICE_REQUIRES_CLEANING", 1165) +ERROR_DEVICE_DOOR_OPEN = make_flag("ERROR_DEVICE_DOOR_OPEN", 1166) +ERROR_DEVICE_NOT_CONNECTED = make_flag("ERROR_DEVICE_NOT_CONNECTED", 1167) +ERROR_NOT_FOUND = make_flag("ERROR_NOT_FOUND", 1168) +ERROR_NO_MATCH = make_flag("ERROR_NO_MATCH", 1169) +ERROR_SET_NOT_FOUND = make_flag("ERROR_SET_NOT_FOUND", 1170) +ERROR_POINT_NOT_FOUND = make_flag("ERROR_POINT_NOT_FOUND", 1171) +ERROR_NO_TRACKING_SERVICE = make_flag("ERROR_NO_TRACKING_SERVICE", 1172) +ERROR_NO_VOLUME_ID = make_flag("ERROR_NO_VOLUME_ID", 1173) +ERROR_UNABLE_TO_REMOVE_REPLACED = make_flag("ERROR_UNABLE_TO_REMOVE_REPLACED", 1175) +ERROR_UNABLE_TO_MOVE_REPLACEMENT = make_flag("ERROR_UNABLE_TO_MOVE_REPLACEMENT", 1176) +ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 = make_flag("ERROR_UNABLE_TO_MOVE_REPLACEMENT_2", 1177) +ERROR_JOURNAL_DELETE_IN_PROGRESS = make_flag("ERROR_JOURNAL_DELETE_IN_PROGRESS", 1178) +ERROR_JOURNAL_NOT_ACTIVE = make_flag("ERROR_JOURNAL_NOT_ACTIVE", 1179) +ERROR_POTENTIAL_FILE_FOUND = make_flag("ERROR_POTENTIAL_FILE_FOUND", 1180) +ERROR_JOURNAL_ENTRY_DELETED = make_flag("ERROR_JOURNAL_ENTRY_DELETED", 1181) +ERROR_SHUTDOWN_IS_SCHEDULED = make_flag("ERROR_SHUTDOWN_IS_SCHEDULED", 1190) +ERROR_SHUTDOWN_USERS_LOGGED_ON = make_flag("ERROR_SHUTDOWN_USERS_LOGGED_ON", 1191) +ERROR_BAD_DEVICE = make_flag("ERROR_BAD_DEVICE", 1200) +ERROR_CONNECTION_UNAVAIL = make_flag("ERROR_CONNECTION_UNAVAIL", 1201) +ERROR_DEVICE_ALREADY_REMEMBERED = make_flag("ERROR_DEVICE_ALREADY_REMEMBERED", 1202) +ERROR_NO_NET_OR_BAD_PATH = make_flag("ERROR_NO_NET_OR_BAD_PATH", 1203) +ERROR_BAD_PROVIDER = make_flag("ERROR_BAD_PROVIDER", 1204) +ERROR_CANNOT_OPEN_PROFILE = make_flag("ERROR_CANNOT_OPEN_PROFILE", 1205) +ERROR_BAD_PROFILE = make_flag("ERROR_BAD_PROFILE", 1206) +ERROR_NOT_CONTAINER = make_flag("ERROR_NOT_CONTAINER", 1207) +ERROR_EXTENDED_ERROR = make_flag("ERROR_EXTENDED_ERROR", 1208) +ERROR_INVALID_GROUPNAME = make_flag("ERROR_INVALID_GROUPNAME", 1209) +ERROR_INVALID_COMPUTERNAME = make_flag("ERROR_INVALID_COMPUTERNAME", 1210) +ERROR_INVALID_EVENTNAME = make_flag("ERROR_INVALID_EVENTNAME", 1211) +ERROR_INVALID_DOMAINNAME = make_flag("ERROR_INVALID_DOMAINNAME", 1212) +ERROR_INVALID_SERVICENAME = make_flag("ERROR_INVALID_SERVICENAME", 1213) +ERROR_INVALID_NETNAME = make_flag("ERROR_INVALID_NETNAME", 1214) +ERROR_INVALID_SHARENAME = make_flag("ERROR_INVALID_SHARENAME", 1215) +ERROR_INVALID_PASSWORDNAME = make_flag("ERROR_INVALID_PASSWORDNAME", 1216) +ERROR_INVALID_MESSAGENAME = make_flag("ERROR_INVALID_MESSAGENAME", 1217) +ERROR_INVALID_MESSAGEDEST = make_flag("ERROR_INVALID_MESSAGEDEST", 1218) +ERROR_SESSION_CREDENTIAL_CONFLICT = make_flag("ERROR_SESSION_CREDENTIAL_CONFLICT", 1219) +ERROR_REMOTE_SESSION_LIMIT_EXCEEDED = make_flag("ERROR_REMOTE_SESSION_LIMIT_EXCEEDED", 1220) +ERROR_DUP_DOMAINNAME = make_flag("ERROR_DUP_DOMAINNAME", 1221) +ERROR_NO_NETWORK = make_flag("ERROR_NO_NETWORK", 1222) +ERROR_CANCELLED = make_flag("ERROR_CANCELLED", 1223) +ERROR_USER_MAPPED_FILE = make_flag("ERROR_USER_MAPPED_FILE", 1224) +ERROR_CONNECTION_REFUSED = make_flag("ERROR_CONNECTION_REFUSED", 1225) +ERROR_GRACEFUL_DISCONNECT = make_flag("ERROR_GRACEFUL_DISCONNECT", 1226) +ERROR_ADDRESS_ALREADY_ASSOCIATED = make_flag("ERROR_ADDRESS_ALREADY_ASSOCIATED", 1227) +ERROR_ADDRESS_NOT_ASSOCIATED = make_flag("ERROR_ADDRESS_NOT_ASSOCIATED", 1228) +ERROR_CONNECTION_INVALID = make_flag("ERROR_CONNECTION_INVALID", 1229) +ERROR_CONNECTION_ACTIVE = make_flag("ERROR_CONNECTION_ACTIVE", 1230) +ERROR_NETWORK_UNREACHABLE = make_flag("ERROR_NETWORK_UNREACHABLE", 1231) +ERROR_HOST_UNREACHABLE = make_flag("ERROR_HOST_UNREACHABLE", 1232) +ERROR_PROTOCOL_UNREACHABLE = make_flag("ERROR_PROTOCOL_UNREACHABLE", 1233) +ERROR_PORT_UNREACHABLE = make_flag("ERROR_PORT_UNREACHABLE", 1234) +ERROR_REQUEST_ABORTED = make_flag("ERROR_REQUEST_ABORTED", 1235) +ERROR_CONNECTION_ABORTED = make_flag("ERROR_CONNECTION_ABORTED", 1236) +ERROR_RETRY = make_flag("ERROR_RETRY", 1237) +ERROR_CONNECTION_COUNT_LIMIT = make_flag("ERROR_CONNECTION_COUNT_LIMIT", 1238) +ERROR_LOGIN_TIME_RESTRICTION = make_flag("ERROR_LOGIN_TIME_RESTRICTION", 1239) +ERROR_LOGIN_WKSTA_RESTRICTION = make_flag("ERROR_LOGIN_WKSTA_RESTRICTION", 1240) +ERROR_INCORRECT_ADDRESS = make_flag("ERROR_INCORRECT_ADDRESS", 1241) +ERROR_ALREADY_REGISTERED = make_flag("ERROR_ALREADY_REGISTERED", 1242) +ERROR_SERVICE_NOT_FOUND = make_flag("ERROR_SERVICE_NOT_FOUND", 1243) +ERROR_NOT_AUTHENTICATED = make_flag("ERROR_NOT_AUTHENTICATED", 1244) +ERROR_NOT_LOGGED_ON = make_flag("ERROR_NOT_LOGGED_ON", 1245) +ERROR_CONTINUE = make_flag("ERROR_CONTINUE", 1246) +ERROR_ALREADY_INITIALIZED = make_flag("ERROR_ALREADY_INITIALIZED", 1247) +ERROR_NO_MORE_DEVICES = make_flag("ERROR_NO_MORE_DEVICES", 1248) +ERROR_NO_SUCH_SITE = make_flag("ERROR_NO_SUCH_SITE", 1249) +ERROR_DOMAIN_CONTROLLER_EXISTS = make_flag("ERROR_DOMAIN_CONTROLLER_EXISTS", 1250) +ERROR_ONLY_IF_CONNECTED = make_flag("ERROR_ONLY_IF_CONNECTED", 1251) +ERROR_OVERRIDE_NOCHANGES = make_flag("ERROR_OVERRIDE_NOCHANGES", 1252) +ERROR_BAD_USER_PROFILE = make_flag("ERROR_BAD_USER_PROFILE", 1253) +ERROR_NOT_SUPPORTED_ON_SBS = make_flag("ERROR_NOT_SUPPORTED_ON_SBS", 1254) +ERROR_SERVER_SHUTDOWN_IN_PROGRESS = make_flag("ERROR_SERVER_SHUTDOWN_IN_PROGRESS", 1255) +ERROR_HOST_DOWN = make_flag("ERROR_HOST_DOWN", 1256) +ERROR_NON_ACCOUNT_SID = make_flag("ERROR_NON_ACCOUNT_SID", 1257) +ERROR_NON_DOMAIN_SID = make_flag("ERROR_NON_DOMAIN_SID", 1258) +ERROR_APPHELP_BLOCK = make_flag("ERROR_APPHELP_BLOCK", 1259) +ERROR_ACCESS_DISABLED_BY_POLICY = make_flag("ERROR_ACCESS_DISABLED_BY_POLICY", 1260) +ERROR_REG_NAT_CONSUMPTION = make_flag("ERROR_REG_NAT_CONSUMPTION", 1261) +ERROR_CSCSHARE_OFFLINE = make_flag("ERROR_CSCSHARE_OFFLINE", 1262) +ERROR_PKINIT_FAILURE = make_flag("ERROR_PKINIT_FAILURE", 1263) +ERROR_SMARTCARD_SUBSYSTEM_FAILURE = make_flag("ERROR_SMARTCARD_SUBSYSTEM_FAILURE", 1264) +ERROR_DOWNGRADE_DETECTED = make_flag("ERROR_DOWNGRADE_DETECTED", 1265) +ERROR_MACHINE_LOCKED = make_flag("ERROR_MACHINE_LOCKED", 1271) +ERROR_SMB_GUEST_LOGON_BLOCKED = make_flag("ERROR_SMB_GUEST_LOGON_BLOCKED", 1272) +ERROR_CALLBACK_SUPPLIED_INVALID_DATA = make_flag("ERROR_CALLBACK_SUPPLIED_INVALID_DATA", 1273) +ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED = make_flag("ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED", 1274) +ERROR_DRIVER_BLOCKED = make_flag("ERROR_DRIVER_BLOCKED", 1275) +ERROR_INVALID_IMPORT_OF_NON_DLL = make_flag("ERROR_INVALID_IMPORT_OF_NON_DLL", 1276) +ERROR_ACCESS_DISABLED_WEBBLADE = make_flag("ERROR_ACCESS_DISABLED_WEBBLADE", 1277) +ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER = make_flag("ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER", 1278) +ERROR_RECOVERY_FAILURE = make_flag("ERROR_RECOVERY_FAILURE", 1279) +ERROR_ALREADY_FIBER = make_flag("ERROR_ALREADY_FIBER", 1280) +ERROR_ALREADY_THREAD = make_flag("ERROR_ALREADY_THREAD", 1281) +ERROR_STACK_BUFFER_OVERRUN = make_flag("ERROR_STACK_BUFFER_OVERRUN", 1282) +ERROR_PARAMETER_QUOTA_EXCEEDED = make_flag("ERROR_PARAMETER_QUOTA_EXCEEDED", 1283) +ERROR_DEBUGGER_INACTIVE = make_flag("ERROR_DEBUGGER_INACTIVE", 1284) +ERROR_DELAY_LOAD_FAILED = make_flag("ERROR_DELAY_LOAD_FAILED", 1285) +ERROR_VDM_DISALLOWED = make_flag("ERROR_VDM_DISALLOWED", 1286) +ERROR_UNIDENTIFIED_ERROR = make_flag("ERROR_UNIDENTIFIED_ERROR", 1287) +ERROR_INVALID_CRUNTIME_PARAMETER = make_flag("ERROR_INVALID_CRUNTIME_PARAMETER", 1288) +ERROR_BEYOND_VDL = make_flag("ERROR_BEYOND_VDL", 1289) +ERROR_INCOMPATIBLE_SERVICE_SID_TYPE = make_flag("ERROR_INCOMPATIBLE_SERVICE_SID_TYPE", 1290) +ERROR_DRIVER_PROCESS_TERMINATED = make_flag("ERROR_DRIVER_PROCESS_TERMINATED", 1291) +ERROR_IMPLEMENTATION_LIMIT = make_flag("ERROR_IMPLEMENTATION_LIMIT", 1292) +ERROR_PROCESS_IS_PROTECTED = make_flag("ERROR_PROCESS_IS_PROTECTED", 1293) +ERROR_SERVICE_NOTIFY_CLIENT_LAGGING = make_flag("ERROR_SERVICE_NOTIFY_CLIENT_LAGGING", 1294) +ERROR_DISK_QUOTA_EXCEEDED = make_flag("ERROR_DISK_QUOTA_EXCEEDED", 1295) +ERROR_CONTENT_BLOCKED = make_flag("ERROR_CONTENT_BLOCKED", 1296) +ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE = make_flag("ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE", 1297) +ERROR_APP_HANG = make_flag("ERROR_APP_HANG", 1298) +ERROR_INVALID_LABEL = make_flag("ERROR_INVALID_LABEL", 1299) +ERROR_NOT_ALL_ASSIGNED = make_flag("ERROR_NOT_ALL_ASSIGNED", 1300) +ERROR_SOME_NOT_MAPPED = make_flag("ERROR_SOME_NOT_MAPPED", 1301) +ERROR_NO_QUOTAS_FOR_ACCOUNT = make_flag("ERROR_NO_QUOTAS_FOR_ACCOUNT", 1302) +ERROR_LOCAL_USER_SESSION_KEY = make_flag("ERROR_LOCAL_USER_SESSION_KEY", 1303) +ERROR_NULL_LM_PASSWORD = make_flag("ERROR_NULL_LM_PASSWORD", 1304) +ERROR_UNKNOWN_REVISION = make_flag("ERROR_UNKNOWN_REVISION", 1305) +ERROR_REVISION_MISMATCH = make_flag("ERROR_REVISION_MISMATCH", 1306) +ERROR_INVALID_OWNER = make_flag("ERROR_INVALID_OWNER", 1307) +ERROR_INVALID_PRIMARY_GROUP = make_flag("ERROR_INVALID_PRIMARY_GROUP", 1308) +ERROR_NO_IMPERSONATION_TOKEN = make_flag("ERROR_NO_IMPERSONATION_TOKEN", 1309) +ERROR_CANT_DISABLE_MANDATORY = make_flag("ERROR_CANT_DISABLE_MANDATORY", 1310) +ERROR_NO_LOGON_SERVERS = make_flag("ERROR_NO_LOGON_SERVERS", 1311) +ERROR_NO_SUCH_LOGON_SESSION = make_flag("ERROR_NO_SUCH_LOGON_SESSION", 1312) +ERROR_NO_SUCH_PRIVILEGE = make_flag("ERROR_NO_SUCH_PRIVILEGE", 1313) +ERROR_PRIVILEGE_NOT_HELD = make_flag("ERROR_PRIVILEGE_NOT_HELD", 1314) +ERROR_INVALID_ACCOUNT_NAME = make_flag("ERROR_INVALID_ACCOUNT_NAME", 1315) +ERROR_USER_EXISTS = make_flag("ERROR_USER_EXISTS", 1316) +ERROR_NO_SUCH_USER = make_flag("ERROR_NO_SUCH_USER", 1317) +ERROR_GROUP_EXISTS = make_flag("ERROR_GROUP_EXISTS", 1318) +ERROR_NO_SUCH_GROUP = make_flag("ERROR_NO_SUCH_GROUP", 1319) +ERROR_MEMBER_IN_GROUP = make_flag("ERROR_MEMBER_IN_GROUP", 1320) +ERROR_MEMBER_NOT_IN_GROUP = make_flag("ERROR_MEMBER_NOT_IN_GROUP", 1321) +ERROR_LAST_ADMIN = make_flag("ERROR_LAST_ADMIN", 1322) +ERROR_WRONG_PASSWORD = make_flag("ERROR_WRONG_PASSWORD", 1323) +ERROR_ILL_FORMED_PASSWORD = make_flag("ERROR_ILL_FORMED_PASSWORD", 1324) +ERROR_PASSWORD_RESTRICTION = make_flag("ERROR_PASSWORD_RESTRICTION", 1325) +ERROR_LOGON_FAILURE = make_flag("ERROR_LOGON_FAILURE", 1326) +ERROR_ACCOUNT_RESTRICTION = make_flag("ERROR_ACCOUNT_RESTRICTION", 1327) +ERROR_INVALID_LOGON_HOURS = make_flag("ERROR_INVALID_LOGON_HOURS", 1328) +ERROR_INVALID_WORKSTATION = make_flag("ERROR_INVALID_WORKSTATION", 1329) +ERROR_PASSWORD_EXPIRED = make_flag("ERROR_PASSWORD_EXPIRED", 1330) +ERROR_ACCOUNT_DISABLED = make_flag("ERROR_ACCOUNT_DISABLED", 1331) +ERROR_NONE_MAPPED = make_flag("ERROR_NONE_MAPPED", 1332) +ERROR_TOO_MANY_LUIDS_REQUESTED = make_flag("ERROR_TOO_MANY_LUIDS_REQUESTED", 1333) +ERROR_LUIDS_EXHAUSTED = make_flag("ERROR_LUIDS_EXHAUSTED", 1334) +ERROR_INVALID_SUB_AUTHORITY = make_flag("ERROR_INVALID_SUB_AUTHORITY", 1335) +ERROR_INVALID_ACL = make_flag("ERROR_INVALID_ACL", 1336) +ERROR_INVALID_SID = make_flag("ERROR_INVALID_SID", 1337) +ERROR_INVALID_SECURITY_DESCR = make_flag("ERROR_INVALID_SECURITY_DESCR", 1338) +ERROR_BAD_INHERITANCE_ACL = make_flag("ERROR_BAD_INHERITANCE_ACL", 1340) +ERROR_SERVER_DISABLED = make_flag("ERROR_SERVER_DISABLED", 1341) +ERROR_SERVER_NOT_DISABLED = make_flag("ERROR_SERVER_NOT_DISABLED", 1342) +ERROR_INVALID_ID_AUTHORITY = make_flag("ERROR_INVALID_ID_AUTHORITY", 1343) +ERROR_ALLOTTED_SPACE_EXCEEDED = make_flag("ERROR_ALLOTTED_SPACE_EXCEEDED", 1344) +ERROR_INVALID_GROUP_ATTRIBUTES = make_flag("ERROR_INVALID_GROUP_ATTRIBUTES", 1345) +ERROR_BAD_IMPERSONATION_LEVEL = make_flag("ERROR_BAD_IMPERSONATION_LEVEL", 1346) +ERROR_CANT_OPEN_ANONYMOUS = make_flag("ERROR_CANT_OPEN_ANONYMOUS", 1347) +ERROR_BAD_VALIDATION_CLASS = make_flag("ERROR_BAD_VALIDATION_CLASS", 1348) +ERROR_BAD_TOKEN_TYPE = make_flag("ERROR_BAD_TOKEN_TYPE", 1349) +ERROR_NO_SECURITY_ON_OBJECT = make_flag("ERROR_NO_SECURITY_ON_OBJECT", 1350) +ERROR_CANT_ACCESS_DOMAIN_INFO = make_flag("ERROR_CANT_ACCESS_DOMAIN_INFO", 1351) +ERROR_INVALID_SERVER_STATE = make_flag("ERROR_INVALID_SERVER_STATE", 1352) +ERROR_INVALID_DOMAIN_STATE = make_flag("ERROR_INVALID_DOMAIN_STATE", 1353) +ERROR_INVALID_DOMAIN_ROLE = make_flag("ERROR_INVALID_DOMAIN_ROLE", 1354) +ERROR_NO_SUCH_DOMAIN = make_flag("ERROR_NO_SUCH_DOMAIN", 1355) +ERROR_DOMAIN_EXISTS = make_flag("ERROR_DOMAIN_EXISTS", 1356) +ERROR_DOMAIN_LIMIT_EXCEEDED = make_flag("ERROR_DOMAIN_LIMIT_EXCEEDED", 1357) +ERROR_INTERNAL_DB_CORRUPTION = make_flag("ERROR_INTERNAL_DB_CORRUPTION", 1358) +ERROR_INTERNAL_ERROR = make_flag("ERROR_INTERNAL_ERROR", 1359) +ERROR_GENERIC_NOT_MAPPED = make_flag("ERROR_GENERIC_NOT_MAPPED", 1360) +ERROR_BAD_DESCRIPTOR_FORMAT = make_flag("ERROR_BAD_DESCRIPTOR_FORMAT", 1361) +ERROR_NOT_LOGON_PROCESS = make_flag("ERROR_NOT_LOGON_PROCESS", 1362) +ERROR_LOGON_SESSION_EXISTS = make_flag("ERROR_LOGON_SESSION_EXISTS", 1363) +ERROR_NO_SUCH_PACKAGE = make_flag("ERROR_NO_SUCH_PACKAGE", 1364) +ERROR_BAD_LOGON_SESSION_STATE = make_flag("ERROR_BAD_LOGON_SESSION_STATE", 1365) +ERROR_LOGON_SESSION_COLLISION = make_flag("ERROR_LOGON_SESSION_COLLISION", 1366) +ERROR_INVALID_LOGON_TYPE = make_flag("ERROR_INVALID_LOGON_TYPE", 1367) +ERROR_CANNOT_IMPERSONATE = make_flag("ERROR_CANNOT_IMPERSONATE", 1368) +ERROR_RXACT_INVALID_STATE = make_flag("ERROR_RXACT_INVALID_STATE", 1369) +ERROR_RXACT_COMMIT_FAILURE = make_flag("ERROR_RXACT_COMMIT_FAILURE", 1370) +ERROR_SPECIAL_ACCOUNT = make_flag("ERROR_SPECIAL_ACCOUNT", 1371) +ERROR_SPECIAL_GROUP = make_flag("ERROR_SPECIAL_GROUP", 1372) +ERROR_SPECIAL_USER = make_flag("ERROR_SPECIAL_USER", 1373) +ERROR_MEMBERS_PRIMARY_GROUP = make_flag("ERROR_MEMBERS_PRIMARY_GROUP", 1374) +ERROR_TOKEN_ALREADY_IN_USE = make_flag("ERROR_TOKEN_ALREADY_IN_USE", 1375) +ERROR_NO_SUCH_ALIAS = make_flag("ERROR_NO_SUCH_ALIAS", 1376) +ERROR_MEMBER_NOT_IN_ALIAS = make_flag("ERROR_MEMBER_NOT_IN_ALIAS", 1377) +ERROR_MEMBER_IN_ALIAS = make_flag("ERROR_MEMBER_IN_ALIAS", 1378) +ERROR_ALIAS_EXISTS = make_flag("ERROR_ALIAS_EXISTS", 1379) +ERROR_LOGON_NOT_GRANTED = make_flag("ERROR_LOGON_NOT_GRANTED", 1380) +ERROR_TOO_MANY_SECRETS = make_flag("ERROR_TOO_MANY_SECRETS", 1381) +ERROR_SECRET_TOO_LONG = make_flag("ERROR_SECRET_TOO_LONG", 1382) +ERROR_INTERNAL_DB_ERROR = make_flag("ERROR_INTERNAL_DB_ERROR", 1383) +ERROR_TOO_MANY_CONTEXT_IDS = make_flag("ERROR_TOO_MANY_CONTEXT_IDS", 1384) +ERROR_LOGON_TYPE_NOT_GRANTED = make_flag("ERROR_LOGON_TYPE_NOT_GRANTED", 1385) +ERROR_NT_CROSS_ENCRYPTION_REQUIRED = make_flag("ERROR_NT_CROSS_ENCRYPTION_REQUIRED", 1386) +ERROR_NO_SUCH_MEMBER = make_flag("ERROR_NO_SUCH_MEMBER", 1387) +ERROR_INVALID_MEMBER = make_flag("ERROR_INVALID_MEMBER", 1388) +ERROR_TOO_MANY_SIDS = make_flag("ERROR_TOO_MANY_SIDS", 1389) +ERROR_LM_CROSS_ENCRYPTION_REQUIRED = make_flag("ERROR_LM_CROSS_ENCRYPTION_REQUIRED", 1390) +ERROR_NO_INHERITANCE = make_flag("ERROR_NO_INHERITANCE", 1391) +ERROR_FILE_CORRUPT = make_flag("ERROR_FILE_CORRUPT", 1392) +ERROR_DISK_CORRUPT = make_flag("ERROR_DISK_CORRUPT", 1393) +ERROR_NO_USER_SESSION_KEY = make_flag("ERROR_NO_USER_SESSION_KEY", 1394) +ERROR_LICENSE_QUOTA_EXCEEDED = make_flag("ERROR_LICENSE_QUOTA_EXCEEDED", 1395) +ERROR_WRONG_TARGET_NAME = make_flag("ERROR_WRONG_TARGET_NAME", 1396) +ERROR_MUTUAL_AUTH_FAILED = make_flag("ERROR_MUTUAL_AUTH_FAILED", 1397) +ERROR_TIME_SKEW = make_flag("ERROR_TIME_SKEW", 1398) +ERROR_CURRENT_DOMAIN_NOT_ALLOWED = make_flag("ERROR_CURRENT_DOMAIN_NOT_ALLOWED", 1399) +ERROR_INVALID_WINDOW_HANDLE = make_flag("ERROR_INVALID_WINDOW_HANDLE", 1400) +ERROR_INVALID_MENU_HANDLE = make_flag("ERROR_INVALID_MENU_HANDLE", 1401) +ERROR_INVALID_CURSOR_HANDLE = make_flag("ERROR_INVALID_CURSOR_HANDLE", 1402) +ERROR_INVALID_ACCEL_HANDLE = make_flag("ERROR_INVALID_ACCEL_HANDLE", 1403) +ERROR_INVALID_HOOK_HANDLE = make_flag("ERROR_INVALID_HOOK_HANDLE", 1404) +ERROR_INVALID_DWP_HANDLE = make_flag("ERROR_INVALID_DWP_HANDLE", 1405) +ERROR_TLW_WITH_WSCHILD = make_flag("ERROR_TLW_WITH_WSCHILD", 1406) +ERROR_CANNOT_FIND_WND_CLASS = make_flag("ERROR_CANNOT_FIND_WND_CLASS", 1407) +ERROR_WINDOW_OF_OTHER_THREAD = make_flag("ERROR_WINDOW_OF_OTHER_THREAD", 1408) +ERROR_HOTKEY_ALREADY_REGISTERED = make_flag("ERROR_HOTKEY_ALREADY_REGISTERED", 1409) +ERROR_CLASS_ALREADY_EXISTS = make_flag("ERROR_CLASS_ALREADY_EXISTS", 1410) +ERROR_CLASS_DOES_NOT_EXIST = make_flag("ERROR_CLASS_DOES_NOT_EXIST", 1411) +ERROR_CLASS_HAS_WINDOWS = make_flag("ERROR_CLASS_HAS_WINDOWS", 1412) +ERROR_INVALID_INDEX = make_flag("ERROR_INVALID_INDEX", 1413) +ERROR_INVALID_ICON_HANDLE = make_flag("ERROR_INVALID_ICON_HANDLE", 1414) +ERROR_PRIVATE_DIALOG_INDEX = make_flag("ERROR_PRIVATE_DIALOG_INDEX", 1415) +ERROR_LISTBOX_ID_NOT_FOUND = make_flag("ERROR_LISTBOX_ID_NOT_FOUND", 1416) +ERROR_NO_WILDCARD_CHARACTERS = make_flag("ERROR_NO_WILDCARD_CHARACTERS", 1417) +ERROR_CLIPBOARD_NOT_OPEN = make_flag("ERROR_CLIPBOARD_NOT_OPEN", 1418) +ERROR_HOTKEY_NOT_REGISTERED = make_flag("ERROR_HOTKEY_NOT_REGISTERED", 1419) +ERROR_WINDOW_NOT_DIALOG = make_flag("ERROR_WINDOW_NOT_DIALOG", 1420) +ERROR_CONTROL_ID_NOT_FOUND = make_flag("ERROR_CONTROL_ID_NOT_FOUND", 1421) +ERROR_INVALID_COMBOBOX_MESSAGE = make_flag("ERROR_INVALID_COMBOBOX_MESSAGE", 1422) +ERROR_WINDOW_NOT_COMBOBOX = make_flag("ERROR_WINDOW_NOT_COMBOBOX", 1423) +ERROR_INVALID_EDIT_HEIGHT = make_flag("ERROR_INVALID_EDIT_HEIGHT", 1424) +ERROR_DC_NOT_FOUND = make_flag("ERROR_DC_NOT_FOUND", 1425) +ERROR_INVALID_HOOK_FILTER = make_flag("ERROR_INVALID_HOOK_FILTER", 1426) +ERROR_INVALID_FILTER_PROC = make_flag("ERROR_INVALID_FILTER_PROC", 1427) +ERROR_HOOK_NEEDS_HMOD = make_flag("ERROR_HOOK_NEEDS_HMOD", 1428) +ERROR_GLOBAL_ONLY_HOOK = make_flag("ERROR_GLOBAL_ONLY_HOOK", 1429) +ERROR_JOURNAL_HOOK_SET = make_flag("ERROR_JOURNAL_HOOK_SET", 1430) +ERROR_HOOK_NOT_INSTALLED = make_flag("ERROR_HOOK_NOT_INSTALLED", 1431) +ERROR_INVALID_LB_MESSAGE = make_flag("ERROR_INVALID_LB_MESSAGE", 1432) +ERROR_SETCOUNT_ON_BAD_LB = make_flag("ERROR_SETCOUNT_ON_BAD_LB", 1433) +ERROR_LB_WITHOUT_TABSTOPS = make_flag("ERROR_LB_WITHOUT_TABSTOPS", 1434) +ERROR_DESTROY_OBJECT_OF_OTHER_THREAD = make_flag("ERROR_DESTROY_OBJECT_OF_OTHER_THREAD", 1435) +ERROR_CHILD_WINDOW_MENU = make_flag("ERROR_CHILD_WINDOW_MENU", 1436) +ERROR_NO_SYSTEM_MENU = make_flag("ERROR_NO_SYSTEM_MENU", 1437) +ERROR_INVALID_MSGBOX_STYLE = make_flag("ERROR_INVALID_MSGBOX_STYLE", 1438) +ERROR_INVALID_SPI_VALUE = make_flag("ERROR_INVALID_SPI_VALUE", 1439) +ERROR_SCREEN_ALREADY_LOCKED = make_flag("ERROR_SCREEN_ALREADY_LOCKED", 1440) +ERROR_HWNDS_HAVE_DIFF_PARENT = make_flag("ERROR_HWNDS_HAVE_DIFF_PARENT", 1441) +ERROR_NOT_CHILD_WINDOW = make_flag("ERROR_NOT_CHILD_WINDOW", 1442) +ERROR_INVALID_GW_COMMAND = make_flag("ERROR_INVALID_GW_COMMAND", 1443) +ERROR_INVALID_THREAD_ID = make_flag("ERROR_INVALID_THREAD_ID", 1444) +ERROR_NON_MDICHILD_WINDOW = make_flag("ERROR_NON_MDICHILD_WINDOW", 1445) +ERROR_POPUP_ALREADY_ACTIVE = make_flag("ERROR_POPUP_ALREADY_ACTIVE", 1446) +ERROR_NO_SCROLLBARS = make_flag("ERROR_NO_SCROLLBARS", 1447) +ERROR_INVALID_SCROLLBAR_RANGE = make_flag("ERROR_INVALID_SCROLLBAR_RANGE", 1448) +ERROR_INVALID_SHOWWIN_COMMAND = make_flag("ERROR_INVALID_SHOWWIN_COMMAND", 1449) +ERROR_NO_SYSTEM_RESOURCES = make_flag("ERROR_NO_SYSTEM_RESOURCES", 1450) +ERROR_NONPAGED_SYSTEM_RESOURCES = make_flag("ERROR_NONPAGED_SYSTEM_RESOURCES", 1451) +ERROR_PAGED_SYSTEM_RESOURCES = make_flag("ERROR_PAGED_SYSTEM_RESOURCES", 1452) +ERROR_WORKING_SET_QUOTA = make_flag("ERROR_WORKING_SET_QUOTA", 1453) +ERROR_PAGEFILE_QUOTA = make_flag("ERROR_PAGEFILE_QUOTA", 1454) +ERROR_COMMITMENT_LIMIT = make_flag("ERROR_COMMITMENT_LIMIT", 1455) +ERROR_MENU_ITEM_NOT_FOUND = make_flag("ERROR_MENU_ITEM_NOT_FOUND", 1456) +ERROR_INVALID_KEYBOARD_HANDLE = make_flag("ERROR_INVALID_KEYBOARD_HANDLE", 1457) +ERROR_HOOK_TYPE_NOT_ALLOWED = make_flag("ERROR_HOOK_TYPE_NOT_ALLOWED", 1458) +ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION = make_flag("ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION", 1459) +ERROR_TIMEOUT = make_flag("ERROR_TIMEOUT", 1460) +ERROR_INVALID_MONITOR_HANDLE = make_flag("ERROR_INVALID_MONITOR_HANDLE", 1461) +ERROR_INCORRECT_SIZE = make_flag("ERROR_INCORRECT_SIZE", 1462) +ERROR_SYMLINK_CLASS_DISABLED = make_flag("ERROR_SYMLINK_CLASS_DISABLED", 1463) +ERROR_SYMLINK_NOT_SUPPORTED = make_flag("ERROR_SYMLINK_NOT_SUPPORTED", 1464) +ERROR_XML_PARSE_ERROR = make_flag("ERROR_XML_PARSE_ERROR", 1465) +ERROR_XMLDSIG_ERROR = make_flag("ERROR_XMLDSIG_ERROR", 1466) +ERROR_RESTART_APPLICATION = make_flag("ERROR_RESTART_APPLICATION", 1467) +ERROR_WRONG_COMPARTMENT = make_flag("ERROR_WRONG_COMPARTMENT", 1468) +ERROR_AUTHIP_FAILURE = make_flag("ERROR_AUTHIP_FAILURE", 1469) +ERROR_NO_NVRAM_RESOURCES = make_flag("ERROR_NO_NVRAM_RESOURCES", 1470) +ERROR_NOT_GUI_PROCESS = make_flag("ERROR_NOT_GUI_PROCESS", 1471) +ERROR_EVENTLOG_FILE_CORRUPT = make_flag("ERROR_EVENTLOG_FILE_CORRUPT", 1500) +ERROR_EVENTLOG_CANT_START = make_flag("ERROR_EVENTLOG_CANT_START", 1501) +ERROR_LOG_FILE_FULL = make_flag("ERROR_LOG_FILE_FULL", 1502) +ERROR_EVENTLOG_FILE_CHANGED = make_flag("ERROR_EVENTLOG_FILE_CHANGED", 1503) +ERROR_CONTAINER_ASSIGNED = make_flag("ERROR_CONTAINER_ASSIGNED", 1504) +ERROR_JOB_NO_CONTAINER = make_flag("ERROR_JOB_NO_CONTAINER", 1505) +ERROR_INVALID_TASK_NAME = make_flag("ERROR_INVALID_TASK_NAME", 1550) +ERROR_INVALID_TASK_INDEX = make_flag("ERROR_INVALID_TASK_INDEX", 1551) +ERROR_THREAD_ALREADY_IN_TASK = make_flag("ERROR_THREAD_ALREADY_IN_TASK", 1552) +ERROR_INSTALL_SERVICE_FAILURE = make_flag("ERROR_INSTALL_SERVICE_FAILURE", 1601) +ERROR_INSTALL_USEREXIT = make_flag("ERROR_INSTALL_USEREXIT", 1602) +ERROR_INSTALL_FAILURE = make_flag("ERROR_INSTALL_FAILURE", 1603) +ERROR_INSTALL_SUSPEND = make_flag("ERROR_INSTALL_SUSPEND", 1604) +ERROR_UNKNOWN_PRODUCT = make_flag("ERROR_UNKNOWN_PRODUCT", 1605) +ERROR_UNKNOWN_FEATURE = make_flag("ERROR_UNKNOWN_FEATURE", 1606) +ERROR_UNKNOWN_COMPONENT = make_flag("ERROR_UNKNOWN_COMPONENT", 1607) +ERROR_UNKNOWN_PROPERTY = make_flag("ERROR_UNKNOWN_PROPERTY", 1608) +ERROR_INVALID_HANDLE_STATE = make_flag("ERROR_INVALID_HANDLE_STATE", 1609) +ERROR_BAD_CONFIGURATION = make_flag("ERROR_BAD_CONFIGURATION", 1610) +ERROR_INDEX_ABSENT = make_flag("ERROR_INDEX_ABSENT", 1611) +ERROR_INSTALL_SOURCE_ABSENT = make_flag("ERROR_INSTALL_SOURCE_ABSENT", 1612) +ERROR_INSTALL_PACKAGE_VERSION = make_flag("ERROR_INSTALL_PACKAGE_VERSION", 1613) +ERROR_PRODUCT_UNINSTALLED = make_flag("ERROR_PRODUCT_UNINSTALLED", 1614) +ERROR_BAD_QUERY_SYNTAX = make_flag("ERROR_BAD_QUERY_SYNTAX", 1615) +ERROR_INVALID_FIELD = make_flag("ERROR_INVALID_FIELD", 1616) +ERROR_DEVICE_REMOVED = make_flag("ERROR_DEVICE_REMOVED", 1617) +ERROR_INSTALL_ALREADY_RUNNING = make_flag("ERROR_INSTALL_ALREADY_RUNNING", 1618) +ERROR_INSTALL_PACKAGE_OPEN_FAILED = make_flag("ERROR_INSTALL_PACKAGE_OPEN_FAILED", 1619) +ERROR_INSTALL_PACKAGE_INVALID = make_flag("ERROR_INSTALL_PACKAGE_INVALID", 1620) +ERROR_INSTALL_UI_FAILURE = make_flag("ERROR_INSTALL_UI_FAILURE", 1621) +ERROR_INSTALL_LOG_FAILURE = make_flag("ERROR_INSTALL_LOG_FAILURE", 1622) +ERROR_INSTALL_LANGUAGE_UNSUPPORTED = make_flag("ERROR_INSTALL_LANGUAGE_UNSUPPORTED", 1623) +ERROR_INSTALL_TRANSFORM_FAILURE = make_flag("ERROR_INSTALL_TRANSFORM_FAILURE", 1624) +ERROR_INSTALL_PACKAGE_REJECTED = make_flag("ERROR_INSTALL_PACKAGE_REJECTED", 1625) +ERROR_FUNCTION_NOT_CALLED = make_flag("ERROR_FUNCTION_NOT_CALLED", 1626) +ERROR_FUNCTION_FAILED = make_flag("ERROR_FUNCTION_FAILED", 1627) +ERROR_INVALID_TABLE = make_flag("ERROR_INVALID_TABLE", 1628) +ERROR_DATATYPE_MISMATCH = make_flag("ERROR_DATATYPE_MISMATCH", 1629) +ERROR_UNSUPPORTED_TYPE = make_flag("ERROR_UNSUPPORTED_TYPE", 1630) +ERROR_CREATE_FAILED = make_flag("ERROR_CREATE_FAILED", 1631) +ERROR_INSTALL_TEMP_UNWRITABLE = make_flag("ERROR_INSTALL_TEMP_UNWRITABLE", 1632) +ERROR_INSTALL_PLATFORM_UNSUPPORTED = make_flag("ERROR_INSTALL_PLATFORM_UNSUPPORTED", 1633) +ERROR_INSTALL_NOTUSED = make_flag("ERROR_INSTALL_NOTUSED", 1634) +ERROR_PATCH_PACKAGE_OPEN_FAILED = make_flag("ERROR_PATCH_PACKAGE_OPEN_FAILED", 1635) +ERROR_PATCH_PACKAGE_INVALID = make_flag("ERROR_PATCH_PACKAGE_INVALID", 1636) +ERROR_PATCH_PACKAGE_UNSUPPORTED = make_flag("ERROR_PATCH_PACKAGE_UNSUPPORTED", 1637) +ERROR_PRODUCT_VERSION = make_flag("ERROR_PRODUCT_VERSION", 1638) +ERROR_INVALID_COMMAND_LINE = make_flag("ERROR_INVALID_COMMAND_LINE", 1639) +ERROR_INSTALL_REMOTE_DISALLOWED = make_flag("ERROR_INSTALL_REMOTE_DISALLOWED", 1640) +ERROR_SUCCESS_REBOOT_INITIATED = make_flag("ERROR_SUCCESS_REBOOT_INITIATED", 1641) +ERROR_PATCH_TARGET_NOT_FOUND = make_flag("ERROR_PATCH_TARGET_NOT_FOUND", 1642) +ERROR_PATCH_PACKAGE_REJECTED = make_flag("ERROR_PATCH_PACKAGE_REJECTED", 1643) +ERROR_INSTALL_TRANSFORM_REJECTED = make_flag("ERROR_INSTALL_TRANSFORM_REJECTED", 1644) +ERROR_INSTALL_REMOTE_PROHIBITED = make_flag("ERROR_INSTALL_REMOTE_PROHIBITED", 1645) +ERROR_PATCH_REMOVAL_UNSUPPORTED = make_flag("ERROR_PATCH_REMOVAL_UNSUPPORTED", 1646) +ERROR_UNKNOWN_PATCH = make_flag("ERROR_UNKNOWN_PATCH", 1647) +ERROR_PATCH_NO_SEQUENCE = make_flag("ERROR_PATCH_NO_SEQUENCE", 1648) +ERROR_PATCH_REMOVAL_DISALLOWED = make_flag("ERROR_PATCH_REMOVAL_DISALLOWED", 1649) +ERROR_INVALID_PATCH_XML = make_flag("ERROR_INVALID_PATCH_XML", 1650) +ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT = make_flag("ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT", 1651) +ERROR_INSTALL_SERVICE_SAFEBOOT = make_flag("ERROR_INSTALL_SERVICE_SAFEBOOT", 1652) +ERROR_FAIL_FAST_EXCEPTION = make_flag("ERROR_FAIL_FAST_EXCEPTION", 1653) +ERROR_INSTALL_REJECTED = make_flag("ERROR_INSTALL_REJECTED", 1654) +ERROR_DYNAMIC_CODE_BLOCKED = make_flag("ERROR_DYNAMIC_CODE_BLOCKED", 1655) +ERROR_NOT_SAME_OBJECT = make_flag("ERROR_NOT_SAME_OBJECT", 1656) +ERROR_STRICT_CFG_VIOLATION = make_flag("ERROR_STRICT_CFG_VIOLATION", 1657) +ERROR_SET_CONTEXT_DENIED = make_flag("ERROR_SET_CONTEXT_DENIED", 1660) +ERROR_CROSS_PARTITION_VIOLATION = make_flag("ERROR_CROSS_PARTITION_VIOLATION", 1661) +RPC_S_INVALID_STRING_BINDING = make_flag("RPC_S_INVALID_STRING_BINDING", 1700) +RPC_S_WRONG_KIND_OF_BINDING = make_flag("RPC_S_WRONG_KIND_OF_BINDING", 1701) +RPC_S_INVALID_BINDING = make_flag("RPC_S_INVALID_BINDING", 1702) +RPC_S_PROTSEQ_NOT_SUPPORTED = make_flag("RPC_S_PROTSEQ_NOT_SUPPORTED", 1703) +RPC_S_INVALID_RPC_PROTSEQ = make_flag("RPC_S_INVALID_RPC_PROTSEQ", 1704) +RPC_S_INVALID_STRING_UUID = make_flag("RPC_S_INVALID_STRING_UUID", 1705) +RPC_S_INVALID_ENDPOINT_FORMAT = make_flag("RPC_S_INVALID_ENDPOINT_FORMAT", 1706) +RPC_S_INVALID_NET_ADDR = make_flag("RPC_S_INVALID_NET_ADDR", 1707) +RPC_S_NO_ENDPOINT_FOUND = make_flag("RPC_S_NO_ENDPOINT_FOUND", 1708) +RPC_S_INVALID_TIMEOUT = make_flag("RPC_S_INVALID_TIMEOUT", 1709) +RPC_S_OBJECT_NOT_FOUND = make_flag("RPC_S_OBJECT_NOT_FOUND", 1710) +RPC_S_ALREADY_REGISTERED = make_flag("RPC_S_ALREADY_REGISTERED", 1711) +RPC_S_TYPE_ALREADY_REGISTERED = make_flag("RPC_S_TYPE_ALREADY_REGISTERED", 1712) +RPC_S_ALREADY_LISTENING = make_flag("RPC_S_ALREADY_LISTENING", 1713) +RPC_S_NO_PROTSEQS_REGISTERED = make_flag("RPC_S_NO_PROTSEQS_REGISTERED", 1714) +RPC_S_NOT_LISTENING = make_flag("RPC_S_NOT_LISTENING", 1715) +RPC_S_UNKNOWN_MGR_TYPE = make_flag("RPC_S_UNKNOWN_MGR_TYPE", 1716) +RPC_S_UNKNOWN_IF = make_flag("RPC_S_UNKNOWN_IF", 1717) +RPC_S_NO_BINDINGS = make_flag("RPC_S_NO_BINDINGS", 1718) +RPC_S_NO_PROTSEQS = make_flag("RPC_S_NO_PROTSEQS", 1719) +RPC_S_CANT_CREATE_ENDPOINT = make_flag("RPC_S_CANT_CREATE_ENDPOINT", 1720) +RPC_S_OUT_OF_RESOURCES = make_flag("RPC_S_OUT_OF_RESOURCES", 1721) +RPC_S_SERVER_UNAVAILABLE = make_flag("RPC_S_SERVER_UNAVAILABLE", 1722) +RPC_S_SERVER_TOO_BUSY = make_flag("RPC_S_SERVER_TOO_BUSY", 1723) +RPC_S_INVALID_NETWORK_OPTIONS = make_flag("RPC_S_INVALID_NETWORK_OPTIONS", 1724) +RPC_S_NO_CALL_ACTIVE = make_flag("RPC_S_NO_CALL_ACTIVE", 1725) +RPC_S_CALL_FAILED = make_flag("RPC_S_CALL_FAILED", 1726) +RPC_S_CALL_FAILED_DNE = make_flag("RPC_S_CALL_FAILED_DNE", 1727) +RPC_S_PROTOCOL_ERROR = make_flag("RPC_S_PROTOCOL_ERROR", 1728) +RPC_S_PROXY_ACCESS_DENIED = make_flag("RPC_S_PROXY_ACCESS_DENIED", 1729) +RPC_S_UNSUPPORTED_TRANS_SYN = make_flag("RPC_S_UNSUPPORTED_TRANS_SYN", 1730) +RPC_S_UNSUPPORTED_TYPE = make_flag("RPC_S_UNSUPPORTED_TYPE", 1732) +RPC_S_INVALID_TAG = make_flag("RPC_S_INVALID_TAG", 1733) +RPC_S_INVALID_BOUND = make_flag("RPC_S_INVALID_BOUND", 1734) +RPC_S_NO_ENTRY_NAME = make_flag("RPC_S_NO_ENTRY_NAME", 1735) +RPC_S_INVALID_NAME_SYNTAX = make_flag("RPC_S_INVALID_NAME_SYNTAX", 1736) +RPC_S_UNSUPPORTED_NAME_SYNTAX = make_flag("RPC_S_UNSUPPORTED_NAME_SYNTAX", 1737) +RPC_S_UUID_NO_ADDRESS = make_flag("RPC_S_UUID_NO_ADDRESS", 1739) +RPC_S_DUPLICATE_ENDPOINT = make_flag("RPC_S_DUPLICATE_ENDPOINT", 1740) +RPC_S_UNKNOWN_AUTHN_TYPE = make_flag("RPC_S_UNKNOWN_AUTHN_TYPE", 1741) +RPC_S_MAX_CALLS_TOO_SMALL = make_flag("RPC_S_MAX_CALLS_TOO_SMALL", 1742) +RPC_S_STRING_TOO_LONG = make_flag("RPC_S_STRING_TOO_LONG", 1743) +RPC_S_PROTSEQ_NOT_FOUND = make_flag("RPC_S_PROTSEQ_NOT_FOUND", 1744) +RPC_S_PROCNUM_OUT_OF_RANGE = make_flag("RPC_S_PROCNUM_OUT_OF_RANGE", 1745) +RPC_S_BINDING_HAS_NO_AUTH = make_flag("RPC_S_BINDING_HAS_NO_AUTH", 1746) +RPC_S_UNKNOWN_AUTHN_SERVICE = make_flag("RPC_S_UNKNOWN_AUTHN_SERVICE", 1747) +RPC_S_UNKNOWN_AUTHN_LEVEL = make_flag("RPC_S_UNKNOWN_AUTHN_LEVEL", 1748) +RPC_S_INVALID_AUTH_IDENTITY = make_flag("RPC_S_INVALID_AUTH_IDENTITY", 1749) +RPC_S_UNKNOWN_AUTHZ_SERVICE = make_flag("RPC_S_UNKNOWN_AUTHZ_SERVICE", 1750) +EPT_S_INVALID_ENTRY = make_flag("EPT_S_INVALID_ENTRY", 1751) +EPT_S_CANT_PERFORM_OP = make_flag("EPT_S_CANT_PERFORM_OP", 1752) +EPT_S_NOT_REGISTERED = make_flag("EPT_S_NOT_REGISTERED", 1753) +RPC_S_NOTHING_TO_EXPORT = make_flag("RPC_S_NOTHING_TO_EXPORT", 1754) +RPC_S_INCOMPLETE_NAME = make_flag("RPC_S_INCOMPLETE_NAME", 1755) +RPC_S_INVALID_VERS_OPTION = make_flag("RPC_S_INVALID_VERS_OPTION", 1756) +RPC_S_NO_MORE_MEMBERS = make_flag("RPC_S_NO_MORE_MEMBERS", 1757) +RPC_S_NOT_ALL_OBJS_UNEXPORTED = make_flag("RPC_S_NOT_ALL_OBJS_UNEXPORTED", 1758) +RPC_S_INTERFACE_NOT_FOUND = make_flag("RPC_S_INTERFACE_NOT_FOUND", 1759) +RPC_S_ENTRY_ALREADY_EXISTS = make_flag("RPC_S_ENTRY_ALREADY_EXISTS", 1760) +RPC_S_ENTRY_NOT_FOUND = make_flag("RPC_S_ENTRY_NOT_FOUND", 1761) +RPC_S_NAME_SERVICE_UNAVAILABLE = make_flag("RPC_S_NAME_SERVICE_UNAVAILABLE", 1762) +RPC_S_INVALID_NAF_ID = make_flag("RPC_S_INVALID_NAF_ID", 1763) +RPC_S_CANNOT_SUPPORT = make_flag("RPC_S_CANNOT_SUPPORT", 1764) +RPC_S_NO_CONTEXT_AVAILABLE = make_flag("RPC_S_NO_CONTEXT_AVAILABLE", 1765) +RPC_S_INTERNAL_ERROR = make_flag("RPC_S_INTERNAL_ERROR", 1766) +RPC_S_ZERO_DIVIDE = make_flag("RPC_S_ZERO_DIVIDE", 1767) +RPC_S_ADDRESS_ERROR = make_flag("RPC_S_ADDRESS_ERROR", 1768) +RPC_S_FP_DIV_ZERO = make_flag("RPC_S_FP_DIV_ZERO", 1769) +RPC_S_FP_UNDERFLOW = make_flag("RPC_S_FP_UNDERFLOW", 1770) +RPC_S_FP_OVERFLOW = make_flag("RPC_S_FP_OVERFLOW", 1771) +RPC_X_NO_MORE_ENTRIES = make_flag("RPC_X_NO_MORE_ENTRIES", 1772) +RPC_X_SS_CHAR_TRANS_OPEN_FAIL = make_flag("RPC_X_SS_CHAR_TRANS_OPEN_FAIL", 1773) +RPC_X_SS_CHAR_TRANS_SHORT_FILE = make_flag("RPC_X_SS_CHAR_TRANS_SHORT_FILE", 1774) +RPC_X_SS_IN_NULL_CONTEXT = make_flag("RPC_X_SS_IN_NULL_CONTEXT", 1775) +RPC_X_SS_CONTEXT_DAMAGED = make_flag("RPC_X_SS_CONTEXT_DAMAGED", 1777) +RPC_X_SS_HANDLES_MISMATCH = make_flag("RPC_X_SS_HANDLES_MISMATCH", 1778) +RPC_X_SS_CANNOT_GET_CALL_HANDLE = make_flag("RPC_X_SS_CANNOT_GET_CALL_HANDLE", 1779) +RPC_X_NULL_REF_POINTER = make_flag("RPC_X_NULL_REF_POINTER", 1780) +RPC_X_ENUM_VALUE_OUT_OF_RANGE = make_flag("RPC_X_ENUM_VALUE_OUT_OF_RANGE", 1781) +RPC_X_BYTE_COUNT_TOO_SMALL = make_flag("RPC_X_BYTE_COUNT_TOO_SMALL", 1782) +RPC_X_BAD_STUB_DATA = make_flag("RPC_X_BAD_STUB_DATA", 1783) +ERROR_INVALID_USER_BUFFER = make_flag("ERROR_INVALID_USER_BUFFER", 1784) +ERROR_UNRECOGNIZED_MEDIA = make_flag("ERROR_UNRECOGNIZED_MEDIA", 1785) +ERROR_NO_TRUST_LSA_SECRET = make_flag("ERROR_NO_TRUST_LSA_SECRET", 1786) +ERROR_NO_TRUST_SAM_ACCOUNT = make_flag("ERROR_NO_TRUST_SAM_ACCOUNT", 1787) +ERROR_TRUSTED_DOMAIN_FAILURE = make_flag("ERROR_TRUSTED_DOMAIN_FAILURE", 1788) +ERROR_TRUSTED_RELATIONSHIP_FAILURE = make_flag("ERROR_TRUSTED_RELATIONSHIP_FAILURE", 1789) +ERROR_TRUST_FAILURE = make_flag("ERROR_TRUST_FAILURE", 1790) +RPC_S_CALL_IN_PROGRESS = make_flag("RPC_S_CALL_IN_PROGRESS", 1791) +ERROR_NETLOGON_NOT_STARTED = make_flag("ERROR_NETLOGON_NOT_STARTED", 1792) +ERROR_ACCOUNT_EXPIRED = make_flag("ERROR_ACCOUNT_EXPIRED", 1793) +ERROR_REDIRECTOR_HAS_OPEN_HANDLES = make_flag("ERROR_REDIRECTOR_HAS_OPEN_HANDLES", 1794) +ERROR_PRINTER_DRIVER_ALREADY_INSTALLED = make_flag("ERROR_PRINTER_DRIVER_ALREADY_INSTALLED", 1795) +ERROR_UNKNOWN_PORT = make_flag("ERROR_UNKNOWN_PORT", 1796) +ERROR_UNKNOWN_PRINTER_DRIVER = make_flag("ERROR_UNKNOWN_PRINTER_DRIVER", 1797) +ERROR_UNKNOWN_PRINTPROCESSOR = make_flag("ERROR_UNKNOWN_PRINTPROCESSOR", 1798) +ERROR_INVALID_SEPARATOR_FILE = make_flag("ERROR_INVALID_SEPARATOR_FILE", 1799) +ERROR_INVALID_PRIORITY = make_flag("ERROR_INVALID_PRIORITY", 1800) +ERROR_INVALID_PRINTER_NAME = make_flag("ERROR_INVALID_PRINTER_NAME", 1801) +ERROR_PRINTER_ALREADY_EXISTS = make_flag("ERROR_PRINTER_ALREADY_EXISTS", 1802) +ERROR_INVALID_PRINTER_COMMAND = make_flag("ERROR_INVALID_PRINTER_COMMAND", 1803) +ERROR_INVALID_DATATYPE = make_flag("ERROR_INVALID_DATATYPE", 1804) +ERROR_INVALID_ENVIRONMENT = make_flag("ERROR_INVALID_ENVIRONMENT", 1805) +RPC_S_NO_MORE_BINDINGS = make_flag("RPC_S_NO_MORE_BINDINGS", 1806) +ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = make_flag("ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT", 1807) +ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT = make_flag("ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT", 1808) +ERROR_NOLOGON_SERVER_TRUST_ACCOUNT = make_flag("ERROR_NOLOGON_SERVER_TRUST_ACCOUNT", 1809) +ERROR_DOMAIN_TRUST_INCONSISTENT = make_flag("ERROR_DOMAIN_TRUST_INCONSISTENT", 1810) +ERROR_SERVER_HAS_OPEN_HANDLES = make_flag("ERROR_SERVER_HAS_OPEN_HANDLES", 1811) +ERROR_RESOURCE_DATA_NOT_FOUND = make_flag("ERROR_RESOURCE_DATA_NOT_FOUND", 1812) +ERROR_RESOURCE_TYPE_NOT_FOUND = make_flag("ERROR_RESOURCE_TYPE_NOT_FOUND", 1813) +ERROR_RESOURCE_NAME_NOT_FOUND = make_flag("ERROR_RESOURCE_NAME_NOT_FOUND", 1814) +ERROR_RESOURCE_LANG_NOT_FOUND = make_flag("ERROR_RESOURCE_LANG_NOT_FOUND", 1815) +ERROR_NOT_ENOUGH_QUOTA = make_flag("ERROR_NOT_ENOUGH_QUOTA", 1816) +RPC_S_NO_INTERFACES = make_flag("RPC_S_NO_INTERFACES", 1817) +RPC_S_CALL_CANCELLED = make_flag("RPC_S_CALL_CANCELLED", 1818) +RPC_S_BINDING_INCOMPLETE = make_flag("RPC_S_BINDING_INCOMPLETE", 1819) +RPC_S_COMM_FAILURE = make_flag("RPC_S_COMM_FAILURE", 1820) +RPC_S_UNSUPPORTED_AUTHN_LEVEL = make_flag("RPC_S_UNSUPPORTED_AUTHN_LEVEL", 1821) +RPC_S_NO_PRINC_NAME = make_flag("RPC_S_NO_PRINC_NAME", 1822) +RPC_S_NOT_RPC_ERROR = make_flag("RPC_S_NOT_RPC_ERROR", 1823) +RPC_S_UUID_LOCAL_ONLY = make_flag("RPC_S_UUID_LOCAL_ONLY", 1824) +RPC_S_SEC_PKG_ERROR = make_flag("RPC_S_SEC_PKG_ERROR", 1825) +RPC_S_NOT_CANCELLED = make_flag("RPC_S_NOT_CANCELLED", 1826) +RPC_X_INVALID_ES_ACTION = make_flag("RPC_X_INVALID_ES_ACTION", 1827) +RPC_X_WRONG_ES_VERSION = make_flag("RPC_X_WRONG_ES_VERSION", 1828) +RPC_X_WRONG_STUB_VERSION = make_flag("RPC_X_WRONG_STUB_VERSION", 1829) +RPC_X_INVALID_PIPE_OBJECT = make_flag("RPC_X_INVALID_PIPE_OBJECT", 1830) +RPC_X_WRONG_PIPE_ORDER = make_flag("RPC_X_WRONG_PIPE_ORDER", 1831) +RPC_X_WRONG_PIPE_VERSION = make_flag("RPC_X_WRONG_PIPE_VERSION", 1832) +RPC_S_COOKIE_AUTH_FAILED = make_flag("RPC_S_COOKIE_AUTH_FAILED", 1833) +RPC_S_DO_NOT_DISTURB = make_flag("RPC_S_DO_NOT_DISTURB", 1834) +RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED = make_flag("RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED", 1835) +RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH = make_flag("RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH", 1836) +RPC_S_GROUP_MEMBER_NOT_FOUND = make_flag("RPC_S_GROUP_MEMBER_NOT_FOUND", 1898) +EPT_S_CANT_CREATE = make_flag("EPT_S_CANT_CREATE", 1899) +RPC_S_INVALID_OBJECT = make_flag("RPC_S_INVALID_OBJECT", 1900) +ERROR_INVALID_TIME = make_flag("ERROR_INVALID_TIME", 1901) +ERROR_INVALID_FORM_NAME = make_flag("ERROR_INVALID_FORM_NAME", 1902) +ERROR_INVALID_FORM_SIZE = make_flag("ERROR_INVALID_FORM_SIZE", 1903) +ERROR_ALREADY_WAITING = make_flag("ERROR_ALREADY_WAITING", 1904) +ERROR_PRINTER_DELETED = make_flag("ERROR_PRINTER_DELETED", 1905) +ERROR_INVALID_PRINTER_STATE = make_flag("ERROR_INVALID_PRINTER_STATE", 1906) +ERROR_PASSWORD_MUST_CHANGE = make_flag("ERROR_PASSWORD_MUST_CHANGE", 1907) +ERROR_DOMAIN_CONTROLLER_NOT_FOUND = make_flag("ERROR_DOMAIN_CONTROLLER_NOT_FOUND", 1908) +ERROR_ACCOUNT_LOCKED_OUT = make_flag("ERROR_ACCOUNT_LOCKED_OUT", 1909) +OR_INVALID_OXID = make_flag("OR_INVALID_OXID", 1910) +OR_INVALID_OID = make_flag("OR_INVALID_OID", 1911) +OR_INVALID_SET = make_flag("OR_INVALID_SET", 1912) +RPC_S_SEND_INCOMPLETE = make_flag("RPC_S_SEND_INCOMPLETE", 1913) +RPC_S_INVALID_ASYNC_HANDLE = make_flag("RPC_S_INVALID_ASYNC_HANDLE", 1914) +RPC_S_INVALID_ASYNC_CALL = make_flag("RPC_S_INVALID_ASYNC_CALL", 1915) +RPC_X_PIPE_CLOSED = make_flag("RPC_X_PIPE_CLOSED", 1916) +RPC_X_PIPE_DISCIPLINE_ERROR = make_flag("RPC_X_PIPE_DISCIPLINE_ERROR", 1917) +RPC_X_PIPE_EMPTY = make_flag("RPC_X_PIPE_EMPTY", 1918) +ERROR_NO_SITENAME = make_flag("ERROR_NO_SITENAME", 1919) +ERROR_CANT_ACCESS_FILE = make_flag("ERROR_CANT_ACCESS_FILE", 1920) +ERROR_CANT_RESOLVE_FILENAME = make_flag("ERROR_CANT_RESOLVE_FILENAME", 1921) +RPC_S_ENTRY_TYPE_MISMATCH = make_flag("RPC_S_ENTRY_TYPE_MISMATCH", 1922) +RPC_S_NOT_ALL_OBJS_EXPORTED = make_flag("RPC_S_NOT_ALL_OBJS_EXPORTED", 1923) +RPC_S_INTERFACE_NOT_EXPORTED = make_flag("RPC_S_INTERFACE_NOT_EXPORTED", 1924) +RPC_S_PROFILE_NOT_ADDED = make_flag("RPC_S_PROFILE_NOT_ADDED", 1925) +RPC_S_PRF_ELT_NOT_ADDED = make_flag("RPC_S_PRF_ELT_NOT_ADDED", 1926) +RPC_S_PRF_ELT_NOT_REMOVED = make_flag("RPC_S_PRF_ELT_NOT_REMOVED", 1927) +RPC_S_GRP_ELT_NOT_ADDED = make_flag("RPC_S_GRP_ELT_NOT_ADDED", 1928) +RPC_S_GRP_ELT_NOT_REMOVED = make_flag("RPC_S_GRP_ELT_NOT_REMOVED", 1929) +ERROR_KM_DRIVER_BLOCKED = make_flag("ERROR_KM_DRIVER_BLOCKED", 1930) +ERROR_CONTEXT_EXPIRED = make_flag("ERROR_CONTEXT_EXPIRED", 1931) +ERROR_PER_USER_TRUST_QUOTA_EXCEEDED = make_flag("ERROR_PER_USER_TRUST_QUOTA_EXCEEDED", 1932) +ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED = make_flag("ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED", 1933) +ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED = make_flag("ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED", 1934) +ERROR_AUTHENTICATION_FIREWALL_FAILED = make_flag("ERROR_AUTHENTICATION_FIREWALL_FAILED", 1935) +ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED = make_flag("ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED", 1936) +ERROR_NTLM_BLOCKED = make_flag("ERROR_NTLM_BLOCKED", 1937) +ERROR_PASSWORD_CHANGE_REQUIRED = make_flag("ERROR_PASSWORD_CHANGE_REQUIRED", 1938) +ERROR_LOST_MODE_LOGON_RESTRICTION = make_flag("ERROR_LOST_MODE_LOGON_RESTRICTION", 1939) +ERROR_INVALID_PIXEL_FORMAT = make_flag("ERROR_INVALID_PIXEL_FORMAT", 2000) +ERROR_BAD_DRIVER = make_flag("ERROR_BAD_DRIVER", 2001) +ERROR_INVALID_WINDOW_STYLE = make_flag("ERROR_INVALID_WINDOW_STYLE", 2002) +ERROR_METAFILE_NOT_SUPPORTED = make_flag("ERROR_METAFILE_NOT_SUPPORTED", 2003) +ERROR_TRANSFORM_NOT_SUPPORTED = make_flag("ERROR_TRANSFORM_NOT_SUPPORTED", 2004) +ERROR_CLIPPING_NOT_SUPPORTED = make_flag("ERROR_CLIPPING_NOT_SUPPORTED", 2005) +ERROR_INVALID_CMM = make_flag("ERROR_INVALID_CMM", 2010) +ERROR_INVALID_PROFILE = make_flag("ERROR_INVALID_PROFILE", 2011) +ERROR_TAG_NOT_FOUND = make_flag("ERROR_TAG_NOT_FOUND", 2012) +ERROR_TAG_NOT_PRESENT = make_flag("ERROR_TAG_NOT_PRESENT", 2013) +ERROR_DUPLICATE_TAG = make_flag("ERROR_DUPLICATE_TAG", 2014) +ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE = make_flag("ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE", 2015) +ERROR_PROFILE_NOT_FOUND = make_flag("ERROR_PROFILE_NOT_FOUND", 2016) +ERROR_INVALID_COLORSPACE = make_flag("ERROR_INVALID_COLORSPACE", 2017) +ERROR_ICM_NOT_ENABLED = make_flag("ERROR_ICM_NOT_ENABLED", 2018) +ERROR_DELETING_ICM_XFORM = make_flag("ERROR_DELETING_ICM_XFORM", 2019) +ERROR_INVALID_TRANSFORM = make_flag("ERROR_INVALID_TRANSFORM", 2020) +ERROR_COLORSPACE_MISMATCH = make_flag("ERROR_COLORSPACE_MISMATCH", 2021) +ERROR_INVALID_COLORINDEX = make_flag("ERROR_INVALID_COLORINDEX", 2022) +ERROR_PROFILE_DOES_NOT_MATCH_DEVICE = make_flag("ERROR_PROFILE_DOES_NOT_MATCH_DEVICE", 2023) +ERROR_CONNECTED_OTHER_PASSWORD = make_flag("ERROR_CONNECTED_OTHER_PASSWORD", 2108) +ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT = make_flag("ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT", 2109) +ERROR_BAD_USERNAME = make_flag("ERROR_BAD_USERNAME", 2202) +ERROR_NOT_CONNECTED = make_flag("ERROR_NOT_CONNECTED", 2250) +ERROR_OPEN_FILES = make_flag("ERROR_OPEN_FILES", 2401) +ERROR_ACTIVE_CONNECTIONS = make_flag("ERROR_ACTIVE_CONNECTIONS", 2402) +ERROR_DEVICE_IN_USE = make_flag("ERROR_DEVICE_IN_USE", 2404) +ERROR_UNKNOWN_PRINT_MONITOR = make_flag("ERROR_UNKNOWN_PRINT_MONITOR", 3000) +ERROR_PRINTER_DRIVER_IN_USE = make_flag("ERROR_PRINTER_DRIVER_IN_USE", 3001) +ERROR_SPOOL_FILE_NOT_FOUND = make_flag("ERROR_SPOOL_FILE_NOT_FOUND", 3002) +ERROR_SPL_NO_STARTDOC = make_flag("ERROR_SPL_NO_STARTDOC", 3003) +ERROR_SPL_NO_ADDJOB = make_flag("ERROR_SPL_NO_ADDJOB", 3004) +ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED = make_flag("ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED", 3005) +ERROR_PRINT_MONITOR_ALREADY_INSTALLED = make_flag("ERROR_PRINT_MONITOR_ALREADY_INSTALLED", 3006) +ERROR_INVALID_PRINT_MONITOR = make_flag("ERROR_INVALID_PRINT_MONITOR", 3007) +ERROR_PRINT_MONITOR_IN_USE = make_flag("ERROR_PRINT_MONITOR_IN_USE", 3008) +ERROR_PRINTER_HAS_JOBS_QUEUED = make_flag("ERROR_PRINTER_HAS_JOBS_QUEUED", 3009) +ERROR_SUCCESS_REBOOT_REQUIRED = make_flag("ERROR_SUCCESS_REBOOT_REQUIRED", 3010) +ERROR_SUCCESS_RESTART_REQUIRED = make_flag("ERROR_SUCCESS_RESTART_REQUIRED", 3011) +ERROR_PRINTER_NOT_FOUND = make_flag("ERROR_PRINTER_NOT_FOUND", 3012) +ERROR_PRINTER_DRIVER_WARNED = make_flag("ERROR_PRINTER_DRIVER_WARNED", 3013) +ERROR_PRINTER_DRIVER_BLOCKED = make_flag("ERROR_PRINTER_DRIVER_BLOCKED", 3014) +ERROR_PRINTER_DRIVER_PACKAGE_IN_USE = make_flag("ERROR_PRINTER_DRIVER_PACKAGE_IN_USE", 3015) +ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND = make_flag("ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND", 3016) +ERROR_FAIL_REBOOT_REQUIRED = make_flag("ERROR_FAIL_REBOOT_REQUIRED", 3017) +ERROR_FAIL_REBOOT_INITIATED = make_flag("ERROR_FAIL_REBOOT_INITIATED", 3018) +ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED = make_flag("ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED", 3019) +ERROR_PRINT_JOB_RESTART_REQUIRED = make_flag("ERROR_PRINT_JOB_RESTART_REQUIRED", 3020) +ERROR_INVALID_PRINTER_DRIVER_MANIFEST = make_flag("ERROR_INVALID_PRINTER_DRIVER_MANIFEST", 3021) +ERROR_PRINTER_NOT_SHAREABLE = make_flag("ERROR_PRINTER_NOT_SHAREABLE", 3022) +ERROR_REQUEST_PAUSED = make_flag("ERROR_REQUEST_PAUSED", 3050) +ERROR_APPEXEC_CONDITION_NOT_SATISFIED = make_flag("ERROR_APPEXEC_CONDITION_NOT_SATISFIED", 3060) +ERROR_APPEXEC_HANDLE_INVALIDATED = make_flag("ERROR_APPEXEC_HANDLE_INVALIDATED", 3061) +ERROR_APPEXEC_INVALID_HOST_GENERATION = make_flag("ERROR_APPEXEC_INVALID_HOST_GENERATION", 3062) +ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION = make_flag("ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION", 3063) +ERROR_APPEXEC_INVALID_HOST_STATE = make_flag("ERROR_APPEXEC_INVALID_HOST_STATE", 3064) +ERROR_APPEXEC_NO_DONOR = make_flag("ERROR_APPEXEC_NO_DONOR", 3065) +ERROR_APPEXEC_HOST_ID_MISMATCH = make_flag("ERROR_APPEXEC_HOST_ID_MISMATCH", 3066) +ERROR_APPEXEC_UNKNOWN_USER = make_flag("ERROR_APPEXEC_UNKNOWN_USER", 3067) +ERROR_IO_REISSUE_AS_CACHED = make_flag("ERROR_IO_REISSUE_AS_CACHED", 3950) +ERROR_WINS_INTERNAL = make_flag("ERROR_WINS_INTERNAL", 4000) +ERROR_CAN_NOT_DEL_LOCAL_WINS = make_flag("ERROR_CAN_NOT_DEL_LOCAL_WINS", 4001) +ERROR_STATIC_INIT = make_flag("ERROR_STATIC_INIT", 4002) +ERROR_INC_BACKUP = make_flag("ERROR_INC_BACKUP", 4003) +ERROR_FULL_BACKUP = make_flag("ERROR_FULL_BACKUP", 4004) +ERROR_REC_NON_EXISTENT = make_flag("ERROR_REC_NON_EXISTENT", 4005) +ERROR_RPL_NOT_ALLOWED = make_flag("ERROR_RPL_NOT_ALLOWED", 4006) +PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED = make_flag("PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED", 4050) +PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO = make_flag("PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO", 4051) +PEERDIST_ERROR_MISSING_DATA = make_flag("PEERDIST_ERROR_MISSING_DATA", 4052) +PEERDIST_ERROR_NO_MORE = make_flag("PEERDIST_ERROR_NO_MORE", 4053) +PEERDIST_ERROR_NOT_INITIALIZED = make_flag("PEERDIST_ERROR_NOT_INITIALIZED", 4054) +PEERDIST_ERROR_ALREADY_INITIALIZED = make_flag("PEERDIST_ERROR_ALREADY_INITIALIZED", 4055) +PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS = make_flag("PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS", 4056) +PEERDIST_ERROR_INVALIDATED = make_flag("PEERDIST_ERROR_INVALIDATED", 4057) +PEERDIST_ERROR_ALREADY_EXISTS = make_flag("PEERDIST_ERROR_ALREADY_EXISTS", 4058) +PEERDIST_ERROR_OPERATION_NOTFOUND = make_flag("PEERDIST_ERROR_OPERATION_NOTFOUND", 4059) +PEERDIST_ERROR_ALREADY_COMPLETED = make_flag("PEERDIST_ERROR_ALREADY_COMPLETED", 4060) +PEERDIST_ERROR_OUT_OF_BOUNDS = make_flag("PEERDIST_ERROR_OUT_OF_BOUNDS", 4061) +PEERDIST_ERROR_VERSION_UNSUPPORTED = make_flag("PEERDIST_ERROR_VERSION_UNSUPPORTED", 4062) +PEERDIST_ERROR_INVALID_CONFIGURATION = make_flag("PEERDIST_ERROR_INVALID_CONFIGURATION", 4063) +PEERDIST_ERROR_NOT_LICENSED = make_flag("PEERDIST_ERROR_NOT_LICENSED", 4064) +PEERDIST_ERROR_SERVICE_UNAVAILABLE = make_flag("PEERDIST_ERROR_SERVICE_UNAVAILABLE", 4065) +PEERDIST_ERROR_TRUST_FAILURE = make_flag("PEERDIST_ERROR_TRUST_FAILURE", 4066) +ERROR_DHCP_ADDRESS_CONFLICT = make_flag("ERROR_DHCP_ADDRESS_CONFLICT", 4100) +ERROR_WMI_GUID_NOT_FOUND = make_flag("ERROR_WMI_GUID_NOT_FOUND", 4200) +ERROR_WMI_INSTANCE_NOT_FOUND = make_flag("ERROR_WMI_INSTANCE_NOT_FOUND", 4201) +ERROR_WMI_ITEMID_NOT_FOUND = make_flag("ERROR_WMI_ITEMID_NOT_FOUND", 4202) +ERROR_WMI_TRY_AGAIN = make_flag("ERROR_WMI_TRY_AGAIN", 4203) +ERROR_WMI_DP_NOT_FOUND = make_flag("ERROR_WMI_DP_NOT_FOUND", 4204) +ERROR_WMI_UNRESOLVED_INSTANCE_REF = make_flag("ERROR_WMI_UNRESOLVED_INSTANCE_REF", 4205) +ERROR_WMI_ALREADY_ENABLED = make_flag("ERROR_WMI_ALREADY_ENABLED", 4206) +ERROR_WMI_GUID_DISCONNECTED = make_flag("ERROR_WMI_GUID_DISCONNECTED", 4207) +ERROR_WMI_SERVER_UNAVAILABLE = make_flag("ERROR_WMI_SERVER_UNAVAILABLE", 4208) +ERROR_WMI_DP_FAILED = make_flag("ERROR_WMI_DP_FAILED", 4209) +ERROR_WMI_INVALID_MOF = make_flag("ERROR_WMI_INVALID_MOF", 4210) +ERROR_WMI_INVALID_REGINFO = make_flag("ERROR_WMI_INVALID_REGINFO", 4211) +ERROR_WMI_ALREADY_DISABLED = make_flag("ERROR_WMI_ALREADY_DISABLED", 4212) +ERROR_WMI_READ_ONLY = make_flag("ERROR_WMI_READ_ONLY", 4213) +ERROR_WMI_SET_FAILURE = make_flag("ERROR_WMI_SET_FAILURE", 4214) +ERROR_NOT_APPCONTAINER = make_flag("ERROR_NOT_APPCONTAINER", 4250) +ERROR_APPCONTAINER_REQUIRED = make_flag("ERROR_APPCONTAINER_REQUIRED", 4251) +ERROR_NOT_SUPPORTED_IN_APPCONTAINER = make_flag("ERROR_NOT_SUPPORTED_IN_APPCONTAINER", 4252) +ERROR_INVALID_PACKAGE_SID_LENGTH = make_flag("ERROR_INVALID_PACKAGE_SID_LENGTH", 4253) +ERROR_INVALID_MEDIA = make_flag("ERROR_INVALID_MEDIA", 4300) +ERROR_INVALID_LIBRARY = make_flag("ERROR_INVALID_LIBRARY", 4301) +ERROR_INVALID_MEDIA_POOL = make_flag("ERROR_INVALID_MEDIA_POOL", 4302) +ERROR_DRIVE_MEDIA_MISMATCH = make_flag("ERROR_DRIVE_MEDIA_MISMATCH", 4303) +ERROR_MEDIA_OFFLINE = make_flag("ERROR_MEDIA_OFFLINE", 4304) +ERROR_LIBRARY_OFFLINE = make_flag("ERROR_LIBRARY_OFFLINE", 4305) +ERROR_EMPTY = make_flag("ERROR_EMPTY", 4306) +ERROR_NOT_EMPTY = make_flag("ERROR_NOT_EMPTY", 4307) +ERROR_MEDIA_UNAVAILABLE = make_flag("ERROR_MEDIA_UNAVAILABLE", 4308) +ERROR_RESOURCE_DISABLED = make_flag("ERROR_RESOURCE_DISABLED", 4309) +ERROR_INVALID_CLEANER = make_flag("ERROR_INVALID_CLEANER", 4310) +ERROR_UNABLE_TO_CLEAN = make_flag("ERROR_UNABLE_TO_CLEAN", 4311) +ERROR_OBJECT_NOT_FOUND = make_flag("ERROR_OBJECT_NOT_FOUND", 4312) +ERROR_DATABASE_FAILURE = make_flag("ERROR_DATABASE_FAILURE", 4313) +ERROR_DATABASE_FULL = make_flag("ERROR_DATABASE_FULL", 4314) +ERROR_MEDIA_INCOMPATIBLE = make_flag("ERROR_MEDIA_INCOMPATIBLE", 4315) +ERROR_RESOURCE_NOT_PRESENT = make_flag("ERROR_RESOURCE_NOT_PRESENT", 4316) +ERROR_INVALID_OPERATION = make_flag("ERROR_INVALID_OPERATION", 4317) +ERROR_MEDIA_NOT_AVAILABLE = make_flag("ERROR_MEDIA_NOT_AVAILABLE", 4318) +ERROR_DEVICE_NOT_AVAILABLE = make_flag("ERROR_DEVICE_NOT_AVAILABLE", 4319) +ERROR_REQUEST_REFUSED = make_flag("ERROR_REQUEST_REFUSED", 4320) +ERROR_INVALID_DRIVE_OBJECT = make_flag("ERROR_INVALID_DRIVE_OBJECT", 4321) +ERROR_LIBRARY_FULL = make_flag("ERROR_LIBRARY_FULL", 4322) +ERROR_MEDIUM_NOT_ACCESSIBLE = make_flag("ERROR_MEDIUM_NOT_ACCESSIBLE", 4323) +ERROR_UNABLE_TO_LOAD_MEDIUM = make_flag("ERROR_UNABLE_TO_LOAD_MEDIUM", 4324) +ERROR_UNABLE_TO_INVENTORY_DRIVE = make_flag("ERROR_UNABLE_TO_INVENTORY_DRIVE", 4325) +ERROR_UNABLE_TO_INVENTORY_SLOT = make_flag("ERROR_UNABLE_TO_INVENTORY_SLOT", 4326) +ERROR_UNABLE_TO_INVENTORY_TRANSPORT = make_flag("ERROR_UNABLE_TO_INVENTORY_TRANSPORT", 4327) +ERROR_TRANSPORT_FULL = make_flag("ERROR_TRANSPORT_FULL", 4328) +ERROR_CONTROLLING_IEPORT = make_flag("ERROR_CONTROLLING_IEPORT", 4329) +ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA = make_flag("ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA", 4330) +ERROR_CLEANER_SLOT_SET = make_flag("ERROR_CLEANER_SLOT_SET", 4331) +ERROR_CLEANER_SLOT_NOT_SET = make_flag("ERROR_CLEANER_SLOT_NOT_SET", 4332) +ERROR_CLEANER_CARTRIDGE_SPENT = make_flag("ERROR_CLEANER_CARTRIDGE_SPENT", 4333) +ERROR_UNEXPECTED_OMID = make_flag("ERROR_UNEXPECTED_OMID", 4334) +ERROR_CANT_DELETE_LAST_ITEM = make_flag("ERROR_CANT_DELETE_LAST_ITEM", 4335) +ERROR_MESSAGE_EXCEEDS_MAX_SIZE = make_flag("ERROR_MESSAGE_EXCEEDS_MAX_SIZE", 4336) +ERROR_VOLUME_CONTAINS_SYS_FILES = make_flag("ERROR_VOLUME_CONTAINS_SYS_FILES", 4337) +ERROR_INDIGENOUS_TYPE = make_flag("ERROR_INDIGENOUS_TYPE", 4338) +ERROR_NO_SUPPORTING_DRIVES = make_flag("ERROR_NO_SUPPORTING_DRIVES", 4339) +ERROR_CLEANER_CARTRIDGE_INSTALLED = make_flag("ERROR_CLEANER_CARTRIDGE_INSTALLED", 4340) +ERROR_IEPORT_FULL = make_flag("ERROR_IEPORT_FULL", 4341) +ERROR_FILE_OFFLINE = make_flag("ERROR_FILE_OFFLINE", 4350) +ERROR_REMOTE_STORAGE_NOT_ACTIVE = make_flag("ERROR_REMOTE_STORAGE_NOT_ACTIVE", 4351) +ERROR_REMOTE_STORAGE_MEDIA_ERROR = make_flag("ERROR_REMOTE_STORAGE_MEDIA_ERROR", 4352) +ERROR_NOT_A_REPARSE_POINT = make_flag("ERROR_NOT_A_REPARSE_POINT", 4390) +ERROR_REPARSE_ATTRIBUTE_CONFLICT = make_flag("ERROR_REPARSE_ATTRIBUTE_CONFLICT", 4391) +ERROR_INVALID_REPARSE_DATA = make_flag("ERROR_INVALID_REPARSE_DATA", 4392) +ERROR_REPARSE_TAG_INVALID = make_flag("ERROR_REPARSE_TAG_INVALID", 4393) +ERROR_REPARSE_TAG_MISMATCH = make_flag("ERROR_REPARSE_TAG_MISMATCH", 4394) +ERROR_REPARSE_POINT_ENCOUNTERED = make_flag("ERROR_REPARSE_POINT_ENCOUNTERED", 4395) +ERROR_APP_DATA_NOT_FOUND = make_flag("ERROR_APP_DATA_NOT_FOUND", 4400) +ERROR_APP_DATA_EXPIRED = make_flag("ERROR_APP_DATA_EXPIRED", 4401) +ERROR_APP_DATA_CORRUPT = make_flag("ERROR_APP_DATA_CORRUPT", 4402) +ERROR_APP_DATA_LIMIT_EXCEEDED = make_flag("ERROR_APP_DATA_LIMIT_EXCEEDED", 4403) +ERROR_APP_DATA_REBOOT_REQUIRED = make_flag("ERROR_APP_DATA_REBOOT_REQUIRED", 4404) +ERROR_SECUREBOOT_ROLLBACK_DETECTED = make_flag("ERROR_SECUREBOOT_ROLLBACK_DETECTED", 4420) +ERROR_SECUREBOOT_POLICY_VIOLATION = make_flag("ERROR_SECUREBOOT_POLICY_VIOLATION", 4421) +ERROR_SECUREBOOT_INVALID_POLICY = make_flag("ERROR_SECUREBOOT_INVALID_POLICY", 4422) +ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND = make_flag("ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND", 4423) +ERROR_SECUREBOOT_POLICY_NOT_SIGNED = make_flag("ERROR_SECUREBOOT_POLICY_NOT_SIGNED", 4424) +ERROR_SECUREBOOT_NOT_ENABLED = make_flag("ERROR_SECUREBOOT_NOT_ENABLED", 4425) +ERROR_SECUREBOOT_FILE_REPLACED = make_flag("ERROR_SECUREBOOT_FILE_REPLACED", 4426) +ERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED = make_flag("ERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED", 4427) +ERROR_SECUREBOOT_POLICY_UNKNOWN = make_flag("ERROR_SECUREBOOT_POLICY_UNKNOWN", 4428) +ERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION = make_flag("ERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION", 4429) +ERROR_SECUREBOOT_PLATFORM_ID_MISMATCH = make_flag("ERROR_SECUREBOOT_PLATFORM_ID_MISMATCH", 4430) +ERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED = make_flag("ERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED", 4431) +ERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH = make_flag("ERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH", 4432) +ERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING = make_flag("ERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING", 4433) +ERROR_SECUREBOOT_NOT_BASE_POLICY = make_flag("ERROR_SECUREBOOT_NOT_BASE_POLICY", 4434) +ERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY = make_flag("ERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY", 4435) +ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED = make_flag("ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED", 4440) +ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED = make_flag("ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED", 4441) +ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED = make_flag("ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED", 4442) +ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED = make_flag("ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED", 4443) +ERROR_ALREADY_HAS_STREAM_ID = make_flag("ERROR_ALREADY_HAS_STREAM_ID", 4444) +ERROR_SMR_GARBAGE_COLLECTION_REQUIRED = make_flag("ERROR_SMR_GARBAGE_COLLECTION_REQUIRED", 4445) +ERROR_WOF_WIM_HEADER_CORRUPT = make_flag("ERROR_WOF_WIM_HEADER_CORRUPT", 4446) +ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT = make_flag("ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT", 4447) +ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT = make_flag("ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT", 4448) +ERROR_VOLUME_NOT_SIS_ENABLED = make_flag("ERROR_VOLUME_NOT_SIS_ENABLED", 4500) +ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED = make_flag("ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED", 4550) +ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION = make_flag("ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION", 4551) +ERROR_SYSTEM_INTEGRITY_INVALID_POLICY = make_flag("ERROR_SYSTEM_INTEGRITY_INVALID_POLICY", 4552) +ERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED = make_flag("ERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED", 4553) +ERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES = make_flag("ERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES", 4554) +ERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED = make_flag("ERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED", 4555) +ERROR_VSM_NOT_INITIALIZED = make_flag("ERROR_VSM_NOT_INITIALIZED", 4560) +ERROR_VSM_DMA_PROTECTION_NOT_IN_USE = make_flag("ERROR_VSM_DMA_PROTECTION_NOT_IN_USE", 4561) +ERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED = make_flag("ERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED", 4570) +ERROR_PLATFORM_MANIFEST_INVALID = make_flag("ERROR_PLATFORM_MANIFEST_INVALID", 4571) +ERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED = make_flag("ERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED", 4572) +ERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED = make_flag("ERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED", 4573) +ERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND = make_flag("ERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND", 4574) +ERROR_PLATFORM_MANIFEST_NOT_ACTIVE = make_flag("ERROR_PLATFORM_MANIFEST_NOT_ACTIVE", 4575) +ERROR_PLATFORM_MANIFEST_NOT_SIGNED = make_flag("ERROR_PLATFORM_MANIFEST_NOT_SIGNED", 4576) +ERROR_DEPENDENT_RESOURCE_EXISTS = make_flag("ERROR_DEPENDENT_RESOURCE_EXISTS", 5001) +ERROR_DEPENDENCY_NOT_FOUND = make_flag("ERROR_DEPENDENCY_NOT_FOUND", 5002) +ERROR_DEPENDENCY_ALREADY_EXISTS = make_flag("ERROR_DEPENDENCY_ALREADY_EXISTS", 5003) +ERROR_RESOURCE_NOT_ONLINE = make_flag("ERROR_RESOURCE_NOT_ONLINE", 5004) +ERROR_HOST_NODE_NOT_AVAILABLE = make_flag("ERROR_HOST_NODE_NOT_AVAILABLE", 5005) +ERROR_RESOURCE_NOT_AVAILABLE = make_flag("ERROR_RESOURCE_NOT_AVAILABLE", 5006) +ERROR_RESOURCE_NOT_FOUND = make_flag("ERROR_RESOURCE_NOT_FOUND", 5007) +ERROR_SHUTDOWN_CLUSTER = make_flag("ERROR_SHUTDOWN_CLUSTER", 5008) +ERROR_CANT_EVICT_ACTIVE_NODE = make_flag("ERROR_CANT_EVICT_ACTIVE_NODE", 5009) +ERROR_OBJECT_ALREADY_EXISTS = make_flag("ERROR_OBJECT_ALREADY_EXISTS", 5010) +ERROR_OBJECT_IN_LIST = make_flag("ERROR_OBJECT_IN_LIST", 5011) +ERROR_GROUP_NOT_AVAILABLE = make_flag("ERROR_GROUP_NOT_AVAILABLE", 5012) +ERROR_GROUP_NOT_FOUND = make_flag("ERROR_GROUP_NOT_FOUND", 5013) +ERROR_GROUP_NOT_ONLINE = make_flag("ERROR_GROUP_NOT_ONLINE", 5014) +ERROR_HOST_NODE_NOT_RESOURCE_OWNER = make_flag("ERROR_HOST_NODE_NOT_RESOURCE_OWNER", 5015) +ERROR_HOST_NODE_NOT_GROUP_OWNER = make_flag("ERROR_HOST_NODE_NOT_GROUP_OWNER", 5016) +ERROR_RESMON_CREATE_FAILED = make_flag("ERROR_RESMON_CREATE_FAILED", 5017) +ERROR_RESMON_ONLINE_FAILED = make_flag("ERROR_RESMON_ONLINE_FAILED", 5018) +ERROR_RESOURCE_ONLINE = make_flag("ERROR_RESOURCE_ONLINE", 5019) +ERROR_QUORUM_RESOURCE = make_flag("ERROR_QUORUM_RESOURCE", 5020) +ERROR_NOT_QUORUM_CAPABLE = make_flag("ERROR_NOT_QUORUM_CAPABLE", 5021) +ERROR_CLUSTER_SHUTTING_DOWN = make_flag("ERROR_CLUSTER_SHUTTING_DOWN", 5022) +ERROR_INVALID_STATE = make_flag("ERROR_INVALID_STATE", 5023) +ERROR_RESOURCE_PROPERTIES_STORED = make_flag("ERROR_RESOURCE_PROPERTIES_STORED", 5024) +ERROR_NOT_QUORUM_CLASS = make_flag("ERROR_NOT_QUORUM_CLASS", 5025) +ERROR_CORE_RESOURCE = make_flag("ERROR_CORE_RESOURCE", 5026) +ERROR_QUORUM_RESOURCE_ONLINE_FAILED = make_flag("ERROR_QUORUM_RESOURCE_ONLINE_FAILED", 5027) +ERROR_QUORUMLOG_OPEN_FAILED = make_flag("ERROR_QUORUMLOG_OPEN_FAILED", 5028) +ERROR_CLUSTERLOG_CORRUPT = make_flag("ERROR_CLUSTERLOG_CORRUPT", 5029) +ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE = make_flag("ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE", 5030) +ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE = make_flag("ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE", 5031) +ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND = make_flag("ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND", 5032) +ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE = make_flag("ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE", 5033) +ERROR_QUORUM_OWNER_ALIVE = make_flag("ERROR_QUORUM_OWNER_ALIVE", 5034) +ERROR_NETWORK_NOT_AVAILABLE = make_flag("ERROR_NETWORK_NOT_AVAILABLE", 5035) +ERROR_NODE_NOT_AVAILABLE = make_flag("ERROR_NODE_NOT_AVAILABLE", 5036) +ERROR_ALL_NODES_NOT_AVAILABLE = make_flag("ERROR_ALL_NODES_NOT_AVAILABLE", 5037) +ERROR_RESOURCE_FAILED = make_flag("ERROR_RESOURCE_FAILED", 5038) +ERROR_CLUSTER_INVALID_NODE = make_flag("ERROR_CLUSTER_INVALID_NODE", 5039) +ERROR_CLUSTER_NODE_EXISTS = make_flag("ERROR_CLUSTER_NODE_EXISTS", 5040) +ERROR_CLUSTER_JOIN_IN_PROGRESS = make_flag("ERROR_CLUSTER_JOIN_IN_PROGRESS", 5041) +ERROR_CLUSTER_NODE_NOT_FOUND = make_flag("ERROR_CLUSTER_NODE_NOT_FOUND", 5042) +ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND = make_flag("ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND", 5043) +ERROR_CLUSTER_NETWORK_EXISTS = make_flag("ERROR_CLUSTER_NETWORK_EXISTS", 5044) +ERROR_CLUSTER_NETWORK_NOT_FOUND = make_flag("ERROR_CLUSTER_NETWORK_NOT_FOUND", 5045) +ERROR_CLUSTER_NETINTERFACE_EXISTS = make_flag("ERROR_CLUSTER_NETINTERFACE_EXISTS", 5046) +ERROR_CLUSTER_NETINTERFACE_NOT_FOUND = make_flag("ERROR_CLUSTER_NETINTERFACE_NOT_FOUND", 5047) +ERROR_CLUSTER_INVALID_REQUEST = make_flag("ERROR_CLUSTER_INVALID_REQUEST", 5048) +ERROR_CLUSTER_INVALID_NETWORK_PROVIDER = make_flag("ERROR_CLUSTER_INVALID_NETWORK_PROVIDER", 5049) +ERROR_CLUSTER_NODE_DOWN = make_flag("ERROR_CLUSTER_NODE_DOWN", 5050) +ERROR_CLUSTER_NODE_UNREACHABLE = make_flag("ERROR_CLUSTER_NODE_UNREACHABLE", 5051) +ERROR_CLUSTER_NODE_NOT_MEMBER = make_flag("ERROR_CLUSTER_NODE_NOT_MEMBER", 5052) +ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS = make_flag("ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS", 5053) +ERROR_CLUSTER_INVALID_NETWORK = make_flag("ERROR_CLUSTER_INVALID_NETWORK", 5054) +ERROR_CLUSTER_NODE_UP = make_flag("ERROR_CLUSTER_NODE_UP", 5056) +ERROR_CLUSTER_IPADDR_IN_USE = make_flag("ERROR_CLUSTER_IPADDR_IN_USE", 5057) +ERROR_CLUSTER_NODE_NOT_PAUSED = make_flag("ERROR_CLUSTER_NODE_NOT_PAUSED", 5058) +ERROR_CLUSTER_NO_SECURITY_CONTEXT = make_flag("ERROR_CLUSTER_NO_SECURITY_CONTEXT", 5059) +ERROR_CLUSTER_NETWORK_NOT_INTERNAL = make_flag("ERROR_CLUSTER_NETWORK_NOT_INTERNAL", 5060) +ERROR_CLUSTER_NODE_ALREADY_UP = make_flag("ERROR_CLUSTER_NODE_ALREADY_UP", 5061) +ERROR_CLUSTER_NODE_ALREADY_DOWN = make_flag("ERROR_CLUSTER_NODE_ALREADY_DOWN", 5062) +ERROR_CLUSTER_NETWORK_ALREADY_ONLINE = make_flag("ERROR_CLUSTER_NETWORK_ALREADY_ONLINE", 5063) +ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE = make_flag("ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE", 5064) +ERROR_CLUSTER_NODE_ALREADY_MEMBER = make_flag("ERROR_CLUSTER_NODE_ALREADY_MEMBER", 5065) +ERROR_CLUSTER_LAST_INTERNAL_NETWORK = make_flag("ERROR_CLUSTER_LAST_INTERNAL_NETWORK", 5066) +ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS = make_flag("ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS", 5067) +ERROR_INVALID_OPERATION_ON_QUORUM = make_flag("ERROR_INVALID_OPERATION_ON_QUORUM", 5068) +ERROR_DEPENDENCY_NOT_ALLOWED = make_flag("ERROR_DEPENDENCY_NOT_ALLOWED", 5069) +ERROR_CLUSTER_NODE_PAUSED = make_flag("ERROR_CLUSTER_NODE_PAUSED", 5070) +ERROR_NODE_CANT_HOST_RESOURCE = make_flag("ERROR_NODE_CANT_HOST_RESOURCE", 5071) +ERROR_CLUSTER_NODE_NOT_READY = make_flag("ERROR_CLUSTER_NODE_NOT_READY", 5072) +ERROR_CLUSTER_NODE_SHUTTING_DOWN = make_flag("ERROR_CLUSTER_NODE_SHUTTING_DOWN", 5073) +ERROR_CLUSTER_JOIN_ABORTED = make_flag("ERROR_CLUSTER_JOIN_ABORTED", 5074) +ERROR_CLUSTER_INCOMPATIBLE_VERSIONS = make_flag("ERROR_CLUSTER_INCOMPATIBLE_VERSIONS", 5075) +ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED = make_flag("ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED", 5076) +ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED = make_flag("ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED", 5077) +ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND = make_flag("ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND", 5078) +ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED = make_flag("ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED", 5079) +ERROR_CLUSTER_RESNAME_NOT_FOUND = make_flag("ERROR_CLUSTER_RESNAME_NOT_FOUND", 5080) +ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED = make_flag("ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED", 5081) +ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST = make_flag("ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST", 5082) +ERROR_CLUSTER_DATABASE_SEQMISMATCH = make_flag("ERROR_CLUSTER_DATABASE_SEQMISMATCH", 5083) +ERROR_RESMON_INVALID_STATE = make_flag("ERROR_RESMON_INVALID_STATE", 5084) +ERROR_CLUSTER_GUM_NOT_LOCKER = make_flag("ERROR_CLUSTER_GUM_NOT_LOCKER", 5085) +ERROR_QUORUM_DISK_NOT_FOUND = make_flag("ERROR_QUORUM_DISK_NOT_FOUND", 5086) +ERROR_DATABASE_BACKUP_CORRUPT = make_flag("ERROR_DATABASE_BACKUP_CORRUPT", 5087) +ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT = make_flag("ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT", 5088) +ERROR_RESOURCE_PROPERTY_UNCHANGEABLE = make_flag("ERROR_RESOURCE_PROPERTY_UNCHANGEABLE", 5089) +ERROR_NO_ADMIN_ACCESS_POINT = make_flag("ERROR_NO_ADMIN_ACCESS_POINT", 5090) +ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE = make_flag("ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE", 5890) +ERROR_CLUSTER_QUORUMLOG_NOT_FOUND = make_flag("ERROR_CLUSTER_QUORUMLOG_NOT_FOUND", 5891) +ERROR_CLUSTER_MEMBERSHIP_HALT = make_flag("ERROR_CLUSTER_MEMBERSHIP_HALT", 5892) +ERROR_CLUSTER_INSTANCE_ID_MISMATCH = make_flag("ERROR_CLUSTER_INSTANCE_ID_MISMATCH", 5893) +ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP = make_flag("ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP", 5894) +ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH = make_flag("ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH", 5895) +ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP = make_flag("ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP", 5896) +ERROR_CLUSTER_PARAMETER_MISMATCH = make_flag("ERROR_CLUSTER_PARAMETER_MISMATCH", 5897) +ERROR_NODE_CANNOT_BE_CLUSTERED = make_flag("ERROR_NODE_CANNOT_BE_CLUSTERED", 5898) +ERROR_CLUSTER_WRONG_OS_VERSION = make_flag("ERROR_CLUSTER_WRONG_OS_VERSION", 5899) +ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME = make_flag("ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME", 5900) +ERROR_CLUSCFG_ALREADY_COMMITTED = make_flag("ERROR_CLUSCFG_ALREADY_COMMITTED", 5901) +ERROR_CLUSCFG_ROLLBACK_FAILED = make_flag("ERROR_CLUSCFG_ROLLBACK_FAILED", 5902) +ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT = make_flag("ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT", 5903) +ERROR_CLUSTER_OLD_VERSION = make_flag("ERROR_CLUSTER_OLD_VERSION", 5904) +ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME = make_flag("ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME", 5905) +ERROR_CLUSTER_NO_NET_ADAPTERS = make_flag("ERROR_CLUSTER_NO_NET_ADAPTERS", 5906) +ERROR_CLUSTER_POISONED = make_flag("ERROR_CLUSTER_POISONED", 5907) +ERROR_CLUSTER_GROUP_MOVING = make_flag("ERROR_CLUSTER_GROUP_MOVING", 5908) +ERROR_CLUSTER_RESOURCE_TYPE_BUSY = make_flag("ERROR_CLUSTER_RESOURCE_TYPE_BUSY", 5909) +ERROR_RESOURCE_CALL_TIMED_OUT = make_flag("ERROR_RESOURCE_CALL_TIMED_OUT", 5910) +ERROR_INVALID_CLUSTER_IPV6_ADDRESS = make_flag("ERROR_INVALID_CLUSTER_IPV6_ADDRESS", 5911) +ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION = make_flag("ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION", 5912) +ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS = make_flag("ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS", 5913) +ERROR_CLUSTER_PARTIAL_SEND = make_flag("ERROR_CLUSTER_PARTIAL_SEND", 5914) +ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION = make_flag("ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION", 5915) +ERROR_CLUSTER_INVALID_STRING_TERMINATION = make_flag("ERROR_CLUSTER_INVALID_STRING_TERMINATION", 5916) +ERROR_CLUSTER_INVALID_STRING_FORMAT = make_flag("ERROR_CLUSTER_INVALID_STRING_FORMAT", 5917) +ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS = make_flag("ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS", 5918) +ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS = make_flag("ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS", 5919) +ERROR_CLUSTER_NULL_DATA = make_flag("ERROR_CLUSTER_NULL_DATA", 5920) +ERROR_CLUSTER_PARTIAL_READ = make_flag("ERROR_CLUSTER_PARTIAL_READ", 5921) +ERROR_CLUSTER_PARTIAL_WRITE = make_flag("ERROR_CLUSTER_PARTIAL_WRITE", 5922) +ERROR_CLUSTER_CANT_DESERIALIZE_DATA = make_flag("ERROR_CLUSTER_CANT_DESERIALIZE_DATA", 5923) +ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT = make_flag("ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT", 5924) +ERROR_CLUSTER_NO_QUORUM = make_flag("ERROR_CLUSTER_NO_QUORUM", 5925) +ERROR_CLUSTER_INVALID_IPV6_NETWORK = make_flag("ERROR_CLUSTER_INVALID_IPV6_NETWORK", 5926) +ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK = make_flag("ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK", 5927) +ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP = make_flag("ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP", 5928) +ERROR_DEPENDENCY_TREE_TOO_COMPLEX = make_flag("ERROR_DEPENDENCY_TREE_TOO_COMPLEX", 5929) +ERROR_EXCEPTION_IN_RESOURCE_CALL = make_flag("ERROR_EXCEPTION_IN_RESOURCE_CALL", 5930) +ERROR_CLUSTER_RHS_FAILED_INITIALIZATION = make_flag("ERROR_CLUSTER_RHS_FAILED_INITIALIZATION", 5931) +ERROR_CLUSTER_NOT_INSTALLED = make_flag("ERROR_CLUSTER_NOT_INSTALLED", 5932) +ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE = make_flag("ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE", 5933) +ERROR_CLUSTER_MAX_NODES_IN_CLUSTER = make_flag("ERROR_CLUSTER_MAX_NODES_IN_CLUSTER", 5934) +ERROR_CLUSTER_TOO_MANY_NODES = make_flag("ERROR_CLUSTER_TOO_MANY_NODES", 5935) +ERROR_CLUSTER_OBJECT_ALREADY_USED = make_flag("ERROR_CLUSTER_OBJECT_ALREADY_USED", 5936) +ERROR_NONCORE_GROUPS_FOUND = make_flag("ERROR_NONCORE_GROUPS_FOUND", 5937) +ERROR_FILE_SHARE_RESOURCE_CONFLICT = make_flag("ERROR_FILE_SHARE_RESOURCE_CONFLICT", 5938) +ERROR_CLUSTER_EVICT_INVALID_REQUEST = make_flag("ERROR_CLUSTER_EVICT_INVALID_REQUEST", 5939) +ERROR_CLUSTER_SINGLETON_RESOURCE = make_flag("ERROR_CLUSTER_SINGLETON_RESOURCE", 5940) +ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE = make_flag("ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE", 5941) +ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED = make_flag("ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED", 5942) +ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR = make_flag("ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR", 5943) +ERROR_CLUSTER_GROUP_BUSY = make_flag("ERROR_CLUSTER_GROUP_BUSY", 5944) +ERROR_CLUSTER_NOT_SHARED_VOLUME = make_flag("ERROR_CLUSTER_NOT_SHARED_VOLUME", 5945) +ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR = make_flag("ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR", 5946) +ERROR_CLUSTER_SHARED_VOLUMES_IN_USE = make_flag("ERROR_CLUSTER_SHARED_VOLUMES_IN_USE", 5947) +ERROR_CLUSTER_USE_SHARED_VOLUMES_API = make_flag("ERROR_CLUSTER_USE_SHARED_VOLUMES_API", 5948) +ERROR_CLUSTER_BACKUP_IN_PROGRESS = make_flag("ERROR_CLUSTER_BACKUP_IN_PROGRESS", 5949) +ERROR_NON_CSV_PATH = make_flag("ERROR_NON_CSV_PATH", 5950) +ERROR_CSV_VOLUME_NOT_LOCAL = make_flag("ERROR_CSV_VOLUME_NOT_LOCAL", 5951) +ERROR_CLUSTER_WATCHDOG_TERMINATING = make_flag("ERROR_CLUSTER_WATCHDOG_TERMINATING", 5952) +ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES = make_flag("ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES", 5953) +ERROR_CLUSTER_INVALID_NODE_WEIGHT = make_flag("ERROR_CLUSTER_INVALID_NODE_WEIGHT", 5954) +ERROR_CLUSTER_RESOURCE_VETOED_CALL = make_flag("ERROR_CLUSTER_RESOURCE_VETOED_CALL", 5955) +ERROR_RESMON_SYSTEM_RESOURCES_LACKING = make_flag("ERROR_RESMON_SYSTEM_RESOURCES_LACKING", 5956) +ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION = make_flag("ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION", 5957) +ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE = make_flag("ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE", 5958) +ERROR_CLUSTER_GROUP_QUEUED = make_flag("ERROR_CLUSTER_GROUP_QUEUED", 5959) +ERROR_CLUSTER_RESOURCE_LOCKED_STATUS = make_flag("ERROR_CLUSTER_RESOURCE_LOCKED_STATUS", 5960) +ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED = make_flag("ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED", 5961) +ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS = make_flag("ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS", 5962) +ERROR_CLUSTER_DISK_NOT_CONNECTED = make_flag("ERROR_CLUSTER_DISK_NOT_CONNECTED", 5963) +ERROR_DISK_NOT_CSV_CAPABLE = make_flag("ERROR_DISK_NOT_CSV_CAPABLE", 5964) +ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE = make_flag("ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE", 5965) +ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED = make_flag("ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED", 5966) +ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED = make_flag("ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED", 5967) +ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES = make_flag("ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES", 5968) +ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES = make_flag("ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES", 5969) +ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE = make_flag("ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE", 5970) +ERROR_CLUSTER_AFFINITY_CONFLICT = make_flag("ERROR_CLUSTER_AFFINITY_CONFLICT", 5971) +ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE = make_flag("ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE", 5972) +ERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS = make_flag("ERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS", 5973) +ERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED = make_flag("ERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED", 5974) +ERROR_CLUSTER_UPGRADE_RESTART_REQUIRED = make_flag("ERROR_CLUSTER_UPGRADE_RESTART_REQUIRED", 5975) +ERROR_CLUSTER_UPGRADE_IN_PROGRESS = make_flag("ERROR_CLUSTER_UPGRADE_IN_PROGRESS", 5976) +ERROR_CLUSTER_UPGRADE_INCOMPLETE = make_flag("ERROR_CLUSTER_UPGRADE_INCOMPLETE", 5977) +ERROR_CLUSTER_NODE_IN_GRACE_PERIOD = make_flag("ERROR_CLUSTER_NODE_IN_GRACE_PERIOD", 5978) +ERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT = make_flag("ERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT", 5979) +ERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER = make_flag("ERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER", 5980) +ERROR_CLUSTER_RESOURCE_NOT_MONITORED = make_flag("ERROR_CLUSTER_RESOURCE_NOT_MONITORED", 5981) +ERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED = make_flag("ERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED", 5982) +ERROR_CLUSTER_RESOURCE_IS_REPLICATED = make_flag("ERROR_CLUSTER_RESOURCE_IS_REPLICATED", 5983) +ERROR_CLUSTER_NODE_ISOLATED = make_flag("ERROR_CLUSTER_NODE_ISOLATED", 5984) +ERROR_CLUSTER_NODE_QUARANTINED = make_flag("ERROR_CLUSTER_NODE_QUARANTINED", 5985) +ERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED = make_flag("ERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED", 5986) +ERROR_CLUSTER_SPACE_DEGRADED = make_flag("ERROR_CLUSTER_SPACE_DEGRADED", 5987) +ERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED = make_flag("ERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED", 5988) +ERROR_CLUSTER_CSV_INVALID_HANDLE = make_flag("ERROR_CLUSTER_CSV_INVALID_HANDLE", 5989) +ERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR = make_flag("ERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR", 5990) +ERROR_GROUPSET_NOT_AVAILABLE = make_flag("ERROR_GROUPSET_NOT_AVAILABLE", 5991) +ERROR_GROUPSET_NOT_FOUND = make_flag("ERROR_GROUPSET_NOT_FOUND", 5992) +ERROR_GROUPSET_CANT_PROVIDE = make_flag("ERROR_GROUPSET_CANT_PROVIDE", 5993) +ERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND = make_flag("ERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND", 5994) +ERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY = make_flag("ERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY", 5995) +ERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION = make_flag("ERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION", 5996) +ERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS = make_flag("ERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS", 5997) +ERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME = make_flag("ERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME", 5998) +ERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE = make_flag("ERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE", 5999) +ERROR_ENCRYPTION_FAILED = make_flag("ERROR_ENCRYPTION_FAILED", 6000) +ERROR_DECRYPTION_FAILED = make_flag("ERROR_DECRYPTION_FAILED", 6001) +ERROR_FILE_ENCRYPTED = make_flag("ERROR_FILE_ENCRYPTED", 6002) +ERROR_NO_RECOVERY_POLICY = make_flag("ERROR_NO_RECOVERY_POLICY", 6003) +ERROR_NO_EFS = make_flag("ERROR_NO_EFS", 6004) +ERROR_WRONG_EFS = make_flag("ERROR_WRONG_EFS", 6005) +ERROR_NO_USER_KEYS = make_flag("ERROR_NO_USER_KEYS", 6006) +ERROR_FILE_NOT_ENCRYPTED = make_flag("ERROR_FILE_NOT_ENCRYPTED", 6007) +ERROR_NOT_EXPORT_FORMAT = make_flag("ERROR_NOT_EXPORT_FORMAT", 6008) +ERROR_FILE_READ_ONLY = make_flag("ERROR_FILE_READ_ONLY", 6009) +ERROR_DIR_EFS_DISALLOWED = make_flag("ERROR_DIR_EFS_DISALLOWED", 6010) +ERROR_EFS_SERVER_NOT_TRUSTED = make_flag("ERROR_EFS_SERVER_NOT_TRUSTED", 6011) +ERROR_BAD_RECOVERY_POLICY = make_flag("ERROR_BAD_RECOVERY_POLICY", 6012) +ERROR_EFS_ALG_BLOB_TOO_BIG = make_flag("ERROR_EFS_ALG_BLOB_TOO_BIG", 6013) +ERROR_VOLUME_NOT_SUPPORT_EFS = make_flag("ERROR_VOLUME_NOT_SUPPORT_EFS", 6014) +ERROR_EFS_DISABLED = make_flag("ERROR_EFS_DISABLED", 6015) +ERROR_EFS_VERSION_NOT_SUPPORT = make_flag("ERROR_EFS_VERSION_NOT_SUPPORT", 6016) +ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE = make_flag("ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE", 6017) +ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER = make_flag("ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER", 6018) +ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE = make_flag("ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE", 6019) +ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE = make_flag("ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE", 6020) +ERROR_CS_ENCRYPTION_FILE_NOT_CSE = make_flag("ERROR_CS_ENCRYPTION_FILE_NOT_CSE", 6021) +ERROR_ENCRYPTION_POLICY_DENIES_OPERATION = make_flag("ERROR_ENCRYPTION_POLICY_DENIES_OPERATION", 6022) +ERROR_WIP_ENCRYPTION_FAILED = make_flag("ERROR_WIP_ENCRYPTION_FAILED", 6023) +ERROR_NO_BROWSER_SERVERS_FOUND = make_flag("ERROR_NO_BROWSER_SERVERS_FOUND", 6118) +SCHED_E_SERVICE_NOT_LOCALSYSTEM = make_flag("SCHED_E_SERVICE_NOT_LOCALSYSTEM", 6200) +ERROR_LOG_SECTOR_INVALID = make_flag("ERROR_LOG_SECTOR_INVALID", 6600) +ERROR_LOG_SECTOR_PARITY_INVALID = make_flag("ERROR_LOG_SECTOR_PARITY_INVALID", 6601) +ERROR_LOG_SECTOR_REMAPPED = make_flag("ERROR_LOG_SECTOR_REMAPPED", 6602) +ERROR_LOG_BLOCK_INCOMPLETE = make_flag("ERROR_LOG_BLOCK_INCOMPLETE", 6603) +ERROR_LOG_INVALID_RANGE = make_flag("ERROR_LOG_INVALID_RANGE", 6604) +ERROR_LOG_BLOCKS_EXHAUSTED = make_flag("ERROR_LOG_BLOCKS_EXHAUSTED", 6605) +ERROR_LOG_READ_CONTEXT_INVALID = make_flag("ERROR_LOG_READ_CONTEXT_INVALID", 6606) +ERROR_LOG_RESTART_INVALID = make_flag("ERROR_LOG_RESTART_INVALID", 6607) +ERROR_LOG_BLOCK_VERSION = make_flag("ERROR_LOG_BLOCK_VERSION", 6608) +ERROR_LOG_BLOCK_INVALID = make_flag("ERROR_LOG_BLOCK_INVALID", 6609) +ERROR_LOG_READ_MODE_INVALID = make_flag("ERROR_LOG_READ_MODE_INVALID", 6610) +ERROR_LOG_NO_RESTART = make_flag("ERROR_LOG_NO_RESTART", 6611) +ERROR_LOG_METADATA_CORRUPT = make_flag("ERROR_LOG_METADATA_CORRUPT", 6612) +ERROR_LOG_METADATA_INVALID = make_flag("ERROR_LOG_METADATA_INVALID", 6613) +ERROR_LOG_METADATA_INCONSISTENT = make_flag("ERROR_LOG_METADATA_INCONSISTENT", 6614) +ERROR_LOG_RESERVATION_INVALID = make_flag("ERROR_LOG_RESERVATION_INVALID", 6615) +ERROR_LOG_CANT_DELETE = make_flag("ERROR_LOG_CANT_DELETE", 6616) +ERROR_LOG_CONTAINER_LIMIT_EXCEEDED = make_flag("ERROR_LOG_CONTAINER_LIMIT_EXCEEDED", 6617) +ERROR_LOG_START_OF_LOG = make_flag("ERROR_LOG_START_OF_LOG", 6618) +ERROR_LOG_POLICY_ALREADY_INSTALLED = make_flag("ERROR_LOG_POLICY_ALREADY_INSTALLED", 6619) +ERROR_LOG_POLICY_NOT_INSTALLED = make_flag("ERROR_LOG_POLICY_NOT_INSTALLED", 6620) +ERROR_LOG_POLICY_INVALID = make_flag("ERROR_LOG_POLICY_INVALID", 6621) +ERROR_LOG_POLICY_CONFLICT = make_flag("ERROR_LOG_POLICY_CONFLICT", 6622) +ERROR_LOG_PINNED_ARCHIVE_TAIL = make_flag("ERROR_LOG_PINNED_ARCHIVE_TAIL", 6623) +ERROR_LOG_RECORD_NONEXISTENT = make_flag("ERROR_LOG_RECORD_NONEXISTENT", 6624) +ERROR_LOG_RECORDS_RESERVED_INVALID = make_flag("ERROR_LOG_RECORDS_RESERVED_INVALID", 6625) +ERROR_LOG_SPACE_RESERVED_INVALID = make_flag("ERROR_LOG_SPACE_RESERVED_INVALID", 6626) +ERROR_LOG_TAIL_INVALID = make_flag("ERROR_LOG_TAIL_INVALID", 6627) +ERROR_LOG_FULL = make_flag("ERROR_LOG_FULL", 6628) +ERROR_COULD_NOT_RESIZE_LOG = make_flag("ERROR_COULD_NOT_RESIZE_LOG", 6629) +ERROR_LOG_MULTIPLEXED = make_flag("ERROR_LOG_MULTIPLEXED", 6630) +ERROR_LOG_DEDICATED = make_flag("ERROR_LOG_DEDICATED", 6631) +ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS = make_flag("ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS", 6632) +ERROR_LOG_ARCHIVE_IN_PROGRESS = make_flag("ERROR_LOG_ARCHIVE_IN_PROGRESS", 6633) +ERROR_LOG_EPHEMERAL = make_flag("ERROR_LOG_EPHEMERAL", 6634) +ERROR_LOG_NOT_ENOUGH_CONTAINERS = make_flag("ERROR_LOG_NOT_ENOUGH_CONTAINERS", 6635) +ERROR_LOG_CLIENT_ALREADY_REGISTERED = make_flag("ERROR_LOG_CLIENT_ALREADY_REGISTERED", 6636) +ERROR_LOG_CLIENT_NOT_REGISTERED = make_flag("ERROR_LOG_CLIENT_NOT_REGISTERED", 6637) +ERROR_LOG_FULL_HANDLER_IN_PROGRESS = make_flag("ERROR_LOG_FULL_HANDLER_IN_PROGRESS", 6638) +ERROR_LOG_CONTAINER_READ_FAILED = make_flag("ERROR_LOG_CONTAINER_READ_FAILED", 6639) +ERROR_LOG_CONTAINER_WRITE_FAILED = make_flag("ERROR_LOG_CONTAINER_WRITE_FAILED", 6640) +ERROR_LOG_CONTAINER_OPEN_FAILED = make_flag("ERROR_LOG_CONTAINER_OPEN_FAILED", 6641) +ERROR_LOG_CONTAINER_STATE_INVALID = make_flag("ERROR_LOG_CONTAINER_STATE_INVALID", 6642) +ERROR_LOG_STATE_INVALID = make_flag("ERROR_LOG_STATE_INVALID", 6643) +ERROR_LOG_PINNED = make_flag("ERROR_LOG_PINNED", 6644) +ERROR_LOG_METADATA_FLUSH_FAILED = make_flag("ERROR_LOG_METADATA_FLUSH_FAILED", 6645) +ERROR_LOG_INCONSISTENT_SECURITY = make_flag("ERROR_LOG_INCONSISTENT_SECURITY", 6646) +ERROR_LOG_APPENDED_FLUSH_FAILED = make_flag("ERROR_LOG_APPENDED_FLUSH_FAILED", 6647) +ERROR_LOG_PINNED_RESERVATION = make_flag("ERROR_LOG_PINNED_RESERVATION", 6648) +ERROR_INVALID_TRANSACTION = make_flag("ERROR_INVALID_TRANSACTION", 6700) +ERROR_TRANSACTION_NOT_ACTIVE = make_flag("ERROR_TRANSACTION_NOT_ACTIVE", 6701) +ERROR_TRANSACTION_REQUEST_NOT_VALID = make_flag("ERROR_TRANSACTION_REQUEST_NOT_VALID", 6702) +ERROR_TRANSACTION_NOT_REQUESTED = make_flag("ERROR_TRANSACTION_NOT_REQUESTED", 6703) +ERROR_TRANSACTION_ALREADY_ABORTED = make_flag("ERROR_TRANSACTION_ALREADY_ABORTED", 6704) +ERROR_TRANSACTION_ALREADY_COMMITTED = make_flag("ERROR_TRANSACTION_ALREADY_COMMITTED", 6705) +ERROR_TM_INITIALIZATION_FAILED = make_flag("ERROR_TM_INITIALIZATION_FAILED", 6706) +ERROR_RESOURCEMANAGER_READ_ONLY = make_flag("ERROR_RESOURCEMANAGER_READ_ONLY", 6707) +ERROR_TRANSACTION_NOT_JOINED = make_flag("ERROR_TRANSACTION_NOT_JOINED", 6708) +ERROR_TRANSACTION_SUPERIOR_EXISTS = make_flag("ERROR_TRANSACTION_SUPERIOR_EXISTS", 6709) +ERROR_CRM_PROTOCOL_ALREADY_EXISTS = make_flag("ERROR_CRM_PROTOCOL_ALREADY_EXISTS", 6710) +ERROR_TRANSACTION_PROPAGATION_FAILED = make_flag("ERROR_TRANSACTION_PROPAGATION_FAILED", 6711) +ERROR_CRM_PROTOCOL_NOT_FOUND = make_flag("ERROR_CRM_PROTOCOL_NOT_FOUND", 6712) +ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER = make_flag("ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER", 6713) +ERROR_CURRENT_TRANSACTION_NOT_VALID = make_flag("ERROR_CURRENT_TRANSACTION_NOT_VALID", 6714) +ERROR_TRANSACTION_NOT_FOUND = make_flag("ERROR_TRANSACTION_NOT_FOUND", 6715) +ERROR_RESOURCEMANAGER_NOT_FOUND = make_flag("ERROR_RESOURCEMANAGER_NOT_FOUND", 6716) +ERROR_ENLISTMENT_NOT_FOUND = make_flag("ERROR_ENLISTMENT_NOT_FOUND", 6717) +ERROR_TRANSACTIONMANAGER_NOT_FOUND = make_flag("ERROR_TRANSACTIONMANAGER_NOT_FOUND", 6718) +ERROR_TRANSACTIONMANAGER_NOT_ONLINE = make_flag("ERROR_TRANSACTIONMANAGER_NOT_ONLINE", 6719) +ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION = make_flag("ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION", 6720) +ERROR_TRANSACTION_NOT_ROOT = make_flag("ERROR_TRANSACTION_NOT_ROOT", 6721) +ERROR_TRANSACTION_OBJECT_EXPIRED = make_flag("ERROR_TRANSACTION_OBJECT_EXPIRED", 6722) +ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED = make_flag("ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED", 6723) +ERROR_TRANSACTION_RECORD_TOO_LONG = make_flag("ERROR_TRANSACTION_RECORD_TOO_LONG", 6724) +ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED = make_flag("ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED", 6725) +ERROR_TRANSACTION_INTEGRITY_VIOLATED = make_flag("ERROR_TRANSACTION_INTEGRITY_VIOLATED", 6726) +ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH = make_flag("ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH", 6727) +ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT = make_flag("ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT", 6728) +ERROR_TRANSACTION_MUST_WRITETHROUGH = make_flag("ERROR_TRANSACTION_MUST_WRITETHROUGH", 6729) +ERROR_TRANSACTION_NO_SUPERIOR = make_flag("ERROR_TRANSACTION_NO_SUPERIOR", 6730) +ERROR_HEURISTIC_DAMAGE_POSSIBLE = make_flag("ERROR_HEURISTIC_DAMAGE_POSSIBLE", 6731) +ERROR_TRANSACTIONAL_CONFLICT = make_flag("ERROR_TRANSACTIONAL_CONFLICT", 6800) +ERROR_RM_NOT_ACTIVE = make_flag("ERROR_RM_NOT_ACTIVE", 6801) +ERROR_RM_METADATA_CORRUPT = make_flag("ERROR_RM_METADATA_CORRUPT", 6802) +ERROR_DIRECTORY_NOT_RM = make_flag("ERROR_DIRECTORY_NOT_RM", 6803) +ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE = make_flag("ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE", 6805) +ERROR_LOG_RESIZE_INVALID_SIZE = make_flag("ERROR_LOG_RESIZE_INVALID_SIZE", 6806) +ERROR_OBJECT_NO_LONGER_EXISTS = make_flag("ERROR_OBJECT_NO_LONGER_EXISTS", 6807) +ERROR_STREAM_MINIVERSION_NOT_FOUND = make_flag("ERROR_STREAM_MINIVERSION_NOT_FOUND", 6808) +ERROR_STREAM_MINIVERSION_NOT_VALID = make_flag("ERROR_STREAM_MINIVERSION_NOT_VALID", 6809) +ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION = make_flag("ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION", 6810) +ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT = make_flag("ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT", 6811) +ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS = make_flag("ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS", 6812) +ERROR_REMOTE_FILE_VERSION_MISMATCH = make_flag("ERROR_REMOTE_FILE_VERSION_MISMATCH", 6814) +ERROR_HANDLE_NO_LONGER_VALID = make_flag("ERROR_HANDLE_NO_LONGER_VALID", 6815) +ERROR_NO_TXF_METADATA = make_flag("ERROR_NO_TXF_METADATA", 6816) +ERROR_LOG_CORRUPTION_DETECTED = make_flag("ERROR_LOG_CORRUPTION_DETECTED", 6817) +ERROR_CANT_RECOVER_WITH_HANDLE_OPEN = make_flag("ERROR_CANT_RECOVER_WITH_HANDLE_OPEN", 6818) +ERROR_RM_DISCONNECTED = make_flag("ERROR_RM_DISCONNECTED", 6819) +ERROR_ENLISTMENT_NOT_SUPERIOR = make_flag("ERROR_ENLISTMENT_NOT_SUPERIOR", 6820) +ERROR_RECOVERY_NOT_NEEDED = make_flag("ERROR_RECOVERY_NOT_NEEDED", 6821) +ERROR_RM_ALREADY_STARTED = make_flag("ERROR_RM_ALREADY_STARTED", 6822) +ERROR_FILE_IDENTITY_NOT_PERSISTENT = make_flag("ERROR_FILE_IDENTITY_NOT_PERSISTENT", 6823) +ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY = make_flag("ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY", 6824) +ERROR_CANT_CROSS_RM_BOUNDARY = make_flag("ERROR_CANT_CROSS_RM_BOUNDARY", 6825) +ERROR_TXF_DIR_NOT_EMPTY = make_flag("ERROR_TXF_DIR_NOT_EMPTY", 6826) +ERROR_INDOUBT_TRANSACTIONS_EXIST = make_flag("ERROR_INDOUBT_TRANSACTIONS_EXIST", 6827) +ERROR_TM_VOLATILE = make_flag("ERROR_TM_VOLATILE", 6828) +ERROR_ROLLBACK_TIMER_EXPIRED = make_flag("ERROR_ROLLBACK_TIMER_EXPIRED", 6829) +ERROR_TXF_ATTRIBUTE_CORRUPT = make_flag("ERROR_TXF_ATTRIBUTE_CORRUPT", 6830) +ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION = make_flag("ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION", 6831) +ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED = make_flag("ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED", 6832) +ERROR_LOG_GROWTH_FAILED = make_flag("ERROR_LOG_GROWTH_FAILED", 6833) +ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE = make_flag("ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE", 6834) +ERROR_TXF_METADATA_ALREADY_PRESENT = make_flag("ERROR_TXF_METADATA_ALREADY_PRESENT", 6835) +ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET = make_flag("ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET", 6836) +ERROR_TRANSACTION_REQUIRED_PROMOTION = make_flag("ERROR_TRANSACTION_REQUIRED_PROMOTION", 6837) +ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION = make_flag("ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION", 6838) +ERROR_TRANSACTIONS_NOT_FROZEN = make_flag("ERROR_TRANSACTIONS_NOT_FROZEN", 6839) +ERROR_TRANSACTION_FREEZE_IN_PROGRESS = make_flag("ERROR_TRANSACTION_FREEZE_IN_PROGRESS", 6840) +ERROR_NOT_SNAPSHOT_VOLUME = make_flag("ERROR_NOT_SNAPSHOT_VOLUME", 6841) +ERROR_NO_SAVEPOINT_WITH_OPEN_FILES = make_flag("ERROR_NO_SAVEPOINT_WITH_OPEN_FILES", 6842) +ERROR_DATA_LOST_REPAIR = make_flag("ERROR_DATA_LOST_REPAIR", 6843) +ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION = make_flag("ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION", 6844) +ERROR_TM_IDENTITY_MISMATCH = make_flag("ERROR_TM_IDENTITY_MISMATCH", 6845) +ERROR_FLOATED_SECTION = make_flag("ERROR_FLOATED_SECTION", 6846) +ERROR_CANNOT_ACCEPT_TRANSACTED_WORK = make_flag("ERROR_CANNOT_ACCEPT_TRANSACTED_WORK", 6847) +ERROR_CANNOT_ABORT_TRANSACTIONS = make_flag("ERROR_CANNOT_ABORT_TRANSACTIONS", 6848) +ERROR_BAD_CLUSTERS = make_flag("ERROR_BAD_CLUSTERS", 6849) +ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION = make_flag("ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION", 6850) +ERROR_VOLUME_DIRTY = make_flag("ERROR_VOLUME_DIRTY", 6851) +ERROR_NO_LINK_TRACKING_IN_TRANSACTION = make_flag("ERROR_NO_LINK_TRACKING_IN_TRANSACTION", 6852) +ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION = make_flag("ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION", 6853) +ERROR_EXPIRED_HANDLE = make_flag("ERROR_EXPIRED_HANDLE", 6854) +ERROR_TRANSACTION_NOT_ENLISTED = make_flag("ERROR_TRANSACTION_NOT_ENLISTED", 6855) +ERROR_CTX_WINSTATION_NAME_INVALID = make_flag("ERROR_CTX_WINSTATION_NAME_INVALID", 7001) +ERROR_CTX_INVALID_PD = make_flag("ERROR_CTX_INVALID_PD", 7002) +ERROR_CTX_PD_NOT_FOUND = make_flag("ERROR_CTX_PD_NOT_FOUND", 7003) +ERROR_CTX_WD_NOT_FOUND = make_flag("ERROR_CTX_WD_NOT_FOUND", 7004) +ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY = make_flag("ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY", 7005) +ERROR_CTX_SERVICE_NAME_COLLISION = make_flag("ERROR_CTX_SERVICE_NAME_COLLISION", 7006) +ERROR_CTX_CLOSE_PENDING = make_flag("ERROR_CTX_CLOSE_PENDING", 7007) +ERROR_CTX_NO_OUTBUF = make_flag("ERROR_CTX_NO_OUTBUF", 7008) +ERROR_CTX_MODEM_INF_NOT_FOUND = make_flag("ERROR_CTX_MODEM_INF_NOT_FOUND", 7009) +ERROR_CTX_INVALID_MODEMNAME = make_flag("ERROR_CTX_INVALID_MODEMNAME", 7010) +ERROR_CTX_MODEM_RESPONSE_ERROR = make_flag("ERROR_CTX_MODEM_RESPONSE_ERROR", 7011) +ERROR_CTX_MODEM_RESPONSE_TIMEOUT = make_flag("ERROR_CTX_MODEM_RESPONSE_TIMEOUT", 7012) +ERROR_CTX_MODEM_RESPONSE_NO_CARRIER = make_flag("ERROR_CTX_MODEM_RESPONSE_NO_CARRIER", 7013) +ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE = make_flag("ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE", 7014) +ERROR_CTX_MODEM_RESPONSE_BUSY = make_flag("ERROR_CTX_MODEM_RESPONSE_BUSY", 7015) +ERROR_CTX_MODEM_RESPONSE_VOICE = make_flag("ERROR_CTX_MODEM_RESPONSE_VOICE", 7016) +ERROR_CTX_TD_ERROR = make_flag("ERROR_CTX_TD_ERROR", 7017) +ERROR_CTX_WINSTATION_NOT_FOUND = make_flag("ERROR_CTX_WINSTATION_NOT_FOUND", 7022) +ERROR_CTX_WINSTATION_ALREADY_EXISTS = make_flag("ERROR_CTX_WINSTATION_ALREADY_EXISTS", 7023) +ERROR_CTX_WINSTATION_BUSY = make_flag("ERROR_CTX_WINSTATION_BUSY", 7024) +ERROR_CTX_BAD_VIDEO_MODE = make_flag("ERROR_CTX_BAD_VIDEO_MODE", 7025) +ERROR_CTX_GRAPHICS_INVALID = make_flag("ERROR_CTX_GRAPHICS_INVALID", 7035) +ERROR_CTX_LOGON_DISABLED = make_flag("ERROR_CTX_LOGON_DISABLED", 7037) +ERROR_CTX_NOT_CONSOLE = make_flag("ERROR_CTX_NOT_CONSOLE", 7038) +ERROR_CTX_CLIENT_QUERY_TIMEOUT = make_flag("ERROR_CTX_CLIENT_QUERY_TIMEOUT", 7040) +ERROR_CTX_CONSOLE_DISCONNECT = make_flag("ERROR_CTX_CONSOLE_DISCONNECT", 7041) +ERROR_CTX_CONSOLE_CONNECT = make_flag("ERROR_CTX_CONSOLE_CONNECT", 7042) +ERROR_CTX_SHADOW_DENIED = make_flag("ERROR_CTX_SHADOW_DENIED", 7044) +ERROR_CTX_WINSTATION_ACCESS_DENIED = make_flag("ERROR_CTX_WINSTATION_ACCESS_DENIED", 7045) +ERROR_CTX_INVALID_WD = make_flag("ERROR_CTX_INVALID_WD", 7049) +ERROR_CTX_SHADOW_INVALID = make_flag("ERROR_CTX_SHADOW_INVALID", 7050) +ERROR_CTX_SHADOW_DISABLED = make_flag("ERROR_CTX_SHADOW_DISABLED", 7051) +ERROR_CTX_CLIENT_LICENSE_IN_USE = make_flag("ERROR_CTX_CLIENT_LICENSE_IN_USE", 7052) +ERROR_CTX_CLIENT_LICENSE_NOT_SET = make_flag("ERROR_CTX_CLIENT_LICENSE_NOT_SET", 7053) +ERROR_CTX_LICENSE_NOT_AVAILABLE = make_flag("ERROR_CTX_LICENSE_NOT_AVAILABLE", 7054) +ERROR_CTX_LICENSE_CLIENT_INVALID = make_flag("ERROR_CTX_LICENSE_CLIENT_INVALID", 7055) +ERROR_CTX_LICENSE_EXPIRED = make_flag("ERROR_CTX_LICENSE_EXPIRED", 7056) +ERROR_CTX_SHADOW_NOT_RUNNING = make_flag("ERROR_CTX_SHADOW_NOT_RUNNING", 7057) +ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE = make_flag("ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE", 7058) +ERROR_ACTIVATION_COUNT_EXCEEDED = make_flag("ERROR_ACTIVATION_COUNT_EXCEEDED", 7059) +ERROR_CTX_WINSTATIONS_DISABLED = make_flag("ERROR_CTX_WINSTATIONS_DISABLED", 7060) +ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED = make_flag("ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED", 7061) +ERROR_CTX_SESSION_IN_USE = make_flag("ERROR_CTX_SESSION_IN_USE", 7062) +ERROR_CTX_NO_FORCE_LOGOFF = make_flag("ERROR_CTX_NO_FORCE_LOGOFF", 7063) +ERROR_CTX_ACCOUNT_RESTRICTION = make_flag("ERROR_CTX_ACCOUNT_RESTRICTION", 7064) +ERROR_RDP_PROTOCOL_ERROR = make_flag("ERROR_RDP_PROTOCOL_ERROR", 7065) +ERROR_CTX_CDM_CONNECT = make_flag("ERROR_CTX_CDM_CONNECT", 7066) +ERROR_CTX_CDM_DISCONNECT = make_flag("ERROR_CTX_CDM_DISCONNECT", 7067) +ERROR_CTX_SECURITY_LAYER_ERROR = make_flag("ERROR_CTX_SECURITY_LAYER_ERROR", 7068) +ERROR_TS_INCOMPATIBLE_SESSIONS = make_flag("ERROR_TS_INCOMPATIBLE_SESSIONS", 7069) +ERROR_TS_VIDEO_SUBSYSTEM_ERROR = make_flag("ERROR_TS_VIDEO_SUBSYSTEM_ERROR", 7070) +FRS_ERR_INVALID_API_SEQUENCE = make_flag("FRS_ERR_INVALID_API_SEQUENCE", 8001) +FRS_ERR_STARTING_SERVICE = make_flag("FRS_ERR_STARTING_SERVICE", 8002) +FRS_ERR_STOPPING_SERVICE = make_flag("FRS_ERR_STOPPING_SERVICE", 8003) +FRS_ERR_INTERNAL_API = make_flag("FRS_ERR_INTERNAL_API", 8004) +FRS_ERR_INTERNAL = make_flag("FRS_ERR_INTERNAL", 8005) +FRS_ERR_SERVICE_COMM = make_flag("FRS_ERR_SERVICE_COMM", 8006) +FRS_ERR_INSUFFICIENT_PRIV = make_flag("FRS_ERR_INSUFFICIENT_PRIV", 8007) +FRS_ERR_AUTHENTICATION = make_flag("FRS_ERR_AUTHENTICATION", 8008) +FRS_ERR_PARENT_INSUFFICIENT_PRIV = make_flag("FRS_ERR_PARENT_INSUFFICIENT_PRIV", 8009) +FRS_ERR_PARENT_AUTHENTICATION = make_flag("FRS_ERR_PARENT_AUTHENTICATION", 8010) +FRS_ERR_CHILD_TO_PARENT_COMM = make_flag("FRS_ERR_CHILD_TO_PARENT_COMM", 8011) +FRS_ERR_PARENT_TO_CHILD_COMM = make_flag("FRS_ERR_PARENT_TO_CHILD_COMM", 8012) +FRS_ERR_SYSVOL_POPULATE = make_flag("FRS_ERR_SYSVOL_POPULATE", 8013) +FRS_ERR_SYSVOL_POPULATE_TIMEOUT = make_flag("FRS_ERR_SYSVOL_POPULATE_TIMEOUT", 8014) +FRS_ERR_SYSVOL_IS_BUSY = make_flag("FRS_ERR_SYSVOL_IS_BUSY", 8015) +FRS_ERR_SYSVOL_DEMOTE = make_flag("FRS_ERR_SYSVOL_DEMOTE", 8016) +FRS_ERR_INVALID_SERVICE_PARAMETER = make_flag("FRS_ERR_INVALID_SERVICE_PARAMETER", 8017) +DS_S_SUCCESS = make_flag("DS_S_SUCCESS", NO_ERROR) +ERROR_DS_NOT_INSTALLED = make_flag("ERROR_DS_NOT_INSTALLED", 8200) +ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY = make_flag("ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY", 8201) +ERROR_DS_NO_ATTRIBUTE_OR_VALUE = make_flag("ERROR_DS_NO_ATTRIBUTE_OR_VALUE", 8202) +ERROR_DS_INVALID_ATTRIBUTE_SYNTAX = make_flag("ERROR_DS_INVALID_ATTRIBUTE_SYNTAX", 8203) +ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED = make_flag("ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED", 8204) +ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS = make_flag("ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS", 8205) +ERROR_DS_BUSY = make_flag("ERROR_DS_BUSY", 8206) +ERROR_DS_UNAVAILABLE = make_flag("ERROR_DS_UNAVAILABLE", 8207) +ERROR_DS_NO_RIDS_ALLOCATED = make_flag("ERROR_DS_NO_RIDS_ALLOCATED", 8208) +ERROR_DS_NO_MORE_RIDS = make_flag("ERROR_DS_NO_MORE_RIDS", 8209) +ERROR_DS_INCORRECT_ROLE_OWNER = make_flag("ERROR_DS_INCORRECT_ROLE_OWNER", 8210) +ERROR_DS_RIDMGR_INIT_ERROR = make_flag("ERROR_DS_RIDMGR_INIT_ERROR", 8211) +ERROR_DS_OBJ_CLASS_VIOLATION = make_flag("ERROR_DS_OBJ_CLASS_VIOLATION", 8212) +ERROR_DS_CANT_ON_NON_LEAF = make_flag("ERROR_DS_CANT_ON_NON_LEAF", 8213) +ERROR_DS_CANT_ON_RDN = make_flag("ERROR_DS_CANT_ON_RDN", 8214) +ERROR_DS_CANT_MOD_OBJ_CLASS = make_flag("ERROR_DS_CANT_MOD_OBJ_CLASS", 8215) +ERROR_DS_CROSS_DOM_MOVE_ERROR = make_flag("ERROR_DS_CROSS_DOM_MOVE_ERROR", 8216) +ERROR_DS_GC_NOT_AVAILABLE = make_flag("ERROR_DS_GC_NOT_AVAILABLE", 8217) +ERROR_SHARED_POLICY = make_flag("ERROR_SHARED_POLICY", 8218) +ERROR_POLICY_OBJECT_NOT_FOUND = make_flag("ERROR_POLICY_OBJECT_NOT_FOUND", 8219) +ERROR_POLICY_ONLY_IN_DS = make_flag("ERROR_POLICY_ONLY_IN_DS", 8220) +ERROR_PROMOTION_ACTIVE = make_flag("ERROR_PROMOTION_ACTIVE", 8221) +ERROR_NO_PROMOTION_ACTIVE = make_flag("ERROR_NO_PROMOTION_ACTIVE", 8222) +ERROR_DS_OPERATIONS_ERROR = make_flag("ERROR_DS_OPERATIONS_ERROR", 8224) +ERROR_DS_PROTOCOL_ERROR = make_flag("ERROR_DS_PROTOCOL_ERROR", 8225) +ERROR_DS_TIMELIMIT_EXCEEDED = make_flag("ERROR_DS_TIMELIMIT_EXCEEDED", 8226) +ERROR_DS_SIZELIMIT_EXCEEDED = make_flag("ERROR_DS_SIZELIMIT_EXCEEDED", 8227) +ERROR_DS_ADMIN_LIMIT_EXCEEDED = make_flag("ERROR_DS_ADMIN_LIMIT_EXCEEDED", 8228) +ERROR_DS_COMPARE_FALSE = make_flag("ERROR_DS_COMPARE_FALSE", 8229) +ERROR_DS_COMPARE_TRUE = make_flag("ERROR_DS_COMPARE_TRUE", 8230) +ERROR_DS_AUTH_METHOD_NOT_SUPPORTED = make_flag("ERROR_DS_AUTH_METHOD_NOT_SUPPORTED", 8231) +ERROR_DS_STRONG_AUTH_REQUIRED = make_flag("ERROR_DS_STRONG_AUTH_REQUIRED", 8232) +ERROR_DS_INAPPROPRIATE_AUTH = make_flag("ERROR_DS_INAPPROPRIATE_AUTH", 8233) +ERROR_DS_AUTH_UNKNOWN = make_flag("ERROR_DS_AUTH_UNKNOWN", 8234) +ERROR_DS_REFERRAL = make_flag("ERROR_DS_REFERRAL", 8235) +ERROR_DS_UNAVAILABLE_CRIT_EXTENSION = make_flag("ERROR_DS_UNAVAILABLE_CRIT_EXTENSION", 8236) +ERROR_DS_CONFIDENTIALITY_REQUIRED = make_flag("ERROR_DS_CONFIDENTIALITY_REQUIRED", 8237) +ERROR_DS_INAPPROPRIATE_MATCHING = make_flag("ERROR_DS_INAPPROPRIATE_MATCHING", 8238) +ERROR_DS_CONSTRAINT_VIOLATION = make_flag("ERROR_DS_CONSTRAINT_VIOLATION", 8239) +ERROR_DS_NO_SUCH_OBJECT = make_flag("ERROR_DS_NO_SUCH_OBJECT", 8240) +ERROR_DS_ALIAS_PROBLEM = make_flag("ERROR_DS_ALIAS_PROBLEM", 8241) +ERROR_DS_INVALID_DN_SYNTAX = make_flag("ERROR_DS_INVALID_DN_SYNTAX", 8242) +ERROR_DS_IS_LEAF = make_flag("ERROR_DS_IS_LEAF", 8243) +ERROR_DS_ALIAS_DEREF_PROBLEM = make_flag("ERROR_DS_ALIAS_DEREF_PROBLEM", 8244) +ERROR_DS_UNWILLING_TO_PERFORM = make_flag("ERROR_DS_UNWILLING_TO_PERFORM", 8245) +ERROR_DS_LOOP_DETECT = make_flag("ERROR_DS_LOOP_DETECT", 8246) +ERROR_DS_NAMING_VIOLATION = make_flag("ERROR_DS_NAMING_VIOLATION", 8247) +ERROR_DS_OBJECT_RESULTS_TOO_LARGE = make_flag("ERROR_DS_OBJECT_RESULTS_TOO_LARGE", 8248) +ERROR_DS_AFFECTS_MULTIPLE_DSAS = make_flag("ERROR_DS_AFFECTS_MULTIPLE_DSAS", 8249) +ERROR_DS_SERVER_DOWN = make_flag("ERROR_DS_SERVER_DOWN", 8250) +ERROR_DS_LOCAL_ERROR = make_flag("ERROR_DS_LOCAL_ERROR", 8251) +ERROR_DS_ENCODING_ERROR = make_flag("ERROR_DS_ENCODING_ERROR", 8252) +ERROR_DS_DECODING_ERROR = make_flag("ERROR_DS_DECODING_ERROR", 8253) +ERROR_DS_FILTER_UNKNOWN = make_flag("ERROR_DS_FILTER_UNKNOWN", 8254) +ERROR_DS_PARAM_ERROR = make_flag("ERROR_DS_PARAM_ERROR", 8255) +ERROR_DS_NOT_SUPPORTED = make_flag("ERROR_DS_NOT_SUPPORTED", 8256) +ERROR_DS_NO_RESULTS_RETURNED = make_flag("ERROR_DS_NO_RESULTS_RETURNED", 8257) +ERROR_DS_CONTROL_NOT_FOUND = make_flag("ERROR_DS_CONTROL_NOT_FOUND", 8258) +ERROR_DS_CLIENT_LOOP = make_flag("ERROR_DS_CLIENT_LOOP", 8259) +ERROR_DS_REFERRAL_LIMIT_EXCEEDED = make_flag("ERROR_DS_REFERRAL_LIMIT_EXCEEDED", 8260) +ERROR_DS_SORT_CONTROL_MISSING = make_flag("ERROR_DS_SORT_CONTROL_MISSING", 8261) +ERROR_DS_OFFSET_RANGE_ERROR = make_flag("ERROR_DS_OFFSET_RANGE_ERROR", 8262) +ERROR_DS_RIDMGR_DISABLED = make_flag("ERROR_DS_RIDMGR_DISABLED", 8263) +ERROR_DS_ROOT_MUST_BE_NC = make_flag("ERROR_DS_ROOT_MUST_BE_NC", 8301) +ERROR_DS_ADD_REPLICA_INHIBITED = make_flag("ERROR_DS_ADD_REPLICA_INHIBITED", 8302) +ERROR_DS_ATT_NOT_DEF_IN_SCHEMA = make_flag("ERROR_DS_ATT_NOT_DEF_IN_SCHEMA", 8303) +ERROR_DS_MAX_OBJ_SIZE_EXCEEDED = make_flag("ERROR_DS_MAX_OBJ_SIZE_EXCEEDED", 8304) +ERROR_DS_OBJ_STRING_NAME_EXISTS = make_flag("ERROR_DS_OBJ_STRING_NAME_EXISTS", 8305) +ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA = make_flag("ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA", 8306) +ERROR_DS_RDN_DOESNT_MATCH_SCHEMA = make_flag("ERROR_DS_RDN_DOESNT_MATCH_SCHEMA", 8307) +ERROR_DS_NO_REQUESTED_ATTS_FOUND = make_flag("ERROR_DS_NO_REQUESTED_ATTS_FOUND", 8308) +ERROR_DS_USER_BUFFER_TO_SMALL = make_flag("ERROR_DS_USER_BUFFER_TO_SMALL", 8309) +ERROR_DS_ATT_IS_NOT_ON_OBJ = make_flag("ERROR_DS_ATT_IS_NOT_ON_OBJ", 8310) +ERROR_DS_ILLEGAL_MOD_OPERATION = make_flag("ERROR_DS_ILLEGAL_MOD_OPERATION", 8311) +ERROR_DS_OBJ_TOO_LARGE = make_flag("ERROR_DS_OBJ_TOO_LARGE", 8312) +ERROR_DS_BAD_INSTANCE_TYPE = make_flag("ERROR_DS_BAD_INSTANCE_TYPE", 8313) +ERROR_DS_MASTERDSA_REQUIRED = make_flag("ERROR_DS_MASTERDSA_REQUIRED", 8314) +ERROR_DS_OBJECT_CLASS_REQUIRED = make_flag("ERROR_DS_OBJECT_CLASS_REQUIRED", 8315) +ERROR_DS_MISSING_REQUIRED_ATT = make_flag("ERROR_DS_MISSING_REQUIRED_ATT", 8316) +ERROR_DS_ATT_NOT_DEF_FOR_CLASS = make_flag("ERROR_DS_ATT_NOT_DEF_FOR_CLASS", 8317) +ERROR_DS_ATT_ALREADY_EXISTS = make_flag("ERROR_DS_ATT_ALREADY_EXISTS", 8318) +ERROR_DS_CANT_ADD_ATT_VALUES = make_flag("ERROR_DS_CANT_ADD_ATT_VALUES", 8320) +ERROR_DS_SINGLE_VALUE_CONSTRAINT = make_flag("ERROR_DS_SINGLE_VALUE_CONSTRAINT", 8321) +ERROR_DS_RANGE_CONSTRAINT = make_flag("ERROR_DS_RANGE_CONSTRAINT", 8322) +ERROR_DS_ATT_VAL_ALREADY_EXISTS = make_flag("ERROR_DS_ATT_VAL_ALREADY_EXISTS", 8323) +ERROR_DS_CANT_REM_MISSING_ATT = make_flag("ERROR_DS_CANT_REM_MISSING_ATT", 8324) +ERROR_DS_CANT_REM_MISSING_ATT_VAL = make_flag("ERROR_DS_CANT_REM_MISSING_ATT_VAL", 8325) +ERROR_DS_ROOT_CANT_BE_SUBREF = make_flag("ERROR_DS_ROOT_CANT_BE_SUBREF", 8326) +ERROR_DS_NO_CHAINING = make_flag("ERROR_DS_NO_CHAINING", 8327) +ERROR_DS_NO_CHAINED_EVAL = make_flag("ERROR_DS_NO_CHAINED_EVAL", 8328) +ERROR_DS_NO_PARENT_OBJECT = make_flag("ERROR_DS_NO_PARENT_OBJECT", 8329) +ERROR_DS_PARENT_IS_AN_ALIAS = make_flag("ERROR_DS_PARENT_IS_AN_ALIAS", 8330) +ERROR_DS_CANT_MIX_MASTER_AND_REPS = make_flag("ERROR_DS_CANT_MIX_MASTER_AND_REPS", 8331) +ERROR_DS_CHILDREN_EXIST = make_flag("ERROR_DS_CHILDREN_EXIST", 8332) +ERROR_DS_OBJ_NOT_FOUND = make_flag("ERROR_DS_OBJ_NOT_FOUND", 8333) +ERROR_DS_ALIASED_OBJ_MISSING = make_flag("ERROR_DS_ALIASED_OBJ_MISSING", 8334) +ERROR_DS_BAD_NAME_SYNTAX = make_flag("ERROR_DS_BAD_NAME_SYNTAX", 8335) +ERROR_DS_ALIAS_POINTS_TO_ALIAS = make_flag("ERROR_DS_ALIAS_POINTS_TO_ALIAS", 8336) +ERROR_DS_CANT_DEREF_ALIAS = make_flag("ERROR_DS_CANT_DEREF_ALIAS", 8337) +ERROR_DS_OUT_OF_SCOPE = make_flag("ERROR_DS_OUT_OF_SCOPE", 8338) +ERROR_DS_OBJECT_BEING_REMOVED = make_flag("ERROR_DS_OBJECT_BEING_REMOVED", 8339) +ERROR_DS_CANT_DELETE_DSA_OBJ = make_flag("ERROR_DS_CANT_DELETE_DSA_OBJ", 8340) +ERROR_DS_GENERIC_ERROR = make_flag("ERROR_DS_GENERIC_ERROR", 8341) +ERROR_DS_DSA_MUST_BE_INT_MASTER = make_flag("ERROR_DS_DSA_MUST_BE_INT_MASTER", 8342) +ERROR_DS_CLASS_NOT_DSA = make_flag("ERROR_DS_CLASS_NOT_DSA", 8343) +ERROR_DS_INSUFF_ACCESS_RIGHTS = make_flag("ERROR_DS_INSUFF_ACCESS_RIGHTS", 8344) +ERROR_DS_ILLEGAL_SUPERIOR = make_flag("ERROR_DS_ILLEGAL_SUPERIOR", 8345) +ERROR_DS_ATTRIBUTE_OWNED_BY_SAM = make_flag("ERROR_DS_ATTRIBUTE_OWNED_BY_SAM", 8346) +ERROR_DS_NAME_TOO_MANY_PARTS = make_flag("ERROR_DS_NAME_TOO_MANY_PARTS", 8347) +ERROR_DS_NAME_TOO_LONG = make_flag("ERROR_DS_NAME_TOO_LONG", 8348) +ERROR_DS_NAME_VALUE_TOO_LONG = make_flag("ERROR_DS_NAME_VALUE_TOO_LONG", 8349) +ERROR_DS_NAME_UNPARSEABLE = make_flag("ERROR_DS_NAME_UNPARSEABLE", 8350) +ERROR_DS_NAME_TYPE_UNKNOWN = make_flag("ERROR_DS_NAME_TYPE_UNKNOWN", 8351) +ERROR_DS_NOT_AN_OBJECT = make_flag("ERROR_DS_NOT_AN_OBJECT", 8352) +ERROR_DS_SEC_DESC_TOO_SHORT = make_flag("ERROR_DS_SEC_DESC_TOO_SHORT", 8353) +ERROR_DS_SEC_DESC_INVALID = make_flag("ERROR_DS_SEC_DESC_INVALID", 8354) +ERROR_DS_NO_DELETED_NAME = make_flag("ERROR_DS_NO_DELETED_NAME", 8355) +ERROR_DS_SUBREF_MUST_HAVE_PARENT = make_flag("ERROR_DS_SUBREF_MUST_HAVE_PARENT", 8356) +ERROR_DS_NCNAME_MUST_BE_NC = make_flag("ERROR_DS_NCNAME_MUST_BE_NC", 8357) +ERROR_DS_CANT_ADD_SYSTEM_ONLY = make_flag("ERROR_DS_CANT_ADD_SYSTEM_ONLY", 8358) +ERROR_DS_CLASS_MUST_BE_CONCRETE = make_flag("ERROR_DS_CLASS_MUST_BE_CONCRETE", 8359) +ERROR_DS_INVALID_DMD = make_flag("ERROR_DS_INVALID_DMD", 8360) +ERROR_DS_OBJ_GUID_EXISTS = make_flag("ERROR_DS_OBJ_GUID_EXISTS", 8361) +ERROR_DS_NOT_ON_BACKLINK = make_flag("ERROR_DS_NOT_ON_BACKLINK", 8362) +ERROR_DS_NO_CROSSREF_FOR_NC = make_flag("ERROR_DS_NO_CROSSREF_FOR_NC", 8363) +ERROR_DS_SHUTTING_DOWN = make_flag("ERROR_DS_SHUTTING_DOWN", 8364) +ERROR_DS_UNKNOWN_OPERATION = make_flag("ERROR_DS_UNKNOWN_OPERATION", 8365) +ERROR_DS_INVALID_ROLE_OWNER = make_flag("ERROR_DS_INVALID_ROLE_OWNER", 8366) +ERROR_DS_COULDNT_CONTACT_FSMO = make_flag("ERROR_DS_COULDNT_CONTACT_FSMO", 8367) +ERROR_DS_CROSS_NC_DN_RENAME = make_flag("ERROR_DS_CROSS_NC_DN_RENAME", 8368) +ERROR_DS_CANT_MOD_SYSTEM_ONLY = make_flag("ERROR_DS_CANT_MOD_SYSTEM_ONLY", 8369) +ERROR_DS_REPLICATOR_ONLY = make_flag("ERROR_DS_REPLICATOR_ONLY", 8370) +ERROR_DS_OBJ_CLASS_NOT_DEFINED = make_flag("ERROR_DS_OBJ_CLASS_NOT_DEFINED", 8371) +ERROR_DS_OBJ_CLASS_NOT_SUBCLASS = make_flag("ERROR_DS_OBJ_CLASS_NOT_SUBCLASS", 8372) +ERROR_DS_NAME_REFERENCE_INVALID = make_flag("ERROR_DS_NAME_REFERENCE_INVALID", 8373) +ERROR_DS_CROSS_REF_EXISTS = make_flag("ERROR_DS_CROSS_REF_EXISTS", 8374) +ERROR_DS_CANT_DEL_MASTER_CROSSREF = make_flag("ERROR_DS_CANT_DEL_MASTER_CROSSREF", 8375) +ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD = make_flag("ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD", 8376) +ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX = make_flag("ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX", 8377) +ERROR_DS_DUP_RDN = make_flag("ERROR_DS_DUP_RDN", 8378) +ERROR_DS_DUP_OID = make_flag("ERROR_DS_DUP_OID", 8379) +ERROR_DS_DUP_MAPI_ID = make_flag("ERROR_DS_DUP_MAPI_ID", 8380) +ERROR_DS_DUP_SCHEMA_ID_GUID = make_flag("ERROR_DS_DUP_SCHEMA_ID_GUID", 8381) +ERROR_DS_DUP_LDAP_DISPLAY_NAME = make_flag("ERROR_DS_DUP_LDAP_DISPLAY_NAME", 8382) +ERROR_DS_SEMANTIC_ATT_TEST = make_flag("ERROR_DS_SEMANTIC_ATT_TEST", 8383) +ERROR_DS_SYNTAX_MISMATCH = make_flag("ERROR_DS_SYNTAX_MISMATCH", 8384) +ERROR_DS_EXISTS_IN_MUST_HAVE = make_flag("ERROR_DS_EXISTS_IN_MUST_HAVE", 8385) +ERROR_DS_EXISTS_IN_MAY_HAVE = make_flag("ERROR_DS_EXISTS_IN_MAY_HAVE", 8386) +ERROR_DS_NONEXISTENT_MAY_HAVE = make_flag("ERROR_DS_NONEXISTENT_MAY_HAVE", 8387) +ERROR_DS_NONEXISTENT_MUST_HAVE = make_flag("ERROR_DS_NONEXISTENT_MUST_HAVE", 8388) +ERROR_DS_AUX_CLS_TEST_FAIL = make_flag("ERROR_DS_AUX_CLS_TEST_FAIL", 8389) +ERROR_DS_NONEXISTENT_POSS_SUP = make_flag("ERROR_DS_NONEXISTENT_POSS_SUP", 8390) +ERROR_DS_SUB_CLS_TEST_FAIL = make_flag("ERROR_DS_SUB_CLS_TEST_FAIL", 8391) +ERROR_DS_BAD_RDN_ATT_ID_SYNTAX = make_flag("ERROR_DS_BAD_RDN_ATT_ID_SYNTAX", 8392) +ERROR_DS_EXISTS_IN_AUX_CLS = make_flag("ERROR_DS_EXISTS_IN_AUX_CLS", 8393) +ERROR_DS_EXISTS_IN_SUB_CLS = make_flag("ERROR_DS_EXISTS_IN_SUB_CLS", 8394) +ERROR_DS_EXISTS_IN_POSS_SUP = make_flag("ERROR_DS_EXISTS_IN_POSS_SUP", 8395) +ERROR_DS_RECALCSCHEMA_FAILED = make_flag("ERROR_DS_RECALCSCHEMA_FAILED", 8396) +ERROR_DS_TREE_DELETE_NOT_FINISHED = make_flag("ERROR_DS_TREE_DELETE_NOT_FINISHED", 8397) +ERROR_DS_CANT_DELETE = make_flag("ERROR_DS_CANT_DELETE", 8398) +ERROR_DS_ATT_SCHEMA_REQ_ID = make_flag("ERROR_DS_ATT_SCHEMA_REQ_ID", 8399) +ERROR_DS_BAD_ATT_SCHEMA_SYNTAX = make_flag("ERROR_DS_BAD_ATT_SCHEMA_SYNTAX", 8400) +ERROR_DS_CANT_CACHE_ATT = make_flag("ERROR_DS_CANT_CACHE_ATT", 8401) +ERROR_DS_CANT_CACHE_CLASS = make_flag("ERROR_DS_CANT_CACHE_CLASS", 8402) +ERROR_DS_CANT_REMOVE_ATT_CACHE = make_flag("ERROR_DS_CANT_REMOVE_ATT_CACHE", 8403) +ERROR_DS_CANT_REMOVE_CLASS_CACHE = make_flag("ERROR_DS_CANT_REMOVE_CLASS_CACHE", 8404) +ERROR_DS_CANT_RETRIEVE_DN = make_flag("ERROR_DS_CANT_RETRIEVE_DN", 8405) +ERROR_DS_MISSING_SUPREF = make_flag("ERROR_DS_MISSING_SUPREF", 8406) +ERROR_DS_CANT_RETRIEVE_INSTANCE = make_flag("ERROR_DS_CANT_RETRIEVE_INSTANCE", 8407) +ERROR_DS_CODE_INCONSISTENCY = make_flag("ERROR_DS_CODE_INCONSISTENCY", 8408) +ERROR_DS_DATABASE_ERROR = make_flag("ERROR_DS_DATABASE_ERROR", 8409) +ERROR_DS_GOVERNSID_MISSING = make_flag("ERROR_DS_GOVERNSID_MISSING", 8410) +ERROR_DS_MISSING_EXPECTED_ATT = make_flag("ERROR_DS_MISSING_EXPECTED_ATT", 8411) +ERROR_DS_NCNAME_MISSING_CR_REF = make_flag("ERROR_DS_NCNAME_MISSING_CR_REF", 8412) +ERROR_DS_SECURITY_CHECKING_ERROR = make_flag("ERROR_DS_SECURITY_CHECKING_ERROR", 8413) +ERROR_DS_SCHEMA_NOT_LOADED = make_flag("ERROR_DS_SCHEMA_NOT_LOADED", 8414) +ERROR_DS_SCHEMA_ALLOC_FAILED = make_flag("ERROR_DS_SCHEMA_ALLOC_FAILED", 8415) +ERROR_DS_ATT_SCHEMA_REQ_SYNTAX = make_flag("ERROR_DS_ATT_SCHEMA_REQ_SYNTAX", 8416) +ERROR_DS_GCVERIFY_ERROR = make_flag("ERROR_DS_GCVERIFY_ERROR", 8417) +ERROR_DS_DRA_SCHEMA_MISMATCH = make_flag("ERROR_DS_DRA_SCHEMA_MISMATCH", 8418) +ERROR_DS_CANT_FIND_DSA_OBJ = make_flag("ERROR_DS_CANT_FIND_DSA_OBJ", 8419) +ERROR_DS_CANT_FIND_EXPECTED_NC = make_flag("ERROR_DS_CANT_FIND_EXPECTED_NC", 8420) +ERROR_DS_CANT_FIND_NC_IN_CACHE = make_flag("ERROR_DS_CANT_FIND_NC_IN_CACHE", 8421) +ERROR_DS_CANT_RETRIEVE_CHILD = make_flag("ERROR_DS_CANT_RETRIEVE_CHILD", 8422) +ERROR_DS_SECURITY_ILLEGAL_MODIFY = make_flag("ERROR_DS_SECURITY_ILLEGAL_MODIFY", 8423) +ERROR_DS_CANT_REPLACE_HIDDEN_REC = make_flag("ERROR_DS_CANT_REPLACE_HIDDEN_REC", 8424) +ERROR_DS_BAD_HIERARCHY_FILE = make_flag("ERROR_DS_BAD_HIERARCHY_FILE", 8425) +ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED = make_flag("ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED", 8426) +ERROR_DS_CONFIG_PARAM_MISSING = make_flag("ERROR_DS_CONFIG_PARAM_MISSING", 8427) +ERROR_DS_COUNTING_AB_INDICES_FAILED = make_flag("ERROR_DS_COUNTING_AB_INDICES_FAILED", 8428) +ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED = make_flag("ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED", 8429) +ERROR_DS_INTERNAL_FAILURE = make_flag("ERROR_DS_INTERNAL_FAILURE", 8430) +ERROR_DS_UNKNOWN_ERROR = make_flag("ERROR_DS_UNKNOWN_ERROR", 8431) +ERROR_DS_ROOT_REQUIRES_CLASS_TOP = make_flag("ERROR_DS_ROOT_REQUIRES_CLASS_TOP", 8432) +ERROR_DS_REFUSING_FSMO_ROLES = make_flag("ERROR_DS_REFUSING_FSMO_ROLES", 8433) +ERROR_DS_MISSING_FSMO_SETTINGS = make_flag("ERROR_DS_MISSING_FSMO_SETTINGS", 8434) +ERROR_DS_UNABLE_TO_SURRENDER_ROLES = make_flag("ERROR_DS_UNABLE_TO_SURRENDER_ROLES", 8435) +ERROR_DS_DRA_GENERIC = make_flag("ERROR_DS_DRA_GENERIC", 8436) +ERROR_DS_DRA_INVALID_PARAMETER = make_flag("ERROR_DS_DRA_INVALID_PARAMETER", 8437) +ERROR_DS_DRA_BUSY = make_flag("ERROR_DS_DRA_BUSY", 8438) +ERROR_DS_DRA_BAD_DN = make_flag("ERROR_DS_DRA_BAD_DN", 8439) +ERROR_DS_DRA_BAD_NC = make_flag("ERROR_DS_DRA_BAD_NC", 8440) +ERROR_DS_DRA_DN_EXISTS = make_flag("ERROR_DS_DRA_DN_EXISTS", 8441) +ERROR_DS_DRA_INTERNAL_ERROR = make_flag("ERROR_DS_DRA_INTERNAL_ERROR", 8442) +ERROR_DS_DRA_INCONSISTENT_DIT = make_flag("ERROR_DS_DRA_INCONSISTENT_DIT", 8443) +ERROR_DS_DRA_CONNECTION_FAILED = make_flag("ERROR_DS_DRA_CONNECTION_FAILED", 8444) +ERROR_DS_DRA_BAD_INSTANCE_TYPE = make_flag("ERROR_DS_DRA_BAD_INSTANCE_TYPE", 8445) +ERROR_DS_DRA_OUT_OF_MEM = make_flag("ERROR_DS_DRA_OUT_OF_MEM", 8446) +ERROR_DS_DRA_MAIL_PROBLEM = make_flag("ERROR_DS_DRA_MAIL_PROBLEM", 8447) +ERROR_DS_DRA_REF_ALREADY_EXISTS = make_flag("ERROR_DS_DRA_REF_ALREADY_EXISTS", 8448) +ERROR_DS_DRA_REF_NOT_FOUND = make_flag("ERROR_DS_DRA_REF_NOT_FOUND", 8449) +ERROR_DS_DRA_OBJ_IS_REP_SOURCE = make_flag("ERROR_DS_DRA_OBJ_IS_REP_SOURCE", 8450) +ERROR_DS_DRA_DB_ERROR = make_flag("ERROR_DS_DRA_DB_ERROR", 8451) +ERROR_DS_DRA_NO_REPLICA = make_flag("ERROR_DS_DRA_NO_REPLICA", 8452) +ERROR_DS_DRA_ACCESS_DENIED = make_flag("ERROR_DS_DRA_ACCESS_DENIED", 8453) +ERROR_DS_DRA_NOT_SUPPORTED = make_flag("ERROR_DS_DRA_NOT_SUPPORTED", 8454) +ERROR_DS_DRA_RPC_CANCELLED = make_flag("ERROR_DS_DRA_RPC_CANCELLED", 8455) +ERROR_DS_DRA_SOURCE_DISABLED = make_flag("ERROR_DS_DRA_SOURCE_DISABLED", 8456) +ERROR_DS_DRA_SINK_DISABLED = make_flag("ERROR_DS_DRA_SINK_DISABLED", 8457) +ERROR_DS_DRA_NAME_COLLISION = make_flag("ERROR_DS_DRA_NAME_COLLISION", 8458) +ERROR_DS_DRA_SOURCE_REINSTALLED = make_flag("ERROR_DS_DRA_SOURCE_REINSTALLED", 8459) +ERROR_DS_DRA_MISSING_PARENT = make_flag("ERROR_DS_DRA_MISSING_PARENT", 8460) +ERROR_DS_DRA_PREEMPTED = make_flag("ERROR_DS_DRA_PREEMPTED", 8461) +ERROR_DS_DRA_ABANDON_SYNC = make_flag("ERROR_DS_DRA_ABANDON_SYNC", 8462) +ERROR_DS_DRA_SHUTDOWN = make_flag("ERROR_DS_DRA_SHUTDOWN", 8463) +ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET = make_flag("ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET", 8464) +ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA = make_flag("ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA", 8465) +ERROR_DS_DRA_EXTN_CONNECTION_FAILED = make_flag("ERROR_DS_DRA_EXTN_CONNECTION_FAILED", 8466) +ERROR_DS_INSTALL_SCHEMA_MISMATCH = make_flag("ERROR_DS_INSTALL_SCHEMA_MISMATCH", 8467) +ERROR_DS_DUP_LINK_ID = make_flag("ERROR_DS_DUP_LINK_ID", 8468) +ERROR_DS_NAME_ERROR_RESOLVING = make_flag("ERROR_DS_NAME_ERROR_RESOLVING", 8469) +ERROR_DS_NAME_ERROR_NOT_FOUND = make_flag("ERROR_DS_NAME_ERROR_NOT_FOUND", 8470) +ERROR_DS_NAME_ERROR_NOT_UNIQUE = make_flag("ERROR_DS_NAME_ERROR_NOT_UNIQUE", 8471) +ERROR_DS_NAME_ERROR_NO_MAPPING = make_flag("ERROR_DS_NAME_ERROR_NO_MAPPING", 8472) +ERROR_DS_NAME_ERROR_DOMAIN_ONLY = make_flag("ERROR_DS_NAME_ERROR_DOMAIN_ONLY", 8473) +ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING = make_flag("ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING", 8474) +ERROR_DS_CONSTRUCTED_ATT_MOD = make_flag("ERROR_DS_CONSTRUCTED_ATT_MOD", 8475) +ERROR_DS_WRONG_OM_OBJ_CLASS = make_flag("ERROR_DS_WRONG_OM_OBJ_CLASS", 8476) +ERROR_DS_DRA_REPL_PENDING = make_flag("ERROR_DS_DRA_REPL_PENDING", 8477) +ERROR_DS_DS_REQUIRED = make_flag("ERROR_DS_DS_REQUIRED", 8478) +ERROR_DS_INVALID_LDAP_DISPLAY_NAME = make_flag("ERROR_DS_INVALID_LDAP_DISPLAY_NAME", 8479) +ERROR_DS_NON_BASE_SEARCH = make_flag("ERROR_DS_NON_BASE_SEARCH", 8480) +ERROR_DS_CANT_RETRIEVE_ATTS = make_flag("ERROR_DS_CANT_RETRIEVE_ATTS", 8481) +ERROR_DS_BACKLINK_WITHOUT_LINK = make_flag("ERROR_DS_BACKLINK_WITHOUT_LINK", 8482) +ERROR_DS_EPOCH_MISMATCH = make_flag("ERROR_DS_EPOCH_MISMATCH", 8483) +ERROR_DS_SRC_NAME_MISMATCH = make_flag("ERROR_DS_SRC_NAME_MISMATCH", 8484) +ERROR_DS_SRC_AND_DST_NC_IDENTICAL = make_flag("ERROR_DS_SRC_AND_DST_NC_IDENTICAL", 8485) +ERROR_DS_DST_NC_MISMATCH = make_flag("ERROR_DS_DST_NC_MISMATCH", 8486) +ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC = make_flag("ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC", 8487) +ERROR_DS_SRC_GUID_MISMATCH = make_flag("ERROR_DS_SRC_GUID_MISMATCH", 8488) +ERROR_DS_CANT_MOVE_DELETED_OBJECT = make_flag("ERROR_DS_CANT_MOVE_DELETED_OBJECT", 8489) +ERROR_DS_PDC_OPERATION_IN_PROGRESS = make_flag("ERROR_DS_PDC_OPERATION_IN_PROGRESS", 8490) +ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD = make_flag("ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD", 8491) +ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION = make_flag("ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION", 8492) +ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS = make_flag("ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS", 8493) +ERROR_DS_NC_MUST_HAVE_NC_PARENT = make_flag("ERROR_DS_NC_MUST_HAVE_NC_PARENT", 8494) +ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE = make_flag("ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE", 8495) +ERROR_DS_DST_DOMAIN_NOT_NATIVE = make_flag("ERROR_DS_DST_DOMAIN_NOT_NATIVE", 8496) +ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER = make_flag("ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER", 8497) +ERROR_DS_CANT_MOVE_ACCOUNT_GROUP = make_flag("ERROR_DS_CANT_MOVE_ACCOUNT_GROUP", 8498) +ERROR_DS_CANT_MOVE_RESOURCE_GROUP = make_flag("ERROR_DS_CANT_MOVE_RESOURCE_GROUP", 8499) +ERROR_DS_INVALID_SEARCH_FLAG = make_flag("ERROR_DS_INVALID_SEARCH_FLAG", 8500) +ERROR_DS_NO_TREE_DELETE_ABOVE_NC = make_flag("ERROR_DS_NO_TREE_DELETE_ABOVE_NC", 8501) +ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE = make_flag("ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE", 8502) +ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE = make_flag("ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE", 8503) +ERROR_DS_SAM_INIT_FAILURE = make_flag("ERROR_DS_SAM_INIT_FAILURE", 8504) +ERROR_DS_SENSITIVE_GROUP_VIOLATION = make_flag("ERROR_DS_SENSITIVE_GROUP_VIOLATION", 8505) +ERROR_DS_CANT_MOD_PRIMARYGROUPID = make_flag("ERROR_DS_CANT_MOD_PRIMARYGROUPID", 8506) +ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD = make_flag("ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD", 8507) +ERROR_DS_NONSAFE_SCHEMA_CHANGE = make_flag("ERROR_DS_NONSAFE_SCHEMA_CHANGE", 8508) +ERROR_DS_SCHEMA_UPDATE_DISALLOWED = make_flag("ERROR_DS_SCHEMA_UPDATE_DISALLOWED", 8509) +ERROR_DS_CANT_CREATE_UNDER_SCHEMA = make_flag("ERROR_DS_CANT_CREATE_UNDER_SCHEMA", 8510) +ERROR_DS_INSTALL_NO_SRC_SCH_VERSION = make_flag("ERROR_DS_INSTALL_NO_SRC_SCH_VERSION", 8511) +ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE = make_flag("ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE", 8512) +ERROR_DS_INVALID_GROUP_TYPE = make_flag("ERROR_DS_INVALID_GROUP_TYPE", 8513) +ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN = make_flag("ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN", 8514) +ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN = make_flag("ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN", 8515) +ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER = make_flag("ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER", 8516) +ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER = make_flag("ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER", 8517) +ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER = make_flag("ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER", 8518) +ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER = make_flag("ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER", 8519) +ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER = make_flag("ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER", 8520) +ERROR_DS_HAVE_PRIMARY_MEMBERS = make_flag("ERROR_DS_HAVE_PRIMARY_MEMBERS", 8521) +ERROR_DS_STRING_SD_CONVERSION_FAILED = make_flag("ERROR_DS_STRING_SD_CONVERSION_FAILED", 8522) +ERROR_DS_NAMING_MASTER_GC = make_flag("ERROR_DS_NAMING_MASTER_GC", 8523) +ERROR_DS_DNS_LOOKUP_FAILURE = make_flag("ERROR_DS_DNS_LOOKUP_FAILURE", 8524) +ERROR_DS_COULDNT_UPDATE_SPNS = make_flag("ERROR_DS_COULDNT_UPDATE_SPNS", 8525) +ERROR_DS_CANT_RETRIEVE_SD = make_flag("ERROR_DS_CANT_RETRIEVE_SD", 8526) +ERROR_DS_KEY_NOT_UNIQUE = make_flag("ERROR_DS_KEY_NOT_UNIQUE", 8527) +ERROR_DS_WRONG_LINKED_ATT_SYNTAX = make_flag("ERROR_DS_WRONG_LINKED_ATT_SYNTAX", 8528) +ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD = make_flag("ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD", 8529) +ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY = make_flag("ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY", 8530) +ERROR_DS_CANT_START = make_flag("ERROR_DS_CANT_START", 8531) +ERROR_DS_INIT_FAILURE = make_flag("ERROR_DS_INIT_FAILURE", 8532) +ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION = make_flag("ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION", 8533) +ERROR_DS_SOURCE_DOMAIN_IN_FOREST = make_flag("ERROR_DS_SOURCE_DOMAIN_IN_FOREST", 8534) +ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST = make_flag("ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST", 8535) +ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED = make_flag("ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED", 8536) +ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN = make_flag("ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN", 8537) +ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER = make_flag("ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER", 8538) +ERROR_DS_SRC_SID_EXISTS_IN_FOREST = make_flag("ERROR_DS_SRC_SID_EXISTS_IN_FOREST", 8539) +ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH = make_flag("ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH", 8540) +ERROR_SAM_INIT_FAILURE = make_flag("ERROR_SAM_INIT_FAILURE", 8541) +ERROR_DS_DRA_SCHEMA_INFO_SHIP = make_flag("ERROR_DS_DRA_SCHEMA_INFO_SHIP", 8542) +ERROR_DS_DRA_SCHEMA_CONFLICT = make_flag("ERROR_DS_DRA_SCHEMA_CONFLICT", 8543) +ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT = make_flag("ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT", 8544) +ERROR_DS_DRA_OBJ_NC_MISMATCH = make_flag("ERROR_DS_DRA_OBJ_NC_MISMATCH", 8545) +ERROR_DS_NC_STILL_HAS_DSAS = make_flag("ERROR_DS_NC_STILL_HAS_DSAS", 8546) +ERROR_DS_GC_REQUIRED = make_flag("ERROR_DS_GC_REQUIRED", 8547) +ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY = make_flag("ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY", 8548) +ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS = make_flag("ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS", 8549) +ERROR_DS_CANT_ADD_TO_GC = make_flag("ERROR_DS_CANT_ADD_TO_GC", 8550) +ERROR_DS_NO_CHECKPOINT_WITH_PDC = make_flag("ERROR_DS_NO_CHECKPOINT_WITH_PDC", 8551) +ERROR_DS_SOURCE_AUDITING_NOT_ENABLED = make_flag("ERROR_DS_SOURCE_AUDITING_NOT_ENABLED", 8552) +ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC = make_flag("ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC", 8553) +ERROR_DS_INVALID_NAME_FOR_SPN = make_flag("ERROR_DS_INVALID_NAME_FOR_SPN", 8554) +ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS = make_flag("ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS", 8555) +ERROR_DS_UNICODEPWD_NOT_IN_QUOTES = make_flag("ERROR_DS_UNICODEPWD_NOT_IN_QUOTES", 8556) +ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED = make_flag("ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED", 8557) +ERROR_DS_MUST_BE_RUN_ON_DST_DC = make_flag("ERROR_DS_MUST_BE_RUN_ON_DST_DC", 8558) +ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER = make_flag("ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER", 8559) +ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ = make_flag("ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ", 8560) +ERROR_DS_INIT_FAILURE_CONSOLE = make_flag("ERROR_DS_INIT_FAILURE_CONSOLE", 8561) +ERROR_DS_SAM_INIT_FAILURE_CONSOLE = make_flag("ERROR_DS_SAM_INIT_FAILURE_CONSOLE", 8562) +ERROR_DS_FOREST_VERSION_TOO_HIGH = make_flag("ERROR_DS_FOREST_VERSION_TOO_HIGH", 8563) +ERROR_DS_DOMAIN_VERSION_TOO_HIGH = make_flag("ERROR_DS_DOMAIN_VERSION_TOO_HIGH", 8564) +ERROR_DS_FOREST_VERSION_TOO_LOW = make_flag("ERROR_DS_FOREST_VERSION_TOO_LOW", 8565) +ERROR_DS_DOMAIN_VERSION_TOO_LOW = make_flag("ERROR_DS_DOMAIN_VERSION_TOO_LOW", 8566) +ERROR_DS_INCOMPATIBLE_VERSION = make_flag("ERROR_DS_INCOMPATIBLE_VERSION", 8567) +ERROR_DS_LOW_DSA_VERSION = make_flag("ERROR_DS_LOW_DSA_VERSION", 8568) +ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN = make_flag("ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN", 8569) +ERROR_DS_NOT_SUPPORTED_SORT_ORDER = make_flag("ERROR_DS_NOT_SUPPORTED_SORT_ORDER", 8570) +ERROR_DS_NAME_NOT_UNIQUE = make_flag("ERROR_DS_NAME_NOT_UNIQUE", 8571) +ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 = make_flag("ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4", 8572) +ERROR_DS_OUT_OF_VERSION_STORE = make_flag("ERROR_DS_OUT_OF_VERSION_STORE", 8573) +ERROR_DS_INCOMPATIBLE_CONTROLS_USED = make_flag("ERROR_DS_INCOMPATIBLE_CONTROLS_USED", 8574) +ERROR_DS_NO_REF_DOMAIN = make_flag("ERROR_DS_NO_REF_DOMAIN", 8575) +ERROR_DS_RESERVED_LINK_ID = make_flag("ERROR_DS_RESERVED_LINK_ID", 8576) +ERROR_DS_LINK_ID_NOT_AVAILABLE = make_flag("ERROR_DS_LINK_ID_NOT_AVAILABLE", 8577) +ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER = make_flag("ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER", 8578) +ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE = make_flag("ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE", 8579) +ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC = make_flag("ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC", 8580) +ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG = make_flag("ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG", 8581) +ERROR_DS_MODIFYDN_WRONG_GRANDPARENT = make_flag("ERROR_DS_MODIFYDN_WRONG_GRANDPARENT", 8582) +ERROR_DS_NAME_ERROR_TRUST_REFERRAL = make_flag("ERROR_DS_NAME_ERROR_TRUST_REFERRAL", 8583) +ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER = make_flag("ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER", 8584) +ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD = make_flag("ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD", 8585) +ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 = make_flag("ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2", 8586) +ERROR_DS_THREAD_LIMIT_EXCEEDED = make_flag("ERROR_DS_THREAD_LIMIT_EXCEEDED", 8587) +ERROR_DS_NOT_CLOSEST = make_flag("ERROR_DS_NOT_CLOSEST", 8588) +ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF = make_flag("ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF", 8589) +ERROR_DS_SINGLE_USER_MODE_FAILED = make_flag("ERROR_DS_SINGLE_USER_MODE_FAILED", 8590) +ERROR_DS_NTDSCRIPT_SYNTAX_ERROR = make_flag("ERROR_DS_NTDSCRIPT_SYNTAX_ERROR", 8591) +ERROR_DS_NTDSCRIPT_PROCESS_ERROR = make_flag("ERROR_DS_NTDSCRIPT_PROCESS_ERROR", 8592) +ERROR_DS_DIFFERENT_REPL_EPOCHS = make_flag("ERROR_DS_DIFFERENT_REPL_EPOCHS", 8593) +ERROR_DS_DRS_EXTENSIONS_CHANGED = make_flag("ERROR_DS_DRS_EXTENSIONS_CHANGED", 8594) +ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR = make_flag("ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR", 8595) +ERROR_DS_NO_MSDS_INTID = make_flag("ERROR_DS_NO_MSDS_INTID", 8596) +ERROR_DS_DUP_MSDS_INTID = make_flag("ERROR_DS_DUP_MSDS_INTID", 8597) +ERROR_DS_EXISTS_IN_RDNATTID = make_flag("ERROR_DS_EXISTS_IN_RDNATTID", 8598) +ERROR_DS_AUTHORIZATION_FAILED = make_flag("ERROR_DS_AUTHORIZATION_FAILED", 8599) +ERROR_DS_INVALID_SCRIPT = make_flag("ERROR_DS_INVALID_SCRIPT", 8600) +ERROR_DS_REMOTE_CROSSREF_OP_FAILED = make_flag("ERROR_DS_REMOTE_CROSSREF_OP_FAILED", 8601) +ERROR_DS_CROSS_REF_BUSY = make_flag("ERROR_DS_CROSS_REF_BUSY", 8602) +ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN = make_flag("ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN", 8603) +ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC = make_flag("ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC", 8604) +ERROR_DS_DUPLICATE_ID_FOUND = make_flag("ERROR_DS_DUPLICATE_ID_FOUND", 8605) +ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT = make_flag("ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT", 8606) +ERROR_DS_GROUP_CONVERSION_ERROR = make_flag("ERROR_DS_GROUP_CONVERSION_ERROR", 8607) +ERROR_DS_CANT_MOVE_APP_BASIC_GROUP = make_flag("ERROR_DS_CANT_MOVE_APP_BASIC_GROUP", 8608) +ERROR_DS_CANT_MOVE_APP_QUERY_GROUP = make_flag("ERROR_DS_CANT_MOVE_APP_QUERY_GROUP", 8609) +ERROR_DS_ROLE_NOT_VERIFIED = make_flag("ERROR_DS_ROLE_NOT_VERIFIED", 8610) +ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL = make_flag("ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL", 8611) +ERROR_DS_DOMAIN_RENAME_IN_PROGRESS = make_flag("ERROR_DS_DOMAIN_RENAME_IN_PROGRESS", 8612) +ERROR_DS_EXISTING_AD_CHILD_NC = make_flag("ERROR_DS_EXISTING_AD_CHILD_NC", 8613) +ERROR_DS_REPL_LIFETIME_EXCEEDED = make_flag("ERROR_DS_REPL_LIFETIME_EXCEEDED", 8614) +ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER = make_flag("ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER", 8615) +ERROR_DS_LDAP_SEND_QUEUE_FULL = make_flag("ERROR_DS_LDAP_SEND_QUEUE_FULL", 8616) +ERROR_DS_DRA_OUT_SCHEDULE_WINDOW = make_flag("ERROR_DS_DRA_OUT_SCHEDULE_WINDOW", 8617) +ERROR_DS_POLICY_NOT_KNOWN = make_flag("ERROR_DS_POLICY_NOT_KNOWN", 8618) +ERROR_NO_SITE_SETTINGS_OBJECT = make_flag("ERROR_NO_SITE_SETTINGS_OBJECT", 8619) +ERROR_NO_SECRETS = make_flag("ERROR_NO_SECRETS", 8620) +ERROR_NO_WRITABLE_DC_FOUND = make_flag("ERROR_NO_WRITABLE_DC_FOUND", 8621) +ERROR_DS_NO_SERVER_OBJECT = make_flag("ERROR_DS_NO_SERVER_OBJECT", 8622) +ERROR_DS_NO_NTDSA_OBJECT = make_flag("ERROR_DS_NO_NTDSA_OBJECT", 8623) +ERROR_DS_NON_ASQ_SEARCH = make_flag("ERROR_DS_NON_ASQ_SEARCH", 8624) +ERROR_DS_AUDIT_FAILURE = make_flag("ERROR_DS_AUDIT_FAILURE", 8625) +ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE = make_flag("ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE", 8626) +ERROR_DS_INVALID_SEARCH_FLAG_TUPLE = make_flag("ERROR_DS_INVALID_SEARCH_FLAG_TUPLE", 8627) +ERROR_DS_HIERARCHY_TABLE_TOO_DEEP = make_flag("ERROR_DS_HIERARCHY_TABLE_TOO_DEEP", 8628) +ERROR_DS_DRA_CORRUPT_UTD_VECTOR = make_flag("ERROR_DS_DRA_CORRUPT_UTD_VECTOR", 8629) +ERROR_DS_DRA_SECRETS_DENIED = make_flag("ERROR_DS_DRA_SECRETS_DENIED", 8630) +ERROR_DS_RESERVED_MAPI_ID = make_flag("ERROR_DS_RESERVED_MAPI_ID", 8631) +ERROR_DS_MAPI_ID_NOT_AVAILABLE = make_flag("ERROR_DS_MAPI_ID_NOT_AVAILABLE", 8632) +ERROR_DS_DRA_MISSING_KRBTGT_SECRET = make_flag("ERROR_DS_DRA_MISSING_KRBTGT_SECRET", 8633) +ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST = make_flag("ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST", 8634) +ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST = make_flag("ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST", 8635) +ERROR_INVALID_USER_PRINCIPAL_NAME = make_flag("ERROR_INVALID_USER_PRINCIPAL_NAME", 8636) +ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS = make_flag("ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS", 8637) +ERROR_DS_OID_NOT_FOUND = make_flag("ERROR_DS_OID_NOT_FOUND", 8638) +ERROR_DS_DRA_RECYCLED_TARGET = make_flag("ERROR_DS_DRA_RECYCLED_TARGET", 8639) +ERROR_DS_DISALLOWED_NC_REDIRECT = make_flag("ERROR_DS_DISALLOWED_NC_REDIRECT", 8640) +ERROR_DS_HIGH_ADLDS_FFL = make_flag("ERROR_DS_HIGH_ADLDS_FFL", 8641) +ERROR_DS_HIGH_DSA_VERSION = make_flag("ERROR_DS_HIGH_DSA_VERSION", 8642) +ERROR_DS_LOW_ADLDS_FFL = make_flag("ERROR_DS_LOW_ADLDS_FFL", 8643) +ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION = make_flag("ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION", 8644) +ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED = make_flag("ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED", 8645) +ERROR_INCORRECT_ACCOUNT_TYPE = make_flag("ERROR_INCORRECT_ACCOUNT_TYPE", 8646) +ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST = make_flag("ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST", 8647) +ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST = make_flag("ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST", 8648) +ERROR_DS_MISSING_FOREST_TRUST = make_flag("ERROR_DS_MISSING_FOREST_TRUST", 8649) +ERROR_DS_VALUE_KEY_NOT_UNIQUE = make_flag("ERROR_DS_VALUE_KEY_NOT_UNIQUE", 8650) +DNS_ERROR_RESPONSE_CODES_BASE = make_flag("DNS_ERROR_RESPONSE_CODES_BASE", 9000) +DNS_ERROR_RCODE_NO_ERROR = make_flag("DNS_ERROR_RCODE_NO_ERROR", NO_ERROR) +DNS_ERROR_MASK = make_flag("DNS_ERROR_MASK", 0x00002328) +DNS_ERROR_RCODE_FORMAT_ERROR = make_flag("DNS_ERROR_RCODE_FORMAT_ERROR", 9001) +DNS_ERROR_RCODE_SERVER_FAILURE = make_flag("DNS_ERROR_RCODE_SERVER_FAILURE", 9002) +DNS_ERROR_RCODE_NAME_ERROR = make_flag("DNS_ERROR_RCODE_NAME_ERROR", 9003) +DNS_ERROR_RCODE_NOT_IMPLEMENTED = make_flag("DNS_ERROR_RCODE_NOT_IMPLEMENTED", 9004) +DNS_ERROR_RCODE_REFUSED = make_flag("DNS_ERROR_RCODE_REFUSED", 9005) +DNS_ERROR_RCODE_YXDOMAIN = make_flag("DNS_ERROR_RCODE_YXDOMAIN", 9006) +DNS_ERROR_RCODE_YXRRSET = make_flag("DNS_ERROR_RCODE_YXRRSET", 9007) +DNS_ERROR_RCODE_NXRRSET = make_flag("DNS_ERROR_RCODE_NXRRSET", 9008) +DNS_ERROR_RCODE_NOTAUTH = make_flag("DNS_ERROR_RCODE_NOTAUTH", 9009) +DNS_ERROR_RCODE_NOTZONE = make_flag("DNS_ERROR_RCODE_NOTZONE", 9010) +DNS_ERROR_RCODE_BADSIG = make_flag("DNS_ERROR_RCODE_BADSIG", 9016) +DNS_ERROR_RCODE_BADKEY = make_flag("DNS_ERROR_RCODE_BADKEY", 9017) +DNS_ERROR_RCODE_BADTIME = make_flag("DNS_ERROR_RCODE_BADTIME", 9018) +DNS_ERROR_RCODE_LAST = make_flag("DNS_ERROR_RCODE_LAST", DNS_ERROR_RCODE_BADTIME) +DNS_ERROR_DNSSEC_BASE = make_flag("DNS_ERROR_DNSSEC_BASE", 9100) +DNS_ERROR_KEYMASTER_REQUIRED = make_flag("DNS_ERROR_KEYMASTER_REQUIRED", 9101) +DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE = make_flag("DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE", 9102) +DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1 = make_flag("DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1", 9103) +DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS = make_flag("DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS", 9104) +DNS_ERROR_UNSUPPORTED_ALGORITHM = make_flag("DNS_ERROR_UNSUPPORTED_ALGORITHM", 9105) +DNS_ERROR_INVALID_KEY_SIZE = make_flag("DNS_ERROR_INVALID_KEY_SIZE", 9106) +DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE = make_flag("DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE", 9107) +DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION = make_flag("DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION", 9108) +DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR = make_flag("DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR", 9109) +DNS_ERROR_UNEXPECTED_CNG_ERROR = make_flag("DNS_ERROR_UNEXPECTED_CNG_ERROR", 9110) +DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION = make_flag("DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION", 9111) +DNS_ERROR_KSP_NOT_ACCESSIBLE = make_flag("DNS_ERROR_KSP_NOT_ACCESSIBLE", 9112) +DNS_ERROR_TOO_MANY_SKDS = make_flag("DNS_ERROR_TOO_MANY_SKDS", 9113) +DNS_ERROR_INVALID_ROLLOVER_PERIOD = make_flag("DNS_ERROR_INVALID_ROLLOVER_PERIOD", 9114) +DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET = make_flag("DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET", 9115) +DNS_ERROR_ROLLOVER_IN_PROGRESS = make_flag("DNS_ERROR_ROLLOVER_IN_PROGRESS", 9116) +DNS_ERROR_STANDBY_KEY_NOT_PRESENT = make_flag("DNS_ERROR_STANDBY_KEY_NOT_PRESENT", 9117) +DNS_ERROR_NOT_ALLOWED_ON_ZSK = make_flag("DNS_ERROR_NOT_ALLOWED_ON_ZSK", 9118) +DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD = make_flag("DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD", 9119) +DNS_ERROR_ROLLOVER_ALREADY_QUEUED = make_flag("DNS_ERROR_ROLLOVER_ALREADY_QUEUED", 9120) +DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE = make_flag("DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE", 9121) +DNS_ERROR_BAD_KEYMASTER = make_flag("DNS_ERROR_BAD_KEYMASTER", 9122) +DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD = make_flag("DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD", 9123) +DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT = make_flag("DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT", 9124) +DNS_ERROR_DNSSEC_IS_DISABLED = make_flag("DNS_ERROR_DNSSEC_IS_DISABLED", 9125) +DNS_ERROR_INVALID_XML = make_flag("DNS_ERROR_INVALID_XML", 9126) +DNS_ERROR_NO_VALID_TRUST_ANCHORS = make_flag("DNS_ERROR_NO_VALID_TRUST_ANCHORS", 9127) +DNS_ERROR_ROLLOVER_NOT_POKEABLE = make_flag("DNS_ERROR_ROLLOVER_NOT_POKEABLE", 9128) +DNS_ERROR_NSEC3_NAME_COLLISION = make_flag("DNS_ERROR_NSEC3_NAME_COLLISION", 9129) +DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1 = make_flag("DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1", 9130) +DNS_ERROR_PACKET_FMT_BASE = make_flag("DNS_ERROR_PACKET_FMT_BASE", 9500) +DNS_INFO_NO_RECORDS = make_flag("DNS_INFO_NO_RECORDS", 9501) +DNS_ERROR_BAD_PACKET = make_flag("DNS_ERROR_BAD_PACKET", 9502) +DNS_ERROR_NO_PACKET = make_flag("DNS_ERROR_NO_PACKET", 9503) +DNS_ERROR_RCODE = make_flag("DNS_ERROR_RCODE", 9504) +DNS_ERROR_UNSECURE_PACKET = make_flag("DNS_ERROR_UNSECURE_PACKET", 9505) +DNS_STATUS_PACKET_UNSECURE = make_flag("DNS_STATUS_PACKET_UNSECURE", DNS_ERROR_UNSECURE_PACKET) +DNS_REQUEST_PENDING = make_flag("DNS_REQUEST_PENDING", 9506) +DNS_ERROR_NO_MEMORY = make_flag("DNS_ERROR_NO_MEMORY", ERROR_OUTOFMEMORY) +DNS_ERROR_INVALID_NAME = make_flag("DNS_ERROR_INVALID_NAME", ERROR_INVALID_NAME) +DNS_ERROR_INVALID_DATA = make_flag("DNS_ERROR_INVALID_DATA", ERROR_INVALID_DATA) +DNS_ERROR_GENERAL_API_BASE = make_flag("DNS_ERROR_GENERAL_API_BASE", 9550) +DNS_ERROR_INVALID_TYPE = make_flag("DNS_ERROR_INVALID_TYPE", 9551) +DNS_ERROR_INVALID_IP_ADDRESS = make_flag("DNS_ERROR_INVALID_IP_ADDRESS", 9552) +DNS_ERROR_INVALID_PROPERTY = make_flag("DNS_ERROR_INVALID_PROPERTY", 9553) +DNS_ERROR_TRY_AGAIN_LATER = make_flag("DNS_ERROR_TRY_AGAIN_LATER", 9554) +DNS_ERROR_NOT_UNIQUE = make_flag("DNS_ERROR_NOT_UNIQUE", 9555) +DNS_ERROR_NON_RFC_NAME = make_flag("DNS_ERROR_NON_RFC_NAME", 9556) +DNS_STATUS_FQDN = make_flag("DNS_STATUS_FQDN", 9557) +DNS_STATUS_DOTTED_NAME = make_flag("DNS_STATUS_DOTTED_NAME", 9558) +DNS_STATUS_SINGLE_PART_NAME = make_flag("DNS_STATUS_SINGLE_PART_NAME", 9559) +DNS_ERROR_INVALID_NAME_CHAR = make_flag("DNS_ERROR_INVALID_NAME_CHAR", 9560) +DNS_ERROR_NUMERIC_NAME = make_flag("DNS_ERROR_NUMERIC_NAME", 9561) +DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER = make_flag("DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER", 9562) +DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION = make_flag("DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION", 9563) +DNS_ERROR_CANNOT_FIND_ROOT_HINTS = make_flag("DNS_ERROR_CANNOT_FIND_ROOT_HINTS", 9564) +DNS_ERROR_INCONSISTENT_ROOT_HINTS = make_flag("DNS_ERROR_INCONSISTENT_ROOT_HINTS", 9565) +DNS_ERROR_DWORD_VALUE_TOO_SMALL = make_flag("DNS_ERROR_DWORD_VALUE_TOO_SMALL", 9566) +DNS_ERROR_DWORD_VALUE_TOO_LARGE = make_flag("DNS_ERROR_DWORD_VALUE_TOO_LARGE", 9567) +DNS_ERROR_BACKGROUND_LOADING = make_flag("DNS_ERROR_BACKGROUND_LOADING", 9568) +DNS_ERROR_NOT_ALLOWED_ON_RODC = make_flag("DNS_ERROR_NOT_ALLOWED_ON_RODC", 9569) +DNS_ERROR_NOT_ALLOWED_UNDER_DNAME = make_flag("DNS_ERROR_NOT_ALLOWED_UNDER_DNAME", 9570) +DNS_ERROR_DELEGATION_REQUIRED = make_flag("DNS_ERROR_DELEGATION_REQUIRED", 9571) +DNS_ERROR_INVALID_POLICY_TABLE = make_flag("DNS_ERROR_INVALID_POLICY_TABLE", 9572) +DNS_ERROR_ADDRESS_REQUIRED = make_flag("DNS_ERROR_ADDRESS_REQUIRED", 9573) +DNS_ERROR_ZONE_BASE = make_flag("DNS_ERROR_ZONE_BASE", 9600) +DNS_ERROR_ZONE_DOES_NOT_EXIST = make_flag("DNS_ERROR_ZONE_DOES_NOT_EXIST", 9601) +DNS_ERROR_NO_ZONE_INFO = make_flag("DNS_ERROR_NO_ZONE_INFO", 9602) +DNS_ERROR_INVALID_ZONE_OPERATION = make_flag("DNS_ERROR_INVALID_ZONE_OPERATION", 9603) +DNS_ERROR_ZONE_CONFIGURATION_ERROR = make_flag("DNS_ERROR_ZONE_CONFIGURATION_ERROR", 9604) +DNS_ERROR_ZONE_HAS_NO_SOA_RECORD = make_flag("DNS_ERROR_ZONE_HAS_NO_SOA_RECORD", 9605) +DNS_ERROR_ZONE_HAS_NO_NS_RECORDS = make_flag("DNS_ERROR_ZONE_HAS_NO_NS_RECORDS", 9606) +DNS_ERROR_ZONE_LOCKED = make_flag("DNS_ERROR_ZONE_LOCKED", 9607) +DNS_ERROR_ZONE_CREATION_FAILED = make_flag("DNS_ERROR_ZONE_CREATION_FAILED", 9608) +DNS_ERROR_ZONE_ALREADY_EXISTS = make_flag("DNS_ERROR_ZONE_ALREADY_EXISTS", 9609) +DNS_ERROR_AUTOZONE_ALREADY_EXISTS = make_flag("DNS_ERROR_AUTOZONE_ALREADY_EXISTS", 9610) +DNS_ERROR_INVALID_ZONE_TYPE = make_flag("DNS_ERROR_INVALID_ZONE_TYPE", 9611) +DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP = make_flag("DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP", 9612) +DNS_ERROR_ZONE_NOT_SECONDARY = make_flag("DNS_ERROR_ZONE_NOT_SECONDARY", 9613) +DNS_ERROR_NEED_SECONDARY_ADDRESSES = make_flag("DNS_ERROR_NEED_SECONDARY_ADDRESSES", 9614) +DNS_ERROR_WINS_INIT_FAILED = make_flag("DNS_ERROR_WINS_INIT_FAILED", 9615) +DNS_ERROR_NEED_WINS_SERVERS = make_flag("DNS_ERROR_NEED_WINS_SERVERS", 9616) +DNS_ERROR_NBSTAT_INIT_FAILED = make_flag("DNS_ERROR_NBSTAT_INIT_FAILED", 9617) +DNS_ERROR_SOA_DELETE_INVALID = make_flag("DNS_ERROR_SOA_DELETE_INVALID", 9618) +DNS_ERROR_FORWARDER_ALREADY_EXISTS = make_flag("DNS_ERROR_FORWARDER_ALREADY_EXISTS", 9619) +DNS_ERROR_ZONE_REQUIRES_MASTER_IP = make_flag("DNS_ERROR_ZONE_REQUIRES_MASTER_IP", 9620) +DNS_ERROR_ZONE_IS_SHUTDOWN = make_flag("DNS_ERROR_ZONE_IS_SHUTDOWN", 9621) +DNS_ERROR_ZONE_LOCKED_FOR_SIGNING = make_flag("DNS_ERROR_ZONE_LOCKED_FOR_SIGNING", 9622) +DNS_ERROR_DATAFILE_BASE = make_flag("DNS_ERROR_DATAFILE_BASE", 9650) +DNS_ERROR_PRIMARY_REQUIRES_DATAFILE = make_flag("DNS_ERROR_PRIMARY_REQUIRES_DATAFILE", 9651) +DNS_ERROR_INVALID_DATAFILE_NAME = make_flag("DNS_ERROR_INVALID_DATAFILE_NAME", 9652) +DNS_ERROR_DATAFILE_OPEN_FAILURE = make_flag("DNS_ERROR_DATAFILE_OPEN_FAILURE", 9653) +DNS_ERROR_FILE_WRITEBACK_FAILED = make_flag("DNS_ERROR_FILE_WRITEBACK_FAILED", 9654) +DNS_ERROR_DATAFILE_PARSING = make_flag("DNS_ERROR_DATAFILE_PARSING", 9655) +DNS_ERROR_DATABASE_BASE = make_flag("DNS_ERROR_DATABASE_BASE", 9700) +DNS_ERROR_RECORD_DOES_NOT_EXIST = make_flag("DNS_ERROR_RECORD_DOES_NOT_EXIST", 9701) +DNS_ERROR_RECORD_FORMAT = make_flag("DNS_ERROR_RECORD_FORMAT", 9702) +DNS_ERROR_NODE_CREATION_FAILED = make_flag("DNS_ERROR_NODE_CREATION_FAILED", 9703) +DNS_ERROR_UNKNOWN_RECORD_TYPE = make_flag("DNS_ERROR_UNKNOWN_RECORD_TYPE", 9704) +DNS_ERROR_RECORD_TIMED_OUT = make_flag("DNS_ERROR_RECORD_TIMED_OUT", 9705) +DNS_ERROR_NAME_NOT_IN_ZONE = make_flag("DNS_ERROR_NAME_NOT_IN_ZONE", 9706) +DNS_ERROR_CNAME_LOOP = make_flag("DNS_ERROR_CNAME_LOOP", 9707) +DNS_ERROR_NODE_IS_CNAME = make_flag("DNS_ERROR_NODE_IS_CNAME", 9708) +DNS_ERROR_CNAME_COLLISION = make_flag("DNS_ERROR_CNAME_COLLISION", 9709) +DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT = make_flag("DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT", 9710) +DNS_ERROR_RECORD_ALREADY_EXISTS = make_flag("DNS_ERROR_RECORD_ALREADY_EXISTS", 9711) +DNS_ERROR_SECONDARY_DATA = make_flag("DNS_ERROR_SECONDARY_DATA", 9712) +DNS_ERROR_NO_CREATE_CACHE_DATA = make_flag("DNS_ERROR_NO_CREATE_CACHE_DATA", 9713) +DNS_ERROR_NAME_DOES_NOT_EXIST = make_flag("DNS_ERROR_NAME_DOES_NOT_EXIST", 9714) +DNS_WARNING_PTR_CREATE_FAILED = make_flag("DNS_WARNING_PTR_CREATE_FAILED", 9715) +DNS_WARNING_DOMAIN_UNDELETED = make_flag("DNS_WARNING_DOMAIN_UNDELETED", 9716) +DNS_ERROR_DS_UNAVAILABLE = make_flag("DNS_ERROR_DS_UNAVAILABLE", 9717) +DNS_ERROR_DS_ZONE_ALREADY_EXISTS = make_flag("DNS_ERROR_DS_ZONE_ALREADY_EXISTS", 9718) +DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE = make_flag("DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE", 9719) +DNS_ERROR_NODE_IS_DNAME = make_flag("DNS_ERROR_NODE_IS_DNAME", 9720) +DNS_ERROR_DNAME_COLLISION = make_flag("DNS_ERROR_DNAME_COLLISION", 9721) +DNS_ERROR_ALIAS_LOOP = make_flag("DNS_ERROR_ALIAS_LOOP", 9722) +DNS_ERROR_OPERATION_BASE = make_flag("DNS_ERROR_OPERATION_BASE", 9750) +DNS_INFO_AXFR_COMPLETE = make_flag("DNS_INFO_AXFR_COMPLETE", 9751) +DNS_ERROR_AXFR = make_flag("DNS_ERROR_AXFR", 9752) +DNS_INFO_ADDED_LOCAL_WINS = make_flag("DNS_INFO_ADDED_LOCAL_WINS", 9753) +DNS_ERROR_SECURE_BASE = make_flag("DNS_ERROR_SECURE_BASE", 9800) +DNS_STATUS_CONTINUE_NEEDED = make_flag("DNS_STATUS_CONTINUE_NEEDED", 9801) +DNS_ERROR_SETUP_BASE = make_flag("DNS_ERROR_SETUP_BASE", 9850) +DNS_ERROR_NO_TCPIP = make_flag("DNS_ERROR_NO_TCPIP", 9851) +DNS_ERROR_NO_DNS_SERVERS = make_flag("DNS_ERROR_NO_DNS_SERVERS", 9852) +DNS_ERROR_DP_BASE = make_flag("DNS_ERROR_DP_BASE", 9900) +DNS_ERROR_DP_DOES_NOT_EXIST = make_flag("DNS_ERROR_DP_DOES_NOT_EXIST", 9901) +DNS_ERROR_DP_ALREADY_EXISTS = make_flag("DNS_ERROR_DP_ALREADY_EXISTS", 9902) +DNS_ERROR_DP_NOT_ENLISTED = make_flag("DNS_ERROR_DP_NOT_ENLISTED", 9903) +DNS_ERROR_DP_ALREADY_ENLISTED = make_flag("DNS_ERROR_DP_ALREADY_ENLISTED", 9904) +DNS_ERROR_DP_NOT_AVAILABLE = make_flag("DNS_ERROR_DP_NOT_AVAILABLE", 9905) +DNS_ERROR_DP_FSMO_ERROR = make_flag("DNS_ERROR_DP_FSMO_ERROR", 9906) +DNS_ERROR_RRL_NOT_ENABLED = make_flag("DNS_ERROR_RRL_NOT_ENABLED", 9911) +DNS_ERROR_RRL_INVALID_WINDOW_SIZE = make_flag("DNS_ERROR_RRL_INVALID_WINDOW_SIZE", 9912) +DNS_ERROR_RRL_INVALID_IPV4_PREFIX = make_flag("DNS_ERROR_RRL_INVALID_IPV4_PREFIX", 9913) +DNS_ERROR_RRL_INVALID_IPV6_PREFIX = make_flag("DNS_ERROR_RRL_INVALID_IPV6_PREFIX", 9914) +DNS_ERROR_RRL_INVALID_TC_RATE = make_flag("DNS_ERROR_RRL_INVALID_TC_RATE", 9915) +DNS_ERROR_RRL_INVALID_LEAK_RATE = make_flag("DNS_ERROR_RRL_INVALID_LEAK_RATE", 9916) +DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE = make_flag("DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE", 9917) +DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS = make_flag("DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS", 9921) +DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST = make_flag("DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST", 9922) +DNS_ERROR_VIRTUALIZATION_TREE_LOCKED = make_flag("DNS_ERROR_VIRTUALIZATION_TREE_LOCKED", 9923) +DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME = make_flag("DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME", 9924) +DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE = make_flag("DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE", 9925) +DNS_ERROR_ZONESCOPE_ALREADY_EXISTS = make_flag("DNS_ERROR_ZONESCOPE_ALREADY_EXISTS", 9951) +DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST = make_flag("DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST", 9952) +DNS_ERROR_DEFAULT_ZONESCOPE = make_flag("DNS_ERROR_DEFAULT_ZONESCOPE", 9953) +DNS_ERROR_INVALID_ZONESCOPE_NAME = make_flag("DNS_ERROR_INVALID_ZONESCOPE_NAME", 9954) +DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES = make_flag("DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES", 9955) +DNS_ERROR_LOAD_ZONESCOPE_FAILED = make_flag("DNS_ERROR_LOAD_ZONESCOPE_FAILED", 9956) +DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED = make_flag("DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED", 9957) +DNS_ERROR_INVALID_SCOPE_NAME = make_flag("DNS_ERROR_INVALID_SCOPE_NAME", 9958) +DNS_ERROR_SCOPE_DOES_NOT_EXIST = make_flag("DNS_ERROR_SCOPE_DOES_NOT_EXIST", 9959) +DNS_ERROR_DEFAULT_SCOPE = make_flag("DNS_ERROR_DEFAULT_SCOPE", 9960) +DNS_ERROR_INVALID_SCOPE_OPERATION = make_flag("DNS_ERROR_INVALID_SCOPE_OPERATION", 9961) +DNS_ERROR_SCOPE_LOCKED = make_flag("DNS_ERROR_SCOPE_LOCKED", 9962) +DNS_ERROR_SCOPE_ALREADY_EXISTS = make_flag("DNS_ERROR_SCOPE_ALREADY_EXISTS", 9963) +DNS_ERROR_POLICY_ALREADY_EXISTS = make_flag("DNS_ERROR_POLICY_ALREADY_EXISTS", 9971) +DNS_ERROR_POLICY_DOES_NOT_EXIST = make_flag("DNS_ERROR_POLICY_DOES_NOT_EXIST", 9972) +DNS_ERROR_POLICY_INVALID_CRITERIA = make_flag("DNS_ERROR_POLICY_INVALID_CRITERIA", 9973) +DNS_ERROR_POLICY_INVALID_SETTINGS = make_flag("DNS_ERROR_POLICY_INVALID_SETTINGS", 9974) +DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED = make_flag("DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED", 9975) +DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST = make_flag("DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST", 9976) +DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS = make_flag("DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS", 9977) +DNS_ERROR_SUBNET_DOES_NOT_EXIST = make_flag("DNS_ERROR_SUBNET_DOES_NOT_EXIST", 9978) +DNS_ERROR_SUBNET_ALREADY_EXISTS = make_flag("DNS_ERROR_SUBNET_ALREADY_EXISTS", 9979) +DNS_ERROR_POLICY_LOCKED = make_flag("DNS_ERROR_POLICY_LOCKED", 9980) +DNS_ERROR_POLICY_INVALID_WEIGHT = make_flag("DNS_ERROR_POLICY_INVALID_WEIGHT", 9981) +DNS_ERROR_POLICY_INVALID_NAME = make_flag("DNS_ERROR_POLICY_INVALID_NAME", 9982) +DNS_ERROR_POLICY_MISSING_CRITERIA = make_flag("DNS_ERROR_POLICY_MISSING_CRITERIA", 9983) +DNS_ERROR_INVALID_CLIENT_SUBNET_NAME = make_flag("DNS_ERROR_INVALID_CLIENT_SUBNET_NAME", 9984) +DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID = make_flag("DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID", 9985) +DNS_ERROR_POLICY_SCOPE_MISSING = make_flag("DNS_ERROR_POLICY_SCOPE_MISSING", 9986) +DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED = make_flag("DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED", 9987) +DNS_ERROR_SERVERSCOPE_IS_REFERENCED = make_flag("DNS_ERROR_SERVERSCOPE_IS_REFERENCED", 9988) +DNS_ERROR_ZONESCOPE_IS_REFERENCED = make_flag("DNS_ERROR_ZONESCOPE_IS_REFERENCED", 9989) +DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET = make_flag("DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET", 9990) +DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL = make_flag("DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL", 9991) +DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL = make_flag("DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL", 9992) +DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE = make_flag("DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE", 9993) +DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN = make_flag("DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN", 9994) +DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE = make_flag("DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE", 9995) +DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY = make_flag("DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY", 9996) +WSABASEERR = make_flag("WSABASEERR", 10000) +WSAEINTR = make_flag("WSAEINTR", 10004) +WSAEBADF = make_flag("WSAEBADF", 10009) +WSAEACCES = make_flag("WSAEACCES", 10013) +WSAEFAULT = make_flag("WSAEFAULT", 10014) +WSAEINVAL = make_flag("WSAEINVAL", 10022) +WSAEMFILE = make_flag("WSAEMFILE", 10024) +WSAEWOULDBLOCK = make_flag("WSAEWOULDBLOCK", 10035) +WSAEINPROGRESS = make_flag("WSAEINPROGRESS", 10036) +WSAEALREADY = make_flag("WSAEALREADY", 10037) +WSAENOTSOCK = make_flag("WSAENOTSOCK", 10038) +WSAEDESTADDRREQ = make_flag("WSAEDESTADDRREQ", 10039) +WSAEMSGSIZE = make_flag("WSAEMSGSIZE", 10040) +WSAEPROTOTYPE = make_flag("WSAEPROTOTYPE", 10041) +WSAENOPROTOOPT = make_flag("WSAENOPROTOOPT", 10042) +WSAEPROTONOSUPPORT = make_flag("WSAEPROTONOSUPPORT", 10043) +WSAESOCKTNOSUPPORT = make_flag("WSAESOCKTNOSUPPORT", 10044) +WSAEOPNOTSUPP = make_flag("WSAEOPNOTSUPP", 10045) +WSAEPFNOSUPPORT = make_flag("WSAEPFNOSUPPORT", 10046) +WSAEAFNOSUPPORT = make_flag("WSAEAFNOSUPPORT", 10047) +WSAEADDRINUSE = make_flag("WSAEADDRINUSE", 10048) +WSAEADDRNOTAVAIL = make_flag("WSAEADDRNOTAVAIL", 10049) +WSAENETDOWN = make_flag("WSAENETDOWN", 10050) +WSAENETUNREACH = make_flag("WSAENETUNREACH", 10051) +WSAENETRESET = make_flag("WSAENETRESET", 10052) +WSAECONNABORTED = make_flag("WSAECONNABORTED", 10053) +WSAECONNRESET = make_flag("WSAECONNRESET", 10054) +WSAENOBUFS = make_flag("WSAENOBUFS", 10055) +WSAEISCONN = make_flag("WSAEISCONN", 10056) +WSAENOTCONN = make_flag("WSAENOTCONN", 10057) +WSAESHUTDOWN = make_flag("WSAESHUTDOWN", 10058) +WSAETOOMANYREFS = make_flag("WSAETOOMANYREFS", 10059) +WSAETIMEDOUT = make_flag("WSAETIMEDOUT", 10060) +WSAECONNREFUSED = make_flag("WSAECONNREFUSED", 10061) +WSAELOOP = make_flag("WSAELOOP", 10062) +WSAENAMETOOLONG = make_flag("WSAENAMETOOLONG", 10063) +WSAEHOSTDOWN = make_flag("WSAEHOSTDOWN", 10064) +WSAEHOSTUNREACH = make_flag("WSAEHOSTUNREACH", 10065) +WSAENOTEMPTY = make_flag("WSAENOTEMPTY", 10066) +WSAEPROCLIM = make_flag("WSAEPROCLIM", 10067) +WSAEUSERS = make_flag("WSAEUSERS", 10068) +WSAEDQUOT = make_flag("WSAEDQUOT", 10069) +WSAESTALE = make_flag("WSAESTALE", 10070) +WSAEREMOTE = make_flag("WSAEREMOTE", 10071) +WSASYSNOTREADY = make_flag("WSASYSNOTREADY", 10091) +WSAVERNOTSUPPORTED = make_flag("WSAVERNOTSUPPORTED", 10092) +WSANOTINITIALISED = make_flag("WSANOTINITIALISED", 10093) +WSAEDISCON = make_flag("WSAEDISCON", 10101) +WSAENOMORE = make_flag("WSAENOMORE", 10102) +WSAECANCELLED = make_flag("WSAECANCELLED", 10103) +WSAEINVALIDPROCTABLE = make_flag("WSAEINVALIDPROCTABLE", 10104) +WSAEINVALIDPROVIDER = make_flag("WSAEINVALIDPROVIDER", 10105) +WSAEPROVIDERFAILEDINIT = make_flag("WSAEPROVIDERFAILEDINIT", 10106) +WSASYSCALLFAILURE = make_flag("WSASYSCALLFAILURE", 10107) +WSASERVICE_NOT_FOUND = make_flag("WSASERVICE_NOT_FOUND", 10108) +WSATYPE_NOT_FOUND = make_flag("WSATYPE_NOT_FOUND", 10109) +WSA_E_NO_MORE = make_flag("WSA_E_NO_MORE", 10110) +WSA_E_CANCELLED = make_flag("WSA_E_CANCELLED", 10111) +WSAEREFUSED = make_flag("WSAEREFUSED", 10112) +WSAHOST_NOT_FOUND = make_flag("WSAHOST_NOT_FOUND", 11001) +WSATRY_AGAIN = make_flag("WSATRY_AGAIN", 11002) +WSANO_RECOVERY = make_flag("WSANO_RECOVERY", 11003) +WSANO_DATA = make_flag("WSANO_DATA", 11004) +WSA_QOS_RECEIVERS = make_flag("WSA_QOS_RECEIVERS", 11005) +WSA_QOS_SENDERS = make_flag("WSA_QOS_SENDERS", 11006) +WSA_QOS_NO_SENDERS = make_flag("WSA_QOS_NO_SENDERS", 11007) +WSA_QOS_NO_RECEIVERS = make_flag("WSA_QOS_NO_RECEIVERS", 11008) +WSA_QOS_REQUEST_CONFIRMED = make_flag("WSA_QOS_REQUEST_CONFIRMED", 11009) +WSA_QOS_ADMISSION_FAILURE = make_flag("WSA_QOS_ADMISSION_FAILURE", 11010) +WSA_QOS_POLICY_FAILURE = make_flag("WSA_QOS_POLICY_FAILURE", 11011) +WSA_QOS_BAD_STYLE = make_flag("WSA_QOS_BAD_STYLE", 11012) +WSA_QOS_BAD_OBJECT = make_flag("WSA_QOS_BAD_OBJECT", 11013) +WSA_QOS_TRAFFIC_CTRL_ERROR = make_flag("WSA_QOS_TRAFFIC_CTRL_ERROR", 11014) +WSA_QOS_GENERIC_ERROR = make_flag("WSA_QOS_GENERIC_ERROR", 11015) +WSA_QOS_ESERVICETYPE = make_flag("WSA_QOS_ESERVICETYPE", 11016) +WSA_QOS_EFLOWSPEC = make_flag("WSA_QOS_EFLOWSPEC", 11017) +WSA_QOS_EPROVSPECBUF = make_flag("WSA_QOS_EPROVSPECBUF", 11018) +WSA_QOS_EFILTERSTYLE = make_flag("WSA_QOS_EFILTERSTYLE", 11019) +WSA_QOS_EFILTERTYPE = make_flag("WSA_QOS_EFILTERTYPE", 11020) +WSA_QOS_EFILTERCOUNT = make_flag("WSA_QOS_EFILTERCOUNT", 11021) +WSA_QOS_EOBJLENGTH = make_flag("WSA_QOS_EOBJLENGTH", 11022) +WSA_QOS_EFLOWCOUNT = make_flag("WSA_QOS_EFLOWCOUNT", 11023) +WSA_QOS_EUNKOWNPSOBJ = make_flag("WSA_QOS_EUNKOWNPSOBJ", 11024) +WSA_QOS_EPOLICYOBJ = make_flag("WSA_QOS_EPOLICYOBJ", 11025) +WSA_QOS_EFLOWDESC = make_flag("WSA_QOS_EFLOWDESC", 11026) +WSA_QOS_EPSFLOWSPEC = make_flag("WSA_QOS_EPSFLOWSPEC", 11027) +WSA_QOS_EPSFILTERSPEC = make_flag("WSA_QOS_EPSFILTERSPEC", 11028) +WSA_QOS_ESDMODEOBJ = make_flag("WSA_QOS_ESDMODEOBJ", 11029) +WSA_QOS_ESHAPERATEOBJ = make_flag("WSA_QOS_ESHAPERATEOBJ", 11030) +WSA_QOS_RESERVED_PETYPE = make_flag("WSA_QOS_RESERVED_PETYPE", 11031) +WSA_SECURE_HOST_NOT_FOUND = make_flag("WSA_SECURE_HOST_NOT_FOUND", 11032) +WSA_IPSEC_NAME_POLICY_ERROR = make_flag("WSA_IPSEC_NAME_POLICY_ERROR", 11033) +ERROR_IPSEC_QM_POLICY_EXISTS = make_flag("ERROR_IPSEC_QM_POLICY_EXISTS", 13000) +ERROR_IPSEC_QM_POLICY_NOT_FOUND = make_flag("ERROR_IPSEC_QM_POLICY_NOT_FOUND", 13001) +ERROR_IPSEC_QM_POLICY_IN_USE = make_flag("ERROR_IPSEC_QM_POLICY_IN_USE", 13002) +ERROR_IPSEC_MM_POLICY_EXISTS = make_flag("ERROR_IPSEC_MM_POLICY_EXISTS", 13003) +ERROR_IPSEC_MM_POLICY_NOT_FOUND = make_flag("ERROR_IPSEC_MM_POLICY_NOT_FOUND", 13004) +ERROR_IPSEC_MM_POLICY_IN_USE = make_flag("ERROR_IPSEC_MM_POLICY_IN_USE", 13005) +ERROR_IPSEC_MM_FILTER_EXISTS = make_flag("ERROR_IPSEC_MM_FILTER_EXISTS", 13006) +ERROR_IPSEC_MM_FILTER_NOT_FOUND = make_flag("ERROR_IPSEC_MM_FILTER_NOT_FOUND", 13007) +ERROR_IPSEC_TRANSPORT_FILTER_EXISTS = make_flag("ERROR_IPSEC_TRANSPORT_FILTER_EXISTS", 13008) +ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND = make_flag("ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND", 13009) +ERROR_IPSEC_MM_AUTH_EXISTS = make_flag("ERROR_IPSEC_MM_AUTH_EXISTS", 13010) +ERROR_IPSEC_MM_AUTH_NOT_FOUND = make_flag("ERROR_IPSEC_MM_AUTH_NOT_FOUND", 13011) +ERROR_IPSEC_MM_AUTH_IN_USE = make_flag("ERROR_IPSEC_MM_AUTH_IN_USE", 13012) +ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND = make_flag("ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND", 13013) +ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND = make_flag("ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND", 13014) +ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND = make_flag("ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND", 13015) +ERROR_IPSEC_TUNNEL_FILTER_EXISTS = make_flag("ERROR_IPSEC_TUNNEL_FILTER_EXISTS", 13016) +ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND = make_flag("ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND", 13017) +ERROR_IPSEC_MM_FILTER_PENDING_DELETION = make_flag("ERROR_IPSEC_MM_FILTER_PENDING_DELETION", 13018) +ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION = make_flag("ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION", 13019) +ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION = make_flag("ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION", 13020) +ERROR_IPSEC_MM_POLICY_PENDING_DELETION = make_flag("ERROR_IPSEC_MM_POLICY_PENDING_DELETION", 13021) +ERROR_IPSEC_MM_AUTH_PENDING_DELETION = make_flag("ERROR_IPSEC_MM_AUTH_PENDING_DELETION", 13022) +ERROR_IPSEC_QM_POLICY_PENDING_DELETION = make_flag("ERROR_IPSEC_QM_POLICY_PENDING_DELETION", 13023) +WARNING_IPSEC_MM_POLICY_PRUNED = make_flag("WARNING_IPSEC_MM_POLICY_PRUNED", 13024) +WARNING_IPSEC_QM_POLICY_PRUNED = make_flag("WARNING_IPSEC_QM_POLICY_PRUNED", 13025) +ERROR_IPSEC_IKE_NEG_STATUS_BEGIN = make_flag("ERROR_IPSEC_IKE_NEG_STATUS_BEGIN", 13800) +ERROR_IPSEC_IKE_AUTH_FAIL = make_flag("ERROR_IPSEC_IKE_AUTH_FAIL", 13801) +ERROR_IPSEC_IKE_ATTRIB_FAIL = make_flag("ERROR_IPSEC_IKE_ATTRIB_FAIL", 13802) +ERROR_IPSEC_IKE_NEGOTIATION_PENDING = make_flag("ERROR_IPSEC_IKE_NEGOTIATION_PENDING", 13803) +ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR = make_flag("ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR", 13804) +ERROR_IPSEC_IKE_TIMED_OUT = make_flag("ERROR_IPSEC_IKE_TIMED_OUT", 13805) +ERROR_IPSEC_IKE_NO_CERT = make_flag("ERROR_IPSEC_IKE_NO_CERT", 13806) +ERROR_IPSEC_IKE_SA_DELETED = make_flag("ERROR_IPSEC_IKE_SA_DELETED", 13807) +ERROR_IPSEC_IKE_SA_REAPED = make_flag("ERROR_IPSEC_IKE_SA_REAPED", 13808) +ERROR_IPSEC_IKE_MM_ACQUIRE_DROP = make_flag("ERROR_IPSEC_IKE_MM_ACQUIRE_DROP", 13809) +ERROR_IPSEC_IKE_QM_ACQUIRE_DROP = make_flag("ERROR_IPSEC_IKE_QM_ACQUIRE_DROP", 13810) +ERROR_IPSEC_IKE_QUEUE_DROP_MM = make_flag("ERROR_IPSEC_IKE_QUEUE_DROP_MM", 13811) +ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM = make_flag("ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM", 13812) +ERROR_IPSEC_IKE_DROP_NO_RESPONSE = make_flag("ERROR_IPSEC_IKE_DROP_NO_RESPONSE", 13813) +ERROR_IPSEC_IKE_MM_DELAY_DROP = make_flag("ERROR_IPSEC_IKE_MM_DELAY_DROP", 13814) +ERROR_IPSEC_IKE_QM_DELAY_DROP = make_flag("ERROR_IPSEC_IKE_QM_DELAY_DROP", 13815) +ERROR_IPSEC_IKE_ERROR = make_flag("ERROR_IPSEC_IKE_ERROR", 13816) +ERROR_IPSEC_IKE_CRL_FAILED = make_flag("ERROR_IPSEC_IKE_CRL_FAILED", 13817) +ERROR_IPSEC_IKE_INVALID_KEY_USAGE = make_flag("ERROR_IPSEC_IKE_INVALID_KEY_USAGE", 13818) +ERROR_IPSEC_IKE_INVALID_CERT_TYPE = make_flag("ERROR_IPSEC_IKE_INVALID_CERT_TYPE", 13819) +ERROR_IPSEC_IKE_NO_PRIVATE_KEY = make_flag("ERROR_IPSEC_IKE_NO_PRIVATE_KEY", 13820) +ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY = make_flag("ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY", 13821) +ERROR_IPSEC_IKE_DH_FAIL = make_flag("ERROR_IPSEC_IKE_DH_FAIL", 13822) +ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED = make_flag("ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED", 13823) +ERROR_IPSEC_IKE_INVALID_HEADER = make_flag("ERROR_IPSEC_IKE_INVALID_HEADER", 13824) +ERROR_IPSEC_IKE_NO_POLICY = make_flag("ERROR_IPSEC_IKE_NO_POLICY", 13825) +ERROR_IPSEC_IKE_INVALID_SIGNATURE = make_flag("ERROR_IPSEC_IKE_INVALID_SIGNATURE", 13826) +ERROR_IPSEC_IKE_KERBEROS_ERROR = make_flag("ERROR_IPSEC_IKE_KERBEROS_ERROR", 13827) +ERROR_IPSEC_IKE_NO_PUBLIC_KEY = make_flag("ERROR_IPSEC_IKE_NO_PUBLIC_KEY", 13828) +ERROR_IPSEC_IKE_PROCESS_ERR = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR", 13829) +ERROR_IPSEC_IKE_PROCESS_ERR_SA = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_SA", 13830) +ERROR_IPSEC_IKE_PROCESS_ERR_PROP = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_PROP", 13831) +ERROR_IPSEC_IKE_PROCESS_ERR_TRANS = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_TRANS", 13832) +ERROR_IPSEC_IKE_PROCESS_ERR_KE = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_KE", 13833) +ERROR_IPSEC_IKE_PROCESS_ERR_ID = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_ID", 13834) +ERROR_IPSEC_IKE_PROCESS_ERR_CERT = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_CERT", 13835) +ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ", 13836) +ERROR_IPSEC_IKE_PROCESS_ERR_HASH = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_HASH", 13837) +ERROR_IPSEC_IKE_PROCESS_ERR_SIG = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_SIG", 13838) +ERROR_IPSEC_IKE_PROCESS_ERR_NONCE = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_NONCE", 13839) +ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY", 13840) +ERROR_IPSEC_IKE_PROCESS_ERR_DELETE = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_DELETE", 13841) +ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR", 13842) +ERROR_IPSEC_IKE_INVALID_PAYLOAD = make_flag("ERROR_IPSEC_IKE_INVALID_PAYLOAD", 13843) +ERROR_IPSEC_IKE_LOAD_SOFT_SA = make_flag("ERROR_IPSEC_IKE_LOAD_SOFT_SA", 13844) +ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN = make_flag("ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN", 13845) +ERROR_IPSEC_IKE_INVALID_COOKIE = make_flag("ERROR_IPSEC_IKE_INVALID_COOKIE", 13846) +ERROR_IPSEC_IKE_NO_PEER_CERT = make_flag("ERROR_IPSEC_IKE_NO_PEER_CERT", 13847) +ERROR_IPSEC_IKE_PEER_CRL_FAILED = make_flag("ERROR_IPSEC_IKE_PEER_CRL_FAILED", 13848) +ERROR_IPSEC_IKE_POLICY_CHANGE = make_flag("ERROR_IPSEC_IKE_POLICY_CHANGE", 13849) +ERROR_IPSEC_IKE_NO_MM_POLICY = make_flag("ERROR_IPSEC_IKE_NO_MM_POLICY", 13850) +ERROR_IPSEC_IKE_NOTCBPRIV = make_flag("ERROR_IPSEC_IKE_NOTCBPRIV", 13851) +ERROR_IPSEC_IKE_SECLOADFAIL = make_flag("ERROR_IPSEC_IKE_SECLOADFAIL", 13852) +ERROR_IPSEC_IKE_FAILSSPINIT = make_flag("ERROR_IPSEC_IKE_FAILSSPINIT", 13853) +ERROR_IPSEC_IKE_FAILQUERYSSP = make_flag("ERROR_IPSEC_IKE_FAILQUERYSSP", 13854) +ERROR_IPSEC_IKE_SRVACQFAIL = make_flag("ERROR_IPSEC_IKE_SRVACQFAIL", 13855) +ERROR_IPSEC_IKE_SRVQUERYCRED = make_flag("ERROR_IPSEC_IKE_SRVQUERYCRED", 13856) +ERROR_IPSEC_IKE_GETSPIFAIL = make_flag("ERROR_IPSEC_IKE_GETSPIFAIL", 13857) +ERROR_IPSEC_IKE_INVALID_FILTER = make_flag("ERROR_IPSEC_IKE_INVALID_FILTER", 13858) +ERROR_IPSEC_IKE_OUT_OF_MEMORY = make_flag("ERROR_IPSEC_IKE_OUT_OF_MEMORY", 13859) +ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED = make_flag("ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED", 13860) +ERROR_IPSEC_IKE_INVALID_POLICY = make_flag("ERROR_IPSEC_IKE_INVALID_POLICY", 13861) +ERROR_IPSEC_IKE_UNKNOWN_DOI = make_flag("ERROR_IPSEC_IKE_UNKNOWN_DOI", 13862) +ERROR_IPSEC_IKE_INVALID_SITUATION = make_flag("ERROR_IPSEC_IKE_INVALID_SITUATION", 13863) +ERROR_IPSEC_IKE_DH_FAILURE = make_flag("ERROR_IPSEC_IKE_DH_FAILURE", 13864) +ERROR_IPSEC_IKE_INVALID_GROUP = make_flag("ERROR_IPSEC_IKE_INVALID_GROUP", 13865) +ERROR_IPSEC_IKE_ENCRYPT = make_flag("ERROR_IPSEC_IKE_ENCRYPT", 13866) +ERROR_IPSEC_IKE_DECRYPT = make_flag("ERROR_IPSEC_IKE_DECRYPT", 13867) +ERROR_IPSEC_IKE_POLICY_MATCH = make_flag("ERROR_IPSEC_IKE_POLICY_MATCH", 13868) +ERROR_IPSEC_IKE_UNSUPPORTED_ID = make_flag("ERROR_IPSEC_IKE_UNSUPPORTED_ID", 13869) +ERROR_IPSEC_IKE_INVALID_HASH = make_flag("ERROR_IPSEC_IKE_INVALID_HASH", 13870) +ERROR_IPSEC_IKE_INVALID_HASH_ALG = make_flag("ERROR_IPSEC_IKE_INVALID_HASH_ALG", 13871) +ERROR_IPSEC_IKE_INVALID_HASH_SIZE = make_flag("ERROR_IPSEC_IKE_INVALID_HASH_SIZE", 13872) +ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG = make_flag("ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG", 13873) +ERROR_IPSEC_IKE_INVALID_AUTH_ALG = make_flag("ERROR_IPSEC_IKE_INVALID_AUTH_ALG", 13874) +ERROR_IPSEC_IKE_INVALID_SIG = make_flag("ERROR_IPSEC_IKE_INVALID_SIG", 13875) +ERROR_IPSEC_IKE_LOAD_FAILED = make_flag("ERROR_IPSEC_IKE_LOAD_FAILED", 13876) +ERROR_IPSEC_IKE_RPC_DELETE = make_flag("ERROR_IPSEC_IKE_RPC_DELETE", 13877) +ERROR_IPSEC_IKE_BENIGN_REINIT = make_flag("ERROR_IPSEC_IKE_BENIGN_REINIT", 13878) +ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY = make_flag("ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY", 13879) +ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION = make_flag("ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION", 13880) +ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN = make_flag("ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN", 13881) +ERROR_IPSEC_IKE_MM_LIMIT = make_flag("ERROR_IPSEC_IKE_MM_LIMIT", 13882) +ERROR_IPSEC_IKE_NEGOTIATION_DISABLED = make_flag("ERROR_IPSEC_IKE_NEGOTIATION_DISABLED", 13883) +ERROR_IPSEC_IKE_QM_LIMIT = make_flag("ERROR_IPSEC_IKE_QM_LIMIT", 13884) +ERROR_IPSEC_IKE_MM_EXPIRED = make_flag("ERROR_IPSEC_IKE_MM_EXPIRED", 13885) +ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID = make_flag("ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID", 13886) +ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH = make_flag("ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH", 13887) +ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID = make_flag("ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID", 13888) +ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD = make_flag("ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD", 13889) +ERROR_IPSEC_IKE_DOS_COOKIE_SENT = make_flag("ERROR_IPSEC_IKE_DOS_COOKIE_SENT", 13890) +ERROR_IPSEC_IKE_SHUTTING_DOWN = make_flag("ERROR_IPSEC_IKE_SHUTTING_DOWN", 13891) +ERROR_IPSEC_IKE_CGA_AUTH_FAILED = make_flag("ERROR_IPSEC_IKE_CGA_AUTH_FAILED", 13892) +ERROR_IPSEC_IKE_PROCESS_ERR_NATOA = make_flag("ERROR_IPSEC_IKE_PROCESS_ERR_NATOA", 13893) +ERROR_IPSEC_IKE_INVALID_MM_FOR_QM = make_flag("ERROR_IPSEC_IKE_INVALID_MM_FOR_QM", 13894) +ERROR_IPSEC_IKE_QM_EXPIRED = make_flag("ERROR_IPSEC_IKE_QM_EXPIRED", 13895) +ERROR_IPSEC_IKE_TOO_MANY_FILTERS = make_flag("ERROR_IPSEC_IKE_TOO_MANY_FILTERS", 13896) +ERROR_IPSEC_IKE_NEG_STATUS_END = make_flag("ERROR_IPSEC_IKE_NEG_STATUS_END", 13897) +ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL = make_flag("ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL", 13898) +ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE = make_flag("ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE", 13899) +ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING = make_flag("ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING", 13900) +ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING = make_flag("ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING", 13901) +ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS = make_flag("ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS", 13902) +ERROR_IPSEC_IKE_RATELIMIT_DROP = make_flag("ERROR_IPSEC_IKE_RATELIMIT_DROP", 13903) +ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE = make_flag("ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE", 13904) +ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE = make_flag("ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE", 13905) +ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE = make_flag("ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE", 13906) +ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY = make_flag("ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY", 13907) +ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE = make_flag("ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE", 13908) +ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END = make_flag("ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END", 13909) +ERROR_IPSEC_BAD_SPI = make_flag("ERROR_IPSEC_BAD_SPI", 13910) +ERROR_IPSEC_SA_LIFETIME_EXPIRED = make_flag("ERROR_IPSEC_SA_LIFETIME_EXPIRED", 13911) +ERROR_IPSEC_WRONG_SA = make_flag("ERROR_IPSEC_WRONG_SA", 13912) +ERROR_IPSEC_REPLAY_CHECK_FAILED = make_flag("ERROR_IPSEC_REPLAY_CHECK_FAILED", 13913) +ERROR_IPSEC_INVALID_PACKET = make_flag("ERROR_IPSEC_INVALID_PACKET", 13914) +ERROR_IPSEC_INTEGRITY_CHECK_FAILED = make_flag("ERROR_IPSEC_INTEGRITY_CHECK_FAILED", 13915) +ERROR_IPSEC_CLEAR_TEXT_DROP = make_flag("ERROR_IPSEC_CLEAR_TEXT_DROP", 13916) +ERROR_IPSEC_AUTH_FIREWALL_DROP = make_flag("ERROR_IPSEC_AUTH_FIREWALL_DROP", 13917) +ERROR_IPSEC_THROTTLE_DROP = make_flag("ERROR_IPSEC_THROTTLE_DROP", 13918) +ERROR_IPSEC_DOSP_BLOCK = make_flag("ERROR_IPSEC_DOSP_BLOCK", 13925) +ERROR_IPSEC_DOSP_RECEIVED_MULTICAST = make_flag("ERROR_IPSEC_DOSP_RECEIVED_MULTICAST", 13926) +ERROR_IPSEC_DOSP_INVALID_PACKET = make_flag("ERROR_IPSEC_DOSP_INVALID_PACKET", 13927) +ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED = make_flag("ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED", 13928) +ERROR_IPSEC_DOSP_MAX_ENTRIES = make_flag("ERROR_IPSEC_DOSP_MAX_ENTRIES", 13929) +ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED = make_flag("ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED", 13930) +ERROR_IPSEC_DOSP_NOT_INSTALLED = make_flag("ERROR_IPSEC_DOSP_NOT_INSTALLED", 13931) +ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES = make_flag("ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES", 13932) +ERROR_SXS_SECTION_NOT_FOUND = make_flag("ERROR_SXS_SECTION_NOT_FOUND", 14000) +ERROR_SXS_CANT_GEN_ACTCTX = make_flag("ERROR_SXS_CANT_GEN_ACTCTX", 14001) +ERROR_SXS_INVALID_ACTCTXDATA_FORMAT = make_flag("ERROR_SXS_INVALID_ACTCTXDATA_FORMAT", 14002) +ERROR_SXS_ASSEMBLY_NOT_FOUND = make_flag("ERROR_SXS_ASSEMBLY_NOT_FOUND", 14003) +ERROR_SXS_MANIFEST_FORMAT_ERROR = make_flag("ERROR_SXS_MANIFEST_FORMAT_ERROR", 14004) +ERROR_SXS_MANIFEST_PARSE_ERROR = make_flag("ERROR_SXS_MANIFEST_PARSE_ERROR", 14005) +ERROR_SXS_ACTIVATION_CONTEXT_DISABLED = make_flag("ERROR_SXS_ACTIVATION_CONTEXT_DISABLED", 14006) +ERROR_SXS_KEY_NOT_FOUND = make_flag("ERROR_SXS_KEY_NOT_FOUND", 14007) +ERROR_SXS_VERSION_CONFLICT = make_flag("ERROR_SXS_VERSION_CONFLICT", 14008) +ERROR_SXS_WRONG_SECTION_TYPE = make_flag("ERROR_SXS_WRONG_SECTION_TYPE", 14009) +ERROR_SXS_THREAD_QUERIES_DISABLED = make_flag("ERROR_SXS_THREAD_QUERIES_DISABLED", 14010) +ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET = make_flag("ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET", 14011) +ERROR_SXS_UNKNOWN_ENCODING_GROUP = make_flag("ERROR_SXS_UNKNOWN_ENCODING_GROUP", 14012) +ERROR_SXS_UNKNOWN_ENCODING = make_flag("ERROR_SXS_UNKNOWN_ENCODING", 14013) +ERROR_SXS_INVALID_XML_NAMESPACE_URI = make_flag("ERROR_SXS_INVALID_XML_NAMESPACE_URI", 14014) +ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED = make_flag("ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED", 14015) +ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED = make_flag("ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED", 14016) +ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE = make_flag("ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE", 14017) +ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE = make_flag("ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE", 14018) +ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE = make_flag("ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE", 14019) +ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT = make_flag("ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT", 14020) +ERROR_SXS_DUPLICATE_DLL_NAME = make_flag("ERROR_SXS_DUPLICATE_DLL_NAME", 14021) +ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME = make_flag("ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME", 14022) +ERROR_SXS_DUPLICATE_CLSID = make_flag("ERROR_SXS_DUPLICATE_CLSID", 14023) +ERROR_SXS_DUPLICATE_IID = make_flag("ERROR_SXS_DUPLICATE_IID", 14024) +ERROR_SXS_DUPLICATE_TLBID = make_flag("ERROR_SXS_DUPLICATE_TLBID", 14025) +ERROR_SXS_DUPLICATE_PROGID = make_flag("ERROR_SXS_DUPLICATE_PROGID", 14026) +ERROR_SXS_DUPLICATE_ASSEMBLY_NAME = make_flag("ERROR_SXS_DUPLICATE_ASSEMBLY_NAME", 14027) +ERROR_SXS_FILE_HASH_MISMATCH = make_flag("ERROR_SXS_FILE_HASH_MISMATCH", 14028) +ERROR_SXS_POLICY_PARSE_ERROR = make_flag("ERROR_SXS_POLICY_PARSE_ERROR", 14029) +ERROR_SXS_XML_E_MISSINGQUOTE = make_flag("ERROR_SXS_XML_E_MISSINGQUOTE", 14030) +ERROR_SXS_XML_E_COMMENTSYNTAX = make_flag("ERROR_SXS_XML_E_COMMENTSYNTAX", 14031) +ERROR_SXS_XML_E_BADSTARTNAMECHAR = make_flag("ERROR_SXS_XML_E_BADSTARTNAMECHAR", 14032) +ERROR_SXS_XML_E_BADNAMECHAR = make_flag("ERROR_SXS_XML_E_BADNAMECHAR", 14033) +ERROR_SXS_XML_E_BADCHARINSTRING = make_flag("ERROR_SXS_XML_E_BADCHARINSTRING", 14034) +ERROR_SXS_XML_E_XMLDECLSYNTAX = make_flag("ERROR_SXS_XML_E_XMLDECLSYNTAX", 14035) +ERROR_SXS_XML_E_BADCHARDATA = make_flag("ERROR_SXS_XML_E_BADCHARDATA", 14036) +ERROR_SXS_XML_E_MISSINGWHITESPACE = make_flag("ERROR_SXS_XML_E_MISSINGWHITESPACE", 14037) +ERROR_SXS_XML_E_EXPECTINGTAGEND = make_flag("ERROR_SXS_XML_E_EXPECTINGTAGEND", 14038) +ERROR_SXS_XML_E_MISSINGSEMICOLON = make_flag("ERROR_SXS_XML_E_MISSINGSEMICOLON", 14039) +ERROR_SXS_XML_E_UNBALANCEDPAREN = make_flag("ERROR_SXS_XML_E_UNBALANCEDPAREN", 14040) +ERROR_SXS_XML_E_INTERNALERROR = make_flag("ERROR_SXS_XML_E_INTERNALERROR", 14041) +ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE = make_flag("ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE", 14042) +ERROR_SXS_XML_E_INCOMPLETE_ENCODING = make_flag("ERROR_SXS_XML_E_INCOMPLETE_ENCODING", 14043) +ERROR_SXS_XML_E_MISSING_PAREN = make_flag("ERROR_SXS_XML_E_MISSING_PAREN", 14044) +ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE = make_flag("ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE", 14045) +ERROR_SXS_XML_E_MULTIPLE_COLONS = make_flag("ERROR_SXS_XML_E_MULTIPLE_COLONS", 14046) +ERROR_SXS_XML_E_INVALID_DECIMAL = make_flag("ERROR_SXS_XML_E_INVALID_DECIMAL", 14047) +ERROR_SXS_XML_E_INVALID_HEXIDECIMAL = make_flag("ERROR_SXS_XML_E_INVALID_HEXIDECIMAL", 14048) +ERROR_SXS_XML_E_INVALID_UNICODE = make_flag("ERROR_SXS_XML_E_INVALID_UNICODE", 14049) +ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK = make_flag("ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK", 14050) +ERROR_SXS_XML_E_UNEXPECTEDENDTAG = make_flag("ERROR_SXS_XML_E_UNEXPECTEDENDTAG", 14051) +ERROR_SXS_XML_E_UNCLOSEDTAG = make_flag("ERROR_SXS_XML_E_UNCLOSEDTAG", 14052) +ERROR_SXS_XML_E_DUPLICATEATTRIBUTE = make_flag("ERROR_SXS_XML_E_DUPLICATEATTRIBUTE", 14053) +ERROR_SXS_XML_E_MULTIPLEROOTS = make_flag("ERROR_SXS_XML_E_MULTIPLEROOTS", 14054) +ERROR_SXS_XML_E_INVALIDATROOTLEVEL = make_flag("ERROR_SXS_XML_E_INVALIDATROOTLEVEL", 14055) +ERROR_SXS_XML_E_BADXMLDECL = make_flag("ERROR_SXS_XML_E_BADXMLDECL", 14056) +ERROR_SXS_XML_E_MISSINGROOT = make_flag("ERROR_SXS_XML_E_MISSINGROOT", 14057) +ERROR_SXS_XML_E_UNEXPECTEDEOF = make_flag("ERROR_SXS_XML_E_UNEXPECTEDEOF", 14058) +ERROR_SXS_XML_E_BADPEREFINSUBSET = make_flag("ERROR_SXS_XML_E_BADPEREFINSUBSET", 14059) +ERROR_SXS_XML_E_UNCLOSEDSTARTTAG = make_flag("ERROR_SXS_XML_E_UNCLOSEDSTARTTAG", 14060) +ERROR_SXS_XML_E_UNCLOSEDENDTAG = make_flag("ERROR_SXS_XML_E_UNCLOSEDENDTAG", 14061) +ERROR_SXS_XML_E_UNCLOSEDSTRING = make_flag("ERROR_SXS_XML_E_UNCLOSEDSTRING", 14062) +ERROR_SXS_XML_E_UNCLOSEDCOMMENT = make_flag("ERROR_SXS_XML_E_UNCLOSEDCOMMENT", 14063) +ERROR_SXS_XML_E_UNCLOSEDDECL = make_flag("ERROR_SXS_XML_E_UNCLOSEDDECL", 14064) +ERROR_SXS_XML_E_UNCLOSEDCDATA = make_flag("ERROR_SXS_XML_E_UNCLOSEDCDATA", 14065) +ERROR_SXS_XML_E_RESERVEDNAMESPACE = make_flag("ERROR_SXS_XML_E_RESERVEDNAMESPACE", 14066) +ERROR_SXS_XML_E_INVALIDENCODING = make_flag("ERROR_SXS_XML_E_INVALIDENCODING", 14067) +ERROR_SXS_XML_E_INVALIDSWITCH = make_flag("ERROR_SXS_XML_E_INVALIDSWITCH", 14068) +ERROR_SXS_XML_E_BADXMLCASE = make_flag("ERROR_SXS_XML_E_BADXMLCASE", 14069) +ERROR_SXS_XML_E_INVALID_STANDALONE = make_flag("ERROR_SXS_XML_E_INVALID_STANDALONE", 14070) +ERROR_SXS_XML_E_UNEXPECTED_STANDALONE = make_flag("ERROR_SXS_XML_E_UNEXPECTED_STANDALONE", 14071) +ERROR_SXS_XML_E_INVALID_VERSION = make_flag("ERROR_SXS_XML_E_INVALID_VERSION", 14072) +ERROR_SXS_XML_E_MISSINGEQUALS = make_flag("ERROR_SXS_XML_E_MISSINGEQUALS", 14073) +ERROR_SXS_PROTECTION_RECOVERY_FAILED = make_flag("ERROR_SXS_PROTECTION_RECOVERY_FAILED", 14074) +ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT = make_flag("ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT", 14075) +ERROR_SXS_PROTECTION_CATALOG_NOT_VALID = make_flag("ERROR_SXS_PROTECTION_CATALOG_NOT_VALID", 14076) +ERROR_SXS_UNTRANSLATABLE_HRESULT = make_flag("ERROR_SXS_UNTRANSLATABLE_HRESULT", 14077) +ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING = make_flag("ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING", 14078) +ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE = make_flag("ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE", 14079) +ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME = make_flag("ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME", 14080) +ERROR_SXS_ASSEMBLY_MISSING = make_flag("ERROR_SXS_ASSEMBLY_MISSING", 14081) +ERROR_SXS_CORRUPT_ACTIVATION_STACK = make_flag("ERROR_SXS_CORRUPT_ACTIVATION_STACK", 14082) +ERROR_SXS_CORRUPTION = make_flag("ERROR_SXS_CORRUPTION", 14083) +ERROR_SXS_EARLY_DEACTIVATION = make_flag("ERROR_SXS_EARLY_DEACTIVATION", 14084) +ERROR_SXS_INVALID_DEACTIVATION = make_flag("ERROR_SXS_INVALID_DEACTIVATION", 14085) +ERROR_SXS_MULTIPLE_DEACTIVATION = make_flag("ERROR_SXS_MULTIPLE_DEACTIVATION", 14086) +ERROR_SXS_PROCESS_TERMINATION_REQUESTED = make_flag("ERROR_SXS_PROCESS_TERMINATION_REQUESTED", 14087) +ERROR_SXS_RELEASE_ACTIVATION_CONTEXT = make_flag("ERROR_SXS_RELEASE_ACTIVATION_CONTEXT", 14088) +ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY = make_flag("ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY", 14089) +ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE = make_flag("ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE", 14090) +ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME = make_flag("ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME", 14091) +ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE = make_flag("ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE", 14092) +ERROR_SXS_IDENTITY_PARSE_ERROR = make_flag("ERROR_SXS_IDENTITY_PARSE_ERROR", 14093) +ERROR_MALFORMED_SUBSTITUTION_STRING = make_flag("ERROR_MALFORMED_SUBSTITUTION_STRING", 14094) +ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN = make_flag("ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN", 14095) +ERROR_UNMAPPED_SUBSTITUTION_STRING = make_flag("ERROR_UNMAPPED_SUBSTITUTION_STRING", 14096) +ERROR_SXS_ASSEMBLY_NOT_LOCKED = make_flag("ERROR_SXS_ASSEMBLY_NOT_LOCKED", 14097) +ERROR_SXS_COMPONENT_STORE_CORRUPT = make_flag("ERROR_SXS_COMPONENT_STORE_CORRUPT", 14098) +ERROR_ADVANCED_INSTALLER_FAILED = make_flag("ERROR_ADVANCED_INSTALLER_FAILED", 14099) +ERROR_XML_ENCODING_MISMATCH = make_flag("ERROR_XML_ENCODING_MISMATCH", 14100) +ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT = make_flag("ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT", 14101) +ERROR_SXS_IDENTITIES_DIFFERENT = make_flag("ERROR_SXS_IDENTITIES_DIFFERENT", 14102) +ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT = make_flag("ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT", 14103) +ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY = make_flag("ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY", 14104) +ERROR_SXS_MANIFEST_TOO_BIG = make_flag("ERROR_SXS_MANIFEST_TOO_BIG", 14105) +ERROR_SXS_SETTING_NOT_REGISTERED = make_flag("ERROR_SXS_SETTING_NOT_REGISTERED", 14106) +ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE = make_flag("ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE", 14107) +ERROR_SMI_PRIMITIVE_INSTALLER_FAILED = make_flag("ERROR_SMI_PRIMITIVE_INSTALLER_FAILED", 14108) +ERROR_GENERIC_COMMAND_FAILED = make_flag("ERROR_GENERIC_COMMAND_FAILED", 14109) +ERROR_SXS_FILE_HASH_MISSING = make_flag("ERROR_SXS_FILE_HASH_MISSING", 14110) +ERROR_SXS_DUPLICATE_ACTIVATABLE_CLASS = make_flag("ERROR_SXS_DUPLICATE_ACTIVATABLE_CLASS", 14111) +ERROR_EVT_INVALID_CHANNEL_PATH = make_flag("ERROR_EVT_INVALID_CHANNEL_PATH", 15000) +ERROR_EVT_INVALID_QUERY = make_flag("ERROR_EVT_INVALID_QUERY", 15001) +ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND = make_flag("ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND", 15002) +ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND = make_flag("ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND", 15003) +ERROR_EVT_INVALID_PUBLISHER_NAME = make_flag("ERROR_EVT_INVALID_PUBLISHER_NAME", 15004) +ERROR_EVT_INVALID_EVENT_DATA = make_flag("ERROR_EVT_INVALID_EVENT_DATA", 15005) +ERROR_EVT_CHANNEL_NOT_FOUND = make_flag("ERROR_EVT_CHANNEL_NOT_FOUND", 15007) +ERROR_EVT_MALFORMED_XML_TEXT = make_flag("ERROR_EVT_MALFORMED_XML_TEXT", 15008) +ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL = make_flag("ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL", 15009) +ERROR_EVT_CONFIGURATION_ERROR = make_flag("ERROR_EVT_CONFIGURATION_ERROR", 15010) +ERROR_EVT_QUERY_RESULT_STALE = make_flag("ERROR_EVT_QUERY_RESULT_STALE", 15011) +ERROR_EVT_QUERY_RESULT_INVALID_POSITION = make_flag("ERROR_EVT_QUERY_RESULT_INVALID_POSITION", 15012) +ERROR_EVT_NON_VALIDATING_MSXML = make_flag("ERROR_EVT_NON_VALIDATING_MSXML", 15013) +ERROR_EVT_FILTER_ALREADYSCOPED = make_flag("ERROR_EVT_FILTER_ALREADYSCOPED", 15014) +ERROR_EVT_FILTER_NOTELTSET = make_flag("ERROR_EVT_FILTER_NOTELTSET", 15015) +ERROR_EVT_FILTER_INVARG = make_flag("ERROR_EVT_FILTER_INVARG", 15016) +ERROR_EVT_FILTER_INVTEST = make_flag("ERROR_EVT_FILTER_INVTEST", 15017) +ERROR_EVT_FILTER_INVTYPE = make_flag("ERROR_EVT_FILTER_INVTYPE", 15018) +ERROR_EVT_FILTER_PARSEERR = make_flag("ERROR_EVT_FILTER_PARSEERR", 15019) +ERROR_EVT_FILTER_UNSUPPORTEDOP = make_flag("ERROR_EVT_FILTER_UNSUPPORTEDOP", 15020) +ERROR_EVT_FILTER_UNEXPECTEDTOKEN = make_flag("ERROR_EVT_FILTER_UNEXPECTEDTOKEN", 15021) +ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL = make_flag("ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL", 15022) +ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE = make_flag("ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE", 15023) +ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE = make_flag("ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE", 15024) +ERROR_EVT_CHANNEL_CANNOT_ACTIVATE = make_flag("ERROR_EVT_CHANNEL_CANNOT_ACTIVATE", 15025) +ERROR_EVT_FILTER_TOO_COMPLEX = make_flag("ERROR_EVT_FILTER_TOO_COMPLEX", 15026) +ERROR_EVT_MESSAGE_NOT_FOUND = make_flag("ERROR_EVT_MESSAGE_NOT_FOUND", 15027) +ERROR_EVT_MESSAGE_ID_NOT_FOUND = make_flag("ERROR_EVT_MESSAGE_ID_NOT_FOUND", 15028) +ERROR_EVT_UNRESOLVED_VALUE_INSERT = make_flag("ERROR_EVT_UNRESOLVED_VALUE_INSERT", 15029) +ERROR_EVT_UNRESOLVED_PARAMETER_INSERT = make_flag("ERROR_EVT_UNRESOLVED_PARAMETER_INSERT", 15030) +ERROR_EVT_MAX_INSERTS_REACHED = make_flag("ERROR_EVT_MAX_INSERTS_REACHED", 15031) +ERROR_EVT_EVENT_DEFINITION_NOT_FOUND = make_flag("ERROR_EVT_EVENT_DEFINITION_NOT_FOUND", 15032) +ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND = make_flag("ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND", 15033) +ERROR_EVT_VERSION_TOO_OLD = make_flag("ERROR_EVT_VERSION_TOO_OLD", 15034) +ERROR_EVT_VERSION_TOO_NEW = make_flag("ERROR_EVT_VERSION_TOO_NEW", 15035) +ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY = make_flag("ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY", 15036) +ERROR_EVT_PUBLISHER_DISABLED = make_flag("ERROR_EVT_PUBLISHER_DISABLED", 15037) +ERROR_EVT_FILTER_OUT_OF_RANGE = make_flag("ERROR_EVT_FILTER_OUT_OF_RANGE", 15038) +ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE = make_flag("ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE", 15080) +ERROR_EC_LOG_DISABLED = make_flag("ERROR_EC_LOG_DISABLED", 15081) +ERROR_EC_CIRCULAR_FORWARDING = make_flag("ERROR_EC_CIRCULAR_FORWARDING", 15082) +ERROR_EC_CREDSTORE_FULL = make_flag("ERROR_EC_CREDSTORE_FULL", 15083) +ERROR_EC_CRED_NOT_FOUND = make_flag("ERROR_EC_CRED_NOT_FOUND", 15084) +ERROR_EC_NO_ACTIVE_CHANNEL = make_flag("ERROR_EC_NO_ACTIVE_CHANNEL", 15085) +ERROR_MUI_FILE_NOT_FOUND = make_flag("ERROR_MUI_FILE_NOT_FOUND", 15100) +ERROR_MUI_INVALID_FILE = make_flag("ERROR_MUI_INVALID_FILE", 15101) +ERROR_MUI_INVALID_RC_CONFIG = make_flag("ERROR_MUI_INVALID_RC_CONFIG", 15102) +ERROR_MUI_INVALID_LOCALE_NAME = make_flag("ERROR_MUI_INVALID_LOCALE_NAME", 15103) +ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME = make_flag("ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME", 15104) +ERROR_MUI_FILE_NOT_LOADED = make_flag("ERROR_MUI_FILE_NOT_LOADED", 15105) +ERROR_RESOURCE_ENUM_USER_STOP = make_flag("ERROR_RESOURCE_ENUM_USER_STOP", 15106) +ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED = make_flag("ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED", 15107) +ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME = make_flag("ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME", 15108) +ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE = make_flag("ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE", 15110) +ERROR_MRM_INVALID_PRICONFIG = make_flag("ERROR_MRM_INVALID_PRICONFIG", 15111) +ERROR_MRM_INVALID_FILE_TYPE = make_flag("ERROR_MRM_INVALID_FILE_TYPE", 15112) +ERROR_MRM_UNKNOWN_QUALIFIER = make_flag("ERROR_MRM_UNKNOWN_QUALIFIER", 15113) +ERROR_MRM_INVALID_QUALIFIER_VALUE = make_flag("ERROR_MRM_INVALID_QUALIFIER_VALUE", 15114) +ERROR_MRM_NO_CANDIDATE = make_flag("ERROR_MRM_NO_CANDIDATE", 15115) +ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE = make_flag("ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE", 15116) +ERROR_MRM_RESOURCE_TYPE_MISMATCH = make_flag("ERROR_MRM_RESOURCE_TYPE_MISMATCH", 15117) +ERROR_MRM_DUPLICATE_MAP_NAME = make_flag("ERROR_MRM_DUPLICATE_MAP_NAME", 15118) +ERROR_MRM_DUPLICATE_ENTRY = make_flag("ERROR_MRM_DUPLICATE_ENTRY", 15119) +ERROR_MRM_INVALID_RESOURCE_IDENTIFIER = make_flag("ERROR_MRM_INVALID_RESOURCE_IDENTIFIER", 15120) +ERROR_MRM_FILEPATH_TOO_LONG = make_flag("ERROR_MRM_FILEPATH_TOO_LONG", 15121) +ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE = make_flag("ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE", 15122) +ERROR_MRM_INVALID_PRI_FILE = make_flag("ERROR_MRM_INVALID_PRI_FILE", 15126) +ERROR_MRM_NAMED_RESOURCE_NOT_FOUND = make_flag("ERROR_MRM_NAMED_RESOURCE_NOT_FOUND", 15127) +ERROR_MRM_MAP_NOT_FOUND = make_flag("ERROR_MRM_MAP_NOT_FOUND", 15135) +ERROR_MRM_UNSUPPORTED_PROFILE_TYPE = make_flag("ERROR_MRM_UNSUPPORTED_PROFILE_TYPE", 15136) +ERROR_MRM_INVALID_QUALIFIER_OPERATOR = make_flag("ERROR_MRM_INVALID_QUALIFIER_OPERATOR", 15137) +ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE = make_flag("ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE", 15138) +ERROR_MRM_AUTOMERGE_ENABLED = make_flag("ERROR_MRM_AUTOMERGE_ENABLED", 15139) +ERROR_MRM_TOO_MANY_RESOURCES = make_flag("ERROR_MRM_TOO_MANY_RESOURCES", 15140) +ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE = make_flag("ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE", 15141) +ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE = make_flag("ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE", 15142) +ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD = make_flag("ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD", 15143) +ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST = make_flag("ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST", 15144) +ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT = make_flag("ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT", 15145) +ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE = make_flag("ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE", 15146) +ERROR_MRM_GENERATION_COUNT_MISMATCH = make_flag("ERROR_MRM_GENERATION_COUNT_MISMATCH", 15147) +ERROR_PRI_MERGE_VERSION_MISMATCH = make_flag("ERROR_PRI_MERGE_VERSION_MISMATCH", 15148) +ERROR_PRI_MERGE_MISSING_SCHEMA = make_flag("ERROR_PRI_MERGE_MISSING_SCHEMA", 15149) +ERROR_PRI_MERGE_LOAD_FILE_FAILED = make_flag("ERROR_PRI_MERGE_LOAD_FILE_FAILED", 15150) +ERROR_PRI_MERGE_ADD_FILE_FAILED = make_flag("ERROR_PRI_MERGE_ADD_FILE_FAILED", 15151) +ERROR_PRI_MERGE_WRITE_FILE_FAILED = make_flag("ERROR_PRI_MERGE_WRITE_FILE_FAILED", 15152) +ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED = make_flag("ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED", 15153) +ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED = make_flag("ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED", 15154) +ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED = make_flag("ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED", 15155) +ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED = make_flag("ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED", 15156) +ERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED = make_flag("ERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED", 15157) +ERROR_PRI_MERGE_INVALID_FILE_NAME = make_flag("ERROR_PRI_MERGE_INVALID_FILE_NAME", 15158) +ERROR_MRM_PACKAGE_NOT_FOUND = make_flag("ERROR_MRM_PACKAGE_NOT_FOUND", 15159) +ERROR_MRM_MISSING_DEFAULT_LANGUAGE = make_flag("ERROR_MRM_MISSING_DEFAULT_LANGUAGE", 15160) +ERROR_MCA_INVALID_CAPABILITIES_STRING = make_flag("ERROR_MCA_INVALID_CAPABILITIES_STRING", 15200) +ERROR_MCA_INVALID_VCP_VERSION = make_flag("ERROR_MCA_INVALID_VCP_VERSION", 15201) +ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION = make_flag("ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION", 15202) +ERROR_MCA_MCCS_VERSION_MISMATCH = make_flag("ERROR_MCA_MCCS_VERSION_MISMATCH", 15203) +ERROR_MCA_UNSUPPORTED_MCCS_VERSION = make_flag("ERROR_MCA_UNSUPPORTED_MCCS_VERSION", 15204) +ERROR_MCA_INTERNAL_ERROR = make_flag("ERROR_MCA_INTERNAL_ERROR", 15205) +ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED = make_flag("ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED", 15206) +ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE = make_flag("ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE", 15207) +ERROR_AMBIGUOUS_SYSTEM_DEVICE = make_flag("ERROR_AMBIGUOUS_SYSTEM_DEVICE", 15250) +ERROR_SYSTEM_DEVICE_NOT_FOUND = make_flag("ERROR_SYSTEM_DEVICE_NOT_FOUND", 15299) +ERROR_HASH_NOT_SUPPORTED = make_flag("ERROR_HASH_NOT_SUPPORTED", 15300) +ERROR_HASH_NOT_PRESENT = make_flag("ERROR_HASH_NOT_PRESENT", 15301) +ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED = make_flag("ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED", 15321) +ERROR_GPIO_CLIENT_INFORMATION_INVALID = make_flag("ERROR_GPIO_CLIENT_INFORMATION_INVALID", 15322) +ERROR_GPIO_VERSION_NOT_SUPPORTED = make_flag("ERROR_GPIO_VERSION_NOT_SUPPORTED", 15323) +ERROR_GPIO_INVALID_REGISTRATION_PACKET = make_flag("ERROR_GPIO_INVALID_REGISTRATION_PACKET", 15324) +ERROR_GPIO_OPERATION_DENIED = make_flag("ERROR_GPIO_OPERATION_DENIED", 15325) +ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE = make_flag("ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE", 15326) +ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED = make_flag("ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED", 15327) +ERROR_CANNOT_SWITCH_RUNLEVEL = make_flag("ERROR_CANNOT_SWITCH_RUNLEVEL", 15400) +ERROR_INVALID_RUNLEVEL_SETTING = make_flag("ERROR_INVALID_RUNLEVEL_SETTING", 15401) +ERROR_RUNLEVEL_SWITCH_TIMEOUT = make_flag("ERROR_RUNLEVEL_SWITCH_TIMEOUT", 15402) +ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT = make_flag("ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT", 15403) +ERROR_RUNLEVEL_SWITCH_IN_PROGRESS = make_flag("ERROR_RUNLEVEL_SWITCH_IN_PROGRESS", 15404) +ERROR_SERVICES_FAILED_AUTOSTART = make_flag("ERROR_SERVICES_FAILED_AUTOSTART", 15405) +ERROR_COM_TASK_STOP_PENDING = make_flag("ERROR_COM_TASK_STOP_PENDING", 15501) +ERROR_INSTALL_OPEN_PACKAGE_FAILED = make_flag("ERROR_INSTALL_OPEN_PACKAGE_FAILED", 15600) +ERROR_INSTALL_PACKAGE_NOT_FOUND = make_flag("ERROR_INSTALL_PACKAGE_NOT_FOUND", 15601) +ERROR_INSTALL_INVALID_PACKAGE = make_flag("ERROR_INSTALL_INVALID_PACKAGE", 15602) +ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED = make_flag("ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED", 15603) +ERROR_INSTALL_OUT_OF_DISK_SPACE = make_flag("ERROR_INSTALL_OUT_OF_DISK_SPACE", 15604) +ERROR_INSTALL_NETWORK_FAILURE = make_flag("ERROR_INSTALL_NETWORK_FAILURE", 15605) +ERROR_INSTALL_REGISTRATION_FAILURE = make_flag("ERROR_INSTALL_REGISTRATION_FAILURE", 15606) +ERROR_INSTALL_DEREGISTRATION_FAILURE = make_flag("ERROR_INSTALL_DEREGISTRATION_FAILURE", 15607) +ERROR_INSTALL_CANCEL = make_flag("ERROR_INSTALL_CANCEL", 15608) +ERROR_INSTALL_FAILED = make_flag("ERROR_INSTALL_FAILED", 15609) +ERROR_REMOVE_FAILED = make_flag("ERROR_REMOVE_FAILED", 15610) +ERROR_PACKAGE_ALREADY_EXISTS = make_flag("ERROR_PACKAGE_ALREADY_EXISTS", 15611) +ERROR_NEEDS_REMEDIATION = make_flag("ERROR_NEEDS_REMEDIATION", 15612) +ERROR_INSTALL_PREREQUISITE_FAILED = make_flag("ERROR_INSTALL_PREREQUISITE_FAILED", 15613) +ERROR_PACKAGE_REPOSITORY_CORRUPTED = make_flag("ERROR_PACKAGE_REPOSITORY_CORRUPTED", 15614) +ERROR_INSTALL_POLICY_FAILURE = make_flag("ERROR_INSTALL_POLICY_FAILURE", 15615) +ERROR_PACKAGE_UPDATING = make_flag("ERROR_PACKAGE_UPDATING", 15616) +ERROR_DEPLOYMENT_BLOCKED_BY_POLICY = make_flag("ERROR_DEPLOYMENT_BLOCKED_BY_POLICY", 15617) +ERROR_PACKAGES_IN_USE = make_flag("ERROR_PACKAGES_IN_USE", 15618) +ERROR_RECOVERY_FILE_CORRUPT = make_flag("ERROR_RECOVERY_FILE_CORRUPT", 15619) +ERROR_INVALID_STAGED_SIGNATURE = make_flag("ERROR_INVALID_STAGED_SIGNATURE", 15620) +ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED = make_flag("ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED", 15621) +ERROR_INSTALL_PACKAGE_DOWNGRADE = make_flag("ERROR_INSTALL_PACKAGE_DOWNGRADE", 15622) +ERROR_SYSTEM_NEEDS_REMEDIATION = make_flag("ERROR_SYSTEM_NEEDS_REMEDIATION", 15623) +ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN = make_flag("ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN", 15624) +ERROR_RESILIENCY_FILE_CORRUPT = make_flag("ERROR_RESILIENCY_FILE_CORRUPT", 15625) +ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING = make_flag("ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING", 15626) +ERROR_PACKAGE_MOVE_FAILED = make_flag("ERROR_PACKAGE_MOVE_FAILED", 15627) +ERROR_INSTALL_VOLUME_NOT_EMPTY = make_flag("ERROR_INSTALL_VOLUME_NOT_EMPTY", 15628) +ERROR_INSTALL_VOLUME_OFFLINE = make_flag("ERROR_INSTALL_VOLUME_OFFLINE", 15629) +ERROR_INSTALL_VOLUME_CORRUPT = make_flag("ERROR_INSTALL_VOLUME_CORRUPT", 15630) +ERROR_NEEDS_REGISTRATION = make_flag("ERROR_NEEDS_REGISTRATION", 15631) +ERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE = make_flag("ERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE", 15632) +ERROR_DEV_SIDELOAD_LIMIT_EXCEEDED = make_flag("ERROR_DEV_SIDELOAD_LIMIT_EXCEEDED", 15633) +ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE = make_flag("ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE", 15634) +ERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM = make_flag("ERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM", 15635) +ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING = make_flag("ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING", 15636) +ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE = make_flag("ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE", 15637) +ERROR_PACKAGE_STAGING_ONHOLD = make_flag("ERROR_PACKAGE_STAGING_ONHOLD", 15638) +ERROR_INSTALL_INVALID_RELATED_SET_UPDATE = make_flag("ERROR_INSTALL_INVALID_RELATED_SET_UPDATE", 15639) +ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY = make_flag("ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY", 15640) +ERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF = make_flag("ERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF", 15641) +ERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED = make_flag("ERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED", 15642) +ERROR_PACKAGES_REPUTATION_CHECK_FAILED = make_flag("ERROR_PACKAGES_REPUTATION_CHECK_FAILED", 15643) +ERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT = make_flag("ERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT", 15644) +ERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED = make_flag("ERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED", 15645) +ERROR_APPINSTALLER_ACTIVATION_BLOCKED = make_flag("ERROR_APPINSTALLER_ACTIVATION_BLOCKED", 15646) +ERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED = make_flag("ERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED", 15647) +ERROR_APPX_RAW_DATA_WRITE_FAILED = make_flag("ERROR_APPX_RAW_DATA_WRITE_FAILED", 15648) +ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE = make_flag("ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE", 15649) +ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE = make_flag("ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE", 15650) +ERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY = make_flag("ERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY", 15651) +ERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY = make_flag("ERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY", 15652) +ERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER = make_flag("ERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER", 15653) +ERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED = make_flag("ERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED", 15654) +ERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE = make_flag("ERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE", 15655) +ERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES = make_flag("ERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES", 15656) +APPMODEL_ERROR_NO_PACKAGE = make_flag("APPMODEL_ERROR_NO_PACKAGE", 15700) +APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT = make_flag("APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT", 15701) +APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT = make_flag("APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT", 15702) +APPMODEL_ERROR_NO_APPLICATION = make_flag("APPMODEL_ERROR_NO_APPLICATION", 15703) +APPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED = make_flag("APPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED", 15704) +APPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID = make_flag("APPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID", 15705) +APPMODEL_ERROR_PACKAGE_NOT_AVAILABLE = make_flag("APPMODEL_ERROR_PACKAGE_NOT_AVAILABLE", 15706) +APPMODEL_ERROR_NO_MUTABLE_DIRECTORY = make_flag("APPMODEL_ERROR_NO_MUTABLE_DIRECTORY", 15707) +ERROR_STATE_LOAD_STORE_FAILED = make_flag("ERROR_STATE_LOAD_STORE_FAILED", 15800) +ERROR_STATE_GET_VERSION_FAILED = make_flag("ERROR_STATE_GET_VERSION_FAILED", 15801) +ERROR_STATE_SET_VERSION_FAILED = make_flag("ERROR_STATE_SET_VERSION_FAILED", 15802) +ERROR_STATE_STRUCTURED_RESET_FAILED = make_flag("ERROR_STATE_STRUCTURED_RESET_FAILED", 15803) +ERROR_STATE_OPEN_CONTAINER_FAILED = make_flag("ERROR_STATE_OPEN_CONTAINER_FAILED", 15804) +ERROR_STATE_CREATE_CONTAINER_FAILED = make_flag("ERROR_STATE_CREATE_CONTAINER_FAILED", 15805) +ERROR_STATE_DELETE_CONTAINER_FAILED = make_flag("ERROR_STATE_DELETE_CONTAINER_FAILED", 15806) +ERROR_STATE_READ_SETTING_FAILED = make_flag("ERROR_STATE_READ_SETTING_FAILED", 15807) +ERROR_STATE_WRITE_SETTING_FAILED = make_flag("ERROR_STATE_WRITE_SETTING_FAILED", 15808) +ERROR_STATE_DELETE_SETTING_FAILED = make_flag("ERROR_STATE_DELETE_SETTING_FAILED", 15809) +ERROR_STATE_QUERY_SETTING_FAILED = make_flag("ERROR_STATE_QUERY_SETTING_FAILED", 15810) +ERROR_STATE_READ_COMPOSITE_SETTING_FAILED = make_flag("ERROR_STATE_READ_COMPOSITE_SETTING_FAILED", 15811) +ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED = make_flag("ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED", 15812) +ERROR_STATE_ENUMERATE_CONTAINER_FAILED = make_flag("ERROR_STATE_ENUMERATE_CONTAINER_FAILED", 15813) +ERROR_STATE_ENUMERATE_SETTINGS_FAILED = make_flag("ERROR_STATE_ENUMERATE_SETTINGS_FAILED", 15814) +ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED = make_flag("ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED", 15815) +ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED = make_flag("ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED", 15816) +ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED = make_flag("ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED", 15817) +ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED = make_flag("ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED", 15818) +ERROR_API_UNAVAILABLE = make_flag("ERROR_API_UNAVAILABLE", 15841) +STORE_ERROR_UNLICENSED = make_flag("STORE_ERROR_UNLICENSED", 15861) +STORE_ERROR_UNLICENSED_USER = make_flag("STORE_ERROR_UNLICENSED_USER", 15862) +STORE_ERROR_PENDING_COM_TRANSACTION = make_flag("STORE_ERROR_PENDING_COM_TRANSACTION", 15863) +STORE_ERROR_LICENSE_REVOKED = make_flag("STORE_ERROR_LICENSE_REVOKED", 15864) +SEVERITY_SUCCESS = make_flag("SEVERITY_SUCCESS", 0) +SEVERITY_ERROR = make_flag("SEVERITY_ERROR", 1) +FACILITY_NT_BIT = make_flag("FACILITY_NT_BIT", 0x10000000) +E_NOT_SET = make_flag("E_NOT_SET", 0x80070490) +E_NOT_VALID_STATE = make_flag("E_NOT_VALID_STATE", 0x8007139F) +E_NOT_SUFFICIENT_BUFFER = make_flag("E_NOT_SUFFICIENT_BUFFER", 0x8007007A) +E_TIME_SENSITIVE_THREAD = make_flag("E_TIME_SENSITIVE_THREAD", 0x800701A6) +E_NO_TASK_QUEUE = make_flag("E_NO_TASK_QUEUE", 0x800701AB) +NOERROR = make_flag("NOERROR", 0) +E_UNEXPECTED = make_flag("E_UNEXPECTED", ( 0x8000FFFF )) +E_NOTIMPL = make_flag("E_NOTIMPL", ( 0x80004001 )) +E_OUTOFMEMORY = make_flag("E_OUTOFMEMORY", ( 0x8007000E )) +E_INVALIDARG = make_flag("E_INVALIDARG", ( 0x80070057 )) +E_NOINTERFACE = make_flag("E_NOINTERFACE", ( 0x80004002 )) +E_POINTER = make_flag("E_POINTER", ( 0x80004003 )) +E_HANDLE = make_flag("E_HANDLE", ( 0x80070006 )) +E_ABORT = make_flag("E_ABORT", ( 0x80004004 )) +E_FAIL = make_flag("E_FAIL", ( 0x80004005 )) +E_ACCESSDENIED = make_flag("E_ACCESSDENIED", ( 0x80070005 )) +E_PENDING = make_flag("E_PENDING", ( 0x8000000A )) +E_BOUNDS = make_flag("E_BOUNDS", ( 0x8000000B )) +E_CHANGED_STATE = make_flag("E_CHANGED_STATE", ( 0x8000000C )) +E_ILLEGAL_STATE_CHANGE = make_flag("E_ILLEGAL_STATE_CHANGE", ( 0x8000000D )) +E_ILLEGAL_METHOD_CALL = make_flag("E_ILLEGAL_METHOD_CALL", ( 0x8000000E )) +RO_E_METADATA_NAME_NOT_FOUND = make_flag("RO_E_METADATA_NAME_NOT_FOUND", ( 0x8000000F )) +RO_E_METADATA_NAME_IS_NAMESPACE = make_flag("RO_E_METADATA_NAME_IS_NAMESPACE", ( 0x80000010 )) +RO_E_METADATA_INVALID_TYPE_FORMAT = make_flag("RO_E_METADATA_INVALID_TYPE_FORMAT", ( 0x80000011 )) +RO_E_INVALID_METADATA_FILE = make_flag("RO_E_INVALID_METADATA_FILE", ( 0x80000012 )) +RO_E_CLOSED = make_flag("RO_E_CLOSED", ( 0x80000013 )) +RO_E_EXCLUSIVE_WRITE = make_flag("RO_E_EXCLUSIVE_WRITE", ( 0x80000014 )) +RO_E_CHANGE_NOTIFICATION_IN_PROGRESS = make_flag("RO_E_CHANGE_NOTIFICATION_IN_PROGRESS", ( 0x80000015 )) +RO_E_ERROR_STRING_NOT_FOUND = make_flag("RO_E_ERROR_STRING_NOT_FOUND", ( 0x80000016 )) +E_STRING_NOT_NULL_TERMINATED = make_flag("E_STRING_NOT_NULL_TERMINATED", ( 0x80000017 )) +E_ILLEGAL_DELEGATE_ASSIGNMENT = make_flag("E_ILLEGAL_DELEGATE_ASSIGNMENT", ( 0x80000018 )) +E_ASYNC_OPERATION_NOT_STARTED = make_flag("E_ASYNC_OPERATION_NOT_STARTED", ( 0x80000019 )) +E_APPLICATION_EXITING = make_flag("E_APPLICATION_EXITING", ( 0x8000001A )) +E_APPLICATION_VIEW_EXITING = make_flag("E_APPLICATION_VIEW_EXITING", ( 0x8000001B )) +RO_E_MUST_BE_AGILE = make_flag("RO_E_MUST_BE_AGILE", ( 0x8000001C )) +RO_E_UNSUPPORTED_FROM_MTA = make_flag("RO_E_UNSUPPORTED_FROM_MTA", ( 0x8000001D )) +RO_E_COMMITTED = make_flag("RO_E_COMMITTED", ( 0x8000001E )) +RO_E_BLOCKED_CROSS_ASTA_CALL = make_flag("RO_E_BLOCKED_CROSS_ASTA_CALL", ( 0x8000001F )) +RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER = make_flag("RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER", ( 0x80000020 )) +RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER = make_flag("RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER", ( 0x80000021 )) +CO_E_INIT_TLS = make_flag("CO_E_INIT_TLS", ( 0x80004006 )) +CO_E_INIT_SHARED_ALLOCATOR = make_flag("CO_E_INIT_SHARED_ALLOCATOR", ( 0x80004007 )) +CO_E_INIT_MEMORY_ALLOCATOR = make_flag("CO_E_INIT_MEMORY_ALLOCATOR", ( 0x80004008 )) +CO_E_INIT_CLASS_CACHE = make_flag("CO_E_INIT_CLASS_CACHE", ( 0x80004009 )) +CO_E_INIT_RPC_CHANNEL = make_flag("CO_E_INIT_RPC_CHANNEL", ( 0x8000400A )) +CO_E_INIT_TLS_SET_CHANNEL_CONTROL = make_flag("CO_E_INIT_TLS_SET_CHANNEL_CONTROL", ( 0x8000400B )) +CO_E_INIT_TLS_CHANNEL_CONTROL = make_flag("CO_E_INIT_TLS_CHANNEL_CONTROL", ( 0x8000400C )) +CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = make_flag("CO_E_INIT_UNACCEPTED_USER_ALLOCATOR", ( 0x8000400D )) +CO_E_INIT_SCM_MUTEX_EXISTS = make_flag("CO_E_INIT_SCM_MUTEX_EXISTS", ( 0x8000400E )) +CO_E_INIT_SCM_FILE_MAPPING_EXISTS = make_flag("CO_E_INIT_SCM_FILE_MAPPING_EXISTS", ( 0x8000400F )) +CO_E_INIT_SCM_MAP_VIEW_OF_FILE = make_flag("CO_E_INIT_SCM_MAP_VIEW_OF_FILE", ( 0x80004010 )) +CO_E_INIT_SCM_EXEC_FAILURE = make_flag("CO_E_INIT_SCM_EXEC_FAILURE", ( 0x80004011 )) +CO_E_INIT_ONLY_SINGLE_THREADED = make_flag("CO_E_INIT_ONLY_SINGLE_THREADED", ( 0x80004012 )) +CO_E_CANT_REMOTE = make_flag("CO_E_CANT_REMOTE", ( 0x80004013 )) +CO_E_BAD_SERVER_NAME = make_flag("CO_E_BAD_SERVER_NAME", ( 0x80004014 )) +CO_E_WRONG_SERVER_IDENTITY = make_flag("CO_E_WRONG_SERVER_IDENTITY", ( 0x80004015 )) +CO_E_OLE1DDE_DISABLED = make_flag("CO_E_OLE1DDE_DISABLED", ( 0x80004016 )) +CO_E_RUNAS_SYNTAX = make_flag("CO_E_RUNAS_SYNTAX", ( 0x80004017 )) +CO_E_CREATEPROCESS_FAILURE = make_flag("CO_E_CREATEPROCESS_FAILURE", ( 0x80004018 )) +CO_E_RUNAS_CREATEPROCESS_FAILURE = make_flag("CO_E_RUNAS_CREATEPROCESS_FAILURE", ( 0x80004019 )) +CO_E_RUNAS_LOGON_FAILURE = make_flag("CO_E_RUNAS_LOGON_FAILURE", ( 0x8000401A )) +CO_E_LAUNCH_PERMSSION_DENIED = make_flag("CO_E_LAUNCH_PERMSSION_DENIED", ( 0x8000401B )) +CO_E_START_SERVICE_FAILURE = make_flag("CO_E_START_SERVICE_FAILURE", ( 0x8000401C )) +CO_E_REMOTE_COMMUNICATION_FAILURE = make_flag("CO_E_REMOTE_COMMUNICATION_FAILURE", ( 0x8000401D )) +CO_E_SERVER_START_TIMEOUT = make_flag("CO_E_SERVER_START_TIMEOUT", ( 0x8000401E )) +CO_E_CLSREG_INCONSISTENT = make_flag("CO_E_CLSREG_INCONSISTENT", ( 0x8000401F )) +CO_E_IIDREG_INCONSISTENT = make_flag("CO_E_IIDREG_INCONSISTENT", ( 0x80004020 )) +CO_E_NOT_SUPPORTED = make_flag("CO_E_NOT_SUPPORTED", ( 0x80004021 )) +CO_E_RELOAD_DLL = make_flag("CO_E_RELOAD_DLL", ( 0x80004022 )) +CO_E_MSI_ERROR = make_flag("CO_E_MSI_ERROR", ( 0x80004023 )) +CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT = make_flag("CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT", ( 0x80004024 )) +CO_E_SERVER_PAUSED = make_flag("CO_E_SERVER_PAUSED", ( 0x80004025 )) +CO_E_SERVER_NOT_PAUSED = make_flag("CO_E_SERVER_NOT_PAUSED", ( 0x80004026 )) +CO_E_CLASS_DISABLED = make_flag("CO_E_CLASS_DISABLED", ( 0x80004027 )) +CO_E_CLRNOTAVAILABLE = make_flag("CO_E_CLRNOTAVAILABLE", ( 0x80004028 )) +CO_E_ASYNC_WORK_REJECTED = make_flag("CO_E_ASYNC_WORK_REJECTED", ( 0x80004029 )) +CO_E_SERVER_INIT_TIMEOUT = make_flag("CO_E_SERVER_INIT_TIMEOUT", ( 0x8000402A )) +CO_E_NO_SECCTX_IN_ACTIVATE = make_flag("CO_E_NO_SECCTX_IN_ACTIVATE", ( 0x8000402B )) +CO_E_TRACKER_CONFIG = make_flag("CO_E_TRACKER_CONFIG", ( 0x80004030 )) +CO_E_THREADPOOL_CONFIG = make_flag("CO_E_THREADPOOL_CONFIG", ( 0x80004031 )) +CO_E_SXS_CONFIG = make_flag("CO_E_SXS_CONFIG", ( 0x80004032 )) +CO_E_MALFORMED_SPN = make_flag("CO_E_MALFORMED_SPN", ( 0x80004033 )) +CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN = make_flag("CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN", ( 0x80004034 )) +CO_E_PREMATURE_STUB_RUNDOWN = make_flag("CO_E_PREMATURE_STUB_RUNDOWN", ( 0x80004035 )) +S_OK = make_flag("S_OK", ( 0 )) +S_FALSE = make_flag("S_FALSE", ( 1 )) +OLE_E_FIRST = make_flag("OLE_E_FIRST", ( 0x80040000 )) +OLE_E_LAST = make_flag("OLE_E_LAST", ( 0x800400FF )) +OLE_S_FIRST = make_flag("OLE_S_FIRST", ( 0x00040000 )) +OLE_S_LAST = make_flag("OLE_S_LAST", ( 0x000400FF )) +OLE_E_OLEVERB = make_flag("OLE_E_OLEVERB", ( 0x80040000 )) +OLE_E_ADVF = make_flag("OLE_E_ADVF", ( 0x80040001 )) +OLE_E_ENUM_NOMORE = make_flag("OLE_E_ENUM_NOMORE", ( 0x80040002 )) +OLE_E_ADVISENOTSUPPORTED = make_flag("OLE_E_ADVISENOTSUPPORTED", ( 0x80040003 )) +OLE_E_NOCONNECTION = make_flag("OLE_E_NOCONNECTION", ( 0x80040004 )) +OLE_E_NOTRUNNING = make_flag("OLE_E_NOTRUNNING", ( 0x80040005 )) +OLE_E_NOCACHE = make_flag("OLE_E_NOCACHE", ( 0x80040006 )) +OLE_E_BLANK = make_flag("OLE_E_BLANK", ( 0x80040007 )) +OLE_E_CLASSDIFF = make_flag("OLE_E_CLASSDIFF", ( 0x80040008 )) +OLE_E_CANT_GETMONIKER = make_flag("OLE_E_CANT_GETMONIKER", ( 0x80040009 )) +OLE_E_CANT_BINDTOSOURCE = make_flag("OLE_E_CANT_BINDTOSOURCE", ( 0x8004000A )) +OLE_E_STATIC = make_flag("OLE_E_STATIC", ( 0x8004000B )) +OLE_E_PROMPTSAVECANCELLED = make_flag("OLE_E_PROMPTSAVECANCELLED", ( 0x8004000C )) +OLE_E_INVALIDRECT = make_flag("OLE_E_INVALIDRECT", ( 0x8004000D )) +OLE_E_WRONGCOMPOBJ = make_flag("OLE_E_WRONGCOMPOBJ", ( 0x8004000E )) +OLE_E_INVALIDHWND = make_flag("OLE_E_INVALIDHWND", ( 0x8004000F )) +OLE_E_NOT_INPLACEACTIVE = make_flag("OLE_E_NOT_INPLACEACTIVE", ( 0x80040010 )) +OLE_E_CANTCONVERT = make_flag("OLE_E_CANTCONVERT", ( 0x80040011 )) +OLE_E_NOSTORAGE = make_flag("OLE_E_NOSTORAGE", ( 0x80040012 )) +DV_E_FORMATETC = make_flag("DV_E_FORMATETC", ( 0x80040064 )) +DV_E_DVTARGETDEVICE = make_flag("DV_E_DVTARGETDEVICE", ( 0x80040065 )) +DV_E_STGMEDIUM = make_flag("DV_E_STGMEDIUM", ( 0x80040066 )) +DV_E_STATDATA = make_flag("DV_E_STATDATA", ( 0x80040067 )) +DV_E_LINDEX = make_flag("DV_E_LINDEX", ( 0x80040068 )) +DV_E_TYMED = make_flag("DV_E_TYMED", ( 0x80040069 )) +DV_E_CLIPFORMAT = make_flag("DV_E_CLIPFORMAT", ( 0x8004006A )) +DV_E_DVASPECT = make_flag("DV_E_DVASPECT", ( 0x8004006B )) +DV_E_DVTARGETDEVICE_SIZE = make_flag("DV_E_DVTARGETDEVICE_SIZE", ( 0x8004006C )) +DV_E_NOIVIEWOBJECT = make_flag("DV_E_NOIVIEWOBJECT", ( 0x8004006D )) +DRAGDROP_E_FIRST = make_flag("DRAGDROP_E_FIRST", 0x80040100) +DRAGDROP_E_LAST = make_flag("DRAGDROP_E_LAST", 0x8004010F) +DRAGDROP_S_FIRST = make_flag("DRAGDROP_S_FIRST", 0x00040100) +DRAGDROP_S_LAST = make_flag("DRAGDROP_S_LAST", 0x0004010F) +DRAGDROP_E_NOTREGISTERED = make_flag("DRAGDROP_E_NOTREGISTERED", ( 0x80040100 )) +DRAGDROP_E_ALREADYREGISTERED = make_flag("DRAGDROP_E_ALREADYREGISTERED", ( 0x80040101 )) +DRAGDROP_E_INVALIDHWND = make_flag("DRAGDROP_E_INVALIDHWND", ( 0x80040102 )) +DRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED = make_flag("DRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED", ( 0x80040103 )) +CLASSFACTORY_E_FIRST = make_flag("CLASSFACTORY_E_FIRST", 0x80040110) +CLASSFACTORY_E_LAST = make_flag("CLASSFACTORY_E_LAST", 0x8004011F) +CLASSFACTORY_S_FIRST = make_flag("CLASSFACTORY_S_FIRST", 0x00040110) +CLASSFACTORY_S_LAST = make_flag("CLASSFACTORY_S_LAST", 0x0004011F) +CLASS_E_NOAGGREGATION = make_flag("CLASS_E_NOAGGREGATION", ( 0x80040110 )) +CLASS_E_CLASSNOTAVAILABLE = make_flag("CLASS_E_CLASSNOTAVAILABLE", ( 0x80040111 )) +CLASS_E_NOTLICENSED = make_flag("CLASS_E_NOTLICENSED", ( 0x80040112 )) +MARSHAL_E_FIRST = make_flag("MARSHAL_E_FIRST", 0x80040120) +MARSHAL_E_LAST = make_flag("MARSHAL_E_LAST", 0x8004012F) +MARSHAL_S_FIRST = make_flag("MARSHAL_S_FIRST", 0x00040120) +MARSHAL_S_LAST = make_flag("MARSHAL_S_LAST", 0x0004012F) +DATA_E_FIRST = make_flag("DATA_E_FIRST", 0x80040130) +DATA_E_LAST = make_flag("DATA_E_LAST", 0x8004013F) +DATA_S_FIRST = make_flag("DATA_S_FIRST", 0x00040130) +DATA_S_LAST = make_flag("DATA_S_LAST", 0x0004013F) +VIEW_E_FIRST = make_flag("VIEW_E_FIRST", 0x80040140) +VIEW_E_LAST = make_flag("VIEW_E_LAST", 0x8004014F) +VIEW_S_FIRST = make_flag("VIEW_S_FIRST", 0x00040140) +VIEW_S_LAST = make_flag("VIEW_S_LAST", 0x0004014F) +VIEW_E_DRAW = make_flag("VIEW_E_DRAW", ( 0x80040140 )) +REGDB_E_FIRST = make_flag("REGDB_E_FIRST", 0x80040150) +REGDB_E_LAST = make_flag("REGDB_E_LAST", 0x8004015F) +REGDB_S_FIRST = make_flag("REGDB_S_FIRST", 0x00040150) +REGDB_S_LAST = make_flag("REGDB_S_LAST", 0x0004015F) +REGDB_E_READREGDB = make_flag("REGDB_E_READREGDB", ( 0x80040150 )) +REGDB_E_WRITEREGDB = make_flag("REGDB_E_WRITEREGDB", ( 0x80040151 )) +REGDB_E_KEYMISSING = make_flag("REGDB_E_KEYMISSING", ( 0x80040152 )) +REGDB_E_INVALIDVALUE = make_flag("REGDB_E_INVALIDVALUE", ( 0x80040153 )) +REGDB_E_CLASSNOTREG = make_flag("REGDB_E_CLASSNOTREG", ( 0x80040154 )) +REGDB_E_IIDNOTREG = make_flag("REGDB_E_IIDNOTREG", ( 0x80040155 )) +REGDB_E_BADTHREADINGMODEL = make_flag("REGDB_E_BADTHREADINGMODEL", ( 0x80040156 )) +REGDB_E_PACKAGEPOLICYVIOLATION = make_flag("REGDB_E_PACKAGEPOLICYVIOLATION", ( 0x80040157 )) +CAT_E_FIRST = make_flag("CAT_E_FIRST", 0x80040160) +CAT_E_LAST = make_flag("CAT_E_LAST", 0x80040161) +CAT_E_CATIDNOEXIST = make_flag("CAT_E_CATIDNOEXIST", ( 0x80040160 )) +CAT_E_NODESCRIPTION = make_flag("CAT_E_NODESCRIPTION", ( 0x80040161 )) +CS_E_FIRST = make_flag("CS_E_FIRST", 0x80040164) +CS_E_LAST = make_flag("CS_E_LAST", 0x8004016F) +CS_E_PACKAGE_NOTFOUND = make_flag("CS_E_PACKAGE_NOTFOUND", ( 0x80040164 )) +CS_E_NOT_DELETABLE = make_flag("CS_E_NOT_DELETABLE", ( 0x80040165 )) +CS_E_CLASS_NOTFOUND = make_flag("CS_E_CLASS_NOTFOUND", ( 0x80040166 )) +CS_E_INVALID_VERSION = make_flag("CS_E_INVALID_VERSION", ( 0x80040167 )) +CS_E_NO_CLASSSTORE = make_flag("CS_E_NO_CLASSSTORE", ( 0x80040168 )) +CS_E_OBJECT_NOTFOUND = make_flag("CS_E_OBJECT_NOTFOUND", ( 0x80040169 )) +CS_E_OBJECT_ALREADY_EXISTS = make_flag("CS_E_OBJECT_ALREADY_EXISTS", ( 0x8004016A )) +CS_E_INVALID_PATH = make_flag("CS_E_INVALID_PATH", ( 0x8004016B )) +CS_E_NETWORK_ERROR = make_flag("CS_E_NETWORK_ERROR", ( 0x8004016C )) +CS_E_ADMIN_LIMIT_EXCEEDED = make_flag("CS_E_ADMIN_LIMIT_EXCEEDED", ( 0x8004016D )) +CS_E_SCHEMA_MISMATCH = make_flag("CS_E_SCHEMA_MISMATCH", ( 0x8004016E )) +CS_E_INTERNAL_ERROR = make_flag("CS_E_INTERNAL_ERROR", ( 0x8004016F )) +CACHE_E_FIRST = make_flag("CACHE_E_FIRST", 0x80040170) +CACHE_E_LAST = make_flag("CACHE_E_LAST", 0x8004017F) +CACHE_S_FIRST = make_flag("CACHE_S_FIRST", 0x00040170) +CACHE_S_LAST = make_flag("CACHE_S_LAST", 0x0004017F) +CACHE_E_NOCACHE_UPDATED = make_flag("CACHE_E_NOCACHE_UPDATED", ( 0x80040170 )) +OLEOBJ_E_FIRST = make_flag("OLEOBJ_E_FIRST", 0x80040180) +OLEOBJ_E_LAST = make_flag("OLEOBJ_E_LAST", 0x8004018F) +OLEOBJ_S_FIRST = make_flag("OLEOBJ_S_FIRST", 0x00040180) +OLEOBJ_S_LAST = make_flag("OLEOBJ_S_LAST", 0x0004018F) +OLEOBJ_E_NOVERBS = make_flag("OLEOBJ_E_NOVERBS", ( 0x80040180 )) +OLEOBJ_E_INVALIDVERB = make_flag("OLEOBJ_E_INVALIDVERB", ( 0x80040181 )) +CLIENTSITE_E_FIRST = make_flag("CLIENTSITE_E_FIRST", 0x80040190) +CLIENTSITE_E_LAST = make_flag("CLIENTSITE_E_LAST", 0x8004019F) +CLIENTSITE_S_FIRST = make_flag("CLIENTSITE_S_FIRST", 0x00040190) +CLIENTSITE_S_LAST = make_flag("CLIENTSITE_S_LAST", 0x0004019F) +INPLACE_E_NOTUNDOABLE = make_flag("INPLACE_E_NOTUNDOABLE", ( 0x800401A0 )) +INPLACE_E_NOTOOLSPACE = make_flag("INPLACE_E_NOTOOLSPACE", ( 0x800401A1 )) +INPLACE_E_FIRST = make_flag("INPLACE_E_FIRST", 0x800401A0) +INPLACE_E_LAST = make_flag("INPLACE_E_LAST", 0x800401AF) +INPLACE_S_FIRST = make_flag("INPLACE_S_FIRST", 0x000401A0) +INPLACE_S_LAST = make_flag("INPLACE_S_LAST", 0x000401AF) +ENUM_E_FIRST = make_flag("ENUM_E_FIRST", 0x800401B0) +ENUM_E_LAST = make_flag("ENUM_E_LAST", 0x800401BF) +ENUM_S_FIRST = make_flag("ENUM_S_FIRST", 0x000401B0) +ENUM_S_LAST = make_flag("ENUM_S_LAST", 0x000401BF) +CONVERT10_E_FIRST = make_flag("CONVERT10_E_FIRST", 0x800401C0) +CONVERT10_E_LAST = make_flag("CONVERT10_E_LAST", 0x800401CF) +CONVERT10_S_FIRST = make_flag("CONVERT10_S_FIRST", 0x000401C0) +CONVERT10_S_LAST = make_flag("CONVERT10_S_LAST", 0x000401CF) +CONVERT10_E_OLESTREAM_GET = make_flag("CONVERT10_E_OLESTREAM_GET", ( 0x800401C0 )) +CONVERT10_E_OLESTREAM_PUT = make_flag("CONVERT10_E_OLESTREAM_PUT", ( 0x800401C1 )) +CONVERT10_E_OLESTREAM_FMT = make_flag("CONVERT10_E_OLESTREAM_FMT", ( 0x800401C2 )) +CONVERT10_E_OLESTREAM_BITMAP_TO_DIB = make_flag("CONVERT10_E_OLESTREAM_BITMAP_TO_DIB", ( 0x800401C3 )) +CONVERT10_E_STG_FMT = make_flag("CONVERT10_E_STG_FMT", ( 0x800401C4 )) +CONVERT10_E_STG_NO_STD_STREAM = make_flag("CONVERT10_E_STG_NO_STD_STREAM", ( 0x800401C5 )) +CONVERT10_E_STG_DIB_TO_BITMAP = make_flag("CONVERT10_E_STG_DIB_TO_BITMAP", ( 0x800401C6 )) +CLIPBRD_E_FIRST = make_flag("CLIPBRD_E_FIRST", 0x800401D0) +CLIPBRD_E_LAST = make_flag("CLIPBRD_E_LAST", 0x800401DF) +CLIPBRD_S_FIRST = make_flag("CLIPBRD_S_FIRST", 0x000401D0) +CLIPBRD_S_LAST = make_flag("CLIPBRD_S_LAST", 0x000401DF) +CLIPBRD_E_CANT_OPEN = make_flag("CLIPBRD_E_CANT_OPEN", ( 0x800401D0 )) +CLIPBRD_E_CANT_EMPTY = make_flag("CLIPBRD_E_CANT_EMPTY", ( 0x800401D1 )) +CLIPBRD_E_CANT_SET = make_flag("CLIPBRD_E_CANT_SET", ( 0x800401D2 )) +CLIPBRD_E_BAD_DATA = make_flag("CLIPBRD_E_BAD_DATA", ( 0x800401D3 )) +CLIPBRD_E_CANT_CLOSE = make_flag("CLIPBRD_E_CANT_CLOSE", ( 0x800401D4 )) +MK_E_FIRST = make_flag("MK_E_FIRST", 0x800401E0) +MK_E_LAST = make_flag("MK_E_LAST", 0x800401EF) +MK_S_FIRST = make_flag("MK_S_FIRST", 0x000401E0) +MK_S_LAST = make_flag("MK_S_LAST", 0x000401EF) +MK_E_CONNECTMANUALLY = make_flag("MK_E_CONNECTMANUALLY", ( 0x800401E0 )) +MK_E_EXCEEDEDDEADLINE = make_flag("MK_E_EXCEEDEDDEADLINE", ( 0x800401E1 )) +MK_E_NEEDGENERIC = make_flag("MK_E_NEEDGENERIC", ( 0x800401E2 )) +MK_E_UNAVAILABLE = make_flag("MK_E_UNAVAILABLE", ( 0x800401E3 )) +MK_E_SYNTAX = make_flag("MK_E_SYNTAX", ( 0x800401E4 )) +MK_E_NOOBJECT = make_flag("MK_E_NOOBJECT", ( 0x800401E5 )) +MK_E_INVALIDEXTENSION = make_flag("MK_E_INVALIDEXTENSION", ( 0x800401E6 )) +MK_E_INTERMEDIATEINTERFACENOTSUPPORTED = make_flag("MK_E_INTERMEDIATEINTERFACENOTSUPPORTED", ( 0x800401E7 )) +MK_E_NOTBINDABLE = make_flag("MK_E_NOTBINDABLE", ( 0x800401E8 )) +MK_E_NOTBOUND = make_flag("MK_E_NOTBOUND", ( 0x800401E9 )) +MK_E_CANTOPENFILE = make_flag("MK_E_CANTOPENFILE", ( 0x800401EA )) +MK_E_MUSTBOTHERUSER = make_flag("MK_E_MUSTBOTHERUSER", ( 0x800401EB )) +MK_E_NOINVERSE = make_flag("MK_E_NOINVERSE", ( 0x800401EC )) +MK_E_NOSTORAGE = make_flag("MK_E_NOSTORAGE", ( 0x800401ED )) +MK_E_NOPREFIX = make_flag("MK_E_NOPREFIX", ( 0x800401EE )) +MK_E_ENUMERATION_FAILED = make_flag("MK_E_ENUMERATION_FAILED", ( 0x800401EF )) +CO_E_FIRST = make_flag("CO_E_FIRST", 0x800401F0) +CO_E_LAST = make_flag("CO_E_LAST", 0x800401FF) +CO_S_FIRST = make_flag("CO_S_FIRST", 0x000401F0) +CO_S_LAST = make_flag("CO_S_LAST", 0x000401FF) +CO_E_NOTINITIALIZED = make_flag("CO_E_NOTINITIALIZED", ( 0x800401F0 )) +CO_E_ALREADYINITIALIZED = make_flag("CO_E_ALREADYINITIALIZED", ( 0x800401F1 )) +CO_E_CANTDETERMINECLASS = make_flag("CO_E_CANTDETERMINECLASS", ( 0x800401F2 )) +CO_E_CLASSSTRING = make_flag("CO_E_CLASSSTRING", ( 0x800401F3 )) +CO_E_IIDSTRING = make_flag("CO_E_IIDSTRING", ( 0x800401F4 )) +CO_E_APPNOTFOUND = make_flag("CO_E_APPNOTFOUND", ( 0x800401F5 )) +CO_E_APPSINGLEUSE = make_flag("CO_E_APPSINGLEUSE", ( 0x800401F6 )) +CO_E_ERRORINAPP = make_flag("CO_E_ERRORINAPP", ( 0x800401F7 )) +CO_E_DLLNOTFOUND = make_flag("CO_E_DLLNOTFOUND", ( 0x800401F8 )) +CO_E_ERRORINDLL = make_flag("CO_E_ERRORINDLL", ( 0x800401F9 )) +CO_E_WRONGOSFORAPP = make_flag("CO_E_WRONGOSFORAPP", ( 0x800401FA )) +CO_E_OBJNOTREG = make_flag("CO_E_OBJNOTREG", ( 0x800401FB )) +CO_E_OBJISREG = make_flag("CO_E_OBJISREG", ( 0x800401FC )) +CO_E_OBJNOTCONNECTED = make_flag("CO_E_OBJNOTCONNECTED", ( 0x800401FD )) +CO_E_APPDIDNTREG = make_flag("CO_E_APPDIDNTREG", ( 0x800401FE )) +CO_E_RELEASED = make_flag("CO_E_RELEASED", ( 0x800401FF )) +EVENT_E_FIRST = make_flag("EVENT_E_FIRST", 0x80040200) +EVENT_E_LAST = make_flag("EVENT_E_LAST", 0x8004021F) +EVENT_S_FIRST = make_flag("EVENT_S_FIRST", 0x00040200) +EVENT_S_LAST = make_flag("EVENT_S_LAST", 0x0004021F) +EVENT_S_SOME_SUBSCRIBERS_FAILED = make_flag("EVENT_S_SOME_SUBSCRIBERS_FAILED", ( 0x00040200 )) +EVENT_E_ALL_SUBSCRIBERS_FAILED = make_flag("EVENT_E_ALL_SUBSCRIBERS_FAILED", ( 0x80040201 )) +EVENT_S_NOSUBSCRIBERS = make_flag("EVENT_S_NOSUBSCRIBERS", ( 0x00040202 )) +EVENT_E_QUERYSYNTAX = make_flag("EVENT_E_QUERYSYNTAX", ( 0x80040203 )) +EVENT_E_QUERYFIELD = make_flag("EVENT_E_QUERYFIELD", ( 0x80040204 )) +EVENT_E_INTERNALEXCEPTION = make_flag("EVENT_E_INTERNALEXCEPTION", ( 0x80040205 )) +EVENT_E_INTERNALERROR = make_flag("EVENT_E_INTERNALERROR", ( 0x80040206 )) +EVENT_E_INVALID_PER_USER_SID = make_flag("EVENT_E_INVALID_PER_USER_SID", ( 0x80040207 )) +EVENT_E_USER_EXCEPTION = make_flag("EVENT_E_USER_EXCEPTION", ( 0x80040208 )) +EVENT_E_TOO_MANY_METHODS = make_flag("EVENT_E_TOO_MANY_METHODS", ( 0x80040209 )) +EVENT_E_MISSING_EVENTCLASS = make_flag("EVENT_E_MISSING_EVENTCLASS", ( 0x8004020A )) +EVENT_E_NOT_ALL_REMOVED = make_flag("EVENT_E_NOT_ALL_REMOVED", ( 0x8004020B )) +EVENT_E_COMPLUS_NOT_INSTALLED = make_flag("EVENT_E_COMPLUS_NOT_INSTALLED", ( 0x8004020C )) +EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT = make_flag("EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT", ( 0x8004020D )) +EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT = make_flag("EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT", ( 0x8004020E )) +EVENT_E_INVALID_EVENT_CLASS_PARTITION = make_flag("EVENT_E_INVALID_EVENT_CLASS_PARTITION", ( 0x8004020F )) +EVENT_E_PER_USER_SID_NOT_LOGGED_ON = make_flag("EVENT_E_PER_USER_SID_NOT_LOGGED_ON", ( 0x80040210 )) +TPC_E_INVALID_PROPERTY = make_flag("TPC_E_INVALID_PROPERTY", ( 0x80040241 )) +TPC_E_NO_DEFAULT_TABLET = make_flag("TPC_E_NO_DEFAULT_TABLET", ( 0x80040212 )) +TPC_E_UNKNOWN_PROPERTY = make_flag("TPC_E_UNKNOWN_PROPERTY", ( 0x8004021B )) +TPC_E_INVALID_INPUT_RECT = make_flag("TPC_E_INVALID_INPUT_RECT", ( 0x80040219 )) +TPC_E_INVALID_STROKE = make_flag("TPC_E_INVALID_STROKE", ( 0x80040222 )) +TPC_E_INITIALIZE_FAIL = make_flag("TPC_E_INITIALIZE_FAIL", ( 0x80040223 )) +TPC_E_NOT_RELEVANT = make_flag("TPC_E_NOT_RELEVANT", ( 0x80040232 )) +TPC_E_INVALID_PACKET_DESCRIPTION = make_flag("TPC_E_INVALID_PACKET_DESCRIPTION", ( 0x80040233 )) +TPC_E_RECOGNIZER_NOT_REGISTERED = make_flag("TPC_E_RECOGNIZER_NOT_REGISTERED", ( 0x80040235 )) +TPC_E_INVALID_RIGHTS = make_flag("TPC_E_INVALID_RIGHTS", ( 0x80040236 )) +TPC_E_OUT_OF_ORDER_CALL = make_flag("TPC_E_OUT_OF_ORDER_CALL", ( 0x80040237 )) +TPC_E_QUEUE_FULL = make_flag("TPC_E_QUEUE_FULL", ( 0x80040238 )) +TPC_E_INVALID_CONFIGURATION = make_flag("TPC_E_INVALID_CONFIGURATION", ( 0x80040239 )) +TPC_E_INVALID_DATA_FROM_RECOGNIZER = make_flag("TPC_E_INVALID_DATA_FROM_RECOGNIZER", ( 0x8004023A )) +TPC_S_TRUNCATED = make_flag("TPC_S_TRUNCATED", ( 0x00040252 )) +TPC_S_INTERRUPTED = make_flag("TPC_S_INTERRUPTED", ( 0x00040253 )) +TPC_S_NO_DATA_TO_PROCESS = make_flag("TPC_S_NO_DATA_TO_PROCESS", ( 0x00040254 )) +XACT_E_FIRST = make_flag("XACT_E_FIRST", 0x8004D000) +XACT_E_LAST = make_flag("XACT_E_LAST", 0x8004D02B) +XACT_S_FIRST = make_flag("XACT_S_FIRST", 0x0004D000) +XACT_S_LAST = make_flag("XACT_S_LAST", 0x0004D010) +XACT_E_ALREADYOTHERSINGLEPHASE = make_flag("XACT_E_ALREADYOTHERSINGLEPHASE", ( 0x8004D000 )) +XACT_E_CANTRETAIN = make_flag("XACT_E_CANTRETAIN", ( 0x8004D001 )) +XACT_E_COMMITFAILED = make_flag("XACT_E_COMMITFAILED", ( 0x8004D002 )) +XACT_E_COMMITPREVENTED = make_flag("XACT_E_COMMITPREVENTED", ( 0x8004D003 )) +XACT_E_HEURISTICABORT = make_flag("XACT_E_HEURISTICABORT", ( 0x8004D004 )) +XACT_E_HEURISTICCOMMIT = make_flag("XACT_E_HEURISTICCOMMIT", ( 0x8004D005 )) +XACT_E_HEURISTICDAMAGE = make_flag("XACT_E_HEURISTICDAMAGE", ( 0x8004D006 )) +XACT_E_HEURISTICDANGER = make_flag("XACT_E_HEURISTICDANGER", ( 0x8004D007 )) +XACT_E_ISOLATIONLEVEL = make_flag("XACT_E_ISOLATIONLEVEL", ( 0x8004D008 )) +XACT_E_NOASYNC = make_flag("XACT_E_NOASYNC", ( 0x8004D009 )) +XACT_E_NOENLIST = make_flag("XACT_E_NOENLIST", ( 0x8004D00A )) +XACT_E_NOISORETAIN = make_flag("XACT_E_NOISORETAIN", ( 0x8004D00B )) +XACT_E_NORESOURCE = make_flag("XACT_E_NORESOURCE", ( 0x8004D00C )) +XACT_E_NOTCURRENT = make_flag("XACT_E_NOTCURRENT", ( 0x8004D00D )) +XACT_E_NOTRANSACTION = make_flag("XACT_E_NOTRANSACTION", ( 0x8004D00E )) +XACT_E_NOTSUPPORTED = make_flag("XACT_E_NOTSUPPORTED", ( 0x8004D00F )) +XACT_E_UNKNOWNRMGRID = make_flag("XACT_E_UNKNOWNRMGRID", ( 0x8004D010 )) +XACT_E_WRONGSTATE = make_flag("XACT_E_WRONGSTATE", ( 0x8004D011 )) +XACT_E_WRONGUOW = make_flag("XACT_E_WRONGUOW", ( 0x8004D012 )) +XACT_E_XTIONEXISTS = make_flag("XACT_E_XTIONEXISTS", ( 0x8004D013 )) +XACT_E_NOIMPORTOBJECT = make_flag("XACT_E_NOIMPORTOBJECT", ( 0x8004D014 )) +XACT_E_INVALIDCOOKIE = make_flag("XACT_E_INVALIDCOOKIE", ( 0x8004D015 )) +XACT_E_INDOUBT = make_flag("XACT_E_INDOUBT", ( 0x8004D016 )) +XACT_E_NOTIMEOUT = make_flag("XACT_E_NOTIMEOUT", ( 0x8004D017 )) +XACT_E_ALREADYINPROGRESS = make_flag("XACT_E_ALREADYINPROGRESS", ( 0x8004D018 )) +XACT_E_ABORTED = make_flag("XACT_E_ABORTED", ( 0x8004D019 )) +XACT_E_LOGFULL = make_flag("XACT_E_LOGFULL", ( 0x8004D01A )) +XACT_E_TMNOTAVAILABLE = make_flag("XACT_E_TMNOTAVAILABLE", ( 0x8004D01B )) +XACT_E_CONNECTION_DOWN = make_flag("XACT_E_CONNECTION_DOWN", ( 0x8004D01C )) +XACT_E_CONNECTION_DENIED = make_flag("XACT_E_CONNECTION_DENIED", ( 0x8004D01D )) +XACT_E_REENLISTTIMEOUT = make_flag("XACT_E_REENLISTTIMEOUT", ( 0x8004D01E )) +XACT_E_TIP_CONNECT_FAILED = make_flag("XACT_E_TIP_CONNECT_FAILED", ( 0x8004D01F )) +XACT_E_TIP_PROTOCOL_ERROR = make_flag("XACT_E_TIP_PROTOCOL_ERROR", ( 0x8004D020 )) +XACT_E_TIP_PULL_FAILED = make_flag("XACT_E_TIP_PULL_FAILED", ( 0x8004D021 )) +XACT_E_DEST_TMNOTAVAILABLE = make_flag("XACT_E_DEST_TMNOTAVAILABLE", ( 0x8004D022 )) +XACT_E_TIP_DISABLED = make_flag("XACT_E_TIP_DISABLED", ( 0x8004D023 )) +XACT_E_NETWORK_TX_DISABLED = make_flag("XACT_E_NETWORK_TX_DISABLED", ( 0x8004D024 )) +XACT_E_PARTNER_NETWORK_TX_DISABLED = make_flag("XACT_E_PARTNER_NETWORK_TX_DISABLED", ( 0x8004D025 )) +XACT_E_XA_TX_DISABLED = make_flag("XACT_E_XA_TX_DISABLED", ( 0x8004D026 )) +XACT_E_UNABLE_TO_READ_DTC_CONFIG = make_flag("XACT_E_UNABLE_TO_READ_DTC_CONFIG", ( 0x8004D027 )) +XACT_E_UNABLE_TO_LOAD_DTC_PROXY = make_flag("XACT_E_UNABLE_TO_LOAD_DTC_PROXY", ( 0x8004D028 )) +XACT_E_ABORTING = make_flag("XACT_E_ABORTING", ( 0x8004D029 )) +XACT_E_PUSH_COMM_FAILURE = make_flag("XACT_E_PUSH_COMM_FAILURE", ( 0x8004D02A )) +XACT_E_PULL_COMM_FAILURE = make_flag("XACT_E_PULL_COMM_FAILURE", ( 0x8004D02B )) +XACT_E_LU_TX_DISABLED = make_flag("XACT_E_LU_TX_DISABLED", ( 0x8004D02C )) +XACT_E_CLERKNOTFOUND = make_flag("XACT_E_CLERKNOTFOUND", ( 0x8004D080 )) +XACT_E_CLERKEXISTS = make_flag("XACT_E_CLERKEXISTS", ( 0x8004D081 )) +XACT_E_RECOVERYINPROGRESS = make_flag("XACT_E_RECOVERYINPROGRESS", ( 0x8004D082 )) +XACT_E_TRANSACTIONCLOSED = make_flag("XACT_E_TRANSACTIONCLOSED", ( 0x8004D083 )) +XACT_E_INVALIDLSN = make_flag("XACT_E_INVALIDLSN", ( 0x8004D084 )) +XACT_E_REPLAYREQUEST = make_flag("XACT_E_REPLAYREQUEST", ( 0x8004D085 )) +XACT_S_ASYNC = make_flag("XACT_S_ASYNC", ( 0x0004D000 )) +XACT_S_DEFECT = make_flag("XACT_S_DEFECT", ( 0x0004D001 )) +XACT_S_READONLY = make_flag("XACT_S_READONLY", ( 0x0004D002 )) +XACT_S_SOMENORETAIN = make_flag("XACT_S_SOMENORETAIN", ( 0x0004D003 )) +XACT_S_OKINFORM = make_flag("XACT_S_OKINFORM", ( 0x0004D004 )) +XACT_S_MADECHANGESCONTENT = make_flag("XACT_S_MADECHANGESCONTENT", ( 0x0004D005 )) +XACT_S_MADECHANGESINFORM = make_flag("XACT_S_MADECHANGESINFORM", ( 0x0004D006 )) +XACT_S_ALLNORETAIN = make_flag("XACT_S_ALLNORETAIN", ( 0x0004D007 )) +XACT_S_ABORTING = make_flag("XACT_S_ABORTING", ( 0x0004D008 )) +XACT_S_SINGLEPHASE = make_flag("XACT_S_SINGLEPHASE", ( 0x0004D009 )) +XACT_S_LOCALLY_OK = make_flag("XACT_S_LOCALLY_OK", ( 0x0004D00A )) +XACT_S_LASTRESOURCEMANAGER = make_flag("XACT_S_LASTRESOURCEMANAGER", ( 0x0004D010 )) +CONTEXT_E_FIRST = make_flag("CONTEXT_E_FIRST", 0x8004E000) +CONTEXT_E_LAST = make_flag("CONTEXT_E_LAST", 0x8004E02F) +CONTEXT_S_FIRST = make_flag("CONTEXT_S_FIRST", 0x0004E000) +CONTEXT_S_LAST = make_flag("CONTEXT_S_LAST", 0x0004E02F) +CONTEXT_E_ABORTED = make_flag("CONTEXT_E_ABORTED", ( 0x8004E002 )) +CONTEXT_E_ABORTING = make_flag("CONTEXT_E_ABORTING", ( 0x8004E003 )) +CONTEXT_E_NOCONTEXT = make_flag("CONTEXT_E_NOCONTEXT", ( 0x8004E004 )) +CONTEXT_E_WOULD_DEADLOCK = make_flag("CONTEXT_E_WOULD_DEADLOCK", ( 0x8004E005 )) +CONTEXT_E_SYNCH_TIMEOUT = make_flag("CONTEXT_E_SYNCH_TIMEOUT", ( 0x8004E006 )) +CONTEXT_E_OLDREF = make_flag("CONTEXT_E_OLDREF", ( 0x8004E007 )) +CONTEXT_E_ROLENOTFOUND = make_flag("CONTEXT_E_ROLENOTFOUND", ( 0x8004E00C )) +CONTEXT_E_TMNOTAVAILABLE = make_flag("CONTEXT_E_TMNOTAVAILABLE", ( 0x8004E00F )) +CO_E_ACTIVATIONFAILED = make_flag("CO_E_ACTIVATIONFAILED", ( 0x8004E021 )) +CO_E_ACTIVATIONFAILED_EVENTLOGGED = make_flag("CO_E_ACTIVATIONFAILED_EVENTLOGGED", ( 0x8004E022 )) +CO_E_ACTIVATIONFAILED_CATALOGERROR = make_flag("CO_E_ACTIVATIONFAILED_CATALOGERROR", ( 0x8004E023 )) +CO_E_ACTIVATIONFAILED_TIMEOUT = make_flag("CO_E_ACTIVATIONFAILED_TIMEOUT", ( 0x8004E024 )) +CO_E_INITIALIZATIONFAILED = make_flag("CO_E_INITIALIZATIONFAILED", ( 0x8004E025 )) +CONTEXT_E_NOJIT = make_flag("CONTEXT_E_NOJIT", ( 0x8004E026 )) +CONTEXT_E_NOTRANSACTION = make_flag("CONTEXT_E_NOTRANSACTION", ( 0x8004E027 )) +CO_E_THREADINGMODEL_CHANGED = make_flag("CO_E_THREADINGMODEL_CHANGED", ( 0x8004E028 )) +CO_E_NOIISINTRINSICS = make_flag("CO_E_NOIISINTRINSICS", ( 0x8004E029 )) +CO_E_NOCOOKIES = make_flag("CO_E_NOCOOKIES", ( 0x8004E02A )) +CO_E_DBERROR = make_flag("CO_E_DBERROR", ( 0x8004E02B )) +CO_E_NOTPOOLED = make_flag("CO_E_NOTPOOLED", ( 0x8004E02C )) +CO_E_NOTCONSTRUCTED = make_flag("CO_E_NOTCONSTRUCTED", ( 0x8004E02D )) +CO_E_NOSYNCHRONIZATION = make_flag("CO_E_NOSYNCHRONIZATION", ( 0x8004E02E )) +CO_E_ISOLEVELMISMATCH = make_flag("CO_E_ISOLEVELMISMATCH", ( 0x8004E02F )) +CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED = make_flag("CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED", ( 0x8004E030 )) +CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED = make_flag("CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED", ( 0x8004E031 )) +OLE_S_USEREG = make_flag("OLE_S_USEREG", ( 0x00040000 )) +OLE_S_STATIC = make_flag("OLE_S_STATIC", ( 0x00040001 )) +OLE_S_MAC_CLIPFORMAT = make_flag("OLE_S_MAC_CLIPFORMAT", ( 0x00040002 )) +DRAGDROP_S_DROP = make_flag("DRAGDROP_S_DROP", ( 0x00040100 )) +DRAGDROP_S_CANCEL = make_flag("DRAGDROP_S_CANCEL", ( 0x00040101 )) +DRAGDROP_S_USEDEFAULTCURSORS = make_flag("DRAGDROP_S_USEDEFAULTCURSORS", ( 0x00040102 )) +DATA_S_SAMEFORMATETC = make_flag("DATA_S_SAMEFORMATETC", ( 0x00040130 )) +VIEW_S_ALREADY_FROZEN = make_flag("VIEW_S_ALREADY_FROZEN", ( 0x00040140 )) +CACHE_S_FORMATETC_NOTSUPPORTED = make_flag("CACHE_S_FORMATETC_NOTSUPPORTED", ( 0x00040170 )) +CACHE_S_SAMECACHE = make_flag("CACHE_S_SAMECACHE", ( 0x00040171 )) +CACHE_S_SOMECACHES_NOTUPDATED = make_flag("CACHE_S_SOMECACHES_NOTUPDATED", ( 0x00040172 )) +OLEOBJ_S_INVALIDVERB = make_flag("OLEOBJ_S_INVALIDVERB", ( 0x00040180 )) +OLEOBJ_S_CANNOT_DOVERB_NOW = make_flag("OLEOBJ_S_CANNOT_DOVERB_NOW", ( 0x00040181 )) +OLEOBJ_S_INVALIDHWND = make_flag("OLEOBJ_S_INVALIDHWND", ( 0x00040182 )) +INPLACE_S_TRUNCATED = make_flag("INPLACE_S_TRUNCATED", ( 0x000401A0 )) +CONVERT10_S_NO_PRESENTATION = make_flag("CONVERT10_S_NO_PRESENTATION", ( 0x000401C0 )) +MK_S_REDUCED_TO_SELF = make_flag("MK_S_REDUCED_TO_SELF", ( 0x000401E2 )) +MK_S_ME = make_flag("MK_S_ME", ( 0x000401E4 )) +MK_S_HIM = make_flag("MK_S_HIM", ( 0x000401E5 )) +MK_S_US = make_flag("MK_S_US", ( 0x000401E6 )) +MK_S_MONIKERALREADYREGISTERED = make_flag("MK_S_MONIKERALREADYREGISTERED", ( 0x000401E7 )) +SCHED_S_TASK_READY = make_flag("SCHED_S_TASK_READY", ( 0x00041300 )) +SCHED_S_TASK_RUNNING = make_flag("SCHED_S_TASK_RUNNING", ( 0x00041301 )) +SCHED_S_TASK_DISABLED = make_flag("SCHED_S_TASK_DISABLED", ( 0x00041302 )) +SCHED_S_TASK_HAS_NOT_RUN = make_flag("SCHED_S_TASK_HAS_NOT_RUN", ( 0x00041303 )) +SCHED_S_TASK_NO_MORE_RUNS = make_flag("SCHED_S_TASK_NO_MORE_RUNS", ( 0x00041304 )) +SCHED_S_TASK_NOT_SCHEDULED = make_flag("SCHED_S_TASK_NOT_SCHEDULED", ( 0x00041305 )) +SCHED_S_TASK_TERMINATED = make_flag("SCHED_S_TASK_TERMINATED", ( 0x00041306 )) +SCHED_S_TASK_NO_VALID_TRIGGERS = make_flag("SCHED_S_TASK_NO_VALID_TRIGGERS", ( 0x00041307 )) +SCHED_S_EVENT_TRIGGER = make_flag("SCHED_S_EVENT_TRIGGER", ( 0x00041308 )) +SCHED_E_TRIGGER_NOT_FOUND = make_flag("SCHED_E_TRIGGER_NOT_FOUND", ( 0x80041309 )) +SCHED_E_TASK_NOT_READY = make_flag("SCHED_E_TASK_NOT_READY", ( 0x8004130A )) +SCHED_E_TASK_NOT_RUNNING = make_flag("SCHED_E_TASK_NOT_RUNNING", ( 0x8004130B )) +SCHED_E_SERVICE_NOT_INSTALLED = make_flag("SCHED_E_SERVICE_NOT_INSTALLED", ( 0x8004130C )) +SCHED_E_CANNOT_OPEN_TASK = make_flag("SCHED_E_CANNOT_OPEN_TASK", ( 0x8004130D )) +SCHED_E_INVALID_TASK = make_flag("SCHED_E_INVALID_TASK", ( 0x8004130E )) +SCHED_E_ACCOUNT_INFORMATION_NOT_SET = make_flag("SCHED_E_ACCOUNT_INFORMATION_NOT_SET", ( 0x8004130F )) +SCHED_E_ACCOUNT_NAME_NOT_FOUND = make_flag("SCHED_E_ACCOUNT_NAME_NOT_FOUND", ( 0x80041310 )) +SCHED_E_ACCOUNT_DBASE_CORRUPT = make_flag("SCHED_E_ACCOUNT_DBASE_CORRUPT", ( 0x80041311 )) +SCHED_E_NO_SECURITY_SERVICES = make_flag("SCHED_E_NO_SECURITY_SERVICES", ( 0x80041312 )) +SCHED_E_UNKNOWN_OBJECT_VERSION = make_flag("SCHED_E_UNKNOWN_OBJECT_VERSION", ( 0x80041313 )) +SCHED_E_UNSUPPORTED_ACCOUNT_OPTION = make_flag("SCHED_E_UNSUPPORTED_ACCOUNT_OPTION", ( 0x80041314 )) +SCHED_E_SERVICE_NOT_RUNNING = make_flag("SCHED_E_SERVICE_NOT_RUNNING", ( 0x80041315 )) +SCHED_E_UNEXPECTEDNODE = make_flag("SCHED_E_UNEXPECTEDNODE", ( 0x80041316 )) +SCHED_E_NAMESPACE = make_flag("SCHED_E_NAMESPACE", ( 0x80041317 )) +SCHED_E_INVALIDVALUE = make_flag("SCHED_E_INVALIDVALUE", ( 0x80041318 )) +SCHED_E_MISSINGNODE = make_flag("SCHED_E_MISSINGNODE", ( 0x80041319 )) +SCHED_E_MALFORMEDXML = make_flag("SCHED_E_MALFORMEDXML", ( 0x8004131A )) +SCHED_S_SOME_TRIGGERS_FAILED = make_flag("SCHED_S_SOME_TRIGGERS_FAILED", ( 0x0004131B )) +SCHED_S_BATCH_LOGON_PROBLEM = make_flag("SCHED_S_BATCH_LOGON_PROBLEM", ( 0x0004131C )) +SCHED_E_TOO_MANY_NODES = make_flag("SCHED_E_TOO_MANY_NODES", ( 0x8004131D )) +SCHED_E_PAST_END_BOUNDARY = make_flag("SCHED_E_PAST_END_BOUNDARY", ( 0x8004131E )) +SCHED_E_ALREADY_RUNNING = make_flag("SCHED_E_ALREADY_RUNNING", ( 0x8004131F )) +SCHED_E_USER_NOT_LOGGED_ON = make_flag("SCHED_E_USER_NOT_LOGGED_ON", ( 0x80041320 )) +SCHED_E_INVALID_TASK_HASH = make_flag("SCHED_E_INVALID_TASK_HASH", ( 0x80041321 )) +SCHED_E_SERVICE_NOT_AVAILABLE = make_flag("SCHED_E_SERVICE_NOT_AVAILABLE", ( 0x80041322 )) +SCHED_E_SERVICE_TOO_BUSY = make_flag("SCHED_E_SERVICE_TOO_BUSY", ( 0x80041323 )) +SCHED_E_TASK_ATTEMPTED = make_flag("SCHED_E_TASK_ATTEMPTED", ( 0x80041324 )) +SCHED_S_TASK_QUEUED = make_flag("SCHED_S_TASK_QUEUED", ( 0x00041325 )) +SCHED_E_TASK_DISABLED = make_flag("SCHED_E_TASK_DISABLED", ( 0x80041326 )) +SCHED_E_TASK_NOT_V1_COMPAT = make_flag("SCHED_E_TASK_NOT_V1_COMPAT", ( 0x80041327 )) +SCHED_E_START_ON_DEMAND = make_flag("SCHED_E_START_ON_DEMAND", ( 0x80041328 )) +SCHED_E_TASK_NOT_UBPM_COMPAT = make_flag("SCHED_E_TASK_NOT_UBPM_COMPAT", ( 0x80041329 )) +SCHED_E_DEPRECATED_FEATURE_USED = make_flag("SCHED_E_DEPRECATED_FEATURE_USED", ( 0x80041330 )) +CO_E_CLASS_CREATE_FAILED = make_flag("CO_E_CLASS_CREATE_FAILED", ( 0x80080001 )) +CO_E_SCM_ERROR = make_flag("CO_E_SCM_ERROR", ( 0x80080002 )) +CO_E_SCM_RPC_FAILURE = make_flag("CO_E_SCM_RPC_FAILURE", ( 0x80080003 )) +CO_E_BAD_PATH = make_flag("CO_E_BAD_PATH", ( 0x80080004 )) +CO_E_SERVER_EXEC_FAILURE = make_flag("CO_E_SERVER_EXEC_FAILURE", ( 0x80080005 )) +CO_E_OBJSRV_RPC_FAILURE = make_flag("CO_E_OBJSRV_RPC_FAILURE", ( 0x80080006 )) +MK_E_NO_NORMALIZED = make_flag("MK_E_NO_NORMALIZED", ( 0x80080007 )) +CO_E_SERVER_STOPPING = make_flag("CO_E_SERVER_STOPPING", ( 0x80080008 )) +MEM_E_INVALID_ROOT = make_flag("MEM_E_INVALID_ROOT", ( 0x80080009 )) +MEM_E_INVALID_LINK = make_flag("MEM_E_INVALID_LINK", ( 0x80080010 )) +MEM_E_INVALID_SIZE = make_flag("MEM_E_INVALID_SIZE", ( 0x80080011 )) +CO_S_NOTALLINTERFACES = make_flag("CO_S_NOTALLINTERFACES", ( 0x00080012 )) +CO_S_MACHINENAMENOTFOUND = make_flag("CO_S_MACHINENAMENOTFOUND", ( 0x00080013 )) +CO_E_MISSING_DISPLAYNAME = make_flag("CO_E_MISSING_DISPLAYNAME", ( 0x80080015 )) +CO_E_RUNAS_VALUE_MUST_BE_AAA = make_flag("CO_E_RUNAS_VALUE_MUST_BE_AAA", ( 0x80080016 )) +CO_E_ELEVATION_DISABLED = make_flag("CO_E_ELEVATION_DISABLED", ( 0x80080017 )) +APPX_E_PACKAGING_INTERNAL = make_flag("APPX_E_PACKAGING_INTERNAL", ( 0x80080200 )) +APPX_E_INTERLEAVING_NOT_ALLOWED = make_flag("APPX_E_INTERLEAVING_NOT_ALLOWED", ( 0x80080201 )) +APPX_E_RELATIONSHIPS_NOT_ALLOWED = make_flag("APPX_E_RELATIONSHIPS_NOT_ALLOWED", ( 0x80080202 )) +APPX_E_MISSING_REQUIRED_FILE = make_flag("APPX_E_MISSING_REQUIRED_FILE", ( 0x80080203 )) +APPX_E_INVALID_MANIFEST = make_flag("APPX_E_INVALID_MANIFEST", ( 0x80080204 )) +APPX_E_INVALID_BLOCKMAP = make_flag("APPX_E_INVALID_BLOCKMAP", ( 0x80080205 )) +APPX_E_CORRUPT_CONTENT = make_flag("APPX_E_CORRUPT_CONTENT", ( 0x80080206 )) +APPX_E_BLOCK_HASH_INVALID = make_flag("APPX_E_BLOCK_HASH_INVALID", ( 0x80080207 )) +APPX_E_REQUESTED_RANGE_TOO_LARGE = make_flag("APPX_E_REQUESTED_RANGE_TOO_LARGE", ( 0x80080208 )) +APPX_E_INVALID_SIP_CLIENT_DATA = make_flag("APPX_E_INVALID_SIP_CLIENT_DATA", ( 0x80080209 )) +APPX_E_INVALID_KEY_INFO = make_flag("APPX_E_INVALID_KEY_INFO", ( 0x8008020A )) +APPX_E_INVALID_CONTENTGROUPMAP = make_flag("APPX_E_INVALID_CONTENTGROUPMAP", ( 0x8008020B )) +APPX_E_INVALID_APPINSTALLER = make_flag("APPX_E_INVALID_APPINSTALLER", ( 0x8008020C )) +APPX_E_DELTA_BASELINE_VERSION_MISMATCH = make_flag("APPX_E_DELTA_BASELINE_VERSION_MISMATCH", ( 0x8008020D )) +APPX_E_DELTA_PACKAGE_MISSING_FILE = make_flag("APPX_E_DELTA_PACKAGE_MISSING_FILE", ( 0x8008020E )) +APPX_E_INVALID_DELTA_PACKAGE = make_flag("APPX_E_INVALID_DELTA_PACKAGE", ( 0x8008020F )) +APPX_E_DELTA_APPENDED_PACKAGE_NOT_ALLOWED = make_flag("APPX_E_DELTA_APPENDED_PACKAGE_NOT_ALLOWED", ( 0x80080210 )) +APPX_E_INVALID_PACKAGING_LAYOUT = make_flag("APPX_E_INVALID_PACKAGING_LAYOUT", ( 0x80080211 )) +APPX_E_INVALID_PACKAGESIGNCONFIG = make_flag("APPX_E_INVALID_PACKAGESIGNCONFIG", ( 0x80080212 )) +APPX_E_RESOURCESPRI_NOT_ALLOWED = make_flag("APPX_E_RESOURCESPRI_NOT_ALLOWED", ( 0x80080213 )) +APPX_E_FILE_COMPRESSION_MISMATCH = make_flag("APPX_E_FILE_COMPRESSION_MISMATCH", ( 0x80080214 )) +APPX_E_INVALID_PAYLOAD_PACKAGE_EXTENSION = make_flag("APPX_E_INVALID_PAYLOAD_PACKAGE_EXTENSION", ( 0x80080215 )) +APPX_E_INVALID_ENCRYPTION_EXCLUSION_FILE_LIST = make_flag("APPX_E_INVALID_ENCRYPTION_EXCLUSION_FILE_LIST", ( 0x80080216 )) +BT_E_SPURIOUS_ACTIVATION = make_flag("BT_E_SPURIOUS_ACTIVATION", ( 0x80080300 )) +DISP_E_UNKNOWNINTERFACE = make_flag("DISP_E_UNKNOWNINTERFACE", ( 0x80020001 )) +DISP_E_MEMBERNOTFOUND = make_flag("DISP_E_MEMBERNOTFOUND", ( 0x80020003 )) +DISP_E_PARAMNOTFOUND = make_flag("DISP_E_PARAMNOTFOUND", ( 0x80020004 )) +DISP_E_TYPEMISMATCH = make_flag("DISP_E_TYPEMISMATCH", ( 0x80020005 )) +DISP_E_UNKNOWNNAME = make_flag("DISP_E_UNKNOWNNAME", ( 0x80020006 )) +DISP_E_NONAMEDARGS = make_flag("DISP_E_NONAMEDARGS", ( 0x80020007 )) +DISP_E_BADVARTYPE = make_flag("DISP_E_BADVARTYPE", ( 0x80020008 )) +DISP_E_EXCEPTION = make_flag("DISP_E_EXCEPTION", ( 0x80020009 )) +DISP_E_OVERFLOW = make_flag("DISP_E_OVERFLOW", ( 0x8002000A )) +DISP_E_BADINDEX = make_flag("DISP_E_BADINDEX", ( 0x8002000B )) +DISP_E_UNKNOWNLCID = make_flag("DISP_E_UNKNOWNLCID", ( 0x8002000C )) +DISP_E_ARRAYISLOCKED = make_flag("DISP_E_ARRAYISLOCKED", ( 0x8002000D )) +DISP_E_BADPARAMCOUNT = make_flag("DISP_E_BADPARAMCOUNT", ( 0x8002000E )) +DISP_E_PARAMNOTOPTIONAL = make_flag("DISP_E_PARAMNOTOPTIONAL", ( 0x8002000F )) +DISP_E_BADCALLEE = make_flag("DISP_E_BADCALLEE", ( 0x80020010 )) +DISP_E_NOTACOLLECTION = make_flag("DISP_E_NOTACOLLECTION", ( 0x80020011 )) +DISP_E_DIVBYZERO = make_flag("DISP_E_DIVBYZERO", ( 0x80020012 )) +DISP_E_BUFFERTOOSMALL = make_flag("DISP_E_BUFFERTOOSMALL", ( 0x80020013 )) +TYPE_E_BUFFERTOOSMALL = make_flag("TYPE_E_BUFFERTOOSMALL", ( 0x80028016 )) +TYPE_E_FIELDNOTFOUND = make_flag("TYPE_E_FIELDNOTFOUND", ( 0x80028017 )) +TYPE_E_INVDATAREAD = make_flag("TYPE_E_INVDATAREAD", ( 0x80028018 )) +TYPE_E_UNSUPFORMAT = make_flag("TYPE_E_UNSUPFORMAT", ( 0x80028019 )) +TYPE_E_REGISTRYACCESS = make_flag("TYPE_E_REGISTRYACCESS", ( 0x8002801C )) +TYPE_E_LIBNOTREGISTERED = make_flag("TYPE_E_LIBNOTREGISTERED", ( 0x8002801D )) +TYPE_E_UNDEFINEDTYPE = make_flag("TYPE_E_UNDEFINEDTYPE", ( 0x80028027 )) +TYPE_E_QUALIFIEDNAMEDISALLOWED = make_flag("TYPE_E_QUALIFIEDNAMEDISALLOWED", ( 0x80028028 )) +TYPE_E_INVALIDSTATE = make_flag("TYPE_E_INVALIDSTATE", ( 0x80028029 )) +TYPE_E_WRONGTYPEKIND = make_flag("TYPE_E_WRONGTYPEKIND", ( 0x8002802A )) +TYPE_E_ELEMENTNOTFOUND = make_flag("TYPE_E_ELEMENTNOTFOUND", ( 0x8002802B )) +TYPE_E_AMBIGUOUSNAME = make_flag("TYPE_E_AMBIGUOUSNAME", ( 0x8002802C )) +TYPE_E_NAMECONFLICT = make_flag("TYPE_E_NAMECONFLICT", ( 0x8002802D )) +TYPE_E_UNKNOWNLCID = make_flag("TYPE_E_UNKNOWNLCID", ( 0x8002802E )) +TYPE_E_DLLFUNCTIONNOTFOUND = make_flag("TYPE_E_DLLFUNCTIONNOTFOUND", ( 0x8002802F )) +TYPE_E_BADMODULEKIND = make_flag("TYPE_E_BADMODULEKIND", ( 0x800288BD )) +TYPE_E_SIZETOOBIG = make_flag("TYPE_E_SIZETOOBIG", ( 0x800288C5 )) +TYPE_E_DUPLICATEID = make_flag("TYPE_E_DUPLICATEID", ( 0x800288C6 )) +TYPE_E_INVALIDID = make_flag("TYPE_E_INVALIDID", ( 0x800288CF )) +TYPE_E_TYPEMISMATCH = make_flag("TYPE_E_TYPEMISMATCH", ( 0x80028CA0 )) +TYPE_E_OUTOFBOUNDS = make_flag("TYPE_E_OUTOFBOUNDS", ( 0x80028CA1 )) +TYPE_E_IOERROR = make_flag("TYPE_E_IOERROR", ( 0x80028CA2 )) +TYPE_E_CANTCREATETMPFILE = make_flag("TYPE_E_CANTCREATETMPFILE", ( 0x80028CA3 )) +TYPE_E_CANTLOADLIBRARY = make_flag("TYPE_E_CANTLOADLIBRARY", ( 0x80029C4A )) +TYPE_E_INCONSISTENTPROPFUNCS = make_flag("TYPE_E_INCONSISTENTPROPFUNCS", ( 0x80029C83 )) +TYPE_E_CIRCULARTYPE = make_flag("TYPE_E_CIRCULARTYPE", ( 0x80029C84 )) +STG_E_INVALIDFUNCTION = make_flag("STG_E_INVALIDFUNCTION", ( 0x80030001 )) +STG_E_FILENOTFOUND = make_flag("STG_E_FILENOTFOUND", ( 0x80030002 )) +STG_E_PATHNOTFOUND = make_flag("STG_E_PATHNOTFOUND", ( 0x80030003 )) +STG_E_TOOMANYOPENFILES = make_flag("STG_E_TOOMANYOPENFILES", ( 0x80030004 )) +STG_E_ACCESSDENIED = make_flag("STG_E_ACCESSDENIED", ( 0x80030005 )) +STG_E_INVALIDHANDLE = make_flag("STG_E_INVALIDHANDLE", ( 0x80030006 )) +STG_E_INSUFFICIENTMEMORY = make_flag("STG_E_INSUFFICIENTMEMORY", ( 0x80030008 )) +STG_E_INVALIDPOINTER = make_flag("STG_E_INVALIDPOINTER", ( 0x80030009 )) +STG_E_NOMOREFILES = make_flag("STG_E_NOMOREFILES", ( 0x80030012 )) +STG_E_DISKISWRITEPROTECTED = make_flag("STG_E_DISKISWRITEPROTECTED", ( 0x80030013 )) +STG_E_SEEKERROR = make_flag("STG_E_SEEKERROR", ( 0x80030019 )) +STG_E_WRITEFAULT = make_flag("STG_E_WRITEFAULT", ( 0x8003001D )) +STG_E_READFAULT = make_flag("STG_E_READFAULT", ( 0x8003001E )) +STG_E_SHAREVIOLATION = make_flag("STG_E_SHAREVIOLATION", ( 0x80030020 )) +STG_E_LOCKVIOLATION = make_flag("STG_E_LOCKVIOLATION", ( 0x80030021 )) +STG_E_FILEALREADYEXISTS = make_flag("STG_E_FILEALREADYEXISTS", ( 0x80030050 )) +STG_E_INVALIDPARAMETER = make_flag("STG_E_INVALIDPARAMETER", ( 0x80030057 )) +STG_E_MEDIUMFULL = make_flag("STG_E_MEDIUMFULL", ( 0x80030070 )) +STG_E_PROPSETMISMATCHED = make_flag("STG_E_PROPSETMISMATCHED", ( 0x800300F0 )) +STG_E_ABNORMALAPIEXIT = make_flag("STG_E_ABNORMALAPIEXIT", ( 0x800300FA )) +STG_E_INVALIDHEADER = make_flag("STG_E_INVALIDHEADER", ( 0x800300FB )) +STG_E_INVALIDNAME = make_flag("STG_E_INVALIDNAME", ( 0x800300FC )) +STG_E_UNKNOWN = make_flag("STG_E_UNKNOWN", ( 0x800300FD )) +STG_E_UNIMPLEMENTEDFUNCTION = make_flag("STG_E_UNIMPLEMENTEDFUNCTION", ( 0x800300FE )) +STG_E_INVALIDFLAG = make_flag("STG_E_INVALIDFLAG", ( 0x800300FF )) +STG_E_INUSE = make_flag("STG_E_INUSE", ( 0x80030100 )) +STG_E_NOTCURRENT = make_flag("STG_E_NOTCURRENT", ( 0x80030101 )) +STG_E_REVERTED = make_flag("STG_E_REVERTED", ( 0x80030102 )) +STG_E_CANTSAVE = make_flag("STG_E_CANTSAVE", ( 0x80030103 )) +STG_E_OLDFORMAT = make_flag("STG_E_OLDFORMAT", ( 0x80030104 )) +STG_E_OLDDLL = make_flag("STG_E_OLDDLL", ( 0x80030105 )) +STG_E_SHAREREQUIRED = make_flag("STG_E_SHAREREQUIRED", ( 0x80030106 )) +STG_E_NOTFILEBASEDSTORAGE = make_flag("STG_E_NOTFILEBASEDSTORAGE", ( 0x80030107 )) +STG_E_EXTANTMARSHALLINGS = make_flag("STG_E_EXTANTMARSHALLINGS", ( 0x80030108 )) +STG_E_DOCFILECORRUPT = make_flag("STG_E_DOCFILECORRUPT", ( 0x80030109 )) +STG_E_BADBASEADDRESS = make_flag("STG_E_BADBASEADDRESS", ( 0x80030110 )) +STG_E_DOCFILETOOLARGE = make_flag("STG_E_DOCFILETOOLARGE", ( 0x80030111 )) +STG_E_NOTSIMPLEFORMAT = make_flag("STG_E_NOTSIMPLEFORMAT", ( 0x80030112 )) +STG_E_INCOMPLETE = make_flag("STG_E_INCOMPLETE", ( 0x80030201 )) +STG_E_TERMINATED = make_flag("STG_E_TERMINATED", ( 0x80030202 )) +STG_S_CONVERTED = make_flag("STG_S_CONVERTED", ( 0x00030200 )) +STG_S_BLOCK = make_flag("STG_S_BLOCK", ( 0x00030201 )) +STG_S_RETRYNOW = make_flag("STG_S_RETRYNOW", ( 0x00030202 )) +STG_S_MONITORING = make_flag("STG_S_MONITORING", ( 0x00030203 )) +STG_S_MULTIPLEOPENS = make_flag("STG_S_MULTIPLEOPENS", ( 0x00030204 )) +STG_S_CONSOLIDATIONFAILED = make_flag("STG_S_CONSOLIDATIONFAILED", ( 0x00030205 )) +STG_S_CANNOTCONSOLIDATE = make_flag("STG_S_CANNOTCONSOLIDATE", ( 0x00030206 )) +STG_S_POWER_CYCLE_REQUIRED = make_flag("STG_S_POWER_CYCLE_REQUIRED", ( 0x00030207 )) +STG_E_FIRMWARE_SLOT_INVALID = make_flag("STG_E_FIRMWARE_SLOT_INVALID", ( 0x80030208 )) +STG_E_FIRMWARE_IMAGE_INVALID = make_flag("STG_E_FIRMWARE_IMAGE_INVALID", ( 0x80030209 )) +STG_E_DEVICE_UNRESPONSIVE = make_flag("STG_E_DEVICE_UNRESPONSIVE", ( 0x8003020A )) +STG_E_STATUS_COPY_PROTECTION_FAILURE = make_flag("STG_E_STATUS_COPY_PROTECTION_FAILURE", ( 0x80030305 )) +STG_E_CSS_AUTHENTICATION_FAILURE = make_flag("STG_E_CSS_AUTHENTICATION_FAILURE", ( 0x80030306 )) +STG_E_CSS_KEY_NOT_PRESENT = make_flag("STG_E_CSS_KEY_NOT_PRESENT", ( 0x80030307 )) +STG_E_CSS_KEY_NOT_ESTABLISHED = make_flag("STG_E_CSS_KEY_NOT_ESTABLISHED", ( 0x80030308 )) +STG_E_CSS_SCRAMBLED_SECTOR = make_flag("STG_E_CSS_SCRAMBLED_SECTOR", ( 0x80030309 )) +STG_E_CSS_REGION_MISMATCH = make_flag("STG_E_CSS_REGION_MISMATCH", ( 0x8003030A )) +STG_E_RESETS_EXHAUSTED = make_flag("STG_E_RESETS_EXHAUSTED", ( 0x8003030B )) +RPC_E_CALL_REJECTED = make_flag("RPC_E_CALL_REJECTED", ( 0x80010001 )) +RPC_E_CALL_CANCELED = make_flag("RPC_E_CALL_CANCELED", ( 0x80010002 )) +RPC_E_CANTPOST_INSENDCALL = make_flag("RPC_E_CANTPOST_INSENDCALL", ( 0x80010003 )) +RPC_E_CANTCALLOUT_INASYNCCALL = make_flag("RPC_E_CANTCALLOUT_INASYNCCALL", ( 0x80010004 )) +RPC_E_CANTCALLOUT_INEXTERNALCALL = make_flag("RPC_E_CANTCALLOUT_INEXTERNALCALL", ( 0x80010005 )) +RPC_E_CONNECTION_TERMINATED = make_flag("RPC_E_CONNECTION_TERMINATED", ( 0x80010006 )) +RPC_E_SERVER_DIED = make_flag("RPC_E_SERVER_DIED", ( 0x80010007 )) +RPC_E_CLIENT_DIED = make_flag("RPC_E_CLIENT_DIED", ( 0x80010008 )) +RPC_E_INVALID_DATAPACKET = make_flag("RPC_E_INVALID_DATAPACKET", ( 0x80010009 )) +RPC_E_CANTTRANSMIT_CALL = make_flag("RPC_E_CANTTRANSMIT_CALL", ( 0x8001000A )) +RPC_E_CLIENT_CANTMARSHAL_DATA = make_flag("RPC_E_CLIENT_CANTMARSHAL_DATA", ( 0x8001000B )) +RPC_E_CLIENT_CANTUNMARSHAL_DATA = make_flag("RPC_E_CLIENT_CANTUNMARSHAL_DATA", ( 0x8001000C )) +RPC_E_SERVER_CANTMARSHAL_DATA = make_flag("RPC_E_SERVER_CANTMARSHAL_DATA", ( 0x8001000D )) +RPC_E_SERVER_CANTUNMARSHAL_DATA = make_flag("RPC_E_SERVER_CANTUNMARSHAL_DATA", ( 0x8001000E )) +RPC_E_INVALID_DATA = make_flag("RPC_E_INVALID_DATA", ( 0x8001000F )) +RPC_E_INVALID_PARAMETER = make_flag("RPC_E_INVALID_PARAMETER", ( 0x80010010 )) +RPC_E_CANTCALLOUT_AGAIN = make_flag("RPC_E_CANTCALLOUT_AGAIN", ( 0x80010011 )) +RPC_E_SERVER_DIED_DNE = make_flag("RPC_E_SERVER_DIED_DNE", ( 0x80010012 )) +RPC_E_SYS_CALL_FAILED = make_flag("RPC_E_SYS_CALL_FAILED", ( 0x80010100 )) +RPC_E_OUT_OF_RESOURCES = make_flag("RPC_E_OUT_OF_RESOURCES", ( 0x80010101 )) +RPC_E_ATTEMPTED_MULTITHREAD = make_flag("RPC_E_ATTEMPTED_MULTITHREAD", ( 0x80010102 )) +RPC_E_NOT_REGISTERED = make_flag("RPC_E_NOT_REGISTERED", ( 0x80010103 )) +RPC_E_FAULT = make_flag("RPC_E_FAULT", ( 0x80010104 )) +RPC_E_SERVERFAULT = make_flag("RPC_E_SERVERFAULT", ( 0x80010105 )) +RPC_E_CHANGED_MODE = make_flag("RPC_E_CHANGED_MODE", ( 0x80010106 )) +RPC_E_INVALIDMETHOD = make_flag("RPC_E_INVALIDMETHOD", ( 0x80010107 )) +RPC_E_DISCONNECTED = make_flag("RPC_E_DISCONNECTED", ( 0x80010108 )) +RPC_E_RETRY = make_flag("RPC_E_RETRY", ( 0x80010109 )) +RPC_E_SERVERCALL_RETRYLATER = make_flag("RPC_E_SERVERCALL_RETRYLATER", ( 0x8001010A )) +RPC_E_SERVERCALL_REJECTED = make_flag("RPC_E_SERVERCALL_REJECTED", ( 0x8001010B )) +RPC_E_INVALID_CALLDATA = make_flag("RPC_E_INVALID_CALLDATA", ( 0x8001010C )) +RPC_E_CANTCALLOUT_ININPUTSYNCCALL = make_flag("RPC_E_CANTCALLOUT_ININPUTSYNCCALL", ( 0x8001010D )) +RPC_E_WRONG_THREAD = make_flag("RPC_E_WRONG_THREAD", ( 0x8001010E )) +RPC_E_THREAD_NOT_INIT = make_flag("RPC_E_THREAD_NOT_INIT", ( 0x8001010F )) +RPC_E_VERSION_MISMATCH = make_flag("RPC_E_VERSION_MISMATCH", ( 0x80010110 )) +RPC_E_INVALID_HEADER = make_flag("RPC_E_INVALID_HEADER", ( 0x80010111 )) +RPC_E_INVALID_EXTENSION = make_flag("RPC_E_INVALID_EXTENSION", ( 0x80010112 )) +RPC_E_INVALID_IPID = make_flag("RPC_E_INVALID_IPID", ( 0x80010113 )) +RPC_E_INVALID_OBJECT = make_flag("RPC_E_INVALID_OBJECT", ( 0x80010114 )) +RPC_S_CALLPENDING = make_flag("RPC_S_CALLPENDING", ( 0x80010115 )) +RPC_S_WAITONTIMER = make_flag("RPC_S_WAITONTIMER", ( 0x80010116 )) +RPC_E_CALL_COMPLETE = make_flag("RPC_E_CALL_COMPLETE", ( 0x80010117 )) +RPC_E_UNSECURE_CALL = make_flag("RPC_E_UNSECURE_CALL", ( 0x80010118 )) +RPC_E_TOO_LATE = make_flag("RPC_E_TOO_LATE", ( 0x80010119 )) +RPC_E_NO_GOOD_SECURITY_PACKAGES = make_flag("RPC_E_NO_GOOD_SECURITY_PACKAGES", ( 0x8001011A )) +RPC_E_ACCESS_DENIED = make_flag("RPC_E_ACCESS_DENIED", ( 0x8001011B )) +RPC_E_REMOTE_DISABLED = make_flag("RPC_E_REMOTE_DISABLED", ( 0x8001011C )) +RPC_E_INVALID_OBJREF = make_flag("RPC_E_INVALID_OBJREF", ( 0x8001011D )) +RPC_E_NO_CONTEXT = make_flag("RPC_E_NO_CONTEXT", ( 0x8001011E )) +RPC_E_TIMEOUT = make_flag("RPC_E_TIMEOUT", ( 0x8001011F )) +RPC_E_NO_SYNC = make_flag("RPC_E_NO_SYNC", ( 0x80010120 )) +RPC_E_FULLSIC_REQUIRED = make_flag("RPC_E_FULLSIC_REQUIRED", ( 0x80010121 )) +RPC_E_INVALID_STD_NAME = make_flag("RPC_E_INVALID_STD_NAME", ( 0x80010122 )) +CO_E_FAILEDTOIMPERSONATE = make_flag("CO_E_FAILEDTOIMPERSONATE", ( 0x80010123 )) +CO_E_FAILEDTOGETSECCTX = make_flag("CO_E_FAILEDTOGETSECCTX", ( 0x80010124 )) +CO_E_FAILEDTOOPENTHREADTOKEN = make_flag("CO_E_FAILEDTOOPENTHREADTOKEN", ( 0x80010125 )) +CO_E_FAILEDTOGETTOKENINFO = make_flag("CO_E_FAILEDTOGETTOKENINFO", ( 0x80010126 )) +CO_E_TRUSTEEDOESNTMATCHCLIENT = make_flag("CO_E_TRUSTEEDOESNTMATCHCLIENT", ( 0x80010127 )) +CO_E_FAILEDTOQUERYCLIENTBLANKET = make_flag("CO_E_FAILEDTOQUERYCLIENTBLANKET", ( 0x80010128 )) +CO_E_FAILEDTOSETDACL = make_flag("CO_E_FAILEDTOSETDACL", ( 0x80010129 )) +CO_E_ACCESSCHECKFAILED = make_flag("CO_E_ACCESSCHECKFAILED", ( 0x8001012A )) +CO_E_NETACCESSAPIFAILED = make_flag("CO_E_NETACCESSAPIFAILED", ( 0x8001012B )) +CO_E_WRONGTRUSTEENAMESYNTAX = make_flag("CO_E_WRONGTRUSTEENAMESYNTAX", ( 0x8001012C )) +CO_E_INVALIDSID = make_flag("CO_E_INVALIDSID", ( 0x8001012D )) +CO_E_CONVERSIONFAILED = make_flag("CO_E_CONVERSIONFAILED", ( 0x8001012E )) +CO_E_NOMATCHINGSIDFOUND = make_flag("CO_E_NOMATCHINGSIDFOUND", ( 0x8001012F )) +CO_E_LOOKUPACCSIDFAILED = make_flag("CO_E_LOOKUPACCSIDFAILED", ( 0x80010130 )) +CO_E_NOMATCHINGNAMEFOUND = make_flag("CO_E_NOMATCHINGNAMEFOUND", ( 0x80010131 )) +CO_E_LOOKUPACCNAMEFAILED = make_flag("CO_E_LOOKUPACCNAMEFAILED", ( 0x80010132 )) +CO_E_SETSERLHNDLFAILED = make_flag("CO_E_SETSERLHNDLFAILED", ( 0x80010133 )) +CO_E_FAILEDTOGETWINDIR = make_flag("CO_E_FAILEDTOGETWINDIR", ( 0x80010134 )) +CO_E_PATHTOOLONG = make_flag("CO_E_PATHTOOLONG", ( 0x80010135 )) +CO_E_FAILEDTOGENUUID = make_flag("CO_E_FAILEDTOGENUUID", ( 0x80010136 )) +CO_E_FAILEDTOCREATEFILE = make_flag("CO_E_FAILEDTOCREATEFILE", ( 0x80010137 )) +CO_E_FAILEDTOCLOSEHANDLE = make_flag("CO_E_FAILEDTOCLOSEHANDLE", ( 0x80010138 )) +CO_E_EXCEEDSYSACLLIMIT = make_flag("CO_E_EXCEEDSYSACLLIMIT", ( 0x80010139 )) +CO_E_ACESINWRONGORDER = make_flag("CO_E_ACESINWRONGORDER", ( 0x8001013A )) +CO_E_INCOMPATIBLESTREAMVERSION = make_flag("CO_E_INCOMPATIBLESTREAMVERSION", ( 0x8001013B )) +CO_E_FAILEDTOOPENPROCESSTOKEN = make_flag("CO_E_FAILEDTOOPENPROCESSTOKEN", ( 0x8001013C )) +CO_E_DECODEFAILED = make_flag("CO_E_DECODEFAILED", ( 0x8001013D )) +CO_E_ACNOTINITIALIZED = make_flag("CO_E_ACNOTINITIALIZED", ( 0x8001013F )) +CO_E_CANCEL_DISABLED = make_flag("CO_E_CANCEL_DISABLED", ( 0x80010140 )) +RPC_E_UNEXPECTED = make_flag("RPC_E_UNEXPECTED", ( 0x8001FFFF )) +ERROR_AUDITING_DISABLED = make_flag("ERROR_AUDITING_DISABLED", ( 0xC0090001 )) +ERROR_ALL_SIDS_FILTERED = make_flag("ERROR_ALL_SIDS_FILTERED", ( 0xC0090002 )) +ERROR_BIZRULES_NOT_ENABLED = make_flag("ERROR_BIZRULES_NOT_ENABLED", ( 0xC0090003 )) +NTE_BAD_UID = make_flag("NTE_BAD_UID", ( 0x80090001 )) +NTE_BAD_HASH = make_flag("NTE_BAD_HASH", ( 0x80090002 )) +NTE_BAD_KEY = make_flag("NTE_BAD_KEY", ( 0x80090003 )) +NTE_BAD_LEN = make_flag("NTE_BAD_LEN", ( 0x80090004 )) +NTE_BAD_DATA = make_flag("NTE_BAD_DATA", ( 0x80090005 )) +NTE_BAD_SIGNATURE = make_flag("NTE_BAD_SIGNATURE", ( 0x80090006 )) +NTE_BAD_VER = make_flag("NTE_BAD_VER", ( 0x80090007 )) +NTE_BAD_ALGID = make_flag("NTE_BAD_ALGID", ( 0x80090008 )) +NTE_BAD_FLAGS = make_flag("NTE_BAD_FLAGS", ( 0x80090009 )) +NTE_BAD_TYPE = make_flag("NTE_BAD_TYPE", ( 0x8009000A )) +NTE_BAD_KEY_STATE = make_flag("NTE_BAD_KEY_STATE", ( 0x8009000B )) +NTE_BAD_HASH_STATE = make_flag("NTE_BAD_HASH_STATE", ( 0x8009000C )) +NTE_NO_KEY = make_flag("NTE_NO_KEY", ( 0x8009000D )) +NTE_NO_MEMORY = make_flag("NTE_NO_MEMORY", ( 0x8009000E )) +NTE_EXISTS = make_flag("NTE_EXISTS", ( 0x8009000F )) +NTE_PERM = make_flag("NTE_PERM", ( 0x80090010 )) +NTE_NOT_FOUND = make_flag("NTE_NOT_FOUND", ( 0x80090011 )) +NTE_DOUBLE_ENCRYPT = make_flag("NTE_DOUBLE_ENCRYPT", ( 0x80090012 )) +NTE_BAD_PROVIDER = make_flag("NTE_BAD_PROVIDER", ( 0x80090013 )) +NTE_BAD_PROV_TYPE = make_flag("NTE_BAD_PROV_TYPE", ( 0x80090014 )) +NTE_BAD_PUBLIC_KEY = make_flag("NTE_BAD_PUBLIC_KEY", ( 0x80090015 )) +NTE_BAD_KEYSET = make_flag("NTE_BAD_KEYSET", ( 0x80090016 )) +NTE_PROV_TYPE_NOT_DEF = make_flag("NTE_PROV_TYPE_NOT_DEF", ( 0x80090017 )) +NTE_PROV_TYPE_ENTRY_BAD = make_flag("NTE_PROV_TYPE_ENTRY_BAD", ( 0x80090018 )) +NTE_KEYSET_NOT_DEF = make_flag("NTE_KEYSET_NOT_DEF", ( 0x80090019 )) +NTE_KEYSET_ENTRY_BAD = make_flag("NTE_KEYSET_ENTRY_BAD", ( 0x8009001A )) +NTE_PROV_TYPE_NO_MATCH = make_flag("NTE_PROV_TYPE_NO_MATCH", ( 0x8009001B )) +NTE_SIGNATURE_FILE_BAD = make_flag("NTE_SIGNATURE_FILE_BAD", ( 0x8009001C )) +NTE_PROVIDER_DLL_FAIL = make_flag("NTE_PROVIDER_DLL_FAIL", ( 0x8009001D )) +NTE_PROV_DLL_NOT_FOUND = make_flag("NTE_PROV_DLL_NOT_FOUND", ( 0x8009001E )) +NTE_BAD_KEYSET_PARAM = make_flag("NTE_BAD_KEYSET_PARAM", ( 0x8009001F )) +NTE_FAIL = make_flag("NTE_FAIL", ( 0x80090020 )) +NTE_SYS_ERR = make_flag("NTE_SYS_ERR", ( 0x80090021 )) +NTE_SILENT_CONTEXT = make_flag("NTE_SILENT_CONTEXT", ( 0x80090022 )) +NTE_TOKEN_KEYSET_STORAGE_FULL = make_flag("NTE_TOKEN_KEYSET_STORAGE_FULL", ( 0x80090023 )) +NTE_TEMPORARY_PROFILE = make_flag("NTE_TEMPORARY_PROFILE", ( 0x80090024 )) +NTE_FIXEDPARAMETER = make_flag("NTE_FIXEDPARAMETER", ( 0x80090025 )) +NTE_INVALID_HANDLE = make_flag("NTE_INVALID_HANDLE", ( 0x80090026 )) +NTE_INVALID_PARAMETER = make_flag("NTE_INVALID_PARAMETER", ( 0x80090027 )) +NTE_BUFFER_TOO_SMALL = make_flag("NTE_BUFFER_TOO_SMALL", ( 0x80090028 )) +NTE_NOT_SUPPORTED = make_flag("NTE_NOT_SUPPORTED", ( 0x80090029 )) +NTE_NO_MORE_ITEMS = make_flag("NTE_NO_MORE_ITEMS", ( 0x8009002A )) +NTE_BUFFERS_OVERLAP = make_flag("NTE_BUFFERS_OVERLAP", ( 0x8009002B )) +NTE_DECRYPTION_FAILURE = make_flag("NTE_DECRYPTION_FAILURE", ( 0x8009002C )) +NTE_INTERNAL_ERROR = make_flag("NTE_INTERNAL_ERROR", ( 0x8009002D )) +NTE_UI_REQUIRED = make_flag("NTE_UI_REQUIRED", ( 0x8009002E )) +NTE_HMAC_NOT_SUPPORTED = make_flag("NTE_HMAC_NOT_SUPPORTED", ( 0x8009002F )) +NTE_DEVICE_NOT_READY = make_flag("NTE_DEVICE_NOT_READY", ( 0x80090030 )) +NTE_AUTHENTICATION_IGNORED = make_flag("NTE_AUTHENTICATION_IGNORED", ( 0x80090031 )) +NTE_VALIDATION_FAILED = make_flag("NTE_VALIDATION_FAILED", ( 0x80090032 )) +NTE_INCORRECT_PASSWORD = make_flag("NTE_INCORRECT_PASSWORD", ( 0x80090033 )) +NTE_ENCRYPTION_FAILURE = make_flag("NTE_ENCRYPTION_FAILURE", ( 0x80090034 )) +NTE_DEVICE_NOT_FOUND = make_flag("NTE_DEVICE_NOT_FOUND", ( 0x80090035 )) +NTE_USER_CANCELLED = make_flag("NTE_USER_CANCELLED", ( 0x80090036 )) +NTE_PASSWORD_CHANGE_REQUIRED = make_flag("NTE_PASSWORD_CHANGE_REQUIRED", ( 0x80090037 )) +NTE_NOT_ACTIVE_CONSOLE = make_flag("NTE_NOT_ACTIVE_CONSOLE", ( 0x80090038 )) +SEC_E_INSUFFICIENT_MEMORY = make_flag("SEC_E_INSUFFICIENT_MEMORY", ( 0x80090300 )) +SEC_E_INVALID_HANDLE = make_flag("SEC_E_INVALID_HANDLE", ( 0x80090301 )) +SEC_E_UNSUPPORTED_FUNCTION = make_flag("SEC_E_UNSUPPORTED_FUNCTION", ( 0x80090302 )) +SEC_E_TARGET_UNKNOWN = make_flag("SEC_E_TARGET_UNKNOWN", ( 0x80090303 )) +SEC_E_INTERNAL_ERROR = make_flag("SEC_E_INTERNAL_ERROR", ( 0x80090304 )) +SEC_E_SECPKG_NOT_FOUND = make_flag("SEC_E_SECPKG_NOT_FOUND", ( 0x80090305 )) +SEC_E_NOT_OWNER = make_flag("SEC_E_NOT_OWNER", ( 0x80090306 )) +SEC_E_CANNOT_INSTALL = make_flag("SEC_E_CANNOT_INSTALL", ( 0x80090307 )) +SEC_E_INVALID_TOKEN = make_flag("SEC_E_INVALID_TOKEN", ( 0x80090308 )) +SEC_E_CANNOT_PACK = make_flag("SEC_E_CANNOT_PACK", ( 0x80090309 )) +SEC_E_QOP_NOT_SUPPORTED = make_flag("SEC_E_QOP_NOT_SUPPORTED", ( 0x8009030A )) +SEC_E_NO_IMPERSONATION = make_flag("SEC_E_NO_IMPERSONATION", ( 0x8009030B )) +SEC_E_LOGON_DENIED = make_flag("SEC_E_LOGON_DENIED", ( 0x8009030C )) +SEC_E_UNKNOWN_CREDENTIALS = make_flag("SEC_E_UNKNOWN_CREDENTIALS", ( 0x8009030D )) +SEC_E_NO_CREDENTIALS = make_flag("SEC_E_NO_CREDENTIALS", ( 0x8009030E )) +SEC_E_MESSAGE_ALTERED = make_flag("SEC_E_MESSAGE_ALTERED", ( 0x8009030F )) +SEC_E_OUT_OF_SEQUENCE = make_flag("SEC_E_OUT_OF_SEQUENCE", ( 0x80090310 )) +SEC_E_NO_AUTHENTICATING_AUTHORITY = make_flag("SEC_E_NO_AUTHENTICATING_AUTHORITY", ( 0x80090311 )) +SEC_I_CONTINUE_NEEDED = make_flag("SEC_I_CONTINUE_NEEDED", ( 0x00090312 )) +SEC_I_COMPLETE_NEEDED = make_flag("SEC_I_COMPLETE_NEEDED", ( 0x00090313 )) +SEC_I_COMPLETE_AND_CONTINUE = make_flag("SEC_I_COMPLETE_AND_CONTINUE", ( 0x00090314 )) +SEC_I_LOCAL_LOGON = make_flag("SEC_I_LOCAL_LOGON", ( 0x00090315 )) +SEC_I_GENERIC_EXTENSION_RECEIVED = make_flag("SEC_I_GENERIC_EXTENSION_RECEIVED", ( 0x00090316 )) +SEC_E_BAD_PKGID = make_flag("SEC_E_BAD_PKGID", ( 0x80090316 )) +SEC_E_CONTEXT_EXPIRED = make_flag("SEC_E_CONTEXT_EXPIRED", ( 0x80090317 )) +SEC_I_CONTEXT_EXPIRED = make_flag("SEC_I_CONTEXT_EXPIRED", ( 0x00090317 )) +SEC_E_INCOMPLETE_MESSAGE = make_flag("SEC_E_INCOMPLETE_MESSAGE", ( 0x80090318 )) +SEC_E_INCOMPLETE_CREDENTIALS = make_flag("SEC_E_INCOMPLETE_CREDENTIALS", ( 0x80090320 )) +SEC_E_BUFFER_TOO_SMALL = make_flag("SEC_E_BUFFER_TOO_SMALL", ( 0x80090321 )) +SEC_I_INCOMPLETE_CREDENTIALS = make_flag("SEC_I_INCOMPLETE_CREDENTIALS", ( 0x00090320 )) +SEC_I_RENEGOTIATE = make_flag("SEC_I_RENEGOTIATE", ( 0x00090321 )) +SEC_E_WRONG_PRINCIPAL = make_flag("SEC_E_WRONG_PRINCIPAL", ( 0x80090322 )) +SEC_I_NO_LSA_CONTEXT = make_flag("SEC_I_NO_LSA_CONTEXT", ( 0x00090323 )) +SEC_E_TIME_SKEW = make_flag("SEC_E_TIME_SKEW", ( 0x80090324 )) +SEC_E_UNTRUSTED_ROOT = make_flag("SEC_E_UNTRUSTED_ROOT", ( 0x80090325 )) +SEC_E_ILLEGAL_MESSAGE = make_flag("SEC_E_ILLEGAL_MESSAGE", ( 0x80090326 )) +SEC_E_CERT_UNKNOWN = make_flag("SEC_E_CERT_UNKNOWN", ( 0x80090327 )) +SEC_E_CERT_EXPIRED = make_flag("SEC_E_CERT_EXPIRED", ( 0x80090328 )) +SEC_E_ENCRYPT_FAILURE = make_flag("SEC_E_ENCRYPT_FAILURE", ( 0x80090329 )) +SEC_E_DECRYPT_FAILURE = make_flag("SEC_E_DECRYPT_FAILURE", ( 0x80090330 )) +SEC_E_ALGORITHM_MISMATCH = make_flag("SEC_E_ALGORITHM_MISMATCH", ( 0x80090331 )) +SEC_E_SECURITY_QOS_FAILED = make_flag("SEC_E_SECURITY_QOS_FAILED", ( 0x80090332 )) +SEC_E_UNFINISHED_CONTEXT_DELETED = make_flag("SEC_E_UNFINISHED_CONTEXT_DELETED", ( 0x80090333 )) +SEC_E_NO_TGT_REPLY = make_flag("SEC_E_NO_TGT_REPLY", ( 0x80090334 )) +SEC_E_NO_IP_ADDRESSES = make_flag("SEC_E_NO_IP_ADDRESSES", ( 0x80090335 )) +SEC_E_WRONG_CREDENTIAL_HANDLE = make_flag("SEC_E_WRONG_CREDENTIAL_HANDLE", ( 0x80090336 )) +SEC_E_CRYPTO_SYSTEM_INVALID = make_flag("SEC_E_CRYPTO_SYSTEM_INVALID", ( 0x80090337 )) +SEC_E_MAX_REFERRALS_EXCEEDED = make_flag("SEC_E_MAX_REFERRALS_EXCEEDED", ( 0x80090338 )) +SEC_E_MUST_BE_KDC = make_flag("SEC_E_MUST_BE_KDC", ( 0x80090339 )) +SEC_E_STRONG_CRYPTO_NOT_SUPPORTED = make_flag("SEC_E_STRONG_CRYPTO_NOT_SUPPORTED", ( 0x8009033A )) +SEC_E_TOO_MANY_PRINCIPALS = make_flag("SEC_E_TOO_MANY_PRINCIPALS", ( 0x8009033B )) +SEC_E_NO_PA_DATA = make_flag("SEC_E_NO_PA_DATA", ( 0x8009033C )) +SEC_E_PKINIT_NAME_MISMATCH = make_flag("SEC_E_PKINIT_NAME_MISMATCH", ( 0x8009033D )) +SEC_E_SMARTCARD_LOGON_REQUIRED = make_flag("SEC_E_SMARTCARD_LOGON_REQUIRED", ( 0x8009033E )) +SEC_E_SHUTDOWN_IN_PROGRESS = make_flag("SEC_E_SHUTDOWN_IN_PROGRESS", ( 0x8009033F )) +SEC_E_KDC_INVALID_REQUEST = make_flag("SEC_E_KDC_INVALID_REQUEST", ( 0x80090340 )) +SEC_E_KDC_UNABLE_TO_REFER = make_flag("SEC_E_KDC_UNABLE_TO_REFER", ( 0x80090341 )) +SEC_E_KDC_UNKNOWN_ETYPE = make_flag("SEC_E_KDC_UNKNOWN_ETYPE", ( 0x80090342 )) +SEC_E_UNSUPPORTED_PREAUTH = make_flag("SEC_E_UNSUPPORTED_PREAUTH", ( 0x80090343 )) +SEC_E_DELEGATION_REQUIRED = make_flag("SEC_E_DELEGATION_REQUIRED", ( 0x80090345 )) +SEC_E_BAD_BINDINGS = make_flag("SEC_E_BAD_BINDINGS", ( 0x80090346 )) +SEC_E_MULTIPLE_ACCOUNTS = make_flag("SEC_E_MULTIPLE_ACCOUNTS", ( 0x80090347 )) +SEC_E_NO_KERB_KEY = make_flag("SEC_E_NO_KERB_KEY", ( 0x80090348 )) +SEC_E_CERT_WRONG_USAGE = make_flag("SEC_E_CERT_WRONG_USAGE", ( 0x80090349 )) +SEC_E_DOWNGRADE_DETECTED = make_flag("SEC_E_DOWNGRADE_DETECTED", ( 0x80090350 )) +SEC_E_SMARTCARD_CERT_REVOKED = make_flag("SEC_E_SMARTCARD_CERT_REVOKED", ( 0x80090351 )) +SEC_E_ISSUING_CA_UNTRUSTED = make_flag("SEC_E_ISSUING_CA_UNTRUSTED", ( 0x80090352 )) +SEC_E_REVOCATION_OFFLINE_C = make_flag("SEC_E_REVOCATION_OFFLINE_C", ( 0x80090353 )) +SEC_E_PKINIT_CLIENT_FAILURE = make_flag("SEC_E_PKINIT_CLIENT_FAILURE", ( 0x80090354 )) +SEC_E_SMARTCARD_CERT_EXPIRED = make_flag("SEC_E_SMARTCARD_CERT_EXPIRED", ( 0x80090355 )) +SEC_E_NO_S4U_PROT_SUPPORT = make_flag("SEC_E_NO_S4U_PROT_SUPPORT", ( 0x80090356 )) +SEC_E_CROSSREALM_DELEGATION_FAILURE = make_flag("SEC_E_CROSSREALM_DELEGATION_FAILURE", ( 0x80090357 )) +SEC_E_REVOCATION_OFFLINE_KDC = make_flag("SEC_E_REVOCATION_OFFLINE_KDC", ( 0x80090358 )) +SEC_E_ISSUING_CA_UNTRUSTED_KDC = make_flag("SEC_E_ISSUING_CA_UNTRUSTED_KDC", ( 0x80090359 )) +SEC_E_KDC_CERT_EXPIRED = make_flag("SEC_E_KDC_CERT_EXPIRED", ( 0x8009035A )) +SEC_E_KDC_CERT_REVOKED = make_flag("SEC_E_KDC_CERT_REVOKED", ( 0x8009035B )) +SEC_I_SIGNATURE_NEEDED = make_flag("SEC_I_SIGNATURE_NEEDED", ( 0x0009035C )) +SEC_E_INVALID_PARAMETER = make_flag("SEC_E_INVALID_PARAMETER", ( 0x8009035D )) +SEC_E_DELEGATION_POLICY = make_flag("SEC_E_DELEGATION_POLICY", ( 0x8009035E )) +SEC_E_POLICY_NLTM_ONLY = make_flag("SEC_E_POLICY_NLTM_ONLY", ( 0x8009035F )) +SEC_I_NO_RENEGOTIATION = make_flag("SEC_I_NO_RENEGOTIATION", ( 0x00090360 )) +SEC_E_NO_CONTEXT = make_flag("SEC_E_NO_CONTEXT", ( 0x80090361 )) +SEC_E_PKU2U_CERT_FAILURE = make_flag("SEC_E_PKU2U_CERT_FAILURE", ( 0x80090362 )) +SEC_E_MUTUAL_AUTH_FAILED = make_flag("SEC_E_MUTUAL_AUTH_FAILED", ( 0x80090363 )) +SEC_I_MESSAGE_FRAGMENT = make_flag("SEC_I_MESSAGE_FRAGMENT", ( 0x00090364 )) +SEC_E_ONLY_HTTPS_ALLOWED = make_flag("SEC_E_ONLY_HTTPS_ALLOWED", ( 0x80090365 )) +SEC_I_CONTINUE_NEEDED_MESSAGE_OK = make_flag("SEC_I_CONTINUE_NEEDED_MESSAGE_OK", ( 0x00090366 )) +SEC_E_APPLICATION_PROTOCOL_MISMATCH = make_flag("SEC_E_APPLICATION_PROTOCOL_MISMATCH", ( 0x80090367 )) +SEC_I_ASYNC_CALL_PENDING = make_flag("SEC_I_ASYNC_CALL_PENDING", ( 0x00090368 )) +SEC_E_INVALID_UPN_NAME = make_flag("SEC_E_INVALID_UPN_NAME", ( 0x80090369 )) +SEC_E_EXT_BUFFER_TOO_SMALL = make_flag("SEC_E_EXT_BUFFER_TOO_SMALL", ( 0x8009036A )) +SEC_E_INSUFFICIENT_BUFFERS = make_flag("SEC_E_INSUFFICIENT_BUFFERS", ( 0x8009036B )) +SEC_E_NO_SPM = make_flag("SEC_E_NO_SPM", SEC_E_INTERNAL_ERROR) +SEC_E_NOT_SUPPORTED = make_flag("SEC_E_NOT_SUPPORTED", SEC_E_UNSUPPORTED_FUNCTION) +CRYPT_E_MSG_ERROR = make_flag("CRYPT_E_MSG_ERROR", ( 0x80091001 )) +CRYPT_E_UNKNOWN_ALGO = make_flag("CRYPT_E_UNKNOWN_ALGO", ( 0x80091002 )) +CRYPT_E_OID_FORMAT = make_flag("CRYPT_E_OID_FORMAT", ( 0x80091003 )) +CRYPT_E_INVALID_MSG_TYPE = make_flag("CRYPT_E_INVALID_MSG_TYPE", ( 0x80091004 )) +CRYPT_E_UNEXPECTED_ENCODING = make_flag("CRYPT_E_UNEXPECTED_ENCODING", ( 0x80091005 )) +CRYPT_E_AUTH_ATTR_MISSING = make_flag("CRYPT_E_AUTH_ATTR_MISSING", ( 0x80091006 )) +CRYPT_E_HASH_VALUE = make_flag("CRYPT_E_HASH_VALUE", ( 0x80091007 )) +CRYPT_E_INVALID_INDEX = make_flag("CRYPT_E_INVALID_INDEX", ( 0x80091008 )) +CRYPT_E_ALREADY_DECRYPTED = make_flag("CRYPT_E_ALREADY_DECRYPTED", ( 0x80091009 )) +CRYPT_E_NOT_DECRYPTED = make_flag("CRYPT_E_NOT_DECRYPTED", ( 0x8009100A )) +CRYPT_E_RECIPIENT_NOT_FOUND = make_flag("CRYPT_E_RECIPIENT_NOT_FOUND", ( 0x8009100B )) +CRYPT_E_CONTROL_TYPE = make_flag("CRYPT_E_CONTROL_TYPE", ( 0x8009100C )) +CRYPT_E_ISSUER_SERIALNUMBER = make_flag("CRYPT_E_ISSUER_SERIALNUMBER", ( 0x8009100D )) +CRYPT_E_SIGNER_NOT_FOUND = make_flag("CRYPT_E_SIGNER_NOT_FOUND", ( 0x8009100E )) +CRYPT_E_ATTRIBUTES_MISSING = make_flag("CRYPT_E_ATTRIBUTES_MISSING", ( 0x8009100F )) +CRYPT_E_STREAM_MSG_NOT_READY = make_flag("CRYPT_E_STREAM_MSG_NOT_READY", ( 0x80091010 )) +CRYPT_E_STREAM_INSUFFICIENT_DATA = make_flag("CRYPT_E_STREAM_INSUFFICIENT_DATA", ( 0x80091011 )) +CRYPT_I_NEW_PROTECTION_REQUIRED = make_flag("CRYPT_I_NEW_PROTECTION_REQUIRED", ( 0x00091012 )) +CRYPT_E_BAD_LEN = make_flag("CRYPT_E_BAD_LEN", ( 0x80092001 )) +CRYPT_E_BAD_ENCODE = make_flag("CRYPT_E_BAD_ENCODE", ( 0x80092002 )) +CRYPT_E_FILE_ERROR = make_flag("CRYPT_E_FILE_ERROR", ( 0x80092003 )) +CRYPT_E_NOT_FOUND = make_flag("CRYPT_E_NOT_FOUND", ( 0x80092004 )) +CRYPT_E_EXISTS = make_flag("CRYPT_E_EXISTS", ( 0x80092005 )) +CRYPT_E_NO_PROVIDER = make_flag("CRYPT_E_NO_PROVIDER", ( 0x80092006 )) +CRYPT_E_SELF_SIGNED = make_flag("CRYPT_E_SELF_SIGNED", ( 0x80092007 )) +CRYPT_E_DELETED_PREV = make_flag("CRYPT_E_DELETED_PREV", ( 0x80092008 )) +CRYPT_E_NO_MATCH = make_flag("CRYPT_E_NO_MATCH", ( 0x80092009 )) +CRYPT_E_UNEXPECTED_MSG_TYPE = make_flag("CRYPT_E_UNEXPECTED_MSG_TYPE", ( 0x8009200A )) +CRYPT_E_NO_KEY_PROPERTY = make_flag("CRYPT_E_NO_KEY_PROPERTY", ( 0x8009200B )) +CRYPT_E_NO_DECRYPT_CERT = make_flag("CRYPT_E_NO_DECRYPT_CERT", ( 0x8009200C )) +CRYPT_E_BAD_MSG = make_flag("CRYPT_E_BAD_MSG", ( 0x8009200D )) +CRYPT_E_NO_SIGNER = make_flag("CRYPT_E_NO_SIGNER", ( 0x8009200E )) +CRYPT_E_PENDING_CLOSE = make_flag("CRYPT_E_PENDING_CLOSE", ( 0x8009200F )) +CRYPT_E_REVOKED = make_flag("CRYPT_E_REVOKED", ( 0x80092010 )) +CRYPT_E_NO_REVOCATION_DLL = make_flag("CRYPT_E_NO_REVOCATION_DLL", ( 0x80092011 )) +CRYPT_E_NO_REVOCATION_CHECK = make_flag("CRYPT_E_NO_REVOCATION_CHECK", ( 0x80092012 )) +CRYPT_E_REVOCATION_OFFLINE = make_flag("CRYPT_E_REVOCATION_OFFLINE", ( 0x80092013 )) +CRYPT_E_NOT_IN_REVOCATION_DATABASE = make_flag("CRYPT_E_NOT_IN_REVOCATION_DATABASE", ( 0x80092014 )) +CRYPT_E_INVALID_NUMERIC_STRING = make_flag("CRYPT_E_INVALID_NUMERIC_STRING", ( 0x80092020 )) +CRYPT_E_INVALID_PRINTABLE_STRING = make_flag("CRYPT_E_INVALID_PRINTABLE_STRING", ( 0x80092021 )) +CRYPT_E_INVALID_IA5_STRING = make_flag("CRYPT_E_INVALID_IA5_STRING", ( 0x80092022 )) +CRYPT_E_INVALID_X500_STRING = make_flag("CRYPT_E_INVALID_X500_STRING", ( 0x80092023 )) +CRYPT_E_NOT_CHAR_STRING = make_flag("CRYPT_E_NOT_CHAR_STRING", ( 0x80092024 )) +CRYPT_E_FILERESIZED = make_flag("CRYPT_E_FILERESIZED", ( 0x80092025 )) +CRYPT_E_SECURITY_SETTINGS = make_flag("CRYPT_E_SECURITY_SETTINGS", ( 0x80092026 )) +CRYPT_E_NO_VERIFY_USAGE_DLL = make_flag("CRYPT_E_NO_VERIFY_USAGE_DLL", ( 0x80092027 )) +CRYPT_E_NO_VERIFY_USAGE_CHECK = make_flag("CRYPT_E_NO_VERIFY_USAGE_CHECK", ( 0x80092028 )) +CRYPT_E_VERIFY_USAGE_OFFLINE = make_flag("CRYPT_E_VERIFY_USAGE_OFFLINE", ( 0x80092029 )) +CRYPT_E_NOT_IN_CTL = make_flag("CRYPT_E_NOT_IN_CTL", ( 0x8009202A )) +CRYPT_E_NO_TRUSTED_SIGNER = make_flag("CRYPT_E_NO_TRUSTED_SIGNER", ( 0x8009202B )) +CRYPT_E_MISSING_PUBKEY_PARA = make_flag("CRYPT_E_MISSING_PUBKEY_PARA", ( 0x8009202C )) +CRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND = make_flag("CRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND", ( 0x8009202D )) +CRYPT_E_OSS_ERROR = make_flag("CRYPT_E_OSS_ERROR", ( 0x80093000 )) +OSS_MORE_BUF = make_flag("OSS_MORE_BUF", ( 0x80093001 )) +OSS_NEGATIVE_UINTEGER = make_flag("OSS_NEGATIVE_UINTEGER", ( 0x80093002 )) +OSS_PDU_RANGE = make_flag("OSS_PDU_RANGE", ( 0x80093003 )) +OSS_MORE_INPUT = make_flag("OSS_MORE_INPUT", ( 0x80093004 )) +OSS_DATA_ERROR = make_flag("OSS_DATA_ERROR", ( 0x80093005 )) +OSS_BAD_ARG = make_flag("OSS_BAD_ARG", ( 0x80093006 )) +OSS_BAD_VERSION = make_flag("OSS_BAD_VERSION", ( 0x80093007 )) +OSS_OUT_MEMORY = make_flag("OSS_OUT_MEMORY", ( 0x80093008 )) +OSS_PDU_MISMATCH = make_flag("OSS_PDU_MISMATCH", ( 0x80093009 )) +OSS_LIMITED = make_flag("OSS_LIMITED", ( 0x8009300A )) +OSS_BAD_PTR = make_flag("OSS_BAD_PTR", ( 0x8009300B )) +OSS_BAD_TIME = make_flag("OSS_BAD_TIME", ( 0x8009300C )) +OSS_INDEFINITE_NOT_SUPPORTED = make_flag("OSS_INDEFINITE_NOT_SUPPORTED", ( 0x8009300D )) +OSS_MEM_ERROR = make_flag("OSS_MEM_ERROR", ( 0x8009300E )) +OSS_BAD_TABLE = make_flag("OSS_BAD_TABLE", ( 0x8009300F )) +OSS_TOO_LONG = make_flag("OSS_TOO_LONG", ( 0x80093010 )) +OSS_CONSTRAINT_VIOLATED = make_flag("OSS_CONSTRAINT_VIOLATED", ( 0x80093011 )) +OSS_FATAL_ERROR = make_flag("OSS_FATAL_ERROR", ( 0x80093012 )) +OSS_ACCESS_SERIALIZATION_ERROR = make_flag("OSS_ACCESS_SERIALIZATION_ERROR", ( 0x80093013 )) +OSS_NULL_TBL = make_flag("OSS_NULL_TBL", ( 0x80093014 )) +OSS_NULL_FCN = make_flag("OSS_NULL_FCN", ( 0x80093015 )) +OSS_BAD_ENCRULES = make_flag("OSS_BAD_ENCRULES", ( 0x80093016 )) +OSS_UNAVAIL_ENCRULES = make_flag("OSS_UNAVAIL_ENCRULES", ( 0x80093017 )) +OSS_CANT_OPEN_TRACE_WINDOW = make_flag("OSS_CANT_OPEN_TRACE_WINDOW", ( 0x80093018 )) +OSS_UNIMPLEMENTED = make_flag("OSS_UNIMPLEMENTED", ( 0x80093019 )) +OSS_OID_DLL_NOT_LINKED = make_flag("OSS_OID_DLL_NOT_LINKED", ( 0x8009301A )) +OSS_CANT_OPEN_TRACE_FILE = make_flag("OSS_CANT_OPEN_TRACE_FILE", ( 0x8009301B )) +OSS_TRACE_FILE_ALREADY_OPEN = make_flag("OSS_TRACE_FILE_ALREADY_OPEN", ( 0x8009301C )) +OSS_TABLE_MISMATCH = make_flag("OSS_TABLE_MISMATCH", ( 0x8009301D )) +OSS_TYPE_NOT_SUPPORTED = make_flag("OSS_TYPE_NOT_SUPPORTED", ( 0x8009301E )) +OSS_REAL_DLL_NOT_LINKED = make_flag("OSS_REAL_DLL_NOT_LINKED", ( 0x8009301F )) +OSS_REAL_CODE_NOT_LINKED = make_flag("OSS_REAL_CODE_NOT_LINKED", ( 0x80093020 )) +OSS_OUT_OF_RANGE = make_flag("OSS_OUT_OF_RANGE", ( 0x80093021 )) +OSS_COPIER_DLL_NOT_LINKED = make_flag("OSS_COPIER_DLL_NOT_LINKED", ( 0x80093022 )) +OSS_CONSTRAINT_DLL_NOT_LINKED = make_flag("OSS_CONSTRAINT_DLL_NOT_LINKED", ( 0x80093023 )) +OSS_COMPARATOR_DLL_NOT_LINKED = make_flag("OSS_COMPARATOR_DLL_NOT_LINKED", ( 0x80093024 )) +OSS_COMPARATOR_CODE_NOT_LINKED = make_flag("OSS_COMPARATOR_CODE_NOT_LINKED", ( 0x80093025 )) +OSS_MEM_MGR_DLL_NOT_LINKED = make_flag("OSS_MEM_MGR_DLL_NOT_LINKED", ( 0x80093026 )) +OSS_PDV_DLL_NOT_LINKED = make_flag("OSS_PDV_DLL_NOT_LINKED", ( 0x80093027 )) +OSS_PDV_CODE_NOT_LINKED = make_flag("OSS_PDV_CODE_NOT_LINKED", ( 0x80093028 )) +OSS_API_DLL_NOT_LINKED = make_flag("OSS_API_DLL_NOT_LINKED", ( 0x80093029 )) +OSS_BERDER_DLL_NOT_LINKED = make_flag("OSS_BERDER_DLL_NOT_LINKED", ( 0x8009302A )) +OSS_PER_DLL_NOT_LINKED = make_flag("OSS_PER_DLL_NOT_LINKED", ( 0x8009302B )) +OSS_OPEN_TYPE_ERROR = make_flag("OSS_OPEN_TYPE_ERROR", ( 0x8009302C )) +OSS_MUTEX_NOT_CREATED = make_flag("OSS_MUTEX_NOT_CREATED", ( 0x8009302D )) +OSS_CANT_CLOSE_TRACE_FILE = make_flag("OSS_CANT_CLOSE_TRACE_FILE", ( 0x8009302E )) +CRYPT_E_ASN1_ERROR = make_flag("CRYPT_E_ASN1_ERROR", ( 0x80093100 )) +CRYPT_E_ASN1_INTERNAL = make_flag("CRYPT_E_ASN1_INTERNAL", ( 0x80093101 )) +CRYPT_E_ASN1_EOD = make_flag("CRYPT_E_ASN1_EOD", ( 0x80093102 )) +CRYPT_E_ASN1_CORRUPT = make_flag("CRYPT_E_ASN1_CORRUPT", ( 0x80093103 )) +CRYPT_E_ASN1_LARGE = make_flag("CRYPT_E_ASN1_LARGE", ( 0x80093104 )) +CRYPT_E_ASN1_CONSTRAINT = make_flag("CRYPT_E_ASN1_CONSTRAINT", ( 0x80093105 )) +CRYPT_E_ASN1_MEMORY = make_flag("CRYPT_E_ASN1_MEMORY", ( 0x80093106 )) +CRYPT_E_ASN1_OVERFLOW = make_flag("CRYPT_E_ASN1_OVERFLOW", ( 0x80093107 )) +CRYPT_E_ASN1_BADPDU = make_flag("CRYPT_E_ASN1_BADPDU", ( 0x80093108 )) +CRYPT_E_ASN1_BADARGS = make_flag("CRYPT_E_ASN1_BADARGS", ( 0x80093109 )) +CRYPT_E_ASN1_BADREAL = make_flag("CRYPT_E_ASN1_BADREAL", ( 0x8009310A )) +CRYPT_E_ASN1_BADTAG = make_flag("CRYPT_E_ASN1_BADTAG", ( 0x8009310B )) +CRYPT_E_ASN1_CHOICE = make_flag("CRYPT_E_ASN1_CHOICE", ( 0x8009310C )) +CRYPT_E_ASN1_RULE = make_flag("CRYPT_E_ASN1_RULE", ( 0x8009310D )) +CRYPT_E_ASN1_UTF8 = make_flag("CRYPT_E_ASN1_UTF8", ( 0x8009310E )) +CRYPT_E_ASN1_PDU_TYPE = make_flag("CRYPT_E_ASN1_PDU_TYPE", ( 0x80093133 )) +CRYPT_E_ASN1_NYI = make_flag("CRYPT_E_ASN1_NYI", ( 0x80093134 )) +CRYPT_E_ASN1_EXTENDED = make_flag("CRYPT_E_ASN1_EXTENDED", ( 0x80093201 )) +CRYPT_E_ASN1_NOEOD = make_flag("CRYPT_E_ASN1_NOEOD", ( 0x80093202 )) +CERTSRV_E_BAD_REQUESTSUBJECT = make_flag("CERTSRV_E_BAD_REQUESTSUBJECT", ( 0x80094001 )) +CERTSRV_E_NO_REQUEST = make_flag("CERTSRV_E_NO_REQUEST", ( 0x80094002 )) +CERTSRV_E_BAD_REQUESTSTATUS = make_flag("CERTSRV_E_BAD_REQUESTSTATUS", ( 0x80094003 )) +CERTSRV_E_PROPERTY_EMPTY = make_flag("CERTSRV_E_PROPERTY_EMPTY", ( 0x80094004 )) +CERTSRV_E_INVALID_CA_CERTIFICATE = make_flag("CERTSRV_E_INVALID_CA_CERTIFICATE", ( 0x80094005 )) +CERTSRV_E_SERVER_SUSPENDED = make_flag("CERTSRV_E_SERVER_SUSPENDED", ( 0x80094006 )) +CERTSRV_E_ENCODING_LENGTH = make_flag("CERTSRV_E_ENCODING_LENGTH", ( 0x80094007 )) +CERTSRV_E_ROLECONFLICT = make_flag("CERTSRV_E_ROLECONFLICT", ( 0x80094008 )) +CERTSRV_E_RESTRICTEDOFFICER = make_flag("CERTSRV_E_RESTRICTEDOFFICER", ( 0x80094009 )) +CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED = make_flag("CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED", ( 0x8009400A )) +CERTSRV_E_NO_VALID_KRA = make_flag("CERTSRV_E_NO_VALID_KRA", ( 0x8009400B )) +CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL = make_flag("CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL", ( 0x8009400C )) +CERTSRV_E_NO_CAADMIN_DEFINED = make_flag("CERTSRV_E_NO_CAADMIN_DEFINED", ( 0x8009400D )) +CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE = make_flag("CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE", ( 0x8009400E )) +CERTSRV_E_NO_DB_SESSIONS = make_flag("CERTSRV_E_NO_DB_SESSIONS", ( 0x8009400F )) +CERTSRV_E_ALIGNMENT_FAULT = make_flag("CERTSRV_E_ALIGNMENT_FAULT", ( 0x80094010 )) +CERTSRV_E_ENROLL_DENIED = make_flag("CERTSRV_E_ENROLL_DENIED", ( 0x80094011 )) +CERTSRV_E_TEMPLATE_DENIED = make_flag("CERTSRV_E_TEMPLATE_DENIED", ( 0x80094012 )) +CERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE = make_flag("CERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE", ( 0x80094013 )) +CERTSRV_E_ADMIN_DENIED_REQUEST = make_flag("CERTSRV_E_ADMIN_DENIED_REQUEST", ( 0x80094014 )) +CERTSRV_E_NO_POLICY_SERVER = make_flag("CERTSRV_E_NO_POLICY_SERVER", ( 0x80094015 )) +CERTSRV_E_WEAK_SIGNATURE_OR_KEY = make_flag("CERTSRV_E_WEAK_SIGNATURE_OR_KEY", ( 0x80094016 )) +CERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED = make_flag("CERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED", ( 0x80094017 )) +CERTSRV_E_ENCRYPTION_CERT_REQUIRED = make_flag("CERTSRV_E_ENCRYPTION_CERT_REQUIRED", ( 0x80094018 )) +CERTSRV_E_UNSUPPORTED_CERT_TYPE = make_flag("CERTSRV_E_UNSUPPORTED_CERT_TYPE", ( 0x80094800 )) +CERTSRV_E_NO_CERT_TYPE = make_flag("CERTSRV_E_NO_CERT_TYPE", ( 0x80094801 )) +CERTSRV_E_TEMPLATE_CONFLICT = make_flag("CERTSRV_E_TEMPLATE_CONFLICT", ( 0x80094802 )) +CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED = make_flag("CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED", ( 0x80094803 )) +CERTSRV_E_ARCHIVED_KEY_REQUIRED = make_flag("CERTSRV_E_ARCHIVED_KEY_REQUIRED", ( 0x80094804 )) +CERTSRV_E_SMIME_REQUIRED = make_flag("CERTSRV_E_SMIME_REQUIRED", ( 0x80094805 )) +CERTSRV_E_BAD_RENEWAL_SUBJECT = make_flag("CERTSRV_E_BAD_RENEWAL_SUBJECT", ( 0x80094806 )) +CERTSRV_E_BAD_TEMPLATE_VERSION = make_flag("CERTSRV_E_BAD_TEMPLATE_VERSION", ( 0x80094807 )) +CERTSRV_E_TEMPLATE_POLICY_REQUIRED = make_flag("CERTSRV_E_TEMPLATE_POLICY_REQUIRED", ( 0x80094808 )) +CERTSRV_E_SIGNATURE_POLICY_REQUIRED = make_flag("CERTSRV_E_SIGNATURE_POLICY_REQUIRED", ( 0x80094809 )) +CERTSRV_E_SIGNATURE_COUNT = make_flag("CERTSRV_E_SIGNATURE_COUNT", ( 0x8009480A )) +CERTSRV_E_SIGNATURE_REJECTED = make_flag("CERTSRV_E_SIGNATURE_REJECTED", ( 0x8009480B )) +CERTSRV_E_ISSUANCE_POLICY_REQUIRED = make_flag("CERTSRV_E_ISSUANCE_POLICY_REQUIRED", ( 0x8009480C )) +CERTSRV_E_SUBJECT_UPN_REQUIRED = make_flag("CERTSRV_E_SUBJECT_UPN_REQUIRED", ( 0x8009480D )) +CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED = make_flag("CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED", ( 0x8009480E )) +CERTSRV_E_SUBJECT_DNS_REQUIRED = make_flag("CERTSRV_E_SUBJECT_DNS_REQUIRED", ( 0x8009480F )) +CERTSRV_E_ARCHIVED_KEY_UNEXPECTED = make_flag("CERTSRV_E_ARCHIVED_KEY_UNEXPECTED", ( 0x80094810 )) +CERTSRV_E_KEY_LENGTH = make_flag("CERTSRV_E_KEY_LENGTH", ( 0x80094811 )) +CERTSRV_E_SUBJECT_EMAIL_REQUIRED = make_flag("CERTSRV_E_SUBJECT_EMAIL_REQUIRED", ( 0x80094812 )) +CERTSRV_E_UNKNOWN_CERT_TYPE = make_flag("CERTSRV_E_UNKNOWN_CERT_TYPE", ( 0x80094813 )) +CERTSRV_E_CERT_TYPE_OVERLAP = make_flag("CERTSRV_E_CERT_TYPE_OVERLAP", ( 0x80094814 )) +CERTSRV_E_TOO_MANY_SIGNATURES = make_flag("CERTSRV_E_TOO_MANY_SIGNATURES", ( 0x80094815 )) +CERTSRV_E_RENEWAL_BAD_PUBLIC_KEY = make_flag("CERTSRV_E_RENEWAL_BAD_PUBLIC_KEY", ( 0x80094816 )) +CERTSRV_E_INVALID_EK = make_flag("CERTSRV_E_INVALID_EK", ( 0x80094817 )) +CERTSRV_E_INVALID_IDBINDING = make_flag("CERTSRV_E_INVALID_IDBINDING", ( 0x80094818 )) +CERTSRV_E_INVALID_ATTESTATION = make_flag("CERTSRV_E_INVALID_ATTESTATION", ( 0x80094819 )) +CERTSRV_E_KEY_ATTESTATION = make_flag("CERTSRV_E_KEY_ATTESTATION", ( 0x8009481A )) +CERTSRV_E_CORRUPT_KEY_ATTESTATION = make_flag("CERTSRV_E_CORRUPT_KEY_ATTESTATION", ( 0x8009481B )) +CERTSRV_E_EXPIRED_CHALLENGE = make_flag("CERTSRV_E_EXPIRED_CHALLENGE", ( 0x8009481C )) +CERTSRV_E_INVALID_RESPONSE = make_flag("CERTSRV_E_INVALID_RESPONSE", ( 0x8009481D )) +CERTSRV_E_INVALID_REQUESTID = make_flag("CERTSRV_E_INVALID_REQUESTID", ( 0x8009481E )) +CERTSRV_E_REQUEST_PRECERTIFICATE_MISMATCH = make_flag("CERTSRV_E_REQUEST_PRECERTIFICATE_MISMATCH", ( 0x8009481F )) +CERTSRV_E_PENDING_CLIENT_RESPONSE = make_flag("CERTSRV_E_PENDING_CLIENT_RESPONSE", ( 0x80094820 )) +XENROLL_E_KEY_NOT_EXPORTABLE = make_flag("XENROLL_E_KEY_NOT_EXPORTABLE", ( 0x80095000 )) +XENROLL_E_CANNOT_ADD_ROOT_CERT = make_flag("XENROLL_E_CANNOT_ADD_ROOT_CERT", ( 0x80095001 )) +XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND = make_flag("XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND", ( 0x80095002 )) +XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH = make_flag("XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH", ( 0x80095003 )) +XENROLL_E_RESPONSE_KA_HASH_MISMATCH = make_flag("XENROLL_E_RESPONSE_KA_HASH_MISMATCH", ( 0x80095004 )) +XENROLL_E_KEYSPEC_SMIME_MISMATCH = make_flag("XENROLL_E_KEYSPEC_SMIME_MISMATCH", ( 0x80095005 )) +TRUST_E_SYSTEM_ERROR = make_flag("TRUST_E_SYSTEM_ERROR", ( 0x80096001 )) +TRUST_E_NO_SIGNER_CERT = make_flag("TRUST_E_NO_SIGNER_CERT", ( 0x80096002 )) +TRUST_E_COUNTER_SIGNER = make_flag("TRUST_E_COUNTER_SIGNER", ( 0x80096003 )) +TRUST_E_CERT_SIGNATURE = make_flag("TRUST_E_CERT_SIGNATURE", ( 0x80096004 )) +TRUST_E_TIME_STAMP = make_flag("TRUST_E_TIME_STAMP", ( 0x80096005 )) +TRUST_E_BAD_DIGEST = make_flag("TRUST_E_BAD_DIGEST", ( 0x80096010 )) +TRUST_E_MALFORMED_SIGNATURE = make_flag("TRUST_E_MALFORMED_SIGNATURE", ( 0x80096011 )) +TRUST_E_BASIC_CONSTRAINTS = make_flag("TRUST_E_BASIC_CONSTRAINTS", ( 0x80096019 )) +TRUST_E_FINANCIAL_CRITERIA = make_flag("TRUST_E_FINANCIAL_CRITERIA", ( 0x8009601E )) +MSSIPOTF_E_OUTOFMEMRANGE = make_flag("MSSIPOTF_E_OUTOFMEMRANGE", ( 0x80097001 )) +MSSIPOTF_E_CANTGETOBJECT = make_flag("MSSIPOTF_E_CANTGETOBJECT", ( 0x80097002 )) +MSSIPOTF_E_NOHEADTABLE = make_flag("MSSIPOTF_E_NOHEADTABLE", ( 0x80097003 )) +MSSIPOTF_E_BAD_MAGICNUMBER = make_flag("MSSIPOTF_E_BAD_MAGICNUMBER", ( 0x80097004 )) +MSSIPOTF_E_BAD_OFFSET_TABLE = make_flag("MSSIPOTF_E_BAD_OFFSET_TABLE", ( 0x80097005 )) +MSSIPOTF_E_TABLE_TAGORDER = make_flag("MSSIPOTF_E_TABLE_TAGORDER", ( 0x80097006 )) +MSSIPOTF_E_TABLE_LONGWORD = make_flag("MSSIPOTF_E_TABLE_LONGWORD", ( 0x80097007 )) +MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT = make_flag("MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT", ( 0x80097008 )) +MSSIPOTF_E_TABLES_OVERLAP = make_flag("MSSIPOTF_E_TABLES_OVERLAP", ( 0x80097009 )) +MSSIPOTF_E_TABLE_PADBYTES = make_flag("MSSIPOTF_E_TABLE_PADBYTES", ( 0x8009700A )) +MSSIPOTF_E_FILETOOSMALL = make_flag("MSSIPOTF_E_FILETOOSMALL", ( 0x8009700B )) +MSSIPOTF_E_TABLE_CHECKSUM = make_flag("MSSIPOTF_E_TABLE_CHECKSUM", ( 0x8009700C )) +MSSIPOTF_E_FILE_CHECKSUM = make_flag("MSSIPOTF_E_FILE_CHECKSUM", ( 0x8009700D )) +MSSIPOTF_E_FAILED_POLICY = make_flag("MSSIPOTF_E_FAILED_POLICY", ( 0x80097010 )) +MSSIPOTF_E_FAILED_HINTS_CHECK = make_flag("MSSIPOTF_E_FAILED_HINTS_CHECK", ( 0x80097011 )) +MSSIPOTF_E_NOT_OPENTYPE = make_flag("MSSIPOTF_E_NOT_OPENTYPE", ( 0x80097012 )) +MSSIPOTF_E_FILE = make_flag("MSSIPOTF_E_FILE", ( 0x80097013 )) +MSSIPOTF_E_CRYPT = make_flag("MSSIPOTF_E_CRYPT", ( 0x80097014 )) +MSSIPOTF_E_BADVERSION = make_flag("MSSIPOTF_E_BADVERSION", ( 0x80097015 )) +MSSIPOTF_E_DSIG_STRUCTURE = make_flag("MSSIPOTF_E_DSIG_STRUCTURE", ( 0x80097016 )) +MSSIPOTF_E_PCONST_CHECK = make_flag("MSSIPOTF_E_PCONST_CHECK", ( 0x80097017 )) +MSSIPOTF_E_STRUCTURE = make_flag("MSSIPOTF_E_STRUCTURE", ( 0x80097018 )) +ERROR_CRED_REQUIRES_CONFIRMATION = make_flag("ERROR_CRED_REQUIRES_CONFIRMATION", ( 0x80097019 )) +NTE_OP_OK = make_flag("NTE_OP_OK", 0) +TRUST_E_PROVIDER_UNKNOWN = make_flag("TRUST_E_PROVIDER_UNKNOWN", ( 0x800B0001 )) +TRUST_E_ACTION_UNKNOWN = make_flag("TRUST_E_ACTION_UNKNOWN", ( 0x800B0002 )) +TRUST_E_SUBJECT_FORM_UNKNOWN = make_flag("TRUST_E_SUBJECT_FORM_UNKNOWN", ( 0x800B0003 )) +TRUST_E_SUBJECT_NOT_TRUSTED = make_flag("TRUST_E_SUBJECT_NOT_TRUSTED", ( 0x800B0004 )) +DIGSIG_E_ENCODE = make_flag("DIGSIG_E_ENCODE", ( 0x800B0005 )) +DIGSIG_E_DECODE = make_flag("DIGSIG_E_DECODE", ( 0x800B0006 )) +DIGSIG_E_EXTENSIBILITY = make_flag("DIGSIG_E_EXTENSIBILITY", ( 0x800B0007 )) +DIGSIG_E_CRYPTO = make_flag("DIGSIG_E_CRYPTO", ( 0x800B0008 )) +PERSIST_E_SIZEDEFINITE = make_flag("PERSIST_E_SIZEDEFINITE", ( 0x800B0009 )) +PERSIST_E_SIZEINDEFINITE = make_flag("PERSIST_E_SIZEINDEFINITE", ( 0x800B000A )) +PERSIST_E_NOTSELFSIZING = make_flag("PERSIST_E_NOTSELFSIZING", ( 0x800B000B )) +TRUST_E_NOSIGNATURE = make_flag("TRUST_E_NOSIGNATURE", ( 0x800B0100 )) +CERT_E_EXPIRED = make_flag("CERT_E_EXPIRED", ( 0x800B0101 )) +CERT_E_VALIDITYPERIODNESTING = make_flag("CERT_E_VALIDITYPERIODNESTING", ( 0x800B0102 )) +CERT_E_ROLE = make_flag("CERT_E_ROLE", ( 0x800B0103 )) +CERT_E_PATHLENCONST = make_flag("CERT_E_PATHLENCONST", ( 0x800B0104 )) +CERT_E_CRITICAL = make_flag("CERT_E_CRITICAL", ( 0x800B0105 )) +CERT_E_PURPOSE = make_flag("CERT_E_PURPOSE", ( 0x800B0106 )) +CERT_E_ISSUERCHAINING = make_flag("CERT_E_ISSUERCHAINING", ( 0x800B0107 )) +CERT_E_MALFORMED = make_flag("CERT_E_MALFORMED", ( 0x800B0108 )) +CERT_E_UNTRUSTEDROOT = make_flag("CERT_E_UNTRUSTEDROOT", ( 0x800B0109 )) +CERT_E_CHAINING = make_flag("CERT_E_CHAINING", ( 0x800B010A )) +TRUST_E_FAIL = make_flag("TRUST_E_FAIL", ( 0x800B010B )) +CERT_E_REVOKED = make_flag("CERT_E_REVOKED", ( 0x800B010C )) +CERT_E_UNTRUSTEDTESTROOT = make_flag("CERT_E_UNTRUSTEDTESTROOT", ( 0x800B010D )) +CERT_E_REVOCATION_FAILURE = make_flag("CERT_E_REVOCATION_FAILURE", ( 0x800B010E )) +CERT_E_CN_NO_MATCH = make_flag("CERT_E_CN_NO_MATCH", ( 0x800B010F )) +CERT_E_WRONG_USAGE = make_flag("CERT_E_WRONG_USAGE", ( 0x800B0110 )) +TRUST_E_EXPLICIT_DISTRUST = make_flag("TRUST_E_EXPLICIT_DISTRUST", ( 0x800B0111 )) +CERT_E_UNTRUSTEDCA = make_flag("CERT_E_UNTRUSTEDCA", ( 0x800B0112 )) +CERT_E_INVALID_POLICY = make_flag("CERT_E_INVALID_POLICY", ( 0x800B0113 )) +CERT_E_INVALID_NAME = make_flag("CERT_E_INVALID_NAME", ( 0x800B0114 )) +SPAPI_E_EXPECTED_SECTION_NAME = make_flag("SPAPI_E_EXPECTED_SECTION_NAME", ( 0x800F0000 )) +SPAPI_E_BAD_SECTION_NAME_LINE = make_flag("SPAPI_E_BAD_SECTION_NAME_LINE", ( 0x800F0001 )) +SPAPI_E_SECTION_NAME_TOO_LONG = make_flag("SPAPI_E_SECTION_NAME_TOO_LONG", ( 0x800F0002 )) +SPAPI_E_GENERAL_SYNTAX = make_flag("SPAPI_E_GENERAL_SYNTAX", ( 0x800F0003 )) +SPAPI_E_WRONG_INF_STYLE = make_flag("SPAPI_E_WRONG_INF_STYLE", ( 0x800F0100 )) +SPAPI_E_SECTION_NOT_FOUND = make_flag("SPAPI_E_SECTION_NOT_FOUND", ( 0x800F0101 )) +SPAPI_E_LINE_NOT_FOUND = make_flag("SPAPI_E_LINE_NOT_FOUND", ( 0x800F0102 )) +SPAPI_E_NO_BACKUP = make_flag("SPAPI_E_NO_BACKUP", ( 0x800F0103 )) +SPAPI_E_NO_ASSOCIATED_CLASS = make_flag("SPAPI_E_NO_ASSOCIATED_CLASS", ( 0x800F0200 )) +SPAPI_E_CLASS_MISMATCH = make_flag("SPAPI_E_CLASS_MISMATCH", ( 0x800F0201 )) +SPAPI_E_DUPLICATE_FOUND = make_flag("SPAPI_E_DUPLICATE_FOUND", ( 0x800F0202 )) +SPAPI_E_NO_DRIVER_SELECTED = make_flag("SPAPI_E_NO_DRIVER_SELECTED", ( 0x800F0203 )) +SPAPI_E_KEY_DOES_NOT_EXIST = make_flag("SPAPI_E_KEY_DOES_NOT_EXIST", ( 0x800F0204 )) +SPAPI_E_INVALID_DEVINST_NAME = make_flag("SPAPI_E_INVALID_DEVINST_NAME", ( 0x800F0205 )) +SPAPI_E_INVALID_CLASS = make_flag("SPAPI_E_INVALID_CLASS", ( 0x800F0206 )) +SPAPI_E_DEVINST_ALREADY_EXISTS = make_flag("SPAPI_E_DEVINST_ALREADY_EXISTS", ( 0x800F0207 )) +SPAPI_E_DEVINFO_NOT_REGISTERED = make_flag("SPAPI_E_DEVINFO_NOT_REGISTERED", ( 0x800F0208 )) +SPAPI_E_INVALID_REG_PROPERTY = make_flag("SPAPI_E_INVALID_REG_PROPERTY", ( 0x800F0209 )) +SPAPI_E_NO_INF = make_flag("SPAPI_E_NO_INF", ( 0x800F020A )) +SPAPI_E_NO_SUCH_DEVINST = make_flag("SPAPI_E_NO_SUCH_DEVINST", ( 0x800F020B )) +SPAPI_E_CANT_LOAD_CLASS_ICON = make_flag("SPAPI_E_CANT_LOAD_CLASS_ICON", ( 0x800F020C )) +SPAPI_E_INVALID_CLASS_INSTALLER = make_flag("SPAPI_E_INVALID_CLASS_INSTALLER", ( 0x800F020D )) +SPAPI_E_DI_DO_DEFAULT = make_flag("SPAPI_E_DI_DO_DEFAULT", ( 0x800F020E )) +SPAPI_E_DI_NOFILECOPY = make_flag("SPAPI_E_DI_NOFILECOPY", ( 0x800F020F )) +SPAPI_E_INVALID_HWPROFILE = make_flag("SPAPI_E_INVALID_HWPROFILE", ( 0x800F0210 )) +SPAPI_E_NO_DEVICE_SELECTED = make_flag("SPAPI_E_NO_DEVICE_SELECTED", ( 0x800F0211 )) +SPAPI_E_DEVINFO_LIST_LOCKED = make_flag("SPAPI_E_DEVINFO_LIST_LOCKED", ( 0x800F0212 )) +SPAPI_E_DEVINFO_DATA_LOCKED = make_flag("SPAPI_E_DEVINFO_DATA_LOCKED", ( 0x800F0213 )) +SPAPI_E_DI_BAD_PATH = make_flag("SPAPI_E_DI_BAD_PATH", ( 0x800F0214 )) +SPAPI_E_NO_CLASSINSTALL_PARAMS = make_flag("SPAPI_E_NO_CLASSINSTALL_PARAMS", ( 0x800F0215 )) +SPAPI_E_FILEQUEUE_LOCKED = make_flag("SPAPI_E_FILEQUEUE_LOCKED", ( 0x800F0216 )) +SPAPI_E_BAD_SERVICE_INSTALLSECT = make_flag("SPAPI_E_BAD_SERVICE_INSTALLSECT", ( 0x800F0217 )) +SPAPI_E_NO_CLASS_DRIVER_LIST = make_flag("SPAPI_E_NO_CLASS_DRIVER_LIST", ( 0x800F0218 )) +SPAPI_E_NO_ASSOCIATED_SERVICE = make_flag("SPAPI_E_NO_ASSOCIATED_SERVICE", ( 0x800F0219 )) +SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE = make_flag("SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE", ( 0x800F021A )) +SPAPI_E_DEVICE_INTERFACE_ACTIVE = make_flag("SPAPI_E_DEVICE_INTERFACE_ACTIVE", ( 0x800F021B )) +SPAPI_E_DEVICE_INTERFACE_REMOVED = make_flag("SPAPI_E_DEVICE_INTERFACE_REMOVED", ( 0x800F021C )) +SPAPI_E_BAD_INTERFACE_INSTALLSECT = make_flag("SPAPI_E_BAD_INTERFACE_INSTALLSECT", ( 0x800F021D )) +SPAPI_E_NO_SUCH_INTERFACE_CLASS = make_flag("SPAPI_E_NO_SUCH_INTERFACE_CLASS", ( 0x800F021E )) +SPAPI_E_INVALID_REFERENCE_STRING = make_flag("SPAPI_E_INVALID_REFERENCE_STRING", ( 0x800F021F )) +SPAPI_E_INVALID_MACHINENAME = make_flag("SPAPI_E_INVALID_MACHINENAME", ( 0x800F0220 )) +SPAPI_E_REMOTE_COMM_FAILURE = make_flag("SPAPI_E_REMOTE_COMM_FAILURE", ( 0x800F0221 )) +SPAPI_E_MACHINE_UNAVAILABLE = make_flag("SPAPI_E_MACHINE_UNAVAILABLE", ( 0x800F0222 )) +SPAPI_E_NO_CONFIGMGR_SERVICES = make_flag("SPAPI_E_NO_CONFIGMGR_SERVICES", ( 0x800F0223 )) +SPAPI_E_INVALID_PROPPAGE_PROVIDER = make_flag("SPAPI_E_INVALID_PROPPAGE_PROVIDER", ( 0x800F0224 )) +SPAPI_E_NO_SUCH_DEVICE_INTERFACE = make_flag("SPAPI_E_NO_SUCH_DEVICE_INTERFACE", ( 0x800F0225 )) +SPAPI_E_DI_POSTPROCESSING_REQUIRED = make_flag("SPAPI_E_DI_POSTPROCESSING_REQUIRED", ( 0x800F0226 )) +SPAPI_E_INVALID_COINSTALLER = make_flag("SPAPI_E_INVALID_COINSTALLER", ( 0x800F0227 )) +SPAPI_E_NO_COMPAT_DRIVERS = make_flag("SPAPI_E_NO_COMPAT_DRIVERS", ( 0x800F0228 )) +SPAPI_E_NO_DEVICE_ICON = make_flag("SPAPI_E_NO_DEVICE_ICON", ( 0x800F0229 )) +SPAPI_E_INVALID_INF_LOGCONFIG = make_flag("SPAPI_E_INVALID_INF_LOGCONFIG", ( 0x800F022A )) +SPAPI_E_DI_DONT_INSTALL = make_flag("SPAPI_E_DI_DONT_INSTALL", ( 0x800F022B )) +SPAPI_E_INVALID_FILTER_DRIVER = make_flag("SPAPI_E_INVALID_FILTER_DRIVER", ( 0x800F022C )) +SPAPI_E_NON_WINDOWS_NT_DRIVER = make_flag("SPAPI_E_NON_WINDOWS_NT_DRIVER", ( 0x800F022D )) +SPAPI_E_NON_WINDOWS_DRIVER = make_flag("SPAPI_E_NON_WINDOWS_DRIVER", ( 0x800F022E )) +SPAPI_E_NO_CATALOG_FOR_OEM_INF = make_flag("SPAPI_E_NO_CATALOG_FOR_OEM_INF", ( 0x800F022F )) +SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE = make_flag("SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE", ( 0x800F0230 )) +SPAPI_E_NOT_DISABLEABLE = make_flag("SPAPI_E_NOT_DISABLEABLE", ( 0x800F0231 )) +SPAPI_E_CANT_REMOVE_DEVINST = make_flag("SPAPI_E_CANT_REMOVE_DEVINST", ( 0x800F0232 )) +SPAPI_E_INVALID_TARGET = make_flag("SPAPI_E_INVALID_TARGET", ( 0x800F0233 )) +SPAPI_E_DRIVER_NONNATIVE = make_flag("SPAPI_E_DRIVER_NONNATIVE", ( 0x800F0234 )) +SPAPI_E_IN_WOW64 = make_flag("SPAPI_E_IN_WOW64", ( 0x800F0235 )) +SPAPI_E_SET_SYSTEM_RESTORE_POINT = make_flag("SPAPI_E_SET_SYSTEM_RESTORE_POINT", ( 0x800F0236 )) +SPAPI_E_INCORRECTLY_COPIED_INF = make_flag("SPAPI_E_INCORRECTLY_COPIED_INF", ( 0x800F0237 )) +SPAPI_E_SCE_DISABLED = make_flag("SPAPI_E_SCE_DISABLED", ( 0x800F0238 )) +SPAPI_E_UNKNOWN_EXCEPTION = make_flag("SPAPI_E_UNKNOWN_EXCEPTION", ( 0x800F0239 )) +SPAPI_E_PNP_REGISTRY_ERROR = make_flag("SPAPI_E_PNP_REGISTRY_ERROR", ( 0x800F023A )) +SPAPI_E_REMOTE_REQUEST_UNSUPPORTED = make_flag("SPAPI_E_REMOTE_REQUEST_UNSUPPORTED", ( 0x800F023B )) +SPAPI_E_NOT_AN_INSTALLED_OEM_INF = make_flag("SPAPI_E_NOT_AN_INSTALLED_OEM_INF", ( 0x800F023C )) +SPAPI_E_INF_IN_USE_BY_DEVICES = make_flag("SPAPI_E_INF_IN_USE_BY_DEVICES", ( 0x800F023D )) +SPAPI_E_DI_FUNCTION_OBSOLETE = make_flag("SPAPI_E_DI_FUNCTION_OBSOLETE", ( 0x800F023E )) +SPAPI_E_NO_AUTHENTICODE_CATALOG = make_flag("SPAPI_E_NO_AUTHENTICODE_CATALOG", ( 0x800F023F )) +SPAPI_E_AUTHENTICODE_DISALLOWED = make_flag("SPAPI_E_AUTHENTICODE_DISALLOWED", ( 0x800F0240 )) +SPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER = make_flag("SPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER", ( 0x800F0241 )) +SPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED = make_flag("SPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED", ( 0x800F0242 )) +SPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED = make_flag("SPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED", ( 0x800F0243 )) +SPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH = make_flag("SPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH", ( 0x800F0244 )) +SPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE = make_flag("SPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE", ( 0x800F0245 )) +SPAPI_E_DEVICE_INSTALLER_NOT_READY = make_flag("SPAPI_E_DEVICE_INSTALLER_NOT_READY", ( 0x800F0246 )) +SPAPI_E_DRIVER_STORE_ADD_FAILED = make_flag("SPAPI_E_DRIVER_STORE_ADD_FAILED", ( 0x800F0247 )) +SPAPI_E_DEVICE_INSTALL_BLOCKED = make_flag("SPAPI_E_DEVICE_INSTALL_BLOCKED", ( 0x800F0248 )) +SPAPI_E_DRIVER_INSTALL_BLOCKED = make_flag("SPAPI_E_DRIVER_INSTALL_BLOCKED", ( 0x800F0249 )) +SPAPI_E_WRONG_INF_TYPE = make_flag("SPAPI_E_WRONG_INF_TYPE", ( 0x800F024A )) +SPAPI_E_FILE_HASH_NOT_IN_CATALOG = make_flag("SPAPI_E_FILE_HASH_NOT_IN_CATALOG", ( 0x800F024B )) +SPAPI_E_DRIVER_STORE_DELETE_FAILED = make_flag("SPAPI_E_DRIVER_STORE_DELETE_FAILED", ( 0x800F024C )) +SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW = make_flag("SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW", ( 0x800F0300 )) +SPAPI_E_ERROR_NOT_INSTALLED = make_flag("SPAPI_E_ERROR_NOT_INSTALLED", ( 0x800F1000 )) +SCARD_S_SUCCESS = make_flag("SCARD_S_SUCCESS", NO_ERROR) +SCARD_F_INTERNAL_ERROR = make_flag("SCARD_F_INTERNAL_ERROR", ( 0x80100001 )) +SCARD_E_CANCELLED = make_flag("SCARD_E_CANCELLED", ( 0x80100002 )) +SCARD_E_INVALID_HANDLE = make_flag("SCARD_E_INVALID_HANDLE", ( 0x80100003 )) +SCARD_E_INVALID_PARAMETER = make_flag("SCARD_E_INVALID_PARAMETER", ( 0x80100004 )) +SCARD_E_INVALID_TARGET = make_flag("SCARD_E_INVALID_TARGET", ( 0x80100005 )) +SCARD_E_NO_MEMORY = make_flag("SCARD_E_NO_MEMORY", ( 0x80100006 )) +SCARD_F_WAITED_TOO_LONG = make_flag("SCARD_F_WAITED_TOO_LONG", ( 0x80100007 )) +SCARD_E_INSUFFICIENT_BUFFER = make_flag("SCARD_E_INSUFFICIENT_BUFFER", ( 0x80100008 )) +SCARD_E_UNKNOWN_READER = make_flag("SCARD_E_UNKNOWN_READER", ( 0x80100009 )) +SCARD_E_TIMEOUT = make_flag("SCARD_E_TIMEOUT", ( 0x8010000A )) +SCARD_E_SHARING_VIOLATION = make_flag("SCARD_E_SHARING_VIOLATION", ( 0x8010000B )) +SCARD_E_NO_SMARTCARD = make_flag("SCARD_E_NO_SMARTCARD", ( 0x8010000C )) +SCARD_E_UNKNOWN_CARD = make_flag("SCARD_E_UNKNOWN_CARD", ( 0x8010000D )) +SCARD_E_CANT_DISPOSE = make_flag("SCARD_E_CANT_DISPOSE", ( 0x8010000E )) +SCARD_E_PROTO_MISMATCH = make_flag("SCARD_E_PROTO_MISMATCH", ( 0x8010000F )) +SCARD_E_NOT_READY = make_flag("SCARD_E_NOT_READY", ( 0x80100010 )) +SCARD_E_INVALID_VALUE = make_flag("SCARD_E_INVALID_VALUE", ( 0x80100011 )) +SCARD_E_SYSTEM_CANCELLED = make_flag("SCARD_E_SYSTEM_CANCELLED", ( 0x80100012 )) +SCARD_F_COMM_ERROR = make_flag("SCARD_F_COMM_ERROR", ( 0x80100013 )) +SCARD_F_UNKNOWN_ERROR = make_flag("SCARD_F_UNKNOWN_ERROR", ( 0x80100014 )) +SCARD_E_INVALID_ATR = make_flag("SCARD_E_INVALID_ATR", ( 0x80100015 )) +SCARD_E_NOT_TRANSACTED = make_flag("SCARD_E_NOT_TRANSACTED", ( 0x80100016 )) +SCARD_E_READER_UNAVAILABLE = make_flag("SCARD_E_READER_UNAVAILABLE", ( 0x80100017 )) +SCARD_P_SHUTDOWN = make_flag("SCARD_P_SHUTDOWN", ( 0x80100018 )) +SCARD_E_PCI_TOO_SMALL = make_flag("SCARD_E_PCI_TOO_SMALL", ( 0x80100019 )) +SCARD_E_READER_UNSUPPORTED = make_flag("SCARD_E_READER_UNSUPPORTED", ( 0x8010001A )) +SCARD_E_DUPLICATE_READER = make_flag("SCARD_E_DUPLICATE_READER", ( 0x8010001B )) +SCARD_E_CARD_UNSUPPORTED = make_flag("SCARD_E_CARD_UNSUPPORTED", ( 0x8010001C )) +SCARD_E_NO_SERVICE = make_flag("SCARD_E_NO_SERVICE", ( 0x8010001D )) +SCARD_E_SERVICE_STOPPED = make_flag("SCARD_E_SERVICE_STOPPED", ( 0x8010001E )) +SCARD_E_UNEXPECTED = make_flag("SCARD_E_UNEXPECTED", ( 0x8010001F )) +SCARD_E_ICC_INSTALLATION = make_flag("SCARD_E_ICC_INSTALLATION", ( 0x80100020 )) +SCARD_E_ICC_CREATEORDER = make_flag("SCARD_E_ICC_CREATEORDER", ( 0x80100021 )) +SCARD_E_UNSUPPORTED_FEATURE = make_flag("SCARD_E_UNSUPPORTED_FEATURE", ( 0x80100022 )) +SCARD_E_DIR_NOT_FOUND = make_flag("SCARD_E_DIR_NOT_FOUND", ( 0x80100023 )) +SCARD_E_FILE_NOT_FOUND = make_flag("SCARD_E_FILE_NOT_FOUND", ( 0x80100024 )) +SCARD_E_NO_DIR = make_flag("SCARD_E_NO_DIR", ( 0x80100025 )) +SCARD_E_NO_FILE = make_flag("SCARD_E_NO_FILE", ( 0x80100026 )) +SCARD_E_NO_ACCESS = make_flag("SCARD_E_NO_ACCESS", ( 0x80100027 )) +SCARD_E_WRITE_TOO_MANY = make_flag("SCARD_E_WRITE_TOO_MANY", ( 0x80100028 )) +SCARD_E_BAD_SEEK = make_flag("SCARD_E_BAD_SEEK", ( 0x80100029 )) +SCARD_E_INVALID_CHV = make_flag("SCARD_E_INVALID_CHV", ( 0x8010002A )) +SCARD_E_UNKNOWN_RES_MNG = make_flag("SCARD_E_UNKNOWN_RES_MNG", ( 0x8010002B )) +SCARD_E_NO_SUCH_CERTIFICATE = make_flag("SCARD_E_NO_SUCH_CERTIFICATE", ( 0x8010002C )) +SCARD_E_CERTIFICATE_UNAVAILABLE = make_flag("SCARD_E_CERTIFICATE_UNAVAILABLE", ( 0x8010002D )) +SCARD_E_NO_READERS_AVAILABLE = make_flag("SCARD_E_NO_READERS_AVAILABLE", ( 0x8010002E )) +SCARD_E_COMM_DATA_LOST = make_flag("SCARD_E_COMM_DATA_LOST", ( 0x8010002F )) +SCARD_E_NO_KEY_CONTAINER = make_flag("SCARD_E_NO_KEY_CONTAINER", ( 0x80100030 )) +SCARD_E_SERVER_TOO_BUSY = make_flag("SCARD_E_SERVER_TOO_BUSY", ( 0x80100031 )) +SCARD_E_PIN_CACHE_EXPIRED = make_flag("SCARD_E_PIN_CACHE_EXPIRED", ( 0x80100032 )) +SCARD_E_NO_PIN_CACHE = make_flag("SCARD_E_NO_PIN_CACHE", ( 0x80100033 )) +SCARD_E_READ_ONLY_CARD = make_flag("SCARD_E_READ_ONLY_CARD", ( 0x80100034 )) +SCARD_W_UNSUPPORTED_CARD = make_flag("SCARD_W_UNSUPPORTED_CARD", ( 0x80100065 )) +SCARD_W_UNRESPONSIVE_CARD = make_flag("SCARD_W_UNRESPONSIVE_CARD", ( 0x80100066 )) +SCARD_W_UNPOWERED_CARD = make_flag("SCARD_W_UNPOWERED_CARD", ( 0x80100067 )) +SCARD_W_RESET_CARD = make_flag("SCARD_W_RESET_CARD", ( 0x80100068 )) +SCARD_W_REMOVED_CARD = make_flag("SCARD_W_REMOVED_CARD", ( 0x80100069 )) +SCARD_W_SECURITY_VIOLATION = make_flag("SCARD_W_SECURITY_VIOLATION", ( 0x8010006A )) +SCARD_W_WRONG_CHV = make_flag("SCARD_W_WRONG_CHV", ( 0x8010006B )) +SCARD_W_CHV_BLOCKED = make_flag("SCARD_W_CHV_BLOCKED", ( 0x8010006C )) +SCARD_W_EOF = make_flag("SCARD_W_EOF", ( 0x8010006D )) +SCARD_W_CANCELLED_BY_USER = make_flag("SCARD_W_CANCELLED_BY_USER", ( 0x8010006E )) +SCARD_W_CARD_NOT_AUTHENTICATED = make_flag("SCARD_W_CARD_NOT_AUTHENTICATED", ( 0x8010006F )) +SCARD_W_CACHE_ITEM_NOT_FOUND = make_flag("SCARD_W_CACHE_ITEM_NOT_FOUND", ( 0x80100070 )) +SCARD_W_CACHE_ITEM_STALE = make_flag("SCARD_W_CACHE_ITEM_STALE", ( 0x80100071 )) +SCARD_W_CACHE_ITEM_TOO_BIG = make_flag("SCARD_W_CACHE_ITEM_TOO_BIG", ( 0x80100072 )) +COMADMIN_E_OBJECTERRORS = make_flag("COMADMIN_E_OBJECTERRORS", ( 0x80110401 )) +COMADMIN_E_OBJECTINVALID = make_flag("COMADMIN_E_OBJECTINVALID", ( 0x80110402 )) +COMADMIN_E_KEYMISSING = make_flag("COMADMIN_E_KEYMISSING", ( 0x80110403 )) +COMADMIN_E_ALREADYINSTALLED = make_flag("COMADMIN_E_ALREADYINSTALLED", ( 0x80110404 )) +COMADMIN_E_APP_FILE_WRITEFAIL = make_flag("COMADMIN_E_APP_FILE_WRITEFAIL", ( 0x80110407 )) +COMADMIN_E_APP_FILE_READFAIL = make_flag("COMADMIN_E_APP_FILE_READFAIL", ( 0x80110408 )) +COMADMIN_E_APP_FILE_VERSION = make_flag("COMADMIN_E_APP_FILE_VERSION", ( 0x80110409 )) +COMADMIN_E_BADPATH = make_flag("COMADMIN_E_BADPATH", ( 0x8011040A )) +COMADMIN_E_APPLICATIONEXISTS = make_flag("COMADMIN_E_APPLICATIONEXISTS", ( 0x8011040B )) +COMADMIN_E_ROLEEXISTS = make_flag("COMADMIN_E_ROLEEXISTS", ( 0x8011040C )) +COMADMIN_E_CANTCOPYFILE = make_flag("COMADMIN_E_CANTCOPYFILE", ( 0x8011040D )) +COMADMIN_E_NOUSER = make_flag("COMADMIN_E_NOUSER", ( 0x8011040F )) +COMADMIN_E_INVALIDUSERIDS = make_flag("COMADMIN_E_INVALIDUSERIDS", ( 0x80110410 )) +COMADMIN_E_NOREGISTRYCLSID = make_flag("COMADMIN_E_NOREGISTRYCLSID", ( 0x80110411 )) +COMADMIN_E_BADREGISTRYPROGID = make_flag("COMADMIN_E_BADREGISTRYPROGID", ( 0x80110412 )) +COMADMIN_E_AUTHENTICATIONLEVEL = make_flag("COMADMIN_E_AUTHENTICATIONLEVEL", ( 0x80110413 )) +COMADMIN_E_USERPASSWDNOTVALID = make_flag("COMADMIN_E_USERPASSWDNOTVALID", ( 0x80110414 )) +COMADMIN_E_CLSIDORIIDMISMATCH = make_flag("COMADMIN_E_CLSIDORIIDMISMATCH", ( 0x80110418 )) +COMADMIN_E_REMOTEINTERFACE = make_flag("COMADMIN_E_REMOTEINTERFACE", ( 0x80110419 )) +COMADMIN_E_DLLREGISTERSERVER = make_flag("COMADMIN_E_DLLREGISTERSERVER", ( 0x8011041A )) +COMADMIN_E_NOSERVERSHARE = make_flag("COMADMIN_E_NOSERVERSHARE", ( 0x8011041B )) +COMADMIN_E_DLLLOADFAILED = make_flag("COMADMIN_E_DLLLOADFAILED", ( 0x8011041D )) +COMADMIN_E_BADREGISTRYLIBID = make_flag("COMADMIN_E_BADREGISTRYLIBID", ( 0x8011041E )) +COMADMIN_E_APPDIRNOTFOUND = make_flag("COMADMIN_E_APPDIRNOTFOUND", ( 0x8011041F )) +COMADMIN_E_REGISTRARFAILED = make_flag("COMADMIN_E_REGISTRARFAILED", ( 0x80110423 )) +COMADMIN_E_COMPFILE_DOESNOTEXIST = make_flag("COMADMIN_E_COMPFILE_DOESNOTEXIST", ( 0x80110424 )) +COMADMIN_E_COMPFILE_LOADDLLFAIL = make_flag("COMADMIN_E_COMPFILE_LOADDLLFAIL", ( 0x80110425 )) +COMADMIN_E_COMPFILE_GETCLASSOBJ = make_flag("COMADMIN_E_COMPFILE_GETCLASSOBJ", ( 0x80110426 )) +COMADMIN_E_COMPFILE_CLASSNOTAVAIL = make_flag("COMADMIN_E_COMPFILE_CLASSNOTAVAIL", ( 0x80110427 )) +COMADMIN_E_COMPFILE_BADTLB = make_flag("COMADMIN_E_COMPFILE_BADTLB", ( 0x80110428 )) +COMADMIN_E_COMPFILE_NOTINSTALLABLE = make_flag("COMADMIN_E_COMPFILE_NOTINSTALLABLE", ( 0x80110429 )) +COMADMIN_E_NOTCHANGEABLE = make_flag("COMADMIN_E_NOTCHANGEABLE", ( 0x8011042A )) +COMADMIN_E_NOTDELETEABLE = make_flag("COMADMIN_E_NOTDELETEABLE", ( 0x8011042B )) +COMADMIN_E_SESSION = make_flag("COMADMIN_E_SESSION", ( 0x8011042C )) +COMADMIN_E_COMP_MOVE_LOCKED = make_flag("COMADMIN_E_COMP_MOVE_LOCKED", ( 0x8011042D )) +COMADMIN_E_COMP_MOVE_BAD_DEST = make_flag("COMADMIN_E_COMP_MOVE_BAD_DEST", ( 0x8011042E )) +COMADMIN_E_REGISTERTLB = make_flag("COMADMIN_E_REGISTERTLB", ( 0x80110430 )) +COMADMIN_E_SYSTEMAPP = make_flag("COMADMIN_E_SYSTEMAPP", ( 0x80110433 )) +COMADMIN_E_COMPFILE_NOREGISTRAR = make_flag("COMADMIN_E_COMPFILE_NOREGISTRAR", ( 0x80110434 )) +COMADMIN_E_COREQCOMPINSTALLED = make_flag("COMADMIN_E_COREQCOMPINSTALLED", ( 0x80110435 )) +COMADMIN_E_SERVICENOTINSTALLED = make_flag("COMADMIN_E_SERVICENOTINSTALLED", ( 0x80110436 )) +COMADMIN_E_PROPERTYSAVEFAILED = make_flag("COMADMIN_E_PROPERTYSAVEFAILED", ( 0x80110437 )) +COMADMIN_E_OBJECTEXISTS = make_flag("COMADMIN_E_OBJECTEXISTS", ( 0x80110438 )) +COMADMIN_E_COMPONENTEXISTS = make_flag("COMADMIN_E_COMPONENTEXISTS", ( 0x80110439 )) +COMADMIN_E_REGFILE_CORRUPT = make_flag("COMADMIN_E_REGFILE_CORRUPT", ( 0x8011043B )) +COMADMIN_E_PROPERTY_OVERFLOW = make_flag("COMADMIN_E_PROPERTY_OVERFLOW", ( 0x8011043C )) +COMADMIN_E_NOTINREGISTRY = make_flag("COMADMIN_E_NOTINREGISTRY", ( 0x8011043E )) +COMADMIN_E_OBJECTNOTPOOLABLE = make_flag("COMADMIN_E_OBJECTNOTPOOLABLE", ( 0x8011043F )) +COMADMIN_E_APPLID_MATCHES_CLSID = make_flag("COMADMIN_E_APPLID_MATCHES_CLSID", ( 0x80110446 )) +COMADMIN_E_ROLE_DOES_NOT_EXIST = make_flag("COMADMIN_E_ROLE_DOES_NOT_EXIST", ( 0x80110447 )) +COMADMIN_E_START_APP_NEEDS_COMPONENTS = make_flag("COMADMIN_E_START_APP_NEEDS_COMPONENTS", ( 0x80110448 )) +COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM = make_flag("COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM", ( 0x80110449 )) +COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY = make_flag("COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY", ( 0x8011044A )) +COMADMIN_E_CAN_NOT_START_APP = make_flag("COMADMIN_E_CAN_NOT_START_APP", ( 0x8011044B )) +COMADMIN_E_CAN_NOT_EXPORT_SYS_APP = make_flag("COMADMIN_E_CAN_NOT_EXPORT_SYS_APP", ( 0x8011044C )) +COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT = make_flag("COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT", ( 0x8011044D )) +COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER = make_flag("COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER", ( 0x8011044E )) +COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE = make_flag("COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE", ( 0x8011044F )) +COMADMIN_E_BASE_PARTITION_ONLY = make_flag("COMADMIN_E_BASE_PARTITION_ONLY", ( 0x80110450 )) +COMADMIN_E_START_APP_DISABLED = make_flag("COMADMIN_E_START_APP_DISABLED", ( 0x80110451 )) +COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME = make_flag("COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME", ( 0x80110457 )) +COMADMIN_E_CAT_INVALID_PARTITION_NAME = make_flag("COMADMIN_E_CAT_INVALID_PARTITION_NAME", ( 0x80110458 )) +COMADMIN_E_CAT_PARTITION_IN_USE = make_flag("COMADMIN_E_CAT_PARTITION_IN_USE", ( 0x80110459 )) +COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES = make_flag("COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES", ( 0x8011045A )) +COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED = make_flag("COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED", ( 0x8011045B )) +COMADMIN_E_AMBIGUOUS_APPLICATION_NAME = make_flag("COMADMIN_E_AMBIGUOUS_APPLICATION_NAME", ( 0x8011045C )) +COMADMIN_E_AMBIGUOUS_PARTITION_NAME = make_flag("COMADMIN_E_AMBIGUOUS_PARTITION_NAME", ( 0x8011045D )) +COMADMIN_E_REGDB_NOTINITIALIZED = make_flag("COMADMIN_E_REGDB_NOTINITIALIZED", ( 0x80110472 )) +COMADMIN_E_REGDB_NOTOPEN = make_flag("COMADMIN_E_REGDB_NOTOPEN", ( 0x80110473 )) +COMADMIN_E_REGDB_SYSTEMERR = make_flag("COMADMIN_E_REGDB_SYSTEMERR", ( 0x80110474 )) +COMADMIN_E_REGDB_ALREADYRUNNING = make_flag("COMADMIN_E_REGDB_ALREADYRUNNING", ( 0x80110475 )) +COMADMIN_E_MIG_VERSIONNOTSUPPORTED = make_flag("COMADMIN_E_MIG_VERSIONNOTSUPPORTED", ( 0x80110480 )) +COMADMIN_E_MIG_SCHEMANOTFOUND = make_flag("COMADMIN_E_MIG_SCHEMANOTFOUND", ( 0x80110481 )) +COMADMIN_E_CAT_BITNESSMISMATCH = make_flag("COMADMIN_E_CAT_BITNESSMISMATCH", ( 0x80110482 )) +COMADMIN_E_CAT_UNACCEPTABLEBITNESS = make_flag("COMADMIN_E_CAT_UNACCEPTABLEBITNESS", ( 0x80110483 )) +COMADMIN_E_CAT_WRONGAPPBITNESS = make_flag("COMADMIN_E_CAT_WRONGAPPBITNESS", ( 0x80110484 )) +COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED = make_flag("COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED", ( 0x80110485 )) +COMADMIN_E_CAT_SERVERFAULT = make_flag("COMADMIN_E_CAT_SERVERFAULT", ( 0x80110486 )) +COMQC_E_APPLICATION_NOT_QUEUED = make_flag("COMQC_E_APPLICATION_NOT_QUEUED", ( 0x80110600 )) +COMQC_E_NO_QUEUEABLE_INTERFACES = make_flag("COMQC_E_NO_QUEUEABLE_INTERFACES", ( 0x80110601 )) +COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE = make_flag("COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE", ( 0x80110602 )) +COMQC_E_NO_IPERSISTSTREAM = make_flag("COMQC_E_NO_IPERSISTSTREAM", ( 0x80110603 )) +COMQC_E_BAD_MESSAGE = make_flag("COMQC_E_BAD_MESSAGE", ( 0x80110604 )) +COMQC_E_UNAUTHENTICATED = make_flag("COMQC_E_UNAUTHENTICATED", ( 0x80110605 )) +COMQC_E_UNTRUSTED_ENQUEUER = make_flag("COMQC_E_UNTRUSTED_ENQUEUER", ( 0x80110606 )) +MSDTC_E_DUPLICATE_RESOURCE = make_flag("MSDTC_E_DUPLICATE_RESOURCE", ( 0x80110701 )) +COMADMIN_E_OBJECT_PARENT_MISSING = make_flag("COMADMIN_E_OBJECT_PARENT_MISSING", ( 0x80110808 )) +COMADMIN_E_OBJECT_DOES_NOT_EXIST = make_flag("COMADMIN_E_OBJECT_DOES_NOT_EXIST", ( 0x80110809 )) +COMADMIN_E_APP_NOT_RUNNING = make_flag("COMADMIN_E_APP_NOT_RUNNING", ( 0x8011080A )) +COMADMIN_E_INVALID_PARTITION = make_flag("COMADMIN_E_INVALID_PARTITION", ( 0x8011080B )) +COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE = make_flag("COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE", ( 0x8011080D )) +COMADMIN_E_USER_IN_SET = make_flag("COMADMIN_E_USER_IN_SET", ( 0x8011080E )) +COMADMIN_E_CANTRECYCLELIBRARYAPPS = make_flag("COMADMIN_E_CANTRECYCLELIBRARYAPPS", ( 0x8011080F )) +COMADMIN_E_CANTRECYCLESERVICEAPPS = make_flag("COMADMIN_E_CANTRECYCLESERVICEAPPS", ( 0x80110811 )) +COMADMIN_E_PROCESSALREADYRECYCLED = make_flag("COMADMIN_E_PROCESSALREADYRECYCLED", ( 0x80110812 )) +COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED = make_flag("COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED", ( 0x80110813 )) +COMADMIN_E_CANTMAKEINPROCSERVICE = make_flag("COMADMIN_E_CANTMAKEINPROCSERVICE", ( 0x80110814 )) +COMADMIN_E_PROGIDINUSEBYCLSID = make_flag("COMADMIN_E_PROGIDINUSEBYCLSID", ( 0x80110815 )) +COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET = make_flag("COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET", ( 0x80110816 )) +COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED = make_flag("COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED", ( 0x80110817 )) +COMADMIN_E_PARTITION_ACCESSDENIED = make_flag("COMADMIN_E_PARTITION_ACCESSDENIED", ( 0x80110818 )) +COMADMIN_E_PARTITION_MSI_ONLY = make_flag("COMADMIN_E_PARTITION_MSI_ONLY", ( 0x80110819 )) +COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT = make_flag("COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT", ( 0x8011081A )) +COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS = make_flag("COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS", ( 0x8011081B )) +COMADMIN_E_COMP_MOVE_SOURCE = make_flag("COMADMIN_E_COMP_MOVE_SOURCE", ( 0x8011081C )) +COMADMIN_E_COMP_MOVE_DEST = make_flag("COMADMIN_E_COMP_MOVE_DEST", ( 0x8011081D )) +COMADMIN_E_COMP_MOVE_PRIVATE = make_flag("COMADMIN_E_COMP_MOVE_PRIVATE", ( 0x8011081E )) +COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET = make_flag("COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET", ( 0x8011081F )) +COMADMIN_E_CANNOT_ALIAS_EVENTCLASS = make_flag("COMADMIN_E_CANNOT_ALIAS_EVENTCLASS", ( 0x80110820 )) +COMADMIN_E_PRIVATE_ACCESSDENIED = make_flag("COMADMIN_E_PRIVATE_ACCESSDENIED", ( 0x80110821 )) +COMADMIN_E_SAFERINVALID = make_flag("COMADMIN_E_SAFERINVALID", ( 0x80110822 )) +COMADMIN_E_REGISTRY_ACCESSDENIED = make_flag("COMADMIN_E_REGISTRY_ACCESSDENIED", ( 0x80110823 )) +COMADMIN_E_PARTITIONS_DISABLED = make_flag("COMADMIN_E_PARTITIONS_DISABLED", ( 0x80110824 )) +WER_S_REPORT_DEBUG = make_flag("WER_S_REPORT_DEBUG", ( 0x001B0000 )) +WER_S_REPORT_UPLOADED = make_flag("WER_S_REPORT_UPLOADED", ( 0x001B0001 )) +WER_S_REPORT_QUEUED = make_flag("WER_S_REPORT_QUEUED", ( 0x001B0002 )) +WER_S_DISABLED = make_flag("WER_S_DISABLED", ( 0x001B0003 )) +WER_S_SUSPENDED_UPLOAD = make_flag("WER_S_SUSPENDED_UPLOAD", ( 0x001B0004 )) +WER_S_DISABLED_QUEUE = make_flag("WER_S_DISABLED_QUEUE", ( 0x001B0005 )) +WER_S_DISABLED_ARCHIVE = make_flag("WER_S_DISABLED_ARCHIVE", ( 0x001B0006 )) +WER_S_REPORT_ASYNC = make_flag("WER_S_REPORT_ASYNC", ( 0x001B0007 )) +WER_S_IGNORE_ASSERT_INSTANCE = make_flag("WER_S_IGNORE_ASSERT_INSTANCE", ( 0x001B0008 )) +WER_S_IGNORE_ALL_ASSERTS = make_flag("WER_S_IGNORE_ALL_ASSERTS", ( 0x001B0009 )) +WER_S_ASSERT_CONTINUE = make_flag("WER_S_ASSERT_CONTINUE", ( 0x001B000A )) +WER_S_THROTTLED = make_flag("WER_S_THROTTLED", ( 0x001B000B )) +WER_S_REPORT_UPLOADED_CAB = make_flag("WER_S_REPORT_UPLOADED_CAB", ( 0x001B000C )) +WER_E_CRASH_FAILURE = make_flag("WER_E_CRASH_FAILURE", ( 0x801B8000 )) +WER_E_CANCELED = make_flag("WER_E_CANCELED", ( 0x801B8001 )) +WER_E_NETWORK_FAILURE = make_flag("WER_E_NETWORK_FAILURE", ( 0x801B8002 )) +WER_E_NOT_INITIALIZED = make_flag("WER_E_NOT_INITIALIZED", ( 0x801B8003 )) +WER_E_ALREADY_REPORTING = make_flag("WER_E_ALREADY_REPORTING", ( 0x801B8004 )) +WER_E_DUMP_THROTTLED = make_flag("WER_E_DUMP_THROTTLED", ( 0x801B8005 )) +WER_E_INSUFFICIENT_CONSENT = make_flag("WER_E_INSUFFICIENT_CONSENT", ( 0x801B8006 )) +WER_E_TOO_HEAVY = make_flag("WER_E_TOO_HEAVY", ( 0x801B8007 )) +ERROR_FLT_IO_COMPLETE = make_flag("ERROR_FLT_IO_COMPLETE", ( 0x001F0001 )) +ERROR_FLT_NO_HANDLER_DEFINED = make_flag("ERROR_FLT_NO_HANDLER_DEFINED", ( 0x801F0001 )) +ERROR_FLT_CONTEXT_ALREADY_DEFINED = make_flag("ERROR_FLT_CONTEXT_ALREADY_DEFINED", ( 0x801F0002 )) +ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST = make_flag("ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST", ( 0x801F0003 )) +ERROR_FLT_DISALLOW_FAST_IO = make_flag("ERROR_FLT_DISALLOW_FAST_IO", ( 0x801F0004 )) +ERROR_FLT_INVALID_NAME_REQUEST = make_flag("ERROR_FLT_INVALID_NAME_REQUEST", ( 0x801F0005 )) +ERROR_FLT_NOT_SAFE_TO_POST_OPERATION = make_flag("ERROR_FLT_NOT_SAFE_TO_POST_OPERATION", ( 0x801F0006 )) +ERROR_FLT_NOT_INITIALIZED = make_flag("ERROR_FLT_NOT_INITIALIZED", ( 0x801F0007 )) +ERROR_FLT_FILTER_NOT_READY = make_flag("ERROR_FLT_FILTER_NOT_READY", ( 0x801F0008 )) +ERROR_FLT_POST_OPERATION_CLEANUP = make_flag("ERROR_FLT_POST_OPERATION_CLEANUP", ( 0x801F0009 )) +ERROR_FLT_INTERNAL_ERROR = make_flag("ERROR_FLT_INTERNAL_ERROR", ( 0x801F000A )) +ERROR_FLT_DELETING_OBJECT = make_flag("ERROR_FLT_DELETING_OBJECT", ( 0x801F000B )) +ERROR_FLT_MUST_BE_NONPAGED_POOL = make_flag("ERROR_FLT_MUST_BE_NONPAGED_POOL", ( 0x801F000C )) +ERROR_FLT_DUPLICATE_ENTRY = make_flag("ERROR_FLT_DUPLICATE_ENTRY", ( 0x801F000D )) +ERROR_FLT_CBDQ_DISABLED = make_flag("ERROR_FLT_CBDQ_DISABLED", ( 0x801F000E )) +ERROR_FLT_DO_NOT_ATTACH = make_flag("ERROR_FLT_DO_NOT_ATTACH", ( 0x801F000F )) +ERROR_FLT_DO_NOT_DETACH = make_flag("ERROR_FLT_DO_NOT_DETACH", ( 0x801F0010 )) +ERROR_FLT_INSTANCE_ALTITUDE_COLLISION = make_flag("ERROR_FLT_INSTANCE_ALTITUDE_COLLISION", ( 0x801F0011 )) +ERROR_FLT_INSTANCE_NAME_COLLISION = make_flag("ERROR_FLT_INSTANCE_NAME_COLLISION", ( 0x801F0012 )) +ERROR_FLT_FILTER_NOT_FOUND = make_flag("ERROR_FLT_FILTER_NOT_FOUND", ( 0x801F0013 )) +ERROR_FLT_VOLUME_NOT_FOUND = make_flag("ERROR_FLT_VOLUME_NOT_FOUND", ( 0x801F0014 )) +ERROR_FLT_INSTANCE_NOT_FOUND = make_flag("ERROR_FLT_INSTANCE_NOT_FOUND", ( 0x801F0015 )) +ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND = make_flag("ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND", ( 0x801F0016 )) +ERROR_FLT_INVALID_CONTEXT_REGISTRATION = make_flag("ERROR_FLT_INVALID_CONTEXT_REGISTRATION", ( 0x801F0017 )) +ERROR_FLT_NAME_CACHE_MISS = make_flag("ERROR_FLT_NAME_CACHE_MISS", ( 0x801F0018 )) +ERROR_FLT_NO_DEVICE_OBJECT = make_flag("ERROR_FLT_NO_DEVICE_OBJECT", ( 0x801F0019 )) +ERROR_FLT_VOLUME_ALREADY_MOUNTED = make_flag("ERROR_FLT_VOLUME_ALREADY_MOUNTED", ( 0x801F001A )) +ERROR_FLT_ALREADY_ENLISTED = make_flag("ERROR_FLT_ALREADY_ENLISTED", ( 0x801F001B )) +ERROR_FLT_CONTEXT_ALREADY_LINKED = make_flag("ERROR_FLT_CONTEXT_ALREADY_LINKED", ( 0x801F001C )) +ERROR_FLT_NO_WAITER_FOR_REPLY = make_flag("ERROR_FLT_NO_WAITER_FOR_REPLY", ( 0x801F0020 )) +ERROR_FLT_REGISTRATION_BUSY = make_flag("ERROR_FLT_REGISTRATION_BUSY", ( 0x801F0023 )) +ERROR_HUNG_DISPLAY_DRIVER_THREAD = make_flag("ERROR_HUNG_DISPLAY_DRIVER_THREAD", ( 0x80260001 )) +DWM_E_COMPOSITIONDISABLED = make_flag("DWM_E_COMPOSITIONDISABLED", ( 0x80263001 )) +DWM_E_REMOTING_NOT_SUPPORTED = make_flag("DWM_E_REMOTING_NOT_SUPPORTED", ( 0x80263002 )) +DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE = make_flag("DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE", ( 0x80263003 )) +DWM_E_NOT_QUEUING_PRESENTS = make_flag("DWM_E_NOT_QUEUING_PRESENTS", ( 0x80263004 )) +DWM_E_ADAPTER_NOT_FOUND = make_flag("DWM_E_ADAPTER_NOT_FOUND", ( 0x80263005 )) +DWM_S_GDI_REDIRECTION_SURFACE = make_flag("DWM_S_GDI_REDIRECTION_SURFACE", ( 0x00263005 )) +DWM_E_TEXTURE_TOO_LARGE = make_flag("DWM_E_TEXTURE_TOO_LARGE", ( 0x80263007 )) +DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI = make_flag("DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI", ( 0x00263008 )) +ERROR_MONITOR_NO_DESCRIPTOR = make_flag("ERROR_MONITOR_NO_DESCRIPTOR", ( 0x00261001 )) +ERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT = make_flag("ERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT", ( 0x00261002 )) +ERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM = make_flag("ERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM", ( 0xC0261003 )) +ERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK = make_flag("ERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK", ( 0xC0261004 )) +ERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED = make_flag("ERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED", ( 0xC0261005 )) +ERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK = make_flag("ERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK", ( 0xC0261006 )) +ERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK = make_flag("ERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK", ( 0xC0261007 )) +ERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA = make_flag("ERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA", ( 0xC0261008 )) +ERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK = make_flag("ERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK", ( 0xC0261009 )) +ERROR_MONITOR_INVALID_MANUFACTURE_DATE = make_flag("ERROR_MONITOR_INVALID_MANUFACTURE_DATE", ( 0xC026100A )) +ERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER = make_flag("ERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER", ( 0xC0262000 )) +ERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER = make_flag("ERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER", ( 0xC0262001 )) +ERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER = make_flag("ERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER", ( 0xC0262002 )) +ERROR_GRAPHICS_ADAPTER_WAS_RESET = make_flag("ERROR_GRAPHICS_ADAPTER_WAS_RESET", ( 0xC0262003 )) +ERROR_GRAPHICS_INVALID_DRIVER_MODEL = make_flag("ERROR_GRAPHICS_INVALID_DRIVER_MODEL", ( 0xC0262004 )) +ERROR_GRAPHICS_PRESENT_MODE_CHANGED = make_flag("ERROR_GRAPHICS_PRESENT_MODE_CHANGED", ( 0xC0262005 )) +ERROR_GRAPHICS_PRESENT_OCCLUDED = make_flag("ERROR_GRAPHICS_PRESENT_OCCLUDED", ( 0xC0262006 )) +ERROR_GRAPHICS_PRESENT_DENIED = make_flag("ERROR_GRAPHICS_PRESENT_DENIED", ( 0xC0262007 )) +ERROR_GRAPHICS_CANNOTCOLORCONVERT = make_flag("ERROR_GRAPHICS_CANNOTCOLORCONVERT", ( 0xC0262008 )) +ERROR_GRAPHICS_DRIVER_MISMATCH = make_flag("ERROR_GRAPHICS_DRIVER_MISMATCH", ( 0xC0262009 )) +ERROR_GRAPHICS_PARTIAL_DATA_POPULATED = make_flag("ERROR_GRAPHICS_PARTIAL_DATA_POPULATED", ( 0x4026200A )) +ERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED = make_flag("ERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED", ( 0xC026200B )) +ERROR_GRAPHICS_PRESENT_UNOCCLUDED = make_flag("ERROR_GRAPHICS_PRESENT_UNOCCLUDED", ( 0xC026200C )) +ERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE = make_flag("ERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE", ( 0xC026200D )) +ERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED = make_flag("ERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED", ( 0xC026200E )) +ERROR_GRAPHICS_PRESENT_INVALID_WINDOW = make_flag("ERROR_GRAPHICS_PRESENT_INVALID_WINDOW", ( 0xC026200F )) +ERROR_GRAPHICS_PRESENT_BUFFER_NOT_BOUND = make_flag("ERROR_GRAPHICS_PRESENT_BUFFER_NOT_BOUND", ( 0xC0262010 )) +ERROR_GRAPHICS_VAIL_STATE_CHANGED = make_flag("ERROR_GRAPHICS_VAIL_STATE_CHANGED", ( 0xC0262011 )) +ERROR_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN = make_flag("ERROR_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN", ( 0xC0262012 )) +ERROR_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED = make_flag("ERROR_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED", ( 0xC0262013 )) +ERROR_GRAPHICS_NO_VIDEO_MEMORY = make_flag("ERROR_GRAPHICS_NO_VIDEO_MEMORY", ( 0xC0262100 )) +ERROR_GRAPHICS_CANT_LOCK_MEMORY = make_flag("ERROR_GRAPHICS_CANT_LOCK_MEMORY", ( 0xC0262101 )) +ERROR_GRAPHICS_ALLOCATION_BUSY = make_flag("ERROR_GRAPHICS_ALLOCATION_BUSY", ( 0xC0262102 )) +ERROR_GRAPHICS_TOO_MANY_REFERENCES = make_flag("ERROR_GRAPHICS_TOO_MANY_REFERENCES", ( 0xC0262103 )) +ERROR_GRAPHICS_TRY_AGAIN_LATER = make_flag("ERROR_GRAPHICS_TRY_AGAIN_LATER", ( 0xC0262104 )) +ERROR_GRAPHICS_TRY_AGAIN_NOW = make_flag("ERROR_GRAPHICS_TRY_AGAIN_NOW", ( 0xC0262105 )) +ERROR_GRAPHICS_ALLOCATION_INVALID = make_flag("ERROR_GRAPHICS_ALLOCATION_INVALID", ( 0xC0262106 )) +ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE = make_flag("ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE", ( 0xC0262107 )) +ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED = make_flag("ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED", ( 0xC0262108 )) +ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION = make_flag("ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION", ( 0xC0262109 )) +ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE = make_flag("ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE", ( 0xC0262110 )) +ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION = make_flag("ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION", ( 0xC0262111 )) +ERROR_GRAPHICS_ALLOCATION_CLOSED = make_flag("ERROR_GRAPHICS_ALLOCATION_CLOSED", ( 0xC0262112 )) +ERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE = make_flag("ERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE", ( 0xC0262113 )) +ERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE = make_flag("ERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE", ( 0xC0262114 )) +ERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE = make_flag("ERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE", ( 0xC0262115 )) +ERROR_GRAPHICS_ALLOCATION_CONTENT_LOST = make_flag("ERROR_GRAPHICS_ALLOCATION_CONTENT_LOST", ( 0xC0262116 )) +ERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE = make_flag("ERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE", ( 0xC0262200 )) +ERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION = make_flag("ERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION", ( 0x40262201 )) +ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY = make_flag("ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY", ( 0xC0262300 )) +ERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED", ( 0xC0262301 )) +ERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED", ( 0xC0262302 )) +ERROR_GRAPHICS_INVALID_VIDPN = make_flag("ERROR_GRAPHICS_INVALID_VIDPN", ( 0xC0262303 )) +ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE = make_flag("ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE", ( 0xC0262304 )) +ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET = make_flag("ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET", ( 0xC0262305 )) +ERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED", ( 0xC0262306 )) +ERROR_GRAPHICS_MODE_NOT_PINNED = make_flag("ERROR_GRAPHICS_MODE_NOT_PINNED", ( 0x00262307 )) +ERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET = make_flag("ERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET", ( 0xC0262308 )) +ERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET = make_flag("ERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET", ( 0xC0262309 )) +ERROR_GRAPHICS_INVALID_FREQUENCY = make_flag("ERROR_GRAPHICS_INVALID_FREQUENCY", ( 0xC026230A )) +ERROR_GRAPHICS_INVALID_ACTIVE_REGION = make_flag("ERROR_GRAPHICS_INVALID_ACTIVE_REGION", ( 0xC026230B )) +ERROR_GRAPHICS_INVALID_TOTAL_REGION = make_flag("ERROR_GRAPHICS_INVALID_TOTAL_REGION", ( 0xC026230C )) +ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE = make_flag("ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE", ( 0xC0262310 )) +ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE = make_flag("ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE", ( 0xC0262311 )) +ERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET = make_flag("ERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET", ( 0xC0262312 )) +ERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY = make_flag("ERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY", ( 0xC0262313 )) +ERROR_GRAPHICS_MODE_ALREADY_IN_MODESET = make_flag("ERROR_GRAPHICS_MODE_ALREADY_IN_MODESET", ( 0xC0262314 )) +ERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET = make_flag("ERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET", ( 0xC0262315 )) +ERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET = make_flag("ERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET", ( 0xC0262316 )) +ERROR_GRAPHICS_SOURCE_ALREADY_IN_SET = make_flag("ERROR_GRAPHICS_SOURCE_ALREADY_IN_SET", ( 0xC0262317 )) +ERROR_GRAPHICS_TARGET_ALREADY_IN_SET = make_flag("ERROR_GRAPHICS_TARGET_ALREADY_IN_SET", ( 0xC0262318 )) +ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH = make_flag("ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH", ( 0xC0262319 )) +ERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY = make_flag("ERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY", ( 0xC026231A )) +ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET = make_flag("ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET", ( 0xC026231B )) +ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE = make_flag("ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE", ( 0xC026231C )) +ERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET = make_flag("ERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET", ( 0xC026231D )) +ERROR_GRAPHICS_NO_PREFERRED_MODE = make_flag("ERROR_GRAPHICS_NO_PREFERRED_MODE", ( 0x0026231E )) +ERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET = make_flag("ERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET", ( 0xC026231F )) +ERROR_GRAPHICS_STALE_MODESET = make_flag("ERROR_GRAPHICS_STALE_MODESET", ( 0xC0262320 )) +ERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET = make_flag("ERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET", ( 0xC0262321 )) +ERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE = make_flag("ERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE", ( 0xC0262322 )) +ERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN = make_flag("ERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN", ( 0xC0262323 )) +ERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE = make_flag("ERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE", ( 0xC0262324 )) +ERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION = make_flag("ERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION", ( 0xC0262325 )) +ERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES = make_flag("ERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES", ( 0xC0262326 )) +ERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY = make_flag("ERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY", ( 0xC0262327 )) +ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE = make_flag("ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE", ( 0xC0262328 )) +ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET = make_flag("ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET", ( 0xC0262329 )) +ERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET = make_flag("ERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET", ( 0xC026232A )) +ERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR = make_flag("ERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR", ( 0xC026232B )) +ERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET = make_flag("ERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET", ( 0xC026232C )) +ERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET = make_flag("ERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET", ( 0xC026232D )) +ERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE = make_flag("ERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE", ( 0xC026232E )) +ERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE = make_flag("ERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE", ( 0xC026232F )) +ERROR_GRAPHICS_RESOURCES_NOT_RELATED = make_flag("ERROR_GRAPHICS_RESOURCES_NOT_RELATED", ( 0xC0262330 )) +ERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE = make_flag("ERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE", ( 0xC0262331 )) +ERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE = make_flag("ERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE", ( 0xC0262332 )) +ERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET = make_flag("ERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET", ( 0xC0262333 )) +ERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER = make_flag("ERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER", ( 0xC0262334 )) +ERROR_GRAPHICS_NO_VIDPNMGR = make_flag("ERROR_GRAPHICS_NO_VIDPNMGR", ( 0xC0262335 )) +ERROR_GRAPHICS_NO_ACTIVE_VIDPN = make_flag("ERROR_GRAPHICS_NO_ACTIVE_VIDPN", ( 0xC0262336 )) +ERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY = make_flag("ERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY", ( 0xC0262337 )) +ERROR_GRAPHICS_MONITOR_NOT_CONNECTED = make_flag("ERROR_GRAPHICS_MONITOR_NOT_CONNECTED", ( 0xC0262338 )) +ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY = make_flag("ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY", ( 0xC0262339 )) +ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE = make_flag("ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE", ( 0xC026233A )) +ERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE = make_flag("ERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE", ( 0xC026233B )) +ERROR_GRAPHICS_INVALID_STRIDE = make_flag("ERROR_GRAPHICS_INVALID_STRIDE", ( 0xC026233C )) +ERROR_GRAPHICS_INVALID_PIXELFORMAT = make_flag("ERROR_GRAPHICS_INVALID_PIXELFORMAT", ( 0xC026233D )) +ERROR_GRAPHICS_INVALID_COLORBASIS = make_flag("ERROR_GRAPHICS_INVALID_COLORBASIS", ( 0xC026233E )) +ERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE = make_flag("ERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE", ( 0xC026233F )) +ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY = make_flag("ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY", ( 0xC0262340 )) +ERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT = make_flag("ERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT", ( 0xC0262341 )) +ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE = make_flag("ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE", ( 0xC0262342 )) +ERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN = make_flag("ERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN", ( 0xC0262343 )) +ERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL = make_flag("ERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL", ( 0xC0262344 )) +ERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION = make_flag("ERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION", ( 0xC0262345 )) +ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED", ( 0xC0262346 )) +ERROR_GRAPHICS_INVALID_GAMMA_RAMP = make_flag("ERROR_GRAPHICS_INVALID_GAMMA_RAMP", ( 0xC0262347 )) +ERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED", ( 0xC0262348 )) +ERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED", ( 0xC0262349 )) +ERROR_GRAPHICS_MODE_NOT_IN_MODESET = make_flag("ERROR_GRAPHICS_MODE_NOT_IN_MODESET", ( 0xC026234A )) +ERROR_GRAPHICS_DATASET_IS_EMPTY = make_flag("ERROR_GRAPHICS_DATASET_IS_EMPTY", ( 0x0026234B )) +ERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET = make_flag("ERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET", ( 0x0026234C )) +ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON = make_flag("ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON", ( 0xC026234D )) +ERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE = make_flag("ERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE", ( 0xC026234E )) +ERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE = make_flag("ERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE", ( 0xC026234F )) +ERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS = make_flag("ERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS", ( 0xC0262350 )) +ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED = make_flag("ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED", ( 0x00262351 )) +ERROR_GRAPHICS_INVALID_SCANLINE_ORDERING = make_flag("ERROR_GRAPHICS_INVALID_SCANLINE_ORDERING", ( 0xC0262352 )) +ERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED = make_flag("ERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED", ( 0xC0262353 )) +ERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS = make_flag("ERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS", ( 0xC0262354 )) +ERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT = make_flag("ERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT", ( 0xC0262355 )) +ERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM = make_flag("ERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM", ( 0xC0262356 )) +ERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN = make_flag("ERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN", ( 0xC0262357 )) +ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT = make_flag("ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT", ( 0xC0262358 )) +ERROR_GRAPHICS_MAX_NUM_PATHS_REACHED = make_flag("ERROR_GRAPHICS_MAX_NUM_PATHS_REACHED", ( 0xC0262359 )) +ERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION = make_flag("ERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION", ( 0xC026235A )) +ERROR_GRAPHICS_INVALID_CLIENT_TYPE = make_flag("ERROR_GRAPHICS_INVALID_CLIENT_TYPE", ( 0xC026235B )) +ERROR_GRAPHICS_CLIENTVIDPN_NOT_SET = make_flag("ERROR_GRAPHICS_CLIENTVIDPN_NOT_SET", ( 0xC026235C )) +ERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED = make_flag("ERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED", ( 0xC0262400 )) +ERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED", ( 0xC0262401 )) +ERROR_GRAPHICS_UNKNOWN_CHILD_STATUS = make_flag("ERROR_GRAPHICS_UNKNOWN_CHILD_STATUS", ( 0x4026242F )) +ERROR_GRAPHICS_NOT_A_LINKED_ADAPTER = make_flag("ERROR_GRAPHICS_NOT_A_LINKED_ADAPTER", ( 0xC0262430 )) +ERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED = make_flag("ERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED", ( 0xC0262431 )) +ERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED = make_flag("ERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED", ( 0xC0262432 )) +ERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY = make_flag("ERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY", ( 0xC0262433 )) +ERROR_GRAPHICS_CHAINLINKS_NOT_STARTED = make_flag("ERROR_GRAPHICS_CHAINLINKS_NOT_STARTED", ( 0xC0262434 )) +ERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON = make_flag("ERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON", ( 0xC0262435 )) +ERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE = make_flag("ERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE", ( 0xC0262436 )) +ERROR_GRAPHICS_LEADLINK_START_DEFERRED = make_flag("ERROR_GRAPHICS_LEADLINK_START_DEFERRED", ( 0x40262437 )) +ERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER = make_flag("ERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER", ( 0xC0262438 )) +ERROR_GRAPHICS_POLLING_TOO_FREQUENTLY = make_flag("ERROR_GRAPHICS_POLLING_TOO_FREQUENTLY", ( 0x40262439 )) +ERROR_GRAPHICS_START_DEFERRED = make_flag("ERROR_GRAPHICS_START_DEFERRED", ( 0x4026243A )) +ERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED = make_flag("ERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED", ( 0xC026243B )) +ERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS = make_flag("ERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS", ( 0x4026243C )) +ERROR_GRAPHICS_OPM_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_OPM_NOT_SUPPORTED", ( 0xC0262500 )) +ERROR_GRAPHICS_COPP_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_COPP_NOT_SUPPORTED", ( 0xC0262501 )) +ERROR_GRAPHICS_UAB_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_UAB_NOT_SUPPORTED", ( 0xC0262502 )) +ERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS = make_flag("ERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS", ( 0xC0262503 )) +ERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST = make_flag("ERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST", ( 0xC0262505 )) +ERROR_GRAPHICS_OPM_INTERNAL_ERROR = make_flag("ERROR_GRAPHICS_OPM_INTERNAL_ERROR", ( 0xC026250B )) +ERROR_GRAPHICS_OPM_INVALID_HANDLE = make_flag("ERROR_GRAPHICS_OPM_INVALID_HANDLE", ( 0xC026250C )) +ERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH = make_flag("ERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH", ( 0xC026250E )) +ERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED = make_flag("ERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED", ( 0xC026250F )) +ERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED = make_flag("ERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED", ( 0xC0262510 )) +ERROR_GRAPHICS_PVP_HFS_FAILED = make_flag("ERROR_GRAPHICS_PVP_HFS_FAILED", ( 0xC0262511 )) +ERROR_GRAPHICS_OPM_INVALID_SRM = make_flag("ERROR_GRAPHICS_OPM_INVALID_SRM", ( 0xC0262512 )) +ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP = make_flag("ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP", ( 0xC0262513 )) +ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP = make_flag("ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP", ( 0xC0262514 )) +ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA = make_flag("ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA", ( 0xC0262515 )) +ERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET = make_flag("ERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET", ( 0xC0262516 )) +ERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH = make_flag("ERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH", ( 0xC0262517 )) +ERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE = make_flag("ERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE", ( 0xC0262518 )) +ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS = make_flag("ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS", ( 0xC026251A )) +ERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS = make_flag("ERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS", ( 0xC026251B )) +ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS = make_flag("ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS", ( 0xC026251C )) +ERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST = make_flag("ERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST", ( 0xC026251D )) +ERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR = make_flag("ERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR", ( 0xC026251E )) +ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS = make_flag("ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS", ( 0xC026251F )) +ERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED", ( 0xC0262520 )) +ERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST = make_flag("ERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST", ( 0xC0262521 )) +ERROR_GRAPHICS_I2C_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_I2C_NOT_SUPPORTED", ( 0xC0262580 )) +ERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST = make_flag("ERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST", ( 0xC0262581 )) +ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA = make_flag("ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA", ( 0xC0262582 )) +ERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA = make_flag("ERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA", ( 0xC0262583 )) +ERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED", ( 0xC0262584 )) +ERROR_GRAPHICS_DDCCI_INVALID_DATA = make_flag("ERROR_GRAPHICS_DDCCI_INVALID_DATA", ( 0xC0262585 )) +ERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE = make_flag("ERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE", ( 0xC0262586 )) +ERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING = make_flag("ERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING", ( 0xC0262587 )) +ERROR_GRAPHICS_MCA_INTERNAL_ERROR = make_flag("ERROR_GRAPHICS_MCA_INTERNAL_ERROR", ( 0xC0262588 )) +ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND = make_flag("ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND", ( 0xC0262589 )) +ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH = make_flag("ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH", ( 0xC026258A )) +ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM = make_flag("ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM", ( 0xC026258B )) +ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE = make_flag("ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE", ( 0xC026258C )) +ERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS = make_flag("ERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS", ( 0xC026258D )) +ERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE = make_flag("ERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE", ( 0xC02625D8 )) +ERROR_GRAPHICS_MCA_INVALID_VCP_VERSION = make_flag("ERROR_GRAPHICS_MCA_INVALID_VCP_VERSION", ( 0xC02625D9 )) +ERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION = make_flag("ERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION", ( 0xC02625DA )) +ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH = make_flag("ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH", ( 0xC02625DB )) +ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION = make_flag("ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION", ( 0xC02625DC )) +ERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED = make_flag("ERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED", ( 0xC02625DE )) +ERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE = make_flag("ERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE", ( 0xC02625DF )) +ERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED = make_flag("ERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED", ( 0xC02625E0 )) +ERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME = make_flag("ERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME", ( 0xC02625E1 )) +ERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP = make_flag("ERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP", ( 0xC02625E2 )) +ERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED = make_flag("ERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED", ( 0xC02625E3 )) +ERROR_GRAPHICS_INVALID_POINTER = make_flag("ERROR_GRAPHICS_INVALID_POINTER", ( 0xC02625E4 )) +ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE = make_flag("ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE", ( 0xC02625E5 )) +ERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL = make_flag("ERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL", ( 0xC02625E6 )) +ERROR_GRAPHICS_INTERNAL_ERROR = make_flag("ERROR_GRAPHICS_INTERNAL_ERROR", ( 0xC02625E7 )) +ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS = make_flag("ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS", ( 0xC02605E8 )) +NAP_E_INVALID_PACKET = make_flag("NAP_E_INVALID_PACKET", ( 0x80270001 )) +NAP_E_MISSING_SOH = make_flag("NAP_E_MISSING_SOH", ( 0x80270002 )) +NAP_E_CONFLICTING_ID = make_flag("NAP_E_CONFLICTING_ID", ( 0x80270003 )) +NAP_E_NO_CACHED_SOH = make_flag("NAP_E_NO_CACHED_SOH", ( 0x80270004 )) +NAP_E_STILL_BOUND = make_flag("NAP_E_STILL_BOUND", ( 0x80270005 )) +NAP_E_NOT_REGISTERED = make_flag("NAP_E_NOT_REGISTERED", ( 0x80270006 )) +NAP_E_NOT_INITIALIZED = make_flag("NAP_E_NOT_INITIALIZED", ( 0x80270007 )) +NAP_E_MISMATCHED_ID = make_flag("NAP_E_MISMATCHED_ID", ( 0x80270008 )) +NAP_E_NOT_PENDING = make_flag("NAP_E_NOT_PENDING", ( 0x80270009 )) +NAP_E_ID_NOT_FOUND = make_flag("NAP_E_ID_NOT_FOUND", ( 0x8027000A )) +NAP_E_MAXSIZE_TOO_SMALL = make_flag("NAP_E_MAXSIZE_TOO_SMALL", ( 0x8027000B )) +NAP_E_SERVICE_NOT_RUNNING = make_flag("NAP_E_SERVICE_NOT_RUNNING", ( 0x8027000C )) +NAP_S_CERT_ALREADY_PRESENT = make_flag("NAP_S_CERT_ALREADY_PRESENT", ( 0x0027000D )) +NAP_E_ENTITY_DISABLED = make_flag("NAP_E_ENTITY_DISABLED", ( 0x8027000E )) +NAP_E_NETSH_GROUPPOLICY_ERROR = make_flag("NAP_E_NETSH_GROUPPOLICY_ERROR", ( 0x8027000F )) +NAP_E_TOO_MANY_CALLS = make_flag("NAP_E_TOO_MANY_CALLS", ( 0x80270010 )) +NAP_E_SHV_CONFIG_EXISTED = make_flag("NAP_E_SHV_CONFIG_EXISTED", ( 0x80270011 )) +NAP_E_SHV_CONFIG_NOT_FOUND = make_flag("NAP_E_SHV_CONFIG_NOT_FOUND", ( 0x80270012 )) +NAP_E_SHV_TIMEOUT = make_flag("NAP_E_SHV_TIMEOUT", ( 0x80270013 )) +TPM_E_ERROR_MASK = make_flag("TPM_E_ERROR_MASK", ( 0x80280000 )) +TPM_E_AUTHFAIL = make_flag("TPM_E_AUTHFAIL", ( 0x80280001 )) +TPM_E_BADINDEX = make_flag("TPM_E_BADINDEX", ( 0x80280002 )) +TPM_E_BAD_PARAMETER = make_flag("TPM_E_BAD_PARAMETER", ( 0x80280003 )) +TPM_E_AUDITFAILURE = make_flag("TPM_E_AUDITFAILURE", ( 0x80280004 )) +TPM_E_CLEAR_DISABLED = make_flag("TPM_E_CLEAR_DISABLED", ( 0x80280005 )) +TPM_E_DEACTIVATED = make_flag("TPM_E_DEACTIVATED", ( 0x80280006 )) +TPM_E_DISABLED = make_flag("TPM_E_DISABLED", ( 0x80280007 )) +TPM_E_DISABLED_CMD = make_flag("TPM_E_DISABLED_CMD", ( 0x80280008 )) +TPM_E_FAIL = make_flag("TPM_E_FAIL", ( 0x80280009 )) +TPM_E_BAD_ORDINAL = make_flag("TPM_E_BAD_ORDINAL", ( 0x8028000A )) +TPM_E_INSTALL_DISABLED = make_flag("TPM_E_INSTALL_DISABLED", ( 0x8028000B )) +TPM_E_INVALID_KEYHANDLE = make_flag("TPM_E_INVALID_KEYHANDLE", ( 0x8028000C )) +TPM_E_KEYNOTFOUND = make_flag("TPM_E_KEYNOTFOUND", ( 0x8028000D )) +TPM_E_INAPPROPRIATE_ENC = make_flag("TPM_E_INAPPROPRIATE_ENC", ( 0x8028000E )) +TPM_E_MIGRATEFAIL = make_flag("TPM_E_MIGRATEFAIL", ( 0x8028000F )) +TPM_E_INVALID_PCR_INFO = make_flag("TPM_E_INVALID_PCR_INFO", ( 0x80280010 )) +TPM_E_NOSPACE = make_flag("TPM_E_NOSPACE", ( 0x80280011 )) +TPM_E_NOSRK = make_flag("TPM_E_NOSRK", ( 0x80280012 )) +TPM_E_NOTSEALED_BLOB = make_flag("TPM_E_NOTSEALED_BLOB", ( 0x80280013 )) +TPM_E_OWNER_SET = make_flag("TPM_E_OWNER_SET", ( 0x80280014 )) +TPM_E_RESOURCES = make_flag("TPM_E_RESOURCES", ( 0x80280015 )) +TPM_E_SHORTRANDOM = make_flag("TPM_E_SHORTRANDOM", ( 0x80280016 )) +TPM_E_SIZE = make_flag("TPM_E_SIZE", ( 0x80280017 )) +TPM_E_WRONGPCRVAL = make_flag("TPM_E_WRONGPCRVAL", ( 0x80280018 )) +TPM_E_BAD_PARAM_SIZE = make_flag("TPM_E_BAD_PARAM_SIZE", ( 0x80280019 )) +TPM_E_SHA_THREAD = make_flag("TPM_E_SHA_THREAD", ( 0x8028001A )) +TPM_E_SHA_ERROR = make_flag("TPM_E_SHA_ERROR", ( 0x8028001B )) +TPM_E_FAILEDSELFTEST = make_flag("TPM_E_FAILEDSELFTEST", ( 0x8028001C )) +TPM_E_AUTH2FAIL = make_flag("TPM_E_AUTH2FAIL", ( 0x8028001D )) +TPM_E_BADTAG = make_flag("TPM_E_BADTAG", ( 0x8028001E )) +TPM_E_IOERROR = make_flag("TPM_E_IOERROR", ( 0x8028001F )) +TPM_E_ENCRYPT_ERROR = make_flag("TPM_E_ENCRYPT_ERROR", ( 0x80280020 )) +TPM_E_DECRYPT_ERROR = make_flag("TPM_E_DECRYPT_ERROR", ( 0x80280021 )) +TPM_E_INVALID_AUTHHANDLE = make_flag("TPM_E_INVALID_AUTHHANDLE", ( 0x80280022 )) +TPM_E_NO_ENDORSEMENT = make_flag("TPM_E_NO_ENDORSEMENT", ( 0x80280023 )) +TPM_E_INVALID_KEYUSAGE = make_flag("TPM_E_INVALID_KEYUSAGE", ( 0x80280024 )) +TPM_E_WRONG_ENTITYTYPE = make_flag("TPM_E_WRONG_ENTITYTYPE", ( 0x80280025 )) +TPM_E_INVALID_POSTINIT = make_flag("TPM_E_INVALID_POSTINIT", ( 0x80280026 )) +TPM_E_INAPPROPRIATE_SIG = make_flag("TPM_E_INAPPROPRIATE_SIG", ( 0x80280027 )) +TPM_E_BAD_KEY_PROPERTY = make_flag("TPM_E_BAD_KEY_PROPERTY", ( 0x80280028 )) +TPM_E_BAD_MIGRATION = make_flag("TPM_E_BAD_MIGRATION", ( 0x80280029 )) +TPM_E_BAD_SCHEME = make_flag("TPM_E_BAD_SCHEME", ( 0x8028002A )) +TPM_E_BAD_DATASIZE = make_flag("TPM_E_BAD_DATASIZE", ( 0x8028002B )) +TPM_E_BAD_MODE = make_flag("TPM_E_BAD_MODE", ( 0x8028002C )) +TPM_E_BAD_PRESENCE = make_flag("TPM_E_BAD_PRESENCE", ( 0x8028002D )) +TPM_E_BAD_VERSION = make_flag("TPM_E_BAD_VERSION", ( 0x8028002E )) +TPM_E_NO_WRAP_TRANSPORT = make_flag("TPM_E_NO_WRAP_TRANSPORT", ( 0x8028002F )) +TPM_E_AUDITFAIL_UNSUCCESSFUL = make_flag("TPM_E_AUDITFAIL_UNSUCCESSFUL", ( 0x80280030 )) +TPM_E_AUDITFAIL_SUCCESSFUL = make_flag("TPM_E_AUDITFAIL_SUCCESSFUL", ( 0x80280031 )) +TPM_E_NOTRESETABLE = make_flag("TPM_E_NOTRESETABLE", ( 0x80280032 )) +TPM_E_NOTLOCAL = make_flag("TPM_E_NOTLOCAL", ( 0x80280033 )) +TPM_E_BAD_TYPE = make_flag("TPM_E_BAD_TYPE", ( 0x80280034 )) +TPM_E_INVALID_RESOURCE = make_flag("TPM_E_INVALID_RESOURCE", ( 0x80280035 )) +TPM_E_NOTFIPS = make_flag("TPM_E_NOTFIPS", ( 0x80280036 )) +TPM_E_INVALID_FAMILY = make_flag("TPM_E_INVALID_FAMILY", ( 0x80280037 )) +TPM_E_NO_NV_PERMISSION = make_flag("TPM_E_NO_NV_PERMISSION", ( 0x80280038 )) +TPM_E_REQUIRES_SIGN = make_flag("TPM_E_REQUIRES_SIGN", ( 0x80280039 )) +TPM_E_KEY_NOTSUPPORTED = make_flag("TPM_E_KEY_NOTSUPPORTED", ( 0x8028003A )) +TPM_E_AUTH_CONFLICT = make_flag("TPM_E_AUTH_CONFLICT", ( 0x8028003B )) +TPM_E_AREA_LOCKED = make_flag("TPM_E_AREA_LOCKED", ( 0x8028003C )) +TPM_E_BAD_LOCALITY = make_flag("TPM_E_BAD_LOCALITY", ( 0x8028003D )) +TPM_E_READ_ONLY = make_flag("TPM_E_READ_ONLY", ( 0x8028003E )) +TPM_E_PER_NOWRITE = make_flag("TPM_E_PER_NOWRITE", ( 0x8028003F )) +TPM_E_FAMILYCOUNT = make_flag("TPM_E_FAMILYCOUNT", ( 0x80280040 )) +TPM_E_WRITE_LOCKED = make_flag("TPM_E_WRITE_LOCKED", ( 0x80280041 )) +TPM_E_BAD_ATTRIBUTES = make_flag("TPM_E_BAD_ATTRIBUTES", ( 0x80280042 )) +TPM_E_INVALID_STRUCTURE = make_flag("TPM_E_INVALID_STRUCTURE", ( 0x80280043 )) +TPM_E_KEY_OWNER_CONTROL = make_flag("TPM_E_KEY_OWNER_CONTROL", ( 0x80280044 )) +TPM_E_BAD_COUNTER = make_flag("TPM_E_BAD_COUNTER", ( 0x80280045 )) +TPM_E_NOT_FULLWRITE = make_flag("TPM_E_NOT_FULLWRITE", ( 0x80280046 )) +TPM_E_CONTEXT_GAP = make_flag("TPM_E_CONTEXT_GAP", ( 0x80280047 )) +TPM_E_MAXNVWRITES = make_flag("TPM_E_MAXNVWRITES", ( 0x80280048 )) +TPM_E_NOOPERATOR = make_flag("TPM_E_NOOPERATOR", ( 0x80280049 )) +TPM_E_RESOURCEMISSING = make_flag("TPM_E_RESOURCEMISSING", ( 0x8028004A )) +TPM_E_DELEGATE_LOCK = make_flag("TPM_E_DELEGATE_LOCK", ( 0x8028004B )) +TPM_E_DELEGATE_FAMILY = make_flag("TPM_E_DELEGATE_FAMILY", ( 0x8028004C )) +TPM_E_DELEGATE_ADMIN = make_flag("TPM_E_DELEGATE_ADMIN", ( 0x8028004D )) +TPM_E_TRANSPORT_NOTEXCLUSIVE = make_flag("TPM_E_TRANSPORT_NOTEXCLUSIVE", ( 0x8028004E )) +TPM_E_OWNER_CONTROL = make_flag("TPM_E_OWNER_CONTROL", ( 0x8028004F )) +TPM_E_DAA_RESOURCES = make_flag("TPM_E_DAA_RESOURCES", ( 0x80280050 )) +TPM_E_DAA_INPUT_DATA0 = make_flag("TPM_E_DAA_INPUT_DATA0", ( 0x80280051 )) +TPM_E_DAA_INPUT_DATA1 = make_flag("TPM_E_DAA_INPUT_DATA1", ( 0x80280052 )) +TPM_E_DAA_ISSUER_SETTINGS = make_flag("TPM_E_DAA_ISSUER_SETTINGS", ( 0x80280053 )) +TPM_E_DAA_TPM_SETTINGS = make_flag("TPM_E_DAA_TPM_SETTINGS", ( 0x80280054 )) +TPM_E_DAA_STAGE = make_flag("TPM_E_DAA_STAGE", ( 0x80280055 )) +TPM_E_DAA_ISSUER_VALIDITY = make_flag("TPM_E_DAA_ISSUER_VALIDITY", ( 0x80280056 )) +TPM_E_DAA_WRONG_W = make_flag("TPM_E_DAA_WRONG_W", ( 0x80280057 )) +TPM_E_BAD_HANDLE = make_flag("TPM_E_BAD_HANDLE", ( 0x80280058 )) +TPM_E_BAD_DELEGATE = make_flag("TPM_E_BAD_DELEGATE", ( 0x80280059 )) +TPM_E_BADCONTEXT = make_flag("TPM_E_BADCONTEXT", ( 0x8028005A )) +TPM_E_TOOMANYCONTEXTS = make_flag("TPM_E_TOOMANYCONTEXTS", ( 0x8028005B )) +TPM_E_MA_TICKET_SIGNATURE = make_flag("TPM_E_MA_TICKET_SIGNATURE", ( 0x8028005C )) +TPM_E_MA_DESTINATION = make_flag("TPM_E_MA_DESTINATION", ( 0x8028005D )) +TPM_E_MA_SOURCE = make_flag("TPM_E_MA_SOURCE", ( 0x8028005E )) +TPM_E_MA_AUTHORITY = make_flag("TPM_E_MA_AUTHORITY", ( 0x8028005F )) +TPM_E_PERMANENTEK = make_flag("TPM_E_PERMANENTEK", ( 0x80280061 )) +TPM_E_BAD_SIGNATURE = make_flag("TPM_E_BAD_SIGNATURE", ( 0x80280062 )) +TPM_E_NOCONTEXTSPACE = make_flag("TPM_E_NOCONTEXTSPACE", ( 0x80280063 )) +TPM_20_E_ASYMMETRIC = make_flag("TPM_20_E_ASYMMETRIC", ( 0x80280081 )) +TPM_20_E_ATTRIBUTES = make_flag("TPM_20_E_ATTRIBUTES", ( 0x80280082 )) +TPM_20_E_HASH = make_flag("TPM_20_E_HASH", ( 0x80280083 )) +TPM_20_E_VALUE = make_flag("TPM_20_E_VALUE", ( 0x80280084 )) +TPM_20_E_HIERARCHY = make_flag("TPM_20_E_HIERARCHY", ( 0x80280085 )) +TPM_20_E_KEY_SIZE = make_flag("TPM_20_E_KEY_SIZE", ( 0x80280087 )) +TPM_20_E_MGF = make_flag("TPM_20_E_MGF", ( 0x80280088 )) +TPM_20_E_MODE = make_flag("TPM_20_E_MODE", ( 0x80280089 )) +TPM_20_E_TYPE = make_flag("TPM_20_E_TYPE", ( 0x8028008A )) +TPM_20_E_HANDLE = make_flag("TPM_20_E_HANDLE", ( 0x8028008B )) +TPM_20_E_KDF = make_flag("TPM_20_E_KDF", ( 0x8028008C )) +TPM_20_E_RANGE = make_flag("TPM_20_E_RANGE", ( 0x8028008D )) +TPM_20_E_AUTH_FAIL = make_flag("TPM_20_E_AUTH_FAIL", ( 0x8028008E )) +TPM_20_E_NONCE = make_flag("TPM_20_E_NONCE", ( 0x8028008F )) +TPM_20_E_PP = make_flag("TPM_20_E_PP", ( 0x80280090 )) +TPM_20_E_SCHEME = make_flag("TPM_20_E_SCHEME", ( 0x80280092 )) +TPM_20_E_SIZE = make_flag("TPM_20_E_SIZE", ( 0x80280095 )) +TPM_20_E_SYMMETRIC = make_flag("TPM_20_E_SYMMETRIC", ( 0x80280096 )) +TPM_20_E_TAG = make_flag("TPM_20_E_TAG", ( 0x80280097 )) +TPM_20_E_SELECTOR = make_flag("TPM_20_E_SELECTOR", ( 0x80280098 )) +TPM_20_E_INSUFFICIENT = make_flag("TPM_20_E_INSUFFICIENT", ( 0x8028009A )) +TPM_20_E_SIGNATURE = make_flag("TPM_20_E_SIGNATURE", ( 0x8028009B )) +TPM_20_E_KEY = make_flag("TPM_20_E_KEY", ( 0x8028009C )) +TPM_20_E_POLICY_FAIL = make_flag("TPM_20_E_POLICY_FAIL", ( 0x8028009D )) +TPM_20_E_INTEGRITY = make_flag("TPM_20_E_INTEGRITY", ( 0x8028009F )) +TPM_20_E_TICKET = make_flag("TPM_20_E_TICKET", ( 0x802800A0 )) +TPM_20_E_RESERVED_BITS = make_flag("TPM_20_E_RESERVED_BITS", ( 0x802800A1 )) +TPM_20_E_BAD_AUTH = make_flag("TPM_20_E_BAD_AUTH", ( 0x802800A2 )) +TPM_20_E_EXPIRED = make_flag("TPM_20_E_EXPIRED", ( 0x802800A3 )) +TPM_20_E_POLICY_CC = make_flag("TPM_20_E_POLICY_CC", ( 0x802800A4 )) +TPM_20_E_BINDING = make_flag("TPM_20_E_BINDING", ( 0x802800A5 )) +TPM_20_E_CURVE = make_flag("TPM_20_E_CURVE", ( 0x802800A6 )) +TPM_20_E_ECC_POINT = make_flag("TPM_20_E_ECC_POINT", ( 0x802800A7 )) +TPM_20_E_INITIALIZE = make_flag("TPM_20_E_INITIALIZE", ( 0x80280100 )) +TPM_20_E_FAILURE = make_flag("TPM_20_E_FAILURE", ( 0x80280101 )) +TPM_20_E_SEQUENCE = make_flag("TPM_20_E_SEQUENCE", ( 0x80280103 )) +TPM_20_E_PRIVATE = make_flag("TPM_20_E_PRIVATE", ( 0x8028010B )) +TPM_20_E_HMAC = make_flag("TPM_20_E_HMAC", ( 0x80280119 )) +TPM_20_E_DISABLED = make_flag("TPM_20_E_DISABLED", ( 0x80280120 )) +TPM_20_E_EXCLUSIVE = make_flag("TPM_20_E_EXCLUSIVE", ( 0x80280121 )) +TPM_20_E_ECC_CURVE = make_flag("TPM_20_E_ECC_CURVE", ( 0x80280123 )) +TPM_20_E_AUTH_TYPE = make_flag("TPM_20_E_AUTH_TYPE", ( 0x80280124 )) +TPM_20_E_AUTH_MISSING = make_flag("TPM_20_E_AUTH_MISSING", ( 0x80280125 )) +TPM_20_E_POLICY = make_flag("TPM_20_E_POLICY", ( 0x80280126 )) +TPM_20_E_PCR = make_flag("TPM_20_E_PCR", ( 0x80280127 )) +TPM_20_E_PCR_CHANGED = make_flag("TPM_20_E_PCR_CHANGED", ( 0x80280128 )) +TPM_20_E_UPGRADE = make_flag("TPM_20_E_UPGRADE", ( 0x8028012D )) +TPM_20_E_TOO_MANY_CONTEXTS = make_flag("TPM_20_E_TOO_MANY_CONTEXTS", ( 0x8028012E )) +TPM_20_E_AUTH_UNAVAILABLE = make_flag("TPM_20_E_AUTH_UNAVAILABLE", ( 0x8028012F )) +TPM_20_E_REBOOT = make_flag("TPM_20_E_REBOOT", ( 0x80280130 )) +TPM_20_E_UNBALANCED = make_flag("TPM_20_E_UNBALANCED", ( 0x80280131 )) +TPM_20_E_COMMAND_SIZE = make_flag("TPM_20_E_COMMAND_SIZE", ( 0x80280142 )) +TPM_20_E_COMMAND_CODE = make_flag("TPM_20_E_COMMAND_CODE", ( 0x80280143 )) +TPM_20_E_AUTHSIZE = make_flag("TPM_20_E_AUTHSIZE", ( 0x80280144 )) +TPM_20_E_AUTH_CONTEXT = make_flag("TPM_20_E_AUTH_CONTEXT", ( 0x80280145 )) +TPM_20_E_NV_RANGE = make_flag("TPM_20_E_NV_RANGE", ( 0x80280146 )) +TPM_20_E_NV_SIZE = make_flag("TPM_20_E_NV_SIZE", ( 0x80280147 )) +TPM_20_E_NV_LOCKED = make_flag("TPM_20_E_NV_LOCKED", ( 0x80280148 )) +TPM_20_E_NV_AUTHORIZATION = make_flag("TPM_20_E_NV_AUTHORIZATION", ( 0x80280149 )) +TPM_20_E_NV_UNINITIALIZED = make_flag("TPM_20_E_NV_UNINITIALIZED", ( 0x8028014A )) +TPM_20_E_NV_SPACE = make_flag("TPM_20_E_NV_SPACE", ( 0x8028014B )) +TPM_20_E_NV_DEFINED = make_flag("TPM_20_E_NV_DEFINED", ( 0x8028014C )) +TPM_20_E_BAD_CONTEXT = make_flag("TPM_20_E_BAD_CONTEXT", ( 0x80280150 )) +TPM_20_E_CPHASH = make_flag("TPM_20_E_CPHASH", ( 0x80280151 )) +TPM_20_E_PARENT = make_flag("TPM_20_E_PARENT", ( 0x80280152 )) +TPM_20_E_NEEDS_TEST = make_flag("TPM_20_E_NEEDS_TEST", ( 0x80280153 )) +TPM_20_E_NO_RESULT = make_flag("TPM_20_E_NO_RESULT", ( 0x80280154 )) +TPM_20_E_SENSITIVE = make_flag("TPM_20_E_SENSITIVE", ( 0x80280155 )) +TPM_E_COMMAND_BLOCKED = make_flag("TPM_E_COMMAND_BLOCKED", ( 0x80280400 )) +TPM_E_INVALID_HANDLE = make_flag("TPM_E_INVALID_HANDLE", ( 0x80280401 )) +TPM_E_DUPLICATE_VHANDLE = make_flag("TPM_E_DUPLICATE_VHANDLE", ( 0x80280402 )) +TPM_E_EMBEDDED_COMMAND_BLOCKED = make_flag("TPM_E_EMBEDDED_COMMAND_BLOCKED", ( 0x80280403 )) +TPM_E_EMBEDDED_COMMAND_UNSUPPORTED = make_flag("TPM_E_EMBEDDED_COMMAND_UNSUPPORTED", ( 0x80280404 )) +TPM_E_RETRY = make_flag("TPM_E_RETRY", ( 0x80280800 )) +TPM_E_NEEDS_SELFTEST = make_flag("TPM_E_NEEDS_SELFTEST", ( 0x80280801 )) +TPM_E_DOING_SELFTEST = make_flag("TPM_E_DOING_SELFTEST", ( 0x80280802 )) +TPM_E_DEFEND_LOCK_RUNNING = make_flag("TPM_E_DEFEND_LOCK_RUNNING", ( 0x80280803 )) +TPM_20_E_CONTEXT_GAP = make_flag("TPM_20_E_CONTEXT_GAP", ( 0x80280901 )) +TPM_20_E_OBJECT_MEMORY = make_flag("TPM_20_E_OBJECT_MEMORY", ( 0x80280902 )) +TPM_20_E_SESSION_MEMORY = make_flag("TPM_20_E_SESSION_MEMORY", ( 0x80280903 )) +TPM_20_E_MEMORY = make_flag("TPM_20_E_MEMORY", ( 0x80280904 )) +TPM_20_E_SESSION_HANDLES = make_flag("TPM_20_E_SESSION_HANDLES", ( 0x80280905 )) +TPM_20_E_OBJECT_HANDLES = make_flag("TPM_20_E_OBJECT_HANDLES", ( 0x80280906 )) +TPM_20_E_LOCALITY = make_flag("TPM_20_E_LOCALITY", ( 0x80280907 )) +TPM_20_E_YIELDED = make_flag("TPM_20_E_YIELDED", ( 0x80280908 )) +TPM_20_E_CANCELED = make_flag("TPM_20_E_CANCELED", ( 0x80280909 )) +TPM_20_E_TESTING = make_flag("TPM_20_E_TESTING", ( 0x8028090A )) +TPM_20_E_NV_RATE = make_flag("TPM_20_E_NV_RATE", ( 0x80280920 )) +TPM_20_E_LOCKOUT = make_flag("TPM_20_E_LOCKOUT", ( 0x80280921 )) +TPM_20_E_RETRY = make_flag("TPM_20_E_RETRY", ( 0x80280922 )) +TPM_20_E_NV_UNAVAILABLE = make_flag("TPM_20_E_NV_UNAVAILABLE", ( 0x80280923 )) +TBS_E_INTERNAL_ERROR = make_flag("TBS_E_INTERNAL_ERROR", ( 0x80284001 )) +TBS_E_BAD_PARAMETER = make_flag("TBS_E_BAD_PARAMETER", ( 0x80284002 )) +TBS_E_INVALID_OUTPUT_POINTER = make_flag("TBS_E_INVALID_OUTPUT_POINTER", ( 0x80284003 )) +TBS_E_INVALID_CONTEXT = make_flag("TBS_E_INVALID_CONTEXT", ( 0x80284004 )) +TBS_E_INSUFFICIENT_BUFFER = make_flag("TBS_E_INSUFFICIENT_BUFFER", ( 0x80284005 )) +TBS_E_IOERROR = make_flag("TBS_E_IOERROR", ( 0x80284006 )) +TBS_E_INVALID_CONTEXT_PARAM = make_flag("TBS_E_INVALID_CONTEXT_PARAM", ( 0x80284007 )) +TBS_E_SERVICE_NOT_RUNNING = make_flag("TBS_E_SERVICE_NOT_RUNNING", ( 0x80284008 )) +TBS_E_TOO_MANY_TBS_CONTEXTS = make_flag("TBS_E_TOO_MANY_TBS_CONTEXTS", ( 0x80284009 )) +TBS_E_TOO_MANY_RESOURCES = make_flag("TBS_E_TOO_MANY_RESOURCES", ( 0x8028400A )) +TBS_E_SERVICE_START_PENDING = make_flag("TBS_E_SERVICE_START_PENDING", ( 0x8028400B )) +TBS_E_PPI_NOT_SUPPORTED = make_flag("TBS_E_PPI_NOT_SUPPORTED", ( 0x8028400C )) +TBS_E_COMMAND_CANCELED = make_flag("TBS_E_COMMAND_CANCELED", ( 0x8028400D )) +TBS_E_BUFFER_TOO_LARGE = make_flag("TBS_E_BUFFER_TOO_LARGE", ( 0x8028400E )) +TBS_E_TPM_NOT_FOUND = make_flag("TBS_E_TPM_NOT_FOUND", ( 0x8028400F )) +TBS_E_SERVICE_DISABLED = make_flag("TBS_E_SERVICE_DISABLED", ( 0x80284010 )) +TBS_E_NO_EVENT_LOG = make_flag("TBS_E_NO_EVENT_LOG", ( 0x80284011 )) +TBS_E_ACCESS_DENIED = make_flag("TBS_E_ACCESS_DENIED", ( 0x80284012 )) +TBS_E_PROVISIONING_NOT_ALLOWED = make_flag("TBS_E_PROVISIONING_NOT_ALLOWED", ( 0x80284013 )) +TBS_E_PPI_FUNCTION_UNSUPPORTED = make_flag("TBS_E_PPI_FUNCTION_UNSUPPORTED", ( 0x80284014 )) +TBS_E_OWNERAUTH_NOT_FOUND = make_flag("TBS_E_OWNERAUTH_NOT_FOUND", ( 0x80284015 )) +TBS_E_PROVISIONING_INCOMPLETE = make_flag("TBS_E_PROVISIONING_INCOMPLETE", ( 0x80284016 )) +TPMAPI_E_INVALID_STATE = make_flag("TPMAPI_E_INVALID_STATE", ( 0x80290100 )) +TPMAPI_E_NOT_ENOUGH_DATA = make_flag("TPMAPI_E_NOT_ENOUGH_DATA", ( 0x80290101 )) +TPMAPI_E_TOO_MUCH_DATA = make_flag("TPMAPI_E_TOO_MUCH_DATA", ( 0x80290102 )) +TPMAPI_E_INVALID_OUTPUT_POINTER = make_flag("TPMAPI_E_INVALID_OUTPUT_POINTER", ( 0x80290103 )) +TPMAPI_E_INVALID_PARAMETER = make_flag("TPMAPI_E_INVALID_PARAMETER", ( 0x80290104 )) +TPMAPI_E_OUT_OF_MEMORY = make_flag("TPMAPI_E_OUT_OF_MEMORY", ( 0x80290105 )) +TPMAPI_E_BUFFER_TOO_SMALL = make_flag("TPMAPI_E_BUFFER_TOO_SMALL", ( 0x80290106 )) +TPMAPI_E_INTERNAL_ERROR = make_flag("TPMAPI_E_INTERNAL_ERROR", ( 0x80290107 )) +TPMAPI_E_ACCESS_DENIED = make_flag("TPMAPI_E_ACCESS_DENIED", ( 0x80290108 )) +TPMAPI_E_AUTHORIZATION_FAILED = make_flag("TPMAPI_E_AUTHORIZATION_FAILED", ( 0x80290109 )) +TPMAPI_E_INVALID_CONTEXT_HANDLE = make_flag("TPMAPI_E_INVALID_CONTEXT_HANDLE", ( 0x8029010A )) +TPMAPI_E_TBS_COMMUNICATION_ERROR = make_flag("TPMAPI_E_TBS_COMMUNICATION_ERROR", ( 0x8029010B )) +TPMAPI_E_TPM_COMMAND_ERROR = make_flag("TPMAPI_E_TPM_COMMAND_ERROR", ( 0x8029010C )) +TPMAPI_E_MESSAGE_TOO_LARGE = make_flag("TPMAPI_E_MESSAGE_TOO_LARGE", ( 0x8029010D )) +TPMAPI_E_INVALID_ENCODING = make_flag("TPMAPI_E_INVALID_ENCODING", ( 0x8029010E )) +TPMAPI_E_INVALID_KEY_SIZE = make_flag("TPMAPI_E_INVALID_KEY_SIZE", ( 0x8029010F )) +TPMAPI_E_ENCRYPTION_FAILED = make_flag("TPMAPI_E_ENCRYPTION_FAILED", ( 0x80290110 )) +TPMAPI_E_INVALID_KEY_PARAMS = make_flag("TPMAPI_E_INVALID_KEY_PARAMS", ( 0x80290111 )) +TPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB = make_flag("TPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB", ( 0x80290112 )) +TPMAPI_E_INVALID_PCR_INDEX = make_flag("TPMAPI_E_INVALID_PCR_INDEX", ( 0x80290113 )) +TPMAPI_E_INVALID_DELEGATE_BLOB = make_flag("TPMAPI_E_INVALID_DELEGATE_BLOB", ( 0x80290114 )) +TPMAPI_E_INVALID_CONTEXT_PARAMS = make_flag("TPMAPI_E_INVALID_CONTEXT_PARAMS", ( 0x80290115 )) +TPMAPI_E_INVALID_KEY_BLOB = make_flag("TPMAPI_E_INVALID_KEY_BLOB", ( 0x80290116 )) +TPMAPI_E_INVALID_PCR_DATA = make_flag("TPMAPI_E_INVALID_PCR_DATA", ( 0x80290117 )) +TPMAPI_E_INVALID_OWNER_AUTH = make_flag("TPMAPI_E_INVALID_OWNER_AUTH", ( 0x80290118 )) +TPMAPI_E_FIPS_RNG_CHECK_FAILED = make_flag("TPMAPI_E_FIPS_RNG_CHECK_FAILED", ( 0x80290119 )) +TPMAPI_E_EMPTY_TCG_LOG = make_flag("TPMAPI_E_EMPTY_TCG_LOG", ( 0x8029011A )) +TPMAPI_E_INVALID_TCG_LOG_ENTRY = make_flag("TPMAPI_E_INVALID_TCG_LOG_ENTRY", ( 0x8029011B )) +TPMAPI_E_TCG_SEPARATOR_ABSENT = make_flag("TPMAPI_E_TCG_SEPARATOR_ABSENT", ( 0x8029011C )) +TPMAPI_E_TCG_INVALID_DIGEST_ENTRY = make_flag("TPMAPI_E_TCG_INVALID_DIGEST_ENTRY", ( 0x8029011D )) +TPMAPI_E_POLICY_DENIES_OPERATION = make_flag("TPMAPI_E_POLICY_DENIES_OPERATION", ( 0x8029011E )) +TPMAPI_E_NV_BITS_NOT_DEFINED = make_flag("TPMAPI_E_NV_BITS_NOT_DEFINED", ( 0x8029011F )) +TPMAPI_E_NV_BITS_NOT_READY = make_flag("TPMAPI_E_NV_BITS_NOT_READY", ( 0x80290120 )) +TPMAPI_E_SEALING_KEY_NOT_AVAILABLE = make_flag("TPMAPI_E_SEALING_KEY_NOT_AVAILABLE", ( 0x80290121 )) +TPMAPI_E_NO_AUTHORIZATION_CHAIN_FOUND = make_flag("TPMAPI_E_NO_AUTHORIZATION_CHAIN_FOUND", ( 0x80290122 )) +TPMAPI_E_SVN_COUNTER_NOT_AVAILABLE = make_flag("TPMAPI_E_SVN_COUNTER_NOT_AVAILABLE", ( 0x80290123 )) +TPMAPI_E_OWNER_AUTH_NOT_NULL = make_flag("TPMAPI_E_OWNER_AUTH_NOT_NULL", ( 0x80290124 )) +TPMAPI_E_ENDORSEMENT_AUTH_NOT_NULL = make_flag("TPMAPI_E_ENDORSEMENT_AUTH_NOT_NULL", ( 0x80290125 )) +TPMAPI_E_AUTHORIZATION_REVOKED = make_flag("TPMAPI_E_AUTHORIZATION_REVOKED", ( 0x80290126 )) +TPMAPI_E_MALFORMED_AUTHORIZATION_KEY = make_flag("TPMAPI_E_MALFORMED_AUTHORIZATION_KEY", ( 0x80290127 )) +TPMAPI_E_AUTHORIZING_KEY_NOT_SUPPORTED = make_flag("TPMAPI_E_AUTHORIZING_KEY_NOT_SUPPORTED", ( 0x80290128 )) +TPMAPI_E_INVALID_AUTHORIZATION_SIGNATURE = make_flag("TPMAPI_E_INVALID_AUTHORIZATION_SIGNATURE", ( 0x80290129 )) +TPMAPI_E_MALFORMED_AUTHORIZATION_POLICY = make_flag("TPMAPI_E_MALFORMED_AUTHORIZATION_POLICY", ( 0x8029012A )) +TPMAPI_E_MALFORMED_AUTHORIZATION_OTHER = make_flag("TPMAPI_E_MALFORMED_AUTHORIZATION_OTHER", ( 0x8029012B )) +TPMAPI_E_SEALING_KEY_CHANGED = make_flag("TPMAPI_E_SEALING_KEY_CHANGED", ( 0x8029012C )) +TBSIMP_E_BUFFER_TOO_SMALL = make_flag("TBSIMP_E_BUFFER_TOO_SMALL", ( 0x80290200 )) +TBSIMP_E_CLEANUP_FAILED = make_flag("TBSIMP_E_CLEANUP_FAILED", ( 0x80290201 )) +TBSIMP_E_INVALID_CONTEXT_HANDLE = make_flag("TBSIMP_E_INVALID_CONTEXT_HANDLE", ( 0x80290202 )) +TBSIMP_E_INVALID_CONTEXT_PARAM = make_flag("TBSIMP_E_INVALID_CONTEXT_PARAM", ( 0x80290203 )) +TBSIMP_E_TPM_ERROR = make_flag("TBSIMP_E_TPM_ERROR", ( 0x80290204 )) +TBSIMP_E_HASH_BAD_KEY = make_flag("TBSIMP_E_HASH_BAD_KEY", ( 0x80290205 )) +TBSIMP_E_DUPLICATE_VHANDLE = make_flag("TBSIMP_E_DUPLICATE_VHANDLE", ( 0x80290206 )) +TBSIMP_E_INVALID_OUTPUT_POINTER = make_flag("TBSIMP_E_INVALID_OUTPUT_POINTER", ( 0x80290207 )) +TBSIMP_E_INVALID_PARAMETER = make_flag("TBSIMP_E_INVALID_PARAMETER", ( 0x80290208 )) +TBSIMP_E_RPC_INIT_FAILED = make_flag("TBSIMP_E_RPC_INIT_FAILED", ( 0x80290209 )) +TBSIMP_E_SCHEDULER_NOT_RUNNING = make_flag("TBSIMP_E_SCHEDULER_NOT_RUNNING", ( 0x8029020A )) +TBSIMP_E_COMMAND_CANCELED = make_flag("TBSIMP_E_COMMAND_CANCELED", ( 0x8029020B )) +TBSIMP_E_OUT_OF_MEMORY = make_flag("TBSIMP_E_OUT_OF_MEMORY", ( 0x8029020C )) +TBSIMP_E_LIST_NO_MORE_ITEMS = make_flag("TBSIMP_E_LIST_NO_MORE_ITEMS", ( 0x8029020D )) +TBSIMP_E_LIST_NOT_FOUND = make_flag("TBSIMP_E_LIST_NOT_FOUND", ( 0x8029020E )) +TBSIMP_E_NOT_ENOUGH_SPACE = make_flag("TBSIMP_E_NOT_ENOUGH_SPACE", ( 0x8029020F )) +TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS = make_flag("TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS", ( 0x80290210 )) +TBSIMP_E_COMMAND_FAILED = make_flag("TBSIMP_E_COMMAND_FAILED", ( 0x80290211 )) +TBSIMP_E_UNKNOWN_ORDINAL = make_flag("TBSIMP_E_UNKNOWN_ORDINAL", ( 0x80290212 )) +TBSIMP_E_RESOURCE_EXPIRED = make_flag("TBSIMP_E_RESOURCE_EXPIRED", ( 0x80290213 )) +TBSIMP_E_INVALID_RESOURCE = make_flag("TBSIMP_E_INVALID_RESOURCE", ( 0x80290214 )) +TBSIMP_E_NOTHING_TO_UNLOAD = make_flag("TBSIMP_E_NOTHING_TO_UNLOAD", ( 0x80290215 )) +TBSIMP_E_HASH_TABLE_FULL = make_flag("TBSIMP_E_HASH_TABLE_FULL", ( 0x80290216 )) +TBSIMP_E_TOO_MANY_TBS_CONTEXTS = make_flag("TBSIMP_E_TOO_MANY_TBS_CONTEXTS", ( 0x80290217 )) +TBSIMP_E_TOO_MANY_RESOURCES = make_flag("TBSIMP_E_TOO_MANY_RESOURCES", ( 0x80290218 )) +TBSIMP_E_PPI_NOT_SUPPORTED = make_flag("TBSIMP_E_PPI_NOT_SUPPORTED", ( 0x80290219 )) +TBSIMP_E_TPM_INCOMPATIBLE = make_flag("TBSIMP_E_TPM_INCOMPATIBLE", ( 0x8029021A )) +TBSIMP_E_NO_EVENT_LOG = make_flag("TBSIMP_E_NO_EVENT_LOG", ( 0x8029021B )) +TPM_E_PPI_ACPI_FAILURE = make_flag("TPM_E_PPI_ACPI_FAILURE", ( 0x80290300 )) +TPM_E_PPI_USER_ABORT = make_flag("TPM_E_PPI_USER_ABORT", ( 0x80290301 )) +TPM_E_PPI_BIOS_FAILURE = make_flag("TPM_E_PPI_BIOS_FAILURE", ( 0x80290302 )) +TPM_E_PPI_NOT_SUPPORTED = make_flag("TPM_E_PPI_NOT_SUPPORTED", ( 0x80290303 )) +TPM_E_PPI_BLOCKED_IN_BIOS = make_flag("TPM_E_PPI_BLOCKED_IN_BIOS", ( 0x80290304 )) +TPM_E_PCP_ERROR_MASK = make_flag("TPM_E_PCP_ERROR_MASK", ( 0x80290400 )) +TPM_E_PCP_DEVICE_NOT_READY = make_flag("TPM_E_PCP_DEVICE_NOT_READY", ( 0x80290401 )) +TPM_E_PCP_INVALID_HANDLE = make_flag("TPM_E_PCP_INVALID_HANDLE", ( 0x80290402 )) +TPM_E_PCP_INVALID_PARAMETER = make_flag("TPM_E_PCP_INVALID_PARAMETER", ( 0x80290403 )) +TPM_E_PCP_FLAG_NOT_SUPPORTED = make_flag("TPM_E_PCP_FLAG_NOT_SUPPORTED", ( 0x80290404 )) +TPM_E_PCP_NOT_SUPPORTED = make_flag("TPM_E_PCP_NOT_SUPPORTED", ( 0x80290405 )) +TPM_E_PCP_BUFFER_TOO_SMALL = make_flag("TPM_E_PCP_BUFFER_TOO_SMALL", ( 0x80290406 )) +TPM_E_PCP_INTERNAL_ERROR = make_flag("TPM_E_PCP_INTERNAL_ERROR", ( 0x80290407 )) +TPM_E_PCP_AUTHENTICATION_FAILED = make_flag("TPM_E_PCP_AUTHENTICATION_FAILED", ( 0x80290408 )) +TPM_E_PCP_AUTHENTICATION_IGNORED = make_flag("TPM_E_PCP_AUTHENTICATION_IGNORED", ( 0x80290409 )) +TPM_E_PCP_POLICY_NOT_FOUND = make_flag("TPM_E_PCP_POLICY_NOT_FOUND", ( 0x8029040A )) +TPM_E_PCP_PROFILE_NOT_FOUND = make_flag("TPM_E_PCP_PROFILE_NOT_FOUND", ( 0x8029040B )) +TPM_E_PCP_VALIDATION_FAILED = make_flag("TPM_E_PCP_VALIDATION_FAILED", ( 0x8029040C )) +TPM_E_PCP_WRONG_PARENT = make_flag("TPM_E_PCP_WRONG_PARENT", ( 0x8029040E )) +TPM_E_KEY_NOT_LOADED = make_flag("TPM_E_KEY_NOT_LOADED", ( 0x8029040F )) +TPM_E_NO_KEY_CERTIFICATION = make_flag("TPM_E_NO_KEY_CERTIFICATION", ( 0x80290410 )) +TPM_E_KEY_NOT_FINALIZED = make_flag("TPM_E_KEY_NOT_FINALIZED", ( 0x80290411 )) +TPM_E_ATTESTATION_CHALLENGE_NOT_SET = make_flag("TPM_E_ATTESTATION_CHALLENGE_NOT_SET", ( 0x80290412 )) +TPM_E_NOT_PCR_BOUND = make_flag("TPM_E_NOT_PCR_BOUND", ( 0x80290413 )) +TPM_E_KEY_ALREADY_FINALIZED = make_flag("TPM_E_KEY_ALREADY_FINALIZED", ( 0x80290414 )) +TPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED = make_flag("TPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED", ( 0x80290415 )) +TPM_E_KEY_USAGE_POLICY_INVALID = make_flag("TPM_E_KEY_USAGE_POLICY_INVALID", ( 0x80290416 )) +TPM_E_SOFT_KEY_ERROR = make_flag("TPM_E_SOFT_KEY_ERROR", ( 0x80290417 )) +TPM_E_KEY_NOT_AUTHENTICATED = make_flag("TPM_E_KEY_NOT_AUTHENTICATED", ( 0x80290418 )) +TPM_E_PCP_KEY_NOT_AIK = make_flag("TPM_E_PCP_KEY_NOT_AIK", ( 0x80290419 )) +TPM_E_KEY_NOT_SIGNING_KEY = make_flag("TPM_E_KEY_NOT_SIGNING_KEY", ( 0x8029041A )) +TPM_E_LOCKED_OUT = make_flag("TPM_E_LOCKED_OUT", ( 0x8029041B )) +TPM_E_CLAIM_TYPE_NOT_SUPPORTED = make_flag("TPM_E_CLAIM_TYPE_NOT_SUPPORTED", ( 0x8029041C )) +TPM_E_VERSION_NOT_SUPPORTED = make_flag("TPM_E_VERSION_NOT_SUPPORTED", ( 0x8029041D )) +TPM_E_BUFFER_LENGTH_MISMATCH = make_flag("TPM_E_BUFFER_LENGTH_MISMATCH", ( 0x8029041E )) +TPM_E_PCP_IFX_RSA_KEY_CREATION_BLOCKED = make_flag("TPM_E_PCP_IFX_RSA_KEY_CREATION_BLOCKED", ( 0x8029041F )) +TPM_E_PCP_TICKET_MISSING = make_flag("TPM_E_PCP_TICKET_MISSING", ( 0x80290420 )) +TPM_E_PCP_RAW_POLICY_NOT_SUPPORTED = make_flag("TPM_E_PCP_RAW_POLICY_NOT_SUPPORTED", ( 0x80290421 )) +TPM_E_PCP_KEY_HANDLE_INVALIDATED = make_flag("TPM_E_PCP_KEY_HANDLE_INVALIDATED", ( 0x80290422 )) +TPM_E_PCP_UNSUPPORTED_PSS_SALT = make_flag("TPM_E_PCP_UNSUPPORTED_PSS_SALT", ( 0x40290423 )) +TPM_E_ZERO_EXHAUST_ENABLED = make_flag("TPM_E_ZERO_EXHAUST_ENABLED", ( 0x80290500 )) +PLA_E_DCS_NOT_FOUND = make_flag("PLA_E_DCS_NOT_FOUND", ( 0x80300002 )) +PLA_E_DCS_IN_USE = make_flag("PLA_E_DCS_IN_USE", ( 0x803000AA )) +PLA_E_TOO_MANY_FOLDERS = make_flag("PLA_E_TOO_MANY_FOLDERS", ( 0x80300045 )) +PLA_E_NO_MIN_DISK = make_flag("PLA_E_NO_MIN_DISK", ( 0x80300070 )) +PLA_E_DCS_ALREADY_EXISTS = make_flag("PLA_E_DCS_ALREADY_EXISTS", ( 0x803000B7 )) +PLA_S_PROPERTY_IGNORED = make_flag("PLA_S_PROPERTY_IGNORED", ( 0x00300100 )) +PLA_E_PROPERTY_CONFLICT = make_flag("PLA_E_PROPERTY_CONFLICT", ( 0x80300101 )) +PLA_E_DCS_SINGLETON_REQUIRED = make_flag("PLA_E_DCS_SINGLETON_REQUIRED", ( 0x80300102 )) +PLA_E_CREDENTIALS_REQUIRED = make_flag("PLA_E_CREDENTIALS_REQUIRED", ( 0x80300103 )) +PLA_E_DCS_NOT_RUNNING = make_flag("PLA_E_DCS_NOT_RUNNING", ( 0x80300104 )) +PLA_E_CONFLICT_INCL_EXCL_API = make_flag("PLA_E_CONFLICT_INCL_EXCL_API", ( 0x80300105 )) +PLA_E_NETWORK_EXE_NOT_VALID = make_flag("PLA_E_NETWORK_EXE_NOT_VALID", ( 0x80300106 )) +PLA_E_EXE_ALREADY_CONFIGURED = make_flag("PLA_E_EXE_ALREADY_CONFIGURED", ( 0x80300107 )) +PLA_E_EXE_PATH_NOT_VALID = make_flag("PLA_E_EXE_PATH_NOT_VALID", ( 0x80300108 )) +PLA_E_DC_ALREADY_EXISTS = make_flag("PLA_E_DC_ALREADY_EXISTS", ( 0x80300109 )) +PLA_E_DCS_START_WAIT_TIMEOUT = make_flag("PLA_E_DCS_START_WAIT_TIMEOUT", ( 0x8030010A )) +PLA_E_DC_START_WAIT_TIMEOUT = make_flag("PLA_E_DC_START_WAIT_TIMEOUT", ( 0x8030010B )) +PLA_E_REPORT_WAIT_TIMEOUT = make_flag("PLA_E_REPORT_WAIT_TIMEOUT", ( 0x8030010C )) +PLA_E_NO_DUPLICATES = make_flag("PLA_E_NO_DUPLICATES", ( 0x8030010D )) +PLA_E_EXE_FULL_PATH_REQUIRED = make_flag("PLA_E_EXE_FULL_PATH_REQUIRED", ( 0x8030010E )) +PLA_E_INVALID_SESSION_NAME = make_flag("PLA_E_INVALID_SESSION_NAME", ( 0x8030010F )) +PLA_E_PLA_CHANNEL_NOT_ENABLED = make_flag("PLA_E_PLA_CHANNEL_NOT_ENABLED", ( 0x80300110 )) +PLA_E_TASKSCHED_CHANNEL_NOT_ENABLED = make_flag("PLA_E_TASKSCHED_CHANNEL_NOT_ENABLED", ( 0x80300111 )) +PLA_E_RULES_MANAGER_FAILED = make_flag("PLA_E_RULES_MANAGER_FAILED", ( 0x80300112 )) +PLA_E_CABAPI_FAILURE = make_flag("PLA_E_CABAPI_FAILURE", ( 0x80300113 )) +FVE_E_LOCKED_VOLUME = make_flag("FVE_E_LOCKED_VOLUME", ( 0x80310000 )) +FVE_E_NOT_ENCRYPTED = make_flag("FVE_E_NOT_ENCRYPTED", ( 0x80310001 )) +FVE_E_NO_TPM_BIOS = make_flag("FVE_E_NO_TPM_BIOS", ( 0x80310002 )) +FVE_E_NO_MBR_METRIC = make_flag("FVE_E_NO_MBR_METRIC", ( 0x80310003 )) +FVE_E_NO_BOOTSECTOR_METRIC = make_flag("FVE_E_NO_BOOTSECTOR_METRIC", ( 0x80310004 )) +FVE_E_NO_BOOTMGR_METRIC = make_flag("FVE_E_NO_BOOTMGR_METRIC", ( 0x80310005 )) +FVE_E_WRONG_BOOTMGR = make_flag("FVE_E_WRONG_BOOTMGR", ( 0x80310006 )) +FVE_E_SECURE_KEY_REQUIRED = make_flag("FVE_E_SECURE_KEY_REQUIRED", ( 0x80310007 )) +FVE_E_NOT_ACTIVATED = make_flag("FVE_E_NOT_ACTIVATED", ( 0x80310008 )) +FVE_E_ACTION_NOT_ALLOWED = make_flag("FVE_E_ACTION_NOT_ALLOWED", ( 0x80310009 )) +FVE_E_AD_SCHEMA_NOT_INSTALLED = make_flag("FVE_E_AD_SCHEMA_NOT_INSTALLED", ( 0x8031000A )) +FVE_E_AD_INVALID_DATATYPE = make_flag("FVE_E_AD_INVALID_DATATYPE", ( 0x8031000B )) +FVE_E_AD_INVALID_DATASIZE = make_flag("FVE_E_AD_INVALID_DATASIZE", ( 0x8031000C )) +FVE_E_AD_NO_VALUES = make_flag("FVE_E_AD_NO_VALUES", ( 0x8031000D )) +FVE_E_AD_ATTR_NOT_SET = make_flag("FVE_E_AD_ATTR_NOT_SET", ( 0x8031000E )) +FVE_E_AD_GUID_NOT_FOUND = make_flag("FVE_E_AD_GUID_NOT_FOUND", ( 0x8031000F )) +FVE_E_BAD_INFORMATION = make_flag("FVE_E_BAD_INFORMATION", ( 0x80310010 )) +FVE_E_TOO_SMALL = make_flag("FVE_E_TOO_SMALL", ( 0x80310011 )) +FVE_E_SYSTEM_VOLUME = make_flag("FVE_E_SYSTEM_VOLUME", ( 0x80310012 )) +FVE_E_FAILED_WRONG_FS = make_flag("FVE_E_FAILED_WRONG_FS", ( 0x80310013 )) +FVE_E_BAD_PARTITION_SIZE = make_flag("FVE_E_BAD_PARTITION_SIZE", ( 0x80310014 )) +FVE_E_NOT_SUPPORTED = make_flag("FVE_E_NOT_SUPPORTED", ( 0x80310015 )) +FVE_E_BAD_DATA = make_flag("FVE_E_BAD_DATA", ( 0x80310016 )) +FVE_E_VOLUME_NOT_BOUND = make_flag("FVE_E_VOLUME_NOT_BOUND", ( 0x80310017 )) +FVE_E_TPM_NOT_OWNED = make_flag("FVE_E_TPM_NOT_OWNED", ( 0x80310018 )) +FVE_E_NOT_DATA_VOLUME = make_flag("FVE_E_NOT_DATA_VOLUME", ( 0x80310019 )) +FVE_E_AD_INSUFFICIENT_BUFFER = make_flag("FVE_E_AD_INSUFFICIENT_BUFFER", ( 0x8031001A )) +FVE_E_CONV_READ = make_flag("FVE_E_CONV_READ", ( 0x8031001B )) +FVE_E_CONV_WRITE = make_flag("FVE_E_CONV_WRITE", ( 0x8031001C )) +FVE_E_KEY_REQUIRED = make_flag("FVE_E_KEY_REQUIRED", ( 0x8031001D )) +FVE_E_CLUSTERING_NOT_SUPPORTED = make_flag("FVE_E_CLUSTERING_NOT_SUPPORTED", ( 0x8031001E )) +FVE_E_VOLUME_BOUND_ALREADY = make_flag("FVE_E_VOLUME_BOUND_ALREADY", ( 0x8031001F )) +FVE_E_OS_NOT_PROTECTED = make_flag("FVE_E_OS_NOT_PROTECTED", ( 0x80310020 )) +FVE_E_PROTECTION_DISABLED = make_flag("FVE_E_PROTECTION_DISABLED", ( 0x80310021 )) +FVE_E_RECOVERY_KEY_REQUIRED = make_flag("FVE_E_RECOVERY_KEY_REQUIRED", ( 0x80310022 )) +FVE_E_FOREIGN_VOLUME = make_flag("FVE_E_FOREIGN_VOLUME", ( 0x80310023 )) +FVE_E_OVERLAPPED_UPDATE = make_flag("FVE_E_OVERLAPPED_UPDATE", ( 0x80310024 )) +FVE_E_TPM_SRK_AUTH_NOT_ZERO = make_flag("FVE_E_TPM_SRK_AUTH_NOT_ZERO", ( 0x80310025 )) +FVE_E_FAILED_SECTOR_SIZE = make_flag("FVE_E_FAILED_SECTOR_SIZE", ( 0x80310026 )) +FVE_E_FAILED_AUTHENTICATION = make_flag("FVE_E_FAILED_AUTHENTICATION", ( 0x80310027 )) +FVE_E_NOT_OS_VOLUME = make_flag("FVE_E_NOT_OS_VOLUME", ( 0x80310028 )) +FVE_E_AUTOUNLOCK_ENABLED = make_flag("FVE_E_AUTOUNLOCK_ENABLED", ( 0x80310029 )) +FVE_E_WRONG_BOOTSECTOR = make_flag("FVE_E_WRONG_BOOTSECTOR", ( 0x8031002A )) +FVE_E_WRONG_SYSTEM_FS = make_flag("FVE_E_WRONG_SYSTEM_FS", ( 0x8031002B )) +FVE_E_POLICY_PASSWORD_REQUIRED = make_flag("FVE_E_POLICY_PASSWORD_REQUIRED", ( 0x8031002C )) +FVE_E_CANNOT_SET_FVEK_ENCRYPTED = make_flag("FVE_E_CANNOT_SET_FVEK_ENCRYPTED", ( 0x8031002D )) +FVE_E_CANNOT_ENCRYPT_NO_KEY = make_flag("FVE_E_CANNOT_ENCRYPT_NO_KEY", ( 0x8031002E )) +FVE_E_BOOTABLE_CDDVD = make_flag("FVE_E_BOOTABLE_CDDVD", ( 0x80310030 )) +FVE_E_PROTECTOR_EXISTS = make_flag("FVE_E_PROTECTOR_EXISTS", ( 0x80310031 )) +FVE_E_RELATIVE_PATH = make_flag("FVE_E_RELATIVE_PATH", ( 0x80310032 )) +FVE_E_PROTECTOR_NOT_FOUND = make_flag("FVE_E_PROTECTOR_NOT_FOUND", ( 0x80310033 )) +FVE_E_INVALID_KEY_FORMAT = make_flag("FVE_E_INVALID_KEY_FORMAT", ( 0x80310034 )) +FVE_E_INVALID_PASSWORD_FORMAT = make_flag("FVE_E_INVALID_PASSWORD_FORMAT", ( 0x80310035 )) +FVE_E_FIPS_RNG_CHECK_FAILED = make_flag("FVE_E_FIPS_RNG_CHECK_FAILED", ( 0x80310036 )) +FVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD = make_flag("FVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD", ( 0x80310037 )) +FVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT = make_flag("FVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT", ( 0x80310038 )) +FVE_E_NOT_DECRYPTED = make_flag("FVE_E_NOT_DECRYPTED", ( 0x80310039 )) +FVE_E_INVALID_PROTECTOR_TYPE = make_flag("FVE_E_INVALID_PROTECTOR_TYPE", ( 0x8031003A )) +FVE_E_NO_PROTECTORS_TO_TEST = make_flag("FVE_E_NO_PROTECTORS_TO_TEST", ( 0x8031003B )) +FVE_E_KEYFILE_NOT_FOUND = make_flag("FVE_E_KEYFILE_NOT_FOUND", ( 0x8031003C )) +FVE_E_KEYFILE_INVALID = make_flag("FVE_E_KEYFILE_INVALID", ( 0x8031003D )) +FVE_E_KEYFILE_NO_VMK = make_flag("FVE_E_KEYFILE_NO_VMK", ( 0x8031003E )) +FVE_E_TPM_DISABLED = make_flag("FVE_E_TPM_DISABLED", ( 0x8031003F )) +FVE_E_NOT_ALLOWED_IN_SAFE_MODE = make_flag("FVE_E_NOT_ALLOWED_IN_SAFE_MODE", ( 0x80310040 )) +FVE_E_TPM_INVALID_PCR = make_flag("FVE_E_TPM_INVALID_PCR", ( 0x80310041 )) +FVE_E_TPM_NO_VMK = make_flag("FVE_E_TPM_NO_VMK", ( 0x80310042 )) +FVE_E_PIN_INVALID = make_flag("FVE_E_PIN_INVALID", ( 0x80310043 )) +FVE_E_AUTH_INVALID_APPLICATION = make_flag("FVE_E_AUTH_INVALID_APPLICATION", ( 0x80310044 )) +FVE_E_AUTH_INVALID_CONFIG = make_flag("FVE_E_AUTH_INVALID_CONFIG", ( 0x80310045 )) +FVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED = make_flag("FVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED", ( 0x80310046 )) +FVE_E_FS_NOT_EXTENDED = make_flag("FVE_E_FS_NOT_EXTENDED", ( 0x80310047 )) +FVE_E_FIRMWARE_TYPE_NOT_SUPPORTED = make_flag("FVE_E_FIRMWARE_TYPE_NOT_SUPPORTED", ( 0x80310048 )) +FVE_E_NO_LICENSE = make_flag("FVE_E_NO_LICENSE", ( 0x80310049 )) +FVE_E_NOT_ON_STACK = make_flag("FVE_E_NOT_ON_STACK", ( 0x8031004A )) +FVE_E_FS_MOUNTED = make_flag("FVE_E_FS_MOUNTED", ( 0x8031004B )) +FVE_E_TOKEN_NOT_IMPERSONATED = make_flag("FVE_E_TOKEN_NOT_IMPERSONATED", ( 0x8031004C )) +FVE_E_DRY_RUN_FAILED = make_flag("FVE_E_DRY_RUN_FAILED", ( 0x8031004D )) +FVE_E_REBOOT_REQUIRED = make_flag("FVE_E_REBOOT_REQUIRED", ( 0x8031004E )) +FVE_E_DEBUGGER_ENABLED = make_flag("FVE_E_DEBUGGER_ENABLED", ( 0x8031004F )) +FVE_E_RAW_ACCESS = make_flag("FVE_E_RAW_ACCESS", ( 0x80310050 )) +FVE_E_RAW_BLOCKED = make_flag("FVE_E_RAW_BLOCKED", ( 0x80310051 )) +FVE_E_BCD_APPLICATIONS_PATH_INCORRECT = make_flag("FVE_E_BCD_APPLICATIONS_PATH_INCORRECT", ( 0x80310052 )) +FVE_E_NOT_ALLOWED_IN_VERSION = make_flag("FVE_E_NOT_ALLOWED_IN_VERSION", ( 0x80310053 )) +FVE_E_NO_AUTOUNLOCK_MASTER_KEY = make_flag("FVE_E_NO_AUTOUNLOCK_MASTER_KEY", ( 0x80310054 )) +FVE_E_MOR_FAILED = make_flag("FVE_E_MOR_FAILED", ( 0x80310055 )) +FVE_E_HIDDEN_VOLUME = make_flag("FVE_E_HIDDEN_VOLUME", ( 0x80310056 )) +FVE_E_TRANSIENT_STATE = make_flag("FVE_E_TRANSIENT_STATE", ( 0x80310057 )) +FVE_E_PUBKEY_NOT_ALLOWED = make_flag("FVE_E_PUBKEY_NOT_ALLOWED", ( 0x80310058 )) +FVE_E_VOLUME_HANDLE_OPEN = make_flag("FVE_E_VOLUME_HANDLE_OPEN", ( 0x80310059 )) +FVE_E_NO_FEATURE_LICENSE = make_flag("FVE_E_NO_FEATURE_LICENSE", ( 0x8031005A )) +FVE_E_INVALID_STARTUP_OPTIONS = make_flag("FVE_E_INVALID_STARTUP_OPTIONS", ( 0x8031005B )) +FVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED = make_flag("FVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED", ( 0x8031005C )) +FVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED = make_flag("FVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED", ( 0x8031005D )) +FVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED = make_flag("FVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED", ( 0x8031005E )) +FVE_E_POLICY_RECOVERY_KEY_REQUIRED = make_flag("FVE_E_POLICY_RECOVERY_KEY_REQUIRED", ( 0x8031005F )) +FVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED = make_flag("FVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED", ( 0x80310060 )) +FVE_E_POLICY_STARTUP_PIN_REQUIRED = make_flag("FVE_E_POLICY_STARTUP_PIN_REQUIRED", ( 0x80310061 )) +FVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED = make_flag("FVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED", ( 0x80310062 )) +FVE_E_POLICY_STARTUP_KEY_REQUIRED = make_flag("FVE_E_POLICY_STARTUP_KEY_REQUIRED", ( 0x80310063 )) +FVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED = make_flag("FVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED", ( 0x80310064 )) +FVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED = make_flag("FVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED", ( 0x80310065 )) +FVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED = make_flag("FVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED", ( 0x80310066 )) +FVE_E_POLICY_STARTUP_TPM_REQUIRED = make_flag("FVE_E_POLICY_STARTUP_TPM_REQUIRED", ( 0x80310067 )) +FVE_E_POLICY_INVALID_PIN_LENGTH = make_flag("FVE_E_POLICY_INVALID_PIN_LENGTH", ( 0x80310068 )) +FVE_E_KEY_PROTECTOR_NOT_SUPPORTED = make_flag("FVE_E_KEY_PROTECTOR_NOT_SUPPORTED", ( 0x80310069 )) +FVE_E_POLICY_PASSPHRASE_NOT_ALLOWED = make_flag("FVE_E_POLICY_PASSPHRASE_NOT_ALLOWED", ( 0x8031006A )) +FVE_E_POLICY_PASSPHRASE_REQUIRED = make_flag("FVE_E_POLICY_PASSPHRASE_REQUIRED", ( 0x8031006B )) +FVE_E_FIPS_PREVENTS_PASSPHRASE = make_flag("FVE_E_FIPS_PREVENTS_PASSPHRASE", ( 0x8031006C )) +FVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED = make_flag("FVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED", ( 0x8031006D )) +FVE_E_INVALID_BITLOCKER_OID = make_flag("FVE_E_INVALID_BITLOCKER_OID", ( 0x8031006E )) +FVE_E_VOLUME_TOO_SMALL = make_flag("FVE_E_VOLUME_TOO_SMALL", ( 0x8031006F )) +FVE_E_DV_NOT_SUPPORTED_ON_FS = make_flag("FVE_E_DV_NOT_SUPPORTED_ON_FS", ( 0x80310070 )) +FVE_E_DV_NOT_ALLOWED_BY_GP = make_flag("FVE_E_DV_NOT_ALLOWED_BY_GP", ( 0x80310071 )) +FVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED = make_flag("FVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED", ( 0x80310072 )) +FVE_E_POLICY_USER_CERTIFICATE_REQUIRED = make_flag("FVE_E_POLICY_USER_CERTIFICATE_REQUIRED", ( 0x80310073 )) +FVE_E_POLICY_USER_CERT_MUST_BE_HW = make_flag("FVE_E_POLICY_USER_CERT_MUST_BE_HW", ( 0x80310074 )) +FVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED = make_flag("FVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED", ( 0x80310075 )) +FVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED = make_flag("FVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED", ( 0x80310076 )) +FVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED = make_flag("FVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED", ( 0x80310077 )) +FVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED = make_flag("FVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED", ( 0x80310078 )) +FVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED = make_flag("FVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED", ( 0x80310079 )) +FVE_E_POLICY_INVALID_PASSPHRASE_LENGTH = make_flag("FVE_E_POLICY_INVALID_PASSPHRASE_LENGTH", ( 0x80310080 )) +FVE_E_POLICY_PASSPHRASE_TOO_SIMPLE = make_flag("FVE_E_POLICY_PASSPHRASE_TOO_SIMPLE", ( 0x80310081 )) +FVE_E_RECOVERY_PARTITION = make_flag("FVE_E_RECOVERY_PARTITION", ( 0x80310082 )) +FVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON = make_flag("FVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON", ( 0x80310083 )) +FVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON = make_flag("FVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON", ( 0x80310084 )) +FVE_E_NON_BITLOCKER_OID = make_flag("FVE_E_NON_BITLOCKER_OID", ( 0x80310085 )) +FVE_E_POLICY_PROHIBITS_SELFSIGNED = make_flag("FVE_E_POLICY_PROHIBITS_SELFSIGNED", ( 0x80310086 )) +FVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED = make_flag("FVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED", ( 0x80310087 )) +FVE_E_CONV_RECOVERY_FAILED = make_flag("FVE_E_CONV_RECOVERY_FAILED", ( 0x80310088 )) +FVE_E_VIRTUALIZED_SPACE_TOO_BIG = make_flag("FVE_E_VIRTUALIZED_SPACE_TOO_BIG", ( 0x80310089 )) +FVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON = make_flag("FVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON", ( 0x80310090 )) +FVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON = make_flag("FVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON", ( 0x80310091 )) +FVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON = make_flag("FVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON", ( 0x80310092 )) +FVE_E_NON_BITLOCKER_KU = make_flag("FVE_E_NON_BITLOCKER_KU", ( 0x80310093 )) +FVE_E_PRIVATEKEY_AUTH_FAILED = make_flag("FVE_E_PRIVATEKEY_AUTH_FAILED", ( 0x80310094 )) +FVE_E_REMOVAL_OF_DRA_FAILED = make_flag("FVE_E_REMOVAL_OF_DRA_FAILED", ( 0x80310095 )) +FVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME = make_flag("FVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME", ( 0x80310096 )) +FVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME = make_flag("FVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME", ( 0x80310097 )) +FVE_E_FIPS_HASH_KDF_NOT_ALLOWED = make_flag("FVE_E_FIPS_HASH_KDF_NOT_ALLOWED", ( 0x80310098 )) +FVE_E_ENH_PIN_INVALID = make_flag("FVE_E_ENH_PIN_INVALID", ( 0x80310099 )) +FVE_E_INVALID_PIN_CHARS = make_flag("FVE_E_INVALID_PIN_CHARS", ( 0x8031009A )) +FVE_E_INVALID_DATUM_TYPE = make_flag("FVE_E_INVALID_DATUM_TYPE", ( 0x8031009B )) +FVE_E_EFI_ONLY = make_flag("FVE_E_EFI_ONLY", ( 0x8031009C )) +FVE_E_MULTIPLE_NKP_CERTS = make_flag("FVE_E_MULTIPLE_NKP_CERTS", ( 0x8031009D )) +FVE_E_REMOVAL_OF_NKP_FAILED = make_flag("FVE_E_REMOVAL_OF_NKP_FAILED", ( 0x8031009E )) +FVE_E_INVALID_NKP_CERT = make_flag("FVE_E_INVALID_NKP_CERT", ( 0x8031009F )) +FVE_E_NO_EXISTING_PIN = make_flag("FVE_E_NO_EXISTING_PIN", ( 0x803100A0 )) +FVE_E_PROTECTOR_CHANGE_PIN_MISMATCH = make_flag("FVE_E_PROTECTOR_CHANGE_PIN_MISMATCH", ( 0x803100A1 )) +FVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED = make_flag("FVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED", ( 0x803100A2 )) +FVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED = make_flag("FVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED", ( 0x803100A3 )) +FVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII = make_flag("FVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII", ( 0x803100A4 )) +FVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE = make_flag("FVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE", ( 0x803100A5 )) +FVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE = make_flag("FVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE", ( 0x803100A6 )) +FVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE = make_flag("FVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE", ( 0x803100A7 )) +FVE_E_NO_EXISTING_PASSPHRASE = make_flag("FVE_E_NO_EXISTING_PASSPHRASE", ( 0x803100A8 )) +FVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH = make_flag("FVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH", ( 0x803100A9 )) +FVE_E_PASSPHRASE_TOO_LONG = make_flag("FVE_E_PASSPHRASE_TOO_LONG", ( 0x803100AA )) +FVE_E_NO_PASSPHRASE_WITH_TPM = make_flag("FVE_E_NO_PASSPHRASE_WITH_TPM", ( 0x803100AB )) +FVE_E_NO_TPM_WITH_PASSPHRASE = make_flag("FVE_E_NO_TPM_WITH_PASSPHRASE", ( 0x803100AC )) +FVE_E_NOT_ALLOWED_ON_CSV_STACK = make_flag("FVE_E_NOT_ALLOWED_ON_CSV_STACK", ( 0x803100AD )) +FVE_E_NOT_ALLOWED_ON_CLUSTER = make_flag("FVE_E_NOT_ALLOWED_ON_CLUSTER", ( 0x803100AE )) +FVE_E_EDRIVE_NO_FAILOVER_TO_SW = make_flag("FVE_E_EDRIVE_NO_FAILOVER_TO_SW", ( 0x803100AF )) +FVE_E_EDRIVE_BAND_IN_USE = make_flag("FVE_E_EDRIVE_BAND_IN_USE", ( 0x803100B0 )) +FVE_E_EDRIVE_DISALLOWED_BY_GP = make_flag("FVE_E_EDRIVE_DISALLOWED_BY_GP", ( 0x803100B1 )) +FVE_E_EDRIVE_INCOMPATIBLE_VOLUME = make_flag("FVE_E_EDRIVE_INCOMPATIBLE_VOLUME", ( 0x803100B2 )) +FVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING = make_flag("FVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING", ( 0x803100B3 )) +FVE_E_EDRIVE_DV_NOT_SUPPORTED = make_flag("FVE_E_EDRIVE_DV_NOT_SUPPORTED", ( 0x803100B4 )) +FVE_E_NO_PREBOOT_KEYBOARD_DETECTED = make_flag("FVE_E_NO_PREBOOT_KEYBOARD_DETECTED", ( 0x803100B5 )) +FVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED = make_flag("FVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED", ( 0x803100B6 )) +FVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE = make_flag("FVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE", ( 0x803100B7 )) +FVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE = make_flag("FVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE", ( 0x803100B8 )) +FVE_E_WIPE_CANCEL_NOT_APPLICABLE = make_flag("FVE_E_WIPE_CANCEL_NOT_APPLICABLE", ( 0x803100B9 )) +FVE_E_SECUREBOOT_DISABLED = make_flag("FVE_E_SECUREBOOT_DISABLED", ( 0x803100BA )) +FVE_E_SECUREBOOT_CONFIGURATION_INVALID = make_flag("FVE_E_SECUREBOOT_CONFIGURATION_INVALID", ( 0x803100BB )) +FVE_E_EDRIVE_DRY_RUN_FAILED = make_flag("FVE_E_EDRIVE_DRY_RUN_FAILED", ( 0x803100BC )) +FVE_E_SHADOW_COPY_PRESENT = make_flag("FVE_E_SHADOW_COPY_PRESENT", ( 0x803100BD )) +FVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS = make_flag("FVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS", ( 0x803100BE )) +FVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE = make_flag("FVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE", ( 0x803100BF )) +FVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED = make_flag("FVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED", ( 0x803100C0 )) +FVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED = make_flag("FVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED", ( 0x803100C1 )) +FVE_E_LIVEID_ACCOUNT_SUSPENDED = make_flag("FVE_E_LIVEID_ACCOUNT_SUSPENDED", ( 0x803100C2 )) +FVE_E_LIVEID_ACCOUNT_BLOCKED = make_flag("FVE_E_LIVEID_ACCOUNT_BLOCKED", ( 0x803100C3 )) +FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES = make_flag("FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES", ( 0x803100C4 )) +FVE_E_DE_FIXED_DATA_NOT_SUPPORTED = make_flag("FVE_E_DE_FIXED_DATA_NOT_SUPPORTED", ( 0x803100C5 )) +FVE_E_DE_HARDWARE_NOT_COMPLIANT = make_flag("FVE_E_DE_HARDWARE_NOT_COMPLIANT", ( 0x803100C6 )) +FVE_E_DE_WINRE_NOT_CONFIGURED = make_flag("FVE_E_DE_WINRE_NOT_CONFIGURED", ( 0x803100C7 )) +FVE_E_DE_PROTECTION_SUSPENDED = make_flag("FVE_E_DE_PROTECTION_SUSPENDED", ( 0x803100C8 )) +FVE_E_DE_OS_VOLUME_NOT_PROTECTED = make_flag("FVE_E_DE_OS_VOLUME_NOT_PROTECTED", ( 0x803100C9 )) +FVE_E_DE_DEVICE_LOCKEDOUT = make_flag("FVE_E_DE_DEVICE_LOCKEDOUT", ( 0x803100CA )) +FVE_E_DE_PROTECTION_NOT_YET_ENABLED = make_flag("FVE_E_DE_PROTECTION_NOT_YET_ENABLED", ( 0x803100CB )) +FVE_E_INVALID_PIN_CHARS_DETAILED = make_flag("FVE_E_INVALID_PIN_CHARS_DETAILED", ( 0x803100CC )) +FVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE = make_flag("FVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE", ( 0x803100CD )) +FVE_E_DEVICELOCKOUT_COUNTER_MISMATCH = make_flag("FVE_E_DEVICELOCKOUT_COUNTER_MISMATCH", ( 0x803100CE )) +FVE_E_BUFFER_TOO_LARGE = make_flag("FVE_E_BUFFER_TOO_LARGE", ( 0x803100CF )) +FVE_E_NO_SUCH_CAPABILITY_ON_TARGET = make_flag("FVE_E_NO_SUCH_CAPABILITY_ON_TARGET", ( 0x803100D0 )) +FVE_E_DE_PREVENTED_FOR_OS = make_flag("FVE_E_DE_PREVENTED_FOR_OS", ( 0x803100D1 )) +FVE_E_DE_VOLUME_OPTED_OUT = make_flag("FVE_E_DE_VOLUME_OPTED_OUT", ( 0x803100D2 )) +FVE_E_DE_VOLUME_NOT_SUPPORTED = make_flag("FVE_E_DE_VOLUME_NOT_SUPPORTED", ( 0x803100D3 )) +FVE_E_EOW_NOT_SUPPORTED_IN_VERSION = make_flag("FVE_E_EOW_NOT_SUPPORTED_IN_VERSION", ( 0x803100D4 )) +FVE_E_ADBACKUP_NOT_ENABLED = make_flag("FVE_E_ADBACKUP_NOT_ENABLED", ( 0x803100D5 )) +FVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT = make_flag("FVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT", ( 0x803100D6 )) +FVE_E_NOT_DE_VOLUME = make_flag("FVE_E_NOT_DE_VOLUME", ( 0x803100D7 )) +FVE_E_PROTECTION_CANNOT_BE_DISABLED = make_flag("FVE_E_PROTECTION_CANNOT_BE_DISABLED", ( 0x803100D8 )) +FVE_E_OSV_KSR_NOT_ALLOWED = make_flag("FVE_E_OSV_KSR_NOT_ALLOWED", ( 0x803100D9 )) +FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_OS_DRIVE = make_flag("FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_OS_DRIVE", ( 0x803100DA )) +FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_FIXED_DRIVE = make_flag("FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_FIXED_DRIVE", ( 0x803100DB )) +FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_REMOVABLE_DRIVE = make_flag("FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_REMOVABLE_DRIVE", ( 0x803100DC )) +FVE_E_KEY_ROTATION_NOT_SUPPORTED = make_flag("FVE_E_KEY_ROTATION_NOT_SUPPORTED", ( 0x803100DD )) +FVE_E_EXECUTE_REQUEST_SENT_TOO_SOON = make_flag("FVE_E_EXECUTE_REQUEST_SENT_TOO_SOON", ( 0x803100DE )) +FVE_E_KEY_ROTATION_NOT_ENABLED = make_flag("FVE_E_KEY_ROTATION_NOT_ENABLED", ( 0x803100DF )) +FVE_E_DEVICE_NOT_JOINED = make_flag("FVE_E_DEVICE_NOT_JOINED", ( 0x803100E0 )) +FWP_E_CALLOUT_NOT_FOUND = make_flag("FWP_E_CALLOUT_NOT_FOUND", ( 0x80320001 )) +FWP_E_CONDITION_NOT_FOUND = make_flag("FWP_E_CONDITION_NOT_FOUND", ( 0x80320002 )) +FWP_E_FILTER_NOT_FOUND = make_flag("FWP_E_FILTER_NOT_FOUND", ( 0x80320003 )) +FWP_E_LAYER_NOT_FOUND = make_flag("FWP_E_LAYER_NOT_FOUND", ( 0x80320004 )) +FWP_E_PROVIDER_NOT_FOUND = make_flag("FWP_E_PROVIDER_NOT_FOUND", ( 0x80320005 )) +FWP_E_PROVIDER_CONTEXT_NOT_FOUND = make_flag("FWP_E_PROVIDER_CONTEXT_NOT_FOUND", ( 0x80320006 )) +FWP_E_SUBLAYER_NOT_FOUND = make_flag("FWP_E_SUBLAYER_NOT_FOUND", ( 0x80320007 )) +FWP_E_NOT_FOUND = make_flag("FWP_E_NOT_FOUND", ( 0x80320008 )) +FWP_E_ALREADY_EXISTS = make_flag("FWP_E_ALREADY_EXISTS", ( 0x80320009 )) +FWP_E_IN_USE = make_flag("FWP_E_IN_USE", ( 0x8032000A )) +FWP_E_DYNAMIC_SESSION_IN_PROGRESS = make_flag("FWP_E_DYNAMIC_SESSION_IN_PROGRESS", ( 0x8032000B )) +FWP_E_WRONG_SESSION = make_flag("FWP_E_WRONG_SESSION", ( 0x8032000C )) +FWP_E_NO_TXN_IN_PROGRESS = make_flag("FWP_E_NO_TXN_IN_PROGRESS", ( 0x8032000D )) +FWP_E_TXN_IN_PROGRESS = make_flag("FWP_E_TXN_IN_PROGRESS", ( 0x8032000E )) +FWP_E_TXN_ABORTED = make_flag("FWP_E_TXN_ABORTED", ( 0x8032000F )) +FWP_E_SESSION_ABORTED = make_flag("FWP_E_SESSION_ABORTED", ( 0x80320010 )) +FWP_E_INCOMPATIBLE_TXN = make_flag("FWP_E_INCOMPATIBLE_TXN", ( 0x80320011 )) +FWP_E_TIMEOUT = make_flag("FWP_E_TIMEOUT", ( 0x80320012 )) +FWP_E_NET_EVENTS_DISABLED = make_flag("FWP_E_NET_EVENTS_DISABLED", ( 0x80320013 )) +FWP_E_INCOMPATIBLE_LAYER = make_flag("FWP_E_INCOMPATIBLE_LAYER", ( 0x80320014 )) +FWP_E_KM_CLIENTS_ONLY = make_flag("FWP_E_KM_CLIENTS_ONLY", ( 0x80320015 )) +FWP_E_LIFETIME_MISMATCH = make_flag("FWP_E_LIFETIME_MISMATCH", ( 0x80320016 )) +FWP_E_BUILTIN_OBJECT = make_flag("FWP_E_BUILTIN_OBJECT", ( 0x80320017 )) +FWP_E_TOO_MANY_CALLOUTS = make_flag("FWP_E_TOO_MANY_CALLOUTS", ( 0x80320018 )) +FWP_E_NOTIFICATION_DROPPED = make_flag("FWP_E_NOTIFICATION_DROPPED", ( 0x80320019 )) +FWP_E_TRAFFIC_MISMATCH = make_flag("FWP_E_TRAFFIC_MISMATCH", ( 0x8032001A )) +FWP_E_INCOMPATIBLE_SA_STATE = make_flag("FWP_E_INCOMPATIBLE_SA_STATE", ( 0x8032001B )) +FWP_E_NULL_POINTER = make_flag("FWP_E_NULL_POINTER", ( 0x8032001C )) +FWP_E_INVALID_ENUMERATOR = make_flag("FWP_E_INVALID_ENUMERATOR", ( 0x8032001D )) +FWP_E_INVALID_FLAGS = make_flag("FWP_E_INVALID_FLAGS", ( 0x8032001E )) +FWP_E_INVALID_NET_MASK = make_flag("FWP_E_INVALID_NET_MASK", ( 0x8032001F )) +FWP_E_INVALID_RANGE = make_flag("FWP_E_INVALID_RANGE", ( 0x80320020 )) +FWP_E_INVALID_INTERVAL = make_flag("FWP_E_INVALID_INTERVAL", ( 0x80320021 )) +FWP_E_ZERO_LENGTH_ARRAY = make_flag("FWP_E_ZERO_LENGTH_ARRAY", ( 0x80320022 )) +FWP_E_NULL_DISPLAY_NAME = make_flag("FWP_E_NULL_DISPLAY_NAME", ( 0x80320023 )) +FWP_E_INVALID_ACTION_TYPE = make_flag("FWP_E_INVALID_ACTION_TYPE", ( 0x80320024 )) +FWP_E_INVALID_WEIGHT = make_flag("FWP_E_INVALID_WEIGHT", ( 0x80320025 )) +FWP_E_MATCH_TYPE_MISMATCH = make_flag("FWP_E_MATCH_TYPE_MISMATCH", ( 0x80320026 )) +FWP_E_TYPE_MISMATCH = make_flag("FWP_E_TYPE_MISMATCH", ( 0x80320027 )) +FWP_E_OUT_OF_BOUNDS = make_flag("FWP_E_OUT_OF_BOUNDS", ( 0x80320028 )) +FWP_E_RESERVED = make_flag("FWP_E_RESERVED", ( 0x80320029 )) +FWP_E_DUPLICATE_CONDITION = make_flag("FWP_E_DUPLICATE_CONDITION", ( 0x8032002A )) +FWP_E_DUPLICATE_KEYMOD = make_flag("FWP_E_DUPLICATE_KEYMOD", ( 0x8032002B )) +FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER = make_flag("FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER", ( 0x8032002C )) +FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER = make_flag("FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER", ( 0x8032002D )) +FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER = make_flag("FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER", ( 0x8032002E )) +FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT = make_flag("FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT", ( 0x8032002F )) +FWP_E_INCOMPATIBLE_AUTH_METHOD = make_flag("FWP_E_INCOMPATIBLE_AUTH_METHOD", ( 0x80320030 )) +FWP_E_INCOMPATIBLE_DH_GROUP = make_flag("FWP_E_INCOMPATIBLE_DH_GROUP", ( 0x80320031 )) +FWP_E_EM_NOT_SUPPORTED = make_flag("FWP_E_EM_NOT_SUPPORTED", ( 0x80320032 )) +FWP_E_NEVER_MATCH = make_flag("FWP_E_NEVER_MATCH", ( 0x80320033 )) +FWP_E_PROVIDER_CONTEXT_MISMATCH = make_flag("FWP_E_PROVIDER_CONTEXT_MISMATCH", ( 0x80320034 )) +FWP_E_INVALID_PARAMETER = make_flag("FWP_E_INVALID_PARAMETER", ( 0x80320035 )) +FWP_E_TOO_MANY_SUBLAYERS = make_flag("FWP_E_TOO_MANY_SUBLAYERS", ( 0x80320036 )) +FWP_E_CALLOUT_NOTIFICATION_FAILED = make_flag("FWP_E_CALLOUT_NOTIFICATION_FAILED", ( 0x80320037 )) +FWP_E_INVALID_AUTH_TRANSFORM = make_flag("FWP_E_INVALID_AUTH_TRANSFORM", ( 0x80320038 )) +FWP_E_INVALID_CIPHER_TRANSFORM = make_flag("FWP_E_INVALID_CIPHER_TRANSFORM", ( 0x80320039 )) +FWP_E_INCOMPATIBLE_CIPHER_TRANSFORM = make_flag("FWP_E_INCOMPATIBLE_CIPHER_TRANSFORM", ( 0x8032003A )) +FWP_E_INVALID_TRANSFORM_COMBINATION = make_flag("FWP_E_INVALID_TRANSFORM_COMBINATION", ( 0x8032003B )) +FWP_E_DUPLICATE_AUTH_METHOD = make_flag("FWP_E_DUPLICATE_AUTH_METHOD", ( 0x8032003C )) +FWP_E_INVALID_TUNNEL_ENDPOINT = make_flag("FWP_E_INVALID_TUNNEL_ENDPOINT", ( 0x8032003D )) +FWP_E_L2_DRIVER_NOT_READY = make_flag("FWP_E_L2_DRIVER_NOT_READY", ( 0x8032003E )) +FWP_E_KEY_DICTATOR_ALREADY_REGISTERED = make_flag("FWP_E_KEY_DICTATOR_ALREADY_REGISTERED", ( 0x8032003F )) +FWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL = make_flag("FWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL", ( 0x80320040 )) +FWP_E_CONNECTIONS_DISABLED = make_flag("FWP_E_CONNECTIONS_DISABLED", ( 0x80320041 )) +FWP_E_INVALID_DNS_NAME = make_flag("FWP_E_INVALID_DNS_NAME", ( 0x80320042 )) +FWP_E_STILL_ON = make_flag("FWP_E_STILL_ON", ( 0x80320043 )) +FWP_E_IKEEXT_NOT_RUNNING = make_flag("FWP_E_IKEEXT_NOT_RUNNING", ( 0x80320044 )) +FWP_E_DROP_NOICMP = make_flag("FWP_E_DROP_NOICMP", ( 0x80320104 )) +WS_S_ASYNC = make_flag("WS_S_ASYNC", ( 0x003D0000 )) +WS_S_END = make_flag("WS_S_END", ( 0x003D0001 )) +WS_E_INVALID_FORMAT = make_flag("WS_E_INVALID_FORMAT", ( 0x803D0000 )) +WS_E_OBJECT_FAULTED = make_flag("WS_E_OBJECT_FAULTED", ( 0x803D0001 )) +WS_E_NUMERIC_OVERFLOW = make_flag("WS_E_NUMERIC_OVERFLOW", ( 0x803D0002 )) +WS_E_INVALID_OPERATION = make_flag("WS_E_INVALID_OPERATION", ( 0x803D0003 )) +WS_E_OPERATION_ABORTED = make_flag("WS_E_OPERATION_ABORTED", ( 0x803D0004 )) +WS_E_ENDPOINT_ACCESS_DENIED = make_flag("WS_E_ENDPOINT_ACCESS_DENIED", ( 0x803D0005 )) +WS_E_OPERATION_TIMED_OUT = make_flag("WS_E_OPERATION_TIMED_OUT", ( 0x803D0006 )) +WS_E_OPERATION_ABANDONED = make_flag("WS_E_OPERATION_ABANDONED", ( 0x803D0007 )) +WS_E_QUOTA_EXCEEDED = make_flag("WS_E_QUOTA_EXCEEDED", ( 0x803D0008 )) +WS_E_NO_TRANSLATION_AVAILABLE = make_flag("WS_E_NO_TRANSLATION_AVAILABLE", ( 0x803D0009 )) +WS_E_SECURITY_VERIFICATION_FAILURE = make_flag("WS_E_SECURITY_VERIFICATION_FAILURE", ( 0x803D000A )) +WS_E_ADDRESS_IN_USE = make_flag("WS_E_ADDRESS_IN_USE", ( 0x803D000B )) +WS_E_ADDRESS_NOT_AVAILABLE = make_flag("WS_E_ADDRESS_NOT_AVAILABLE", ( 0x803D000C )) +WS_E_ENDPOINT_NOT_FOUND = make_flag("WS_E_ENDPOINT_NOT_FOUND", ( 0x803D000D )) +WS_E_ENDPOINT_NOT_AVAILABLE = make_flag("WS_E_ENDPOINT_NOT_AVAILABLE", ( 0x803D000E )) +WS_E_ENDPOINT_FAILURE = make_flag("WS_E_ENDPOINT_FAILURE", ( 0x803D000F )) +WS_E_ENDPOINT_UNREACHABLE = make_flag("WS_E_ENDPOINT_UNREACHABLE", ( 0x803D0010 )) +WS_E_ENDPOINT_ACTION_NOT_SUPPORTED = make_flag("WS_E_ENDPOINT_ACTION_NOT_SUPPORTED", ( 0x803D0011 )) +WS_E_ENDPOINT_TOO_BUSY = make_flag("WS_E_ENDPOINT_TOO_BUSY", ( 0x803D0012 )) +WS_E_ENDPOINT_FAULT_RECEIVED = make_flag("WS_E_ENDPOINT_FAULT_RECEIVED", ( 0x803D0013 )) +WS_E_ENDPOINT_DISCONNECTED = make_flag("WS_E_ENDPOINT_DISCONNECTED", ( 0x803D0014 )) +WS_E_PROXY_FAILURE = make_flag("WS_E_PROXY_FAILURE", ( 0x803D0015 )) +WS_E_PROXY_ACCESS_DENIED = make_flag("WS_E_PROXY_ACCESS_DENIED", ( 0x803D0016 )) +WS_E_NOT_SUPPORTED = make_flag("WS_E_NOT_SUPPORTED", ( 0x803D0017 )) +WS_E_PROXY_REQUIRES_BASIC_AUTH = make_flag("WS_E_PROXY_REQUIRES_BASIC_AUTH", ( 0x803D0018 )) +WS_E_PROXY_REQUIRES_DIGEST_AUTH = make_flag("WS_E_PROXY_REQUIRES_DIGEST_AUTH", ( 0x803D0019 )) +WS_E_PROXY_REQUIRES_NTLM_AUTH = make_flag("WS_E_PROXY_REQUIRES_NTLM_AUTH", ( 0x803D001A )) +WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH = make_flag("WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH", ( 0x803D001B )) +WS_E_SERVER_REQUIRES_BASIC_AUTH = make_flag("WS_E_SERVER_REQUIRES_BASIC_AUTH", ( 0x803D001C )) +WS_E_SERVER_REQUIRES_DIGEST_AUTH = make_flag("WS_E_SERVER_REQUIRES_DIGEST_AUTH", ( 0x803D001D )) +WS_E_SERVER_REQUIRES_NTLM_AUTH = make_flag("WS_E_SERVER_REQUIRES_NTLM_AUTH", ( 0x803D001E )) +WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH = make_flag("WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH", ( 0x803D001F )) +WS_E_INVALID_ENDPOINT_URL = make_flag("WS_E_INVALID_ENDPOINT_URL", ( 0x803D0020 )) +WS_E_OTHER = make_flag("WS_E_OTHER", ( 0x803D0021 )) +WS_E_SECURITY_TOKEN_EXPIRED = make_flag("WS_E_SECURITY_TOKEN_EXPIRED", ( 0x803D0022 )) +WS_E_SECURITY_SYSTEM_FAILURE = make_flag("WS_E_SECURITY_SYSTEM_FAILURE", ( 0x803D0023 )) +ERROR_NDIS_INTERFACE_CLOSING = make_flag("ERROR_NDIS_INTERFACE_CLOSING", ( 0x80340002 )) +ERROR_NDIS_BAD_VERSION = make_flag("ERROR_NDIS_BAD_VERSION", ( 0x80340004 )) +ERROR_NDIS_BAD_CHARACTERISTICS = make_flag("ERROR_NDIS_BAD_CHARACTERISTICS", ( 0x80340005 )) +ERROR_NDIS_ADAPTER_NOT_FOUND = make_flag("ERROR_NDIS_ADAPTER_NOT_FOUND", ( 0x80340006 )) +ERROR_NDIS_OPEN_FAILED = make_flag("ERROR_NDIS_OPEN_FAILED", ( 0x80340007 )) +ERROR_NDIS_DEVICE_FAILED = make_flag("ERROR_NDIS_DEVICE_FAILED", ( 0x80340008 )) +ERROR_NDIS_MULTICAST_FULL = make_flag("ERROR_NDIS_MULTICAST_FULL", ( 0x80340009 )) +ERROR_NDIS_MULTICAST_EXISTS = make_flag("ERROR_NDIS_MULTICAST_EXISTS", ( 0x8034000A )) +ERROR_NDIS_MULTICAST_NOT_FOUND = make_flag("ERROR_NDIS_MULTICAST_NOT_FOUND", ( 0x8034000B )) +ERROR_NDIS_REQUEST_ABORTED = make_flag("ERROR_NDIS_REQUEST_ABORTED", ( 0x8034000C )) +ERROR_NDIS_RESET_IN_PROGRESS = make_flag("ERROR_NDIS_RESET_IN_PROGRESS", ( 0x8034000D )) +ERROR_NDIS_NOT_SUPPORTED = make_flag("ERROR_NDIS_NOT_SUPPORTED", ( 0x803400BB )) +ERROR_NDIS_INVALID_PACKET = make_flag("ERROR_NDIS_INVALID_PACKET", ( 0x8034000F )) +ERROR_NDIS_ADAPTER_NOT_READY = make_flag("ERROR_NDIS_ADAPTER_NOT_READY", ( 0x80340011 )) +ERROR_NDIS_INVALID_LENGTH = make_flag("ERROR_NDIS_INVALID_LENGTH", ( 0x80340014 )) +ERROR_NDIS_INVALID_DATA = make_flag("ERROR_NDIS_INVALID_DATA", ( 0x80340015 )) +ERROR_NDIS_BUFFER_TOO_SHORT = make_flag("ERROR_NDIS_BUFFER_TOO_SHORT", ( 0x80340016 )) +ERROR_NDIS_INVALID_OID = make_flag("ERROR_NDIS_INVALID_OID", ( 0x80340017 )) +ERROR_NDIS_ADAPTER_REMOVED = make_flag("ERROR_NDIS_ADAPTER_REMOVED", ( 0x80340018 )) +ERROR_NDIS_UNSUPPORTED_MEDIA = make_flag("ERROR_NDIS_UNSUPPORTED_MEDIA", ( 0x80340019 )) +ERROR_NDIS_GROUP_ADDRESS_IN_USE = make_flag("ERROR_NDIS_GROUP_ADDRESS_IN_USE", ( 0x8034001A )) +ERROR_NDIS_FILE_NOT_FOUND = make_flag("ERROR_NDIS_FILE_NOT_FOUND", ( 0x8034001B )) +ERROR_NDIS_ERROR_READING_FILE = make_flag("ERROR_NDIS_ERROR_READING_FILE", ( 0x8034001C )) +ERROR_NDIS_ALREADY_MAPPED = make_flag("ERROR_NDIS_ALREADY_MAPPED", ( 0x8034001D )) +ERROR_NDIS_RESOURCE_CONFLICT = make_flag("ERROR_NDIS_RESOURCE_CONFLICT", ( 0x8034001E )) +ERROR_NDIS_MEDIA_DISCONNECTED = make_flag("ERROR_NDIS_MEDIA_DISCONNECTED", ( 0x8034001F )) +ERROR_NDIS_INVALID_ADDRESS = make_flag("ERROR_NDIS_INVALID_ADDRESS", ( 0x80340022 )) +ERROR_NDIS_INVALID_DEVICE_REQUEST = make_flag("ERROR_NDIS_INVALID_DEVICE_REQUEST", ( 0x80340010 )) +ERROR_NDIS_PAUSED = make_flag("ERROR_NDIS_PAUSED", ( 0x8034002A )) +ERROR_NDIS_INTERFACE_NOT_FOUND = make_flag("ERROR_NDIS_INTERFACE_NOT_FOUND", ( 0x8034002B )) +ERROR_NDIS_UNSUPPORTED_REVISION = make_flag("ERROR_NDIS_UNSUPPORTED_REVISION", ( 0x8034002C )) +ERROR_NDIS_INVALID_PORT = make_flag("ERROR_NDIS_INVALID_PORT", ( 0x8034002D )) +ERROR_NDIS_INVALID_PORT_STATE = make_flag("ERROR_NDIS_INVALID_PORT_STATE", ( 0x8034002E )) +ERROR_NDIS_LOW_POWER_STATE = make_flag("ERROR_NDIS_LOW_POWER_STATE", ( 0x8034002F )) +ERROR_NDIS_REINIT_REQUIRED = make_flag("ERROR_NDIS_REINIT_REQUIRED", ( 0x80340030 )) +ERROR_NDIS_NO_QUEUES = make_flag("ERROR_NDIS_NO_QUEUES", ( 0x80340031 )) +ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED = make_flag("ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED", ( 0x80342000 )) +ERROR_NDIS_DOT11_MEDIA_IN_USE = make_flag("ERROR_NDIS_DOT11_MEDIA_IN_USE", ( 0x80342001 )) +ERROR_NDIS_DOT11_POWER_STATE_INVALID = make_flag("ERROR_NDIS_DOT11_POWER_STATE_INVALID", ( 0x80342002 )) +ERROR_NDIS_PM_WOL_PATTERN_LIST_FULL = make_flag("ERROR_NDIS_PM_WOL_PATTERN_LIST_FULL", ( 0x80342003 )) +ERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL = make_flag("ERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL", ( 0x80342004 )) +ERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE = make_flag("ERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE", ( 0x80342005 )) +ERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE = make_flag("ERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE", ( 0x80342006 )) +ERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED = make_flag("ERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED", ( 0x80342007 )) +ERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED = make_flag("ERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED", ( 0x80342008 )) +ERROR_NDIS_INDICATION_REQUIRED = make_flag("ERROR_NDIS_INDICATION_REQUIRED", ( 0x00340001 )) +ERROR_NDIS_OFFLOAD_POLICY = make_flag("ERROR_NDIS_OFFLOAD_POLICY", ( 0xC034100F )) +ERROR_NDIS_OFFLOAD_CONNECTION_REJECTED = make_flag("ERROR_NDIS_OFFLOAD_CONNECTION_REJECTED", ( 0xC0341012 )) +ERROR_NDIS_OFFLOAD_PATH_REJECTED = make_flag("ERROR_NDIS_OFFLOAD_PATH_REJECTED", ( 0xC0341013 )) +ERROR_HV_INVALID_HYPERCALL_CODE = make_flag("ERROR_HV_INVALID_HYPERCALL_CODE", ( 0xC0350002 )) +ERROR_HV_INVALID_HYPERCALL_INPUT = make_flag("ERROR_HV_INVALID_HYPERCALL_INPUT", ( 0xC0350003 )) +ERROR_HV_INVALID_ALIGNMENT = make_flag("ERROR_HV_INVALID_ALIGNMENT", ( 0xC0350004 )) +ERROR_HV_INVALID_PARAMETER = make_flag("ERROR_HV_INVALID_PARAMETER", ( 0xC0350005 )) +ERROR_HV_ACCESS_DENIED = make_flag("ERROR_HV_ACCESS_DENIED", ( 0xC0350006 )) +ERROR_HV_INVALID_PARTITION_STATE = make_flag("ERROR_HV_INVALID_PARTITION_STATE", ( 0xC0350007 )) +ERROR_HV_OPERATION_DENIED = make_flag("ERROR_HV_OPERATION_DENIED", ( 0xC0350008 )) +ERROR_HV_UNKNOWN_PROPERTY = make_flag("ERROR_HV_UNKNOWN_PROPERTY", ( 0xC0350009 )) +ERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE = make_flag("ERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE", ( 0xC035000A )) +ERROR_HV_INSUFFICIENT_MEMORY = make_flag("ERROR_HV_INSUFFICIENT_MEMORY", ( 0xC035000B )) +ERROR_HV_PARTITION_TOO_DEEP = make_flag("ERROR_HV_PARTITION_TOO_DEEP", ( 0xC035000C )) +ERROR_HV_INVALID_PARTITION_ID = make_flag("ERROR_HV_INVALID_PARTITION_ID", ( 0xC035000D )) +ERROR_HV_INVALID_VP_INDEX = make_flag("ERROR_HV_INVALID_VP_INDEX", ( 0xC035000E )) +ERROR_HV_INVALID_PORT_ID = make_flag("ERROR_HV_INVALID_PORT_ID", ( 0xC0350011 )) +ERROR_HV_INVALID_CONNECTION_ID = make_flag("ERROR_HV_INVALID_CONNECTION_ID", ( 0xC0350012 )) +ERROR_HV_INSUFFICIENT_BUFFERS = make_flag("ERROR_HV_INSUFFICIENT_BUFFERS", ( 0xC0350013 )) +ERROR_HV_NOT_ACKNOWLEDGED = make_flag("ERROR_HV_NOT_ACKNOWLEDGED", ( 0xC0350014 )) +ERROR_HV_INVALID_VP_STATE = make_flag("ERROR_HV_INVALID_VP_STATE", ( 0xC0350015 )) +ERROR_HV_ACKNOWLEDGED = make_flag("ERROR_HV_ACKNOWLEDGED", ( 0xC0350016 )) +ERROR_HV_INVALID_SAVE_RESTORE_STATE = make_flag("ERROR_HV_INVALID_SAVE_RESTORE_STATE", ( 0xC0350017 )) +ERROR_HV_INVALID_SYNIC_STATE = make_flag("ERROR_HV_INVALID_SYNIC_STATE", ( 0xC0350018 )) +ERROR_HV_OBJECT_IN_USE = make_flag("ERROR_HV_OBJECT_IN_USE", ( 0xC0350019 )) +ERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO = make_flag("ERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO", ( 0xC035001A )) +ERROR_HV_NO_DATA = make_flag("ERROR_HV_NO_DATA", ( 0xC035001B )) +ERROR_HV_INACTIVE = make_flag("ERROR_HV_INACTIVE", ( 0xC035001C )) +ERROR_HV_NO_RESOURCES = make_flag("ERROR_HV_NO_RESOURCES", ( 0xC035001D )) +ERROR_HV_FEATURE_UNAVAILABLE = make_flag("ERROR_HV_FEATURE_UNAVAILABLE", ( 0xC035001E )) +ERROR_HV_INSUFFICIENT_BUFFER = make_flag("ERROR_HV_INSUFFICIENT_BUFFER", ( 0xC0350033 )) +ERROR_HV_INSUFFICIENT_DEVICE_DOMAINS = make_flag("ERROR_HV_INSUFFICIENT_DEVICE_DOMAINS", ( 0xC0350038 )) +ERROR_HV_CPUID_FEATURE_VALIDATION = make_flag("ERROR_HV_CPUID_FEATURE_VALIDATION", ( 0xC035003C )) +ERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION = make_flag("ERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION", ( 0xC035003D )) +ERROR_HV_PROCESSOR_STARTUP_TIMEOUT = make_flag("ERROR_HV_PROCESSOR_STARTUP_TIMEOUT", ( 0xC035003E )) +ERROR_HV_SMX_ENABLED = make_flag("ERROR_HV_SMX_ENABLED", ( 0xC035003F )) +ERROR_HV_INVALID_LP_INDEX = make_flag("ERROR_HV_INVALID_LP_INDEX", ( 0xC0350041 )) +ERROR_HV_INVALID_REGISTER_VALUE = make_flag("ERROR_HV_INVALID_REGISTER_VALUE", ( 0xC0350050 )) +ERROR_HV_INVALID_VTL_STATE = make_flag("ERROR_HV_INVALID_VTL_STATE", ( 0xC0350051 )) +ERROR_HV_NX_NOT_DETECTED = make_flag("ERROR_HV_NX_NOT_DETECTED", ( 0xC0350055 )) +ERROR_HV_INVALID_DEVICE_ID = make_flag("ERROR_HV_INVALID_DEVICE_ID", ( 0xC0350057 )) +ERROR_HV_INVALID_DEVICE_STATE = make_flag("ERROR_HV_INVALID_DEVICE_STATE", ( 0xC0350058 )) +ERROR_HV_PENDING_PAGE_REQUESTS = make_flag("ERROR_HV_PENDING_PAGE_REQUESTS", ( 0x00350059 )) +ERROR_HV_PAGE_REQUEST_INVALID = make_flag("ERROR_HV_PAGE_REQUEST_INVALID", ( 0xC0350060 )) +ERROR_HV_INVALID_CPU_GROUP_ID = make_flag("ERROR_HV_INVALID_CPU_GROUP_ID", ( 0xC035006F )) +ERROR_HV_INVALID_CPU_GROUP_STATE = make_flag("ERROR_HV_INVALID_CPU_GROUP_STATE", ( 0xC0350070 )) +ERROR_HV_OPERATION_FAILED = make_flag("ERROR_HV_OPERATION_FAILED", ( 0xC0350071 )) +ERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE = make_flag("ERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE", ( 0xC0350072 )) +ERROR_HV_INSUFFICIENT_ROOT_MEMORY = make_flag("ERROR_HV_INSUFFICIENT_ROOT_MEMORY", ( 0xC0350073 )) +ERROR_HV_NOT_PRESENT = make_flag("ERROR_HV_NOT_PRESENT", ( 0xC0351000 )) +ERROR_VID_DUPLICATE_HANDLER = make_flag("ERROR_VID_DUPLICATE_HANDLER", ( 0xC0370001 )) +ERROR_VID_TOO_MANY_HANDLERS = make_flag("ERROR_VID_TOO_MANY_HANDLERS", ( 0xC0370002 )) +ERROR_VID_QUEUE_FULL = make_flag("ERROR_VID_QUEUE_FULL", ( 0xC0370003 )) +ERROR_VID_HANDLER_NOT_PRESENT = make_flag("ERROR_VID_HANDLER_NOT_PRESENT", ( 0xC0370004 )) +ERROR_VID_INVALID_OBJECT_NAME = make_flag("ERROR_VID_INVALID_OBJECT_NAME", ( 0xC0370005 )) +ERROR_VID_PARTITION_NAME_TOO_LONG = make_flag("ERROR_VID_PARTITION_NAME_TOO_LONG", ( 0xC0370006 )) +ERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG = make_flag("ERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG", ( 0xC0370007 )) +ERROR_VID_PARTITION_ALREADY_EXISTS = make_flag("ERROR_VID_PARTITION_ALREADY_EXISTS", ( 0xC0370008 )) +ERROR_VID_PARTITION_DOES_NOT_EXIST = make_flag("ERROR_VID_PARTITION_DOES_NOT_EXIST", ( 0xC0370009 )) +ERROR_VID_PARTITION_NAME_NOT_FOUND = make_flag("ERROR_VID_PARTITION_NAME_NOT_FOUND", ( 0xC037000A )) +ERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS = make_flag("ERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS", ( 0xC037000B )) +ERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT = make_flag("ERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT", ( 0xC037000C )) +ERROR_VID_MB_STILL_REFERENCED = make_flag("ERROR_VID_MB_STILL_REFERENCED", ( 0xC037000D )) +ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED = make_flag("ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED", ( 0xC037000E )) +ERROR_VID_INVALID_NUMA_SETTINGS = make_flag("ERROR_VID_INVALID_NUMA_SETTINGS", ( 0xC037000F )) +ERROR_VID_INVALID_NUMA_NODE_INDEX = make_flag("ERROR_VID_INVALID_NUMA_NODE_INDEX", ( 0xC0370010 )) +ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED = make_flag("ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED", ( 0xC0370011 )) +ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE = make_flag("ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE", ( 0xC0370012 )) +ERROR_VID_PAGE_RANGE_OVERFLOW = make_flag("ERROR_VID_PAGE_RANGE_OVERFLOW", ( 0xC0370013 )) +ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE = make_flag("ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE", ( 0xC0370014 )) +ERROR_VID_INVALID_GPA_RANGE_HANDLE = make_flag("ERROR_VID_INVALID_GPA_RANGE_HANDLE", ( 0xC0370015 )) +ERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE = make_flag("ERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE", ( 0xC0370016 )) +ERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED = make_flag("ERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED", ( 0xC0370017 )) +ERROR_VID_INVALID_PPM_HANDLE = make_flag("ERROR_VID_INVALID_PPM_HANDLE", ( 0xC0370018 )) +ERROR_VID_MBPS_ARE_LOCKED = make_flag("ERROR_VID_MBPS_ARE_LOCKED", ( 0xC0370019 )) +ERROR_VID_MESSAGE_QUEUE_CLOSED = make_flag("ERROR_VID_MESSAGE_QUEUE_CLOSED", ( 0xC037001A )) +ERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED = make_flag("ERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED", ( 0xC037001B )) +ERROR_VID_STOP_PENDING = make_flag("ERROR_VID_STOP_PENDING", ( 0xC037001C )) +ERROR_VID_INVALID_PROCESSOR_STATE = make_flag("ERROR_VID_INVALID_PROCESSOR_STATE", ( 0xC037001D )) +ERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT = make_flag("ERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT", ( 0xC037001E )) +ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED = make_flag("ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED", ( 0xC037001F )) +ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET = make_flag("ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET", ( 0xC0370020 )) +ERROR_VID_MMIO_RANGE_DESTROYED = make_flag("ERROR_VID_MMIO_RANGE_DESTROYED", ( 0xC0370021 )) +ERROR_VID_INVALID_CHILD_GPA_PAGE_SET = make_flag("ERROR_VID_INVALID_CHILD_GPA_PAGE_SET", ( 0xC0370022 )) +ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED = make_flag("ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED", ( 0xC0370023 )) +ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL = make_flag("ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL", ( 0xC0370024 )) +ERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE = make_flag("ERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE", ( 0xC0370025 )) +ERROR_VID_MBP_COUNT_EXCEEDED_LIMIT = make_flag("ERROR_VID_MBP_COUNT_EXCEEDED_LIMIT", ( 0xC0370026 )) +ERROR_VID_SAVED_STATE_CORRUPT = make_flag("ERROR_VID_SAVED_STATE_CORRUPT", ( 0xC0370027 )) +ERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM = make_flag("ERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM", ( 0xC0370028 )) +ERROR_VID_SAVED_STATE_INCOMPATIBLE = make_flag("ERROR_VID_SAVED_STATE_INCOMPATIBLE", ( 0xC0370029 )) +ERROR_VID_VTL_ACCESS_DENIED = make_flag("ERROR_VID_VTL_ACCESS_DENIED", ( 0xC037002A )) +ERROR_VMCOMPUTE_TERMINATED_DURING_START = make_flag("ERROR_VMCOMPUTE_TERMINATED_DURING_START", ( 0xC0370100 )) +ERROR_VMCOMPUTE_IMAGE_MISMATCH = make_flag("ERROR_VMCOMPUTE_IMAGE_MISMATCH", ( 0xC0370101 )) +ERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED = make_flag("ERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED", ( 0xC0370102 )) +ERROR_VMCOMPUTE_OPERATION_PENDING = make_flag("ERROR_VMCOMPUTE_OPERATION_PENDING", ( 0xC0370103 )) +ERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS = make_flag("ERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS", ( 0xC0370104 )) +ERROR_VMCOMPUTE_INVALID_STATE = make_flag("ERROR_VMCOMPUTE_INVALID_STATE", ( 0xC0370105 )) +ERROR_VMCOMPUTE_UNEXPECTED_EXIT = make_flag("ERROR_VMCOMPUTE_UNEXPECTED_EXIT", ( 0xC0370106 )) +ERROR_VMCOMPUTE_TERMINATED = make_flag("ERROR_VMCOMPUTE_TERMINATED", ( 0xC0370107 )) +ERROR_VMCOMPUTE_CONNECT_FAILED = make_flag("ERROR_VMCOMPUTE_CONNECT_FAILED", ( 0xC0370108 )) +ERROR_VMCOMPUTE_TIMEOUT = make_flag("ERROR_VMCOMPUTE_TIMEOUT", ( 0xC0370109 )) +ERROR_VMCOMPUTE_CONNECTION_CLOSED = make_flag("ERROR_VMCOMPUTE_CONNECTION_CLOSED", ( 0xC037010A )) +ERROR_VMCOMPUTE_UNKNOWN_MESSAGE = make_flag("ERROR_VMCOMPUTE_UNKNOWN_MESSAGE", ( 0xC037010B )) +ERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION = make_flag("ERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION", ( 0xC037010C )) +ERROR_VMCOMPUTE_INVALID_JSON = make_flag("ERROR_VMCOMPUTE_INVALID_JSON", ( 0xC037010D )) +ERROR_VMCOMPUTE_SYSTEM_NOT_FOUND = make_flag("ERROR_VMCOMPUTE_SYSTEM_NOT_FOUND", ( 0xC037010E )) +ERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS = make_flag("ERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS", ( 0xC037010F )) +ERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED = make_flag("ERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED", ( 0xC0370110 )) +ERROR_VMCOMPUTE_PROTOCOL_ERROR = make_flag("ERROR_VMCOMPUTE_PROTOCOL_ERROR", ( 0xC0370111 )) +ERROR_VMCOMPUTE_INVALID_LAYER = make_flag("ERROR_VMCOMPUTE_INVALID_LAYER", ( 0xC0370112 )) +ERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED = make_flag("ERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED", ( 0xC0370113 )) +HCS_E_TERMINATED_DURING_START = make_flag("HCS_E_TERMINATED_DURING_START", ( 0x80370100 )) +HCS_E_IMAGE_MISMATCH = make_flag("HCS_E_IMAGE_MISMATCH", ( 0x80370101 )) +HCS_E_HYPERV_NOT_INSTALLED = make_flag("HCS_E_HYPERV_NOT_INSTALLED", ( 0x80370102 )) +HCS_E_INVALID_STATE = make_flag("HCS_E_INVALID_STATE", ( 0x80370105 )) +HCS_E_UNEXPECTED_EXIT = make_flag("HCS_E_UNEXPECTED_EXIT", ( 0x80370106 )) +HCS_E_TERMINATED = make_flag("HCS_E_TERMINATED", ( 0x80370107 )) +HCS_E_CONNECT_FAILED = make_flag("HCS_E_CONNECT_FAILED", ( 0x80370108 )) +HCS_E_CONNECTION_TIMEOUT = make_flag("HCS_E_CONNECTION_TIMEOUT", ( 0x80370109 )) +HCS_E_CONNECTION_CLOSED = make_flag("HCS_E_CONNECTION_CLOSED", ( 0x8037010A )) +HCS_E_UNKNOWN_MESSAGE = make_flag("HCS_E_UNKNOWN_MESSAGE", ( 0x8037010B )) +HCS_E_UNSUPPORTED_PROTOCOL_VERSION = make_flag("HCS_E_UNSUPPORTED_PROTOCOL_VERSION", ( 0x8037010C )) +HCS_E_INVALID_JSON = make_flag("HCS_E_INVALID_JSON", ( 0x8037010D )) +HCS_E_SYSTEM_NOT_FOUND = make_flag("HCS_E_SYSTEM_NOT_FOUND", ( 0x8037010E )) +HCS_E_SYSTEM_ALREADY_EXISTS = make_flag("HCS_E_SYSTEM_ALREADY_EXISTS", ( 0x8037010F )) +HCS_E_SYSTEM_ALREADY_STOPPED = make_flag("HCS_E_SYSTEM_ALREADY_STOPPED", ( 0x80370110 )) +HCS_E_PROTOCOL_ERROR = make_flag("HCS_E_PROTOCOL_ERROR", ( 0x80370111 )) +HCS_E_INVALID_LAYER = make_flag("HCS_E_INVALID_LAYER", ( 0x80370112 )) +HCS_E_WINDOWS_INSIDER_REQUIRED = make_flag("HCS_E_WINDOWS_INSIDER_REQUIRED", ( 0x80370113 )) +HCS_E_SERVICE_NOT_AVAILABLE = make_flag("HCS_E_SERVICE_NOT_AVAILABLE", ( 0x80370114 )) +HCS_E_OPERATION_NOT_STARTED = make_flag("HCS_E_OPERATION_NOT_STARTED", ( 0x80370115 )) +HCS_E_OPERATION_ALREADY_STARTED = make_flag("HCS_E_OPERATION_ALREADY_STARTED", ( 0x80370116 )) +HCS_E_OPERATION_PENDING = make_flag("HCS_E_OPERATION_PENDING", ( 0x80370117 )) +HCS_E_OPERATION_TIMEOUT = make_flag("HCS_E_OPERATION_TIMEOUT", ( 0x80370118 )) +HCS_E_OPERATION_SYSTEM_CALLBACK_ALREADY_SET = make_flag("HCS_E_OPERATION_SYSTEM_CALLBACK_ALREADY_SET", ( 0x80370119 )) +HCS_E_OPERATION_RESULT_ALLOCATION_FAILED = make_flag("HCS_E_OPERATION_RESULT_ALLOCATION_FAILED", ( 0x8037011A )) +HCS_E_ACCESS_DENIED = make_flag("HCS_E_ACCESS_DENIED", ( 0x8037011B )) +HCS_E_GUEST_CRITICAL_ERROR = make_flag("HCS_E_GUEST_CRITICAL_ERROR", ( 0x8037011C )) +ERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND = make_flag("ERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND", ( 0xC0370200 )) +ERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED = make_flag("ERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED", ( 0x80370001 )) +WHV_E_UNKNOWN_CAPABILITY = make_flag("WHV_E_UNKNOWN_CAPABILITY", ( 0x80370300 )) +WHV_E_INSUFFICIENT_BUFFER = make_flag("WHV_E_INSUFFICIENT_BUFFER", ( 0x80370301 )) +WHV_E_UNKNOWN_PROPERTY = make_flag("WHV_E_UNKNOWN_PROPERTY", ( 0x80370302 )) +WHV_E_UNSUPPORTED_HYPERVISOR_CONFIG = make_flag("WHV_E_UNSUPPORTED_HYPERVISOR_CONFIG", ( 0x80370303 )) +WHV_E_INVALID_PARTITION_CONFIG = make_flag("WHV_E_INVALID_PARTITION_CONFIG", ( 0x80370304 )) +WHV_E_GPA_RANGE_NOT_FOUND = make_flag("WHV_E_GPA_RANGE_NOT_FOUND", ( 0x80370305 )) +WHV_E_VP_ALREADY_EXISTS = make_flag("WHV_E_VP_ALREADY_EXISTS", ( 0x80370306 )) +WHV_E_VP_DOES_NOT_EXIST = make_flag("WHV_E_VP_DOES_NOT_EXIST", ( 0x80370307 )) +WHV_E_INVALID_VP_STATE = make_flag("WHV_E_INVALID_VP_STATE", ( 0x80370308 )) +WHV_E_INVALID_VP_REGISTER_NAME = make_flag("WHV_E_INVALID_VP_REGISTER_NAME", ( 0x80370309 )) +ERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND = make_flag("ERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND", ( 0xC0370400 )) +ERROR_VSMB_SAVED_STATE_CORRUPT = make_flag("ERROR_VSMB_SAVED_STATE_CORRUPT", ( 0xC0370401 )) +ERROR_VOLMGR_INCOMPLETE_REGENERATION = make_flag("ERROR_VOLMGR_INCOMPLETE_REGENERATION", ( 0x80380001 )) +ERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION = make_flag("ERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION", ( 0x80380002 )) +ERROR_VOLMGR_DATABASE_FULL = make_flag("ERROR_VOLMGR_DATABASE_FULL", ( 0xC0380001 )) +ERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED = make_flag("ERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED", ( 0xC0380002 )) +ERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC = make_flag("ERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC", ( 0xC0380003 )) +ERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED = make_flag("ERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED", ( 0xC0380004 )) +ERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME = make_flag("ERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME", ( 0xC0380005 )) +ERROR_VOLMGR_DISK_DUPLICATE = make_flag("ERROR_VOLMGR_DISK_DUPLICATE", ( 0xC0380006 )) +ERROR_VOLMGR_DISK_DYNAMIC = make_flag("ERROR_VOLMGR_DISK_DYNAMIC", ( 0xC0380007 )) +ERROR_VOLMGR_DISK_ID_INVALID = make_flag("ERROR_VOLMGR_DISK_ID_INVALID", ( 0xC0380008 )) +ERROR_VOLMGR_DISK_INVALID = make_flag("ERROR_VOLMGR_DISK_INVALID", ( 0xC0380009 )) +ERROR_VOLMGR_DISK_LAST_VOTER = make_flag("ERROR_VOLMGR_DISK_LAST_VOTER", ( 0xC038000A )) +ERROR_VOLMGR_DISK_LAYOUT_INVALID = make_flag("ERROR_VOLMGR_DISK_LAYOUT_INVALID", ( 0xC038000B )) +ERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS = make_flag("ERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS", ( 0xC038000C )) +ERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED = make_flag("ERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED", ( 0xC038000D )) +ERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL = make_flag("ERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL", ( 0xC038000E )) +ERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS = make_flag("ERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS", ( 0xC038000F )) +ERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS = make_flag("ERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS", ( 0xC0380010 )) +ERROR_VOLMGR_DISK_MISSING = make_flag("ERROR_VOLMGR_DISK_MISSING", ( 0xC0380011 )) +ERROR_VOLMGR_DISK_NOT_EMPTY = make_flag("ERROR_VOLMGR_DISK_NOT_EMPTY", ( 0xC0380012 )) +ERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE = make_flag("ERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE", ( 0xC0380013 )) +ERROR_VOLMGR_DISK_REVECTORING_FAILED = make_flag("ERROR_VOLMGR_DISK_REVECTORING_FAILED", ( 0xC0380014 )) +ERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID = make_flag("ERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID", ( 0xC0380015 )) +ERROR_VOLMGR_DISK_SET_NOT_CONTAINED = make_flag("ERROR_VOLMGR_DISK_SET_NOT_CONTAINED", ( 0xC0380016 )) +ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS = make_flag("ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS", ( 0xC0380017 )) +ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES = make_flag("ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES", ( 0xC0380018 )) +ERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED = make_flag("ERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED", ( 0xC0380019 )) +ERROR_VOLMGR_EXTENT_ALREADY_USED = make_flag("ERROR_VOLMGR_EXTENT_ALREADY_USED", ( 0xC038001A )) +ERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS = make_flag("ERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS", ( 0xC038001B )) +ERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION = make_flag("ERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION", ( 0xC038001C )) +ERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED = make_flag("ERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED", ( 0xC038001D )) +ERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION = make_flag("ERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION", ( 0xC038001E )) +ERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH = make_flag("ERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH", ( 0xC038001F )) +ERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED = make_flag("ERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED", ( 0xC0380020 )) +ERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID = make_flag("ERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID", ( 0xC0380021 )) +ERROR_VOLMGR_MAXIMUM_REGISTERED_USERS = make_flag("ERROR_VOLMGR_MAXIMUM_REGISTERED_USERS", ( 0xC0380022 )) +ERROR_VOLMGR_MEMBER_IN_SYNC = make_flag("ERROR_VOLMGR_MEMBER_IN_SYNC", ( 0xC0380023 )) +ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE = make_flag("ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE", ( 0xC0380024 )) +ERROR_VOLMGR_MEMBER_INDEX_INVALID = make_flag("ERROR_VOLMGR_MEMBER_INDEX_INVALID", ( 0xC0380025 )) +ERROR_VOLMGR_MEMBER_MISSING = make_flag("ERROR_VOLMGR_MEMBER_MISSING", ( 0xC0380026 )) +ERROR_VOLMGR_MEMBER_NOT_DETACHED = make_flag("ERROR_VOLMGR_MEMBER_NOT_DETACHED", ( 0xC0380027 )) +ERROR_VOLMGR_MEMBER_REGENERATING = make_flag("ERROR_VOLMGR_MEMBER_REGENERATING", ( 0xC0380028 )) +ERROR_VOLMGR_ALL_DISKS_FAILED = make_flag("ERROR_VOLMGR_ALL_DISKS_FAILED", ( 0xC0380029 )) +ERROR_VOLMGR_NO_REGISTERED_USERS = make_flag("ERROR_VOLMGR_NO_REGISTERED_USERS", ( 0xC038002A )) +ERROR_VOLMGR_NO_SUCH_USER = make_flag("ERROR_VOLMGR_NO_SUCH_USER", ( 0xC038002B )) +ERROR_VOLMGR_NOTIFICATION_RESET = make_flag("ERROR_VOLMGR_NOTIFICATION_RESET", ( 0xC038002C )) +ERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID = make_flag("ERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID", ( 0xC038002D )) +ERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID = make_flag("ERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID", ( 0xC038002E )) +ERROR_VOLMGR_PACK_DUPLICATE = make_flag("ERROR_VOLMGR_PACK_DUPLICATE", ( 0xC038002F )) +ERROR_VOLMGR_PACK_ID_INVALID = make_flag("ERROR_VOLMGR_PACK_ID_INVALID", ( 0xC0380030 )) +ERROR_VOLMGR_PACK_INVALID = make_flag("ERROR_VOLMGR_PACK_INVALID", ( 0xC0380031 )) +ERROR_VOLMGR_PACK_NAME_INVALID = make_flag("ERROR_VOLMGR_PACK_NAME_INVALID", ( 0xC0380032 )) +ERROR_VOLMGR_PACK_OFFLINE = make_flag("ERROR_VOLMGR_PACK_OFFLINE", ( 0xC0380033 )) +ERROR_VOLMGR_PACK_HAS_QUORUM = make_flag("ERROR_VOLMGR_PACK_HAS_QUORUM", ( 0xC0380034 )) +ERROR_VOLMGR_PACK_WITHOUT_QUORUM = make_flag("ERROR_VOLMGR_PACK_WITHOUT_QUORUM", ( 0xC0380035 )) +ERROR_VOLMGR_PARTITION_STYLE_INVALID = make_flag("ERROR_VOLMGR_PARTITION_STYLE_INVALID", ( 0xC0380036 )) +ERROR_VOLMGR_PARTITION_UPDATE_FAILED = make_flag("ERROR_VOLMGR_PARTITION_UPDATE_FAILED", ( 0xC0380037 )) +ERROR_VOLMGR_PLEX_IN_SYNC = make_flag("ERROR_VOLMGR_PLEX_IN_SYNC", ( 0xC0380038 )) +ERROR_VOLMGR_PLEX_INDEX_DUPLICATE = make_flag("ERROR_VOLMGR_PLEX_INDEX_DUPLICATE", ( 0xC0380039 )) +ERROR_VOLMGR_PLEX_INDEX_INVALID = make_flag("ERROR_VOLMGR_PLEX_INDEX_INVALID", ( 0xC038003A )) +ERROR_VOLMGR_PLEX_LAST_ACTIVE = make_flag("ERROR_VOLMGR_PLEX_LAST_ACTIVE", ( 0xC038003B )) +ERROR_VOLMGR_PLEX_MISSING = make_flag("ERROR_VOLMGR_PLEX_MISSING", ( 0xC038003C )) +ERROR_VOLMGR_PLEX_REGENERATING = make_flag("ERROR_VOLMGR_PLEX_REGENERATING", ( 0xC038003D )) +ERROR_VOLMGR_PLEX_TYPE_INVALID = make_flag("ERROR_VOLMGR_PLEX_TYPE_INVALID", ( 0xC038003E )) +ERROR_VOLMGR_PLEX_NOT_RAID5 = make_flag("ERROR_VOLMGR_PLEX_NOT_RAID5", ( 0xC038003F )) +ERROR_VOLMGR_PLEX_NOT_SIMPLE = make_flag("ERROR_VOLMGR_PLEX_NOT_SIMPLE", ( 0xC0380040 )) +ERROR_VOLMGR_STRUCTURE_SIZE_INVALID = make_flag("ERROR_VOLMGR_STRUCTURE_SIZE_INVALID", ( 0xC0380041 )) +ERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS = make_flag("ERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS", ( 0xC0380042 )) +ERROR_VOLMGR_TRANSACTION_IN_PROGRESS = make_flag("ERROR_VOLMGR_TRANSACTION_IN_PROGRESS", ( 0xC0380043 )) +ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE = make_flag("ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE", ( 0xC0380044 )) +ERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK = make_flag("ERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK", ( 0xC0380045 )) +ERROR_VOLMGR_VOLUME_ID_INVALID = make_flag("ERROR_VOLMGR_VOLUME_ID_INVALID", ( 0xC0380046 )) +ERROR_VOLMGR_VOLUME_LENGTH_INVALID = make_flag("ERROR_VOLMGR_VOLUME_LENGTH_INVALID", ( 0xC0380047 )) +ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE = make_flag("ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE", ( 0xC0380048 )) +ERROR_VOLMGR_VOLUME_NOT_MIRRORED = make_flag("ERROR_VOLMGR_VOLUME_NOT_MIRRORED", ( 0xC0380049 )) +ERROR_VOLMGR_VOLUME_NOT_RETAINED = make_flag("ERROR_VOLMGR_VOLUME_NOT_RETAINED", ( 0xC038004A )) +ERROR_VOLMGR_VOLUME_OFFLINE = make_flag("ERROR_VOLMGR_VOLUME_OFFLINE", ( 0xC038004B )) +ERROR_VOLMGR_VOLUME_RETAINED = make_flag("ERROR_VOLMGR_VOLUME_RETAINED", ( 0xC038004C )) +ERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID = make_flag("ERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID", ( 0xC038004D )) +ERROR_VOLMGR_DIFFERENT_SECTOR_SIZE = make_flag("ERROR_VOLMGR_DIFFERENT_SECTOR_SIZE", ( 0xC038004E )) +ERROR_VOLMGR_BAD_BOOT_DISK = make_flag("ERROR_VOLMGR_BAD_BOOT_DISK", ( 0xC038004F )) +ERROR_VOLMGR_PACK_CONFIG_OFFLINE = make_flag("ERROR_VOLMGR_PACK_CONFIG_OFFLINE", ( 0xC0380050 )) +ERROR_VOLMGR_PACK_CONFIG_ONLINE = make_flag("ERROR_VOLMGR_PACK_CONFIG_ONLINE", ( 0xC0380051 )) +ERROR_VOLMGR_NOT_PRIMARY_PACK = make_flag("ERROR_VOLMGR_NOT_PRIMARY_PACK", ( 0xC0380052 )) +ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED = make_flag("ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED", ( 0xC0380053 )) +ERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID = make_flag("ERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID", ( 0xC0380054 )) +ERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID = make_flag("ERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID", ( 0xC0380055 )) +ERROR_VOLMGR_VOLUME_MIRRORED = make_flag("ERROR_VOLMGR_VOLUME_MIRRORED", ( 0xC0380056 )) +ERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED = make_flag("ERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED", ( 0xC0380057 )) +ERROR_VOLMGR_NO_VALID_LOG_COPIES = make_flag("ERROR_VOLMGR_NO_VALID_LOG_COPIES", ( 0xC0380058 )) +ERROR_VOLMGR_PRIMARY_PACK_PRESENT = make_flag("ERROR_VOLMGR_PRIMARY_PACK_PRESENT", ( 0xC0380059 )) +ERROR_VOLMGR_NUMBER_OF_DISKS_INVALID = make_flag("ERROR_VOLMGR_NUMBER_OF_DISKS_INVALID", ( 0xC038005A )) +ERROR_VOLMGR_MIRROR_NOT_SUPPORTED = make_flag("ERROR_VOLMGR_MIRROR_NOT_SUPPORTED", ( 0xC038005B )) +ERROR_VOLMGR_RAID5_NOT_SUPPORTED = make_flag("ERROR_VOLMGR_RAID5_NOT_SUPPORTED", ( 0xC038005C )) +ERROR_BCD_NOT_ALL_ENTRIES_IMPORTED = make_flag("ERROR_BCD_NOT_ALL_ENTRIES_IMPORTED", ( 0x80390001 )) +ERROR_BCD_TOO_MANY_ELEMENTS = make_flag("ERROR_BCD_TOO_MANY_ELEMENTS", ( 0xC0390002 )) +ERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED = make_flag("ERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED", ( 0x80390003 )) +ERROR_VHD_DRIVE_FOOTER_MISSING = make_flag("ERROR_VHD_DRIVE_FOOTER_MISSING", ( 0xC03A0001 )) +ERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH = make_flag("ERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH", ( 0xC03A0002 )) +ERROR_VHD_DRIVE_FOOTER_CORRUPT = make_flag("ERROR_VHD_DRIVE_FOOTER_CORRUPT", ( 0xC03A0003 )) +ERROR_VHD_FORMAT_UNKNOWN = make_flag("ERROR_VHD_FORMAT_UNKNOWN", ( 0xC03A0004 )) +ERROR_VHD_FORMAT_UNSUPPORTED_VERSION = make_flag("ERROR_VHD_FORMAT_UNSUPPORTED_VERSION", ( 0xC03A0005 )) +ERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH = make_flag("ERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH", ( 0xC03A0006 )) +ERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION = make_flag("ERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION", ( 0xC03A0007 )) +ERROR_VHD_SPARSE_HEADER_CORRUPT = make_flag("ERROR_VHD_SPARSE_HEADER_CORRUPT", ( 0xC03A0008 )) +ERROR_VHD_BLOCK_ALLOCATION_FAILURE = make_flag("ERROR_VHD_BLOCK_ALLOCATION_FAILURE", ( 0xC03A0009 )) +ERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT = make_flag("ERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT", ( 0xC03A000A )) +ERROR_VHD_INVALID_BLOCK_SIZE = make_flag("ERROR_VHD_INVALID_BLOCK_SIZE", ( 0xC03A000B )) +ERROR_VHD_BITMAP_MISMATCH = make_flag("ERROR_VHD_BITMAP_MISMATCH", ( 0xC03A000C )) +ERROR_VHD_PARENT_VHD_NOT_FOUND = make_flag("ERROR_VHD_PARENT_VHD_NOT_FOUND", ( 0xC03A000D )) +ERROR_VHD_CHILD_PARENT_ID_MISMATCH = make_flag("ERROR_VHD_CHILD_PARENT_ID_MISMATCH", ( 0xC03A000E )) +ERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH = make_flag("ERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH", ( 0xC03A000F )) +ERROR_VHD_METADATA_READ_FAILURE = make_flag("ERROR_VHD_METADATA_READ_FAILURE", ( 0xC03A0010 )) +ERROR_VHD_METADATA_WRITE_FAILURE = make_flag("ERROR_VHD_METADATA_WRITE_FAILURE", ( 0xC03A0011 )) +ERROR_VHD_INVALID_SIZE = make_flag("ERROR_VHD_INVALID_SIZE", ( 0xC03A0012 )) +ERROR_VHD_INVALID_FILE_SIZE = make_flag("ERROR_VHD_INVALID_FILE_SIZE", ( 0xC03A0013 )) +ERROR_VIRTDISK_PROVIDER_NOT_FOUND = make_flag("ERROR_VIRTDISK_PROVIDER_NOT_FOUND", ( 0xC03A0014 )) +ERROR_VIRTDISK_NOT_VIRTUAL_DISK = make_flag("ERROR_VIRTDISK_NOT_VIRTUAL_DISK", ( 0xC03A0015 )) +ERROR_VHD_PARENT_VHD_ACCESS_DENIED = make_flag("ERROR_VHD_PARENT_VHD_ACCESS_DENIED", ( 0xC03A0016 )) +ERROR_VHD_CHILD_PARENT_SIZE_MISMATCH = make_flag("ERROR_VHD_CHILD_PARENT_SIZE_MISMATCH", ( 0xC03A0017 )) +ERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED = make_flag("ERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED", ( 0xC03A0018 )) +ERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT = make_flag("ERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT", ( 0xC03A0019 )) +ERROR_VIRTUAL_DISK_LIMITATION = make_flag("ERROR_VIRTUAL_DISK_LIMITATION", ( 0xC03A001A )) +ERROR_VHD_INVALID_TYPE = make_flag("ERROR_VHD_INVALID_TYPE", ( 0xC03A001B )) +ERROR_VHD_INVALID_STATE = make_flag("ERROR_VHD_INVALID_STATE", ( 0xC03A001C )) +ERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE = make_flag("ERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE", ( 0xC03A001D )) +ERROR_VIRTDISK_DISK_ALREADY_OWNED = make_flag("ERROR_VIRTDISK_DISK_ALREADY_OWNED", ( 0xC03A001E )) +ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE = make_flag("ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE", ( 0xC03A001F )) +ERROR_CTLOG_TRACKING_NOT_INITIALIZED = make_flag("ERROR_CTLOG_TRACKING_NOT_INITIALIZED", ( 0xC03A0020 )) +ERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE = make_flag("ERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE", ( 0xC03A0021 )) +ERROR_CTLOG_VHD_CHANGED_OFFLINE = make_flag("ERROR_CTLOG_VHD_CHANGED_OFFLINE", ( 0xC03A0022 )) +ERROR_CTLOG_INVALID_TRACKING_STATE = make_flag("ERROR_CTLOG_INVALID_TRACKING_STATE", ( 0xC03A0023 )) +ERROR_CTLOG_INCONSISTENT_TRACKING_FILE = make_flag("ERROR_CTLOG_INCONSISTENT_TRACKING_FILE", ( 0xC03A0024 )) +ERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA = make_flag("ERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA", ( 0xC03A0025 )) +ERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE = make_flag("ERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE", ( 0xC03A0026 )) +ERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE = make_flag("ERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE", ( 0xC03A0027 )) +ERROR_VHD_METADATA_FULL = make_flag("ERROR_VHD_METADATA_FULL", ( 0xC03A0028 )) +ERROR_VHD_INVALID_CHANGE_TRACKING_ID = make_flag("ERROR_VHD_INVALID_CHANGE_TRACKING_ID", ( 0xC03A0029 )) +ERROR_VHD_CHANGE_TRACKING_DISABLED = make_flag("ERROR_VHD_CHANGE_TRACKING_DISABLED", ( 0xC03A002A )) +ERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION = make_flag("ERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION", ( 0xC03A0030 )) +ERROR_QUERY_STORAGE_ERROR = make_flag("ERROR_QUERY_STORAGE_ERROR", ( 0x803A0001 )) +HCN_E_NETWORK_NOT_FOUND = make_flag("HCN_E_NETWORK_NOT_FOUND", ( 0x803B0001 )) +HCN_E_ENDPOINT_NOT_FOUND = make_flag("HCN_E_ENDPOINT_NOT_FOUND", ( 0x803B0002 )) +HCN_E_LAYER_NOT_FOUND = make_flag("HCN_E_LAYER_NOT_FOUND", ( 0x803B0003 )) +HCN_E_SWITCH_NOT_FOUND = make_flag("HCN_E_SWITCH_NOT_FOUND", ( 0x803B0004 )) +HCN_E_SUBNET_NOT_FOUND = make_flag("HCN_E_SUBNET_NOT_FOUND", ( 0x803B0005 )) +HCN_E_ADAPTER_NOT_FOUND = make_flag("HCN_E_ADAPTER_NOT_FOUND", ( 0x803B0006 )) +HCN_E_PORT_NOT_FOUND = make_flag("HCN_E_PORT_NOT_FOUND", ( 0x803B0007 )) +HCN_E_POLICY_NOT_FOUND = make_flag("HCN_E_POLICY_NOT_FOUND", ( 0x803B0008 )) +HCN_E_VFP_PORTSETTING_NOT_FOUND = make_flag("HCN_E_VFP_PORTSETTING_NOT_FOUND", ( 0x803B0009 )) +HCN_E_INVALID_NETWORK = make_flag("HCN_E_INVALID_NETWORK", ( 0x803B000A )) +HCN_E_INVALID_NETWORK_TYPE = make_flag("HCN_E_INVALID_NETWORK_TYPE", ( 0x803B000B )) +HCN_E_INVALID_ENDPOINT = make_flag("HCN_E_INVALID_ENDPOINT", ( 0x803B000C )) +HCN_E_INVALID_POLICY = make_flag("HCN_E_INVALID_POLICY", ( 0x803B000D )) +HCN_E_INVALID_POLICY_TYPE = make_flag("HCN_E_INVALID_POLICY_TYPE", ( 0x803B000E )) +HCN_E_INVALID_REMOTE_ENDPOINT_OPERATION = make_flag("HCN_E_INVALID_REMOTE_ENDPOINT_OPERATION", ( 0x803B000F )) +HCN_E_NETWORK_ALREADY_EXISTS = make_flag("HCN_E_NETWORK_ALREADY_EXISTS", ( 0x803B0010 )) +HCN_E_LAYER_ALREADY_EXISTS = make_flag("HCN_E_LAYER_ALREADY_EXISTS", ( 0x803B0011 )) +HCN_E_POLICY_ALREADY_EXISTS = make_flag("HCN_E_POLICY_ALREADY_EXISTS", ( 0x803B0012 )) +HCN_E_PORT_ALREADY_EXISTS = make_flag("HCN_E_PORT_ALREADY_EXISTS", ( 0x803B0013 )) +HCN_E_ENDPOINT_ALREADY_ATTACHED = make_flag("HCN_E_ENDPOINT_ALREADY_ATTACHED", ( 0x803B0014 )) +HCN_E_REQUEST_UNSUPPORTED = make_flag("HCN_E_REQUEST_UNSUPPORTED", ( 0x803B0015 )) +HCN_E_MAPPING_NOT_SUPPORTED = make_flag("HCN_E_MAPPING_NOT_SUPPORTED", ( 0x803B0016 )) +HCN_E_DEGRADED_OPERATION = make_flag("HCN_E_DEGRADED_OPERATION", ( 0x803B0017 )) +HCN_E_SHARED_SWITCH_MODIFICATION = make_flag("HCN_E_SHARED_SWITCH_MODIFICATION", ( 0x803B0018 )) +HCN_E_GUID_CONVERSION_FAILURE = make_flag("HCN_E_GUID_CONVERSION_FAILURE", ( 0x803B0019 )) +HCN_E_REGKEY_FAILURE = make_flag("HCN_E_REGKEY_FAILURE", ( 0x803B001A )) +HCN_E_INVALID_JSON = make_flag("HCN_E_INVALID_JSON", ( 0x803B001B )) +HCN_E_INVALID_JSON_REFERENCE = make_flag("HCN_E_INVALID_JSON_REFERENCE", ( 0x803B001C )) +HCN_E_ENDPOINT_SHARING_DISABLED = make_flag("HCN_E_ENDPOINT_SHARING_DISABLED", ( 0x803B001D )) +HCN_E_INVALID_IP = make_flag("HCN_E_INVALID_IP", ( 0x803B001E )) +HCN_E_SWITCH_EXTENSION_NOT_FOUND = make_flag("HCN_E_SWITCH_EXTENSION_NOT_FOUND", ( 0x803B001F )) +HCN_E_MANAGER_STOPPED = make_flag("HCN_E_MANAGER_STOPPED", ( 0x803B0020 )) +GCN_E_MODULE_NOT_FOUND = make_flag("GCN_E_MODULE_NOT_FOUND", ( 0x803B0021 )) +GCN_E_NO_REQUEST_HANDLERS = make_flag("GCN_E_NO_REQUEST_HANDLERS", ( 0x803B0022 )) +GCN_E_REQUEST_UNSUPPORTED = make_flag("GCN_E_REQUEST_UNSUPPORTED", ( 0x803B0023 )) +GCN_E_RUNTIMEKEYS_FAILED = make_flag("GCN_E_RUNTIMEKEYS_FAILED", ( 0x803B0024 )) +GCN_E_NETADAPTER_TIMEOUT = make_flag("GCN_E_NETADAPTER_TIMEOUT", ( 0x803B0025 )) +GCN_E_NETADAPTER_NOT_FOUND = make_flag("GCN_E_NETADAPTER_NOT_FOUND", ( 0x803B0026 )) +GCN_E_NETCOMPARTMENT_NOT_FOUND = make_flag("GCN_E_NETCOMPARTMENT_NOT_FOUND", ( 0x803B0027 )) +GCN_E_NETINTERFACE_NOT_FOUND = make_flag("GCN_E_NETINTERFACE_NOT_FOUND", ( 0x803B0028 )) +GCN_E_DEFAULTNAMESPACE_EXISTS = make_flag("GCN_E_DEFAULTNAMESPACE_EXISTS", ( 0x803B0029 )) +HCN_E_ICS_DISABLED = make_flag("HCN_E_ICS_DISABLED", ( 0x803B002A )) +HCN_E_ENDPOINT_NAMESPACE_ALREADY_EXISTS = make_flag("HCN_E_ENDPOINT_NAMESPACE_ALREADY_EXISTS", ( 0x803B002B )) +HCN_E_ENTITY_HAS_REFERENCES = make_flag("HCN_E_ENTITY_HAS_REFERENCES", ( 0x803B002C )) +HCN_E_INVALID_INTERNAL_PORT = make_flag("HCN_E_INVALID_INTERNAL_PORT", ( 0x803B002D )) +HCN_E_NAMESPACE_ATTACH_FAILED = make_flag("HCN_E_NAMESPACE_ATTACH_FAILED", ( 0x803B002E )) +HCN_E_ADDR_INVALID_OR_RESERVED = make_flag("HCN_E_ADDR_INVALID_OR_RESERVED", ( 0x803B002F )) +SDIAG_E_CANCELLED = make_flag("SDIAG_E_CANCELLED", ( 0x803C0100 )) +SDIAG_E_SCRIPT = make_flag("SDIAG_E_SCRIPT", ( 0x803C0101 )) +SDIAG_E_POWERSHELL = make_flag("SDIAG_E_POWERSHELL", ( 0x803C0102 )) +SDIAG_E_MANAGEDHOST = make_flag("SDIAG_E_MANAGEDHOST", ( 0x803C0103 )) +SDIAG_E_NOVERIFIER = make_flag("SDIAG_E_NOVERIFIER", ( 0x803C0104 )) +SDIAG_S_CANNOTRUN = make_flag("SDIAG_S_CANNOTRUN", ( 0x003C0105 )) +SDIAG_E_DISABLED = make_flag("SDIAG_E_DISABLED", ( 0x803C0106 )) +SDIAG_E_TRUST = make_flag("SDIAG_E_TRUST", ( 0x803C0107 )) +SDIAG_E_CANNOTRUN = make_flag("SDIAG_E_CANNOTRUN", ( 0x803C0108 )) +SDIAG_E_VERSION = make_flag("SDIAG_E_VERSION", ( 0x803C0109 )) +SDIAG_E_RESOURCE = make_flag("SDIAG_E_RESOURCE", ( 0x803C010A )) +SDIAG_E_ROOTCAUSE = make_flag("SDIAG_E_ROOTCAUSE", ( 0x803C010B )) +WPN_E_CHANNEL_CLOSED = make_flag("WPN_E_CHANNEL_CLOSED", ( 0x803E0100 )) +WPN_E_CHANNEL_REQUEST_NOT_COMPLETE = make_flag("WPN_E_CHANNEL_REQUEST_NOT_COMPLETE", ( 0x803E0101 )) +WPN_E_INVALID_APP = make_flag("WPN_E_INVALID_APP", ( 0x803E0102 )) +WPN_E_OUTSTANDING_CHANNEL_REQUEST = make_flag("WPN_E_OUTSTANDING_CHANNEL_REQUEST", ( 0x803E0103 )) +WPN_E_DUPLICATE_CHANNEL = make_flag("WPN_E_DUPLICATE_CHANNEL", ( 0x803E0104 )) +WPN_E_PLATFORM_UNAVAILABLE = make_flag("WPN_E_PLATFORM_UNAVAILABLE", ( 0x803E0105 )) +WPN_E_NOTIFICATION_POSTED = make_flag("WPN_E_NOTIFICATION_POSTED", ( 0x803E0106 )) +WPN_E_NOTIFICATION_HIDDEN = make_flag("WPN_E_NOTIFICATION_HIDDEN", ( 0x803E0107 )) +WPN_E_NOTIFICATION_NOT_POSTED = make_flag("WPN_E_NOTIFICATION_NOT_POSTED", ( 0x803E0108 )) +WPN_E_CLOUD_DISABLED = make_flag("WPN_E_CLOUD_DISABLED", ( 0x803E0109 )) +WPN_E_CLOUD_INCAPABLE = make_flag("WPN_E_CLOUD_INCAPABLE", ( 0x803E0110 )) +WPN_E_CLOUD_AUTH_UNAVAILABLE = make_flag("WPN_E_CLOUD_AUTH_UNAVAILABLE", ( 0x803E011A )) +WPN_E_CLOUD_SERVICE_UNAVAILABLE = make_flag("WPN_E_CLOUD_SERVICE_UNAVAILABLE", ( 0x803E011B )) +WPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION = make_flag("WPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION", ( 0x803E011C )) +WPN_E_NOTIFICATION_DISABLED = make_flag("WPN_E_NOTIFICATION_DISABLED", ( 0x803E0111 )) +WPN_E_NOTIFICATION_INCAPABLE = make_flag("WPN_E_NOTIFICATION_INCAPABLE", ( 0x803E0112 )) +WPN_E_INTERNET_INCAPABLE = make_flag("WPN_E_INTERNET_INCAPABLE", ( 0x803E0113 )) +WPN_E_NOTIFICATION_TYPE_DISABLED = make_flag("WPN_E_NOTIFICATION_TYPE_DISABLED", ( 0x803E0114 )) +WPN_E_NOTIFICATION_SIZE = make_flag("WPN_E_NOTIFICATION_SIZE", ( 0x803E0115 )) +WPN_E_TAG_SIZE = make_flag("WPN_E_TAG_SIZE", ( 0x803E0116 )) +WPN_E_ACCESS_DENIED = make_flag("WPN_E_ACCESS_DENIED", ( 0x803E0117 )) +WPN_E_DUPLICATE_REGISTRATION = make_flag("WPN_E_DUPLICATE_REGISTRATION", ( 0x803E0118 )) +WPN_E_PUSH_NOTIFICATION_INCAPABLE = make_flag("WPN_E_PUSH_NOTIFICATION_INCAPABLE", ( 0x803E0119 )) +WPN_E_DEV_ID_SIZE = make_flag("WPN_E_DEV_ID_SIZE", ( 0x803E0120 )) +WPN_E_TAG_ALPHANUMERIC = make_flag("WPN_E_TAG_ALPHANUMERIC", ( 0x803E012A )) +WPN_E_INVALID_HTTP_STATUS_CODE = make_flag("WPN_E_INVALID_HTTP_STATUS_CODE", ( 0x803E012B )) +WPN_E_OUT_OF_SESSION = make_flag("WPN_E_OUT_OF_SESSION", ( 0x803E0200 )) +WPN_E_POWER_SAVE = make_flag("WPN_E_POWER_SAVE", ( 0x803E0201 )) +WPN_E_IMAGE_NOT_FOUND_IN_CACHE = make_flag("WPN_E_IMAGE_NOT_FOUND_IN_CACHE", ( 0x803E0202 )) +WPN_E_ALL_URL_NOT_COMPLETED = make_flag("WPN_E_ALL_URL_NOT_COMPLETED", ( 0x803E0203 )) +WPN_E_INVALID_CLOUD_IMAGE = make_flag("WPN_E_INVALID_CLOUD_IMAGE", ( 0x803E0204 )) +WPN_E_NOTIFICATION_ID_MATCHED = make_flag("WPN_E_NOTIFICATION_ID_MATCHED", ( 0x803E0205 )) +WPN_E_CALLBACK_ALREADY_REGISTERED = make_flag("WPN_E_CALLBACK_ALREADY_REGISTERED", ( 0x803E0206 )) +WPN_E_TOAST_NOTIFICATION_DROPPED = make_flag("WPN_E_TOAST_NOTIFICATION_DROPPED", ( 0x803E0207 )) +WPN_E_STORAGE_LOCKED = make_flag("WPN_E_STORAGE_LOCKED", ( 0x803E0208 )) +WPN_E_GROUP_SIZE = make_flag("WPN_E_GROUP_SIZE", ( 0x803E0209 )) +WPN_E_GROUP_ALPHANUMERIC = make_flag("WPN_E_GROUP_ALPHANUMERIC", ( 0x803E020A )) +WPN_E_CLOUD_DISABLED_FOR_APP = make_flag("WPN_E_CLOUD_DISABLED_FOR_APP", ( 0x803E020B )) +E_MBN_CONTEXT_NOT_ACTIVATED = make_flag("E_MBN_CONTEXT_NOT_ACTIVATED", ( 0x80548201 )) +E_MBN_BAD_SIM = make_flag("E_MBN_BAD_SIM", ( 0x80548202 )) +E_MBN_DATA_CLASS_NOT_AVAILABLE = make_flag("E_MBN_DATA_CLASS_NOT_AVAILABLE", ( 0x80548203 )) +E_MBN_INVALID_ACCESS_STRING = make_flag("E_MBN_INVALID_ACCESS_STRING", ( 0x80548204 )) +E_MBN_MAX_ACTIVATED_CONTEXTS = make_flag("E_MBN_MAX_ACTIVATED_CONTEXTS", ( 0x80548205 )) +E_MBN_PACKET_SVC_DETACHED = make_flag("E_MBN_PACKET_SVC_DETACHED", ( 0x80548206 )) +E_MBN_PROVIDER_NOT_VISIBLE = make_flag("E_MBN_PROVIDER_NOT_VISIBLE", ( 0x80548207 )) +E_MBN_RADIO_POWER_OFF = make_flag("E_MBN_RADIO_POWER_OFF", ( 0x80548208 )) +E_MBN_SERVICE_NOT_ACTIVATED = make_flag("E_MBN_SERVICE_NOT_ACTIVATED", ( 0x80548209 )) +E_MBN_SIM_NOT_INSERTED = make_flag("E_MBN_SIM_NOT_INSERTED", ( 0x8054820A )) +E_MBN_VOICE_CALL_IN_PROGRESS = make_flag("E_MBN_VOICE_CALL_IN_PROGRESS", ( 0x8054820B )) +E_MBN_INVALID_CACHE = make_flag("E_MBN_INVALID_CACHE", ( 0x8054820C )) +E_MBN_NOT_REGISTERED = make_flag("E_MBN_NOT_REGISTERED", ( 0x8054820D )) +E_MBN_PROVIDERS_NOT_FOUND = make_flag("E_MBN_PROVIDERS_NOT_FOUND", ( 0x8054820E )) +E_MBN_PIN_NOT_SUPPORTED = make_flag("E_MBN_PIN_NOT_SUPPORTED", ( 0x8054820F )) +E_MBN_PIN_REQUIRED = make_flag("E_MBN_PIN_REQUIRED", ( 0x80548210 )) +E_MBN_PIN_DISABLED = make_flag("E_MBN_PIN_DISABLED", ( 0x80548211 )) +E_MBN_FAILURE = make_flag("E_MBN_FAILURE", ( 0x80548212 )) +E_MBN_INVALID_PROFILE = make_flag("E_MBN_INVALID_PROFILE", ( 0x80548218 )) +E_MBN_DEFAULT_PROFILE_EXIST = make_flag("E_MBN_DEFAULT_PROFILE_EXIST", ( 0x80548219 )) +E_MBN_SMS_ENCODING_NOT_SUPPORTED = make_flag("E_MBN_SMS_ENCODING_NOT_SUPPORTED", ( 0x80548220 )) +E_MBN_SMS_FILTER_NOT_SUPPORTED = make_flag("E_MBN_SMS_FILTER_NOT_SUPPORTED", ( 0x80548221 )) +E_MBN_SMS_INVALID_MEMORY_INDEX = make_flag("E_MBN_SMS_INVALID_MEMORY_INDEX", ( 0x80548222 )) +E_MBN_SMS_LANG_NOT_SUPPORTED = make_flag("E_MBN_SMS_LANG_NOT_SUPPORTED", ( 0x80548223 )) +E_MBN_SMS_MEMORY_FAILURE = make_flag("E_MBN_SMS_MEMORY_FAILURE", ( 0x80548224 )) +E_MBN_SMS_NETWORK_TIMEOUT = make_flag("E_MBN_SMS_NETWORK_TIMEOUT", ( 0x80548225 )) +E_MBN_SMS_UNKNOWN_SMSC_ADDRESS = make_flag("E_MBN_SMS_UNKNOWN_SMSC_ADDRESS", ( 0x80548226 )) +E_MBN_SMS_FORMAT_NOT_SUPPORTED = make_flag("E_MBN_SMS_FORMAT_NOT_SUPPORTED", ( 0x80548227 )) +E_MBN_SMS_OPERATION_NOT_ALLOWED = make_flag("E_MBN_SMS_OPERATION_NOT_ALLOWED", ( 0x80548228 )) +E_MBN_SMS_MEMORY_FULL = make_flag("E_MBN_SMS_MEMORY_FULL", ( 0x80548229 )) +PEER_E_IPV6_NOT_INSTALLED = make_flag("PEER_E_IPV6_NOT_INSTALLED", ( 0x80630001 )) +PEER_E_NOT_INITIALIZED = make_flag("PEER_E_NOT_INITIALIZED", ( 0x80630002 )) +PEER_E_CANNOT_START_SERVICE = make_flag("PEER_E_CANNOT_START_SERVICE", ( 0x80630003 )) +PEER_E_NOT_LICENSED = make_flag("PEER_E_NOT_LICENSED", ( 0x80630004 )) +PEER_E_INVALID_GRAPH = make_flag("PEER_E_INVALID_GRAPH", ( 0x80630010 )) +PEER_E_DBNAME_CHANGED = make_flag("PEER_E_DBNAME_CHANGED", ( 0x80630011 )) +PEER_E_DUPLICATE_GRAPH = make_flag("PEER_E_DUPLICATE_GRAPH", ( 0x80630012 )) +PEER_E_GRAPH_NOT_READY = make_flag("PEER_E_GRAPH_NOT_READY", ( 0x80630013 )) +PEER_E_GRAPH_SHUTTING_DOWN = make_flag("PEER_E_GRAPH_SHUTTING_DOWN", ( 0x80630014 )) +PEER_E_GRAPH_IN_USE = make_flag("PEER_E_GRAPH_IN_USE", ( 0x80630015 )) +PEER_E_INVALID_DATABASE = make_flag("PEER_E_INVALID_DATABASE", ( 0x80630016 )) +PEER_E_TOO_MANY_ATTRIBUTES = make_flag("PEER_E_TOO_MANY_ATTRIBUTES", ( 0x80630017 )) +PEER_E_CONNECTION_NOT_FOUND = make_flag("PEER_E_CONNECTION_NOT_FOUND", ( 0x80630103 )) +PEER_E_CONNECT_SELF = make_flag("PEER_E_CONNECT_SELF", ( 0x80630106 )) +PEER_E_ALREADY_LISTENING = make_flag("PEER_E_ALREADY_LISTENING", ( 0x80630107 )) +PEER_E_NODE_NOT_FOUND = make_flag("PEER_E_NODE_NOT_FOUND", ( 0x80630108 )) +PEER_E_CONNECTION_FAILED = make_flag("PEER_E_CONNECTION_FAILED", ( 0x80630109 )) +PEER_E_CONNECTION_NOT_AUTHENTICATED = make_flag("PEER_E_CONNECTION_NOT_AUTHENTICATED", ( 0x8063010A )) +PEER_E_CONNECTION_REFUSED = make_flag("PEER_E_CONNECTION_REFUSED", ( 0x8063010B )) +PEER_E_CLASSIFIER_TOO_LONG = make_flag("PEER_E_CLASSIFIER_TOO_LONG", ( 0x80630201 )) +PEER_E_TOO_MANY_IDENTITIES = make_flag("PEER_E_TOO_MANY_IDENTITIES", ( 0x80630202 )) +PEER_E_NO_KEY_ACCESS = make_flag("PEER_E_NO_KEY_ACCESS", ( 0x80630203 )) +PEER_E_GROUPS_EXIST = make_flag("PEER_E_GROUPS_EXIST", ( 0x80630204 )) +PEER_E_RECORD_NOT_FOUND = make_flag("PEER_E_RECORD_NOT_FOUND", ( 0x80630301 )) +PEER_E_DATABASE_ACCESSDENIED = make_flag("PEER_E_DATABASE_ACCESSDENIED", ( 0x80630302 )) +PEER_E_DBINITIALIZATION_FAILED = make_flag("PEER_E_DBINITIALIZATION_FAILED", ( 0x80630303 )) +PEER_E_MAX_RECORD_SIZE_EXCEEDED = make_flag("PEER_E_MAX_RECORD_SIZE_EXCEEDED", ( 0x80630304 )) +PEER_E_DATABASE_ALREADY_PRESENT = make_flag("PEER_E_DATABASE_ALREADY_PRESENT", ( 0x80630305 )) +PEER_E_DATABASE_NOT_PRESENT = make_flag("PEER_E_DATABASE_NOT_PRESENT", ( 0x80630306 )) +PEER_E_IDENTITY_NOT_FOUND = make_flag("PEER_E_IDENTITY_NOT_FOUND", ( 0x80630401 )) +PEER_E_EVENT_HANDLE_NOT_FOUND = make_flag("PEER_E_EVENT_HANDLE_NOT_FOUND", ( 0x80630501 )) +PEER_E_INVALID_SEARCH = make_flag("PEER_E_INVALID_SEARCH", ( 0x80630601 )) +PEER_E_INVALID_ATTRIBUTES = make_flag("PEER_E_INVALID_ATTRIBUTES", ( 0x80630602 )) +PEER_E_INVITATION_NOT_TRUSTED = make_flag("PEER_E_INVITATION_NOT_TRUSTED", ( 0x80630701 )) +PEER_E_CHAIN_TOO_LONG = make_flag("PEER_E_CHAIN_TOO_LONG", ( 0x80630703 )) +PEER_E_INVALID_TIME_PERIOD = make_flag("PEER_E_INVALID_TIME_PERIOD", ( 0x80630705 )) +PEER_E_CIRCULAR_CHAIN_DETECTED = make_flag("PEER_E_CIRCULAR_CHAIN_DETECTED", ( 0x80630706 )) +PEER_E_CERT_STORE_CORRUPTED = make_flag("PEER_E_CERT_STORE_CORRUPTED", ( 0x80630801 )) +PEER_E_NO_CLOUD = make_flag("PEER_E_NO_CLOUD", ( 0x80631001 )) +PEER_E_CLOUD_NAME_AMBIGUOUS = make_flag("PEER_E_CLOUD_NAME_AMBIGUOUS", ( 0x80631005 )) +PEER_E_INVALID_RECORD = make_flag("PEER_E_INVALID_RECORD", ( 0x80632010 )) +PEER_E_NOT_AUTHORIZED = make_flag("PEER_E_NOT_AUTHORIZED", ( 0x80632020 )) +PEER_E_PASSWORD_DOES_NOT_MEET_POLICY = make_flag("PEER_E_PASSWORD_DOES_NOT_MEET_POLICY", ( 0x80632021 )) +PEER_E_DEFERRED_VALIDATION = make_flag("PEER_E_DEFERRED_VALIDATION", ( 0x80632030 )) +PEER_E_INVALID_GROUP_PROPERTIES = make_flag("PEER_E_INVALID_GROUP_PROPERTIES", ( 0x80632040 )) +PEER_E_INVALID_PEER_NAME = make_flag("PEER_E_INVALID_PEER_NAME", ( 0x80632050 )) +PEER_E_INVALID_CLASSIFIER = make_flag("PEER_E_INVALID_CLASSIFIER", ( 0x80632060 )) +PEER_E_INVALID_FRIENDLY_NAME = make_flag("PEER_E_INVALID_FRIENDLY_NAME", ( 0x80632070 )) +PEER_E_INVALID_ROLE_PROPERTY = make_flag("PEER_E_INVALID_ROLE_PROPERTY", ( 0x80632071 )) +PEER_E_INVALID_CLASSIFIER_PROPERTY = make_flag("PEER_E_INVALID_CLASSIFIER_PROPERTY", ( 0x80632072 )) +PEER_E_INVALID_RECORD_EXPIRATION = make_flag("PEER_E_INVALID_RECORD_EXPIRATION", ( 0x80632080 )) +PEER_E_INVALID_CREDENTIAL_INFO = make_flag("PEER_E_INVALID_CREDENTIAL_INFO", ( 0x80632081 )) +PEER_E_INVALID_CREDENTIAL = make_flag("PEER_E_INVALID_CREDENTIAL", ( 0x80632082 )) +PEER_E_INVALID_RECORD_SIZE = make_flag("PEER_E_INVALID_RECORD_SIZE", ( 0x80632083 )) +PEER_E_UNSUPPORTED_VERSION = make_flag("PEER_E_UNSUPPORTED_VERSION", ( 0x80632090 )) +PEER_E_GROUP_NOT_READY = make_flag("PEER_E_GROUP_NOT_READY", ( 0x80632091 )) +PEER_E_GROUP_IN_USE = make_flag("PEER_E_GROUP_IN_USE", ( 0x80632092 )) +PEER_E_INVALID_GROUP = make_flag("PEER_E_INVALID_GROUP", ( 0x80632093 )) +PEER_E_NO_MEMBERS_FOUND = make_flag("PEER_E_NO_MEMBERS_FOUND", ( 0x80632094 )) +PEER_E_NO_MEMBER_CONNECTIONS = make_flag("PEER_E_NO_MEMBER_CONNECTIONS", ( 0x80632095 )) +PEER_E_UNABLE_TO_LISTEN = make_flag("PEER_E_UNABLE_TO_LISTEN", ( 0x80632096 )) +PEER_E_IDENTITY_DELETED = make_flag("PEER_E_IDENTITY_DELETED", ( 0x806320A0 )) +PEER_E_SERVICE_NOT_AVAILABLE = make_flag("PEER_E_SERVICE_NOT_AVAILABLE", ( 0x806320A1 )) +PEER_E_CONTACT_NOT_FOUND = make_flag("PEER_E_CONTACT_NOT_FOUND", ( 0x80636001 )) +PEER_S_GRAPH_DATA_CREATED = make_flag("PEER_S_GRAPH_DATA_CREATED", ( 0x00630001 )) +PEER_S_NO_EVENT_DATA = make_flag("PEER_S_NO_EVENT_DATA", ( 0x00630002 )) +PEER_S_ALREADY_CONNECTED = make_flag("PEER_S_ALREADY_CONNECTED", ( 0x00632000 )) +PEER_S_SUBSCRIPTION_EXISTS = make_flag("PEER_S_SUBSCRIPTION_EXISTS", ( 0x00636000 )) +PEER_S_NO_CONNECTIVITY = make_flag("PEER_S_NO_CONNECTIVITY", ( 0x00630005 )) +PEER_S_ALREADY_A_MEMBER = make_flag("PEER_S_ALREADY_A_MEMBER", ( 0x00630006 )) +PEER_E_CANNOT_CONVERT_PEER_NAME = make_flag("PEER_E_CANNOT_CONVERT_PEER_NAME", ( 0x80634001 )) +PEER_E_INVALID_PEER_HOST_NAME = make_flag("PEER_E_INVALID_PEER_HOST_NAME", ( 0x80634002 )) +PEER_E_NO_MORE = make_flag("PEER_E_NO_MORE", ( 0x80634003 )) +PEER_E_PNRP_DUPLICATE_PEER_NAME = make_flag("PEER_E_PNRP_DUPLICATE_PEER_NAME", ( 0x80634005 )) +PEER_E_INVITE_CANCELLED = make_flag("PEER_E_INVITE_CANCELLED", ( 0x80637000 )) +PEER_E_INVITE_RESPONSE_NOT_AVAILABLE = make_flag("PEER_E_INVITE_RESPONSE_NOT_AVAILABLE", ( 0x80637001 )) +PEER_E_NOT_SIGNED_IN = make_flag("PEER_E_NOT_SIGNED_IN", ( 0x80637003 )) +PEER_E_PRIVACY_DECLINED = make_flag("PEER_E_PRIVACY_DECLINED", ( 0x80637004 )) +PEER_E_TIMEOUT = make_flag("PEER_E_TIMEOUT", ( 0x80637005 )) +PEER_E_INVALID_ADDRESS = make_flag("PEER_E_INVALID_ADDRESS", ( 0x80637007 )) +PEER_E_FW_EXCEPTION_DISABLED = make_flag("PEER_E_FW_EXCEPTION_DISABLED", ( 0x80637008 )) +PEER_E_FW_BLOCKED_BY_POLICY = make_flag("PEER_E_FW_BLOCKED_BY_POLICY", ( 0x80637009 )) +PEER_E_FW_BLOCKED_BY_SHIELDS_UP = make_flag("PEER_E_FW_BLOCKED_BY_SHIELDS_UP", ( 0x8063700A )) +PEER_E_FW_DECLINED = make_flag("PEER_E_FW_DECLINED", ( 0x8063700B )) +UI_E_CREATE_FAILED = make_flag("UI_E_CREATE_FAILED", ( 0x802A0001 )) +UI_E_SHUTDOWN_CALLED = make_flag("UI_E_SHUTDOWN_CALLED", ( 0x802A0002 )) +UI_E_ILLEGAL_REENTRANCY = make_flag("UI_E_ILLEGAL_REENTRANCY", ( 0x802A0003 )) +UI_E_OBJECT_SEALED = make_flag("UI_E_OBJECT_SEALED", ( 0x802A0004 )) +UI_E_VALUE_NOT_SET = make_flag("UI_E_VALUE_NOT_SET", ( 0x802A0005 )) +UI_E_VALUE_NOT_DETERMINED = make_flag("UI_E_VALUE_NOT_DETERMINED", ( 0x802A0006 )) +UI_E_INVALID_OUTPUT = make_flag("UI_E_INVALID_OUTPUT", ( 0x802A0007 )) +UI_E_BOOLEAN_EXPECTED = make_flag("UI_E_BOOLEAN_EXPECTED", ( 0x802A0008 )) +UI_E_DIFFERENT_OWNER = make_flag("UI_E_DIFFERENT_OWNER", ( 0x802A0009 )) +UI_E_AMBIGUOUS_MATCH = make_flag("UI_E_AMBIGUOUS_MATCH", ( 0x802A000A )) +UI_E_FP_OVERFLOW = make_flag("UI_E_FP_OVERFLOW", ( 0x802A000B )) +UI_E_WRONG_THREAD = make_flag("UI_E_WRONG_THREAD", ( 0x802A000C )) +UI_E_STORYBOARD_ACTIVE = make_flag("UI_E_STORYBOARD_ACTIVE", ( 0x802A0101 )) +UI_E_STORYBOARD_NOT_PLAYING = make_flag("UI_E_STORYBOARD_NOT_PLAYING", ( 0x802A0102 )) +UI_E_START_KEYFRAME_AFTER_END = make_flag("UI_E_START_KEYFRAME_AFTER_END", ( 0x802A0103 )) +UI_E_END_KEYFRAME_NOT_DETERMINED = make_flag("UI_E_END_KEYFRAME_NOT_DETERMINED", ( 0x802A0104 )) +UI_E_LOOPS_OVERLAP = make_flag("UI_E_LOOPS_OVERLAP", ( 0x802A0105 )) +UI_E_TRANSITION_ALREADY_USED = make_flag("UI_E_TRANSITION_ALREADY_USED", ( 0x802A0106 )) +UI_E_TRANSITION_NOT_IN_STORYBOARD = make_flag("UI_E_TRANSITION_NOT_IN_STORYBOARD", ( 0x802A0107 )) +UI_E_TRANSITION_ECLIPSED = make_flag("UI_E_TRANSITION_ECLIPSED", ( 0x802A0108 )) +UI_E_TIME_BEFORE_LAST_UPDATE = make_flag("UI_E_TIME_BEFORE_LAST_UPDATE", ( 0x802A0109 )) +UI_E_TIMER_CLIENT_ALREADY_CONNECTED = make_flag("UI_E_TIMER_CLIENT_ALREADY_CONNECTED", ( 0x802A010A )) +UI_E_INVALID_DIMENSION = make_flag("UI_E_INVALID_DIMENSION", ( 0x802A010B )) +UI_E_PRIMITIVE_OUT_OF_BOUNDS = make_flag("UI_E_PRIMITIVE_OUT_OF_BOUNDS", ( 0x802A010C )) +UI_E_WINDOW_CLOSED = make_flag("UI_E_WINDOW_CLOSED", ( 0x802A0201 )) +E_BLUETOOTH_ATT_INVALID_HANDLE = make_flag("E_BLUETOOTH_ATT_INVALID_HANDLE", ( 0x80650001 )) +E_BLUETOOTH_ATT_READ_NOT_PERMITTED = make_flag("E_BLUETOOTH_ATT_READ_NOT_PERMITTED", ( 0x80650002 )) +E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED = make_flag("E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED", ( 0x80650003 )) +E_BLUETOOTH_ATT_INVALID_PDU = make_flag("E_BLUETOOTH_ATT_INVALID_PDU", ( 0x80650004 )) +E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION = make_flag("E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION", ( 0x80650005 )) +E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED = make_flag("E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED", ( 0x80650006 )) +E_BLUETOOTH_ATT_INVALID_OFFSET = make_flag("E_BLUETOOTH_ATT_INVALID_OFFSET", ( 0x80650007 )) +E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION = make_flag("E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION", ( 0x80650008 )) +E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL = make_flag("E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL", ( 0x80650009 )) +E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND = make_flag("E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND", ( 0x8065000A )) +E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG = make_flag("E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG", ( 0x8065000B )) +E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE = make_flag("E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE", ( 0x8065000C )) +E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH = make_flag("E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH", ( 0x8065000D )) +E_BLUETOOTH_ATT_UNLIKELY = make_flag("E_BLUETOOTH_ATT_UNLIKELY", ( 0x8065000E )) +E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION = make_flag("E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION", ( 0x8065000F )) +E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE = make_flag("E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE", ( 0x80650010 )) +E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES = make_flag("E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES", ( 0x80650011 )) +E_BLUETOOTH_ATT_UNKNOWN_ERROR = make_flag("E_BLUETOOTH_ATT_UNKNOWN_ERROR", ( 0x80651000 )) +E_AUDIO_ENGINE_NODE_NOT_FOUND = make_flag("E_AUDIO_ENGINE_NODE_NOT_FOUND", ( 0x80660001 )) +E_HDAUDIO_EMPTY_CONNECTION_LIST = make_flag("E_HDAUDIO_EMPTY_CONNECTION_LIST", ( 0x80660002 )) +E_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED = make_flag("E_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED", ( 0x80660003 )) +E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED = make_flag("E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED", ( 0x80660004 )) +E_HDAUDIO_NULL_LINKED_LIST_ENTRY = make_flag("E_HDAUDIO_NULL_LINKED_LIST_ENTRY", ( 0x80660005 )) +STATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE = make_flag("STATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE", ( 0x80670001 )) +STATEREPOSITORY_E_STATEMENT_INPROGRESS = make_flag("STATEREPOSITORY_E_STATEMENT_INPROGRESS", ( 0x80670002 )) +STATEREPOSITORY_E_CONFIGURATION_INVALID = make_flag("STATEREPOSITORY_E_CONFIGURATION_INVALID", ( 0x80670003 )) +STATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION = make_flag("STATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION", ( 0x80670004 )) +STATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED = make_flag("STATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED", ( 0x80670005 )) +STATEREPOSITORY_E_BLOCKED = make_flag("STATEREPOSITORY_E_BLOCKED", ( 0x80670006 )) +STATEREPOSITORY_E_BUSY_RETRY = make_flag("STATEREPOSITORY_E_BUSY_RETRY", ( 0x80670007 )) +STATEREPOSITORY_E_BUSY_RECOVERY_RETRY = make_flag("STATEREPOSITORY_E_BUSY_RECOVERY_RETRY", ( 0x80670008 )) +STATEREPOSITORY_E_LOCKED_RETRY = make_flag("STATEREPOSITORY_E_LOCKED_RETRY", ( 0x80670009 )) +STATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY = make_flag("STATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY", ( 0x8067000A )) +STATEREPOSITORY_E_TRANSACTION_REQUIRED = make_flag("STATEREPOSITORY_E_TRANSACTION_REQUIRED", ( 0x8067000B )) +STATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED = make_flag("STATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED", ( 0x8067000C )) +STATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED = make_flag("STATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED", ( 0x8067000D )) +STATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED = make_flag("STATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED", ( 0x8067000E )) +STATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED = make_flag("STATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED", ( 0x8067000F )) +STATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS = make_flag("STATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS", ( 0x80670010 )) +STATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED = make_flag("STATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED", ( 0x80670011 )) +STATEREPOSITORY_ERROR_CACHE_CORRUPTED = make_flag("STATEREPOSITORY_ERROR_CACHE_CORRUPTED", ( 0x80670012 )) +STATEREPOSITORY_TRANSACTION_CALLER_ID_CHANGED = make_flag("STATEREPOSITORY_TRANSACTION_CALLER_ID_CHANGED", ( 0x00670013 )) +STATEREPOSITORY_TRANSACTION_IN_PROGRESS = make_flag("STATEREPOSITORY_TRANSACTION_IN_PROGRESS", ( 0x00670014 )) +ERROR_SPACES_POOL_WAS_DELETED = make_flag("ERROR_SPACES_POOL_WAS_DELETED", ( 0x00E70001 )) +ERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID = make_flag("ERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID", ( 0x80E70001 )) +ERROR_SPACES_INTERNAL_ERROR = make_flag("ERROR_SPACES_INTERNAL_ERROR", ( 0x80E70002 )) +ERROR_SPACES_RESILIENCY_TYPE_INVALID = make_flag("ERROR_SPACES_RESILIENCY_TYPE_INVALID", ( 0x80E70003 )) +ERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID = make_flag("ERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID", ( 0x80E70004 )) +ERROR_SPACES_DRIVE_REDUNDANCY_INVALID = make_flag("ERROR_SPACES_DRIVE_REDUNDANCY_INVALID", ( 0x80E70006 )) +ERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID = make_flag("ERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID", ( 0x80E70007 )) +ERROR_SPACES_PARITY_LAYOUT_INVALID = make_flag("ERROR_SPACES_PARITY_LAYOUT_INVALID", ( 0x80E70008 )) +ERROR_SPACES_INTERLEAVE_LENGTH_INVALID = make_flag("ERROR_SPACES_INTERLEAVE_LENGTH_INVALID", ( 0x80E70009 )) +ERROR_SPACES_NUMBER_OF_COLUMNS_INVALID = make_flag("ERROR_SPACES_NUMBER_OF_COLUMNS_INVALID", ( 0x80E7000A )) +ERROR_SPACES_NOT_ENOUGH_DRIVES = make_flag("ERROR_SPACES_NOT_ENOUGH_DRIVES", ( 0x80E7000B )) +ERROR_SPACES_EXTENDED_ERROR = make_flag("ERROR_SPACES_EXTENDED_ERROR", ( 0x80E7000C )) +ERROR_SPACES_PROVISIONING_TYPE_INVALID = make_flag("ERROR_SPACES_PROVISIONING_TYPE_INVALID", ( 0x80E7000D )) +ERROR_SPACES_ALLOCATION_SIZE_INVALID = make_flag("ERROR_SPACES_ALLOCATION_SIZE_INVALID", ( 0x80E7000E )) +ERROR_SPACES_ENCLOSURE_AWARE_INVALID = make_flag("ERROR_SPACES_ENCLOSURE_AWARE_INVALID", ( 0x80E7000F )) +ERROR_SPACES_WRITE_CACHE_SIZE_INVALID = make_flag("ERROR_SPACES_WRITE_CACHE_SIZE_INVALID", ( 0x80E70010 )) +ERROR_SPACES_NUMBER_OF_GROUPS_INVALID = make_flag("ERROR_SPACES_NUMBER_OF_GROUPS_INVALID", ( 0x80E70011 )) +ERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID = make_flag("ERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID", ( 0x80E70012 )) +ERROR_SPACES_ENTRY_INCOMPLETE = make_flag("ERROR_SPACES_ENTRY_INCOMPLETE", ( 0x80E70013 )) +ERROR_SPACES_ENTRY_INVALID = make_flag("ERROR_SPACES_ENTRY_INVALID", ( 0x80E70014 )) +ERROR_VOLSNAP_BOOTFILE_NOT_VALID = make_flag("ERROR_VOLSNAP_BOOTFILE_NOT_VALID", ( 0x80820001 )) +ERROR_VOLSNAP_ACTIVATION_TIMEOUT = make_flag("ERROR_VOLSNAP_ACTIVATION_TIMEOUT", ( 0x80820002 )) +ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME = make_flag("ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME", ( 0x80830001 )) +ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS = make_flag("ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS", ( 0x80830002 )) +ERROR_TIERING_STORAGE_TIER_NOT_FOUND = make_flag("ERROR_TIERING_STORAGE_TIER_NOT_FOUND", ( 0x80830003 )) +ERROR_TIERING_INVALID_FILE_ID = make_flag("ERROR_TIERING_INVALID_FILE_ID", ( 0x80830004 )) +ERROR_TIERING_WRONG_CLUSTER_NODE = make_flag("ERROR_TIERING_WRONG_CLUSTER_NODE", ( 0x80830005 )) +ERROR_TIERING_ALREADY_PROCESSING = make_flag("ERROR_TIERING_ALREADY_PROCESSING", ( 0x80830006 )) +ERROR_TIERING_CANNOT_PIN_OBJECT = make_flag("ERROR_TIERING_CANNOT_PIN_OBJECT", ( 0x80830007 )) +ERROR_TIERING_FILE_IS_NOT_PINNED = make_flag("ERROR_TIERING_FILE_IS_NOT_PINNED", ( 0x80830008 )) +ERROR_NOT_A_TIERED_VOLUME = make_flag("ERROR_NOT_A_TIERED_VOLUME", ( 0x80830009 )) +ERROR_ATTRIBUTE_NOT_PRESENT = make_flag("ERROR_ATTRIBUTE_NOT_PRESENT", ( 0x8083000A )) +ERROR_SECCORE_INVALID_COMMAND = make_flag("ERROR_SECCORE_INVALID_COMMAND", ( 0xC0E80000 )) +ERROR_NO_APPLICABLE_APP_LICENSES_FOUND = make_flag("ERROR_NO_APPLICABLE_APP_LICENSES_FOUND", ( 0xC0EA0001 )) +ERROR_CLIP_LICENSE_NOT_FOUND = make_flag("ERROR_CLIP_LICENSE_NOT_FOUND", ( 0xC0EA0002 )) +ERROR_CLIP_DEVICE_LICENSE_MISSING = make_flag("ERROR_CLIP_DEVICE_LICENSE_MISSING", ( 0xC0EA0003 )) +ERROR_CLIP_LICENSE_INVALID_SIGNATURE = make_flag("ERROR_CLIP_LICENSE_INVALID_SIGNATURE", ( 0xC0EA0004 )) +ERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID = make_flag("ERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID", ( 0xC0EA0005 )) +ERROR_CLIP_LICENSE_EXPIRED = make_flag("ERROR_CLIP_LICENSE_EXPIRED", ( 0xC0EA0006 )) +ERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE = make_flag("ERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE", ( 0xC0EA0007 )) +ERROR_CLIP_LICENSE_NOT_SIGNED = make_flag("ERROR_CLIP_LICENSE_NOT_SIGNED", ( 0xC0EA0008 )) +ERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE = make_flag("ERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE", ( 0xC0EA0009 )) +ERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH = make_flag("ERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH", ( 0xC0EA000A )) +DXGI_STATUS_OCCLUDED = make_flag("DXGI_STATUS_OCCLUDED", ( 0x087A0001 )) +DXGI_STATUS_CLIPPED = make_flag("DXGI_STATUS_CLIPPED", ( 0x087A0002 )) +DXGI_STATUS_NO_REDIRECTION = make_flag("DXGI_STATUS_NO_REDIRECTION", ( 0x087A0004 )) +DXGI_STATUS_NO_DESKTOP_ACCESS = make_flag("DXGI_STATUS_NO_DESKTOP_ACCESS", ( 0x087A0005 )) +DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE = make_flag("DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE", ( 0x087A0006 )) +DXGI_STATUS_MODE_CHANGED = make_flag("DXGI_STATUS_MODE_CHANGED", ( 0x087A0007 )) +DXGI_STATUS_MODE_CHANGE_IN_PROGRESS = make_flag("DXGI_STATUS_MODE_CHANGE_IN_PROGRESS", ( 0x087A0008 )) +DXGI_ERROR_INVALID_CALL = make_flag("DXGI_ERROR_INVALID_CALL", ( 0x887A0001 )) +DXGI_ERROR_NOT_FOUND = make_flag("DXGI_ERROR_NOT_FOUND", ( 0x887A0002 )) +DXGI_ERROR_MORE_DATA = make_flag("DXGI_ERROR_MORE_DATA", ( 0x887A0003 )) +DXGI_ERROR_UNSUPPORTED = make_flag("DXGI_ERROR_UNSUPPORTED", ( 0x887A0004 )) +DXGI_ERROR_DEVICE_REMOVED = make_flag("DXGI_ERROR_DEVICE_REMOVED", ( 0x887A0005 )) +DXGI_ERROR_DEVICE_HUNG = make_flag("DXGI_ERROR_DEVICE_HUNG", ( 0x887A0006 )) +DXGI_ERROR_DEVICE_RESET = make_flag("DXGI_ERROR_DEVICE_RESET", ( 0x887A0007 )) +DXGI_ERROR_WAS_STILL_DRAWING = make_flag("DXGI_ERROR_WAS_STILL_DRAWING", ( 0x887A000A )) +DXGI_ERROR_FRAME_STATISTICS_DISJOINT = make_flag("DXGI_ERROR_FRAME_STATISTICS_DISJOINT", ( 0x887A000B )) +DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE = make_flag("DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE", ( 0x887A000C )) +DXGI_ERROR_DRIVER_INTERNAL_ERROR = make_flag("DXGI_ERROR_DRIVER_INTERNAL_ERROR", ( 0x887A0020 )) +DXGI_ERROR_NONEXCLUSIVE = make_flag("DXGI_ERROR_NONEXCLUSIVE", ( 0x887A0021 )) +DXGI_ERROR_NOT_CURRENTLY_AVAILABLE = make_flag("DXGI_ERROR_NOT_CURRENTLY_AVAILABLE", ( 0x887A0022 )) +DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED = make_flag("DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED", ( 0x887A0023 )) +DXGI_ERROR_REMOTE_OUTOFMEMORY = make_flag("DXGI_ERROR_REMOTE_OUTOFMEMORY", ( 0x887A0024 )) +DXGI_ERROR_ACCESS_LOST = make_flag("DXGI_ERROR_ACCESS_LOST", ( 0x887A0026 )) +DXGI_ERROR_WAIT_TIMEOUT = make_flag("DXGI_ERROR_WAIT_TIMEOUT", ( 0x887A0027 )) +DXGI_ERROR_SESSION_DISCONNECTED = make_flag("DXGI_ERROR_SESSION_DISCONNECTED", ( 0x887A0028 )) +DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE = make_flag("DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE", ( 0x887A0029 )) +DXGI_ERROR_CANNOT_PROTECT_CONTENT = make_flag("DXGI_ERROR_CANNOT_PROTECT_CONTENT", ( 0x887A002A )) +DXGI_ERROR_ACCESS_DENIED = make_flag("DXGI_ERROR_ACCESS_DENIED", ( 0x887A002B )) +DXGI_ERROR_NAME_ALREADY_EXISTS = make_flag("DXGI_ERROR_NAME_ALREADY_EXISTS", ( 0x887A002C )) +DXGI_ERROR_SDK_COMPONENT_MISSING = make_flag("DXGI_ERROR_SDK_COMPONENT_MISSING", ( 0x887A002D )) +DXGI_ERROR_NOT_CURRENT = make_flag("DXGI_ERROR_NOT_CURRENT", ( 0x887A002E )) +DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY = make_flag("DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY", ( 0x887A0030 )) +DXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION = make_flag("DXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION", ( 0x887A0031 )) +DXGI_ERROR_NON_COMPOSITED_UI = make_flag("DXGI_ERROR_NON_COMPOSITED_UI", ( 0x887A0032 )) +DXGI_STATUS_UNOCCLUDED = make_flag("DXGI_STATUS_UNOCCLUDED", ( 0x087A0009 )) +DXGI_STATUS_DDA_WAS_STILL_DRAWING = make_flag("DXGI_STATUS_DDA_WAS_STILL_DRAWING", ( 0x087A000A )) +DXGI_ERROR_MODE_CHANGE_IN_PROGRESS = make_flag("DXGI_ERROR_MODE_CHANGE_IN_PROGRESS", ( 0x887A0025 )) +DXGI_STATUS_PRESENT_REQUIRED = make_flag("DXGI_STATUS_PRESENT_REQUIRED", ( 0x087A002F )) +DXGI_ERROR_CACHE_CORRUPT = make_flag("DXGI_ERROR_CACHE_CORRUPT", ( 0x887A0033 )) +DXGI_ERROR_CACHE_FULL = make_flag("DXGI_ERROR_CACHE_FULL", ( 0x887A0034 )) +DXGI_ERROR_CACHE_HASH_COLLISION = make_flag("DXGI_ERROR_CACHE_HASH_COLLISION", ( 0x887A0035 )) +DXGI_ERROR_ALREADY_EXISTS = make_flag("DXGI_ERROR_ALREADY_EXISTS", ( 0x887A0036 )) +DXGI_DDI_ERR_WASSTILLDRAWING = make_flag("DXGI_DDI_ERR_WASSTILLDRAWING", ( 0x887B0001 )) +DXGI_DDI_ERR_UNSUPPORTED = make_flag("DXGI_DDI_ERR_UNSUPPORTED", ( 0x887B0002 )) +DXGI_DDI_ERR_NONEXCLUSIVE = make_flag("DXGI_DDI_ERR_NONEXCLUSIVE", ( 0x887B0003 )) +D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS = make_flag("D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS", ( 0x88790001 )) +D3D10_ERROR_FILE_NOT_FOUND = make_flag("D3D10_ERROR_FILE_NOT_FOUND", ( 0x88790002 )) +D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS = make_flag("D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS", ( 0x887C0001 )) +D3D11_ERROR_FILE_NOT_FOUND = make_flag("D3D11_ERROR_FILE_NOT_FOUND", ( 0x887C0002 )) +D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS = make_flag("D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS", ( 0x887C0003 )) +D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD = make_flag("D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD", ( 0x887C0004 )) +D3D12_ERROR_ADAPTER_NOT_FOUND = make_flag("D3D12_ERROR_ADAPTER_NOT_FOUND", ( 0x887E0001 )) +D3D12_ERROR_DRIVER_VERSION_MISMATCH = make_flag("D3D12_ERROR_DRIVER_VERSION_MISMATCH", ( 0x887E0002 )) +D2DERR_WRONG_STATE = make_flag("D2DERR_WRONG_STATE", ( 0x88990001 )) +D2DERR_NOT_INITIALIZED = make_flag("D2DERR_NOT_INITIALIZED", ( 0x88990002 )) +D2DERR_UNSUPPORTED_OPERATION = make_flag("D2DERR_UNSUPPORTED_OPERATION", ( 0x88990003 )) +D2DERR_SCANNER_FAILED = make_flag("D2DERR_SCANNER_FAILED", ( 0x88990004 )) +D2DERR_SCREEN_ACCESS_DENIED = make_flag("D2DERR_SCREEN_ACCESS_DENIED", ( 0x88990005 )) +D2DERR_DISPLAY_STATE_INVALID = make_flag("D2DERR_DISPLAY_STATE_INVALID", ( 0x88990006 )) +D2DERR_ZERO_VECTOR = make_flag("D2DERR_ZERO_VECTOR", ( 0x88990007 )) +D2DERR_INTERNAL_ERROR = make_flag("D2DERR_INTERNAL_ERROR", ( 0x88990008 )) +D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED = make_flag("D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED", ( 0x88990009 )) +D2DERR_INVALID_CALL = make_flag("D2DERR_INVALID_CALL", ( 0x8899000A )) +D2DERR_NO_HARDWARE_DEVICE = make_flag("D2DERR_NO_HARDWARE_DEVICE", ( 0x8899000B )) +D2DERR_RECREATE_TARGET = make_flag("D2DERR_RECREATE_TARGET", ( 0x8899000C )) +D2DERR_TOO_MANY_SHADER_ELEMENTS = make_flag("D2DERR_TOO_MANY_SHADER_ELEMENTS", ( 0x8899000D )) +D2DERR_SHADER_COMPILE_FAILED = make_flag("D2DERR_SHADER_COMPILE_FAILED", ( 0x8899000E )) +D2DERR_MAX_TEXTURE_SIZE_EXCEEDED = make_flag("D2DERR_MAX_TEXTURE_SIZE_EXCEEDED", ( 0x8899000F )) +D2DERR_UNSUPPORTED_VERSION = make_flag("D2DERR_UNSUPPORTED_VERSION", ( 0x88990010 )) +D2DERR_BAD_NUMBER = make_flag("D2DERR_BAD_NUMBER", ( 0x88990011 )) +D2DERR_WRONG_FACTORY = make_flag("D2DERR_WRONG_FACTORY", ( 0x88990012 )) +D2DERR_LAYER_ALREADY_IN_USE = make_flag("D2DERR_LAYER_ALREADY_IN_USE", ( 0x88990013 )) +D2DERR_POP_CALL_DID_NOT_MATCH_PUSH = make_flag("D2DERR_POP_CALL_DID_NOT_MATCH_PUSH", ( 0x88990014 )) +D2DERR_WRONG_RESOURCE_DOMAIN = make_flag("D2DERR_WRONG_RESOURCE_DOMAIN", ( 0x88990015 )) +D2DERR_PUSH_POP_UNBALANCED = make_flag("D2DERR_PUSH_POP_UNBALANCED", ( 0x88990016 )) +D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT = make_flag("D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT", ( 0x88990017 )) +D2DERR_INCOMPATIBLE_BRUSH_TYPES = make_flag("D2DERR_INCOMPATIBLE_BRUSH_TYPES", ( 0x88990018 )) +D2DERR_WIN32_ERROR = make_flag("D2DERR_WIN32_ERROR", ( 0x88990019 )) +D2DERR_TARGET_NOT_GDI_COMPATIBLE = make_flag("D2DERR_TARGET_NOT_GDI_COMPATIBLE", ( 0x8899001A )) +D2DERR_TEXT_EFFECT_IS_WRONG_TYPE = make_flag("D2DERR_TEXT_EFFECT_IS_WRONG_TYPE", ( 0x8899001B )) +D2DERR_TEXT_RENDERER_NOT_RELEASED = make_flag("D2DERR_TEXT_RENDERER_NOT_RELEASED", ( 0x8899001C )) +D2DERR_EXCEEDS_MAX_BITMAP_SIZE = make_flag("D2DERR_EXCEEDS_MAX_BITMAP_SIZE", ( 0x8899001D )) +D2DERR_INVALID_GRAPH_CONFIGURATION = make_flag("D2DERR_INVALID_GRAPH_CONFIGURATION", ( 0x8899001E )) +D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION = make_flag("D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION", ( 0x8899001F )) +D2DERR_CYCLIC_GRAPH = make_flag("D2DERR_CYCLIC_GRAPH", ( 0x88990020 )) +D2DERR_BITMAP_CANNOT_DRAW = make_flag("D2DERR_BITMAP_CANNOT_DRAW", ( 0x88990021 )) +D2DERR_OUTSTANDING_BITMAP_REFERENCES = make_flag("D2DERR_OUTSTANDING_BITMAP_REFERENCES", ( 0x88990022 )) +D2DERR_ORIGINAL_TARGET_NOT_BOUND = make_flag("D2DERR_ORIGINAL_TARGET_NOT_BOUND", ( 0x88990023 )) +D2DERR_INVALID_TARGET = make_flag("D2DERR_INVALID_TARGET", ( 0x88990024 )) +D2DERR_BITMAP_BOUND_AS_TARGET = make_flag("D2DERR_BITMAP_BOUND_AS_TARGET", ( 0x88990025 )) +D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES = make_flag("D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES", ( 0x88990026 )) +D2DERR_INTERMEDIATE_TOO_LARGE = make_flag("D2DERR_INTERMEDIATE_TOO_LARGE", ( 0x88990027 )) +D2DERR_EFFECT_IS_NOT_REGISTERED = make_flag("D2DERR_EFFECT_IS_NOT_REGISTERED", ( 0x88990028 )) +D2DERR_INVALID_PROPERTY = make_flag("D2DERR_INVALID_PROPERTY", ( 0x88990029 )) +D2DERR_NO_SUBPROPERTIES = make_flag("D2DERR_NO_SUBPROPERTIES", ( 0x8899002A )) +D2DERR_PRINT_JOB_CLOSED = make_flag("D2DERR_PRINT_JOB_CLOSED", ( 0x8899002B )) +D2DERR_PRINT_FORMAT_NOT_SUPPORTED = make_flag("D2DERR_PRINT_FORMAT_NOT_SUPPORTED", ( 0x8899002C )) +D2DERR_TOO_MANY_TRANSFORM_INPUTS = make_flag("D2DERR_TOO_MANY_TRANSFORM_INPUTS", ( 0x8899002D )) +D2DERR_INVALID_GLYPH_IMAGE = make_flag("D2DERR_INVALID_GLYPH_IMAGE", ( 0x8899002E )) +DWRITE_E_FILEFORMAT = make_flag("DWRITE_E_FILEFORMAT", ( 0x88985000 )) +DWRITE_E_UNEXPECTED = make_flag("DWRITE_E_UNEXPECTED", ( 0x88985001 )) +DWRITE_E_NOFONT = make_flag("DWRITE_E_NOFONT", ( 0x88985002 )) +DWRITE_E_FILENOTFOUND = make_flag("DWRITE_E_FILENOTFOUND", ( 0x88985003 )) +DWRITE_E_FILEACCESS = make_flag("DWRITE_E_FILEACCESS", ( 0x88985004 )) +DWRITE_E_FONTCOLLECTIONOBSOLETE = make_flag("DWRITE_E_FONTCOLLECTIONOBSOLETE", ( 0x88985005 )) +DWRITE_E_ALREADYREGISTERED = make_flag("DWRITE_E_ALREADYREGISTERED", ( 0x88985006 )) +DWRITE_E_CACHEFORMAT = make_flag("DWRITE_E_CACHEFORMAT", ( 0x88985007 )) +DWRITE_E_CACHEVERSION = make_flag("DWRITE_E_CACHEVERSION", ( 0x88985008 )) +DWRITE_E_UNSUPPORTEDOPERATION = make_flag("DWRITE_E_UNSUPPORTEDOPERATION", ( 0x88985009 )) +DWRITE_E_TEXTRENDERERINCOMPATIBLE = make_flag("DWRITE_E_TEXTRENDERERINCOMPATIBLE", ( 0x8898500A )) +DWRITE_E_FLOWDIRECTIONCONFLICTS = make_flag("DWRITE_E_FLOWDIRECTIONCONFLICTS", ( 0x8898500B )) +DWRITE_E_NOCOLOR = make_flag("DWRITE_E_NOCOLOR", ( 0x8898500C )) +DWRITE_E_REMOTEFONT = make_flag("DWRITE_E_REMOTEFONT", ( 0x8898500D )) +DWRITE_E_DOWNLOADCANCELLED = make_flag("DWRITE_E_DOWNLOADCANCELLED", ( 0x8898500E )) +DWRITE_E_DOWNLOADFAILED = make_flag("DWRITE_E_DOWNLOADFAILED", ( 0x8898500F )) +DWRITE_E_TOOMANYDOWNLOADS = make_flag("DWRITE_E_TOOMANYDOWNLOADS", ( 0x88985010 )) +WINCODEC_ERR_WRONGSTATE = make_flag("WINCODEC_ERR_WRONGSTATE", ( 0x88982F04 )) +WINCODEC_ERR_VALUEOUTOFRANGE = make_flag("WINCODEC_ERR_VALUEOUTOFRANGE", ( 0x88982F05 )) +WINCODEC_ERR_UNKNOWNIMAGEFORMAT = make_flag("WINCODEC_ERR_UNKNOWNIMAGEFORMAT", ( 0x88982F07 )) +WINCODEC_ERR_UNSUPPORTEDVERSION = make_flag("WINCODEC_ERR_UNSUPPORTEDVERSION", ( 0x88982F0B )) +WINCODEC_ERR_NOTINITIALIZED = make_flag("WINCODEC_ERR_NOTINITIALIZED", ( 0x88982F0C )) +WINCODEC_ERR_ALREADYLOCKED = make_flag("WINCODEC_ERR_ALREADYLOCKED", ( 0x88982F0D )) +WINCODEC_ERR_PROPERTYNOTFOUND = make_flag("WINCODEC_ERR_PROPERTYNOTFOUND", ( 0x88982F40 )) +WINCODEC_ERR_PROPERTYNOTSUPPORTED = make_flag("WINCODEC_ERR_PROPERTYNOTSUPPORTED", ( 0x88982F41 )) +WINCODEC_ERR_PROPERTYSIZE = make_flag("WINCODEC_ERR_PROPERTYSIZE", ( 0x88982F42 )) +WINCODEC_ERR_CODECPRESENT = make_flag("WINCODEC_ERR_CODECPRESENT", ( 0x88982F43 )) +WINCODEC_ERR_CODECNOTHUMBNAIL = make_flag("WINCODEC_ERR_CODECNOTHUMBNAIL", ( 0x88982F44 )) +WINCODEC_ERR_PALETTEUNAVAILABLE = make_flag("WINCODEC_ERR_PALETTEUNAVAILABLE", ( 0x88982F45 )) +WINCODEC_ERR_CODECTOOMANYSCANLINES = make_flag("WINCODEC_ERR_CODECTOOMANYSCANLINES", ( 0x88982F46 )) +WINCODEC_ERR_INTERNALERROR = make_flag("WINCODEC_ERR_INTERNALERROR", ( 0x88982F48 )) +WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS = make_flag("WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS", ( 0x88982F49 )) +WINCODEC_ERR_COMPONENTNOTFOUND = make_flag("WINCODEC_ERR_COMPONENTNOTFOUND", ( 0x88982F50 )) +WINCODEC_ERR_IMAGESIZEOUTOFRANGE = make_flag("WINCODEC_ERR_IMAGESIZEOUTOFRANGE", ( 0x88982F51 )) +WINCODEC_ERR_TOOMUCHMETADATA = make_flag("WINCODEC_ERR_TOOMUCHMETADATA", ( 0x88982F52 )) +WINCODEC_ERR_BADIMAGE = make_flag("WINCODEC_ERR_BADIMAGE", ( 0x88982F60 )) +WINCODEC_ERR_BADHEADER = make_flag("WINCODEC_ERR_BADHEADER", ( 0x88982F61 )) +WINCODEC_ERR_FRAMEMISSING = make_flag("WINCODEC_ERR_FRAMEMISSING", ( 0x88982F62 )) +WINCODEC_ERR_BADMETADATAHEADER = make_flag("WINCODEC_ERR_BADMETADATAHEADER", ( 0x88982F63 )) +WINCODEC_ERR_BADSTREAMDATA = make_flag("WINCODEC_ERR_BADSTREAMDATA", ( 0x88982F70 )) +WINCODEC_ERR_STREAMWRITE = make_flag("WINCODEC_ERR_STREAMWRITE", ( 0x88982F71 )) +WINCODEC_ERR_STREAMREAD = make_flag("WINCODEC_ERR_STREAMREAD", ( 0x88982F72 )) +WINCODEC_ERR_STREAMNOTAVAILABLE = make_flag("WINCODEC_ERR_STREAMNOTAVAILABLE", ( 0x88982F73 )) +WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT = make_flag("WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT", ( 0x88982F80 )) +WINCODEC_ERR_UNSUPPORTEDOPERATION = make_flag("WINCODEC_ERR_UNSUPPORTEDOPERATION", ( 0x88982F81 )) +WINCODEC_ERR_INVALIDREGISTRATION = make_flag("WINCODEC_ERR_INVALIDREGISTRATION", ( 0x88982F8A )) +WINCODEC_ERR_COMPONENTINITIALIZEFAILURE = make_flag("WINCODEC_ERR_COMPONENTINITIALIZEFAILURE", ( 0x88982F8B )) +WINCODEC_ERR_INSUFFICIENTBUFFER = make_flag("WINCODEC_ERR_INSUFFICIENTBUFFER", ( 0x88982F8C )) +WINCODEC_ERR_DUPLICATEMETADATAPRESENT = make_flag("WINCODEC_ERR_DUPLICATEMETADATAPRESENT", ( 0x88982F8D )) +WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE = make_flag("WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE", ( 0x88982F8E )) +WINCODEC_ERR_UNEXPECTEDSIZE = make_flag("WINCODEC_ERR_UNEXPECTEDSIZE", ( 0x88982F8F )) +WINCODEC_ERR_INVALIDQUERYREQUEST = make_flag("WINCODEC_ERR_INVALIDQUERYREQUEST", ( 0x88982F90 )) +WINCODEC_ERR_UNEXPECTEDMETADATATYPE = make_flag("WINCODEC_ERR_UNEXPECTEDMETADATATYPE", ( 0x88982F91 )) +WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT = make_flag("WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT", ( 0x88982F92 )) +WINCODEC_ERR_INVALIDQUERYCHARACTER = make_flag("WINCODEC_ERR_INVALIDQUERYCHARACTER", ( 0x88982F93 )) +WINCODEC_ERR_WIN32ERROR = make_flag("WINCODEC_ERR_WIN32ERROR", ( 0x88982F94 )) +WINCODEC_ERR_INVALIDPROGRESSIVELEVEL = make_flag("WINCODEC_ERR_INVALIDPROGRESSIVELEVEL", ( 0x88982F95 )) +WINCODEC_ERR_INVALIDJPEGSCANINDEX = make_flag("WINCODEC_ERR_INVALIDJPEGSCANINDEX", ( 0x88982F96 )) +MILERR_OBJECTBUSY = make_flag("MILERR_OBJECTBUSY", ( 0x88980001 )) +MILERR_INSUFFICIENTBUFFER = make_flag("MILERR_INSUFFICIENTBUFFER", ( 0x88980002 )) +MILERR_WIN32ERROR = make_flag("MILERR_WIN32ERROR", ( 0x88980003 )) +MILERR_SCANNER_FAILED = make_flag("MILERR_SCANNER_FAILED", ( 0x88980004 )) +MILERR_SCREENACCESSDENIED = make_flag("MILERR_SCREENACCESSDENIED", ( 0x88980005 )) +MILERR_DISPLAYSTATEINVALID = make_flag("MILERR_DISPLAYSTATEINVALID", ( 0x88980006 )) +MILERR_NONINVERTIBLEMATRIX = make_flag("MILERR_NONINVERTIBLEMATRIX", ( 0x88980007 )) +MILERR_ZEROVECTOR = make_flag("MILERR_ZEROVECTOR", ( 0x88980008 )) +MILERR_TERMINATED = make_flag("MILERR_TERMINATED", ( 0x88980009 )) +MILERR_BADNUMBER = make_flag("MILERR_BADNUMBER", ( 0x8898000A )) +MILERR_INTERNALERROR = make_flag("MILERR_INTERNALERROR", ( 0x88980080 )) +MILERR_DISPLAYFORMATNOTSUPPORTED = make_flag("MILERR_DISPLAYFORMATNOTSUPPORTED", ( 0x88980084 )) +MILERR_INVALIDCALL = make_flag("MILERR_INVALIDCALL", ( 0x88980085 )) +MILERR_ALREADYLOCKED = make_flag("MILERR_ALREADYLOCKED", ( 0x88980086 )) +MILERR_NOTLOCKED = make_flag("MILERR_NOTLOCKED", ( 0x88980087 )) +MILERR_DEVICECANNOTRENDERTEXT = make_flag("MILERR_DEVICECANNOTRENDERTEXT", ( 0x88980088 )) +MILERR_GLYPHBITMAPMISSED = make_flag("MILERR_GLYPHBITMAPMISSED", ( 0x88980089 )) +MILERR_MALFORMEDGLYPHCACHE = make_flag("MILERR_MALFORMEDGLYPHCACHE", ( 0x8898008A )) +MILERR_GENERIC_IGNORE = make_flag("MILERR_GENERIC_IGNORE", ( 0x8898008B )) +MILERR_MALFORMED_GUIDELINE_DATA = make_flag("MILERR_MALFORMED_GUIDELINE_DATA", ( 0x8898008C )) +MILERR_NO_HARDWARE_DEVICE = make_flag("MILERR_NO_HARDWARE_DEVICE", ( 0x8898008D )) +MILERR_NEED_RECREATE_AND_PRESENT = make_flag("MILERR_NEED_RECREATE_AND_PRESENT", ( 0x8898008E )) +MILERR_ALREADY_INITIALIZED = make_flag("MILERR_ALREADY_INITIALIZED", ( 0x8898008F )) +MILERR_MISMATCHED_SIZE = make_flag("MILERR_MISMATCHED_SIZE", ( 0x88980090 )) +MILERR_NO_REDIRECTION_SURFACE_AVAILABLE = make_flag("MILERR_NO_REDIRECTION_SURFACE_AVAILABLE", ( 0x88980091 )) +MILERR_REMOTING_NOT_SUPPORTED = make_flag("MILERR_REMOTING_NOT_SUPPORTED", ( 0x88980092 )) +MILERR_QUEUED_PRESENT_NOT_SUPPORTED = make_flag("MILERR_QUEUED_PRESENT_NOT_SUPPORTED", ( 0x88980093 )) +MILERR_NOT_QUEUING_PRESENTS = make_flag("MILERR_NOT_QUEUING_PRESENTS", ( 0x88980094 )) +MILERR_NO_REDIRECTION_SURFACE_RETRY_LATER = make_flag("MILERR_NO_REDIRECTION_SURFACE_RETRY_LATER", ( 0x88980095 )) +MILERR_TOOMANYSHADERELEMNTS = make_flag("MILERR_TOOMANYSHADERELEMNTS", ( 0x88980096 )) +MILERR_MROW_READLOCK_FAILED = make_flag("MILERR_MROW_READLOCK_FAILED", ( 0x88980097 )) +MILERR_MROW_UPDATE_FAILED = make_flag("MILERR_MROW_UPDATE_FAILED", ( 0x88980098 )) +MILERR_SHADER_COMPILE_FAILED = make_flag("MILERR_SHADER_COMPILE_FAILED", ( 0x88980099 )) +MILERR_MAX_TEXTURE_SIZE_EXCEEDED = make_flag("MILERR_MAX_TEXTURE_SIZE_EXCEEDED", ( 0x8898009A )) +MILERR_QPC_TIME_WENT_BACKWARD = make_flag("MILERR_QPC_TIME_WENT_BACKWARD", ( 0x8898009B )) +MILERR_DXGI_ENUMERATION_OUT_OF_SYNC = make_flag("MILERR_DXGI_ENUMERATION_OUT_OF_SYNC", ( 0x8898009D )) +MILERR_ADAPTER_NOT_FOUND = make_flag("MILERR_ADAPTER_NOT_FOUND", ( 0x8898009E )) +MILERR_COLORSPACE_NOT_SUPPORTED = make_flag("MILERR_COLORSPACE_NOT_SUPPORTED", ( 0x8898009F )) +MILERR_PREFILTER_NOT_SUPPORTED = make_flag("MILERR_PREFILTER_NOT_SUPPORTED", ( 0x889800A0 )) +MILERR_DISPLAYID_ACCESS_DENIED = make_flag("MILERR_DISPLAYID_ACCESS_DENIED", ( 0x889800A1 )) +UCEERR_INVALIDPACKETHEADER = make_flag("UCEERR_INVALIDPACKETHEADER", ( 0x88980400 )) +UCEERR_UNKNOWNPACKET = make_flag("UCEERR_UNKNOWNPACKET", ( 0x88980401 )) +UCEERR_ILLEGALPACKET = make_flag("UCEERR_ILLEGALPACKET", ( 0x88980402 )) +UCEERR_MALFORMEDPACKET = make_flag("UCEERR_MALFORMEDPACKET", ( 0x88980403 )) +UCEERR_ILLEGALHANDLE = make_flag("UCEERR_ILLEGALHANDLE", ( 0x88980404 )) +UCEERR_HANDLELOOKUPFAILED = make_flag("UCEERR_HANDLELOOKUPFAILED", ( 0x88980405 )) +UCEERR_RENDERTHREADFAILURE = make_flag("UCEERR_RENDERTHREADFAILURE", ( 0x88980406 )) +UCEERR_CTXSTACKFRSTTARGETNULL = make_flag("UCEERR_CTXSTACKFRSTTARGETNULL", ( 0x88980407 )) +UCEERR_CONNECTIONIDLOOKUPFAILED = make_flag("UCEERR_CONNECTIONIDLOOKUPFAILED", ( 0x88980408 )) +UCEERR_BLOCKSFULL = make_flag("UCEERR_BLOCKSFULL", ( 0x88980409 )) +UCEERR_MEMORYFAILURE = make_flag("UCEERR_MEMORYFAILURE", ( 0x8898040A )) +UCEERR_PACKETRECORDOUTOFRANGE = make_flag("UCEERR_PACKETRECORDOUTOFRANGE", ( 0x8898040B )) +UCEERR_ILLEGALRECORDTYPE = make_flag("UCEERR_ILLEGALRECORDTYPE", ( 0x8898040C )) +UCEERR_OUTOFHANDLES = make_flag("UCEERR_OUTOFHANDLES", ( 0x8898040D )) +UCEERR_UNCHANGABLE_UPDATE_ATTEMPTED = make_flag("UCEERR_UNCHANGABLE_UPDATE_ATTEMPTED", ( 0x8898040E )) +UCEERR_NO_MULTIPLE_WORKER_THREADS = make_flag("UCEERR_NO_MULTIPLE_WORKER_THREADS", ( 0x8898040F )) +UCEERR_REMOTINGNOTSUPPORTED = make_flag("UCEERR_REMOTINGNOTSUPPORTED", ( 0x88980410 )) +UCEERR_MISSINGENDCOMMAND = make_flag("UCEERR_MISSINGENDCOMMAND", ( 0x88980411 )) +UCEERR_MISSINGBEGINCOMMAND = make_flag("UCEERR_MISSINGBEGINCOMMAND", ( 0x88980412 )) +UCEERR_CHANNELSYNCTIMEDOUT = make_flag("UCEERR_CHANNELSYNCTIMEDOUT", ( 0x88980413 )) +UCEERR_CHANNELSYNCABANDONED = make_flag("UCEERR_CHANNELSYNCABANDONED", ( 0x88980414 )) +UCEERR_UNSUPPORTEDTRANSPORTVERSION = make_flag("UCEERR_UNSUPPORTEDTRANSPORTVERSION", ( 0x88980415 )) +UCEERR_TRANSPORTUNAVAILABLE = make_flag("UCEERR_TRANSPORTUNAVAILABLE", ( 0x88980416 )) +UCEERR_FEEDBACK_UNSUPPORTED = make_flag("UCEERR_FEEDBACK_UNSUPPORTED", ( 0x88980417 )) +UCEERR_COMMANDTRANSPORTDENIED = make_flag("UCEERR_COMMANDTRANSPORTDENIED", ( 0x88980418 )) +UCEERR_GRAPHICSSTREAMUNAVAILABLE = make_flag("UCEERR_GRAPHICSSTREAMUNAVAILABLE", ( 0x88980419 )) +UCEERR_GRAPHICSSTREAMALREADYOPEN = make_flag("UCEERR_GRAPHICSSTREAMALREADYOPEN", ( 0x88980420 )) +UCEERR_TRANSPORTDISCONNECTED = make_flag("UCEERR_TRANSPORTDISCONNECTED", ( 0x88980421 )) +UCEERR_TRANSPORTOVERLOADED = make_flag("UCEERR_TRANSPORTOVERLOADED", ( 0x88980422 )) +UCEERR_PARTITION_ZOMBIED = make_flag("UCEERR_PARTITION_ZOMBIED", ( 0x88980423 )) +MILAVERR_NOCLOCK = make_flag("MILAVERR_NOCLOCK", ( 0x88980500 )) +MILAVERR_NOMEDIATYPE = make_flag("MILAVERR_NOMEDIATYPE", ( 0x88980501 )) +MILAVERR_NOVIDEOMIXER = make_flag("MILAVERR_NOVIDEOMIXER", ( 0x88980502 )) +MILAVERR_NOVIDEOPRESENTER = make_flag("MILAVERR_NOVIDEOPRESENTER", ( 0x88980503 )) +MILAVERR_NOREADYFRAMES = make_flag("MILAVERR_NOREADYFRAMES", ( 0x88980504 )) +MILAVERR_MODULENOTLOADED = make_flag("MILAVERR_MODULENOTLOADED", ( 0x88980505 )) +MILAVERR_WMPFACTORYNOTREGISTERED = make_flag("MILAVERR_WMPFACTORYNOTREGISTERED", ( 0x88980506 )) +MILAVERR_INVALIDWMPVERSION = make_flag("MILAVERR_INVALIDWMPVERSION", ( 0x88980507 )) +MILAVERR_INSUFFICIENTVIDEORESOURCES = make_flag("MILAVERR_INSUFFICIENTVIDEORESOURCES", ( 0x88980508 )) +MILAVERR_VIDEOACCELERATIONNOTAVAILABLE = make_flag("MILAVERR_VIDEOACCELERATIONNOTAVAILABLE", ( 0x88980509 )) +MILAVERR_REQUESTEDTEXTURETOOBIG = make_flag("MILAVERR_REQUESTEDTEXTURETOOBIG", ( 0x8898050A )) +MILAVERR_SEEKFAILED = make_flag("MILAVERR_SEEKFAILED", ( 0x8898050B )) +MILAVERR_UNEXPECTEDWMPFAILURE = make_flag("MILAVERR_UNEXPECTEDWMPFAILURE", ( 0x8898050C )) +MILAVERR_MEDIAPLAYERCLOSED = make_flag("MILAVERR_MEDIAPLAYERCLOSED", ( 0x8898050D )) +MILAVERR_UNKNOWNHARDWAREERROR = make_flag("MILAVERR_UNKNOWNHARDWAREERROR", ( 0x8898050E )) +MILEFFECTSERR_UNKNOWNPROPERTY = make_flag("MILEFFECTSERR_UNKNOWNPROPERTY", ( 0x8898060E )) +MILEFFECTSERR_EFFECTNOTPARTOFGROUP = make_flag("MILEFFECTSERR_EFFECTNOTPARTOFGROUP", ( 0x8898060F )) +MILEFFECTSERR_NOINPUTSOURCEATTACHED = make_flag("MILEFFECTSERR_NOINPUTSOURCEATTACHED", ( 0x88980610 )) +MILEFFECTSERR_CONNECTORNOTCONNECTED = make_flag("MILEFFECTSERR_CONNECTORNOTCONNECTED", ( 0x88980611 )) +MILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT = make_flag("MILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT", ( 0x88980612 )) +MILEFFECTSERR_RESERVED = make_flag("MILEFFECTSERR_RESERVED", ( 0x88980613 )) +MILEFFECTSERR_CYCLEDETECTED = make_flag("MILEFFECTSERR_CYCLEDETECTED", ( 0x88980614 )) +MILEFFECTSERR_EFFECTINMORETHANONEGRAPH = make_flag("MILEFFECTSERR_EFFECTINMORETHANONEGRAPH", ( 0x88980615 )) +MILEFFECTSERR_EFFECTALREADYINAGRAPH = make_flag("MILEFFECTSERR_EFFECTALREADYINAGRAPH", ( 0x88980616 )) +MILEFFECTSERR_EFFECTHASNOCHILDREN = make_flag("MILEFFECTSERR_EFFECTHASNOCHILDREN", ( 0x88980617 )) +MILEFFECTSERR_ALREADYATTACHEDTOLISTENER = make_flag("MILEFFECTSERR_ALREADYATTACHEDTOLISTENER", ( 0x88980618 )) +MILEFFECTSERR_NOTAFFINETRANSFORM = make_flag("MILEFFECTSERR_NOTAFFINETRANSFORM", ( 0x88980619 )) +MILEFFECTSERR_EMPTYBOUNDS = make_flag("MILEFFECTSERR_EMPTYBOUNDS", ( 0x8898061A )) +MILEFFECTSERR_OUTPUTSIZETOOLARGE = make_flag("MILEFFECTSERR_OUTPUTSIZETOOLARGE", ( 0x8898061B )) +DWMERR_STATE_TRANSITION_FAILED = make_flag("DWMERR_STATE_TRANSITION_FAILED", ( 0x88980700 )) +DWMERR_THEME_FAILED = make_flag("DWMERR_THEME_FAILED", ( 0x88980701 )) +DWMERR_CATASTROPHIC_FAILURE = make_flag("DWMERR_CATASTROPHIC_FAILURE", ( 0x88980702 )) +DCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED = make_flag("DCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED", ( 0x88980800 )) +DCOMPOSITION_ERROR_SURFACE_BEING_RENDERED = make_flag("DCOMPOSITION_ERROR_SURFACE_BEING_RENDERED", ( 0x88980801 )) +DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED = make_flag("DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED", ( 0x88980802 )) +ONL_E_INVALID_AUTHENTICATION_TARGET = make_flag("ONL_E_INVALID_AUTHENTICATION_TARGET", ( 0x80860001 )) +ONL_E_ACCESS_DENIED_BY_TOU = make_flag("ONL_E_ACCESS_DENIED_BY_TOU", ( 0x80860002 )) +ONL_E_INVALID_APPLICATION = make_flag("ONL_E_INVALID_APPLICATION", ( 0x80860003 )) +ONL_E_PASSWORD_UPDATE_REQUIRED = make_flag("ONL_E_PASSWORD_UPDATE_REQUIRED", ( 0x80860004 )) +ONL_E_ACCOUNT_UPDATE_REQUIRED = make_flag("ONL_E_ACCOUNT_UPDATE_REQUIRED", ( 0x80860005 )) +ONL_E_FORCESIGNIN = make_flag("ONL_E_FORCESIGNIN", ( 0x80860006 )) +ONL_E_ACCOUNT_LOCKED = make_flag("ONL_E_ACCOUNT_LOCKED", ( 0x80860007 )) +ONL_E_PARENTAL_CONSENT_REQUIRED = make_flag("ONL_E_PARENTAL_CONSENT_REQUIRED", ( 0x80860008 )) +ONL_E_EMAIL_VERIFICATION_REQUIRED = make_flag("ONL_E_EMAIL_VERIFICATION_REQUIRED", ( 0x80860009 )) +ONL_E_ACCOUNT_SUSPENDED_COMPROIMISE = make_flag("ONL_E_ACCOUNT_SUSPENDED_COMPROIMISE", ( 0x8086000A )) +ONL_E_ACCOUNT_SUSPENDED_ABUSE = make_flag("ONL_E_ACCOUNT_SUSPENDED_ABUSE", ( 0x8086000B )) +ONL_E_ACTION_REQUIRED = make_flag("ONL_E_ACTION_REQUIRED", ( 0x8086000C )) +ONL_CONNECTION_COUNT_LIMIT = make_flag("ONL_CONNECTION_COUNT_LIMIT", ( 0x8086000D )) +ONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT = make_flag("ONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT", ( 0x8086000E )) +ONL_E_USER_AUTHENTICATION_REQUIRED = make_flag("ONL_E_USER_AUTHENTICATION_REQUIRED", ( 0x8086000F )) +ONL_E_REQUEST_THROTTLED = make_flag("ONL_E_REQUEST_THROTTLED", ( 0x80860010 )) +FA_E_MAX_PERSISTED_ITEMS_REACHED = make_flag("FA_E_MAX_PERSISTED_ITEMS_REACHED", ( 0x80270220 )) +FA_E_HOMEGROUP_NOT_AVAILABLE = make_flag("FA_E_HOMEGROUP_NOT_AVAILABLE", ( 0x80270222 )) +E_MONITOR_RESOLUTION_TOO_LOW = make_flag("E_MONITOR_RESOLUTION_TOO_LOW", ( 0x80270250 )) +E_ELEVATED_ACTIVATION_NOT_SUPPORTED = make_flag("E_ELEVATED_ACTIVATION_NOT_SUPPORTED", ( 0x80270251 )) +E_UAC_DISABLED = make_flag("E_UAC_DISABLED", ( 0x80270252 )) +E_FULL_ADMIN_NOT_SUPPORTED = make_flag("E_FULL_ADMIN_NOT_SUPPORTED", ( 0x80270253 )) +E_APPLICATION_NOT_REGISTERED = make_flag("E_APPLICATION_NOT_REGISTERED", ( 0x80270254 )) +E_MULTIPLE_EXTENSIONS_FOR_APPLICATION = make_flag("E_MULTIPLE_EXTENSIONS_FOR_APPLICATION", ( 0x80270255 )) +E_MULTIPLE_PACKAGES_FOR_FAMILY = make_flag("E_MULTIPLE_PACKAGES_FOR_FAMILY", ( 0x80270256 )) +E_APPLICATION_MANAGER_NOT_RUNNING = make_flag("E_APPLICATION_MANAGER_NOT_RUNNING", ( 0x80270257 )) +S_STORE_LAUNCHED_FOR_REMEDIATION = make_flag("S_STORE_LAUNCHED_FOR_REMEDIATION", ( 0x00270258 )) +S_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG = make_flag("S_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG", ( 0x00270259 )) +E_APPLICATION_ACTIVATION_TIMED_OUT = make_flag("E_APPLICATION_ACTIVATION_TIMED_OUT", ( 0x8027025A )) +E_APPLICATION_ACTIVATION_EXEC_FAILURE = make_flag("E_APPLICATION_ACTIVATION_EXEC_FAILURE", ( 0x8027025B )) +E_APPLICATION_TEMPORARY_LICENSE_ERROR = make_flag("E_APPLICATION_TEMPORARY_LICENSE_ERROR", ( 0x8027025C )) +E_APPLICATION_TRIAL_LICENSE_EXPIRED = make_flag("E_APPLICATION_TRIAL_LICENSE_EXPIRED", ( 0x8027025D )) +E_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED = make_flag("E_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED", ( 0x80270260 )) +E_SKYDRIVE_ROOT_TARGET_OVERLAP = make_flag("E_SKYDRIVE_ROOT_TARGET_OVERLAP", ( 0x80270261 )) +E_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX = make_flag("E_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX", ( 0x80270262 )) +E_SKYDRIVE_FILE_NOT_UPLOADED = make_flag("E_SKYDRIVE_FILE_NOT_UPLOADED", ( 0x80270263 )) +E_SKYDRIVE_UPDATE_AVAILABILITY_FAIL = make_flag("E_SKYDRIVE_UPDATE_AVAILABILITY_FAIL", ( 0x80270264 )) +E_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED = make_flag("E_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED", ( 0x80270265 )) +E_SYNCENGINE_FILE_SIZE_OVER_LIMIT = make_flag("E_SYNCENGINE_FILE_SIZE_OVER_LIMIT", ( 0x8802B001 )) +E_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA = make_flag("E_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA", ( 0x8802B002 )) +E_SYNCENGINE_UNSUPPORTED_FILE_NAME = make_flag("E_SYNCENGINE_UNSUPPORTED_FILE_NAME", ( 0x8802B003 )) +E_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED = make_flag("E_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED", ( 0x8802B004 )) +E_SYNCENGINE_FILE_SYNC_PARTNER_ERROR = make_flag("E_SYNCENGINE_FILE_SYNC_PARTNER_ERROR", ( 0x8802B005 )) +E_SYNCENGINE_SYNC_PAUSED_BY_SERVICE = make_flag("E_SYNCENGINE_SYNC_PAUSED_BY_SERVICE", ( 0x8802B006 )) +E_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN = make_flag("E_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN", ( 0x8802C002 )) +E_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED = make_flag("E_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED", ( 0x8802C003 )) +E_SYNCENGINE_UNKNOWN_SERVICE_ERROR = make_flag("E_SYNCENGINE_UNKNOWN_SERVICE_ERROR", ( 0x8802C004 )) +E_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE = make_flag("E_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE", ( 0x8802C005 )) +E_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE = make_flag("E_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE", ( 0x8802C006 )) +E_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR = make_flag("E_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR", ( 0x8802C007 )) +E_SYNCENGINE_FOLDER_INACCESSIBLE = make_flag("E_SYNCENGINE_FOLDER_INACCESSIBLE", ( 0x8802D001 )) +E_SYNCENGINE_UNSUPPORTED_FOLDER_NAME = make_flag("E_SYNCENGINE_UNSUPPORTED_FOLDER_NAME", ( 0x8802D002 )) +E_SYNCENGINE_UNSUPPORTED_MARKET = make_flag("E_SYNCENGINE_UNSUPPORTED_MARKET", ( 0x8802D003 )) +E_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED = make_flag("E_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED", ( 0x8802D004 )) +E_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED = make_flag("E_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED", ( 0x8802D005 )) +E_SYNCENGINE_CLIENT_UPDATE_NEEDED = make_flag("E_SYNCENGINE_CLIENT_UPDATE_NEEDED", ( 0x8802D006 )) +E_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED = make_flag("E_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED", ( 0x8802D007 )) +E_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED = make_flag("E_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED", ( 0x8802D008 )) +E_SYNCENGINE_UNSUPPORTED_REPARSE_POINT = make_flag("E_SYNCENGINE_UNSUPPORTED_REPARSE_POINT", ( 0x8802D009 )) +E_SYNCENGINE_STORAGE_SERVICE_BLOCKED = make_flag("E_SYNCENGINE_STORAGE_SERVICE_BLOCKED", ( 0x8802D00A )) +E_SYNCENGINE_FOLDER_IN_REDIRECTION = make_flag("E_SYNCENGINE_FOLDER_IN_REDIRECTION", ( 0x8802D00B )) +EAS_E_POLICY_NOT_MANAGED_BY_OS = make_flag("EAS_E_POLICY_NOT_MANAGED_BY_OS", ( 0x80550001 )) +EAS_E_POLICY_COMPLIANT_WITH_ACTIONS = make_flag("EAS_E_POLICY_COMPLIANT_WITH_ACTIONS", ( 0x80550002 )) +EAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE = make_flag("EAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE", ( 0x80550003 )) +EAS_E_CURRENT_USER_HAS_BLANK_PASSWORD = make_flag("EAS_E_CURRENT_USER_HAS_BLANK_PASSWORD", ( 0x80550004 )) +EAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE = make_flag("EAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE", ( 0x80550005 )) +EAS_E_USER_CANNOT_CHANGE_PASSWORD = make_flag("EAS_E_USER_CANNOT_CHANGE_PASSWORD", ( 0x80550006 )) +EAS_E_ADMINS_HAVE_BLANK_PASSWORD = make_flag("EAS_E_ADMINS_HAVE_BLANK_PASSWORD", ( 0x80550007 )) +EAS_E_ADMINS_CANNOT_CHANGE_PASSWORD = make_flag("EAS_E_ADMINS_CANNOT_CHANGE_PASSWORD", ( 0x80550008 )) +EAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD = make_flag("EAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD", ( 0x80550009 )) +EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS = make_flag("EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS", ( 0x8055000A )) +EAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD = make_flag("EAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD", ( 0x8055000B )) +EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER = make_flag("EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER", ( 0x8055000C )) +EAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD = make_flag("EAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD", ( 0x8055000D )) +WEB_E_UNSUPPORTED_FORMAT = make_flag("WEB_E_UNSUPPORTED_FORMAT", ( 0x83750001 )) +WEB_E_INVALID_XML = make_flag("WEB_E_INVALID_XML", ( 0x83750002 )) +WEB_E_MISSING_REQUIRED_ELEMENT = make_flag("WEB_E_MISSING_REQUIRED_ELEMENT", ( 0x83750003 )) +WEB_E_MISSING_REQUIRED_ATTRIBUTE = make_flag("WEB_E_MISSING_REQUIRED_ATTRIBUTE", ( 0x83750004 )) +WEB_E_UNEXPECTED_CONTENT = make_flag("WEB_E_UNEXPECTED_CONTENT", ( 0x83750005 )) +WEB_E_RESOURCE_TOO_LARGE = make_flag("WEB_E_RESOURCE_TOO_LARGE", ( 0x83750006 )) +WEB_E_INVALID_JSON_STRING = make_flag("WEB_E_INVALID_JSON_STRING", ( 0x83750007 )) +WEB_E_INVALID_JSON_NUMBER = make_flag("WEB_E_INVALID_JSON_NUMBER", ( 0x83750008 )) +WEB_E_JSON_VALUE_NOT_FOUND = make_flag("WEB_E_JSON_VALUE_NOT_FOUND", ( 0x83750009 )) +HTTP_E_STATUS_UNEXPECTED = make_flag("HTTP_E_STATUS_UNEXPECTED", ( 0x80190001 )) +HTTP_E_STATUS_UNEXPECTED_REDIRECTION = make_flag("HTTP_E_STATUS_UNEXPECTED_REDIRECTION", ( 0x80190003 )) +HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR = make_flag("HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR", ( 0x80190004 )) +HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR = make_flag("HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR", ( 0x80190005 )) +HTTP_E_STATUS_AMBIGUOUS = make_flag("HTTP_E_STATUS_AMBIGUOUS", ( 0x8019012C )) +HTTP_E_STATUS_MOVED = make_flag("HTTP_E_STATUS_MOVED", ( 0x8019012D )) +HTTP_E_STATUS_REDIRECT = make_flag("HTTP_E_STATUS_REDIRECT", ( 0x8019012E )) +HTTP_E_STATUS_REDIRECT_METHOD = make_flag("HTTP_E_STATUS_REDIRECT_METHOD", ( 0x8019012F )) +HTTP_E_STATUS_NOT_MODIFIED = make_flag("HTTP_E_STATUS_NOT_MODIFIED", ( 0x80190130 )) +HTTP_E_STATUS_USE_PROXY = make_flag("HTTP_E_STATUS_USE_PROXY", ( 0x80190131 )) +HTTP_E_STATUS_REDIRECT_KEEP_VERB = make_flag("HTTP_E_STATUS_REDIRECT_KEEP_VERB", ( 0x80190133 )) +HTTP_E_STATUS_BAD_REQUEST = make_flag("HTTP_E_STATUS_BAD_REQUEST", ( 0x80190190 )) +HTTP_E_STATUS_DENIED = make_flag("HTTP_E_STATUS_DENIED", ( 0x80190191 )) +HTTP_E_STATUS_PAYMENT_REQ = make_flag("HTTP_E_STATUS_PAYMENT_REQ", ( 0x80190192 )) +HTTP_E_STATUS_FORBIDDEN = make_flag("HTTP_E_STATUS_FORBIDDEN", ( 0x80190193 )) +HTTP_E_STATUS_NOT_FOUND = make_flag("HTTP_E_STATUS_NOT_FOUND", ( 0x80190194 )) +HTTP_E_STATUS_BAD_METHOD = make_flag("HTTP_E_STATUS_BAD_METHOD", ( 0x80190195 )) +HTTP_E_STATUS_NONE_ACCEPTABLE = make_flag("HTTP_E_STATUS_NONE_ACCEPTABLE", ( 0x80190196 )) +HTTP_E_STATUS_PROXY_AUTH_REQ = make_flag("HTTP_E_STATUS_PROXY_AUTH_REQ", ( 0x80190197 )) +HTTP_E_STATUS_REQUEST_TIMEOUT = make_flag("HTTP_E_STATUS_REQUEST_TIMEOUT", ( 0x80190198 )) +HTTP_E_STATUS_CONFLICT = make_flag("HTTP_E_STATUS_CONFLICT", ( 0x80190199 )) +HTTP_E_STATUS_GONE = make_flag("HTTP_E_STATUS_GONE", ( 0x8019019A )) +HTTP_E_STATUS_LENGTH_REQUIRED = make_flag("HTTP_E_STATUS_LENGTH_REQUIRED", ( 0x8019019B )) +HTTP_E_STATUS_PRECOND_FAILED = make_flag("HTTP_E_STATUS_PRECOND_FAILED", ( 0x8019019C )) +HTTP_E_STATUS_REQUEST_TOO_LARGE = make_flag("HTTP_E_STATUS_REQUEST_TOO_LARGE", ( 0x8019019D )) +HTTP_E_STATUS_URI_TOO_LONG = make_flag("HTTP_E_STATUS_URI_TOO_LONG", ( 0x8019019E )) +HTTP_E_STATUS_UNSUPPORTED_MEDIA = make_flag("HTTP_E_STATUS_UNSUPPORTED_MEDIA", ( 0x8019019F )) +HTTP_E_STATUS_RANGE_NOT_SATISFIABLE = make_flag("HTTP_E_STATUS_RANGE_NOT_SATISFIABLE", ( 0x801901A0 )) +HTTP_E_STATUS_EXPECTATION_FAILED = make_flag("HTTP_E_STATUS_EXPECTATION_FAILED", ( 0x801901A1 )) +HTTP_E_STATUS_SERVER_ERROR = make_flag("HTTP_E_STATUS_SERVER_ERROR", ( 0x801901F4 )) +HTTP_E_STATUS_NOT_SUPPORTED = make_flag("HTTP_E_STATUS_NOT_SUPPORTED", ( 0x801901F5 )) +HTTP_E_STATUS_BAD_GATEWAY = make_flag("HTTP_E_STATUS_BAD_GATEWAY", ( 0x801901F6 )) +HTTP_E_STATUS_SERVICE_UNAVAIL = make_flag("HTTP_E_STATUS_SERVICE_UNAVAIL", ( 0x801901F7 )) +HTTP_E_STATUS_GATEWAY_TIMEOUT = make_flag("HTTP_E_STATUS_GATEWAY_TIMEOUT", ( 0x801901F8 )) +HTTP_E_STATUS_VERSION_NOT_SUP = make_flag("HTTP_E_STATUS_VERSION_NOT_SUP", ( 0x801901F9 )) +E_INVALID_PROTOCOL_OPERATION = make_flag("E_INVALID_PROTOCOL_OPERATION", ( 0x83760001 )) +E_INVALID_PROTOCOL_FORMAT = make_flag("E_INVALID_PROTOCOL_FORMAT", ( 0x83760002 )) +E_PROTOCOL_EXTENSIONS_NOT_SUPPORTED = make_flag("E_PROTOCOL_EXTENSIONS_NOT_SUPPORTED", ( 0x83760003 )) +E_SUBPROTOCOL_NOT_SUPPORTED = make_flag("E_SUBPROTOCOL_NOT_SUPPORTED", ( 0x83760004 )) +E_PROTOCOL_VERSION_NOT_SUPPORTED = make_flag("E_PROTOCOL_VERSION_NOT_SUPPORTED", ( 0x83760005 )) +INPUT_E_OUT_OF_ORDER = make_flag("INPUT_E_OUT_OF_ORDER", ( 0x80400000 )) +INPUT_E_REENTRANCY = make_flag("INPUT_E_REENTRANCY", ( 0x80400001 )) +INPUT_E_MULTIMODAL = make_flag("INPUT_E_MULTIMODAL", ( 0x80400002 )) +INPUT_E_PACKET = make_flag("INPUT_E_PACKET", ( 0x80400003 )) +INPUT_E_FRAME = make_flag("INPUT_E_FRAME", ( 0x80400004 )) +INPUT_E_HISTORY = make_flag("INPUT_E_HISTORY", ( 0x80400005 )) +INPUT_E_DEVICE_INFO = make_flag("INPUT_E_DEVICE_INFO", ( 0x80400006 )) +INPUT_E_TRANSFORM = make_flag("INPUT_E_TRANSFORM", ( 0x80400007 )) +INPUT_E_DEVICE_PROPERTY = make_flag("INPUT_E_DEVICE_PROPERTY", ( 0x80400008 )) +INET_E_INVALID_URL = make_flag("INET_E_INVALID_URL", ( 0x800C0002 )) +INET_E_NO_SESSION = make_flag("INET_E_NO_SESSION", ( 0x800C0003 )) +INET_E_CANNOT_CONNECT = make_flag("INET_E_CANNOT_CONNECT", ( 0x800C0004 )) +INET_E_RESOURCE_NOT_FOUND = make_flag("INET_E_RESOURCE_NOT_FOUND", ( 0x800C0005 )) +INET_E_OBJECT_NOT_FOUND = make_flag("INET_E_OBJECT_NOT_FOUND", ( 0x800C0006 )) +INET_E_DATA_NOT_AVAILABLE = make_flag("INET_E_DATA_NOT_AVAILABLE", ( 0x800C0007 )) +INET_E_DOWNLOAD_FAILURE = make_flag("INET_E_DOWNLOAD_FAILURE", ( 0x800C0008 )) +INET_E_AUTHENTICATION_REQUIRED = make_flag("INET_E_AUTHENTICATION_REQUIRED", ( 0x800C0009 )) +INET_E_NO_VALID_MEDIA = make_flag("INET_E_NO_VALID_MEDIA", ( 0x800C000A )) +INET_E_CONNECTION_TIMEOUT = make_flag("INET_E_CONNECTION_TIMEOUT", ( 0x800C000B )) +INET_E_INVALID_REQUEST = make_flag("INET_E_INVALID_REQUEST", ( 0x800C000C )) +INET_E_UNKNOWN_PROTOCOL = make_flag("INET_E_UNKNOWN_PROTOCOL", ( 0x800C000D )) +INET_E_SECURITY_PROBLEM = make_flag("INET_E_SECURITY_PROBLEM", ( 0x800C000E )) +INET_E_CANNOT_LOAD_DATA = make_flag("INET_E_CANNOT_LOAD_DATA", ( 0x800C000F )) +INET_E_CANNOT_INSTANTIATE_OBJECT = make_flag("INET_E_CANNOT_INSTANTIATE_OBJECT", ( 0x800C0010 )) +INET_E_INVALID_CERTIFICATE = make_flag("INET_E_INVALID_CERTIFICATE", ( 0x800C0019 )) +INET_E_REDIRECT_FAILED = make_flag("INET_E_REDIRECT_FAILED", ( 0x800C0014 )) +INET_E_REDIRECT_TO_DIR = make_flag("INET_E_REDIRECT_TO_DIR", ( 0x800C0015 )) +ERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN = make_flag("ERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN", ( 0x80B00001 )) +ERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN = make_flag("ERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN", ( 0x80B00002 )) +ERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN = make_flag("ERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN", ( 0x80B00003 )) +ERROR_DBG_START_SERVER_FAILURE_LOCKDOWN = make_flag("ERROR_DBG_START_SERVER_FAILURE_LOCKDOWN", ( 0x80B00004 )) +ERROR_IO_PREEMPTED = make_flag("ERROR_IO_PREEMPTED", ( 0x89010001 )) +JSCRIPT_E_CANTEXECUTE = make_flag("JSCRIPT_E_CANTEXECUTE", ( 0x89020001 )) +WEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES = make_flag("WEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES", ( 0x88010001 )) +WEP_E_FIXED_DATA_NOT_SUPPORTED = make_flag("WEP_E_FIXED_DATA_NOT_SUPPORTED", ( 0x88010002 )) +WEP_E_HARDWARE_NOT_COMPLIANT = make_flag("WEP_E_HARDWARE_NOT_COMPLIANT", ( 0x88010003 )) +WEP_E_LOCK_NOT_CONFIGURED = make_flag("WEP_E_LOCK_NOT_CONFIGURED", ( 0x88010004 )) +WEP_E_PROTECTION_SUSPENDED = make_flag("WEP_E_PROTECTION_SUSPENDED", ( 0x88010005 )) +WEP_E_NO_LICENSE = make_flag("WEP_E_NO_LICENSE", ( 0x88010006 )) +WEP_E_OS_NOT_PROTECTED = make_flag("WEP_E_OS_NOT_PROTECTED", ( 0x88010007 )) +WEP_E_UNEXPECTED_FAIL = make_flag("WEP_E_UNEXPECTED_FAIL", ( 0x88010008 )) +WEP_E_BUFFER_TOO_LARGE = make_flag("WEP_E_BUFFER_TOO_LARGE", ( 0x88010009 )) +ERROR_SVHDX_ERROR_STORED = make_flag("ERROR_SVHDX_ERROR_STORED", ( 0xC05C0000 )) +ERROR_SVHDX_ERROR_NOT_AVAILABLE = make_flag("ERROR_SVHDX_ERROR_NOT_AVAILABLE", ( 0xC05CFF00 )) +ERROR_SVHDX_UNIT_ATTENTION_AVAILABLE = make_flag("ERROR_SVHDX_UNIT_ATTENTION_AVAILABLE", ( 0xC05CFF01 )) +ERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED = make_flag("ERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED", ( 0xC05CFF02 )) +ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED = make_flag("ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED", ( 0xC05CFF03 )) +ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED = make_flag("ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED", ( 0xC05CFF04 )) +ERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED = make_flag("ERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED", ( 0xC05CFF05 )) +ERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED = make_flag("ERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED", ( 0xC05CFF06 )) +ERROR_SVHDX_RESERVATION_CONFLICT = make_flag("ERROR_SVHDX_RESERVATION_CONFLICT", ( 0xC05CFF07 )) +ERROR_SVHDX_WRONG_FILE_TYPE = make_flag("ERROR_SVHDX_WRONG_FILE_TYPE", ( 0xC05CFF08 )) +ERROR_SVHDX_VERSION_MISMATCH = make_flag("ERROR_SVHDX_VERSION_MISMATCH", ( 0xC05CFF09 )) +ERROR_VHD_SHARED = make_flag("ERROR_VHD_SHARED", ( 0xC05CFF0A )) +ERROR_SVHDX_NO_INITIATOR = make_flag("ERROR_SVHDX_NO_INITIATOR", ( 0xC05CFF0B )) +ERROR_VHDSET_BACKING_STORAGE_NOT_FOUND = make_flag("ERROR_VHDSET_BACKING_STORAGE_NOT_FOUND", ( 0xC05CFF0C )) +ERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP = make_flag("ERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP", ( 0xC05D0000 )) +ERROR_SMB_BAD_CLUSTER_DIALECT = make_flag("ERROR_SMB_BAD_CLUSTER_DIALECT", ( 0xC05D0001 )) +WININET_E_OUT_OF_HANDLES = make_flag("WININET_E_OUT_OF_HANDLES", ( 0x80072EE1 )) +WININET_E_TIMEOUT = make_flag("WININET_E_TIMEOUT", ( 0x80072EE2 )) +WININET_E_EXTENDED_ERROR = make_flag("WININET_E_EXTENDED_ERROR", ( 0x80072EE3 )) +WININET_E_INTERNAL_ERROR = make_flag("WININET_E_INTERNAL_ERROR", ( 0x80072EE4 )) +WININET_E_INVALID_URL = make_flag("WININET_E_INVALID_URL", ( 0x80072EE5 )) +WININET_E_UNRECOGNIZED_SCHEME = make_flag("WININET_E_UNRECOGNIZED_SCHEME", ( 0x80072EE6 )) +WININET_E_NAME_NOT_RESOLVED = make_flag("WININET_E_NAME_NOT_RESOLVED", ( 0x80072EE7 )) +WININET_E_PROTOCOL_NOT_FOUND = make_flag("WININET_E_PROTOCOL_NOT_FOUND", ( 0x80072EE8 )) +WININET_E_INVALID_OPTION = make_flag("WININET_E_INVALID_OPTION", ( 0x80072EE9 )) +WININET_E_BAD_OPTION_LENGTH = make_flag("WININET_E_BAD_OPTION_LENGTH", ( 0x80072EEA )) +WININET_E_OPTION_NOT_SETTABLE = make_flag("WININET_E_OPTION_NOT_SETTABLE", ( 0x80072EEB )) +WININET_E_SHUTDOWN = make_flag("WININET_E_SHUTDOWN", ( 0x80072EEC )) +WININET_E_INCORRECT_USER_NAME = make_flag("WININET_E_INCORRECT_USER_NAME", ( 0x80072EED )) +WININET_E_INCORRECT_PASSWORD = make_flag("WININET_E_INCORRECT_PASSWORD", ( 0x80072EEE )) +WININET_E_LOGIN_FAILURE = make_flag("WININET_E_LOGIN_FAILURE", ( 0x80072EEF )) +WININET_E_INVALID_OPERATION = make_flag("WININET_E_INVALID_OPERATION", ( 0x80072EF0 )) +WININET_E_OPERATION_CANCELLED = make_flag("WININET_E_OPERATION_CANCELLED", ( 0x80072EF1 )) +WININET_E_INCORRECT_HANDLE_TYPE = make_flag("WININET_E_INCORRECT_HANDLE_TYPE", ( 0x80072EF2 )) +WININET_E_INCORRECT_HANDLE_STATE = make_flag("WININET_E_INCORRECT_HANDLE_STATE", ( 0x80072EF3 )) +WININET_E_NOT_PROXY_REQUEST = make_flag("WININET_E_NOT_PROXY_REQUEST", ( 0x80072EF4 )) +WININET_E_REGISTRY_VALUE_NOT_FOUND = make_flag("WININET_E_REGISTRY_VALUE_NOT_FOUND", ( 0x80072EF5 )) +WININET_E_BAD_REGISTRY_PARAMETER = make_flag("WININET_E_BAD_REGISTRY_PARAMETER", ( 0x80072EF6 )) +WININET_E_NO_DIRECT_ACCESS = make_flag("WININET_E_NO_DIRECT_ACCESS", ( 0x80072EF7 )) +WININET_E_NO_CONTEXT = make_flag("WININET_E_NO_CONTEXT", ( 0x80072EF8 )) +WININET_E_NO_CALLBACK = make_flag("WININET_E_NO_CALLBACK", ( 0x80072EF9 )) +WININET_E_REQUEST_PENDING = make_flag("WININET_E_REQUEST_PENDING", ( 0x80072EFA )) +WININET_E_INCORRECT_FORMAT = make_flag("WININET_E_INCORRECT_FORMAT", ( 0x80072EFB )) +WININET_E_ITEM_NOT_FOUND = make_flag("WININET_E_ITEM_NOT_FOUND", ( 0x80072EFC )) +WININET_E_CANNOT_CONNECT = make_flag("WININET_E_CANNOT_CONNECT", ( 0x80072EFD )) +WININET_E_CONNECTION_ABORTED = make_flag("WININET_E_CONNECTION_ABORTED", ( 0x80072EFE )) +WININET_E_CONNECTION_RESET = make_flag("WININET_E_CONNECTION_RESET", ( 0x80072EFF )) +WININET_E_FORCE_RETRY = make_flag("WININET_E_FORCE_RETRY", ( 0x80072F00 )) +WININET_E_INVALID_PROXY_REQUEST = make_flag("WININET_E_INVALID_PROXY_REQUEST", ( 0x80072F01 )) +WININET_E_NEED_UI = make_flag("WININET_E_NEED_UI", ( 0x80072F02 )) +WININET_E_HANDLE_EXISTS = make_flag("WININET_E_HANDLE_EXISTS", ( 0x80072F04 )) +WININET_E_SEC_CERT_DATE_INVALID = make_flag("WININET_E_SEC_CERT_DATE_INVALID", ( 0x80072F05 )) +WININET_E_SEC_CERT_CN_INVALID = make_flag("WININET_E_SEC_CERT_CN_INVALID", ( 0x80072F06 )) +WININET_E_HTTP_TO_HTTPS_ON_REDIR = make_flag("WININET_E_HTTP_TO_HTTPS_ON_REDIR", ( 0x80072F07 )) +WININET_E_HTTPS_TO_HTTP_ON_REDIR = make_flag("WININET_E_HTTPS_TO_HTTP_ON_REDIR", ( 0x80072F08 )) +WININET_E_MIXED_SECURITY = make_flag("WININET_E_MIXED_SECURITY", ( 0x80072F09 )) +WININET_E_CHG_POST_IS_NON_SECURE = make_flag("WININET_E_CHG_POST_IS_NON_SECURE", ( 0x80072F0A )) +WININET_E_POST_IS_NON_SECURE = make_flag("WININET_E_POST_IS_NON_SECURE", ( 0x80072F0B )) +WININET_E_CLIENT_AUTH_CERT_NEEDED = make_flag("WININET_E_CLIENT_AUTH_CERT_NEEDED", ( 0x80072F0C )) +WININET_E_INVALID_CA = make_flag("WININET_E_INVALID_CA", ( 0x80072F0D )) +WININET_E_CLIENT_AUTH_NOT_SETUP = make_flag("WININET_E_CLIENT_AUTH_NOT_SETUP", ( 0x80072F0E )) +WININET_E_ASYNC_THREAD_FAILED = make_flag("WININET_E_ASYNC_THREAD_FAILED", ( 0x80072F0F )) +WININET_E_REDIRECT_SCHEME_CHANGE = make_flag("WININET_E_REDIRECT_SCHEME_CHANGE", ( 0x80072F10 )) +WININET_E_DIALOG_PENDING = make_flag("WININET_E_DIALOG_PENDING", ( 0x80072F11 )) +WININET_E_RETRY_DIALOG = make_flag("WININET_E_RETRY_DIALOG", ( 0x80072F12 )) +WININET_E_NO_NEW_CONTAINERS = make_flag("WININET_E_NO_NEW_CONTAINERS", ( 0x80072F13 )) +WININET_E_HTTPS_HTTP_SUBMIT_REDIR = make_flag("WININET_E_HTTPS_HTTP_SUBMIT_REDIR", ( 0x80072F14 )) +WININET_E_SEC_CERT_ERRORS = make_flag("WININET_E_SEC_CERT_ERRORS", ( 0x80072F17 )) +WININET_E_SEC_CERT_REV_FAILED = make_flag("WININET_E_SEC_CERT_REV_FAILED", ( 0x80072F19 )) +WININET_E_HEADER_NOT_FOUND = make_flag("WININET_E_HEADER_NOT_FOUND", ( 0x80072F76 )) +WININET_E_DOWNLEVEL_SERVER = make_flag("WININET_E_DOWNLEVEL_SERVER", ( 0x80072F77 )) +WININET_E_INVALID_SERVER_RESPONSE = make_flag("WININET_E_INVALID_SERVER_RESPONSE", ( 0x80072F78 )) +WININET_E_INVALID_HEADER = make_flag("WININET_E_INVALID_HEADER", ( 0x80072F79 )) +WININET_E_INVALID_QUERY_REQUEST = make_flag("WININET_E_INVALID_QUERY_REQUEST", ( 0x80072F7A )) +WININET_E_HEADER_ALREADY_EXISTS = make_flag("WININET_E_HEADER_ALREADY_EXISTS", ( 0x80072F7B )) +WININET_E_REDIRECT_FAILED = make_flag("WININET_E_REDIRECT_FAILED", ( 0x80072F7C )) +WININET_E_SECURITY_CHANNEL_ERROR = make_flag("WININET_E_SECURITY_CHANNEL_ERROR", ( 0x80072F7D )) +WININET_E_UNABLE_TO_CACHE_FILE = make_flag("WININET_E_UNABLE_TO_CACHE_FILE", ( 0x80072F7E )) +WININET_E_TCPIP_NOT_INSTALLED = make_flag("WININET_E_TCPIP_NOT_INSTALLED", ( 0x80072F7F )) +WININET_E_DISCONNECTED = make_flag("WININET_E_DISCONNECTED", ( 0x80072F83 )) +WININET_E_SERVER_UNREACHABLE = make_flag("WININET_E_SERVER_UNREACHABLE", ( 0x80072F84 )) +WININET_E_PROXY_SERVER_UNREACHABLE = make_flag("WININET_E_PROXY_SERVER_UNREACHABLE", ( 0x80072F85 )) +WININET_E_BAD_AUTO_PROXY_SCRIPT = make_flag("WININET_E_BAD_AUTO_PROXY_SCRIPT", ( 0x80072F86 )) +WININET_E_UNABLE_TO_DOWNLOAD_SCRIPT = make_flag("WININET_E_UNABLE_TO_DOWNLOAD_SCRIPT", ( 0x80072F87 )) +WININET_E_SEC_INVALID_CERT = make_flag("WININET_E_SEC_INVALID_CERT", ( 0x80072F89 )) +WININET_E_SEC_CERT_REVOKED = make_flag("WININET_E_SEC_CERT_REVOKED", ( 0x80072F8A )) +WININET_E_FAILED_DUETOSECURITYCHECK = make_flag("WININET_E_FAILED_DUETOSECURITYCHECK", ( 0x80072F8B )) +WININET_E_NOT_INITIALIZED = make_flag("WININET_E_NOT_INITIALIZED", ( 0x80072F8C )) +WININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY = make_flag("WININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY", ( 0x80072F8E )) +WININET_E_DECODING_FAILED = make_flag("WININET_E_DECODING_FAILED", ( 0x80072F8F )) +WININET_E_NOT_REDIRECTED = make_flag("WININET_E_NOT_REDIRECTED", ( 0x80072F80 )) +WININET_E_COOKIE_NEEDS_CONFIRMATION = make_flag("WININET_E_COOKIE_NEEDS_CONFIRMATION", ( 0x80072F81 )) +WININET_E_COOKIE_DECLINED = make_flag("WININET_E_COOKIE_DECLINED", ( 0x80072F82 )) +WININET_E_REDIRECT_NEEDS_CONFIRMATION = make_flag("WININET_E_REDIRECT_NEEDS_CONFIRMATION", ( 0x80072F88 )) +SQLITE_E_ERROR = make_flag("SQLITE_E_ERROR", ( 0x87AF0001 )) +SQLITE_E_INTERNAL = make_flag("SQLITE_E_INTERNAL", ( 0x87AF0002 )) +SQLITE_E_PERM = make_flag("SQLITE_E_PERM", ( 0x87AF0003 )) +SQLITE_E_ABORT = make_flag("SQLITE_E_ABORT", ( 0x87AF0004 )) +SQLITE_E_BUSY = make_flag("SQLITE_E_BUSY", ( 0x87AF0005 )) +SQLITE_E_LOCKED = make_flag("SQLITE_E_LOCKED", ( 0x87AF0006 )) +SQLITE_E_NOMEM = make_flag("SQLITE_E_NOMEM", ( 0x87AF0007 )) +SQLITE_E_READONLY = make_flag("SQLITE_E_READONLY", ( 0x87AF0008 )) +SQLITE_E_INTERRUPT = make_flag("SQLITE_E_INTERRUPT", ( 0x87AF0009 )) +SQLITE_E_IOERR = make_flag("SQLITE_E_IOERR", ( 0x87AF000A )) +SQLITE_E_CORRUPT = make_flag("SQLITE_E_CORRUPT", ( 0x87AF000B )) +SQLITE_E_NOTFOUND = make_flag("SQLITE_E_NOTFOUND", ( 0x87AF000C )) +SQLITE_E_FULL = make_flag("SQLITE_E_FULL", ( 0x87AF000D )) +SQLITE_E_CANTOPEN = make_flag("SQLITE_E_CANTOPEN", ( 0x87AF000E )) +SQLITE_E_PROTOCOL = make_flag("SQLITE_E_PROTOCOL", ( 0x87AF000F )) +SQLITE_E_EMPTY = make_flag("SQLITE_E_EMPTY", ( 0x87AF0010 )) +SQLITE_E_SCHEMA = make_flag("SQLITE_E_SCHEMA", ( 0x87AF0011 )) +SQLITE_E_TOOBIG = make_flag("SQLITE_E_TOOBIG", ( 0x87AF0012 )) +SQLITE_E_CONSTRAINT = make_flag("SQLITE_E_CONSTRAINT", ( 0x87AF0013 )) +SQLITE_E_MISMATCH = make_flag("SQLITE_E_MISMATCH", ( 0x87AF0014 )) +SQLITE_E_MISUSE = make_flag("SQLITE_E_MISUSE", ( 0x87AF0015 )) +SQLITE_E_NOLFS = make_flag("SQLITE_E_NOLFS", ( 0x87AF0016 )) +SQLITE_E_AUTH = make_flag("SQLITE_E_AUTH", ( 0x87AF0017 )) +SQLITE_E_FORMAT = make_flag("SQLITE_E_FORMAT", ( 0x87AF0018 )) +SQLITE_E_RANGE = make_flag("SQLITE_E_RANGE", ( 0x87AF0019 )) +SQLITE_E_NOTADB = make_flag("SQLITE_E_NOTADB", ( 0x87AF001A )) +SQLITE_E_NOTICE = make_flag("SQLITE_E_NOTICE", ( 0x87AF001B )) +SQLITE_E_WARNING = make_flag("SQLITE_E_WARNING", ( 0x87AF001C )) +SQLITE_E_ROW = make_flag("SQLITE_E_ROW", ( 0x87AF0064 )) +SQLITE_E_DONE = make_flag("SQLITE_E_DONE", ( 0x87AF0065 )) +SQLITE_E_IOERR_READ = make_flag("SQLITE_E_IOERR_READ", ( 0x87AF010A )) +SQLITE_E_IOERR_SHORT_READ = make_flag("SQLITE_E_IOERR_SHORT_READ", ( 0x87AF020A )) +SQLITE_E_IOERR_WRITE = make_flag("SQLITE_E_IOERR_WRITE", ( 0x87AF030A )) +SQLITE_E_IOERR_FSYNC = make_flag("SQLITE_E_IOERR_FSYNC", ( 0x87AF040A )) +SQLITE_E_IOERR_DIR_FSYNC = make_flag("SQLITE_E_IOERR_DIR_FSYNC", ( 0x87AF050A )) +SQLITE_E_IOERR_TRUNCATE = make_flag("SQLITE_E_IOERR_TRUNCATE", ( 0x87AF060A )) +SQLITE_E_IOERR_FSTAT = make_flag("SQLITE_E_IOERR_FSTAT", ( 0x87AF070A )) +SQLITE_E_IOERR_UNLOCK = make_flag("SQLITE_E_IOERR_UNLOCK", ( 0x87AF080A )) +SQLITE_E_IOERR_RDLOCK = make_flag("SQLITE_E_IOERR_RDLOCK", ( 0x87AF090A )) +SQLITE_E_IOERR_DELETE = make_flag("SQLITE_E_IOERR_DELETE", ( 0x87AF0A0A )) +SQLITE_E_IOERR_BLOCKED = make_flag("SQLITE_E_IOERR_BLOCKED", ( 0x87AF0B0A )) +SQLITE_E_IOERR_NOMEM = make_flag("SQLITE_E_IOERR_NOMEM", ( 0x87AF0C0A )) +SQLITE_E_IOERR_ACCESS = make_flag("SQLITE_E_IOERR_ACCESS", ( 0x87AF0D0A )) +SQLITE_E_IOERR_CHECKRESERVEDLOCK = make_flag("SQLITE_E_IOERR_CHECKRESERVEDLOCK", ( 0x87AF0E0A )) +SQLITE_E_IOERR_LOCK = make_flag("SQLITE_E_IOERR_LOCK", ( 0x87AF0F0A )) +SQLITE_E_IOERR_CLOSE = make_flag("SQLITE_E_IOERR_CLOSE", ( 0x87AF100A )) +SQLITE_E_IOERR_DIR_CLOSE = make_flag("SQLITE_E_IOERR_DIR_CLOSE", ( 0x87AF110A )) +SQLITE_E_IOERR_SHMOPEN = make_flag("SQLITE_E_IOERR_SHMOPEN", ( 0x87AF120A )) +SQLITE_E_IOERR_SHMSIZE = make_flag("SQLITE_E_IOERR_SHMSIZE", ( 0x87AF130A )) +SQLITE_E_IOERR_SHMLOCK = make_flag("SQLITE_E_IOERR_SHMLOCK", ( 0x87AF140A )) +SQLITE_E_IOERR_SHMMAP = make_flag("SQLITE_E_IOERR_SHMMAP", ( 0x87AF150A )) +SQLITE_E_IOERR_SEEK = make_flag("SQLITE_E_IOERR_SEEK", ( 0x87AF160A )) +SQLITE_E_IOERR_DELETE_NOENT = make_flag("SQLITE_E_IOERR_DELETE_NOENT", ( 0x87AF170A )) +SQLITE_E_IOERR_MMAP = make_flag("SQLITE_E_IOERR_MMAP", ( 0x87AF180A )) +SQLITE_E_IOERR_GETTEMPPATH = make_flag("SQLITE_E_IOERR_GETTEMPPATH", ( 0x87AF190A )) +SQLITE_E_IOERR_CONVPATH = make_flag("SQLITE_E_IOERR_CONVPATH", ( 0x87AF1A0A )) +SQLITE_E_IOERR_VNODE = make_flag("SQLITE_E_IOERR_VNODE", ( 0x87AF1A02 )) +SQLITE_E_IOERR_AUTH = make_flag("SQLITE_E_IOERR_AUTH", ( 0x87AF1A03 )) +SQLITE_E_LOCKED_SHAREDCACHE = make_flag("SQLITE_E_LOCKED_SHAREDCACHE", ( 0x87AF0106 )) +SQLITE_E_BUSY_RECOVERY = make_flag("SQLITE_E_BUSY_RECOVERY", ( 0x87AF0105 )) +SQLITE_E_BUSY_SNAPSHOT = make_flag("SQLITE_E_BUSY_SNAPSHOT", ( 0x87AF0205 )) +SQLITE_E_CANTOPEN_NOTEMPDIR = make_flag("SQLITE_E_CANTOPEN_NOTEMPDIR", ( 0x87AF010E )) +SQLITE_E_CANTOPEN_ISDIR = make_flag("SQLITE_E_CANTOPEN_ISDIR", ( 0x87AF020E )) +SQLITE_E_CANTOPEN_FULLPATH = make_flag("SQLITE_E_CANTOPEN_FULLPATH", ( 0x87AF030E )) +SQLITE_E_CANTOPEN_CONVPATH = make_flag("SQLITE_E_CANTOPEN_CONVPATH", ( 0x87AF040E )) +SQLITE_E_CORRUPT_VTAB = make_flag("SQLITE_E_CORRUPT_VTAB", ( 0x87AF010B )) +SQLITE_E_READONLY_RECOVERY = make_flag("SQLITE_E_READONLY_RECOVERY", ( 0x87AF0108 )) +SQLITE_E_READONLY_CANTLOCK = make_flag("SQLITE_E_READONLY_CANTLOCK", ( 0x87AF0208 )) +SQLITE_E_READONLY_ROLLBACK = make_flag("SQLITE_E_READONLY_ROLLBACK", ( 0x87AF0308 )) +SQLITE_E_READONLY_DBMOVED = make_flag("SQLITE_E_READONLY_DBMOVED", ( 0x87AF0408 )) +SQLITE_E_ABORT_ROLLBACK = make_flag("SQLITE_E_ABORT_ROLLBACK", ( 0x87AF0204 )) +SQLITE_E_CONSTRAINT_CHECK = make_flag("SQLITE_E_CONSTRAINT_CHECK", ( 0x87AF0113 )) +SQLITE_E_CONSTRAINT_COMMITHOOK = make_flag("SQLITE_E_CONSTRAINT_COMMITHOOK", ( 0x87AF0213 )) +SQLITE_E_CONSTRAINT_FOREIGNKEY = make_flag("SQLITE_E_CONSTRAINT_FOREIGNKEY", ( 0x87AF0313 )) +SQLITE_E_CONSTRAINT_FUNCTION = make_flag("SQLITE_E_CONSTRAINT_FUNCTION", ( 0x87AF0413 )) +SQLITE_E_CONSTRAINT_NOTNULL = make_flag("SQLITE_E_CONSTRAINT_NOTNULL", ( 0x87AF0513 )) +SQLITE_E_CONSTRAINT_PRIMARYKEY = make_flag("SQLITE_E_CONSTRAINT_PRIMARYKEY", ( 0x87AF0613 )) +SQLITE_E_CONSTRAINT_TRIGGER = make_flag("SQLITE_E_CONSTRAINT_TRIGGER", ( 0x87AF0713 )) +SQLITE_E_CONSTRAINT_UNIQUE = make_flag("SQLITE_E_CONSTRAINT_UNIQUE", ( 0x87AF0813 )) +SQLITE_E_CONSTRAINT_VTAB = make_flag("SQLITE_E_CONSTRAINT_VTAB", ( 0x87AF0913 )) +SQLITE_E_CONSTRAINT_ROWID = make_flag("SQLITE_E_CONSTRAINT_ROWID", ( 0x87AF0A13 )) +SQLITE_E_NOTICE_RECOVER_WAL = make_flag("SQLITE_E_NOTICE_RECOVER_WAL", ( 0x87AF011B )) +SQLITE_E_NOTICE_RECOVER_ROLLBACK = make_flag("SQLITE_E_NOTICE_RECOVER_ROLLBACK", ( 0x87AF021B )) +SQLITE_E_WARNING_AUTOINDEX = make_flag("SQLITE_E_WARNING_AUTOINDEX", ( 0x87AF011C )) +UTC_E_TOGGLE_TRACE_STARTED = make_flag("UTC_E_TOGGLE_TRACE_STARTED", ( 0x87C51001 )) +UTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT = make_flag("UTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT", ( 0x87C51002 )) +UTC_E_AOT_NOT_RUNNING = make_flag("UTC_E_AOT_NOT_RUNNING", ( 0x87C51003 )) +UTC_E_SCRIPT_TYPE_INVALID = make_flag("UTC_E_SCRIPT_TYPE_INVALID", ( 0x87C51004 )) +UTC_E_SCENARIODEF_NOT_FOUND = make_flag("UTC_E_SCENARIODEF_NOT_FOUND", ( 0x87C51005 )) +UTC_E_TRACEPROFILE_NOT_FOUND = make_flag("UTC_E_TRACEPROFILE_NOT_FOUND", ( 0x87C51006 )) +UTC_E_FORWARDER_ALREADY_ENABLED = make_flag("UTC_E_FORWARDER_ALREADY_ENABLED", ( 0x87C51007 )) +UTC_E_FORWARDER_ALREADY_DISABLED = make_flag("UTC_E_FORWARDER_ALREADY_DISABLED", ( 0x87C51008 )) +UTC_E_EVENTLOG_ENTRY_MALFORMED = make_flag("UTC_E_EVENTLOG_ENTRY_MALFORMED", ( 0x87C51009 )) +UTC_E_DIAGRULES_SCHEMAVERSION_MISMATCH = make_flag("UTC_E_DIAGRULES_SCHEMAVERSION_MISMATCH", ( 0x87C5100A )) +UTC_E_SCRIPT_TERMINATED = make_flag("UTC_E_SCRIPT_TERMINATED", ( 0x87C5100B )) +UTC_E_INVALID_CUSTOM_FILTER = make_flag("UTC_E_INVALID_CUSTOM_FILTER", ( 0x87C5100C )) +UTC_E_TRACE_NOT_RUNNING = make_flag("UTC_E_TRACE_NOT_RUNNING", ( 0x87C5100D )) +UTC_E_REESCALATED_TOO_QUICKLY = make_flag("UTC_E_REESCALATED_TOO_QUICKLY", ( 0x87C5100E )) +UTC_E_ESCALATION_ALREADY_RUNNING = make_flag("UTC_E_ESCALATION_ALREADY_RUNNING", ( 0x87C5100F )) +UTC_E_PERFTRACK_ALREADY_TRACING = make_flag("UTC_E_PERFTRACK_ALREADY_TRACING", ( 0x87C51010 )) +UTC_E_REACHED_MAX_ESCALATIONS = make_flag("UTC_E_REACHED_MAX_ESCALATIONS", ( 0x87C51011 )) +UTC_E_FORWARDER_PRODUCER_MISMATCH = make_flag("UTC_E_FORWARDER_PRODUCER_MISMATCH", ( 0x87C51012 )) +UTC_E_INTENTIONAL_SCRIPT_FAILURE = make_flag("UTC_E_INTENTIONAL_SCRIPT_FAILURE", ( 0x87C51013 )) +UTC_E_SQM_INIT_FAILED = make_flag("UTC_E_SQM_INIT_FAILED", ( 0x87C51014 )) +UTC_E_NO_WER_LOGGER_SUPPORTED = make_flag("UTC_E_NO_WER_LOGGER_SUPPORTED", ( 0x87C51015 )) +UTC_E_TRACERS_DONT_EXIST = make_flag("UTC_E_TRACERS_DONT_EXIST", ( 0x87C51016 )) +UTC_E_WINRT_INIT_FAILED = make_flag("UTC_E_WINRT_INIT_FAILED", ( 0x87C51017 )) +UTC_E_SCENARIODEF_SCHEMAVERSION_MISMATCH = make_flag("UTC_E_SCENARIODEF_SCHEMAVERSION_MISMATCH", ( 0x87C51018 )) +UTC_E_INVALID_FILTER = make_flag("UTC_E_INVALID_FILTER", ( 0x87C51019 )) +UTC_E_EXE_TERMINATED = make_flag("UTC_E_EXE_TERMINATED", ( 0x87C5101A )) +UTC_E_ESCALATION_NOT_AUTHORIZED = make_flag("UTC_E_ESCALATION_NOT_AUTHORIZED", ( 0x87C5101B )) +UTC_E_SETUP_NOT_AUTHORIZED = make_flag("UTC_E_SETUP_NOT_AUTHORIZED", ( 0x87C5101C )) +UTC_E_CHILD_PROCESS_FAILED = make_flag("UTC_E_CHILD_PROCESS_FAILED", ( 0x87C5101D )) +UTC_E_COMMAND_LINE_NOT_AUTHORIZED = make_flag("UTC_E_COMMAND_LINE_NOT_AUTHORIZED", ( 0x87C5101E )) +UTC_E_CANNOT_LOAD_SCENARIO_EDITOR_XML = make_flag("UTC_E_CANNOT_LOAD_SCENARIO_EDITOR_XML", ( 0x87C5101F )) +UTC_E_ESCALATION_TIMED_OUT = make_flag("UTC_E_ESCALATION_TIMED_OUT", ( 0x87C51020 )) +UTC_E_SETUP_TIMED_OUT = make_flag("UTC_E_SETUP_TIMED_OUT", ( 0x87C51021 )) +UTC_E_TRIGGER_MISMATCH = make_flag("UTC_E_TRIGGER_MISMATCH", ( 0x87C51022 )) +UTC_E_TRIGGER_NOT_FOUND = make_flag("UTC_E_TRIGGER_NOT_FOUND", ( 0x87C51023 )) +UTC_E_SIF_NOT_SUPPORTED = make_flag("UTC_E_SIF_NOT_SUPPORTED", ( 0x87C51024 )) +UTC_E_DELAY_TERMINATED = make_flag("UTC_E_DELAY_TERMINATED", ( 0x87C51025 )) +UTC_E_DEVICE_TICKET_ERROR = make_flag("UTC_E_DEVICE_TICKET_ERROR", ( 0x87C51026 )) +UTC_E_TRACE_BUFFER_LIMIT_EXCEEDED = make_flag("UTC_E_TRACE_BUFFER_LIMIT_EXCEEDED", ( 0x87C51027 )) +UTC_E_API_RESULT_UNAVAILABLE = make_flag("UTC_E_API_RESULT_UNAVAILABLE", ( 0x87C51028 )) +UTC_E_RPC_TIMEOUT = make_flag("UTC_E_RPC_TIMEOUT", ( 0x87C51029 )) +UTC_E_RPC_WAIT_FAILED = make_flag("UTC_E_RPC_WAIT_FAILED", ( 0x87C5102A )) +UTC_E_API_BUSY = make_flag("UTC_E_API_BUSY", ( 0x87C5102B )) +UTC_E_TRACE_MIN_DURATION_REQUIREMENT_NOT_MET = make_flag("UTC_E_TRACE_MIN_DURATION_REQUIREMENT_NOT_MET", ( 0x87C5102C )) +UTC_E_EXCLUSIVITY_NOT_AVAILABLE = make_flag("UTC_E_EXCLUSIVITY_NOT_AVAILABLE", ( 0x87C5102D )) +UTC_E_GETFILE_FILE_PATH_NOT_APPROVED = make_flag("UTC_E_GETFILE_FILE_PATH_NOT_APPROVED", ( 0x87C5102E )) +UTC_E_ESCALATION_DIRECTORY_ALREADY_EXISTS = make_flag("UTC_E_ESCALATION_DIRECTORY_ALREADY_EXISTS", ( 0x87C5102F )) +UTC_E_TIME_TRIGGER_ON_START_INVALID = make_flag("UTC_E_TIME_TRIGGER_ON_START_INVALID", ( 0x87C51030 )) +UTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION = make_flag("UTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION", ( 0x87C51031 )) +UTC_E_TIME_TRIGGER_INVALID_TIME_RANGE = make_flag("UTC_E_TIME_TRIGGER_INVALID_TIME_RANGE", ( 0x87C51032 )) +UTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE = make_flag("UTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE", ( 0x87C51033 )) +UTC_E_BINARY_MISSING = make_flag("UTC_E_BINARY_MISSING", ( 0x87C51034 )) +UTC_E_NETWORK_CAPTURE_NOT_ALLOWED = make_flag("UTC_E_NETWORK_CAPTURE_NOT_ALLOWED", ( 0x87C51035 )) +UTC_E_FAILED_TO_RESOLVE_CONTAINER_ID = make_flag("UTC_E_FAILED_TO_RESOLVE_CONTAINER_ID", ( 0x87C51036 )) +UTC_E_UNABLE_TO_RESOLVE_SESSION = make_flag("UTC_E_UNABLE_TO_RESOLVE_SESSION", ( 0x87C51037 )) +UTC_E_THROTTLED = make_flag("UTC_E_THROTTLED", ( 0x87C51038 )) +UTC_E_UNAPPROVED_SCRIPT = make_flag("UTC_E_UNAPPROVED_SCRIPT", ( 0x87C51039 )) +UTC_E_SCRIPT_MISSING = make_flag("UTC_E_SCRIPT_MISSING", ( 0x87C5103A )) +UTC_E_SCENARIO_THROTTLED = make_flag("UTC_E_SCENARIO_THROTTLED", ( 0x87C5103B )) +UTC_E_API_NOT_SUPPORTED = make_flag("UTC_E_API_NOT_SUPPORTED", ( 0x87C5103C )) +UTC_E_GETFILE_EXTERNAL_PATH_NOT_APPROVED = make_flag("UTC_E_GETFILE_EXTERNAL_PATH_NOT_APPROVED", ( 0x87C5103D )) +UTC_E_TRY_GET_SCENARIO_TIMEOUT_EXCEEDED = make_flag("UTC_E_TRY_GET_SCENARIO_TIMEOUT_EXCEEDED", ( 0x87C5103E )) +UTC_E_CERT_REV_FAILED = make_flag("UTC_E_CERT_REV_FAILED", ( 0x87C5103F )) +UTC_E_FAILED_TO_START_NDISCAP = make_flag("UTC_E_FAILED_TO_START_NDISCAP", ( 0x87C51040 )) +UTC_E_KERNELDUMP_LIMIT_REACHED = make_flag("UTC_E_KERNELDUMP_LIMIT_REACHED", ( 0x87C51041 )) +UTC_E_MISSING_AGGREGATE_EVENT_TAG = make_flag("UTC_E_MISSING_AGGREGATE_EVENT_TAG", ( 0x87C51042 )) +UTC_E_INVALID_AGGREGATION_STRUCT = make_flag("UTC_E_INVALID_AGGREGATION_STRUCT", ( 0x87C51043 )) +UTC_E_ACTION_NOT_SUPPORTED_IN_DESTINATION = make_flag("UTC_E_ACTION_NOT_SUPPORTED_IN_DESTINATION", ( 0x87C51044 )) +UTC_E_FILTER_MISSING_ATTRIBUTE = make_flag("UTC_E_FILTER_MISSING_ATTRIBUTE", ( 0x87C51045 )) +UTC_E_FILTER_INVALID_TYPE = make_flag("UTC_E_FILTER_INVALID_TYPE", ( 0x87C51046 )) +UTC_E_FILTER_VARIABLE_NOT_FOUND = make_flag("UTC_E_FILTER_VARIABLE_NOT_FOUND", ( 0x87C51047 )) +UTC_E_FILTER_FUNCTION_RESTRICTED = make_flag("UTC_E_FILTER_FUNCTION_RESTRICTED", ( 0x87C51048 )) +UTC_E_FILTER_VERSION_MISMATCH = make_flag("UTC_E_FILTER_VERSION_MISMATCH", ( 0x87C51049 )) +UTC_E_FILTER_INVALID_FUNCTION = make_flag("UTC_E_FILTER_INVALID_FUNCTION", ( 0x87C51050 )) +UTC_E_FILTER_INVALID_FUNCTION_PARAMS = make_flag("UTC_E_FILTER_INVALID_FUNCTION_PARAMS", ( 0x87C51051 )) +UTC_E_FILTER_INVALID_COMMAND = make_flag("UTC_E_FILTER_INVALID_COMMAND", ( 0x87C51052 )) +UTC_E_FILTER_ILLEGAL_EVAL = make_flag("UTC_E_FILTER_ILLEGAL_EVAL", ( 0x87C51053 )) +UTC_E_TTTRACER_RETURNED_ERROR = make_flag("UTC_E_TTTRACER_RETURNED_ERROR", ( 0x87C51054 )) +UTC_E_AGENT_DIAGNOSTICS_TOO_LARGE = make_flag("UTC_E_AGENT_DIAGNOSTICS_TOO_LARGE", ( 0x87C51055 )) +UTC_E_FAILED_TO_RECEIVE_AGENT_DIAGNOSTICS = make_flag("UTC_E_FAILED_TO_RECEIVE_AGENT_DIAGNOSTICS", ( 0x87C51056 )) +UTC_E_SCENARIO_HAS_NO_ACTIONS = make_flag("UTC_E_SCENARIO_HAS_NO_ACTIONS", ( 0x87C51057 )) +UTC_E_TTTRACER_STORAGE_FULL = make_flag("UTC_E_TTTRACER_STORAGE_FULL", ( 0x87C51058 )) +UTC_E_INSUFFICIENT_SPACE_TO_START_TRACE = make_flag("UTC_E_INSUFFICIENT_SPACE_TO_START_TRACE", ( 0x87C51059 )) +UTC_E_ESCALATION_CANCELLED_AT_SHUTDOWN = make_flag("UTC_E_ESCALATION_CANCELLED_AT_SHUTDOWN", ( 0x87C5105A )) +UTC_E_GETFILEINFOACTION_FILE_NOT_APPROVED = make_flag("UTC_E_GETFILEINFOACTION_FILE_NOT_APPROVED", ( 0x87C5105B )) +UTC_E_SETREGKEYACTION_TYPE_NOT_APPROVED = make_flag("UTC_E_SETREGKEYACTION_TYPE_NOT_APPROVED", ( 0x87C5105C )) +WINML_ERR_INVALID_DEVICE = make_flag("WINML_ERR_INVALID_DEVICE", ( 0x88900001 )) +WINML_ERR_INVALID_BINDING = make_flag("WINML_ERR_INVALID_BINDING", ( 0x88900002 )) +WINML_ERR_VALUE_NOTFOUND = make_flag("WINML_ERR_VALUE_NOTFOUND", ( 0x88900003 )) +WINML_ERR_SIZE_MISMATCH = make_flag("WINML_ERR_SIZE_MISMATCH", ( 0x88900004 )) diff --git a/pythonmemorymodule/windows/generated_def/winfuncs.py b/pythonmemorymodule/windows/generated_def/winfuncs.py new file mode 100644 index 0000000..a9f4420 --- /dev/null +++ b/pythonmemorymodule/windows/generated_def/winfuncs.py @@ -0,0 +1,4137 @@ +from .interfaces import * +from .winstructs import * +#def ObjectFromLresult(lResult, riid, wParam, ppvObject): +# return ObjectFromLresult.ctypes_function(lResult, riid, wParam, ppvObject) +ObjectFromLresultPrototype = WINFUNCTYPE(HRESULT, LRESULT, REFIID, WPARAM, POINTER(PVOID)) +ObjectFromLresultParams = ((1, 'lResult'), (1, 'riid'), (1, 'wParam'), (1, 'ppvObject')) + +#def NtAlpcCreatePort(PortHandle, ObjectAttributes, PortAttributes): +# return NtAlpcCreatePort.ctypes_function(PortHandle, ObjectAttributes, PortAttributes) +NtAlpcCreatePortPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, POBJECT_ATTRIBUTES, PALPC_PORT_ATTRIBUTES) +NtAlpcCreatePortParams = ((1, 'PortHandle'), (1, 'ObjectAttributes'), (1, 'PortAttributes')) + +#def NtAlpcQueryInformation(PortHandle, PortInformationClass, PortInformation, Length, ReturnLength): +# return NtAlpcQueryInformation.ctypes_function(PortHandle, PortInformationClass, PortInformation, Length, ReturnLength) +NtAlpcQueryInformationPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, ALPC_PORT_INFORMATION_CLASS, PVOID, ULONG, PULONG) +NtAlpcQueryInformationParams = ((1, 'PortHandle'), (1, 'PortInformationClass'), (1, 'PortInformation'), (1, 'Length'), (1, 'ReturnLength')) + +#def NtAlpcQueryInformationMessage(PortHandle, PortMessage, MessageInformationClass, MessageInformation, Length, ReturnLength): +# return NtAlpcQueryInformationMessage.ctypes_function(PortHandle, PortMessage, MessageInformationClass, MessageInformation, Length, ReturnLength) +NtAlpcQueryInformationMessagePrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PPORT_MESSAGE, ALPC_MESSAGE_INFORMATION_CLASS, PVOID, ULONG, PULONG) +NtAlpcQueryInformationMessageParams = ((1, 'PortHandle'), (1, 'PortMessage'), (1, 'MessageInformationClass'), (1, 'MessageInformation'), (1, 'Length'), (1, 'ReturnLength')) + +#def NtConnectPort(PortHandle, PortName, SecurityQos, ClientView, ServerView, MaxMessageLength, ConnectionInformation, ConnectionInformationLength): +# return NtConnectPort.ctypes_function(PortHandle, PortName, SecurityQos, ClientView, ServerView, MaxMessageLength, ConnectionInformation, ConnectionInformationLength) +NtConnectPortPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, PUNICODE_STRING, PSECURITY_QUALITY_OF_SERVICE, PPORT_VIEW, PREMOTE_PORT_VIEW, PULONG, PVOID, PULONG) +NtConnectPortParams = ((1, 'PortHandle'), (1, 'PortName'), (1, 'SecurityQos'), (1, 'ClientView'), (1, 'ServerView'), (1, 'MaxMessageLength'), (1, 'ConnectionInformation'), (1, 'ConnectionInformationLength')) + +#def NtAlpcConnectPort(PortHandle, PortName, ObjectAttributes, PortAttributes, Flags, RequiredServerSid, ConnectionMessage, BufferLength, OutMessageAttributes, InMessageAttributes, Timeout): +# return NtAlpcConnectPort.ctypes_function(PortHandle, PortName, ObjectAttributes, PortAttributes, Flags, RequiredServerSid, ConnectionMessage, BufferLength, OutMessageAttributes, InMessageAttributes, Timeout) +NtAlpcConnectPortPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, PUNICODE_STRING, POBJECT_ATTRIBUTES, PALPC_PORT_ATTRIBUTES, ULONG, PSID, PPORT_MESSAGE, PULONG, PALPC_MESSAGE_ATTRIBUTES, PALPC_MESSAGE_ATTRIBUTES, PLARGE_INTEGER) +NtAlpcConnectPortParams = ((1, 'PortHandle'), (1, 'PortName'), (1, 'ObjectAttributes'), (1, 'PortAttributes'), (1, 'Flags'), (1, 'RequiredServerSid'), (1, 'ConnectionMessage'), (1, 'BufferLength'), (1, 'OutMessageAttributes'), (1, 'InMessageAttributes'), (1, 'Timeout')) + +#def NtAlpcConnectPortEx(PortHandle, ConnectionPortObjectAttributes, ClientPortObjectAttributes, PortAttributes, Flags, ServerSecurityRequirements, ConnectionMessage, BufferLength, OutMessageAttributes, InMessageAttributes, Timeout): +# return NtAlpcConnectPortEx.ctypes_function(PortHandle, ConnectionPortObjectAttributes, ClientPortObjectAttributes, PortAttributes, Flags, ServerSecurityRequirements, ConnectionMessage, BufferLength, OutMessageAttributes, InMessageAttributes, Timeout) +NtAlpcConnectPortExPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, POBJECT_ATTRIBUTES, POBJECT_ATTRIBUTES, PALPC_PORT_ATTRIBUTES, ULONG, PSECURITY_DESCRIPTOR, PPORT_MESSAGE, PSIZE_T, PALPC_MESSAGE_ATTRIBUTES, PALPC_MESSAGE_ATTRIBUTES, PLARGE_INTEGER) +NtAlpcConnectPortExParams = ((1, 'PortHandle'), (1, 'ConnectionPortObjectAttributes'), (1, 'ClientPortObjectAttributes'), (1, 'PortAttributes'), (1, 'Flags'), (1, 'ServerSecurityRequirements'), (1, 'ConnectionMessage'), (1, 'BufferLength'), (1, 'OutMessageAttributes'), (1, 'InMessageAttributes'), (1, 'Timeout')) + +#def NtAlpcAcceptConnectPort(PortHandle, ConnectionPortHandle, Flags, ObjectAttributes, PortAttributes, PortContext, ConnectionRequest, ConnectionMessageAttributes, AcceptConnection): +# return NtAlpcAcceptConnectPort.ctypes_function(PortHandle, ConnectionPortHandle, Flags, ObjectAttributes, PortAttributes, PortContext, ConnectionRequest, ConnectionMessageAttributes, AcceptConnection) +NtAlpcAcceptConnectPortPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, HANDLE, ULONG, POBJECT_ATTRIBUTES, PALPC_PORT_ATTRIBUTES, PVOID, PPORT_MESSAGE, PALPC_MESSAGE_ATTRIBUTES, BOOLEAN) +NtAlpcAcceptConnectPortParams = ((1, 'PortHandle'), (1, 'ConnectionPortHandle'), (1, 'Flags'), (1, 'ObjectAttributes'), (1, 'PortAttributes'), (1, 'PortContext'), (1, 'ConnectionRequest'), (1, 'ConnectionMessageAttributes'), (1, 'AcceptConnection')) + +#def AlpcInitializeMessageAttribute(AttributeFlags, Buffer, BufferSize, RequiredBufferSize): +# return AlpcInitializeMessageAttribute.ctypes_function(AttributeFlags, Buffer, BufferSize, RequiredBufferSize) +AlpcInitializeMessageAttributePrototype = WINFUNCTYPE(NTSTATUS, ULONG, PALPC_MESSAGE_ATTRIBUTES, ULONG, PULONG) +AlpcInitializeMessageAttributeParams = ((1, 'AttributeFlags'), (1, 'Buffer'), (1, 'BufferSize'), (1, 'RequiredBufferSize')) + +#def AlpcGetMessageAttribute(Buffer, AttributeFlag): +# return AlpcGetMessageAttribute.ctypes_function(Buffer, AttributeFlag) +AlpcGetMessageAttributePrototype = WINFUNCTYPE(PVOID, PALPC_MESSAGE_ATTRIBUTES, ULONG) +AlpcGetMessageAttributeParams = ((1, 'Buffer'), (1, 'AttributeFlag')) + +#def NtAlpcSendWaitReceivePort(PortHandle, Flags, SendMessage, SendMessageAttributes, ReceiveMessage, BufferLength, ReceiveMessageAttributes, Timeout): +# return NtAlpcSendWaitReceivePort.ctypes_function(PortHandle, Flags, SendMessage, SendMessageAttributes, ReceiveMessage, BufferLength, ReceiveMessageAttributes, Timeout) +NtAlpcSendWaitReceivePortPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG, PPORT_MESSAGE, PALPC_MESSAGE_ATTRIBUTES, PPORT_MESSAGE, PSIZE_T, PALPC_MESSAGE_ATTRIBUTES, PLARGE_INTEGER) +NtAlpcSendWaitReceivePortParams = ((1, 'PortHandle'), (1, 'Flags'), (1, 'SendMessage'), (1, 'SendMessageAttributes'), (1, 'ReceiveMessage'), (1, 'BufferLength'), (1, 'ReceiveMessageAttributes'), (1, 'Timeout')) + +#def NtAlpcDisconnectPort(PortHandle, Flags): +# return NtAlpcDisconnectPort.ctypes_function(PortHandle, Flags) +NtAlpcDisconnectPortPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG) +NtAlpcDisconnectPortParams = ((1, 'PortHandle'), (1, 'Flags')) + +#def NtAlpcCreatePortSection(PortHandle, Flags, SectionHandle, SectionSize, AlpcSectionHandle, ActualSectionSize): +# return NtAlpcCreatePortSection.ctypes_function(PortHandle, Flags, SectionHandle, SectionSize, AlpcSectionHandle, ActualSectionSize) +NtAlpcCreatePortSectionPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG, HANDLE, SIZE_T, PALPC_HANDLE, PSIZE_T) +NtAlpcCreatePortSectionParams = ((1, 'PortHandle'), (1, 'Flags'), (1, 'SectionHandle'), (1, 'SectionSize'), (1, 'AlpcSectionHandle'), (1, 'ActualSectionSize')) + +#def NtAlpcDeletePortSection(PortHandle, Flags, SectionHandle): +# return NtAlpcDeletePortSection.ctypes_function(PortHandle, Flags, SectionHandle) +NtAlpcDeletePortSectionPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG, ALPC_HANDLE) +NtAlpcDeletePortSectionParams = ((1, 'PortHandle'), (1, 'Flags'), (1, 'SectionHandle')) + +#def NtAlpcCreateResourceReserve(PortHandle, Flags, MessageSize, ResourceId): +# return NtAlpcCreateResourceReserve.ctypes_function(PortHandle, Flags, MessageSize, ResourceId) +NtAlpcCreateResourceReservePrototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG, SIZE_T, PALPC_HANDLE) +NtAlpcCreateResourceReserveParams = ((1, 'PortHandle'), (1, 'Flags'), (1, 'MessageSize'), (1, 'ResourceId')) + +#def NtAlpcDeleteResourceReserve(PortHandle, Flags, ResourceId): +# return NtAlpcDeleteResourceReserve.ctypes_function(PortHandle, Flags, ResourceId) +NtAlpcDeleteResourceReservePrototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG, ALPC_HANDLE) +NtAlpcDeleteResourceReserveParams = ((1, 'PortHandle'), (1, 'Flags'), (1, 'ResourceId')) + +#def NtAlpcCreateSectionView(PortHandle, Flags, ViewAttributes): +# return NtAlpcCreateSectionView.ctypes_function(PortHandle, Flags, ViewAttributes) +NtAlpcCreateSectionViewPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG, PALPC_DATA_VIEW_ATTR) +NtAlpcCreateSectionViewParams = ((1, 'PortHandle'), (1, 'Flags'), (1, 'ViewAttributes')) + +#def NtAlpcDeleteSectionView(PortHandle, Flags, ViewBase): +# return NtAlpcDeleteSectionView.ctypes_function(PortHandle, Flags, ViewBase) +NtAlpcDeleteSectionViewPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG, PVOID) +NtAlpcDeleteSectionViewParams = ((1, 'PortHandle'), (1, 'Flags'), (1, 'ViewBase')) + +#def NtAlpcCreateSecurityContext(PortHandle, Flags, SecurityAttribute): +# return NtAlpcCreateSecurityContext.ctypes_function(PortHandle, Flags, SecurityAttribute) +NtAlpcCreateSecurityContextPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG, PALPC_SECURITY_ATTR) +NtAlpcCreateSecurityContextParams = ((1, 'PortHandle'), (1, 'Flags'), (1, 'SecurityAttribute')) + +#def NtAlpcDeleteSecurityContext(PortHandle, Flags, ContextHandle): +# return NtAlpcDeleteSecurityContext.ctypes_function(PortHandle, Flags, ContextHandle) +NtAlpcDeleteSecurityContextPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG, ALPC_HANDLE) +NtAlpcDeleteSecurityContextParams = ((1, 'PortHandle'), (1, 'Flags'), (1, 'ContextHandle')) + +#def NtAlpcRevokeSecurityContext(PortHandle, Flags, ContextHandle): +# return NtAlpcRevokeSecurityContext.ctypes_function(PortHandle, Flags, ContextHandle) +NtAlpcRevokeSecurityContextPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG, ALPC_HANDLE) +NtAlpcRevokeSecurityContextParams = ((1, 'PortHandle'), (1, 'Flags'), (1, 'ContextHandle')) + +#def NtAlpcImpersonateClientOfPort(PortHandle, Message, Flags): +# return NtAlpcImpersonateClientOfPort.ctypes_function(PortHandle, Message, Flags) +NtAlpcImpersonateClientOfPortPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PPORT_MESSAGE, PVOID) +NtAlpcImpersonateClientOfPortParams = ((1, 'PortHandle'), (1, 'Message'), (1, 'Flags')) + +#def TpCallbackSendAlpcMessageOnCompletion(TpHandle, PortHandle, Flags, SendMessage): +# return TpCallbackSendAlpcMessageOnCompletion.ctypes_function(TpHandle, PortHandle, Flags, SendMessage) +TpCallbackSendAlpcMessageOnCompletionPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, HANDLE, ULONG, PPORT_MESSAGE) +TpCallbackSendAlpcMessageOnCompletionParams = ((1, 'TpHandle'), (1, 'PortHandle'), (1, 'Flags'), (1, 'SendMessage')) + +#def AddAtomA(lpString): +# return AddAtomA.ctypes_function(lpString) +AddAtomAPrototype = WINFUNCTYPE(ATOM, LPCSTR) +AddAtomAParams = ((1, 'lpString'),) + +#def AddAtomW(lpString): +# return AddAtomW.ctypes_function(lpString) +AddAtomWPrototype = WINFUNCTYPE(ATOM, LPCWSTR) +AddAtomWParams = ((1, 'lpString'),) + +#def GlobalAddAtomA(lpString): +# return GlobalAddAtomA.ctypes_function(lpString) +GlobalAddAtomAPrototype = WINFUNCTYPE(ATOM, LPCSTR) +GlobalAddAtomAParams = ((1, 'lpString'),) + +#def GlobalAddAtomExA(lpString, Flags): +# return GlobalAddAtomExA.ctypes_function(lpString, Flags) +GlobalAddAtomExAPrototype = WINFUNCTYPE(ATOM, LPCSTR, DWORD) +GlobalAddAtomExAParams = ((1, 'lpString'), (1, 'Flags')) + +#def GlobalAddAtomExW(lpString, Flags): +# return GlobalAddAtomExW.ctypes_function(lpString, Flags) +GlobalAddAtomExWPrototype = WINFUNCTYPE(ATOM, LPCWSTR, DWORD) +GlobalAddAtomExWParams = ((1, 'lpString'), (1, 'Flags')) + +#def GlobalAddAtomW(lpString): +# return GlobalAddAtomW.ctypes_function(lpString) +GlobalAddAtomWPrototype = WINFUNCTYPE(ATOM, LPCWSTR) +GlobalAddAtomWParams = ((1, 'lpString'),) + +#def GlobalDeleteAtom(nAtom): +# return GlobalDeleteAtom.ctypes_function(nAtom) +GlobalDeleteAtomPrototype = WINFUNCTYPE(ATOM, ATOM) +GlobalDeleteAtomParams = ((1, 'nAtom'),) + +#def GlobalGetAtomNameA(nAtom, lpBuffer, nSize): +# return GlobalGetAtomNameA.ctypes_function(nAtom, lpBuffer, nSize) +GlobalGetAtomNameAPrototype = WINFUNCTYPE(UINT, ATOM, LPSTR, INT) +GlobalGetAtomNameAParams = ((1, 'nAtom'), (1, 'lpBuffer'), (1, 'nSize')) + +#def GlobalGetAtomNameW(nAtom, lpBuffer, nSize): +# return GlobalGetAtomNameW.ctypes_function(nAtom, lpBuffer, nSize) +GlobalGetAtomNameWPrototype = WINFUNCTYPE(UINT, ATOM, LPWSTR, INT) +GlobalGetAtomNameWParams = ((1, 'nAtom'), (1, 'lpBuffer'), (1, 'nSize')) + +#def CM_Enumerate_Classes(ulClassIndex, ClassGuid, ulFlags): +# return CM_Enumerate_Classes.ctypes_function(ulClassIndex, ClassGuid, ulFlags) +CM_Enumerate_ClassesPrototype = WINFUNCTYPE(CONFIGRET, ULONG, LPGUID, ULONG) +CM_Enumerate_ClassesParams = ((1, 'ulClassIndex'), (1, 'ClassGuid'), (1, 'ulFlags')) + +#def CM_Enumerate_Classes_Ex(ulClassIndex, ClassGuid, ulFlags, hMachine): +# return CM_Enumerate_Classes_Ex.ctypes_function(ulClassIndex, ClassGuid, ulFlags, hMachine) +CM_Enumerate_Classes_ExPrototype = WINFUNCTYPE(CONFIGRET, ULONG, LPGUID, ULONG, HMACHINE) +CM_Enumerate_Classes_ExParams = ((1, 'ulClassIndex'), (1, 'ClassGuid'), (1, 'ulFlags'), (1, 'hMachine')) + +#def CM_Get_First_Log_Conf(plcLogConf, dnDevInst, ulFlags): +# return CM_Get_First_Log_Conf.ctypes_function(plcLogConf, dnDevInst, ulFlags) +CM_Get_First_Log_ConfPrototype = WINFUNCTYPE(CONFIGRET, PLOG_CONF, DEVINST, ULONG) +CM_Get_First_Log_ConfParams = ((1, 'plcLogConf'), (1, 'dnDevInst'), (1, 'ulFlags')) + +#def CM_Get_First_Log_Conf_Ex(plcLogConf, dnDevInst, ulFlags, hMachine): +# return CM_Get_First_Log_Conf_Ex.ctypes_function(plcLogConf, dnDevInst, ulFlags, hMachine) +CM_Get_First_Log_Conf_ExPrototype = WINFUNCTYPE(CONFIGRET, PLOG_CONF, DEVINST, ULONG, HMACHINE) +CM_Get_First_Log_Conf_ExParams = ((1, 'plcLogConf'), (1, 'dnDevInst'), (1, 'ulFlags'), (1, 'hMachine')) + +#def CM_Get_Log_Conf_Priority(lcLogConf, pPriority, ulFlags): +# return CM_Get_Log_Conf_Priority.ctypes_function(lcLogConf, pPriority, ulFlags) +CM_Get_Log_Conf_PriorityPrototype = WINFUNCTYPE(CONFIGRET, LOG_CONF, PPRIORITY, ULONG) +CM_Get_Log_Conf_PriorityParams = ((1, 'lcLogConf'), (1, 'pPriority'), (1, 'ulFlags')) + +#def CM_Get_Log_Conf_Priority_Ex(lcLogConf, pPriority, ulFlags, hMachine): +# return CM_Get_Log_Conf_Priority_Ex.ctypes_function(lcLogConf, pPriority, ulFlags, hMachine) +CM_Get_Log_Conf_Priority_ExPrototype = WINFUNCTYPE(CONFIGRET, LOG_CONF, PPRIORITY, ULONG, HMACHINE) +CM_Get_Log_Conf_Priority_ExParams = ((1, 'lcLogConf'), (1, 'pPriority'), (1, 'ulFlags'), (1, 'hMachine')) + +#def CM_Get_Next_Log_Conf(plcLogConf, lcLogConf, ulFlags): +# return CM_Get_Next_Log_Conf.ctypes_function(plcLogConf, lcLogConf, ulFlags) +CM_Get_Next_Log_ConfPrototype = WINFUNCTYPE(CONFIGRET, PLOG_CONF, LOG_CONF, ULONG) +CM_Get_Next_Log_ConfParams = ((1, 'plcLogConf'), (1, 'lcLogConf'), (1, 'ulFlags')) + +#def CM_Get_Next_Log_Conf_Ex(plcLogConf, lcLogConf, ulFlags, hMachine): +# return CM_Get_Next_Log_Conf_Ex.ctypes_function(plcLogConf, lcLogConf, ulFlags, hMachine) +CM_Get_Next_Log_Conf_ExPrototype = WINFUNCTYPE(CONFIGRET, PLOG_CONF, LOG_CONF, ULONG, HMACHINE) +CM_Get_Next_Log_Conf_ExParams = ((1, 'plcLogConf'), (1, 'lcLogConf'), (1, 'ulFlags'), (1, 'hMachine')) + +#def CM_Free_Res_Des_Handle(rdResDes): +# return CM_Free_Res_Des_Handle.ctypes_function(rdResDes) +CM_Free_Res_Des_HandlePrototype = WINFUNCTYPE(CONFIGRET, RES_DES) +CM_Free_Res_Des_HandleParams = ((1, 'rdResDes'),) + +#def CM_Get_Child(pdnDevInst, dnDevInst, ulFlags): +# return CM_Get_Child.ctypes_function(pdnDevInst, dnDevInst, ulFlags) +CM_Get_ChildPrototype = WINFUNCTYPE(CONFIGRET, PDEVINST, DEVINST, ULONG) +CM_Get_ChildParams = ((1, 'pdnDevInst'), (1, 'dnDevInst'), (1, 'ulFlags')) + +#def CM_Get_Child_Ex(pdnDevInst, dnDevInst, ulFlags, hMachine): +# return CM_Get_Child_Ex.ctypes_function(pdnDevInst, dnDevInst, ulFlags, hMachine) +CM_Get_Child_ExPrototype = WINFUNCTYPE(CONFIGRET, PDEVINST, DEVINST, ULONG, HMACHINE) +CM_Get_Child_ExParams = ((1, 'pdnDevInst'), (1, 'dnDevInst'), (1, 'ulFlags'), (1, 'hMachine')) + +#def CM_Get_Next_Res_Des(prdResDes, rdResDes, ForResource, pResourceID, ulFlags): +# return CM_Get_Next_Res_Des.ctypes_function(prdResDes, rdResDes, ForResource, pResourceID, ulFlags) +CM_Get_Next_Res_DesPrototype = WINFUNCTYPE(CONFIGRET, PRES_DES, RES_DES, RESOURCEID, PRESOURCEID, ULONG) +CM_Get_Next_Res_DesParams = ((1, 'prdResDes'), (1, 'rdResDes'), (1, 'ForResource'), (1, 'pResourceID'), (1, 'ulFlags')) + +#def CM_Get_Parent(pdnDevInst, dnDevInst, ulFlags): +# return CM_Get_Parent.ctypes_function(pdnDevInst, dnDevInst, ulFlags) +CM_Get_ParentPrototype = WINFUNCTYPE(CONFIGRET, PDEVINST, DEVINST, ULONG) +CM_Get_ParentParams = ((1, 'pdnDevInst'), (1, 'dnDevInst'), (1, 'ulFlags')) + +#def CM_Get_Parent_Ex(pdnDevInst, dnDevInst, ulFlags, hMachine): +# return CM_Get_Parent_Ex.ctypes_function(pdnDevInst, dnDevInst, ulFlags, hMachine) +CM_Get_Parent_ExPrototype = WINFUNCTYPE(CONFIGRET, PDEVINST, DEVINST, ULONG, HMACHINE) +CM_Get_Parent_ExParams = ((1, 'pdnDevInst'), (1, 'dnDevInst'), (1, 'ulFlags'), (1, 'hMachine')) + +#def CM_Get_Res_Des_Data(rdResDes, Buffer, BufferLen, ulFlags): +# return CM_Get_Res_Des_Data.ctypes_function(rdResDes, Buffer, BufferLen, ulFlags) +CM_Get_Res_Des_DataPrototype = WINFUNCTYPE(CONFIGRET, RES_DES, PVOID, ULONG, ULONG) +CM_Get_Res_Des_DataParams = ((1, 'rdResDes'), (1, 'Buffer'), (1, 'BufferLen'), (1, 'ulFlags')) + +#def CM_Get_Next_Res_Des_Ex(prdResDes, rdResDes, ForResource, pResourceID, ulFlags, hMachine): +# return CM_Get_Next_Res_Des_Ex.ctypes_function(prdResDes, rdResDes, ForResource, pResourceID, ulFlags, hMachine) +CM_Get_Next_Res_Des_ExPrototype = WINFUNCTYPE(CONFIGRET, PRES_DES, RES_DES, RESOURCEID, PRESOURCEID, ULONG, HMACHINE) +CM_Get_Next_Res_Des_ExParams = ((1, 'prdResDes'), (1, 'rdResDes'), (1, 'ForResource'), (1, 'pResourceID'), (1, 'ulFlags'), (1, 'hMachine')) + +#def CM_Get_Res_Des_Data_Size(pulSize, rdResDes, ulFlags): +# return CM_Get_Res_Des_Data_Size.ctypes_function(pulSize, rdResDes, ulFlags) +CM_Get_Res_Des_Data_SizePrototype = WINFUNCTYPE(CONFIGRET, PULONG, RES_DES, ULONG) +CM_Get_Res_Des_Data_SizeParams = ((1, 'pulSize'), (1, 'rdResDes'), (1, 'ulFlags')) + +#def CM_Get_Res_Des_Data_Size_Ex(pulSize, rdResDes, ulFlags, hMachine): +# return CM_Get_Res_Des_Data_Size_Ex.ctypes_function(pulSize, rdResDes, ulFlags, hMachine) +CM_Get_Res_Des_Data_Size_ExPrototype = WINFUNCTYPE(CONFIGRET, PULONG, RES_DES, ULONG, HMACHINE) +CM_Get_Res_Des_Data_Size_ExParams = ((1, 'pulSize'), (1, 'rdResDes'), (1, 'ulFlags'), (1, 'hMachine')) + +#def CM_Get_Sibling(pdnDevInst, dnDevInst, ulFlags): +# return CM_Get_Sibling.ctypes_function(pdnDevInst, dnDevInst, ulFlags) +CM_Get_SiblingPrototype = WINFUNCTYPE(CONFIGRET, PDEVINST, DEVINST, ULONG) +CM_Get_SiblingParams = ((1, 'pdnDevInst'), (1, 'dnDevInst'), (1, 'ulFlags')) + +#def CM_Get_Sibling_Ex(pdnDevInst, dnDevInst, ulFlags, hMachine): +# return CM_Get_Sibling_Ex.ctypes_function(pdnDevInst, dnDevInst, ulFlags, hMachine) +CM_Get_Sibling_ExPrototype = WINFUNCTYPE(CONFIGRET, PDEVINST, DEVINST, ULONG, HMACHINE) +CM_Get_Sibling_ExParams = ((1, 'pdnDevInst'), (1, 'dnDevInst'), (1, 'ulFlags'), (1, 'hMachine')) + +#def CM_Get_Version(): +# return CM_Get_Version.ctypes_function() +CM_Get_VersionPrototype = WINFUNCTYPE(WORD) +CM_Get_VersionParams = () + +#def CM_Get_Version_Ex(hMachine): +# return CM_Get_Version_Ex.ctypes_function(hMachine) +CM_Get_Version_ExPrototype = WINFUNCTYPE(WORD, HMACHINE) +CM_Get_Version_ExParams = ((1, 'hMachine'),) + +#def CM_Locate_DevNodeA(pdnDevInst, pDeviceID, ulFlags): +# return CM_Locate_DevNodeA.ctypes_function(pdnDevInst, pDeviceID, ulFlags) +CM_Locate_DevNodeAPrototype = WINFUNCTYPE(CONFIGRET, PDEVINST, DEVINSTID_A, ULONG) +CM_Locate_DevNodeAParams = ((1, 'pdnDevInst'), (1, 'pDeviceID'), (1, 'ulFlags')) + +#def CM_Locate_DevNodeW(pdnDevInst, pDeviceID, ulFlags): +# return CM_Locate_DevNodeW.ctypes_function(pdnDevInst, pDeviceID, ulFlags) +CM_Locate_DevNodeWPrototype = WINFUNCTYPE(CONFIGRET, PDEVINST, DEVINSTID_W, ULONG) +CM_Locate_DevNodeWParams = ((1, 'pdnDevInst'), (1, 'pDeviceID'), (1, 'ulFlags')) + +#def CM_Locate_DevNode_ExA(pdnDevInst, pDeviceID, ulFlags, hMachine): +# return CM_Locate_DevNode_ExA.ctypes_function(pdnDevInst, pDeviceID, ulFlags, hMachine) +CM_Locate_DevNode_ExAPrototype = WINFUNCTYPE(CONFIGRET, PDEVINST, DEVINSTID_A, ULONG, HMACHINE) +CM_Locate_DevNode_ExAParams = ((1, 'pdnDevInst'), (1, 'pDeviceID'), (1, 'ulFlags'), (1, 'hMachine')) + +#def CM_Locate_DevNode_ExW(pdnDevInst, pDeviceID, ulFlags, hMachine): +# return CM_Locate_DevNode_ExW.ctypes_function(pdnDevInst, pDeviceID, ulFlags, hMachine) +CM_Locate_DevNode_ExWPrototype = WINFUNCTYPE(CONFIGRET, PDEVINST, DEVINSTID_W, ULONG, HMACHINE) +CM_Locate_DevNode_ExWParams = ((1, 'pdnDevInst'), (1, 'pDeviceID'), (1, 'ulFlags'), (1, 'hMachine')) + +#def CoInitializeEx(pvReserved, dwCoInit): +# return CoInitializeEx.ctypes_function(pvReserved, dwCoInit) +CoInitializeExPrototype = WINFUNCTYPE(HRESULT, LPVOID, DWORD) +CoInitializeExParams = ((1, 'pvReserved'), (1, 'dwCoInit')) + +#def CoInitializeSecurity(pSecDesc, cAuthSvc, asAuthSvc, pReserved1, dwAuthnLevel, dwImpLevel, pAuthList, dwCapabilities, pReserved3): +# return CoInitializeSecurity.ctypes_function(pSecDesc, cAuthSvc, asAuthSvc, pReserved1, dwAuthnLevel, dwImpLevel, pAuthList, dwCapabilities, pReserved3) +CoInitializeSecurityPrototype = WINFUNCTYPE(HRESULT, PSECURITY_DESCRIPTOR, LONG, POINTER(SOLE_AUTHENTICATION_SERVICE), PVOID, DWORD, DWORD, PVOID, DWORD, PVOID) +CoInitializeSecurityParams = ((1, 'pSecDesc'), (1, 'cAuthSvc'), (1, 'asAuthSvc'), (1, 'pReserved1'), (1, 'dwAuthnLevel'), (1, 'dwImpLevel'), (1, 'pAuthList'), (1, 'dwCapabilities'), (1, 'pReserved3')) + +#def CoCreateInstance(rclsid, pUnkOuter, dwClsContext, riid, ppv): +# return CoCreateInstance.ctypes_function(rclsid, pUnkOuter, dwClsContext, riid, ppv) +CoCreateInstancePrototype = WINFUNCTYPE(HRESULT, REFCLSID, LPUNKNOWN, DWORD, REFIID, POINTER(LPVOID)) +CoCreateInstanceParams = ((1, 'rclsid'), (1, 'pUnkOuter'), (1, 'dwClsContext'), (1, 'riid'), (1, 'ppv')) + +#def CoCreateInstanceEx(rclsid, punkOuter, dwClsCtx, pServerInfo, dwCount, pResults): +# return CoCreateInstanceEx.ctypes_function(rclsid, punkOuter, dwClsCtx, pServerInfo, dwCount, pResults) +CoCreateInstanceExPrototype = WINFUNCTYPE(HRESULT, REFCLSID, POINTER(IUnknown), DWORD, POINTER(COSERVERINFO), DWORD, POINTER(MULTI_QI)) +CoCreateInstanceExParams = ((1, 'rclsid'), (1, 'punkOuter'), (1, 'dwClsCtx'), (1, 'pServerInfo'), (1, 'dwCount'), (1, 'pResults')) + +#def CoGetClassObject(rclsid, dwClsContext, pvReserved, riid, ppv): +# return CoGetClassObject.ctypes_function(rclsid, dwClsContext, pvReserved, riid, ppv) +CoGetClassObjectPrototype = WINFUNCTYPE(HRESULT, REFCLSID, DWORD, LPVOID, REFIID, POINTER(LPVOID)) +CoGetClassObjectParams = ((1, 'rclsid'), (1, 'dwClsContext'), (1, 'pvReserved'), (1, 'riid'), (1, 'ppv')) + +#def CoGetInterceptor(iidIntercepted, punkOuter, iid, ppv): +# return CoGetInterceptor.ctypes_function(iidIntercepted, punkOuter, iid, ppv) +CoGetInterceptorPrototype = WINFUNCTYPE(HRESULT, REFIID, POINTER(IUnknown), REFIID, POINTER(PVOID)) +CoGetInterceptorParams = ((1, 'iidIntercepted'), (1, 'punkOuter'), (1, 'iid'), (1, 'ppv')) + +#def CLSIDFromProgID(lpszProgID, lpclsid): +# return CLSIDFromProgID.ctypes_function(lpszProgID, lpclsid) +CLSIDFromProgIDPrototype = WINFUNCTYPE(HRESULT, LPCOLESTR, LPCLSID) +CLSIDFromProgIDParams = ((1, 'lpszProgID'), (1, 'lpclsid')) + +#def CoTaskMemFree(pv): +# return CoTaskMemFree.ctypes_function(pv) +CoTaskMemFreePrototype = WINFUNCTYPE(PVOID, LPVOID) +CoTaskMemFreeParams = ((1, 'pv'),) + +#def SafeArrayCreate(vt, cDims, rgsabound): +# return SafeArrayCreate.ctypes_function(vt, cDims, rgsabound) +SafeArrayCreatePrototype = WINFUNCTYPE(LPSAFEARRAY, VARTYPE, UINT, POINTER(SAFEARRAYBOUND)) +SafeArrayCreateParams = ((1, 'vt'), (1, 'cDims'), (1, 'rgsabound')) + +#def SafeArrayCreateVector(vt, lLbound, cElements): +# return SafeArrayCreateVector.ctypes_function(vt, lLbound, cElements) +SafeArrayCreateVectorPrototype = WINFUNCTYPE(LPSAFEARRAY, VARTYPE, LONG, ULONG) +SafeArrayCreateVectorParams = ((1, 'vt'), (1, 'lLbound'), (1, 'cElements')) + +#def SafeArrayDestroy(psa): +# return SafeArrayDestroy.ctypes_function(psa) +SafeArrayDestroyPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY)) +SafeArrayDestroyParams = ((1, 'psa'),) + +#def SafeArrayDestroyData(psa): +# return SafeArrayDestroyData.ctypes_function(psa) +SafeArrayDestroyDataPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY)) +SafeArrayDestroyDataParams = ((1, 'psa'),) + +#def SafeArrayGetElement(psa, rgIndices, pv): +# return SafeArrayGetElement.ctypes_function(psa, rgIndices, pv) +SafeArrayGetElementPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), POINTER(LONG), PVOID) +SafeArrayGetElementParams = ((1, 'psa'), (1, 'rgIndices'), (1, 'pv')) + +#def SafeArrayGetElemsize(psa): +# return SafeArrayGetElemsize.ctypes_function(psa) +SafeArrayGetElemsizePrototype = WINFUNCTYPE(UINT, POINTER(SAFEARRAY)) +SafeArrayGetElemsizeParams = ((1, 'psa'),) + +#def SafeArrayGetLBound(psa, nDim, plLbound): +# return SafeArrayGetLBound.ctypes_function(psa, nDim, plLbound) +SafeArrayGetLBoundPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), UINT, POINTER(LONG)) +SafeArrayGetLBoundParams = ((1, 'psa'), (1, 'nDim'), (1, 'plLbound')) + +#def SafeArrayGetUBound(psa, nDim, plUbound): +# return SafeArrayGetUBound.ctypes_function(psa, nDim, plUbound) +SafeArrayGetUBoundPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), UINT, POINTER(LONG)) +SafeArrayGetUBoundParams = ((1, 'psa'), (1, 'nDim'), (1, 'plUbound')) + +#def SafeArrayGetDim(psa): +# return SafeArrayGetDim.ctypes_function(psa) +SafeArrayGetDimPrototype = WINFUNCTYPE(UINT, POINTER(SAFEARRAY)) +SafeArrayGetDimParams = ((1, 'psa'),) + +#def SafeArrayPutElement(psa, rgIndices, pv): +# return SafeArrayPutElement.ctypes_function(psa, rgIndices, pv) +SafeArrayPutElementPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), POINTER(LONG), PVOID) +SafeArrayPutElementParams = ((1, 'psa'), (1, 'rgIndices'), (1, 'pv')) + +#def SafeArrayGetVartype(psa, pvt): +# return SafeArrayGetVartype.ctypes_function(psa, pvt) +SafeArrayGetVartypePrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), POINTER(VARTYPE)) +SafeArrayGetVartypeParams = ((1, 'psa'), (1, 'pvt')) + +#def SysFreeString(bstrString): +# return SysFreeString.ctypes_function(bstrString) +SysFreeStringPrototype = WINFUNCTYPE(VOID, BSTR) +SysFreeStringParams = ((1, 'bstrString'),) + +#def SafeArrayCopy(psa, ppsaOut): +# return SafeArrayCopy.ctypes_function(psa, ppsaOut) +SafeArrayCopyPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), POINTER(LPSAFEARRAY)) +SafeArrayCopyParams = ((1, 'psa'), (1, 'ppsaOut')) + +#def SafeArrayCopyData(psaSource, psaTarget): +# return SafeArrayCopyData.ctypes_function(psaSource, psaTarget) +SafeArrayCopyDataPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), POINTER(SAFEARRAY)) +SafeArrayCopyDataParams = ((1, 'psaSource'), (1, 'psaTarget')) + +#def SysAllocString(psz): +# return SysAllocString.ctypes_function(psz) +SysAllocStringPrototype = WINFUNCTYPE(PVOID, POINTER(OLECHAR)) +SysAllocStringParams = ((1, 'psz'),) + +#def SysFreeString(bstrString): +# return SysFreeString.ctypes_function(bstrString) +SysFreeStringPrototype = WINFUNCTYPE(VOID, BSTR) +SysFreeStringParams = ((1, 'bstrString'),) + +#def CryptCATAdminCalcHashFromFileHandle(hFile, pcbHash, pbHash, dwFlags): +# return CryptCATAdminCalcHashFromFileHandle.ctypes_function(hFile, pcbHash, pbHash, dwFlags) +CryptCATAdminCalcHashFromFileHandlePrototype = WINFUNCTYPE(BOOL, HANDLE, POINTER(DWORD), POINTER(BYTE), DWORD) +CryptCATAdminCalcHashFromFileHandleParams = ((1, 'hFile'), (1, 'pcbHash'), (1, 'pbHash'), (1, 'dwFlags')) + +#def CryptCATAdminCalcHashFromFileHandle2(hCatAdmin, hFile, pcbHash, pbHash, dwFlags): +# return CryptCATAdminCalcHashFromFileHandle2.ctypes_function(hCatAdmin, hFile, pcbHash, pbHash, dwFlags) +CryptCATAdminCalcHashFromFileHandle2Prototype = WINFUNCTYPE(BOOL, HCATADMIN, HANDLE, POINTER(DWORD), POINTER(BYTE), DWORD) +CryptCATAdminCalcHashFromFileHandle2Params = ((1, 'hCatAdmin'), (1, 'hFile'), (1, 'pcbHash'), (1, 'pbHash'), (1, 'dwFlags')) + +#def CryptCATAdminEnumCatalogFromHash(hCatAdmin, pbHash, cbHash, dwFlags, phPrevCatInfo): +# return CryptCATAdminEnumCatalogFromHash.ctypes_function(hCatAdmin, pbHash, cbHash, dwFlags, phPrevCatInfo) +CryptCATAdminEnumCatalogFromHashPrototype = WINFUNCTYPE(HCATINFO, HCATADMIN, POINTER(BYTE), DWORD, DWORD, POINTER(HCATINFO)) +CryptCATAdminEnumCatalogFromHashParams = ((1, 'hCatAdmin'), (1, 'pbHash'), (1, 'cbHash'), (1, 'dwFlags'), (1, 'phPrevCatInfo')) + +#def CryptCATAdminAcquireContext(phCatAdmin, pgSubsystem, dwFlags): +# return CryptCATAdminAcquireContext.ctypes_function(phCatAdmin, pgSubsystem, dwFlags) +CryptCATAdminAcquireContextPrototype = WINFUNCTYPE(BOOL, POINTER(HCATADMIN), POINTER(GUID), DWORD) +CryptCATAdminAcquireContextParams = ((1, 'phCatAdmin'), (1, 'pgSubsystem'), (1, 'dwFlags')) + +#def CryptCATAdminAcquireContext2(phCatAdmin, pgSubsystem, pwszHashAlgorithm, pStrongHashPolicy, dwFlags): +# return CryptCATAdminAcquireContext2.ctypes_function(phCatAdmin, pgSubsystem, pwszHashAlgorithm, pStrongHashPolicy, dwFlags) +CryptCATAdminAcquireContext2Prototype = WINFUNCTYPE(BOOL, POINTER(HCATADMIN), POINTER(GUID), PCWSTR, PCCERT_STRONG_SIGN_PARA, DWORD) +CryptCATAdminAcquireContext2Params = ((1, 'phCatAdmin'), (1, 'pgSubsystem'), (1, 'pwszHashAlgorithm'), (1, 'pStrongHashPolicy'), (1, 'dwFlags')) + +#def CryptCATCatalogInfoFromContext(hCatInfo, psCatInfo, dwFlags): +# return CryptCATCatalogInfoFromContext.ctypes_function(hCatInfo, psCatInfo, dwFlags) +CryptCATCatalogInfoFromContextPrototype = WINFUNCTYPE(BOOL, HCATINFO, POINTER(CATALOG_INFO), DWORD) +CryptCATCatalogInfoFromContextParams = ((1, 'hCatInfo'), (1, 'psCatInfo'), (1, 'dwFlags')) + +#def CryptCATAdminReleaseCatalogContext(hCatAdmin, hCatInfo, dwFlags): +# return CryptCATAdminReleaseCatalogContext.ctypes_function(hCatAdmin, hCatInfo, dwFlags) +CryptCATAdminReleaseCatalogContextPrototype = WINFUNCTYPE(BOOL, HCATADMIN, HCATINFO, DWORD) +CryptCATAdminReleaseCatalogContextParams = ((1, 'hCatAdmin'), (1, 'hCatInfo'), (1, 'dwFlags')) + +#def CryptCATAdminReleaseContext(hCatAdmin, dwFlags): +# return CryptCATAdminReleaseContext.ctypes_function(hCatAdmin, dwFlags) +CryptCATAdminReleaseContextPrototype = WINFUNCTYPE(BOOL, HCATADMIN, DWORD) +CryptCATAdminReleaseContextParams = ((1, 'hCatAdmin'), (1, 'dwFlags')) + +#def CryptCATGetAttrInfo(hCatalog, pCatMember, pwszReferenceTag): +# return CryptCATGetAttrInfo.ctypes_function(hCatalog, pCatMember, pwszReferenceTag) +CryptCATGetAttrInfoPrototype = WINFUNCTYPE(POINTER(CRYPTCATATTRIBUTE), HANDLE, POINTER(CRYPTCATMEMBER), LPWSTR) +CryptCATGetAttrInfoParams = ((1, 'hCatalog'), (1, 'pCatMember'), (1, 'pwszReferenceTag')) + +#def CryptCATGetMemberInfo(hCatalog, pwszReferenceTag): +# return CryptCATGetMemberInfo.ctypes_function(hCatalog, pwszReferenceTag) +CryptCATGetMemberInfoPrototype = WINFUNCTYPE(POINTER(CRYPTCATMEMBER), HANDLE, LPWSTR) +CryptCATGetMemberInfoParams = ((1, 'hCatalog'), (1, 'pwszReferenceTag')) + +#def CryptCATGetAttrInfo(hCatalog, pCatMember, pwszReferenceTag): +# return CryptCATGetAttrInfo.ctypes_function(hCatalog, pCatMember, pwszReferenceTag) +CryptCATGetAttrInfoPrototype = WINFUNCTYPE(POINTER(CRYPTCATATTRIBUTE), HANDLE, POINTER(CRYPTCATMEMBER), LPWSTR) +CryptCATGetAttrInfoParams = ((1, 'hCatalog'), (1, 'pCatMember'), (1, 'pwszReferenceTag')) + +#def CryptCATEnumerateCatAttr(hCatalog, pPrevAttr): +# return CryptCATEnumerateCatAttr.ctypes_function(hCatalog, pPrevAttr) +CryptCATEnumerateCatAttrPrototype = WINFUNCTYPE(POINTER(CRYPTCATATTRIBUTE), HANDLE, POINTER(CRYPTCATATTRIBUTE)) +CryptCATEnumerateCatAttrParams = ((1, 'hCatalog'), (1, 'pPrevAttr')) + +#def CryptCATEnumerateAttr(hCatalog, pCatMember, pPrevAttr): +# return CryptCATEnumerateAttr.ctypes_function(hCatalog, pCatMember, pPrevAttr) +CryptCATEnumerateAttrPrototype = WINFUNCTYPE(POINTER(CRYPTCATATTRIBUTE), HANDLE, POINTER(CRYPTCATMEMBER), POINTER(CRYPTCATATTRIBUTE)) +CryptCATEnumerateAttrParams = ((1, 'hCatalog'), (1, 'pCatMember'), (1, 'pPrevAttr')) + +#def CryptCATEnumerateMember(hCatalog, pPrevMember): +# return CryptCATEnumerateMember.ctypes_function(hCatalog, pPrevMember) +CryptCATEnumerateMemberPrototype = WINFUNCTYPE(POINTER(CRYPTCATMEMBER), HANDLE, POINTER(CRYPTCATMEMBER)) +CryptCATEnumerateMemberParams = ((1, 'hCatalog'), (1, 'pPrevMember')) + +#def CryptQueryObject(dwObjectType, pvObject, dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags, dwFlags, pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType, phCertStore, phMsg, ppvContext): +# return CryptQueryObject.ctypes_function(dwObjectType, pvObject, dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags, dwFlags, pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType, phCertStore, phMsg, ppvContext) +CryptQueryObjectPrototype = WINFUNCTYPE(BOOL, DWORD, PVOID, DWORD, DWORD, DWORD, POINTER(DWORD), POINTER(DWORD), POINTER(DWORD), POINTER(HCERTSTORE), POINTER(HCRYPTMSG), POINTER(PVOID)) +CryptQueryObjectParams = ((1, 'dwObjectType'), (1, 'pvObject'), (1, 'dwExpectedContentTypeFlags'), (1, 'dwExpectedFormatTypeFlags'), (1, 'dwFlags'), (1, 'pdwMsgAndCertEncodingType'), (1, 'pdwContentType'), (1, 'pdwFormatType'), (1, 'phCertStore'), (1, 'phMsg'), (1, 'ppvContext')) + +#def CryptMsgGetParam(hCryptMsg, dwParamType, dwIndex, pvData, pcbData): +# return CryptMsgGetParam.ctypes_function(hCryptMsg, dwParamType, dwIndex, pvData, pcbData) +CryptMsgGetParamPrototype = WINFUNCTYPE(BOOL, HCRYPTMSG, DWORD, DWORD, PVOID, POINTER(DWORD)) +CryptMsgGetParamParams = ((1, 'hCryptMsg'), (1, 'dwParamType'), (1, 'dwIndex'), (1, 'pvData'), (1, 'pcbData')) + +#def CryptDecodeObject(dwCertEncodingType, lpszStructType, pbEncoded, cbEncoded, dwFlags, pvStructInfo, pcbStructInfo): +# return CryptDecodeObject.ctypes_function(dwCertEncodingType, lpszStructType, pbEncoded, cbEncoded, dwFlags, pvStructInfo, pcbStructInfo) +CryptDecodeObjectPrototype = WINFUNCTYPE(BOOL, DWORD, LPCSTR, POINTER(BYTE), DWORD, DWORD, PVOID, POINTER(DWORD)) +CryptDecodeObjectParams = ((1, 'dwCertEncodingType'), (1, 'lpszStructType'), (1, 'pbEncoded'), (1, 'cbEncoded'), (1, 'dwFlags'), (1, 'pvStructInfo'), (1, 'pcbStructInfo')) + +#def CertFindCertificateInStore(hCertStore, dwCertEncodingType, dwFindFlags, dwFindType, pvFindPara, pPrevCertContext): +# return CertFindCertificateInStore.ctypes_function(hCertStore, dwCertEncodingType, dwFindFlags, dwFindType, pvFindPara, pPrevCertContext) +CertFindCertificateInStorePrototype = WINFUNCTYPE(PCCERT_CONTEXT, HCERTSTORE, DWORD, DWORD, DWORD, PVOID, PCCERT_CONTEXT) +CertFindCertificateInStoreParams = ((1, 'hCertStore'), (1, 'dwCertEncodingType'), (1, 'dwFindFlags'), (1, 'dwFindType'), (1, 'pvFindPara'), (1, 'pPrevCertContext')) + +#def CertGetNameStringA(pCertContext, dwType, dwFlags, pvTypePara, pszNameString, cchNameString): +# return CertGetNameStringA.ctypes_function(pCertContext, dwType, dwFlags, pvTypePara, pszNameString, cchNameString) +CertGetNameStringAPrototype = WINFUNCTYPE(DWORD, PCCERT_CONTEXT, DWORD, DWORD, PVOID, LPCSTR, DWORD) +CertGetNameStringAParams = ((1, 'pCertContext'), (1, 'dwType'), (1, 'dwFlags'), (1, 'pvTypePara'), (1, 'pszNameString'), (1, 'cchNameString')) + +#def CertGetNameStringW(pCertContext, dwType, dwFlags, pvTypePara, pszNameString, cchNameString): +# return CertGetNameStringW.ctypes_function(pCertContext, dwType, dwFlags, pvTypePara, pszNameString, cchNameString) +CertGetNameStringWPrototype = WINFUNCTYPE(DWORD, PCCERT_CONTEXT, DWORD, DWORD, PVOID, LPWSTR, DWORD) +CertGetNameStringWParams = ((1, 'pCertContext'), (1, 'dwType'), (1, 'dwFlags'), (1, 'pvTypePara'), (1, 'pszNameString'), (1, 'cchNameString')) + +#def CertGetCertificateChain(hChainEngine, pCertContext, pTime, hAdditionalStore, pChainPara, dwFlags, pvReserved, ppChainContext): +# return CertGetCertificateChain.ctypes_function(hChainEngine, pCertContext, pTime, hAdditionalStore, pChainPara, dwFlags, pvReserved, ppChainContext) +CertGetCertificateChainPrototype = WINFUNCTYPE(BOOL, HCERTCHAINENGINE, PCCERT_CONTEXT, LPFILETIME, HCERTSTORE, PCERT_CHAIN_PARA, DWORD, LPVOID, POINTER(PCCERT_CHAIN_CONTEXT)) +CertGetCertificateChainParams = ((1, 'hChainEngine'), (1, 'pCertContext'), (1, 'pTime'), (1, 'hAdditionalStore'), (1, 'pChainPara'), (1, 'dwFlags'), (1, 'pvReserved'), (1, 'ppChainContext')) + +#def CertCreateSelfSignCertificate(hCryptProvOrNCryptKey, pSubjectIssuerBlob, dwFlags, pKeyProvInfo, pSignatureAlgorithm, pStartTime, pEndTime, pExtensions): +# return CertCreateSelfSignCertificate.ctypes_function(hCryptProvOrNCryptKey, pSubjectIssuerBlob, dwFlags, pKeyProvInfo, pSignatureAlgorithm, pStartTime, pEndTime, pExtensions) +CertCreateSelfSignCertificatePrototype = WINFUNCTYPE(PCCERT_CONTEXT, HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, PCERT_NAME_BLOB, DWORD, PCRYPT_KEY_PROV_INFO, PCRYPT_ALGORITHM_IDENTIFIER, PSYSTEMTIME, PSYSTEMTIME, PCERT_EXTENSIONS) +CertCreateSelfSignCertificateParams = ((1, 'hCryptProvOrNCryptKey'), (1, 'pSubjectIssuerBlob'), (1, 'dwFlags'), (1, 'pKeyProvInfo'), (1, 'pSignatureAlgorithm'), (1, 'pStartTime'), (1, 'pEndTime'), (1, 'pExtensions')) + +#def CertStrToNameA(dwCertEncodingType, pszX500, dwStrType, pvReserved, pbEncoded, pcbEncoded, ppszError): +# return CertStrToNameA.ctypes_function(dwCertEncodingType, pszX500, dwStrType, pvReserved, pbEncoded, pcbEncoded, ppszError) +CertStrToNameAPrototype = WINFUNCTYPE(BOOL, DWORD, LPCSTR, DWORD, PVOID, POINTER(BYTE), POINTER(DWORD), POINTER(LPCSTR)) +CertStrToNameAParams = ((1, 'dwCertEncodingType'), (1, 'pszX500'), (1, 'dwStrType'), (1, 'pvReserved'), (1, 'pbEncoded'), (1, 'pcbEncoded'), (1, 'ppszError')) + +#def CertStrToNameW(dwCertEncodingType, pszX500, dwStrType, pvReserved, pbEncoded, pcbEncoded, ppszError): +# return CertStrToNameW.ctypes_function(dwCertEncodingType, pszX500, dwStrType, pvReserved, pbEncoded, pcbEncoded, ppszError) +CertStrToNameWPrototype = WINFUNCTYPE(BOOL, DWORD, LPWSTR, DWORD, PVOID, POINTER(BYTE), POINTER(DWORD), POINTER(LPWSTR)) +CertStrToNameWParams = ((1, 'dwCertEncodingType'), (1, 'pszX500'), (1, 'dwStrType'), (1, 'pvReserved'), (1, 'pbEncoded'), (1, 'pcbEncoded'), (1, 'ppszError')) + +#def CertOpenStore(lpszStoreProvider, dwMsgAndCertEncodingType, hCryptProv, dwFlags, pvPara): +# return CertOpenStore.ctypes_function(lpszStoreProvider, dwMsgAndCertEncodingType, hCryptProv, dwFlags, pvPara) +CertOpenStorePrototype = WINFUNCTYPE(HCERTSTORE, LPCSTR, DWORD, HCRYPTPROV_LEGACY, DWORD, PVOID) +CertOpenStoreParams = ((1, 'lpszStoreProvider'), (1, 'dwMsgAndCertEncodingType'), (1, 'hCryptProv'), (1, 'dwFlags'), (1, 'pvPara')) + +#def CertAddCertificateContextToStore(hCertStore, pCertContext, dwAddDisposition, ppStoreContext): +# return CertAddCertificateContextToStore.ctypes_function(hCertStore, pCertContext, dwAddDisposition, ppStoreContext) +CertAddCertificateContextToStorePrototype = WINFUNCTYPE(BOOL, HCERTSTORE, PCCERT_CONTEXT, DWORD, POINTER(PCCERT_CONTEXT)) +CertAddCertificateContextToStoreParams = ((1, 'hCertStore'), (1, 'pCertContext'), (1, 'dwAddDisposition'), (1, 'ppStoreContext')) + +#def CertFreeCertificateContext(pCertContext): +# return CertFreeCertificateContext.ctypes_function(pCertContext) +CertFreeCertificateContextPrototype = WINFUNCTYPE(BOOL, PCCERT_CONTEXT) +CertFreeCertificateContextParams = ((1, 'pCertContext'),) + +#def PFXExportCertStoreEx(hStore, pPFX, szPassword, pvPara, dwFlags): +# return PFXExportCertStoreEx.ctypes_function(hStore, pPFX, szPassword, pvPara, dwFlags) +PFXExportCertStoreExPrototype = WINFUNCTYPE(BOOL, HCERTSTORE, POINTER(CRYPT_DATA_BLOB), LPCWSTR, PVOID, DWORD) +PFXExportCertStoreExParams = ((1, 'hStore'), (1, 'pPFX'), (1, 'szPassword'), (1, 'pvPara'), (1, 'dwFlags')) + +#def PFXImportCertStore(pPFX, szPassword, dwFlags): +# return PFXImportCertStore.ctypes_function(pPFX, szPassword, dwFlags) +PFXImportCertStorePrototype = WINFUNCTYPE(HCERTSTORE, POINTER(CRYPT_DATA_BLOB), LPCWSTR, DWORD) +PFXImportCertStoreParams = ((1, 'pPFX'), (1, 'szPassword'), (1, 'dwFlags')) + +#def CryptGenKey(hProv, Algid, dwFlags, phKey): +# return CryptGenKey.ctypes_function(hProv, Algid, dwFlags, phKey) +CryptGenKeyPrototype = WINFUNCTYPE(BOOL, HCRYPTPROV, ALG_ID, DWORD, POINTER(HCRYPTKEY)) +CryptGenKeyParams = ((1, 'hProv'), (1, 'Algid'), (1, 'dwFlags'), (1, 'phKey')) + +#def CryptDestroyKey(hKey): +# return CryptDestroyKey.ctypes_function(hKey) +CryptDestroyKeyPrototype = WINFUNCTYPE(BOOL, HCRYPTKEY) +CryptDestroyKeyParams = ((1, 'hKey'),) + +#def CryptAcquireContextA(phProv, pszContainer, pszProvider, dwProvType, dwFlags): +# return CryptAcquireContextA.ctypes_function(phProv, pszContainer, pszProvider, dwProvType, dwFlags) +CryptAcquireContextAPrototype = WINFUNCTYPE(BOOL, POINTER(HCRYPTPROV), LPCSTR, LPCSTR, DWORD, DWORD) +CryptAcquireContextAParams = ((1, 'phProv'), (1, 'pszContainer'), (1, 'pszProvider'), (1, 'dwProvType'), (1, 'dwFlags')) + +#def CryptAcquireContextW(phProv, pszContainer, pszProvider, dwProvType, dwFlags): +# return CryptAcquireContextW.ctypes_function(phProv, pszContainer, pszProvider, dwProvType, dwFlags) +CryptAcquireContextWPrototype = WINFUNCTYPE(BOOL, POINTER(HCRYPTPROV), LPWSTR, LPWSTR, DWORD, DWORD) +CryptAcquireContextWParams = ((1, 'phProv'), (1, 'pszContainer'), (1, 'pszProvider'), (1, 'dwProvType'), (1, 'dwFlags')) + +#def CryptReleaseContext(hProv, dwFlags): +# return CryptReleaseContext.ctypes_function(hProv, dwFlags) +CryptReleaseContextPrototype = WINFUNCTYPE(BOOL, HCRYPTPROV, DWORD) +CryptReleaseContextParams = ((1, 'hProv'), (1, 'dwFlags')) + +#def CryptCreateHash(hProv, Algid, hKey, dwFlags, phHash): +# return CryptCreateHash.ctypes_function(hProv, Algid, hKey, dwFlags, phHash) +CryptCreateHashPrototype = WINFUNCTYPE(BOOL, HCRYPTPROV, ALG_ID, HCRYPTKEY, DWORD, POINTER(HCRYPTHASH)) +CryptCreateHashParams = ((1, 'hProv'), (1, 'Algid'), (1, 'hKey'), (1, 'dwFlags'), (1, 'phHash')) + +#def CryptHashData(hHash, pbData, dwDataLen, dwFlags): +# return CryptHashData.ctypes_function(hHash, pbData, dwDataLen, dwFlags) +CryptHashDataPrototype = WINFUNCTYPE(BOOL, HCRYPTHASH, POINTER(BYTE), DWORD, DWORD) +CryptHashDataParams = ((1, 'hHash'), (1, 'pbData'), (1, 'dwDataLen'), (1, 'dwFlags')) + +#def CryptGetHashParam(hHash, dwParam, pbData, pdwDataLen, dwFlags): +# return CryptGetHashParam.ctypes_function(hHash, dwParam, pbData, pdwDataLen, dwFlags) +CryptGetHashParamPrototype = WINFUNCTYPE(BOOL, HCRYPTHASH, DWORD, POINTER(BYTE), POINTER(DWORD), DWORD) +CryptGetHashParamParams = ((1, 'hHash'), (1, 'dwParam'), (1, 'pbData'), (1, 'pdwDataLen'), (1, 'dwFlags')) + +#def CryptVerifySignatureA(hHash, pbSignature, dwSigLen, hPubKey, szDescription, dwFlags): +# return CryptVerifySignatureA.ctypes_function(hHash, pbSignature, dwSigLen, hPubKey, szDescription, dwFlags) +CryptVerifySignatureAPrototype = WINFUNCTYPE(BOOL, HCRYPTHASH, POINTER(BYTE), DWORD, HCRYPTKEY, LPCSTR, DWORD) +CryptVerifySignatureAParams = ((1, 'hHash'), (1, 'pbSignature'), (1, 'dwSigLen'), (1, 'hPubKey'), (1, 'szDescription'), (1, 'dwFlags')) + +#def CryptVerifySignatureW(hHash, pbSignature, dwSigLen, hPubKey, szDescription, dwFlags): +# return CryptVerifySignatureW.ctypes_function(hHash, pbSignature, dwSigLen, hPubKey, szDescription, dwFlags) +CryptVerifySignatureWPrototype = WINFUNCTYPE(BOOL, HCRYPTHASH, POINTER(BYTE), DWORD, HCRYPTKEY, LPCWSTR, DWORD) +CryptVerifySignatureWParams = ((1, 'hHash'), (1, 'pbSignature'), (1, 'dwSigLen'), (1, 'hPubKey'), (1, 'szDescription'), (1, 'dwFlags')) + +#def CryptSignHashA(hHash, dwKeySpec, szDescription, dwFlags, pbSignature, pdwSigLen): +# return CryptSignHashA.ctypes_function(hHash, dwKeySpec, szDescription, dwFlags, pbSignature, pdwSigLen) +CryptSignHashAPrototype = WINFUNCTYPE(BOOL, HCRYPTHASH, DWORD, LPCSTR, DWORD, POINTER(BYTE), POINTER(DWORD)) +CryptSignHashAParams = ((1, 'hHash'), (1, 'dwKeySpec'), (1, 'szDescription'), (1, 'dwFlags'), (1, 'pbSignature'), (1, 'pdwSigLen')) + +#def CryptSignHashW(hHash, dwKeySpec, szDescription, dwFlags, pbSignature, pdwSigLen): +# return CryptSignHashW.ctypes_function(hHash, dwKeySpec, szDescription, dwFlags, pbSignature, pdwSigLen) +CryptSignHashWPrototype = WINFUNCTYPE(BOOL, HCRYPTHASH, DWORD, LPCWSTR, DWORD, POINTER(BYTE), POINTER(DWORD)) +CryptSignHashWParams = ((1, 'hHash'), (1, 'dwKeySpec'), (1, 'szDescription'), (1, 'dwFlags'), (1, 'pbSignature'), (1, 'pdwSigLen')) + +#def CryptDestroyHash(hHash): +# return CryptDestroyHash.ctypes_function(hHash) +CryptDestroyHashPrototype = WINFUNCTYPE(BOOL, HCRYPTHASH) +CryptDestroyHashParams = ((1, 'hHash'),) + +#def CryptEncrypt(hKey, hHash, Final, dwFlags, pbData, pdwDataLen, dwBufLen): +# return CryptEncrypt.ctypes_function(hKey, hHash, Final, dwFlags, pbData, pdwDataLen, dwBufLen) +CryptEncryptPrototype = WINFUNCTYPE(BOOL, HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, POINTER(BYTE), POINTER(DWORD), DWORD) +CryptEncryptParams = ((1, 'hKey'), (1, 'hHash'), (1, 'Final'), (1, 'dwFlags'), (1, 'pbData'), (1, 'pdwDataLen'), (1, 'dwBufLen')) + +#def CryptDecrypt(hKey, hHash, Final, dwFlags, pbData, pdwDataLen): +# return CryptDecrypt.ctypes_function(hKey, hHash, Final, dwFlags, pbData, pdwDataLen) +CryptDecryptPrototype = WINFUNCTYPE(BOOL, HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, POINTER(BYTE), POINTER(DWORD)) +CryptDecryptParams = ((1, 'hKey'), (1, 'hHash'), (1, 'Final'), (1, 'dwFlags'), (1, 'pbData'), (1, 'pdwDataLen')) + +#def CryptDeriveKey(hProv, Algid, hBaseData, dwFlags, phKey): +# return CryptDeriveKey.ctypes_function(hProv, Algid, hBaseData, dwFlags, phKey) +CryptDeriveKeyPrototype = WINFUNCTYPE(BOOL, HCRYPTPROV, ALG_ID, HCRYPTHASH, DWORD, POINTER(HCRYPTKEY)) +CryptDeriveKeyParams = ((1, 'hProv'), (1, 'Algid'), (1, 'hBaseData'), (1, 'dwFlags'), (1, 'phKey')) + +#def CryptExportKey(hKey, hExpKey, dwBlobType, dwFlags, pbData, pdwDataLen): +# return CryptExportKey.ctypes_function(hKey, hExpKey, dwBlobType, dwFlags, pbData, pdwDataLen) +CryptExportKeyPrototype = WINFUNCTYPE(BOOL, HCRYPTKEY, HCRYPTKEY, DWORD, DWORD, POINTER(BYTE), POINTER(DWORD)) +CryptExportKeyParams = ((1, 'hKey'), (1, 'hExpKey'), (1, 'dwBlobType'), (1, 'dwFlags'), (1, 'pbData'), (1, 'pdwDataLen')) + +#def CryptImportKey(hProv, pbData, dwDataLen, hPubKey, dwFlags, phKey): +# return CryptImportKey.ctypes_function(hProv, pbData, dwDataLen, hPubKey, dwFlags, phKey) +CryptImportKeyPrototype = WINFUNCTYPE(BOOL, HCRYPTPROV, POINTER(BYTE), DWORD, HCRYPTKEY, DWORD, POINTER(HCRYPTKEY)) +CryptImportKeyParams = ((1, 'hProv'), (1, 'pbData'), (1, 'dwDataLen'), (1, 'hPubKey'), (1, 'dwFlags'), (1, 'phKey')) + +#def CertGetCertificateContextProperty(pCertContext, dwPropId, pvData, pcbData): +# return CertGetCertificateContextProperty.ctypes_function(pCertContext, dwPropId, pvData, pcbData) +CertGetCertificateContextPropertyPrototype = WINFUNCTYPE(BOOL, PCCERT_CONTEXT, DWORD, PVOID, POINTER(DWORD)) +CertGetCertificateContextPropertyParams = ((1, 'pCertContext'), (1, 'dwPropId'), (1, 'pvData'), (1, 'pcbData')) + +#def CertEnumCertificateContextProperties(pCertContext, dwPropId): +# return CertEnumCertificateContextProperties.ctypes_function(pCertContext, dwPropId) +CertEnumCertificateContextPropertiesPrototype = WINFUNCTYPE(DWORD, PCCERT_CONTEXT, DWORD) +CertEnumCertificateContextPropertiesParams = ((1, 'pCertContext'), (1, 'dwPropId')) + +#def CryptEncryptMessage(pEncryptPara, cRecipientCert, rgpRecipientCert, pbToBeEncrypted, cbToBeEncrypted, pbEncryptedBlob, pcbEncryptedBlob): +# return CryptEncryptMessage.ctypes_function(pEncryptPara, cRecipientCert, rgpRecipientCert, pbToBeEncrypted, cbToBeEncrypted, pbEncryptedBlob, pcbEncryptedBlob) +CryptEncryptMessagePrototype = WINFUNCTYPE(BOOL, PCRYPT_ENCRYPT_MESSAGE_PARA, DWORD, POINTER(PCCERT_CONTEXT), POINTER(BYTE), DWORD, POINTER(BYTE), POINTER(DWORD)) +CryptEncryptMessageParams = ((1, 'pEncryptPara'), (1, 'cRecipientCert'), (1, 'rgpRecipientCert'), (1, 'pbToBeEncrypted'), (1, 'cbToBeEncrypted'), (1, 'pbEncryptedBlob'), (1, 'pcbEncryptedBlob')) + +#def CryptDecryptMessage(pDecryptPara, pbEncryptedBlob, cbEncryptedBlob, pbDecrypted, pcbDecrypted, ppXchgCert): +# return CryptDecryptMessage.ctypes_function(pDecryptPara, pbEncryptedBlob, cbEncryptedBlob, pbDecrypted, pcbDecrypted, ppXchgCert) +CryptDecryptMessagePrototype = WINFUNCTYPE(BOOL, PCRYPT_DECRYPT_MESSAGE_PARA, POINTER(BYTE), DWORD, POINTER(BYTE), POINTER(DWORD), POINTER(PCCERT_CONTEXT)) +CryptDecryptMessageParams = ((1, 'pDecryptPara'), (1, 'pbEncryptedBlob'), (1, 'cbEncryptedBlob'), (1, 'pbDecrypted'), (1, 'pcbDecrypted'), (1, 'ppXchgCert')) + +#def CryptAcquireCertificatePrivateKey(pCert, dwFlags, pvParameters, phCryptProvOrNCryptKey, pdwKeySpec, pfCallerFreeProvOrNCryptKey): +# return CryptAcquireCertificatePrivateKey.ctypes_function(pCert, dwFlags, pvParameters, phCryptProvOrNCryptKey, pdwKeySpec, pfCallerFreeProvOrNCryptKey) +CryptAcquireCertificatePrivateKeyPrototype = WINFUNCTYPE(BOOL, PCCERT_CONTEXT, DWORD, PVOID, POINTER(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE), POINTER(DWORD), POINTER(BOOL)) +CryptAcquireCertificatePrivateKeyParams = ((1, 'pCert'), (1, 'dwFlags'), (1, 'pvParameters'), (1, 'phCryptProvOrNCryptKey'), (1, 'pdwKeySpec'), (1, 'pfCallerFreeProvOrNCryptKey')) + +#def CertDuplicateCertificateContext(pCertContext): +# return CertDuplicateCertificateContext.ctypes_function(pCertContext) +CertDuplicateCertificateContextPrototype = WINFUNCTYPE(PCCERT_CONTEXT, PCCERT_CONTEXT) +CertDuplicateCertificateContextParams = ((1, 'pCertContext'),) + +#def CertEnumCertificatesInStore(hCertStore, pPrevCertContext): +# return CertEnumCertificatesInStore.ctypes_function(hCertStore, pPrevCertContext) +CertEnumCertificatesInStorePrototype = WINFUNCTYPE(PCCERT_CONTEXT, HCERTSTORE, PCCERT_CONTEXT) +CertEnumCertificatesInStoreParams = ((1, 'hCertStore'), (1, 'pPrevCertContext')) + +#def CryptEncodeObjectEx(dwCertEncodingType, lpszStructType, pvStructInfo, dwFlags, pEncodePara, pvEncoded, pcbEncoded): +# return CryptEncodeObjectEx.ctypes_function(dwCertEncodingType, lpszStructType, pvStructInfo, dwFlags, pEncodePara, pvEncoded, pcbEncoded) +CryptEncodeObjectExPrototype = WINFUNCTYPE(BOOL, DWORD, LPCSTR, PVOID, DWORD, PCRYPT_ENCODE_PARA, PVOID, POINTER(DWORD)) +CryptEncodeObjectExParams = ((1, 'dwCertEncodingType'), (1, 'lpszStructType'), (1, 'pvStructInfo'), (1, 'dwFlags'), (1, 'pEncodePara'), (1, 'pvEncoded'), (1, 'pcbEncoded')) + +#def CertCreateCertificateContext(dwCertEncodingType, pbCertEncoded, cbCertEncoded): +# return CertCreateCertificateContext.ctypes_function(dwCertEncodingType, pbCertEncoded, cbCertEncoded) +CertCreateCertificateContextPrototype = WINFUNCTYPE(PCCERT_CONTEXT, DWORD, POINTER(BYTE), DWORD) +CertCreateCertificateContextParams = ((1, 'dwCertEncodingType'), (1, 'pbCertEncoded'), (1, 'cbCertEncoded')) + +#def CertCompareCertificate(dwCertEncodingType, pCertId1, pCertId2): +# return CertCompareCertificate.ctypes_function(dwCertEncodingType, pCertId1, pCertId2) +CertCompareCertificatePrototype = WINFUNCTYPE(BOOL, DWORD, PCERT_INFO, PCERT_INFO) +CertCompareCertificateParams = ((1, 'dwCertEncodingType'), (1, 'pCertId1'), (1, 'pCertId2')) + +#def CertEnumCTLsInStore(hCertStore, pPrevCtlContext): +# return CertEnumCTLsInStore.ctypes_function(hCertStore, pPrevCtlContext) +CertEnumCTLsInStorePrototype = WINFUNCTYPE(PCCTL_CONTEXT, HCERTSTORE, PCCTL_CONTEXT) +CertEnumCTLsInStoreParams = ((1, 'hCertStore'), (1, 'pPrevCtlContext')) + +#def CertDuplicateCTLContext(pCtlContext): +# return CertDuplicateCTLContext.ctypes_function(pCtlContext) +CertDuplicateCTLContextPrototype = WINFUNCTYPE(PCCTL_CONTEXT, PCCTL_CONTEXT) +CertDuplicateCTLContextParams = ((1, 'pCtlContext'),) + +#def CertFreeCTLContext(pCtlContext): +# return CertFreeCTLContext.ctypes_function(pCtlContext) +CertFreeCTLContextPrototype = WINFUNCTYPE(BOOL, PCCTL_CONTEXT) +CertFreeCTLContextParams = ((1, 'pCtlContext'),) + +#def CryptUIDlgViewContext(dwContextType, pvContext, hwnd, pwszTitle, dwFlags, pvReserved): +# return CryptUIDlgViewContext.ctypes_function(dwContextType, pvContext, hwnd, pwszTitle, dwFlags, pvReserved) +CryptUIDlgViewContextPrototype = WINFUNCTYPE(BOOL, DWORD, PVOID, HWND, LPCWSTR, DWORD, PVOID) +CryptUIDlgViewContextParams = ((1, 'dwContextType'), (1, 'pvContext'), (1, 'hwnd'), (1, 'pwszTitle'), (1, 'dwFlags'), (1, 'pvReserved')) + +#def CryptMsgVerifyCountersignatureEncoded(hCryptProv, dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature, cbSignerInfoCountersignature, pciCountersigner): +# return CryptMsgVerifyCountersignatureEncoded.ctypes_function(hCryptProv, dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature, cbSignerInfoCountersignature, pciCountersigner) +CryptMsgVerifyCountersignatureEncodedPrototype = WINFUNCTYPE(BOOL, HCRYPTPROV_LEGACY, DWORD, PBYTE, DWORD, PBYTE, DWORD, PCERT_INFO) +CryptMsgVerifyCountersignatureEncodedParams = ((1, 'hCryptProv'), (1, 'dwEncodingType'), (1, 'pbSignerInfo'), (1, 'cbSignerInfo'), (1, 'pbSignerInfoCountersignature'), (1, 'cbSignerInfoCountersignature'), (1, 'pciCountersigner')) + +#def CryptMsgVerifyCountersignatureEncodedEx(hCryptProv, dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature, cbSignerInfoCountersignature, dwSignerType, pvSigner, dwFlags, pvExtra): +# return CryptMsgVerifyCountersignatureEncodedEx.ctypes_function(hCryptProv, dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature, cbSignerInfoCountersignature, dwSignerType, pvSigner, dwFlags, pvExtra) +CryptMsgVerifyCountersignatureEncodedExPrototype = WINFUNCTYPE(BOOL, HCRYPTPROV_LEGACY, DWORD, PBYTE, DWORD, PBYTE, DWORD, DWORD, PVOID, DWORD, PVOID) +CryptMsgVerifyCountersignatureEncodedExParams = ((1, 'hCryptProv'), (1, 'dwEncodingType'), (1, 'pbSignerInfo'), (1, 'cbSignerInfo'), (1, 'pbSignerInfoCountersignature'), (1, 'cbSignerInfoCountersignature'), (1, 'dwSignerType'), (1, 'pvSigner'), (1, 'dwFlags'), (1, 'pvExtra')) + +#def CryptHashCertificate(hCryptProv, Algid, dwFlags, pbEncoded, cbEncoded, pbComputedHash, pcbComputedHash): +# return CryptHashCertificate.ctypes_function(hCryptProv, Algid, dwFlags, pbEncoded, cbEncoded, pbComputedHash, pcbComputedHash) +CryptHashCertificatePrototype = WINFUNCTYPE(BOOL, HCRYPTPROV_LEGACY, ALG_ID, DWORD, POINTER(BYTE), DWORD, POINTER(BYTE), POINTER(DWORD)) +CryptHashCertificateParams = ((1, 'hCryptProv'), (1, 'Algid'), (1, 'dwFlags'), (1, 'pbEncoded'), (1, 'cbEncoded'), (1, 'pbComputedHash'), (1, 'pcbComputedHash')) + +#def CryptSignMessage(pSignPara, fDetachedSignature, cToBeSigned, rgpbToBeSigned, rgcbToBeSigned, pbSignedBlob, pcbSignedBlob): +# return CryptSignMessage.ctypes_function(pSignPara, fDetachedSignature, cToBeSigned, rgpbToBeSigned, rgcbToBeSigned, pbSignedBlob, pcbSignedBlob) +CryptSignMessagePrototype = WINFUNCTYPE(BOOL, PCRYPT_SIGN_MESSAGE_PARA, BOOL, DWORD, POINTER(PBYTE), POINTER(DWORD), POINTER(BYTE), POINTER(DWORD)) +CryptSignMessageParams = ((1, 'pSignPara'), (1, 'fDetachedSignature'), (1, 'cToBeSigned'), (1, 'rgpbToBeSigned'), (1, 'rgcbToBeSigned'), (1, 'pbSignedBlob'), (1, 'pcbSignedBlob')) + +#def CryptSignAndEncryptMessage(pSignPara, pEncryptPara, cRecipientCert, rgpRecipientCert, pbToBeSignedAndEncrypted, cbToBeSignedAndEncrypted, pbSignedAndEncryptedBlob, pcbSignedAndEncryptedBlob): +# return CryptSignAndEncryptMessage.ctypes_function(pSignPara, pEncryptPara, cRecipientCert, rgpRecipientCert, pbToBeSignedAndEncrypted, cbToBeSignedAndEncrypted, pbSignedAndEncryptedBlob, pcbSignedAndEncryptedBlob) +CryptSignAndEncryptMessagePrototype = WINFUNCTYPE(BOOL, PCRYPT_SIGN_MESSAGE_PARA, PCRYPT_ENCRYPT_MESSAGE_PARA, DWORD, POINTER(PCCERT_CONTEXT), POINTER(BYTE), DWORD, POINTER(BYTE), POINTER(DWORD)) +CryptSignAndEncryptMessageParams = ((1, 'pSignPara'), (1, 'pEncryptPara'), (1, 'cRecipientCert'), (1, 'rgpRecipientCert'), (1, 'pbToBeSignedAndEncrypted'), (1, 'cbToBeSignedAndEncrypted'), (1, 'pbSignedAndEncryptedBlob'), (1, 'pcbSignedAndEncryptedBlob')) + +#def CryptVerifyMessageSignature(pVerifyPara, dwSignerIndex, pbSignedBlob, cbSignedBlob, pbDecoded, pcbDecoded, ppSignerCert): +# return CryptVerifyMessageSignature.ctypes_function(pVerifyPara, dwSignerIndex, pbSignedBlob, cbSignedBlob, pbDecoded, pcbDecoded, ppSignerCert) +CryptVerifyMessageSignaturePrototype = WINFUNCTYPE(BOOL, PCRYPT_VERIFY_MESSAGE_PARA, DWORD, POINTER(BYTE), DWORD, POINTER(BYTE), POINTER(DWORD), POINTER(PCCERT_CONTEXT)) +CryptVerifyMessageSignatureParams = ((1, 'pVerifyPara'), (1, 'dwSignerIndex'), (1, 'pbSignedBlob'), (1, 'cbSignedBlob'), (1, 'pbDecoded'), (1, 'pcbDecoded'), (1, 'ppSignerCert')) + +#def CryptVerifyMessageSignatureWithKey(pVerifyPara, pPublicKeyInfo, pbSignedBlob, cbSignedBlob, pbDecoded, pcbDecoded): +# return CryptVerifyMessageSignatureWithKey.ctypes_function(pVerifyPara, pPublicKeyInfo, pbSignedBlob, cbSignedBlob, pbDecoded, pcbDecoded) +CryptVerifyMessageSignatureWithKeyPrototype = WINFUNCTYPE(BOOL, PCRYPT_KEY_VERIFY_MESSAGE_PARA, PCERT_PUBLIC_KEY_INFO, POINTER(BYTE), DWORD, POINTER(BYTE), POINTER(DWORD)) +CryptVerifyMessageSignatureWithKeyParams = ((1, 'pVerifyPara'), (1, 'pPublicKeyInfo'), (1, 'pbSignedBlob'), (1, 'cbSignedBlob'), (1, 'pbDecoded'), (1, 'pcbDecoded')) + +#def CryptVerifyMessageHash(pHashPara, pbHashedBlob, cbHashedBlob, pbToBeHashed, pcbToBeHashed, pbComputedHash, pcbComputedHash): +# return CryptVerifyMessageHash.ctypes_function(pHashPara, pbHashedBlob, cbHashedBlob, pbToBeHashed, pcbToBeHashed, pbComputedHash, pcbComputedHash) +CryptVerifyMessageHashPrototype = WINFUNCTYPE(BOOL, PCRYPT_HASH_MESSAGE_PARA, POINTER(BYTE), DWORD, POINTER(BYTE), POINTER(DWORD), POINTER(BYTE), POINTER(DWORD)) +CryptVerifyMessageHashParams = ((1, 'pHashPara'), (1, 'pbHashedBlob'), (1, 'cbHashedBlob'), (1, 'pbToBeHashed'), (1, 'pcbToBeHashed'), (1, 'pbComputedHash'), (1, 'pcbComputedHash')) + +#def PfnCryptGetSignerCertificate(pvGetArg, dwCertEncodingType, pSignerId, hMsgCertStore): +# return PfnCryptGetSignerCertificate.ctypes_function(pvGetArg, dwCertEncodingType, pSignerId, hMsgCertStore) +PfnCryptGetSignerCertificatePrototype = WINFUNCTYPE(PCCERT_CONTEXT, PVOID, DWORD, PCERT_INFO, HCERTSTORE) +PfnCryptGetSignerCertificateParams = ((1, 'pvGetArg'), (1, 'dwCertEncodingType'), (1, 'pSignerId'), (1, 'hMsgCertStore')) + +#def CryptEncrypt(hKey, hHash, Final, dwFlags, pbData, pdwDataLen, dwBufLen): +# return CryptEncrypt.ctypes_function(hKey, hHash, Final, dwFlags, pbData, pdwDataLen, dwBufLen) +CryptEncryptPrototype = WINFUNCTYPE(BOOL, HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, POINTER(BYTE), POINTER(DWORD), DWORD) +CryptEncryptParams = ((1, 'hKey'), (1, 'hHash'), (1, 'Final'), (1, 'dwFlags'), (1, 'pbData'), (1, 'pdwDataLen'), (1, 'dwBufLen')) + +#def CryptDecrypt(hKey, hHash, Final, dwFlags, pbData, pdwDataLen): +# return CryptDecrypt.ctypes_function(hKey, hHash, Final, dwFlags, pbData, pdwDataLen) +CryptDecryptPrototype = WINFUNCTYPE(BOOL, HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, POINTER(BYTE), POINTER(DWORD)) +CryptDecryptParams = ((1, 'hKey'), (1, 'hHash'), (1, 'Final'), (1, 'dwFlags'), (1, 'pbData'), (1, 'pdwDataLen')) + +#def CryptMsgOpenToEncode(dwMsgEncodingType, dwFlags, dwMsgType, pvMsgEncodeInfo, pszInnerContentObjID, pStreamInfo): +# return CryptMsgOpenToEncode.ctypes_function(dwMsgEncodingType, dwFlags, dwMsgType, pvMsgEncodeInfo, pszInnerContentObjID, pStreamInfo) +CryptMsgOpenToEncodePrototype = WINFUNCTYPE(HCRYPTMSG, DWORD, DWORD, DWORD, PVOID, LPSTR, PCMSG_STREAM_INFO) +CryptMsgOpenToEncodeParams = ((1, 'dwMsgEncodingType'), (1, 'dwFlags'), (1, 'dwMsgType'), (1, 'pvMsgEncodeInfo'), (1, 'pszInnerContentObjID'), (1, 'pStreamInfo')) + +#def CryptMsgOpenToDecode(dwMsgEncodingType, dwFlags, dwMsgType, hCryptProv, pRecipientInfo, pStreamInfo): +# return CryptMsgOpenToDecode.ctypes_function(dwMsgEncodingType, dwFlags, dwMsgType, hCryptProv, pRecipientInfo, pStreamInfo) +CryptMsgOpenToDecodePrototype = WINFUNCTYPE(HCRYPTMSG, DWORD, DWORD, DWORD, HCRYPTPROV_LEGACY, PCERT_INFO, PCMSG_STREAM_INFO) +CryptMsgOpenToDecodeParams = ((1, 'dwMsgEncodingType'), (1, 'dwFlags'), (1, 'dwMsgType'), (1, 'hCryptProv'), (1, 'pRecipientInfo'), (1, 'pStreamInfo')) + +#def CryptMsgUpdate(hCryptMsg, pbData, cbData, fFinal): +# return CryptMsgUpdate.ctypes_function(hCryptMsg, pbData, cbData, fFinal) +CryptMsgUpdatePrototype = WINFUNCTYPE(BOOL, HCRYPTMSG, POINTER(BYTE), DWORD, BOOL) +CryptMsgUpdateParams = ((1, 'hCryptMsg'), (1, 'pbData'), (1, 'cbData'), (1, 'fFinal')) + +#def CryptMsgControl(hCryptMsg, dwFlags, dwCtrlType, pvCtrlPara): +# return CryptMsgControl.ctypes_function(hCryptMsg, dwFlags, dwCtrlType, pvCtrlPara) +CryptMsgControlPrototype = WINFUNCTYPE(BOOL, HCRYPTMSG, DWORD, DWORD, PVOID) +CryptMsgControlParams = ((1, 'hCryptMsg'), (1, 'dwFlags'), (1, 'dwCtrlType'), (1, 'pvCtrlPara')) + +#def CryptMsgClose(hCryptMsg): +# return CryptMsgClose.ctypes_function(hCryptMsg) +CryptMsgClosePrototype = WINFUNCTYPE(BOOL, HCRYPTMSG) +CryptMsgCloseParams = ((1, 'hCryptMsg'),) + +#def CryptEnumOIDFunction(dwEncodingType, pszFuncName, pszOID, dwFlags, pvArg, pfnEnumOIDFunc): +# return CryptEnumOIDFunction.ctypes_function(dwEncodingType, pszFuncName, pszOID, dwFlags, pvArg, pfnEnumOIDFunc) +CryptEnumOIDFunctionPrototype = WINFUNCTYPE(BOOL, DWORD, LPCSTR, LPCSTR, DWORD, PVOID, PFN_CRYPT_ENUM_OID_FUNC) +CryptEnumOIDFunctionParams = ((1, 'dwEncodingType'), (1, 'pszFuncName'), (1, 'pszOID'), (1, 'dwFlags'), (1, 'pvArg'), (1, 'pfnEnumOIDFunc')) + +#def CryptGetOIDFunctionValue(dwEncodingType, pszFuncName, pszOID, pwszValueName, pdwValueType, pbValueData, pcbValueData): +# return CryptGetOIDFunctionValue.ctypes_function(dwEncodingType, pszFuncName, pszOID, pwszValueName, pdwValueType, pbValueData, pcbValueData) +CryptGetOIDFunctionValuePrototype = WINFUNCTYPE(BOOL, DWORD, LPCSTR, LPCSTR, LPCWSTR, POINTER(DWORD), POINTER(BYTE), POINTER(DWORD)) +CryptGetOIDFunctionValueParams = ((1, 'dwEncodingType'), (1, 'pszFuncName'), (1, 'pszOID'), (1, 'pwszValueName'), (1, 'pdwValueType'), (1, 'pbValueData'), (1, 'pcbValueData')) + +#def CertCloseStore(hCertStore, dwFlags): +# return CertCloseStore.ctypes_function(hCertStore, dwFlags) +CertCloseStorePrototype = WINFUNCTYPE(BOOL, HCERTSTORE, DWORD) +CertCloseStoreParams = ((1, 'hCertStore'), (1, 'dwFlags')) + +#def OpenVirtualDisk(VirtualStorageType, Path, VirtualDiskAccessMask, Flags, Parameters, Handle): +# return OpenVirtualDisk.ctypes_function(VirtualStorageType, Path, VirtualDiskAccessMask, Flags, Parameters, Handle) +OpenVirtualDiskPrototype = WINFUNCTYPE(DWORD, PVIRTUAL_STORAGE_TYPE, PCWSTR, VIRTUAL_DISK_ACCESS_MASK, OPEN_VIRTUAL_DISK_FLAG, POPEN_VIRTUAL_DISK_PARAMETERS, PHANDLE) +OpenVirtualDiskParams = ((1, 'VirtualStorageType'), (1, 'Path'), (1, 'VirtualDiskAccessMask'), (1, 'Flags'), (1, 'Parameters'), (1, 'Handle')) + +#def AttachVirtualDisk(VirtualDiskHandle, SecurityDescriptor, Flags, ProviderSpecificFlags, Parameters, Overlapped): +# return AttachVirtualDisk.ctypes_function(VirtualDiskHandle, SecurityDescriptor, Flags, ProviderSpecificFlags, Parameters, Overlapped) +AttachVirtualDiskPrototype = WINFUNCTYPE(DWORD, HANDLE, PSECURITY_DESCRIPTOR, ATTACH_VIRTUAL_DISK_FLAG, ULONG, PATTACH_VIRTUAL_DISK_PARAMETERS, LPOVERLAPPED) +AttachVirtualDiskParams = ((1, 'VirtualDiskHandle'), (1, 'SecurityDescriptor'), (1, 'Flags'), (1, 'ProviderSpecificFlags'), (1, 'Parameters'), (1, 'Overlapped')) + +#def CryptProtectData(pDataIn, szDataDescr, pOptionalEntropy, pvReserved, pPromptStruct, dwFlags, pDataOut): +# return CryptProtectData.ctypes_function(pDataIn, szDataDescr, pOptionalEntropy, pvReserved, pPromptStruct, dwFlags, pDataOut) +CryptProtectDataPrototype = WINFUNCTYPE(BOOL, POINTER(DATA_BLOB), LPCWSTR, POINTER(DATA_BLOB), PVOID, POINTER(CRYPTPROTECT_PROMPTSTRUCT), DWORD, POINTER(DATA_BLOB)) +CryptProtectDataParams = ((1, 'pDataIn'), (1, 'szDataDescr'), (1, 'pOptionalEntropy'), (1, 'pvReserved'), (1, 'pPromptStruct'), (1, 'dwFlags'), (1, 'pDataOut')) + +#def CryptUnprotectData(pDataIn, ppszDataDescr, pOptionalEntropy, pvReserved, pPromptStruct, dwFlags, pDataOut): +# return CryptUnprotectData.ctypes_function(pDataIn, ppszDataDescr, pOptionalEntropy, pvReserved, pPromptStruct, dwFlags, pDataOut) +CryptUnprotectDataPrototype = WINFUNCTYPE(BOOL, POINTER(DATA_BLOB), POINTER(LPWSTR), POINTER(DATA_BLOB), PVOID, POINTER(CRYPTPROTECT_PROMPTSTRUCT), DWORD, POINTER(DATA_BLOB)) +CryptUnprotectDataParams = ((1, 'pDataIn'), (1, 'ppszDataDescr'), (1, 'pOptionalEntropy'), (1, 'pvReserved'), (1, 'pPromptStruct'), (1, 'dwFlags'), (1, 'pDataOut')) + +#def CryptProtectMemory(pDataIn, cbDataIn, dwFlags): +# return CryptProtectMemory.ctypes_function(pDataIn, cbDataIn, dwFlags) +CryptProtectMemoryPrototype = WINFUNCTYPE(BOOL, LPVOID, DWORD, DWORD) +CryptProtectMemoryParams = ((1, 'pDataIn'), (1, 'cbDataIn'), (1, 'dwFlags')) + +#def CryptUnprotectMemory(pDataIn, cbDataIn, dwFlags): +# return CryptUnprotectMemory.ctypes_function(pDataIn, cbDataIn, dwFlags) +CryptUnprotectMemoryPrototype = WINFUNCTYPE(BOOL, LPVOID, DWORD, DWORD) +CryptUnprotectMemoryParams = ((1, 'pDataIn'), (1, 'cbDataIn'), (1, 'dwFlags')) + +#def EnumerateTraceGuidsEx(TraceQueryInfoClass, InBuffer, InBufferSize, OutBuffer, OutBufferSize, ReturnLength): +# return EnumerateTraceGuidsEx.ctypes_function(TraceQueryInfoClass, InBuffer, InBufferSize, OutBuffer, OutBufferSize, ReturnLength) +EnumerateTraceGuidsExPrototype = WINFUNCTYPE(ULONG, TRACE_QUERY_INFO_CLASS, PVOID, ULONG, PVOID, ULONG, PULONG) +EnumerateTraceGuidsExParams = ((1, 'TraceQueryInfoClass'), (1, 'InBuffer'), (1, 'InBufferSize'), (1, 'OutBuffer'), (1, 'OutBufferSize'), (1, 'ReturnLength')) + +#def QueryAllTracesA(PropertyArray, PropertyArrayCount, SessionCount): +# return QueryAllTracesA.ctypes_function(PropertyArray, PropertyArrayCount, SessionCount) +QueryAllTracesAPrototype = WINFUNCTYPE(ULONG, POINTER(PEVENT_TRACE_PROPERTIES), ULONG, PULONG) +QueryAllTracesAParams = ((1, 'PropertyArray'), (1, 'PropertyArrayCount'), (1, 'SessionCount')) + +#def QueryAllTracesW(PropertyArray, PropertyArrayCount, SessionCount): +# return QueryAllTracesW.ctypes_function(PropertyArray, PropertyArrayCount, SessionCount) +QueryAllTracesWPrototype = WINFUNCTYPE(ULONG, POINTER(PEVENT_TRACE_PROPERTIES), ULONG, PULONG) +QueryAllTracesWParams = ((1, 'PropertyArray'), (1, 'PropertyArrayCount'), (1, 'SessionCount')) + +#def OpenTraceA(Logfile): +# return OpenTraceA.ctypes_function(Logfile) +OpenTraceAPrototype = WINFUNCTYPE(TRACEHANDLE, PEVENT_TRACE_LOGFILEA) +OpenTraceAParams = ((1, 'Logfile'),) + +#def OpenTraceW(Logfile): +# return OpenTraceW.ctypes_function(Logfile) +OpenTraceWPrototype = WINFUNCTYPE(TRACEHANDLE, PEVENT_TRACE_LOGFILEW) +OpenTraceWParams = ((1, 'Logfile'),) + +#def StartTraceA(TraceHandle, InstanceName, Properties): +# return StartTraceA.ctypes_function(TraceHandle, InstanceName, Properties) +StartTraceAPrototype = WINFUNCTYPE(ULONG, PTRACEHANDLE, LPCSTR, PEVENT_TRACE_PROPERTIES) +StartTraceAParams = ((1, 'TraceHandle'), (1, 'InstanceName'), (1, 'Properties')) + +#def StartTraceW(TraceHandle, InstanceName, Properties): +# return StartTraceW.ctypes_function(TraceHandle, InstanceName, Properties) +StartTraceWPrototype = WINFUNCTYPE(ULONG, PTRACEHANDLE, LPCWSTR, PEVENT_TRACE_PROPERTIES) +StartTraceWParams = ((1, 'TraceHandle'), (1, 'InstanceName'), (1, 'Properties')) + +#def StopTraceA(TraceHandle, InstanceName, Properties): +# return StopTraceA.ctypes_function(TraceHandle, InstanceName, Properties) +StopTraceAPrototype = WINFUNCTYPE(ULONG, TRACEHANDLE, LPCSTR, PEVENT_TRACE_PROPERTIES) +StopTraceAParams = ((1, 'TraceHandle'), (1, 'InstanceName'), (1, 'Properties')) + +#def StopTraceW(TraceHandle, InstanceName, Properties): +# return StopTraceW.ctypes_function(TraceHandle, InstanceName, Properties) +StopTraceWPrototype = WINFUNCTYPE(ULONG, TRACEHANDLE, LPCWSTR, PEVENT_TRACE_PROPERTIES) +StopTraceWParams = ((1, 'TraceHandle'), (1, 'InstanceName'), (1, 'Properties')) + +#def ControlTraceA(TraceHandle, InstanceName, Properties, ControlCode): +# return ControlTraceA.ctypes_function(TraceHandle, InstanceName, Properties, ControlCode) +ControlTraceAPrototype = WINFUNCTYPE(ULONG, TRACEHANDLE, LPCSTR, PEVENT_TRACE_PROPERTIES, ULONG) +ControlTraceAParams = ((1, 'TraceHandle'), (1, 'InstanceName'), (1, 'Properties'), (1, 'ControlCode')) + +#def ControlTraceW(TraceHandle, InstanceName, Properties, ControlCode): +# return ControlTraceW.ctypes_function(TraceHandle, InstanceName, Properties, ControlCode) +ControlTraceWPrototype = WINFUNCTYPE(ULONG, TRACEHANDLE, LPCWSTR, PEVENT_TRACE_PROPERTIES, ULONG) +ControlTraceWParams = ((1, 'TraceHandle'), (1, 'InstanceName'), (1, 'Properties'), (1, 'ControlCode')) + +#def ProcessTrace(HandleArray, HandleCount, StartTime, EndTime): +# return ProcessTrace.ctypes_function(HandleArray, HandleCount, StartTime, EndTime) +ProcessTracePrototype = WINFUNCTYPE(ULONG, PTRACEHANDLE, ULONG, LPFILETIME, LPFILETIME) +ProcessTraceParams = ((1, 'HandleArray'), (1, 'HandleCount'), (1, 'StartTime'), (1, 'EndTime')) + +#def EnableTrace(Enable, EnableFlag, EnableLevel, ControlGuid, SessionHandle): +# return EnableTrace.ctypes_function(Enable, EnableFlag, EnableLevel, ControlGuid, SessionHandle) +EnableTracePrototype = WINFUNCTYPE(ULONG, ULONG, ULONG, ULONG, LPCGUID, TRACEHANDLE) +EnableTraceParams = ((1, 'Enable'), (1, 'EnableFlag'), (1, 'EnableLevel'), (1, 'ControlGuid'), (1, 'SessionHandle')) + +#def EnableTraceEx(ProviderId, SourceId, TraceHandle, IsEnabled, Level, MatchAnyKeyword, MatchAllKeyword, EnableProperty, EnableFilterDesc): +# return EnableTraceEx.ctypes_function(ProviderId, SourceId, TraceHandle, IsEnabled, Level, MatchAnyKeyword, MatchAllKeyword, EnableProperty, EnableFilterDesc) +EnableTraceExPrototype = WINFUNCTYPE(ULONG, LPCGUID, LPCGUID, TRACEHANDLE, ULONG, UCHAR, ULONGLONG, ULONGLONG, ULONG, PEVENT_FILTER_DESCRIPTOR) +EnableTraceExParams = ((1, 'ProviderId'), (1, 'SourceId'), (1, 'TraceHandle'), (1, 'IsEnabled'), (1, 'Level'), (1, 'MatchAnyKeyword'), (1, 'MatchAllKeyword'), (1, 'EnableProperty'), (1, 'EnableFilterDesc')) + +#def EnableTraceEx2(TraceHandle, ProviderId, ControlCode, Level, MatchAnyKeyword, MatchAllKeyword, Timeout, EnableParameters): +# return EnableTraceEx2.ctypes_function(TraceHandle, ProviderId, ControlCode, Level, MatchAnyKeyword, MatchAllKeyword, Timeout, EnableParameters) +EnableTraceEx2Prototype = WINFUNCTYPE(ULONG, TRACEHANDLE, LPCGUID, ULONG, UCHAR, ULONGLONG, ULONGLONG, ULONG, PENABLE_TRACE_PARAMETERS) +EnableTraceEx2Params = ((1, 'TraceHandle'), (1, 'ProviderId'), (1, 'ControlCode'), (1, 'Level'), (1, 'MatchAnyKeyword'), (1, 'MatchAllKeyword'), (1, 'Timeout'), (1, 'EnableParameters')) + +#def TraceQueryInformation(SessionHandle, InformationClass, TraceInformation, InformationLength, ReturnLength): +# return TraceQueryInformation.ctypes_function(SessionHandle, InformationClass, TraceInformation, InformationLength, ReturnLength) +TraceQueryInformationPrototype = WINFUNCTYPE(ULONG, TRACEHANDLE, TRACE_QUERY_INFO_CLASS, PVOID, ULONG, PULONG) +TraceQueryInformationParams = ((1, 'SessionHandle'), (1, 'InformationClass'), (1, 'TraceInformation'), (1, 'InformationLength'), (1, 'ReturnLength')) + +#def TraceSetInformation(SessionHandle, InformationClass, TraceInformation, InformationLength): +# return TraceSetInformation.ctypes_function(SessionHandle, InformationClass, TraceInformation, InformationLength) +TraceSetInformationPrototype = WINFUNCTYPE(ULONG, TRACEHANDLE, TRACE_INFO_CLASS, PVOID, ULONG) +TraceSetInformationParams = ((1, 'SessionHandle'), (1, 'InformationClass'), (1, 'TraceInformation'), (1, 'InformationLength')) + +#def RegisterTraceGuidsW(RequestAddress, RequestContext, ControlGuid, GuidCount, TraceGuidReg, MofImagePath, MofResourceName, RegistrationHandle): +# return RegisterTraceGuidsW.ctypes_function(RequestAddress, RequestContext, ControlGuid, GuidCount, TraceGuidReg, MofImagePath, MofResourceName, RegistrationHandle) +RegisterTraceGuidsWPrototype = WINFUNCTYPE(ULONG, PVOID, PVOID, LPCGUID, ULONG, PTRACE_GUID_REGISTRATION, LPCWSTR, LPCWSTR, PTRACEHANDLE) +RegisterTraceGuidsWParams = ((1, 'RequestAddress'), (1, 'RequestContext'), (1, 'ControlGuid'), (1, 'GuidCount'), (1, 'TraceGuidReg'), (1, 'MofImagePath'), (1, 'MofResourceName'), (1, 'RegistrationHandle')) + +#def RegisterTraceGuidsA(RequestAddress, RequestContext, ControlGuid, GuidCount, TraceGuidReg, MofImagePath, MofResourceName, RegistrationHandle): +# return RegisterTraceGuidsA.ctypes_function(RequestAddress, RequestContext, ControlGuid, GuidCount, TraceGuidReg, MofImagePath, MofResourceName, RegistrationHandle) +RegisterTraceGuidsAPrototype = WINFUNCTYPE(ULONG, PVOID, PVOID, LPCGUID, ULONG, PTRACE_GUID_REGISTRATION, LPCSTR, LPCSTR, PTRACEHANDLE) +RegisterTraceGuidsAParams = ((1, 'RequestAddress'), (1, 'RequestContext'), (1, 'ControlGuid'), (1, 'GuidCount'), (1, 'TraceGuidReg'), (1, 'MofImagePath'), (1, 'MofResourceName'), (1, 'RegistrationHandle')) + +#def TraceEvent(SessionHandle, EventTrace): +# return TraceEvent.ctypes_function(SessionHandle, EventTrace) +TraceEventPrototype = WINFUNCTYPE(ULONG, TRACEHANDLE, PEVENT_TRACE_HEADER) +TraceEventParams = ((1, 'SessionHandle'), (1, 'EventTrace')) + +#def GetTraceLoggerHandle(Buffer): +# return GetTraceLoggerHandle.ctypes_function(Buffer) +GetTraceLoggerHandlePrototype = WINFUNCTYPE(TRACEHANDLE, PVOID) +GetTraceLoggerHandleParams = ((1, 'Buffer'),) + +#def OpenEventLogA(lpUNCServerName, lpSourceName): +# return OpenEventLogA.ctypes_function(lpUNCServerName, lpSourceName) +OpenEventLogAPrototype = WINFUNCTYPE(HANDLE, LPCSTR, LPCSTR) +OpenEventLogAParams = ((1, 'lpUNCServerName'), (1, 'lpSourceName')) + +#def OpenEventLogW(lpUNCServerName, lpSourceName): +# return OpenEventLogW.ctypes_function(lpUNCServerName, lpSourceName) +OpenEventLogWPrototype = WINFUNCTYPE(HANDLE, LPWSTR, LPWSTR) +OpenEventLogWParams = ((1, 'lpUNCServerName'), (1, 'lpSourceName')) + +#def OpenBackupEventLogA(lpUNCServerName, lpSourceName): +# return OpenBackupEventLogA.ctypes_function(lpUNCServerName, lpSourceName) +OpenBackupEventLogAPrototype = WINFUNCTYPE(HANDLE, LPCSTR, LPCSTR) +OpenBackupEventLogAParams = ((1, 'lpUNCServerName'), (1, 'lpSourceName')) + +#def OpenBackupEventLogW(lpUNCServerName, lpSourceName): +# return OpenBackupEventLogW.ctypes_function(lpUNCServerName, lpSourceName) +OpenBackupEventLogWPrototype = WINFUNCTYPE(HANDLE, LPWSTR, LPWSTR) +OpenBackupEventLogWParams = ((1, 'lpUNCServerName'), (1, 'lpSourceName')) + +#def EvtOpenSession(LoginClass, Login, Timeout, Flags): +# return EvtOpenSession.ctypes_function(LoginClass, Login, Timeout, Flags) +EvtOpenSessionPrototype = WINFUNCTYPE(EVT_HANDLE, EVT_LOGIN_CLASS, PVOID, DWORD, DWORD) +EvtOpenSessionParams = ((1, 'LoginClass'), (1, 'Login'), (1, 'Timeout'), (1, 'Flags')) + +#def ReadEventLogA(hEventLog, dwReadFlags, dwRecordOffset, lpBuffer, nNumberOfBytesToRead, pnBytesRead, pnMinNumberOfBytesNeeded): +# return ReadEventLogA.ctypes_function(hEventLog, dwReadFlags, dwRecordOffset, lpBuffer, nNumberOfBytesToRead, pnBytesRead, pnMinNumberOfBytesNeeded) +ReadEventLogAPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD, DWORD, LPVOID, DWORD, POINTER(DWORD), POINTER(DWORD)) +ReadEventLogAParams = ((1, 'hEventLog'), (1, 'dwReadFlags'), (1, 'dwRecordOffset'), (1, 'lpBuffer'), (1, 'nNumberOfBytesToRead'), (1, 'pnBytesRead'), (1, 'pnMinNumberOfBytesNeeded')) + +#def ReadEventLogW(hEventLog, dwReadFlags, dwRecordOffset, lpBuffer, nNumberOfBytesToRead, pnBytesRead, pnMinNumberOfBytesNeeded): +# return ReadEventLogW.ctypes_function(hEventLog, dwReadFlags, dwRecordOffset, lpBuffer, nNumberOfBytesToRead, pnBytesRead, pnMinNumberOfBytesNeeded) +ReadEventLogWPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD, DWORD, LPVOID, DWORD, POINTER(DWORD), POINTER(DWORD)) +ReadEventLogWParams = ((1, 'hEventLog'), (1, 'dwReadFlags'), (1, 'dwRecordOffset'), (1, 'lpBuffer'), (1, 'nNumberOfBytesToRead'), (1, 'pnBytesRead'), (1, 'pnMinNumberOfBytesNeeded')) + +#def GetEventLogInformation(hEventLog, dwInfoLevel, lpBuffer, cbBufSize, pcbBytesNeeded): +# return GetEventLogInformation.ctypes_function(hEventLog, dwInfoLevel, lpBuffer, cbBufSize, pcbBytesNeeded) +GetEventLogInformationPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD, LPVOID, DWORD, LPDWORD) +GetEventLogInformationParams = ((1, 'hEventLog'), (1, 'dwInfoLevel'), (1, 'lpBuffer'), (1, 'cbBufSize'), (1, 'pcbBytesNeeded')) + +#def GetNumberOfEventLogRecords(hEventLog, NumberOfRecords): +# return GetNumberOfEventLogRecords.ctypes_function(hEventLog, NumberOfRecords) +GetNumberOfEventLogRecordsPrototype = WINFUNCTYPE(BOOL, HANDLE, PDWORD) +GetNumberOfEventLogRecordsParams = ((1, 'hEventLog'), (1, 'NumberOfRecords')) + +#def CloseEventLog(hEventLog): +# return CloseEventLog.ctypes_function(hEventLog) +CloseEventLogPrototype = WINFUNCTYPE(BOOL, HANDLE) +CloseEventLogParams = ((1, 'hEventLog'),) + +#def EvtOpenLog(Session, Path, Flags): +# return EvtOpenLog.ctypes_function(Session, Path, Flags) +EvtOpenLogPrototype = WINFUNCTYPE(EVT_HANDLE, EVT_HANDLE, LPCWSTR, DWORD) +EvtOpenLogParams = ((1, 'Session'), (1, 'Path'), (1, 'Flags')) + +#def EvtQuery(Session, Path, Query, Flags): +# return EvtQuery.ctypes_function(Session, Path, Query, Flags) +EvtQueryPrototype = WINFUNCTYPE(EVT_HANDLE, EVT_HANDLE, LPCWSTR, LPCWSTR, DWORD) +EvtQueryParams = ((1, 'Session'), (1, 'Path'), (1, 'Query'), (1, 'Flags')) + +#def EvtNext(ResultSet, EventArraySize, EventArray, Timeout, Flags, Returned): +# return EvtNext.ctypes_function(ResultSet, EventArraySize, EventArray, Timeout, Flags, Returned) +EvtNextPrototype = WINFUNCTYPE(BOOL, EVT_HANDLE, DWORD, POINTER(EVT_HANDLE), DWORD, DWORD, PDWORD) +EvtNextParams = ((1, 'ResultSet'), (1, 'EventArraySize'), (1, 'EventArray'), (1, 'Timeout'), (1, 'Flags'), (1, 'Returned')) + +#def EvtCreateRenderContext(ValuePathsCount, ValuePaths, Flags): +# return EvtCreateRenderContext.ctypes_function(ValuePathsCount, ValuePaths, Flags) +EvtCreateRenderContextPrototype = WINFUNCTYPE(EVT_HANDLE, DWORD, POINTER(LPCWSTR), DWORD) +EvtCreateRenderContextParams = ((1, 'ValuePathsCount'), (1, 'ValuePaths'), (1, 'Flags')) + +#def EvtRender(Context, Fragment, Flags, BufferSize, Buffer, BufferUsed, PropertyCount): +# return EvtRender.ctypes_function(Context, Fragment, Flags, BufferSize, Buffer, BufferUsed, PropertyCount) +EvtRenderPrototype = WINFUNCTYPE(BOOL, EVT_HANDLE, EVT_HANDLE, DWORD, DWORD, PVOID, PDWORD, PDWORD) +EvtRenderParams = ((1, 'Context'), (1, 'Fragment'), (1, 'Flags'), (1, 'BufferSize'), (1, 'Buffer'), (1, 'BufferUsed'), (1, 'PropertyCount')) + +#def EvtClose(Object): +# return EvtClose.ctypes_function(Object) +EvtClosePrototype = WINFUNCTYPE(BOOL, EVT_HANDLE) +EvtCloseParams = ((1, 'Object'),) + +#def EvtOpenChannelEnum(Session, Flags): +# return EvtOpenChannelEnum.ctypes_function(Session, Flags) +EvtOpenChannelEnumPrototype = WINFUNCTYPE(EVT_HANDLE, EVT_HANDLE, DWORD) +EvtOpenChannelEnumParams = ((1, 'Session'), (1, 'Flags')) + +#def EvtNextChannelPath(ChannelEnum, ChannelPathBufferSize, ChannelPathBuffer, ChannelPathBufferUsed): +# return EvtNextChannelPath.ctypes_function(ChannelEnum, ChannelPathBufferSize, ChannelPathBuffer, ChannelPathBufferUsed) +EvtNextChannelPathPrototype = WINFUNCTYPE(BOOL, EVT_HANDLE, DWORD, LPWSTR, PDWORD) +EvtNextChannelPathParams = ((1, 'ChannelEnum'), (1, 'ChannelPathBufferSize'), (1, 'ChannelPathBuffer'), (1, 'ChannelPathBufferUsed')) + +#def EvtOpenPublisherEnum(Session, Flags): +# return EvtOpenPublisherEnum.ctypes_function(Session, Flags) +EvtOpenPublisherEnumPrototype = WINFUNCTYPE(EVT_HANDLE, EVT_HANDLE, DWORD) +EvtOpenPublisherEnumParams = ((1, 'Session'), (1, 'Flags')) + +#def EvtNextPublisherId(PublisherEnum, PublisherIdBufferSize, PublisherIdBuffer, PublisherIdBufferUsed): +# return EvtNextPublisherId.ctypes_function(PublisherEnum, PublisherIdBufferSize, PublisherIdBuffer, PublisherIdBufferUsed) +EvtNextPublisherIdPrototype = WINFUNCTYPE(BOOL, EVT_HANDLE, DWORD, LPWSTR, PDWORD) +EvtNextPublisherIdParams = ((1, 'PublisherEnum'), (1, 'PublisherIdBufferSize'), (1, 'PublisherIdBuffer'), (1, 'PublisherIdBufferUsed')) + +#def EvtGetLogInfo(Log, PropertyId, PropertyValueBufferSize, PropertyValueBuffer, PropertyValueBufferUsed): +# return EvtGetLogInfo.ctypes_function(Log, PropertyId, PropertyValueBufferSize, PropertyValueBuffer, PropertyValueBufferUsed) +EvtGetLogInfoPrototype = WINFUNCTYPE(BOOL, EVT_HANDLE, EVT_LOG_PROPERTY_ID, DWORD, PEVT_VARIANT, PDWORD) +EvtGetLogInfoParams = ((1, 'Log'), (1, 'PropertyId'), (1, 'PropertyValueBufferSize'), (1, 'PropertyValueBuffer'), (1, 'PropertyValueBufferUsed')) + +#def EvtOpenChannelConfig(Session, ChannelPath, Flags): +# return EvtOpenChannelConfig.ctypes_function(Session, ChannelPath, Flags) +EvtOpenChannelConfigPrototype = WINFUNCTYPE(EVT_HANDLE, EVT_HANDLE, LPCWSTR, DWORD) +EvtOpenChannelConfigParams = ((1, 'Session'), (1, 'ChannelPath'), (1, 'Flags')) + +#def EvtGetChannelConfigProperty(ChannelConfig, PropertyId, Flags, PropertyValueBufferSize, PropertyValueBuffer, PropertyValueBufferUsed): +# return EvtGetChannelConfigProperty.ctypes_function(ChannelConfig, PropertyId, Flags, PropertyValueBufferSize, PropertyValueBuffer, PropertyValueBufferUsed) +EvtGetChannelConfigPropertyPrototype = WINFUNCTYPE(BOOL, EVT_HANDLE, EVT_CHANNEL_CONFIG_PROPERTY_ID, DWORD, DWORD, PEVT_VARIANT, PDWORD) +EvtGetChannelConfigPropertyParams = ((1, 'ChannelConfig'), (1, 'PropertyId'), (1, 'Flags'), (1, 'PropertyValueBufferSize'), (1, 'PropertyValueBuffer'), (1, 'PropertyValueBufferUsed')) + +#def EvtOpenPublisherMetadata(Session, PublisherIdentity, LogFilePath, Locale, Flags): +# return EvtOpenPublisherMetadata.ctypes_function(Session, PublisherIdentity, LogFilePath, Locale, Flags) +EvtOpenPublisherMetadataPrototype = WINFUNCTYPE(EVT_HANDLE, EVT_HANDLE, LPCWSTR, LPCWSTR, LCID, DWORD) +EvtOpenPublisherMetadataParams = ((1, 'Session'), (1, 'PublisherIdentity'), (1, 'LogFilePath'), (1, 'Locale'), (1, 'Flags')) + +#def EvtOpenEventMetadataEnum(PublisherMetadata, Flags): +# return EvtOpenEventMetadataEnum.ctypes_function(PublisherMetadata, Flags) +EvtOpenEventMetadataEnumPrototype = WINFUNCTYPE(EVT_HANDLE, EVT_HANDLE, DWORD) +EvtOpenEventMetadataEnumParams = ((1, 'PublisherMetadata'), (1, 'Flags')) + +#def EvtNextEventMetadata(EventMetadataEnum, Flags): +# return EvtNextEventMetadata.ctypes_function(EventMetadataEnum, Flags) +EvtNextEventMetadataPrototype = WINFUNCTYPE(EVT_HANDLE, EVT_HANDLE, DWORD) +EvtNextEventMetadataParams = ((1, 'EventMetadataEnum'), (1, 'Flags')) + +#def EvtGetEventMetadataProperty(EventMetadata, PropertyId, Flags, EventMetadataPropertyBufferSize, EventMetadataPropertyBuffer, EventMetadataPropertyBufferUsed): +# return EvtGetEventMetadataProperty.ctypes_function(EventMetadata, PropertyId, Flags, EventMetadataPropertyBufferSize, EventMetadataPropertyBuffer, EventMetadataPropertyBufferUsed) +EvtGetEventMetadataPropertyPrototype = WINFUNCTYPE(BOOL, EVT_HANDLE, EVT_EVENT_METADATA_PROPERTY_ID, DWORD, DWORD, PEVT_VARIANT, PDWORD) +EvtGetEventMetadataPropertyParams = ((1, 'EventMetadata'), (1, 'PropertyId'), (1, 'Flags'), (1, 'EventMetadataPropertyBufferSize'), (1, 'EventMetadataPropertyBuffer'), (1, 'EventMetadataPropertyBufferUsed')) + +#def EvtGetPublisherMetadataProperty(PublisherMetadata, PropertyId, Flags, PublisherMetadataPropertyBufferSize, PublisherMetadataPropertyBuffer, PublisherMetadataPropertyBufferUsed): +# return EvtGetPublisherMetadataProperty.ctypes_function(PublisherMetadata, PropertyId, Flags, PublisherMetadataPropertyBufferSize, PublisherMetadataPropertyBuffer, PublisherMetadataPropertyBufferUsed) +EvtGetPublisherMetadataPropertyPrototype = WINFUNCTYPE(BOOL, EVT_HANDLE, EVT_PUBLISHER_METADATA_PROPERTY_ID, DWORD, DWORD, PEVT_VARIANT, PDWORD) +EvtGetPublisherMetadataPropertyParams = ((1, 'PublisherMetadata'), (1, 'PropertyId'), (1, 'Flags'), (1, 'PublisherMetadataPropertyBufferSize'), (1, 'PublisherMetadataPropertyBuffer'), (1, 'PublisherMetadataPropertyBufferUsed')) + +#def EvtGetObjectArraySize(ObjectArray, ObjectArraySize): +# return EvtGetObjectArraySize.ctypes_function(ObjectArray, ObjectArraySize) +EvtGetObjectArraySizePrototype = WINFUNCTYPE(BOOL, EVT_OBJECT_ARRAY_PROPERTY_HANDLE, PDWORD) +EvtGetObjectArraySizeParams = ((1, 'ObjectArray'), (1, 'ObjectArraySize')) + +#def EvtGetObjectArrayProperty(ObjectArray, PropertyId, ArrayIndex, Flags, PropertyValueBufferSize, PropertyValueBuffer, PropertyValueBufferUsed): +# return EvtGetObjectArrayProperty.ctypes_function(ObjectArray, PropertyId, ArrayIndex, Flags, PropertyValueBufferSize, PropertyValueBuffer, PropertyValueBufferUsed) +EvtGetObjectArrayPropertyPrototype = WINFUNCTYPE(BOOL, EVT_OBJECT_ARRAY_PROPERTY_HANDLE, DWORD, DWORD, DWORD, DWORD, PEVT_VARIANT, PDWORD) +EvtGetObjectArrayPropertyParams = ((1, 'ObjectArray'), (1, 'PropertyId'), (1, 'ArrayIndex'), (1, 'Flags'), (1, 'PropertyValueBufferSize'), (1, 'PropertyValueBuffer'), (1, 'PropertyValueBufferUsed')) + +#def EvtFormatMessage(PublisherMetadata, Event, MessageId, ValueCount, Values, Flags, BufferSize, Buffer, BufferUsed): +# return EvtFormatMessage.ctypes_function(PublisherMetadata, Event, MessageId, ValueCount, Values, Flags, BufferSize, Buffer, BufferUsed) +EvtFormatMessagePrototype = WINFUNCTYPE(BOOL, EVT_HANDLE, EVT_HANDLE, DWORD, DWORD, PEVT_VARIANT, DWORD, DWORD, LPWSTR, PDWORD) +EvtFormatMessageParams = ((1, 'PublisherMetadata'), (1, 'Event'), (1, 'MessageId'), (1, 'ValueCount'), (1, 'Values'), (1, 'Flags'), (1, 'BufferSize'), (1, 'Buffer'), (1, 'BufferUsed')) + +#def EvtSeek(ResultSet, Position, Bookmark, Timeout, Flags): +# return EvtSeek.ctypes_function(ResultSet, Position, Bookmark, Timeout, Flags) +EvtSeekPrototype = WINFUNCTYPE(BOOL, EVT_HANDLE, LONGLONG, EVT_HANDLE, DWORD, DWORD) +EvtSeekParams = ((1, 'ResultSet'), (1, 'Position'), (1, 'Bookmark'), (1, 'Timeout'), (1, 'Flags')) + +#def FindFirstFileA(lpFileName, lpFindFileData): +# return FindFirstFileA.ctypes_function(lpFileName, lpFindFileData) +FindFirstFileAPrototype = WINFUNCTYPE(HANDLE, LPCSTR, LPWIN32_FIND_DATAA) +FindFirstFileAParams = ((1, 'lpFileName'), (1, 'lpFindFileData')) + +#def FindFirstFileW(lpFileName, lpFindFileData): +# return FindFirstFileW.ctypes_function(lpFileName, lpFindFileData) +FindFirstFileWPrototype = WINFUNCTYPE(HANDLE, LPCWSTR, LPWIN32_FIND_DATAW) +FindFirstFileWParams = ((1, 'lpFileName'), (1, 'lpFindFileData')) + +#def FindNextFileA(hFindFile, lpFindFileData): +# return FindNextFileA.ctypes_function(hFindFile, lpFindFileData) +FindNextFileAPrototype = WINFUNCTYPE(BOOL, HANDLE, LPWIN32_FIND_DATAA) +FindNextFileAParams = ((1, 'hFindFile'), (1, 'lpFindFileData')) + +#def FindNextFileW(hFindFile, lpFindFileData): +# return FindNextFileW.ctypes_function(hFindFile, lpFindFileData) +FindNextFileWPrototype = WINFUNCTYPE(BOOL, HANDLE, LPWIN32_FIND_DATAW) +FindNextFileWParams = ((1, 'hFindFile'), (1, 'lpFindFileData')) + +#def FindClose(hFindFile): +# return FindClose.ctypes_function(hFindFile) +FindClosePrototype = WINFUNCTYPE(BOOL, HANDLE) +FindCloseParams = ((1, 'hFindFile'),) + +#def FindFirstChangeNotificationA(lpPathName, bWatchSubtree, dwNotifyFilter): +# return FindFirstChangeNotificationA.ctypes_function(lpPathName, bWatchSubtree, dwNotifyFilter) +FindFirstChangeNotificationAPrototype = WINFUNCTYPE(HANDLE, LPCSTR, BOOL, DWORD) +FindFirstChangeNotificationAParams = ((1, 'lpPathName'), (1, 'bWatchSubtree'), (1, 'dwNotifyFilter')) + +#def FindFirstChangeNotificationW(lpPathName, bWatchSubtree, dwNotifyFilter): +# return FindFirstChangeNotificationW.ctypes_function(lpPathName, bWatchSubtree, dwNotifyFilter) +FindFirstChangeNotificationWPrototype = WINFUNCTYPE(HANDLE, LPCWSTR, BOOL, DWORD) +FindFirstChangeNotificationWParams = ((1, 'lpPathName'), (1, 'bWatchSubtree'), (1, 'dwNotifyFilter')) + +#def FindNextChangeNotification(hChangeHandle): +# return FindNextChangeNotification.ctypes_function(hChangeHandle) +FindNextChangeNotificationPrototype = WINFUNCTYPE(BOOL, HANDLE) +FindNextChangeNotificationParams = ((1, 'hChangeHandle'),) + +#def FindCloseChangeNotification(hChangeHandle): +# return FindCloseChangeNotification.ctypes_function(hChangeHandle) +FindCloseChangeNotificationPrototype = WINFUNCTYPE(BOOL, HANDLE) +FindCloseChangeNotificationParams = ((1, 'hChangeHandle'),) + +#def FindNextChangeNotification(hChangeHandle): +# return FindNextChangeNotification.ctypes_function(hChangeHandle) +FindNextChangeNotificationPrototype = WINFUNCTYPE(BOOL, HANDLE) +FindNextChangeNotificationParams = ((1, 'hChangeHandle'),) + +#def ReadDirectoryChangesW(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine): +# return ReadDirectoryChangesW.ctypes_function(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine) +ReadDirectoryChangesWPrototype = WINFUNCTYPE(BOOL, HANDLE, LPVOID, DWORD, BOOL, DWORD, LPDWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE) +ReadDirectoryChangesWParams = ((1, 'hDirectory'), (1, 'lpBuffer'), (1, 'nBufferLength'), (1, 'bWatchSubtree'), (1, 'dwNotifyFilter'), (1, 'lpBytesReturned'), (1, 'lpOverlapped'), (1, 'lpCompletionRoutine')) + +#def ReadDirectoryChangesExW(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine, ReadDirectoryNotifyInformationClass): +# return ReadDirectoryChangesExW.ctypes_function(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine, ReadDirectoryNotifyInformationClass) +ReadDirectoryChangesExWPrototype = WINFUNCTYPE(BOOL, HANDLE, LPVOID, DWORD, BOOL, DWORD, LPDWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE, READ_DIRECTORY_NOTIFY_INFORMATION_CLASS) +ReadDirectoryChangesExWParams = ((1, 'hDirectory'), (1, 'lpBuffer'), (1, 'nBufferLength'), (1, 'bWatchSubtree'), (1, 'dwNotifyFilter'), (1, 'lpBytesReturned'), (1, 'lpOverlapped'), (1, 'lpCompletionRoutine'), (1, 'ReadDirectoryNotifyInformationClass')) + +#def HeapAlloc(hHeap, dwFlags, dwBytes): +# return HeapAlloc.ctypes_function(hHeap, dwFlags, dwBytes) +HeapAllocPrototype = WINFUNCTYPE(LPVOID, HANDLE, DWORD, SIZE_T) +HeapAllocParams = ((1, 'hHeap'), (1, 'dwFlags'), (1, 'dwBytes')) + +#def InternetCheckConnectionA(lpszUrl, dwFlags, dwReserved): +# return InternetCheckConnectionA.ctypes_function(lpszUrl, dwFlags, dwReserved) +InternetCheckConnectionAPrototype = WINFUNCTYPE(BOOL, LPCSTR, DWORD, DWORD) +InternetCheckConnectionAParams = ((1, 'lpszUrl'), (1, 'dwFlags'), (1, 'dwReserved')) + +#def InternetCheckConnectionW(lpszUrl, dwFlags, dwReserved): +# return InternetCheckConnectionW.ctypes_function(lpszUrl, dwFlags, dwReserved) +InternetCheckConnectionWPrototype = WINFUNCTYPE(BOOL, LPCWSTR, DWORD, DWORD) +InternetCheckConnectionWParams = ((1, 'lpszUrl'), (1, 'dwFlags'), (1, 'dwReserved')) + +#def InternetOpenA(lpszAgent, dwAccessType, lpszProxy, lpszProxyBypass, dwFlags): +# return InternetOpenA.ctypes_function(lpszAgent, dwAccessType, lpszProxy, lpszProxyBypass, dwFlags) +InternetOpenAPrototype = WINFUNCTYPE(HINTERNET, LPCSTR, DWORD, LPCSTR, LPCSTR, DWORD) +InternetOpenAParams = ((1, 'lpszAgent'), (1, 'dwAccessType'), (1, 'lpszProxy'), (1, 'lpszProxyBypass'), (1, 'dwFlags')) + +#def InternetOpenW(lpszAgent, dwAccessType, lpszProxy, lpszProxyBypass, dwFlags): +# return InternetOpenW.ctypes_function(lpszAgent, dwAccessType, lpszProxy, lpszProxyBypass, dwFlags) +InternetOpenWPrototype = WINFUNCTYPE(HINTERNET, LPCWSTR, DWORD, LPCWSTR, LPCWSTR, DWORD) +InternetOpenWParams = ((1, 'lpszAgent'), (1, 'dwAccessType'), (1, 'lpszProxy'), (1, 'lpszProxyBypass'), (1, 'dwFlags')) + +#def InternetOpenUrlA(hInternet, lpszUrl, lpszHeaders, dwHeadersLength, dwFlags, dwContext): +# return InternetOpenUrlA.ctypes_function(hInternet, lpszUrl, lpszHeaders, dwHeadersLength, dwFlags, dwContext) +InternetOpenUrlAPrototype = WINFUNCTYPE(HINTERNET, HINTERNET, LPCSTR, LPCSTR, DWORD, DWORD, DWORD_PTR) +InternetOpenUrlAParams = ((1, 'hInternet'), (1, 'lpszUrl'), (1, 'lpszHeaders'), (1, 'dwHeadersLength'), (1, 'dwFlags'), (1, 'dwContext')) + +#def InternetOpenUrlW(hInternet, lpszUrl, lpszHeaders, dwHeadersLength, dwFlags, dwContext): +# return InternetOpenUrlW.ctypes_function(hInternet, lpszUrl, lpszHeaders, dwHeadersLength, dwFlags, dwContext) +InternetOpenUrlWPrototype = WINFUNCTYPE(HINTERNET, HINTERNET, LPCWSTR, LPCWSTR, DWORD, DWORD, DWORD_PTR) +InternetOpenUrlWParams = ((1, 'hInternet'), (1, 'lpszUrl'), (1, 'lpszHeaders'), (1, 'dwHeadersLength'), (1, 'dwFlags'), (1, 'dwContext')) + +#def InternetConnectA(hInternet, lpszServerName, nServerPort, lpszUserName, lpszPassword, dwService, dwFlags, dwContext): +# return InternetConnectA.ctypes_function(hInternet, lpszServerName, nServerPort, lpszUserName, lpszPassword, dwService, dwFlags, dwContext) +InternetConnectAPrototype = WINFUNCTYPE(HINTERNET, HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR, DWORD, DWORD, DWORD_PTR) +InternetConnectAParams = ((1, 'hInternet'), (1, 'lpszServerName'), (1, 'nServerPort'), (1, 'lpszUserName'), (1, 'lpszPassword'), (1, 'dwService'), (1, 'dwFlags'), (1, 'dwContext')) + +#def InternetConnectW(hInternet, lpszServerName, nServerPort, lpszUserName, lpszPassword, dwService, dwFlags, dwContext): +# return InternetConnectW.ctypes_function(hInternet, lpszServerName, nServerPort, lpszUserName, lpszPassword, dwService, dwFlags, dwContext) +InternetConnectWPrototype = WINFUNCTYPE(HINTERNET, HINTERNET, LPCWSTR, INTERNET_PORT, LPCWSTR, LPCWSTR, DWORD, DWORD, DWORD_PTR) +InternetConnectWParams = ((1, 'hInternet'), (1, 'lpszServerName'), (1, 'nServerPort'), (1, 'lpszUserName'), (1, 'lpszPassword'), (1, 'dwService'), (1, 'dwFlags'), (1, 'dwContext')) + +#def HttpOpenRequestA(hConnect, lpszVerb, lpszObjectName, lpszVersion, lpszReferrer, lplpszAcceptTypes, dwFlags, dwContext): +# return HttpOpenRequestA.ctypes_function(hConnect, lpszVerb, lpszObjectName, lpszVersion, lpszReferrer, lplpszAcceptTypes, dwFlags, dwContext) +HttpOpenRequestAPrototype = WINFUNCTYPE(HINTERNET, HINTERNET, LPCSTR, LPCSTR, LPCSTR, LPCSTR, POINTER(LPCSTR), DWORD, DWORD_PTR) +HttpOpenRequestAParams = ((1, 'hConnect'), (1, 'lpszVerb'), (1, 'lpszObjectName'), (1, 'lpszVersion'), (1, 'lpszReferrer'), (1, 'lplpszAcceptTypes'), (1, 'dwFlags'), (1, 'dwContext')) + +#def HttpOpenRequestW(hConnect, lpszVerb, lpszObjectName, lpszVersion, lpszReferrer, lplpszAcceptTypes, dwFlags, dwContext): +# return HttpOpenRequestW.ctypes_function(hConnect, lpszVerb, lpszObjectName, lpszVersion, lpszReferrer, lplpszAcceptTypes, dwFlags, dwContext) +HttpOpenRequestWPrototype = WINFUNCTYPE(HINTERNET, HINTERNET, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, POINTER(LPCWSTR), DWORD, DWORD_PTR) +HttpOpenRequestWParams = ((1, 'hConnect'), (1, 'lpszVerb'), (1, 'lpszObjectName'), (1, 'lpszVersion'), (1, 'lpszReferrer'), (1, 'lplpszAcceptTypes'), (1, 'dwFlags'), (1, 'dwContext')) + +#def InternetSetOptionA(hInternet, dwOption, lpBuffer, dwBufferLength): +# return InternetSetOptionA.ctypes_function(hInternet, dwOption, lpBuffer, dwBufferLength) +InternetSetOptionAPrototype = WINFUNCTYPE(BOOL, HINTERNET, DWORD, LPVOID, DWORD) +InternetSetOptionAParams = ((1, 'hInternet'), (1, 'dwOption'), (1, 'lpBuffer'), (1, 'dwBufferLength')) + +#def InternetSetOptionW(hInternet, dwOption, lpBuffer, dwBufferLength): +# return InternetSetOptionW.ctypes_function(hInternet, dwOption, lpBuffer, dwBufferLength) +InternetSetOptionWPrototype = WINFUNCTYPE(BOOL, HINTERNET, DWORD, LPVOID, DWORD) +InternetSetOptionWParams = ((1, 'hInternet'), (1, 'dwOption'), (1, 'lpBuffer'), (1, 'dwBufferLength')) + +#def HttpSendRequestA(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength): +# return HttpSendRequestA.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength) +HttpSendRequestAPrototype = WINFUNCTYPE(BOOL, HINTERNET, LPCSTR, DWORD, LPVOID, DWORD) +HttpSendRequestAParams = ((1, 'hRequest'), (1, 'lpszHeaders'), (1, 'dwHeadersLength'), (1, 'lpOptional'), (1, 'dwOptionalLength')) + +#def HttpSendRequestW(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength): +# return HttpSendRequestW.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength) +HttpSendRequestWPrototype = WINFUNCTYPE(BOOL, HINTERNET, LPCWSTR, DWORD, LPVOID, DWORD) +HttpSendRequestWParams = ((1, 'hRequest'), (1, 'lpszHeaders'), (1, 'dwHeadersLength'), (1, 'lpOptional'), (1, 'dwOptionalLength')) + +#def InternetReadFile(hFile, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead): +# return InternetReadFile.ctypes_function(hFile, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead) +InternetReadFilePrototype = WINFUNCTYPE(BOOL, HINTERNET, LPVOID, DWORD, LPDWORD) +InternetReadFileParams = ((1, 'hFile'), (1, 'lpBuffer'), (1, 'dwNumberOfBytesToRead'), (1, 'lpdwNumberOfBytesRead')) + +#def InternetReadFileExA(hFile, lpBuffersOut, dwFlags, dwContext): +# return InternetReadFileExA.ctypes_function(hFile, lpBuffersOut, dwFlags, dwContext) +InternetReadFileExAPrototype = WINFUNCTYPE(BOOL, HINTERNET, LPINTERNET_BUFFERSA, DWORD, DWORD_PTR) +InternetReadFileExAParams = ((1, 'hFile'), (1, 'lpBuffersOut'), (1, 'dwFlags'), (1, 'dwContext')) + +#def InternetReadFileExW(hFile, lpBuffersOut, dwFlags, dwContext): +# return InternetReadFileExW.ctypes_function(hFile, lpBuffersOut, dwFlags, dwContext) +InternetReadFileExWPrototype = WINFUNCTYPE(BOOL, HINTERNET, LPINTERNET_BUFFERSW, DWORD, DWORD_PTR) +InternetReadFileExWParams = ((1, 'hFile'), (1, 'lpBuffersOut'), (1, 'dwFlags'), (1, 'dwContext')) + +#def HttpQueryInfoA(hRequest, dwInfoLevel, lpBuffer, lpdwBufferLength, lpdwIndex): +# return HttpQueryInfoA.ctypes_function(hRequest, dwInfoLevel, lpBuffer, lpdwBufferLength, lpdwIndex) +HttpQueryInfoAPrototype = WINFUNCTYPE(BOOL, HINTERNET, DWORD, LPVOID, LPDWORD, LPDWORD) +HttpQueryInfoAParams = ((1, 'hRequest'), (1, 'dwInfoLevel'), (1, 'lpBuffer'), (1, 'lpdwBufferLength'), (1, 'lpdwIndex')) + +#def HttpQueryInfoW(hRequest, dwInfoLevel, lpBuffer, lpdwBufferLength, lpdwIndex): +# return HttpQueryInfoW.ctypes_function(hRequest, dwInfoLevel, lpBuffer, lpdwBufferLength, lpdwIndex) +HttpQueryInfoWPrototype = WINFUNCTYPE(BOOL, HINTERNET, DWORD, LPVOID, LPDWORD, LPDWORD) +HttpQueryInfoWParams = ((1, 'hRequest'), (1, 'dwInfoLevel'), (1, 'lpBuffer'), (1, 'lpdwBufferLength'), (1, 'lpdwIndex')) + +#def HttpSendRequestA(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength): +# return HttpSendRequestA.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength) +HttpSendRequestAPrototype = WINFUNCTYPE(BOOL, HINTERNET, LPCSTR, DWORD, LPVOID, DWORD) +HttpSendRequestAParams = ((1, 'hRequest'), (1, 'lpszHeaders'), (1, 'dwHeadersLength'), (1, 'lpOptional'), (1, 'dwOptionalLength')) + +#def HttpSendRequestW(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength): +# return HttpSendRequestW.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength) +HttpSendRequestWPrototype = WINFUNCTYPE(BOOL, HINTERNET, LPCWSTR, DWORD, LPVOID, DWORD) +HttpSendRequestWParams = ((1, 'hRequest'), (1, 'lpszHeaders'), (1, 'dwHeadersLength'), (1, 'lpOptional'), (1, 'dwOptionalLength')) + +#def WinHttpOpen(pszAgentW, dwAccessType, pszProxyW, pszProxyBypassW, dwFlags): +# return WinHttpOpen.ctypes_function(pszAgentW, dwAccessType, pszProxyW, pszProxyBypassW, dwFlags) +WinHttpOpenPrototype = WINFUNCTYPE(HINTERNET, LPCWSTR, DWORD, LPCWSTR, LPCWSTR, DWORD) +WinHttpOpenParams = ((1, 'pszAgentW'), (1, 'dwAccessType'), (1, 'pszProxyW'), (1, 'pszProxyBypassW'), (1, 'dwFlags')) + +#def WinHttpCloseHandle(hInternet): +# return WinHttpCloseHandle.ctypes_function(hInternet) +WinHttpCloseHandlePrototype = WINFUNCTYPE(BOOL, HINTERNET) +WinHttpCloseHandleParams = ((1, 'hInternet'),) + +#def WinHttpConnect(hSession, pswzServerName, nServerPort, dwReserved): +# return WinHttpConnect.ctypes_function(hSession, pswzServerName, nServerPort, dwReserved) +WinHttpConnectPrototype = WINFUNCTYPE(HINTERNET, HINTERNET, LPCWSTR, INTERNET_PORT, DWORD) +WinHttpConnectParams = ((1, 'hSession'), (1, 'pswzServerName'), (1, 'nServerPort'), (1, 'dwReserved')) + +#def WinHttpQueryDataAvailable(hRequest, lpdwNumberOfBytesAvailable): +# return WinHttpQueryDataAvailable.ctypes_function(hRequest, lpdwNumberOfBytesAvailable) +WinHttpQueryDataAvailablePrototype = WINFUNCTYPE(BOOL, HINTERNET, LPDWORD) +WinHttpQueryDataAvailableParams = ((1, 'hRequest'), (1, 'lpdwNumberOfBytesAvailable')) + +#def WinHttpReadData(hRequest, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead): +# return WinHttpReadData.ctypes_function(hRequest, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead) +WinHttpReadDataPrototype = WINFUNCTYPE(BOOL, HINTERNET, LPVOID, DWORD, LPDWORD) +WinHttpReadDataParams = ((1, 'hRequest'), (1, 'lpBuffer'), (1, 'dwNumberOfBytesToRead'), (1, 'lpdwNumberOfBytesRead')) + +#def WinHttpOpenRequest(hConnect, pwszVerb, pwszObjectName, pwszVersion, pwszReferrer, ppwszAcceptTypes, dwFlags): +# return WinHttpOpenRequest.ctypes_function(hConnect, pwszVerb, pwszObjectName, pwszVersion, pwszReferrer, ppwszAcceptTypes, dwFlags) +WinHttpOpenRequestPrototype = WINFUNCTYPE(HINTERNET, HINTERNET, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, POINTER(LPCWSTR), DWORD) +WinHttpOpenRequestParams = ((1, 'hConnect'), (1, 'pwszVerb'), (1, 'pwszObjectName'), (1, 'pwszVersion'), (1, 'pwszReferrer'), (1, 'ppwszAcceptTypes'), (1, 'dwFlags')) + +#def WinHttpSendRequest(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength, dwTotalLength, dwContext): +# return WinHttpSendRequest.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength, dwTotalLength, dwContext) +WinHttpSendRequestPrototype = WINFUNCTYPE(BOOL, HINTERNET, LPCWSTR, DWORD, LPVOID, DWORD, DWORD, DWORD_PTR) +WinHttpSendRequestParams = ((1, 'hRequest'), (1, 'lpszHeaders'), (1, 'dwHeadersLength'), (1, 'lpOptional'), (1, 'dwOptionalLength'), (1, 'dwTotalLength'), (1, 'dwContext')) + +#def WinHttpReceiveResponse(hRequest, lpReserved): +# return WinHttpReceiveResponse.ctypes_function(hRequest, lpReserved) +WinHttpReceiveResponsePrototype = WINFUNCTYPE(BOOL, HINTERNET, LPVOID) +WinHttpReceiveResponseParams = ((1, 'hRequest'), (1, 'lpReserved')) + +#def WinHttpAddRequestHeaders(hRequest, lpszHeaders, dwHeadersLength, dwModifiers): +# return WinHttpAddRequestHeaders.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, dwModifiers) +WinHttpAddRequestHeadersPrototype = WINFUNCTYPE(BOOL, HINTERNET, LPCWSTR, DWORD, DWORD) +WinHttpAddRequestHeadersParams = ((1, 'hRequest'), (1, 'lpszHeaders'), (1, 'dwHeadersLength'), (1, 'dwModifiers')) + +#def WinHttpQueryHeaders(hRequest, dwInfoLevel, pwszName, lpBuffer, lpdwBufferLength, lpdwIndex): +# return WinHttpQueryHeaders.ctypes_function(hRequest, dwInfoLevel, pwszName, lpBuffer, lpdwBufferLength, lpdwIndex) +WinHttpQueryHeadersPrototype = WINFUNCTYPE(BOOL, HINTERNET, DWORD, LPCWSTR, LPVOID, LPDWORD, LPDWORD) +WinHttpQueryHeadersParams = ((1, 'hRequest'), (1, 'dwInfoLevel'), (1, 'pwszName'), (1, 'lpBuffer'), (1, 'lpdwBufferLength'), (1, 'lpdwIndex')) + +#def LsaOpenPolicy(SystemName, ObjectAttributes, DesiredAccess, PolicyHandle): +# return LsaOpenPolicy.ctypes_function(SystemName, ObjectAttributes, DesiredAccess, PolicyHandle) +LsaOpenPolicyPrototype = WINFUNCTYPE(NTSTATUS, PLSA_UNICODE_STRING, PLSA_OBJECT_ATTRIBUTES, ACCESS_MASK, PLSA_HANDLE) +LsaOpenPolicyParams = ((1, 'SystemName'), (1, 'ObjectAttributes'), (1, 'DesiredAccess'), (1, 'PolicyHandle')) + +#def LsaQueryInformationPolicy(PolicyHandle, InformationClass, Buffer): +# return LsaQueryInformationPolicy.ctypes_function(PolicyHandle, InformationClass, Buffer) +LsaQueryInformationPolicyPrototype = WINFUNCTYPE(NTSTATUS, LSA_HANDLE, POLICY_INFORMATION_CLASS, POINTER(PVOID)) +LsaQueryInformationPolicyParams = ((1, 'PolicyHandle'), (1, 'InformationClass'), (1, 'Buffer')) + +#def LsaClose(ObjectHandle): +# return LsaClose.ctypes_function(ObjectHandle) +LsaClosePrototype = WINFUNCTYPE(NTSTATUS, LSA_HANDLE) +LsaCloseParams = ((1, 'ObjectHandle'),) + +#def LsaNtStatusToWinError(Status): +# return LsaNtStatusToWinError.ctypes_function(Status) +LsaNtStatusToWinErrorPrototype = WINFUNCTYPE(ULONG, NTSTATUS) +LsaNtStatusToWinErrorParams = ((1, 'Status'),) + +#def LsaLookupNames(PolicyHandle, Count, Names, ReferencedDomains, Sids): +# return LsaLookupNames.ctypes_function(PolicyHandle, Count, Names, ReferencedDomains, Sids) +LsaLookupNamesPrototype = WINFUNCTYPE(NTSTATUS, LSA_HANDLE, ULONG, PLSA_UNICODE_STRING, POINTER(PLSA_REFERENCED_DOMAIN_LIST), POINTER(PLSA_TRANSLATED_SID)) +LsaLookupNamesParams = ((1, 'PolicyHandle'), (1, 'Count'), (1, 'Names'), (1, 'ReferencedDomains'), (1, 'Sids')) + +#def LsaLookupNames2(PolicyHandle, Flags, Count, Names, ReferencedDomains, Sids): +# return LsaLookupNames2.ctypes_function(PolicyHandle, Flags, Count, Names, ReferencedDomains, Sids) +LsaLookupNames2Prototype = WINFUNCTYPE(NTSTATUS, LSA_HANDLE, ULONG, ULONG, PLSA_UNICODE_STRING, POINTER(PLSA_REFERENCED_DOMAIN_LIST), POINTER(PLSA_TRANSLATED_SID2)) +LsaLookupNames2Params = ((1, 'PolicyHandle'), (1, 'Flags'), (1, 'Count'), (1, 'Names'), (1, 'ReferencedDomains'), (1, 'Sids')) + +#def LsaLookupSids(PolicyHandle, Count, Sids, ReferencedDomains, Names): +# return LsaLookupSids.ctypes_function(PolicyHandle, Count, Sids, ReferencedDomains, Names) +LsaLookupSidsPrototype = WINFUNCTYPE(NTSTATUS, LSA_HANDLE, ULONG, POINTER(PSID), POINTER(PLSA_REFERENCED_DOMAIN_LIST), POINTER(PLSA_TRANSLATED_NAME)) +LsaLookupSidsParams = ((1, 'PolicyHandle'), (1, 'Count'), (1, 'Sids'), (1, 'ReferencedDomains'), (1, 'Names')) + +#def LsaLookupSids2(PolicyHandle, LookupOptions, Count, Sids, ReferencedDomains, Names): +# return LsaLookupSids2.ctypes_function(PolicyHandle, LookupOptions, Count, Sids, ReferencedDomains, Names) +LsaLookupSids2Prototype = WINFUNCTYPE(NTSTATUS, LSA_HANDLE, ULONG, ULONG, POINTER(PSID), POINTER(PLSA_REFERENCED_DOMAIN_LIST), POINTER(PLSA_TRANSLATED_NAME)) +LsaLookupSids2Params = ((1, 'PolicyHandle'), (1, 'LookupOptions'), (1, 'Count'), (1, 'Sids'), (1, 'ReferencedDomains'), (1, 'Names')) + +#def OpenFileMappingW(dwDesiredAccess, bInheritHandle, lpName): +# return OpenFileMappingW.ctypes_function(dwDesiredAccess, bInheritHandle, lpName) +OpenFileMappingWPrototype = WINFUNCTYPE(HANDLE, DWORD, BOOL, LPCWSTR) +OpenFileMappingWParams = ((1, 'dwDesiredAccess'), (1, 'bInheritHandle'), (1, 'lpName')) + +#def OpenFileMappingA(dwDesiredAccess, bInheritHandle, lpName): +# return OpenFileMappingA.ctypes_function(dwDesiredAccess, bInheritHandle, lpName) +OpenFileMappingAPrototype = WINFUNCTYPE(HANDLE, DWORD, BOOL, LPCSTR) +OpenFileMappingAParams = ((1, 'dwDesiredAccess'), (1, 'bInheritHandle'), (1, 'lpName')) + +#def UnmapViewOfFile(lpBaseAddress): +# return UnmapViewOfFile.ctypes_function(lpBaseAddress) +UnmapViewOfFilePrototype = WINFUNCTYPE(BOOL, LPCVOID) +UnmapViewOfFileParams = ((1, 'lpBaseAddress'),) + +#def NetLocalGroupGetMembers(servername, localgroupname, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle): +# return NetLocalGroupGetMembers.ctypes_function(servername, localgroupname, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle) +NetLocalGroupGetMembersPrototype = WINFUNCTYPE(NET_API_STATUS, LPCWSTR, LPCWSTR, DWORD, POINTER(LPBYTE), DWORD, LPDWORD, LPDWORD, PDWORD_PTR) +NetLocalGroupGetMembersParams = ((1, 'servername'), (1, 'localgroupname'), (1, 'level'), (1, 'bufptr'), (1, 'prefmaxlen'), (1, 'entriesread'), (1, 'totalentries'), (1, 'resumehandle')) + +#def NetQueryDisplayInformation(ServerName, Level, Index, EntriesRequested, PreferredMaximumLength, ReturnedEntryCount, SortedBuffer): +# return NetQueryDisplayInformation.ctypes_function(ServerName, Level, Index, EntriesRequested, PreferredMaximumLength, ReturnedEntryCount, SortedBuffer) +NetQueryDisplayInformationPrototype = WINFUNCTYPE(NET_API_STATUS, LPCWSTR, DWORD, DWORD, DWORD, DWORD, LPDWORD, POINTER(PVOID)) +NetQueryDisplayInformationParams = ((1, 'ServerName'), (1, 'Level'), (1, 'Index'), (1, 'EntriesRequested'), (1, 'PreferredMaximumLength'), (1, 'ReturnedEntryCount'), (1, 'SortedBuffer')) + +#def NetUserEnum(servername, level, filter, bufptr, prefmaxlen, entriesread, totalentries, resume_handle): +# return NetUserEnum.ctypes_function(servername, level, filter, bufptr, prefmaxlen, entriesread, totalentries, resume_handle) +NetUserEnumPrototype = WINFUNCTYPE(NET_API_STATUS, LPCWSTR, DWORD, DWORD, POINTER(LPBYTE), DWORD, LPDWORD, LPDWORD, PDWORD) +NetUserEnumParams = ((1, 'servername'), (1, 'level'), (1, 'filter'), (1, 'bufptr'), (1, 'prefmaxlen'), (1, 'entriesread'), (1, 'totalentries'), (1, 'resume_handle')) + +#def NetGroupEnum(servername, level, bufptr, prefmaxlen, entriesread, totalentries, resume_handle): +# return NetGroupEnum.ctypes_function(servername, level, bufptr, prefmaxlen, entriesread, totalentries, resume_handle) +NetGroupEnumPrototype = WINFUNCTYPE(NET_API_STATUS, LPCWSTR, DWORD, POINTER(LPBYTE), DWORD, LPDWORD, LPDWORD, PDWORD_PTR) +NetGroupEnumParams = ((1, 'servername'), (1, 'level'), (1, 'bufptr'), (1, 'prefmaxlen'), (1, 'entriesread'), (1, 'totalentries'), (1, 'resume_handle')) + +#def NetGroupGetInfo(servername, groupname, level, bufptr): +# return NetGroupGetInfo.ctypes_function(servername, groupname, level, bufptr) +NetGroupGetInfoPrototype = WINFUNCTYPE(NET_API_STATUS, LPCWSTR, LPCWSTR, DWORD, POINTER(LPBYTE)) +NetGroupGetInfoParams = ((1, 'servername'), (1, 'groupname'), (1, 'level'), (1, 'bufptr')) + +#def NetGroupGetUsers(servername, groupname, level, bufptr, prefmaxlen, entriesread, totalentries, ResumeHandle): +# return NetGroupGetUsers.ctypes_function(servername, groupname, level, bufptr, prefmaxlen, entriesread, totalentries, ResumeHandle) +NetGroupGetUsersPrototype = WINFUNCTYPE(NET_API_STATUS, LPCWSTR, LPCWSTR, DWORD, POINTER(LPBYTE), DWORD, LPDWORD, LPDWORD, PDWORD_PTR) +NetGroupGetUsersParams = ((1, 'servername'), (1, 'groupname'), (1, 'level'), (1, 'bufptr'), (1, 'prefmaxlen'), (1, 'entriesread'), (1, 'totalentries'), (1, 'ResumeHandle')) + +#def NetLocalGroupEnum(servername, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle): +# return NetLocalGroupEnum.ctypes_function(servername, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle) +NetLocalGroupEnumPrototype = WINFUNCTYPE(NET_API_STATUS, LPCWSTR, DWORD, POINTER(LPBYTE), DWORD, LPDWORD, LPDWORD, PDWORD_PTR) +NetLocalGroupEnumParams = ((1, 'servername'), (1, 'level'), (1, 'bufptr'), (1, 'prefmaxlen'), (1, 'entriesread'), (1, 'totalentries'), (1, 'resumehandle')) + +#def NetLocalGroupGetInfo(servername, groupname, level, bufptr): +# return NetLocalGroupGetInfo.ctypes_function(servername, groupname, level, bufptr) +NetLocalGroupGetInfoPrototype = WINFUNCTYPE(NET_API_STATUS, LPCWSTR, LPCWSTR, DWORD, POINTER(LPBYTE)) +NetLocalGroupGetInfoParams = ((1, 'servername'), (1, 'groupname'), (1, 'level'), (1, 'bufptr')) + +#def NetLocalGroupGetMembers(servername, localgroupname, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle): +# return NetLocalGroupGetMembers.ctypes_function(servername, localgroupname, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle) +NetLocalGroupGetMembersPrototype = WINFUNCTYPE(NET_API_STATUS, LPCWSTR, LPCWSTR, DWORD, POINTER(LPBYTE), DWORD, LPDWORD, LPDWORD, PDWORD_PTR) +NetLocalGroupGetMembersParams = ((1, 'servername'), (1, 'localgroupname'), (1, 'level'), (1, 'bufptr'), (1, 'prefmaxlen'), (1, 'entriesread'), (1, 'totalentries'), (1, 'resumehandle')) + +#def NetLocalGroupGetInfo(servername, groupname, level, bufptr): +# return NetLocalGroupGetInfo.ctypes_function(servername, groupname, level, bufptr) +NetLocalGroupGetInfoPrototype = WINFUNCTYPE(NET_API_STATUS, LPCWSTR, LPCWSTR, DWORD, POINTER(LPBYTE)) +NetLocalGroupGetInfoParams = ((1, 'servername'), (1, 'groupname'), (1, 'level'), (1, 'bufptr')) + +#def NetLocalGroupEnum(servername, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle): +# return NetLocalGroupEnum.ctypes_function(servername, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle) +NetLocalGroupEnumPrototype = WINFUNCTYPE(NET_API_STATUS, LPCWSTR, DWORD, POINTER(LPBYTE), DWORD, LPDWORD, LPDWORD, PDWORD_PTR) +NetLocalGroupEnumParams = ((1, 'servername'), (1, 'level'), (1, 'bufptr'), (1, 'prefmaxlen'), (1, 'entriesread'), (1, 'totalentries'), (1, 'resumehandle')) + +#def NetApiBufferFree(Buffer): +# return NetApiBufferFree.ctypes_function(Buffer) +NetApiBufferFreePrototype = WINFUNCTYPE(NET_API_STATUS, LPVOID) +NetApiBufferFreeParams = ((1, 'Buffer'),) + +#def GetIpNetTable(IpNetTable, SizePointer, Order): +# return GetIpNetTable.ctypes_function(IpNetTable, SizePointer, Order) +GetIpNetTablePrototype = WINFUNCTYPE(ULONG, PMIB_IPNETTABLE, PULONG, BOOL) +GetIpNetTableParams = ((1, 'IpNetTable'), (1, 'SizePointer'), (1, 'Order')) + +#def GetExtendedTcpTable(pTcpTable, pdwSize, bOrder, ulAf, TableClass, Reserved): +# return GetExtendedTcpTable.ctypes_function(pTcpTable, pdwSize, bOrder, ulAf, TableClass, Reserved) +GetExtendedTcpTablePrototype = WINFUNCTYPE(DWORD, PVOID, PDWORD, BOOL, ULONG, TCP_TABLE_CLASS, ULONG) +GetExtendedTcpTableParams = ((1, 'pTcpTable'), (1, 'pdwSize'), (1, 'bOrder'), (1, 'ulAf'), (1, 'TableClass'), (1, 'Reserved')) + +#def GetExtendedUdpTable(pUdpTable, pdwSize, bOrder, ulAf, TableClass, Reserved): +# return GetExtendedUdpTable.ctypes_function(pUdpTable, pdwSize, bOrder, ulAf, TableClass, Reserved) +GetExtendedUdpTablePrototype = WINFUNCTYPE(DWORD, PVOID, PDWORD, BOOL, ULONG, UDP_TABLE_CLASS, ULONG) +GetExtendedUdpTableParams = ((1, 'pUdpTable'), (1, 'pdwSize'), (1, 'bOrder'), (1, 'ulAf'), (1, 'TableClass'), (1, 'Reserved')) + +#def SetTcpEntry(pTcpRow): +# return SetTcpEntry.ctypes_function(pTcpRow) +SetTcpEntryPrototype = WINFUNCTYPE(DWORD, PMIB_TCPROW) +SetTcpEntryParams = ((1, 'pTcpRow'),) + +#def DnsGetCacheDataTable(DnsEntries): +# return DnsGetCacheDataTable.ctypes_function(DnsEntries) +DnsGetCacheDataTablePrototype = WINFUNCTYPE(DWORD, POINTER(PDNS_CACHE_ENTRY)) +DnsGetCacheDataTableParams = ((1, 'DnsEntries'),) + +#def DnsFree(pData, FreeType): +# return DnsFree.ctypes_function(pData, FreeType) +DnsFreePrototype = WINFUNCTYPE(VOID, PVOID, DNS_FREE_TYPE) +DnsFreeParams = ((1, 'pData'), (1, 'FreeType')) + +#def DnsQuery_A(pszName, wType, Options, pExtra, ppQueryResults, pReserved): +# return DnsQuery_A.ctypes_function(pszName, wType, Options, pExtra, ppQueryResults, pReserved) +DnsQuery_APrototype = WINFUNCTYPE(DNS_STATUS, PCSTR, WORD, DWORD, PVOID, POINTER(PDNS_RECORDA), POINTER(PVOID)) +DnsQuery_AParams = ((1, 'pszName'), (1, 'wType'), (1, 'Options'), (1, 'pExtra'), (1, 'ppQueryResults'), (1, 'pReserved')) + +#def DnsQuery_W(pszName, wType, Options, pExtra, ppQueryResults, pReserved): +# return DnsQuery_W.ctypes_function(pszName, wType, Options, pExtra, ppQueryResults, pReserved) +DnsQuery_WPrototype = WINFUNCTYPE(DNS_STATUS, PCWSTR, WORD, DWORD, PVOID, POINTER(PDNS_RECORDW), POINTER(PVOID)) +DnsQuery_WParams = ((1, 'pszName'), (1, 'wType'), (1, 'Options'), (1, 'pExtra'), (1, 'ppQueryResults'), (1, 'pReserved')) + +#def DnsQueryEx(pQueryRequest, pQueryResults, pCancelHandle): +# return DnsQueryEx.ctypes_function(pQueryRequest, pQueryResults, pCancelHandle) +DnsQueryExPrototype = WINFUNCTYPE(DNS_STATUS, PDNS_QUERY_REQUEST, PDNS_QUERY_RESULT, PDNS_QUERY_CANCEL) +DnsQueryExParams = ((1, 'pQueryRequest'), (1, 'pQueryResults'), (1, 'pCancelHandle')) + +#def GetAdaptersInfo(AdapterInfo, SizePointer): +# return GetAdaptersInfo.ctypes_function(AdapterInfo, SizePointer) +GetAdaptersInfoPrototype = WINFUNCTYPE(ULONG, PIP_ADAPTER_INFO, PULONG) +GetAdaptersInfoParams = ((1, 'AdapterInfo'), (1, 'SizePointer')) + +#def GetPerAdapterInfo(IfIndex, pPerAdapterInfo, pOutBufLen): +# return GetPerAdapterInfo.ctypes_function(IfIndex, pPerAdapterInfo, pOutBufLen) +GetPerAdapterInfoPrototype = WINFUNCTYPE(DWORD, ULONG, PIP_PER_ADAPTER_INFO, PULONG) +GetPerAdapterInfoParams = ((1, 'IfIndex'), (1, 'pPerAdapterInfo'), (1, 'pOutBufLen')) + +#def CreateFileTransactedA(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile, hTransaction, pusMiniVersion, pExtendedParameter): +# return CreateFileTransactedA.ctypes_function(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile, hTransaction, pusMiniVersion, pExtendedParameter) +CreateFileTransactedAPrototype = WINFUNCTYPE(HANDLE, LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE, HANDLE, PUSHORT, PVOID) +CreateFileTransactedAParams = ((1, 'lpFileName'), (1, 'dwDesiredAccess'), (1, 'dwShareMode'), (1, 'lpSecurityAttributes'), (1, 'dwCreationDisposition'), (1, 'dwFlagsAndAttributes'), (1, 'hTemplateFile'), (1, 'hTransaction'), (1, 'pusMiniVersion'), (1, 'pExtendedParameter')) + +#def CreateFileTransactedW(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile, hTransaction, pusMiniVersion, pExtendedParameter): +# return CreateFileTransactedW.ctypes_function(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile, hTransaction, pusMiniVersion, pExtendedParameter) +CreateFileTransactedWPrototype = WINFUNCTYPE(HANDLE, LPWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE, HANDLE, PUSHORT, PVOID) +CreateFileTransactedWParams = ((1, 'lpFileName'), (1, 'dwDesiredAccess'), (1, 'dwShareMode'), (1, 'lpSecurityAttributes'), (1, 'dwCreationDisposition'), (1, 'dwFlagsAndAttributes'), (1, 'hTemplateFile'), (1, 'hTransaction'), (1, 'pusMiniVersion'), (1, 'pExtendedParameter')) + +#def CommitTransaction(TransactionHandle): +# return CommitTransaction.ctypes_function(TransactionHandle) +CommitTransactionPrototype = WINFUNCTYPE(BOOL, HANDLE) +CommitTransactionParams = ((1, 'TransactionHandle'),) + +#def CreateTransaction(lpTransactionAttributes, UOW, CreateOptions, IsolationLevel, IsolationFlags, Timeout, Description): +# return CreateTransaction.ctypes_function(lpTransactionAttributes, UOW, CreateOptions, IsolationLevel, IsolationFlags, Timeout, Description) +CreateTransactionPrototype = WINFUNCTYPE(HANDLE, LPSECURITY_ATTRIBUTES, LPGUID, DWORD, DWORD, DWORD, DWORD, LPWSTR) +CreateTransactionParams = ((1, 'lpTransactionAttributes'), (1, 'UOW'), (1, 'CreateOptions'), (1, 'IsolationLevel'), (1, 'IsolationFlags'), (1, 'Timeout'), (1, 'Description')) + +#def RollbackTransaction(TransactionHandle): +# return RollbackTransaction.ctypes_function(TransactionHandle) +RollbackTransactionPrototype = WINFUNCTYPE(BOOL, HANDLE) +RollbackTransactionParams = ((1, 'TransactionHandle'),) + +#def OpenTransaction(dwDesiredAccess, TransactionId): +# return OpenTransaction.ctypes_function(dwDesiredAccess, TransactionId) +OpenTransactionPrototype = WINFUNCTYPE(HANDLE, DWORD, LPGUID) +OpenTransactionParams = ((1, 'dwDesiredAccess'), (1, 'TransactionId')) + +#def NtOpenKey(KeyHandle, DesiredAccess, ObjectAttributes): +# return NtOpenKey.ctypes_function(KeyHandle, DesiredAccess, ObjectAttributes) +NtOpenKeyPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES) +NtOpenKeyParams = ((1, 'KeyHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes')) + +#def NtCreateKey(pKeyHandle, DesiredAccess, ObjectAttributes, TitleIndex, Class, CreateOptions, Disposition): +# return NtCreateKey.ctypes_function(pKeyHandle, DesiredAccess, ObjectAttributes, TitleIndex, Class, CreateOptions, Disposition) +NtCreateKeyPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, ULONG, PUNICODE_STRING, ULONG, PULONG) +NtCreateKeyParams = ((1, 'pKeyHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes'), (1, 'TitleIndex'), (1, 'Class'), (1, 'CreateOptions'), (1, 'Disposition')) + +#def NtSetValueKey(KeyHandle, ValueName, TitleIndex, Type, Data, DataSize): +# return NtSetValueKey.ctypes_function(KeyHandle, ValueName, TitleIndex, Type, Data, DataSize) +NtSetValueKeyPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PUNICODE_STRING, ULONG, ULONG, PVOID, ULONG) +NtSetValueKeyParams = ((1, 'KeyHandle'), (1, 'ValueName'), (1, 'TitleIndex'), (1, 'Type'), (1, 'Data'), (1, 'DataSize')) + +#def NtQueryValueKey(KeyHandle, ValueName, KeyValueInformationClass, KeyValueInformation, Length, ResultLength): +# return NtQueryValueKey.ctypes_function(KeyHandle, ValueName, KeyValueInformationClass, KeyValueInformation, Length, ResultLength) +NtQueryValueKeyPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PUNICODE_STRING, KEY_VALUE_INFORMATION_CLASS, PVOID, ULONG, PULONG) +NtQueryValueKeyParams = ((1, 'KeyHandle'), (1, 'ValueName'), (1, 'KeyValueInformationClass'), (1, 'KeyValueInformation'), (1, 'Length'), (1, 'ResultLength')) + +#def NtQueryKey(KeyHandle, KeyInformationClass, KeyInformation, Length, ResultLength): +# return NtQueryKey.ctypes_function(KeyHandle, KeyInformationClass, KeyInformation, Length, ResultLength) +NtQueryKeyPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, KEY_INFORMATION_CLASS, PVOID, ULONG, PULONG) +NtQueryKeyParams = ((1, 'KeyHandle'), (1, 'KeyInformationClass'), (1, 'KeyInformation'), (1, 'Length'), (1, 'ResultLength')) + +#def NtEnumerateValueKey(KeyHandle, Index, KeyValueInformationClass, KeyValueInformation, Length, ResultLength): +# return NtEnumerateValueKey.ctypes_function(KeyHandle, Index, KeyValueInformationClass, KeyValueInformation, Length, ResultLength) +NtEnumerateValueKeyPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG, KEY_VALUE_INFORMATION_CLASS, PVOID, ULONG, PULONG) +NtEnumerateValueKeyParams = ((1, 'KeyHandle'), (1, 'Index'), (1, 'KeyValueInformationClass'), (1, 'KeyValueInformation'), (1, 'Length'), (1, 'ResultLength')) + +#def NtDeleteValueKey(KeyHandle, ValueName): +# return NtDeleteValueKey.ctypes_function(KeyHandle, ValueName) +NtDeleteValueKeyPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PUNICODE_STRING) +NtDeleteValueKeyParams = ((1, 'KeyHandle'), (1, 'ValueName')) + +#def CreatePipe(hReadPipe, hWritePipe, lpPipeAttributes, nSize): +# return CreatePipe.ctypes_function(hReadPipe, hWritePipe, lpPipeAttributes, nSize) +CreatePipePrototype = WINFUNCTYPE(BOOL, PHANDLE, PHANDLE, LPSECURITY_ATTRIBUTES, DWORD) +CreatePipeParams = ((1, 'hReadPipe'), (1, 'hWritePipe'), (1, 'lpPipeAttributes'), (1, 'nSize')) + +#def CreateNamedPipeA(lpName, dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize, nInBufferSize, nDefaultTimeOut, lpSecurityAttributes): +# return CreateNamedPipeA.ctypes_function(lpName, dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize, nInBufferSize, nDefaultTimeOut, lpSecurityAttributes) +CreateNamedPipeAPrototype = WINFUNCTYPE(HANDLE, LPCSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES) +CreateNamedPipeAParams = ((1, 'lpName'), (1, 'dwOpenMode'), (1, 'dwPipeMode'), (1, 'nMaxInstances'), (1, 'nOutBufferSize'), (1, 'nInBufferSize'), (1, 'nDefaultTimeOut'), (1, 'lpSecurityAttributes')) + +#def CreateNamedPipeW(lpName, dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize, nInBufferSize, nDefaultTimeOut, lpSecurityAttributes): +# return CreateNamedPipeW.ctypes_function(lpName, dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize, nInBufferSize, nDefaultTimeOut, lpSecurityAttributes) +CreateNamedPipeWPrototype = WINFUNCTYPE(HANDLE, LPWSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES) +CreateNamedPipeWParams = ((1, 'lpName'), (1, 'dwOpenMode'), (1, 'dwPipeMode'), (1, 'nMaxInstances'), (1, 'nOutBufferSize'), (1, 'nInBufferSize'), (1, 'nDefaultTimeOut'), (1, 'lpSecurityAttributes')) + +#def ConnectNamedPipe(hNamedPipe, lpOverlapped): +# return ConnectNamedPipe.ctypes_function(hNamedPipe, lpOverlapped) +ConnectNamedPipePrototype = WINFUNCTYPE(BOOL, HANDLE, LPOVERLAPPED) +ConnectNamedPipeParams = ((1, 'hNamedPipe'), (1, 'lpOverlapped')) + +#def SetNamedPipeHandleState(hNamedPipe, lpMode, lpMaxCollectionCount, lpCollectDataTimeout): +# return SetNamedPipeHandleState.ctypes_function(hNamedPipe, lpMode, lpMaxCollectionCount, lpCollectDataTimeout) +SetNamedPipeHandleStatePrototype = WINFUNCTYPE(BOOL, HANDLE, LPDWORD, LPDWORD, LPDWORD) +SetNamedPipeHandleStateParams = ((1, 'hNamedPipe'), (1, 'lpMode'), (1, 'lpMaxCollectionCount'), (1, 'lpCollectDataTimeout')) + +#def PeekNamedPipe(hNamedPipe, lpBuffer, nBufferSize, lpBytesRead, lpTotalBytesAvail, lpBytesLeftThisMessage): +# return PeekNamedPipe.ctypes_function(hNamedPipe, lpBuffer, nBufferSize, lpBytesRead, lpTotalBytesAvail, lpBytesLeftThisMessage) +PeekNamedPipePrototype = WINFUNCTYPE(BOOL, HANDLE, LPVOID, DWORD, LPDWORD, LPDWORD, LPDWORD) +PeekNamedPipeParams = ((1, 'hNamedPipe'), (1, 'lpBuffer'), (1, 'nBufferSize'), (1, 'lpBytesRead'), (1, 'lpTotalBytesAvail'), (1, 'lpBytesLeftThisMessage')) + +#def CreateToolhelp32Snapshot(dwFlags, th32ProcessID): +# return CreateToolhelp32Snapshot.ctypes_function(dwFlags, th32ProcessID) +CreateToolhelp32SnapshotPrototype = WINFUNCTYPE(HANDLE, DWORD, DWORD) +CreateToolhelp32SnapshotParams = ((1, 'dwFlags'), (1, 'th32ProcessID')) + +#def Thread32First(hSnapshot, lpte): +# return Thread32First.ctypes_function(hSnapshot, lpte) +Thread32FirstPrototype = WINFUNCTYPE(BOOL, HANDLE, LPTHREADENTRY32) +Thread32FirstParams = ((1, 'hSnapshot'), (1, 'lpte')) + +#def Thread32Next(hSnapshot, lpte): +# return Thread32Next.ctypes_function(hSnapshot, lpte) +Thread32NextPrototype = WINFUNCTYPE(BOOL, HANDLE, LPTHREADENTRY32) +Thread32NextParams = ((1, 'hSnapshot'), (1, 'lpte')) + +#def Process32First(hSnapshot, lppe): +# return Process32First.ctypes_function(hSnapshot, lppe) +Process32FirstPrototype = WINFUNCTYPE(BOOL, HANDLE, LPPROCESSENTRY32) +Process32FirstParams = ((1, 'hSnapshot'), (1, 'lppe')) + +#def Process32Next(hSnapshot, lppe): +# return Process32Next.ctypes_function(hSnapshot, lppe) +Process32NextPrototype = WINFUNCTYPE(BOOL, HANDLE, LPPROCESSENTRY32) +Process32NextParams = ((1, 'hSnapshot'), (1, 'lppe')) + +#def Process32FirstW(hSnapshot, lppe): +# return Process32FirstW.ctypes_function(hSnapshot, lppe) +Process32FirstWPrototype = WINFUNCTYPE(BOOL, HANDLE, LPPROCESSENTRY32W) +Process32FirstWParams = ((1, 'hSnapshot'), (1, 'lppe')) + +#def Process32NextW(hSnapshot, lppe): +# return Process32NextW.ctypes_function(hSnapshot, lppe) +Process32NextWPrototype = WINFUNCTYPE(BOOL, HANDLE, LPPROCESSENTRY32W) +Process32NextWParams = ((1, 'hSnapshot'), (1, 'lppe')) + +#def GetProcAddress(hModule, lpProcName): +# return GetProcAddress.ctypes_function(hModule, lpProcName) +GetProcAddressPrototype = WINFUNCTYPE(FARPROC, HMODULE, LPCSTR) +GetProcAddressParams = ((1, 'hModule'), (1, 'lpProcName')) + +#def LoadLibraryA(lpFileName): +# return LoadLibraryA.ctypes_function(lpFileName) +LoadLibraryAPrototype = WINFUNCTYPE(HMODULE, LPCSTR) +LoadLibraryAParams = ((1, 'lpFileName'),) + +#def LoadLibraryW(lpFileName): +# return LoadLibraryW.ctypes_function(lpFileName) +LoadLibraryWPrototype = WINFUNCTYPE(HMODULE, LPCWSTR) +LoadLibraryWParams = ((1, 'lpFileName'),) + +#def LoadLibraryExA(lpLibFileName, hFile, dwFlags): +# return LoadLibraryExA.ctypes_function(lpLibFileName, hFile, dwFlags) +LoadLibraryExAPrototype = WINFUNCTYPE(HMODULE, LPCSTR, HANDLE, DWORD) +LoadLibraryExAParams = ((1, 'lpLibFileName'), (1, 'hFile'), (1, 'dwFlags')) + +#def LoadLibraryExW(lpLibFileName, hFile, dwFlags): +# return LoadLibraryExW.ctypes_function(lpLibFileName, hFile, dwFlags) +LoadLibraryExWPrototype = WINFUNCTYPE(HMODULE, LPCWSTR, HANDLE, DWORD) +LoadLibraryExWParams = ((1, 'lpLibFileName'), (1, 'hFile'), (1, 'dwFlags')) + +#def FreeLibrary(hLibModule): +# return FreeLibrary.ctypes_function(hLibModule) +FreeLibraryPrototype = WINFUNCTYPE(BOOL, HMODULE) +FreeLibraryParams = ((1, 'hLibModule'),) + +#def RegQueryValueExA(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData): +# return RegQueryValueExA.ctypes_function(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData) +RegQueryValueExAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD) +RegQueryValueExAParams = ((1, 'hKey'), (1, 'lpValueName'), (1, 'lpReserved'), (1, 'lpType'), (1, 'lpData'), (1, 'lpcbData')) + +#def RegQueryValueExW(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData): +# return RegQueryValueExW.ctypes_function(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData) +RegQueryValueExWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPWSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD) +RegQueryValueExWParams = ((1, 'hKey'), (1, 'lpValueName'), (1, 'lpReserved'), (1, 'lpType'), (1, 'lpData'), (1, 'lpcbData')) + +#def RegOpenKeyExA(hKey, lpSubKey, ulOptions, samDesired, phkResult): +# return RegOpenKeyExA.ctypes_function(hKey, lpSubKey, ulOptions, samDesired, phkResult) +RegOpenKeyExAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR, DWORD, REGSAM, PHKEY) +RegOpenKeyExAParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'ulOptions'), (1, 'samDesired'), (1, 'phkResult')) + +#def RegOpenKeyExW(hKey, lpSubKey, ulOptions, samDesired, phkResult): +# return RegOpenKeyExW.ctypes_function(hKey, lpSubKey, ulOptions, samDesired, phkResult) +RegOpenKeyExWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPWSTR, DWORD, REGSAM, PHKEY) +RegOpenKeyExWParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'ulOptions'), (1, 'samDesired'), (1, 'phkResult')) + +#def RegCreateKeyExA(hKey, lpSubKey, Reserved, lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition): +# return RegCreateKeyExA.ctypes_function(hKey, lpSubKey, Reserved, lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition) +RegCreateKeyExAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR, DWORD, LPSTR, DWORD, REGSAM, LPSECURITY_ATTRIBUTES, PHKEY, LPDWORD) +RegCreateKeyExAParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'Reserved'), (1, 'lpClass'), (1, 'dwOptions'), (1, 'samDesired'), (1, 'lpSecurityAttributes'), (1, 'phkResult'), (1, 'lpdwDisposition')) + +#def RegCreateKeyExW(hKey, lpSubKey, Reserved, lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition): +# return RegCreateKeyExW.ctypes_function(hKey, lpSubKey, Reserved, lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition) +RegCreateKeyExWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCWSTR, DWORD, LPWSTR, DWORD, REGSAM, LPSECURITY_ATTRIBUTES, PHKEY, LPDWORD) +RegCreateKeyExWParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'Reserved'), (1, 'lpClass'), (1, 'dwOptions'), (1, 'samDesired'), (1, 'lpSecurityAttributes'), (1, 'phkResult'), (1, 'lpdwDisposition')) + +#def RegGetValueA(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData): +# return RegGetValueA.ctypes_function(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData) +RegGetValueAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR, LPCSTR, DWORD, LPDWORD, PVOID, LPDWORD) +RegGetValueAParams = ((1, 'hkey'), (1, 'lpSubKey'), (1, 'lpValue'), (1, 'dwFlags'), (1, 'pdwType'), (1, 'pvData'), (1, 'pcbData')) + +#def RegGetValueW(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData): +# return RegGetValueW.ctypes_function(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData) +RegGetValueWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPWSTR, LPWSTR, DWORD, LPDWORD, PVOID, LPDWORD) +RegGetValueWParams = ((1, 'hkey'), (1, 'lpSubKey'), (1, 'lpValue'), (1, 'dwFlags'), (1, 'pdwType'), (1, 'pvData'), (1, 'pcbData')) + +#def RegCloseKey(hKey): +# return RegCloseKey.ctypes_function(hKey) +RegCloseKeyPrototype = WINFUNCTYPE(LSTATUS, HKEY) +RegCloseKeyParams = ((1, 'hKey'),) + +#def RegSetValueExW(hKey, lpValueName, Reserved, dwType, lpData, cbData): +# return RegSetValueExW.ctypes_function(hKey, lpValueName, Reserved, dwType, lpData, cbData) +RegSetValueExWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCWSTR, DWORD, DWORD, POINTER(BYTE), DWORD) +RegSetValueExWParams = ((1, 'hKey'), (1, 'lpValueName'), (1, 'Reserved'), (1, 'dwType'), (1, 'lpData'), (1, 'cbData')) + +#def RegSetValueExA(hKey, lpValueName, Reserved, dwType, lpData, cbData): +# return RegSetValueExA.ctypes_function(hKey, lpValueName, Reserved, dwType, lpData, cbData) +RegSetValueExAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR, DWORD, DWORD, POINTER(BYTE), DWORD) +RegSetValueExAParams = ((1, 'hKey'), (1, 'lpValueName'), (1, 'Reserved'), (1, 'dwType'), (1, 'lpData'), (1, 'cbData')) + +#def RegSetKeyValueA(hKey, lpSubKey, lpValueName, dwType, lpData, cbData): +# return RegSetKeyValueA.ctypes_function(hKey, lpSubKey, lpValueName, dwType, lpData, cbData) +RegSetKeyValueAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR, LPCSTR, DWORD, LPCVOID, DWORD) +RegSetKeyValueAParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'lpValueName'), (1, 'dwType'), (1, 'lpData'), (1, 'cbData')) + +#def RegSetKeyValueW(hKey, lpSubKey, lpValueName, dwType, lpData, cbData): +# return RegSetKeyValueW.ctypes_function(hKey, lpSubKey, lpValueName, dwType, lpData, cbData) +RegSetKeyValueWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCWSTR, LPCWSTR, DWORD, LPCVOID, DWORD) +RegSetKeyValueWParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'lpValueName'), (1, 'dwType'), (1, 'lpData'), (1, 'cbData')) + +#def RegEnumKeyExA(hKey, dwIndex, lpName, lpcchName, lpReserved, lpClass, lpcchClass, lpftLastWriteTime): +# return RegEnumKeyExA.ctypes_function(hKey, dwIndex, lpName, lpcchName, lpReserved, lpClass, lpcchClass, lpftLastWriteTime) +RegEnumKeyExAPrototype = WINFUNCTYPE(LSTATUS, HKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPSTR, LPDWORD, PFILETIME) +RegEnumKeyExAParams = ((1, 'hKey'), (1, 'dwIndex'), (1, 'lpName'), (1, 'lpcchName'), (1, 'lpReserved'), (1, 'lpClass'), (1, 'lpcchClass'), (1, 'lpftLastWriteTime')) + +#def RegEnumKeyExW(hKey, dwIndex, lpName, lpcchName, lpReserved, lpClass, lpcchClass, lpftLastWriteTime): +# return RegEnumKeyExW.ctypes_function(hKey, dwIndex, lpName, lpcchName, lpReserved, lpClass, lpcchClass, lpftLastWriteTime) +RegEnumKeyExWPrototype = WINFUNCTYPE(LSTATUS, HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPWSTR, LPDWORD, PFILETIME) +RegEnumKeyExWParams = ((1, 'hKey'), (1, 'dwIndex'), (1, 'lpName'), (1, 'lpcchName'), (1, 'lpReserved'), (1, 'lpClass'), (1, 'lpcchClass'), (1, 'lpftLastWriteTime')) + +#def RegGetKeySecurity(hKey, SecurityInformation, pSecurityDescriptor, lpcbSecurityDescriptor): +# return RegGetKeySecurity.ctypes_function(hKey, SecurityInformation, pSecurityDescriptor, lpcbSecurityDescriptor) +RegGetKeySecurityPrototype = WINFUNCTYPE(LSTATUS, HKEY, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, LPDWORD) +RegGetKeySecurityParams = ((1, 'hKey'), (1, 'SecurityInformation'), (1, 'pSecurityDescriptor'), (1, 'lpcbSecurityDescriptor')) + +#def RegQueryInfoKeyA(hKey, lpClass, lpcchClass, lpReserved, lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime): +# return RegQueryInfoKeyA.ctypes_function(hKey, lpClass, lpcchClass, lpReserved, lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime) +RegQueryInfoKeyAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, PFILETIME) +RegQueryInfoKeyAParams = ((1, 'hKey'), (1, 'lpClass'), (1, 'lpcchClass'), (1, 'lpReserved'), (1, 'lpcSubKeys'), (1, 'lpcbMaxSubKeyLen'), (1, 'lpcbMaxClassLen'), (1, 'lpcValues'), (1, 'lpcbMaxValueNameLen'), (1, 'lpcbMaxValueLen'), (1, 'lpcbSecurityDescriptor'), (1, 'lpftLastWriteTime')) + +#def RegQueryInfoKeyW(hKey, lpClass, lpcchClass, lpReserved, lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime): +# return RegQueryInfoKeyW.ctypes_function(hKey, lpClass, lpcchClass, lpReserved, lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime) +RegQueryInfoKeyWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPWSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, PFILETIME) +RegQueryInfoKeyWParams = ((1, 'hKey'), (1, 'lpClass'), (1, 'lpcchClass'), (1, 'lpReserved'), (1, 'lpcSubKeys'), (1, 'lpcbMaxSubKeyLen'), (1, 'lpcbMaxClassLen'), (1, 'lpcValues'), (1, 'lpcbMaxValueNameLen'), (1, 'lpcbMaxValueLen'), (1, 'lpcbSecurityDescriptor'), (1, 'lpftLastWriteTime')) + +#def RegDeleteKeyValueW(hKey, lpSubKey, lpValueName): +# return RegDeleteKeyValueW.ctypes_function(hKey, lpSubKey, lpValueName) +RegDeleteKeyValueWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCWSTR, LPCWSTR) +RegDeleteKeyValueWParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'lpValueName')) + +#def RegDeleteKeyValueA(hKey, lpSubKey, lpValueName): +# return RegDeleteKeyValueA.ctypes_function(hKey, lpSubKey, lpValueName) +RegDeleteKeyValueAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR, LPCSTR) +RegDeleteKeyValueAParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'lpValueName')) + +#def RegDeleteKeyExA(hKey, lpSubKey, samDesired, Reserved): +# return RegDeleteKeyExA.ctypes_function(hKey, lpSubKey, samDesired, Reserved) +RegDeleteKeyExAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR, REGSAM, DWORD) +RegDeleteKeyExAParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'samDesired'), (1, 'Reserved')) + +#def RegDeleteKeyExW(hKey, lpSubKey, samDesired, Reserved): +# return RegDeleteKeyExW.ctypes_function(hKey, lpSubKey, samDesired, Reserved) +RegDeleteKeyExWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCWSTR, REGSAM, DWORD) +RegDeleteKeyExWParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'samDesired'), (1, 'Reserved')) + +#def RegDeleteValueA(hKey, lpValueName): +# return RegDeleteValueA.ctypes_function(hKey, lpValueName) +RegDeleteValueAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR) +RegDeleteValueAParams = ((1, 'hKey'), (1, 'lpValueName')) + +#def RegDeleteValueW(hKey, lpValueName): +# return RegDeleteValueW.ctypes_function(hKey, lpValueName) +RegDeleteValueWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCWSTR) +RegDeleteValueWParams = ((1, 'hKey'), (1, 'lpValueName')) + +#def RegEnumValueA(hKey, dwIndex, lpValueName, lpcchValueName, lpReserved, lpType, lpData, lpcbData): +# return RegEnumValueA.ctypes_function(hKey, dwIndex, lpValueName, lpcchValueName, lpReserved, lpType, lpData, lpcbData) +RegEnumValueAPrototype = WINFUNCTYPE(LSTATUS, HKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPDWORD, LPBYTE, LPDWORD) +RegEnumValueAParams = ((1, 'hKey'), (1, 'dwIndex'), (1, 'lpValueName'), (1, 'lpcchValueName'), (1, 'lpReserved'), (1, 'lpType'), (1, 'lpData'), (1, 'lpcbData')) + +#def RegEnumValueW(hKey, dwIndex, lpValueName, lpcchValueName, lpReserved, lpType, lpData, lpcbData): +# return RegEnumValueW.ctypes_function(hKey, dwIndex, lpValueName, lpcchValueName, lpReserved, lpType, lpData, lpcbData) +RegEnumValueWPrototype = WINFUNCTYPE(LSTATUS, HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPDWORD, LPBYTE, LPDWORD) +RegEnumValueWParams = ((1, 'hKey'), (1, 'dwIndex'), (1, 'lpValueName'), (1, 'lpcchValueName'), (1, 'lpReserved'), (1, 'lpType'), (1, 'lpData'), (1, 'lpcbData')) + +#def RegDeleteTreeA(hKey, lpSubKey): +# return RegDeleteTreeA.ctypes_function(hKey, lpSubKey) +RegDeleteTreeAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR) +RegDeleteTreeAParams = ((1, 'hKey'), (1, 'lpSubKey')) + +#def RegDeleteTreeW(hKey, lpSubKey): +# return RegDeleteTreeW.ctypes_function(hKey, lpSubKey) +RegDeleteTreeWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCWSTR) +RegDeleteTreeWParams = ((1, 'hKey'), (1, 'lpSubKey')) + +#def RegSaveKeyA(hKey, lpFile, lpSecurityAttributes): +# return RegSaveKeyA.ctypes_function(hKey, lpFile, lpSecurityAttributes) +RegSaveKeyAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR, LPSECURITY_ATTRIBUTES) +RegSaveKeyAParams = ((1, 'hKey'), (1, 'lpFile'), (1, 'lpSecurityAttributes')) + +#def RegSaveKeyW(hKey, lpFile, lpSecurityAttributes): +# return RegSaveKeyW.ctypes_function(hKey, lpFile, lpSecurityAttributes) +RegSaveKeyWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES) +RegSaveKeyWParams = ((1, 'hKey'), (1, 'lpFile'), (1, 'lpSecurityAttributes')) + +#def RegSaveKeyExA(hKey, lpFile, lpSecurityAttributes, Flags): +# return RegSaveKeyExA.ctypes_function(hKey, lpFile, lpSecurityAttributes, Flags) +RegSaveKeyExAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR, LPSECURITY_ATTRIBUTES, DWORD) +RegSaveKeyExAParams = ((1, 'hKey'), (1, 'lpFile'), (1, 'lpSecurityAttributes'), (1, 'Flags')) + +#def RegSaveKeyExW(hKey, lpFile, lpSecurityAttributes, Flags): +# return RegSaveKeyExW.ctypes_function(hKey, lpFile, lpSecurityAttributes, Flags) +RegSaveKeyExWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES, DWORD) +RegSaveKeyExWParams = ((1, 'hKey'), (1, 'lpFile'), (1, 'lpSecurityAttributes'), (1, 'Flags')) + +#def RegLoadKeyA(hKey, lpSubKey, lpFile): +# return RegLoadKeyA.ctypes_function(hKey, lpSubKey, lpFile) +RegLoadKeyAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR, LPCSTR) +RegLoadKeyAParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'lpFile')) + +#def RegLoadKeyW(hKey, lpSubKey, lpFile): +# return RegLoadKeyW.ctypes_function(hKey, lpSubKey, lpFile) +RegLoadKeyWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCWSTR, LPCWSTR) +RegLoadKeyWParams = ((1, 'hKey'), (1, 'lpSubKey'), (1, 'lpFile')) + +#def RegUnLoadKeyA(hKey, lpSubKey): +# return RegUnLoadKeyA.ctypes_function(hKey, lpSubKey) +RegUnLoadKeyAPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCSTR) +RegUnLoadKeyAParams = ((1, 'hKey'), (1, 'lpSubKey')) + +#def RegUnLoadKeyW(hKey, lpSubKey): +# return RegUnLoadKeyW.ctypes_function(hKey, lpSubKey) +RegUnLoadKeyWPrototype = WINFUNCTYPE(LSTATUS, HKEY, LPCWSTR) +RegUnLoadKeyWParams = ((1, 'hKey'), (1, 'lpSubKey')) + +#def IsValidSecurityDescriptor(pSecurityDescriptor): +# return IsValidSecurityDescriptor.ctypes_function(pSecurityDescriptor) +IsValidSecurityDescriptorPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR) +IsValidSecurityDescriptorParams = ((1, 'pSecurityDescriptor'),) + +#def ConvertStringSecurityDescriptorToSecurityDescriptorA(StringSecurityDescriptor, StringSDRevision, SecurityDescriptor, SecurityDescriptorSize): +# return ConvertStringSecurityDescriptorToSecurityDescriptorA.ctypes_function(StringSecurityDescriptor, StringSDRevision, SecurityDescriptor, SecurityDescriptorSize) +ConvertStringSecurityDescriptorToSecurityDescriptorAPrototype = WINFUNCTYPE(BOOL, LPCSTR, DWORD, POINTER(PSECURITY_DESCRIPTOR), PULONG) +ConvertStringSecurityDescriptorToSecurityDescriptorAParams = ((1, 'StringSecurityDescriptor'), (1, 'StringSDRevision'), (1, 'SecurityDescriptor'), (1, 'SecurityDescriptorSize')) + +#def ConvertStringSecurityDescriptorToSecurityDescriptorW(StringSecurityDescriptor, StringSDRevision, SecurityDescriptor, SecurityDescriptorSize): +# return ConvertStringSecurityDescriptorToSecurityDescriptorW.ctypes_function(StringSecurityDescriptor, StringSDRevision, SecurityDescriptor, SecurityDescriptorSize) +ConvertStringSecurityDescriptorToSecurityDescriptorWPrototype = WINFUNCTYPE(BOOL, LPWSTR, DWORD, POINTER(PSECURITY_DESCRIPTOR), PULONG) +ConvertStringSecurityDescriptorToSecurityDescriptorWParams = ((1, 'StringSecurityDescriptor'), (1, 'StringSDRevision'), (1, 'SecurityDescriptor'), (1, 'SecurityDescriptorSize')) + +#def ConvertSecurityDescriptorToStringSecurityDescriptorA(SecurityDescriptor, RequestedStringSDRevision, SecurityInformation, StringSecurityDescriptor, StringSecurityDescriptorLen): +# return ConvertSecurityDescriptorToStringSecurityDescriptorA.ctypes_function(SecurityDescriptor, RequestedStringSDRevision, SecurityInformation, StringSecurityDescriptor, StringSecurityDescriptorLen) +ConvertSecurityDescriptorToStringSecurityDescriptorAPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, DWORD, DWORD, POINTER(LPCSTR), PULONG) +ConvertSecurityDescriptorToStringSecurityDescriptorAParams = ((1, 'SecurityDescriptor'), (1, 'RequestedStringSDRevision'), (1, 'SecurityInformation'), (1, 'StringSecurityDescriptor'), (1, 'StringSecurityDescriptorLen')) + +#def ConvertSecurityDescriptorToStringSecurityDescriptorW(SecurityDescriptor, RequestedStringSDRevision, SecurityInformation, StringSecurityDescriptor, StringSecurityDescriptorLen): +# return ConvertSecurityDescriptorToStringSecurityDescriptorW.ctypes_function(SecurityDescriptor, RequestedStringSDRevision, SecurityInformation, StringSecurityDescriptor, StringSecurityDescriptorLen) +ConvertSecurityDescriptorToStringSecurityDescriptorWPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, DWORD, DWORD, POINTER(LPWSTR), PULONG) +ConvertSecurityDescriptorToStringSecurityDescriptorWParams = ((1, 'SecurityDescriptor'), (1, 'RequestedStringSDRevision'), (1, 'SecurityInformation'), (1, 'StringSecurityDescriptor'), (1, 'StringSecurityDescriptorLen')) + +#def GetSecurityDescriptorControl(pSecurityDescriptor, pControl, lpdwRevision): +# return GetSecurityDescriptorControl.ctypes_function(pSecurityDescriptor, pControl, lpdwRevision) +GetSecurityDescriptorControlPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL, LPDWORD) +GetSecurityDescriptorControlParams = ((1, 'pSecurityDescriptor'), (1, 'pControl'), (1, 'lpdwRevision')) + +#def GetSecurityDescriptorDacl(pSecurityDescriptor, lpbDaclPresent, pDacl, lpbDaclDefaulted): +# return GetSecurityDescriptorDacl.ctypes_function(pSecurityDescriptor, lpbDaclPresent, pDacl, lpbDaclDefaulted) +GetSecurityDescriptorDaclPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, LPBOOL, POINTER(PACL), LPBOOL) +GetSecurityDescriptorDaclParams = ((1, 'pSecurityDescriptor'), (1, 'lpbDaclPresent'), (1, 'pDacl'), (1, 'lpbDaclDefaulted')) + +#def GetSecurityDescriptorGroup(pSecurityDescriptor, pGroup, lpbGroupDefaulted): +# return GetSecurityDescriptorGroup.ctypes_function(pSecurityDescriptor, pGroup, lpbGroupDefaulted) +GetSecurityDescriptorGroupPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, POINTER(PSID), LPBOOL) +GetSecurityDescriptorGroupParams = ((1, 'pSecurityDescriptor'), (1, 'pGroup'), (1, 'lpbGroupDefaulted')) + +#def GetSecurityDescriptorLength(pSecurityDescriptor): +# return GetSecurityDescriptorLength.ctypes_function(pSecurityDescriptor) +GetSecurityDescriptorLengthPrototype = WINFUNCTYPE(DWORD, PSECURITY_DESCRIPTOR) +GetSecurityDescriptorLengthParams = ((1, 'pSecurityDescriptor'),) + +#def GetSecurityDescriptorOwner(pSecurityDescriptor, pOwner, lpbOwnerDefaulted): +# return GetSecurityDescriptorOwner.ctypes_function(pSecurityDescriptor, pOwner, lpbOwnerDefaulted) +GetSecurityDescriptorOwnerPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, POINTER(PSID), LPBOOL) +GetSecurityDescriptorOwnerParams = ((1, 'pSecurityDescriptor'), (1, 'pOwner'), (1, 'lpbOwnerDefaulted')) + +#def SetSecurityDescriptorOwner(pSecurityDescriptor, pOwner, bOwnerDefaulted): +# return SetSecurityDescriptorOwner.ctypes_function(pSecurityDescriptor, pOwner, bOwnerDefaulted) +SetSecurityDescriptorOwnerPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, PSID, BOOL) +SetSecurityDescriptorOwnerParams = ((1, 'pSecurityDescriptor'), (1, 'pOwner'), (1, 'bOwnerDefaulted')) + +#def GetSecurityDescriptorRMControl(SecurityDescriptor, RMControl): +# return GetSecurityDescriptorRMControl.ctypes_function(SecurityDescriptor, RMControl) +GetSecurityDescriptorRMControlPrototype = WINFUNCTYPE(DWORD, PSECURITY_DESCRIPTOR, PUCHAR) +GetSecurityDescriptorRMControlParams = ((1, 'SecurityDescriptor'), (1, 'RMControl')) + +#def GetSecurityDescriptorSacl(pSecurityDescriptor, lpbSaclPresent, pSacl, lpbSaclDefaulted): +# return GetSecurityDescriptorSacl.ctypes_function(pSecurityDescriptor, lpbSaclPresent, pSacl, lpbSaclDefaulted) +GetSecurityDescriptorSaclPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, LPBOOL, POINTER(PACL), LPBOOL) +GetSecurityDescriptorSaclParams = ((1, 'pSecurityDescriptor'), (1, 'lpbSaclPresent'), (1, 'pSacl'), (1, 'lpbSaclDefaulted')) + +#def GetLengthSid(pSid): +# return GetLengthSid.ctypes_function(pSid) +GetLengthSidPrototype = WINFUNCTYPE(DWORD, PSID) +GetLengthSidParams = ((1, 'pSid'),) + +#def EqualSid(pSid1, pSid2): +# return EqualSid.ctypes_function(pSid1, pSid2) +EqualSidPrototype = WINFUNCTYPE(BOOL, PSID, PSID) +EqualSidParams = ((1, 'pSid1'), (1, 'pSid2')) + +#def CopySid(nDestinationSidLength, pDestinationSid, pSourceSid): +# return CopySid.ctypes_function(nDestinationSidLength, pDestinationSid, pSourceSid) +CopySidPrototype = WINFUNCTYPE(BOOL, DWORD, PSID, PSID) +CopySidParams = ((1, 'nDestinationSidLength'), (1, 'pDestinationSid'), (1, 'pSourceSid')) + +#def GetSidIdentifierAuthority(pSid): +# return GetSidIdentifierAuthority.ctypes_function(pSid) +GetSidIdentifierAuthorityPrototype = WINFUNCTYPE(PSID_IDENTIFIER_AUTHORITY, PSID) +GetSidIdentifierAuthorityParams = ((1, 'pSid'),) + +#def GetSidLengthRequired(nSubAuthorityCount): +# return GetSidLengthRequired.ctypes_function(nSubAuthorityCount) +GetSidLengthRequiredPrototype = WINFUNCTYPE(DWORD, UCHAR) +GetSidLengthRequiredParams = ((1, 'nSubAuthorityCount'),) + +#def GetSidSubAuthority(pSid, nSubAuthority): +# return GetSidSubAuthority.ctypes_function(pSid, nSubAuthority) +GetSidSubAuthorityPrototype = WINFUNCTYPE(PDWORD, PSID, DWORD) +GetSidSubAuthorityParams = ((1, 'pSid'), (1, 'nSubAuthority')) + +#def GetSidSubAuthorityCount(pSid): +# return GetSidSubAuthorityCount.ctypes_function(pSid) +GetSidSubAuthorityCountPrototype = WINFUNCTYPE(LPBYTE, PSID) +GetSidSubAuthorityCountParams = ((1, 'pSid'),) + +#def FreeSid(pSid): +# return FreeSid.ctypes_function(pSid) +FreeSidPrototype = WINFUNCTYPE(PVOID, PSID) +FreeSidParams = ((1, 'pSid'),) + +#def GetAce(pAcl, dwAceIndex, pAce): +# return GetAce.ctypes_function(pAcl, dwAceIndex, pAce) +GetAcePrototype = WINFUNCTYPE(BOOL, PACL, DWORD, POINTER(LPVOID)) +GetAceParams = ((1, 'pAcl'), (1, 'dwAceIndex'), (1, 'pAce')) + +#def GetAclInformation(pAcl, pAclInformation, nAclInformationLength, dwAclInformationClass): +# return GetAclInformation.ctypes_function(pAcl, pAclInformation, nAclInformationLength, dwAclInformationClass) +GetAclInformationPrototype = WINFUNCTYPE(BOOL, PACL, LPVOID, DWORD, ACL_INFORMATION_CLASS) +GetAclInformationParams = ((1, 'pAcl'), (1, 'pAclInformation'), (1, 'nAclInformationLength'), (1, 'dwAclInformationClass')) + +#def MapGenericMask(AccessMask, GenericMapping): +# return MapGenericMask.ctypes_function(AccessMask, GenericMapping) +MapGenericMaskPrototype = WINFUNCTYPE(PVOID, PDWORD, PGENERIC_MAPPING) +MapGenericMaskParams = ((1, 'AccessMask'), (1, 'GenericMapping')) + +#def AccessCheck(pSecurityDescriptor, ClientToken, DesiredAccess, GenericMapping, PrivilegeSet, PrivilegeSetLength, GrantedAccess, AccessStatus): +# return AccessCheck.ctypes_function(pSecurityDescriptor, ClientToken, DesiredAccess, GenericMapping, PrivilegeSet, PrivilegeSetLength, GrantedAccess, AccessStatus) +AccessCheckPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, HANDLE, DWORD, PGENERIC_MAPPING, PPRIVILEGE_SET, LPDWORD, LPDWORD, LPBOOL) +AccessCheckParams = ((1, 'pSecurityDescriptor'), (1, 'ClientToken'), (1, 'DesiredAccess'), (1, 'GenericMapping'), (1, 'PrivilegeSet'), (1, 'PrivilegeSetLength'), (1, 'GrantedAccess'), (1, 'AccessStatus')) + +#def GetNamedSecurityInfoA(pObjectName, ObjectType, SecurityInfo, ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor): +# return GetNamedSecurityInfoA.ctypes_function(pObjectName, ObjectType, SecurityInfo, ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor) +GetNamedSecurityInfoAPrototype = WINFUNCTYPE(DWORD, LPCSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, POINTER(PSID), POINTER(PSID), POINTER(PACL), POINTER(PACL), POINTER(PSECURITY_DESCRIPTOR)) +GetNamedSecurityInfoAParams = ((1, 'pObjectName'), (1, 'ObjectType'), (1, 'SecurityInfo'), (1, 'ppsidOwner'), (1, 'ppsidGroup'), (1, 'ppDacl'), (1, 'ppSacl'), (1, 'ppSecurityDescriptor')) + +#def GetNamedSecurityInfoW(pObjectName, ObjectType, SecurityInfo, ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor): +# return GetNamedSecurityInfoW.ctypes_function(pObjectName, ObjectType, SecurityInfo, ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor) +GetNamedSecurityInfoWPrototype = WINFUNCTYPE(DWORD, LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, POINTER(PSID), POINTER(PSID), POINTER(PACL), POINTER(PACL), POINTER(PSECURITY_DESCRIPTOR)) +GetNamedSecurityInfoWParams = ((1, 'pObjectName'), (1, 'ObjectType'), (1, 'SecurityInfo'), (1, 'ppsidOwner'), (1, 'ppsidGroup'), (1, 'ppDacl'), (1, 'ppSacl'), (1, 'ppSecurityDescriptor')) + +#def GetSecurityInfo(handle, ObjectType, SecurityInfo, ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor): +# return GetSecurityInfo.ctypes_function(handle, ObjectType, SecurityInfo, ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor) +GetSecurityInfoPrototype = WINFUNCTYPE(DWORD, HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, POINTER(PSID), POINTER(PSID), POINTER(PACL), POINTER(PACL), POINTER(PSECURITY_DESCRIPTOR)) +GetSecurityInfoParams = ((1, 'handle'), (1, 'ObjectType'), (1, 'SecurityInfo'), (1, 'ppsidOwner'), (1, 'ppsidGroup'), (1, 'ppDacl'), (1, 'ppSacl'), (1, 'ppSecurityDescriptor')) + +#def SetSecurityInfo(handle, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl): +# return SetSecurityInfo.ctypes_function(handle, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl) +SetSecurityInfoPrototype = WINFUNCTYPE(DWORD, HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL) +SetSecurityInfoParams = ((1, 'handle'), (1, 'ObjectType'), (1, 'SecurityInfo'), (1, 'psidOwner'), (1, 'psidGroup'), (1, 'pDacl'), (1, 'pSacl')) + +#def SetNamedSecurityInfoA(pObjectName, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl): +# return SetNamedSecurityInfoA.ctypes_function(pObjectName, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl) +SetNamedSecurityInfoAPrototype = WINFUNCTYPE(DWORD, LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL) +SetNamedSecurityInfoAParams = ((1, 'pObjectName'), (1, 'ObjectType'), (1, 'SecurityInfo'), (1, 'psidOwner'), (1, 'psidGroup'), (1, 'pDacl'), (1, 'pSacl')) + +#def SetNamedSecurityInfoW(pObjectName, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl): +# return SetNamedSecurityInfoW.ctypes_function(pObjectName, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl) +SetNamedSecurityInfoWPrototype = WINFUNCTYPE(DWORD, LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL) +SetNamedSecurityInfoWParams = ((1, 'pObjectName'), (1, 'ObjectType'), (1, 'SecurityInfo'), (1, 'psidOwner'), (1, 'psidGroup'), (1, 'pDacl'), (1, 'pSacl')) + +#def GetStringConditionFromBinary(BinaryAceCondition, BinaryAceConditionSize, Reserved1, StringAceCondition): +# return GetStringConditionFromBinary.ctypes_function(BinaryAceCondition, BinaryAceConditionSize, Reserved1, StringAceCondition) +GetStringConditionFromBinaryPrototype = WINFUNCTYPE(DWORD, POINTER(BYTE), DWORD, DWORD, POINTER(LPWSTR)) +GetStringConditionFromBinaryParams = ((1, 'BinaryAceCondition'), (1, 'BinaryAceConditionSize'), (1, 'Reserved1'), (1, 'StringAceCondition')) + +#def AddAccessAllowedAce(pAcl, dwAceRevision, AccessMask, pSid): +# return AddAccessAllowedAce.ctypes_function(pAcl, dwAceRevision, AccessMask, pSid) +AddAccessAllowedAcePrototype = WINFUNCTYPE(BOOL, PACL, DWORD, DWORD, PSID) +AddAccessAllowedAceParams = ((1, 'pAcl'), (1, 'dwAceRevision'), (1, 'AccessMask'), (1, 'pSid')) + +#def SetSecurityDescriptorDacl(pSecurityDescriptor, bDaclPresent, pDacl, bDaclDefaulted): +# return SetSecurityDescriptorDacl.ctypes_function(pSecurityDescriptor, bDaclPresent, pDacl, bDaclDefaulted) +SetSecurityDescriptorDaclPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL) +SetSecurityDescriptorDaclParams = ((1, 'pSecurityDescriptor'), (1, 'bDaclPresent'), (1, 'pDacl'), (1, 'bDaclDefaulted')) + +#def InitializeAcl(pAcl, nAclLength, dwAclRevision): +# return InitializeAcl.ctypes_function(pAcl, nAclLength, dwAclRevision) +InitializeAclPrototype = WINFUNCTYPE(BOOL, PACL, DWORD, DWORD) +InitializeAclParams = ((1, 'pAcl'), (1, 'nAclLength'), (1, 'dwAclRevision')) + +#def InitializeSecurityDescriptor(pSecurityDescriptor, dwRevision): +# return InitializeSecurityDescriptor.ctypes_function(pSecurityDescriptor, dwRevision) +InitializeSecurityDescriptorPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, DWORD) +InitializeSecurityDescriptorParams = ((1, 'pSecurityDescriptor'), (1, 'dwRevision')) + +#def SetAclInformation(pAcl, pAclInformation, nAclInformationLength, dwAclInformationClass): +# return SetAclInformation.ctypes_function(pAcl, pAclInformation, nAclInformationLength, dwAclInformationClass) +SetAclInformationPrototype = WINFUNCTYPE(BOOL, PACL, LPVOID, DWORD, ACL_INFORMATION_CLASS) +SetAclInformationParams = ((1, 'pAcl'), (1, 'pAclInformation'), (1, 'nAclInformationLength'), (1, 'dwAclInformationClass')) + +#def AddAccessAllowedAceEx(pAcl, dwAceRevision, AceFlags, AccessMask, pSid): +# return AddAccessAllowedAceEx.ctypes_function(pAcl, dwAceRevision, AceFlags, AccessMask, pSid) +AddAccessAllowedAceExPrototype = WINFUNCTYPE(BOOL, PACL, DWORD, DWORD, DWORD, PSID) +AddAccessAllowedAceExParams = ((1, 'pAcl'), (1, 'dwAceRevision'), (1, 'AceFlags'), (1, 'AccessMask'), (1, 'pSid')) + +#def AddAccessDeniedAce(pAcl, dwAceRevision, AccessMask, pSid): +# return AddAccessDeniedAce.ctypes_function(pAcl, dwAceRevision, AccessMask, pSid) +AddAccessDeniedAcePrototype = WINFUNCTYPE(BOOL, PACL, DWORD, DWORD, PSID) +AddAccessDeniedAceParams = ((1, 'pAcl'), (1, 'dwAceRevision'), (1, 'AccessMask'), (1, 'pSid')) + +#def AddAccessDeniedAceEx(pAcl, dwAceRevision, AceFlags, AccessMask, pSid): +# return AddAccessDeniedAceEx.ctypes_function(pAcl, dwAceRevision, AceFlags, AccessMask, pSid) +AddAccessDeniedAceExPrototype = WINFUNCTYPE(BOOL, PACL, DWORD, DWORD, DWORD, PSID) +AddAccessDeniedAceExParams = ((1, 'pAcl'), (1, 'dwAceRevision'), (1, 'AceFlags'), (1, 'AccessMask'), (1, 'pSid')) + +#def BuildSecurityDescriptorW(pOwner, pGroup, cCountOfAccessEntries, pListOfAccessEntries, cCountOfAuditEntries, pListOfAuditEntries, pOldSD, pSizeNewSD, pNewSD): +# return BuildSecurityDescriptorW.ctypes_function(pOwner, pGroup, cCountOfAccessEntries, pListOfAccessEntries, cCountOfAuditEntries, pListOfAuditEntries, pOldSD, pSizeNewSD, pNewSD) +BuildSecurityDescriptorWPrototype = WINFUNCTYPE(DWORD, PTRUSTEE_W, PTRUSTEE_W, ULONG, PEXPLICIT_ACCESS_W, ULONG, PEXPLICIT_ACCESS_W, PSECURITY_DESCRIPTOR, PULONG, POINTER(PSECURITY_DESCRIPTOR)) +BuildSecurityDescriptorWParams = ((1, 'pOwner'), (1, 'pGroup'), (1, 'cCountOfAccessEntries'), (1, 'pListOfAccessEntries'), (1, 'cCountOfAuditEntries'), (1, 'pListOfAuditEntries'), (1, 'pOldSD'), (1, 'pSizeNewSD'), (1, 'pNewSD')) + +#def MakeAbsoluteSD(pSelfRelativeSecurityDescriptor, pAbsoluteSecurityDescriptor, lpdwAbsoluteSecurityDescriptorSize, pDacl, lpdwDaclSize, pSacl, lpdwSaclSize, pOwner, lpdwOwnerSize, pPrimaryGroup, lpdwPrimaryGroupSize): +# return MakeAbsoluteSD.ctypes_function(pSelfRelativeSecurityDescriptor, pAbsoluteSecurityDescriptor, lpdwAbsoluteSecurityDescriptorSize, pDacl, lpdwDaclSize, pSacl, lpdwSaclSize, pOwner, lpdwOwnerSize, pPrimaryGroup, lpdwPrimaryGroupSize) +MakeAbsoluteSDPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, LPDWORD, PACL, LPDWORD, PACL, LPDWORD, PSID, LPDWORD, PSID, LPDWORD) +MakeAbsoluteSDParams = ((1, 'pSelfRelativeSecurityDescriptor'), (1, 'pAbsoluteSecurityDescriptor'), (1, 'lpdwAbsoluteSecurityDescriptorSize'), (1, 'pDacl'), (1, 'lpdwDaclSize'), (1, 'pSacl'), (1, 'lpdwSaclSize'), (1, 'pOwner'), (1, 'lpdwOwnerSize'), (1, 'pPrimaryGroup'), (1, 'lpdwPrimaryGroupSize')) + +#def MakeSelfRelativeSD(pAbsoluteSecurityDescriptor, pSelfRelativeSecurityDescriptor, lpdwBufferLength): +# return MakeSelfRelativeSD.ctypes_function(pAbsoluteSecurityDescriptor, pSelfRelativeSecurityDescriptor, lpdwBufferLength) +MakeSelfRelativeSDPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, LPDWORD) +MakeSelfRelativeSDParams = ((1, 'pAbsoluteSecurityDescriptor'), (1, 'pSelfRelativeSecurityDescriptor'), (1, 'lpdwBufferLength')) + +#def InitializeSecurityDescriptor(pSecurityDescriptor, dwRevision): +# return InitializeSecurityDescriptor.ctypes_function(pSecurityDescriptor, dwRevision) +InitializeSecurityDescriptorPrototype = WINFUNCTYPE(BOOL, PSECURITY_DESCRIPTOR, DWORD) +InitializeSecurityDescriptorParams = ((1, 'pSecurityDescriptor'), (1, 'dwRevision')) + +#def OpenSCManagerA(lpMachineName, lpDatabaseName, dwDesiredAccess): +# return OpenSCManagerA.ctypes_function(lpMachineName, lpDatabaseName, dwDesiredAccess) +OpenSCManagerAPrototype = WINFUNCTYPE(SC_HANDLE, LPCSTR, LPCSTR, DWORD) +OpenSCManagerAParams = ((1, 'lpMachineName'), (1, 'lpDatabaseName'), (1, 'dwDesiredAccess')) + +#def OpenSCManagerW(lpMachineName, lpDatabaseName, dwDesiredAccess): +# return OpenSCManagerW.ctypes_function(lpMachineName, lpDatabaseName, dwDesiredAccess) +OpenSCManagerWPrototype = WINFUNCTYPE(SC_HANDLE, LPCWSTR, LPCWSTR, DWORD) +OpenSCManagerWParams = ((1, 'lpMachineName'), (1, 'lpDatabaseName'), (1, 'dwDesiredAccess')) + +#def CloseServiceHandle(hSCObject): +# return CloseServiceHandle.ctypes_function(hSCObject) +CloseServiceHandlePrototype = WINFUNCTYPE(BOOL, SC_HANDLE) +CloseServiceHandleParams = ((1, 'hSCObject'),) + +#def EnumServicesStatusExA(hSCManager, InfoLevel, dwServiceType, dwServiceState, lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned, lpResumeHandle, pszGroupName): +# return EnumServicesStatusExA.ctypes_function(hSCManager, InfoLevel, dwServiceType, dwServiceState, lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned, lpResumeHandle, pszGroupName) +EnumServicesStatusExAPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, SC_ENUM_TYPE, DWORD, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD, LPDWORD, LPCSTR) +EnumServicesStatusExAParams = ((1, 'hSCManager'), (1, 'InfoLevel'), (1, 'dwServiceType'), (1, 'dwServiceState'), (1, 'lpServices'), (1, 'cbBufSize'), (1, 'pcbBytesNeeded'), (1, 'lpServicesReturned'), (1, 'lpResumeHandle'), (1, 'pszGroupName')) + +#def EnumServicesStatusExW(hSCManager, InfoLevel, dwServiceType, dwServiceState, lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned, lpResumeHandle, pszGroupName): +# return EnumServicesStatusExW.ctypes_function(hSCManager, InfoLevel, dwServiceType, dwServiceState, lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned, lpResumeHandle, pszGroupName) +EnumServicesStatusExWPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, SC_ENUM_TYPE, DWORD, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD, LPDWORD, LPCWSTR) +EnumServicesStatusExWParams = ((1, 'hSCManager'), (1, 'InfoLevel'), (1, 'dwServiceType'), (1, 'dwServiceState'), (1, 'lpServices'), (1, 'cbBufSize'), (1, 'pcbBytesNeeded'), (1, 'lpServicesReturned'), (1, 'lpResumeHandle'), (1, 'pszGroupName')) + +#def StartServiceA(hService, dwNumServiceArgs, lpServiceArgVectors): +# return StartServiceA.ctypes_function(hService, dwNumServiceArgs, lpServiceArgVectors) +StartServiceAPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, POINTER(LPCSTR)) +StartServiceAParams = ((1, 'hService'), (1, 'dwNumServiceArgs'), (1, 'lpServiceArgVectors')) + +#def StartServiceW(hService, dwNumServiceArgs, lpServiceArgVectors): +# return StartServiceW.ctypes_function(hService, dwNumServiceArgs, lpServiceArgVectors) +StartServiceWPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, POINTER(LPCWSTR)) +StartServiceWParams = ((1, 'hService'), (1, 'dwNumServiceArgs'), (1, 'lpServiceArgVectors')) + +#def OpenServiceA(hSCManager, lpServiceName, dwDesiredAccess): +# return OpenServiceA.ctypes_function(hSCManager, lpServiceName, dwDesiredAccess) +OpenServiceAPrototype = WINFUNCTYPE(SC_HANDLE, SC_HANDLE, LPCSTR, DWORD) +OpenServiceAParams = ((1, 'hSCManager'), (1, 'lpServiceName'), (1, 'dwDesiredAccess')) + +#def OpenServiceW(hSCManager, lpServiceName, dwDesiredAccess): +# return OpenServiceW.ctypes_function(hSCManager, lpServiceName, dwDesiredAccess) +OpenServiceWPrototype = WINFUNCTYPE(SC_HANDLE, SC_HANDLE, LPCWSTR, DWORD) +OpenServiceWParams = ((1, 'hSCManager'), (1, 'lpServiceName'), (1, 'dwDesiredAccess')) + +#def ControlService(hService, dwControl, lpServiceStatus): +# return ControlService.ctypes_function(hService, dwControl, lpServiceStatus) +ControlServicePrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, LPSERVICE_STATUS) +ControlServiceParams = ((1, 'hService'), (1, 'dwControl'), (1, 'lpServiceStatus')) + +#def QueryServiceStatus(hService, lpServiceStatus): +# return QueryServiceStatus.ctypes_function(hService, lpServiceStatus) +QueryServiceStatusPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, LPSERVICE_STATUS) +QueryServiceStatusParams = ((1, 'hService'), (1, 'lpServiceStatus')) + +#def QueryServiceStatusEx(hService, InfoLevel, lpBuffer, cbBufSize, pcbBytesNeeded): +# return QueryServiceStatusEx.ctypes_function(hService, InfoLevel, lpBuffer, cbBufSize, pcbBytesNeeded) +QueryServiceStatusExPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, SC_STATUS_TYPE, LPBYTE, DWORD, LPDWORD) +QueryServiceStatusExParams = ((1, 'hService'), (1, 'InfoLevel'), (1, 'lpBuffer'), (1, 'cbBufSize'), (1, 'pcbBytesNeeded')) + +#def ChangeServiceConfig2A(hService, dwInfoLevel, lpInfo): +# return ChangeServiceConfig2A.ctypes_function(hService, dwInfoLevel, lpInfo) +ChangeServiceConfig2APrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, LPVOID) +ChangeServiceConfig2AParams = ((1, 'hService'), (1, 'dwInfoLevel'), (1, 'lpInfo')) + +#def ChangeServiceConfig2W(hService, dwInfoLevel, lpInfo): +# return ChangeServiceConfig2W.ctypes_function(hService, dwInfoLevel, lpInfo) +ChangeServiceConfig2WPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, LPVOID) +ChangeServiceConfig2WParams = ((1, 'hService'), (1, 'dwInfoLevel'), (1, 'lpInfo')) + +#def ChangeServiceConfigA(hService, dwServiceType, dwStartType, dwErrorControl, lpBinaryPathName, lpLoadOrderGroup, lpdwTagId, lpDependencies, lpServiceStartName, lpPassword, lpDisplayName): +# return ChangeServiceConfigA.ctypes_function(hService, dwServiceType, dwStartType, dwErrorControl, lpBinaryPathName, lpLoadOrderGroup, lpdwTagId, lpDependencies, lpServiceStartName, lpPassword, lpDisplayName) +ChangeServiceConfigAPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, DWORD, DWORD, LPCSTR, LPCSTR, LPDWORD, LPCSTR, LPCSTR, LPCSTR, LPCSTR) +ChangeServiceConfigAParams = ((1, 'hService'), (1, 'dwServiceType'), (1, 'dwStartType'), (1, 'dwErrorControl'), (1, 'lpBinaryPathName'), (1, 'lpLoadOrderGroup'), (1, 'lpdwTagId'), (1, 'lpDependencies'), (1, 'lpServiceStartName'), (1, 'lpPassword'), (1, 'lpDisplayName')) + +#def ChangeServiceConfigW(hService, dwServiceType, dwStartType, dwErrorControl, lpBinaryPathName, lpLoadOrderGroup, lpdwTagId, lpDependencies, lpServiceStartName, lpPassword, lpDisplayName): +# return ChangeServiceConfigW.ctypes_function(hService, dwServiceType, dwStartType, dwErrorControl, lpBinaryPathName, lpLoadOrderGroup, lpdwTagId, lpDependencies, lpServiceStartName, lpPassword, lpDisplayName) +ChangeServiceConfigWPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, DWORD, DWORD, LPCWSTR, LPCWSTR, LPDWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR) +ChangeServiceConfigWParams = ((1, 'hService'), (1, 'dwServiceType'), (1, 'dwStartType'), (1, 'dwErrorControl'), (1, 'lpBinaryPathName'), (1, 'lpLoadOrderGroup'), (1, 'lpdwTagId'), (1, 'lpDependencies'), (1, 'lpServiceStartName'), (1, 'lpPassword'), (1, 'lpDisplayName')) + +#def QueryServiceConfig2A(hService, dwInfoLevel, lpBuffer, cbBufSize, pcbBytesNeeded): +# return QueryServiceConfig2A.ctypes_function(hService, dwInfoLevel, lpBuffer, cbBufSize, pcbBytesNeeded) +QueryServiceConfig2APrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, LPBYTE, DWORD, LPDWORD) +QueryServiceConfig2AParams = ((1, 'hService'), (1, 'dwInfoLevel'), (1, 'lpBuffer'), (1, 'cbBufSize'), (1, 'pcbBytesNeeded')) + +#def QueryServiceConfig2W(hService, dwInfoLevel, lpBuffer, cbBufSize, pcbBytesNeeded): +# return QueryServiceConfig2W.ctypes_function(hService, dwInfoLevel, lpBuffer, cbBufSize, pcbBytesNeeded) +QueryServiceConfig2WPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, LPBYTE, DWORD, LPDWORD) +QueryServiceConfig2WParams = ((1, 'hService'), (1, 'dwInfoLevel'), (1, 'lpBuffer'), (1, 'cbBufSize'), (1, 'pcbBytesNeeded')) + +#def QueryServiceConfigA(hService, lpServiceConfig, cbBufSize, pcbBytesNeeded): +# return QueryServiceConfigA.ctypes_function(hService, lpServiceConfig, cbBufSize, pcbBytesNeeded) +QueryServiceConfigAPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, LPQUERY_SERVICE_CONFIGA, DWORD, LPDWORD) +QueryServiceConfigAParams = ((1, 'hService'), (1, 'lpServiceConfig'), (1, 'cbBufSize'), (1, 'pcbBytesNeeded')) + +#def QueryServiceConfigW(hService, lpServiceConfig, cbBufSize, pcbBytesNeeded): +# return QueryServiceConfigW.ctypes_function(hService, lpServiceConfig, cbBufSize, pcbBytesNeeded) +QueryServiceConfigWPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, LPQUERY_SERVICE_CONFIGW, DWORD, LPDWORD) +QueryServiceConfigWParams = ((1, 'hService'), (1, 'lpServiceConfig'), (1, 'cbBufSize'), (1, 'pcbBytesNeeded')) + +#def QueryServiceDynamicInformation(hServiceStatus, dwInfoLevel, ppDynamicInfo): +# return QueryServiceDynamicInformation.ctypes_function(hServiceStatus, dwInfoLevel, ppDynamicInfo) +QueryServiceDynamicInformationPrototype = WINFUNCTYPE(BOOL, SERVICE_STATUS_HANDLE, DWORD, POINTER(PVOID)) +QueryServiceDynamicInformationParams = ((1, 'hServiceStatus'), (1, 'dwInfoLevel'), (1, 'ppDynamicInfo')) + +#def GetServiceDisplayNameA(hSCManager, lpServiceName, lpDisplayName, lpcchBuffer): +# return GetServiceDisplayNameA.ctypes_function(hSCManager, lpServiceName, lpDisplayName, lpcchBuffer) +GetServiceDisplayNameAPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, LPCSTR, LPSTR, LPDWORD) +GetServiceDisplayNameAParams = ((1, 'hSCManager'), (1, 'lpServiceName'), (1, 'lpDisplayName'), (1, 'lpcchBuffer')) + +#def GetServiceDisplayNameW(hSCManager, lpServiceName, lpDisplayName, lpcchBuffer): +# return GetServiceDisplayNameW.ctypes_function(hSCManager, lpServiceName, lpDisplayName, lpcchBuffer) +GetServiceDisplayNameWPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, LPCWSTR, LPWSTR, LPDWORD) +GetServiceDisplayNameWParams = ((1, 'hSCManager'), (1, 'lpServiceName'), (1, 'lpDisplayName'), (1, 'lpcchBuffer')) + +#def GetServiceKeyNameA(hSCManager, lpDisplayName, lpServiceName, lpcchBuffer): +# return GetServiceKeyNameA.ctypes_function(hSCManager, lpDisplayName, lpServiceName, lpcchBuffer) +GetServiceKeyNameAPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, LPCSTR, LPSTR, LPDWORD) +GetServiceKeyNameAParams = ((1, 'hSCManager'), (1, 'lpDisplayName'), (1, 'lpServiceName'), (1, 'lpcchBuffer')) + +#def GetServiceKeyNameW(hSCManager, lpDisplayName, lpServiceName, lpcchBuffer): +# return GetServiceKeyNameW.ctypes_function(hSCManager, lpDisplayName, lpServiceName, lpcchBuffer) +GetServiceKeyNameWPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, LPCWSTR, LPWSTR, LPDWORD) +GetServiceKeyNameWParams = ((1, 'hSCManager'), (1, 'lpDisplayName'), (1, 'lpServiceName'), (1, 'lpcchBuffer')) + +#def EnumDependentServicesA(hService, dwServiceState, lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned): +# return EnumDependentServicesA.ctypes_function(hService, dwServiceState, lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned) +EnumDependentServicesAPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, LPENUM_SERVICE_STATUSA, DWORD, LPDWORD, LPDWORD) +EnumDependentServicesAParams = ((1, 'hService'), (1, 'dwServiceState'), (1, 'lpServices'), (1, 'cbBufSize'), (1, 'pcbBytesNeeded'), (1, 'lpServicesReturned')) + +#def EnumDependentServicesW(hService, dwServiceState, lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned): +# return EnumDependentServicesW.ctypes_function(hService, dwServiceState, lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned) +EnumDependentServicesWPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, LPENUM_SERVICE_STATUSW, DWORD, LPDWORD, LPDWORD) +EnumDependentServicesWParams = ((1, 'hService'), (1, 'dwServiceState'), (1, 'lpServices'), (1, 'cbBufSize'), (1, 'pcbBytesNeeded'), (1, 'lpServicesReturned')) + +#def ControlService(hService, dwControl, lpServiceStatus): +# return ControlService.ctypes_function(hService, dwControl, lpServiceStatus) +ControlServicePrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, LPSERVICE_STATUS) +ControlServiceParams = ((1, 'hService'), (1, 'dwControl'), (1, 'lpServiceStatus')) + +#def ControlServiceExA(hService, dwControl, dwInfoLevel, pControlParams): +# return ControlServiceExA.ctypes_function(hService, dwControl, dwInfoLevel, pControlParams) +ControlServiceExAPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, DWORD, PVOID) +ControlServiceExAParams = ((1, 'hService'), (1, 'dwControl'), (1, 'dwInfoLevel'), (1, 'pControlParams')) + +#def ControlServiceExW(hService, dwControl, dwInfoLevel, pControlParams): +# return ControlServiceExW.ctypes_function(hService, dwControl, dwInfoLevel, pControlParams) +ControlServiceExWPrototype = WINFUNCTYPE(BOOL, SC_HANDLE, DWORD, DWORD, PVOID) +ControlServiceExWParams = ((1, 'hService'), (1, 'dwControl'), (1, 'dwInfoLevel'), (1, 'pControlParams')) + +#def CreateServiceA(hSCManager, lpServiceName, lpDisplayName, dwDesiredAccess, dwServiceType, dwStartType, dwErrorControl, lpBinaryPathName, lpLoadOrderGroup, lpdwTagId, lpDependencies, lpServiceStartName, lpPassword): +# return CreateServiceA.ctypes_function(hSCManager, lpServiceName, lpDisplayName, dwDesiredAccess, dwServiceType, dwStartType, dwErrorControl, lpBinaryPathName, lpLoadOrderGroup, lpdwTagId, lpDependencies, lpServiceStartName, lpPassword) +CreateServiceAPrototype = WINFUNCTYPE(SC_HANDLE, SC_HANDLE, LPCSTR, LPCSTR, DWORD, DWORD, DWORD, DWORD, LPCSTR, LPCSTR, LPDWORD, LPCSTR, LPCSTR, LPCSTR) +CreateServiceAParams = ((1, 'hSCManager'), (1, 'lpServiceName'), (1, 'lpDisplayName'), (1, 'dwDesiredAccess'), (1, 'dwServiceType'), (1, 'dwStartType'), (1, 'dwErrorControl'), (1, 'lpBinaryPathName'), (1, 'lpLoadOrderGroup'), (1, 'lpdwTagId'), (1, 'lpDependencies'), (1, 'lpServiceStartName'), (1, 'lpPassword')) + +#def CreateServiceW(hSCManager, lpServiceName, lpDisplayName, dwDesiredAccess, dwServiceType, dwStartType, dwErrorControl, lpBinaryPathName, lpLoadOrderGroup, lpdwTagId, lpDependencies, lpServiceStartName, lpPassword): +# return CreateServiceW.ctypes_function(hSCManager, lpServiceName, lpDisplayName, dwDesiredAccess, dwServiceType, dwStartType, dwErrorControl, lpBinaryPathName, lpLoadOrderGroup, lpdwTagId, lpDependencies, lpServiceStartName, lpPassword) +CreateServiceWPrototype = WINFUNCTYPE(SC_HANDLE, SC_HANDLE, LPCWSTR, LPCWSTR, DWORD, DWORD, DWORD, DWORD, LPCWSTR, LPCWSTR, LPDWORD, LPCWSTR, LPCWSTR, LPCWSTR) +CreateServiceWParams = ((1, 'hSCManager'), (1, 'lpServiceName'), (1, 'lpDisplayName'), (1, 'dwDesiredAccess'), (1, 'dwServiceType'), (1, 'dwStartType'), (1, 'dwErrorControl'), (1, 'lpBinaryPathName'), (1, 'lpLoadOrderGroup'), (1, 'lpdwTagId'), (1, 'lpDependencies'), (1, 'lpServiceStartName'), (1, 'lpPassword')) + +#def DeleteService(hService): +# return DeleteService.ctypes_function(hService) +DeleteServicePrototype = WINFUNCTYPE(BOOL, SC_HANDLE) +DeleteServiceParams = ((1, 'hService'),) + +#def StartServiceCtrlDispatcherA(lpServiceStartTable): +# return StartServiceCtrlDispatcherA.ctypes_function(lpServiceStartTable) +StartServiceCtrlDispatcherAPrototype = WINFUNCTYPE(BOOL, POINTER(SERVICE_TABLE_ENTRYA)) +StartServiceCtrlDispatcherAParams = ((1, 'lpServiceStartTable'),) + +#def StartServiceCtrlDispatcherW(lpServiceStartTable): +# return StartServiceCtrlDispatcherW.ctypes_function(lpServiceStartTable) +StartServiceCtrlDispatcherWPrototype = WINFUNCTYPE(BOOL, POINTER(SERVICE_TABLE_ENTRYW)) +StartServiceCtrlDispatcherWParams = ((1, 'lpServiceStartTable'),) + +#def SetupDiClassNameFromGuidA(ClassGuid, ClassName, ClassNameSize, RequiredSize): +# return SetupDiClassNameFromGuidA.ctypes_function(ClassGuid, ClassName, ClassNameSize, RequiredSize) +SetupDiClassNameFromGuidAPrototype = WINFUNCTYPE(BOOL, POINTER(GUID), PSTR, DWORD, PDWORD) +SetupDiClassNameFromGuidAParams = ((1, 'ClassGuid'), (1, 'ClassName'), (1, 'ClassNameSize'), (1, 'RequiredSize')) + +#def SetupDiClassNameFromGuidW(ClassGuid, ClassName, ClassNameSize, RequiredSize): +# return SetupDiClassNameFromGuidW.ctypes_function(ClassGuid, ClassName, ClassNameSize, RequiredSize) +SetupDiClassNameFromGuidWPrototype = WINFUNCTYPE(BOOL, POINTER(GUID), PWSTR, DWORD, PDWORD) +SetupDiClassNameFromGuidWParams = ((1, 'ClassGuid'), (1, 'ClassName'), (1, 'ClassNameSize'), (1, 'RequiredSize')) + +#def SetupDiClassNameFromGuidExA(ClassGuid, ClassName, ClassNameSize, RequiredSize, MachineName, Reserved): +# return SetupDiClassNameFromGuidExA.ctypes_function(ClassGuid, ClassName, ClassNameSize, RequiredSize, MachineName, Reserved) +SetupDiClassNameFromGuidExAPrototype = WINFUNCTYPE(BOOL, POINTER(GUID), PSTR, DWORD, PDWORD, PCSTR, PVOID) +SetupDiClassNameFromGuidExAParams = ((1, 'ClassGuid'), (1, 'ClassName'), (1, 'ClassNameSize'), (1, 'RequiredSize'), (1, 'MachineName'), (1, 'Reserved')) + +#def SetupDiClassNameFromGuidExW(ClassGuid, ClassName, ClassNameSize, RequiredSize, MachineName, Reserved): +# return SetupDiClassNameFromGuidExW.ctypes_function(ClassGuid, ClassName, ClassNameSize, RequiredSize, MachineName, Reserved) +SetupDiClassNameFromGuidExWPrototype = WINFUNCTYPE(BOOL, POINTER(GUID), PWSTR, DWORD, PDWORD, PCWSTR, PVOID) +SetupDiClassNameFromGuidExWParams = ((1, 'ClassGuid'), (1, 'ClassName'), (1, 'ClassNameSize'), (1, 'RequiredSize'), (1, 'MachineName'), (1, 'Reserved')) + +#def SetupDiGetClassDevsA(ClassGuid, Enumerator, hwndParent, Flags): +# return SetupDiGetClassDevsA.ctypes_function(ClassGuid, Enumerator, hwndParent, Flags) +SetupDiGetClassDevsAPrototype = WINFUNCTYPE(HDEVINFO, POINTER(GUID), PCSTR, HWND, DWORD) +SetupDiGetClassDevsAParams = ((1, 'ClassGuid'), (1, 'Enumerator'), (1, 'hwndParent'), (1, 'Flags')) + +#def SetupDiGetClassDevsW(ClassGuid, Enumerator, hwndParent, Flags): +# return SetupDiGetClassDevsW.ctypes_function(ClassGuid, Enumerator, hwndParent, Flags) +SetupDiGetClassDevsWPrototype = WINFUNCTYPE(HDEVINFO, POINTER(GUID), PCWSTR, HWND, DWORD) +SetupDiGetClassDevsWParams = ((1, 'ClassGuid'), (1, 'Enumerator'), (1, 'hwndParent'), (1, 'Flags')) + +#def SetupDiDeleteDeviceInfo(DeviceInfoSet, DeviceInfoData): +# return SetupDiDeleteDeviceInfo.ctypes_function(DeviceInfoSet, DeviceInfoData) +SetupDiDeleteDeviceInfoPrototype = WINFUNCTYPE(BOOL, HDEVINFO, PSP_DEVINFO_DATA) +SetupDiDeleteDeviceInfoParams = ((1, 'DeviceInfoSet'), (1, 'DeviceInfoData')) + +#def SetupDiEnumDeviceInfo(DeviceInfoSet, MemberIndex, DeviceInfoData): +# return SetupDiEnumDeviceInfo.ctypes_function(DeviceInfoSet, MemberIndex, DeviceInfoData) +SetupDiEnumDeviceInfoPrototype = WINFUNCTYPE(BOOL, HDEVINFO, DWORD, PSP_DEVINFO_DATA) +SetupDiEnumDeviceInfoParams = ((1, 'DeviceInfoSet'), (1, 'MemberIndex'), (1, 'DeviceInfoData')) + +#def SetupDiDestroyDeviceInfoList(DeviceInfoSet): +# return SetupDiDestroyDeviceInfoList.ctypes_function(DeviceInfoSet) +SetupDiDestroyDeviceInfoListPrototype = WINFUNCTYPE(BOOL, HDEVINFO) +SetupDiDestroyDeviceInfoListParams = ((1, 'DeviceInfoSet'),) + +#def SetupDiEnumDeviceInterfaces(DeviceInfoSet, DeviceInfoData, InterfaceClassGuid, MemberIndex, DeviceInterfaceData): +# return SetupDiEnumDeviceInterfaces.ctypes_function(DeviceInfoSet, DeviceInfoData, InterfaceClassGuid, MemberIndex, DeviceInterfaceData) +SetupDiEnumDeviceInterfacesPrototype = WINFUNCTYPE(BOOL, HDEVINFO, PSP_DEVINFO_DATA, POINTER(GUID), DWORD, PSP_DEVICE_INTERFACE_DATA) +SetupDiEnumDeviceInterfacesParams = ((1, 'DeviceInfoSet'), (1, 'DeviceInfoData'), (1, 'InterfaceClassGuid'), (1, 'MemberIndex'), (1, 'DeviceInterfaceData')) + +#def SetupDiGetDeviceRegistryPropertyA(DeviceInfoSet, DeviceInfoData, Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize, RequiredSize): +# return SetupDiGetDeviceRegistryPropertyA.ctypes_function(DeviceInfoSet, DeviceInfoData, Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize, RequiredSize) +SetupDiGetDeviceRegistryPropertyAPrototype = WINFUNCTYPE(BOOL, HDEVINFO, PSP_DEVINFO_DATA, DWORD, PDWORD, PBYTE, DWORD, PDWORD) +SetupDiGetDeviceRegistryPropertyAParams = ((1, 'DeviceInfoSet'), (1, 'DeviceInfoData'), (1, 'Property'), (1, 'PropertyRegDataType'), (1, 'PropertyBuffer'), (1, 'PropertyBufferSize'), (1, 'RequiredSize')) + +#def SetupDiGetDeviceRegistryPropertyW(DeviceInfoSet, DeviceInfoData, Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize, RequiredSize): +# return SetupDiGetDeviceRegistryPropertyW.ctypes_function(DeviceInfoSet, DeviceInfoData, Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize, RequiredSize) +SetupDiGetDeviceRegistryPropertyWPrototype = WINFUNCTYPE(BOOL, HDEVINFO, PSP_DEVINFO_DATA, DWORD, PDWORD, PBYTE, DWORD, PDWORD) +SetupDiGetDeviceRegistryPropertyWParams = ((1, 'DeviceInfoSet'), (1, 'DeviceInfoData'), (1, 'Property'), (1, 'PropertyRegDataType'), (1, 'PropertyBuffer'), (1, 'PropertyBufferSize'), (1, 'RequiredSize')) + +#def ShellExecuteA(hwnd, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd): +# return ShellExecuteA.ctypes_function(hwnd, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd) +ShellExecuteAPrototype = WINFUNCTYPE(HINSTANCE, HWND, LPCSTR, LPCSTR, LPCSTR, LPCSTR, INT) +ShellExecuteAParams = ((1, 'hwnd'), (1, 'lpOperation'), (1, 'lpFile'), (1, 'lpParameters'), (1, 'lpDirectory'), (1, 'nShowCmd')) + +#def ShellExecuteW(hwnd, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd): +# return ShellExecuteW.ctypes_function(hwnd, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd) +ShellExecuteWPrototype = WINFUNCTYPE(HINSTANCE, HWND, LPWSTR, LPWSTR, LPWSTR, LPWSTR, INT) +ShellExecuteWParams = ((1, 'hwnd'), (1, 'lpOperation'), (1, 'lpFile'), (1, 'lpParameters'), (1, 'lpDirectory'), (1, 'nShowCmd')) + +#def SHGetPathFromIDListA(pidl, pszPath): +# return SHGetPathFromIDListA.ctypes_function(pidl, pszPath) +SHGetPathFromIDListAPrototype = WINFUNCTYPE(BOOL, PCIDLIST_ABSOLUTE, LPCSTR) +SHGetPathFromIDListAParams = ((1, 'pidl'), (1, 'pszPath')) + +#def SHGetPathFromIDListW(pidl, pszPath): +# return SHGetPathFromIDListW.ctypes_function(pidl, pszPath) +SHGetPathFromIDListWPrototype = WINFUNCTYPE(BOOL, PCIDLIST_ABSOLUTE, LPWSTR) +SHGetPathFromIDListWParams = ((1, 'pidl'), (1, 'pszPath')) + +#def SHFileOperationA(lpFileOp): +# return SHFileOperationA.ctypes_function(lpFileOp) +SHFileOperationAPrototype = WINFUNCTYPE(INT, LPSHFILEOPSTRUCTA) +SHFileOperationAParams = ((1, 'lpFileOp'),) + +#def StrStrIW(pszFirst, pszSrch): +# return StrStrIW.ctypes_function(pszFirst, pszSrch) +StrStrIWPrototype = WINFUNCTYPE(PWSTR, PWSTR, PWSTR) +StrStrIWParams = ((1, 'pszFirst'), (1, 'pszSrch')) + +#def StrStrIA(pszFirst, pszSrch): +# return StrStrIA.ctypes_function(pszFirst, pszSrch) +StrStrIAPrototype = WINFUNCTYPE(PCSTR, PCSTR, PCSTR) +StrStrIAParams = ((1, 'pszFirst'), (1, 'pszSrch')) + +#def IsOS(dwOS): +# return IsOS.ctypes_function(dwOS) +IsOSPrototype = WINFUNCTYPE(BOOL, DWORD) +IsOSParams = ((1, 'dwOS'),) + +#def SymLoadModuleExA(hProcess, hFile, ImageName, ModuleName, BaseOfDll, DllSize, Data, Flags): +# return SymLoadModuleExA.ctypes_function(hProcess, hFile, ImageName, ModuleName, BaseOfDll, DllSize, Data, Flags) +SymLoadModuleExAPrototype = WINFUNCTYPE(DWORD64, HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD) +SymLoadModuleExAParams = ((1, 'hProcess'), (1, 'hFile'), (1, 'ImageName'), (1, 'ModuleName'), (1, 'BaseOfDll'), (1, 'DllSize'), (1, 'Data'), (1, 'Flags')) + +#def SymLoadModuleExW(hProcess, hFile, ImageName, ModuleName, BaseOfDll, DllSize, Data, Flags): +# return SymLoadModuleExW.ctypes_function(hProcess, hFile, ImageName, ModuleName, BaseOfDll, DllSize, Data, Flags) +SymLoadModuleExWPrototype = WINFUNCTYPE(DWORD64, HANDLE, HANDLE, PCWSTR, PCWSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD) +SymLoadModuleExWParams = ((1, 'hProcess'), (1, 'hFile'), (1, 'ImageName'), (1, 'ModuleName'), (1, 'BaseOfDll'), (1, 'DllSize'), (1, 'Data'), (1, 'Flags')) + +#def SymFromAddr(hProcess, Address, Displacement, Symbol): +# return SymFromAddr.ctypes_function(hProcess, Address, Displacement, Symbol) +SymFromAddrPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD64, PDWORD64, PSYMBOL_INFO) +SymFromAddrParams = ((1, 'hProcess'), (1, 'Address'), (1, 'Displacement'), (1, 'Symbol')) + +#def SymGetModuleInfo64(hProcess, dwAddr, ModuleInfo): +# return SymGetModuleInfo64.ctypes_function(hProcess, dwAddr, ModuleInfo) +SymGetModuleInfo64Prototype = WINFUNCTYPE(BOOL, HANDLE, DWORD64, PIMAGEHLP_MODULE64) +SymGetModuleInfo64Params = ((1, 'hProcess'), (1, 'dwAddr'), (1, 'ModuleInfo')) + +#def SymGetModuleInfoW64(hProcess, qwAddr, ModuleInfo): +# return SymGetModuleInfoW64.ctypes_function(hProcess, qwAddr, ModuleInfo) +SymGetModuleInfoW64Prototype = WINFUNCTYPE(BOOL, HANDLE, DWORD64, PIMAGEHLP_MODULEW64) +SymGetModuleInfoW64Params = ((1, 'hProcess'), (1, 'qwAddr'), (1, 'ModuleInfo')) + +#def SymInitialize(hProcess, UserSearchPath, fInvadeProcess): +# return SymInitialize.ctypes_function(hProcess, UserSearchPath, fInvadeProcess) +SymInitializePrototype = WINFUNCTYPE(BOOL, HANDLE, LPCSTR, BOOL) +SymInitializeParams = ((1, 'hProcess'), (1, 'UserSearchPath'), (1, 'fInvadeProcess')) + +#def SymFromName(hProcess, Name, Symbol): +# return SymFromName.ctypes_function(hProcess, Name, Symbol) +SymFromNamePrototype = WINFUNCTYPE(BOOL, HANDLE, LPCSTR, PSYMBOL_INFO) +SymFromNameParams = ((1, 'hProcess'), (1, 'Name'), (1, 'Symbol')) + +#def SymFromNameW(hProcess, Name, Symbol): +# return SymFromNameW.ctypes_function(hProcess, Name, Symbol) +SymFromNameWPrototype = WINFUNCTYPE(BOOL, HANDLE, PCWSTR, PSYMBOL_INFOW) +SymFromNameWParams = ((1, 'hProcess'), (1, 'Name'), (1, 'Symbol')) + +#def SymLoadModuleEx(hProcess, hFile, ImageName, ModuleName, BaseOfDll, DllSize, Data, Flags): +# return SymLoadModuleEx.ctypes_function(hProcess, hFile, ImageName, ModuleName, BaseOfDll, DllSize, Data, Flags) +SymLoadModuleExPrototype = WINFUNCTYPE(DWORD64, HANDLE, HANDLE, LPCSTR, LPCSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD) +SymLoadModuleExParams = ((1, 'hProcess'), (1, 'hFile'), (1, 'ImageName'), (1, 'ModuleName'), (1, 'BaseOfDll'), (1, 'DllSize'), (1, 'Data'), (1, 'Flags')) + +#def SymSetOptions(SymOptions): +# return SymSetOptions.ctypes_function(SymOptions) +SymSetOptionsPrototype = WINFUNCTYPE(DWORD, DWORD) +SymSetOptionsParams = ((1, 'SymOptions'),) + +#def SymGetOptions(): +# return SymGetOptions.ctypes_function() +SymGetOptionsPrototype = WINFUNCTYPE(DWORD) +SymGetOptionsParams = () + +#def SymEnumSymbols(hProcess, BaseOfDll, Mask, EnumSymbolsCallback, UserContext): +# return SymEnumSymbols.ctypes_function(hProcess, BaseOfDll, Mask, EnumSymbolsCallback, UserContext) +SymEnumSymbolsPrototype = WINFUNCTYPE(BOOL, HANDLE, ULONG64, PCSTR, PVOID, PVOID) +SymEnumSymbolsParams = ((1, 'hProcess'), (1, 'BaseOfDll'), (1, 'Mask'), (1, 'EnumSymbolsCallback'), (1, 'UserContext')) + +#def SymEnumSymbolsEx(hProcess, BaseOfDll, Mask, EnumSymbolsCallback, UserContext, Options): +# return SymEnumSymbolsEx.ctypes_function(hProcess, BaseOfDll, Mask, EnumSymbolsCallback, UserContext, Options) +SymEnumSymbolsExPrototype = WINFUNCTYPE(BOOL, HANDLE, ULONG64, PCSTR, PVOID, PVOID, DWORD) +SymEnumSymbolsExParams = ((1, 'hProcess'), (1, 'BaseOfDll'), (1, 'Mask'), (1, 'EnumSymbolsCallback'), (1, 'UserContext'), (1, 'Options')) + +#def SymEnumTypes(hProcess, BaseOfDll, EnumSymbolsCallback, UserContext): +# return SymEnumTypes.ctypes_function(hProcess, BaseOfDll, EnumSymbolsCallback, UserContext) +SymEnumTypesPrototype = WINFUNCTYPE(BOOL, HANDLE, ULONG64, PVOID, PVOID) +SymEnumTypesParams = ((1, 'hProcess'), (1, 'BaseOfDll'), (1, 'EnumSymbolsCallback'), (1, 'UserContext')) + +#def SymEnumTypesByName(hProcess, BaseOfDll, mask, EnumSymbolsCallback, UserContext): +# return SymEnumTypesByName.ctypes_function(hProcess, BaseOfDll, mask, EnumSymbolsCallback, UserContext) +SymEnumTypesByNamePrototype = WINFUNCTYPE(BOOL, HANDLE, ULONG64, PCSTR, PVOID, PVOID) +SymEnumTypesByNameParams = ((1, 'hProcess'), (1, 'BaseOfDll'), (1, 'mask'), (1, 'EnumSymbolsCallback'), (1, 'UserContext')) + +#def SymEnumerateModules64(hProcess, EnumModulesCallback, UserContext): +# return SymEnumerateModules64.ctypes_function(hProcess, EnumModulesCallback, UserContext) +SymEnumerateModules64Prototype = WINFUNCTYPE(BOOL, HANDLE, PVOID, PVOID) +SymEnumerateModules64Params = ((1, 'hProcess'), (1, 'EnumModulesCallback'), (1, 'UserContext')) + +#def SymNext(hProcess, si): +# return SymNext.ctypes_function(hProcess, si) +SymNextPrototype = WINFUNCTYPE(BOOL, HANDLE, PSYMBOL_INFO) +SymNextParams = ((1, 'hProcess'), (1, 'si')) + +#def SymNextW(hProcess, siw): +# return SymNextW.ctypes_function(hProcess, siw) +SymNextWPrototype = WINFUNCTYPE(BOOL, HANDLE, PSYMBOL_INFOW) +SymNextWParams = ((1, 'hProcess'), (1, 'siw')) + +#def SymPrev(hProcess, si): +# return SymPrev.ctypes_function(hProcess, si) +SymPrevPrototype = WINFUNCTYPE(BOOL, HANDLE, PSYMBOL_INFO) +SymPrevParams = ((1, 'hProcess'), (1, 'si')) + +#def SymPrevW(hProcess, siw): +# return SymPrevW.ctypes_function(hProcess, siw) +SymPrevWPrototype = WINFUNCTYPE(BOOL, HANDLE, PSYMBOL_INFOW) +SymPrevWParams = ((1, 'hProcess'), (1, 'siw')) + +#def SymSetContext(hProcess, StackFrame, Context): +# return SymSetContext.ctypes_function(hProcess, StackFrame, Context) +SymSetContextPrototype = WINFUNCTYPE(BOOL, HANDLE, PIMAGEHLP_STACK_FRAME, PIMAGEHLP_CONTEXT) +SymSetContextParams = ((1, 'hProcess'), (1, 'StackFrame'), (1, 'Context')) + +#def SymSetExtendedOption(option, value): +# return SymSetExtendedOption.ctypes_function(option, value) +SymSetExtendedOptionPrototype = WINFUNCTYPE(BOOL, IMAGEHLP_EXTENDED_OPTIONS, BOOL) +SymSetExtendedOptionParams = ((1, 'option'), (1, 'value')) + +#def SymSrvGetFileIndexes(File, Id, Val1, Val2, Flags): +# return SymSrvGetFileIndexes.ctypes_function(File, Id, Val1, Val2, Flags) +SymSrvGetFileIndexesPrototype = WINFUNCTYPE(BOOL, PCSTR, POINTER(GUID), PDWORD, PDWORD, DWORD) +SymSrvGetFileIndexesParams = ((1, 'File'), (1, 'Id'), (1, 'Val1'), (1, 'Val2'), (1, 'Flags')) + +#def SymSrvGetFileIndexesW(File, Id, Val1, Val2, Flags): +# return SymSrvGetFileIndexesW.ctypes_function(File, Id, Val1, Val2, Flags) +SymSrvGetFileIndexesWPrototype = WINFUNCTYPE(BOOL, PCWSTR, POINTER(GUID), PDWORD, PDWORD, DWORD) +SymSrvGetFileIndexesWParams = ((1, 'File'), (1, 'Id'), (1, 'Val1'), (1, 'Val2'), (1, 'Flags')) + +#def SymSrvGetFileIndexInfo(File, Info, Flags): +# return SymSrvGetFileIndexInfo.ctypes_function(File, Info, Flags) +SymSrvGetFileIndexInfoPrototype = WINFUNCTYPE(BOOL, PCSTR, PSYMSRV_INDEX_INFO, DWORD) +SymSrvGetFileIndexInfoParams = ((1, 'File'), (1, 'Info'), (1, 'Flags')) + +#def SymSrvGetFileIndexInfoW(File, Info, Flags): +# return SymSrvGetFileIndexInfoW.ctypes_function(File, Info, Flags) +SymSrvGetFileIndexInfoWPrototype = WINFUNCTYPE(BOOL, PCWSTR, PSYMSRV_INDEX_INFOW, DWORD) +SymSrvGetFileIndexInfoWParams = ((1, 'File'), (1, 'Info'), (1, 'Flags')) + +#def SymSrvGetFileIndexString(hProcess, SrvPath, File, Index, Size, Flags): +# return SymSrvGetFileIndexString.ctypes_function(hProcess, SrvPath, File, Index, Size, Flags) +SymSrvGetFileIndexStringPrototype = WINFUNCTYPE(BOOL, HANDLE, PCSTR, PCSTR, PSTR, SIZE_T, DWORD) +SymSrvGetFileIndexStringParams = ((1, 'hProcess'), (1, 'SrvPath'), (1, 'File'), (1, 'Index'), (1, 'Size'), (1, 'Flags')) + +#def SymSrvGetFileIndexStringW(hProcess, SrvPath, File, Index, Size, Flags): +# return SymSrvGetFileIndexStringW.ctypes_function(hProcess, SrvPath, File, Index, Size, Flags) +SymSrvGetFileIndexStringWPrototype = WINFUNCTYPE(BOOL, HANDLE, PCWSTR, PCWSTR, PWSTR, SIZE_T, DWORD) +SymSrvGetFileIndexStringWParams = ((1, 'hProcess'), (1, 'SrvPath'), (1, 'File'), (1, 'Index'), (1, 'Size'), (1, 'Flags')) + +#def SymUnDName(sym, UnDecName, UnDecNameLength): +# return SymUnDName.ctypes_function(sym, UnDecName, UnDecNameLength) +SymUnDNamePrototype = WINFUNCTYPE(BOOL, PIMAGEHLP_SYMBOL, PSTR, DWORD) +SymUnDNameParams = ((1, 'sym'), (1, 'UnDecName'), (1, 'UnDecNameLength')) + +#def SymUnDName64(sym, UnDecName, UnDecNameLength): +# return SymUnDName64.ctypes_function(sym, UnDecName, UnDecNameLength) +SymUnDName64Prototype = WINFUNCTYPE(BOOL, PIMAGEHLP_SYMBOL64, PSTR, DWORD) +SymUnDName64Params = ((1, 'sym'), (1, 'UnDecName'), (1, 'UnDecNameLength')) + +#def SymUnloadModule(hProcess, BaseOfDll): +# return SymUnloadModule.ctypes_function(hProcess, BaseOfDll) +SymUnloadModulePrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD) +SymUnloadModuleParams = ((1, 'hProcess'), (1, 'BaseOfDll')) + +#def SymUnloadModule64(hProcess, BaseOfDll): +# return SymUnloadModule64.ctypes_function(hProcess, BaseOfDll) +SymUnloadModule64Prototype = WINFUNCTYPE(BOOL, HANDLE, DWORD64) +SymUnloadModule64Params = ((1, 'hProcess'), (1, 'BaseOfDll')) + +#def UnDecorateSymbolName(name, outputString, maxStringLength, flags): +# return UnDecorateSymbolName.ctypes_function(name, outputString, maxStringLength, flags) +UnDecorateSymbolNamePrototype = WINFUNCTYPE(DWORD, PCSTR, PSTR, DWORD, DWORD) +UnDecorateSymbolNameParams = ((1, 'name'), (1, 'outputString'), (1, 'maxStringLength'), (1, 'flags')) + +#def UnDecorateSymbolNameW(name, outputString, maxStringLength, flags): +# return UnDecorateSymbolNameW.ctypes_function(name, outputString, maxStringLength, flags) +UnDecorateSymbolNameWPrototype = WINFUNCTYPE(DWORD, PCWSTR, PWSTR, DWORD, DWORD) +UnDecorateSymbolNameWParams = ((1, 'name'), (1, 'outputString'), (1, 'maxStringLength'), (1, 'flags')) + +#def SymCleanup(hProcess): +# return SymCleanup.ctypes_function(hProcess) +SymCleanupPrototype = WINFUNCTYPE(BOOL, HANDLE) +SymCleanupParams = ((1, 'hProcess'),) + +#def SymEnumProcesses(EnumProcessesCallback, UserContext): +# return SymEnumProcesses.ctypes_function(EnumProcessesCallback, UserContext) +SymEnumProcessesPrototype = WINFUNCTYPE(BOOL, PSYM_ENUMPROCESSES_CALLBACK, PVOID) +SymEnumProcessesParams = ((1, 'EnumProcessesCallback'), (1, 'UserContext')) + +#def SymEnumSymbolsForAddr(hProcess, Address, EnumSymbolsCallback, UserContext): +# return SymEnumSymbolsForAddr.ctypes_function(hProcess, Address, EnumSymbolsCallback, UserContext) +SymEnumSymbolsForAddrPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID) +SymEnumSymbolsForAddrParams = ((1, 'hProcess'), (1, 'Address'), (1, 'EnumSymbolsCallback'), (1, 'UserContext')) + +#def SymEnumSymbolsForAddrW(hProcess, Address, EnumSymbolsCallback, UserContext): +# return SymEnumSymbolsForAddrW.ctypes_function(hProcess, Address, EnumSymbolsCallback, UserContext) +SymEnumSymbolsForAddrWPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID) +SymEnumSymbolsForAddrWParams = ((1, 'hProcess'), (1, 'Address'), (1, 'EnumSymbolsCallback'), (1, 'UserContext')) + +#def SymGetTypeFromName(hProcess, BaseOfDll, Name, Symbol): +# return SymGetTypeFromName.ctypes_function(hProcess, BaseOfDll, Name, Symbol) +SymGetTypeFromNamePrototype = WINFUNCTYPE(BOOL, HANDLE, ULONG64, PCSTR, PSYMBOL_INFO) +SymGetTypeFromNameParams = ((1, 'hProcess'), (1, 'BaseOfDll'), (1, 'Name'), (1, 'Symbol')) + +#def SymGetTypeInfo(hProcess, ModBase, TypeId, GetType, pInfo): +# return SymGetTypeInfo.ctypes_function(hProcess, ModBase, TypeId, GetType, pInfo) +SymGetTypeInfoPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD64, ULONG, IMAGEHLP_SYMBOL_TYPE_INFO, PVOID) +SymGetTypeInfoParams = ((1, 'hProcess'), (1, 'ModBase'), (1, 'TypeId'), (1, 'GetType'), (1, 'pInfo')) + +#def SymSearch(hProcess, BaseOfDll, Index, SymTag, Mask, Address, EnumSymbolsCallback, UserContext, Options): +# return SymSearch.ctypes_function(hProcess, BaseOfDll, Index, SymTag, Mask, Address, EnumSymbolsCallback, UserContext, Options) +SymSearchPrototype = WINFUNCTYPE(BOOL, HANDLE, ULONG64, DWORD, DWORD, PCSTR, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID, DWORD) +SymSearchParams = ((1, 'hProcess'), (1, 'BaseOfDll'), (1, 'Index'), (1, 'SymTag'), (1, 'Mask'), (1, 'Address'), (1, 'EnumSymbolsCallback'), (1, 'UserContext'), (1, 'Options')) + +#def SymSearchW(hProcess, BaseOfDll, Index, SymTag, Mask, Address, EnumSymbolsCallback, UserContext, Options): +# return SymSearchW.ctypes_function(hProcess, BaseOfDll, Index, SymTag, Mask, Address, EnumSymbolsCallback, UserContext, Options) +SymSearchWPrototype = WINFUNCTYPE(BOOL, HANDLE, ULONG64, DWORD, DWORD, PCWSTR, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID, DWORD) +SymSearchWParams = ((1, 'hProcess'), (1, 'BaseOfDll'), (1, 'Index'), (1, 'SymTag'), (1, 'Mask'), (1, 'Address'), (1, 'EnumSymbolsCallback'), (1, 'UserContext'), (1, 'Options')) + +#def SymFunctionTableAccess(hProcess, AddrBase): +# return SymFunctionTableAccess.ctypes_function(hProcess, AddrBase) +SymFunctionTableAccessPrototype = WINFUNCTYPE(PVOID, HANDLE, DWORD) +SymFunctionTableAccessParams = ((1, 'hProcess'), (1, 'AddrBase')) + +#def SymFunctionTableAccess64(hProcess, AddrBase): +# return SymFunctionTableAccess64.ctypes_function(hProcess, AddrBase) +SymFunctionTableAccess64Prototype = WINFUNCTYPE(PVOID, HANDLE, DWORD64) +SymFunctionTableAccess64Params = ((1, 'hProcess'), (1, 'AddrBase')) + +#def SymGetModuleBase(hProcess, dwAddr): +# return SymGetModuleBase.ctypes_function(hProcess, dwAddr) +SymGetModuleBasePrototype = WINFUNCTYPE(DWORD, HANDLE, DWORD) +SymGetModuleBaseParams = ((1, 'hProcess'), (1, 'dwAddr')) + +#def SymGetModuleBase64(hProcess, qwAddr): +# return SymGetModuleBase64.ctypes_function(hProcess, qwAddr) +SymGetModuleBase64Prototype = WINFUNCTYPE(DWORD64, HANDLE, DWORD64) +SymGetModuleBase64Params = ((1, 'hProcess'), (1, 'qwAddr')) + +#def SymRefreshModuleList(hProcess): +# return SymRefreshModuleList.ctypes_function(hProcess) +SymRefreshModuleListPrototype = WINFUNCTYPE(BOOL, HANDLE) +SymRefreshModuleListParams = ((1, 'hProcess'),) + +#def SymRegisterCallback(hProcess, CallbackFunction, UserContext): +# return SymRegisterCallback.ctypes_function(hProcess, CallbackFunction, UserContext) +SymRegisterCallbackPrototype = WINFUNCTYPE(BOOL, HANDLE, PSYMBOL_REGISTERED_CALLBACK, PVOID) +SymRegisterCallbackParams = ((1, 'hProcess'), (1, 'CallbackFunction'), (1, 'UserContext')) + +#def SymRegisterCallback64(hProcess, CallbackFunction, UserContext): +# return SymRegisterCallback64.ctypes_function(hProcess, CallbackFunction, UserContext) +SymRegisterCallback64Prototype = WINFUNCTYPE(BOOL, HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64) +SymRegisterCallback64Params = ((1, 'hProcess'), (1, 'CallbackFunction'), (1, 'UserContext')) + +#def SymRegisterCallbackW64(hProcess, CallbackFunction, UserContext): +# return SymRegisterCallbackW64.ctypes_function(hProcess, CallbackFunction, UserContext) +SymRegisterCallbackW64Prototype = WINFUNCTYPE(BOOL, HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64) +SymRegisterCallbackW64Params = ((1, 'hProcess'), (1, 'CallbackFunction'), (1, 'UserContext')) + +#def StackWalk64(MachineType, hProcess, hThread, StackFrame, ContextRecord, ReadMemoryRoutine, FunctionTableAccessRoutine, GetModuleBaseRoutine, TranslateAddress): +# return StackWalk64.ctypes_function(MachineType, hProcess, hThread, StackFrame, ContextRecord, ReadMemoryRoutine, FunctionTableAccessRoutine, GetModuleBaseRoutine, TranslateAddress) +StackWalk64Prototype = WINFUNCTYPE(BOOL, DWORD, HANDLE, HANDLE, LPSTACKFRAME64, PVOID, PREAD_PROCESS_MEMORY_ROUTINE64, PFUNCTION_TABLE_ACCESS_ROUTINE64, PGET_MODULE_BASE_ROUTINE64, PTRANSLATE_ADDRESS_ROUTINE64) +StackWalk64Params = ((1, 'MachineType'), (1, 'hProcess'), (1, 'hThread'), (1, 'StackFrame'), (1, 'ContextRecord'), (1, 'ReadMemoryRoutine'), (1, 'FunctionTableAccessRoutine'), (1, 'GetModuleBaseRoutine'), (1, 'TranslateAddress')) + +#def StackWalkEx(MachineType, hProcess, hThread, StackFrame, ContextRecord, ReadMemoryRoutine, FunctionTableAccessRoutine, GetModuleBaseRoutine, TranslateAddress, Flags): +# return StackWalkEx.ctypes_function(MachineType, hProcess, hThread, StackFrame, ContextRecord, ReadMemoryRoutine, FunctionTableAccessRoutine, GetModuleBaseRoutine, TranslateAddress, Flags) +StackWalkExPrototype = WINFUNCTYPE(BOOL, DWORD, HANDLE, HANDLE, LPSTACKFRAME_EX, PVOID, PREAD_PROCESS_MEMORY_ROUTINE64, PFUNCTION_TABLE_ACCESS_ROUTINE64, PGET_MODULE_BASE_ROUTINE64, PTRANSLATE_ADDRESS_ROUTINE64, DWORD) +StackWalkExParams = ((1, 'MachineType'), (1, 'hProcess'), (1, 'hThread'), (1, 'StackFrame'), (1, 'ContextRecord'), (1, 'ReadMemoryRoutine'), (1, 'FunctionTableAccessRoutine'), (1, 'GetModuleBaseRoutine'), (1, 'TranslateAddress'), (1, 'Flags')) + +#def StackWalk(MachineType, hProcess, hThread, StackFrame, ContextRecord, ReadMemoryRoutine, FunctionTableAccessRoutine, GetModuleBaseRoutine, TranslateAddress): +# return StackWalk.ctypes_function(MachineType, hProcess, hThread, StackFrame, ContextRecord, ReadMemoryRoutine, FunctionTableAccessRoutine, GetModuleBaseRoutine, TranslateAddress) +StackWalkPrototype = WINFUNCTYPE(BOOL, DWORD, HANDLE, HANDLE, LPSTACKFRAME, PVOID, PREAD_PROCESS_MEMORY_ROUTINE, PFUNCTION_TABLE_ACCESS_ROUTINE, PGET_MODULE_BASE_ROUTINE, PTRANSLATE_ADDRESS_ROUTINE) +StackWalkParams = ((1, 'MachineType'), (1, 'hProcess'), (1, 'hThread'), (1, 'StackFrame'), (1, 'ContextRecord'), (1, 'ReadMemoryRoutine'), (1, 'FunctionTableAccessRoutine'), (1, 'GetModuleBaseRoutine'), (1, 'TranslateAddress')) + +#def SymGetSearchPath(hProcess, SearchPath, SearchPathLength): +# return SymGetSearchPath.ctypes_function(hProcess, SearchPath, SearchPathLength) +SymGetSearchPathPrototype = WINFUNCTYPE(BOOL, HANDLE, PSTR, DWORD) +SymGetSearchPathParams = ((1, 'hProcess'), (1, 'SearchPath'), (1, 'SearchPathLength')) + +#def SymGetSearchPathW(hProcess, SearchPath, SearchPathLength): +# return SymGetSearchPathW.ctypes_function(hProcess, SearchPath, SearchPathLength) +SymGetSearchPathWPrototype = WINFUNCTYPE(BOOL, HANDLE, PWSTR, DWORD) +SymGetSearchPathWParams = ((1, 'hProcess'), (1, 'SearchPath'), (1, 'SearchPathLength')) + +#def SymSetSearchPath(hProcess, SearchPath): +# return SymSetSearchPath.ctypes_function(hProcess, SearchPath) +SymSetSearchPathPrototype = WINFUNCTYPE(BOOL, HANDLE, PCSTR) +SymSetSearchPathParams = ((1, 'hProcess'), (1, 'SearchPath')) + +#def SymSetSearchPathW(hProcess, SearchPath): +# return SymSetSearchPathW.ctypes_function(hProcess, SearchPath) +SymSetSearchPathWPrototype = WINFUNCTYPE(BOOL, HANDLE, PCWSTR) +SymSetSearchPathWParams = ((1, 'hProcess'), (1, 'SearchPath')) + +#def CreateEventA(lpEventAttributes, bManualReset, bInitialState, lpName): +# return CreateEventA.ctypes_function(lpEventAttributes, bManualReset, bInitialState, lpName) +CreateEventAPrototype = WINFUNCTYPE(HANDLE, LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCSTR) +CreateEventAParams = ((1, 'lpEventAttributes'), (1, 'bManualReset'), (1, 'bInitialState'), (1, 'lpName')) + +#def CreateEventW(lpEventAttributes, bManualReset, bInitialState, lpName): +# return CreateEventW.ctypes_function(lpEventAttributes, bManualReset, bInitialState, lpName) +CreateEventWPrototype = WINFUNCTYPE(HANDLE, LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCWSTR) +CreateEventWParams = ((1, 'lpEventAttributes'), (1, 'bManualReset'), (1, 'bInitialState'), (1, 'lpName')) + +#def CreateEventExA(lpEventAttributes, lpName, dwFlags, dwDesiredAccess): +# return CreateEventExA.ctypes_function(lpEventAttributes, lpName, dwFlags, dwDesiredAccess) +CreateEventExAPrototype = WINFUNCTYPE(HANDLE, LPSECURITY_ATTRIBUTES, LPCSTR, DWORD, DWORD) +CreateEventExAParams = ((1, 'lpEventAttributes'), (1, 'lpName'), (1, 'dwFlags'), (1, 'dwDesiredAccess')) + +#def CreateEventExW(lpEventAttributes, lpName, dwFlags, dwDesiredAccess): +# return CreateEventExW.ctypes_function(lpEventAttributes, lpName, dwFlags, dwDesiredAccess) +CreateEventExWPrototype = WINFUNCTYPE(HANDLE, LPSECURITY_ATTRIBUTES, LPCWSTR, DWORD, DWORD) +CreateEventExWParams = ((1, 'lpEventAttributes'), (1, 'lpName'), (1, 'dwFlags'), (1, 'dwDesiredAccess')) + +#def OpenEventA(dwDesiredAccess, bInheritHandle, lpName): +# return OpenEventA.ctypes_function(dwDesiredAccess, bInheritHandle, lpName) +OpenEventAPrototype = WINFUNCTYPE(HANDLE, DWORD, BOOL, LPCSTR) +OpenEventAParams = ((1, 'dwDesiredAccess'), (1, 'bInheritHandle'), (1, 'lpName')) + +#def OpenEventW(dwDesiredAccess, bInheritHandle, lpName): +# return OpenEventW.ctypes_function(dwDesiredAccess, bInheritHandle, lpName) +OpenEventWPrototype = WINFUNCTYPE(HANDLE, DWORD, BOOL, LPCWSTR) +OpenEventWParams = ((1, 'dwDesiredAccess'), (1, 'bInheritHandle'), (1, 'lpName')) + +#def NtQueryLicenseValue(Name, Type, Buffer, Length, DataLength): +# return NtQueryLicenseValue.ctypes_function(Name, Type, Buffer, Length, DataLength) +NtQueryLicenseValuePrototype = WINFUNCTYPE(NTSTATUS, PUNICODE_STRING, POINTER(ULONG), PVOID, ULONG, POINTER(ULONG)) +NtQueryLicenseValueParams = ((1, 'Name'), (1, 'Type'), (1, 'Buffer'), (1, 'Length'), (1, 'DataLength')) + +#def NtQueryEaFile(FileHandle, IoStatusBlock, Buffer, Length, ReturnSingleEntry, EaList, EaListLength, EaIndex, RestartScan): +# return NtQueryEaFile.ctypes_function(FileHandle, IoStatusBlock, Buffer, Length, ReturnSingleEntry, EaList, EaListLength, EaIndex, RestartScan) +NtQueryEaFilePrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, BOOLEAN, PVOID, ULONG, PULONG, BOOLEAN) +NtQueryEaFileParams = ((1, 'FileHandle'), (1, 'IoStatusBlock'), (1, 'Buffer'), (1, 'Length'), (1, 'ReturnSingleEntry'), (1, 'EaList'), (1, 'EaListLength'), (1, 'EaIndex'), (1, 'RestartScan')) + +#def NtSetEaFile(FileHandle, IoStatusBlock, Buffer, Length): +# return NtSetEaFile.ctypes_function(FileHandle, IoStatusBlock, Buffer, Length) +NtSetEaFilePrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG) +NtSetEaFileParams = ((1, 'FileHandle'), (1, 'IoStatusBlock'), (1, 'Buffer'), (1, 'Length')) + +#def NtCreateProcessEx(ProcessHandle, DesiredAccess, ObjectAttributes, ParentProcess, Flags, SectionHandle, DebugPort, ExceptionPort, InJob): +# return NtCreateProcessEx.ctypes_function(ProcessHandle, DesiredAccess, ObjectAttributes, ParentProcess, Flags, SectionHandle, DebugPort, ExceptionPort, InJob) +NtCreateProcessExPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, HANDLE, ULONG, HANDLE, HANDLE, HANDLE, BOOLEAN) +NtCreateProcessExParams = ((1, 'ProcessHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes'), (1, 'ParentProcess'), (1, 'Flags'), (1, 'SectionHandle'), (1, 'DebugPort'), (1, 'ExceptionPort'), (1, 'InJob')) + +#def NtCreateNamedPipeFile(NamedPipeFileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, ShareAccess, CreateDisposition, CreateOptions, WriteModeMessage, ReadModeMessage, NonBlocking, MaxInstances, InBufferSize, OutBufferSize, DefaultTimeOut): +# return NtCreateNamedPipeFile.ctypes_function(NamedPipeFileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, ShareAccess, CreateDisposition, CreateOptions, WriteModeMessage, ReadModeMessage, NonBlocking, MaxInstances, InBufferSize, OutBufferSize, DefaultTimeOut) +NtCreateNamedPipeFilePrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PIO_STATUS_BLOCK, ULONG, ULONG, ULONG, BOOLEAN, BOOLEAN, BOOLEAN, ULONG, ULONG, ULONG, PLARGE_INTEGER) +NtCreateNamedPipeFileParams = ((1, 'NamedPipeFileHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes'), (1, 'IoStatusBlock'), (1, 'ShareAccess'), (1, 'CreateDisposition'), (1, 'CreateOptions'), (1, 'WriteModeMessage'), (1, 'ReadModeMessage'), (1, 'NonBlocking'), (1, 'MaxInstances'), (1, 'InBufferSize'), (1, 'OutBufferSize'), (1, 'DefaultTimeOut')) + +#def NtCreateFile(FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, AllocationSize, FileAttributes, ShareAccess, CreateDisposition, CreateOptions, EaBuffer, EaLength): +# return NtCreateFile.ctypes_function(FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, AllocationSize, FileAttributes, ShareAccess, CreateDisposition, CreateOptions, EaBuffer, EaLength) +NtCreateFilePrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PIO_STATUS_BLOCK, PLARGE_INTEGER, ULONG, ULONG, ULONG, ULONG, PVOID, ULONG) +NtCreateFileParams = ((1, 'FileHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes'), (1, 'IoStatusBlock'), (1, 'AllocationSize'), (1, 'FileAttributes'), (1, 'ShareAccess'), (1, 'CreateDisposition'), (1, 'CreateOptions'), (1, 'EaBuffer'), (1, 'EaLength')) + +#def NtOpenFile(FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, ShareAccess, OpenOptions): +# return NtOpenFile.ctypes_function(FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, ShareAccess, OpenOptions) +NtOpenFilePrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PIO_STATUS_BLOCK, ULONG, ULONG) +NtOpenFileParams = ((1, 'FileHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes'), (1, 'IoStatusBlock'), (1, 'ShareAccess'), (1, 'OpenOptions')) + +#def NtCreateSymbolicLinkObject(pHandle, DesiredAccess, ObjectAttributes, DestinationName): +# return NtCreateSymbolicLinkObject.ctypes_function(pHandle, DesiredAccess, ObjectAttributes, DestinationName) +NtCreateSymbolicLinkObjectPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PUNICODE_STRING) +NtCreateSymbolicLinkObjectParams = ((1, 'pHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes'), (1, 'DestinationName')) + +#def NtSetInformationProcess(ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength): +# return NtSetInformationProcess.ctypes_function(ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength) +NtSetInformationProcessPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PROCESSINFOCLASS, PVOID, ULONG) +NtSetInformationProcessParams = ((1, 'ProcessHandle'), (1, 'ProcessInformationClass'), (1, 'ProcessInformation'), (1, 'ProcessInformationLength')) + +#def NtQueryVirtualMemory(ProcessHandle, BaseAddress, MemoryInformationClass, MemoryInformation, MemoryInformationLength, ReturnLength): +# return NtQueryVirtualMemory.ctypes_function(ProcessHandle, BaseAddress, MemoryInformationClass, MemoryInformation, MemoryInformationLength, ReturnLength) +NtQueryVirtualMemoryPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PVOID, MEMORY_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T) +NtQueryVirtualMemoryParams = ((1, 'ProcessHandle'), (1, 'BaseAddress'), (1, 'MemoryInformationClass'), (1, 'MemoryInformation'), (1, 'MemoryInformationLength'), (1, 'ReturnLength')) + +#def NtQueryVolumeInformationFile(FileHandle, IoStatusBlock, FsInformation, Length, FsInformationClass): +# return NtQueryVolumeInformationFile.ctypes_function(FileHandle, IoStatusBlock, FsInformation, Length, FsInformationClass) +NtQueryVolumeInformationFilePrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS) +NtQueryVolumeInformationFileParams = ((1, 'FileHandle'), (1, 'IoStatusBlock'), (1, 'FsInformation'), (1, 'Length'), (1, 'FsInformationClass')) + +#def NtCreateThreadEx(ThreadHandle, DesiredAccess, ObjectAttributes, ProcessHandle, lpStartAddress, lpParameter, CreateSuspended, dwStackSize, Unknown1, Unknown2, Unknown3): +# return NtCreateThreadEx.ctypes_function(ThreadHandle, DesiredAccess, ObjectAttributes, ProcessHandle, lpStartAddress, lpParameter, CreateSuspended, dwStackSize, Unknown1, Unknown2, Unknown3) +NtCreateThreadExPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, LPVOID, HANDLE, LPTHREAD_START_ROUTINE, LPVOID, BOOL, DWORD, DWORD, DWORD, LPVOID) +NtCreateThreadExParams = ((1, 'ThreadHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes'), (1, 'ProcessHandle'), (1, 'lpStartAddress'), (1, 'lpParameter'), (1, 'CreateSuspended'), (1, 'dwStackSize'), (1, 'Unknown1'), (1, 'Unknown2'), (1, 'Unknown3')) + +#def NtGetContextThread(hThread, lpContext): +# return NtGetContextThread.ctypes_function(hThread, lpContext) +NtGetContextThreadPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, LPCONTEXT) +NtGetContextThreadParams = ((1, 'hThread'), (1, 'lpContext')) + +#def NtSetContextThread(hThread, lpContext): +# return NtSetContextThread.ctypes_function(hThread, lpContext) +NtSetContextThreadPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, LPCONTEXT) +NtSetContextThreadParams = ((1, 'hThread'), (1, 'lpContext')) + +#def NtQueryInformationThread(ThreadHandle, ThreadInformationClass, ThreadInformation, ThreadInformationLength, ReturnLength): +# return NtQueryInformationThread.ctypes_function(ThreadHandle, ThreadInformationClass, ThreadInformation, ThreadInformationLength, ReturnLength) +NtQueryInformationThreadPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, THREAD_INFORMATION_CLASS, PVOID, ULONG, PULONG) +NtQueryInformationThreadParams = ((1, 'ThreadHandle'), (1, 'ThreadInformationClass'), (1, 'ThreadInformation'), (1, 'ThreadInformationLength'), (1, 'ReturnLength')) + +#def NtAllocateVirtualMemory(ProcessHandle, BaseAddress, ZeroBits, RegionSize, AllocationType, Protect): +# return NtAllocateVirtualMemory.ctypes_function(ProcessHandle, BaseAddress, ZeroBits, RegionSize, AllocationType, Protect) +NtAllocateVirtualMemoryPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, POINTER(PVOID), ULONG_PTR, PSIZE_T, ULONG, ULONG) +NtAllocateVirtualMemoryParams = ((1, 'ProcessHandle'), (1, 'BaseAddress'), (1, 'ZeroBits'), (1, 'RegionSize'), (1, 'AllocationType'), (1, 'Protect')) + +#def NtProtectVirtualMemory(ProcessHandle, BaseAddress, NumberOfBytesToProtect, NewAccessProtection, OldAccessProtection): +# return NtProtectVirtualMemory.ctypes_function(ProcessHandle, BaseAddress, NumberOfBytesToProtect, NewAccessProtection, OldAccessProtection) +NtProtectVirtualMemoryPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, POINTER(PVOID), PULONG, ULONG, PULONG) +NtProtectVirtualMemoryParams = ((1, 'ProcessHandle'), (1, 'BaseAddress'), (1, 'NumberOfBytesToProtect'), (1, 'NewAccessProtection'), (1, 'OldAccessProtection')) + +#def NtQuerySystemInformation(SystemInformationClass, SystemInformation, SystemInformationLength, ReturnLength): +# return NtQuerySystemInformation.ctypes_function(SystemInformationClass, SystemInformation, SystemInformationLength, ReturnLength) +NtQuerySystemInformationPrototype = WINFUNCTYPE(NTSTATUS, SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG) +NtQuerySystemInformationParams = ((1, 'SystemInformationClass'), (1, 'SystemInformation'), (1, 'SystemInformationLength'), (1, 'ReturnLength')) + +#def NtQueryInformationProcess(ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength, ReturnLength): +# return NtQueryInformationProcess.ctypes_function(ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength, ReturnLength) +NtQueryInformationProcessPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PROCESSINFOCLASS, PVOID, ULONG, PULONG) +NtQueryInformationProcessParams = ((1, 'ProcessHandle'), (1, 'ProcessInformationClass'), (1, 'ProcessInformation'), (1, 'ProcessInformationLength'), (1, 'ReturnLength')) + +#def NtReadVirtualMemory(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead): +# return NtReadVirtualMemory.ctypes_function(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead) +NtReadVirtualMemoryPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PVOID, LPVOID, ULONG, PULONG) +NtReadVirtualMemoryParams = ((1, 'hProcess'), (1, 'lpBaseAddress'), (1, 'lpBuffer'), (1, 'nSize'), (1, 'lpNumberOfBytesRead')) + +#def NtWriteVirtualMemory(ProcessHandle, BaseAddress, Buffer, NumberOfBytesToWrite, NumberOfBytesWritten): +# return NtWriteVirtualMemory.ctypes_function(ProcessHandle, BaseAddress, Buffer, NumberOfBytesToWrite, NumberOfBytesWritten) +NtWriteVirtualMemoryPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PVOID, PVOID, ULONG, PULONG) +NtWriteVirtualMemoryParams = ((1, 'ProcessHandle'), (1, 'BaseAddress'), (1, 'Buffer'), (1, 'NumberOfBytesToWrite'), (1, 'NumberOfBytesWritten')) + +#def NtOpenEvent(EventHandle, DesiredAccess, ObjectAttributes): +# return NtOpenEvent.ctypes_function(EventHandle, DesiredAccess, ObjectAttributes) +NtOpenEventPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES) +NtOpenEventParams = ((1, 'EventHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes')) + +#def NtQueryObject(Handle, ObjectInformationClass, ObjectInformation, ObjectInformationLength, ReturnLength): +# return NtQueryObject.ctypes_function(Handle, ObjectInformationClass, ObjectInformation, ObjectInformationLength, ReturnLength) +NtQueryObjectPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, OBJECT_INFORMATION_CLASS, PVOID, ULONG, PULONG) +NtQueryObjectParams = ((1, 'Handle'), (1, 'ObjectInformationClass'), (1, 'ObjectInformation'), (1, 'ObjectInformationLength'), (1, 'ReturnLength')) + +#def NtOpenDirectoryObject(DirectoryHandle, DesiredAccess, ObjectAttributes): +# return NtOpenDirectoryObject.ctypes_function(DirectoryHandle, DesiredAccess, ObjectAttributes) +NtOpenDirectoryObjectPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES) +NtOpenDirectoryObjectParams = ((1, 'DirectoryHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes')) + +#def NtQueryDirectoryObject(DirectoryHandle, Buffer, Length, ReturnSingleEntry, RestartScan, Context, ReturnLength): +# return NtQueryDirectoryObject.ctypes_function(DirectoryHandle, Buffer, Length, ReturnSingleEntry, RestartScan, Context, ReturnLength) +NtQueryDirectoryObjectPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PVOID, ULONG, BOOLEAN, BOOLEAN, PULONG, PULONG) +NtQueryDirectoryObjectParams = ((1, 'DirectoryHandle'), (1, 'Buffer'), (1, 'Length'), (1, 'ReturnSingleEntry'), (1, 'RestartScan'), (1, 'Context'), (1, 'ReturnLength')) + +#def NtQuerySymbolicLinkObject(LinkHandle, LinkTarget, ReturnedLength): +# return NtQuerySymbolicLinkObject.ctypes_function(LinkHandle, LinkTarget, ReturnedLength) +NtQuerySymbolicLinkObjectPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PUNICODE_STRING, PULONG) +NtQuerySymbolicLinkObjectParams = ((1, 'LinkHandle'), (1, 'LinkTarget'), (1, 'ReturnedLength')) + +#def NtOpenSymbolicLinkObject(LinkHandle, DesiredAccess, ObjectAttributes): +# return NtOpenSymbolicLinkObject.ctypes_function(LinkHandle, DesiredAccess, ObjectAttributes) +NtOpenSymbolicLinkObjectPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES) +NtOpenSymbolicLinkObjectParams = ((1, 'LinkHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes')) + +#def NtQueryInformationFile(FileHandle, IoStatusBlock, FileInformation, Length, FileInformationClass): +# return NtQueryInformationFile.ctypes_function(FileHandle, IoStatusBlock, FileInformation, Length, FileInformationClass) +NtQueryInformationFilePrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FILE_INFORMATION_CLASS) +NtQueryInformationFileParams = ((1, 'FileHandle'), (1, 'IoStatusBlock'), (1, 'FileInformation'), (1, 'Length'), (1, 'FileInformationClass')) + +#def NtQueryDirectoryFile(FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, FileInformation, Length, FileInformationClass, ReturnSingleEntry, FileName, RestartScan): +# return NtQueryDirectoryFile.ctypes_function(FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, FileInformation, Length, FileInformationClass, ReturnSingleEntry, FileName, RestartScan) +NtQueryDirectoryFilePrototype = WINFUNCTYPE(NTSTATUS, HANDLE, HANDLE, PIO_APC_ROUTINE, PVOID, PIO_STATUS_BLOCK, PVOID, ULONG, FILE_INFORMATION_CLASS, BOOLEAN, PUNICODE_STRING, BOOLEAN) +NtQueryDirectoryFileParams = ((1, 'FileHandle'), (1, 'Event'), (1, 'ApcRoutine'), (1, 'ApcContext'), (1, 'IoStatusBlock'), (1, 'FileInformation'), (1, 'Length'), (1, 'FileInformationClass'), (1, 'ReturnSingleEntry'), (1, 'FileName'), (1, 'RestartScan')) + +#def NtSetInformationFile(FileHandle, IoStatusBlock, FileInformation, Length, FileInformationClass): +# return NtSetInformationFile.ctypes_function(FileHandle, IoStatusBlock, FileInformation, Length, FileInformationClass) +NtSetInformationFilePrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FILE_INFORMATION_CLASS) +NtSetInformationFileParams = ((1, 'FileHandle'), (1, 'IoStatusBlock'), (1, 'FileInformation'), (1, 'Length'), (1, 'FileInformationClass')) + +#def NtEnumerateSystemEnvironmentValuesEx(InformationClass, Buffer, BufferLength): +# return NtEnumerateSystemEnvironmentValuesEx.ctypes_function(InformationClass, Buffer, BufferLength) +NtEnumerateSystemEnvironmentValuesExPrototype = WINFUNCTYPE(NTSTATUS, ULONG, PVOID, ULONG) +NtEnumerateSystemEnvironmentValuesExParams = ((1, 'InformationClass'), (1, 'Buffer'), (1, 'BufferLength')) + +#def NtFreeVirtualMemory(ProcessHandle, BaseAddress, RegionSize, FreeType): +# return NtFreeVirtualMemory.ctypes_function(ProcessHandle, BaseAddress, RegionSize, FreeType) +NtFreeVirtualMemoryPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, POINTER(PVOID), PSIZE_T, ULONG) +NtFreeVirtualMemoryParams = ((1, 'ProcessHandle'), (1, 'BaseAddress'), (1, 'RegionSize'), (1, 'FreeType')) + +#def NtGetContextThread(hThread, lpContext): +# return NtGetContextThread.ctypes_function(hThread, lpContext) +NtGetContextThreadPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, LPCONTEXT) +NtGetContextThreadParams = ((1, 'hThread'), (1, 'lpContext')) + +#def NtSetContextThread(hThread, lpContext): +# return NtSetContextThread.ctypes_function(hThread, lpContext) +NtSetContextThreadPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, LPCONTEXT) +NtSetContextThreadParams = ((1, 'hThread'), (1, 'lpContext')) + +#def NtCreateSection(SectionHandle, DesiredAccess, ObjectAttributes, MaximumSize, SectionPageProtection, AllocationAttributes, FileHandle): +# return NtCreateSection.ctypes_function(SectionHandle, DesiredAccess, ObjectAttributes, MaximumSize, SectionPageProtection, AllocationAttributes, FileHandle) +NtCreateSectionPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PLARGE_INTEGER, ULONG, ULONG, HANDLE) +NtCreateSectionParams = ((1, 'SectionHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes'), (1, 'MaximumSize'), (1, 'SectionPageProtection'), (1, 'AllocationAttributes'), (1, 'FileHandle')) + +#def NtOpenSection(SectionHandle, DesiredAccess, ObjectAttributes): +# return NtOpenSection.ctypes_function(SectionHandle, DesiredAccess, ObjectAttributes) +NtOpenSectionPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES) +NtOpenSectionParams = ((1, 'SectionHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes')) + +#def NtMapViewOfSection(SectionHandle, ProcessHandle, BaseAddress, ZeroBits, CommitSize, SectionOffset, ViewSize, InheritDisposition, AllocationType, Win32Protect): +# return NtMapViewOfSection.ctypes_function(SectionHandle, ProcessHandle, BaseAddress, ZeroBits, CommitSize, SectionOffset, ViewSize, InheritDisposition, AllocationType, Win32Protect) +NtMapViewOfSectionPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, HANDLE, POINTER(PVOID), ULONG_PTR, SIZE_T, PLARGE_INTEGER, PSIZE_T, SECTION_INHERIT, ULONG, ULONG) +NtMapViewOfSectionParams = ((1, 'SectionHandle'), (1, 'ProcessHandle'), (1, 'BaseAddress'), (1, 'ZeroBits'), (1, 'CommitSize'), (1, 'SectionOffset'), (1, 'ViewSize'), (1, 'InheritDisposition'), (1, 'AllocationType'), (1, 'Win32Protect')) + +#def NtUnmapViewOfSection(ProcessHandle, BaseAddress): +# return NtUnmapViewOfSection.ctypes_function(ProcessHandle, BaseAddress) +NtUnmapViewOfSectionPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, PVOID) +NtUnmapViewOfSectionParams = ((1, 'ProcessHandle'), (1, 'BaseAddress')) + +#def NtOpenProcess(ProcessHandle, DesiredAccess, ObjectAttributes, ClientId): +# return NtOpenProcess.ctypes_function(ProcessHandle, DesiredAccess, ObjectAttributes, ClientId) +NtOpenProcessPrototype = WINFUNCTYPE(NTSTATUS, PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PCLIENT_ID) +NtOpenProcessParams = ((1, 'ProcessHandle'), (1, 'DesiredAccess'), (1, 'ObjectAttributes'), (1, 'ClientId')) + +#def NtDelayExecution(Alertable, DelayInterval): +# return NtDelayExecution.ctypes_function(Alertable, DelayInterval) +NtDelayExecutionPrototype = WINFUNCTYPE(NTSTATUS, BOOLEAN, PLARGE_INTEGER) +NtDelayExecutionParams = ((1, 'Alertable'), (1, 'DelayInterval')) + +#def NtTerminateProcess(ProcessHandle, ExitStatus): +# return NtTerminateProcess.ctypes_function(ProcessHandle, ExitStatus) +NtTerminateProcessPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, NTSTATUS) +NtTerminateProcessParams = ((1, 'ProcessHandle'), (1, 'ExitStatus')) + +#def GetComputerNameExA(NameType, lpBuffer, nSize): +# return GetComputerNameExA.ctypes_function(NameType, lpBuffer, nSize) +GetComputerNameExAPrototype = WINFUNCTYPE(BOOL, COMPUTER_NAME_FORMAT, LPSTR, LPDWORD) +GetComputerNameExAParams = ((1, 'NameType'), (1, 'lpBuffer'), (1, 'nSize')) + +#def GetComputerNameExW(NameType, lpBuffer, nSize): +# return GetComputerNameExW.ctypes_function(NameType, lpBuffer, nSize) +GetComputerNameExWPrototype = WINFUNCTYPE(BOOL, COMPUTER_NAME_FORMAT, LPWSTR, LPDWORD) +GetComputerNameExWParams = ((1, 'NameType'), (1, 'lpBuffer'), (1, 'nSize')) + +#def GetComputerNameA(lpBuffer, lpnSize): +# return GetComputerNameA.ctypes_function(lpBuffer, lpnSize) +GetComputerNameAPrototype = WINFUNCTYPE(BOOL, LPCSTR, LPDWORD) +GetComputerNameAParams = ((1, 'lpBuffer'), (1, 'lpnSize')) + +#def GetComputerNameW(lpBuffer, lpnSize): +# return GetComputerNameW.ctypes_function(lpBuffer, lpnSize) +GetComputerNameWPrototype = WINFUNCTYPE(BOOL, LPWSTR, LPDWORD) +GetComputerNameWParams = ((1, 'lpBuffer'), (1, 'lpnSize')) + +#def LookupAccountSidA(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse): +# return LookupAccountSidA.ctypes_function(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse) +LookupAccountSidAPrototype = WINFUNCTYPE(BOOL, LPCSTR, PSID, LPCSTR, LPDWORD, LPCSTR, LPDWORD, PSID_NAME_USE) +LookupAccountSidAParams = ((1, 'lpSystemName'), (1, 'lpSid'), (1, 'lpName'), (1, 'cchName'), (1, 'lpReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse')) + +#def LookupAccountSidW(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse): +# return LookupAccountSidW.ctypes_function(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse) +LookupAccountSidWPrototype = WINFUNCTYPE(BOOL, LPWSTR, PSID, LPWSTR, LPDWORD, LPWSTR, LPDWORD, PSID_NAME_USE) +LookupAccountSidWParams = ((1, 'lpSystemName'), (1, 'lpSid'), (1, 'lpName'), (1, 'cchName'), (1, 'lpReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse')) + +#def LookupAccountNameA(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse): +# return LookupAccountNameA.ctypes_function(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse) +LookupAccountNameAPrototype = WINFUNCTYPE(BOOL, LPCSTR, LPCSTR, PSID, LPDWORD, LPSTR, LPDWORD, PSID_NAME_USE) +LookupAccountNameAParams = ((1, 'lpSystemName'), (1, 'lpAccountName'), (1, 'Sid'), (1, 'cbSid'), (1, 'ReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse')) + +#def LookupAccountNameW(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse): +# return LookupAccountNameW.ctypes_function(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse) +LookupAccountNameWPrototype = WINFUNCTYPE(BOOL, LPCWSTR, LPCWSTR, PSID, LPDWORD, LPWSTR, LPDWORD, PSID_NAME_USE) +LookupAccountNameWParams = ((1, 'lpSystemName'), (1, 'lpAccountName'), (1, 'Sid'), (1, 'cbSid'), (1, 'ReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse')) + +#def FileTimeToSystemTime(lpFileTime, lpSystemTime): +# return FileTimeToSystemTime.ctypes_function(lpFileTime, lpSystemTime) +FileTimeToSystemTimePrototype = WINFUNCTYPE(BOOL, POINTER(FILETIME), LPSYSTEMTIME) +FileTimeToSystemTimeParams = ((1, 'lpFileTime'), (1, 'lpSystemTime')) + +#def SystemTimeToFileTime(lpSystemTime, lpFileTime): +# return SystemTimeToFileTime.ctypes_function(lpSystemTime, lpFileTime) +SystemTimeToFileTimePrototype = WINFUNCTYPE(BOOL, POINTER(SYSTEMTIME), LPFILETIME) +SystemTimeToFileTimeParams = ((1, 'lpSystemTime'), (1, 'lpFileTime')) + +#def GetSystemTime(lpSystemTime): +# return GetSystemTime.ctypes_function(lpSystemTime) +GetSystemTimePrototype = WINFUNCTYPE(PVOID, LPSYSTEMTIME) +GetSystemTimeParams = ((1, 'lpSystemTime'),) + +#def GetSystemTimes(lpIdleTime, lpKernelTime, lpUserTime): +# return GetSystemTimes.ctypes_function(lpIdleTime, lpKernelTime, lpUserTime) +GetSystemTimesPrototype = WINFUNCTYPE(BOOL, PFILETIME, PFILETIME, PFILETIME) +GetSystemTimesParams = ((1, 'lpIdleTime'), (1, 'lpKernelTime'), (1, 'lpUserTime')) + +#def GetSystemTimeAsFileTime(lpSystemTimeAsFileTime): +# return GetSystemTimeAsFileTime.ctypes_function(lpSystemTimeAsFileTime) +GetSystemTimeAsFileTimePrototype = WINFUNCTYPE(PVOID, LPFILETIME) +GetSystemTimeAsFileTimeParams = ((1, 'lpSystemTimeAsFileTime'),) + +#def GetLocalTime(lpSystemTime): +# return GetLocalTime.ctypes_function(lpSystemTime) +GetLocalTimePrototype = WINFUNCTYPE(PVOID, LPSYSTEMTIME) +GetLocalTimeParams = ((1, 'lpSystemTime'),) + +#def GetTickCount(): +# return GetTickCount.ctypes_function() +GetTickCountPrototype = WINFUNCTYPE(DWORD) +GetTickCountParams = () + +#def GetTickCount64(): +# return GetTickCount64.ctypes_function() +GetTickCount64Prototype = WINFUNCTYPE(ULONGLONG) +GetTickCount64Params = () + +#def TdhEnumerateProviders(pBuffer, pBufferSize): +# return TdhEnumerateProviders.ctypes_function(pBuffer, pBufferSize) +TdhEnumerateProvidersPrototype = WINFUNCTYPE(TDHSTATUS, PPROVIDER_ENUMERATION_INFO, POINTER(ULONG)) +TdhEnumerateProvidersParams = ((1, 'pBuffer'), (1, 'pBufferSize')) + +#def GetFileVersionInfoA(lptstrFilename, dwHandle, dwLen, lpData): +# return GetFileVersionInfoA.ctypes_function(lptstrFilename, dwHandle, dwLen, lpData) +GetFileVersionInfoAPrototype = WINFUNCTYPE(BOOL, LPCSTR, DWORD, DWORD, LPVOID) +GetFileVersionInfoAParams = ((1, 'lptstrFilename'), (1, 'dwHandle'), (1, 'dwLen'), (1, 'lpData')) + +#def GetFileVersionInfoW(lptstrFilename, dwHandle, dwLen, lpData): +# return GetFileVersionInfoW.ctypes_function(lptstrFilename, dwHandle, dwLen, lpData) +GetFileVersionInfoWPrototype = WINFUNCTYPE(BOOL, LPWSTR, DWORD, DWORD, LPVOID) +GetFileVersionInfoWParams = ((1, 'lptstrFilename'), (1, 'dwHandle'), (1, 'dwLen'), (1, 'lpData')) + +#def GetFileVersionInfoExA(dwFlags, lpwstrFilename, dwHandle, dwLen, lpData): +# return GetFileVersionInfoExA.ctypes_function(dwFlags, lpwstrFilename, dwHandle, dwLen, lpData) +GetFileVersionInfoExAPrototype = WINFUNCTYPE(BOOL, DWORD, LPCSTR, DWORD, DWORD, LPVOID) +GetFileVersionInfoExAParams = ((1, 'dwFlags'), (1, 'lpwstrFilename'), (1, 'dwHandle'), (1, 'dwLen'), (1, 'lpData')) + +#def GetFileVersionInfoExW(dwFlags, lpwstrFilename, dwHandle, dwLen, lpData): +# return GetFileVersionInfoExW.ctypes_function(dwFlags, lpwstrFilename, dwHandle, dwLen, lpData) +GetFileVersionInfoExWPrototype = WINFUNCTYPE(BOOL, DWORD, LPCWSTR, DWORD, DWORD, LPVOID) +GetFileVersionInfoExWParams = ((1, 'dwFlags'), (1, 'lpwstrFilename'), (1, 'dwHandle'), (1, 'dwLen'), (1, 'lpData')) + +#def GetFileVersionInfoSizeA(lptstrFilename, lpdwHandle): +# return GetFileVersionInfoSizeA.ctypes_function(lptstrFilename, lpdwHandle) +GetFileVersionInfoSizeAPrototype = WINFUNCTYPE(DWORD, LPCSTR, LPDWORD) +GetFileVersionInfoSizeAParams = ((1, 'lptstrFilename'), (1, 'lpdwHandle')) + +#def GetFileVersionInfoSizeW(lptstrFilename, lpdwHandle): +# return GetFileVersionInfoSizeW.ctypes_function(lptstrFilename, lpdwHandle) +GetFileVersionInfoSizeWPrototype = WINFUNCTYPE(DWORD, LPWSTR, LPDWORD) +GetFileVersionInfoSizeWParams = ((1, 'lptstrFilename'), (1, 'lpdwHandle')) + +#def GetFileVersionInfoSizeExA(dwFlags, lpwstrFilename, lpdwHandle): +# return GetFileVersionInfoSizeExA.ctypes_function(dwFlags, lpwstrFilename, lpdwHandle) +GetFileVersionInfoSizeExAPrototype = WINFUNCTYPE(DWORD, DWORD, LPCSTR, LPDWORD) +GetFileVersionInfoSizeExAParams = ((1, 'dwFlags'), (1, 'lpwstrFilename'), (1, 'lpdwHandle')) + +#def GetFileVersionInfoSizeExW(dwFlags, lpwstrFilename, lpdwHandle): +# return GetFileVersionInfoSizeExW.ctypes_function(dwFlags, lpwstrFilename, lpdwHandle) +GetFileVersionInfoSizeExWPrototype = WINFUNCTYPE(DWORD, DWORD, LPCWSTR, LPDWORD) +GetFileVersionInfoSizeExWParams = ((1, 'dwFlags'), (1, 'lpwstrFilename'), (1, 'lpdwHandle')) + +#def VerQueryValueA(pBlock, lpSubBlock, lplpBuffer, puLen): +# return VerQueryValueA.ctypes_function(pBlock, lpSubBlock, lplpBuffer, puLen) +VerQueryValueAPrototype = WINFUNCTYPE(BOOL, LPCVOID, LPCSTR, POINTER(LPVOID), PUINT) +VerQueryValueAParams = ((1, 'pBlock'), (1, 'lpSubBlock'), (1, 'lplpBuffer'), (1, 'puLen')) + +#def VerQueryValueW(pBlock, lpSubBlock, lplpBuffer, puLen): +# return VerQueryValueW.ctypes_function(pBlock, lpSubBlock, lplpBuffer, puLen) +VerQueryValueWPrototype = WINFUNCTYPE(BOOL, LPCVOID, LPWSTR, POINTER(LPVOID), PUINT) +VerQueryValueWParams = ((1, 'pBlock'), (1, 'lpSubBlock'), (1, 'lplpBuffer'), (1, 'puLen')) + +#def GetCursorPos(lpPoint): +# return GetCursorPos.ctypes_function(lpPoint) +GetCursorPosPrototype = WINFUNCTYPE(BOOL, LPPOINT) +GetCursorPosParams = ((1, 'lpPoint'),) + +#def WindowFromPoint(Point): +# return WindowFromPoint.ctypes_function(Point) +WindowFromPointPrototype = WINFUNCTYPE(HWND, POINT) +WindowFromPointParams = ((1, 'Point'),) + +#def GetWindowRect(hWnd, lpRect): +# return GetWindowRect.ctypes_function(hWnd, lpRect) +GetWindowRectPrototype = WINFUNCTYPE(BOOL, HWND, LPRECT) +GetWindowRectParams = ((1, 'hWnd'), (1, 'lpRect')) + +#def EnumWindows(lpEnumFunc, lParam): +# return EnumWindows.ctypes_function(lpEnumFunc, lParam) +EnumWindowsPrototype = WINFUNCTYPE(BOOL, WNDENUMPROC, LPARAM) +EnumWindowsParams = ((1, 'lpEnumFunc'), (1, 'lParam')) + +#def GetWindowTextA(hWnd, lpString, nMaxCount): +# return GetWindowTextA.ctypes_function(hWnd, lpString, nMaxCount) +GetWindowTextAPrototype = WINFUNCTYPE(INT, HWND, LPSTR, INT) +GetWindowTextAParams = ((1, 'hWnd'), (1, 'lpString'), (1, 'nMaxCount')) + +#def GetParent(hWnd): +# return GetParent.ctypes_function(hWnd) +GetParentPrototype = WINFUNCTYPE(HWND, HWND) +GetParentParams = ((1, 'hWnd'),) + +#def GetWindowTextW(hWnd, lpString, nMaxCount): +# return GetWindowTextW.ctypes_function(hWnd, lpString, nMaxCount) +GetWindowTextWPrototype = WINFUNCTYPE(INT, HWND, LPWSTR, INT) +GetWindowTextWParams = ((1, 'hWnd'), (1, 'lpString'), (1, 'nMaxCount')) + +#def GetWindowModuleFileNameA(hwnd, pszFileName, cchFileNameMax): +# return GetWindowModuleFileNameA.ctypes_function(hwnd, pszFileName, cchFileNameMax) +GetWindowModuleFileNameAPrototype = WINFUNCTYPE(UINT, HWND, LPSTR, UINT) +GetWindowModuleFileNameAParams = ((1, 'hwnd'), (1, 'pszFileName'), (1, 'cchFileNameMax')) + +#def GetWindowModuleFileNameW(hwnd, pszFileName, cchFileNameMax): +# return GetWindowModuleFileNameW.ctypes_function(hwnd, pszFileName, cchFileNameMax) +GetWindowModuleFileNameWPrototype = WINFUNCTYPE(UINT, HWND, LPWSTR, UINT) +GetWindowModuleFileNameWParams = ((1, 'hwnd'), (1, 'pszFileName'), (1, 'cchFileNameMax')) + +#def EnumChildWindows(hWndParent, lpEnumFunc, lParam): +# return EnumChildWindows.ctypes_function(hWndParent, lpEnumFunc, lParam) +EnumChildWindowsPrototype = WINFUNCTYPE(BOOL, HWND, WNDENUMPROC, LPARAM) +EnumChildWindowsParams = ((1, 'hWndParent'), (1, 'lpEnumFunc'), (1, 'lParam')) + +#def CloseWindow(hWnd): +# return CloseWindow.ctypes_function(hWnd) +CloseWindowPrototype = WINFUNCTYPE(BOOL, HWND) +CloseWindowParams = ((1, 'hWnd'),) + +#def GetDesktopWindow(): +# return GetDesktopWindow.ctypes_function() +GetDesktopWindowPrototype = WINFUNCTYPE(HWND) +GetDesktopWindowParams = () + +#def GetForegroundWindow(): +# return GetForegroundWindow.ctypes_function() +GetForegroundWindowPrototype = WINFUNCTYPE(HWND) +GetForegroundWindowParams = () + +#def BringWindowToTop(hWnd): +# return BringWindowToTop.ctypes_function(hWnd) +BringWindowToTopPrototype = WINFUNCTYPE(BOOL, HWND) +BringWindowToTopParams = ((1, 'hWnd'),) + +#def MoveWindow(hWnd, X, Y, nWidth, nHeight, bRepaint): +# return MoveWindow.ctypes_function(hWnd, X, Y, nWidth, nHeight, bRepaint) +MoveWindowPrototype = WINFUNCTYPE(BOOL, HWND, INT, INT, INT, INT, BOOL) +MoveWindowParams = ((1, 'hWnd'), (1, 'X'), (1, 'Y'), (1, 'nWidth'), (1, 'nHeight'), (1, 'bRepaint')) + +#def SetWindowPos(hWnd, hWndInsertAfter, X, Y, cx, cy, uFlags): +# return SetWindowPos.ctypes_function(hWnd, hWndInsertAfter, X, Y, cx, cy, uFlags) +SetWindowPosPrototype = WINFUNCTYPE(BOOL, HWND, HWND, INT, INT, INT, INT, UINT) +SetWindowPosParams = ((1, 'hWnd'), (1, 'hWndInsertAfter'), (1, 'X'), (1, 'Y'), (1, 'cx'), (1, 'cy'), (1, 'uFlags')) + +#def SetWindowTextA(hWnd, lpString): +# return SetWindowTextA.ctypes_function(hWnd, lpString) +SetWindowTextAPrototype = WINFUNCTYPE(BOOL, HWND, LPCSTR) +SetWindowTextAParams = ((1, 'hWnd'), (1, 'lpString')) + +#def SetWindowTextW(hWnd, lpString): +# return SetWindowTextW.ctypes_function(hWnd, lpString) +SetWindowTextWPrototype = WINFUNCTYPE(BOOL, HWND, LPWSTR) +SetWindowTextWParams = ((1, 'hWnd'), (1, 'lpString')) + +#def RealGetWindowClassA(hwnd, pszType, cchType): +# return RealGetWindowClassA.ctypes_function(hwnd, pszType, cchType) +RealGetWindowClassAPrototype = WINFUNCTYPE(UINT, HWND, LPCSTR, UINT) +RealGetWindowClassAParams = ((1, 'hwnd'), (1, 'pszType'), (1, 'cchType')) + +#def RealGetWindowClassW(hwnd, pszType, cchType): +# return RealGetWindowClassW.ctypes_function(hwnd, pszType, cchType) +RealGetWindowClassWPrototype = WINFUNCTYPE(UINT, HWND, LPWSTR, UINT) +RealGetWindowClassWParams = ((1, 'hwnd'), (1, 'pszType'), (1, 'cchType')) + +#def GetClassInfoExA(hinst, lpszClass, lpwcx): +# return GetClassInfoExA.ctypes_function(hinst, lpszClass, lpwcx) +GetClassInfoExAPrototype = WINFUNCTYPE(BOOL, HINSTANCE, LPCSTR, LPWNDCLASSEXA) +GetClassInfoExAParams = ((1, 'hinst'), (1, 'lpszClass'), (1, 'lpwcx')) + +#def GetClassInfoExW(hinst, lpszClass, lpwcx): +# return GetClassInfoExW.ctypes_function(hinst, lpszClass, lpwcx) +GetClassInfoExWPrototype = WINFUNCTYPE(BOOL, HINSTANCE, LPCWSTR, LPWNDCLASSEXW) +GetClassInfoExWParams = ((1, 'hinst'), (1, 'lpszClass'), (1, 'lpwcx')) + +#def GetClassNameA(hWnd, lpClassName, nMaxCount): +# return GetClassNameA.ctypes_function(hWnd, lpClassName, nMaxCount) +GetClassNameAPrototype = WINFUNCTYPE(INT, HWND, LPCSTR, INT) +GetClassNameAParams = ((1, 'hWnd'), (1, 'lpClassName'), (1, 'nMaxCount')) + +#def GetClassNameW(hWnd, lpClassName, nMaxCount): +# return GetClassNameW.ctypes_function(hWnd, lpClassName, nMaxCount) +GetClassNameWPrototype = WINFUNCTYPE(INT, HWND, LPWSTR, INT) +GetClassNameWParams = ((1, 'hWnd'), (1, 'lpClassName'), (1, 'nMaxCount')) + +#def GetWindowThreadProcessId(hWnd, lpdwProcessId): +# return GetWindowThreadProcessId.ctypes_function(hWnd, lpdwProcessId) +GetWindowThreadProcessIdPrototype = WINFUNCTYPE(DWORD, HWND, LPDWORD) +GetWindowThreadProcessIdParams = ((1, 'hWnd'), (1, 'lpdwProcessId')) + +#def FindWindowA(lpClassName, lpWindowName): +# return FindWindowA.ctypes_function(lpClassName, lpWindowName) +FindWindowAPrototype = WINFUNCTYPE(HWND, LPCSTR, LPCSTR) +FindWindowAParams = ((1, 'lpClassName'), (1, 'lpWindowName')) + +#def FindWindowW(lpClassName, lpWindowName): +# return FindWindowW.ctypes_function(lpClassName, lpWindowName) +FindWindowWPrototype = WINFUNCTYPE(HWND, LPCWSTR, LPCWSTR) +FindWindowWParams = ((1, 'lpClassName'), (1, 'lpWindowName')) + +#def ExitProcess(uExitCode): +# return ExitProcess.ctypes_function(uExitCode) +ExitProcessPrototype = WINFUNCTYPE(VOID, UINT) +ExitProcessParams = ((1, 'uExitCode'),) + +#def TerminateProcess(hProcess, uExitCode): +# return TerminateProcess.ctypes_function(hProcess, uExitCode) +TerminateProcessPrototype = WINFUNCTYPE(BOOL, HANDLE, UINT) +TerminateProcessParams = ((1, 'hProcess'), (1, 'uExitCode')) + +#def GetLastError(): +# return GetLastError.ctypes_function() +GetLastErrorPrototype = WINFUNCTYPE(DWORD) +GetLastErrorParams = () + +#def LdrLoadDll(PathToFile, Flags, ModuleFileName, ModuleHandle): +# return LdrLoadDll.ctypes_function(PathToFile, Flags, ModuleFileName, ModuleHandle) +LdrLoadDllPrototype = WINFUNCTYPE(NTSTATUS, LPCWSTR, PVOID, PUNICODE_STRING, PHANDLE) +LdrLoadDllParams = ((1, 'PathToFile'), (1, 'Flags'), (1, 'ModuleFileName'), (1, 'ModuleHandle')) + +#def GetExitCodeThread(hThread, lpExitCode): +# return GetExitCodeThread.ctypes_function(hThread, lpExitCode) +GetExitCodeThreadPrototype = WINFUNCTYPE(BOOL, HANDLE, LPDWORD) +GetExitCodeThreadParams = ((1, 'hThread'), (1, 'lpExitCode')) + +#def GetExitCodeProcess(hProcess, lpExitCode): +# return GetExitCodeProcess.ctypes_function(hProcess, lpExitCode) +GetExitCodeProcessPrototype = WINFUNCTYPE(BOOL, HANDLE, LPDWORD) +GetExitCodeProcessParams = ((1, 'hProcess'), (1, 'lpExitCode')) + +#def SetPriorityClass(hProcess, dwPriorityClass): +# return SetPriorityClass.ctypes_function(hProcess, dwPriorityClass) +SetPriorityClassPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD) +SetPriorityClassParams = ((1, 'hProcess'), (1, 'dwPriorityClass')) + +#def GetPriorityClass(hProcess): +# return GetPriorityClass.ctypes_function(hProcess) +GetPriorityClassPrototype = WINFUNCTYPE(DWORD, HANDLE) +GetPriorityClassParams = ((1, 'hProcess'),) + +#def VirtualAlloc(lpAddress, dwSize, flAllocationType, flProtect): +# return VirtualAlloc.ctypes_function(lpAddress, dwSize, flAllocationType, flProtect) +VirtualAllocPrototype = WINFUNCTYPE(LPVOID, LPVOID, SIZE_T, DWORD, DWORD) +VirtualAllocParams = ((1, 'lpAddress'), (1, 'dwSize'), (1, 'flAllocationType'), (1, 'flProtect')) + +#def VirtualAllocEx(hProcess, lpAddress, dwSize, flAllocationType, flProtect): +# return VirtualAllocEx.ctypes_function(hProcess, lpAddress, dwSize, flAllocationType, flProtect) +VirtualAllocExPrototype = WINFUNCTYPE(LPVOID, HANDLE, LPVOID, SIZE_T, DWORD, DWORD) +VirtualAllocExParams = ((1, 'hProcess'), (1, 'lpAddress'), (1, 'dwSize'), (1, 'flAllocationType'), (1, 'flProtect')) + +#def VirtualFree(lpAddress, dwSize, dwFreeType): +# return VirtualFree.ctypes_function(lpAddress, dwSize, dwFreeType) +VirtualFreePrototype = WINFUNCTYPE(BOOL, LPVOID, SIZE_T, DWORD) +VirtualFreeParams = ((1, 'lpAddress'), (1, 'dwSize'), (1, 'dwFreeType')) + +#def VirtualFreeEx(hProcess, lpAddress, dwSize, dwFreeType): +# return VirtualFreeEx.ctypes_function(hProcess, lpAddress, dwSize, dwFreeType) +VirtualFreeExPrototype = WINFUNCTYPE(BOOL, HANDLE, LPVOID, SIZE_T, DWORD) +VirtualFreeExParams = ((1, 'hProcess'), (1, 'lpAddress'), (1, 'dwSize'), (1, 'dwFreeType')) + +#def VirtualProtect(lpAddress, dwSize, flNewProtect, lpflOldProtect): +# return VirtualProtect.ctypes_function(lpAddress, dwSize, flNewProtect, lpflOldProtect) +VirtualProtectPrototype = WINFUNCTYPE(BOOL, LPVOID, SIZE_T, DWORD, PDWORD) +VirtualProtectParams = ((1, 'lpAddress'), (1, 'dwSize'), (1, 'flNewProtect'), (1, 'lpflOldProtect')) + +#def VirtualProtectEx(hProcess, lpAddress, dwSize, flNewProtect, lpflOldProtect): +# return VirtualProtectEx.ctypes_function(hProcess, lpAddress, dwSize, flNewProtect, lpflOldProtect) +VirtualProtectExPrototype = WINFUNCTYPE(BOOL, HANDLE, LPVOID, SIZE_T, DWORD, PDWORD) +VirtualProtectExParams = ((1, 'hProcess'), (1, 'lpAddress'), (1, 'dwSize'), (1, 'flNewProtect'), (1, 'lpflOldProtect')) + +#def VirtualQuery(lpAddress, lpBuffer, dwLength): +# return VirtualQuery.ctypes_function(lpAddress, lpBuffer, dwLength) +VirtualQueryPrototype = WINFUNCTYPE(DWORD, LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD) +VirtualQueryParams = ((1, 'lpAddress'), (1, 'lpBuffer'), (1, 'dwLength')) + +#def VirtualQueryEx(hProcess, lpAddress, lpBuffer, dwLength): +# return VirtualQueryEx.ctypes_function(hProcess, lpAddress, lpBuffer, dwLength) +VirtualQueryExPrototype = WINFUNCTYPE(SIZE_T, HANDLE, LPCVOID, PMEMORY_BASIC_INFORMATION, SIZE_T) +VirtualQueryExParams = ((1, 'hProcess'), (1, 'lpAddress'), (1, 'lpBuffer'), (1, 'dwLength')) + +#def QueryWorkingSet(hProcess, pv, cb): +# return QueryWorkingSet.ctypes_function(hProcess, pv, cb) +QueryWorkingSetPrototype = WINFUNCTYPE(BOOL, HANDLE, PVOID, DWORD) +QueryWorkingSetParams = ((1, 'hProcess'), (1, 'pv'), (1, 'cb')) + +#def QueryWorkingSetEx(hProcess, pv, cb): +# return QueryWorkingSetEx.ctypes_function(hProcess, pv, cb) +QueryWorkingSetExPrototype = WINFUNCTYPE(BOOL, HANDLE, PVOID, DWORD) +QueryWorkingSetExParams = ((1, 'hProcess'), (1, 'pv'), (1, 'cb')) + +#def GetModuleFileNameA(hModule, lpFilename, nSize): +# return GetModuleFileNameA.ctypes_function(hModule, lpFilename, nSize) +GetModuleFileNameAPrototype = WINFUNCTYPE(DWORD, HMODULE, LPSTR, DWORD) +GetModuleFileNameAParams = ((1, 'hModule'), (1, 'lpFilename'), (1, 'nSize')) + +#def GetModuleFileNameW(hModule, lpFilename, nSize): +# return GetModuleFileNameW.ctypes_function(hModule, lpFilename, nSize) +GetModuleFileNameWPrototype = WINFUNCTYPE(DWORD, HMODULE, LPWSTR, DWORD) +GetModuleFileNameWParams = ((1, 'hModule'), (1, 'lpFilename'), (1, 'nSize')) + +#def CreateThread(lpThreadAttributes, dwStackSize, lpStartAddress, lpParameter, dwCreationFlags, lpThreadId): +# return CreateThread.ctypes_function(lpThreadAttributes, dwStackSize, lpStartAddress, lpParameter, dwCreationFlags, lpThreadId) +CreateThreadPrototype = WINFUNCTYPE(HANDLE, LPSECURITY_ATTRIBUTES, SIZE_T, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD) +CreateThreadParams = ((1, 'lpThreadAttributes'), (1, 'dwStackSize'), (1, 'lpStartAddress'), (1, 'lpParameter'), (1, 'dwCreationFlags'), (1, 'lpThreadId')) + +#def CreateRemoteThread(hProcess, lpThreadAttributes, dwStackSize, lpStartAddress, lpParameter, dwCreationFlags, lpThreadId): +# return CreateRemoteThread.ctypes_function(hProcess, lpThreadAttributes, dwStackSize, lpStartAddress, lpParameter, dwCreationFlags, lpThreadId) +CreateRemoteThreadPrototype = WINFUNCTYPE(HANDLE, HANDLE, LPSECURITY_ATTRIBUTES, SIZE_T, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD) +CreateRemoteThreadParams = ((1, 'hProcess'), (1, 'lpThreadAttributes'), (1, 'dwStackSize'), (1, 'lpStartAddress'), (1, 'lpParameter'), (1, 'dwCreationFlags'), (1, 'lpThreadId')) + +#def VirtualProtect(lpAddress, dwSize, flNewProtect, lpflOldProtect): +# return VirtualProtect.ctypes_function(lpAddress, dwSize, flNewProtect, lpflOldProtect) +VirtualProtectPrototype = WINFUNCTYPE(BOOL, LPVOID, SIZE_T, DWORD, PDWORD) +VirtualProtectParams = ((1, 'lpAddress'), (1, 'dwSize'), (1, 'flNewProtect'), (1, 'lpflOldProtect')) + +#def CreateProcessA(lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation): +# return CreateProcessA.ctypes_function(lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation) +CreateProcessAPrototype = WINFUNCTYPE(BOOL, LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION) +CreateProcessAParams = ((1, 'lpApplicationName'), (1, 'lpCommandLine'), (1, 'lpProcessAttributes'), (1, 'lpThreadAttributes'), (1, 'bInheritHandles'), (1, 'dwCreationFlags'), (1, 'lpEnvironment'), (1, 'lpCurrentDirectory'), (1, 'lpStartupInfo'), (1, 'lpProcessInformation')) + +#def CreateProcessW(lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation): +# return CreateProcessW.ctypes_function(lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation) +CreateProcessWPrototype = WINFUNCTYPE(BOOL, LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION) +CreateProcessWParams = ((1, 'lpApplicationName'), (1, 'lpCommandLine'), (1, 'lpProcessAttributes'), (1, 'lpThreadAttributes'), (1, 'bInheritHandles'), (1, 'dwCreationFlags'), (1, 'lpEnvironment'), (1, 'lpCurrentDirectory'), (1, 'lpStartupInfo'), (1, 'lpProcessInformation')) + +#def CreateProcessAsUserA(hToken, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation): +# return CreateProcessAsUserA.ctypes_function(hToken, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation) +CreateProcessAsUserAPrototype = WINFUNCTYPE(BOOL, HANDLE, LPSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION) +CreateProcessAsUserAParams = ((1, 'hToken'), (1, 'lpApplicationName'), (1, 'lpCommandLine'), (1, 'lpProcessAttributes'), (1, 'lpThreadAttributes'), (1, 'bInheritHandles'), (1, 'dwCreationFlags'), (1, 'lpEnvironment'), (1, 'lpCurrentDirectory'), (1, 'lpStartupInfo'), (1, 'lpProcessInformation')) + +#def CreateProcessAsUserW(hToken, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation): +# return CreateProcessAsUserW.ctypes_function(hToken, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation) +CreateProcessAsUserWPrototype = WINFUNCTYPE(BOOL, HANDLE, LPWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION) +CreateProcessAsUserWParams = ((1, 'hToken'), (1, 'lpApplicationName'), (1, 'lpCommandLine'), (1, 'lpProcessAttributes'), (1, 'lpThreadAttributes'), (1, 'bInheritHandles'), (1, 'dwCreationFlags'), (1, 'lpEnvironment'), (1, 'lpCurrentDirectory'), (1, 'lpStartupInfo'), (1, 'lpProcessInformation')) + +#def GetThreadContext(hThread, lpContext): +# return GetThreadContext.ctypes_function(hThread, lpContext) +GetThreadContextPrototype = WINFUNCTYPE(BOOL, HANDLE, LPCONTEXT) +GetThreadContextParams = ((1, 'hThread'), (1, 'lpContext')) + +#def SetThreadContext(hThread, lpContext): +# return SetThreadContext.ctypes_function(hThread, lpContext) +SetThreadContextPrototype = WINFUNCTYPE(BOOL, HANDLE, LPCONTEXT) +SetThreadContextParams = ((1, 'hThread'), (1, 'lpContext')) + +#def OpenThread(dwDesiredAccess, bInheritHandle, dwThreadId): +# return OpenThread.ctypes_function(dwDesiredAccess, bInheritHandle, dwThreadId) +OpenThreadPrototype = WINFUNCTYPE(HANDLE, DWORD, BOOL, DWORD) +OpenThreadParams = ((1, 'dwDesiredAccess'), (1, 'bInheritHandle'), (1, 'dwThreadId')) + +#def OpenProcess(dwDesiredAccess, bInheritHandle, dwProcessId): +# return OpenProcess.ctypes_function(dwDesiredAccess, bInheritHandle, dwProcessId) +OpenProcessPrototype = WINFUNCTYPE(HANDLE, DWORD, BOOL, DWORD) +OpenProcessParams = ((1, 'dwDesiredAccess'), (1, 'bInheritHandle'), (1, 'dwProcessId')) + +#def CloseHandle(hObject): +# return CloseHandle.ctypes_function(hObject) +CloseHandlePrototype = WINFUNCTYPE(BOOL, HANDLE) +CloseHandleParams = ((1, 'hObject'),) + +#def ReadProcessMemory(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead): +# return ReadProcessMemory.ctypes_function(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead) +ReadProcessMemoryPrototype = WINFUNCTYPE(BOOL, HANDLE, LPCVOID, LPVOID, SIZE_T, POINTER(SIZE_T)) +ReadProcessMemoryParams = ((1, 'hProcess'), (1, 'lpBaseAddress'), (1, 'lpBuffer'), (1, 'nSize'), (1, 'lpNumberOfBytesRead')) + +#def NtWow64ReadVirtualMemory64(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead): +# return NtWow64ReadVirtualMemory64.ctypes_function(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead) +NtWow64ReadVirtualMemory64Prototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG64, LPVOID, ULONG64, PULONG64) +NtWow64ReadVirtualMemory64Params = ((1, 'hProcess'), (1, 'lpBaseAddress'), (1, 'lpBuffer'), (1, 'nSize'), (1, 'lpNumberOfBytesRead')) + +#def WriteProcessMemory(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesWritten): +# return WriteProcessMemory.ctypes_function(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesWritten) +WriteProcessMemoryPrototype = WINFUNCTYPE(BOOL, HANDLE, LPVOID, LPCVOID, SIZE_T, POINTER(SIZE_T)) +WriteProcessMemoryParams = ((1, 'hProcess'), (1, 'lpBaseAddress'), (1, 'lpBuffer'), (1, 'nSize'), (1, 'lpNumberOfBytesWritten')) + +#def NtWow64WriteVirtualMemory64(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesWritten): +# return NtWow64WriteVirtualMemory64.ctypes_function(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesWritten) +NtWow64WriteVirtualMemory64Prototype = WINFUNCTYPE(NTSTATUS, HANDLE, ULONG64, LPVOID, ULONG64, PULONG64) +NtWow64WriteVirtualMemory64Params = ((1, 'hProcess'), (1, 'lpBaseAddress'), (1, 'lpBuffer'), (1, 'nSize'), (1, 'lpNumberOfBytesWritten')) + +#def GetCurrentProcess(): +# return GetCurrentProcess.ctypes_function() +GetCurrentProcessPrototype = WINFUNCTYPE(HANDLE) +GetCurrentProcessParams = () + +#def CreateFileA(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile): +# return CreateFileA.ctypes_function(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile) +CreateFileAPrototype = WINFUNCTYPE(HANDLE, LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE) +CreateFileAParams = ((1, 'lpFileName'), (1, 'dwDesiredAccess'), (1, 'dwShareMode'), (1, 'lpSecurityAttributes'), (1, 'dwCreationDisposition'), (1, 'dwFlagsAndAttributes'), (1, 'hTemplateFile')) + +#def CreateFileW(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile): +# return CreateFileW.ctypes_function(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile) +CreateFileWPrototype = WINFUNCTYPE(HANDLE, LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE) +CreateFileWParams = ((1, 'lpFileName'), (1, 'dwDesiredAccess'), (1, 'dwShareMode'), (1, 'lpSecurityAttributes'), (1, 'dwCreationDisposition'), (1, 'dwFlagsAndAttributes'), (1, 'hTemplateFile')) + +#def OpenProcessToken(ProcessHandle, DesiredAccess, TokenHandle): +# return OpenProcessToken.ctypes_function(ProcessHandle, DesiredAccess, TokenHandle) +OpenProcessTokenPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD, PHANDLE) +OpenProcessTokenParams = ((1, 'ProcessHandle'), (1, 'DesiredAccess'), (1, 'TokenHandle')) + +#def DuplicateToken(ExistingTokenHandle, ImpersonationLevel, DuplicateTokenHandle): +# return DuplicateToken.ctypes_function(ExistingTokenHandle, ImpersonationLevel, DuplicateTokenHandle) +DuplicateTokenPrototype = WINFUNCTYPE(BOOL, HANDLE, SECURITY_IMPERSONATION_LEVEL, PHANDLE) +DuplicateTokenParams = ((1, 'ExistingTokenHandle'), (1, 'ImpersonationLevel'), (1, 'DuplicateTokenHandle')) + +#def DuplicateTokenEx(hExistingToken, dwDesiredAccess, lpTokenAttributes, ImpersonationLevel, TokenType, phNewToken): +# return DuplicateTokenEx.ctypes_function(hExistingToken, dwDesiredAccess, lpTokenAttributes, ImpersonationLevel, TokenType, phNewToken) +DuplicateTokenExPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD, LPSECURITY_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL, TOKEN_TYPE, PHANDLE) +DuplicateTokenExParams = ((1, 'hExistingToken'), (1, 'dwDesiredAccess'), (1, 'lpTokenAttributes'), (1, 'ImpersonationLevel'), (1, 'TokenType'), (1, 'phNewToken')) + +#def OpenThreadToken(ThreadHandle, DesiredAccess, OpenAsSelf, TokenHandle): +# return OpenThreadToken.ctypes_function(ThreadHandle, DesiredAccess, OpenAsSelf, TokenHandle) +OpenThreadTokenPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD, BOOL, PHANDLE) +OpenThreadTokenParams = ((1, 'ThreadHandle'), (1, 'DesiredAccess'), (1, 'OpenAsSelf'), (1, 'TokenHandle')) + +#def SetThreadToken(Thread, Token): +# return SetThreadToken.ctypes_function(Thread, Token) +SetThreadTokenPrototype = WINFUNCTYPE(BOOL, PHANDLE, HANDLE) +SetThreadTokenParams = ((1, 'Thread'), (1, 'Token')) + +#def LookupPrivilegeValueA(lpSystemName, lpName, lpLuid): +# return LookupPrivilegeValueA.ctypes_function(lpSystemName, lpName, lpLuid) +LookupPrivilegeValueAPrototype = WINFUNCTYPE(BOOL, LPCSTR, LPCSTR, PLUID) +LookupPrivilegeValueAParams = ((1, 'lpSystemName'), (1, 'lpName'), (1, 'lpLuid')) + +#def LookupPrivilegeValueW(lpSystemName, lpName, lpLuid): +# return LookupPrivilegeValueW.ctypes_function(lpSystemName, lpName, lpLuid) +LookupPrivilegeValueWPrototype = WINFUNCTYPE(BOOL, LPCWSTR, LPCWSTR, PLUID) +LookupPrivilegeValueWParams = ((1, 'lpSystemName'), (1, 'lpName'), (1, 'lpLuid')) + +#def LookupPrivilegeNameA(lpSystemName, lpLuid, lpName, cchName): +# return LookupPrivilegeNameA.ctypes_function(lpSystemName, lpLuid, lpName, cchName) +LookupPrivilegeNameAPrototype = WINFUNCTYPE(BOOL, LPCSTR, PLUID, LPCSTR, LPDWORD) +LookupPrivilegeNameAParams = ((1, 'lpSystemName'), (1, 'lpLuid'), (1, 'lpName'), (1, 'cchName')) + +#def LookupPrivilegeNameW(lpSystemName, lpLuid, lpName, cchName): +# return LookupPrivilegeNameW.ctypes_function(lpSystemName, lpLuid, lpName, cchName) +LookupPrivilegeNameWPrototype = WINFUNCTYPE(BOOL, LPCWSTR, PLUID, LPCWSTR, LPDWORD) +LookupPrivilegeNameWParams = ((1, 'lpSystemName'), (1, 'lpLuid'), (1, 'lpName'), (1, 'cchName')) + +#def AdjustTokenPrivileges(TokenHandle, DisableAllPrivileges, NewState, BufferLength, PreviousState, ReturnLength): +# return AdjustTokenPrivileges.ctypes_function(TokenHandle, DisableAllPrivileges, NewState, BufferLength, PreviousState, ReturnLength) +AdjustTokenPrivilegesPrototype = WINFUNCTYPE(BOOL, HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD) +AdjustTokenPrivilegesParams = ((1, 'TokenHandle'), (1, 'DisableAllPrivileges'), (1, 'NewState'), (1, 'BufferLength'), (1, 'PreviousState'), (1, 'ReturnLength')) + +#def FindResourceA(hModule, lpName, lpType): +# return FindResourceA.ctypes_function(hModule, lpName, lpType) +FindResourceAPrototype = WINFUNCTYPE(HRSRC, HMODULE, LPCSTR, LPCSTR) +FindResourceAParams = ((1, 'hModule'), (1, 'lpName'), (1, 'lpType')) + +#def FindResourceW(hModule, lpName, lpType): +# return FindResourceW.ctypes_function(hModule, lpName, lpType) +FindResourceWPrototype = WINFUNCTYPE(HRSRC, HMODULE, LPCWSTR, LPCWSTR) +FindResourceWParams = ((1, 'hModule'), (1, 'lpName'), (1, 'lpType')) + +#def SizeofResource(hModule, hResInfo): +# return SizeofResource.ctypes_function(hModule, hResInfo) +SizeofResourcePrototype = WINFUNCTYPE(DWORD, HMODULE, HRSRC) +SizeofResourceParams = ((1, 'hModule'), (1, 'hResInfo')) + +#def LoadResource(hModule, hResInfo): +# return LoadResource.ctypes_function(hModule, hResInfo) +LoadResourcePrototype = WINFUNCTYPE(HGLOBAL, HMODULE, HRSRC) +LoadResourceParams = ((1, 'hModule'), (1, 'hResInfo')) + +#def LockResource(hResData): +# return LockResource.ctypes_function(hResData) +LockResourcePrototype = WINFUNCTYPE(LPVOID, HGLOBAL) +LockResourceParams = ((1, 'hResData'),) + +#def FreeResource(hResData): +# return FreeResource.ctypes_function(hResData) +FreeResourcePrototype = WINFUNCTYPE(BOOL, HGLOBAL) +FreeResourceParams = ((1, 'hResData'),) + +#def EnumResourceTypesA(hModule, lpEnumFunc, lParam): +# return EnumResourceTypesA.ctypes_function(hModule, lpEnumFunc, lParam) +EnumResourceTypesAPrototype = WINFUNCTYPE(BOOL, HMODULE, ENUMRESTYPEPROCA, LONG_PTR) +EnumResourceTypesAParams = ((1, 'hModule'), (1, 'lpEnumFunc'), (1, 'lParam')) + +#def EnumResourceTypesW(hModule, lpEnumFunc, lParam): +# return EnumResourceTypesW.ctypes_function(hModule, lpEnumFunc, lParam) +EnumResourceTypesWPrototype = WINFUNCTYPE(BOOL, HMODULE, ENUMRESTYPEPROCW, LONG_PTR) +EnumResourceTypesWParams = ((1, 'hModule'), (1, 'lpEnumFunc'), (1, 'lParam')) + +#def EnumResourceNamesA(hModule, lpType, lpEnumFunc, lParam): +# return EnumResourceNamesA.ctypes_function(hModule, lpType, lpEnumFunc, lParam) +EnumResourceNamesAPrototype = WINFUNCTYPE(BOOL, HMODULE, LPCSTR, ENUMRESNAMEPROCA, LONG_PTR) +EnumResourceNamesAParams = ((1, 'hModule'), (1, 'lpType'), (1, 'lpEnumFunc'), (1, 'lParam')) + +#def EnumResourceNamesW(hModule, lpType, lpEnumFunc, lParam): +# return EnumResourceNamesW.ctypes_function(hModule, lpType, lpEnumFunc, lParam) +EnumResourceNamesWPrototype = WINFUNCTYPE(BOOL, HMODULE, LPCWSTR, ENUMRESNAMEPROCW, LONG_PTR) +EnumResourceNamesWParams = ((1, 'hModule'), (1, 'lpType'), (1, 'lpEnumFunc'), (1, 'lParam')) + +#def GetVersionExA(lpVersionInformation): +# return GetVersionExA.ctypes_function(lpVersionInformation) +GetVersionExAPrototype = WINFUNCTYPE(BOOL, LPOSVERSIONINFOA) +GetVersionExAParams = ((1, 'lpVersionInformation'),) + +#def GetVersionExW(lpVersionInformation): +# return GetVersionExW.ctypes_function(lpVersionInformation) +GetVersionExWPrototype = WINFUNCTYPE(BOOL, LPOSVERSIONINFOW) +GetVersionExWParams = ((1, 'lpVersionInformation'),) + +#def GetVersion(): +# return GetVersion.ctypes_function() +GetVersionPrototype = WINFUNCTYPE(DWORD) +GetVersionParams = () + +#def GetCurrentThread(): +# return GetCurrentThread.ctypes_function() +GetCurrentThreadPrototype = WINFUNCTYPE(HANDLE) +GetCurrentThreadParams = () + +#def GetCurrentThreadId(): +# return GetCurrentThreadId.ctypes_function() +GetCurrentThreadIdPrototype = WINFUNCTYPE(DWORD) +GetCurrentThreadIdParams = () + +#def GetCurrentProcessorNumber(): +# return GetCurrentProcessorNumber.ctypes_function() +GetCurrentProcessorNumberPrototype = WINFUNCTYPE(DWORD) +GetCurrentProcessorNumberParams = () + +#def AllocConsole(): +# return AllocConsole.ctypes_function() +AllocConsolePrototype = WINFUNCTYPE(BOOL) +AllocConsoleParams = () + +#def FreeConsole(): +# return FreeConsole.ctypes_function() +FreeConsolePrototype = WINFUNCTYPE(BOOL) +FreeConsoleParams = () + +#def GetStdHandle(nStdHandle): +# return GetStdHandle.ctypes_function(nStdHandle) +GetStdHandlePrototype = WINFUNCTYPE(HANDLE, DWORD) +GetStdHandleParams = ((1, 'nStdHandle'),) + +#def SetStdHandle(nStdHandle, hHandle): +# return SetStdHandle.ctypes_function(nStdHandle, hHandle) +SetStdHandlePrototype = WINFUNCTYPE(BOOL, DWORD, HANDLE) +SetStdHandleParams = ((1, 'nStdHandle'), (1, 'hHandle')) + +#def SetThreadAffinityMask(hThread, dwThreadAffinityMask): +# return SetThreadAffinityMask.ctypes_function(hThread, dwThreadAffinityMask) +SetThreadAffinityMaskPrototype = WINFUNCTYPE(DWORD, HANDLE, DWORD) +SetThreadAffinityMaskParams = ((1, 'hThread'), (1, 'dwThreadAffinityMask')) + +#def ReadFile(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped): +# return ReadFile.ctypes_function(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped) +ReadFilePrototype = WINFUNCTYPE(BOOL, HANDLE, LPVOID, DWORD, LPDWORD, LPOVERLAPPED) +ReadFileParams = ((1, 'hFile'), (1, 'lpBuffer'), (1, 'nNumberOfBytesToRead'), (1, 'lpNumberOfBytesRead'), (1, 'lpOverlapped')) + +#def WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped): +# return WriteFile.ctypes_function(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped) +WriteFilePrototype = WINFUNCTYPE(BOOL, HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED) +WriteFileParams = ((1, 'hFile'), (1, 'lpBuffer'), (1, 'nNumberOfBytesToWrite'), (1, 'lpNumberOfBytesWritten'), (1, 'lpOverlapped')) + +#def AddVectoredContinueHandler(FirstHandler, VectoredHandler): +# return AddVectoredContinueHandler.ctypes_function(FirstHandler, VectoredHandler) +AddVectoredContinueHandlerPrototype = WINFUNCTYPE(PVOID, ULONG, PVECTORED_EXCEPTION_HANDLER) +AddVectoredContinueHandlerParams = ((1, 'FirstHandler'), (1, 'VectoredHandler')) + +#def AddVectoredExceptionHandler(FirstHandler, VectoredHandler): +# return AddVectoredExceptionHandler.ctypes_function(FirstHandler, VectoredHandler) +AddVectoredExceptionHandlerPrototype = WINFUNCTYPE(PVOID, ULONG, PVECTORED_EXCEPTION_HANDLER) +AddVectoredExceptionHandlerParams = ((1, 'FirstHandler'), (1, 'VectoredHandler')) + +#def TerminateThread(hThread, dwExitCode): +# return TerminateThread.ctypes_function(hThread, dwExitCode) +TerminateThreadPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD) +TerminateThreadParams = ((1, 'hThread'), (1, 'dwExitCode')) + +#def ExitThread(dwExitCode): +# return ExitThread.ctypes_function(dwExitCode) +ExitThreadPrototype = WINFUNCTYPE(VOID, DWORD) +ExitThreadParams = ((1, 'dwExitCode'),) + +#def RemoveVectoredExceptionHandler(Handler): +# return RemoveVectoredExceptionHandler.ctypes_function(Handler) +RemoveVectoredExceptionHandlerPrototype = WINFUNCTYPE(ULONG, PVOID) +RemoveVectoredExceptionHandlerParams = ((1, 'Handler'),) + +#def ResumeThread(hThread): +# return ResumeThread.ctypes_function(hThread) +ResumeThreadPrototype = WINFUNCTYPE(DWORD, HANDLE) +ResumeThreadParams = ((1, 'hThread'),) + +#def SuspendThread(hThread): +# return SuspendThread.ctypes_function(hThread) +SuspendThreadPrototype = WINFUNCTYPE(DWORD, HANDLE) +SuspendThreadParams = ((1, 'hThread'),) + +#def WaitForSingleObject(hHandle, dwMilliseconds): +# return WaitForSingleObject.ctypes_function(hHandle, dwMilliseconds) +WaitForSingleObjectPrototype = WINFUNCTYPE(DWORD, HANDLE, DWORD) +WaitForSingleObjectParams = ((1, 'hHandle'), (1, 'dwMilliseconds')) + +#def GetThreadId(Thread): +# return GetThreadId.ctypes_function(Thread) +GetThreadIdPrototype = WINFUNCTYPE(DWORD, HANDLE) +GetThreadIdParams = ((1, 'Thread'),) + +#def DeviceIoControl(hDevice, dwIoControlCode, lpInBuffer, nInBufferSize, lpOutBuffer, nOutBufferSize, lpBytesReturned, lpOverlapped): +# return DeviceIoControl.ctypes_function(hDevice, dwIoControlCode, lpInBuffer, nInBufferSize, lpOutBuffer, nOutBufferSize, lpBytesReturned, lpOverlapped) +DeviceIoControlPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPOVERLAPPED) +DeviceIoControlParams = ((1, 'hDevice'), (1, 'dwIoControlCode'), (1, 'lpInBuffer'), (1, 'nInBufferSize'), (1, 'lpOutBuffer'), (1, 'nOutBufferSize'), (1, 'lpBytesReturned'), (1, 'lpOverlapped')) + +#def GetTokenInformation(TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength, ReturnLength): +# return GetTokenInformation.ctypes_function(TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength, ReturnLength) +GetTokenInformationPrototype = WINFUNCTYPE(BOOL, HANDLE, TOKEN_INFORMATION_CLASS, LPVOID, DWORD, PDWORD) +GetTokenInformationParams = ((1, 'TokenHandle'), (1, 'TokenInformationClass'), (1, 'TokenInformation'), (1, 'TokenInformationLength'), (1, 'ReturnLength')) + +#def Wow64DisableWow64FsRedirection(OldValue): +# return Wow64DisableWow64FsRedirection.ctypes_function(OldValue) +Wow64DisableWow64FsRedirectionPrototype = WINFUNCTYPE(BOOL, POINTER(PVOID)) +Wow64DisableWow64FsRedirectionParams = ((1, 'OldValue'),) + +#def Wow64RevertWow64FsRedirection(OldValue): +# return Wow64RevertWow64FsRedirection.ctypes_function(OldValue) +Wow64RevertWow64FsRedirectionPrototype = WINFUNCTYPE(BOOL, PVOID) +Wow64RevertWow64FsRedirectionParams = ((1, 'OldValue'),) + +#def Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection): +# return Wow64EnableWow64FsRedirection.ctypes_function(Wow64FsEnableRedirection) +Wow64EnableWow64FsRedirectionPrototype = WINFUNCTYPE(BOOLEAN, BOOLEAN) +Wow64EnableWow64FsRedirectionParams = ((1, 'Wow64FsEnableRedirection'),) + +#def Wow64GetThreadContext(hThread, lpContext): +# return Wow64GetThreadContext.ctypes_function(hThread, lpContext) +Wow64GetThreadContextPrototype = WINFUNCTYPE(BOOL, HANDLE, PWOW64_CONTEXT) +Wow64GetThreadContextParams = ((1, 'hThread'), (1, 'lpContext')) + +#def SetConsoleCtrlHandler(HandlerRoutine, Add): +# return SetConsoleCtrlHandler.ctypes_function(HandlerRoutine, Add) +SetConsoleCtrlHandlerPrototype = WINFUNCTYPE(BOOL, PHANDLER_ROUTINE, BOOL) +SetConsoleCtrlHandlerParams = ((1, 'HandlerRoutine'), (1, 'Add')) + +#def WinVerifyTrust(hwnd, pgActionID, pWVTData): +# return WinVerifyTrust.ctypes_function(hwnd, pgActionID, pWVTData) +WinVerifyTrustPrototype = WINFUNCTYPE(LONG, HWND, POINTER(GUID), LPVOID) +WinVerifyTrustParams = ((1, 'hwnd'), (1, 'pgActionID'), (1, 'pWVTData')) + +#def GlobalAlloc(uFlags, dwBytes): +# return GlobalAlloc.ctypes_function(uFlags, dwBytes) +GlobalAllocPrototype = WINFUNCTYPE(HGLOBAL, UINT, SIZE_T) +GlobalAllocParams = ((1, 'uFlags'), (1, 'dwBytes')) + +#def GlobalFree(hMem): +# return GlobalFree.ctypes_function(hMem) +GlobalFreePrototype = WINFUNCTYPE(HGLOBAL, HGLOBAL) +GlobalFreeParams = ((1, 'hMem'),) + +#def GlobalUnlock(hMem): +# return GlobalUnlock.ctypes_function(hMem) +GlobalUnlockPrototype = WINFUNCTYPE(BOOL, HGLOBAL) +GlobalUnlockParams = ((1, 'hMem'),) + +#def GlobalLock(hMem): +# return GlobalLock.ctypes_function(hMem) +GlobalLockPrototype = WINFUNCTYPE(LPVOID, HGLOBAL) +GlobalLockParams = ((1, 'hMem'),) + +#def OpenClipboard(hWndNewOwner): +# return OpenClipboard.ctypes_function(hWndNewOwner) +OpenClipboardPrototype = WINFUNCTYPE(BOOL, HWND) +OpenClipboardParams = ((1, 'hWndNewOwner'),) + +#def EmptyClipboard(): +# return EmptyClipboard.ctypes_function() +EmptyClipboardPrototype = WINFUNCTYPE(BOOL) +EmptyClipboardParams = () + +#def CloseClipboard(): +# return CloseClipboard.ctypes_function() +CloseClipboardPrototype = WINFUNCTYPE(BOOL) +CloseClipboardParams = () + +#def SetClipboardData(uFormat, hMem): +# return SetClipboardData.ctypes_function(uFormat, hMem) +SetClipboardDataPrototype = WINFUNCTYPE(HANDLE, UINT, HANDLE) +SetClipboardDataParams = ((1, 'uFormat'), (1, 'hMem')) + +#def GetClipboardData(uFormat): +# return GetClipboardData.ctypes_function(uFormat) +GetClipboardDataPrototype = WINFUNCTYPE(HANDLE, UINT) +GetClipboardDataParams = ((1, 'uFormat'),) + +#def EnumClipboardFormats(format): +# return EnumClipboardFormats.ctypes_function(format) +EnumClipboardFormatsPrototype = WINFUNCTYPE(UINT, UINT) +EnumClipboardFormatsParams = ((1, 'format'),) + +#def GetClipboardFormatNameA(format, lpszFormatName, cchMaxCount): +# return GetClipboardFormatNameA.ctypes_function(format, lpszFormatName, cchMaxCount) +GetClipboardFormatNameAPrototype = WINFUNCTYPE(INT, UINT, LPCSTR, INT) +GetClipboardFormatNameAParams = ((1, 'format'), (1, 'lpszFormatName'), (1, 'cchMaxCount')) + +#def GetClipboardFormatNameW(format, lpszFormatName, cchMaxCount): +# return GetClipboardFormatNameW.ctypes_function(format, lpszFormatName, cchMaxCount) +GetClipboardFormatNameWPrototype = WINFUNCTYPE(INT, UINT, LPCWSTR, INT) +GetClipboardFormatNameWParams = ((1, 'format'), (1, 'lpszFormatName'), (1, 'cchMaxCount')) + +#def WinVerifyTrust(hWnd, pgActionID, pWVTData): +# return WinVerifyTrust.ctypes_function(hWnd, pgActionID, pWVTData) +WinVerifyTrustPrototype = WINFUNCTYPE(LONG, HWND, POINTER(GUID), LPVOID) +WinVerifyTrustParams = ((1, 'hWnd'), (1, 'pgActionID'), (1, 'pWVTData')) + +#def OpenProcessToken(ProcessHandle, DesiredAccess, TokenHandle): +# return OpenProcessToken.ctypes_function(ProcessHandle, DesiredAccess, TokenHandle) +OpenProcessTokenPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD, PHANDLE) +OpenProcessTokenParams = ((1, 'ProcessHandle'), (1, 'DesiredAccess'), (1, 'TokenHandle')) + +#def OpenThreadToken(ThreadHandle, DesiredAccess, OpenAsSelf, TokenHandle): +# return OpenThreadToken.ctypes_function(ThreadHandle, DesiredAccess, OpenAsSelf, TokenHandle) +OpenThreadTokenPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD, BOOL, PHANDLE) +OpenThreadTokenParams = ((1, 'ThreadHandle'), (1, 'DesiredAccess'), (1, 'OpenAsSelf'), (1, 'TokenHandle')) + +#def GetTokenInformation(TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength, ReturnLength): +# return GetTokenInformation.ctypes_function(TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength, ReturnLength) +GetTokenInformationPrototype = WINFUNCTYPE(BOOL, HANDLE, TOKEN_INFORMATION_CLASS, LPVOID, DWORD, PDWORD) +GetTokenInformationParams = ((1, 'TokenHandle'), (1, 'TokenInformationClass'), (1, 'TokenInformation'), (1, 'TokenInformationLength'), (1, 'ReturnLength')) + +#def SetTokenInformation(TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength): +# return SetTokenInformation.ctypes_function(TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength) +SetTokenInformationPrototype = WINFUNCTYPE(BOOL, HANDLE, TOKEN_INFORMATION_CLASS, LPVOID, DWORD) +SetTokenInformationParams = ((1, 'TokenHandle'), (1, 'TokenInformationClass'), (1, 'TokenInformation'), (1, 'TokenInformationLength')) + +#def CreateWellKnownSid(WellKnownSidType, DomainSid, pSid, cbSid): +# return CreateWellKnownSid.ctypes_function(WellKnownSidType, DomainSid, pSid, cbSid) +CreateWellKnownSidPrototype = WINFUNCTYPE(BOOL, WELL_KNOWN_SID_TYPE, PSID, PSID, POINTER(DWORD)) +CreateWellKnownSidParams = ((1, 'WellKnownSidType'), (1, 'DomainSid'), (1, 'pSid'), (1, 'cbSid')) + +#def DebugBreak(): +# return DebugBreak.ctypes_function() +DebugBreakPrototype = WINFUNCTYPE(VOID) +DebugBreakParams = () + +#def WaitForDebugEvent(lpDebugEvent, dwMilliseconds): +# return WaitForDebugEvent.ctypes_function(lpDebugEvent, dwMilliseconds) +WaitForDebugEventPrototype = WINFUNCTYPE(BOOL, LPDEBUG_EVENT, DWORD) +WaitForDebugEventParams = ((1, 'lpDebugEvent'), (1, 'dwMilliseconds')) + +#def ContinueDebugEvent(dwProcessId, dwThreadId, dwContinueStatus): +# return ContinueDebugEvent.ctypes_function(dwProcessId, dwThreadId, dwContinueStatus) +ContinueDebugEventPrototype = WINFUNCTYPE(BOOL, DWORD, DWORD, DWORD) +ContinueDebugEventParams = ((1, 'dwProcessId'), (1, 'dwThreadId'), (1, 'dwContinueStatus')) + +#def DebugActiveProcess(dwProcessId): +# return DebugActiveProcess.ctypes_function(dwProcessId) +DebugActiveProcessPrototype = WINFUNCTYPE(BOOL, DWORD) +DebugActiveProcessParams = ((1, 'dwProcessId'),) + +#def DebugActiveProcessStop(dwProcessId): +# return DebugActiveProcessStop.ctypes_function(dwProcessId) +DebugActiveProcessStopPrototype = WINFUNCTYPE(BOOL, DWORD) +DebugActiveProcessStopParams = ((1, 'dwProcessId'),) + +#def DebugSetProcessKillOnExit(KillOnExit): +# return DebugSetProcessKillOnExit.ctypes_function(KillOnExit) +DebugSetProcessKillOnExitPrototype = WINFUNCTYPE(BOOL, BOOL) +DebugSetProcessKillOnExitParams = ((1, 'KillOnExit'),) + +#def DebugBreakProcess(Process): +# return DebugBreakProcess.ctypes_function(Process) +DebugBreakProcessPrototype = WINFUNCTYPE(BOOL, HANDLE) +DebugBreakProcessParams = ((1, 'Process'),) + +#def GetProcessId(Process): +# return GetProcessId.ctypes_function(Process) +GetProcessIdPrototype = WINFUNCTYPE(DWORD, HANDLE) +GetProcessIdParams = ((1, 'Process'),) + +#def Wow64SetThreadContext(hThread, lpContext): +# return Wow64SetThreadContext.ctypes_function(hThread, lpContext) +Wow64SetThreadContextPrototype = WINFUNCTYPE(BOOL, HANDLE, POINTER(WOW64_CONTEXT)) +Wow64SetThreadContextParams = ((1, 'hThread'), (1, 'lpContext')) + +#def GetMappedFileNameW(hProcess, lpv, lpFilename, nSize): +# return GetMappedFileNameW.ctypes_function(hProcess, lpv, lpFilename, nSize) +GetMappedFileNameWPrototype = WINFUNCTYPE(DWORD, HANDLE, LPVOID, PVOID, DWORD) +GetMappedFileNameWParams = ((1, 'hProcess'), (1, 'lpv'), (1, 'lpFilename'), (1, 'nSize')) + +#def GetMappedFileNameA(hProcess, lpv, lpFilename, nSize): +# return GetMappedFileNameA.ctypes_function(hProcess, lpv, lpFilename, nSize) +GetMappedFileNameAPrototype = WINFUNCTYPE(DWORD, HANDLE, LPVOID, PVOID, DWORD) +GetMappedFileNameAParams = ((1, 'hProcess'), (1, 'lpv'), (1, 'lpFilename'), (1, 'nSize')) + +#def RtlInitString(DestinationString, SourceString): +# return RtlInitString.ctypes_function(DestinationString, SourceString) +RtlInitStringPrototype = WINFUNCTYPE(VOID, PSTRING, LPCSTR) +RtlInitStringParams = ((1, 'DestinationString'), (1, 'SourceString')) + +#def RtlInitUnicodeString(DestinationString, SourceString): +# return RtlInitUnicodeString.ctypes_function(DestinationString, SourceString) +RtlInitUnicodeStringPrototype = WINFUNCTYPE(VOID, PUNICODE_STRING, LPCWSTR) +RtlInitUnicodeStringParams = ((1, 'DestinationString'), (1, 'SourceString')) + +#def RtlAnsiStringToUnicodeString(DestinationString, SourceString, AllocateDestinationString): +# return RtlAnsiStringToUnicodeString.ctypes_function(DestinationString, SourceString, AllocateDestinationString) +RtlAnsiStringToUnicodeStringPrototype = WINFUNCTYPE(NTSTATUS, PUNICODE_STRING, PCANSI_STRING, BOOLEAN) +RtlAnsiStringToUnicodeStringParams = ((1, 'DestinationString'), (1, 'SourceString'), (1, 'AllocateDestinationString')) + +#def RtlDecompressBuffer(CompressionFormat, UncompressedBuffer, UncompressedBufferSize, CompressedBuffer, CompressedBufferSize, FinalUncompressedSize): +# return RtlDecompressBuffer.ctypes_function(CompressionFormat, UncompressedBuffer, UncompressedBufferSize, CompressedBuffer, CompressedBufferSize, FinalUncompressedSize) +RtlDecompressBufferPrototype = WINFUNCTYPE(NTSTATUS, USHORT, PUCHAR, ULONG, PUCHAR, ULONG, PULONG) +RtlDecompressBufferParams = ((1, 'CompressionFormat'), (1, 'UncompressedBuffer'), (1, 'UncompressedBufferSize'), (1, 'CompressedBuffer'), (1, 'CompressedBufferSize'), (1, 'FinalUncompressedSize')) + +#def RtlCompressBuffer(CompressionFormatAndEngine, UncompressedBuffer, UncompressedBufferSize, CompressedBuffer, CompressedBufferSize, UncompressedChunkSize, FinalCompressedSize, WorkSpace): +# return RtlCompressBuffer.ctypes_function(CompressionFormatAndEngine, UncompressedBuffer, UncompressedBufferSize, CompressedBuffer, CompressedBufferSize, UncompressedChunkSize, FinalCompressedSize, WorkSpace) +RtlCompressBufferPrototype = WINFUNCTYPE(NTSTATUS, USHORT, PUCHAR, ULONG, PUCHAR, ULONG, ULONG, PULONG, PVOID) +RtlCompressBufferParams = ((1, 'CompressionFormatAndEngine'), (1, 'UncompressedBuffer'), (1, 'UncompressedBufferSize'), (1, 'CompressedBuffer'), (1, 'CompressedBufferSize'), (1, 'UncompressedChunkSize'), (1, 'FinalCompressedSize'), (1, 'WorkSpace')) + +#def RtlDecompressBufferEx(CompressionFormat, UncompressedBuffer, UncompressedBufferSize, CompressedBuffer, CompressedBufferSize, FinalUncompressedSize, WorkSpace): +# return RtlDecompressBufferEx.ctypes_function(CompressionFormat, UncompressedBuffer, UncompressedBufferSize, CompressedBuffer, CompressedBufferSize, FinalUncompressedSize, WorkSpace) +RtlDecompressBufferExPrototype = WINFUNCTYPE(NTSTATUS, USHORT, PUCHAR, ULONG, PUCHAR, ULONG, PULONG, PVOID) +RtlDecompressBufferExParams = ((1, 'CompressionFormat'), (1, 'UncompressedBuffer'), (1, 'UncompressedBufferSize'), (1, 'CompressedBuffer'), (1, 'CompressedBufferSize'), (1, 'FinalUncompressedSize'), (1, 'WorkSpace')) + +#def RtlGetCompressionWorkSpaceSize(CompressionFormatAndEngine, CompressBufferWorkSpaceSize, CompressFragmentWorkSpaceSize): +# return RtlGetCompressionWorkSpaceSize.ctypes_function(CompressionFormatAndEngine, CompressBufferWorkSpaceSize, CompressFragmentWorkSpaceSize) +RtlGetCompressionWorkSpaceSizePrototype = WINFUNCTYPE(NTSTATUS, USHORT, PULONG, PULONG) +RtlGetCompressionWorkSpaceSizeParams = ((1, 'CompressionFormatAndEngine'), (1, 'CompressBufferWorkSpaceSize'), (1, 'CompressFragmentWorkSpaceSize')) + +#def RtlMoveMemory(Destination, Source, Length): +# return RtlMoveMemory.ctypes_function(Destination, Source, Length) +RtlMoveMemoryPrototype = WINFUNCTYPE(VOID, PVOID, PVOID, SIZE_T) +RtlMoveMemoryParams = ((1, 'Destination'), (1, 'Source'), (1, 'Length')) + +#def lstrcmpA(lpString1, lpString2): +# return lstrcmpA.ctypes_function(lpString1, lpString2) +lstrcmpAPrototype = WINFUNCTYPE(INT, LPCSTR, LPCSTR) +lstrcmpAParams = ((1, 'lpString1'), (1, 'lpString2')) + +#def lstrcmpW(lpString1, lpString2): +# return lstrcmpW.ctypes_function(lpString1, lpString2) +lstrcmpWPrototype = WINFUNCTYPE(INT, LPCWSTR, LPCWSTR) +lstrcmpWParams = ((1, 'lpString1'), (1, 'lpString2')) + +#def CreateFileMappingA(hFile, lpFileMappingAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, lpName): +# return CreateFileMappingA.ctypes_function(hFile, lpFileMappingAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, lpName) +CreateFileMappingAPrototype = WINFUNCTYPE(HANDLE, HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR) +CreateFileMappingAParams = ((1, 'hFile'), (1, 'lpFileMappingAttributes'), (1, 'flProtect'), (1, 'dwMaximumSizeHigh'), (1, 'dwMaximumSizeLow'), (1, 'lpName')) + +#def CreateFileMappingW(hFile, lpFileMappingAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, lpName): +# return CreateFileMappingW.ctypes_function(hFile, lpFileMappingAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, lpName) +CreateFileMappingWPrototype = WINFUNCTYPE(HANDLE, HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR) +CreateFileMappingWParams = ((1, 'hFile'), (1, 'lpFileMappingAttributes'), (1, 'flProtect'), (1, 'dwMaximumSizeHigh'), (1, 'dwMaximumSizeLow'), (1, 'lpName')) + +#def MapViewOfFile(hFileMappingObject, dwDesiredAccess, dwFileOffsetHigh, dwFileOffsetLow, dwNumberOfBytesToMap): +# return MapViewOfFile.ctypes_function(hFileMappingObject, dwDesiredAccess, dwFileOffsetHigh, dwFileOffsetLow, dwNumberOfBytesToMap) +MapViewOfFilePrototype = WINFUNCTYPE(LPVOID, HANDLE, DWORD, DWORD, DWORD, SIZE_T) +MapViewOfFileParams = ((1, 'hFileMappingObject'), (1, 'dwDesiredAccess'), (1, 'dwFileOffsetHigh'), (1, 'dwFileOffsetLow'), (1, 'dwNumberOfBytesToMap')) + +#def GetLogicalDriveStringsA(nBufferLength, lpBuffer): +# return GetLogicalDriveStringsA.ctypes_function(nBufferLength, lpBuffer) +GetLogicalDriveStringsAPrototype = WINFUNCTYPE(DWORD, DWORD, LPCSTR) +GetLogicalDriveStringsAParams = ((1, 'nBufferLength'), (1, 'lpBuffer')) + +#def GetLogicalDriveStringsW(nBufferLength, lpBuffer): +# return GetLogicalDriveStringsW.ctypes_function(nBufferLength, lpBuffer) +GetLogicalDriveStringsWPrototype = WINFUNCTYPE(DWORD, DWORD, LPWSTR) +GetLogicalDriveStringsWParams = ((1, 'nBufferLength'), (1, 'lpBuffer')) + +#def GetVolumeInformationA(lpRootPathName, lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize): +# return GetVolumeInformationA.ctypes_function(lpRootPathName, lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize) +GetVolumeInformationAPrototype = WINFUNCTYPE(BOOL, LPCSTR, LPSTR, DWORD, LPDWORD, LPDWORD, LPDWORD, LPSTR, DWORD) +GetVolumeInformationAParams = ((1, 'lpRootPathName'), (1, 'lpVolumeNameBuffer'), (1, 'nVolumeNameSize'), (1, 'lpVolumeSerialNumber'), (1, 'lpMaximumComponentLength'), (1, 'lpFileSystemFlags'), (1, 'lpFileSystemNameBuffer'), (1, 'nFileSystemNameSize')) + +#def GetVolumeInformationW(lpRootPathName, lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize): +# return GetVolumeInformationW.ctypes_function(lpRootPathName, lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize) +GetVolumeInformationWPrototype = WINFUNCTYPE(BOOL, LPWSTR, LPWSTR, DWORD, LPDWORD, LPDWORD, LPDWORD, LPWSTR, DWORD) +GetVolumeInformationWParams = ((1, 'lpRootPathName'), (1, 'lpVolumeNameBuffer'), (1, 'nVolumeNameSize'), (1, 'lpVolumeSerialNumber'), (1, 'lpMaximumComponentLength'), (1, 'lpFileSystemFlags'), (1, 'lpFileSystemNameBuffer'), (1, 'nFileSystemNameSize')) + +#def GetVolumeNameForVolumeMountPointA(lpszVolumeMountPoint, lpszVolumeName, cchBufferLength): +# return GetVolumeNameForVolumeMountPointA.ctypes_function(lpszVolumeMountPoint, lpszVolumeName, cchBufferLength) +GetVolumeNameForVolumeMountPointAPrototype = WINFUNCTYPE(BOOL, LPCSTR, LPCSTR, DWORD) +GetVolumeNameForVolumeMountPointAParams = ((1, 'lpszVolumeMountPoint'), (1, 'lpszVolumeName'), (1, 'cchBufferLength')) + +#def GetVolumeNameForVolumeMountPointW(lpszVolumeMountPoint, lpszVolumeName, cchBufferLength): +# return GetVolumeNameForVolumeMountPointW.ctypes_function(lpszVolumeMountPoint, lpszVolumeName, cchBufferLength) +GetVolumeNameForVolumeMountPointWPrototype = WINFUNCTYPE(BOOL, LPWSTR, LPWSTR, DWORD) +GetVolumeNameForVolumeMountPointWParams = ((1, 'lpszVolumeMountPoint'), (1, 'lpszVolumeName'), (1, 'cchBufferLength')) + +#def GetDriveTypeA(lpRootPathName): +# return GetDriveTypeA.ctypes_function(lpRootPathName) +GetDriveTypeAPrototype = WINFUNCTYPE(UINT, LPCSTR) +GetDriveTypeAParams = ((1, 'lpRootPathName'),) + +#def GetDriveTypeW(lpRootPathName): +# return GetDriveTypeW.ctypes_function(lpRootPathName) +GetDriveTypeWPrototype = WINFUNCTYPE(UINT, LPWSTR) +GetDriveTypeWParams = ((1, 'lpRootPathName'),) + +#def QueryDosDeviceA(lpDeviceName, lpTargetPath, ucchMax): +# return QueryDosDeviceA.ctypes_function(lpDeviceName, lpTargetPath, ucchMax) +QueryDosDeviceAPrototype = WINFUNCTYPE(DWORD, LPCSTR, LPCSTR, DWORD) +QueryDosDeviceAParams = ((1, 'lpDeviceName'), (1, 'lpTargetPath'), (1, 'ucchMax')) + +#def QueryDosDeviceW(lpDeviceName, lpTargetPath, ucchMax): +# return QueryDosDeviceW.ctypes_function(lpDeviceName, lpTargetPath, ucchMax) +QueryDosDeviceWPrototype = WINFUNCTYPE(DWORD, LPWSTR, LPWSTR, DWORD) +QueryDosDeviceWParams = ((1, 'lpDeviceName'), (1, 'lpTargetPath'), (1, 'ucchMax')) + +#def FindFirstVolumeA(lpszVolumeName, cchBufferLength): +# return FindFirstVolumeA.ctypes_function(lpszVolumeName, cchBufferLength) +FindFirstVolumeAPrototype = WINFUNCTYPE(HANDLE, LPCSTR, DWORD) +FindFirstVolumeAParams = ((1, 'lpszVolumeName'), (1, 'cchBufferLength')) + +#def FindFirstVolumeW(lpszVolumeName, cchBufferLength): +# return FindFirstVolumeW.ctypes_function(lpszVolumeName, cchBufferLength) +FindFirstVolumeWPrototype = WINFUNCTYPE(HANDLE, LPWSTR, DWORD) +FindFirstVolumeWParams = ((1, 'lpszVolumeName'), (1, 'cchBufferLength')) + +#def FindNextVolumeA(hFindVolume, lpszVolumeName, cchBufferLength): +# return FindNextVolumeA.ctypes_function(hFindVolume, lpszVolumeName, cchBufferLength) +FindNextVolumeAPrototype = WINFUNCTYPE(BOOL, HANDLE, LPCSTR, DWORD) +FindNextVolumeAParams = ((1, 'hFindVolume'), (1, 'lpszVolumeName'), (1, 'cchBufferLength')) + +#def FindNextVolumeW(hFindVolume, lpszVolumeName, cchBufferLength): +# return FindNextVolumeW.ctypes_function(hFindVolume, lpszVolumeName, cchBufferLength) +FindNextVolumeWPrototype = WINFUNCTYPE(BOOL, HANDLE, LPWSTR, DWORD) +FindNextVolumeWParams = ((1, 'hFindVolume'), (1, 'lpszVolumeName'), (1, 'cchBufferLength')) + +#def DuplicateHandle(hSourceProcessHandle, hSourceHandle, hTargetProcessHandle, lpTargetHandle, dwDesiredAccess, bInheritHandle, dwOptions): +# return DuplicateHandle.ctypes_function(hSourceProcessHandle, hSourceHandle, hTargetProcessHandle, lpTargetHandle, dwDesiredAccess, bInheritHandle, dwOptions) +DuplicateHandlePrototype = WINFUNCTYPE(BOOL, HANDLE, HANDLE, HANDLE, LPHANDLE, DWORD, BOOL, DWORD) +DuplicateHandleParams = ((1, 'hSourceProcessHandle'), (1, 'hSourceHandle'), (1, 'hTargetProcessHandle'), (1, 'lpTargetHandle'), (1, 'dwDesiredAccess'), (1, 'bInheritHandle'), (1, 'dwOptions')) + +#def ZwDuplicateObject(SourceProcessHandle, SourceHandle, TargetProcessHandle, TargetHandle, DesiredAccess, HandleAttributes, Options): +# return ZwDuplicateObject.ctypes_function(SourceProcessHandle, SourceHandle, TargetProcessHandle, TargetHandle, DesiredAccess, HandleAttributes, Options) +ZwDuplicateObjectPrototype = WINFUNCTYPE(NTSTATUS, HANDLE, HANDLE, HANDLE, PHANDLE, ACCESS_MASK, ULONG, ULONG) +ZwDuplicateObjectParams = ((1, 'SourceProcessHandle'), (1, 'SourceHandle'), (1, 'TargetProcessHandle'), (1, 'TargetHandle'), (1, 'DesiredAccess'), (1, 'HandleAttributes'), (1, 'Options')) + +#def GetModuleBaseNameA(hProcess, hModule, lpBaseName, nSize): +# return GetModuleBaseNameA.ctypes_function(hProcess, hModule, lpBaseName, nSize) +GetModuleBaseNameAPrototype = WINFUNCTYPE(DWORD, HANDLE, HMODULE, LPCSTR, DWORD) +GetModuleBaseNameAParams = ((1, 'hProcess'), (1, 'hModule'), (1, 'lpBaseName'), (1, 'nSize')) + +#def GetModuleBaseNameW(hProcess, hModule, lpBaseName, nSize): +# return GetModuleBaseNameW.ctypes_function(hProcess, hModule, lpBaseName, nSize) +GetModuleBaseNameWPrototype = WINFUNCTYPE(DWORD, HANDLE, HMODULE, LPWSTR, DWORD) +GetModuleBaseNameWParams = ((1, 'hProcess'), (1, 'hModule'), (1, 'lpBaseName'), (1, 'nSize')) + +#def GetProcessImageFileNameA(hProcess, lpImageFileName, nSize): +# return GetProcessImageFileNameA.ctypes_function(hProcess, lpImageFileName, nSize) +GetProcessImageFileNameAPrototype = WINFUNCTYPE(DWORD, HANDLE, LPCSTR, DWORD) +GetProcessImageFileNameAParams = ((1, 'hProcess'), (1, 'lpImageFileName'), (1, 'nSize')) + +#def GetProcessImageFileNameW(hProcess, lpImageFileName, nSize): +# return GetProcessImageFileNameW.ctypes_function(hProcess, lpImageFileName, nSize) +GetProcessImageFileNameWPrototype = WINFUNCTYPE(DWORD, HANDLE, LPWSTR, DWORD) +GetProcessImageFileNameWParams = ((1, 'hProcess'), (1, 'lpImageFileName'), (1, 'nSize')) + +#def GetSystemMetrics(nIndex): +# return GetSystemMetrics.ctypes_function(nIndex) +GetSystemMetricsPrototype = WINFUNCTYPE(INT, INT) +GetSystemMetricsParams = ((1, 'nIndex'),) + +#def GetInterfaceInfo(pIfTable, dwOutBufLen): +# return GetInterfaceInfo.ctypes_function(pIfTable, dwOutBufLen) +GetInterfaceInfoPrototype = WINFUNCTYPE(DWORD, PIP_INTERFACE_INFO, PULONG) +GetInterfaceInfoParams = ((1, 'pIfTable'), (1, 'dwOutBufLen')) + +#def GetIfTable(pIfTable, pdwSize, bOrder): +# return GetIfTable.ctypes_function(pIfTable, pdwSize, bOrder) +GetIfTablePrototype = WINFUNCTYPE(DWORD, PMIB_IFTABLE, PULONG, BOOL) +GetIfTableParams = ((1, 'pIfTable'), (1, 'pdwSize'), (1, 'bOrder')) + +#def GetIpAddrTable(pIpAddrTable, pdwSize, bOrder): +# return GetIpAddrTable.ctypes_function(pIpAddrTable, pdwSize, bOrder) +GetIpAddrTablePrototype = WINFUNCTYPE(DWORD, PMIB_IPADDRTABLE, PULONG, BOOL) +GetIpAddrTableParams = ((1, 'pIpAddrTable'), (1, 'pdwSize'), (1, 'bOrder')) + +#def GetProcessTimes(hProcess, lpCreationTime, lpExitTime, lpKernelTime, lpUserTime): +# return GetProcessTimes.ctypes_function(hProcess, lpCreationTime, lpExitTime, lpKernelTime, lpUserTime) +GetProcessTimesPrototype = WINFUNCTYPE(BOOL, HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME) +GetProcessTimesParams = ((1, 'hProcess'), (1, 'lpCreationTime'), (1, 'lpExitTime'), (1, 'lpKernelTime'), (1, 'lpUserTime')) + +#def GetShortPathNameA(lpszLongPath, lpszShortPath, cchBuffer): +# return GetShortPathNameA.ctypes_function(lpszLongPath, lpszShortPath, cchBuffer) +GetShortPathNameAPrototype = WINFUNCTYPE(DWORD, LPCSTR, LPCSTR, DWORD) +GetShortPathNameAParams = ((1, 'lpszLongPath'), (1, 'lpszShortPath'), (1, 'cchBuffer')) + +#def GetShortPathNameW(lpszLongPath, lpszShortPath, cchBuffer): +# return GetShortPathNameW.ctypes_function(lpszLongPath, lpszShortPath, cchBuffer) +GetShortPathNameWPrototype = WINFUNCTYPE(DWORD, LPWSTR, LPWSTR, DWORD) +GetShortPathNameWParams = ((1, 'lpszLongPath'), (1, 'lpszShortPath'), (1, 'cchBuffer')) + +#def GetLongPathNameA(lpszShortPath, lpszLongPath, cchBuffer): +# return GetLongPathNameA.ctypes_function(lpszShortPath, lpszLongPath, cchBuffer) +GetLongPathNameAPrototype = WINFUNCTYPE(DWORD, LPCSTR, LPCSTR, DWORD) +GetLongPathNameAParams = ((1, 'lpszShortPath'), (1, 'lpszLongPath'), (1, 'cchBuffer')) + +#def GetLongPathNameW(lpszShortPath, lpszLongPath, cchBuffer): +# return GetLongPathNameW.ctypes_function(lpszShortPath, lpszLongPath, cchBuffer) +GetLongPathNameWPrototype = WINFUNCTYPE(DWORD, LPWSTR, LPWSTR, DWORD) +GetLongPathNameWParams = ((1, 'lpszShortPath'), (1, 'lpszLongPath'), (1, 'cchBuffer')) + +#def GetProcessDEPPolicy(hProcess, lpFlags, lpPermanent): +# return GetProcessDEPPolicy.ctypes_function(hProcess, lpFlags, lpPermanent) +GetProcessDEPPolicyPrototype = WINFUNCTYPE(BOOL, HANDLE, LPDWORD, PBOOL) +GetProcessDEPPolicyParams = ((1, 'hProcess'), (1, 'lpFlags'), (1, 'lpPermanent')) + +#def ConvertStringSidToSidA(StringSid, Sid): +# return ConvertStringSidToSidA.ctypes_function(StringSid, Sid) +ConvertStringSidToSidAPrototype = WINFUNCTYPE(BOOL, LPCSTR, POINTER(PSID)) +ConvertStringSidToSidAParams = ((1, 'StringSid'), (1, 'Sid')) + +#def ConvertStringSidToSidW(StringSid, Sid): +# return ConvertStringSidToSidW.ctypes_function(StringSid, Sid) +ConvertStringSidToSidWPrototype = WINFUNCTYPE(BOOL, LPWSTR, POINTER(PSID)) +ConvertStringSidToSidWParams = ((1, 'StringSid'), (1, 'Sid')) + +#def ConvertSidToStringSidA(Sid, StringSid): +# return ConvertSidToStringSidA.ctypes_function(Sid, StringSid) +ConvertSidToStringSidAPrototype = WINFUNCTYPE(BOOL, PSID, POINTER(LPCSTR)) +ConvertSidToStringSidAParams = ((1, 'Sid'), (1, 'StringSid')) + +#def ConvertSidToStringSidW(Sid, StringSid): +# return ConvertSidToStringSidW.ctypes_function(Sid, StringSid) +ConvertSidToStringSidWPrototype = WINFUNCTYPE(BOOL, PSID, POINTER(LPWSTR)) +ConvertSidToStringSidWParams = ((1, 'Sid'), (1, 'StringSid')) + +#def LocalFree(hMem): +# return LocalFree.ctypes_function(hMem) +LocalFreePrototype = WINFUNCTYPE(HLOCAL, HLOCAL) +LocalFreeParams = ((1, 'hMem'),) + +#def InitializeProcThreadAttributeList(lpAttributeList, dwAttributeCount, dwFlags, lpSize): +# return InitializeProcThreadAttributeList.ctypes_function(lpAttributeList, dwAttributeCount, dwFlags, lpSize) +InitializeProcThreadAttributeListPrototype = WINFUNCTYPE(BOOL, LPPROC_THREAD_ATTRIBUTE_LIST, DWORD, DWORD, PSIZE_T) +InitializeProcThreadAttributeListParams = ((1, 'lpAttributeList'), (1, 'dwAttributeCount'), (1, 'dwFlags'), (1, 'lpSize')) + +#def UpdateProcThreadAttribute(lpAttributeList, dwFlags, Attribute, lpValue, cbSize, lpPreviousValue, lpReturnSize): +# return UpdateProcThreadAttribute.ctypes_function(lpAttributeList, dwFlags, Attribute, lpValue, cbSize, lpPreviousValue, lpReturnSize) +UpdateProcThreadAttributePrototype = WINFUNCTYPE(BOOL, LPPROC_THREAD_ATTRIBUTE_LIST, DWORD, DWORD_PTR, PVOID, SIZE_T, PVOID, PSIZE_T) +UpdateProcThreadAttributeParams = ((1, 'lpAttributeList'), (1, 'dwFlags'), (1, 'Attribute'), (1, 'lpValue'), (1, 'cbSize'), (1, 'lpPreviousValue'), (1, 'lpReturnSize')) + +#def DeleteProcThreadAttributeList(lpAttributeList): +# return DeleteProcThreadAttributeList.ctypes_function(lpAttributeList) +DeleteProcThreadAttributeListPrototype = WINFUNCTYPE(VOID, LPPROC_THREAD_ATTRIBUTE_LIST) +DeleteProcThreadAttributeListParams = ((1, 'lpAttributeList'),) + +#def MessageBoxA(hWnd, lpText, lpCaption, uType): +# return MessageBoxA.ctypes_function(hWnd, lpText, lpCaption, uType) +MessageBoxAPrototype = WINFUNCTYPE(INT, HWND, LPCSTR, LPCSTR, UINT) +MessageBoxAParams = ((1, 'hWnd'), (1, 'lpText'), (1, 'lpCaption'), (1, 'uType')) + +#def MessageBoxW(hWnd, lpText, lpCaption, uType): +# return MessageBoxW.ctypes_function(hWnd, lpText, lpCaption, uType) +MessageBoxWPrototype = WINFUNCTYPE(INT, HWND, LPWSTR, LPWSTR, UINT) +MessageBoxWParams = ((1, 'hWnd'), (1, 'lpText'), (1, 'lpCaption'), (1, 'uType')) + +#def GetWindowsDirectoryA(lpBuffer, uSize): +# return GetWindowsDirectoryA.ctypes_function(lpBuffer, uSize) +GetWindowsDirectoryAPrototype = WINFUNCTYPE(UINT, LPCSTR, UINT) +GetWindowsDirectoryAParams = ((1, 'lpBuffer'), (1, 'uSize')) + +#def GetWindowsDirectoryW(lpBuffer, uSize): +# return GetWindowsDirectoryW.ctypes_function(lpBuffer, uSize) +GetWindowsDirectoryWPrototype = WINFUNCTYPE(UINT, LPWSTR, UINT) +GetWindowsDirectoryWParams = ((1, 'lpBuffer'), (1, 'uSize')) + +#def RtlGetUnloadEventTraceEx(ElementSize, ElementCount, EventTrace): +# return RtlGetUnloadEventTraceEx.ctypes_function(ElementSize, ElementCount, EventTrace) +RtlGetUnloadEventTraceExPrototype = WINFUNCTYPE(VOID, POINTER(PULONG), POINTER(PULONG), POINTER(PVOID)) +RtlGetUnloadEventTraceExParams = ((1, 'ElementSize'), (1, 'ElementCount'), (1, 'EventTrace')) + +#def RtlDosPathNameToNtPathName_U(DosName, NtName, PartName, RelativeName): +# return RtlDosPathNameToNtPathName_U.ctypes_function(DosName, NtName, PartName, RelativeName) +RtlDosPathNameToNtPathName_UPrototype = WINFUNCTYPE(BOOLEAN, PCWSTR, PUNICODE_STRING, POINTER(PCWSTR), PRTL_RELATIVE_NAME_U) +RtlDosPathNameToNtPathName_UParams = ((1, 'DosName'), (1, 'NtName'), (1, 'PartName'), (1, 'RelativeName')) + +#def ApiSetResolveToHost(Schema, FileNameIn, ParentName, Resolved, HostBinary): +# return ApiSetResolveToHost.ctypes_function(Schema, FileNameIn, ParentName, Resolved, HostBinary) +ApiSetResolveToHostPrototype = WINFUNCTYPE(NTSTATUS, PVOID, PUNICODE_STRING, PUNICODE_STRING, PBOOLEAN, PUNICODE_STRING) +ApiSetResolveToHostParams = ((1, 'Schema'), (1, 'FileNameIn'), (1, 'ParentName'), (1, 'Resolved'), (1, 'HostBinary')) + +#def Sleep(dwMilliseconds): +# return Sleep.ctypes_function(dwMilliseconds) +SleepPrototype = WINFUNCTYPE(VOID, DWORD) +SleepParams = ((1, 'dwMilliseconds'),) + +#def SleepEx(dwMilliseconds, bAlertable): +# return SleepEx.ctypes_function(dwMilliseconds, bAlertable) +SleepExPrototype = WINFUNCTYPE(DWORD, DWORD, BOOL) +SleepExParams = ((1, 'dwMilliseconds'), (1, 'bAlertable')) + +#def GetProcessMitigationPolicy(hProcess, MitigationPolicy, lpBuffer, dwLength): +# return GetProcessMitigationPolicy.ctypes_function(hProcess, MitigationPolicy, lpBuffer, dwLength) +GetProcessMitigationPolicyPrototype = WINFUNCTYPE(BOOL, HANDLE, PROCESS_MITIGATION_POLICY, PVOID, SIZE_T) +GetProcessMitigationPolicyParams = ((1, 'hProcess'), (1, 'MitigationPolicy'), (1, 'lpBuffer'), (1, 'dwLength')) + +#def SetProcessMitigationPolicy(MitigationPolicy, lpBuffer, dwLength): +# return SetProcessMitigationPolicy.ctypes_function(MitigationPolicy, lpBuffer, dwLength) +SetProcessMitigationPolicyPrototype = WINFUNCTYPE(BOOL, PROCESS_MITIGATION_POLICY, PVOID, SIZE_T) +SetProcessMitigationPolicyParams = ((1, 'MitigationPolicy'), (1, 'lpBuffer'), (1, 'dwLength')) + +#def GetProductInfo(dwOSMajorVersion, dwOSMinorVersion, dwSpMajorVersion, dwSpMinorVersion, pdwReturnedProductType): +# return GetProductInfo.ctypes_function(dwOSMajorVersion, dwOSMinorVersion, dwSpMajorVersion, dwSpMinorVersion, pdwReturnedProductType) +GetProductInfoPrototype = WINFUNCTYPE(BOOL, DWORD, DWORD, DWORD, DWORD, PDWORD) +GetProductInfoParams = ((1, 'dwOSMajorVersion'), (1, 'dwOSMinorVersion'), (1, 'dwSpMajorVersion'), (1, 'dwSpMinorVersion'), (1, 'pdwReturnedProductType')) + +#def GetProcessMemoryInfo(Process, ppsmemCounters, cb): +# return GetProcessMemoryInfo.ctypes_function(Process, ppsmemCounters, cb) +GetProcessMemoryInfoPrototype = WINFUNCTYPE(BOOL, HANDLE, PPROCESS_MEMORY_COUNTERS, DWORD) +GetProcessMemoryInfoParams = ((1, 'Process'), (1, 'ppsmemCounters'), (1, 'cb')) + +#def GetModuleHandleA(lpModuleName): +# return GetModuleHandleA.ctypes_function(lpModuleName) +GetModuleHandleAPrototype = WINFUNCTYPE(HMODULE, LPCSTR) +GetModuleHandleAParams = ((1, 'lpModuleName'),) + +#def GetModuleHandleW(lpModuleName): +# return GetModuleHandleW.ctypes_function(lpModuleName) +GetModuleHandleWPrototype = WINFUNCTYPE(HMODULE, LPWSTR) +GetModuleHandleWParams = ((1, 'lpModuleName'),) + +#def RtlEqualUnicodeString(String1, String2, CaseInSensitive): +# return RtlEqualUnicodeString.ctypes_function(String1, String2, CaseInSensitive) +RtlEqualUnicodeStringPrototype = WINFUNCTYPE(BOOLEAN, PUNICODE_STRING, PUNICODE_STRING, BOOLEAN) +RtlEqualUnicodeStringParams = ((1, 'String1'), (1, 'String2'), (1, 'CaseInSensitive')) + +#def GetFirmwareEnvironmentVariableA(lpName, lpGuid, pBuffer, nSize): +# return GetFirmwareEnvironmentVariableA.ctypes_function(lpName, lpGuid, pBuffer, nSize) +GetFirmwareEnvironmentVariableAPrototype = WINFUNCTYPE(DWORD, LPCSTR, LPCSTR, PVOID, DWORD) +GetFirmwareEnvironmentVariableAParams = ((1, 'lpName'), (1, 'lpGuid'), (1, 'pBuffer'), (1, 'nSize')) + +#def GetFirmwareEnvironmentVariableW(lpName, lpGuid, pBuffer, nSize): +# return GetFirmwareEnvironmentVariableW.ctypes_function(lpName, lpGuid, pBuffer, nSize) +GetFirmwareEnvironmentVariableWPrototype = WINFUNCTYPE(DWORD, LPCWSTR, LPCWSTR, PVOID, DWORD) +GetFirmwareEnvironmentVariableWParams = ((1, 'lpName'), (1, 'lpGuid'), (1, 'pBuffer'), (1, 'nSize')) + +#def GetFirmwareEnvironmentVariableExA(lpName, lpGuid, pBuffer, nSize, pdwAttribubutes): +# return GetFirmwareEnvironmentVariableExA.ctypes_function(lpName, lpGuid, pBuffer, nSize, pdwAttribubutes) +GetFirmwareEnvironmentVariableExAPrototype = WINFUNCTYPE(DWORD, LPCSTR, LPCSTR, PVOID, DWORD, PDWORD) +GetFirmwareEnvironmentVariableExAParams = ((1, 'lpName'), (1, 'lpGuid'), (1, 'pBuffer'), (1, 'nSize'), (1, 'pdwAttribubutes')) + +#def GetFirmwareEnvironmentVariableExW(lpName, lpGuid, pBuffer, nSize, pdwAttribubutes): +# return GetFirmwareEnvironmentVariableExW.ctypes_function(lpName, lpGuid, pBuffer, nSize, pdwAttribubutes) +GetFirmwareEnvironmentVariableExWPrototype = WINFUNCTYPE(DWORD, LPCWSTR, LPCWSTR, PVOID, DWORD, PDWORD) +GetFirmwareEnvironmentVariableExWParams = ((1, 'lpName'), (1, 'lpGuid'), (1, 'pBuffer'), (1, 'nSize'), (1, 'pdwAttribubutes')) + +#def IsDebuggerPresent(): +# return IsDebuggerPresent.ctypes_function() +IsDebuggerPresentPrototype = WINFUNCTYPE(BOOL) +IsDebuggerPresentParams = () + +#def WSAStartup(wVersionRequested, lpWSAData): +# return WSAStartup.ctypes_function(wVersionRequested, lpWSAData) +WSAStartupPrototype = WINFUNCTYPE(INT, WORD, LPWSADATA) +WSAStartupParams = ((1, 'wVersionRequested'), (1, 'lpWSAData')) + +#def WSACleanup(): +# return WSACleanup.ctypes_function() +WSACleanupPrototype = WINFUNCTYPE(INT) +WSACleanupParams = () + +#def WSAGetLastError(): +# return WSAGetLastError.ctypes_function() +WSAGetLastErrorPrototype = WINFUNCTYPE(INT) +WSAGetLastErrorParams = () + +#def getaddrinfo(pNodeName, pServiceName, pHints, ppResult): +# return getaddrinfo.ctypes_function(pNodeName, pServiceName, pHints, ppResult) +getaddrinfoPrototype = WINFUNCTYPE(INT, PCSTR, PCSTR, POINTER(ADDRINFOA), POINTER(PADDRINFOA)) +getaddrinfoParams = ((1, 'pNodeName'), (1, 'pServiceName'), (1, 'pHints'), (1, 'ppResult')) + +#def GetAddrInfoW(pNodeName, pServiceName, pHints, ppResult): +# return GetAddrInfoW.ctypes_function(pNodeName, pServiceName, pHints, ppResult) +GetAddrInfoWPrototype = WINFUNCTYPE(INT, PCWSTR, PCWSTR, POINTER(ADDRINFOW), POINTER(PADDRINFOW)) +GetAddrInfoWParams = ((1, 'pNodeName'), (1, 'pServiceName'), (1, 'pHints'), (1, 'ppResult')) + +#def WSASocketA(af, type, protocol, lpProtocolInfo, g, dwFlags): +# return WSASocketA.ctypes_function(af, type, protocol, lpProtocolInfo, g, dwFlags) +WSASocketAPrototype = WINFUNCTYPE(SOCKET, INT, INT, INT, LPWSAPROTOCOL_INFOA, GROUP, DWORD) +WSASocketAParams = ((1, 'af'), (1, 'type'), (1, 'protocol'), (1, 'lpProtocolInfo'), (1, 'g'), (1, 'dwFlags')) + +#def WSASocketW(af, type, protocol, lpProtocolInfo, g, dwFlags): +# return WSASocketW.ctypes_function(af, type, protocol, lpProtocolInfo, g, dwFlags) +WSASocketWPrototype = WINFUNCTYPE(SOCKET, INT, INT, INT, LPWSAPROTOCOL_INFOW, GROUP, DWORD) +WSASocketWParams = ((1, 'af'), (1, 'type'), (1, 'protocol'), (1, 'lpProtocolInfo'), (1, 'g'), (1, 'dwFlags')) + +#def socket(af, type, protocol): +# return socket.ctypes_function(af, type, protocol) +socketPrototype = WINFUNCTYPE(SOCKET, INT, INT, INT) +socketParams = ((1, 'af'), (1, 'type'), (1, 'protocol')) + +#def connect(s, name, namelen): +# return connect.ctypes_function(s, name, namelen) +connectPrototype = WINFUNCTYPE(INT, SOCKET, POINTER(sockaddr), INT) +connectParams = ((1, 's'), (1, 'name'), (1, 'namelen')) + +#def send(s, buf, len, flags): +# return send.ctypes_function(s, buf, len, flags) +sendPrototype = WINFUNCTYPE(INT, SOCKET, POINTER(CHAR), INT, INT) +sendParams = ((1, 's'), (1, 'buf'), (1, 'len'), (1, 'flags')) + +#def recv(s, buf, len, flags): +# return recv.ctypes_function(s, buf, len, flags) +recvPrototype = WINFUNCTYPE(INT, SOCKET, POINTER(CHAR), INT, INT) +recvParams = ((1, 's'), (1, 'buf'), (1, 'len'), (1, 'flags')) + +#def shutdown(s, how): +# return shutdown.ctypes_function(s, how) +shutdownPrototype = WINFUNCTYPE(INT, SOCKET, INT) +shutdownParams = ((1, 's'), (1, 'how')) + +#def closesocket(s): +# return closesocket.ctypes_function(s) +closesocketPrototype = WINFUNCTYPE(INT, SOCKET) +closesocketParams = ((1, 's'),) + diff --git a/pythonmemorymodule/windows/generated_def/winstructs.py b/pythonmemorymodule/windows/generated_def/winstructs.py new file mode 100644 index 0000000..beb195d --- /dev/null +++ b/pythonmemorymodule/windows/generated_def/winstructs.py @@ -0,0 +1,11424 @@ +from .windef import * +import windows # Allow extended-struct to use windows/winproxy/... +from ctypes import * +from ctypes.wintypes import * + +from .flag import Flag, FlagMapper, FlagExatractor + +class EnumValue(Flag): + def __new__(cls, enum_name, name, value): + return super(EnumValue, cls).__new__(cls, name, value) + + def __init__(self, enum_name, name, value): + self.enum_name = enum_name + self.name = name + + def __repr__(self): + return "{0}.{1}({2})".format(self.enum_name, self.name, hex(self)) + + # Fix pickling with protocol 2 + def __getnewargs__(self, *args): + return self.enum_name, self.name, int(self) + +# Bypass bug https://bugs.python.org/issue29270 + +super_noissue = super + +class EnumType(DWORD): + values = () + mapper = {} + + @property + def value(self): + raw_value = super_noissue(EnumType, self).value + return self.mapper.get(raw_value, raw_value) + + def __repr__(self): + raw_value = super_noissue(EnumType, self).value + if raw_value in self.values: + value = self.value + return "<{0} {1}({2})>".format(type(self).__name__, value.name, hex(raw_value)) + return "<{0}({1})>".format(type(self).__name__, hex(self.value)) + +# Sale: windef is hardcoded +from . import windef +SZOID_MAPPER = FlagMapper(*(getattr(windef, x) for x in dir(windef) if x.startswith("szOID"))) +class _CRYPTPROTECT_PROMPTSTRUCT(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("dwPromptFlags", DWORD), + ("hwndApp", HWND), + ("szPrompt", LPCWSTR), + ] +CRYPTPROTECT_PROMPTSTRUCT = _CRYPTPROTECT_PROMPTSTRUCT +PCRYPTPROTECT_PROMPTSTRUCT = POINTER(_CRYPTPROTECT_PROMPTSTRUCT) + +VOID = DWORD +BYTE = c_ubyte +PWSTR = LPWSTR +PCWSTR = LPWSTR +SIZE_T = c_size_t +PSIZE_T = POINTER(SIZE_T) +PVOID = c_void_p +NTSTATUS = DWORD +TDHSTATUS = ULONG +DNS_STATUS = ULONG +LSTATUS = LONG#Registryfunctionsreturnvalue|typedef_Return_type_success_(return==ERROR_SUCCESS)LONGLSTATUS; +SECURITY_INFORMATION = DWORD +PSECURITY_INFORMATION = POINTER(SECURITY_INFORMATION) +PULONG = POINTER(ULONG) +PDWORD = POINTER(DWORD) +LPDWORD = POINTER(DWORD) +LPBYTE = POINTER(BYTE) +ULONG_PTR = PVOID +LONG_PTR = PVOID +DWORD_PTR = ULONG_PTR +PDWORD_PTR = POINTER(DWORD_PTR) +KAFFINITY = ULONG_PTR +KPRIORITY = LONG +INTERNET_PORT = WORD +CHAR = c_char +PCHAR = POINTER(CHAR) +UCHAR = c_char +CSHORT = c_short +VARTYPE = c_ushort +PUSHORT = POINTER(USHORT) +PBOOL = POINTER(BOOL) +LPBOOL = PBOOL +PSTR = LPSTR +PCSTR = LPSTR +va_list = c_char_p +LPCH = c_char_p +LPWCH = c_wchar +BSTR = c_wchar_p +OLECHAR = c_wchar +POLECHAR = c_wchar_p +PZZWSTR = c_wchar_p +PUCHAR = POINTER(UCHAR) +double = c_double +DATE = double +ULONGLONG = c_ulonglong +PULONGLONG = POINTER(ULONGLONG) +LONGLONG = c_longlong +ULONG64 = c_ulonglong +UINT64 = ULONG64 +LONG64 = c_longlong +PLARGE_INTEGER = POINTER(LARGE_INTEGER) +DWORD64 = ULONG64 +PDWORD64 = POINTER(DWORD64) +DWORDLONG = ULONGLONG +SCODE = LONG +CIMTYPE = LONG +NET_IFINDEX = ULONG +IF_INDEX = NET_IFINDEX +IFTYPE = ULONG +PLONG64 = POINTER(LONG64) +PULONG64 = POINTER(ULONG64) +PBYTE = POINTER(BYTE) +PUINT = POINTER(UINT) +PHKEY = POINTER(HKEY) +ACCESS_MASK = DWORD +REGSAM = ACCESS_MASK +PBOOLEAN = POINTER(BOOLEAN) +SECURITY_CONTEXT_TRACKING_MODE = BOOLEAN +HCRYPTPROV_LEGACY = PULONG +HCRYPTKEY = PULONG +HCRYPTPROV = PULONG +HCRYPTHASH = PULONG +ALG_ID = UINT +DISPID = LONG +MEMBERID = DISPID +LRESULT = LONG_PTR +LPUNKNOWN = POINTER(PVOID) +LPPOINT = POINTER(POINT) +LPRECT = POINTER(RECT) +SPC_UUID = BYTE*16 +DEVICE_TYPE = DWORD +PWINDBG_EXTENSION_APIS32 = PVOID +PWINDBG_EXTENSION_APIS64 = PVOID +FILEOP_FLAGS = WORD +NET_API_STATUS = DWORD +NCRYPT_HANDLE = ULONG_PTR +NCRYPT_PROV_HANDLE = ULONG_PTR +NCRYPT_KEY_HANDLE = ULONG_PTR +NCRYPT_HASH_HANDLE = ULONG_PTR +NCRYPT_SECRET_HANDLE = ULONG_PTR +TRACEHANDLE = ULONG64 +PTRACEHANDLE = POINTER(TRACEHANDLE) +PIMAGEHLP_CONTEXT = PVOID +INT8 = c_byte +INT16 = SHORT +INT32 = INT +INT64 = LONGLONG +UINT8 = BYTE +UINT16 = USHORT +UINT32 = UINT +UINT64 = ULONGLONG +ULONG32 = UINT32 +LONG32 = INT32 +PHANDLE = POINTER(HANDLE) +HCATADMIN = HANDLE +HCATINFO = HANDLE +HCERTCHAINENGINE = HANDLE +LPHANDLE = POINTER(HANDLE) +ALPC_HANDLE = HANDLE +PALPC_HANDLE = POINTER(ALPC_HANDLE) +HCURSOR = HANDLE +HBRUSH = HANDLE +HCRYPTPROV_OR_NCRYPT_KEY_HANDLE = PULONG +EVT_HANDLE = HANDLE +EVT_OBJECT_ARRAY_PROPERTY_HANDLE = HANDLE +LSA_HANDLE = HANDLE +PLSA_HANDLE = POINTER(LSA_HANDLE) +HDSKSPC = HANDLE +HDEVINFO = HANDLE +HINTERNET = PVOID +IP4_ADDRESS = DWORD +PSECURITY_DESCRIPTOR = PVOID +SECURITY_DESCRIPTOR_CONTROL = WORD +PSECURITY_DESCRIPTOR_CONTROL = POINTER(SECURITY_DESCRIPTOR_CONTROL) +ACCESS_MASK = DWORD +PACCESS_MASK = POINTER(ACCESS_MASK) +SECURITY_INFORMATION = DWORD +PSECURITY_INFORMATION = POINTER(SECURITY_INFORMATION) +PSECURITY_ATTRIBUTES_OPAQUE = PVOID +SID_HASH_ENTRY = ULONG_PTR +PSID_HASH_ENTRY = POINTER(SID_HASH_ENTRY) +PSID = PVOID +_INITIAL_PSID = PSID +class PSID(_INITIAL_PSID): # _INITIAL_PSID -> PVOID + + def __eq__(self, other): + return bool(windows.winproxy.EqualSid(self, other)) + + def __ne__(self, other): + return not windows.winproxy.EqualSid(self, other) + + @property + def size(self): + return windows.winproxy.GetLengthSid(self) + + def duplicate(self): + size = self.size + buffer = ctypes.c_buffer(size) + windows.winproxy.CopySid(size, buffer, self) + return ctypes.cast(buffer, type(self)) + + @classmethod + def from_string(cls, strsid): + self = cls() + if not isinstance(strsid, bytes): + strsid = strsid.encode("ascii") + # Pass to ConvertStringSidToSidW ? + windows.winproxy.ConvertStringSidToSidA(strsid, self) + return self + + def to_string(self): + sid_str = LPCSTR() + windows.winproxy.ConvertSidToStringSidA(self, sid_str) + result = sid_str.value.decode("ascii") # ConvertSidToStringSidW ? + windows.winproxy.LocalFree(sid_str) + return result + + __str__ = to_string + + def __repr__(self): + try: + return """<{0} "{1}">""".format(type(self).__name__, self.to_string()) + except WindowsError: # Case of PSID is not valide + if not self: + return """<{0} (NULL) at {1:#x}>""".format(type(self).__name__, id(self)) + return """<{0} "" at {1:#x}>""".format(type(self).__name__, id(self)) + + __sprint__ = __repr__ + +CONFIGRET = DWORD +DEVNODE = DWORD +DEVINST = DWORD +PDEVNODE = POINTER(DEVNODE) +PDEVINST = POINTER(DEVINST) +PRIORITY = ULONG +PPRIORITY = POINTER(PRIORITY) +RES_DES = DWORD_PTR +PRES_DES = POINTER(RES_DES) +HMACHINE = HANDLE +PHMACHINE = POINTER(HMACHINE) +LOG_CONF = DWORD_PTR +PLOG_CONF = POINTER(LOG_CONF) +RESOURCEID = ULONG +PRESOURCEID = POINTER(RESOURCEID) +DEVNODEID_A = PCSTR +DEVINSTID_A = PCSTR +DEVNODEID_W = LPWSTR +DEVINSTID_W = LPWSTR +RPCOLEDATAREP = ULONG +HREFTYPE = DWORD +SFGAOF = ULONG +GROUP = UINT +SOCKET = HANDLE +WNDPROC = PVOID +LPPROC_THREAD_ATTRIBUTE_LIST = PVOID +PPS_POST_PROCESS_INIT_ROUTINE = PVOID +LPTHREAD_START_ROUTINE = PVOID +WNDENUMPROC = PVOID +PHANDLER_ROUTINE = PVOID +FARPROC = PVOID +PIO_APC_ROUTINE = PVOID +PVECTORED_EXCEPTION_HANDLER = PVOID +PFN_CRYPT_GET_SIGNER_CERTIFICATE = PVOID +PSYM_ENUMERATESYMBOLS_CALLBACK = PVOID +PSYM_ENUMERATESYMBOLS_CALLBACKW = PVOID +PEVENT_CALLBACK = PVOID +PEVENT_TRACE_BUFFER_CALLBACKA = PVOID +PEVENT_TRACE_BUFFER_CALLBACKW = PVOID +PEVENT_RECORD_CALLBACK = PVOID +PFN_CRYPT_ENUM_OID_FUNC = PVOID +PGET_MODULE_BASE_ROUTINE64 = PVOID#StackWalk +PGET_MODULE_BASE_ROUTINE = PVOID#StackWalk +PREAD_PROCESS_MEMORY_ROUTINE = PVOID#StackWalk +PREAD_PROCESS_MEMORY_ROUTINE64 = PVOID#StackWalk +PFUNCTION_TABLE_ACCESS_ROUTINE = PVOID#StackWalk +PFUNCTION_TABLE_ACCESS_ROUTINE64 = PVOID#StackWalk +PTRANSLATE_ADDRESS_ROUTINE = PVOID#StackWalk +PTRANSLATE_ADDRESS_ROUTINE64 = PVOID#StackWalk +PSYMBOL_REGISTERED_CALLBACK64 = PVOID#Symbols +PSYMBOL_REGISTERED_CALLBACK = PVOID#Symbols +PSYM_ENUMPROCESSES_CALLBACK = PVOID#Symbols +ENUMRESNAMEPROCA = PVOID#Resources +ENUMRESNAMEPROCW = PVOID#Resources +ENUMRESTYPEPROCA = PVOID#Resources +ENUMRESTYPEPROCW = PVOID#Resources +LPSERVICE_MAIN_FUNCTIONA = PVOID +LPSERVICE_MAIN_FUNCTIONW = PVOID +LPOVERLAPPED_COMPLETION_ROUTINE = PVOID +PDNS_QUERY_COMPLETION_ROUTINE = PVOID +LPCONTEXT = PVOID +HCERTSTORE = PVOID +HCRYPTMSG = PVOID +PALPC_PORT_ATTRIBUTES = PVOID +PPORT_MESSAGE = PVOID +LPWSADATA = PVOID +FC_ZERO = EnumValue("NDR_FORMAT_CHARACTER", "FC_ZERO", 0x0) +FC_BYTE = EnumValue("NDR_FORMAT_CHARACTER", "FC_BYTE", 0x1) +FC_CHAR = EnumValue("NDR_FORMAT_CHARACTER", "FC_CHAR", 0x2) +FC_SMALL = EnumValue("NDR_FORMAT_CHARACTER", "FC_SMALL", 0x3) +FC_USMALL = EnumValue("NDR_FORMAT_CHARACTER", "FC_USMALL", 0x4) +FC_WCHAR = EnumValue("NDR_FORMAT_CHARACTER", "FC_WCHAR", 0x5) +FC_SHORT = EnumValue("NDR_FORMAT_CHARACTER", "FC_SHORT", 0x6) +FC_USHORT = EnumValue("NDR_FORMAT_CHARACTER", "FC_USHORT", 0x7) +FC_LONG = EnumValue("NDR_FORMAT_CHARACTER", "FC_LONG", 0x8) +FC_ULONG = EnumValue("NDR_FORMAT_CHARACTER", "FC_ULONG", 0x9) +FC_FLOAT = EnumValue("NDR_FORMAT_CHARACTER", "FC_FLOAT", 0xa) +FC_HYPER = EnumValue("NDR_FORMAT_CHARACTER", "FC_HYPER", 0xb) +FC_DOUBLE = EnumValue("NDR_FORMAT_CHARACTER", "FC_DOUBLE", 0xc) +FC_ENUM16 = EnumValue("NDR_FORMAT_CHARACTER", "FC_ENUM16", 0xd) +FC_ENUM32 = EnumValue("NDR_FORMAT_CHARACTER", "FC_ENUM32", 0xe) +FC_IGNORE = EnumValue("NDR_FORMAT_CHARACTER", "FC_IGNORE", 0xf) +FC_ERROR_STATUS_T = EnumValue("NDR_FORMAT_CHARACTER", "FC_ERROR_STATUS_T", 0x10) +FC_RP = EnumValue("NDR_FORMAT_CHARACTER", "FC_RP", 0x11) +FC_UP = EnumValue("NDR_FORMAT_CHARACTER", "FC_UP", 0x12) +FC_OP = EnumValue("NDR_FORMAT_CHARACTER", "FC_OP", 0x13) +FC_FP = EnumValue("NDR_FORMAT_CHARACTER", "FC_FP", 0x14) +FC_STRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCT", 0x15) +FC_PSTRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_PSTRUCT", 0x16) +FC_CSTRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_CSTRUCT", 0x17) +FC_CPSTRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_CPSTRUCT", 0x18) +FC_CVSTRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_CVSTRUCT", 0x19) +FC_BOGUS_STRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_BOGUS_STRUCT", 0x1a) +FC_CARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_CARRAY", 0x1b) +FC_CVARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_CVARRAY", 0x1c) +FC_SMFARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_SMFARRAY", 0x1d) +FC_LGFARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_LGFARRAY", 0x1e) +FC_SMVARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_SMVARRAY", 0x1f) +FC_LGVARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_LGVARRAY", 0x20) +FC_BOGUS_ARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_BOGUS_ARRAY", 0x21) +FC_C_CSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_C_CSTRING", 0x22) +FC_C_BSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_C_BSTRING", 0x23) +FC_C_SSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_C_SSTRING", 0x24) +FC_C_WSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_C_WSTRING", 0x25) +FC_CSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_CSTRING", 0x26) +FC_BSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_BSTRING", 0x27) +FC_SSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_SSTRING", 0x28) +FC_WSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_WSTRING", 0x29) +FC_ENCAPSULATED_UNION = EnumValue("NDR_FORMAT_CHARACTER", "FC_ENCAPSULATED_UNION", 0x2a) +FC_NON_ENCAPSULATED_UNION = EnumValue("NDR_FORMAT_CHARACTER", "FC_NON_ENCAPSULATED_UNION", 0x2b) +FC_BYTE_COUNT_POINTER = EnumValue("NDR_FORMAT_CHARACTER", "FC_BYTE_COUNT_POINTER", 0x2c) +FC_TRANSMIT_AS = EnumValue("NDR_FORMAT_CHARACTER", "FC_TRANSMIT_AS", 0x2d) +FC_REPRESENT_AS = EnumValue("NDR_FORMAT_CHARACTER", "FC_REPRESENT_AS", 0x2e) +FC_IP = EnumValue("NDR_FORMAT_CHARACTER", "FC_IP", 0x2f) +FC_BIND_CONTEXT = EnumValue("NDR_FORMAT_CHARACTER", "FC_BIND_CONTEXT", 0x30) +FC_BIND_GENERIC = EnumValue("NDR_FORMAT_CHARACTER", "FC_BIND_GENERIC", 0x31) +FC_BIND_PRIMITIVE = EnumValue("NDR_FORMAT_CHARACTER", "FC_BIND_PRIMITIVE", 0x32) +FC_AUTO_HANDLE = EnumValue("NDR_FORMAT_CHARACTER", "FC_AUTO_HANDLE", 0x33) +FC_CALLBACK_HANDLE = EnumValue("NDR_FORMAT_CHARACTER", "FC_CALLBACK_HANDLE", 0x34) +FC_UNUSED1 = EnumValue("NDR_FORMAT_CHARACTER", "FC_UNUSED1", 0x35) +FC_POINTER = EnumValue("NDR_FORMAT_CHARACTER", "FC_POINTER", 0x36) +FC_ALIGNM2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_ALIGNM2", 0x37) +FC_ALIGNM4 = EnumValue("NDR_FORMAT_CHARACTER", "FC_ALIGNM4", 0x38) +FC_ALIGNM8 = EnumValue("NDR_FORMAT_CHARACTER", "FC_ALIGNM8", 0x39) +FC_UNUSED2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_UNUSED2", 0x3a) +FC_UNUSED3 = EnumValue("NDR_FORMAT_CHARACTER", "FC_UNUSED3", 0x3b) +FC_UNUSED4 = EnumValue("NDR_FORMAT_CHARACTER", "FC_UNUSED4", 0x3c) +FC_STRUCTPAD1 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD1", 0x3d) +FC_STRUCTPAD2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD2", 0x3e) +FC_STRUCTPAD3 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD3", 0x3f) +FC_STRUCTPAD4 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD4", 0x40) +FC_STRUCTPAD5 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD5", 0x41) +FC_STRUCTPAD6 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD6", 0x42) +FC_STRUCTPAD7 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD7", 0x43) +FC_STRING_SIZED = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRING_SIZED", 0x44) +FC_UNUSED5 = EnumValue("NDR_FORMAT_CHARACTER", "FC_UNUSED5", 0x45) +FC_NO_REPEAT = EnumValue("NDR_FORMAT_CHARACTER", "FC_NO_REPEAT", 0x46) +FC_FIXED_REPEAT = EnumValue("NDR_FORMAT_CHARACTER", "FC_FIXED_REPEAT", 0x47) +FC_VARIABLE_REPEAT = EnumValue("NDR_FORMAT_CHARACTER", "FC_VARIABLE_REPEAT", 0x48) +FC_FIXED_OFFSET = EnumValue("NDR_FORMAT_CHARACTER", "FC_FIXED_OFFSET", 0x49) +FC_VARIABLE_OFFSET = EnumValue("NDR_FORMAT_CHARACTER", "FC_VARIABLE_OFFSET", 0x4a) +FC_PP = EnumValue("NDR_FORMAT_CHARACTER", "FC_PP", 0x4b) +FC_EMBEDDED_COMPLEX = EnumValue("NDR_FORMAT_CHARACTER", "FC_EMBEDDED_COMPLEX", 0x4c) +FC_IN_PARAM = EnumValue("NDR_FORMAT_CHARACTER", "FC_IN_PARAM", 0x4d) +FC_IN_PARAM_BASETYPE = EnumValue("NDR_FORMAT_CHARACTER", "FC_IN_PARAM_BASETYPE", 0x4e) +FC_IN_PARAM_NO_FREE_INST = EnumValue("NDR_FORMAT_CHARACTER", "FC_IN_PARAM_NO_FREE_INST", 0x4f) +FC_IN_OUT_PARAM = EnumValue("NDR_FORMAT_CHARACTER", "FC_IN_OUT_PARAM", 0x50) +FC_OUT_PARAM = EnumValue("NDR_FORMAT_CHARACTER", "FC_OUT_PARAM", 0x51) +FC_RETURN_PARAM = EnumValue("NDR_FORMAT_CHARACTER", "FC_RETURN_PARAM", 0x52) +FC_RETURN_PARAM_BASETYPE = EnumValue("NDR_FORMAT_CHARACTER", "FC_RETURN_PARAM_BASETYPE", 0x53) +FC_DEREFERENCE = EnumValue("NDR_FORMAT_CHARACTER", "FC_DEREFERENCE", 0x54) +FC_DIV_2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_DIV_2", 0x55) +FC_MULT_2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_MULT_2", 0x56) +FC_ADD_1 = EnumValue("NDR_FORMAT_CHARACTER", "FC_ADD_1", 0x57) +FC_SUB_1 = EnumValue("NDR_FORMAT_CHARACTER", "FC_SUB_1", 0x58) +FC_CALLBACK = EnumValue("NDR_FORMAT_CHARACTER", "FC_CALLBACK", 0x59) +FC_CONSTANT_IID = EnumValue("NDR_FORMAT_CHARACTER", "FC_CONSTANT_IID", 0x5a) +FC_END = EnumValue("NDR_FORMAT_CHARACTER", "FC_END", 0x5b) +FC_PAD = EnumValue("NDR_FORMAT_CHARACTER", "FC_PAD", 0x5c) +FC_SPLIT_DEREFERENCE = EnumValue("NDR_FORMAT_CHARACTER", "FC_SPLIT_DEREFERENCE", 0x74) +FC_SPLIT_DIV_2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_SPLIT_DIV_2", 0x75) +FC_SPLIT_MULT_2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_SPLIT_MULT_2", 0x76) +FC_SPLIT_ADD_1 = EnumValue("NDR_FORMAT_CHARACTER", "FC_SPLIT_ADD_1", 0x77) +FC_SPLIT_SUB_1 = EnumValue("NDR_FORMAT_CHARACTER", "FC_SPLIT_SUB_1", 0x78) +FC_SPLIT_CALLBACK = EnumValue("NDR_FORMAT_CHARACTER", "FC_SPLIT_CALLBACK", 0x79) +FC_HARD_STRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_HARD_STRUCT", 0xb1) +FC_TRANSMIT_AS_PTR = EnumValue("NDR_FORMAT_CHARACTER", "FC_TRANSMIT_AS_PTR", 0xb2) +FC_REPRESENT_AS_PTR = EnumValue("NDR_FORMAT_CHARACTER", "FC_REPRESENT_AS_PTR", 0xb3) +FC_USER_MARSHAL = EnumValue("NDR_FORMAT_CHARACTER", "FC_USER_MARSHAL", 0xb4) +FC_PIPE = EnumValue("NDR_FORMAT_CHARACTER", "FC_PIPE", 0xb5) +FC_BLKHOLE = EnumValue("NDR_FORMAT_CHARACTER", "FC_BLKHOLE", 0xb6) +FC_RANGE = EnumValue("NDR_FORMAT_CHARACTER", "FC_RANGE", 0xb7) +FC_INT3264 = EnumValue("NDR_FORMAT_CHARACTER", "FC_INT3264", 0xb8) +FC_UINT3264 = EnumValue("NDR_FORMAT_CHARACTER", "FC_UINT3264", 0xb9) +FC_END_OF_UNIVERSE = EnumValue("NDR_FORMAT_CHARACTER", "FC_END_OF_UNIVERSE", 0xba) +class NDR_FORMAT_CHARACTER(EnumType): + values = [FC_ZERO, FC_BYTE, FC_CHAR, FC_SMALL, FC_USMALL, FC_WCHAR, FC_SHORT, FC_USHORT, FC_LONG, FC_ULONG, FC_FLOAT, FC_HYPER, FC_DOUBLE, FC_ENUM16, FC_ENUM32, FC_IGNORE, FC_ERROR_STATUS_T, FC_RP, FC_UP, FC_OP, FC_FP, FC_STRUCT, FC_PSTRUCT, FC_CSTRUCT, FC_CPSTRUCT, FC_CVSTRUCT, FC_BOGUS_STRUCT, FC_CARRAY, FC_CVARRAY, FC_SMFARRAY, FC_LGFARRAY, FC_SMVARRAY, FC_LGVARRAY, FC_BOGUS_ARRAY, FC_C_CSTRING, FC_C_BSTRING, FC_C_SSTRING, FC_C_WSTRING, FC_CSTRING, FC_BSTRING, FC_SSTRING, FC_WSTRING, FC_ENCAPSULATED_UNION, FC_NON_ENCAPSULATED_UNION, FC_BYTE_COUNT_POINTER, FC_TRANSMIT_AS, FC_REPRESENT_AS, FC_IP, FC_BIND_CONTEXT, FC_BIND_GENERIC, FC_BIND_PRIMITIVE, FC_AUTO_HANDLE, FC_CALLBACK_HANDLE, FC_UNUSED1, FC_POINTER, FC_ALIGNM2, FC_ALIGNM4, FC_ALIGNM8, FC_UNUSED2, FC_UNUSED3, FC_UNUSED4, FC_STRUCTPAD1, FC_STRUCTPAD2, FC_STRUCTPAD3, FC_STRUCTPAD4, FC_STRUCTPAD5, FC_STRUCTPAD6, FC_STRUCTPAD7, FC_STRING_SIZED, FC_UNUSED5, FC_NO_REPEAT, FC_FIXED_REPEAT, FC_VARIABLE_REPEAT, FC_FIXED_OFFSET, FC_VARIABLE_OFFSET, FC_PP, FC_EMBEDDED_COMPLEX, FC_IN_PARAM, FC_IN_PARAM_BASETYPE, FC_IN_PARAM_NO_FREE_INST, FC_IN_OUT_PARAM, FC_OUT_PARAM, FC_RETURN_PARAM, FC_RETURN_PARAM_BASETYPE, FC_DEREFERENCE, FC_DIV_2, FC_MULT_2, FC_ADD_1, FC_SUB_1, FC_CALLBACK, FC_CONSTANT_IID, FC_END, FC_PAD, FC_SPLIT_DEREFERENCE, FC_SPLIT_DIV_2, FC_SPLIT_MULT_2, FC_SPLIT_ADD_1, FC_SPLIT_SUB_1, FC_SPLIT_CALLBACK, FC_HARD_STRUCT, FC_TRANSMIT_AS_PTR, FC_REPRESENT_AS_PTR, FC_USER_MARSHAL, FC_PIPE, FC_BLKHOLE, FC_RANGE, FC_INT3264, FC_UINT3264, FC_END_OF_UNIVERSE] + mapper = FlagMapper(*values) + + +BG_AUTH_SCHEME_BASIC = EnumValue("__MIDL_IBackgroundCopyJob2_0002", "BG_AUTH_SCHEME_BASIC", 0x0) +BG_AUTH_SCHEME_DIGEST = EnumValue("__MIDL_IBackgroundCopyJob2_0002", "BG_AUTH_SCHEME_DIGEST", 0x1) +BG_AUTH_SCHEME_NTLM = EnumValue("__MIDL_IBackgroundCopyJob2_0002", "BG_AUTH_SCHEME_NTLM", 0x2) +BG_AUTH_SCHEME_NEGOTIATE = EnumValue("__MIDL_IBackgroundCopyJob2_0002", "BG_AUTH_SCHEME_NEGOTIATE", 0x3) +BG_AUTH_SCHEME_PASSPORT = EnumValue("__MIDL_IBackgroundCopyJob2_0002", "BG_AUTH_SCHEME_PASSPORT", 0x4) +class __MIDL_IBackgroundCopyJob2_0002(EnumType): + values = [BG_AUTH_SCHEME_BASIC, BG_AUTH_SCHEME_DIGEST, BG_AUTH_SCHEME_NTLM, BG_AUTH_SCHEME_NEGOTIATE, BG_AUTH_SCHEME_PASSPORT] + mapper = FlagMapper(*values) +BG_AUTH_SCHEME = __MIDL_IBackgroundCopyJob2_0002 + + +BG_AUTH_TARGET_SERVER = EnumValue("__MIDL_IBackgroundCopyJob2_0001", "BG_AUTH_TARGET_SERVER", 0x0) +BG_AUTH_TARGET_PROXY = EnumValue("__MIDL_IBackgroundCopyJob2_0001", "BG_AUTH_TARGET_PROXY", 0x1) +class __MIDL_IBackgroundCopyJob2_0001(EnumType): + values = [BG_AUTH_TARGET_SERVER, BG_AUTH_TARGET_PROXY] + mapper = FlagMapper(*values) +BG_AUTH_TARGET = __MIDL_IBackgroundCopyJob2_0001 + + +class __MIDL_IBackgroundCopyJob2_0003(Structure): + _fields_ = [ + ("UserName", LPWSTR), + ("Password", LPWSTR), + ] +BG_BASIC_CREDENTIALS = __MIDL_IBackgroundCopyJob2_0003 + +class __MIDL_IBackgroundCopyJob2_0004(Union): + _fields_ = [ + ("Basic", BG_BASIC_CREDENTIALS), + ] +BG_AUTH_CREDENTIALS_UNION = __MIDL_IBackgroundCopyJob2_0004 + +class BG_AUTH_CREDENTIALS(Structure): + _fields_ = [ + ("Target", BG_AUTH_TARGET), + ("Scheme", BG_AUTH_SCHEME), + ("Credentials", BG_AUTH_CREDENTIALS_UNION), + ] + + +class _BG_JOB_REPLY_PROGRESS(Structure): + _fields_ = [ + ("BytesTotal", UINT64), + ("BytesTransferred", UINT64), + ] +BG_JOB_REPLY_PROGRESS = _BG_JOB_REPLY_PROGRESS + +class _BG_FILE_RANGE(Structure): + _fields_ = [ + ("InitialOffset", UINT64), + ("Length", UINT64), + ] +BG_FILE_RANGE = _BG_FILE_RANGE + +class _GUID(Structure): + _fields_ = [ + ("Data1", ULONG), + ("Data2", USHORT), + ("Data3", USHORT), + ("Data4", BYTE * (8)), + ] +REFCLSID = POINTER(_GUID) +LPCGUID = POINTER(_GUID) +REFGUID = POINTER(_GUID) +LPGUID = POINTER(_GUID) +IID = _GUID +CLSID = _GUID +LPCLSID = POINTER(_GUID) +GUID = _GUID +REFIID = POINTER(_GUID) + +INITIAL_GUID = _GUID +class _GUID(INITIAL_GUID): + def __init__(self, Data1=None, Data2=None, Data3=None, Data4=None, name=None, strid=None): + data_tuple = (Data1, Data2, Data3, Data4) + self.name = name + self.strid = strid + if all(data is None for data in data_tuple): + return super(_GUID, self).__init__() + if any(data is None for data in data_tuple): + raise ValueError("All or none of (Data1, Data2, Data3, Data4) should be None") + super(_GUID, self).__init__(Data1, Data2, Data3, Data4) + + def __repr__(self): + notpresent = object() + # Handle IID created without '__init__' (like ctypes-ptr deref) + if getattr(self, "strid", notpresent) is notpresent: + self.strid = self.to_string() + if self.strid is None: + return super(_GUID, self).__repr__() + + if getattr(self, "name", notpresent) is notpresent: + self.name = None + if self.name is None: + return ''.format(self.strid.upper()) + return ''.format(self.strid.upper(), self.name) + + __sprint__ = __repr__ + + + def to_string(self): + data4_format = "{0:02X}{1:02X}-" + "".join("{{{i}:02X}}".format(i=i + 2) for i in range(6)) + data4_str = data4_format.format(*self.Data4) + return "{0:08X}-{1:04X}-{2:04X}-".format(self.Data1, self.Data2, self.Data3) + data4_str + + __str__ = to_string + + def update_strid(self): + new_strid = self.to_string() + self.strid = new_strid + + @classmethod + def from_string(cls, iid): + part_iid = iid.split("-") + datas = [int(x, 16) for x in part_iid[:3]] + datas.append(int(part_iid[3][:2], 16)) + datas.append(int(part_iid[3][2:], 16)) + for i in range(6): + datas.append(int(part_iid[4][i * 2:(i + 1) * 2], 16)) + return cls.from_raw(*datas, strid=iid) + + + @classmethod + def from_raw(cls, Data1, Data2, Data3, Data41, Data42, Data43, Data44, Data45, Data46, Data47, Data48, **kwargs): + return cls(Data1, Data2, Data3, (BYTE*8)(Data41, Data42, Data43, Data44, Data45, Data46, Data47, Data48), **kwargs) + + def __eq__(self, other): + if not isinstance(other, (_GUID, INITIAL_GUID)): + return NotImplemented + return (self.Data1, self.Data2, self.Data3, self.Data4[:]) == (other.Data1, other.Data2, other.Data3, other.Data4[:]) + +REFCLSID = POINTER(_GUID) +LPCGUID = POINTER(_GUID) +REFGUID = POINTER(_GUID) +LPGUID = POINTER(_GUID) +IID = _GUID +CLSID = _GUID +LPCLSID = POINTER(_GUID) +GUID = _GUID +REFIID = POINTER(_GUID) +class IO_Des_s(Structure): + _fields_ = [ + ("IOD_Count", DWORD), + ("IOD_Type", DWORD), + ("IOD_Alloc_Base", DWORDLONG), + ("IOD_Alloc_End", DWORDLONG), + ("IOD_DesFlags", DWORD), + ] +PIO_DES = POINTER(IO_Des_s) +IO_DES = IO_Des_s + +class IO_Range_s(Structure): + _fields_ = [ + ("IOR_Align", DWORDLONG), + ("IOR_nPorts", DWORD), + ("IOR_Min", DWORDLONG), + ("IOR_Max", DWORDLONG), + ("IOR_RangeFlags", DWORD), + ("IOR_Alias", DWORDLONG), + ] +IO_RANGE = IO_Range_s +PIO_RANGE = POINTER(IO_Range_s) + +class Mem_Des_s(Structure): + _fields_ = [ + ("MD_Count", DWORD), + ("MD_Type", DWORD), + ("MD_Alloc_Base", DWORDLONG), + ("MD_Alloc_End", DWORDLONG), + ("MD_Flags", DWORD), + ("MD_Reserved", DWORD), + ] +MEM_DES = Mem_Des_s +PMEM_DES = POINTER(Mem_Des_s) + +class Mem_Range_s(Structure): + _fields_ = [ + ("MR_Align", DWORDLONG), + ("MR_nBytes", ULONG), + ("MR_Min", DWORDLONG), + ("MR_Max", DWORDLONG), + ("MR_Flags", DWORD), + ("MR_Reserved", DWORD), + ] +MEM_RANGE = Mem_Range_s +PMEM_RANGE = POINTER(Mem_Range_s) + +class DMA_Des_s(Structure): + _fields_ = [ + ("DD_Count", DWORD), + ("DD_Type", DWORD), + ("DD_Flags", DWORD), + ("DD_Alloc_Chan", ULONG), + ] +PDMA_DES = POINTER(DMA_Des_s) +DMA_DES = DMA_Des_s + +class DMA_Range_s(Structure): + _fields_ = [ + ("DR_Min", ULONG), + ("DR_Max", ULONG), + ("DR_Flags", ULONG), + ] +DMA_RANGE = DMA_Range_s +PDMA_RANGE = POINTER(DMA_Range_s) + +class IRQ_Des_64_s(Structure): + _fields_ = [ + ("IRQD_Count", DWORD), + ("IRQD_Type", DWORD), + ("IRQD_Flags", DWORD), + ("IRQD_Alloc_Num", ULONG), + ("IRQD_Affinity", ULONG64), + ] +IRQ_DES_64 = IRQ_Des_64_s +PIRQ_DES_64 = POINTER(IRQ_Des_64_s) + +class IRQ_Des_32_s(Structure): + _fields_ = [ + ("IRQD_Count", DWORD), + ("IRQD_Type", DWORD), + ("IRQD_Flags", DWORD), + ("IRQD_Alloc_Num", ULONG), + ("IRQD_Affinity", ULONG32), + ] +PIRQ_DES_32 = POINTER(IRQ_Des_32_s) +IRQ_DES_32 = IRQ_Des_32_s + +class IRQ_Range_s(Structure): + _fields_ = [ + ("IRQR_Min", ULONG), + ("IRQR_Max", ULONG), + ("IRQR_Flags", ULONG), + ] +IRQ_RANGE = IRQ_Range_s +PIRQ_RANGE = POINTER(IRQ_Range_s) + +class BusNumber_Des_s(Structure): + _fields_ = [ + ("BUSD_Count", DWORD), + ("BUSD_Type", DWORD), + ("BUSD_Flags", DWORD), + ("BUSD_Alloc_Base", ULONG), + ("BUSD_Alloc_End", ULONG), + ] +BUSNUMBER_DES = BusNumber_Des_s +PBUSNUMBER_DES = POINTER(BusNumber_Des_s) + +class BusNumber_Range_s(Structure): + _fields_ = [ + ("BUSR_Min", ULONG), + ("BUSR_Max", ULONG), + ("BUSR_nBusNumbers", ULONG), + ("BUSR_Flags", ULONG), + ] +PBUSNUMBER_RANGE = POINTER(BusNumber_Range_s) +BUSNUMBER_RANGE = BusNumber_Range_s + +class BusNumber_Resource_s(Structure): + _fields_ = [ + ("BusNumber_Header", BUSNUMBER_DES), + ("BusNumber_Data", BUSNUMBER_RANGE * (ANYSIZE_ARRAY)), + ] +BUSNUMBER_RESOURCE = BusNumber_Resource_s +PBUSNUMBER_RESOURCE = POINTER(BusNumber_Resource_s) + +class CS_Des_s(Structure): + _fields_ = [ + ("CSD_SignatureLength", DWORD), + ("CSD_LegacyDataOffset", DWORD), + ("CSD_LegacyDataSize", DWORD), + ("CSD_Flags", DWORD), + ("CSD_ClassGuid", GUID), + ("CSD_Signature", BYTE * (ANYSIZE_ARRAY)), + ] +PCS_DES = POINTER(CS_Des_s) +CS_DES = CS_Des_s + +class CS_Resource_s(Structure): + _fields_ = [ + ("CS_Header", CS_DES), + ] +PCS_RESOURCE = POINTER(CS_Resource_s) +CS_RESOURCE = CS_Resource_s + +class DMA_Des_s(Structure): + _fields_ = [ + ("DD_Count", DWORD), + ("DD_Type", DWORD), + ("DD_Flags", DWORD), + ("DD_Alloc_Chan", ULONG), + ] +PDMA_DES = POINTER(DMA_Des_s) +DMA_DES = DMA_Des_s + +class DMA_Resource_s(Structure): + _fields_ = [ + ("DMA_Header", DMA_DES), + ("DMA_Data", DMA_RANGE * (ANYSIZE_ARRAY)), + ] +PDMA_RESOURCE = POINTER(DMA_Resource_s) +DMA_RESOURCE = DMA_Resource_s + +class IO_Des_s(Structure): + _fields_ = [ + ("IOD_Count", DWORD), + ("IOD_Type", DWORD), + ("IOD_Alloc_Base", DWORDLONG), + ("IOD_Alloc_End", DWORDLONG), + ("IOD_DesFlags", DWORD), + ] +PIO_DES = POINTER(IO_Des_s) +IO_DES = IO_Des_s + +class IO_Resource_s(Structure): + _fields_ = [ + ("IO_Header", IO_DES), + ("IO_Data", IO_RANGE * (ANYSIZE_ARRAY)), + ] +IO_RESOURCE = IO_Resource_s +PIO_RESOURCE = POINTER(IO_Resource_s) + +class IRQ_Resource_32_s(Structure): + _fields_ = [ + ("IRQ_Header", IRQ_DES_32), + ("IRQ_Data", IRQ_RANGE * (ANYSIZE_ARRAY)), + ] +PIRQ_RESOURCE_32 = POINTER(IRQ_Resource_32_s) +IRQ_RESOURCE_32 = IRQ_Resource_32_s + +class IRQ_Resource_64_s(Structure): + _fields_ = [ + ("IRQ_Header", IRQ_DES_64), + ("IRQ_Data", IRQ_RANGE * (ANYSIZE_ARRAY)), + ] +IRQ_RESOURCE_64 = IRQ_Resource_64_s +PIRQ_RESOURCE_64 = POINTER(IRQ_Resource_64_s) + +class Mem_Resource_s(Structure): + _fields_ = [ + ("MEM_Header", MEM_DES), + ("MEM_Data", MEM_RANGE * (ANYSIZE_ARRAY)), + ] +MEM_RESOURCE = Mem_Resource_s +PMEM_RESOURCE = POINTER(Mem_Resource_s) + +class MfCard_Des_s(Structure): + _fields_ = [ + ("PMF_Count", DWORD), + ("PMF_Type", DWORD), + ("PMF_Flags", DWORD), + ("PMF_ConfigOptions", BYTE), + ("PMF_IoResourceIndex", BYTE), + ("PMF_Reserved", BYTE * (2)), + ("PMF_ConfigRegisterBase", DWORD), + ] +MFCARD_DES = MfCard_Des_s +PMFCARD_DES = POINTER(MfCard_Des_s) + +class MfCard_Resource_s(Structure): + _fields_ = [ + ("MfCard_Header", MFCARD_DES), + ] +PMFCARD_RESOURCE = POINTER(MfCard_Resource_s) +MFCARD_RESOURCE = MfCard_Resource_s + +class PcCard_Des_s(Structure): + _fields_ = [ + ("PCD_Count", DWORD), + ("PCD_Type", DWORD), + ("PCD_Flags", DWORD), + ("PCD_ConfigIndex", BYTE), + ("PCD_Reserved", BYTE * (3)), + ("PCD_MemoryCardBase1", DWORD), + ("PCD_MemoryCardBase2", DWORD), + ("PCD_MemoryCardBase", DWORD * (PCD_MAX_MEMORY)), + ("PCD_MemoryFlags", WORD * (PCD_MAX_MEMORY)), + ("PCD_IoFlags", BYTE * (PCD_MAX_IO)), + ] +PCCARD_DES = PcCard_Des_s +PPCCARD_DES = POINTER(PcCard_Des_s) + +class PcCard_Resource_s(Structure): + _fields_ = [ + ("PcCard_Header", PCCARD_DES), + ] +PPCCARD_RESOURCE = POINTER(PcCard_Resource_s) +PCCARD_RESOURCE = PcCard_Resource_s + +class Mem_Large_Range_s(Structure): + _fields_ = [ + ("MLR_Align", DWORDLONG), + ("MLR_nBytes", ULONGLONG), + ("MLR_Min", DWORDLONG), + ("MLR_Max", DWORDLONG), + ("MLR_Flags", DWORD), + ("MLR_Reserved", DWORD), + ] +PMEM_LARGE_RANGE = POINTER(Mem_Large_Range_s) +MEM_LARGE_RANGE = Mem_Large_Range_s + +class Mem_Large_Des_s(Structure): + _fields_ = [ + ("MLD_Count", DWORD), + ("MLD_Type", DWORD), + ("MLD_Alloc_Base", DWORDLONG), + ("MLD_Alloc_End", DWORDLONG), + ("MLD_Flags", DWORD), + ("MLD_Reserved", DWORD), + ] +PMEM_LARGE_DES = POINTER(Mem_Large_Des_s) +MEM_LARGE_DES = Mem_Large_Des_s + +class Mem_Large_Resource_s(Structure): + _fields_ = [ + ("MEM_LARGE_Header", MEM_LARGE_DES), + ("MEM_LARGE_Data", MEM_LARGE_RANGE * (ANYSIZE_ARRAY)), + ] +MEM_LARGE_RESOURCE = Mem_Large_Resource_s +PMEM_LARGE_RESOURCE = POINTER(Mem_Large_Resource_s) + +CALLFRAME_COPY_NESTED = EnumValue("_CALLFRAME_COPY", "CALLFRAME_COPY_NESTED", 0x1) +CALLFRAME_COPY_INDEPENDENT = EnumValue("_CALLFRAME_COPY", "CALLFRAME_COPY_INDEPENDENT", 0x2) +class _CALLFRAME_COPY(EnumType): + values = [CALLFRAME_COPY_NESTED, CALLFRAME_COPY_INDEPENDENT] + mapper = FlagMapper(*values) +CALLFRAME_COPY = _CALLFRAME_COPY + + +MSHLFLAGS_NORMAL = EnumValue("tagMSHLFLAGS", "MSHLFLAGS_NORMAL", 0x0) +MSHLFLAGS_TABLESTRONG = EnumValue("tagMSHLFLAGS", "MSHLFLAGS_TABLESTRONG", 0x1) +MSHLFLAGS_TABLEWEAK = EnumValue("tagMSHLFLAGS", "MSHLFLAGS_TABLEWEAK", 0x2) +MSHLFLAGS_NOPING = EnumValue("tagMSHLFLAGS", "MSHLFLAGS_NOPING", 0x4) +class tagMSHLFLAGS(EnumType): + values = [MSHLFLAGS_NORMAL, MSHLFLAGS_TABLESTRONG, MSHLFLAGS_TABLEWEAK, MSHLFLAGS_NOPING] + mapper = FlagMapper(*values) +MSHLFLAGS = tagMSHLFLAGS + + +CALLFRAME_WALK_IN = EnumValue("tagCALLFRAME_WALK", "CALLFRAME_WALK_IN", 0x1) +CALLFRAME_WALK_INOUT = EnumValue("tagCALLFRAME_WALK", "CALLFRAME_WALK_INOUT", 0x2) +CALLFRAME_WALK_OUT = EnumValue("tagCALLFRAME_WALK", "CALLFRAME_WALK_OUT", 0x4) +class tagCALLFRAME_WALK(EnumType): + values = [CALLFRAME_WALK_IN, CALLFRAME_WALK_INOUT, CALLFRAME_WALK_OUT] + mapper = FlagMapper(*values) +CALLFRAME_WALK = tagCALLFRAME_WALK + + +SD_LAUNCHPERMISSIONS = EnumValue("tagCOMSD", "SD_LAUNCHPERMISSIONS", 0x0) +SD_ACCESSPERMISSIONS = EnumValue("tagCOMSD", "SD_ACCESSPERMISSIONS", 0x1) +SD_LAUNCHRESTRICTIONS = EnumValue("tagCOMSD", "SD_LAUNCHRESTRICTIONS", 0x2) +SD_ACCESSRESTRICTIONS = EnumValue("tagCOMSD", "SD_ACCESSRESTRICTIONS", 0x3) +class tagCOMSD(EnumType): + values = [SD_LAUNCHPERMISSIONS, SD_ACCESSPERMISSIONS, SD_LAUNCHRESTRICTIONS, SD_ACCESSRESTRICTIONS] + mapper = FlagMapper(*values) +COMSD = tagCOMSD + + +class tagMULTI_QI(Structure): + _fields_ = [ + ("pIID", POINTER(IID)), + ("pItf", POINTER(PVOID)), + ("hr", HRESULT), + ] +MULTI_QI = tagMULTI_QI + +class _COAUTHIDENTITY(Structure): + _fields_ = [ + ("User", POINTER(USHORT)), + ("UserLength", ULONG), + ("Domain", POINTER(USHORT)), + ("DomainLength", ULONG), + ("Password", POINTER(USHORT)), + ("PasswordLength", ULONG), + ("Flags", ULONG), + ] +COAUTHIDENTITY = _COAUTHIDENTITY + +class _COAUTHINFO(Structure): + _fields_ = [ + ("dwAuthnSvc", DWORD), + ("dwAuthzSvc", DWORD), + ("pwszServerPrincName", LPWSTR), + ("dwAuthnLevel", DWORD), + ("dwImpersonationLevel", DWORD), + ("pAuthIdentityData", POINTER(COAUTHIDENTITY)), + ("dwCapabilities", DWORD), + ] +COAUTHINFO = _COAUTHINFO + +class _COSERVERINFO(Structure): + _fields_ = [ + ("dwReserved1", DWORD), + ("pwszName", LPWSTR), + ("pAuthInfo", POINTER(COAUTHINFO)), + ("dwReserved2", DWORD), + ] +COSERVERINFO = _COSERVERINFO + +class _CALLFRAMEPARAMINFO(Structure): + _fields_ = [ + ("fIn", BOOLEAN), + ("fOut", BOOLEAN), + ("stackOffset", ULONG), + ("cbParam", ULONG), + ] +CALLFRAMEPARAMINFO = _CALLFRAMEPARAMINFO + +class _CALLFRAMEINFO(Structure): + _fields_ = [ + ("iMethod", ULONG), + ("fHasInValues", BOOL), + ("fHasInOutValues", BOOL), + ("fHasOutValues", BOOL), + ("fDerivesFromIDispatch", BOOL), + ("cInInterfacesMax", LONG), + ("cInOutInterfacesMax", LONG), + ("cOutInterfacesMax", LONG), + ("cTopLevelInInterfaces", LONG), + ("iid", IID), + ("cMethod", ULONG), + ("cParams", ULONG), + ] +CALLFRAMEINFO = _CALLFRAMEINFO + +class _CALLFRAME_MARSHALCONTEXT(Structure): + _fields_ = [ + ("fIn", BOOLEAN), + ("dwDestContext", DWORD), + ("pvDestContext", LPVOID), + ("mshlmgr", POINTER(PVOID)), + ("guidTransferSyntax", GUID), + ] +CALLFRAME_MARSHALCONTEXT = _CALLFRAME_MARSHALCONTEXT + +class tagSAFEARRAYBOUND(Structure): + _fields_ = [ + ("cElements", ULONG), + ("lLbound", LONG), + ] +SAFEARRAYBOUND = tagSAFEARRAYBOUND +LPSAFEARRAYBOUND = POINTER(tagSAFEARRAYBOUND) + +class tagSAFEARRAY(Structure): + _fields_ = [ + ("cDims", USHORT), + ("fFeatures", USHORT), + ("cbElements", ULONG), + ("cLocks", ULONG), + ("pvData", PVOID), + ("rgsabound", SAFEARRAYBOUND * (1)), + ] +SAFEARRAY = tagSAFEARRAY +LPSAFEARRAY = POINTER(tagSAFEARRAY) + +class __tagBRECORD(Structure): + _fields_ = [ + ("pvRecord", PVOID), + ("pRecInfo", PVOID), + ] +_tagBRECORD = __tagBRECORD + +class _ANON_TMP_variant_sub_union(Union): + _fields_ = [ + ("llVal", LONGLONG), + ("lVal", LONG), + ("bVal", BYTE), + ("iVal", SHORT), + ("fltVal", FLOAT), + ("dblVal", DOUBLE), + ("boolVal", VARIANT_BOOL), + ("scode", SCODE), + ("bstrVal", BSTR), + ("punkVal", PVOID), + ("pdispVal", PVOID), + ("parray", POINTER(SAFEARRAY)), + ("pbVal", POINTER(BYTE)), + ("piVal", POINTER(SHORT)), + ("plVal", POINTER(LONG)), + ("pllVal", POINTER(LONGLONG)), + ("pfltVal", POINTER(FLOAT)), + ("pdblVal", POINTER(DOUBLE)), + ("pboolVal", POINTER(VARIANT_BOOL)), + ("pscode", POINTER(SCODE)), + ("pbstrVal", POINTER(BSTR)), + ("byref", PVOID), + ("cVal", CHAR), + ("uiVal", USHORT), + ("ulVal", ULONG), + ("ullVal", ULONGLONG), + ("intVal", INT), + ("uintVal", UINT), + ("pcVal", POINTER(CHAR)), + ("puiVal", POINTER(USHORT)), + ("pulVal", POINTER(ULONG)), + ("pullVal", POINTER(ULONGLONG)), + ("pintVal", POINTER(INT)), + ("puintVal", POINTER(UINT)), + ("_VARIANT_NAME_4", _tagBRECORD), + ] + + +class __tagVARIANT(Structure): + _anonymous_ = ("_VARIANT_NAME_3",) + _fields_ = [ + ("vt", VARTYPE), + ("wReserved1", WORD), + ("wReserved2", WORD), + ("wReserved3", WORD), + ("_VARIANT_NAME_3", _ANON_TMP_variant_sub_union), + ] +LPVARIANTARG = POINTER(__tagVARIANT) +VARIANTARG = __tagVARIANT +VARIANT = __tagVARIANT +LPVARIANT = POINTER(__tagVARIANT) +_tagVARIANT = __tagVARIANT + +VIRTUAL_DISK_ACCESS_NONE = EnumValue("_VIRTUAL_DISK_ACCESS_MASK", "VIRTUAL_DISK_ACCESS_NONE", 0x0) +VIRTUAL_DISK_ACCESS_ATTACH_RO = EnumValue("_VIRTUAL_DISK_ACCESS_MASK", "VIRTUAL_DISK_ACCESS_ATTACH_RO", 0x1) +VIRTUAL_DISK_ACCESS_ATTACH_RW = EnumValue("_VIRTUAL_DISK_ACCESS_MASK", "VIRTUAL_DISK_ACCESS_ATTACH_RW", 0x2) +VIRTUAL_DISK_ACCESS_DETACH = EnumValue("_VIRTUAL_DISK_ACCESS_MASK", "VIRTUAL_DISK_ACCESS_DETACH", 0x3) +VIRTUAL_DISK_ACCESS_GET_INFO = EnumValue("_VIRTUAL_DISK_ACCESS_MASK", "VIRTUAL_DISK_ACCESS_GET_INFO", 0x4) +VIRTUAL_DISK_ACCESS_CREATE = EnumValue("_VIRTUAL_DISK_ACCESS_MASK", "VIRTUAL_DISK_ACCESS_CREATE", 0x5) +VIRTUAL_DISK_ACCESS_METAOPS = EnumValue("_VIRTUAL_DISK_ACCESS_MASK", "VIRTUAL_DISK_ACCESS_METAOPS", 0x6) +VIRTUAL_DISK_ACCESS_READ = EnumValue("_VIRTUAL_DISK_ACCESS_MASK", "VIRTUAL_DISK_ACCESS_READ", 0x7) +VIRTUAL_DISK_ACCESS_ALL = EnumValue("_VIRTUAL_DISK_ACCESS_MASK", "VIRTUAL_DISK_ACCESS_ALL", 0x8) +VIRTUAL_DISK_ACCESS_WRITABLE = EnumValue("_VIRTUAL_DISK_ACCESS_MASK", "VIRTUAL_DISK_ACCESS_WRITABLE", 0x9) +class _VIRTUAL_DISK_ACCESS_MASK(EnumType): + values = [VIRTUAL_DISK_ACCESS_NONE, VIRTUAL_DISK_ACCESS_ATTACH_RO, VIRTUAL_DISK_ACCESS_ATTACH_RW, VIRTUAL_DISK_ACCESS_DETACH, VIRTUAL_DISK_ACCESS_GET_INFO, VIRTUAL_DISK_ACCESS_CREATE, VIRTUAL_DISK_ACCESS_METAOPS, VIRTUAL_DISK_ACCESS_READ, VIRTUAL_DISK_ACCESS_ALL, VIRTUAL_DISK_ACCESS_WRITABLE] + mapper = FlagMapper(*values) +VIRTUAL_DISK_ACCESS_MASK = _VIRTUAL_DISK_ACCESS_MASK + + +OPEN_VIRTUAL_DISK_FLAG_NONE = EnumValue("_OPEN_VIRTUAL_DISK_FLAG", "OPEN_VIRTUAL_DISK_FLAG_NONE", 0x0) +OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS = EnumValue("_OPEN_VIRTUAL_DISK_FLAG", "OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS", 0x1) +OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE = EnumValue("_OPEN_VIRTUAL_DISK_FLAG", "OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE", 0x2) +OPEN_VIRTUAL_DISK_FLAG_BOOT_DRIVE = EnumValue("_OPEN_VIRTUAL_DISK_FLAG", "OPEN_VIRTUAL_DISK_FLAG_BOOT_DRIVE", 0x3) +OPEN_VIRTUAL_DISK_FLAG_CACHED_IO = EnumValue("_OPEN_VIRTUAL_DISK_FLAG", "OPEN_VIRTUAL_DISK_FLAG_CACHED_IO", 0x4) +OPEN_VIRTUAL_DISK_FLAG_CUSTOM_DIFF_CHAIN = EnumValue("_OPEN_VIRTUAL_DISK_FLAG", "OPEN_VIRTUAL_DISK_FLAG_CUSTOM_DIFF_CHAIN", 0x5) +OPEN_VIRTUAL_DISK_FLAG_PARENT_CACHED_IO = EnumValue("_OPEN_VIRTUAL_DISK_FLAG", "OPEN_VIRTUAL_DISK_FLAG_PARENT_CACHED_IO", 0x6) +OPEN_VIRTUAL_DISK_FLAG_VHDSET_FILE_ONLY = EnumValue("_OPEN_VIRTUAL_DISK_FLAG", "OPEN_VIRTUAL_DISK_FLAG_VHDSET_FILE_ONLY", 0x7) +OPEN_VIRTUAL_DISK_FLAG_IGNORE_RELATIVE_PARENT_LOCATOR = EnumValue("_OPEN_VIRTUAL_DISK_FLAG", "OPEN_VIRTUAL_DISK_FLAG_IGNORE_RELATIVE_PARENT_LOCATOR", 0x8) +OPEN_VIRTUAL_DISK_FLAG_NO_WRITE_HARDENING = EnumValue("_OPEN_VIRTUAL_DISK_FLAG", "OPEN_VIRTUAL_DISK_FLAG_NO_WRITE_HARDENING", 0x9) +class _OPEN_VIRTUAL_DISK_FLAG(EnumType): + values = [OPEN_VIRTUAL_DISK_FLAG_NONE, OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS, OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE, OPEN_VIRTUAL_DISK_FLAG_BOOT_DRIVE, OPEN_VIRTUAL_DISK_FLAG_CACHED_IO, OPEN_VIRTUAL_DISK_FLAG_CUSTOM_DIFF_CHAIN, OPEN_VIRTUAL_DISK_FLAG_PARENT_CACHED_IO, OPEN_VIRTUAL_DISK_FLAG_VHDSET_FILE_ONLY, OPEN_VIRTUAL_DISK_FLAG_IGNORE_RELATIVE_PARENT_LOCATOR, OPEN_VIRTUAL_DISK_FLAG_NO_WRITE_HARDENING] + mapper = FlagMapper(*values) +OPEN_VIRTUAL_DISK_FLAG = _OPEN_VIRTUAL_DISK_FLAG + + +ATTACH_VIRTUAL_DISK_FLAG_NONE = EnumValue("_ATTACH_VIRTUAL_DISK_FLAG", "ATTACH_VIRTUAL_DISK_FLAG_NONE", 0x0) +ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY = EnumValue("_ATTACH_VIRTUAL_DISK_FLAG", "ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY", 0x1) +ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER = EnumValue("_ATTACH_VIRTUAL_DISK_FLAG", "ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER", 0x2) +ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME = EnumValue("_ATTACH_VIRTUAL_DISK_FLAG", "ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME", 0x3) +ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST = EnumValue("_ATTACH_VIRTUAL_DISK_FLAG", "ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST", 0x4) +ATTACH_VIRTUAL_DISK_FLAG_NO_SECURITY_DESCRIPTOR = EnumValue("_ATTACH_VIRTUAL_DISK_FLAG", "ATTACH_VIRTUAL_DISK_FLAG_NO_SECURITY_DESCRIPTOR", 0x5) +ATTACH_VIRTUAL_DISK_FLAG_BYPASS_DEFAULT_ENCRYPTION_POLICY = EnumValue("_ATTACH_VIRTUAL_DISK_FLAG", "ATTACH_VIRTUAL_DISK_FLAG_BYPASS_DEFAULT_ENCRYPTION_POLICY", 0x6) +ATTACH_VIRTUAL_DISK_FLAG_NON_PNP = EnumValue("_ATTACH_VIRTUAL_DISK_FLAG", "ATTACH_VIRTUAL_DISK_FLAG_NON_PNP", 0x7) +ATTACH_VIRTUAL_DISK_FLAG_RESTRICTED_RANGE = EnumValue("_ATTACH_VIRTUAL_DISK_FLAG", "ATTACH_VIRTUAL_DISK_FLAG_RESTRICTED_RANGE", 0x8) +ATTACH_VIRTUAL_DISK_FLAG_SINGLE_PARTITION = EnumValue("_ATTACH_VIRTUAL_DISK_FLAG", "ATTACH_VIRTUAL_DISK_FLAG_SINGLE_PARTITION", 0x9) +ATTACH_VIRTUAL_DISK_FLAG_REGISTER_VOLUME = EnumValue("_ATTACH_VIRTUAL_DISK_FLAG", "ATTACH_VIRTUAL_DISK_FLAG_REGISTER_VOLUME", 0xa) +class _ATTACH_VIRTUAL_DISK_FLAG(EnumType): + values = [ATTACH_VIRTUAL_DISK_FLAG_NONE, ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY, ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER, ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME, ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST, ATTACH_VIRTUAL_DISK_FLAG_NO_SECURITY_DESCRIPTOR, ATTACH_VIRTUAL_DISK_FLAG_BYPASS_DEFAULT_ENCRYPTION_POLICY, ATTACH_VIRTUAL_DISK_FLAG_NON_PNP, ATTACH_VIRTUAL_DISK_FLAG_RESTRICTED_RANGE, ATTACH_VIRTUAL_DISK_FLAG_SINGLE_PARTITION, ATTACH_VIRTUAL_DISK_FLAG_REGISTER_VOLUME] + mapper = FlagMapper(*values) +ATTACH_VIRTUAL_DISK_FLAG = _ATTACH_VIRTUAL_DISK_FLAG + + +OPEN_VIRTUAL_DISK_VERSION_UNSPECIFIED = EnumValue("_OPEN_VIRTUAL_DISK_VERSION", "OPEN_VIRTUAL_DISK_VERSION_UNSPECIFIED", 0x0) +OPEN_VIRTUAL_DISK_VERSION_1 = EnumValue("_OPEN_VIRTUAL_DISK_VERSION", "OPEN_VIRTUAL_DISK_VERSION_1", 0x1) +OPEN_VIRTUAL_DISK_VERSION_2 = EnumValue("_OPEN_VIRTUAL_DISK_VERSION", "OPEN_VIRTUAL_DISK_VERSION_2", 0x2) +OPEN_VIRTUAL_DISK_VERSION_3 = EnumValue("_OPEN_VIRTUAL_DISK_VERSION", "OPEN_VIRTUAL_DISK_VERSION_3", 0x3) +class _OPEN_VIRTUAL_DISK_VERSION(EnumType): + values = [OPEN_VIRTUAL_DISK_VERSION_UNSPECIFIED, OPEN_VIRTUAL_DISK_VERSION_1, OPEN_VIRTUAL_DISK_VERSION_2, OPEN_VIRTUAL_DISK_VERSION_3] + mapper = FlagMapper(*values) +OPEN_VIRTUAL_DISK_VERSION = _OPEN_VIRTUAL_DISK_VERSION + + +ATTACH_VIRTUAL_DISK_VERSION_UNSPECIFIED = EnumValue("_ATTACH_VIRTUAL_DISK_VERSION", "ATTACH_VIRTUAL_DISK_VERSION_UNSPECIFIED", 0x0) +ATTACH_VIRTUAL_DISK_VERSION_1 = EnumValue("_ATTACH_VIRTUAL_DISK_VERSION", "ATTACH_VIRTUAL_DISK_VERSION_1", 0x1) +ATTACH_VIRTUAL_DISK_VERSION_2 = EnumValue("_ATTACH_VIRTUAL_DISK_VERSION", "ATTACH_VIRTUAL_DISK_VERSION_2", 0x2) +class _ATTACH_VIRTUAL_DISK_VERSION(EnumType): + values = [ATTACH_VIRTUAL_DISK_VERSION_UNSPECIFIED, ATTACH_VIRTUAL_DISK_VERSION_1, ATTACH_VIRTUAL_DISK_VERSION_2] + mapper = FlagMapper(*values) +ATTACH_VIRTUAL_DISK_VERSION = _ATTACH_VIRTUAL_DISK_VERSION + + +class _VIRTUAL_STORAGE_TYPE(Structure): + _fields_ = [ + ("DeviceId", ULONG), + ("VendorId", GUID), + ] +VIRTUAL_STORAGE_TYPE = _VIRTUAL_STORAGE_TYPE +PVIRTUAL_STORAGE_TYPE = POINTER(_VIRTUAL_STORAGE_TYPE) + +class _ANON__ANON__OPEN_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("RWDepth", ULONG), + ] + + +class _ANON__ANON__OPEN_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1_SUB_STRUCTURE_2(Structure): + _fields_ = [ + ("GetInfoOnly", BOOL), + ("ReadOnly", BOOL), + ("ResiliencyGuid", GUID), + ] + + +class _ANON__ANON__OPEN_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1_SUB_STRUCTURE_3(Structure): + _fields_ = [ + ("GetInfoOnly", BOOL), + ("ReadOnly", BOOL), + ("ResiliencyGuid", GUID), + ("SnapshotId", GUID), + ] + +class _ANON__OPEN_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1(Union): + _anonymous_ = ("Version1","Version2","Version3") + _fields_ = [ + ("Version1", _ANON__ANON__OPEN_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1_SUB_STRUCTURE_1), + ("Version2", _ANON__ANON__OPEN_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1_SUB_STRUCTURE_2), + ("Version3", _ANON__ANON__OPEN_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1_SUB_STRUCTURE_3), + ] + +class _OPEN_VIRTUAL_DISK_PARAMETERS(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("Version", OPEN_VIRTUAL_DISK_VERSION), + ("anon_01", _ANON__OPEN_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1), + ] +POPEN_VIRTUAL_DISK_PARAMETERS = POINTER(_OPEN_VIRTUAL_DISK_PARAMETERS) +OPEN_VIRTUAL_DISK_PARAMETERS = _OPEN_VIRTUAL_DISK_PARAMETERS + +class _ANON__ANON__ATTACH_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("Reserved", ULONG), + ] + + +class _ANON__ANON__ATTACH_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1_SUB_STRUCTURE_2(Structure): + _fields_ = [ + ("RestrictedOffset", ULONGLONG), + ("RestrictedLength", ULONGLONG), + ] + +class _ANON__ATTACH_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1(Union): + _anonymous_ = ("Version1","Version2") + _fields_ = [ + ("Version1", _ANON__ANON__ATTACH_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1_SUB_STRUCTURE_1), + ("Version2", _ANON__ANON__ATTACH_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1_SUB_STRUCTURE_2), + ] + +class _ATTACH_VIRTUAL_DISK_PARAMETERS(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("Version", ATTACH_VIRTUAL_DISK_VERSION), + ("anon_01", _ANON__ATTACH_VIRTUAL_DISK_PARAMETERS_SUB_UNION_1), + ] +ATTACH_VIRTUAL_DISK_PARAMETERS = _ATTACH_VIRTUAL_DISK_PARAMETERS +PATTACH_VIRTUAL_DISK_PARAMETERS = POINTER(_ATTACH_VIRTUAL_DISK_PARAMETERS) + +# Self referencing struct tricks +class _INTERNET_BUFFERSA(Structure): pass +INTERNET_BUFFERSA = _INTERNET_BUFFERSA +LPINTERNET_BUFFERSA = POINTER(_INTERNET_BUFFERSA) +_INTERNET_BUFFERSA._fields_ = [ + ("dwStructSize", DWORD), + ("Next", POINTER(_INTERNET_BUFFERSA)), + ("lpcszHeader", LPCSTR), + ("dwHeadersLength", DWORD), + ("dwHeadersTotal", DWORD), + ("lpvBuffer", LPVOID), + ("dwBufferLength", DWORD), + ("dwBufferTotal", DWORD), + ("dwOffsetLow", DWORD), + ("dwOffsetHigh", DWORD), +] + +# Self referencing struct tricks +class _INTERNET_BUFFERSW(Structure): pass +LPINTERNET_BUFFERSW = POINTER(_INTERNET_BUFFERSW) +INTERNET_BUFFERSW = _INTERNET_BUFFERSW +_INTERNET_BUFFERSW._fields_ = [ + ("dwStructSize", DWORD), + ("Next", POINTER(_INTERNET_BUFFERSW)), + ("lpcszHeader", LPCWSTR), + ("dwHeadersLength", DWORD), + ("dwHeadersTotal", DWORD), + ("lpvBuffer", LPVOID), + ("dwBufferLength", DWORD), + ("dwBufferTotal", DWORD), + ("dwOffsetLow", DWORD), + ("dwOffsetHigh", DWORD), +] + +ProcessDEPPolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessDEPPolicy", 0x0) +ProcessASLRPolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessASLRPolicy", 0x1) +ProcessDynamicCodePolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessDynamicCodePolicy", 0x2) +ProcessStrictHandleCheckPolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessStrictHandleCheckPolicy", 0x3) +ProcessSystemCallDisablePolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessSystemCallDisablePolicy", 0x4) +ProcessMitigationOptionsMask = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessMitigationOptionsMask", 0x5) +ProcessExtensionPointDisablePolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessExtensionPointDisablePolicy", 0x6) +ProcessReserved1Policy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessReserved1Policy", 0x7) +ProcessSignaturePolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessSignaturePolicy", 0x8) +MaxProcessMitigationPolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "MaxProcessMitigationPolicy", 0x9) +class _PROCESS_MITIGATION_POLICY(EnumType): + values = [ProcessDEPPolicy, ProcessASLRPolicy, ProcessDynamicCodePolicy, ProcessStrictHandleCheckPolicy, ProcessSystemCallDisablePolicy, ProcessMitigationOptionsMask, ProcessExtensionPointDisablePolicy, ProcessReserved1Policy, ProcessSignaturePolicy, MaxProcessMitigationPolicy] + mapper = FlagMapper(*values) +PROCESS_MITIGATION_POLICY = _PROCESS_MITIGATION_POLICY +PPROCESS_MITIGATION_POLICY = POINTER(_PROCESS_MITIGATION_POLICY) + + +class _ANON__ANON__PROCESS_MITIGATION_DEP_POLICY_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("Enable", DWORD, 1), + ("DisableAtlThunkEmulation", DWORD, 1), + ("ReservedFlags", DWORD, 30), + ] + +class _ANON__PROCESS_MITIGATION_DEP_POLICY_SUB_UNION_1(Union): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("Flags", DWORD), + ("anon_01", _ANON__ANON__PROCESS_MITIGATION_DEP_POLICY_SUB_UNION_1_SUB_STRUCTURE_1), + ] + +class _PROCESS_MITIGATION_DEP_POLICY(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("anon_01", _ANON__PROCESS_MITIGATION_DEP_POLICY_SUB_UNION_1), + ("Permanent", BOOLEAN), + ] +PPROCESS_MITIGATION_DEP_POLICY = POINTER(_PROCESS_MITIGATION_DEP_POLICY) +PROCESS_MITIGATION_DEP_POLICY = _PROCESS_MITIGATION_DEP_POLICY + +class _ANON__ANON__PROCESS_MITIGATION_ASLR_POLICY_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("EnableBottomUpRandomization", DWORD, 1), + ("EnableForceRelocateImages", DWORD, 1), + ("EnableHighEntropy", DWORD, 1), + ("DisallowStrippedImages", DWORD, 1), + ("ReservedFlags", DWORD, 28), + ] + +class _ANON__PROCESS_MITIGATION_ASLR_POLICY_SUB_UNION_1(Union): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("Flags", DWORD), + ("anon_01", _ANON__ANON__PROCESS_MITIGATION_ASLR_POLICY_SUB_UNION_1_SUB_STRUCTURE_1), + ] + +class _PROCESS_MITIGATION_ASLR_POLICY(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("anon_01", _ANON__PROCESS_MITIGATION_ASLR_POLICY_SUB_UNION_1), + ] +PPROCESS_MITIGATION_ASLR_POLICY = POINTER(_PROCESS_MITIGATION_ASLR_POLICY) +PROCESS_MITIGATION_ASLR_POLICY = _PROCESS_MITIGATION_ASLR_POLICY + +class _ANON__ANON__PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("ProhibitDynamicCode", DWORD, 1), + ("AllowThreadOptOut", DWORD, 1), + ("AllowRemoteDowngrade", DWORD, 1), + ("AuditProhibitDynamicCode", DWORD, 1), + ("ReservedFlags", DWORD, 28), + ] + +class _ANON__PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_SUB_UNION_1(Union): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("Flags", DWORD), + ("anon_01", _ANON__ANON__PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_SUB_UNION_1_SUB_STRUCTURE_1), + ] + +class _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("anon_01", _ANON__PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_SUB_UNION_1), + ] +PROCESS_MITIGATION_DYNAMIC_CODE_POLICY = _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY +PPROCESS_MITIGATION_DYNAMIC_CODE_POLICY = POINTER(_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY) + +class _ANON__ANON__PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("RaiseExceptionOnInvalidHandleReference", DWORD, 1), + ("HandleExceptionsPermanentlyEnabled", DWORD, 1), + ("ReservedFlags", DWORD, 30), + ] + +class _ANON__PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_SUB_UNION_1(Union): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("Flags", DWORD), + ("anon_01", _ANON__ANON__PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_SUB_UNION_1_SUB_STRUCTURE_1), + ] + +class _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("anon_01", _ANON__PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_SUB_UNION_1), + ] +PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY +PPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = POINTER(_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY) + +class _ANON__ANON__PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("DisallowWin32kSystemCalls", DWORD, 1), + ("AuditDisallowWin32kSystemCalls", DWORD, 1), + ("ReservedFlags", DWORD, 30), + ] + +class _ANON__PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_SUB_UNION_1(Union): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("Flags", DWORD), + ("anon_01", _ANON__ANON__PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_SUB_UNION_1_SUB_STRUCTURE_1), + ] + +class _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("anon_01", _ANON__PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_SUB_UNION_1), + ] +PPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = POINTER(_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY) +PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY + +class _ANON__ANON__PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("DisableExtensionPoints", DWORD, 1), + ("ReservedFlags", DWORD, 31), + ] + +class _ANON__PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_SUB_UNION_1(Union): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("Flags", DWORD), + ("anon_01", _ANON__ANON__PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_SUB_UNION_1_SUB_STRUCTURE_1), + ] + +class _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("anon_01", _ANON__PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_SUB_UNION_1), + ] +PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY +PPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = POINTER(_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY) + +class _ANON__ANON__PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("EnableControlFlowGuard", DWORD, 1), + ("EnableExportSuppression", DWORD, 1), + ("StrictMode", DWORD, 1), + ("ReservedFlags", DWORD, 29), + ] + +class _ANON__PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_SUB_UNION_1(Union): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("Flags", DWORD), + ("anon_01", _ANON__ANON__PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_SUB_UNION_1_SUB_STRUCTURE_1), + ] + +class _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("anon_01", _ANON__PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_SUB_UNION_1), + ] +PPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY = POINTER(_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY) +PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY = _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY + +class _ANON__ANON__PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("MicrosoftSignedOnly", DWORD, 1), + ("StoreSignedOnly", DWORD, 1), + ("MitigationOptIn", DWORD, 1), + ("AuditMicrosoftSignedOnly", DWORD, 1), + ("AuditStoreSignedOnly", DWORD, 1), + ("ReservedFlags", DWORD, 27), + ] + +class _ANON__PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_SUB_UNION_1(Union): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("Flags", DWORD), + ("anon_01", _ANON__ANON__PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_SUB_UNION_1_SUB_STRUCTURE_1), + ] + +class _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("anon_01", _ANON__PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_SUB_UNION_1), + ] +PPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = POINTER(_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY) +PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY + +class _ANON__ANON__PROCESS_MITIGATION_IMAGE_LOAD_POLICY_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("NoRemoteImages", DWORD, 1), + ("NoLowMandatoryLabelImages", DWORD, 1), + ("PreferSystem32Images", DWORD, 1), + ("AuditNoRemoteImages", DWORD, 1), + ("AuditNoLowMandatoryLabelImages", DWORD, 1), + ("ReservedFlags", DWORD, 27), + ] + +class _ANON__PROCESS_MITIGATION_IMAGE_LOAD_POLICY_SUB_UNION_1(Union): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("Flags", DWORD), + ("anon_01", _ANON__ANON__PROCESS_MITIGATION_IMAGE_LOAD_POLICY_SUB_UNION_1_SUB_STRUCTURE_1), + ] + +class _PROCESS_MITIGATION_IMAGE_LOAD_POLICY(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("anon_01", _ANON__PROCESS_MITIGATION_IMAGE_LOAD_POLICY_SUB_UNION_1), + ] +PPROCESS_MITIGATION_IMAGE_LOAD_POLICY = POINTER(_PROCESS_MITIGATION_IMAGE_LOAD_POLICY) +PROCESS_MITIGATION_IMAGE_LOAD_POLICY = _PROCESS_MITIGATION_IMAGE_LOAD_POLICY + +class _ANON__MIB_IPNETROW_LH_SUB_UNION_1(Union): + _fields_ = [ + ("dwType", DWORD), + ] + +class _MIB_IPNETROW_LH(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("dwIndex", IF_INDEX), + ("dwPhysAddrLen", DWORD), + ("bPhysAddr", UCHAR * (8)), + ("dwAddr", DWORD), + ("anon_01", _ANON__MIB_IPNETROW_LH_SUB_UNION_1), + ] +PMIB_IPNETROW = POINTER(_MIB_IPNETROW_LH) +MIB_IPNETROW = _MIB_IPNETROW_LH + +class _MIB_IPNETTABLE(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", MIB_IPNETROW * (ANY_SIZE)), + ] +PMIB_IPNETTABLE = POINTER(_MIB_IPNETTABLE) +MIB_IPNETTABLE = _MIB_IPNETTABLE + +TCP_TABLE_BASIC_LISTENER = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_BASIC_LISTENER", 0x0) +TCP_TABLE_BASIC_CONNECTIONS = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_BASIC_CONNECTIONS", 0x1) +TCP_TABLE_BASIC_ALL = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_BASIC_ALL", 0x2) +TCP_TABLE_OWNER_PID_LISTENER = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_OWNER_PID_LISTENER", 0x3) +TCP_TABLE_OWNER_PID_CONNECTIONS = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_OWNER_PID_CONNECTIONS", 0x4) +TCP_TABLE_OWNER_PID_ALL = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_OWNER_PID_ALL", 0x5) +TCP_TABLE_OWNER_MODULE_LISTENER = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_OWNER_MODULE_LISTENER", 0x6) +TCP_TABLE_OWNER_MODULE_CONNECTIONS = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_OWNER_MODULE_CONNECTIONS", 0x7) +TCP_TABLE_OWNER_MODULE_ALL = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_OWNER_MODULE_ALL", 0x8) +class _TCP_TABLE_CLASS(EnumType): + values = [TCP_TABLE_BASIC_LISTENER, TCP_TABLE_BASIC_CONNECTIONS, TCP_TABLE_BASIC_ALL, TCP_TABLE_OWNER_PID_LISTENER, TCP_TABLE_OWNER_PID_CONNECTIONS, TCP_TABLE_OWNER_PID_ALL, TCP_TABLE_OWNER_MODULE_LISTENER, TCP_TABLE_OWNER_MODULE_CONNECTIONS, TCP_TABLE_OWNER_MODULE_ALL] + mapper = FlagMapper(*values) +TCP_TABLE_CLASS = _TCP_TABLE_CLASS + + +MIB_TCP_STATE_CLOSED = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_CLOSED", 0x1) +MIB_TCP_STATE_LISTEN = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_LISTEN", 0x2) +MIB_TCP_STATE_SYN_SENT = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_SYN_SENT", 0x3) +MIB_TCP_STATE_SYN_RCVD = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_SYN_RCVD", 0x4) +MIB_TCP_STATE_ESTAB = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_ESTAB", 0x5) +MIB_TCP_STATE_FIN_WAIT1 = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_FIN_WAIT1", 0x6) +MIB_TCP_STATE_FIN_WAIT2 = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_FIN_WAIT2", 0x7) +MIB_TCP_STATE_CLOSE_WAIT = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_CLOSE_WAIT", 0x8) +MIB_TCP_STATE_CLOSING = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_CLOSING", 0x9) +MIB_TCP_STATE_LAST_ACK = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_LAST_ACK", 0xa) +MIB_TCP_STATE_TIME_WAIT = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_TIME_WAIT", 0xb) +MIB_TCP_STATE_DELETE_TCB = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_DELETE_TCB", 0xc) +class _MIB_TCP_STATE(EnumType): + values = [MIB_TCP_STATE_CLOSED, MIB_TCP_STATE_LISTEN, MIB_TCP_STATE_SYN_SENT, MIB_TCP_STATE_SYN_RCVD, MIB_TCP_STATE_ESTAB, MIB_TCP_STATE_FIN_WAIT1, MIB_TCP_STATE_FIN_WAIT2, MIB_TCP_STATE_CLOSE_WAIT, MIB_TCP_STATE_CLOSING, MIB_TCP_STATE_LAST_ACK, MIB_TCP_STATE_TIME_WAIT, MIB_TCP_STATE_DELETE_TCB] + mapper = FlagMapper(*values) +MIB_TCP_STATE = _MIB_TCP_STATE + + +NET_FW_IP_PROTOCOL_TCP = EnumValue("NET_FW_IP_PROTOCOL_", "NET_FW_IP_PROTOCOL_TCP", 0x6) +NET_FW_IP_PROTOCOL_UDP = EnumValue("NET_FW_IP_PROTOCOL_", "NET_FW_IP_PROTOCOL_UDP", 0x11) +NET_FW_IP_PROTOCOL_ANY = EnumValue("NET_FW_IP_PROTOCOL_", "NET_FW_IP_PROTOCOL_ANY", 0x100) +class NET_FW_IP_PROTOCOL_(EnumType): + values = [NET_FW_IP_PROTOCOL_TCP, NET_FW_IP_PROTOCOL_UDP, NET_FW_IP_PROTOCOL_ANY] + mapper = FlagMapper(*values) +NET_FW_IP_PROTOCOL = NET_FW_IP_PROTOCOL_ + + +IF_OPER_STATUS_NON_OPERATIONAL = EnumValue("_INTERNAL_IF_OPER_STATUS", "IF_OPER_STATUS_NON_OPERATIONAL", 0x0) +IF_OPER_STATUS_UNREACHABLE = EnumValue("_INTERNAL_IF_OPER_STATUS", "IF_OPER_STATUS_UNREACHABLE", 0x1) +IF_OPER_STATUS_DISCONNECTED = EnumValue("_INTERNAL_IF_OPER_STATUS", "IF_OPER_STATUS_DISCONNECTED", 0x2) +IF_OPER_STATUS_CONNECTING = EnumValue("_INTERNAL_IF_OPER_STATUS", "IF_OPER_STATUS_CONNECTING", 0x3) +IF_OPER_STATUS_CONNECTED = EnumValue("_INTERNAL_IF_OPER_STATUS", "IF_OPER_STATUS_CONNECTED", 0x4) +IF_OPER_STATUS_OPERATIONAL = EnumValue("_INTERNAL_IF_OPER_STATUS", "IF_OPER_STATUS_OPERATIONAL", 0x5) +class _INTERNAL_IF_OPER_STATUS(EnumType): + values = [IF_OPER_STATUS_NON_OPERATIONAL, IF_OPER_STATUS_UNREACHABLE, IF_OPER_STATUS_DISCONNECTED, IF_OPER_STATUS_CONNECTING, IF_OPER_STATUS_CONNECTED, IF_OPER_STATUS_OPERATIONAL] + mapper = FlagMapper(*values) +INTERNAL_IF_OPER_STATUS = _INTERNAL_IF_OPER_STATUS + + +DnsFreeFlat = EnumValue("DNS_FREE_TYPE", "DnsFreeFlat", 0x0) +DnsFreeRecordList = EnumValue("DNS_FREE_TYPE", "DnsFreeRecordList", 0x1) +DnsFreeParsedMessageFields = EnumValue("DNS_FREE_TYPE", "DnsFreeParsedMessageFields", 0x2) +class DNS_FREE_TYPE(EnumType): + values = [DnsFreeFlat, DnsFreeRecordList, DnsFreeParsedMessageFields] + mapper = FlagMapper(*values) + + +class IP6_ADDRESS(Structure): + _fields_ = [ + ("IP6Qword", ULONGLONG * (2)), + ] +PIP6_ADDRESS = POINTER(IP6_ADDRESS) + +class _MIB_IPADDRROW_XP(Structure): + _fields_ = [ + ("dwAddr", DWORD), + ("dwIndex", IF_INDEX), + ("dwMask", DWORD), + ("dwBCastAddr", DWORD), + ("dwReasmSize", DWORD), + ("unused1", USHORT), + ("wType", USHORT), + ] +MIB_IPADDRROW = _MIB_IPADDRROW_XP +PMIB_IPADDRROW_XP = POINTER(_MIB_IPADDRROW_XP) +MIB_IPADDRROW_XP = _MIB_IPADDRROW_XP + +class _MIB_IPADDRTABLE(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", MIB_IPADDRROW * (ANY_SIZE)), + ] +PMIB_IPADDRTABLE = POINTER(_MIB_IPADDRTABLE) +MIB_IPADDRTABLE = _MIB_IPADDRTABLE + +class _MIB_IFROW(Structure): + _fields_ = [ + ("wszName", WCHAR * (MAX_INTERFACE_NAME_LEN)), + ("dwIndex", IF_INDEX), + ("dwType", IFTYPE), + ("dwMtu", DWORD), + ("dwSpeed", DWORD), + ("dwPhysAddrLen", DWORD), + ("bPhysAddr", BYTE * (MAXLEN_PHYSADDR)), + ("dwAdminStatus", DWORD), + ("dwOperStatus", INTERNAL_IF_OPER_STATUS), + ("dwLastChange", DWORD), + ("dwInOctets", DWORD), + ("dwInUcastPkts", DWORD), + ("dwInNUcastPkts", DWORD), + ("dwInDiscards", DWORD), + ("dwInErrors", DWORD), + ("dwInUnknownProtos", DWORD), + ("dwOutOctets", DWORD), + ("dwOutUcastPkts", DWORD), + ("dwOutNUcastPkts", DWORD), + ("dwOutDiscards", DWORD), + ("dwOutErrors", DWORD), + ("dwOutQLen", DWORD), + ("dwDescrLen", DWORD), + ("bDescr", UCHAR * (MAXLEN_IFDESCR)), + ] +PMIB_IFROW = POINTER(_MIB_IFROW) +MIB_IFROW = _MIB_IFROW + +class _MIB_IFTABLE(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", MIB_IFROW * (ANY_SIZE)), + ] +PMIB_IFTABLE = POINTER(_MIB_IFTABLE) +MIB_IFTABLE = _MIB_IFTABLE + +class _MIB_TCPROW_OWNER_PID(Structure): + _fields_ = [ + ("dwState", DWORD), + ("dwLocalAddr", DWORD), + ("dwLocalPort", DWORD), + ("dwRemoteAddr", DWORD), + ("dwRemotePort", DWORD), + ("dwOwningPid", DWORD), + ] +MIB_TCPROW_OWNER_PID = _MIB_TCPROW_OWNER_PID +PMIB_TCPROW_OWNER_PID = POINTER(_MIB_TCPROW_OWNER_PID) + +class _MIB_TCPTABLE_OWNER_PID(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", MIB_TCPROW_OWNER_PID * (ANY_SIZE)), + ] +MIB_TCPTABLE_OWNER_PID = _MIB_TCPTABLE_OWNER_PID +PMIB_TCPTABLE_OWNER_PID = POINTER(_MIB_TCPTABLE_OWNER_PID) + +class _MIB_UDPROW_OWNER_PID(Structure): + _fields_ = [ + ("dwLocalAddr", DWORD), + ("dwLocalPort", DWORD), + ("dwOwningPid", DWORD), + ] +MIB_UDPROW_OWNER_PID = _MIB_UDPROW_OWNER_PID +PMIB_UDPROW_OWNER_PID = POINTER(_MIB_UDPROW_OWNER_PID) + +class _MIB_UDPTABLE_OWNER_PID(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", MIB_UDPROW_OWNER_PID * (ANY_SIZE)), + ] +MIB_UDPTABLE_OWNER_PID = _MIB_UDPTABLE_OWNER_PID +PMIB_UDPTABLE_OWNER_PID = POINTER(_MIB_UDPTABLE_OWNER_PID) + +class _MIB_UDP6ROW_OWNER_PID(Structure): + _fields_ = [ + ("ucLocalAddr", UCHAR * (16)), + ("dwLocalScopeId", DWORD), + ("dwLocalPort", DWORD), + ("dwOwningPid", DWORD), + ] +MIB_UDP6ROW_OWNER_PID = _MIB_UDP6ROW_OWNER_PID +PMIB_UDP6ROW_OWNER_PID = POINTER(_MIB_UDP6ROW_OWNER_PID) + +class _MIB_UDP6TABLE_OWNER_PID(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", MIB_UDP6ROW_OWNER_PID * (ANY_SIZE)), + ] +PMIB_UDP6TABLE_OWNER_PID = POINTER(_MIB_UDP6TABLE_OWNER_PID) +MIB_UDP6TABLE_OWNER_PID = _MIB_UDP6TABLE_OWNER_PID + +class _MIB_TCP6ROW_OWNER_PID(Structure): + _fields_ = [ + ("ucLocalAddr", UCHAR * (16)), + ("dwLocalScopeId", DWORD), + ("dwLocalPort", DWORD), + ("ucRemoteAddr", UCHAR * (16)), + ("dwRemoteScopeId", DWORD), + ("dwRemotePort", DWORD), + ("dwState", DWORD), + ("dwOwningPid", DWORD), + ] +MIB_TCP6ROW_OWNER_PID = _MIB_TCP6ROW_OWNER_PID +PMIB_TCP6ROW_OWNER_PID = POINTER(_MIB_TCP6ROW_OWNER_PID) + +class _MIB_TCP6TABLE_OWNER_PID(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", MIB_TCP6ROW_OWNER_PID * (ANY_SIZE)), + ] +MIB_TCP6TABLE_OWNER_PID = _MIB_TCP6TABLE_OWNER_PID +PMIB_TCP6TABLE_OWNER_PID = POINTER(_MIB_TCP6TABLE_OWNER_PID) + +class _MIB_TCPROW(Structure): + _fields_ = [ + ("dwState", DWORD), + ("dwLocalAddr", DWORD), + ("dwLocalPort", DWORD), + ("dwRemoteAddr", DWORD), + ("dwRemotePort", DWORD), + ] +MIB_TCPROW = _MIB_TCPROW +PMIB_TCPROW = POINTER(_MIB_TCPROW) + +class _IP_ADAPTER_INDEX_MAP(Structure): + _fields_ = [ + ("Index", ULONG), + ("Name", WCHAR * (MAX_ADAPTER_NAME)), + ] +PIP_ADAPTER_INDEX_MAP = POINTER(_IP_ADAPTER_INDEX_MAP) +IP_ADAPTER_INDEX_MAP = _IP_ADAPTER_INDEX_MAP + +class _IP_INTERFACE_INFO(Structure): + _fields_ = [ + ("NumAdapters", LONG), + ("Adapter", IP_ADAPTER_INDEX_MAP * (1)), + ] +PIP_INTERFACE_INFO = POINTER(_IP_INTERFACE_INFO) +IP_INTERFACE_INFO = _IP_INTERFACE_INFO + +# Self referencing struct tricks +class _DNS_CACHE_ENTRY(Structure): pass +PDNS_CACHE_ENTRY = POINTER(_DNS_CACHE_ENTRY) +DNS_CACHE_ENTRY = _DNS_CACHE_ENTRY +_DNS_CACHE_ENTRY._fields_ = [ + ("pNext", POINTER(_DNS_CACHE_ENTRY)), + ("pszName", PCWSTR), + ("wType", USHORT), + ("wDataLength", USHORT), + ("dwFlags", ULONG), +] + +class DNS_A_DATA(Structure): + _fields_ = [ + ("IpAddress", IP4_ADDRESS), + ] +PDNS_A_DATA = POINTER(DNS_A_DATA) + +class DNS_PTR_DATAW(Structure): + _fields_ = [ + ("pNameHost", PWSTR), + ] +PDNS_PTR_DATAW = POINTER(DNS_PTR_DATAW) + +class DNS_PTR_DATAA(Structure): + _fields_ = [ + ("pNameHost", PSTR), + ] +PDNS_PTR_DATAA = POINTER(DNS_PTR_DATAA) + +class DNS_SOA_DATAW(Structure): + _fields_ = [ + ("pNamePrimaryServer", PWSTR), + ("pNameAdministrator", PWSTR), + ("dwSerialNo", DWORD), + ("dwRefresh", DWORD), + ("dwRetry", DWORD), + ("dwExpire", DWORD), + ("dwDefaultTtl", DWORD), + ] +PDNS_SOA_DATAW = POINTER(DNS_SOA_DATAW) + +class DNS_SOA_DATAA(Structure): + _fields_ = [ + ("pNamePrimaryServer", PSTR), + ("pNameAdministrator", PSTR), + ("dwSerialNo", DWORD), + ("dwRefresh", DWORD), + ("dwRetry", DWORD), + ("dwExpire", DWORD), + ("dwDefaultTtl", DWORD), + ] +PDNS_SOA_DATAA = POINTER(DNS_SOA_DATAA) + +class DNS_MINFO_DATAW(Structure): + _fields_ = [ + ("pNameMailbox", PWSTR), + ("pNameErrorsMailbox", PWSTR), + ] +PDNS_MINFO_DATAW = POINTER(DNS_MINFO_DATAW) + +class DNS_MINFO_DATAA(Structure): + _fields_ = [ + ("pNameMailbox", PSTR), + ("pNameErrorsMailbox", PSTR), + ] +PDNS_MINFO_DATAA = POINTER(DNS_MINFO_DATAA) + +class DNS_MX_DATAW(Structure): + _fields_ = [ + ("pNameExchange", PWSTR), + ("wPreference", WORD), + ("Pad", WORD), + ] +PDNS_MX_DATAW = POINTER(DNS_MX_DATAW) + +class DNS_MX_DATAA(Structure): + _fields_ = [ + ("pNameExchange", PSTR), + ("wPreference", WORD), + ("Pad", WORD), + ] +PDNS_MX_DATAA = POINTER(DNS_MX_DATAA) + +class DNS_TXT_DATAW(Structure): + _fields_ = [ + ("dwStringCount", DWORD), + ("pStringArray", PWSTR * (1)), + ] +PDNS_TXT_DATAW = POINTER(DNS_TXT_DATAW) + +class DNS_TXT_DATAA(Structure): + _fields_ = [ + ("dwStringCount", DWORD), + ("pStringArray", PSTR * (1)), + ] +PDNS_TXT_DATAA = POINTER(DNS_TXT_DATAA) + +class DNS_NULL_DATA(Structure): + _fields_ = [ + ("dwByteCount", DWORD), + ("Data", BYTE * (1)), + ] +PDNS_NULL_DATA = POINTER(DNS_NULL_DATA) + +class DNS_WKS_DATA(Structure): + _fields_ = [ + ("IpAddress", IP4_ADDRESS), + ("chProtocol", UCHAR), + ("BitMask", BYTE * (1)), + ] +PDNS_WKS_DATA = POINTER(DNS_WKS_DATA) + +class DNS_AAAA_DATA(Structure): + _fields_ = [ + ("Ip6Address", IP6_ADDRESS), + ] +PDNS_AAAA_DATA = POINTER(DNS_AAAA_DATA) + +class DNS_SIG_DATAW(Structure): + _fields_ = [ + ("wTypeCovered", WORD), + ("chAlgorithm", BYTE), + ("chLabelCount", BYTE), + ("dwOriginalTtl", DWORD), + ("dwExpiration", DWORD), + ("dwTimeSigned", DWORD), + ("wKeyTag", WORD), + ("wSignatureLength", WORD), + ("pNameSigner", PWSTR), + ("Signature", BYTE * (1)), + ] +DNS_RRSIG_DATAW = DNS_SIG_DATAW +PDNS_RRSIG_DATAW = POINTER(DNS_SIG_DATAW) +PDNS_SIG_DATAW = POINTER(DNS_SIG_DATAW) + +class DNS_SIG_DATAA(Structure): + _fields_ = [ + ("wTypeCovered", WORD), + ("chAlgorithm", BYTE), + ("chLabelCount", BYTE), + ("dwOriginalTtl", DWORD), + ("dwExpiration", DWORD), + ("dwTimeSigned", DWORD), + ("wKeyTag", WORD), + ("wSignatureLength", WORD), + ("pNameSigner", PSTR), + ("Signature", BYTE * (1)), + ] +PDNS_SIG_DATAA = POINTER(DNS_SIG_DATAA) +PDNS_RRSIG_DATAA = POINTER(DNS_SIG_DATAA) +DNS_RRSIG_DATAA = DNS_SIG_DATAA + +class DNS_KEY_DATA(Structure): + _fields_ = [ + ("wFlags", WORD), + ("chProtocol", BYTE), + ("chAlgorithm", BYTE), + ("wKeyLength", WORD), + ("wPad", WORD), + ("Key", BYTE * (1)), + ] +PDNS_DNSKEY_DATA = POINTER(DNS_KEY_DATA) +PDNS_KEY_DATA = POINTER(DNS_KEY_DATA) +DNS_DNSKEY_DATA = DNS_KEY_DATA + +class DNS_DHCID_DATA(Structure): + _fields_ = [ + ("dwByteCount", DWORD), + ("DHCID", BYTE * (1)), + ] +PDNS_DHCID_DATA = POINTER(DNS_DHCID_DATA) + +class DNS_NSEC_DATAW(Structure): + _fields_ = [ + ("pNextDomainName", PWSTR), + ("wTypeBitMapsLength", WORD), + ("wPad", WORD), + ("TypeBitMaps", BYTE * (1)), + ] +PDNS_NSEC_DATAW = POINTER(DNS_NSEC_DATAW) + +class DNS_NSEC_DATAA(Structure): + _fields_ = [ + ("pNextDomainName", PSTR), + ("wTypeBitMapsLength", WORD), + ("wPad", WORD), + ("TypeBitMaps", BYTE * (1)), + ] +PDNS_NSEC_DATAA = POINTER(DNS_NSEC_DATAA) + +class DNS_NSEC3_DATA(Structure): + _fields_ = [ + ("chAlgorithm", BYTE), + ("bFlags", BYTE), + ("wIterations", WORD), + ("bSaltLength", BYTE), + ("bHashLength", BYTE), + ("wTypeBitMapsLength", WORD), + ("chData", BYTE * (1)), + ] +PDNS_NSEC3_DATA = POINTER(DNS_NSEC3_DATA) + +class DNS_NSEC3PARAM_DATA(Structure): + _fields_ = [ + ("chAlgorithm", BYTE), + ("bFlags", BYTE), + ("wIterations", WORD), + ("bSaltLength", BYTE), + ("bPad", BYTE * (3)), + ("pbSalt", BYTE * (1)), + ] +PDNS_NSEC3PARAM_DATA = POINTER(DNS_NSEC3PARAM_DATA) + +class DNS_DS_DATA(Structure): + _fields_ = [ + ("wKeyTag", WORD), + ("chAlgorithm", BYTE), + ("chDigestType", BYTE), + ("wDigestLength", WORD), + ("wPad", WORD), + ("Digest", BYTE * (1)), + ] +PDNS_DS_DATA = POINTER(DNS_DS_DATA) + +class DNS_OPT_DATA(Structure): + _fields_ = [ + ("wDataLength", WORD), + ("wPad", WORD), + ("Data", BYTE * (1)), + ] +PDNS_OPT_DATA = POINTER(DNS_OPT_DATA) + +class DNS_LOC_DATA(Structure): + _fields_ = [ + ("wVersion", WORD), + ("wSize", WORD), + ("wHorPrec", WORD), + ("wVerPrec", WORD), + ("dwLatitude", DWORD), + ("dwLongitude", DWORD), + ("dwAltitude", DWORD), + ] +PDNS_LOC_DATA = POINTER(DNS_LOC_DATA) + +class DNS_NXT_DATAW(Structure): + _fields_ = [ + ("pNameNext", PWSTR), + ("wNumTypes", WORD), + ("wTypes", WORD * (1)), + ] +PDNS_NXT_DATAW = POINTER(DNS_NXT_DATAW) + +class DNS_NXT_DATAA(Structure): + _fields_ = [ + ("pNameNext", PSTR), + ("wNumTypes", WORD), + ("wTypes", WORD * (1)), + ] +PDNS_NXT_DATAA = POINTER(DNS_NXT_DATAA) + +class DNS_SRV_DATAW(Structure): + _fields_ = [ + ("pNameTarget", PWSTR), + ("wPriority", WORD), + ("wWeight", WORD), + ("wPort", WORD), + ("Pad", WORD), + ] +PDNS_SRV_DATAW = POINTER(DNS_SRV_DATAW) + +class DNS_SRV_DATAA(Structure): + _fields_ = [ + ("pNameTarget", PSTR), + ("wPriority", WORD), + ("wWeight", WORD), + ("wPort", WORD), + ("Pad", WORD), + ] +PDNS_SRV_DATAA = POINTER(DNS_SRV_DATAA) + +class DNS_NAPTR_DATAW(Structure): + _fields_ = [ + ("wOrder", WORD), + ("wPreference", WORD), + ("pFlags", PWSTR), + ("pService", PWSTR), + ("pRegularExpression", PWSTR), + ("pReplacement", PWSTR), + ] +PDNS_NAPTR_DATAW = POINTER(DNS_NAPTR_DATAW) + +class DNS_NAPTR_DATAA(Structure): + _fields_ = [ + ("wOrder", WORD), + ("wPreference", WORD), + ("pFlags", PSTR), + ("pService", PSTR), + ("pRegularExpression", PSTR), + ("pReplacement", PSTR), + ] +PDNS_NAPTR_DATAA = POINTER(DNS_NAPTR_DATAA) + +class DNS_ATMA_DATA(Structure): + _fields_ = [ + ("AddressType", BYTE), + ("Address", BYTE * (DNS_ATMA_MAX_ADDR_LENGTH)), + ] +PDNS_ATMA_DATA = POINTER(DNS_ATMA_DATA) + +class DNS_TKEY_DATAW(Structure): + _fields_ = [ + ("pNameAlgorithm", PWSTR), + ("pAlgorithmPacket", PBYTE), + ("pKey", PBYTE), + ("pOtherData", PBYTE), + ("dwCreateTime", DWORD), + ("dwExpireTime", DWORD), + ("wMode", WORD), + ("wError", WORD), + ("wKeyLength", WORD), + ("wOtherLength", WORD), + ("cAlgNameLength", UCHAR), + ("bPacketPointers", BOOL), + ] +PDNS_TKEY_DATAW = POINTER(DNS_TKEY_DATAW) + +class DNS_TKEY_DATAA(Structure): + _fields_ = [ + ("pNameAlgorithm", PSTR), + ("pAlgorithmPacket", PBYTE), + ("pKey", PBYTE), + ("pOtherData", PBYTE), + ("dwCreateTime", DWORD), + ("dwExpireTime", DWORD), + ("wMode", WORD), + ("wError", WORD), + ("wKeyLength", WORD), + ("wOtherLength", WORD), + ("cAlgNameLength", UCHAR), + ("bPacketPointers", BOOL), + ] +PDNS_TKEY_DATAA = POINTER(DNS_TKEY_DATAA) + +class DNS_TSIG_DATAW(Structure): + _fields_ = [ + ("pNameAlgorithm", PWSTR), + ("pAlgorithmPacket", PBYTE), + ("pSignature", PBYTE), + ("pOtherData", PBYTE), + ("i64CreateTime", LONGLONG), + ("wFudgeTime", WORD), + ("wOriginalXid", WORD), + ("wError", WORD), + ("wSigLength", WORD), + ("wOtherLength", WORD), + ("cAlgNameLength", UCHAR), + ("bPacketPointers", BOOL), + ] +PDNS_TSIG_DATAW = POINTER(DNS_TSIG_DATAW) + +class DNS_TSIG_DATAA(Structure): + _fields_ = [ + ("pNameAlgorithm", PSTR), + ("pAlgorithmPacket", PBYTE), + ("pSignature", PBYTE), + ("pOtherData", PBYTE), + ("i64CreateTime", LONGLONG), + ("wFudgeTime", WORD), + ("wOriginalXid", WORD), + ("wError", WORD), + ("wSigLength", WORD), + ("wOtherLength", WORD), + ("cAlgNameLength", UCHAR), + ("bPacketPointers", BOOL), + ] +PDNS_TSIG_DATAA = POINTER(DNS_TSIG_DATAA) + +class DNS_WINS_DATA(Structure): + _fields_ = [ + ("dwMappingFlag", DWORD), + ("dwLookupTimeout", DWORD), + ("dwCacheTimeout", DWORD), + ("cWinsServerCount", DWORD), + ("WinsServers", IP4_ADDRESS * (1)), + ] +PDNS_WINS_DATA = POINTER(DNS_WINS_DATA) + +class DNS_WINSR_DATAW(Structure): + _fields_ = [ + ("dwMappingFlag", DWORD), + ("dwLookupTimeout", DWORD), + ("dwCacheTimeout", DWORD), + ("pNameResultDomain", PWSTR), + ] +PDNS_WINSR_DATAW = POINTER(DNS_WINSR_DATAW) + +class DNS_WINSR_DATAA(Structure): + _fields_ = [ + ("dwMappingFlag", DWORD), + ("dwLookupTimeout", DWORD), + ("dwCacheTimeout", DWORD), + ("pNameResultDomain", PSTR), + ] +PDNS_WINSR_DATAA = POINTER(DNS_WINSR_DATAA) + +class DNS_TLSA_DATA(Structure): + _fields_ = [ + ("bCertUsage", BYTE), + ("bSelector", BYTE), + ("bMatchingType", BYTE), + ("bCertificateAssociationDataLength", WORD), + ("bPad", BYTE * (3)), + ("bCertificateAssociationData", BYTE * (1)), + ] +PDNS_TLSA_DATA = POINTER(DNS_TLSA_DATA) + +class DNS_UNKNOWN_DATA(Structure): + _fields_ = [ + ("dwByteCount", DWORD), + ("bData", BYTE * (1)), + ] +PDNS_UNKNOWN_DATA = POINTER(DNS_UNKNOWN_DATA) + +class _DnsRecordFlags(Structure): + _fields_ = [ + ("Section", DWORD, 2), + ("Delete", DWORD, 1), + ("CharSet", DWORD, 2), + ("Unused", DWORD, 3), + ("Reserved", DWORD, 24), + ] +DNS_RECORD_FLAGS = _DnsRecordFlags + +class _ANON__DNSRECORDA_SUB_UNION_1(Union): + _fields_ = [ + ("DW", DWORD), + ("S", DNS_RECORD_FLAGS), + ] + + +class _ANON__DNSRECORDA_SUB_UNION_2(Union): + _fields_ = [ + ("A", DNS_A_DATA), + ("SOA", DNS_SOA_DATAA), + ("Soa", DNS_SOA_DATAA), + ("PTR", DNS_PTR_DATAA), + ("Ptr", DNS_PTR_DATAA), + ("NS", DNS_PTR_DATAA), + ("Ns", DNS_PTR_DATAA), + ("CNAME", DNS_PTR_DATAA), + ("Cname", DNS_PTR_DATAA), + ("DNAME", DNS_PTR_DATAA), + ("Dname", DNS_PTR_DATAA), + ("MB", DNS_PTR_DATAA), + ("Mb", DNS_PTR_DATAA), + ("MD", DNS_PTR_DATAA), + ("Md", DNS_PTR_DATAA), + ("MF", DNS_PTR_DATAA), + ("Mf", DNS_PTR_DATAA), + ("MG", DNS_PTR_DATAA), + ("Mg", DNS_PTR_DATAA), + ("MR", DNS_PTR_DATAA), + ("Mr", DNS_PTR_DATAA), + ("MINFO", DNS_MINFO_DATAA), + ("Minfo", DNS_MINFO_DATAA), + ("RP", DNS_MINFO_DATAA), + ("Rp", DNS_MINFO_DATAA), + ("MX", DNS_MX_DATAA), + ("Mx", DNS_MX_DATAA), + ("AFSDB", DNS_MX_DATAA), + ("Afsdb", DNS_MX_DATAA), + ("RT", DNS_MX_DATAA), + ("Rt", DNS_MX_DATAA), + ("HINFO", DNS_TXT_DATAA), + ("Hinfo", DNS_TXT_DATAA), + ("ISDN", DNS_TXT_DATAA), + ("Isdn", DNS_TXT_DATAA), + ("TXT", DNS_TXT_DATAA), + ("Txt", DNS_TXT_DATAA), + ("X25", DNS_TXT_DATAA), + ("Null", DNS_NULL_DATA), + ("WKS", DNS_WKS_DATA), + ("Wks", DNS_WKS_DATA), + ("AAAA", DNS_AAAA_DATA), + ("KEY", DNS_KEY_DATA), + ("Key", DNS_KEY_DATA), + ("SIG", DNS_SIG_DATAA), + ("Sig", DNS_SIG_DATAA), + ("ATMA", DNS_ATMA_DATA), + ("Atma", DNS_ATMA_DATA), + ("NXT", DNS_NXT_DATAA), + ("Nxt", DNS_NXT_DATAA), + ("SRV", DNS_SRV_DATAA), + ("Srv", DNS_SRV_DATAA), + ("NAPTR", DNS_NAPTR_DATAA), + ("Naptr", DNS_NAPTR_DATAA), + ("OPT", DNS_OPT_DATA), + ("Opt", DNS_OPT_DATA), + ("DS", DNS_DS_DATA), + ("Ds", DNS_DS_DATA), + ("RRSIG", DNS_RRSIG_DATAA), + ("Rrsig", DNS_RRSIG_DATAA), + ("NSEC", DNS_NSEC_DATAA), + ("Nsec", DNS_NSEC_DATAA), + ("DNSKEY", DNS_DNSKEY_DATA), + ("Dnskey", DNS_DNSKEY_DATA), + ("TKEY", DNS_TKEY_DATAA), + ("Tkey", DNS_TKEY_DATAA), + ("TSIG", DNS_TSIG_DATAA), + ("Tsig", DNS_TSIG_DATAA), + ("WINS", DNS_WINS_DATA), + ("Wins", DNS_WINS_DATA), + ("WINSR", DNS_WINSR_DATAA), + ("WinsR", DNS_WINSR_DATAA), + ("NBSTAT", DNS_WINSR_DATAA), + ("Nbstat", DNS_WINSR_DATAA), + ("DHCID", DNS_DHCID_DATA), + ("NSEC3", DNS_NSEC3_DATA), + ("Nsec3", DNS_NSEC3_DATA), + ("NSEC3PARAM", DNS_NSEC3PARAM_DATA), + ("Nsec3Param", DNS_NSEC3PARAM_DATA), + ("TLSA", DNS_TLSA_DATA), + ("Tlsa", DNS_TLSA_DATA), + ("UNKNOWN", DNS_UNKNOWN_DATA), + ("Unknown", DNS_UNKNOWN_DATA), + ("pDataPtr", PBYTE), + ] + +# Self referencing struct tricks +class _DnsRecordA(Structure): pass +PDNS_RECORDA = POINTER(_DnsRecordA) +DNS_RECORDA = _DnsRecordA +_DnsRecordA._fields_ = [ + ("pNext", POINTER(_DnsRecordA)), + ("pName", PSTR), + ("wType", WORD), + ("wDataLength", WORD), + ("Flags", _ANON__DNSRECORDA_SUB_UNION_1), + ("dwTtl", DWORD), + ("dwReserved", DWORD), + ("Data", _ANON__DNSRECORDA_SUB_UNION_2), +] + +class _ANON__DNSRECORDW_SUB_UNION_1(Union): + _fields_ = [ + ("DW", DWORD), + ("S", DNS_RECORD_FLAGS), + ] + + +class _ANON__DNSRECORDW_SUB_UNION_2(Union): + _fields_ = [ + ("A", DNS_A_DATA), + ("SOA", DNS_SOA_DATAW), + ("Soa", DNS_SOA_DATAW), + ("PTR", DNS_PTR_DATAW), + ("Ptr", DNS_PTR_DATAW), + ("NS", DNS_PTR_DATAW), + ("Ns", DNS_PTR_DATAW), + ("CNAME", DNS_PTR_DATAW), + ("Cname", DNS_PTR_DATAW), + ("DNAME", DNS_PTR_DATAW), + ("Dname", DNS_PTR_DATAW), + ("MB", DNS_PTR_DATAW), + ("Mb", DNS_PTR_DATAW), + ("MD", DNS_PTR_DATAW), + ("Md", DNS_PTR_DATAW), + ("MF", DNS_PTR_DATAW), + ("Mf", DNS_PTR_DATAW), + ("MG", DNS_PTR_DATAW), + ("Mg", DNS_PTR_DATAW), + ("MR", DNS_PTR_DATAW), + ("Mr", DNS_PTR_DATAW), + ("MINFO", DNS_MINFO_DATAW), + ("Minfo", DNS_MINFO_DATAW), + ("RP", DNS_MINFO_DATAW), + ("Rp", DNS_MINFO_DATAW), + ("MX", DNS_MX_DATAW), + ("Mx", DNS_MX_DATAW), + ("AFSDB", DNS_MX_DATAW), + ("Afsdb", DNS_MX_DATAW), + ("RT", DNS_MX_DATAW), + ("Rt", DNS_MX_DATAW), + ("HINFO", DNS_TXT_DATAW), + ("Hinfo", DNS_TXT_DATAW), + ("ISDN", DNS_TXT_DATAW), + ("Isdn", DNS_TXT_DATAW), + ("TXT", DNS_TXT_DATAW), + ("Txt", DNS_TXT_DATAW), + ("X25", DNS_TXT_DATAW), + ("Null", DNS_NULL_DATA), + ("WKS", DNS_WKS_DATA), + ("Wks", DNS_WKS_DATA), + ("AAAA", DNS_AAAA_DATA), + ("KEY", DNS_KEY_DATA), + ("Key", DNS_KEY_DATA), + ("SIG", DNS_SIG_DATAW), + ("Sig", DNS_SIG_DATAW), + ("ATMA", DNS_ATMA_DATA), + ("Atma", DNS_ATMA_DATA), + ("NXT", DNS_NXT_DATAW), + ("Nxt", DNS_NXT_DATAW), + ("SRV", DNS_SRV_DATAW), + ("Srv", DNS_SRV_DATAW), + ("NAPTR", DNS_NAPTR_DATAW), + ("Naptr", DNS_NAPTR_DATAW), + ("OPT", DNS_OPT_DATA), + ("Opt", DNS_OPT_DATA), + ("DS", DNS_DS_DATA), + ("Ds", DNS_DS_DATA), + ("RRSIG", DNS_RRSIG_DATAW), + ("Rrsig", DNS_RRSIG_DATAW), + ("NSEC", DNS_NSEC_DATAW), + ("Nsec", DNS_NSEC_DATAW), + ("DNSKEY", DNS_DNSKEY_DATA), + ("Dnskey", DNS_DNSKEY_DATA), + ("TKEY", DNS_TKEY_DATAW), + ("Tkey", DNS_TKEY_DATAW), + ("TSIG", DNS_TSIG_DATAW), + ("Tsig", DNS_TSIG_DATAW), + ("WINS", DNS_WINS_DATA), + ("Wins", DNS_WINS_DATA), + ("WINSR", DNS_WINSR_DATAW), + ("WinsR", DNS_WINSR_DATAW), + ("NBSTAT", DNS_WINSR_DATAW), + ("Nbstat", DNS_WINSR_DATAW), + ("DHCID", DNS_DHCID_DATA), + ("NSEC3", DNS_NSEC3_DATA), + ("Nsec3", DNS_NSEC3_DATA), + ("NSEC3PARAM", DNS_NSEC3PARAM_DATA), + ("Nsec3Param", DNS_NSEC3PARAM_DATA), + ("TLSA", DNS_TLSA_DATA), + ("Tlsa", DNS_TLSA_DATA), + ("UNKNOWN", DNS_UNKNOWN_DATA), + ("Unknown", DNS_UNKNOWN_DATA), + ("pDataPtr", PBYTE), + ] + +# Self referencing struct tricks +class _DnsRecordW(Structure): pass +DNS_RECORDW = _DnsRecordW +PDNS_RECORDW = POINTER(_DnsRecordW) +_DnsRecordW._fields_ = [ + ("pNext", POINTER(_DnsRecordW)), + ("pName", PWSTR), + ("wType", WORD), + ("wDataLength", WORD), + ("Flags", _ANON__DNSRECORDW_SUB_UNION_1), + ("dwTtl", DWORD), + ("dwReserved", DWORD), + ("Data", _ANON__DNSRECORDW_SUB_UNION_2), +] + +class _DnsAddr(Structure): + _fields_ = [ + ("MaxSa", CHAR * (DNS_ADDR_MAX_SOCKADDR_LENGTH)), + ("DnsAddrUserDword", DWORD * (8)), + ] +PDNS_ADDR = POINTER(_DnsAddr) +DNS_ADDR = _DnsAddr + +class _DnsAddrArray(Structure): + _fields_ = [ + ("MaxCount", DWORD), + ("AddrCount", DWORD), + ("Tag", DWORD), + ("Family", WORD), + ("WordReserved", WORD), + ("Flags", DWORD), + ("MatchFlag", DWORD), + ("Reserved1", DWORD), + ("Reserved2", DWORD), + ("AddrArray", DNS_ADDR * (ANY_SIZE)), + ] +PDNS_ADDR_ARRAY = POINTER(_DnsAddrArray) +DNS_ADDR_ARRAY = _DnsAddrArray + +class _DNS_QUERY_REQUEST(Structure): + _fields_ = [ + ("Version", ULONG), + ("QueryName", PCWSTR), + ("QueryType", WORD), + ("QueryOptions", ULONG64), + ("pDnsServerList", PDNS_ADDR_ARRAY), + ("InterfaceIndex", ULONG), + ("pQueryCompletionCallback", PDNS_QUERY_COMPLETION_ROUTINE), + ("pQueryContext", PVOID), + ] +PDNS_QUERY_REQUEST = POINTER(_DNS_QUERY_REQUEST) +DNS_QUERY_REQUEST = _DNS_QUERY_REQUEST + +class _DNS_QUERY_CANCEL(Structure): + _fields_ = [ + ("Reserved", CHAR * (32)), + ] +PDNS_QUERY_CANCEL = POINTER(_DNS_QUERY_CANCEL) +DNS_QUERY_CANCEL = _DNS_QUERY_CANCEL + +class _DNS_QUERY_RESULT(Structure): + _fields_ = [ + ("Version", ULONG), + ("QueryStatus", DNS_STATUS), + ("QueryOptions", ULONG64), + ("pQueryRecords", PVOID), + ("Reserved", PVOID), + ] +DNS_QUERY_RESULT = _DNS_QUERY_RESULT +PDNS_QUERY_RESULT = POINTER(_DNS_QUERY_RESULT) + +class IP_ADDRESS_STRING(Structure): + _fields_ = [ + ("String", CHAR * (4 * 4)), + ] +IP_MASK_STRING = IP_ADDRESS_STRING +PIP_MASK_STRING = POINTER(IP_ADDRESS_STRING) +PIP_ADDRESS_STRING = POINTER(IP_ADDRESS_STRING) + +# Self referencing struct tricks +class _IP_ADDR_STRING(Structure): pass +PIP_ADDR_STRING = POINTER(_IP_ADDR_STRING) +IP_ADDR_STRING = _IP_ADDR_STRING +_IP_ADDR_STRING._fields_ = [ + ("Next", POINTER(_IP_ADDR_STRING)), + ("IpAddress", IP_ADDRESS_STRING), + ("IpMask", IP_MASK_STRING), + ("Context", DWORD), +] + +# Self referencing struct tricks +class _IP_ADAPTER_INFO(Structure): pass +IP_ADAPTER_INFO = _IP_ADAPTER_INFO +PIP_ADAPTER_INFO = POINTER(_IP_ADAPTER_INFO) +_IP_ADAPTER_INFO._fields_ = [ + ("Next", POINTER(_IP_ADAPTER_INFO)), + ("ComboIndex", DWORD), + ("AdapterName", CHAR * (MAX_ADAPTER_NAME_LENGTH + 4)), + ("Description", CHAR * (MAX_ADAPTER_DESCRIPTION_LENGTH + 4)), + ("AddressLength", UINT), + ("Address", BYTE * (MAX_ADAPTER_ADDRESS_LENGTH)), + ("Index", DWORD), + ("Type", UINT), + ("DhcpEnabled", UINT), + ("CurrentIpAddress", PIP_ADDR_STRING), + ("IpAddressList", IP_ADDR_STRING), + ("GatewayList", IP_ADDR_STRING), + ("DhcpServer", IP_ADDR_STRING), + ("HaveWins", BOOL), + ("PrimaryWinsServer", IP_ADDR_STRING), + ("SecondaryWinsServer", IP_ADDR_STRING), + ("LeaseObtained", ULONGLONG), + ("LeaseExpires", ULONGLONG), +] + +class _IP_PER_ADAPTER_INFO_W2KSP1(Structure): + _fields_ = [ + ("AutoconfigEnabled", UINT), + ("AutoconfigActive", UINT), + ("CurrentDnsServer", PIP_ADDR_STRING), + ("DnsServerList", IP_ADDR_STRING), + ] +PIP_PER_ADAPTER_INFO = POINTER(_IP_PER_ADAPTER_INFO_W2KSP1) +IP_PER_ADAPTER_INFO = _IP_PER_ADAPTER_INFO_W2KSP1 +PIP_PER_ADAPTER_INFO_W2KSP1 = POINTER(_IP_PER_ADAPTER_INFO_W2KSP1) +IP_PER_ADAPTER_INFO_W2KSP1 = _IP_PER_ADAPTER_INFO_W2KSP1 + +KeyValueBasicInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValueBasicInformation", 0x0) +KeyValueFullInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValueFullInformation", 0x1) +KeyValuePartialInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValuePartialInformation", 0x2) +KeyValueFullInformationAlign64 = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValueFullInformationAlign64", 0x3) +KeyValuePartialInformationAlign64 = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValuePartialInformationAlign64", 0x4) +KeyValueLayerInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValueLayerInformation", 0x5) +MaxKeyValueInfoClass = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "MaxKeyValueInfoClass", 0x6) +class _KEY_VALUE_INFORMATION_CLASS(EnumType): + values = [KeyValueBasicInformation, KeyValueFullInformation, KeyValuePartialInformation, KeyValueFullInformationAlign64, KeyValuePartialInformationAlign64, KeyValueLayerInformation, MaxKeyValueInfoClass] + mapper = FlagMapper(*values) +KEY_VALUE_INFORMATION_CLASS = _KEY_VALUE_INFORMATION_CLASS + + +KeyBasicInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyBasicInformation", 0x0) +KeyNodeInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyNodeInformation", 0x1) +KeyFullInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyFullInformation", 0x2) +KeyNameInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyNameInformation", 0x3) +KeyCachedInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyCachedInformation", 0x4) +KeyFlagsInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyFlagsInformation", 0x5) +KeyVirtualizationInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyVirtualizationInformation", 0x6) +KeyHandleTagsInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyHandleTagsInformation", 0x7) +KeyTrustInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyTrustInformation", 0x8) +KeyLayerInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyLayerInformation", 0x9) +MaxKeyInfoClass = EnumValue("_KEY_INFORMATION_CLASS", "MaxKeyInfoClass", 0xa) +class _KEY_INFORMATION_CLASS(EnumType): + values = [KeyBasicInformation, KeyNodeInformation, KeyFullInformation, KeyNameInformation, KeyCachedInformation, KeyFlagsInformation, KeyVirtualizationInformation, KeyHandleTagsInformation, KeyTrustInformation, KeyLayerInformation, MaxKeyInfoClass] + mapper = FlagMapper(*values) +KEY_INFORMATION_CLASS = _KEY_INFORMATION_CLASS + + +class _KEY_VALUE_BASIC_INFORMATION(Structure): + _fields_ = [ + ("TitleIndex", ULONG), + ("Type", ULONG), + ("NameLength", ULONG), + ("Name", WCHAR * (1)), + ] +PKEY_VALUE_BASIC_INFORMATION = POINTER(_KEY_VALUE_BASIC_INFORMATION) +KEY_VALUE_BASIC_INFORMATION = _KEY_VALUE_BASIC_INFORMATION + +class _KEY_VALUE_FULL_INFORMATION(Structure): + _fields_ = [ + ("TitleIndex", ULONG), + ("Type", ULONG), + ("DataOffset", ULONG), + ("DataLength", ULONG), + ("NameLength", ULONG), + ("Name", WCHAR * (1)), + ] +KEY_VALUE_FULL_INFORMATION = _KEY_VALUE_FULL_INFORMATION +PKEY_VALUE_FULL_INFORMATION = POINTER(_KEY_VALUE_FULL_INFORMATION) + +class _KEY_VALUE_PARTIAL_INFORMATION(Structure): + _fields_ = [ + ("TitleIndex", ULONG), + ("Type", ULONG), + ("DataLength", ULONG), + ("Data", UCHAR * (1)), + ] +PKEY_VALUE_PARTIAL_INFORMATION = POINTER(_KEY_VALUE_PARTIAL_INFORMATION) +KEY_VALUE_PARTIAL_INFORMATION = _KEY_VALUE_PARTIAL_INFORMATION + +SC_STATUS_PROCESS_INFO = EnumValue("_SC_STATUS_TYPE", "SC_STATUS_PROCESS_INFO", 0x0) +class _SC_STATUS_TYPE(EnumType): + values = [SC_STATUS_PROCESS_INFO] + mapper = FlagMapper(*values) +SC_STATUS_TYPE = _SC_STATUS_TYPE + + +SC_ENUM_PROCESS_INFO = EnumValue("_SC_ENUM_TYPE", "SC_ENUM_PROCESS_INFO", 0x0) +class _SC_ENUM_TYPE(EnumType): + values = [SC_ENUM_PROCESS_INFO] + mapper = FlagMapper(*values) +SC_ENUM_TYPE = _SC_ENUM_TYPE + + +class _SERVICE_STATUS(Structure): + _fields_ = [ + ("dwServiceType", DWORD), + ("dwCurrentState", DWORD), + ("dwControlsAccepted", DWORD), + ("dwWin32ExitCode", DWORD), + ("dwServiceSpecificExitCode", DWORD), + ("dwCheckPoint", DWORD), + ("dwWaitHint", DWORD), + ] +SERVICE_STATUS = _SERVICE_STATUS +LPSERVICE_STATUS = POINTER(_SERVICE_STATUS) + +class _SERVICE_STATUS_PROCESS(Structure): + _fields_ = [ + ("dwServiceType", DWORD), + ("dwCurrentState", DWORD), + ("dwControlsAccepted", DWORD), + ("dwWin32ExitCode", DWORD), + ("dwServiceSpecificExitCode", DWORD), + ("dwCheckPoint", DWORD), + ("dwWaitHint", DWORD), + ("dwProcessId", DWORD), + ("dwServiceFlags", DWORD), + ] +LPSERVICE_STATUS_PROCESS = POINTER(_SERVICE_STATUS_PROCESS) +SERVICE_STATUS_PROCESS = _SERVICE_STATUS_PROCESS + +class _SERVICE_STATUS_PROCESS(_SERVICE_STATUS_PROCESS): + + SERVICE_STATE = FlagMapper(SERVICE_STOPPED, + SERVICE_START_PENDING, + SERVICE_STOP_PENDING, + SERVICE_RUNNING, + SERVICE_CONTINUE_PENDING, + SERVICE_PAUSE_PENDING, + SERVICE_PAUSED) + + SERVICE_TYPE = FlagMapper(SERVICE_KERNEL_DRIVER, + SERVICE_FILE_SYSTEM_DRIVER, + SERVICE_WIN32_OWN_PROCESS, + SERVICE_WIN32_SHARE_PROCESS, + SERVICE_INTERACTIVE_PROCESS) + + SERVICE_CONTROLE_ACCEPTED = FlagMapper() + + SERVICE_FLAGS = FlagMapper(SERVICE_RUNS_IN_SYSTEM_PROCESS) + + + @property + def dwCurrentState(self): + return self.SERVICE_STATE[super(_SERVICE_STATUS_PROCESS, self).dwCurrentState] + + @property + def dwServiceType(self): + return self.SERVICE_TYPE[super(_SERVICE_STATUS_PROCESS, self).dwServiceType] + + @property + def dwControlsAccepted(self): + return self.SERVICE_CONTROLE_ACCEPTED[super(_SERVICE_STATUS_PROCESS, self).dwControlsAccepted] + + @property + def dwServiceFlags(self): + return self.SERVICE_FLAGS[super(_SERVICE_STATUS_PROCESS, self).dwServiceFlags] + + # Python friendly names + state = dwCurrentState + type = dwServiceType + control_accepted = dwControlsAccepted + flags = dwServiceFlags + + + def __repr__(self): + return """<{0} type={1!r} state={2!r}>""".format(type(self).__name__, + self.type, + self.state) +LPSERVICE_STATUS_PROCESS = POINTER(_SERVICE_STATUS_PROCESS) +SERVICE_STATUS_PROCESS = _SERVICE_STATUS_PROCESS +class _ENUM_SERVICE_STATUS_PROCESSA(Structure): + _fields_ = [ + ("lpServiceName", LPSTR), + ("lpDisplayName", LPSTR), + ("ServiceStatusProcess", SERVICE_STATUS_PROCESS), + ] +LPENUM_SERVICE_STATUS_PROCESSA = POINTER(_ENUM_SERVICE_STATUS_PROCESSA) +ENUM_SERVICE_STATUS_PROCESSA = _ENUM_SERVICE_STATUS_PROCESSA + +class _ENUM_SERVICE_STATUS_PROCESSW(Structure): + _fields_ = [ + ("lpServiceName", LPWSTR), + ("lpDisplayName", LPWSTR), + ("ServiceStatusProcess", SERVICE_STATUS_PROCESS), + ] +ENUM_SERVICE_STATUS_PROCESSW = _ENUM_SERVICE_STATUS_PROCESSW +LPENUM_SERVICE_STATUS_PROCESSW = POINTER(_ENUM_SERVICE_STATUS_PROCESSW) + +class _ENUM_SERVICE_STATUSA(Structure): + _fields_ = [ + ("lpServiceName", LPSTR), + ("lpDisplayName", LPSTR), + ("ServiceStatus", SERVICE_STATUS), + ] +LPENUM_SERVICE_STATUSA = POINTER(_ENUM_SERVICE_STATUSA) +ENUM_SERVICE_STATUSA = _ENUM_SERVICE_STATUSA + +class _ENUM_SERVICE_STATUSW(Structure): + _fields_ = [ + ("lpServiceName", LPWSTR), + ("lpDisplayName", LPWSTR), + ("ServiceStatus", SERVICE_STATUS), + ] +ENUM_SERVICE_STATUSW = _ENUM_SERVICE_STATUSW +LPENUM_SERVICE_STATUSW = POINTER(_ENUM_SERVICE_STATUSW) + +class _QUERY_SERVICE_CONFIGA(Structure): + _fields_ = [ + ("dwServiceType", DWORD), + ("dwStartType", DWORD), + ("dwErrorControl", DWORD), + ("lpBinaryPathName", LPSTR), + ("lpLoadOrderGroup", LPSTR), + ("dwTagId", DWORD), + ("lpDependencies", LPSTR), + ("lpServiceStartName", LPSTR), + ("lpDisplayName", LPSTR), + ] +QUERY_SERVICE_CONFIGA = _QUERY_SERVICE_CONFIGA +LPQUERY_SERVICE_CONFIGA = POINTER(_QUERY_SERVICE_CONFIGA) + +class _QUERY_SERVICE_CONFIGW(Structure): + _fields_ = [ + ("dwServiceType", DWORD), + ("dwStartType", DWORD), + ("dwErrorControl", DWORD), + ("lpBinaryPathName", LPWSTR), + ("lpLoadOrderGroup", LPWSTR), + ("dwTagId", DWORD), + ("lpDependencies", LPWSTR), + ("lpServiceStartName", LPWSTR), + ("lpDisplayName", LPWSTR), + ] +LPQUERY_SERVICE_CONFIGW = POINTER(_QUERY_SERVICE_CONFIGW) +QUERY_SERVICE_CONFIGW = _QUERY_SERVICE_CONFIGW + +class _SERVICE_TABLE_ENTRYA(Structure): + _fields_ = [ + ("lpServiceName", LPSTR), + ("lpServiceProc", LPSERVICE_MAIN_FUNCTIONA), + ] +LPSERVICE_TABLE_ENTRYA = POINTER(_SERVICE_TABLE_ENTRYA) +SERVICE_TABLE_ENTRYA = _SERVICE_TABLE_ENTRYA + +class _SERVICE_TABLE_ENTRYW(Structure): + _fields_ = [ + ("lpServiceName", LPWSTR), + ("lpServiceProc", LPSERVICE_MAIN_FUNCTIONW), + ] +SERVICE_TABLE_ENTRYW = _SERVICE_TABLE_ENTRYW +LPSERVICE_TABLE_ENTRYW = POINTER(_SERVICE_TABLE_ENTRYW) + +class _SP_DEVICE_INTERFACE_DATA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("InterfaceClassGuid", GUID), + ("Flags", DWORD), + ("Reserved", ULONG_PTR), + ] +PSP_DEVICE_INTERFACE_DATA = POINTER(_SP_DEVICE_INTERFACE_DATA) +SP_DEVICE_INTERFACE_DATA = _SP_DEVICE_INTERFACE_DATA + +class _SP_DEVINFO_DATA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("ClassGuid", GUID), + ("DevInst", DWORD), + ("Reserved", ULONG_PTR), + ] +PSP_DEVINFO_DATA = POINTER(_SP_DEVINFO_DATA) +SP_DEVINFO_DATA = _SP_DEVINFO_DATA + +AO_NONE = EnumValue("ACTIVATEOPTIONS", "AO_NONE", 0x0) +AO_DESIGNMODE = EnumValue("ACTIVATEOPTIONS", "AO_DESIGNMODE", 0x1) +AO_NOERRORUI = EnumValue("ACTIVATEOPTIONS", "AO_NOERRORUI", 0x2) +AO_NOSPLASHSCREEN = EnumValue("ACTIVATEOPTIONS", "AO_NOSPLASHSCREEN", 0x4) +AO_PRELAUNCH = EnumValue("ACTIVATEOPTIONS", "AO_PRELAUNCH", 0x2000000) +class ACTIVATEOPTIONS(EnumType): + values = [AO_NONE, AO_DESIGNMODE, AO_NOERRORUI, AO_NOSPLASHSCREEN, AO_PRELAUNCH] + mapper = FlagMapper(*values) + + +PES_UNKNOWN = EnumValue("PACKAGE_EXECUTION_STATE", "PES_UNKNOWN", 0x0) +PES_RUNNING = EnumValue("PACKAGE_EXECUTION_STATE", "PES_RUNNING", 0x1) +PES_SUSPENDING = EnumValue("PACKAGE_EXECUTION_STATE", "PES_SUSPENDING", 0x2) +PES_SUSPENDED = EnumValue("PACKAGE_EXECUTION_STATE", "PES_SUSPENDED", 0x3) +PES_TERMINATED = EnumValue("PACKAGE_EXECUTION_STATE", "PES_TERMINATED", 0x4) +class PACKAGE_EXECUTION_STATE(EnumType): + values = [PES_UNKNOWN, PES_RUNNING, PES_SUSPENDING, PES_SUSPENDED, PES_TERMINATED] + mapper = FlagMapper(*values) + + +class _SHITEMID(Structure): + _fields_ = [ + ("cb", USHORT), + ("abID", BYTE * (1)), + ] +SHITEMID = _SHITEMID + +class _ITEMIDLIST(Structure): + _fields_ = [ + ("mkid", SHITEMID), + ] +ITEMIDLIST = _ITEMIDLIST +PCIDLIST_ABSOLUTE = POINTER(_ITEMIDLIST) +PIDLIST_ABSOLUTE = POINTER(_ITEMIDLIST) + +class _SHFILEOPSTRUCTA(Structure): + _fields_ = [ + ("hwnd", HWND), + ("wFunc", UINT), + ("pFrom", PCSTR), + ("pTo", PCSTR), + ("fFlags", FILEOP_FLAGS), + ("fAnyOperationsAborted", BOOL), + ("hNameMappings", LPVOID), + ("lpszProgressTitle", PCSTR), + ] +SHFILEOPSTRUCTA = _SHFILEOPSTRUCTA +LPSHFILEOPSTRUCTA = POINTER(_SHFILEOPSTRUCTA) + +SymNone = EnumValue("SYM_TYPE", "SymNone", 0x0) +SymCoff = EnumValue("SYM_TYPE", "SymCoff", 0x1) +SymCv = EnumValue("SYM_TYPE", "SymCv", 0x2) +SymPdb = EnumValue("SYM_TYPE", "SymPdb", 0x3) +SymExport = EnumValue("SYM_TYPE", "SymExport", 0x4) +SymDeferred = EnumValue("SYM_TYPE", "SymDeferred", 0x5) +SymSym = EnumValue("SYM_TYPE", "SymSym", 0x6) +SymDia = EnumValue("SYM_TYPE", "SymDia", 0x7) +SymVirtual = EnumValue("SYM_TYPE", "SymVirtual", 0x8) +NumSymTypes = EnumValue("SYM_TYPE", "NumSymTypes", 0x9) +class SYM_TYPE(EnumType): + values = [SymNone, SymCoff, SymCv, SymPdb, SymExport, SymDeferred, SymSym, SymDia, SymVirtual, NumSymTypes] + mapper = FlagMapper(*values) + + +btNoType = EnumValue("BasicType", "btNoType", 0x0) +btVoid = EnumValue("BasicType", "btVoid", 0x1) +btChar = EnumValue("BasicType", "btChar", 0x2) +btWChar = EnumValue("BasicType", "btWChar", 0x3) +btInt = EnumValue("BasicType", "btInt", 0x6) +btUInt = EnumValue("BasicType", "btUInt", 0x7) +btFloat = EnumValue("BasicType", "btFloat", 0x8) +btBCD = EnumValue("BasicType", "btBCD", 0x9) +btBool = EnumValue("BasicType", "btBool", 0xa) +btLong = EnumValue("BasicType", "btLong", 0xd) +btULong = EnumValue("BasicType", "btULong", 0xe) +btCurrency = EnumValue("BasicType", "btCurrency", 0x19) +btDate = EnumValue("BasicType", "btDate", 0x1a) +btVariant = EnumValue("BasicType", "btVariant", 0x1b) +btComplex = EnumValue("BasicType", "btComplex", 0x1c) +btBit = EnumValue("BasicType", "btBit", 0x1d) +btBSTR = EnumValue("BasicType", "btBSTR", 0x1e) +btHresult = EnumValue("BasicType", "btHresult", 0x1f) +class BasicType(EnumType): + values = [btNoType, btVoid, btChar, btWChar, btInt, btUInt, btFloat, btBCD, btBool, btLong, btULong, btCurrency, btDate, btVariant, btComplex, btBit, btBSTR, btHresult] + mapper = FlagMapper(*values) + + +DataIsUnknown = EnumValue("DataKind", "DataIsUnknown", 0x0) +DataIsLocal = EnumValue("DataKind", "DataIsLocal", 0x1) +DataIsStaticLocal = EnumValue("DataKind", "DataIsStaticLocal", 0x2) +DataIsParam = EnumValue("DataKind", "DataIsParam", 0x3) +DataIsObjectPtr = EnumValue("DataKind", "DataIsObjectPtr", 0x4) +DataIsFileStatic = EnumValue("DataKind", "DataIsFileStatic", 0x5) +DataIsGlobal = EnumValue("DataKind", "DataIsGlobal", 0x6) +DataIsMember = EnumValue("DataKind", "DataIsMember", 0x7) +DataIsStaticMember = EnumValue("DataKind", "DataIsStaticMember", 0x8) +DataIsConstant = EnumValue("DataKind", "DataIsConstant", 0x9) +class DataKind(EnumType): + values = [DataIsUnknown, DataIsLocal, DataIsStaticLocal, DataIsParam, DataIsObjectPtr, DataIsFileStatic, DataIsGlobal, DataIsMember, DataIsStaticMember, DataIsConstant] + mapper = FlagMapper(*values) + + +UdtStruct = EnumValue("UdtKind", "UdtStruct", 0x0) +UdtClass = EnumValue("UdtKind", "UdtClass", 0x1) +UdtUnion = EnumValue("UdtKind", "UdtUnion", 0x2) +class UdtKind(EnumType): + values = [UdtStruct, UdtClass, UdtUnion] + mapper = FlagMapper(*values) + + +SymTagNull = EnumValue("_SymTagEnum", "SymTagNull", 0x0) +SymTagExe = EnumValue("_SymTagEnum", "SymTagExe", 0x1) +SymTagCompiland = EnumValue("_SymTagEnum", "SymTagCompiland", 0x2) +SymTagCompilandDetails = EnumValue("_SymTagEnum", "SymTagCompilandDetails", 0x3) +SymTagCompilandEnv = EnumValue("_SymTagEnum", "SymTagCompilandEnv", 0x4) +SymTagFunction = EnumValue("_SymTagEnum", "SymTagFunction", 0x5) +SymTagBlock = EnumValue("_SymTagEnum", "SymTagBlock", 0x6) +SymTagData = EnumValue("_SymTagEnum", "SymTagData", 0x7) +SymTagAnnotation = EnumValue("_SymTagEnum", "SymTagAnnotation", 0x8) +SymTagLabel = EnumValue("_SymTagEnum", "SymTagLabel", 0x9) +SymTagPublicSymbol = EnumValue("_SymTagEnum", "SymTagPublicSymbol", 0xa) +SymTagUDT = EnumValue("_SymTagEnum", "SymTagUDT", 0xb) +SymTagEnum = EnumValue("_SymTagEnum", "SymTagEnum", 0xc) +SymTagFunctionType = EnumValue("_SymTagEnum", "SymTagFunctionType", 0xd) +SymTagPointerType = EnumValue("_SymTagEnum", "SymTagPointerType", 0xe) +SymTagArrayType = EnumValue("_SymTagEnum", "SymTagArrayType", 0xf) +SymTagBaseType = EnumValue("_SymTagEnum", "SymTagBaseType", 0x10) +SymTagTypedef = EnumValue("_SymTagEnum", "SymTagTypedef", 0x11) +SymTagBaseClass = EnumValue("_SymTagEnum", "SymTagBaseClass", 0x12) +SymTagFriend = EnumValue("_SymTagEnum", "SymTagFriend", 0x13) +SymTagFunctionArgType = EnumValue("_SymTagEnum", "SymTagFunctionArgType", 0x14) +SymTagFuncDebugStart = EnumValue("_SymTagEnum", "SymTagFuncDebugStart", 0x15) +SymTagFuncDebugEnd = EnumValue("_SymTagEnum", "SymTagFuncDebugEnd", 0x16) +SymTagUsingNamespace = EnumValue("_SymTagEnum", "SymTagUsingNamespace", 0x17) +SymTagVTableShape = EnumValue("_SymTagEnum", "SymTagVTableShape", 0x18) +SymTagVTable = EnumValue("_SymTagEnum", "SymTagVTable", 0x19) +SymTagCustom = EnumValue("_SymTagEnum", "SymTagCustom", 0x1a) +SymTagThunk = EnumValue("_SymTagEnum", "SymTagThunk", 0x1b) +SymTagCustomType = EnumValue("_SymTagEnum", "SymTagCustomType", 0x1c) +SymTagManagedType = EnumValue("_SymTagEnum", "SymTagManagedType", 0x1d) +SymTagDimension = EnumValue("_SymTagEnum", "SymTagDimension", 0x1e) +class _SymTagEnum(EnumType): + values = [SymTagNull, SymTagExe, SymTagCompiland, SymTagCompilandDetails, SymTagCompilandEnv, SymTagFunction, SymTagBlock, SymTagData, SymTagAnnotation, SymTagLabel, SymTagPublicSymbol, SymTagUDT, SymTagEnum, SymTagFunctionType, SymTagPointerType, SymTagArrayType, SymTagBaseType, SymTagTypedef, SymTagBaseClass, SymTagFriend, SymTagFunctionArgType, SymTagFuncDebugStart, SymTagFuncDebugEnd, SymTagUsingNamespace, SymTagVTableShape, SymTagVTable, SymTagCustom, SymTagThunk, SymTagCustomType, SymTagManagedType, SymTagDimension] + mapper = FlagMapper(*values) +SymTagEnum = _SymTagEnum + + +SYMOPT_EX_DISABLEACCESSTIMEUPDATE = EnumValue("_IMAGEHLP_EXTENDED_OPTIONS", "SYMOPT_EX_DISABLEACCESSTIMEUPDATE", 0x0) +SYMOPT_EX_MAX = EnumValue("_IMAGEHLP_EXTENDED_OPTIONS", "SYMOPT_EX_MAX", 0x1) +SYMOPT_EX_LASTVALIDDEBUGDIRECTORY = EnumValue("_IMAGEHLP_EXTENDED_OPTIONS", "SYMOPT_EX_LASTVALIDDEBUGDIRECTORY", 0x2) +class _IMAGEHLP_EXTENDED_OPTIONS(EnumType): + values = [SYMOPT_EX_DISABLEACCESSTIMEUPDATE, SYMOPT_EX_MAX, SYMOPT_EX_LASTVALIDDEBUGDIRECTORY] + mapper = FlagMapper(*values) +IMAGEHLP_EXTENDED_OPTIONS = _IMAGEHLP_EXTENDED_OPTIONS + + +TI_GET_SYMTAG = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_SYMTAG", 0x0) +TI_GET_SYMNAME = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_SYMNAME", 0x1) +TI_GET_LENGTH = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_LENGTH", 0x2) +TI_GET_TYPE = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_TYPE", 0x3) +TI_GET_TYPEID = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_TYPEID", 0x4) +TI_GET_BASETYPE = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_BASETYPE", 0x5) +TI_GET_ARRAYINDEXTYPEID = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_ARRAYINDEXTYPEID", 0x6) +TI_FINDCHILDREN = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_FINDCHILDREN", 0x7) +TI_GET_DATAKIND = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_DATAKIND", 0x8) +TI_GET_ADDRESSOFFSET = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_ADDRESSOFFSET", 0x9) +TI_GET_OFFSET = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_OFFSET", 0xa) +TI_GET_VALUE = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_VALUE", 0xb) +TI_GET_COUNT = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_COUNT", 0xc) +TI_GET_CHILDRENCOUNT = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_CHILDRENCOUNT", 0xd) +TI_GET_BITPOSITION = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_BITPOSITION", 0xe) +TI_GET_VIRTUALBASECLASS = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_VIRTUALBASECLASS", 0xf) +TI_GET_VIRTUALTABLESHAPEID = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_VIRTUALTABLESHAPEID", 0x10) +TI_GET_VIRTUALBASEPOINTEROFFSET = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_VIRTUALBASEPOINTEROFFSET", 0x11) +TI_GET_CLASSPARENTID = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_CLASSPARENTID", 0x12) +TI_GET_NESTED = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_NESTED", 0x13) +TI_GET_SYMINDEX = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_SYMINDEX", 0x14) +TI_GET_LEXICALPARENT = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_LEXICALPARENT", 0x15) +TI_GET_ADDRESS = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_ADDRESS", 0x16) +TI_GET_THISADJUST = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_THISADJUST", 0x17) +TI_GET_UDTKIND = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_UDTKIND", 0x18) +TI_IS_EQUIV_TO = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_IS_EQUIV_TO", 0x19) +TI_GET_CALLING_CONVENTION = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_CALLING_CONVENTION", 0x1a) +TI_IS_CLOSE_EQUIV_TO = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_IS_CLOSE_EQUIV_TO", 0x1b) +TI_GTIEX_REQS_VALID = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GTIEX_REQS_VALID", 0x1c) +TI_GET_VIRTUALBASEOFFSET = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_VIRTUALBASEOFFSET", 0x1d) +TI_GET_VIRTUALBASEDISPINDEX = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_VIRTUALBASEDISPINDEX", 0x1e) +TI_GET_IS_REFERENCE = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_IS_REFERENCE", 0x1f) +TI_GET_INDIRECTVIRTUALBASECLASS = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_INDIRECTVIRTUALBASECLASS", 0x20) +IMAGEHLP_SYMBOL_TYPE_INFO_MAX = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "IMAGEHLP_SYMBOL_TYPE_INFO_MAX", 0x21) +class _IMAGEHLP_SYMBOL_TYPE_INFO(EnumType): + values = [TI_GET_SYMTAG, TI_GET_SYMNAME, TI_GET_LENGTH, TI_GET_TYPE, TI_GET_TYPEID, TI_GET_BASETYPE, TI_GET_ARRAYINDEXTYPEID, TI_FINDCHILDREN, TI_GET_DATAKIND, TI_GET_ADDRESSOFFSET, TI_GET_OFFSET, TI_GET_VALUE, TI_GET_COUNT, TI_GET_CHILDRENCOUNT, TI_GET_BITPOSITION, TI_GET_VIRTUALBASECLASS, TI_GET_VIRTUALTABLESHAPEID, TI_GET_VIRTUALBASEPOINTEROFFSET, TI_GET_CLASSPARENTID, TI_GET_NESTED, TI_GET_SYMINDEX, TI_GET_LEXICALPARENT, TI_GET_ADDRESS, TI_GET_THISADJUST, TI_GET_UDTKIND, TI_IS_EQUIV_TO, TI_GET_CALLING_CONVENTION, TI_IS_CLOSE_EQUIV_TO, TI_GTIEX_REQS_VALID, TI_GET_VIRTUALBASEOFFSET, TI_GET_VIRTUALBASEDISPINDEX, TI_GET_IS_REFERENCE, TI_GET_INDIRECTVIRTUALBASECLASS, IMAGEHLP_SYMBOL_TYPE_INFO_MAX] + mapper = FlagMapper(*values) +IMAGEHLP_SYMBOL_TYPE_INFO = _IMAGEHLP_SYMBOL_TYPE_INFO + + +sevInfo = EnumValue("_CBA_EVENT_SEVERITY", "sevInfo", 0x0) +sevProblem = EnumValue("_CBA_EVENT_SEVERITY", "sevProblem", 0x1) +sevAttn = EnumValue("_CBA_EVENT_SEVERITY", "sevAttn", 0x2) +sevFatal = EnumValue("_CBA_EVENT_SEVERITY", "sevFatal", 0x3) +sevMax = EnumValue("_CBA_EVENT_SEVERITY", "sevMax", 0x4) +class _CBA_EVENT_SEVERITY(EnumType): + values = [sevInfo, sevProblem, sevAttn, sevFatal, sevMax] + mapper = FlagMapper(*values) +CBA_EVENT_SEVERITY = _CBA_EVENT_SEVERITY + + +AddrMode1616 = EnumValue("ADDRESS_MODE", "AddrMode1616", 0x0) +AddrMode1632 = EnumValue("ADDRESS_MODE", "AddrMode1632", 0x1) +AddrModeReal = EnumValue("ADDRESS_MODE", "AddrModeReal", 0x2) +AddrModeFlat = EnumValue("ADDRESS_MODE", "AddrModeFlat", 0x3) +class ADDRESS_MODE(EnumType): + values = [AddrMode1616, AddrMode1632, AddrModeReal, AddrModeFlat] + mapper = FlagMapper(*values) + + +class _IMAGEHLP_MODULE64(Structure): + _fields_ = [ + ("SizeOfStruct", DWORD), + ("BaseOfImage", DWORD64), + ("ImageSize", DWORD), + ("TimeDateStamp", DWORD), + ("CheckSum", DWORD), + ("NumSyms", DWORD), + ("SymType", SYM_TYPE), + ("ModuleName", CHAR * (32)), + ("ImageName", CHAR * (256)), + ("LoadedImageName", CHAR * (256)), + ("LoadedPdbName", CHAR * (256)), + ("CVSig", DWORD), + ("CVData", CHAR * (MAX_PATH * 3)), + ("PdbSig", DWORD), + ("PdbSig70", GUID), + ("PdbAge", DWORD), + ("PdbUnmatched", BOOL), + ("DbgUnmatched", BOOL), + ("LineNumbers", BOOL), + ("GlobalSymbols", BOOL), + ("TypeInfo", BOOL), + ("SourceIndexed", BOOL), + ("Publics", BOOL), + ] +PIMAGEHLP_MODULE64 = POINTER(_IMAGEHLP_MODULE64) +IMAGEHLP_MODULE64 = _IMAGEHLP_MODULE64 + +class _IMAGEHLP_MODULEW64(Structure): + _fields_ = [ + ("SizeOfStruct", DWORD), + ("BaseOfImage", DWORD64), + ("ImageSize", DWORD), + ("TimeDateStamp", DWORD), + ("CheckSum", DWORD), + ("NumSyms", DWORD), + ("SymType", SYM_TYPE), + ("ModuleName", WCHAR * (32)), + ("ImageName", WCHAR * (256)), + ("LoadedImageName", WCHAR * (256)), + ("LoadedPdbName", WCHAR * (256)), + ("CVSig", DWORD), + ("CVData", POINTER(WCHAR) * (MAX_PATH * 3)), + ("PdbSig", DWORD), + ("PdbSig70", GUID), + ("PdbAge", DWORD), + ("PdbUnmatched", BOOL), + ("DbgUnmatched", BOOL), + ("LineNumbers", BOOL), + ("GlobalSymbols", BOOL), + ("TypeInfo", BOOL), + ("SourceIndexed", BOOL), + ("Publics", BOOL), + ("MachineType", DWORD), + ("Reserved", DWORD), + ] +PIMAGEHLP_MODULEW64 = POINTER(_IMAGEHLP_MODULEW64) +IMAGEHLP_MODULEW64 = _IMAGEHLP_MODULEW64 + +class _SYMBOL_INFO(Structure): + _fields_ = [ + ("SizeOfStruct", ULONG), + ("TypeIndex", ULONG), + ("Reserved", ULONG64 * (2)), + ("Index", ULONG), + ("Size", ULONG), + ("ModBase", ULONG64), + ("Flags", ULONG), + ("Value", ULONG64), + ("Address", ULONG64), + ("Register", ULONG), + ("Scope", ULONG), + ("Tag", ULONG), + ("NameLen", ULONG), + ("MaxNameLen", ULONG), + ("Name", CHAR * (1)), + ] +SYMBOL_INFO = _SYMBOL_INFO +PSYMBOL_INFO = POINTER(_SYMBOL_INFO) + +class _SYMBOL_INFOW(Structure): + _fields_ = [ + ("SizeOfStruct", ULONG), + ("TypeIndex", ULONG), + ("Reserved", ULONG64 * (2)), + ("Index", ULONG), + ("Size", ULONG), + ("ModBase", ULONG64), + ("Flags", ULONG), + ("Value", ULONG64), + ("Address", ULONG64), + ("Register", ULONG), + ("Scope", ULONG), + ("Tag", ULONG), + ("NameLen", ULONG), + ("MaxNameLen", ULONG), + ("Name", WCHAR * (1)), + ] +SYMBOL_INFOW = _SYMBOL_INFOW +PSYMBOL_INFOW = POINTER(_SYMBOL_INFOW) + +class SYMSRV_INDEX_INFOW(Structure): + _fields_ = [ + ("sizeofstruct", DWORD), + ("file", WCHAR * (MAX_PATH + 1)), + ("stripped", BOOL), + ("timestamp", DWORD), + ("size", DWORD), + ("dbgfile", WCHAR * (MAX_PATH + 1)), + ("pdbfile", WCHAR * (MAX_PATH + 1)), + ("guid", GUID), + ("sig", DWORD), + ("age", DWORD), + ] +PSYMSRV_INDEX_INFOW = POINTER(SYMSRV_INDEX_INFOW) + +class SYMSRV_INDEX_INFO(Structure): + _fields_ = [ + ("sizeofstruct", DWORD), + ("file", CHAR * (MAX_PATH + 1)), + ("stripped", BOOL), + ("timestamp", DWORD), + ("size", DWORD), + ("dbgfile", CHAR * (MAX_PATH + 1)), + ("pdbfile", CHAR * (MAX_PATH + 1)), + ("guid", GUID), + ("sig", DWORD), + ("age", DWORD), + ] +PSYMSRV_INDEX_INFO = POINTER(SYMSRV_INDEX_INFO) + +class _IMAGEHLP_SYMBOL(Structure): + _fields_ = [ + ("SizeOfStruct", DWORD), + ("Address", DWORD), + ("Size", DWORD), + ("Flags", DWORD), + ("MaxNameLength", DWORD), + ("Name", CHAR * (1)), + ] +PIMAGEHLP_SYMBOL = POINTER(_IMAGEHLP_SYMBOL) +IMAGEHLP_SYMBOL = _IMAGEHLP_SYMBOL + +class _IMAGEHLP_SYMBOL64(Structure): + _fields_ = [ + ("SizeOfStruct", DWORD), + ("Address", DWORD64), + ("Size", DWORD), + ("Flags", DWORD), + ("MaxNameLength", DWORD), + ("Name", CHAR * (1)), + ] +PIMAGEHLP_SYMBOL64 = POINTER(_IMAGEHLP_SYMBOL64) +IMAGEHLP_SYMBOL64 = _IMAGEHLP_SYMBOL64 + +class _IMAGEHLP_SYMBOLW64(Structure): + _fields_ = [ + ("SizeOfStruct", DWORD), + ("Address", DWORD64), + ("Size", DWORD), + ("Flags", DWORD), + ("MaxNameLength", DWORD), + ("Name", WCHAR * (1)), + ] +PIMAGEHLP_SYMBOLW64 = POINTER(_IMAGEHLP_SYMBOLW64) +IMAGEHLP_SYMBOLW64 = _IMAGEHLP_SYMBOLW64 + +class _IMAGEHLP_STACK_FRAME(Structure): + _fields_ = [ + ("InstructionOffset", ULONG64), + ("ReturnOffset", ULONG64), + ("FrameOffset", ULONG64), + ("StackOffset", ULONG64), + ("BackingStoreOffset", ULONG64), + ("FuncTableEntry", ULONG64), + ("Params", ULONG64 * (4)), + ("Reserved", ULONG64 * (5)), + ("Virtual", BOOL), + ("Reserved2", ULONG), + ] +IMAGEHLP_STACK_FRAME = _IMAGEHLP_STACK_FRAME +PIMAGEHLP_STACK_FRAME = POINTER(_IMAGEHLP_STACK_FRAME) + +class _IMAGEHLP_CBA_EVENT(Structure): + _fields_ = [ + ("severity", CBA_EVENT_SEVERITY), + ("code", DWORD), + ("desc", PCHAR), + ("object", PVOID), + ] +PIMAGEHLP_CBA_EVENT = POINTER(_IMAGEHLP_CBA_EVENT) +IMAGEHLP_CBA_EVENT = _IMAGEHLP_CBA_EVENT + +class _IMAGEHLP_CBA_EVENTW(Structure): + _fields_ = [ + ("severity", CBA_EVENT_SEVERITY), + ("code", DWORD), + ("desc", PCWSTR), + ("object", PVOID), + ] +PIMAGEHLP_CBA_EVENTW = POINTER(_IMAGEHLP_CBA_EVENTW) +IMAGEHLP_CBA_EVENTW = _IMAGEHLP_CBA_EVENTW + +class _IMAGEHLP_CBA_READ_MEMORY(Structure): + _fields_ = [ + ("addr", DWORD64), + ("buf", PVOID), + ("bytes", DWORD), + ("bytesread", POINTER(DWORD)), + ] +PIMAGEHLP_CBA_READ_MEMORY = POINTER(_IMAGEHLP_CBA_READ_MEMORY) +IMAGEHLP_CBA_READ_MEMORY = _IMAGEHLP_CBA_READ_MEMORY + +class _IMAGEHLP_DEFERRED_SYMBOL_LOAD(Structure): + _fields_ = [ + ("SizeOfStruct", DWORD), + ("BaseOfImage", DWORD), + ("CheckSum", DWORD), + ("TimeDateStamp", DWORD), + ("FileName", CHAR * (MAX_PATH)), + ("Reparse", BOOLEAN), + ("hFile", HANDLE), + ] +PIMAGEHLP_DEFERRED_SYMBOL_LOAD = POINTER(_IMAGEHLP_DEFERRED_SYMBOL_LOAD) +IMAGEHLP_DEFERRED_SYMBOL_LOAD = _IMAGEHLP_DEFERRED_SYMBOL_LOAD + +class _IMAGEHLP_DEFERRED_SYMBOL_LOAD64(Structure): + _fields_ = [ + ("SizeOfStruct", DWORD), + ("BaseOfImage", DWORD64), + ("CheckSum", DWORD), + ("TimeDateStamp", DWORD), + ("FileName", CHAR * (MAX_PATH)), + ("Reparse", BOOLEAN), + ("hFile", HANDLE), + ("Flags", DWORD), + ] +IMAGEHLP_DEFERRED_SYMBOL_LOAD64 = _IMAGEHLP_DEFERRED_SYMBOL_LOAD64 +PIMAGEHLP_DEFERRED_SYMBOL_LOAD64 = POINTER(_IMAGEHLP_DEFERRED_SYMBOL_LOAD64) + +class _IMAGEHLP_DEFERRED_SYMBOL_LOADW64(Structure): + _fields_ = [ + ("SizeOfStruct", DWORD), + ("BaseOfImage", DWORD64), + ("CheckSum", DWORD), + ("TimeDateStamp", DWORD), + ("FileName", WCHAR * (MAX_PATH + 1)), + ("Reparse", BOOLEAN), + ("hFile", HANDLE), + ("Flags", DWORD), + ] +IMAGEHLP_DEFERRED_SYMBOL_LOADW64 = _IMAGEHLP_DEFERRED_SYMBOL_LOADW64 +PIMAGEHLP_DEFERRED_SYMBOL_LOADW64 = POINTER(_IMAGEHLP_DEFERRED_SYMBOL_LOADW64) + +class _IMAGEHLP_DUPLICATE_SYMBOL64(Structure): + _fields_ = [ + ("SizeOfStruct", DWORD), + ("NumberOfDups", DWORD), + ("Symbol", PIMAGEHLP_SYMBOL64), + ("SelectedSymbol", DWORD), + ] +PIMAGEHLP_DUPLICATE_SYMBOL64 = POINTER(_IMAGEHLP_DUPLICATE_SYMBOL64) +IMAGEHLP_DUPLICATE_SYMBOL64 = _IMAGEHLP_DUPLICATE_SYMBOL64 + +class _IMAGEHLP_DUPLICATE_SYMBOL(Structure): + _fields_ = [ + ("SizeOfStruct", DWORD), + ("NumberOfDups", DWORD), + ("Symbol", PIMAGEHLP_SYMBOL), + ("SelectedSymbol", DWORD), + ] +PIMAGEHLP_DUPLICATE_SYMBOL = POINTER(_IMAGEHLP_DUPLICATE_SYMBOL) +IMAGEHLP_DUPLICATE_SYMBOL = _IMAGEHLP_DUPLICATE_SYMBOL + +class _tagADDRESS(Structure): + _fields_ = [ + ("Offset", DWORD), + ("Segment", WORD), + ("Mode", ADDRESS_MODE), + ] +LPADDRESS = POINTER(_tagADDRESS) +ADDRESS = _tagADDRESS + +class _tagADDRESS64(Structure): + _fields_ = [ + ("Offset", DWORD64), + ("Segment", WORD), + ("Mode", ADDRESS_MODE), + ] +LPADDRESS64 = POINTER(_tagADDRESS64) +ADDRESS64 = _tagADDRESS64 + +class _tagADDRESS64(_tagADDRESS64): + def __repr__(self): + if not self.Segment: + return "<{0} {offset:#x}>".format(type(self).__name__, offset=self.Offset) + return "<{0} {seg:#x}:{offset:#x}>".format(type(self).__name__, seg=self.Segment, offset=self.Offset) +LPADDRESS64 = POINTER(_tagADDRESS64) +ADDRESS64 = _tagADDRESS64 +class _KDHELP(Structure): + _fields_ = [ + ("Thread", DWORD), + ("ThCallbackStack", DWORD), + ("NextCallback", DWORD), + ("FramePointer", DWORD), + ("KiCallUserMode", DWORD), + ("KeUserCallbackDispatcher", DWORD), + ("SystemRangeStart", DWORD), + ("ThCallbackBStore", DWORD), + ("KiUserExceptionDispatcher", DWORD), + ("StackBase", DWORD), + ("StackLimit", DWORD), + ("Reserved", DWORD * (5)), + ] +KDHELP = _KDHELP +PKDHELP = POINTER(_KDHELP) + +class _KDHELP64(Structure): + _fields_ = [ + ("Thread", DWORD64), + ("ThCallbackStack", DWORD), + ("ThCallbackBStore", DWORD), + ("NextCallback", DWORD), + ("FramePointer", DWORD), + ("KiCallUserMode", DWORD64), + ("KeUserCallbackDispatcher", DWORD64), + ("SystemRangeStart", DWORD64), + ("KiUserExceptionDispatcher", DWORD64), + ("StackBase", DWORD64), + ("StackLimit", DWORD64), + ("BuildVersion", DWORD), + ("RetpolineStubFunctionTableSize", DWORD), + ("RetpolineStubFunctionTable", DWORD64), + ("RetpolineStubOffset", DWORD), + ("RetpolineStubSize", DWORD), + ("Reserved0", DWORD64 * (2)), + ] +KDHELP64 = _KDHELP64 +PKDHELP64 = POINTER(_KDHELP64) + +class _tagSTACKFRAME(Structure): + _fields_ = [ + ("AddrPC", ADDRESS), + ("AddrReturn", ADDRESS), + ("AddrFrame", ADDRESS), + ("AddrStack", ADDRESS), + ("FuncTableEntry", PVOID), + ("Params", DWORD * (4)), + ("Far", BOOL), + ("Virtual", BOOL), + ("Reserved", DWORD * (3)), + ("KdHelp", KDHELP), + ("AddrBStore", ADDRESS), + ] +STACKFRAME = _tagSTACKFRAME +LPSTACKFRAME = POINTER(_tagSTACKFRAME) + +class _tagSTACKFRAME64(Structure): + _fields_ = [ + ("AddrPC", ADDRESS64), + ("AddrReturn", ADDRESS64), + ("AddrFrame", ADDRESS64), + ("AddrStack", ADDRESS64), + ("AddrBStore", ADDRESS64), + ("FuncTableEntry", PVOID), + ("Params", DWORD64 * (4)), + ("Far", BOOL), + ("Virtual", BOOL), + ("Reserved", DWORD64 * (3)), + ("KdHelp", KDHELP64), + ] +STACKFRAME64 = _tagSTACKFRAME64 +LPSTACKFRAME64 = POINTER(_tagSTACKFRAME64) + +class _tagSTACKFRAME_EX(Structure): + _fields_ = [ + ("AddrPC", ADDRESS64), + ("AddrReturn", ADDRESS64), + ("AddrFrame", ADDRESS64), + ("AddrStack", ADDRESS64), + ("AddrBStore", ADDRESS64), + ("FuncTableEntry", PVOID), + ("Params", DWORD64 * (4)), + ("Far", BOOL), + ("Virtual", BOOL), + ("Reserved", DWORD64 * (3)), + ("KdHelp", KDHELP64), + ("StackFrameSize", DWORD), + ("InlineFrameContext", DWORD), + ] +LPSTACKFRAME_EX = POINTER(_tagSTACKFRAME_EX) +STACKFRAME_EX = _tagSTACKFRAME_EX + +TASK_ACTION_EXEC = EnumValue("_TASK_ACTION_TYPE", "TASK_ACTION_EXEC", 0x0) +TASK_ACTION_COM_HANDLER = EnumValue("_TASK_ACTION_TYPE", "TASK_ACTION_COM_HANDLER", 0x5) +TASK_ACTION_SEND_EMAIL = EnumValue("_TASK_ACTION_TYPE", "TASK_ACTION_SEND_EMAIL", 0x6) +TASK_ACTION_SHOW_MESSAGE = EnumValue("_TASK_ACTION_TYPE", "TASK_ACTION_SHOW_MESSAGE", 0x7) +class _TASK_ACTION_TYPE(EnumType): + values = [TASK_ACTION_EXEC, TASK_ACTION_COM_HANDLER, TASK_ACTION_SEND_EMAIL, TASK_ACTION_SHOW_MESSAGE] + mapper = FlagMapper(*values) +TASK_ACTION_TYPE = _TASK_ACTION_TYPE + + +TASK_RUNLEVEL_LUA = EnumValue("_TASK_RUNLEVEL_TYPE", "TASK_RUNLEVEL_LUA", 0x0) +TASK_RUNLEVEL_HIGHEST = EnumValue("_TASK_RUNLEVEL_TYPE", "TASK_RUNLEVEL_HIGHEST", 0x1) +class _TASK_RUNLEVEL_TYPE(EnumType): + values = [TASK_RUNLEVEL_LUA, TASK_RUNLEVEL_HIGHEST] + mapper = FlagMapper(*values) +TASK_RUNLEVEL_TYPE = _TASK_RUNLEVEL_TYPE + + +TASK_LOGON_NONE = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_NONE", 0x0) +TASK_LOGON_PASSWORD = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_PASSWORD", 0x1) +TASK_LOGON_S4U = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_S4U", 0x2) +TASK_LOGON_INTERACTIVE_TOKEN = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_INTERACTIVE_TOKEN", 0x3) +TASK_LOGON_GROUP = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_GROUP", 0x4) +TASK_LOGON_SERVICE_ACCOUNT = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_SERVICE_ACCOUNT", 0x5) +TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD", 0x6) +class _TASK_LOGON_TYPE(EnumType): + values = [TASK_LOGON_NONE, TASK_LOGON_PASSWORD, TASK_LOGON_S4U, TASK_LOGON_INTERACTIVE_TOKEN, TASK_LOGON_GROUP, TASK_LOGON_SERVICE_ACCOUNT, TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD] + mapper = FlagMapper(*values) +TASK_LOGON_TYPE = _TASK_LOGON_TYPE + + +TASK_STATE_UNKNOWN = EnumValue("_TASK_STATE", "TASK_STATE_UNKNOWN", 0x0) +TASK_STATE_DISABLED = EnumValue("_TASK_STATE", "TASK_STATE_DISABLED", 0x1) +TASK_STATE_QUEUED = EnumValue("_TASK_STATE", "TASK_STATE_QUEUED", 0x2) +TASK_STATE_READY = EnumValue("_TASK_STATE", "TASK_STATE_READY", 0x3) +TASK_STATE_RUNNING = EnumValue("_TASK_STATE", "TASK_STATE_RUNNING", 0x4) +class _TASK_STATE(EnumType): + values = [TASK_STATE_UNKNOWN, TASK_STATE_DISABLED, TASK_STATE_QUEUED, TASK_STATE_READY, TASK_STATE_RUNNING] + mapper = FlagMapper(*values) +TASK_STATE = _TASK_STATE + + +TASK_INSTANCES_PARALLEL = EnumValue("_TASK_INSTANCES_POLICY", "TASK_INSTANCES_PARALLEL", 0x0) +TASK_INSTANCES_QUEUE = EnumValue("_TASK_INSTANCES_POLICY", "TASK_INSTANCES_QUEUE", 0x1) +TASK_INSTANCES_IGNORE_NEW = EnumValue("_TASK_INSTANCES_POLICY", "TASK_INSTANCES_IGNORE_NEW", 0x2) +TASK_INSTANCES_STOP_EXISTING = EnumValue("_TASK_INSTANCES_POLICY", "TASK_INSTANCES_STOP_EXISTING", 0x3) +class _TASK_INSTANCES_POLICY(EnumType): + values = [TASK_INSTANCES_PARALLEL, TASK_INSTANCES_QUEUE, TASK_INSTANCES_IGNORE_NEW, TASK_INSTANCES_STOP_EXISTING] + mapper = FlagMapper(*values) +TASK_INSTANCES_POLICY = _TASK_INSTANCES_POLICY + + +TASK_COMPATIBILITY_AT = EnumValue("_TASK_COMPATIBILITY", "TASK_COMPATIBILITY_AT", 0x0) +TASK_COMPATIBILITY_V1 = EnumValue("_TASK_COMPATIBILITY", "TASK_COMPATIBILITY_V1", 0x1) +TASK_COMPATIBILITY_V2 = EnumValue("_TASK_COMPATIBILITY", "TASK_COMPATIBILITY_V2", 0x2) +class _TASK_COMPATIBILITY(EnumType): + values = [TASK_COMPATIBILITY_AT, TASK_COMPATIBILITY_V1, TASK_COMPATIBILITY_V2] + mapper = FlagMapper(*values) +TASK_COMPATIBILITY = _TASK_COMPATIBILITY + + +TASK_TRIGGER_EVENT = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_EVENT", 0x0) +TASK_TRIGGER_TIME = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_TIME", 0x1) +TASK_TRIGGER_DAILY = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_DAILY", 0x2) +TASK_TRIGGER_WEEKLY = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_WEEKLY", 0x3) +TASK_TRIGGER_MONTHLY = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_MONTHLY", 0x4) +TASK_TRIGGER_MONTHLYDOW = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_MONTHLYDOW", 0x5) +TASK_TRIGGER_IDLE = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_IDLE", 0x6) +TASK_TRIGGER_REGISTRATION = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_REGISTRATION", 0x7) +TASK_TRIGGER_BOOT = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_BOOT", 0x8) +TASK_TRIGGER_LOGON = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_LOGON", 0x9) +TASK_TRIGGER_SESSION_STATE_CHANGE = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_SESSION_STATE_CHANGE", 0xb) +class _TASK_TRIGGER_TYPE2(EnumType): + values = [TASK_TRIGGER_EVENT, TASK_TRIGGER_TIME, TASK_TRIGGER_DAILY, TASK_TRIGGER_WEEKLY, TASK_TRIGGER_MONTHLY, TASK_TRIGGER_MONTHLYDOW, TASK_TRIGGER_IDLE, TASK_TRIGGER_REGISTRATION, TASK_TRIGGER_BOOT, TASK_TRIGGER_LOGON, TASK_TRIGGER_SESSION_STATE_CHANGE] + mapper = FlagMapper(*values) +TASK_TRIGGER_TYPE2 = _TASK_TRIGGER_TYPE2 + + +TASK_ENUM_HIDDEN = EnumValue("_TASK_ENUM_FLAGS", "TASK_ENUM_HIDDEN", 0x1) +class _TASK_ENUM_FLAGS(EnumType): + values = [TASK_ENUM_HIDDEN] + mapper = FlagMapper(*values) +TASK_ENUM_FLAGS = _TASK_ENUM_FLAGS + + +TASK_VALIDATE_ONLY = EnumValue("_TASK_CREATION", "TASK_VALIDATE_ONLY", 0x1) +TASK_CREATE = EnumValue("_TASK_CREATION", "TASK_CREATE", 0x2) +TASK_UPDATE = EnumValue("_TASK_CREATION", "TASK_UPDATE", 0x4) +TASK_CREATE_OR_UPDATE = EnumValue("_TASK_CREATION", "TASK_CREATE_OR_UPDATE", 0x6) +TASK_DISABLE = EnumValue("_TASK_CREATION", "TASK_DISABLE", 0x8) +TASK_DONT_ADD_PRINCIPAL_ACE = EnumValue("_TASK_CREATION", "TASK_DONT_ADD_PRINCIPAL_ACE", 0x10) +TASK_IGNORE_REGISTRATION_TRIGGERS = EnumValue("_TASK_CREATION", "TASK_IGNORE_REGISTRATION_TRIGGERS", 0x20) +class _TASK_CREATION(EnumType): + values = [TASK_VALIDATE_ONLY, TASK_CREATE, TASK_UPDATE, TASK_CREATE_OR_UPDATE, TASK_DISABLE, TASK_DONT_ADD_PRINCIPAL_ACE, TASK_IGNORE_REGISTRATION_TRIGGERS] + mapper = FlagMapper(*values) +TASK_CREATION = _TASK_CREATION + + +TASK_RUN_NO_FLAGS = EnumValue("TASK_RUN_FLAGS", "TASK_RUN_NO_FLAGS", 0x0) +TASK_RUN_AS_SELF = EnumValue("TASK_RUN_FLAGS", "TASK_RUN_AS_SELF", 0x1) +TASK_RUN_IGNORE_CONSTRAINTS = EnumValue("TASK_RUN_FLAGS", "TASK_RUN_IGNORE_CONSTRAINTS", 0x2) +TASK_RUN_USE_SESSION_ID = EnumValue("TASK_RUN_FLAGS", "TASK_RUN_USE_SESSION_ID", 0x4) +TASK_RUN_USER_SID = EnumValue("TASK_RUN_FLAGS", "TASK_RUN_USER_SID", 0x8) +class TASK_RUN_FLAGS(EnumType): + values = [TASK_RUN_NO_FLAGS, TASK_RUN_AS_SELF, TASK_RUN_IGNORE_CONSTRAINTS, TASK_RUN_USE_SESSION_ID, TASK_RUN_USER_SID] + mapper = FlagMapper(*values) + + +class _TRACE_PROVIDER_INFO(Structure): + _fields_ = [ + ("ProviderGuid", GUID), + ("SchemaSource", ULONG), + ("ProviderNameOffset", ULONG), + ] +TRACE_PROVIDER_INFO = _TRACE_PROVIDER_INFO + +class _PROVIDER_ENUMERATION_INFO(Structure): + _fields_ = [ + ("NumberOfProviders", ULONG), + ("Reserved", ULONG), + ("TraceProviderInfoArray", TRACE_PROVIDER_INFO * (ANYSIZE_ARRAY)), + ] +PPROVIDER_ENUMERATION_INFO = POINTER(_PROVIDER_ENUMERATION_INFO) +PROVIDER_ENUMERATION_INFO = _PROVIDER_ENUMERATION_INFO + +class tagRGBTRIPLE(Structure): + _fields_ = [ + ("rgbtBlue", BYTE), + ("rgbtGreen", BYTE), + ("rgbtRed", BYTE), + ] +NPRGBTRIPLE = POINTER(tagRGBTRIPLE) +LPRGBTRIPLE = POINTER(tagRGBTRIPLE) +RGBTRIPLE = tagRGBTRIPLE +PRGBTRIPLE = POINTER(tagRGBTRIPLE) + +class tagBITMAPFILEHEADER(Structure): + _pack_ = 2 + _fields_ = [ + ("bfType", WORD), + ("bfSize", DWORD), + ("bfReserved1", WORD), + ("bfReserved2", WORD), + ("bfOffBits", DWORD), + ] +BITMAPFILEHEADER = tagBITMAPFILEHEADER +PBITMAPFILEHEADER = POINTER(tagBITMAPFILEHEADER) +LPBITMAPFILEHEADER = POINTER(tagBITMAPFILEHEADER) + +class tagBITMAPCOREHEADER(Structure): + _fields_ = [ + ("bcSize", DWORD), + ("bcWidth", WORD), + ("bcHeight", WORD), + ("bcPlanes", WORD), + ("bcBitCount", WORD), + ] +LPBITMAPCOREHEADER = POINTER(tagBITMAPCOREHEADER) +PBITMAPCOREHEADER = POINTER(tagBITMAPCOREHEADER) +BITMAPCOREHEADER = tagBITMAPCOREHEADER + +class tagBITMAP(Structure): + _fields_ = [ + ("bmType", LONG), + ("bmWidth", LONG), + ("bmHeight", LONG), + ("bmWidthBytes", LONG), + ("bmPlanes", WORD), + ("bmBitsPixel", WORD), + ("bmBits", LPVOID), + ] +NPBITMAP = POINTER(tagBITMAP) +LPBITMAP = POINTER(tagBITMAP) +PBITMAP = POINTER(tagBITMAP) +BITMAP = tagBITMAP + +class tagBITMAPINFOHEADER(Structure): + _fields_ = [ + ("biSize", DWORD), + ("biWidth", LONG), + ("biHeight", LONG), + ("biPlanes", WORD), + ("biBitCount", WORD), + ("biCompression", DWORD), + ("biSizeImage", DWORD), + ("biXPelsPerMeter", LONG), + ("biYPelsPerMeter", LONG), + ("biClrUsed", DWORD), + ("biClrImportant", DWORD), + ] +BITMAPINFOHEADER = tagBITMAPINFOHEADER +PBITMAPINFOHEADER = POINTER(tagBITMAPINFOHEADER) +LPBITMAPINFOHEADER = POINTER(tagBITMAPINFOHEADER) + +class tagRGBQUAD(Structure): + _fields_ = [ + ("rgbBlue", BYTE), + ("rgbGreen", BYTE), + ("rgbRed", BYTE), + ("rgbReserved", BYTE), + ] +RGBQUAD = tagRGBQUAD + +class tagBITMAPINFO(Structure): + _fields_ = [ + ("bmiHeader", BITMAPINFOHEADER), + ("bmiColors", RGBQUAD * (1)), + ] +LPBITMAPINFO = POINTER(tagBITMAPINFO) +PBITMAPINFO = POINTER(tagBITMAPINFO) +BITMAPINFO = tagBITMAPINFO + +class tagBITMAPCOREINFO(Structure): + _fields_ = [ + ("bmciHeader", BITMAPCOREHEADER), + ("bmciColors", RGBTRIPLE * (1)), + ] +LPBITMAPCOREINFO = POINTER(tagBITMAPCOREINFO) +BITMAPCOREINFO = tagBITMAPCOREINFO +PBITMAPCOREINFO = POINTER(tagBITMAPCOREINFO) + +class tagWNDCLASSEXA(Structure): + _fields_ = [ + ("cbSize", UINT), + ("style", UINT), + ("lpfnWndProc", WNDPROC), + ("cbClsExtra", INT), + ("cbWndExtra", INT), + ("hInstance", HINSTANCE), + ("hIcon", HICON), + ("hCursor", HCURSOR), + ("hbrBackground", HBRUSH), + ("lpszMenuName", LPCSTR), + ("lpszClassName", LPCSTR), + ("hIconSm", HICON), + ] +PWNDCLASSEXA = POINTER(tagWNDCLASSEXA) +LPWNDCLASSEXA = POINTER(tagWNDCLASSEXA) +WNDCLASSEXA = tagWNDCLASSEXA + +class tagWNDCLASSEXW(Structure): + _fields_ = [ + ("cbSize", UINT), + ("style", UINT), + ("lpfnWndProc", WNDPROC), + ("cbClsExtra", INT), + ("cbWndExtra", INT), + ("hInstance", HINSTANCE), + ("hIcon", HICON), + ("hCursor", HCURSOR), + ("hbrBackground", HBRUSH), + ("lpszMenuName", LPWSTR), + ("lpszClassName", LPWSTR), + ("hIconSm", HICON), + ] +WNDCLASSEXW = tagWNDCLASSEXW +LPWNDCLASSEXW = POINTER(tagWNDCLASSEXW) +PWNDCLASSEXW = POINTER(tagWNDCLASSEXW) + +SystemBasicInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemBasicInformation", 0x0) +SystemProcessorInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorInformation", 0x1) +SystemPerformanceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPerformanceInformation", 0x2) +SystemTimeOfDayInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemTimeOfDayInformation", 0x3) +SystemPathInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPathInformation", 0x4) +SystemProcessInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessInformation", 0x5) +SystemCallCountInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCallCountInformation", 0x6) +SystemDeviceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemDeviceInformation", 0x7) +SystemProcessorPerformanceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorPerformanceInformation", 0x8) +SystemFlagsInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFlagsInformation", 0x9) +SystemCallTimeInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCallTimeInformation", 0xa) +SystemModuleInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemModuleInformation", 0xb) +SystemLocksInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLocksInformation", 0xc) +SystemStackTraceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemStackTraceInformation", 0xd) +SystemPagedPoolInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPagedPoolInformation", 0xe) +SystemNonPagedPoolInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemNonPagedPoolInformation", 0xf) +SystemHandleInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemHandleInformation", 0x10) +SystemObjectInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemObjectInformation", 0x11) +SystemPageFileInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPageFileInformation", 0x12) +SystemVdmInstemulInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVdmInstemulInformation", 0x13) +SystemVdmBopInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVdmBopInformation", 0x14) +SystemFileCacheInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFileCacheInformation", 0x15) +SystemPoolTagInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPoolTagInformation", 0x16) +SystemInterruptInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemInterruptInformation", 0x17) +SystemDpcBehaviorInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemDpcBehaviorInformation", 0x18) +SystemFullMemoryInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFullMemoryInformation", 0x19) +SystemLoadGdiDriverInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLoadGdiDriverInformation", 0x1a) +SystemUnloadGdiDriverInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemUnloadGdiDriverInformation", 0x1b) +SystemTimeAdjustmentInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemTimeAdjustmentInformation", 0x1c) +SystemSummaryMemoryInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSummaryMemoryInformation", 0x1d) +SystemMirrorMemoryInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemMirrorMemoryInformation", 0x1e) +SystemPerformanceTraceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPerformanceTraceInformation", 0x1f) +SystemObsolete0 = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemObsolete0", 0x20) +SystemExceptionInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemExceptionInformation", 0x21) +SystemCrashDumpStateInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCrashDumpStateInformation", 0x22) +SystemKernelDebuggerInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemKernelDebuggerInformation", 0x23) +SystemContextSwitchInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemContextSwitchInformation", 0x24) +SystemRegistryQuotaInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemRegistryQuotaInformation", 0x25) +SystemExtendServiceTableInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemExtendServiceTableInformation", 0x26) +SystemPrioritySeperation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPrioritySeperation", 0x27) +SystemVerifierAddDriverInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierAddDriverInformation", 0x28) +SystemVerifierRemoveDriverInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierRemoveDriverInformation", 0x29) +SystemProcessorIdleInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorIdleInformation", 0x2a) +SystemLegacyDriverInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLegacyDriverInformation", 0x2b) +SystemCurrentTimeZoneInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCurrentTimeZoneInformation", 0x2c) +SystemLookasideInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLookasideInformation", 0x2d) +SystemTimeSlipNotification = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemTimeSlipNotification", 0x2e) +SystemSessionCreate = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSessionCreate", 0x2f) +SystemSessionDetach = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSessionDetach", 0x30) +SystemSessionInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSessionInformation", 0x31) +SystemRangeStartInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemRangeStartInformation", 0x32) +SystemVerifierInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierInformation", 0x33) +SystemVerifierThunkExtend = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierThunkExtend", 0x34) +SystemSessionProcessInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSessionProcessInformation", 0x35) +SystemLoadGdiDriverInSystemSpace = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLoadGdiDriverInSystemSpace", 0x36) +SystemNumaProcessorMap = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemNumaProcessorMap", 0x37) +SystemPrefetcherInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPrefetcherInformation", 0x38) +SystemExtendedProcessInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemExtendedProcessInformation", 0x39) +SystemRecommendedSharedDataAlignment = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemRecommendedSharedDataAlignment", 0x3a) +SystemComPlusPackage = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemComPlusPackage", 0x3b) +SystemNumaAvailableMemory = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemNumaAvailableMemory", 0x3c) +SystemProcessorPowerInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorPowerInformation", 0x3d) +SystemEmulationBasicInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemEmulationBasicInformation", 0x3e) +SystemEmulationProcessorInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemEmulationProcessorInformation", 0x3f) +SystemExtendedHandleInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemExtendedHandleInformation", 0x40) +SystemLostDelayedWriteInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLostDelayedWriteInformation", 0x41) +SystemBigPoolInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemBigPoolInformation", 0x42) +SystemSessionPoolTagInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSessionPoolTagInformation", 0x43) +SystemSessionMappedViewInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSessionMappedViewInformation", 0x44) +SystemHotpatchInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemHotpatchInformation", 0x45) +SystemObjectSecurityMode = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemObjectSecurityMode", 0x46) +SystemWatchdogTimerHandler = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemWatchdogTimerHandler", 0x47) +SystemWatchdogTimerInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemWatchdogTimerInformation", 0x48) +SystemLogicalProcessorInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLogicalProcessorInformation", 0x49) +SystemWow64SharedInformationObsolete = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemWow64SharedInformationObsolete", 0x4a) +SystemRegisterFirmwareTableInformationHandler = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemRegisterFirmwareTableInformationHandler", 0x4b) +SystemFirmwareTableInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFirmwareTableInformation", 0x4c) +SystemModuleInformationEx = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemModuleInformationEx", 0x4d) +SystemVerifierTriageInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierTriageInformation", 0x4e) +SystemSuperfetchInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSuperfetchInformation", 0x4f) +SystemMemoryListInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemMemoryListInformation", 0x50) +SystemFileCacheInformationEx = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFileCacheInformationEx", 0x51) +SystemThreadPriorityClientIdInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemThreadPriorityClientIdInformation", 0x52) +SystemProcessorIdleCycleTimeInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorIdleCycleTimeInformation", 0x53) +SystemVerifierCancellationInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierCancellationInformation", 0x54) +SystemProcessorPowerInformationEx = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorPowerInformationEx", 0x55) +SystemRefTraceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemRefTraceInformation", 0x56) +SystemSpecialPoolInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSpecialPoolInformation", 0x57) +SystemProcessIdInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessIdInformation", 0x58) +SystemErrorPortInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemErrorPortInformation", 0x59) +SystemBootEnvironmentInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemBootEnvironmentInformation", 0x5a) +SystemHypervisorInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemHypervisorInformation", 0x5b) +SystemVerifierInformationEx = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierInformationEx", 0x5c) +SystemTimeZoneInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemTimeZoneInformation", 0x5d) +SystemImageFileExecutionOptionsInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemImageFileExecutionOptionsInformation", 0x5e) +SystemCoverageInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCoverageInformation", 0x5f) +SystemPrefetchPatchInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPrefetchPatchInformation", 0x60) +SystemVerifierFaultsInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierFaultsInformation", 0x61) +SystemSystemPartitionInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSystemPartitionInformation", 0x62) +SystemSystemDiskInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSystemDiskInformation", 0x63) +SystemProcessorPerformanceDistribution = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorPerformanceDistribution", 0x64) +SystemNumaProximityNodeInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemNumaProximityNodeInformation", 0x65) +SystemDynamicTimeZoneInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemDynamicTimeZoneInformation", 0x66) +SystemCodeIntegrityInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCodeIntegrityInformation", 0x67) +SystemProcessorMicrocodeUpdateInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorMicrocodeUpdateInformation", 0x68) +SystemProcessorBrandString = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorBrandString", 0x69) +SystemVirtualAddressInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVirtualAddressInformation", 0x6a) +SystemLogicalProcessorAndGroupInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLogicalProcessorAndGroupInformation", 0x6b) +SystemProcessorCycleTimeInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorCycleTimeInformation", 0x6c) +SystemStoreInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemStoreInformation", 0x6d) +SystemRegistryAppendString = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemRegistryAppendString", 0x6e) +SystemAitSamplingValue = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemAitSamplingValue", 0x6f) +SystemVhdBootInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVhdBootInformation", 0x70) +SystemCpuQuotaInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCpuQuotaInformation", 0x71) +SystemNativeBasicInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemNativeBasicInformation", 0x72) +SystemErrorPortTimeouts = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemErrorPortTimeouts", 0x73) +SystemLowPriorityIoInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLowPriorityIoInformation", 0x74) +SystemBootEntropyInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemBootEntropyInformation", 0x75) +SystemVerifierCountersInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierCountersInformation", 0x76) +SystemPagedPoolInformationEx = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPagedPoolInformationEx", 0x77) +SystemSystemPtesInformationEx = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSystemPtesInformationEx", 0x78) +SystemNodeDistanceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemNodeDistanceInformation", 0x79) +SystemAcpiAuditInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemAcpiAuditInformation", 0x7a) +SystemBasicPerformanceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemBasicPerformanceInformation", 0x7b) +SystemQueryPerformanceCounterInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemQueryPerformanceCounterInformation", 0x7c) +SystemSessionBigPoolInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSessionBigPoolInformation", 0x7d) +SystemBootGraphicsInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemBootGraphicsInformation", 0x7e) +SystemScrubPhysicalMemoryInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemScrubPhysicalMemoryInformation", 0x7f) +SystemBadPageInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemBadPageInformation", 0x80) +SystemProcessorProfileControlArea = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorProfileControlArea", 0x81) +SystemCombinePhysicalMemoryInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCombinePhysicalMemoryInformation", 0x82) +SystemEntropyInterruptTimingInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemEntropyInterruptTimingInformation", 0x83) +SystemConsoleInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemConsoleInformation", 0x84) +SystemPlatformBinaryInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPlatformBinaryInformation", 0x85) +SystemPolicyInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPolicyInformation", 0x86) +SystemHypervisorProcessorCountInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemHypervisorProcessorCountInformation", 0x87) +SystemDeviceDataInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemDeviceDataInformation", 0x88) +SystemDeviceDataEnumerationInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemDeviceDataEnumerationInformation", 0x89) +SystemMemoryTopologyInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemMemoryTopologyInformation", 0x8a) +SystemMemoryChannelInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemMemoryChannelInformation", 0x8b) +SystemBootLogoInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemBootLogoInformation", 0x8c) +SystemProcessorPerformanceInformationEx = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorPerformanceInformationEx", 0x8d) +SystemCriticalProcessErrorLogInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCriticalProcessErrorLogInformation", 0x8e) +SystemSecureBootPolicyInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSecureBootPolicyInformation", 0x8f) +SystemPageFileInformationEx = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPageFileInformationEx", 0x90) +SystemSecureBootInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSecureBootInformation", 0x91) +SystemEntropyInterruptTimingRawInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemEntropyInterruptTimingRawInformation", 0x92) +SystemPortableWorkspaceEfiLauncherInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPortableWorkspaceEfiLauncherInformation", 0x93) +SystemFullProcessInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFullProcessInformation", 0x94) +SystemKernelDebuggerInformationEx = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemKernelDebuggerInformationEx", 0x95) +SystemBootMetadataInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemBootMetadataInformation", 0x96) +SystemSoftRebootInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSoftRebootInformation", 0x97) +SystemElamCertificateInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemElamCertificateInformation", 0x98) +SystemOfflineDumpConfigInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemOfflineDumpConfigInformation", 0x99) +SystemProcessorFeaturesInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorFeaturesInformation", 0x9a) +SystemRegistryReconciliationInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemRegistryReconciliationInformation", 0x9b) +SystemEdidInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemEdidInformation", 0x9c) +SystemManufacturingInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemManufacturingInformation", 0x9d) +SystemEnergyEstimationConfigInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemEnergyEstimationConfigInformation", 0x9e) +SystemHypervisorDetailInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemHypervisorDetailInformation", 0x9f) +SystemProcessorCycleStatsInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorCycleStatsInformation", 0xa0) +SystemVmGenerationCountInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVmGenerationCountInformation", 0xa1) +SystemTrustedPlatformModuleInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemTrustedPlatformModuleInformation", 0xa2) +SystemKernelDebuggerFlags = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemKernelDebuggerFlags", 0xa3) +SystemCodeIntegrityPolicyInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCodeIntegrityPolicyInformation", 0xa4) +SystemIsolatedUserModeInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemIsolatedUserModeInformation", 0xa5) +SystemHardwareSecurityTestInterfaceResultsInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemHardwareSecurityTestInterfaceResultsInformation", 0xa6) +SystemSingleModuleInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSingleModuleInformation", 0xa7) +SystemAllowedCpuSetsInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemAllowedCpuSetsInformation", 0xa8) +SystemVsmProtectionInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVsmProtectionInformation", 0xa9) +SystemInterruptCpuSetsInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemInterruptCpuSetsInformation", 0xaa) +SystemSecureBootPolicyFullInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSecureBootPolicyFullInformation", 0xab) +SystemCodeIntegrityPolicyFullInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCodeIntegrityPolicyFullInformation", 0xac) +SystemAffinitizedInterruptProcessorInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemAffinitizedInterruptProcessorInformation", 0xad) +SystemRootSiloInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemRootSiloInformation", 0xae) +SystemCpuSetInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCpuSetInformation", 0xaf) +SystemCpuSetTagInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCpuSetTagInformation", 0xb0) +SystemWin32WerStartCallout = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemWin32WerStartCallout", 0xb1) +SystemSecureKernelProfileInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSecureKernelProfileInformation", 0xb2) +SystemCodeIntegrityPlatformManifestInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCodeIntegrityPlatformManifestInformation", 0xb3) +SystemInterruptSteeringInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemInterruptSteeringInformation", 0xb4) +SystemSupportedProcessorArchitectures = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSupportedProcessorArchitectures", 0xb5) +SystemMemoryUsageInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemMemoryUsageInformation", 0xb6) +SystemCodeIntegrityCertificateInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCodeIntegrityCertificateInformation", 0xb7) +SystemPhysicalMemoryInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPhysicalMemoryInformation", 0xb8) +SystemControlFlowTransition = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemControlFlowTransition", 0xb9) +SystemKernelDebuggingAllowed = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemKernelDebuggingAllowed", 0xba) +SystemActivityModerationExeState = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemActivityModerationExeState", 0xbb) +SystemActivityModerationUserSettings = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemActivityModerationUserSettings", 0xbc) +SystemCodeIntegrityPoliciesFullInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCodeIntegrityPoliciesFullInformation", 0xbd) +SystemCodeIntegrityUnlockInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCodeIntegrityUnlockInformation", 0xbe) +SystemIntegrityQuotaInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemIntegrityQuotaInformation", 0xbf) +SystemFlushInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFlushInformation", 0xc0) +SystemProcessorIdleMaskInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorIdleMaskInformation", 0xc1) +SystemSecureDumpEncryptionInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSecureDumpEncryptionInformation", 0xc2) +SystemWriteConstraintInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemWriteConstraintInformation", 0xc3) +SystemKernelVaShadowInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemKernelVaShadowInformation", 0xc4) +SystemHypervisorSharedPageInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemHypervisorSharedPageInformation", 0xc5) +SystemFirmwareBootPerformanceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFirmwareBootPerformanceInformation", 0xc6) +SystemCodeIntegrityVerificationInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCodeIntegrityVerificationInformation", 0xc7) +SystemFirmwarePartitionInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFirmwarePartitionInformation", 0xc8) +SystemSpeculationControlInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSpeculationControlInformation", 0xc9) +SystemDmaGuardPolicyInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemDmaGuardPolicyInformation", 0xca) +SystemEnclaveLaunchControlInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemEnclaveLaunchControlInformation", 0xcb) +SystemWorkloadAllowedCpuSetsInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemWorkloadAllowedCpuSetsInformation", 0xcc) +SystemCodeIntegrityUnlockModeInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCodeIntegrityUnlockModeInformation", 0xcd) +SystemLeapSecondInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLeapSecondInformation", 0xce) +SystemFlags2Information = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFlags2Information", 0xcf) +SystemSecurityModelInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSecurityModelInformation", 0xd0) +SystemCodeIntegritySyntheticCacheInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCodeIntegritySyntheticCacheInformation", 0xd1) +SystemFeatureConfigurationInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFeatureConfigurationInformation", 0xd2) +SystemFeatureConfigurationSectionInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFeatureConfigurationSectionInformation", 0xd3) +SystemFeatureUsageSubscriptionInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFeatureUsageSubscriptionInformation", 0xd4) +SystemSecureSpeculationControlInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSecureSpeculationControlInformation", 0xd5) +SystemSpacesBootInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSpacesBootInformation", 0xd6) +SystemFwRamdiskInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFwRamdiskInformation", 0xd7) +SystemWheaIpmiHardwareInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemWheaIpmiHardwareInformation", 0xd8) +SystemDifSetRuleClassInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemDifSetRuleClassInformation", 0xd9) +SystemDifClearRuleClassInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemDifClearRuleClassInformation", 0xda) +SystemDifApplyPluginVerificationOnDriver = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemDifApplyPluginVerificationOnDriver", 0xdb) +SystemDifRemovePluginVerificationOnDriver = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemDifRemovePluginVerificationOnDriver", 0xdc) +SystemShadowStackInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemShadowStackInformation", 0xdd) +SystemBuildVersionInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemBuildVersionInformation", 0xde) +SystemPoolLimitInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPoolLimitInformation", 0xdf) +SystemCodeIntegrityAddDynamicStore = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCodeIntegrityAddDynamicStore", 0xe0) +SystemCodeIntegrityClearDynamicStores = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCodeIntegrityClearDynamicStores", 0xe1) +SystemPoolZeroingInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPoolZeroingInformation", 0xe3) +MaxSystemInfoClass = EnumValue("_SYSTEM_INFORMATION_CLASS", "MaxSystemInfoClass", 0xe4) +class _SYSTEM_INFORMATION_CLASS(EnumType): + values = [SystemBasicInformation, SystemProcessorInformation, SystemPerformanceInformation, SystemTimeOfDayInformation, SystemPathInformation, SystemProcessInformation, SystemCallCountInformation, SystemDeviceInformation, SystemProcessorPerformanceInformation, SystemFlagsInformation, SystemCallTimeInformation, SystemModuleInformation, SystemLocksInformation, SystemStackTraceInformation, SystemPagedPoolInformation, SystemNonPagedPoolInformation, SystemHandleInformation, SystemObjectInformation, SystemPageFileInformation, SystemVdmInstemulInformation, SystemVdmBopInformation, SystemFileCacheInformation, SystemPoolTagInformation, SystemInterruptInformation, SystemDpcBehaviorInformation, SystemFullMemoryInformation, SystemLoadGdiDriverInformation, SystemUnloadGdiDriverInformation, SystemTimeAdjustmentInformation, SystemSummaryMemoryInformation, SystemMirrorMemoryInformation, SystemPerformanceTraceInformation, SystemObsolete0, SystemExceptionInformation, SystemCrashDumpStateInformation, SystemKernelDebuggerInformation, SystemContextSwitchInformation, SystemRegistryQuotaInformation, SystemExtendServiceTableInformation, SystemPrioritySeperation, SystemVerifierAddDriverInformation, SystemVerifierRemoveDriverInformation, SystemProcessorIdleInformation, SystemLegacyDriverInformation, SystemCurrentTimeZoneInformation, SystemLookasideInformation, SystemTimeSlipNotification, SystemSessionCreate, SystemSessionDetach, SystemSessionInformation, SystemRangeStartInformation, SystemVerifierInformation, SystemVerifierThunkExtend, SystemSessionProcessInformation, SystemLoadGdiDriverInSystemSpace, SystemNumaProcessorMap, SystemPrefetcherInformation, SystemExtendedProcessInformation, SystemRecommendedSharedDataAlignment, SystemComPlusPackage, SystemNumaAvailableMemory, SystemProcessorPowerInformation, SystemEmulationBasicInformation, SystemEmulationProcessorInformation, SystemExtendedHandleInformation, SystemLostDelayedWriteInformation, SystemBigPoolInformation, SystemSessionPoolTagInformation, SystemSessionMappedViewInformation, SystemHotpatchInformation, SystemObjectSecurityMode, SystemWatchdogTimerHandler, SystemWatchdogTimerInformation, SystemLogicalProcessorInformation, SystemWow64SharedInformationObsolete, SystemRegisterFirmwareTableInformationHandler, SystemFirmwareTableInformation, SystemModuleInformationEx, SystemVerifierTriageInformation, SystemSuperfetchInformation, SystemMemoryListInformation, SystemFileCacheInformationEx, SystemThreadPriorityClientIdInformation, SystemProcessorIdleCycleTimeInformation, SystemVerifierCancellationInformation, SystemProcessorPowerInformationEx, SystemRefTraceInformation, SystemSpecialPoolInformation, SystemProcessIdInformation, SystemErrorPortInformation, SystemBootEnvironmentInformation, SystemHypervisorInformation, SystemVerifierInformationEx, SystemTimeZoneInformation, SystemImageFileExecutionOptionsInformation, SystemCoverageInformation, SystemPrefetchPatchInformation, SystemVerifierFaultsInformation, SystemSystemPartitionInformation, SystemSystemDiskInformation, SystemProcessorPerformanceDistribution, SystemNumaProximityNodeInformation, SystemDynamicTimeZoneInformation, SystemCodeIntegrityInformation, SystemProcessorMicrocodeUpdateInformation, SystemProcessorBrandString, SystemVirtualAddressInformation, SystemLogicalProcessorAndGroupInformation, SystemProcessorCycleTimeInformation, SystemStoreInformation, SystemRegistryAppendString, SystemAitSamplingValue, SystemVhdBootInformation, SystemCpuQuotaInformation, SystemNativeBasicInformation, SystemErrorPortTimeouts, SystemLowPriorityIoInformation, SystemBootEntropyInformation, SystemVerifierCountersInformation, SystemPagedPoolInformationEx, SystemSystemPtesInformationEx, SystemNodeDistanceInformation, SystemAcpiAuditInformation, SystemBasicPerformanceInformation, SystemQueryPerformanceCounterInformation, SystemSessionBigPoolInformation, SystemBootGraphicsInformation, SystemScrubPhysicalMemoryInformation, SystemBadPageInformation, SystemProcessorProfileControlArea, SystemCombinePhysicalMemoryInformation, SystemEntropyInterruptTimingInformation, SystemConsoleInformation, SystemPlatformBinaryInformation, SystemPolicyInformation, SystemHypervisorProcessorCountInformation, SystemDeviceDataInformation, SystemDeviceDataEnumerationInformation, SystemMemoryTopologyInformation, SystemMemoryChannelInformation, SystemBootLogoInformation, SystemProcessorPerformanceInformationEx, SystemCriticalProcessErrorLogInformation, SystemSecureBootPolicyInformation, SystemPageFileInformationEx, SystemSecureBootInformation, SystemEntropyInterruptTimingRawInformation, SystemPortableWorkspaceEfiLauncherInformation, SystemFullProcessInformation, SystemKernelDebuggerInformationEx, SystemBootMetadataInformation, SystemSoftRebootInformation, SystemElamCertificateInformation, SystemOfflineDumpConfigInformation, SystemProcessorFeaturesInformation, SystemRegistryReconciliationInformation, SystemEdidInformation, SystemManufacturingInformation, SystemEnergyEstimationConfigInformation, SystemHypervisorDetailInformation, SystemProcessorCycleStatsInformation, SystemVmGenerationCountInformation, SystemTrustedPlatformModuleInformation, SystemKernelDebuggerFlags, SystemCodeIntegrityPolicyInformation, SystemIsolatedUserModeInformation, SystemHardwareSecurityTestInterfaceResultsInformation, SystemSingleModuleInformation, SystemAllowedCpuSetsInformation, SystemVsmProtectionInformation, SystemInterruptCpuSetsInformation, SystemSecureBootPolicyFullInformation, SystemCodeIntegrityPolicyFullInformation, SystemAffinitizedInterruptProcessorInformation, SystemRootSiloInformation, SystemCpuSetInformation, SystemCpuSetTagInformation, SystemWin32WerStartCallout, SystemSecureKernelProfileInformation, SystemCodeIntegrityPlatformManifestInformation, SystemInterruptSteeringInformation, SystemSupportedProcessorArchitectures, SystemMemoryUsageInformation, SystemCodeIntegrityCertificateInformation, SystemPhysicalMemoryInformation, SystemControlFlowTransition, SystemKernelDebuggingAllowed, SystemActivityModerationExeState, SystemActivityModerationUserSettings, SystemCodeIntegrityPoliciesFullInformation, SystemCodeIntegrityUnlockInformation, SystemIntegrityQuotaInformation, SystemFlushInformation, SystemProcessorIdleMaskInformation, SystemSecureDumpEncryptionInformation, SystemWriteConstraintInformation, SystemKernelVaShadowInformation, SystemHypervisorSharedPageInformation, SystemFirmwareBootPerformanceInformation, SystemCodeIntegrityVerificationInformation, SystemFirmwarePartitionInformation, SystemSpeculationControlInformation, SystemDmaGuardPolicyInformation, SystemEnclaveLaunchControlInformation, SystemWorkloadAllowedCpuSetsInformation, SystemCodeIntegrityUnlockModeInformation, SystemLeapSecondInformation, SystemFlags2Information, SystemSecurityModelInformation, SystemCodeIntegritySyntheticCacheInformation, SystemFeatureConfigurationInformation, SystemFeatureConfigurationSectionInformation, SystemFeatureUsageSubscriptionInformation, SystemSecureSpeculationControlInformation, SystemSpacesBootInformation, SystemFwRamdiskInformation, SystemWheaIpmiHardwareInformation, SystemDifSetRuleClassInformation, SystemDifClearRuleClassInformation, SystemDifApplyPluginVerificationOnDriver, SystemDifRemovePluginVerificationOnDriver, SystemShadowStackInformation, SystemBuildVersionInformation, SystemPoolLimitInformation, SystemCodeIntegrityAddDynamicStore, SystemCodeIntegrityClearDynamicStores, SystemPoolZeroingInformation, MaxSystemInfoClass] + mapper = FlagMapper(*values) +SYSTEM_INFORMATION_CLASS = _SYSTEM_INFORMATION_CLASS + + +WinNullSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNullSid", 0x0) +WinWorldSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinWorldSid", 0x1) +WinLocalSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinLocalSid", 0x2) +WinCreatorOwnerSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCreatorOwnerSid", 0x3) +WinCreatorGroupSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCreatorGroupSid", 0x4) +WinCreatorOwnerServerSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCreatorOwnerServerSid", 0x5) +WinCreatorGroupServerSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCreatorGroupServerSid", 0x6) +WinNtAuthoritySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNtAuthoritySid", 0x7) +WinDialupSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinDialupSid", 0x8) +WinNetworkSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNetworkSid", 0x9) +WinBatchSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBatchSid", 0xa) +WinInteractiveSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinInteractiveSid", 0xb) +WinServiceSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinServiceSid", 0xc) +WinAnonymousSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAnonymousSid", 0xd) +WinProxySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinProxySid", 0xe) +WinEnterpriseControllersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinEnterpriseControllersSid", 0xf) +WinSelfSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinSelfSid", 0x10) +WinAuthenticatedUserSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAuthenticatedUserSid", 0x11) +WinRestrictedCodeSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinRestrictedCodeSid", 0x12) +WinTerminalServerSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinTerminalServerSid", 0x13) +WinRemoteLogonIdSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinRemoteLogonIdSid", 0x14) +WinLogonIdsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinLogonIdsSid", 0x15) +WinLocalSystemSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinLocalSystemSid", 0x16) +WinLocalServiceSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinLocalServiceSid", 0x17) +WinNetworkServiceSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNetworkServiceSid", 0x18) +WinBuiltinDomainSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinDomainSid", 0x19) +WinBuiltinAdministratorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinAdministratorsSid", 0x1a) +WinBuiltinUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinUsersSid", 0x1b) +WinBuiltinGuestsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinGuestsSid", 0x1c) +WinBuiltinPowerUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinPowerUsersSid", 0x1d) +WinBuiltinAccountOperatorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinAccountOperatorsSid", 0x1e) +WinBuiltinSystemOperatorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinSystemOperatorsSid", 0x1f) +WinBuiltinPrintOperatorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinPrintOperatorsSid", 0x20) +WinBuiltinBackupOperatorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinBackupOperatorsSid", 0x21) +WinBuiltinReplicatorSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinReplicatorSid", 0x22) +WinBuiltinPreWindows2000CompatibleAccessSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinPreWindows2000CompatibleAccessSid", 0x23) +WinBuiltinRemoteDesktopUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinRemoteDesktopUsersSid", 0x24) +WinBuiltinNetworkConfigurationOperatorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinNetworkConfigurationOperatorsSid", 0x25) +WinAccountAdministratorSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountAdministratorSid", 0x26) +WinAccountGuestSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountGuestSid", 0x27) +WinAccountKrbtgtSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountKrbtgtSid", 0x28) +WinAccountDomainAdminsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountDomainAdminsSid", 0x29) +WinAccountDomainUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountDomainUsersSid", 0x2a) +WinAccountDomainGuestsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountDomainGuestsSid", 0x2b) +WinAccountComputersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountComputersSid", 0x2c) +WinAccountControllersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountControllersSid", 0x2d) +WinAccountCertAdminsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountCertAdminsSid", 0x2e) +WinAccountSchemaAdminsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountSchemaAdminsSid", 0x2f) +WinAccountEnterpriseAdminsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountEnterpriseAdminsSid", 0x30) +WinAccountPolicyAdminsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountPolicyAdminsSid", 0x31) +WinAccountRasAndIasServersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountRasAndIasServersSid", 0x32) +WinNTLMAuthenticationSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNTLMAuthenticationSid", 0x33) +WinDigestAuthenticationSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinDigestAuthenticationSid", 0x34) +WinSChannelAuthenticationSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinSChannelAuthenticationSid", 0x35) +WinThisOrganizationSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinThisOrganizationSid", 0x36) +WinOtherOrganizationSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinOtherOrganizationSid", 0x37) +WinBuiltinIncomingForestTrustBuildersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinIncomingForestTrustBuildersSid", 0x38) +WinBuiltinPerfMonitoringUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinPerfMonitoringUsersSid", 0x39) +WinBuiltinPerfLoggingUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinPerfLoggingUsersSid", 0x3a) +WinBuiltinAuthorizationAccessSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinAuthorizationAccessSid", 0x3b) +WinBuiltinTerminalServerLicenseServersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinTerminalServerLicenseServersSid", 0x3c) +WinBuiltinDCOMUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinDCOMUsersSid", 0x3d) +WinBuiltinIUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinIUsersSid", 0x3e) +WinIUserSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinIUserSid", 0x3f) +WinBuiltinCryptoOperatorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinCryptoOperatorsSid", 0x40) +WinUntrustedLabelSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinUntrustedLabelSid", 0x41) +WinLowLabelSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinLowLabelSid", 0x42) +WinMediumLabelSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinMediumLabelSid", 0x43) +WinHighLabelSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinHighLabelSid", 0x44) +WinSystemLabelSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinSystemLabelSid", 0x45) +WinWriteRestrictedCodeSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinWriteRestrictedCodeSid", 0x46) +WinCreatorOwnerRightsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCreatorOwnerRightsSid", 0x47) +WinCacheablePrincipalsGroupSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCacheablePrincipalsGroupSid", 0x48) +WinNonCacheablePrincipalsGroupSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNonCacheablePrincipalsGroupSid", 0x49) +WinEnterpriseReadonlyControllersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinEnterpriseReadonlyControllersSid", 0x4a) +WinAccountReadonlyControllersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountReadonlyControllersSid", 0x4b) +WinBuiltinEventLogReadersGroup = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinEventLogReadersGroup", 0x4c) +WinNewEnterpriseReadonlyControllersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNewEnterpriseReadonlyControllersSid", 0x4d) +WinBuiltinCertSvcDComAccessGroup = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinCertSvcDComAccessGroup", 0x4e) +WinMediumPlusLabelSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinMediumPlusLabelSid", 0x4f) +WinLocalLogonSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinLocalLogonSid", 0x50) +WinConsoleLogonSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinConsoleLogonSid", 0x51) +WinThisOrganizationCertificateSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinThisOrganizationCertificateSid", 0x52) +WinApplicationPackageAuthoritySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinApplicationPackageAuthoritySid", 0x53) +WinBuiltinAnyPackageSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinAnyPackageSid", 0x54) +WinCapabilityInternetClientSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityInternetClientSid", 0x55) +WinCapabilityInternetClientServerSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityInternetClientServerSid", 0x56) +WinCapabilityPrivateNetworkClientServerSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityPrivateNetworkClientServerSid", 0x57) +WinCapabilityPicturesLibrarySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityPicturesLibrarySid", 0x58) +WinCapabilityVideosLibrarySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityVideosLibrarySid", 0x59) +WinCapabilityMusicLibrarySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityMusicLibrarySid", 0x5a) +WinCapabilityDocumentsLibrarySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityDocumentsLibrarySid", 0x5b) +WinCapabilitySharedUserCertificatesSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilitySharedUserCertificatesSid", 0x5c) +WinCapabilityEnterpriseAuthenticationSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityEnterpriseAuthenticationSid", 0x5d) +WinCapabilityRemovableStorageSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityRemovableStorageSid", 0x5e) +class _WELL_KNOWN_SID_TYPE(EnumType): + values = [WinNullSid, WinWorldSid, WinLocalSid, WinCreatorOwnerSid, WinCreatorGroupSid, WinCreatorOwnerServerSid, WinCreatorGroupServerSid, WinNtAuthoritySid, WinDialupSid, WinNetworkSid, WinBatchSid, WinInteractiveSid, WinServiceSid, WinAnonymousSid, WinProxySid, WinEnterpriseControllersSid, WinSelfSid, WinAuthenticatedUserSid, WinRestrictedCodeSid, WinTerminalServerSid, WinRemoteLogonIdSid, WinLogonIdsSid, WinLocalSystemSid, WinLocalServiceSid, WinNetworkServiceSid, WinBuiltinDomainSid, WinBuiltinAdministratorsSid, WinBuiltinUsersSid, WinBuiltinGuestsSid, WinBuiltinPowerUsersSid, WinBuiltinAccountOperatorsSid, WinBuiltinSystemOperatorsSid, WinBuiltinPrintOperatorsSid, WinBuiltinBackupOperatorsSid, WinBuiltinReplicatorSid, WinBuiltinPreWindows2000CompatibleAccessSid, WinBuiltinRemoteDesktopUsersSid, WinBuiltinNetworkConfigurationOperatorsSid, WinAccountAdministratorSid, WinAccountGuestSid, WinAccountKrbtgtSid, WinAccountDomainAdminsSid, WinAccountDomainUsersSid, WinAccountDomainGuestsSid, WinAccountComputersSid, WinAccountControllersSid, WinAccountCertAdminsSid, WinAccountSchemaAdminsSid, WinAccountEnterpriseAdminsSid, WinAccountPolicyAdminsSid, WinAccountRasAndIasServersSid, WinNTLMAuthenticationSid, WinDigestAuthenticationSid, WinSChannelAuthenticationSid, WinThisOrganizationSid, WinOtherOrganizationSid, WinBuiltinIncomingForestTrustBuildersSid, WinBuiltinPerfMonitoringUsersSid, WinBuiltinPerfLoggingUsersSid, WinBuiltinAuthorizationAccessSid, WinBuiltinTerminalServerLicenseServersSid, WinBuiltinDCOMUsersSid, WinBuiltinIUsersSid, WinIUserSid, WinBuiltinCryptoOperatorsSid, WinUntrustedLabelSid, WinLowLabelSid, WinMediumLabelSid, WinHighLabelSid, WinSystemLabelSid, WinWriteRestrictedCodeSid, WinCreatorOwnerRightsSid, WinCacheablePrincipalsGroupSid, WinNonCacheablePrincipalsGroupSid, WinEnterpriseReadonlyControllersSid, WinAccountReadonlyControllersSid, WinBuiltinEventLogReadersGroup, WinNewEnterpriseReadonlyControllersSid, WinBuiltinCertSvcDComAccessGroup, WinMediumPlusLabelSid, WinLocalLogonSid, WinConsoleLogonSid, WinThisOrganizationCertificateSid, WinApplicationPackageAuthoritySid, WinBuiltinAnyPackageSid, WinCapabilityInternetClientSid, WinCapabilityInternetClientServerSid, WinCapabilityPrivateNetworkClientServerSid, WinCapabilityPicturesLibrarySid, WinCapabilityVideosLibrarySid, WinCapabilityMusicLibrarySid, WinCapabilityDocumentsLibrarySid, WinCapabilitySharedUserCertificatesSid, WinCapabilityEnterpriseAuthenticationSid, WinCapabilityRemovableStorageSid] + mapper = FlagMapper(*values) +WELL_KNOWN_SID_TYPE = _WELL_KNOWN_SID_TYPE + + +ViewShare = EnumValue("_SECTION_INHERIT", "ViewShare", 0x1) +ViewUnmap = EnumValue("_SECTION_INHERIT", "ViewUnmap", 0x2) +class _SECTION_INHERIT(EnumType): + values = [ViewShare, ViewUnmap] + mapper = FlagMapper(*values) +SECTION_INHERIT = _SECTION_INHERIT + + +ProcessBasicInformation = EnumValue("_PROCESSINFOCLASS", "ProcessBasicInformation", 0x0) +ProcessQuotaLimits = EnumValue("_PROCESSINFOCLASS", "ProcessQuotaLimits", 0x1) +ProcessIoCounters = EnumValue("_PROCESSINFOCLASS", "ProcessIoCounters", 0x2) +ProcessVmCounters = EnumValue("_PROCESSINFOCLASS", "ProcessVmCounters", 0x3) +ProcessTimes = EnumValue("_PROCESSINFOCLASS", "ProcessTimes", 0x4) +ProcessBasePriority = EnumValue("_PROCESSINFOCLASS", "ProcessBasePriority", 0x5) +ProcessRaisePriority = EnumValue("_PROCESSINFOCLASS", "ProcessRaisePriority", 0x6) +ProcessDebugPort = EnumValue("_PROCESSINFOCLASS", "ProcessDebugPort", 0x7) +ProcessExceptionPort = EnumValue("_PROCESSINFOCLASS", "ProcessExceptionPort", 0x8) +ProcessAccessToken = EnumValue("_PROCESSINFOCLASS", "ProcessAccessToken", 0x9) +ProcessLdtInformation = EnumValue("_PROCESSINFOCLASS", "ProcessLdtInformation", 0xa) +ProcessLdtSize = EnumValue("_PROCESSINFOCLASS", "ProcessLdtSize", 0xb) +ProcessDefaultHardErrorMode = EnumValue("_PROCESSINFOCLASS", "ProcessDefaultHardErrorMode", 0xc) +ProcessIoPortHandlers = EnumValue("_PROCESSINFOCLASS", "ProcessIoPortHandlers", 0xd) +ProcessPooledUsageAndLimits = EnumValue("_PROCESSINFOCLASS", "ProcessPooledUsageAndLimits", 0xe) +ProcessWorkingSetWatch = EnumValue("_PROCESSINFOCLASS", "ProcessWorkingSetWatch", 0xf) +ProcessUserModeIOPL = EnumValue("_PROCESSINFOCLASS", "ProcessUserModeIOPL", 0x10) +ProcessEnableAlignmentFaultFixup = EnumValue("_PROCESSINFOCLASS", "ProcessEnableAlignmentFaultFixup", 0x11) +ProcessPriorityClass = EnumValue("_PROCESSINFOCLASS", "ProcessPriorityClass", 0x12) +ProcessWx86Information = EnumValue("_PROCESSINFOCLASS", "ProcessWx86Information", 0x13) +ProcessHandleCount = EnumValue("_PROCESSINFOCLASS", "ProcessHandleCount", 0x14) +ProcessAffinityMask = EnumValue("_PROCESSINFOCLASS", "ProcessAffinityMask", 0x15) +ProcessPriorityBoost = EnumValue("_PROCESSINFOCLASS", "ProcessPriorityBoost", 0x16) +ProcessDeviceMap = EnumValue("_PROCESSINFOCLASS", "ProcessDeviceMap", 0x17) +ProcessSessionInformation = EnumValue("_PROCESSINFOCLASS", "ProcessSessionInformation", 0x18) +ProcessForegroundInformation = EnumValue("_PROCESSINFOCLASS", "ProcessForegroundInformation", 0x19) +ProcessWow64Information = EnumValue("_PROCESSINFOCLASS", "ProcessWow64Information", 0x1a) +ProcessImageFileName = EnumValue("_PROCESSINFOCLASS", "ProcessImageFileName", 0x1b) +ProcessLUIDDeviceMapsEnabled = EnumValue("_PROCESSINFOCLASS", "ProcessLUIDDeviceMapsEnabled", 0x1c) +ProcessBreakOnTermination = EnumValue("_PROCESSINFOCLASS", "ProcessBreakOnTermination", 0x1d) +ProcessDebugObjectHandle = EnumValue("_PROCESSINFOCLASS", "ProcessDebugObjectHandle", 0x1e) +ProcessDebugFlags = EnumValue("_PROCESSINFOCLASS", "ProcessDebugFlags", 0x1f) +ProcessHandleTracing = EnumValue("_PROCESSINFOCLASS", "ProcessHandleTracing", 0x20) +ProcessIoPriority = EnumValue("_PROCESSINFOCLASS", "ProcessIoPriority", 0x21) +ProcessExecuteFlags = EnumValue("_PROCESSINFOCLASS", "ProcessExecuteFlags", 0x22) +ProcessTlsInformation = EnumValue("_PROCESSINFOCLASS", "ProcessTlsInformation", 0x23) +ProcessCookie = EnumValue("_PROCESSINFOCLASS", "ProcessCookie", 0x24) +ProcessImageInformation = EnumValue("_PROCESSINFOCLASS", "ProcessImageInformation", 0x25) +ProcessCycleTime = EnumValue("_PROCESSINFOCLASS", "ProcessCycleTime", 0x26) +ProcessPagePriority = EnumValue("_PROCESSINFOCLASS", "ProcessPagePriority", 0x27) +ProcessInstrumentationCallback = EnumValue("_PROCESSINFOCLASS", "ProcessInstrumentationCallback", 0x28) +ProcessThreadStackAllocation = EnumValue("_PROCESSINFOCLASS", "ProcessThreadStackAllocation", 0x29) +ProcessWorkingSetWatchEx = EnumValue("_PROCESSINFOCLASS", "ProcessWorkingSetWatchEx", 0x2a) +ProcessImageFileNameWin32 = EnumValue("_PROCESSINFOCLASS", "ProcessImageFileNameWin32", 0x2b) +ProcessImageFileMapping = EnumValue("_PROCESSINFOCLASS", "ProcessImageFileMapping", 0x2c) +ProcessAffinityUpdateMode = EnumValue("_PROCESSINFOCLASS", "ProcessAffinityUpdateMode", 0x2d) +ProcessMemoryAllocationMode = EnumValue("_PROCESSINFOCLASS", "ProcessMemoryAllocationMode", 0x2e) +ProcessGroupInformation = EnumValue("_PROCESSINFOCLASS", "ProcessGroupInformation", 0x2f) +ProcessTokenVirtualizationEnabled = EnumValue("_PROCESSINFOCLASS", "ProcessTokenVirtualizationEnabled", 0x30) +ProcessOwnerInformation = EnumValue("_PROCESSINFOCLASS", "ProcessOwnerInformation", 0x31) +ProcessWindowInformation = EnumValue("_PROCESSINFOCLASS", "ProcessWindowInformation", 0x32) +ProcessHandleInformation = EnumValue("_PROCESSINFOCLASS", "ProcessHandleInformation", 0x33) +ProcessMitigationPolicy = EnumValue("_PROCESSINFOCLASS", "ProcessMitigationPolicy", 0x34) +ProcessDynamicFunctionTableInformation = EnumValue("_PROCESSINFOCLASS", "ProcessDynamicFunctionTableInformation", 0x35) +ProcessHandleCheckingMode = EnumValue("_PROCESSINFOCLASS", "ProcessHandleCheckingMode", 0x36) +ProcessKeepAliveCount = EnumValue("_PROCESSINFOCLASS", "ProcessKeepAliveCount", 0x37) +ProcessRevokeFileHandles = EnumValue("_PROCESSINFOCLASS", "ProcessRevokeFileHandles", 0x38) +ProcessWorkingSetControl = EnumValue("_PROCESSINFOCLASS", "ProcessWorkingSetControl", 0x39) +ProcessHandleTable = EnumValue("_PROCESSINFOCLASS", "ProcessHandleTable", 0x3a) +ProcessCheckStackExtentsMode = EnumValue("_PROCESSINFOCLASS", "ProcessCheckStackExtentsMode", 0x3b) +ProcessCommandLineInformation = EnumValue("_PROCESSINFOCLASS", "ProcessCommandLineInformation", 0x3c) +ProcessProtectionInformation = EnumValue("_PROCESSINFOCLASS", "ProcessProtectionInformation", 0x3d) +ProcessMemoryExhaustion = EnumValue("_PROCESSINFOCLASS", "ProcessMemoryExhaustion", 0x3e) +ProcessFaultInformation = EnumValue("_PROCESSINFOCLASS", "ProcessFaultInformation", 0x3f) +ProcessTelemetryIdInformation = EnumValue("_PROCESSINFOCLASS", "ProcessTelemetryIdInformation", 0x40) +ProcessCommitReleaseInformation = EnumValue("_PROCESSINFOCLASS", "ProcessCommitReleaseInformation", 0x41) +ProcessReserved1Information = EnumValue("_PROCESSINFOCLASS", "ProcessReserved1Information", 0x42) +ProcessReserved2Information = EnumValue("_PROCESSINFOCLASS", "ProcessReserved2Information", 0x43) +ProcessSubsystemProcess = EnumValue("_PROCESSINFOCLASS", "ProcessSubsystemProcess", 0x44) +ProcessInPrivate = EnumValue("_PROCESSINFOCLASS", "ProcessInPrivate", 0x46) +ProcessRaiseUMExceptionOnInvalidHandleClose = EnumValue("_PROCESSINFOCLASS", "ProcessRaiseUMExceptionOnInvalidHandleClose", 0x47) +ProcessSubsystemInformation = EnumValue("_PROCESSINFOCLASS", "ProcessSubsystemInformation", 0x4b) +ProcessWin32kSyscallFilterInformation = EnumValue("_PROCESSINFOCLASS", "ProcessWin32kSyscallFilterInformation", 0x4f) +ProcessEnergyTrackingState = EnumValue("_PROCESSINFOCLASS", "ProcessEnergyTrackingState", 0x52) +MaxProcessInfoClass = EnumValue("_PROCESSINFOCLASS", "MaxProcessInfoClass", 0x53) +class _PROCESSINFOCLASS(EnumType): + values = [ProcessBasicInformation, ProcessQuotaLimits, ProcessIoCounters, ProcessVmCounters, ProcessTimes, ProcessBasePriority, ProcessRaisePriority, ProcessDebugPort, ProcessExceptionPort, ProcessAccessToken, ProcessLdtInformation, ProcessLdtSize, ProcessDefaultHardErrorMode, ProcessIoPortHandlers, ProcessPooledUsageAndLimits, ProcessWorkingSetWatch, ProcessUserModeIOPL, ProcessEnableAlignmentFaultFixup, ProcessPriorityClass, ProcessWx86Information, ProcessHandleCount, ProcessAffinityMask, ProcessPriorityBoost, ProcessDeviceMap, ProcessSessionInformation, ProcessForegroundInformation, ProcessWow64Information, ProcessImageFileName, ProcessLUIDDeviceMapsEnabled, ProcessBreakOnTermination, ProcessDebugObjectHandle, ProcessDebugFlags, ProcessHandleTracing, ProcessIoPriority, ProcessExecuteFlags, ProcessTlsInformation, ProcessCookie, ProcessImageInformation, ProcessCycleTime, ProcessPagePriority, ProcessInstrumentationCallback, ProcessThreadStackAllocation, ProcessWorkingSetWatchEx, ProcessImageFileNameWin32, ProcessImageFileMapping, ProcessAffinityUpdateMode, ProcessMemoryAllocationMode, ProcessGroupInformation, ProcessTokenVirtualizationEnabled, ProcessOwnerInformation, ProcessWindowInformation, ProcessHandleInformation, ProcessMitigationPolicy, ProcessDynamicFunctionTableInformation, ProcessHandleCheckingMode, ProcessKeepAliveCount, ProcessRevokeFileHandles, ProcessWorkingSetControl, ProcessHandleTable, ProcessCheckStackExtentsMode, ProcessCommandLineInformation, ProcessProtectionInformation, ProcessMemoryExhaustion, ProcessFaultInformation, ProcessTelemetryIdInformation, ProcessCommitReleaseInformation, ProcessReserved1Information, ProcessReserved2Information, ProcessSubsystemProcess, ProcessInPrivate, ProcessRaiseUMExceptionOnInvalidHandleClose, ProcessSubsystemInformation, ProcessWin32kSyscallFilterInformation, ProcessEnergyTrackingState, MaxProcessInfoClass] + mapper = FlagMapper(*values) +PROCESSINFOCLASS = _PROCESSINFOCLASS + + +MemoryBasicInformation = EnumValue("_MEMORY_INFORMATION_CLASS", "MemoryBasicInformation", 0x0) +MemoryWorkingSetList = EnumValue("_MEMORY_INFORMATION_CLASS", "MemoryWorkingSetList", 0x1) +MemorySectionName = EnumValue("_MEMORY_INFORMATION_CLASS", "MemorySectionName", 0x2) +MemoryBasicVlmInformation = EnumValue("_MEMORY_INFORMATION_CLASS", "MemoryBasicVlmInformation", 0x3) +MemoryWorkingSetListEx = EnumValue("_MEMORY_INFORMATION_CLASS", "MemoryWorkingSetListEx", 0x4) +class _MEMORY_INFORMATION_CLASS(EnumType): + values = [MemoryBasicInformation, MemoryWorkingSetList, MemorySectionName, MemoryBasicVlmInformation, MemoryWorkingSetListEx] + mapper = FlagMapper(*values) +MEMORY_INFORMATION_CLASS = _MEMORY_INFORMATION_CLASS + + +ThreadBasicInformation = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadBasicInformation", 0x0) +ThreadTimes = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadTimes", 0x1) +ThreadPriority = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadPriority", 0x2) +ThreadBasePriority = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadBasePriority", 0x3) +ThreadAffinityMask = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadAffinityMask", 0x4) +ThreadImpersonationToken = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadImpersonationToken", 0x5) +ThreadDescriptorTableEntry = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadDescriptorTableEntry", 0x6) +ThreadEnableAlignmentFaultFixup = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadEnableAlignmentFaultFixup", 0x7) +ThreadEventPair = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadEventPair", 0x8) +ThreadQuerySetWin32StartAddress = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadQuerySetWin32StartAddress", 0x9) +ThreadZeroTlsCell = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadZeroTlsCell", 0xa) +ThreadPerformanceCount = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadPerformanceCount", 0xb) +ThreadAmILastThread = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadAmILastThread", 0xc) +ThreadIdealProcessor = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadIdealProcessor", 0xd) +ThreadPriorityBoost = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadPriorityBoost", 0xe) +ThreadSetTlsArrayAddress = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadSetTlsArrayAddress", 0xf) +ThreadIsIoPending = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadIsIoPending", 0x10) +ThreadHideFromDebugger = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadHideFromDebugger", 0x11) +class _THREAD_INFORMATION_CLASS(EnumType): + values = [ThreadBasicInformation, ThreadTimes, ThreadPriority, ThreadBasePriority, ThreadAffinityMask, ThreadImpersonationToken, ThreadDescriptorTableEntry, ThreadEnableAlignmentFaultFixup, ThreadEventPair, ThreadQuerySetWin32StartAddress, ThreadZeroTlsCell, ThreadPerformanceCount, ThreadAmILastThread, ThreadIdealProcessor, ThreadPriorityBoost, ThreadSetTlsArrayAddress, ThreadIsIoPending, ThreadHideFromDebugger] + mapper = FlagMapper(*values) +THREAD_INFORMATION_CLASS = _THREAD_INFORMATION_CLASS +PTHREAD_INFORMATION_CLASS = POINTER(_THREAD_INFORMATION_CLASS) + + +VT_EMPTY = EnumValue("_VARENUM", "VT_EMPTY", 0x0) +VT_NULL = EnumValue("_VARENUM", "VT_NULL", 0x1) +VT_I2 = EnumValue("_VARENUM", "VT_I2", 0x2) +VT_I4 = EnumValue("_VARENUM", "VT_I4", 0x3) +VT_R4 = EnumValue("_VARENUM", "VT_R4", 0x4) +VT_R8 = EnumValue("_VARENUM", "VT_R8", 0x5) +VT_CY = EnumValue("_VARENUM", "VT_CY", 0x6) +VT_DATE = EnumValue("_VARENUM", "VT_DATE", 0x7) +VT_BSTR = EnumValue("_VARENUM", "VT_BSTR", 0x8) +VT_DISPATCH = EnumValue("_VARENUM", "VT_DISPATCH", 0x9) +VT_ERROR = EnumValue("_VARENUM", "VT_ERROR", 0xa) +VT_BOOL = EnumValue("_VARENUM", "VT_BOOL", 0xb) +VT_VARIANT = EnumValue("_VARENUM", "VT_VARIANT", 0xc) +VT_UNKNOWN = EnumValue("_VARENUM", "VT_UNKNOWN", 0xd) +VT_DECIMAL = EnumValue("_VARENUM", "VT_DECIMAL", 0xe) +VT_I1 = EnumValue("_VARENUM", "VT_I1", 0x10) +VT_UI1 = EnumValue("_VARENUM", "VT_UI1", 0x11) +VT_UI2 = EnumValue("_VARENUM", "VT_UI2", 0x12) +VT_UI4 = EnumValue("_VARENUM", "VT_UI4", 0x13) +VT_I8 = EnumValue("_VARENUM", "VT_I8", 0x14) +VT_UI8 = EnumValue("_VARENUM", "VT_UI8", 0x15) +VT_INT = EnumValue("_VARENUM", "VT_INT", 0x16) +VT_UINT = EnumValue("_VARENUM", "VT_UINT", 0x17) +VT_VOID = EnumValue("_VARENUM", "VT_VOID", 0x18) +VT_HRESULT = EnumValue("_VARENUM", "VT_HRESULT", 0x19) +VT_PTR = EnumValue("_VARENUM", "VT_PTR", 0x1a) +VT_SAFEARRAY = EnumValue("_VARENUM", "VT_SAFEARRAY", 0x1b) +VT_CARRAY = EnumValue("_VARENUM", "VT_CARRAY", 0x1c) +VT_USERDEFINED = EnumValue("_VARENUM", "VT_USERDEFINED", 0x1d) +VT_LPSTR = EnumValue("_VARENUM", "VT_LPSTR", 0x1e) +VT_LPWSTR = EnumValue("_VARENUM", "VT_LPWSTR", 0x1f) +VT_RECORD = EnumValue("_VARENUM", "VT_RECORD", 0x24) +VT_INT_PTR = EnumValue("_VARENUM", "VT_INT_PTR", 0x25) +VT_UINT_PTR = EnumValue("_VARENUM", "VT_UINT_PTR", 0x26) +VT_FILETIME = EnumValue("_VARENUM", "VT_FILETIME", 0x40) +VT_BLOB = EnumValue("_VARENUM", "VT_BLOB", 0x41) +VT_STREAM = EnumValue("_VARENUM", "VT_STREAM", 0x42) +VT_STORAGE = EnumValue("_VARENUM", "VT_STORAGE", 0x43) +VT_STREAMED_OBJECT = EnumValue("_VARENUM", "VT_STREAMED_OBJECT", 0x44) +VT_STORED_OBJECT = EnumValue("_VARENUM", "VT_STORED_OBJECT", 0x45) +VT_BLOB_OBJECT = EnumValue("_VARENUM", "VT_BLOB_OBJECT", 0x46) +VT_CF = EnumValue("_VARENUM", "VT_CF", 0x47) +VT_CLSID = EnumValue("_VARENUM", "VT_CLSID", 0x48) +VT_VERSIONED_STREAM = EnumValue("_VARENUM", "VT_VERSIONED_STREAM", 0x49) +VT_BSTR_BLOB = EnumValue("_VARENUM", "VT_BSTR_BLOB", 0xfff) +VT_VECTOR = EnumValue("_VARENUM", "VT_VECTOR", 0x1000) +VT_ARRAY = EnumValue("_VARENUM", "VT_ARRAY", 0x2000) +VT_BYREF = EnumValue("_VARENUM", "VT_BYREF", 0x4000) +VT_RESERVED = EnumValue("_VARENUM", "VT_RESERVED", 0x8000) +VT_ILLEGAL = EnumValue("_VARENUM", "VT_ILLEGAL", 0xffff) +VT_ILLEGALMASKED = EnumValue("_VARENUM", "VT_ILLEGALMASKED", 0xfff) +VT_TYPEMASK = EnumValue("_VARENUM", "VT_TYPEMASK", 0xfff) +class _VARENUM(EnumType): + values = [VT_EMPTY, VT_NULL, VT_I2, VT_I4, VT_R4, VT_R8, VT_CY, VT_DATE, VT_BSTR, VT_DISPATCH, VT_ERROR, VT_BOOL, VT_VARIANT, VT_UNKNOWN, VT_DECIMAL, VT_I1, VT_UI1, VT_UI2, VT_UI4, VT_I8, VT_UI8, VT_INT, VT_UINT, VT_VOID, VT_HRESULT, VT_PTR, VT_SAFEARRAY, VT_CARRAY, VT_USERDEFINED, VT_LPSTR, VT_LPWSTR, VT_RECORD, VT_INT_PTR, VT_UINT_PTR, VT_FILETIME, VT_BLOB, VT_STREAM, VT_STORAGE, VT_STREAMED_OBJECT, VT_STORED_OBJECT, VT_BLOB_OBJECT, VT_CF, VT_CLSID, VT_VERSIONED_STREAM, VT_BSTR_BLOB, VT_VECTOR, VT_ARRAY, VT_BYREF, VT_RESERVED, VT_ILLEGAL, VT_ILLEGALMASKED, VT_TYPEMASK] + mapper = FlagMapper(*values) +VARENUM = _VARENUM + + +UDP_TABLE_BASIC = EnumValue("_UDP_TABLE_CLASS", "UDP_TABLE_BASIC", 0x0) +UDP_TABLE_OWNER_PID = EnumValue("_UDP_TABLE_CLASS", "UDP_TABLE_OWNER_PID", 0x1) +UDP_TABLE_OWNER_MODULE = EnumValue("_UDP_TABLE_CLASS", "UDP_TABLE_OWNER_MODULE", 0x2) +class _UDP_TABLE_CLASS(EnumType): + values = [UDP_TABLE_BASIC, UDP_TABLE_OWNER_PID, UDP_TABLE_OWNER_MODULE] + mapper = FlagMapper(*values) +UDP_TABLE_CLASS = _UDP_TABLE_CLASS + + +NET_FW_RULE_DIR_IN = EnumValue("NET_FW_RULE_DIRECTION_", "NET_FW_RULE_DIR_IN", 0x1) +NET_FW_RULE_DIR_OUT = EnumValue("NET_FW_RULE_DIRECTION_", "NET_FW_RULE_DIR_OUT", 0x2) +NET_FW_RULE_DIR_MAX = EnumValue("NET_FW_RULE_DIRECTION_", "NET_FW_RULE_DIR_MAX", 0x3) +class NET_FW_RULE_DIRECTION_(EnumType): + values = [NET_FW_RULE_DIR_IN, NET_FW_RULE_DIR_OUT, NET_FW_RULE_DIR_MAX] + mapper = FlagMapper(*values) +NET_FW_RULE_DIRECTION = NET_FW_RULE_DIRECTION_ + + +NET_FW_PROFILE2_DOMAIN = EnumValue("NET_FW_PROFILE_TYPE2_", "NET_FW_PROFILE2_DOMAIN", 0x1) +NET_FW_PROFILE2_PRIVATE = EnumValue("NET_FW_PROFILE_TYPE2_", "NET_FW_PROFILE2_PRIVATE", 0x2) +NET_FW_PROFILE2_PUBLIC = EnumValue("NET_FW_PROFILE_TYPE2_", "NET_FW_PROFILE2_PUBLIC", 0x4) +NET_FW_PROFILE2_ALL = EnumValue("NET_FW_PROFILE_TYPE2_", "NET_FW_PROFILE2_ALL", 0x7fffffff) +class NET_FW_PROFILE_TYPE2_(EnumType): + values = [NET_FW_PROFILE2_DOMAIN, NET_FW_PROFILE2_PRIVATE, NET_FW_PROFILE2_PUBLIC, NET_FW_PROFILE2_ALL] + mapper = FlagMapper(*values) +NET_FW_PROFILE_TYPE2 = NET_FW_PROFILE_TYPE2_ + + +TokenPrimary = EnumValue("tagTOKEN_TYPE", "TokenPrimary", 0x1) +TokenImpersonation = EnumValue("tagTOKEN_TYPE", "TokenImpersonation", 0x2) +class tagTOKEN_TYPE(EnumType): + values = [TokenPrimary, TokenImpersonation] + mapper = FlagMapper(*values) +TOKEN_TYPE = tagTOKEN_TYPE +PTOKEN_TYPE = POINTER(tagTOKEN_TYPE) + + +FileFsVolumeInformation = EnumValue("_FS_INFORMATION_CLASS", "FileFsVolumeInformation", 0x1) +FileFsLabelInformation = EnumValue("_FS_INFORMATION_CLASS", "FileFsLabelInformation", 0x2) +FileFsSizeInformation = EnumValue("_FS_INFORMATION_CLASS", "FileFsSizeInformation", 0x3) +FileFsDeviceInformation = EnumValue("_FS_INFORMATION_CLASS", "FileFsDeviceInformation", 0x4) +FileFsAttributeInformation = EnumValue("_FS_INFORMATION_CLASS", "FileFsAttributeInformation", 0x5) +FileFsControlInformation = EnumValue("_FS_INFORMATION_CLASS", "FileFsControlInformation", 0x6) +FileFsFullSizeInformation = EnumValue("_FS_INFORMATION_CLASS", "FileFsFullSizeInformation", 0x7) +FileFsObjectIdInformation = EnumValue("_FS_INFORMATION_CLASS", "FileFsObjectIdInformation", 0x8) +FileFsDriverPathInformation = EnumValue("_FS_INFORMATION_CLASS", "FileFsDriverPathInformation", 0x9) +FileFsVolumeFlagsInformation = EnumValue("_FS_INFORMATION_CLASS", "FileFsVolumeFlagsInformation", 0xa) +FileFsSectorSizeInformation = EnumValue("_FS_INFORMATION_CLASS", "FileFsSectorSizeInformation", 0xb) +class _FS_INFORMATION_CLASS(EnumType): + values = [FileFsVolumeInformation, FileFsLabelInformation, FileFsSizeInformation, FileFsDeviceInformation, FileFsAttributeInformation, FileFsControlInformation, FileFsFullSizeInformation, FileFsObjectIdInformation, FileFsDriverPathInformation, FileFsVolumeFlagsInformation, FileFsSectorSizeInformation] + mapper = FlagMapper(*values) +FS_INFORMATION_CLASS = _FS_INFORMATION_CLASS + + +SecurityAnonymous = EnumValue("_SECURITY_IMPERSONATION_LEVEL", "SecurityAnonymous", 0x0) +SecurityIdentification = EnumValue("_SECURITY_IMPERSONATION_LEVEL", "SecurityIdentification", 0x1) +SecurityImpersonation = EnumValue("_SECURITY_IMPERSONATION_LEVEL", "SecurityImpersonation", 0x2) +SecurityDelegation = EnumValue("_SECURITY_IMPERSONATION_LEVEL", "SecurityDelegation", 0x3) +class _SECURITY_IMPERSONATION_LEVEL(EnumType): + values = [SecurityAnonymous, SecurityIdentification, SecurityImpersonation, SecurityDelegation] + mapper = FlagMapper(*values) +SECURITY_IMPERSONATION_LEVEL = _SECURITY_IMPERSONATION_LEVEL +PSECURITY_IMPERSONATION_LEVEL = POINTER(_SECURITY_IMPERSONATION_LEVEL) + + +ObjectBasicInformation = EnumValue("_OBJECT_INFORMATION_CLASS", "ObjectBasicInformation", 0x0) +ObjectNameInformation = EnumValue("_OBJECT_INFORMATION_CLASS", "ObjectNameInformation", 0x1) +ObjectTypeInformation = EnumValue("_OBJECT_INFORMATION_CLASS", "ObjectTypeInformation", 0x2) +ObjectTypesInformation = EnumValue("_OBJECT_INFORMATION_CLASS", "ObjectTypesInformation", 0x3) +ObjectHandleFlagInformation = EnumValue("_OBJECT_INFORMATION_CLASS", "ObjectHandleFlagInformation", 0x4) +ObjectSessionInformation = EnumValue("_OBJECT_INFORMATION_CLASS", "ObjectSessionInformation", 0x5) +ObjectSessionObjectInformation = EnumValue("_OBJECT_INFORMATION_CLASS", "ObjectSessionObjectInformation", 0x6) +MaxObjectInfoClass = EnumValue("_OBJECT_INFORMATION_CLASS", "MaxObjectInfoClass", 0x7) +class _OBJECT_INFORMATION_CLASS(EnumType): + values = [ObjectBasicInformation, ObjectNameInformation, ObjectTypeInformation, ObjectTypesInformation, ObjectHandleFlagInformation, ObjectSessionInformation, ObjectSessionObjectInformation, MaxObjectInfoClass] + mapper = FlagMapper(*values) +OBJECT_INFORMATION_CLASS = _OBJECT_INFORMATION_CLASS + + +SidTypeUser = EnumValue("_SID_NAME_USE", "SidTypeUser", 0x1) +SidTypeGroup = EnumValue("_SID_NAME_USE", "SidTypeGroup", 0x2) +SidTypeDomain = EnumValue("_SID_NAME_USE", "SidTypeDomain", 0x3) +SidTypeAlias = EnumValue("_SID_NAME_USE", "SidTypeAlias", 0x4) +SidTypeWellKnownGroup = EnumValue("_SID_NAME_USE", "SidTypeWellKnownGroup", 0x5) +SidTypeDeletedAccount = EnumValue("_SID_NAME_USE", "SidTypeDeletedAccount", 0x6) +SidTypeInvalid = EnumValue("_SID_NAME_USE", "SidTypeInvalid", 0x7) +SidTypeUnknown = EnumValue("_SID_NAME_USE", "SidTypeUnknown", 0x8) +SidTypeComputer = EnumValue("_SID_NAME_USE", "SidTypeComputer", 0x9) +SidTypeLabel = EnumValue("_SID_NAME_USE", "SidTypeLabel", 0xa) +class _SID_NAME_USE(EnumType): + values = [SidTypeUser, SidTypeGroup, SidTypeDomain, SidTypeAlias, SidTypeWellKnownGroup, SidTypeDeletedAccount, SidTypeInvalid, SidTypeUnknown, SidTypeComputer, SidTypeLabel] + mapper = FlagMapper(*values) +SID_NAME_USE = _SID_NAME_USE +PSID_NAME_USE = POINTER(_SID_NAME_USE) + + +NET_FW_ACTION_BLOCK = EnumValue("NET_FW_ACTION_", "NET_FW_ACTION_BLOCK", 0x0) +NET_FW_ACTION_ALLOW = EnumValue("NET_FW_ACTION_", "NET_FW_ACTION_ALLOW", 0x1) +NET_FW_ACTION_MAX = EnumValue("NET_FW_ACTION_", "NET_FW_ACTION_MAX", 0x2) +class NET_FW_ACTION_(EnumType): + values = [NET_FW_ACTION_BLOCK, NET_FW_ACTION_ALLOW, NET_FW_ACTION_MAX] + mapper = FlagMapper(*values) +NET_FW_ACTION = NET_FW_ACTION_ + + +NET_FW_MODIFY_STATE_OK = EnumValue("NET_FW_MODIFY_STATE_", "NET_FW_MODIFY_STATE_OK", 0x0) +NET_FW_MODIFY_STATE_GP_OVERRIDE = EnumValue("NET_FW_MODIFY_STATE_", "NET_FW_MODIFY_STATE_GP_OVERRIDE", 0x1) +NET_FW_MODIFY_STATE_INBOUND_BLOCKED = EnumValue("NET_FW_MODIFY_STATE_", "NET_FW_MODIFY_STATE_INBOUND_BLOCKED", 0x2) +class NET_FW_MODIFY_STATE_(EnumType): + values = [NET_FW_MODIFY_STATE_OK, NET_FW_MODIFY_STATE_GP_OVERRIDE, NET_FW_MODIFY_STATE_INBOUND_BLOCKED] + mapper = FlagMapper(*values) +NET_FW_MODIFY_STATE = NET_FW_MODIFY_STATE_ + + +CLSCTX_INPROC_SERVER = EnumValue("tagCLSCTX", "CLSCTX_INPROC_SERVER", 0x1) +CLSCTX_INPROC_HANDLER = EnumValue("tagCLSCTX", "CLSCTX_INPROC_HANDLER", 0x2) +CLSCTX_LOCAL_SERVER = EnumValue("tagCLSCTX", "CLSCTX_LOCAL_SERVER", 0x4) +CLSCTX_INPROC_SERVER16 = EnumValue("tagCLSCTX", "CLSCTX_INPROC_SERVER16", 0x8) +CLSCTX_REMOTE_SERVER = EnumValue("tagCLSCTX", "CLSCTX_REMOTE_SERVER", 0x10) +CLSCTX_INPROC_HANDLER16 = EnumValue("tagCLSCTX", "CLSCTX_INPROC_HANDLER16", 0x20) +CLSCTX_RESERVED1 = EnumValue("tagCLSCTX", "CLSCTX_RESERVED1", 0x40) +CLSCTX_RESERVED2 = EnumValue("tagCLSCTX", "CLSCTX_RESERVED2", 0x80) +CLSCTX_RESERVED3 = EnumValue("tagCLSCTX", "CLSCTX_RESERVED3", 0x100) +CLSCTX_RESERVED4 = EnumValue("tagCLSCTX", "CLSCTX_RESERVED4", 0x200) +CLSCTX_NO_CODE_DOWNLOAD = EnumValue("tagCLSCTX", "CLSCTX_NO_CODE_DOWNLOAD", 0x400) +CLSCTX_RESERVED5 = EnumValue("tagCLSCTX", "CLSCTX_RESERVED5", 0x800) +CLSCTX_NO_CUSTOM_MARSHAL = EnumValue("tagCLSCTX", "CLSCTX_NO_CUSTOM_MARSHAL", 0x1000) +CLSCTX_ENABLE_CODE_DOWNLOAD = EnumValue("tagCLSCTX", "CLSCTX_ENABLE_CODE_DOWNLOAD", 0x2000) +CLSCTX_NO_FAILURE_LOG = EnumValue("tagCLSCTX", "CLSCTX_NO_FAILURE_LOG", 0x4000) +CLSCTX_DISABLE_AAA = EnumValue("tagCLSCTX", "CLSCTX_DISABLE_AAA", 0x8000) +CLSCTX_ENABLE_AAA = EnumValue("tagCLSCTX", "CLSCTX_ENABLE_AAA", 0x10000) +CLSCTX_FROM_DEFAULT_CONTEXT = EnumValue("tagCLSCTX", "CLSCTX_FROM_DEFAULT_CONTEXT", 0x20000) +CLSCTX_ACTIVATE_32_BIT_SERVER = EnumValue("tagCLSCTX", "CLSCTX_ACTIVATE_32_BIT_SERVER", 0x40000) +CLSCTX_ACTIVATE_64_BIT_SERVER = EnumValue("tagCLSCTX", "CLSCTX_ACTIVATE_64_BIT_SERVER", 0x80000) +CLSCTX_ENABLE_CLOAKING = EnumValue("tagCLSCTX", "CLSCTX_ENABLE_CLOAKING", 0x100000) +CLSCTX_APPCONTAINER = EnumValue("tagCLSCTX", "CLSCTX_APPCONTAINER", 0x400000) +CLSCTX_ACTIVATE_AAA_AS_IU = EnumValue("tagCLSCTX", "CLSCTX_ACTIVATE_AAA_AS_IU", 0x800000) +CLSCTX_PS_DLL = EnumValue("tagCLSCTX", "CLSCTX_PS_DLL", 0x80000000) +class tagCLSCTX(EnumType): + values = [CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, CLSCTX_LOCAL_SERVER, CLSCTX_INPROC_SERVER16, CLSCTX_REMOTE_SERVER, CLSCTX_INPROC_HANDLER16, CLSCTX_RESERVED1, CLSCTX_RESERVED2, CLSCTX_RESERVED3, CLSCTX_RESERVED4, CLSCTX_NO_CODE_DOWNLOAD, CLSCTX_RESERVED5, CLSCTX_NO_CUSTOM_MARSHAL, CLSCTX_ENABLE_CODE_DOWNLOAD, CLSCTX_NO_FAILURE_LOG, CLSCTX_DISABLE_AAA, CLSCTX_ENABLE_AAA, CLSCTX_FROM_DEFAULT_CONTEXT, CLSCTX_ACTIVATE_32_BIT_SERVER, CLSCTX_ACTIVATE_64_BIT_SERVER, CLSCTX_ENABLE_CLOAKING, CLSCTX_APPCONTAINER, CLSCTX_ACTIVATE_AAA_AS_IU, CLSCTX_PS_DLL] + mapper = FlagMapper(*values) +CLSCTX = tagCLSCTX + + +SE_UNKNOWN_OBJECT_TYPE = EnumValue("_SE_OBJECT_TYPE", "SE_UNKNOWN_OBJECT_TYPE", 0x0) +SE_FILE_OBJECT = EnumValue("_SE_OBJECT_TYPE", "SE_FILE_OBJECT", 0x1) +SE_SERVICE = EnumValue("_SE_OBJECT_TYPE", "SE_SERVICE", 0x2) +SE_PRINTER = EnumValue("_SE_OBJECT_TYPE", "SE_PRINTER", 0x3) +SE_REGISTRY_KEY = EnumValue("_SE_OBJECT_TYPE", "SE_REGISTRY_KEY", 0x4) +SE_LMSHARE = EnumValue("_SE_OBJECT_TYPE", "SE_LMSHARE", 0x5) +SE_KERNEL_OBJECT = EnumValue("_SE_OBJECT_TYPE", "SE_KERNEL_OBJECT", 0x6) +SE_WINDOW_OBJECT = EnumValue("_SE_OBJECT_TYPE", "SE_WINDOW_OBJECT", 0x7) +SE_DS_OBJECT = EnumValue("_SE_OBJECT_TYPE", "SE_DS_OBJECT", 0x8) +SE_DS_OBJECT_ALL = EnumValue("_SE_OBJECT_TYPE", "SE_DS_OBJECT_ALL", 0x9) +SE_PROVIDER_DEFINED_OBJECT = EnumValue("_SE_OBJECT_TYPE", "SE_PROVIDER_DEFINED_OBJECT", 0xa) +SE_WMIGUID_OBJECT = EnumValue("_SE_OBJECT_TYPE", "SE_WMIGUID_OBJECT", 0xb) +SE_REGISTRY_WOW64_32KEY = EnumValue("_SE_OBJECT_TYPE", "SE_REGISTRY_WOW64_32KEY", 0xc) +class _SE_OBJECT_TYPE(EnumType): + values = [SE_UNKNOWN_OBJECT_TYPE, SE_FILE_OBJECT, SE_SERVICE, SE_PRINTER, SE_REGISTRY_KEY, SE_LMSHARE, SE_KERNEL_OBJECT, SE_WINDOW_OBJECT, SE_DS_OBJECT, SE_DS_OBJECT_ALL, SE_PROVIDER_DEFINED_OBJECT, SE_WMIGUID_OBJECT, SE_REGISTRY_WOW64_32KEY] + mapper = FlagMapper(*values) +SE_OBJECT_TYPE = _SE_OBJECT_TYPE + + +ViewShare = EnumValue("_SECTION_INHERIT", "ViewShare", 0x1) +ViewUnmap = EnumValue("_SECTION_INHERIT", "ViewUnmap", 0x2) +class _SECTION_INHERIT(EnumType): + values = [ViewShare, ViewUnmap] + mapper = FlagMapper(*values) +SECTION_INHERIT = _SECTION_INHERIT + + +COINIT_APARTMENTTHREADED = EnumValue("tagCOINIT", "COINIT_APARTMENTTHREADED", 0x2) +COINIT_MULTITHREADED = EnumValue("tagCOINIT", "COINIT_MULTITHREADED", 0x0) +COINIT_DISABLE_OLE1DDE = EnumValue("tagCOINIT", "COINIT_DISABLE_OLE1DDE", 0x4) +COINIT_SPEED_OVER_MEMORY = EnumValue("tagCOINIT", "COINIT_SPEED_OVER_MEMORY", 0x8) +class tagCOINIT(EnumType): + values = [COINIT_APARTMENTTHREADED, COINIT_MULTITHREADED, COINIT_DISABLE_OLE1DDE, COINIT_SPEED_OVER_MEMORY] + mapper = FlagMapper(*values) +COINIT = tagCOINIT + + +TKIND_ENUM = EnumValue("tagTYPEKIND", "TKIND_ENUM", 0x0) +TKIND_RECORD = EnumValue("tagTYPEKIND", "TKIND_RECORD", 0x1) +TKIND_MODULE = EnumValue("tagTYPEKIND", "TKIND_MODULE", 0x2) +TKIND_INTERFACE = EnumValue("tagTYPEKIND", "TKIND_INTERFACE", 0x3) +TKIND_DISPATCH = EnumValue("tagTYPEKIND", "TKIND_DISPATCH", 0x4) +TKIND_COCLASS = EnumValue("tagTYPEKIND", "TKIND_COCLASS", 0x5) +TKIND_ALIAS = EnumValue("tagTYPEKIND", "TKIND_ALIAS", 0x6) +TKIND_UNION = EnumValue("tagTYPEKIND", "TKIND_UNION", 0x7) +TKIND_MAX = EnumValue("tagTYPEKIND", "TKIND_MAX", 0x8) +class tagTYPEKIND(EnumType): + values = [TKIND_ENUM, TKIND_RECORD, TKIND_MODULE, TKIND_INTERFACE, TKIND_DISPATCH, TKIND_COCLASS, TKIND_ALIAS, TKIND_UNION, TKIND_MAX] + mapper = FlagMapper(*values) +TYPEKIND = tagTYPEKIND + + +RtlPathTypeUnknown = EnumValue("_RTL_PATH_TYPE", "RtlPathTypeUnknown", 0x0) +RtlPathTypeUncAbsolute = EnumValue("_RTL_PATH_TYPE", "RtlPathTypeUncAbsolute", 0x1) +RtlPathTypeDriveAbsolute = EnumValue("_RTL_PATH_TYPE", "RtlPathTypeDriveAbsolute", 0x2) +RtlPathTypeDriveRelative = EnumValue("_RTL_PATH_TYPE", "RtlPathTypeDriveRelative", 0x3) +RtlPathTypeRooted = EnumValue("_RTL_PATH_TYPE", "RtlPathTypeRooted", 0x4) +RtlPathTypeRelative = EnumValue("_RTL_PATH_TYPE", "RtlPathTypeRelative", 0x5) +RtlPathTypeLocalDevice = EnumValue("_RTL_PATH_TYPE", "RtlPathTypeLocalDevice", 0x6) +RtlPathTypeRootLocalDevice = EnumValue("_RTL_PATH_TYPE", "RtlPathTypeRootLocalDevice", 0x7) +class _RTL_PATH_TYPE(EnumType): + values = [RtlPathTypeUnknown, RtlPathTypeUncAbsolute, RtlPathTypeDriveAbsolute, RtlPathTypeDriveRelative, RtlPathTypeRooted, RtlPathTypeRelative, RtlPathTypeLocalDevice, RtlPathTypeRootLocalDevice] + mapper = FlagMapper(*values) +RTL_PATH_TYPE = _RTL_PATH_TYPE + + +# Self referencing struct tricks +class _LIST_ENTRY(Structure): pass +PLIST_ENTRY = POINTER(_LIST_ENTRY) +LIST_ENTRY = _LIST_ENTRY +PRLIST_ENTRY = POINTER(_LIST_ENTRY) +_LIST_ENTRY._fields_ = [ + ("Flink", POINTER(_LIST_ENTRY)), + ("Blink", POINTER(_LIST_ENTRY)), +] + +class _PEB_LDR_DATA(Structure): + _fields_ = [ + ("Reserved1", BYTE * (8)), + ("Reserved2", PVOID * (3)), + ("InMemoryOrderModuleList", LIST_ENTRY), + ] +PPEB_LDR_DATA = POINTER(_PEB_LDR_DATA) +PEB_LDR_DATA = _PEB_LDR_DATA + +class _LSA_UNICODE_STRING(Structure): + _fields_ = [ + ("Length", USHORT), + ("MaximumLength", USHORT), + ("Buffer", PVOID), + ] +PUNICODE_STRING = POINTER(_LSA_UNICODE_STRING) +UNICODE_STRING = _LSA_UNICODE_STRING +LSA_UNICODE_STRING = _LSA_UNICODE_STRING +PLSA_UNICODE_STRING = POINTER(_LSA_UNICODE_STRING) + +INITIAL_LSA_UNICODE_STRING = _LSA_UNICODE_STRING + +class _LSA_UNICODE_STRING(INITIAL_LSA_UNICODE_STRING): + @property + def str(self): + """The python string of the LSA_UNICODE_STRING object + + :type: :class:`unicode` + """ + if not self.Length: + return "" + if getattr(self, "_target", None) is not None: #remote ctypes :D -> TRICKS OF THE YEAR + raw_data = self._target.read_memory(self.Buffer, self.Length) + return raw_data.decode("utf16") + size = int(self.Length / 2) + return (ctypes.c_wchar * size).from_address(self.Buffer)[:] + + @classmethod + def from_string(cls, s): + utf16_len = len(s) * 2 + return cls(utf16_len, utf16_len, ctypes.cast(PWSTR(s), PVOID)) + + @classmethod + def from_size(cls, size): + buffer = ctypes.create_string_buffer(size) + return cls(size, size, ctypes.cast(buffer, PVOID)) + + def __repr__(self): + return """<{0} "{1}" at {2}>""".format(type(self).__name__, self.str, hex(id(self))) + + def __sprint__(self): + try: + return self.__repr__() + except TypeError as e: + # Bad buffer: print raw infos + return """<{0} len={1} maxlen={2} buffer={3}>""".format(type(self).__name__, self.Length, self.MaximumLength, self.Buffer) + +PUNICODE_STRING = POINTER(_LSA_UNICODE_STRING) +UNICODE_STRING = _LSA_UNICODE_STRING +LSA_UNICODE_STRING = _LSA_UNICODE_STRING +PLSA_UNICODE_STRING = POINTER(_LSA_UNICODE_STRING) +class _CURDIR(Structure): + _fields_ = [ + ("DosPath", UNICODE_STRING), + ("Handle", PVOID), + ] +PCURDIR = POINTER(_CURDIR) +CURDIR = _CURDIR + +class _RTL_DRIVE_LETTER_CURDIR(Structure): + _fields_ = [ + ("Flags", WORD), + ("Length", WORD), + ("TimeStamp", ULONG), + ("DosPath", UNICODE_STRING), + ] +PRTL_DRIVE_LETTER_CURDIR = POINTER(_RTL_DRIVE_LETTER_CURDIR) +RTL_DRIVE_LETTER_CURDIR = _RTL_DRIVE_LETTER_CURDIR + +class _RTL_USER_PROCESS_PARAMETERS(Structure): + _fields_ = [ + ("MaximumLength", ULONG), + ("Length", ULONG), + ("Flags", ULONG), + ("DebugFlags", ULONG), + ("ConsoleHandle", PVOID), + ("ConsoleFlags", ULONG), + ("StandardInput", PVOID), + ("StandardOutput", PVOID), + ("StandardError", PVOID), + ("CurrentDirectory", CURDIR), + ("DllPath", UNICODE_STRING), + ("ImagePathName", UNICODE_STRING), + ("CommandLine", UNICODE_STRING), + ("Environment", PVOID), + ("StartingX", ULONG), + ("StartingY", ULONG), + ("CountX", ULONG), + ("CountY", ULONG), + ("CountCharsX", ULONG), + ("CountCharsY", ULONG), + ("FillAttribute", ULONG), + ("WindowFlags", ULONG), + ("ShowWindowFlags", ULONG), + ("WindowTitle", UNICODE_STRING), + ("DesktopInfo", UNICODE_STRING), + ("ShellInfo", UNICODE_STRING), + ("RuntimeData", UNICODE_STRING), + ("CurrentDirectores", RTL_DRIVE_LETTER_CURDIR * (32)), + ] +PRTL_USER_PROCESS_PARAMETERS = POINTER(_RTL_USER_PROCESS_PARAMETERS) +RTL_USER_PROCESS_PARAMETERS = _RTL_USER_PROCESS_PARAMETERS + +class _ANON_PEB_SYSTEM_DEPENDENT_02(Union): + _fields_ = [ + ("FastPebLockRoutine", PVOID), + ("SparePtr1", PVOID), + ("AtlThunkSListPtr", PVOID), + ] + + +class _ANON_PEB_SYSTEM_DEPENDENT_03(Union): + _fields_ = [ + ("FastPebUnlockRoutine", PVOID), + ("SparePtr2", PVOID), + ("IFEOKey", PVOID), + ] + + +class _ANON_PEB_SYSTEM_DEPENDENT_06(Union): + _fields_ = [ + ("FreeList", PVOID), + ("SparePebPtr0", PVOID), + ("ApiSetMap", PVOID), + ] + + +class _ANON_PEB_SYSTEM_DEPENDENT_07(Union): + _fields_ = [ + ("ReadOnlySharedMemoryHeap", PVOID), + ("HotpatchInformation", PVOID), + ("SparePvoid0", PVOID), + ] + + +class _ANON_PEB_UNION_1(Union): + _fields_ = [ + ("KernelCallbackTable", PVOID), + ("UserSharedInfoPtr", PVOID), + ] + + +class _ANON_PEB_UNION_2(Union): + _fields_ = [ + ("ImageProcessAffinityMask", PVOID), + ("ActiveProcessAffinityMask", PVOID), + ] + + +class _ANON__PEB_SUB_UNION_1(Union): + _fields_ = [ + ("KernelCallbackTable", PVOID), + ("UserSharedInfoPtr", PVOID), + ] + + +class _ANON__PEB_SUB_UNION_2(Union): + _fields_ = [ + ("ImageProcessAffinityMask", PVOID), + ("ActiveProcessAffinityMask", PVOID), + ] + +class _PEB(Structure): + _anonymous_ = ("_SYSTEM_DEPENDENT_02","_SYSTEM_DEPENDENT_03","anon_01","_SYSTEM_DEPENDENT_06","_SYSTEM_DEPENDENT_07","anon_02") + _fields_ = [ + ("Reserved1", BYTE * (2)), + ("BeingDebugged", BYTE), + ("Reserved2", BYTE * (1)), + ("Mutant", PVOID), + ("ImageBaseAddress", PVOID), + ("Ldr", PPEB_LDR_DATA), + ("ProcessParameters", PRTL_USER_PROCESS_PARAMETERS), + ("SubSystemData", PVOID), + ("ProcessHeap", PVOID), + ("FastPebLock", PVOID), + ("_SYSTEM_DEPENDENT_02", _ANON_PEB_SYSTEM_DEPENDENT_02), + ("_SYSTEM_DEPENDENT_03", _ANON_PEB_SYSTEM_DEPENDENT_03), + ("_SYSTEM_DEPENDENT_04", PVOID), + ("anon_01", _ANON__PEB_SUB_UNION_1), + ("SystemReserved", DWORD), + ("_SYSTEM_DEPENDENT_05", DWORD), + ("_SYSTEM_DEPENDENT_06", _ANON_PEB_SYSTEM_DEPENDENT_06), + ("TlsExpansionCounter", PVOID), + ("TlsBitmap", PVOID), + ("TlsBitmapBits", DWORD * (2)), + ("ReadOnlySharedMemoryBase", PVOID), + ("_SYSTEM_DEPENDENT_07", _ANON_PEB_SYSTEM_DEPENDENT_07), + ("ReadOnlyStaticServerData", PVOID), + ("AnsiCodePageData", PVOID), + ("OemCodePageData", PVOID), + ("UnicodeCaseTableData", PVOID), + ("NumberOfProcessors", DWORD), + ("NtGlobalFlag", DWORD), + ("CriticalSectionTimeout", LARGE_INTEGER), + ("HeapSegmentReserve", PVOID), + ("HeapSegmentCommit", PVOID), + ("HeapDeCommitTotalFreeThreshold", PVOID), + ("HeapDeCommitFreeBlockThreshold", PVOID), + ("NumberOfHeaps", DWORD), + ("MaximumNumberOfHeaps", DWORD), + ("ProcessHeaps", PVOID), + ("GdiSharedHandleTable", PVOID), + ("ProcessStarterHelper", PVOID), + ("GdiDCAttributeList", PVOID), + ("LoaderLock", PVOID), + ("OSMajorVersion", DWORD), + ("OSMinorVersion", DWORD), + ("OSBuildNumber", WORD), + ("OSCSDVersion", WORD), + ("OSPlatformId", DWORD), + ("ImageSubsystem", DWORD), + ("ImageSubsystemMajorVersion", DWORD), + ("ImageSubsystemMinorVersion", PVOID), + ("anon_02", _ANON__PEB_SUB_UNION_2), + ("GdiHandleBuffer", PVOID * (26)), + ("GdiHandleBuffer2", BYTE * (32)), + ("PostProcessInitRoutine", PVOID), + ("TlsExpansionBitmap", PVOID), + ("TlsExpansionBitmapBits", DWORD * (32)), + ("SessionId", PVOID), + ("AppCompatFlags", ULARGE_INTEGER), + ("AppCompatFlagsUser", ULARGE_INTEGER), + ("pShimData", PVOID), + ("AppCompatInfo", PVOID), + ("CSDVersion", UNICODE_STRING), + ("ActivationContextData", PVOID), + ("ProcessAssemblyStorageMap", PVOID), + ("SystemDefaultActivationContextData", PVOID), + ("SystemAssemblyStorageMap", PVOID), + ("MinimumStackCommit", PVOID), + ] +PPEB = POINTER(_PEB) +PEB = _PEB + +class _SECURITY_ATTRIBUTES(Structure): + _fields_ = [ + ("nLength", DWORD), + ("lpSecurityDescriptor", LPVOID), + ("bInheritHandle", BOOL), + ] +SECURITY_ATTRIBUTES = _SECURITY_ATTRIBUTES +LPSECURITY_ATTRIBUTES = POINTER(_SECURITY_ATTRIBUTES) +PSECURITY_ATTRIBUTES = POINTER(_SECURITY_ATTRIBUTES) + +class _SYSTEM_VERIFIER_INFORMATION(Structure): + _fields_ = [ + ("NextEntryOffset", ULONG), + ("Level", ULONG), + ("DriverName", UNICODE_STRING), + ("RaiseIrqls", ULONG), + ("AcquireSpinLocks", ULONG), + ("SynchronizeExecutions", ULONG), + ("AllocationsAttempted", ULONG), + ("AllocationsSucceeded", ULONG), + ("AllocationsSucceededSpecialPool", ULONG), + ("AllocationsWithNoTag", ULONG), + ("TrimRequests", ULONG), + ("Trims", ULONG), + ("AllocationsFailed", ULONG), + ("AllocationsFailedDeliberately", ULONG), + ("Loads", ULONG), + ("Unloads", ULONG), + ("UnTrackedPool", ULONG), + ("CurrentPagedPoolAllocations", ULONG), + ("CurrentNonPagedPoolAllocations", ULONG), + ("PeakPagedPoolAllocations", ULONG), + ("PeakNonPagedPoolAllocations", ULONG), + ("PagedPoolUsageInBytes", SIZE_T), + ("NonPagedPoolUsageInBytes", SIZE_T), + ("PeakPagedPoolUsageInBytes", SIZE_T), + ("PeakNonPagedPoolUsageInBytes", SIZE_T), + ] +PSYSTEM_VERIFIER_INFORMATION = POINTER(_SYSTEM_VERIFIER_INFORMATION) +SYSTEM_VERIFIER_INFORMATION = _SYSTEM_VERIFIER_INFORMATION + +class _SYSTEM_PROCESS_ID_INFORMATION(Structure): + _fields_ = [ + ("ProcessId", HANDLE), + ("ImageName", UNICODE_STRING), + ] +SYSTEM_PROCESS_ID_INFORMATION = _SYSTEM_PROCESS_ID_INFORMATION +PSYSTEM_PROCESS_ID_INFORMATION = POINTER(_SYSTEM_PROCESS_ID_INFORMATION) + +class _CLIENT_ID(Structure): + _fields_ = [ + ("UniqueProcess", HANDLE), + ("UniqueThread", HANDLE), + ] +PCLIENT_ID = POINTER(_CLIENT_ID) +CLIENT_ID = _CLIENT_ID + +class _CLIENT_ID64(Structure): + _fields_ = [ + ("UniqueProcess", ULONG64), + ("UniqueThread", ULONG64), + ] +PCLIENT_ID64 = POINTER(_CLIENT_ID64) +CLIENT_ID64 = _CLIENT_ID64 + +class _CLIENT_ID32(Structure): + _fields_ = [ + ("UniqueProcess", ULONG), + ("UniqueThread", ULONG), + ] +CLIENT_ID32 = _CLIENT_ID32 +PCLIENT_ID32 = POINTER(_CLIENT_ID32) + +class _LDR_DATA_TABLE_ENTRY(Structure): + _fields_ = [ + ("Reserved1", PVOID * (2)), + ("InMemoryOrderLinks", LIST_ENTRY), + ("Reserved2", PVOID * (2)), + ("DllBase", PVOID), + ("EntryPoint", PVOID), + ("SizeOfImage", PVOID), + ("FullDllName", UNICODE_STRING), + ("BaseDllName", UNICODE_STRING), + ("Reserved5", PVOID * (3)), + ("CheckSum", ULONG), + ("TimeDateStamp", ULONG), + ] +PLDR_DATA_TABLE_ENTRY = POINTER(_LDR_DATA_TABLE_ENTRY) +LDR_DATA_TABLE_ENTRY = _LDR_DATA_TABLE_ENTRY + +class _IMAGE_FILE_HEADER(Structure): + _fields_ = [ + ("Machine", WORD), + ("NumberOfSections", WORD), + ("TimeDateStamp", DWORD), + ("PointerToSymbolTable", DWORD), + ("NumberOfSymbols", DWORD), + ("SizeOfOptionalHeader", WORD), + ("Characteristics", WORD), + ] +IMAGE_FILE_HEADER = _IMAGE_FILE_HEADER +PIMAGE_FILE_HEADER = POINTER(_IMAGE_FILE_HEADER) + +class _IMAGE_DATA_DIRECTORY(Structure): + _fields_ = [ + ("VirtualAddress", DWORD), + ("Size", DWORD), + ] +IMAGE_DATA_DIRECTORY = _IMAGE_DATA_DIRECTORY +PIMAGE_DATA_DIRECTORY = POINTER(_IMAGE_DATA_DIRECTORY) + +class _IMAGE_SECTION_HEADER(Structure): + _fields_ = [ + ("Name", BYTE * (IMAGE_SIZEOF_SHORT_NAME)), + ("VirtualSize", DWORD), + ("VirtualAddress", DWORD), + ("SizeOfRawData", DWORD), + ("PointerToRawData", DWORD), + ("PointerToRelocations", DWORD), + ("PointerToLinenumbers", DWORD), + ("NumberOfRelocations", WORD), + ("NumberOfLinenumbers", WORD), + ("Characteristics", DWORD), + ] +PIMAGE_SECTION_HEADER = POINTER(_IMAGE_SECTION_HEADER) +IMAGE_SECTION_HEADER = _IMAGE_SECTION_HEADER + +class _IMAGE_OPTIONAL_HEADER64(Structure): + _fields_ = [ + ("Magic", WORD), + ("MajorLinkerVersion", BYTE), + ("MinorLinkerVersion", BYTE), + ("SizeOfCode", DWORD), + ("SizeOfInitializedData", DWORD), + ("SizeOfUninitializedData", DWORD), + ("AddressOfEntryPoint", DWORD), + ("BaseOfCode", DWORD), + ("ImageBase", ULONGLONG), + ("SectionAlignment", DWORD), + ("FileAlignment", DWORD), + ("MajorOperatingSystemVersion", WORD), + ("MinorOperatingSystemVersion", WORD), + ("MajorImageVersion", WORD), + ("MinorImageVersion", WORD), + ("MajorSubsystemVersion", WORD), + ("MinorSubsystemVersion", WORD), + ("Win32VersionValue", DWORD), + ("SizeOfImage", DWORD), + ("SizeOfHeaders", DWORD), + ("CheckSum", DWORD), + ("Subsystem", WORD), + ("DllCharacteristics", WORD), + ("SizeOfStackReserve", ULONGLONG), + ("SizeOfStackCommit", ULONGLONG), + ("SizeOfHeapReserve", ULONGLONG), + ("SizeOfHeapCommit", ULONGLONG), + ("LoaderFlags", DWORD), + ("NumberOfRvaAndSizes", DWORD), + ("DataDirectory", IMAGE_DATA_DIRECTORY * (IMAGE_NUMBEROF_DIRECTORY_ENTRIES)), + ] +PIMAGE_OPTIONAL_HEADER64 = POINTER(_IMAGE_OPTIONAL_HEADER64) +IMAGE_OPTIONAL_HEADER64 = _IMAGE_OPTIONAL_HEADER64 + +class _IMAGE_OPTIONAL_HEADER(Structure): + _fields_ = [ + ("Magic", WORD), + ("MajorLinkerVersion", BYTE), + ("MinorLinkerVersion", BYTE), + ("SizeOfCode", DWORD), + ("SizeOfInitializedData", DWORD), + ("SizeOfUninitializedData", DWORD), + ("AddressOfEntryPoint", DWORD), + ("BaseOfCode", DWORD), + ("BaseOfData", DWORD), + ("ImageBase", DWORD), + ("SectionAlignment", DWORD), + ("FileAlignment", DWORD), + ("MajorOperatingSystemVersion", WORD), + ("MinorOperatingSystemVersion", WORD), + ("MajorImageVersion", WORD), + ("MinorImageVersion", WORD), + ("MajorSubsystemVersion", WORD), + ("MinorSubsystemVersion", WORD), + ("Win32VersionValue", DWORD), + ("SizeOfImage", DWORD), + ("SizeOfHeaders", DWORD), + ("CheckSum", DWORD), + ("Subsystem", WORD), + ("DllCharacteristics", WORD), + ("SizeOfStackReserve", DWORD), + ("SizeOfStackCommit", DWORD), + ("SizeOfHeapReserve", DWORD), + ("SizeOfHeapCommit", DWORD), + ("LoaderFlags", DWORD), + ("NumberOfRvaAndSizes", DWORD), + ("DataDirectory", IMAGE_DATA_DIRECTORY * (IMAGE_NUMBEROF_DIRECTORY_ENTRIES)), + ] +PIMAGE_OPTIONAL_HEADER32 = POINTER(_IMAGE_OPTIONAL_HEADER) +IMAGE_OPTIONAL_HEADER32 = _IMAGE_OPTIONAL_HEADER + +class _IMAGE_NT_HEADERS64(Structure): + _fields_ = [ + ("Signature", DWORD), + ("FileHeader", IMAGE_FILE_HEADER), + ("OptionalHeader", IMAGE_OPTIONAL_HEADER64), + ] +PIMAGE_NT_HEADERS64 = POINTER(_IMAGE_NT_HEADERS64) +IMAGE_NT_HEADERS64 = _IMAGE_NT_HEADERS64 + +class _IMAGE_NT_HEADERS(Structure): + _fields_ = [ + ("Signature", DWORD), + ("FileHeader", IMAGE_FILE_HEADER), + ("OptionalHeader", IMAGE_OPTIONAL_HEADER32), + ] +IMAGE_NT_HEADERS32 = _IMAGE_NT_HEADERS +PIMAGE_NT_HEADERS32 = POINTER(_IMAGE_NT_HEADERS) + +class _IMAGE_IMPORT_DESCRIPTOR(Structure): + _fields_ = [ + ("OriginalFirstThunk", DWORD), + ("TimeDateStamp", DWORD), + ("ForwarderChain", DWORD), + ("Name", DWORD), + ("FirstThunk", DWORD), + ] +IMAGE_IMPORT_DESCRIPTOR = _IMAGE_IMPORT_DESCRIPTOR +PIMAGE_IMPORT_DESCRIPTOR = POINTER(_IMAGE_IMPORT_DESCRIPTOR) + +class _IMAGE_IMPORT_BY_NAME(Structure): + _fields_ = [ + ("Hint", WORD), + ("Name", BYTE * (1)), + ] +PIMAGE_IMPORT_BY_NAME = POINTER(_IMAGE_IMPORT_BY_NAME) +IMAGE_IMPORT_BY_NAME = _IMAGE_IMPORT_BY_NAME + +class _IMAGE_EXPORT_DIRECTORY(Structure): + _fields_ = [ + ("Characteristics", DWORD), + ("TimeDateStamp", DWORD), + ("MajorVersion", WORD), + ("MinorVersion", WORD), + ("Name", DWORD), + ("Base", DWORD), + ("NumberOfFunctions", DWORD), + ("NumberOfNames", DWORD), + ("AddressOfFunctions", DWORD), + ("AddressOfNames", DWORD), + ("AddressOfNameOrdinals", DWORD), + ] +IMAGE_EXPORT_DIRECTORY = _IMAGE_EXPORT_DIRECTORY +PIMAGE_EXPORT_DIRECTORY = POINTER(_IMAGE_EXPORT_DIRECTORY) + +class _IMAGE_DEBUG_DIRECTORY(Structure): + _fields_ = [ + ("Characteristics", DWORD), + ("TimeDateStamp", DWORD), + ("MajorVersion", WORD), + ("MinorVersion", WORD), + ("Type", DWORD), + ("SizeOfData", DWORD), + ("AddressOfRawData", DWORD), + ("PointerToRawData", DWORD), + ] +PIMAGE_DEBUG_DIRECTORY = POINTER(_IMAGE_DEBUG_DIRECTORY) +IMAGE_DEBUG_DIRECTORY = _IMAGE_DEBUG_DIRECTORY + +class _IMAGE_BASE_RELOCATION(Structure): + _fields_ = [ + ("VirtualAddress", DWORD), + ("SizeOfBlock", DWORD), + ] +PIMAGE_BASE_RELOCATION = POINTER(_IMAGE_BASE_RELOCATION) +IMAGE_BASE_RELOCATION = _IMAGE_BASE_RELOCATION + +class _MEMORY_BASIC_INFORMATION(Structure): + _fields_ = [ + ("BaseAddress", PVOID), + ("AllocationBase", PVOID), + ("AllocationProtect", DWORD), + ("RegionSize", SIZE_T), + ("State", DWORD), + ("Protect", DWORD), + ("Type", DWORD), + ] +PMEMORY_BASIC_INFORMATION = POINTER(_MEMORY_BASIC_INFORMATION) +MEMORY_BASIC_INFORMATION = _MEMORY_BASIC_INFORMATION + +class _THREAD_BASIC_INFORMATION(Structure): + _fields_ = [ + ("ExitStatus", NTSTATUS), + ("TebBaseAddress", PVOID), + ("ClientId", CLIENT_ID), + ("AffinityMask", KAFFINITY), + ("Priority", KPRIORITY), + ("BasePriority", KPRIORITY), + ] +THREAD_BASIC_INFORMATION = _THREAD_BASIC_INFORMATION +PTHREAD_BASIC_INFORMATION = POINTER(_THREAD_BASIC_INFORMATION) + +class _MEMORY_BASIC_INFORMATION32(Structure): + _fields_ = [ + ("BaseAddress", DWORD), + ("AllocationBase", DWORD), + ("AllocationProtect", DWORD), + ("RegionSize", DWORD), + ("State", DWORD), + ("Protect", DWORD), + ("Type", DWORD), + ] +MEMORY_BASIC_INFORMATION32 = _MEMORY_BASIC_INFORMATION32 +PMEMORY_BASIC_INFORMATION32 = POINTER(_MEMORY_BASIC_INFORMATION32) + +INITIAL_MEMORY_BASIC_INFORMATION32 = _MEMORY_BASIC_INFORMATION32 + +class _MEMORY_BASIC_INFORMATION32(INITIAL_MEMORY_BASIC_INFORMATION32): + STATE_MAPPER = FlagMapper(MEM_COMMIT, MEM_FREE, MEM_RESERVE) + TYPE_MAPPER = FlagMapper(MEM_IMAGE, MEM_MAPPED, MEM_PRIVATE) + PROTECT_MAPPER = FlagMapper(PAGE_NOACCESS, PAGE_READONLY, PAGE_READWRITE, + PAGE_WRITECOPY, PAGE_EXECUTE, PAGE_EXECUTE_READ, PAGE_EXECUTE_READWRITE, + PAGE_EXECUTE_WRITECOPY) + + + @property + def State(self): + raw_state = super(_MEMORY_BASIC_INFORMATION32, self).State + # Finally make a chooser somewhere ? + return self.STATE_MAPPER[raw_state] + + @property + def Type(self): + raw_type = super(_MEMORY_BASIC_INFORMATION32, self).Type + # Finally make a chooser somewhere ? + return self.TYPE_MAPPER[raw_type] + + @property + def Protect(self): + raw_protect = super(_MEMORY_BASIC_INFORMATION32, self).Protect + # Finally make a chooser somewhere ? + return self.PROTECT_MAPPER[raw_protect] + + @property + def AllocationProtect(self): + raw_protect = super(_MEMORY_BASIC_INFORMATION32, self).AllocationProtect + # Finally make a chooser somewhere ? + return self.PROTECT_MAPPER[raw_protect] + + def __repr__(self): + return "".format( + self.BaseAddress, self.RegionSize, self.State, self.Type, self.Protect) +MEMORY_BASIC_INFORMATION32 = _MEMORY_BASIC_INFORMATION32 +PMEMORY_BASIC_INFORMATION32 = POINTER(_MEMORY_BASIC_INFORMATION32) +class _MEMORY_BASIC_INFORMATION64(Structure): + _fields_ = [ + ("BaseAddress", ULONGLONG), + ("AllocationBase", ULONGLONG), + ("AllocationProtect", DWORD), + ("__alignment1", DWORD), + ("RegionSize", ULONGLONG), + ("State", DWORD), + ("Protect", DWORD), + ("Type", DWORD), + ("__alignment2", DWORD), + ] +PMEMORY_BASIC_INFORMATION64 = POINTER(_MEMORY_BASIC_INFORMATION64) +MEMORY_BASIC_INFORMATION64 = _MEMORY_BASIC_INFORMATION64 + +INITIAL_MEMORY_BASIC_INFORMATION64 = _MEMORY_BASIC_INFORMATION64 + +class _MEMORY_BASIC_INFORMATION64(INITIAL_MEMORY_BASIC_INFORMATION64): + STATE_MAPPER = FlagMapper(MEM_COMMIT, MEM_FREE, MEM_RESERVE) + TYPE_MAPPER = FlagMapper(MEM_IMAGE, MEM_MAPPED, MEM_PRIVATE) + PROTECT_MAPPER = FlagMapper(PAGE_NOACCESS, PAGE_READONLY, PAGE_READWRITE, + PAGE_WRITECOPY, PAGE_EXECUTE, PAGE_EXECUTE_READ, PAGE_EXECUTE_READWRITE, + PAGE_EXECUTE_WRITECOPY) + + + @property + def State(self): + raw_state = super(_MEMORY_BASIC_INFORMATION64, self).State + # Finally make a chooser somewhere ? + return self.STATE_MAPPER[raw_state] + + @property + def Type(self): + raw_type = super(_MEMORY_BASIC_INFORMATION64, self).Type + # Finally make a chooser somewhere ? + return self.TYPE_MAPPER[raw_type] + + @property + def Protect(self): + raw_protect = super(_MEMORY_BASIC_INFORMATION64, self).Protect + # Finally make a chooser somewhere ? + return self.PROTECT_MAPPER[raw_protect] + + @property + def AllocationProtect(self): + raw_protect = super(_MEMORY_BASIC_INFORMATION64, self).AllocationProtect + # Finally make a chooser somewhere ? + return self.PROTECT_MAPPER[raw_protect] + + def __repr__(self): + return "".format( + self.BaseAddress, self.RegionSize, self.State, self.Type, self.Protect) +PMEMORY_BASIC_INFORMATION64 = POINTER(_MEMORY_BASIC_INFORMATION64) +MEMORY_BASIC_INFORMATION64 = _MEMORY_BASIC_INFORMATION64 +class _PSAPI_WORKING_SET_BLOCK(Union): + _fields_ = [ + ("Flags", PVOID), + ] +PSAPI_WORKING_SET_BLOCK = _PSAPI_WORKING_SET_BLOCK +PPSAPI_WORKING_SET_BLOCK = POINTER(_PSAPI_WORKING_SET_BLOCK) + +class _PSAPI_WORKING_SET_BLOCK32(Union): + _fields_ = [ + ("Flags", DWORD), + ] +PSAPI_WORKING_SET_BLOCK32 = _PSAPI_WORKING_SET_BLOCK32 +PPSAPI_WORKING_SET_BLOCK32 = POINTER(_PSAPI_WORKING_SET_BLOCK32) + +class _PSAPI_WORKING_SET_BLOCK64(Union): + _fields_ = [ + ("Flags", ULONG64), + ] +PSAPI_WORKING_SET_BLOCK64 = _PSAPI_WORKING_SET_BLOCK64 +PPSAPI_WORKING_SET_BLOCK64 = POINTER(_PSAPI_WORKING_SET_BLOCK64) + +class _PSAPI_WORKING_SET_INFORMATION(Structure): + _fields_ = [ + ("NumberOfEntries", PVOID), + ("WorkingSetInfo", PSAPI_WORKING_SET_BLOCK * (1)), + ] +PPSAPI_WORKING_SET_INFORMATION = POINTER(_PSAPI_WORKING_SET_INFORMATION) +PSAPI_WORKING_SET_INFORMATION = _PSAPI_WORKING_SET_INFORMATION + +class _PSAPI_WORKING_SET_INFORMATION32(Structure): + _fields_ = [ + ("NumberOfEntries", DWORD), + ("WorkingSetInfo", PSAPI_WORKING_SET_BLOCK32 * (1)), + ] +PPSAPI_WORKING_SET_INFORMATION32 = POINTER(_PSAPI_WORKING_SET_INFORMATION32) +PSAPI_WORKING_SET_INFORMATION32 = _PSAPI_WORKING_SET_INFORMATION32 + +class _PSAPI_WORKING_SET_INFORMATION64(Structure): + _fields_ = [ + ("NumberOfEntries", ULONG64), + ("WorkingSetInfo", PSAPI_WORKING_SET_BLOCK64 * (1)), + ] +PSAPI_WORKING_SET_INFORMATION64 = _PSAPI_WORKING_SET_INFORMATION64 +PPSAPI_WORKING_SET_INFORMATION64 = POINTER(_PSAPI_WORKING_SET_INFORMATION64) + +class _PSAPI_WORKING_SET_EX_BLOCK(Union): + _fields_ = [ + ("Flags", PVOID), + ] +PSAPI_WORKING_SET_EX_BLOCK = _PSAPI_WORKING_SET_EX_BLOCK +PPSAPI_WORKING_SET_EX_BLOCK = POINTER(_PSAPI_WORKING_SET_EX_BLOCK) + +class _PSAPI_WORKING_SET_EX_BLOCK32(Union): + _fields_ = [ + ("Flags", DWORD), + ] +PPSAPI_WORKING_SET_EX_BLOCK32 = POINTER(_PSAPI_WORKING_SET_EX_BLOCK32) +PSAPI_WORKING_SET_EX_BLOCK32 = _PSAPI_WORKING_SET_EX_BLOCK32 + +class _PSAPI_WORKING_SET_EX_BLOCK64(Union): + _fields_ = [ + ("Flags", ULONG64), + ] +PSAPI_WORKING_SET_EX_BLOCK64 = _PSAPI_WORKING_SET_EX_BLOCK64 +PPSAPI_WORKING_SET_EX_BLOCK64 = POINTER(_PSAPI_WORKING_SET_EX_BLOCK64) + +class _PSAPI_WORKING_SET_EX_INFORMATION(Structure): + _fields_ = [ + ("VirtualAddress", PVOID), + ("VirtualAttributes", PSAPI_WORKING_SET_EX_BLOCK), + ] +PPSAPI_WORKING_SET_EX_INFORMATION = POINTER(_PSAPI_WORKING_SET_EX_INFORMATION) +PSAPI_WORKING_SET_EX_INFORMATION = _PSAPI_WORKING_SET_EX_INFORMATION + +class _PSAPI_WORKING_SET_EX_INFORMATION32(Structure): + _fields_ = [ + ("VirtualAddress", DWORD), + ("VirtualAttributes", PSAPI_WORKING_SET_EX_BLOCK32), + ] +PSAPI_WORKING_SET_EX_INFORMATION32 = _PSAPI_WORKING_SET_EX_INFORMATION32 +PPSAPI_WORKING_SET_EX_INFORMATION32 = POINTER(_PSAPI_WORKING_SET_EX_INFORMATION32) + +class _PSAPI_WORKING_SET_EX_INFORMATION64(Structure): + _fields_ = [ + ("VirtualAddress", ULONG64), + ("VirtualAttributes", PSAPI_WORKING_SET_EX_BLOCK64), + ] +PPSAPI_WORKING_SET_EX_INFORMATION64 = POINTER(_PSAPI_WORKING_SET_EX_INFORMATION64) +PSAPI_WORKING_SET_EX_INFORMATION64 = _PSAPI_WORKING_SET_EX_INFORMATION64 + +class _STARTUPINFOA(Structure): + _fields_ = [ + ("cb", DWORD), + ("lpReserved", LPSTR), + ("lpDesktop", LPSTR), + ("lpTitle", LPSTR), + ("dwX", DWORD), + ("dwY", DWORD), + ("dwXSize", DWORD), + ("dwYSize", DWORD), + ("dwXCountChars", DWORD), + ("dwYCountChars", DWORD), + ("dwFillAttribute", DWORD), + ("dwFlags", DWORD), + ("wShowWindow", WORD), + ("cbReserved2", WORD), + ("lpReserved2", LPBYTE), + ("hStdInput", HANDLE), + ("hStdOutput", HANDLE), + ("hStdError", HANDLE), + ] +LPSTARTUPINFOA = POINTER(_STARTUPINFOA) +STARTUPINFOA = _STARTUPINFOA + +class _STARTUPINFOW(Structure): + _fields_ = [ + ("cb", DWORD), + ("lpReserved", LPWSTR), + ("lpDesktop", LPWSTR), + ("lpTitle", LPWSTR), + ("dwX", DWORD), + ("dwY", DWORD), + ("dwXSize", DWORD), + ("dwYSize", DWORD), + ("dwXCountChars", DWORD), + ("dwYCountChars", DWORD), + ("dwFillAttribute", DWORD), + ("dwFlags", DWORD), + ("wShowWindow", WORD), + ("cbReserved2", WORD), + ("lpReserved2", LPBYTE), + ("hStdInput", HANDLE), + ("hStdOutput", HANDLE), + ("hStdError", HANDLE), + ] +STARTUPINFOW = _STARTUPINFOW +LPSTARTUPINFOW = POINTER(_STARTUPINFOW) + +class _STARTUPINFOEXA(Structure): + _fields_ = [ + ("StartupInfo", STARTUPINFOA), + ("lpAttributeList", LPPROC_THREAD_ATTRIBUTE_LIST), + ] +LPSTARTUPINFOEXA = POINTER(_STARTUPINFOEXA) +STARTUPINFOEXA = _STARTUPINFOEXA + +class _STARTUPINFOEXW(Structure): + _fields_ = [ + ("StartupInfo", STARTUPINFOW), + ("lpAttributeList", LPPROC_THREAD_ATTRIBUTE_LIST), + ] +STARTUPINFOEXW = _STARTUPINFOEXW +LPSTARTUPINFOEXW = POINTER(_STARTUPINFOEXW) + +class _PROCESS_INFORMATION(Structure): + _fields_ = [ + ("hProcess", HANDLE), + ("hThread", HANDLE), + ("dwProcessId", DWORD), + ("dwThreadId", DWORD), + ] +LPPROCESS_INFORMATION = POINTER(_PROCESS_INFORMATION) +PROCESS_INFORMATION = _PROCESS_INFORMATION +PPROCESS_INFORMATION = POINTER(_PROCESS_INFORMATION) + +class _FLOATING_SAVE_AREA(Structure): + _fields_ = [ + ("ControlWord", DWORD), + ("StatusWord", DWORD), + ("TagWord", DWORD), + ("ErrorOffset", DWORD), + ("ErrorSelector", DWORD), + ("DataOffset", DWORD), + ("DataSelector", DWORD), + ("RegisterArea", BYTE * (80)), + ("Cr0NpxState", DWORD), + ] +FLOATING_SAVE_AREA = _FLOATING_SAVE_AREA + +class _CONTEXT32(Structure): + _fields_ = [ + ("ContextFlags", DWORD), + ("Dr0", DWORD), + ("Dr1", DWORD), + ("Dr2", DWORD), + ("Dr3", DWORD), + ("Dr6", DWORD), + ("Dr7", DWORD), + ("FloatSave", FLOATING_SAVE_AREA), + ("SegGs", DWORD), + ("SegFs", DWORD), + ("SegEs", DWORD), + ("SegDs", DWORD), + ("Edi", DWORD), + ("Esi", DWORD), + ("Ebx", DWORD), + ("Edx", DWORD), + ("Ecx", DWORD), + ("Eax", DWORD), + ("Ebp", DWORD), + ("Eip", DWORD), + ("SegCs", DWORD), + ("EFlags", DWORD), + ("Esp", DWORD), + ("SegSs", DWORD), + ("ExtendedRegisters", BYTE * (512)), + ] +PCONTEXT32 = POINTER(_CONTEXT32) +CONTEXT32 = _CONTEXT32 +LPCONTEXT32 = POINTER(_CONTEXT32) + +class _WOW64_FLOATING_SAVE_AREA(Structure): + _fields_ = [ + ("ControlWord", DWORD), + ("StatusWord", DWORD), + ("TagWord", DWORD), + ("ErrorOffset", DWORD), + ("ErrorSelector", DWORD), + ("DataOffset", DWORD), + ("DataSelector", DWORD), + ("RegisterArea", BYTE * (WOW64_SIZE_OF_80387_REGISTERS)), + ("Cr0NpxState", DWORD), + ] +WOW64_FLOATING_SAVE_AREA = _WOW64_FLOATING_SAVE_AREA + +class _WOW64_CONTEXT(Structure): + _fields_ = [ + ("ContextFlags", DWORD), + ("Dr0", DWORD), + ("Dr1", DWORD), + ("Dr2", DWORD), + ("Dr3", DWORD), + ("Dr6", DWORD), + ("Dr7", DWORD), + ("FloatSave", WOW64_FLOATING_SAVE_AREA), + ("SegGs", DWORD), + ("SegFs", DWORD), + ("SegEs", DWORD), + ("SegDs", DWORD), + ("Edi", DWORD), + ("Esi", DWORD), + ("Ebx", DWORD), + ("Edx", DWORD), + ("Ecx", DWORD), + ("Eax", DWORD), + ("Ebp", DWORD), + ("Eip", DWORD), + ("SegCs", DWORD), + ("EFlags", DWORD), + ("Esp", DWORD), + ("SegSs", DWORD), + ("ExtendedRegisters", BYTE * (WOW64_MAXIMUM_SUPPORTED_EXTENSION)), + ] +PWOW64_CONTEXT = POINTER(_WOW64_CONTEXT) +WOW64_CONTEXT = _WOW64_CONTEXT + +class _M128A(Structure): + _fields_ = [ + ("Low", ULONGLONG), + ("High", LONGLONG), + ] +M128A = _M128A +PM128A = POINTER(_M128A) + +class _XSAVE_FORMAT_64(Structure): + _fields_ = [ + ("ControlWord", WORD), + ("StatusWord", WORD), + ("TagWord", BYTE), + ("Reserved1", BYTE), + ("ErrorOpcode", WORD), + ("ErrorOffset", DWORD), + ("ErrorSelector", WORD), + ("Reserved2", WORD), + ("DataOffset", DWORD), + ("DataSelector", WORD), + ("Reserved3", WORD), + ("MxCsr", DWORD), + ("MxCsr_Mask", DWORD), + ("FloatRegisters", M128A * (8)), + ("XmmRegisters", M128A * (16)), + ("Reserved4", BYTE * (96)), + ] +XSAVE_FORMAT_64 = _XSAVE_FORMAT_64 +PXSAVE_FORMAT_64 = POINTER(_XSAVE_FORMAT_64) + +class _XSAVE_FORMAT_32(Structure): + _fields_ = [ + ("ControlWord", WORD), + ("StatusWord", WORD), + ("TagWord", BYTE), + ("Reserved1", BYTE), + ("ErrorOpcode", WORD), + ("ErrorOffset", DWORD), + ("ErrorSelector", WORD), + ("Reserved2", WORD), + ("DataOffset", DWORD), + ("DataSelector", WORD), + ("Reserved3", WORD), + ("MxCsr", DWORD), + ("MxCsr_Mask", DWORD), + ("FloatRegisters", M128A * (8)), + ("XmmRegisters", M128A * (8)), + ("Reserved4", BYTE * (192)), + ("StackControl", DWORD * (7)), + ("Cr0NpxState", DWORD), + ] +XSAVE_FORMAT_32 = _XSAVE_FORMAT_32 +PXSAVE_FORMAT_32 = POINTER(_XSAVE_FORMAT_32) + +class _TMP_DUMMYSTRUCTNAME(Structure): + _fields_ = [ + ("Header", M128A * (2)), + ("Legacy", M128A * (8)), + ("Xmm0", M128A), + ("Xmm1", M128A), + ("Xmm2", M128A), + ("Xmm3", M128A), + ("Xmm4", M128A), + ("Xmm5", M128A), + ("Xmm6", M128A), + ("Xmm7", M128A), + ("Xmm8", M128A), + ("Xmm9", M128A), + ("Xmm10", M128A), + ("Xmm11", M128A), + ("Xmm12", M128A), + ("Xmm13", M128A), + ("Xmm14", M128A), + ("Xmm15", M128A), + ] +TMP_DUMMYSTRUCTNAME = _TMP_DUMMYSTRUCTNAME + +class _TMP_CONTEXT64_SUBUNION(Union): + _fields_ = [ + ("FltSave", XSAVE_FORMAT_64), + ("DUMMYSTRUCTNAME", TMP_DUMMYSTRUCTNAME), + ] +TMP_CONTEXT64_SUBUNION = _TMP_CONTEXT64_SUBUNION + +class _CONTEXT64(Structure): + _fields_ = [ + ("P1Home", DWORD64), + ("P2Home", DWORD64), + ("P3Home", DWORD64), + ("P4Home", DWORD64), + ("P5Home", DWORD64), + ("P6Home", DWORD64), + ("ContextFlags", DWORD), + ("MxCsr", DWORD), + ("SegCs", WORD), + ("SegDs", WORD), + ("SegEs", WORD), + ("SegFs", WORD), + ("SegGs", WORD), + ("SegSs", WORD), + ("EFlags", DWORD), + ("Dr0", DWORD64), + ("Dr1", DWORD64), + ("Dr2", DWORD64), + ("Dr3", DWORD64), + ("Dr6", DWORD64), + ("Dr7", DWORD64), + ("Rax", DWORD64), + ("Rcx", DWORD64), + ("Rdx", DWORD64), + ("Rbx", DWORD64), + ("Rsp", DWORD64), + ("Rbp", DWORD64), + ("Rsi", DWORD64), + ("Rdi", DWORD64), + ("R8", DWORD64), + ("R9", DWORD64), + ("R10", DWORD64), + ("R11", DWORD64), + ("R12", DWORD64), + ("R13", DWORD64), + ("R14", DWORD64), + ("R15", DWORD64), + ("Rip", DWORD64), + ("DUMMYUNIONNAME", TMP_CONTEXT64_SUBUNION), + ("VectorRegister", M128A * (26)), + ("VectorControl", DWORD64), + ("DebugControl", DWORD64), + ("LastBranchToRip", DWORD64), + ("LastBranchFromRip", DWORD64), + ("LastExceptionToRip", DWORD64), + ("LastExceptionFromRip", DWORD64), + ] +PCONTEXT64 = POINTER(_CONTEXT64) +CONTEXT64 = _CONTEXT64 +LPCONTEXT64 = POINTER(_CONTEXT64) + +class tagPROCESSENTRY32W(Structure): + _fields_ = [ + ("dwSize", DWORD), + ("cntUsage", DWORD), + ("th32ProcessID", DWORD), + ("th32DefaultHeapID", ULONG_PTR), + ("th32ModuleID", DWORD), + ("cntThreads", DWORD), + ("th32ParentProcessID", DWORD), + ("pcPriClassBase", LONG), + ("dwFlags", DWORD), + ("szExeFile", WCHAR * (MAX_PATH)), + ] +PPROCESSENTRY32W = POINTER(tagPROCESSENTRY32W) +LPPROCESSENTRY32W = POINTER(tagPROCESSENTRY32W) +PROCESSENTRY32W = tagPROCESSENTRY32W + +class tagPROCESSENTRY32(Structure): + _fields_ = [ + ("dwSize", DWORD), + ("cntUsage", DWORD), + ("th32ProcessID", DWORD), + ("th32DefaultHeapID", ULONG_PTR), + ("th32ModuleID", DWORD), + ("cntThreads", DWORD), + ("th32ParentProcessID", DWORD), + ("pcPriClassBase", LONG), + ("dwFlags", DWORD), + ("szExeFile", CHAR * (MAX_PATH)), + ] +PROCESSENTRY32 = tagPROCESSENTRY32 +PPROCESSENTRY32 = POINTER(tagPROCESSENTRY32) +LPPROCESSENTRY32 = POINTER(tagPROCESSENTRY32) + +class tagTHREADENTRY32(Structure): + _fields_ = [ + ("dwSize", DWORD), + ("cntUsage", DWORD), + ("th32ThreadID", DWORD), + ("th32OwnerProcessID", DWORD), + ("tpBasePri", LONG), + ("tpDeltaPri", LONG), + ("dwFlags", DWORD), + ] +PTHREADENTRY32 = POINTER(tagTHREADENTRY32) +THREADENTRY32 = tagTHREADENTRY32 +LPTHREADENTRY32 = POINTER(tagTHREADENTRY32) + +class _LUID(Structure): + _fields_ = [ + ("LowPart", DWORD), + ("HighPart", LONG), + ] +LUID = _LUID +PLUID = POINTER(_LUID) + +_INITIAL_LUID = _LUID +class _LUID(_INITIAL_LUID): + def __int__(self): + return (self.HighPart << 32) | self.LowPart + + def __eq__(self, other): + return (self.HighPart, self.LowPart) == (other.HighPart, other.LowPart) + + def __repr__(self): + return "<{0} HighPart={1} LowPart={2}>".format(type(self).__name__, self.HighPart, self.LowPart) +LUID = _LUID +PLUID = POINTER(_LUID) +class _LUID_AND_ATTRIBUTES(Structure): + _fields_ = [ + ("Luid", LUID), + ("Attributes", DWORD), + ] +LUID_AND_ATTRIBUTES = _LUID_AND_ATTRIBUTES +PLUID_AND_ATTRIBUTES = POINTER(_LUID_AND_ATTRIBUTES) + +class _OSVERSIONINFOA(Structure): + _fields_ = [ + ("dwOSVersionInfoSize", DWORD), + ("dwMajorVersion", DWORD), + ("dwMinorVersion", DWORD), + ("dwBuildNumber", DWORD), + ("dwPlatformId", DWORD), + ("szCSDVersion", CHAR * (128)), + ] +POSVERSIONINFOA = POINTER(_OSVERSIONINFOA) +OSVERSIONINFOA = _OSVERSIONINFOA +LPOSVERSIONINFOA = POINTER(_OSVERSIONINFOA) + +class _OSVERSIONINFOW(Structure): + _fields_ = [ + ("dwOSVersionInfoSize", DWORD), + ("dwMajorVersion", DWORD), + ("dwMinorVersion", DWORD), + ("dwBuildNumber", DWORD), + ("dwPlatformId", DWORD), + ("szCSDVersion", WCHAR * (128)), + ] +RTL_OSVERSIONINFOW = _OSVERSIONINFOW +PRTL_OSVERSIONINFOW = POINTER(_OSVERSIONINFOW) +LPOSVERSIONINFOW = POINTER(_OSVERSIONINFOW) +POSVERSIONINFOW = POINTER(_OSVERSIONINFOW) +OSVERSIONINFOW = _OSVERSIONINFOW + +class _OSVERSIONINFOEXA(Structure): + _fields_ = [ + ("dwOSVersionInfoSize", DWORD), + ("dwMajorVersion", DWORD), + ("dwMinorVersion", DWORD), + ("dwBuildNumber", DWORD), + ("dwPlatformId", DWORD), + ("szCSDVersion", CHAR * (128)), + ("wServicePackMajor", WORD), + ("wServicePackMinor", WORD), + ("wSuiteMask", WORD), + ("wProductType", BYTE), + ("wReserved", BYTE), + ] +OSVERSIONINFOEXA = _OSVERSIONINFOEXA +POSVERSIONINFOEXA = POINTER(_OSVERSIONINFOEXA) +LPOSVERSIONINFOEXA = POINTER(_OSVERSIONINFOEXA) + +class _OSVERSIONINFOEXW(Structure): + _fields_ = [ + ("dwOSVersionInfoSize", DWORD), + ("dwMajorVersion", DWORD), + ("dwMinorVersion", DWORD), + ("dwBuildNumber", DWORD), + ("dwPlatformId", DWORD), + ("szCSDVersion", WCHAR * (128)), + ("wServicePackMajor", WORD), + ("wServicePackMinor", WORD), + ("wSuiteMask", WORD), + ("wProductType", BYTE), + ("wReserved", BYTE), + ] +PRTL_OSVERSIONINFOEXW = POINTER(_OSVERSIONINFOEXW) +LPOSVERSIONINFOEXW = POINTER(_OSVERSIONINFOEXW) +OSVERSIONINFOEXW = _OSVERSIONINFOEXW +POSVERSIONINFOEXW = POINTER(_OSVERSIONINFOEXW) +RTL_OSVERSIONINFOEXW = _OSVERSIONINFOEXW + +class _OVERLAPPED(Structure): + _fields_ = [ + ("Internal", ULONG_PTR), + ("InternalHigh", ULONG_PTR), + ("Pointer", PVOID), + ("hEvent", HANDLE), + ] +LPOVERLAPPED = POINTER(_OVERLAPPED) +OVERLAPPED = _OVERLAPPED + +# Self referencing struct tricks +class _EXCEPTION_RECORD(Structure): pass +PEXCEPTION_RECORD = POINTER(_EXCEPTION_RECORD) +EXCEPTION_RECORD = _EXCEPTION_RECORD +_EXCEPTION_RECORD._fields_ = [ + ("ExceptionCode", DWORD), + ("ExceptionFlags", DWORD), + ("ExceptionRecord", POINTER(_EXCEPTION_RECORD)), + ("ExceptionAddress", PVOID), + ("NumberParameters", DWORD), + ("ExceptionInformation", ULONG_PTR * (EXCEPTION_MAXIMUM_PARAMETERS)), +] + +class _EXCEPTION_RECORD32(Structure): + _fields_ = [ + ("ExceptionCode", DWORD), + ("ExceptionFlags", DWORD), + ("ExceptionRecord", DWORD), + ("ExceptionAddress", DWORD), + ("NumberParameters", DWORD), + ("ExceptionInformation", DWORD * (EXCEPTION_MAXIMUM_PARAMETERS)), + ] +EXCEPTION_RECORD32 = _EXCEPTION_RECORD32 +PEXCEPTION_RECORD32 = POINTER(_EXCEPTION_RECORD32) + +class _EXCEPTION_RECORD64(Structure): + _fields_ = [ + ("ExceptionCode", DWORD), + ("ExceptionFlags", DWORD), + ("ExceptionRecord", DWORD64), + ("ExceptionAddress", DWORD64), + ("NumberParameters", DWORD), + ("__unusedAlignment", DWORD), + ("ExceptionInformation", DWORD64 * (EXCEPTION_MAXIMUM_PARAMETERS)), + ] +PEXCEPTION_RECORD64 = POINTER(_EXCEPTION_RECORD64) +EXCEPTION_RECORD64 = _EXCEPTION_RECORD64 + +class _EXCEPTION_POINTERS64(Structure): + _fields_ = [ + ("ExceptionRecord", PEXCEPTION_RECORD), + ("ContextRecord", PCONTEXT64), + ] +EXCEPTION_POINTERS64 = _EXCEPTION_POINTERS64 +PEXCEPTION_POINTERS64 = POINTER(_EXCEPTION_POINTERS64) + +class _EXCEPTION_POINTERS32(Structure): + _fields_ = [ + ("ExceptionRecord", PEXCEPTION_RECORD), + ("ContextRecord", PCONTEXT32), + ] +PEXCEPTION_POINTERS32 = POINTER(_EXCEPTION_POINTERS32) +EXCEPTION_POINTERS32 = _EXCEPTION_POINTERS32 + +class _DEBUG_PROCESSOR_IDENTIFICATION_ALPHA(Structure): + _fields_ = [ + ("Type", ULONG), + ("Revision", ULONG), + ] +DEBUG_PROCESSOR_IDENTIFICATION_ALPHA = _DEBUG_PROCESSOR_IDENTIFICATION_ALPHA +PDEBUG_PROCESSOR_IDENTIFICATION_ALPHA = POINTER(_DEBUG_PROCESSOR_IDENTIFICATION_ALPHA) + +class _DEBUG_PROCESSOR_IDENTIFICATION_AMD64(Structure): + _fields_ = [ + ("Family", ULONG), + ("Model", ULONG), + ("Stepping", ULONG), + ("VendorString", CHAR * (16)), + ] +DEBUG_PROCESSOR_IDENTIFICATION_AMD64 = _DEBUG_PROCESSOR_IDENTIFICATION_AMD64 +PDEBUG_PROCESSOR_IDENTIFICATION_AMD64 = POINTER(_DEBUG_PROCESSOR_IDENTIFICATION_AMD64) + +class _DEBUG_PROCESSOR_IDENTIFICATION_IA64(Structure): + _fields_ = [ + ("Model", ULONG), + ("Revision", ULONG), + ("Family", ULONG), + ("ArchRev", ULONG), + ("VendorString", CHAR * (16)), + ] +PDEBUG_PROCESSOR_IDENTIFICATION_IA64 = POINTER(_DEBUG_PROCESSOR_IDENTIFICATION_IA64) +DEBUG_PROCESSOR_IDENTIFICATION_IA64 = _DEBUG_PROCESSOR_IDENTIFICATION_IA64 + +class _DEBUG_PROCESSOR_IDENTIFICATION_X86(Structure): + _fields_ = [ + ("Family", ULONG), + ("Model", ULONG), + ("Stepping", ULONG), + ("VendorString", CHAR * (16)), + ] +DEBUG_PROCESSOR_IDENTIFICATION_X86 = _DEBUG_PROCESSOR_IDENTIFICATION_X86 +PDEBUG_PROCESSOR_IDENTIFICATION_X86 = POINTER(_DEBUG_PROCESSOR_IDENTIFICATION_X86) + +class _DEBUG_PROCESSOR_IDENTIFICATION_ARM(Structure): + _fields_ = [ + ("Type", ULONG), + ("Revision", ULONG), + ] +DEBUG_PROCESSOR_IDENTIFICATION_ARM = _DEBUG_PROCESSOR_IDENTIFICATION_ARM +PDEBUG_PROCESSOR_IDENTIFICATION_ARM = POINTER(_DEBUG_PROCESSOR_IDENTIFICATION_ARM) + +class _DEBUG_PROCESSOR_IDENTIFICATION_ALL(Union): + _fields_ = [ + ("Alpha", DEBUG_PROCESSOR_IDENTIFICATION_ALPHA), + ("Amd64", DEBUG_PROCESSOR_IDENTIFICATION_AMD64), + ("Ia64", DEBUG_PROCESSOR_IDENTIFICATION_IA64), + ("X86", DEBUG_PROCESSOR_IDENTIFICATION_X86), + ("Arm", DEBUG_PROCESSOR_IDENTIFICATION_ARM), + ] +PDEBUG_PROCESSOR_IDENTIFICATION_ALL = POINTER(_DEBUG_PROCESSOR_IDENTIFICATION_ALL) +DEBUG_PROCESSOR_IDENTIFICATION_ALL = _DEBUG_PROCESSOR_IDENTIFICATION_ALL + +class _MODLOAD_DATA(Structure): + _fields_ = [ + ("ssize", DWORD), + ("ssig", DWORD), + ("data", PVOID), + ("size", DWORD), + ("flags", DWORD), + ] +PMODLOAD_DATA = POINTER(_MODLOAD_DATA) +MODLOAD_DATA = _MODLOAD_DATA + +class _SYSTEM_MODULE32(Structure): + _fields_ = [ + ("Reserved", ULONG * (2)), + ("Base", ULONG), + ("Size", ULONG), + ("Flags", ULONG), + ("Index", USHORT), + ("Unknown", USHORT), + ("LoadCount", USHORT), + ("ModuleNameOffset", USHORT), + ("ImageName", CHAR * (256)), + ] +SYSTEM_MODULE32 = _SYSTEM_MODULE32 +PSYSTEM_MODULE32 = POINTER(_SYSTEM_MODULE32) + +class _SYSTEM_MODULE64(Structure): + _fields_ = [ + ("Reserved", ULONG * (4)), + ("Base", ULONG64), + ("Size", ULONG), + ("Flags", ULONG), + ("Index", USHORT), + ("Unknown", USHORT), + ("LoadCount", USHORT), + ("ModuleNameOffset", USHORT), + ("ImageName", CHAR * (256)), + ] +SYSTEM_MODULE64 = _SYSTEM_MODULE64 +PSYSTEM_MODULE64 = POINTER(_SYSTEM_MODULE64) + +class _SYSTEM_MODULE_INFORMATION32(Structure): + _fields_ = [ + ("ModulesCount", ULONG), + ("Modules", SYSTEM_MODULE32 * (0)), + ] +PSYSTEM_MODULE_INFORMATION32 = POINTER(_SYSTEM_MODULE_INFORMATION32) +SYSTEM_MODULE_INFORMATION32 = _SYSTEM_MODULE_INFORMATION32 + +class _SYSTEM_MODULE_INFORMATION64(Structure): + _fields_ = [ + ("ModulesCount", ULONG), + ("Modules", SYSTEM_MODULE64 * (0)), + ] +PSYSTEM_MODULE_INFORMATION64 = POINTER(_SYSTEM_MODULE_INFORMATION64) +SYSTEM_MODULE_INFORMATION64 = _SYSTEM_MODULE_INFORMATION64 + +class _DEBUG_BREAKPOINT_PARAMETERS(Structure): + _fields_ = [ + ("Offset", ULONG64), + ("Id", ULONG), + ("BreakType", ULONG), + ("ProcType", ULONG), + ("Flags", ULONG), + ("DataSize", ULONG), + ("DataAccessType", ULONG), + ("PassCount", ULONG), + ("CurrentPassCount", ULONG), + ("MatchThread", ULONG), + ("CommandSize", ULONG), + ("OffsetExpressionSize", ULONG), + ] +PDEBUG_BREAKPOINT_PARAMETERS = POINTER(_DEBUG_BREAKPOINT_PARAMETERS) +DEBUG_BREAKPOINT_PARAMETERS = _DEBUG_BREAKPOINT_PARAMETERS + +class _DEBUG_REGISTER_DESCRIPTION(Structure): + _fields_ = [ + ("Type", ULONG), + ("Flags", ULONG), + ("SubregMaster", ULONG), + ("SubregLength", ULONG), + ("SubregMask", ULONG64), + ("SubregShift", ULONG), + ("Reserved0", ULONG), + ] +DEBUG_REGISTER_DESCRIPTION = _DEBUG_REGISTER_DESCRIPTION +PDEBUG_REGISTER_DESCRIPTION = POINTER(_DEBUG_REGISTER_DESCRIPTION) + +class _DEBUG_STACK_FRAME(Structure): + _fields_ = [ + ("InstructionOffset", ULONG64), + ("ReturnOffset", ULONG64), + ("FrameOffset", ULONG64), + ("StackOffset", ULONG64), + ("FuncTableEntry", ULONG64), + ("Params", ULONG64 * (4)), + ("Reserved", ULONG64 * (6)), + ("Virtual", BOOL), + ("FrameNumber", ULONG), + ] +PDEBUG_STACK_FRAME = POINTER(_DEBUG_STACK_FRAME) +DEBUG_STACK_FRAME = _DEBUG_STACK_FRAME + +class _DEBUG_LAST_EVENT_INFO_BREAKPOINT(Structure): + _fields_ = [ + ("Id", ULONG), + ] +DEBUG_LAST_EVENT_INFO_BREAKPOINT = _DEBUG_LAST_EVENT_INFO_BREAKPOINT +PDEBUG_LAST_EVENT_INFO_BREAKPOINT = POINTER(_DEBUG_LAST_EVENT_INFO_BREAKPOINT) + +class _DEBUG_LAST_EVENT_INFO_EXCEPTION(Structure): + _fields_ = [ + ("ExceptionRecord", EXCEPTION_RECORD64), + ("FirstChance", ULONG), + ] +DEBUG_LAST_EVENT_INFO_EXCEPTION = _DEBUG_LAST_EVENT_INFO_EXCEPTION +PDEBUG_LAST_EVENT_INFO_EXCEPTION = POINTER(_DEBUG_LAST_EVENT_INFO_EXCEPTION) + +class _DEBUG_LAST_EVENT_INFO_EXIT_THREAD(Structure): + _fields_ = [ + ("ExitCode", ULONG), + ] +PDEBUG_LAST_EVENT_INFO_EXIT_THREAD = POINTER(_DEBUG_LAST_EVENT_INFO_EXIT_THREAD) +DEBUG_LAST_EVENT_INFO_EXIT_THREAD = _DEBUG_LAST_EVENT_INFO_EXIT_THREAD + +class _DEBUG_LAST_EVENT_INFO_EXIT_PROCESS(Structure): + _fields_ = [ + ("ExitCode", ULONG), + ] +PDEBUG_LAST_EVENT_INFO_EXIT_PROCESS = POINTER(_DEBUG_LAST_EVENT_INFO_EXIT_PROCESS) +DEBUG_LAST_EVENT_INFO_EXIT_PROCESS = _DEBUG_LAST_EVENT_INFO_EXIT_PROCESS + +class _DEBUG_LAST_EVENT_INFO_LOAD_MODULE(Structure): + _fields_ = [ + ("Base", ULONG64), + ] +PDEBUG_LAST_EVENT_INFO_LOAD_MODULE = POINTER(_DEBUG_LAST_EVENT_INFO_LOAD_MODULE) +DEBUG_LAST_EVENT_INFO_LOAD_MODULE = _DEBUG_LAST_EVENT_INFO_LOAD_MODULE + +class _DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE(Structure): + _fields_ = [ + ("Base", ULONG64), + ] +PDEBUG_LAST_EVENT_INFO_UNLOAD_MODULE = POINTER(_DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE) +DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE = _DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE + +class _DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR(Structure): + _fields_ = [ + ("Error", ULONG), + ("Level", ULONG), + ] +PDEBUG_LAST_EVENT_INFO_SYSTEM_ERROR = POINTER(_DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR) +DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR = _DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR + +class _DEBUG_SPECIFIC_FILTER_PARAMETERS(Structure): + _fields_ = [ + ("ExecutionOption", ULONG), + ("ContinueOption", ULONG), + ("TextSize", ULONG), + ("CommandSize", ULONG), + ("ArgumentSize", ULONG), + ] +DEBUG_SPECIFIC_FILTER_PARAMETERS = _DEBUG_SPECIFIC_FILTER_PARAMETERS +PDEBUG_SPECIFIC_FILTER_PARAMETERS = POINTER(_DEBUG_SPECIFIC_FILTER_PARAMETERS) + +class _DEBUG_EXCEPTION_FILTER_PARAMETERS(Structure): + _fields_ = [ + ("ExecutionOption", ULONG), + ("ContinueOption", ULONG), + ("TextSize", ULONG), + ("CommandSize", ULONG), + ("SecondCommandSize", ULONG), + ("ExceptionCode", ULONG), + ] +PDEBUG_EXCEPTION_FILTER_PARAMETERS = POINTER(_DEBUG_EXCEPTION_FILTER_PARAMETERS) +DEBUG_EXCEPTION_FILTER_PARAMETERS = _DEBUG_EXCEPTION_FILTER_PARAMETERS + +class _TMP_signscale(Structure): + _fields_ = [ + ("scale", BYTE), + ("sign", BYTE), + ] + + +class _TMP_lowmid(Structure): + _fields_ = [ + ("Lo32", ULONG), + ("Mid32", ULONG), + ] + + +class TMP_signscale_union(Union): + _fields_ = [ + ("s", _TMP_signscale), + ("signscale", USHORT), + ] + + +class TMP_lowmid_union(Union): + _fields_ = [ + ("s", _TMP_lowmid), + ("Lo64", ULONGLONG), + ] + + +class tagDEC(Structure): + _fields_ = [ + ("wReserved", USHORT), + ("u1", TMP_signscale_union), + ("Hi32", ULONG), + ("u2", TMP_signscale_union), + ] +DECIMAL = tagDEC + +class tagDISPPARAMS(Structure): + _fields_ = [ + ("rgvarg", POINTER(VARIANTARG)), + ("rgdispidNamedArgs", POINTER(DISPID)), + ("cArgs", UINT), + ("cNamedArgs", UINT), + ] +DISPPARAMS = tagDISPPARAMS + +class tagEXCEPINFO(Structure): + _fields_ = [ + ("wCode", WORD), + ("wReserved", WORD), + ("bstrSource", BSTR), + ("bstrDescription", BSTR), + ("bstrHelpFile", BSTR), + ("dwHelpContext", DWORD), + ("pvReserved", ULONG_PTR), + ("pfnDeferredFillIn", ULONG_PTR), + ("scode", SCODE), + ] +EXCEPINFO = tagEXCEPINFO + +class _PROCESS_BASIC_INFORMATION(Structure): + _fields_ = [ + ("ExitStatus", NTSTATUS), + ("PebBaseAddress", PPEB), + ("AffinityMask", ULONG_PTR), + ("BasePriority", KPRIORITY), + ("UniqueProcessId", HANDLE), + ("InheritedFromUniqueProcessId", HANDLE), + ] +PPROCESS_BASIC_INFORMATION = POINTER(_PROCESS_BASIC_INFORMATION) +PROCESS_BASIC_INFORMATION = _PROCESS_BASIC_INFORMATION + +class _JIT_DEBUG_INFO(Structure): + _fields_ = [ + ("dwSize", DWORD), + ("dwProcessorArchitecture", DWORD), + ("dwThreadID", DWORD), + ("dwReserved0", DWORD), + ("lpExceptionAddress", ULONG64), + ("lpExceptionRecord", ULONG64), + ("lpContextRecord", ULONG64), + ] +LPJIT_DEBUG_INFO = POINTER(_JIT_DEBUG_INFO) +JIT_DEBUG_INFO = _JIT_DEBUG_INFO + +class _SID_IDENTIFIER_AUTHORITY(Structure): + _fields_ = [ + ("Value", BYTE * (6)), + ] +SID_IDENTIFIER_AUTHORITY = _SID_IDENTIFIER_AUTHORITY +PSID_IDENTIFIER_AUTHORITY = POINTER(_SID_IDENTIFIER_AUTHORITY) + +class _STRING(Structure): + _fields_ = [ + ("Length", USHORT), + ("MaximumLength", USHORT), + ("Buffer", LPCSTR), + ] +PCANSI_STRING = POINTER(_STRING) +PSTRING = POINTER(_STRING) +STRING = _STRING +PANSI_STRING = POINTER(_STRING) + +class _OBJECT_ATTRIBUTES(Structure): + _fields_ = [ + ("Length", ULONG), + ("RootDirectory", HANDLE), + ("ObjectName", PUNICODE_STRING), + ("Attributes", ULONG), + ("SecurityDescriptor", PVOID), + ("SecurityQualityOfService", PVOID), + ] +POBJECT_ATTRIBUTES = POINTER(_OBJECT_ATTRIBUTES) +OBJECT_ATTRIBUTES = _OBJECT_ATTRIBUTES + +class _OBJECT_ATTRIBUTES(_OBJECT_ATTRIBUTES): + @classmethod + def from_string(cls, path, attributes=OBJ_CASE_INSENSITIVE): # Directly on constructor ? + self = cls() + self.Length = ctypes.sizeof(self) + self.RootDirectory = 0 + self.ObjectName = ctypes.pointer(LSA_UNICODE_STRING.from_string(path)) + self.Attributes = attributes + self.SecurityDescriptor = 0 + self.SecurityQualityOfService = 0 + return self + + def __repr__(self): + if not self.ObjectName: + return super(_OBJECT_ATTRIBUTES, self).__repr__() + return """<{0} ObjectName="{1}">""".format(type(self).__name__, self.ObjectName[0].str) +POBJECT_ATTRIBUTES = POINTER(_OBJECT_ATTRIBUTES) +OBJECT_ATTRIBUTES = _OBJECT_ATTRIBUTES +class _TMP_UNION_IO_STATUS_BLOCK(Union): + _fields_ = [ + ("Status", NTSTATUS), + ("Pointer", PVOID), + ] +TMP_UNION_IO_STATUS_BLOCK = _TMP_UNION_IO_STATUS_BLOCK + +class _IO_STATUS_BLOCK(Structure): + _fields_ = [ + ("DUMMYUNIONNAME", TMP_UNION_IO_STATUS_BLOCK), + ("Information", ULONG_PTR), + ] +IO_STATUS_BLOCK = _IO_STATUS_BLOCK +PIO_STATUS_BLOCK = POINTER(_IO_STATUS_BLOCK) + +class _SECURITY_QUALITY_OF_SERVICE(Structure): + _fields_ = [ + ("Length", DWORD), + ("ImpersonationLevel", SECURITY_IMPERSONATION_LEVEL), + ("ContextTrackingMode", SECURITY_CONTEXT_TRACKING_MODE), + ("EffectiveOnly", BOOLEAN), + ] +PSECURITY_QUALITY_OF_SERVICE = POINTER(_SECURITY_QUALITY_OF_SERVICE) +SECURITY_QUALITY_OF_SERVICE = _SECURITY_QUALITY_OF_SERVICE + +class CATALOG_INFO_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("wszCatalogFile", WCHAR * (MAX_PATH)), + ] +CATALOG_INFO = CATALOG_INFO_ + +class _SYSTEM_HANDLE(Structure): + _fields_ = [ + ("dwProcessId", DWORD), + ("bObjectType", BYTE), + ("bFlags", BYTE), + ("wValue", WORD), + ("pAddress", PVOID), + ("GrantedAccess", DWORD), + ] +SYSTEM_HANDLE = _SYSTEM_HANDLE + +class _SYSTEM_HANDLE64(Structure): + _fields_ = [ + ("dwProcessId", DWORD), + ("bObjectType", BYTE), + ("bFlags", BYTE), + ("wValue", WORD), + ("pAddress", ULONG64), + ("GrantedAccess", DWORD), + ] +SYSTEM_HANDLE64 = _SYSTEM_HANDLE64 + +class _SYSTEM_HANDLE_INFORMATION(Structure): + _fields_ = [ + ("HandleCount", ULONG), + ("Handles", SYSTEM_HANDLE * (1)), + ] +PSYSTEM_HANDLE_INFORMATION = POINTER(_SYSTEM_HANDLE_INFORMATION) +SYSTEM_HANDLE_INFORMATION = _SYSTEM_HANDLE_INFORMATION + +class _SYSTEM_HANDLE_INFORMATION64(Structure): + _fields_ = [ + ("HandleCount", ULONG), + ("Handles", SYSTEM_HANDLE64 * (1)), + ] +SYSTEM_HANDLE_INFORMATION64 = _SYSTEM_HANDLE_INFORMATION64 +PSYSTEM_HANDLE_INFORMATION64 = POINTER(_SYSTEM_HANDLE_INFORMATION64) + +class __PUBLIC_OBJECT_TYPE_INFORMATION(Structure): + _fields_ = [ + ("TypeName", UNICODE_STRING), + ("Reserved", ULONG * (22)), + ] +PPUBLIC_OBJECT_TYPE_INFORMATION = POINTER(__PUBLIC_OBJECT_TYPE_INFORMATION) +PUBLIC_OBJECT_TYPE_INFORMATION = __PUBLIC_OBJECT_TYPE_INFORMATION + +class _PUBLIC_OBJECT_BASIC_INFORMATION(Structure): + _fields_ = [ + ("Attributes", ULONG), + ("GrantedAccess", ACCESS_MASK), + ("HandleCount", ULONG), + ("PointerCount", ULONG), + ("Reserved", ULONG * (10)), + ] +PUBLIC_OBJECT_BASIC_INFORMATION = _PUBLIC_OBJECT_BASIC_INFORMATION +PPUBLIC_OBJECT_BASIC_INFORMATION = POINTER(_PUBLIC_OBJECT_BASIC_INFORMATION) + +class _OBJECT_TYPES_INFORMATION(Structure): + _fields_ = [ + ("NumberOfTypes", ULONG), + ] +OBJECT_TYPES_INFORMATION = _OBJECT_TYPES_INFORMATION +POBJECT_TYPES_INFORMATION = POINTER(_OBJECT_TYPES_INFORMATION) + +class tagSOLE_AUTHENTICATION_SERVICE(Structure): + _fields_ = [ + ("dwAuthnSvc", DWORD), + ("dwAuthzSvc", DWORD), + ("pPrincipalName", POINTER(OLECHAR)), + ("hr", HRESULT), + ] +PSOLE_AUTHENTICATION_SERVICE = POINTER(tagSOLE_AUTHENTICATION_SERVICE) +SOLE_AUTHENTICATION_SERVICE = tagSOLE_AUTHENTICATION_SERVICE + +class _OBJECT_DIRECTORY_INFORMATION(Structure): + _fields_ = [ + ("Name", UNICODE_STRING), + ("TypeName", UNICODE_STRING), + ] +OBJECT_DIRECTORY_INFORMATION = _OBJECT_DIRECTORY_INFORMATION +POBJECT_DIRECTORY_INFORMATION = POINTER(_OBJECT_DIRECTORY_INFORMATION) + +class _DEBUG_VALUE_TMP_SUBSTRUCT1(Structure): + _fields_ = [ + ("I64", ULONG64), + ("Nat", BOOL), + ] +DEBUG_VALUE_TMP_SUBSTRUCT1 = _DEBUG_VALUE_TMP_SUBSTRUCT1 + +class _DEBUG_VALUE_TMP_SUBSTRUCT2(Structure): + _fields_ = [ + ("LowPart", ULONG), + ("HighPart", ULONG), + ] +DEBUG_VALUE_TMP_SUBSTRUCT2 = _DEBUG_VALUE_TMP_SUBSTRUCT2 + +class _DEBUG_VALUE_TMP_SUBSTRUCT3(Structure): + _fields_ = [ + ("LowPart", ULONG64), + ("HighPart", LONG64), + ] +DEBUG_VALUE_TMP_SUBSTRUCT3 = _DEBUG_VALUE_TMP_SUBSTRUCT3 + +class _DEBUG_VALUE_TMP_UNION(Union): + _fields_ = [ + ("I8", UCHAR), + ("I16", USHORT), + ("I32", ULONG), + ("tmp_sub_struct_1", _DEBUG_VALUE_TMP_SUBSTRUCT1), + ("F32", FLOAT), + ("F64", DOUBLE), + ("F80Bytes", UCHAR * (10)), + ("F82Bytes", UCHAR * (11)), + ("F128Bytes", UCHAR * (16)), + ("VI8", UCHAR * (16)), + ("VI16", USHORT * (8)), + ("VI32", ULONG * (4)), + ("VI64", ULONG64 * (2)), + ("VF32", FLOAT * (4)), + ("VF64", DOUBLE * (2)), + ("I64Parts32", DEBUG_VALUE_TMP_SUBSTRUCT2), + ("F128Parts64", DEBUG_VALUE_TMP_SUBSTRUCT3), + ("RawBytes", UCHAR * (24)), + ] +DEBUG_VALUE_TMP_UNION = _DEBUG_VALUE_TMP_UNION + +class _DEBUG_VALUE(Structure): + _fields_ = [ + ("u", _DEBUG_VALUE_TMP_UNION), + ("TailOfRawBytes", ULONG), + ("Type", ULONG), + ] +DEBUG_VALUE = _DEBUG_VALUE +PDEBUG_VALUE = POINTER(_DEBUG_VALUE) + +class _DEBUG_SYMBOL_PARAMETERS(Structure): + _fields_ = [ + ("Module", ULONG64), + ("TypeId", ULONG), + ("ParentSymbol", ULONG), + ("SubElements", ULONG), + ("Flags", ULONG), + ("Reserved", ULONG64), + ] +DEBUG_SYMBOL_PARAMETERS = _DEBUG_SYMBOL_PARAMETERS +PDEBUG_SYMBOL_PARAMETERS = POINTER(_DEBUG_SYMBOL_PARAMETERS) + +class _DEBUG_SYMBOL_ENTRY(Structure): + _fields_ = [ + ("ModuleBase", ULONG64), + ("Offset", ULONG64), + ("Id", ULONG64), + ("Arg64", ULONG64), + ("Size", ULONG), + ("Flags", ULONG), + ("TypeId", ULONG), + ("NameSize", ULONG), + ("Token", ULONG), + ("Tag", ULONG), + ("Arg32", ULONG), + ("Reserved", ULONG), + ] +PDEBUG_SYMBOL_ENTRY = POINTER(_DEBUG_SYMBOL_ENTRY) +DEBUG_SYMBOL_ENTRY = _DEBUG_SYMBOL_ENTRY + +class _DEBUG_MODULE_PARAMETERS(Structure): + _fields_ = [ + ("Base", ULONG64), + ("Size", ULONG), + ("TimeDateStamp", ULONG), + ("Checksum", ULONG), + ("Flags", ULONG), + ("SymbolType", ULONG), + ("ImageNameSize", ULONG), + ("ModuleNameSize", ULONG), + ("LoadedImageNameSize", ULONG), + ("SymbolFileNameSize", ULONG), + ("MappedImageNameSize", ULONG), + ("Reserved", ULONG64 * (2)), + ] +PDEBUG_MODULE_PARAMETERS = POINTER(_DEBUG_MODULE_PARAMETERS) +DEBUG_MODULE_PARAMETERS = _DEBUG_MODULE_PARAMETERS + +class _DEBUG_MODULE_AND_ID(Structure): + _fields_ = [ + ("ModuleBase", ULONG64), + ("Id", ULONG64), + ] +DEBUG_MODULE_AND_ID = _DEBUG_MODULE_AND_ID +PDEBUG_MODULE_AND_ID = POINTER(_DEBUG_MODULE_AND_ID) + +class _DEBUG_OFFSET_REGION(Structure): + _fields_ = [ + ("Base", ULONG64), + ("Size", ULONG64), + ] +DEBUG_OFFSET_REGION = _DEBUG_OFFSET_REGION +PDEBUG_OFFSET_REGION = POINTER(_DEBUG_OFFSET_REGION) + +class _DEBUG_SYMBOL_SOURCE_ENTRY(Structure): + _fields_ = [ + ("ModuleBase", ULONG64), + ("Offset", ULONG64), + ("FileNameId", ULONG64), + ("EngineInternal", ULONG64), + ("Size", ULONG), + ("Flags", ULONG), + ("FileNameSize", ULONG), + ("StartLine", ULONG), + ("EndLine", ULONG), + ("StartColumn", ULONG), + ("EndColumn", ULONG), + ("Reserved", ULONG), + ] +DEBUG_SYMBOL_SOURCE_ENTRY = _DEBUG_SYMBOL_SOURCE_ENTRY +PDEBUG_SYMBOL_SOURCE_ENTRY = POINTER(_DEBUG_SYMBOL_SOURCE_ENTRY) + +class _RTL_UNLOAD_EVENT_TRACE(Structure): + _fields_ = [ + ("BaseAddress", PVOID), + ("SizeOfImage", SIZE_T), + ("Sequence", ULONG), + ("TimeDateStamp", ULONG), + ("CheckSum", ULONG), + ("ImageName", WCHAR * (32)), + ("Version", ULONG * (2)), + ] +PRTL_UNLOAD_EVENT_TRACE = POINTER(_RTL_UNLOAD_EVENT_TRACE) +RTL_UNLOAD_EVENT_TRACE = _RTL_UNLOAD_EVENT_TRACE + +class _RTL_UNLOAD_EVENT_TRACE32(Structure): + _fields_ = [ + ("BaseAddress", DWORD), + ("SizeOfImage", DWORD), + ("Sequence", ULONG), + ("TimeDateStamp", ULONG), + ("CheckSum", ULONG), + ("ImageName", WCHAR * (32)), + ("Version", ULONG * (2)), + ] +RTL_UNLOAD_EVENT_TRACE32 = _RTL_UNLOAD_EVENT_TRACE32 +PRTL_UNLOAD_EVENT_TRACE32 = POINTER(_RTL_UNLOAD_EVENT_TRACE32) + +class _RTL_UNLOAD_EVENT_TRACE64(Structure): + _fields_ = [ + ("BaseAddress", ULONGLONG), + ("SizeOfImage", ULONGLONG), + ("Sequence", ULONG), + ("TimeDateStamp", ULONG), + ("CheckSum", ULONG), + ("ImageName", WCHAR * (32)), + ("Version", ULONG * (2)), + ] +PRTL_UNLOAD_EVENT_TRACE64 = POINTER(_RTL_UNLOAD_EVENT_TRACE64) +RTL_UNLOAD_EVENT_TRACE64 = _RTL_UNLOAD_EVENT_TRACE64 + +class _FILE_FS_ATTRIBUTE_INFORMATION(Structure): + _fields_ = [ + ("FileSystemAttributes", ULONG), + ("MaximumComponentNameLength", LONG), + ("FileSystemNameLength", ULONG), + ("FileSystemName", WCHAR * (1)), + ] +PFILE_FS_ATTRIBUTE_INFORMATION = POINTER(_FILE_FS_ATTRIBUTE_INFORMATION) +FILE_FS_ATTRIBUTE_INFORMATION = _FILE_FS_ATTRIBUTE_INFORMATION + +class _FILE_FS_LABEL_INFORMATION(Structure): + _fields_ = [ + ("VolumeLabelLength", ULONG), + ("VolumeLabel", WCHAR * (1)), + ] +FILE_FS_LABEL_INFORMATION = _FILE_FS_LABEL_INFORMATION +PFILE_FS_LABEL_INFORMATION = POINTER(_FILE_FS_LABEL_INFORMATION) + +class _FILE_FS_SIZE_INFORMATION(Structure): + _fields_ = [ + ("TotalAllocationUnits", LARGE_INTEGER), + ("AvailableAllocationUnits", LARGE_INTEGER), + ("SectorsPerAllocationUnit", ULONG), + ("BytesPerSector", ULONG), + ] +PFILE_FS_SIZE_INFORMATION = POINTER(_FILE_FS_SIZE_INFORMATION) +FILE_FS_SIZE_INFORMATION = _FILE_FS_SIZE_INFORMATION + +class _FILE_FS_DEVICE_INFORMATION(Structure): + _fields_ = [ + ("DeviceType", DEVICE_TYPE), + ("Characteristics", ULONG), + ] +FILE_FS_DEVICE_INFORMATION = _FILE_FS_DEVICE_INFORMATION +PFILE_FS_DEVICE_INFORMATION = POINTER(_FILE_FS_DEVICE_INFORMATION) + +class _FILE_FS_CONTROL_INFORMATION(Structure): + _fields_ = [ + ("FreeSpaceStartFiltering", LARGE_INTEGER), + ("FreeSpaceThreshold", LARGE_INTEGER), + ("FreeSpaceStopFiltering", LARGE_INTEGER), + ("DefaultQuotaThreshold", LARGE_INTEGER), + ("DefaultQuotaLimit", LARGE_INTEGER), + ("FileSystemControlFlags", ULONG), + ] +FILE_FS_CONTROL_INFORMATION = _FILE_FS_CONTROL_INFORMATION +PFILE_FS_CONTROL_INFORMATION = POINTER(_FILE_FS_CONTROL_INFORMATION) + +class _FILE_FS_FULL_SIZE_INFORMATION(Structure): + _fields_ = [ + ("TotalAllocationUnits", LARGE_INTEGER), + ("CallerAvailableAllocationUnits", LARGE_INTEGER), + ("ActualAvailableAllocationUnits", LARGE_INTEGER), + ("SectorsPerAllocationUnit", ULONG), + ("BytesPerSector", ULONG), + ] +PFILE_FS_FULL_SIZE_INFORMATION = POINTER(_FILE_FS_FULL_SIZE_INFORMATION) +FILE_FS_FULL_SIZE_INFORMATION = _FILE_FS_FULL_SIZE_INFORMATION + +class _FILE_FS_OBJECTID_INFORMATION(Structure): + _fields_ = [ + ("ObjectId", UCHAR * (16)), + ("ExtendedInfo", UCHAR * (48)), + ] +FILE_FS_OBJECTID_INFORMATION = _FILE_FS_OBJECTID_INFORMATION +PFILE_FS_OBJECTID_INFORMATION = POINTER(_FILE_FS_OBJECTID_INFORMATION) + +class _FILE_FS_DRIVER_PATH_INFORMATION(Structure): + _fields_ = [ + ("DriverInPath", BOOLEAN), + ("DriverNameLength", ULONG), + ("DriverName", WCHAR * (1)), + ] +FILE_FS_DRIVER_PATH_INFORMATION = _FILE_FS_DRIVER_PATH_INFORMATION +PFILE_FS_DRIVER_PATH_INFORMATION = POINTER(_FILE_FS_DRIVER_PATH_INFORMATION) + +class _FILE_FS_DRIVER_PATH_INFORMATION(Structure): + _fields_ = [ + ("DriverInPath", BOOLEAN), + ("DriverNameLength", ULONG), + ("DriverName", WCHAR * (1)), + ] +FILE_FS_DRIVER_PATH_INFORMATION = _FILE_FS_DRIVER_PATH_INFORMATION +PFILE_FS_DRIVER_PATH_INFORMATION = POINTER(_FILE_FS_DRIVER_PATH_INFORMATION) + +class _FILE_FS_VOLUME_INFORMATION(Structure): + _fields_ = [ + ("VolumeCreationTime", LARGE_INTEGER), + ("VolumeSerialNumber", ULONG), + ("VolumeLabelLength", ULONG), + ("SupportsObjects", BOOLEAN), + ("VolumeLabel", WCHAR * (1)), + ] +FILE_FS_VOLUME_INFORMATION = _FILE_FS_VOLUME_INFORMATION +PFILE_FS_VOLUME_INFORMATION = POINTER(_FILE_FS_VOLUME_INFORMATION) + +class _FILE_FS_SECTOR_SIZE_INFORMATION(Structure): + _fields_ = [ + ("LogicalBytesPerSector", ULONG), + ("PhysicalBytesPerSectorForAtomicity", ULONG), + ("PhysicalBytesPerSectorForPerformance", ULONG), + ("FileSystemEffectivePhysicalBytesPerSectorForAtomicity", ULONG), + ("Flags", ULONG), + ("ByteOffsetForSectorAlignment", ULONG), + ("ByteOffsetForPartitionAlignment", ULONG), + ] +PFILE_FS_SECTOR_SIZE_INFORMATION = POINTER(_FILE_FS_SECTOR_SIZE_INFORMATION) +FILE_FS_SECTOR_SIZE_INFORMATION = _FILE_FS_SECTOR_SIZE_INFORMATION + +class _RTLP_CURDIR_REF(Structure): + _fields_ = [ + ("RefCount", LONG), + ("Handle", HANDLE), + ] +PRTLP_CURDIR_REF = POINTER(_RTLP_CURDIR_REF) +RTLP_CURDIR_REF = _RTLP_CURDIR_REF + +class _RTL_RELATIVE_NAME_U(Structure): + _fields_ = [ + ("RelativeName", UNICODE_STRING), + ("ContainingDirectory", HANDLE), + ("CurDirRef", PRTLP_CURDIR_REF), + ] +PRTL_RELATIVE_NAME_U = POINTER(_RTL_RELATIVE_NAME_U) +RTL_RELATIVE_NAME_U = _RTL_RELATIVE_NAME_U + +class _PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION(Structure): + _fields_ = [ + ("Version", ULONG), + ("Reserved", ULONG), + ("Callback", PVOID), + ] +PPROCESS_INSTRUMENTATION_CALLBACK_INFORMATION = POINTER(_PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION) +PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION = _PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION + +class _PROCESS_MEMORY_COUNTERS(Structure): + _fields_ = [ + ("cb", DWORD), + ("PageFaultCount", DWORD), + ("PeakWorkingSetSize", SIZE_T), + ("WorkingSetSize", SIZE_T), + ("QuotaPeakPagedPoolUsage", SIZE_T), + ("QuotaPagedPoolUsage", SIZE_T), + ("QuotaPeakNonPagedPoolUsage", SIZE_T), + ("QuotaNonPagedPoolUsage", SIZE_T), + ("PagefileUsage", SIZE_T), + ("PeakPagefileUsage", SIZE_T), + ] +PPROCESS_MEMORY_COUNTERS = POINTER(_PROCESS_MEMORY_COUNTERS) +PROCESS_MEMORY_COUNTERS = _PROCESS_MEMORY_COUNTERS + +class _PROCESS_MEMORY_COUNTERS_EX(Structure): + _fields_ = [ + ("cb", DWORD), + ("PageFaultCount", DWORD), + ("PeakWorkingSetSize", SIZE_T), + ("WorkingSetSize", SIZE_T), + ("QuotaPeakPagedPoolUsage", SIZE_T), + ("QuotaPagedPoolUsage", SIZE_T), + ("QuotaPeakNonPagedPoolUsage", SIZE_T), + ("QuotaNonPagedPoolUsage", SIZE_T), + ("PagefileUsage", SIZE_T), + ("PeakPagefileUsage", SIZE_T), + ("PrivateUsage", SIZE_T), + ] +PROCESS_MEMORY_COUNTERS_EX = _PROCESS_MEMORY_COUNTERS_EX + +class _FILETIME(Structure): + _fields_ = [ + ("dwLowDateTime", DWORD), + ("dwHighDateTime", DWORD), + ] +LPFILETIME = POINTER(_FILETIME) +PFILETIME = POINTER(_FILETIME) +FILETIME = _FILETIME + +INITIAL_FILETIME = FILETIME + +class _FILETIME(INITIAL_FILETIME): + def __int__(self): + return (self.dwHighDateTime << 32) + self.dwLowDateTime +LPFILETIME = POINTER(_FILETIME) +PFILETIME = POINTER(_FILETIME) +FILETIME = _FILETIME +AlpcBasicInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcBasicInformation", 0x0) +AlpcPortInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcPortInformation", 0x1) +AlpcAssociateCompletionPortInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcAssociateCompletionPortInformation", 0x2) +AlpcConnectedSIDInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcConnectedSIDInformation", 0x3) +AlpcServerInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcServerInformation", 0x4) +AlpcMessageZoneInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcMessageZoneInformation", 0x5) +AlpcRegisterCompletionListInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcRegisterCompletionListInformation", 0x6) +AlpcUnregisterCompletionListInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcUnregisterCompletionListInformation", 0x7) +AlpcAdjustCompletionListConcurrencyCountInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcAdjustCompletionListConcurrencyCountInformation", 0x8) +AlpcRegisterCallbackInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcRegisterCallbackInformation", 0x9) +AlpcCompletionListRundownInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcCompletionListRundownInformation", 0xa) +AlpcWaitForPortReferences = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcWaitForPortReferences", 0xb) +MaxAlpcPortInfoClass = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "MaxAlpcPortInfoClass", 0xc) +class _ALPC_PORT_INFORMATION_CLASS(EnumType): + values = [AlpcBasicInformation, AlpcPortInformation, AlpcAssociateCompletionPortInformation, AlpcConnectedSIDInformation, AlpcServerInformation, AlpcMessageZoneInformation, AlpcRegisterCompletionListInformation, AlpcUnregisterCompletionListInformation, AlpcAdjustCompletionListConcurrencyCountInformation, AlpcRegisterCallbackInformation, AlpcCompletionListRundownInformation, AlpcWaitForPortReferences, MaxAlpcPortInfoClass] + mapper = FlagMapper(*values) +ALPC_PORT_INFORMATION_CLASS = _ALPC_PORT_INFORMATION_CLASS + + +AlpcMessageSidInformation = EnumValue("_ALPC_MESSAGE_INFORMATION_CLASS", "AlpcMessageSidInformation", 0x0) +AlpcMessageTokenModifiedIdInformation = EnumValue("_ALPC_MESSAGE_INFORMATION_CLASS", "AlpcMessageTokenModifiedIdInformation", 0x1) +MaxAlpcMessageInfoClass = EnumValue("_ALPC_MESSAGE_INFORMATION_CLASS", "MaxAlpcMessageInfoClass", 0x2) +AlpcMessageHandleInformation = EnumValue("_ALPC_MESSAGE_INFORMATION_CLASS", "AlpcMessageHandleInformation", 0x3) +class _ALPC_MESSAGE_INFORMATION_CLASS(EnumType): + values = [AlpcMessageSidInformation, AlpcMessageTokenModifiedIdInformation, MaxAlpcMessageInfoClass, AlpcMessageHandleInformation] + mapper = FlagMapper(*values) +ALPC_MESSAGE_INFORMATION_CLASS = _ALPC_MESSAGE_INFORMATION_CLASS +PALPC_MESSAGE_INFORMATION_CLASS = POINTER(_ALPC_MESSAGE_INFORMATION_CLASS) + + +class _ALPC_PORT_ATTRIBUTES32(Structure): + _fields_ = [ + ("Flags", ULONG), + ("SecurityQos", SECURITY_QUALITY_OF_SERVICE), + ("MaxMessageLength", SIZE_T), + ("MemoryBandwidth", SIZE_T), + ("MaxPoolUsage", SIZE_T), + ("MaxSectionSize", SIZE_T), + ("MaxViewSize", SIZE_T), + ("MaxTotalSectionSize", SIZE_T), + ("DupObjectTypes", ULONG), + ] +PALPC_PORT_ATTRIBUTES32 = POINTER(_ALPC_PORT_ATTRIBUTES32) +ALPC_PORT_ATTRIBUTES32 = _ALPC_PORT_ATTRIBUTES32 + +class _ALPC_PORT_ATTRIBUTES64(Structure): + _fields_ = [ + ("Flags", ULONG), + ("SecurityQos", SECURITY_QUALITY_OF_SERVICE), + ("MaxMessageLength", SIZE_T), + ("MemoryBandwidth", SIZE_T), + ("MaxPoolUsage", SIZE_T), + ("MaxSectionSize", SIZE_T), + ("MaxViewSize", SIZE_T), + ("MaxTotalSectionSize", SIZE_T), + ("DupObjectTypes", ULONG), + ("Reserved", ULONG), + ] +ALPC_PORT_ATTRIBUTES64 = _ALPC_PORT_ATTRIBUTES64 +PALPC_PORT_ATTRIBUTES64 = POINTER(_ALPC_PORT_ATTRIBUTES64) + +class _ALPC_MESSAGE_ATTRIBUTES(Structure): + _fields_ = [ + ("AllocatedAttributes", ULONG), + ("ValidAttributes", ULONG), + ] +ALPC_MESSAGE_ATTRIBUTES = _ALPC_MESSAGE_ATTRIBUTES +PALPC_MESSAGE_ATTRIBUTES = POINTER(_ALPC_MESSAGE_ATTRIBUTES) + +class _PORT_MESSAGE32_TMP_UNION(Union): + _fields_ = [ + ("ClientViewSize", ULONG), + ("CallbackId", ULONG), + ] +PORT_MESSAGE_TMP_UNION = _PORT_MESSAGE32_TMP_UNION + +class _PORT_MESSAGE64_TMP_UNION(Union): + _fields_ = [ + ("ClientViewSize", ULONGLONG), + ("CallbackId", ULONG), + ] +PORT_MESSAGE_TMP_UNION = _PORT_MESSAGE64_TMP_UNION + +class _PORT_MESSAGE_TMP_SUBSTRUCT_S1(Structure): + _fields_ = [ + ("DataLength", CSHORT), + ("TotalLength", CSHORT), + ] + + +class _PORT_MESSAGE_TMP_UNION_U1(Union): + _fields_ = [ + ("Length", ULONG), + ("s1", _PORT_MESSAGE_TMP_SUBSTRUCT_S1), + ] + + +class _PORT_MESSAGE_TMP_SUBSTRUCT_S2(Structure): + _fields_ = [ + ("Type", CSHORT), + ("DataInfoOffset", CSHORT), + ] + + +class _PORT_MESSAGE_TMP_UNION_U2(Union): + _fields_ = [ + ("ZeroInit", ULONG), + ("s2", _PORT_MESSAGE_TMP_SUBSTRUCT_S2), + ] + + +class _PORT_MESSAGE32(Structure): + _fields_ = [ + ("u1", _PORT_MESSAGE_TMP_UNION_U1), + ("u2", _PORT_MESSAGE_TMP_UNION_U2), + ("ClientId", CLIENT_ID32), + ("MessageId", ULONG), + ("tmp_union", _PORT_MESSAGE32_TMP_UNION), + ] +PORT_MESSAGE32 = _PORT_MESSAGE32 +PPORT_MESSAGE32 = POINTER(_PORT_MESSAGE32) + +class _PORT_MESSAGE64(Structure): + _fields_ = [ + ("u1", _PORT_MESSAGE_TMP_UNION_U1), + ("u2", _PORT_MESSAGE_TMP_UNION_U2), + ("ClientId", CLIENT_ID64), + ("MessageId", ULONG), + ("tmp_union", _PORT_MESSAGE64_TMP_UNION), + ] +PPORT_MESSAGE64 = POINTER(_PORT_MESSAGE64) +PORT_MESSAGE64 = _PORT_MESSAGE64 + +class _ALPC_SERVER_INFORMATION_TMP_IN(Structure): + _fields_ = [ + ("ThreadHandle", HANDLE), + ] +ALPC_SERVER_INFORMATION_TMP_IN = _ALPC_SERVER_INFORMATION_TMP_IN + +class _ALPC_SERVER_INFORMATION_TMP_OUT(Structure): + _fields_ = [ + ("ThreadBlocked", BOOLEAN), + ("ConnectedProcessId", HANDLE), + ("ConnectionPortName", UNICODE_STRING), + ] +ALPC_SERVER_INFORMATION_TMP_OUT = _ALPC_SERVER_INFORMATION_TMP_OUT + +class ALPC_SERVER_INFORMATION(Union): + _fields_ = [ + ("In", ALPC_SERVER_INFORMATION_TMP_IN), + ("Out", ALPC_SERVER_INFORMATION_TMP_OUT), + ] + + +class _ALPC_CONTEXT_ATTR(Structure): + _fields_ = [ + ("PortContext", PVOID), + ("MessageContext", PVOID), + ("Sequence", ULONG), + ("MessageId", ULONG), + ("CallbackId", ULONG), + ] +PALPC_CONTEXT_ATTR = POINTER(_ALPC_CONTEXT_ATTR) +ALPC_CONTEXT_ATTR = _ALPC_CONTEXT_ATTR + +class _ALPC_CONTEXT_ATTR32(Structure): + _fields_ = [ + ("PortContext", ULONG), + ("MessageContext", ULONG), + ("Sequence", ULONG), + ("MessageId", ULONG), + ("CallbackId", ULONG), + ] +ALPC_CONTEXT_ATTR32 = _ALPC_CONTEXT_ATTR32 +PALPC_CONTEXT_ATTR32 = POINTER(_ALPC_CONTEXT_ATTR32) + +class _ALPC_CONTEXT_ATTR64(Structure): + _fields_ = [ + ("PortContext", ULONGLONG), + ("MessageContext", ULONGLONG), + ("Sequence", ULONG), + ("MessageId", ULONG), + ("CallbackId", ULONG), + ] +ALPC_CONTEXT_ATTR64 = _ALPC_CONTEXT_ATTR64 +PALPC_CONTEXT_ATTR64 = POINTER(_ALPC_CONTEXT_ATTR64) + +class _ALPC_HANDLE_ATTR(Structure): + _fields_ = [ + ("Flags", ULONG), + ("Handle", HANDLE), + ("ObjectType", ULONG), + ("DesiredAccess", ACCESS_MASK), + ] +PALPC_HANDLE_ATTR = POINTER(_ALPC_HANDLE_ATTR) +ALPC_HANDLE_ATTR = _ALPC_HANDLE_ATTR + +class _ALPC_HANDLE_ATTR32(Structure): + _fields_ = [ + ("Flags", ULONG), + ("Handle", ULONG), + ("ObjectType", ULONG), + ("DesiredAccess", ACCESS_MASK), + ] +ALPC_HANDLE_ATTR32 = _ALPC_HANDLE_ATTR32 +PALPC_HANDLE_ATTR32 = POINTER(_ALPC_HANDLE_ATTR32) + +class _ALPC_HANDLE_ATTR64(Structure): + _fields_ = [ + ("Flags", ULONG), + ("Handle", ULONGLONG), + ("ObjectType", ULONG), + ("DesiredAccess", ACCESS_MASK), + ] +PALPC_HANDLE_ATTR64 = POINTER(_ALPC_HANDLE_ATTR64) +ALPC_HANDLE_ATTR64 = _ALPC_HANDLE_ATTR64 + +class _ALPC_SECURITY_ATTR(Structure): + _fields_ = [ + ("Flags", ULONG), + ("QoS", PSECURITY_QUALITY_OF_SERVICE), + ("ContextHandle", ALPC_HANDLE), + ] +PALPC_SECURITY_ATTR = POINTER(_ALPC_SECURITY_ATTR) +ALPC_SECURITY_ATTR = _ALPC_SECURITY_ATTR + +class _ALPC_SECURITY_ATTR32(Structure): + _fields_ = [ + ("Flags", ULONG), + ("QoS", ULONG), + ("ContextHandle", ULONG), + ] +ALPC_SECURITY_ATTR32 = _ALPC_SECURITY_ATTR32 +PALPC_SECURITY_ATTR32 = POINTER(_ALPC_SECURITY_ATTR32) + +class _ALPC_SECURITY_ATTR64(Structure): + _fields_ = [ + ("Flags", ULONGLONG), + ("QoS", ULONGLONG), + ("ContextHandle", ULONGLONG), + ] +PALPC_SECURITY_ATTR64 = POINTER(_ALPC_SECURITY_ATTR64) +ALPC_SECURITY_ATTR64 = _ALPC_SECURITY_ATTR64 + +class _ALPC_DATA_VIEW_ATTR(Structure): + _fields_ = [ + ("Flags", ULONG), + ("SectionHandle", ALPC_HANDLE), + ("ViewBase", PVOID), + ("ViewSize", PVOID), + ] +PALPC_DATA_VIEW_ATTR = POINTER(_ALPC_DATA_VIEW_ATTR) +ALPC_DATA_VIEW_ATTR = _ALPC_DATA_VIEW_ATTR + +class _ALPC_DATA_VIEW_ATTR32(Structure): + _fields_ = [ + ("Flags", ULONG), + ("SectionHandle", ULONG), + ("ViewBase", ULONG), + ("ViewSize", ULONG), + ] +PALPC_DATA_VIEW_ATTR32 = POINTER(_ALPC_DATA_VIEW_ATTR32) +ALPC_DATA_VIEW_ATTR32 = _ALPC_DATA_VIEW_ATTR32 + +class _ALPC_DATA_VIEW_ATTR64(Structure): + _fields_ = [ + ("Flags", ULONG), + ("SectionHandle", ULONGLONG), + ("ViewBase", ULONGLONG), + ("ViewSize", ULONGLONG), + ] +PALPC_DATA_VIEW_ATTR64 = POINTER(_ALPC_DATA_VIEW_ATTR64) +ALPC_DATA_VIEW_ATTR64 = _ALPC_DATA_VIEW_ATTR64 + +class _ALPC_TOKEN_ATTR(Structure): + _fields_ = [ + ("TokenId", ULONGLONG), + ("AuthenticationId", ULONGLONG), + ("ModifiedId", ULONGLONG), + ] +ALPC_TOKEN_ATTR = _ALPC_TOKEN_ATTR +PALPC_TOKEN_ATTR = POINTER(_ALPC_TOKEN_ATTR) + +class _ALPC_DIRECT_ATTR(Structure): + _fields_ = [ + ("Event", HANDLE), + ] +ALPC_DIRECT_ATTR = _ALPC_DIRECT_ATTR +PALPC_DIRECT_ATTR = POINTER(_ALPC_DIRECT_ATTR) + +class _ALPC_DIRECT_ATTR32(Structure): + _fields_ = [ + ("Event", ULONG), + ] +PALPC_DIRECT_ATTR32 = POINTER(_ALPC_DIRECT_ATTR32) +ALPC_DIRECT_ATTR32 = _ALPC_DIRECT_ATTR32 + +class _ALPC_DIRECT_ATTR64(Structure): + _fields_ = [ + ("Event", ULONGLONG), + ] +ALPC_DIRECT_ATTR64 = _ALPC_DIRECT_ATTR64 +PALPC_DIRECT_ATTR64 = POINTER(_ALPC_DIRECT_ATTR64) + +class _ALPC_WORK_ON_BEHALF_ATTR(Structure): + _fields_ = [ + ("Ticket", ULONGLONG), + ] +PALPC_WORK_ON_BEHALF_ATTR = POINTER(_ALPC_WORK_ON_BEHALF_ATTR) +ALPC_WORK_ON_BEHALF_ATTR = _ALPC_WORK_ON_BEHALF_ATTR + +class _RPC_IF_ID(Structure): + _fields_ = [ + ("Uuid", IID), + ("VersMajor", USHORT), + ("VersMinor", USHORT), + ] +RPC_IF_ID = _RPC_IF_ID + +INITIAL_RPC_IF_ID = RPC_IF_ID + +class _RPC_IF_ID(INITIAL_RPC_IF_ID): + def __repr__(self): + return ''.format(self.Uuid.to_string(), self.VersMajor, self.VersMinor) +RPC_IF_ID = _RPC_IF_ID +class _PORT_VIEW(Structure): + _fields_ = [ + ("Length", ULONG), + ("SectionHandle", HANDLE), + ("SectionOffset", ULONG), + ("ViewSize", ULONG), + ("ViewBase", PVOID), + ("TargetViewBase", PVOID), + ] +PPORT_VIEW = POINTER(_PORT_VIEW) +PORT_VIEW = _PORT_VIEW + +class _REMOTE_PORT_VIEW(Structure): + _fields_ = [ + ("Length", ULONG), + ("ViewSize", ULONG), + ("ViewBase", PVOID), + ] +REMOTE_PORT_VIEW = _REMOTE_PORT_VIEW +PREMOTE_PORT_VIEW = POINTER(_REMOTE_PORT_VIEW) + +class tagCOMVERSION(Structure): + _fields_ = [ + ("MajorVersion", USHORT), + ("MinorVersion", USHORT), + ] +COMVERSION = tagCOMVERSION + +class tagORPCTHIS(Structure): + _fields_ = [ + ("version", COMVERSION), + ("flags", ULONG), + ("reserved1", ULONG), + ("cid", GUID), + ("extensions", PVOID), + ] +ORPCTHIS = tagORPCTHIS + +class __MIDL_XmitDefs_0001(Structure): + _fields_ = [ + ("asyncOperationId", GUID), + ("oxidClientProcessNA", ULONG64), + ("originalClientLogicalThreadId", GUID), + ("uClientCausalityTraceId", ULONG64), + ] +MIDL_XmitDefs_0001 = __MIDL_XmitDefs_0001 + +class _LOCALTHIS(Structure): + _fields_ = [ + ("dwFlags", DWORD), + ("dwClientThread", DWORD), + ("passthroughTraceActivity", GUID), + ("callTraceActivity", GUID), + ("asyncRequestBlock", MIDL_XmitDefs_0001), + ("reserved", DWORD), + ("pTouchedAstaArray", PVOID), + ] +LOCALTHIS = _LOCALTHIS + +ECS_ENABLED = EnumValue("_EXPCMDSTATE", "ECS_ENABLED", 0x0) +ECS_DISABLED = EnumValue("_EXPCMDSTATE", "ECS_DISABLED", 0x1) +ECS_HIDDEN = EnumValue("_EXPCMDSTATE", "ECS_HIDDEN", 0x2) +ECS_CHECKBOX = EnumValue("_EXPCMDSTATE", "ECS_CHECKBOX", 0x3) +ECS_CHECKED = EnumValue("_EXPCMDSTATE", "ECS_CHECKED", 0x4) +ECS_RADIOCHECK = EnumValue("_EXPCMDSTATE", "ECS_RADIOCHECK", 0x5) +class _EXPCMDSTATE(EnumType): + values = [ECS_ENABLED, ECS_DISABLED, ECS_HIDDEN, ECS_CHECKBOX, ECS_CHECKED, ECS_RADIOCHECK] + mapper = FlagMapper(*values) +EXPCMDSTATE = _EXPCMDSTATE + + +ECF_DEFAULT = EnumValue("_EXPCMDFLAGS", "ECF_DEFAULT", 0x0) +ECF_HASSUBCOMMANDS = EnumValue("_EXPCMDFLAGS", "ECF_HASSUBCOMMANDS", 0x1) +ECF_HASSPLITBUTTON = EnumValue("_EXPCMDFLAGS", "ECF_HASSPLITBUTTON", 0x2) +ECF_HIDELABEL = EnumValue("_EXPCMDFLAGS", "ECF_HIDELABEL", 0x4) +ECF_ISSEPARATOR = EnumValue("_EXPCMDFLAGS", "ECF_ISSEPARATOR", 0x8) +ECF_HASLUASHIELD = EnumValue("_EXPCMDFLAGS", "ECF_HASLUASHIELD", 0x10) +ECF_SEPARATORBEFORE = EnumValue("_EXPCMDFLAGS", "ECF_SEPARATORBEFORE", 0x20) +ECF_SEPARATORAFTER = EnumValue("_EXPCMDFLAGS", "ECF_SEPARATORAFTER", 0x40) +ECF_ISDROPDOWN = EnumValue("_EXPCMDFLAGS", "ECF_ISDROPDOWN", 0x80) +ECF_TOGGLEABLE = EnumValue("_EXPCMDFLAGS", "ECF_TOGGLEABLE", 0x100) +ECF_AUTOMENUICONS = EnumValue("_EXPCMDFLAGS", "ECF_AUTOMENUICONS", 0x200) +class _EXPCMDFLAGS(EnumType): + values = [ECF_DEFAULT, ECF_HASSUBCOMMANDS, ECF_HASSPLITBUTTON, ECF_HIDELABEL, ECF_ISSEPARATOR, ECF_HASLUASHIELD, ECF_SEPARATORBEFORE, ECF_SEPARATORAFTER, ECF_ISDROPDOWN, ECF_TOGGLEABLE, ECF_AUTOMENUICONS] + mapper = FlagMapper(*values) +EXPCMDFLAGS = _EXPCMDFLAGS + + +SIGDN_NORMALDISPLAY = EnumValue("_SIGDN", "SIGDN_NORMALDISPLAY", 0x0) +SIGDN_PARENTRELATIVEPARSING = EnumValue("_SIGDN", "SIGDN_PARENTRELATIVEPARSING", 0x80018001) +SIGDN_DESKTOPABSOLUTEPARSING = EnumValue("_SIGDN", "SIGDN_DESKTOPABSOLUTEPARSING", 0x80028000) +SIGDN_PARENTRELATIVEEDITING = EnumValue("_SIGDN", "SIGDN_PARENTRELATIVEEDITING", 0x80031001) +SIGDN_DESKTOPABSOLUTEEDITING = EnumValue("_SIGDN", "SIGDN_DESKTOPABSOLUTEEDITING", 0x8004c000) +SIGDN_FILESYSPATH = EnumValue("_SIGDN", "SIGDN_FILESYSPATH", 0x80058000) +SIGDN_URL = EnumValue("_SIGDN", "SIGDN_URL", 0x80068000) +SIGDN_PARENTRELATIVEFORADDRESSBAR = EnumValue("_SIGDN", "SIGDN_PARENTRELATIVEFORADDRESSBAR", 0x8007c001) +SIGDN_PARENTRELATIVE = EnumValue("_SIGDN", "SIGDN_PARENTRELATIVE", 0x80080001) +SIGDN_PARENTRELATIVEFORUI = EnumValue("_SIGDN", "SIGDN_PARENTRELATIVEFORUI", 0x80094001) +class _SIGDN(EnumType): + values = [SIGDN_NORMALDISPLAY, SIGDN_PARENTRELATIVEPARSING, SIGDN_DESKTOPABSOLUTEPARSING, SIGDN_PARENTRELATIVEEDITING, SIGDN_DESKTOPABSOLUTEEDITING, SIGDN_FILESYSPATH, SIGDN_URL, SIGDN_PARENTRELATIVEFORADDRESSBAR, SIGDN_PARENTRELATIVE, SIGDN_PARENTRELATIVEFORUI] + mapper = FlagMapper(*values) +SIGDN = _SIGDN + + +SICHINT_DISPLAY = EnumValue("SICHINTF", "SICHINT_DISPLAY", 0x0) +SICHINT_ALLFIELDS = EnumValue("SICHINTF", "SICHINT_ALLFIELDS", 0x80000000) +SICHINT_CANONICAL = EnumValue("SICHINTF", "SICHINT_CANONICAL", 0x10000000) +SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = EnumValue("SICHINTF", "SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL", 0x20000000) +class SICHINTF(EnumType): + values = [SICHINT_DISPLAY, SICHINT_ALLFIELDS, SICHINT_CANONICAL, SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL] + mapper = FlagMapper(*values) + + +GPS_DEFAULT = EnumValue("GETPROPERTYSTOREFLAGS", "GPS_DEFAULT", 0x0) +GPS_HANDLERPROPERTIESONLY = EnumValue("GETPROPERTYSTOREFLAGS", "GPS_HANDLERPROPERTIESONLY", 0x1) +GPS_READWRITE = EnumValue("GETPROPERTYSTOREFLAGS", "GPS_READWRITE", 0x2) +GPS_TEMPORARY = EnumValue("GETPROPERTYSTOREFLAGS", "GPS_TEMPORARY", 0x4) +GPS_FASTPROPERTIESONLY = EnumValue("GETPROPERTYSTOREFLAGS", "GPS_FASTPROPERTIESONLY", 0x8) +GPS_OPENSLOWITEM = EnumValue("GETPROPERTYSTOREFLAGS", "GPS_OPENSLOWITEM", 0x10) +GPS_DELAYCREATION = EnumValue("GETPROPERTYSTOREFLAGS", "GPS_DELAYCREATION", 0x20) +GPS_BESTEFFORT = EnumValue("GETPROPERTYSTOREFLAGS", "GPS_BESTEFFORT", 0x40) +GPS_NO_OPLOCK = EnumValue("GETPROPERTYSTOREFLAGS", "GPS_NO_OPLOCK", 0x80) +GPS_PREFERQUERYPROPERTIES = EnumValue("GETPROPERTYSTOREFLAGS", "GPS_PREFERQUERYPROPERTIES", 0x100) +GPS_EXTRINSICPROPERTIES = EnumValue("GETPROPERTYSTOREFLAGS", "GPS_EXTRINSICPROPERTIES", 0x200) +GPS_EXTRINSICPROPERTIESONLY = EnumValue("GETPROPERTYSTOREFLAGS", "GPS_EXTRINSICPROPERTIESONLY", 0x400) +GPS_MASK_VALID = EnumValue("GETPROPERTYSTOREFLAGS", "GPS_MASK_VALID", 0x7ff) +class GETPROPERTYSTOREFLAGS(EnumType): + values = [GPS_DEFAULT, GPS_HANDLERPROPERTIESONLY, GPS_READWRITE, GPS_TEMPORARY, GPS_FASTPROPERTIESONLY, GPS_OPENSLOWITEM, GPS_DELAYCREATION, GPS_BESTEFFORT, GPS_NO_OPLOCK, GPS_PREFERQUERYPROPERTIES, GPS_EXTRINSICPROPERTIES, GPS_EXTRINSICPROPERTIESONLY, GPS_MASK_VALID] + mapper = FlagMapper(*values) + + +SIATTRIBFLAGS_AND = EnumValue("SIATTRIBFLAGS", "SIATTRIBFLAGS_AND", 0x1) +SIATTRIBFLAGS_OR = EnumValue("SIATTRIBFLAGS", "SIATTRIBFLAGS_OR", 0x2) +SIATTRIBFLAGS_APPCOMPAT = EnumValue("SIATTRIBFLAGS", "SIATTRIBFLAGS_APPCOMPAT", 0x3) +SIATTRIBFLAGS_MASK = EnumValue("SIATTRIBFLAGS", "SIATTRIBFLAGS_MASK", 0x3) +SIATTRIBFLAGS_ALLITEMS = EnumValue("SIATTRIBFLAGS", "SIATTRIBFLAGS_ALLITEMS", 0x4000) +class SIATTRIBFLAGS(EnumType): + values = [SIATTRIBFLAGS_AND, SIATTRIBFLAGS_OR, SIATTRIBFLAGS_APPCOMPAT, SIATTRIBFLAGS_MASK, SIATTRIBFLAGS_ALLITEMS] + mapper = FlagMapper(*values) + + +class tagBIND_OPTS(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("grfFlags", DWORD), + ("grfMode", DWORD), + ("dwTickCountDeadline", DWORD), + ] +BIND_OPTS = tagBIND_OPTS +LPBIND_OPTS = POINTER(tagBIND_OPTS) + +class _tagpropertykey(Structure): + _fields_ = [ + ("fmtid", GUID), + ("pid", DWORD), + ] +PROPERTYKEY = _tagpropertykey +REFPROPERTYKEY = POINTER(_tagpropertykey) + +class tagSTATSTG(Structure): + _fields_ = [ + ("pwcsName", LPOLESTR), + ("type", DWORD), + ("cbSize", ULARGE_INTEGER), + ("mtime", FILETIME), + ("ctime", FILETIME), + ("atime", FILETIME), + ("grfMode", DWORD), + ("grfLocksSupported", DWORD), + ("clsid", CLSID), + ("grfStateBits", DWORD), + ("reserved", DWORD), + ] +STATSTG = tagSTATSTG + +VAR_PERINSTANCE = EnumValue("tagVARKIND", "VAR_PERINSTANCE", 0x0) +VAR_STATIC = EnumValue("tagVARKIND", "VAR_STATIC", 0x1) +VAR_CONST = EnumValue("tagVARKIND", "VAR_CONST", 0x2) +VAR_DISPATCH = EnumValue("tagVARKIND", "VAR_DISPATCH", 0x3) +class tagVARKIND(EnumType): + values = [VAR_PERINSTANCE, VAR_STATIC, VAR_CONST, VAR_DISPATCH] + mapper = FlagMapper(*values) +VARKIND = tagVARKIND + + +INVOKE_FUNC = EnumValue("tagINVOKEKIND", "INVOKE_FUNC", 0x0) +INVOKE_PROPERTYGET = EnumValue("tagINVOKEKIND", "INVOKE_PROPERTYGET", 0x1) +INVOKE_PROPERTYPUT = EnumValue("tagINVOKEKIND", "INVOKE_PROPERTYPUT", 0x2) +INVOKE_PROPERTYPUTREF = EnumValue("tagINVOKEKIND", "INVOKE_PROPERTYPUTREF", 0x3) +class tagINVOKEKIND(EnumType): + values = [INVOKE_FUNC, INVOKE_PROPERTYGET, INVOKE_PROPERTYPUT, INVOKE_PROPERTYPUTREF] + mapper = FlagMapper(*values) +INVOKEKIND = tagINVOKEKIND + + +FUNC_VIRTUAL = EnumValue("tagFUNCKIND", "FUNC_VIRTUAL", 0x0) +FUNC_PUREVIRTUAL = EnumValue("tagFUNCKIND", "FUNC_PUREVIRTUAL", 0x1) +FUNC_NONVIRTUAL = EnumValue("tagFUNCKIND", "FUNC_NONVIRTUAL", 0x2) +FUNC_STATIC = EnumValue("tagFUNCKIND", "FUNC_STATIC", 0x3) +FUNC_DISPATCH = EnumValue("tagFUNCKIND", "FUNC_DISPATCH", 0x4) +class tagFUNCKIND(EnumType): + values = [FUNC_VIRTUAL, FUNC_PUREVIRTUAL, FUNC_NONVIRTUAL, FUNC_STATIC, FUNC_DISPATCH] + mapper = FlagMapper(*values) +FUNCKIND = tagFUNCKIND + + +SYS_WIN16 = EnumValue("tagSYSKIND", "SYS_WIN16", 0x0) +SYS_WIN32 = EnumValue("tagSYSKIND", "SYS_WIN32", 0x1) +SYS_MAC = EnumValue("tagSYSKIND", "SYS_MAC", 0x2) +SYS_WIN64 = EnumValue("tagSYSKIND", "SYS_WIN64", 0x3) +class tagSYSKIND(EnumType): + values = [SYS_WIN16, SYS_WIN32, SYS_MAC, SYS_WIN64] + mapper = FlagMapper(*values) +SYSKIND = tagSYSKIND + + +CC_FASTCALL = EnumValue("tagCALLCONV", "CC_FASTCALL", 0x0) +CC_CDECL = EnumValue("tagCALLCONV", "CC_CDECL", 0x1) +CC_MSCPASCAL = EnumValue("tagCALLCONV", "CC_MSCPASCAL", 0x2) +CC_PASCAL = EnumValue("tagCALLCONV", "CC_PASCAL", 0x3) +CC_MACPASCAL = EnumValue("tagCALLCONV", "CC_MACPASCAL", 0x4) +CC_STDCALL = EnumValue("tagCALLCONV", "CC_STDCALL", 0x5) +CC_FPFASTCALL = EnumValue("tagCALLCONV", "CC_FPFASTCALL", 0x6) +CC_SYSCALL = EnumValue("tagCALLCONV", "CC_SYSCALL", 0x7) +CC_MPWCDECL = EnumValue("tagCALLCONV", "CC_MPWCDECL", 0x8) +CC_MPWPASCAL = EnumValue("tagCALLCONV", "CC_MPWPASCAL", 0x9) +CC_MAX = EnumValue("tagCALLCONV", "CC_MAX", 0xa) +class tagCALLCONV(EnumType): + values = [CC_FASTCALL, CC_CDECL, CC_MSCPASCAL, CC_PASCAL, CC_MACPASCAL, CC_STDCALL, CC_FPFASTCALL, CC_SYSCALL, CC_MPWCDECL, CC_MPWPASCAL, CC_MAX] + mapper = FlagMapper(*values) +CALLCONV = tagCALLCONV + + +DESCKIND_NONE = EnumValue("tagDESCKIND", "DESCKIND_NONE", 0x0) +DESCKIND_FUNCDESC = EnumValue("tagDESCKIND", "DESCKIND_FUNCDESC", 0x1) +DESCKIND_VARDESC = EnumValue("tagDESCKIND", "DESCKIND_VARDESC", 0x2) +DESCKIND_TYPECOMP = EnumValue("tagDESCKIND", "DESCKIND_TYPECOMP", 0x3) +DESCKIND_IMPLICITAPPOBJ = EnumValue("tagDESCKIND", "DESCKIND_IMPLICITAPPOBJ", 0x4) +DESCKIND_MAX = EnumValue("tagDESCKIND", "DESCKIND_MAX", 0x5) +class tagDESCKIND(EnumType): + values = [DESCKIND_NONE, DESCKIND_FUNCDESC, DESCKIND_VARDESC, DESCKIND_TYPECOMP, DESCKIND_IMPLICITAPPOBJ, DESCKIND_MAX] + mapper = FlagMapper(*values) +DESCKIND = tagDESCKIND + + +class tagPARAMDESCEX(Structure): + _fields_ = [ + ("cBytes", ULONG), + ("varDefaultValue", VARIANTARG), + ] +PARAMDESCEX = tagPARAMDESCEX +LPPARAMDESCEX = POINTER(tagPARAMDESCEX) + +class tagPARAMDESC(Structure): + _fields_ = [ + ("pparamdescex", LPPARAMDESCEX), + ("wParamFlags", USHORT), + ] +LPPARAMDESC = POINTER(tagPARAMDESC) +PARAMDESC = tagPARAMDESC + +class _TMP_TYPEDESC_UNION(Union): + _fields_ = [ + ("lptdesc", PVOID), + ("lpadesc", PVOID), + ("hreftype", HREFTYPE), + ] +TMP_TYPEDESC_UNION = _TMP_TYPEDESC_UNION + +class tagTYPEDESC(Structure): + _fields_ = [ + ("DUMMYUNIONNAME", TMP_TYPEDESC_UNION), + ("vt", VARTYPE), + ] +TYPEDESC = tagTYPEDESC + +class tagARRAYDESC(Structure): + _fields_ = [ + ("tdescElem", TYPEDESC), + ("cDims", USHORT), + ("rgbounds", SAFEARRAYBOUND * (1)), + ] +ARRAYDESC = tagARRAYDESC + +class tagELEMDESC(Structure): + _fields_ = [ + ("tdesc", TYPEDESC), + ("paramdesc", PARAMDESC), + ] +ELEMDESC = tagELEMDESC +LPELEMDESC = POINTER(tagELEMDESC) + +class tagFUNCDESC(Structure): + _fields_ = [ + ("memid", MEMBERID), + ("lprgscode", POINTER(SCODE)), + ("lprgelemdescParam", POINTER(ELEMDESC)), + ("funckind", FUNCKIND), + ("invkind", INVOKEKIND), + ("callconv", CALLCONV), + ("cParams", SHORT), + ("cParamsOpt", SHORT), + ("oVft", SHORT), + ("cScodes", SHORT), + ("elemdescFunc", ELEMDESC), + ("wFuncFlags", WORD), + ] +LPFUNCDESC = POINTER(tagFUNCDESC) +FUNCDESC = tagFUNCDESC + +class _TMP_VARDESC_UNION(Union): + _fields_ = [ + ("oInst", ULONG), + ("lpvarValue", POINTER(VARIANT)), + ] +TMP_VARDESC_UNION = _TMP_VARDESC_UNION + +class tagVARDESC(Structure): + _fields_ = [ + ("memid", MEMBERID), + ("lpstrSchema", LPOLESTR), + ("DUMMYUNIONNAME", TMP_VARDESC_UNION), + ("elemdescVar", ELEMDESC), + ("wVarFlags", WORD), + ("varkind", VARKIND), + ] +LPVARDESC = POINTER(tagVARDESC) +VARDESC = tagVARDESC + +class tagBINDPTR(Union): + _fields_ = [ + ("lpfuncdesc", POINTER(FUNCDESC)), + ("lpvardesc", POINTER(VARDESC)), + ("lptcomp", PVOID), + ] +LPBINDPTR = POINTER(tagBINDPTR) +BINDPTR = tagBINDPTR + +class tagIDLDESC(Structure): + _fields_ = [ + ("dwReserved", ULONG_PTR), + ("wIDLFlags", USHORT), + ] +IDLDESC = tagIDLDESC +LPIDLDESC = POINTER(tagIDLDESC) + +class tagTLIBATTR(Structure): + _fields_ = [ + ("guid", GUID), + ("lcid", LCID), + ("syskind", SYSKIND), + ("wMajorVerNum", WORD), + ("wMinorVerNum", WORD), + ("wLibFlags", WORD), + ] +LPTLIBATTR = POINTER(tagTLIBATTR) +TLIBATTR = tagTLIBATTR + +class tagTYPEATTR(Structure): + _fields_ = [ + ("guid", GUID), + ("lcid", LCID), + ("dwReserved", DWORD), + ("memidConstructor", MEMBERID), + ("memidDestructor", MEMBERID), + ("lpstrSchema", LPOLESTR), + ("cbSizeInstance", ULONG), + ("typekind", TYPEKIND), + ("cFuncs", WORD), + ("cVars", WORD), + ("cImplTypes", WORD), + ("cbSizeVft", WORD), + ("cbAlignment", WORD), + ("wTypeFlags", WORD), + ("wMajorVerNum", WORD), + ("wMinorVerNum", WORD), + ("tdescAlias", TYPEDESC), + ("idldescType", IDLDESC), + ] +TYPEATTR = tagTYPEATTR +LPTYPEATTR = POINTER(tagTYPEATTR) + +class _CERT_STRONG_SIGN_SERIALIZED_INFO(Structure): + _fields_ = [ + ("dwFlags", DWORD), + ("pwszCNGSignHashAlgids", LPWSTR), + ("pwszCNGPubKeyMinBitLengths", LPWSTR), + ] +CERT_STRONG_SIGN_SERIALIZED_INFO = _CERT_STRONG_SIGN_SERIALIZED_INFO +PCERT_STRONG_SIGN_SERIALIZED_INFO = POINTER(_CERT_STRONG_SIGN_SERIALIZED_INFO) + +class TMP_CERT_STRONG_SIGN_PARA_UNION_TYPE(Union): + _fields_ = [ + ("pvInfo", PVOID), + ("pSerializedInfo", PCERT_STRONG_SIGN_SERIALIZED_INFO), + ("pszOID", LPSTR), + ] + + +class _CERT_STRONG_SIGN_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("dwInfoChoice", DWORD), + ("tmp_union", TMP_CERT_STRONG_SIGN_PARA_UNION_TYPE), + ] +CERT_STRONG_SIGN_PARA = _CERT_STRONG_SIGN_PARA +PCCERT_STRONG_SIGN_PARA = POINTER(_CERT_STRONG_SIGN_PARA) +PCERT_STRONG_SIGN_PARA = POINTER(_CERT_STRONG_SIGN_PARA) + +class _CRYPTOAPI_BLOB(Structure): + _fields_ = [ + ("cbData", DWORD), + ("pbData", POINTER(BYTE)), + ] +CRYPT_INTEGER_BLOB = _CRYPTOAPI_BLOB +PCRYPT_DATA_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_OBJID_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_DER_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRL_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_UINT_BLOB = POINTER(_CRYPTOAPI_BLOB) +CERT_NAME_BLOB = _CRYPTOAPI_BLOB +PCRYPT_DIGEST_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_INTEGER_BLOB = POINTER(_CRYPTOAPI_BLOB) +CERT_RDN_VALUE_BLOB = _CRYPTOAPI_BLOB +PCERT_NAME_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_HASH_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_DATA_BLOB = _CRYPTOAPI_BLOB +DATA_BLOB = _CRYPTOAPI_BLOB +CRYPT_UINT_BLOB = _CRYPTOAPI_BLOB +PCERT_RDN_VALUE_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_HASH_BLOB = _CRYPTOAPI_BLOB +CRL_BLOB = _CRYPTOAPI_BLOB +PCERT_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_DIGEST_BLOB = _CRYPTOAPI_BLOB +CRYPT_OBJID_BLOB = _CRYPTOAPI_BLOB +CERT_BLOB = _CRYPTOAPI_BLOB +CRYPT_DER_BLOB = _CRYPTOAPI_BLOB +PDATA_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_ATTR_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_ATTR_BLOB = _CRYPTOAPI_BLOB + +class _CRYPTOAPI_BLOB(_CRYPTOAPI_BLOB): + @classmethod + def from_string(cls, buf): + self = cls() + self.cbData = len(buf) + self.pbData = (BYTE * self.cbData)(*bytearray(buf)) + return self + + @property + def data(self): + return bytearray(self.pbData[:self.cbData]) +CRYPT_INTEGER_BLOB = _CRYPTOAPI_BLOB +PCRYPT_DATA_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_OBJID_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_DER_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRL_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_UINT_BLOB = POINTER(_CRYPTOAPI_BLOB) +CERT_NAME_BLOB = _CRYPTOAPI_BLOB +PCRYPT_DIGEST_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_INTEGER_BLOB = POINTER(_CRYPTOAPI_BLOB) +CERT_RDN_VALUE_BLOB = _CRYPTOAPI_BLOB +PCERT_NAME_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_HASH_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_DATA_BLOB = _CRYPTOAPI_BLOB +DATA_BLOB = _CRYPTOAPI_BLOB +CRYPT_UINT_BLOB = _CRYPTOAPI_BLOB +PCERT_RDN_VALUE_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_HASH_BLOB = _CRYPTOAPI_BLOB +CRL_BLOB = _CRYPTOAPI_BLOB +PCERT_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_DIGEST_BLOB = _CRYPTOAPI_BLOB +CRYPT_OBJID_BLOB = _CRYPTOAPI_BLOB +CERT_BLOB = _CRYPTOAPI_BLOB +CRYPT_DER_BLOB = _CRYPTOAPI_BLOB +PDATA_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_ATTR_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_ATTR_BLOB = _CRYPTOAPI_BLOB +class CRYPTCATATTRIBUTE_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("pwszReferenceTag", LPWSTR), + ("dwAttrTypeAndAction", DWORD), + ("cbValue", DWORD), + ("pbValue", POINTER(BYTE)), + ("dwReserved", DWORD), + ] +CRYPTCATATTRIBUTE = CRYPTCATATTRIBUTE_ +PCRYPTCATATTRIBUTE = POINTER(CRYPTCATATTRIBUTE_) + +class _CRYPT_ATTRIBUTE_TYPE_VALUE(Structure): + _fields_ = [ + ("pszObjId", LPSTR), + ("Value", CRYPT_OBJID_BLOB), + ] +CRYPT_ATTRIBUTE_TYPE_VALUE = _CRYPT_ATTRIBUTE_TYPE_VALUE +PCRYPT_ATTRIBUTE_TYPE_VALUE = POINTER(_CRYPT_ATTRIBUTE_TYPE_VALUE) + +class _CRYPT_ALGORITHM_IDENTIFIER(Structure): + _fields_ = [ + ("pszObjId", LPSTR), + ("Parameters", CRYPT_OBJID_BLOB), + ] +CRYPT_ALGORITHM_IDENTIFIER = _CRYPT_ALGORITHM_IDENTIFIER +PCRYPT_ALGORITHM_IDENTIFIER = POINTER(_CRYPT_ALGORITHM_IDENTIFIER) + +class SIP_INDIRECT_DATA_(Structure): + _fields_ = [ + ("Data", CRYPT_ATTRIBUTE_TYPE_VALUE), + ("DigestAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("Digest", CRYPT_HASH_BLOB), + ] +SIP_INDIRECT_DATA = SIP_INDIRECT_DATA_ +PSIP_INDIRECT_DATA = POINTER(SIP_INDIRECT_DATA_) + +class CRYPTCATMEMBER_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("pwszReferenceTag", LPWSTR), + ("pwszFileName", LPWSTR), + ("gSubjectType", GUID), + ("fdwMemberFlags", DWORD), + ("pIndirectData", POINTER(SIP_INDIRECT_DATA)), + ("dwCertVersion", DWORD), + ("dwReserved", DWORD), + ("hReserved", HANDLE), + ("sEncodedIndirectData", CRYPT_ATTR_BLOB), + ("sEncodedMemberInfo", CRYPT_ATTR_BLOB), + ] +CRYPTCATMEMBER = CRYPTCATMEMBER_ +PCRYPTCATMEMBER = POINTER(CRYPTCATMEMBER_) + +class WINTRUST_FILE_INFO_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("pcwszFilePath", LPCWSTR), + ("hFile", HANDLE), + ("pgKnownSubject", POINTER(GUID)), + ] +WINTRUST_FILE_INFO = WINTRUST_FILE_INFO_ +PWINTRUST_FILE_INFO = POINTER(WINTRUST_FILE_INFO_) + +class _CRYPT_ATTRIBUTE(Structure): + _fields_ = [ + ("pszObjId", LPSTR), + ("cValue", DWORD), + ("rgValue", PCRYPT_ATTR_BLOB), + ] +PCRYPT_ATTRIBUTE = POINTER(_CRYPT_ATTRIBUTE) +CRYPT_ATTRIBUTE = _CRYPT_ATTRIBUTE + +OLD_CRYPT_ATTRIBUTE = _CRYPT_ATTRIBUTE + +class _CRYPT_ATTRIBUTE(_CRYPT_ATTRIBUTE): + @property + def count(self): # __len__ ? + return self.cValue + + @property + def values(self): + return self.rgValue[:self.cValue] + + @property + def objid(self): + # SZOID_MAPPER defined in the generated structures template.py + return SZOID_MAPPER[self.pszObjId] + + def __repr__(self): + # return """<{0} pszObjId={1!r} Values={2}>""".format(type(self).__name__, self.objid, self.cValue) + if not self.pszObjId in SZOID_MAPPER: + return """<{0} pszObjId="{1}" Values={2}>""".format(type(self).__name__, self.pszObjId, self.cValue) + flag = SZOID_MAPPER[self.pszObjId] + return """<{0} pszObjId="{1}" ({2}) Values={3}>""".format(type(self).__name__, flag, flag.name, self.cValue) +PCRYPT_ATTRIBUTE = POINTER(_CRYPT_ATTRIBUTE) +CRYPT_ATTRIBUTE = _CRYPT_ATTRIBUTE +class _CTL_ENTRY(Structure): + _fields_ = [ + ("SubjectIdentifier", CRYPT_DATA_BLOB), + ("cAttribute", DWORD), + ("rgAttribute", PCRYPT_ATTRIBUTE), + ] +PCTL_ENTRY = POINTER(_CTL_ENTRY) +CTL_ENTRY = _CTL_ENTRY + +class _CRYPT_ATTRIBUTE(Structure): + _fields_ = [ + ("pszObjId", LPSTR), + ("cValue", DWORD), + ("rgValue", PCRYPT_ATTR_BLOB), + ] +PCRYPT_ATTRIBUTE = POINTER(_CRYPT_ATTRIBUTE) +CRYPT_ATTRIBUTE = _CRYPT_ATTRIBUTE + +OLD_CRYPT_ATTRIBUTE = _CRYPT_ATTRIBUTE + +class _CRYPT_ATTRIBUTE(_CRYPT_ATTRIBUTE): + @property + def count(self): # __len__ ? + return self.cValue + + @property + def values(self): + return self.rgValue[:self.cValue] + + @property + def objid(self): + # SZOID_MAPPER defined in the generated structures template.py + return SZOID_MAPPER[self.pszObjId] + + def __repr__(self): + # return """<{0} pszObjId={1!r} Values={2}>""".format(type(self).__name__, self.objid, self.cValue) + if not self.pszObjId in SZOID_MAPPER: + return """<{0} pszObjId="{1}" Values={2}>""".format(type(self).__name__, self.pszObjId, self.cValue) + flag = SZOID_MAPPER[self.pszObjId] + return """<{0} pszObjId="{1}" ({2}) Values={3}>""".format(type(self).__name__, flag, flag.name, self.cValue) +PCRYPT_ATTRIBUTE = POINTER(_CRYPT_ATTRIBUTE) +CRYPT_ATTRIBUTE = _CRYPT_ATTRIBUTE +class _CRYPT_ATTRIBUTES(Structure): + _fields_ = [ + ("cAttr", DWORD), + ("rgAttr", PCRYPT_ATTRIBUTE), + ] +CRYPT_ATTRIBUTES = _CRYPT_ATTRIBUTES +PCRYPT_ATTRIBUTES = POINTER(_CRYPT_ATTRIBUTES) + +OLD_CRYPT_ATTRIBUTES = _CRYPT_ATTRIBUTES +class _CRYPT_ATTRIBUTES(_CRYPT_ATTRIBUTES): + @property + def count(self): # __len__ ? + return self.cAttr + + @property + def attributes(self): + return self.rgAttr[:self.cAttr] + + def __getitem__(self, oid): + return [x for x in self.attributes if x.pszObjId == oid] + + def __repr__(self): + return """<{0} Attributes={1}>""".format(type(self).__name__, self.cAttr) +CRYPT_ATTRIBUTES = _CRYPT_ATTRIBUTES +PCRYPT_ATTRIBUTES = POINTER(_CRYPT_ATTRIBUTES) +class _CERT_EXTENSION(Structure): + _fields_ = [ + ("pszObjId", LPSTR), + ("fCritical", BOOL), + ("Value", CRYPT_OBJID_BLOB), + ] +CERT_EXTENSION = _CERT_EXTENSION +PCERT_EXTENSION = POINTER(_CERT_EXTENSION) + +class _CRL_ENTRY(Structure): + _fields_ = [ + ("SerialNumber", CRYPT_INTEGER_BLOB), + ("RevocationDate", FILETIME), + ("cExtension", DWORD), + ("rgExtension", PCERT_EXTENSION), + ] +CRL_ENTRY = _CRL_ENTRY +PCRL_ENTRY = POINTER(_CRL_ENTRY) + +class _CRL_INFO(Structure): + _fields_ = [ + ("dwVersion", DWORD), + ("SignatureAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("Issuer", CERT_NAME_BLOB), + ("ThisUpdate", FILETIME), + ("NextUpdate", FILETIME), + ("cCRLEntry", DWORD), + ("rgCRLEntry", PCRL_ENTRY), + ("cExtension", DWORD), + ("rgExtension", PCERT_EXTENSION), + ] +CRL_INFO = _CRL_INFO +PCRL_INFO = POINTER(_CRL_INFO) + +class _CRL_CONTEXT(Structure): + _fields_ = [ + ("dwCertEncodingType", DWORD), + ("pbCrlEncoded", POINTER(BYTE)), + ("cbCrlEncoded", DWORD), + ("pCrlInfo", PCRL_INFO), + ("hCertStore", HCERTSTORE), + ] +PCCRL_CONTEXT = POINTER(_CRL_CONTEXT) +CRL_CONTEXT = _CRL_CONTEXT +PCRL_CONTEXT = POINTER(_CRL_CONTEXT) + +class _CMSG_SIGNER_INFO(Structure): + _fields_ = [ + ("dwVersion", DWORD), + ("Issuer", CERT_NAME_BLOB), + ("SerialNumber", CRYPT_INTEGER_BLOB), + ("HashAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("HashEncryptionAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("EncryptedHash", CRYPT_DATA_BLOB), + ("AuthAttrs", CRYPT_ATTRIBUTES), + ("UnauthAttrs", CRYPT_ATTRIBUTES), + ] +CMSG_SIGNER_INFO = _CMSG_SIGNER_INFO +PCMSG_SIGNER_INFO = POINTER(_CMSG_SIGNER_INFO) + +class _CTL_USAGE(Structure): + _fields_ = [ + ("cUsageIdentifier", DWORD), + ("rgpszUsageIdentifier", POINTER(LPSTR)), + ] +CERT_ENHKEY_USAGE = _CTL_USAGE +PCTL_USAGE = POINTER(_CTL_USAGE) +CTL_USAGE = _CTL_USAGE +PCERT_ENHKEY_USAGE = POINTER(_CTL_USAGE) + +class _CTL_INFO(Structure): + _fields_ = [ + ("dwVersion", DWORD), + ("SubjectUsage", CTL_USAGE), + ("ListIdentifier", CRYPT_DATA_BLOB), + ("SequenceNumber", CRYPT_INTEGER_BLOB), + ("ThisUpdate", FILETIME), + ("NextUpdate", FILETIME), + ("SubjectAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("cCTLEntry", DWORD), + ("rgCTLEntry", PCTL_ENTRY), + ("cExtension", DWORD), + ("rgExtension", PCERT_EXTENSION), + ] +CTL_INFO = _CTL_INFO +PCTL_INFO = POINTER(_CTL_INFO) + +class _CTL_CONTEXT(Structure): + _fields_ = [ + ("dwMsgAndCertEncodingType", DWORD), + ("pbCtlEncoded", POINTER(BYTE)), + ("cbCtlEncoded", DWORD), + ("pCtlInfo", PCTL_INFO), + ("hCertStore", HCERTSTORE), + ("hCryptMsg", HCRYPTMSG), + ("pbCtlContent", POINTER(BYTE)), + ("cbCtlContent", DWORD), + ] +PCTL_CONTEXT = POINTER(_CTL_CONTEXT) +CTL_CONTEXT = _CTL_CONTEXT +PCCTL_CONTEXT = POINTER(_CTL_CONTEXT) + +class WINTRUST_CATALOG_INFO_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("dwCatalogVersion", DWORD), + ("pcwszCatalogFilePath", LPCWSTR), + ("pcwszMemberTag", LPCWSTR), + ("pcwszMemberFilePath", LPCWSTR), + ("hMemberFile", HANDLE), + ("pbCalculatedFileHash", POINTER(BYTE)), + ("cbCalculatedFileHash", DWORD), + ("pcCatalogContext", PCCTL_CONTEXT), + ] +PWINTRUST_CATALOG_INFO = POINTER(WINTRUST_CATALOG_INFO_) +WINTRUST_CATALOG_INFO = WINTRUST_CATALOG_INFO_ + +class WINTRUST_BLOB_INFO_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("gSubject", GUID), + ("pcwszDisplayName", LPCWSTR), + ("cbMemObject", DWORD), + ("pbMemObject", POINTER(BYTE)), + ("cbMemSignedMsg", DWORD), + ("pbMemSignedMsg", POINTER(BYTE)), + ] +PWINTRUST_BLOB_INFO = POINTER(WINTRUST_BLOB_INFO_) +WINTRUST_BLOB_INFO = WINTRUST_BLOB_INFO_ + +class _CRYPT_BIT_BLOB(Structure): + _fields_ = [ + ("cbData", DWORD), + ("pbData", POINTER(BYTE)), + ("cUnusedBits", DWORD), + ] +CRYPT_BIT_BLOB = _CRYPT_BIT_BLOB +PCRYPT_BIT_BLOB = POINTER(_CRYPT_BIT_BLOB) + +class _CRYPT_BIT_BLOB(_CRYPT_BIT_BLOB): + @property + def data(self): + return bytearray(self.pbData[:self.cbData]) +CRYPT_BIT_BLOB = _CRYPT_BIT_BLOB +PCRYPT_BIT_BLOB = POINTER(_CRYPT_BIT_BLOB) +class _CERT_PUBLIC_KEY_INFO(Structure): + _fields_ = [ + ("Algorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("PublicKey", CRYPT_BIT_BLOB), + ] +PCERT_PUBLIC_KEY_INFO = POINTER(_CERT_PUBLIC_KEY_INFO) +CERT_PUBLIC_KEY_INFO = _CERT_PUBLIC_KEY_INFO + +class _CERT_INFO(Structure): + _fields_ = [ + ("dwVersion", DWORD), + ("SerialNumber", CRYPT_INTEGER_BLOB), + ("SignatureAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("Issuer", CERT_NAME_BLOB), + ("NotBefore", FILETIME), + ("NotAfter", FILETIME), + ("Subject", CERT_NAME_BLOB), + ("SubjectPublicKeyInfo", CERT_PUBLIC_KEY_INFO), + ("IssuerUniqueId", CRYPT_BIT_BLOB), + ("SubjectUniqueId", CRYPT_BIT_BLOB), + ("cExtension", DWORD), + ("rgExtension", PCERT_EXTENSION), + ] +CERT_INFO = _CERT_INFO +PCERT_INFO = POINTER(_CERT_INFO) + +class _CERT_ISSUER_SERIAL_NUMBER(Structure): + _fields_ = [ + ("Issuer", CERT_NAME_BLOB), + ("SerialNumber", CRYPT_INTEGER_BLOB), + ] +CERT_ISSUER_SERIAL_NUMBER = _CERT_ISSUER_SERIAL_NUMBER +PCERT_ISSUER_SERIAL_NUMBER = POINTER(_CERT_ISSUER_SERIAL_NUMBER) + +class _TMPUNION_CERT_ID(Union): + _fields_ = [ + ("IssuerSerialNumber", CERT_ISSUER_SERIAL_NUMBER), + ("KeyId", CRYPT_HASH_BLOB), + ("HashId", CRYPT_HASH_BLOB), + ] +TMPUNION_CERT_ID = _TMPUNION_CERT_ID + +class _CERT_ID(Structure): + _fields_ = [ + ("dwIdChoice", DWORD), + ("DUMMYUNIONNAME", TMPUNION_CERT_ID), + ] +CERT_ID = _CERT_ID +PCERT_ID = POINTER(_CERT_ID) + +class _CERT_CONTEXT(Structure): + _fields_ = [ + ("dwCertEncodingType", DWORD), + ("pbCertEncoded", POINTER(BYTE)), + ("cbCertEncoded", DWORD), + ("pCertInfo", PCERT_INFO), + ("hCertStore", HCERTSTORE), + ] +PCCERT_CONTEXT = POINTER(_CERT_CONTEXT) +CERT_CONTEXT = _CERT_CONTEXT +PCERT_CONTEXT = POINTER(_CERT_CONTEXT) + +class WINTRUST_SGNR_INFO_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("pcwszDisplayName", LPCWSTR), + ("psSignerInfo", POINTER(CMSG_SIGNER_INFO)), + ("chStores", DWORD), + ("pahStores", POINTER(HCERTSTORE)), + ] +WINTRUST_SGNR_INFO = WINTRUST_SGNR_INFO_ +PWINTRUST_SGNR_INFO = POINTER(WINTRUST_SGNR_INFO_) + +class WINTRUST_CERT_INFO_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("pcwszDisplayName", LPCWSTR), + ("psCertContext", POINTER(CERT_CONTEXT)), + ("chStores", DWORD), + ("pahStores", POINTER(HCERTSTORE)), + ("dwFlags", DWORD), + ("psftVerifyAsOf", POINTER(FILETIME)), + ] +WINTRUST_CERT_INFO = WINTRUST_CERT_INFO_ +PWINTRUST_CERT_INFO = POINTER(WINTRUST_CERT_INFO_) + +class _TMP_WINTRUST_UNION_TYPE(Union): + _fields_ = [ + ("pFile", POINTER(WINTRUST_FILE_INFO)), + ("pCatalog", POINTER(WINTRUST_CATALOG_INFO)), + ("pBlob", POINTER(WINTRUST_BLOB_INFO)), + ("pSgnr", POINTER(WINTRUST_SGNR_INFO)), + ("pCert", POINTER(WINTRUST_CERT_INFO)), + ] +TMP_WINTRUST_UNION_TYPE = _TMP_WINTRUST_UNION_TYPE + +class _WINTRUST_DATA(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("pPolicyCallbackData", LPVOID), + ("pSIPClientData", LPVOID), + ("dwUIChoice", DWORD), + ("fdwRevocationChecks", DWORD), + ("dwUnionChoice", DWORD), + ("tmp_union", TMP_WINTRUST_UNION_TYPE), + ("dwStateAction", DWORD), + ("hWVTStateData", HANDLE), + ("pwszURLReference", POINTER(WCHAR)), + ("dwProvFlags", DWORD), + ("dwUIContext", DWORD), + ] +PWINTRUST_DATA = POINTER(_WINTRUST_DATA) +WINTRUST_DATA = _WINTRUST_DATA + +class _CRYPT_SIGN_MESSAGE_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("dwMsgEncodingType", DWORD), + ("pSigningCert", PCCERT_CONTEXT), + ("HashAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("pvHashAuxInfo", PVOID), + ("cMsgCert", DWORD), + ("rgpMsgCert", POINTER(PCCERT_CONTEXT)), + ("cMsgCrl", DWORD), + ("rgpMsgCrl", POINTER(PCCRL_CONTEXT)), + ("cAuthAttr", DWORD), + ("rgAuthAttr", PCRYPT_ATTRIBUTE), + ("cUnauthAttr", DWORD), + ("rgUnauthAttr", PCRYPT_ATTRIBUTE), + ("dwFlags", DWORD), + ("dwInnerContentType", DWORD), + ("HashEncryptionAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("pvHashEncryptionAuxInfo", PVOID), + ] +CRYPT_SIGN_MESSAGE_PARA = _CRYPT_SIGN_MESSAGE_PARA +PCRYPT_SIGN_MESSAGE_PARA = POINTER(_CRYPT_SIGN_MESSAGE_PARA) + +class _CRYPT_HASH_MESSAGE_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("dwMsgEncodingType", DWORD), + ("hCryptProv", HCRYPTPROV_LEGACY), + ("HashAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("pvHashAuxInfo", PVOID), + ] +PCRYPT_HASH_MESSAGE_PARA = POINTER(_CRYPT_HASH_MESSAGE_PARA) +CRYPT_HASH_MESSAGE_PARA = _CRYPT_HASH_MESSAGE_PARA + +class _CRYPT_KEY_VERIFY_MESSAGE_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("dwMsgEncodingType", DWORD), + ("hCryptProv", HCRYPTPROV_LEGACY), + ] +CRYPT_KEY_VERIFY_MESSAGE_PARA = _CRYPT_KEY_VERIFY_MESSAGE_PARA +PCRYPT_KEY_VERIFY_MESSAGE_PARA = POINTER(_CRYPT_KEY_VERIFY_MESSAGE_PARA) + +class _CRYPT_VERIFY_MESSAGE_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("dwMsgAndCertEncodingType", DWORD), + ("hCryptProv", HCRYPTPROV_LEGACY), + ("pfnGetSignerCertificate", PFN_CRYPT_GET_SIGNER_CERTIFICATE), + ("pvGetArg", PVOID), + ("pStrongSignPara", PCCERT_STRONG_SIGN_PARA), + ] +CRYPT_VERIFY_MESSAGE_PARA = _CRYPT_VERIFY_MESSAGE_PARA +PCRYPT_VERIFY_MESSAGE_PARA = POINTER(_CRYPT_VERIFY_MESSAGE_PARA) + +class _SPC_SERIALIZED_OBJECT(Structure): + _fields_ = [ + ("ClassId", SPC_UUID), + ("SerializedData", CRYPT_DATA_BLOB), + ] +SPC_SERIALIZED_OBJECT = _SPC_SERIALIZED_OBJECT +PSPC_SERIALIZED_OBJECT = POINTER(_SPC_SERIALIZED_OBJECT) + +class _TMP_SPC_LINK_UNION(Union): + _fields_ = [ + ("pwszUrl", LPWSTR), + ("Moniker", SPC_SERIALIZED_OBJECT), + ("pwszFile", LPWSTR), + ] +TMP_SPC_LINK_UNION = _TMP_SPC_LINK_UNION + +class SPC_LINK_(Structure): + _fields_ = [ + ("dwLinkChoice", DWORD), + ("u", TMP_SPC_LINK_UNION), + ] +PSPC_LINK = POINTER(SPC_LINK_) +SPC_LINK = SPC_LINK_ + +class _SPC_SP_OPUS_INFO(Structure): + _fields_ = [ + ("pwszProgramName", LPCWSTR), + ("pMoreInfo", POINTER(SPC_LINK)), + ("pPublisherInfo", POINTER(SPC_LINK)), + ] +PSPC_SP_OPUS_INFO = POINTER(_SPC_SP_OPUS_INFO) +SPC_SP_OPUS_INFO = _SPC_SP_OPUS_INFO + +class _CERT_TRUST_STATUS(Structure): + _fields_ = [ + ("dwErrorStatus", DWORD), + ("dwInfoStatus", DWORD), + ] +PCERT_TRUST_STATUS = POINTER(_CERT_TRUST_STATUS) +CERT_TRUST_STATUS = _CERT_TRUST_STATUS + +class _CERT_TRUST_LIST_INFO(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("pCtlEntry", PCTL_ENTRY), + ("pCtlContext", PCCTL_CONTEXT), + ] +PCERT_TRUST_LIST_INFO = POINTER(_CERT_TRUST_LIST_INFO) +CERT_TRUST_LIST_INFO = _CERT_TRUST_LIST_INFO + +class _CERT_REVOCATION_CRL_INFO(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("pBaseCrlContext", PCCRL_CONTEXT), + ("pDeltaCrlContext", PCCRL_CONTEXT), + ("pCrlEntry", PCRL_ENTRY), + ("fDeltaCrlEntry", BOOL), + ] +CERT_REVOCATION_CRL_INFO = _CERT_REVOCATION_CRL_INFO +PCERT_REVOCATION_CRL_INFO = POINTER(_CERT_REVOCATION_CRL_INFO) + +class _CERT_REVOCATION_INFO(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("dwRevocationResult", DWORD), + ("pszRevocationOid", LPCSTR), + ("pvOidSpecificInfo", LPVOID), + ("fHasFreshnessTime", BOOL), + ("dwFreshnessTime", DWORD), + ("pCrlInfo", PCERT_REVOCATION_CRL_INFO), + ] +CERT_REVOCATION_INFO = _CERT_REVOCATION_INFO +PCERT_REVOCATION_INFO = POINTER(_CERT_REVOCATION_INFO) + +class _CERT_CHAIN_ELEMENT(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("pCertContext", PCCERT_CONTEXT), + ("TrustStatus", CERT_TRUST_STATUS), + ("pRevocationInfo", PCERT_REVOCATION_INFO), + ("pIssuanceUsage", PCERT_ENHKEY_USAGE), + ("pApplicationUsage", PCERT_ENHKEY_USAGE), + ("pwszExtendedErrorInfo", LPCWSTR), + ] +PCERT_CHAIN_ELEMENT = POINTER(_CERT_CHAIN_ELEMENT) +CERT_CHAIN_ELEMENT = _CERT_CHAIN_ELEMENT +PCCERT_CHAIN_ELEMENT = POINTER(_CERT_CHAIN_ELEMENT) + +class _CERT_SIMPLE_CHAIN(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("TrustStatus", CERT_TRUST_STATUS), + ("cElement", DWORD), + ("rgpElement", POINTER(PCERT_CHAIN_ELEMENT)), + ("pTrustListInfo", PCERT_TRUST_LIST_INFO), + ("fHasRevocationFreshnessTime", BOOL), + ("dwRevocationFreshnessTime", DWORD), + ] +CERT_SIMPLE_CHAIN = _CERT_SIMPLE_CHAIN +PCERT_SIMPLE_CHAIN = POINTER(_CERT_SIMPLE_CHAIN) +PCCERT_SIMPLE_CHAIN = POINTER(_CERT_SIMPLE_CHAIN) + +# Self referencing struct tricks +class _CERT_CHAIN_CONTEXT(Structure): pass +CERT_CHAIN_CONTEXT = _CERT_CHAIN_CONTEXT +PCERT_CHAIN_CONTEXT = POINTER(_CERT_CHAIN_CONTEXT) +PCCERT_CHAIN_CONTEXT = POINTER(_CERT_CHAIN_CONTEXT) +_CERT_CHAIN_CONTEXT._fields_ = [ + ("cbSize", DWORD), + ("TrustStatus", CERT_TRUST_STATUS), + ("cChain", DWORD), + ("rgpChain", POINTER(PCERT_SIMPLE_CHAIN)), + ("cLowerQualityChainContext", DWORD), + ("rgpLowerQualityChainContext", POINTER(PCCERT_CHAIN_CONTEXT)), + ("fHasRevocationFreshnessTime", BOOL), + ("dwRevocationFreshnessTime", DWORD), + ("dwCreateFlags", DWORD), + ("ChainId", GUID), +] + +class _CERT_USAGE_MATCH(Structure): + _fields_ = [ + ("dwType", DWORD), + ("Usage", CERT_ENHKEY_USAGE), + ] +CERT_USAGE_MATCH = _CERT_USAGE_MATCH +PCERT_USAGE_MATCH = POINTER(_CERT_USAGE_MATCH) + +class _CERT_CHAIN_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("RequestedUsage", CERT_USAGE_MATCH), + ("RequestedIssuancePolicy", CERT_USAGE_MATCH), + ("dwUrlRetrievalTimeout", DWORD), + ("fCheckRevocationFreshnessTime", BOOL), + ("dwRevocationFreshnessTime", DWORD), + ("pftCacheResync", LPFILETIME), + ] +CERT_CHAIN_PARA = _CERT_CHAIN_PARA +PCERT_CHAIN_PARA = POINTER(_CERT_CHAIN_PARA) + +class _CERT_CHAIN_ENGINE_CONFIG(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("hRestrictedRoot", HCERTSTORE), + ("hRestrictedTrust", HCERTSTORE), + ("hRestrictedOther", HCERTSTORE), + ("cAdditionalStore", DWORD), + ("rghAdditionalStore", POINTER(HCERTSTORE)), + ("dwFlags", DWORD), + ("dwUrlRetrievalTimeout", DWORD), + ("MaximumCachedCertificates", DWORD), + ("CycleDetectionModulus", DWORD), + ] +CERT_CHAIN_ENGINE_CONFIG = _CERT_CHAIN_ENGINE_CONFIG +PCERT_CHAIN_ENGINE_CONFIG = POINTER(_CERT_CHAIN_ENGINE_CONFIG) + +class _SYSTEMTIME(Structure): + _fields_ = [ + ("wYear", WORD), + ("wMonth", WORD), + ("wDayOfWeek", WORD), + ("wDay", WORD), + ("wHour", WORD), + ("wMinute", WORD), + ("wSecond", WORD), + ("wMilliseconds", WORD), + ] +LPSYSTEMTIME = POINTER(_SYSTEMTIME) +SYSTEMTIME = _SYSTEMTIME +PSYSTEMTIME = POINTER(_SYSTEMTIME) + +class _CERT_EXTENSIONS(Structure): + _fields_ = [ + ("cExtension", DWORD), + ("rgExtension", PCERT_EXTENSION), + ] +PCERT_EXTENSIONS = POINTER(_CERT_EXTENSIONS) +CERT_EXTENSIONS = _CERT_EXTENSIONS + +class _CRYPT_KEY_PROV_PARAM(Structure): + _fields_ = [ + ("dwParam", DWORD), + ("pbData", POINTER(BYTE)), + ("cbData", DWORD), + ("dwFlags", DWORD), + ] +CRYPT_KEY_PROV_PARAM = _CRYPT_KEY_PROV_PARAM +PCRYPT_KEY_PROV_PARAM = POINTER(_CRYPT_KEY_PROV_PARAM) + +class _CRYPT_KEY_PROV_INFO(Structure): + _fields_ = [ + ("pwszContainerName", LPWSTR), + ("pwszProvName", LPWSTR), + ("dwProvType", DWORD), + ("dwFlags", DWORD), + ("cProvParam", DWORD), + ("rgProvParam", PCRYPT_KEY_PROV_PARAM), + ("dwKeySpec", DWORD), + ] +CRYPT_KEY_PROV_INFO = _CRYPT_KEY_PROV_INFO +PCRYPT_KEY_PROV_INFO = POINTER(_CRYPT_KEY_PROV_INFO) + +class _CRYPT_ENCRYPT_MESSAGE_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("dwMsgEncodingType", DWORD), + ("hCryptProv", HCRYPTPROV_LEGACY), + ("ContentEncryptionAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("pvEncryptionAuxInfo", POINTER(VOID)), + ("dwFlags", DWORD), + ("dwInnerContentType", DWORD), + ] +PCRYPT_ENCRYPT_MESSAGE_PARA = POINTER(_CRYPT_ENCRYPT_MESSAGE_PARA) +CRYPT_ENCRYPT_MESSAGE_PARA = _CRYPT_ENCRYPT_MESSAGE_PARA + +class _CRYPT_DECRYPT_MESSAGE_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("dwMsgAndCertEncodingType", DWORD), + ("cCertStore", DWORD), + ("rghCertStore", POINTER(HCERTSTORE)), + ("dwFlags", DWORD), + ] +PCRYPT_DECRYPT_MESSAGE_PARA = POINTER(_CRYPT_DECRYPT_MESSAGE_PARA) +CRYPT_DECRYPT_MESSAGE_PARA = _CRYPT_DECRYPT_MESSAGE_PARA + +class _CERT_KEY_CONTEXT(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("hCryptProv", HCRYPTPROV), + ("dwKeySpec", DWORD), + ] +CERT_KEY_CONTEXT = _CERT_KEY_CONTEXT +PCERT_KEY_CONTEXT = POINTER(_CERT_KEY_CONTEXT) + +class _CRYPT_ENCODE_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("pfnAlloc", PVOID), + ("pfnFree", PVOID), + ] +PCRYPT_ENCODE_PARA = POINTER(_CRYPT_ENCODE_PARA) +CRYPT_ENCODE_PARA = _CRYPT_ENCODE_PARA + +class _TMPUNION_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO(Union): + _fields_ = [ + ("hKeyEncryptionKey", HCRYPTKEY), + ("pvKeyEncryptionKey", PVOID), + ] +TMPUNION_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO = _TMPUNION_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO + +class _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("KeyEncryptionAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("pvKeyEncryptionAuxInfo", PVOID), + ("hCryptProv", HCRYPTPROV), + ("dwKeyChoice", DWORD), + ("DUMMYUNIONNAME", TMPUNION_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO), + ("KeyId", CRYPT_DATA_BLOB), + ("Date", FILETIME), + ("pOtherAttr", PCRYPT_ATTRIBUTE_TYPE_VALUE), + ] +PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO = POINTER(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO) +CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO = _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO + +class _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("KeyEncryptionAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("pvKeyEncryptionAuxInfo", PVOID), + ("hCryptProv", HCRYPTPROV_LEGACY), + ("RecipientPublicKey", CRYPT_BIT_BLOB), + ("RecipientId", CERT_ID), + ] +PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = POINTER(_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO) +CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO + +class _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("KeyEncryptionAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("pvKeyEncryptionAuxInfo", PVOID), + ("hCryptProv", HCRYPTPROV_LEGACY), + ("RecipientPublicKey", CRYPT_BIT_BLOB), + ("RecipientId", CERT_ID), + ] +PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = POINTER(_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO) +CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO + +class _TMPUNION_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO(Union): + _fields_ = [ + ("pEphemeralAlgorithm", PCRYPT_ALGORITHM_IDENTIFIER), + ("pSenderId", PCERT_ID), + ] +TMPUNION_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO = _TMPUNION_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO + +class _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("RecipientPublicKey", CRYPT_BIT_BLOB), + ("RecipientId", CERT_ID), + ("Date", FILETIME), + ("pOtherAttr", PCRYPT_ATTRIBUTE_TYPE_VALUE), + ] +PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO = POINTER(_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO) +CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO = _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO + +class _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("KeyEncryptionAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("pvKeyEncryptionAuxInfo", PVOID), + ("KeyWrapAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("pvKeyWrapAuxInfo", PVOID), + ("hCryptProv", HCRYPTPROV_LEGACY), + ("dwKeySpec", DWORD), + ("dwKeyChoice", DWORD), + ("DUMMYUNIONNAME", TMPUNION_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO), + ("UserKeyingMaterial", CRYPT_DATA_BLOB), + ("cRecipientEncryptedKeys", DWORD), + ("rgpRecipientEncryptedKeys", POINTER(PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO)), + ] +PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO = POINTER(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO) +CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO = _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO + +class _TMP_CMSG_RECIPIENT_ENCODE_INFO_UNION(Union): + _fields_ = [ + ("pKeyTrans", PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO), + ("pKeyAgree", PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO), + ("pMailList", PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO), + ] +TMP_CMSG_RECIPIENT_ENCODE_INFO_UNION = _TMP_CMSG_RECIPIENT_ENCODE_INFO_UNION + +class _CMSG_RECIPIENT_ENCODE_INFO(Structure): + _fields_ = [ + ("dwRecipientChoice", DWORD), + ("DUMMYUNIONNAME", TMP_CMSG_RECIPIENT_ENCODE_INFO_UNION), + ] +CMSG_RECIPIENT_ENCODE_INFO = _CMSG_RECIPIENT_ENCODE_INFO +PCMSG_RECIPIENT_ENCODE_INFO = POINTER(_CMSG_RECIPIENT_ENCODE_INFO) + +class _CMSG_ENVELOPED_ENCODE_INFO(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("hCryptProv", HCRYPTPROV_LEGACY), + ("ContentEncryptionAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("pvEncryptionAuxInfo", PVOID), + ("cRecipients", DWORD), + ("rgpRecipients", POINTER(PCERT_INFO)), + ("rgCmsRecipients", PCMSG_RECIPIENT_ENCODE_INFO), + ("cCertEncoded", DWORD), + ("rgCertEncoded", PCERT_BLOB), + ("cCrlEncoded", DWORD), + ("rgCrlEncoded", PCRL_BLOB), + ("cAttrCertEncoded", DWORD), + ("rgAttrCertEncoded", PCERT_BLOB), + ("cUnprotectedAttr", DWORD), + ("rgUnprotectedAttr", PCRYPT_ATTRIBUTE), + ] +PCMSG_ENVELOPED_ENCODE_INFO = POINTER(_CMSG_ENVELOPED_ENCODE_INFO) +CMSG_ENVELOPED_ENCODE_INFO = _CMSG_ENVELOPED_ENCODE_INFO + +class _CMSG_STREAM_INFO(Structure): + _fields_ = [ + ("cbContent", DWORD), + ("pfnStreamOutput", PVOID), + ("pvArg", PVOID), + ] +CMSG_STREAM_INFO = _CMSG_STREAM_INFO +PCMSG_STREAM_INFO = POINTER(_CMSG_STREAM_INFO) + +class _TMPUNION_CMSG_CTRL_DECRYPT_PARA(Union): + _fields_ = [ + ("hCryptProv", HCRYPTPROV), + ("hNCryptKey", NCRYPT_KEY_HANDLE), + ] +TMPUNION_CMSG_CTRL_DECRYPT_PARA = _TMPUNION_CMSG_CTRL_DECRYPT_PARA + +class _CMSG_CTRL_DECRYPT_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("DUMMYUNIONNAME", TMPUNION_CMSG_CTRL_DECRYPT_PARA), + ("dwKeySpec", DWORD), + ("dwRecipientIndex", DWORD), + ] +PCMSG_CTRL_DECRYPT_PARA = POINTER(_CMSG_CTRL_DECRYPT_PARA) +CMSG_CTRL_DECRYPT_PARA = _CMSG_CTRL_DECRYPT_PARA + +class _SPC_PE_IMAGE_DATA(Structure): + _fields_ = [ + ("Flags", CRYPT_BIT_BLOB), + ("pFile", PSPC_LINK), + ] +PSPC_PE_IMAGE_DATA = POINTER(_SPC_PE_IMAGE_DATA) +SPC_PE_IMAGE_DATA = _SPC_PE_IMAGE_DATA + +class _SPC_INDIRECT_DATA_CONTENT(Structure): + _fields_ = [ + ("Data", CRYPT_ATTRIBUTE_TYPE_VALUE), + ("DigestAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("Digest", CRYPT_HASH_BLOB), + ] +PSPC_INDIRECT_DATA_CONTENT = POINTER(_SPC_INDIRECT_DATA_CONTENT) +SPC_INDIRECT_DATA_CONTENT = _SPC_INDIRECT_DATA_CONTENT + +class _PUBLICKEYSTRUC(Structure): + _fields_ = [ + ("bType", BYTE), + ("bVersion", BYTE), + ("reserved", WORD), + ("aiKeyAlg", ALG_ID), + ] +PUBLICKEYSTRUC = _PUBLICKEYSTRUC +BLOBHEADER = _PUBLICKEYSTRUC + +class _STRUCT_PLAINTEXTKEYBLOB(Structure): + _fields_ = [ + ("hdr", BLOBHEADER), + ("dwKeySize", DWORD), + ("rgbKeyData", BYTE * (0)), + ] +STRUCT_PLAINTEXTKEYBLOB = _STRUCT_PLAINTEXTKEYBLOB +PSTRUCT_PLAINTEXTKEYBLOB = POINTER(_STRUCT_PLAINTEXTKEYBLOB) + +class _EXCEPTION_DEBUG_INFO(Structure): + _fields_ = [ + ("ExceptionRecord", EXCEPTION_RECORD), + ("dwFirstChance", DWORD), + ] +LPEXCEPTION_DEBUG_INFO = POINTER(_EXCEPTION_DEBUG_INFO) +EXCEPTION_DEBUG_INFO = _EXCEPTION_DEBUG_INFO + +class _CREATE_THREAD_DEBUG_INFO(Structure): + _fields_ = [ + ("hThread", HANDLE), + ("lpThreadLocalBase", LPVOID), + ("lpStartAddress", LPTHREAD_START_ROUTINE), + ] +LPCREATE_THREAD_DEBUG_INFO = POINTER(_CREATE_THREAD_DEBUG_INFO) +CREATE_THREAD_DEBUG_INFO = _CREATE_THREAD_DEBUG_INFO + +class _CREATE_PROCESS_DEBUG_INFO(Structure): + _fields_ = [ + ("hFile", HANDLE), + ("hProcess", HANDLE), + ("hThread", HANDLE), + ("lpBaseOfImage", LPVOID), + ("dwDebugInfoFileOffset", DWORD), + ("nDebugInfoSize", DWORD), + ("lpThreadLocalBase", LPVOID), + ("lpStartAddress", LPTHREAD_START_ROUTINE), + ("lpImageName", LPVOID), + ("fUnicode", WORD), + ] +CREATE_PROCESS_DEBUG_INFO = _CREATE_PROCESS_DEBUG_INFO +LPCREATE_PROCESS_DEBUG_INFO = POINTER(_CREATE_PROCESS_DEBUG_INFO) + +class _EXIT_THREAD_DEBUG_INFO(Structure): + _fields_ = [ + ("dwExitCode", DWORD), + ] +EXIT_THREAD_DEBUG_INFO = _EXIT_THREAD_DEBUG_INFO +LPEXIT_THREAD_DEBUG_INFO = POINTER(_EXIT_THREAD_DEBUG_INFO) + +class _EXIT_PROCESS_DEBUG_INFO(Structure): + _fields_ = [ + ("dwExitCode", DWORD), + ] +LPEXIT_PROCESS_DEBUG_INFO = POINTER(_EXIT_PROCESS_DEBUG_INFO) +EXIT_PROCESS_DEBUG_INFO = _EXIT_PROCESS_DEBUG_INFO + +class _LOAD_DLL_DEBUG_INFO(Structure): + _fields_ = [ + ("hFile", HANDLE), + ("lpBaseOfDll", LPVOID), + ("dwDebugInfoFileOffset", DWORD), + ("nDebugInfoSize", DWORD), + ("lpImageName", LPVOID), + ("fUnicode", WORD), + ] +LPLOAD_DLL_DEBUG_INFO = POINTER(_LOAD_DLL_DEBUG_INFO) +LOAD_DLL_DEBUG_INFO = _LOAD_DLL_DEBUG_INFO + +# typedef struct _LOAD_DLL_DEBUG_INFO { +# HANDLE hFile; +# LPVOID lpBaseOfDll; +# DWORD dwDebugInfoFileOffset; +# DWORD nDebugInfoSize; +# LPVOID lpImageName; +# WORD fUnicode; +# } LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO; + +class _LOAD_DLL_DEBUG_INFO(_LOAD_DLL_DEBUG_INFO): + def hello(self): + return "hello" +LPLOAD_DLL_DEBUG_INFO = POINTER(_LOAD_DLL_DEBUG_INFO) +LOAD_DLL_DEBUG_INFO = _LOAD_DLL_DEBUG_INFO +class _UNLOAD_DLL_DEBUG_INFO(Structure): + _fields_ = [ + ("lpBaseOfDll", LPVOID), + ] +UNLOAD_DLL_DEBUG_INFO = _UNLOAD_DLL_DEBUG_INFO +LPUNLOAD_DLL_DEBUG_INFO = POINTER(_UNLOAD_DLL_DEBUG_INFO) + +class _OUTPUT_DEBUG_STRING_INFO(Structure): + _fields_ = [ + ("lpDebugStringData", LPSTR), + ("fUnicode", WORD), + ("nDebugStringLength", WORD), + ] +OUTPUT_DEBUG_STRING_INFO = _OUTPUT_DEBUG_STRING_INFO +LPOUTPUT_DEBUG_STRING_INFO = POINTER(_OUTPUT_DEBUG_STRING_INFO) + +class _RIP_INFO(Structure): + _fields_ = [ + ("dwError", DWORD), + ("dwType", DWORD), + ] +LPRIP_INFO = POINTER(_RIP_INFO) +RIP_INFO = _RIP_INFO + +class _TMP_UNION_DEBUG_INFO(Union): + _fields_ = [ + ("Exception", EXCEPTION_DEBUG_INFO), + ("CreateThread", CREATE_THREAD_DEBUG_INFO), + ("CreateProcessInfo", CREATE_PROCESS_DEBUG_INFO), + ("ExitThread", EXIT_THREAD_DEBUG_INFO), + ("ExitProcess", EXIT_PROCESS_DEBUG_INFO), + ("LoadDll", LOAD_DLL_DEBUG_INFO), + ("UnloadDll", UNLOAD_DLL_DEBUG_INFO), + ("DebugString", OUTPUT_DEBUG_STRING_INFO), + ("RipInfo", RIP_INFO), + ] +TMP_UNION_DEBUG_INFO = _TMP_UNION_DEBUG_INFO + +class _DEBUG_EVENT(Structure): + _fields_ = [ + ("dwDebugEventCode", DWORD), + ("dwProcessId", DWORD), + ("dwThreadId", DWORD), + ("u", _TMP_UNION_DEBUG_INFO), + ] +LPDEBUG_EVENT = POINTER(_DEBUG_EVENT) +DEBUG_EVENT = _DEBUG_EVENT + +EvtRpcLogin = EnumValue("_EVT_LOGIN_CLASS", "EvtRpcLogin", 0x1) +class _EVT_LOGIN_CLASS(EnumType): + values = [EvtRpcLogin] + mapper = FlagMapper(*values) +EVT_LOGIN_CLASS = _EVT_LOGIN_CLASS + + +EvtVarTypeNull = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeNull", 0x0) +EvtVarTypeString = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeString", 0x1) +EvtVarTypeAnsiString = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeAnsiString", 0x2) +EvtVarTypeSByte = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeSByte", 0x3) +EvtVarTypeByte = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeByte", 0x4) +EvtVarTypeInt16 = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeInt16", 0x5) +EvtVarTypeUInt16 = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeUInt16", 0x6) +EvtVarTypeInt32 = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeInt32", 0x7) +EvtVarTypeUInt32 = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeUInt32", 0x8) +EvtVarTypeInt64 = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeInt64", 0x9) +EvtVarTypeUInt64 = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeUInt64", 0xa) +EvtVarTypeSingle = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeSingle", 0xb) +EvtVarTypeDouble = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeDouble", 0xc) +EvtVarTypeBoolean = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeBoolean", 0xd) +EvtVarTypeBinary = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeBinary", 0xe) +EvtVarTypeGuid = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeGuid", 0xf) +EvtVarTypeSizeT = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeSizeT", 0x10) +EvtVarTypeFileTime = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeFileTime", 0x11) +EvtVarTypeSysTime = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeSysTime", 0x12) +EvtVarTypeSid = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeSid", 0x13) +EvtVarTypeHexInt32 = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeHexInt32", 0x14) +EvtVarTypeHexInt64 = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeHexInt64", 0x15) +EvtVarTypeEvtHandle = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeEvtHandle", 0x20) +EvtVarTypeEvtXml = EnumValue("_EVT_VARIANT_TYPE", "EvtVarTypeEvtXml", 0x23) +class _EVT_VARIANT_TYPE(EnumType): + values = [EvtVarTypeNull, EvtVarTypeString, EvtVarTypeAnsiString, EvtVarTypeSByte, EvtVarTypeByte, EvtVarTypeInt16, EvtVarTypeUInt16, EvtVarTypeInt32, EvtVarTypeUInt32, EvtVarTypeInt64, EvtVarTypeUInt64, EvtVarTypeSingle, EvtVarTypeDouble, EvtVarTypeBoolean, EvtVarTypeBinary, EvtVarTypeGuid, EvtVarTypeSizeT, EvtVarTypeFileTime, EvtVarTypeSysTime, EvtVarTypeSid, EvtVarTypeHexInt32, EvtVarTypeHexInt64, EvtVarTypeEvtHandle, EvtVarTypeEvtXml] + mapper = FlagMapper(*values) +EVT_VARIANT_TYPE = _EVT_VARIANT_TYPE + + +EvtSeekRelativeToFirst = EnumValue("_EVT_SEEK_FLAGS", "EvtSeekRelativeToFirst", 0x1) +EvtSeekRelativeToLast = EnumValue("_EVT_SEEK_FLAGS", "EvtSeekRelativeToLast", 0x2) +EvtSeekRelativeToCurrent = EnumValue("_EVT_SEEK_FLAGS", "EvtSeekRelativeToCurrent", 0x3) +EvtSeekRelativeToBookmark = EnumValue("_EVT_SEEK_FLAGS", "EvtSeekRelativeToBookmark", 0x4) +EvtSeekOriginMask = EnumValue("_EVT_SEEK_FLAGS", "EvtSeekOriginMask", 0x7) +EvtSeekStrict = EnumValue("_EVT_SEEK_FLAGS", "EvtSeekStrict", 0x10000) +class _EVT_SEEK_FLAGS(EnumType): + values = [EvtSeekRelativeToFirst, EvtSeekRelativeToLast, EvtSeekRelativeToCurrent, EvtSeekRelativeToBookmark, EvtSeekOriginMask, EvtSeekStrict] + mapper = FlagMapper(*values) +EVT_SEEK_FLAGS = _EVT_SEEK_FLAGS + + +EvtRenderContextValues = EnumValue("_EVT_RENDER_CONTEXT_FLAGS", "EvtRenderContextValues", 0x0) +EvtRenderContextSystem = EnumValue("_EVT_RENDER_CONTEXT_FLAGS", "EvtRenderContextSystem", 0x1) +EvtRenderContextUser = EnumValue("_EVT_RENDER_CONTEXT_FLAGS", "EvtRenderContextUser", 0x2) +class _EVT_RENDER_CONTEXT_FLAGS(EnumType): + values = [EvtRenderContextValues, EvtRenderContextSystem, EvtRenderContextUser] + mapper = FlagMapper(*values) +EVT_RENDER_CONTEXT_FLAGS = _EVT_RENDER_CONTEXT_FLAGS + + +EvtSystemProviderName = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemProviderName", 0x0) +EvtSystemProviderGuid = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemProviderGuid", 0x1) +EvtSystemEventID = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemEventID", 0x2) +EvtSystemQualifiers = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemQualifiers", 0x3) +EvtSystemLevel = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemLevel", 0x4) +EvtSystemTask = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemTask", 0x5) +EvtSystemOpcode = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemOpcode", 0x6) +EvtSystemKeywords = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemKeywords", 0x7) +EvtSystemTimeCreated = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemTimeCreated", 0x8) +EvtSystemEventRecordId = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemEventRecordId", 0x9) +EvtSystemActivityID = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemActivityID", 0xa) +EvtSystemRelatedActivityID = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemRelatedActivityID", 0xb) +EvtSystemProcessID = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemProcessID", 0xc) +EvtSystemThreadID = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemThreadID", 0xd) +EvtSystemChannel = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemChannel", 0xe) +EvtSystemComputer = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemComputer", 0xf) +EvtSystemUserID = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemUserID", 0x10) +EvtSystemVersion = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemVersion", 0x11) +EvtSystemPropertyIdEND = EnumValue("_EVT_SYSTEM_PROPERTY_ID", "EvtSystemPropertyIdEND", 0x12) +class _EVT_SYSTEM_PROPERTY_ID(EnumType): + values = [EvtSystemProviderName, EvtSystemProviderGuid, EvtSystemEventID, EvtSystemQualifiers, EvtSystemLevel, EvtSystemTask, EvtSystemOpcode, EvtSystemKeywords, EvtSystemTimeCreated, EvtSystemEventRecordId, EvtSystemActivityID, EvtSystemRelatedActivityID, EvtSystemProcessID, EvtSystemThreadID, EvtSystemChannel, EvtSystemComputer, EvtSystemUserID, EvtSystemVersion, EvtSystemPropertyIdEND] + mapper = FlagMapper(*values) +EVT_SYSTEM_PROPERTY_ID = _EVT_SYSTEM_PROPERTY_ID + + +EvtRenderEventValues = EnumValue("_EVT_RENDER_FLAGS", "EvtRenderEventValues", 0x0) +EvtRenderEventXml = EnumValue("_EVT_RENDER_FLAGS", "EvtRenderEventXml", 0x1) +EvtRenderBookmark = EnumValue("_EVT_RENDER_FLAGS", "EvtRenderBookmark", 0x2) +class _EVT_RENDER_FLAGS(EnumType): + values = [EvtRenderEventValues, EvtRenderEventXml, EvtRenderBookmark] + mapper = FlagMapper(*values) +EVT_RENDER_FLAGS = _EVT_RENDER_FLAGS + + +EvtQueryChannelPath = EnumValue("_EVT_QUERY_FLAGS", "EvtQueryChannelPath", 0x1) +EvtQueryFilePath = EnumValue("_EVT_QUERY_FLAGS", "EvtQueryFilePath", 0x2) +EvtQueryForwardDirection = EnumValue("_EVT_QUERY_FLAGS", "EvtQueryForwardDirection", 0x100) +EvtQueryReverseDirection = EnumValue("_EVT_QUERY_FLAGS", "EvtQueryReverseDirection", 0x200) +EvtQueryTolerateQueryErrors = EnumValue("_EVT_QUERY_FLAGS", "EvtQueryTolerateQueryErrors", 0x1000) +class _EVT_QUERY_FLAGS(EnumType): + values = [EvtQueryChannelPath, EvtQueryFilePath, EvtQueryForwardDirection, EvtQueryReverseDirection, EvtQueryTolerateQueryErrors] + mapper = FlagMapper(*values) +EVT_QUERY_FLAGS = _EVT_QUERY_FLAGS + + +EvtLogCreationTime = EnumValue("_EVT_LOG_PROPERTY_ID", "EvtLogCreationTime", 0x0) +EvtLogLastAccessTime = EnumValue("_EVT_LOG_PROPERTY_ID", "EvtLogLastAccessTime", 0x1) +EvtLogLastWriteTime = EnumValue("_EVT_LOG_PROPERTY_ID", "EvtLogLastWriteTime", 0x2) +EvtLogFileSize = EnumValue("_EVT_LOG_PROPERTY_ID", "EvtLogFileSize", 0x3) +EvtLogAttributes = EnumValue("_EVT_LOG_PROPERTY_ID", "EvtLogAttributes", 0x4) +EvtLogNumberOfLogRecords = EnumValue("_EVT_LOG_PROPERTY_ID", "EvtLogNumberOfLogRecords", 0x5) +EvtLogOldestRecordNumber = EnumValue("_EVT_LOG_PROPERTY_ID", "EvtLogOldestRecordNumber", 0x6) +EvtLogFull = EnumValue("_EVT_LOG_PROPERTY_ID", "EvtLogFull", 0x7) +class _EVT_LOG_PROPERTY_ID(EnumType): + values = [EvtLogCreationTime, EvtLogLastAccessTime, EvtLogLastWriteTime, EvtLogFileSize, EvtLogAttributes, EvtLogNumberOfLogRecords, EvtLogOldestRecordNumber, EvtLogFull] + mapper = FlagMapper(*values) +EVT_LOG_PROPERTY_ID = _EVT_LOG_PROPERTY_ID + + +EvtOpenChannelPath = EnumValue("_EVT_OPEN_LOG_FLAGS", "EvtOpenChannelPath", 0x1) +EvtOpenFilePath = EnumValue("_EVT_OPEN_LOG_FLAGS", "EvtOpenFilePath", 0x2) +class _EVT_OPEN_LOG_FLAGS(EnumType): + values = [EvtOpenChannelPath, EvtOpenFilePath] + mapper = FlagMapper(*values) +EVT_OPEN_LOG_FLAGS = _EVT_OPEN_LOG_FLAGS + + +EvtChannelConfigEnabled = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelConfigEnabled", 0x0) +EvtChannelConfigIsolation = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelConfigIsolation", 0x1) +EvtChannelConfigType = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelConfigType", 0x2) +EvtChannelConfigOwningPublisher = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelConfigOwningPublisher", 0x3) +EvtChannelConfigClassicEventlog = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelConfigClassicEventlog", 0x4) +EvtChannelConfigAccess = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelConfigAccess", 0x5) +EvtChannelLoggingConfigRetention = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelLoggingConfigRetention", 0x6) +EvtChannelLoggingConfigAutoBackup = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelLoggingConfigAutoBackup", 0x7) +EvtChannelLoggingConfigMaxSize = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelLoggingConfigMaxSize", 0x8) +EvtChannelLoggingConfigLogFilePath = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelLoggingConfigLogFilePath", 0x9) +EvtChannelPublishingConfigLevel = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelPublishingConfigLevel", 0xa) +EvtChannelPublishingConfigKeywords = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelPublishingConfigKeywords", 0xb) +EvtChannelPublishingConfigControlGuid = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelPublishingConfigControlGuid", 0xc) +EvtChannelPublishingConfigBufferSize = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelPublishingConfigBufferSize", 0xd) +EvtChannelPublishingConfigMinBuffers = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelPublishingConfigMinBuffers", 0xe) +EvtChannelPublishingConfigMaxBuffers = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelPublishingConfigMaxBuffers", 0xf) +EvtChannelPublishingConfigLatency = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelPublishingConfigLatency", 0x10) +EvtChannelPublishingConfigClockType = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelPublishingConfigClockType", 0x11) +EvtChannelPublishingConfigSidType = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelPublishingConfigSidType", 0x12) +EvtChannelPublisherList = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelPublisherList", 0x13) +EvtChannelPublishingConfigFileMax = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelPublishingConfigFileMax", 0x14) +EvtChannelConfigPropertyIdEND = EnumValue("_EVT_CHANNEL_CONFIG_PROPERTY_ID", "EvtChannelConfigPropertyIdEND", 0x15) +class _EVT_CHANNEL_CONFIG_PROPERTY_ID(EnumType): + values = [EvtChannelConfigEnabled, EvtChannelConfigIsolation, EvtChannelConfigType, EvtChannelConfigOwningPublisher, EvtChannelConfigClassicEventlog, EvtChannelConfigAccess, EvtChannelLoggingConfigRetention, EvtChannelLoggingConfigAutoBackup, EvtChannelLoggingConfigMaxSize, EvtChannelLoggingConfigLogFilePath, EvtChannelPublishingConfigLevel, EvtChannelPublishingConfigKeywords, EvtChannelPublishingConfigControlGuid, EvtChannelPublishingConfigBufferSize, EvtChannelPublishingConfigMinBuffers, EvtChannelPublishingConfigMaxBuffers, EvtChannelPublishingConfigLatency, EvtChannelPublishingConfigClockType, EvtChannelPublishingConfigSidType, EvtChannelPublisherList, EvtChannelPublishingConfigFileMax, EvtChannelConfigPropertyIdEND] + mapper = FlagMapper(*values) +EVT_CHANNEL_CONFIG_PROPERTY_ID = _EVT_CHANNEL_CONFIG_PROPERTY_ID + + +EvtChannelTypeAdmin = EnumValue("_EVT_CHANNEL_TYPE", "EvtChannelTypeAdmin", 0x0) +EvtChannelTypeOperational = EnumValue("_EVT_CHANNEL_TYPE", "EvtChannelTypeOperational", 0x1) +EvtChannelTypeAnalytic = EnumValue("_EVT_CHANNEL_TYPE", "EvtChannelTypeAnalytic", 0x2) +EvtChannelTypeDebug = EnumValue("_EVT_CHANNEL_TYPE", "EvtChannelTypeDebug", 0x3) +class _EVT_CHANNEL_TYPE(EnumType): + values = [EvtChannelTypeAdmin, EvtChannelTypeOperational, EvtChannelTypeAnalytic, EvtChannelTypeDebug] + mapper = FlagMapper(*values) +EVT_CHANNEL_TYPE = _EVT_CHANNEL_TYPE + + +EvtChannelIsolationTypeApplication = EnumValue("_EVT_CHANNEL_ISOLATION_TYPE", "EvtChannelIsolationTypeApplication", 0x0) +EvtChannelIsolationTypeSystem = EnumValue("_EVT_CHANNEL_ISOLATION_TYPE", "EvtChannelIsolationTypeSystem", 0x1) +EvtChannelIsolationTypeCustom = EnumValue("_EVT_CHANNEL_ISOLATION_TYPE", "EvtChannelIsolationTypeCustom", 0x2) +class _EVT_CHANNEL_ISOLATION_TYPE(EnumType): + values = [EvtChannelIsolationTypeApplication, EvtChannelIsolationTypeSystem, EvtChannelIsolationTypeCustom] + mapper = FlagMapper(*values) +EVT_CHANNEL_ISOLATION_TYPE = _EVT_CHANNEL_ISOLATION_TYPE + + +EventMetadataEventID = EnumValue("_EVT_EVENT_METADATA_PROPERTY_ID", "EventMetadataEventID", 0x0) +EventMetadataEventVersion = EnumValue("_EVT_EVENT_METADATA_PROPERTY_ID", "EventMetadataEventVersion", 0x1) +EventMetadataEventChannel = EnumValue("_EVT_EVENT_METADATA_PROPERTY_ID", "EventMetadataEventChannel", 0x2) +EventMetadataEventLevel = EnumValue("_EVT_EVENT_METADATA_PROPERTY_ID", "EventMetadataEventLevel", 0x3) +EventMetadataEventOpcode = EnumValue("_EVT_EVENT_METADATA_PROPERTY_ID", "EventMetadataEventOpcode", 0x4) +EventMetadataEventTask = EnumValue("_EVT_EVENT_METADATA_PROPERTY_ID", "EventMetadataEventTask", 0x5) +EventMetadataEventKeyword = EnumValue("_EVT_EVENT_METADATA_PROPERTY_ID", "EventMetadataEventKeyword", 0x6) +EventMetadataEventMessageID = EnumValue("_EVT_EVENT_METADATA_PROPERTY_ID", "EventMetadataEventMessageID", 0x7) +EventMetadataEventTemplate = EnumValue("_EVT_EVENT_METADATA_PROPERTY_ID", "EventMetadataEventTemplate", 0x8) +EvtEventMetadataPropertyIdEND = EnumValue("_EVT_EVENT_METADATA_PROPERTY_ID", "EvtEventMetadataPropertyIdEND", 0x9) +class _EVT_EVENT_METADATA_PROPERTY_ID(EnumType): + values = [EventMetadataEventID, EventMetadataEventVersion, EventMetadataEventChannel, EventMetadataEventLevel, EventMetadataEventOpcode, EventMetadataEventTask, EventMetadataEventKeyword, EventMetadataEventMessageID, EventMetadataEventTemplate, EvtEventMetadataPropertyIdEND] + mapper = FlagMapper(*values) +EVT_EVENT_METADATA_PROPERTY_ID = _EVT_EVENT_METADATA_PROPERTY_ID + + +EvtPublisherMetadataPublisherGuid = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataPublisherGuid", 0x0) +EvtPublisherMetadataResourceFilePath = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataResourceFilePath", 0x1) +EvtPublisherMetadataParameterFilePath = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataParameterFilePath", 0x2) +EvtPublisherMetadataMessageFilePath = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataMessageFilePath", 0x3) +EvtPublisherMetadataHelpLink = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataHelpLink", 0x4) +EvtPublisherMetadataPublisherMessageID = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataPublisherMessageID", 0x5) +EvtPublisherMetadataChannelReferences = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataChannelReferences", 0x6) +EvtPublisherMetadataChannelReferencePath = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataChannelReferencePath", 0x7) +EvtPublisherMetadataChannelReferenceIndex = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataChannelReferenceIndex", 0x8) +EvtPublisherMetadataChannelReferenceID = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataChannelReferenceID", 0x9) +EvtPublisherMetadataChannelReferenceFlags = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataChannelReferenceFlags", 0xa) +EvtPublisherMetadataChannelReferenceMessageID = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataChannelReferenceMessageID", 0xb) +EvtPublisherMetadataLevels = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataLevels", 0xc) +EvtPublisherMetadataLevelName = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataLevelName", 0xd) +EvtPublisherMetadataLevelValue = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataLevelValue", 0xe) +EvtPublisherMetadataLevelMessageID = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataLevelMessageID", 0xf) +EvtPublisherMetadataTasks = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataTasks", 0x10) +EvtPublisherMetadataTaskName = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataTaskName", 0x11) +EvtPublisherMetadataTaskEventGuid = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataTaskEventGuid", 0x12) +EvtPublisherMetadataTaskValue = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataTaskValue", 0x13) +EvtPublisherMetadataTaskMessageID = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataTaskMessageID", 0x14) +EvtPublisherMetadataOpcodes = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataOpcodes", 0x15) +EvtPublisherMetadataOpcodeName = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataOpcodeName", 0x16) +EvtPublisherMetadataOpcodeValue = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataOpcodeValue", 0x17) +EvtPublisherMetadataOpcodeMessageID = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataOpcodeMessageID", 0x18) +EvtPublisherMetadataKeywords = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataKeywords", 0x19) +EvtPublisherMetadataKeywordName = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataKeywordName", 0x1a) +EvtPublisherMetadataKeywordValue = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataKeywordValue", 0x1b) +EvtPublisherMetadataKeywordMessageID = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataKeywordMessageID", 0x1c) +EvtPublisherMetadataPropertyIdEND = EnumValue("_EVT_PUBLISHER_METADATA_PROPERTY_ID", "EvtPublisherMetadataPropertyIdEND", 0x1d) +class _EVT_PUBLISHER_METADATA_PROPERTY_ID(EnumType): + values = [EvtPublisherMetadataPublisherGuid, EvtPublisherMetadataResourceFilePath, EvtPublisherMetadataParameterFilePath, EvtPublisherMetadataMessageFilePath, EvtPublisherMetadataHelpLink, EvtPublisherMetadataPublisherMessageID, EvtPublisherMetadataChannelReferences, EvtPublisherMetadataChannelReferencePath, EvtPublisherMetadataChannelReferenceIndex, EvtPublisherMetadataChannelReferenceID, EvtPublisherMetadataChannelReferenceFlags, EvtPublisherMetadataChannelReferenceMessageID, EvtPublisherMetadataLevels, EvtPublisherMetadataLevelName, EvtPublisherMetadataLevelValue, EvtPublisherMetadataLevelMessageID, EvtPublisherMetadataTasks, EvtPublisherMetadataTaskName, EvtPublisherMetadataTaskEventGuid, EvtPublisherMetadataTaskValue, EvtPublisherMetadataTaskMessageID, EvtPublisherMetadataOpcodes, EvtPublisherMetadataOpcodeName, EvtPublisherMetadataOpcodeValue, EvtPublisherMetadataOpcodeMessageID, EvtPublisherMetadataKeywords, EvtPublisherMetadataKeywordName, EvtPublisherMetadataKeywordValue, EvtPublisherMetadataKeywordMessageID, EvtPublisherMetadataPropertyIdEND] + mapper = FlagMapper(*values) +EVT_PUBLISHER_METADATA_PROPERTY_ID = _EVT_PUBLISHER_METADATA_PROPERTY_ID + + +EvtFormatMessageEvent = EnumValue("_EVT_FORMAT_MESSAGE_FLAGS", "EvtFormatMessageEvent", 0x1) +EvtFormatMessageLevel = EnumValue("_EVT_FORMAT_MESSAGE_FLAGS", "EvtFormatMessageLevel", 0x2) +EvtFormatMessageTask = EnumValue("_EVT_FORMAT_MESSAGE_FLAGS", "EvtFormatMessageTask", 0x3) +EvtFormatMessageOpcode = EnumValue("_EVT_FORMAT_MESSAGE_FLAGS", "EvtFormatMessageOpcode", 0x4) +EvtFormatMessageKeyword = EnumValue("_EVT_FORMAT_MESSAGE_FLAGS", "EvtFormatMessageKeyword", 0x5) +EvtFormatMessageChannel = EnumValue("_EVT_FORMAT_MESSAGE_FLAGS", "EvtFormatMessageChannel", 0x6) +EvtFormatMessageProvider = EnumValue("_EVT_FORMAT_MESSAGE_FLAGS", "EvtFormatMessageProvider", 0x7) +EvtFormatMessageId = EnumValue("_EVT_FORMAT_MESSAGE_FLAGS", "EvtFormatMessageId", 0x8) +EvtFormatMessageXml = EnumValue("_EVT_FORMAT_MESSAGE_FLAGS", "EvtFormatMessageXml", 0x9) +class _EVT_FORMAT_MESSAGE_FLAGS(EnumType): + values = [EvtFormatMessageEvent, EvtFormatMessageLevel, EvtFormatMessageTask, EvtFormatMessageOpcode, EvtFormatMessageKeyword, EvtFormatMessageChannel, EvtFormatMessageProvider, EvtFormatMessageId, EvtFormatMessageXml] + mapper = FlagMapper(*values) +EVT_FORMAT_MESSAGE_FLAGS = _EVT_FORMAT_MESSAGE_FLAGS + + +class _EVENTLOGRECORD(Structure): + _fields_ = [ + ("Length", DWORD), + ("Reserved", DWORD), + ("RecordNumber", DWORD), + ("TimeGenerated", DWORD), + ("TimeWritten", DWORD), + ("EventID", DWORD), + ("EventType", WORD), + ("NumStrings", WORD), + ("EventCategory", WORD), + ("ReservedFlags", WORD), + ("ClosingRecordNumber", DWORD), + ("StringOffset", DWORD), + ("UserSidLength", DWORD), + ("UserSidOffset", DWORD), + ("DataLength", DWORD), + ("DataOffset", DWORD), + ] +PEVENTLOGRECORD = POINTER(_EVENTLOGRECORD) +EVENTLOGRECORD = _EVENTLOGRECORD + +class _EVENTLOG_FULL_INFORMATION(Structure): + _fields_ = [ + ("dwFull", DWORD), + ] +EVENTLOG_FULL_INFORMATION = _EVENTLOG_FULL_INFORMATION +LPEVENTLOG_FULL_INFORMATION = POINTER(_EVENTLOG_FULL_INFORMATION) + +class _ANON__EVT_VARIANT_SUB_UNION_1(Union): + _fields_ = [ + ("BooleanVal", BOOL), + ("SByteVal", INT8), + ("Int16Val", INT16), + ("Int32Val", INT32), + ("Int64Val", INT64), + ("ByteVal", UINT8), + ("UInt16Val", UINT16), + ("UInt32Val", UINT32), + ("UInt64Val", UINT64), + ("SingleVal", FLOAT), + ("DoubleVal", DOUBLE), + ("FileTimeVal", ULONGLONG), + ("SysTimeVal", POINTER(SYSTEMTIME)), + ("GuidVal", POINTER(GUID)), + ("StringVal", LPCWSTR), + ("AnsiStringVal", LPCSTR), + ("BinaryVal", PBYTE), + ("SidVal", PSID), + ("SizeTVal", SIZE_T), + ("BooleanArr", POINTER(BOOL)), + ("SByteArr", POINTER(INT8)), + ("Int16Arr", POINTER(INT16)), + ("Int32Arr", POINTER(INT32)), + ("Int64Arr", POINTER(INT64)), + ("ByteArr", POINTER(UINT8)), + ("UInt16Arr", POINTER(UINT16)), + ("UInt32Arr", POINTER(UINT32)), + ("UInt64Arr", POINTER(UINT64)), + ("SingleArr", POINTER(FLOAT)), + ("DoubleArr", POINTER(DOUBLE)), + ("FileTimeArr", POINTER(FILETIME)), + ("SysTimeArr", POINTER(SYSTEMTIME)), + ("GuidArr", POINTER(GUID)), + ("StringArr", POINTER(LPWSTR)), + ("AnsiStringArr", POINTER(LPSTR)), + ("SidArr", POINTER(PSID)), + ("SizeTArr", POINTER(SIZE_T)), + ("EvtHandleVal", EVT_HANDLE), + ("XmlVal", LPCWSTR), + ("XmlValArr", POINTER(LPCWSTR)), + ] + +class _EVT_VARIANT(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("anon_01", _ANON__EVT_VARIANT_SUB_UNION_1), + ("Count", DWORD), + ("Type", DWORD), + ] +PEVT_VARIANT = POINTER(_EVT_VARIANT) +EVT_VARIANT = _EVT_VARIANT + +class _EVT_RPC_LOGIN(Structure): + _fields_ = [ + ("Server", LPWSTR), + ("User", LPWSTR), + ("Domain", LPWSTR), + ("Password", LPWSTR), + ("Flags", DWORD), + ] +EVT_RPC_LOGIN = _EVT_RPC_LOGIN + +FakeFileInformationZero = EnumValue("_FILE_INFORMATION_CLASS", "FakeFileInformationZero", 0x0) +FileDirectoryInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileDirectoryInformation", 0x1) +FileFullDirectoryInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileFullDirectoryInformation", 0x2) +FileBothDirectoryInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileBothDirectoryInformation", 0x3) +FileBasicInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileBasicInformation", 0x4) +FileStandardInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileStandardInformation", 0x5) +FileInternalInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileInternalInformation", 0x6) +FileEaInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileEaInformation", 0x7) +FileAccessInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileAccessInformation", 0x8) +FileNameInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileNameInformation", 0x9) +FileRenameInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileRenameInformation", 0xa) +FileLinkInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileLinkInformation", 0xb) +FileNamesInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileNamesInformation", 0xc) +FileDispositionInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileDispositionInformation", 0xd) +FilePositionInformation = EnumValue("_FILE_INFORMATION_CLASS", "FilePositionInformation", 0xe) +FileFullEaInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileFullEaInformation", 0xf) +FileModeInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileModeInformation", 0x10) +FileAlignmentInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileAlignmentInformation", 0x11) +FileAllInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileAllInformation", 0x12) +FileAllocationInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileAllocationInformation", 0x13) +FileEndOfFileInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileEndOfFileInformation", 0x14) +FileAlternateNameInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileAlternateNameInformation", 0x15) +FileStreamInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileStreamInformation", 0x16) +FilePipeInformation = EnumValue("_FILE_INFORMATION_CLASS", "FilePipeInformation", 0x17) +FilePipeLocalInformation = EnumValue("_FILE_INFORMATION_CLASS", "FilePipeLocalInformation", 0x18) +FilePipeRemoteInformation = EnumValue("_FILE_INFORMATION_CLASS", "FilePipeRemoteInformation", 0x19) +FileMailslotQueryInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileMailslotQueryInformation", 0x1a) +FileMailslotSetInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileMailslotSetInformation", 0x1b) +FileCompressionInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileCompressionInformation", 0x1c) +FileObjectIdInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileObjectIdInformation", 0x1d) +FileCompletionInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileCompletionInformation", 0x1e) +FileMoveClusterInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileMoveClusterInformation", 0x1f) +FileQuotaInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileQuotaInformation", 0x20) +FileReparsePointInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileReparsePointInformation", 0x21) +FileNetworkOpenInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileNetworkOpenInformation", 0x22) +FileAttributeTagInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileAttributeTagInformation", 0x23) +FileTrackingInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileTrackingInformation", 0x24) +FileIdBothDirectoryInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileIdBothDirectoryInformation", 0x25) +FileIdFullDirectoryInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileIdFullDirectoryInformation", 0x26) +FileValidDataLengthInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileValidDataLengthInformation", 0x27) +FileShortNameInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileShortNameInformation", 0x28) +FileIoCompletionNotificationInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileIoCompletionNotificationInformation", 0x29) +FileIoStatusBlockRangeInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileIoStatusBlockRangeInformation", 0x2a) +FileIoPriorityHintInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileIoPriorityHintInformation", 0x2b) +FileSfioReserveInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileSfioReserveInformation", 0x2c) +FileSfioVolumeInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileSfioVolumeInformation", 0x2d) +FileHardLinkInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileHardLinkInformation", 0x2e) +FileProcessIdsUsingFileInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileProcessIdsUsingFileInformation", 0x2f) +FileNormalizedNameInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileNormalizedNameInformation", 0x30) +FileNetworkPhysicalNameInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileNetworkPhysicalNameInformation", 0x31) +FileIdGlobalTxDirectoryInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileIdGlobalTxDirectoryInformation", 0x32) +FileIsRemoteDeviceInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileIsRemoteDeviceInformation", 0x33) +FileUnusedInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileUnusedInformation", 0x34) +FileNumaNodeInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileNumaNodeInformation", 0x35) +FileStandardLinkInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileStandardLinkInformation", 0x36) +FileRemoteProtocolInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileRemoteProtocolInformation", 0x37) +FileRenameInformationBypassAccessCheck = EnumValue("_FILE_INFORMATION_CLASS", "FileRenameInformationBypassAccessCheck", 0x38) +FileLinkInformationBypassAccessCheck = EnumValue("_FILE_INFORMATION_CLASS", "FileLinkInformationBypassAccessCheck", 0x39) +FileVolumeNameInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileVolumeNameInformation", 0x3a) +FileIdInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileIdInformation", 0x3b) +FileIdExtdDirectoryInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileIdExtdDirectoryInformation", 0x3c) +FileReplaceCompletionInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileReplaceCompletionInformation", 0x3d) +FileHardLinkFullIdInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileHardLinkFullIdInformation", 0x3e) +FileIdExtdBothDirectoryInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileIdExtdBothDirectoryInformation", 0x3f) +FileDispositionInformationEx = EnumValue("_FILE_INFORMATION_CLASS", "FileDispositionInformationEx", 0x40) +FileRenameInformationEx = EnumValue("_FILE_INFORMATION_CLASS", "FileRenameInformationEx", 0x41) +FileRenameInformationExBypassAccessCheck = EnumValue("_FILE_INFORMATION_CLASS", "FileRenameInformationExBypassAccessCheck", 0x42) +FileMaximumInformation = EnumValue("_FILE_INFORMATION_CLASS", "FileMaximumInformation", 0x43) +class _FILE_INFORMATION_CLASS(EnumType): + values = [FakeFileInformationZero, FileDirectoryInformation, FileFullDirectoryInformation, FileBothDirectoryInformation, FileBasicInformation, FileStandardInformation, FileInternalInformation, FileEaInformation, FileAccessInformation, FileNameInformation, FileRenameInformation, FileLinkInformation, FileNamesInformation, FileDispositionInformation, FilePositionInformation, FileFullEaInformation, FileModeInformation, FileAlignmentInformation, FileAllInformation, FileAllocationInformation, FileEndOfFileInformation, FileAlternateNameInformation, FileStreamInformation, FilePipeInformation, FilePipeLocalInformation, FilePipeRemoteInformation, FileMailslotQueryInformation, FileMailslotSetInformation, FileCompressionInformation, FileObjectIdInformation, FileCompletionInformation, FileMoveClusterInformation, FileQuotaInformation, FileReparsePointInformation, FileNetworkOpenInformation, FileAttributeTagInformation, FileTrackingInformation, FileIdBothDirectoryInformation, FileIdFullDirectoryInformation, FileValidDataLengthInformation, FileShortNameInformation, FileIoCompletionNotificationInformation, FileIoStatusBlockRangeInformation, FileIoPriorityHintInformation, FileSfioReserveInformation, FileSfioVolumeInformation, FileHardLinkInformation, FileProcessIdsUsingFileInformation, FileNormalizedNameInformation, FileNetworkPhysicalNameInformation, FileIdGlobalTxDirectoryInformation, FileIsRemoteDeviceInformation, FileUnusedInformation, FileNumaNodeInformation, FileStandardLinkInformation, FileRemoteProtocolInformation, FileRenameInformationBypassAccessCheck, FileLinkInformationBypassAccessCheck, FileVolumeNameInformation, FileIdInformation, FileIdExtdDirectoryInformation, FileReplaceCompletionInformation, FileHardLinkFullIdInformation, FileIdExtdBothDirectoryInformation, FileDispositionInformationEx, FileRenameInformationEx, FileRenameInformationExBypassAccessCheck, FileMaximumInformation] + mapper = FlagMapper(*values) +FILE_INFORMATION_CLASS = _FILE_INFORMATION_CLASS +PFILE_INFORMATION_CLASS = POINTER(_FILE_INFORMATION_CLASS) + + +IoPriorityVeryLow = EnumValue("_IO_PRIORITY_HINT", "IoPriorityVeryLow", 0x0) +IoPriorityLow = EnumValue("_IO_PRIORITY_HINT", "IoPriorityLow", 0x1) +IoPriorityNormal = EnumValue("_IO_PRIORITY_HINT", "IoPriorityNormal", 0x2) +IoPriorityHigh = EnumValue("_IO_PRIORITY_HINT", "IoPriorityHigh", 0x3) +IoPriorityCritical = EnumValue("_IO_PRIORITY_HINT", "IoPriorityCritical", 0x4) +MaxIoPriorityTypes = EnumValue("_IO_PRIORITY_HINT", "MaxIoPriorityTypes", 0x5) +class _IO_PRIORITY_HINT(EnumType): + values = [IoPriorityVeryLow, IoPriorityLow, IoPriorityNormal, IoPriorityHigh, IoPriorityCritical, MaxIoPriorityTypes] + mapper = FlagMapper(*values) +IO_PRIORITY_HINT = _IO_PRIORITY_HINT + + +ReadDirectoryNotifyInformation = EnumValue("_READ_DIRECTORY_NOTIFY_INFORMATION_CLASS", "ReadDirectoryNotifyInformation", 0x0) +ReadDirectoryNotifyExtendedInformation = EnumValue("_READ_DIRECTORY_NOTIFY_INFORMATION_CLASS", "ReadDirectoryNotifyExtendedInformation", 0x1) +class _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS(EnumType): + values = [ReadDirectoryNotifyInformation, ReadDirectoryNotifyExtendedInformation] + mapper = FlagMapper(*values) +PREAD_DIRECTORY_NOTIFY_INFORMATION_CLASS = POINTER(_READ_DIRECTORY_NOTIFY_INFORMATION_CLASS) +READ_DIRECTORY_NOTIFY_INFORMATION_CLASS = _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS + + +class _FILE_INTERNAL_INFORMATION(Structure): + _fields_ = [ + ("IndexNumber", LARGE_INTEGER), + ] +FILE_INTERNAL_INFORMATION = _FILE_INTERNAL_INFORMATION +PFILE_INTERNAL_INFORMATION = POINTER(_FILE_INTERNAL_INFORMATION) + +class _FILE_ALIGNMENT_INFORMATION(Structure): + _fields_ = [ + ("AlignmentRequirement", ULONG), + ] +PFILE_ALIGNMENT_INFORMATION = POINTER(_FILE_ALIGNMENT_INFORMATION) +FILE_ALIGNMENT_INFORMATION = _FILE_ALIGNMENT_INFORMATION + +class _FILE_ATTRIBUTE_TAG_INFORMATION(Structure): + _fields_ = [ + ("FileAttributes", ULONG), + ("ReparseTag", ULONG), + ] +PFILE_ATTRIBUTE_TAG_INFORMATION = POINTER(_FILE_ATTRIBUTE_TAG_INFORMATION) +FILE_ATTRIBUTE_TAG_INFORMATION = _FILE_ATTRIBUTE_TAG_INFORMATION + +class _FILE_BASIC_INFORMATION(Structure): + _fields_ = [ + ("CreationTime", LARGE_INTEGER), + ("LastAccessTime", LARGE_INTEGER), + ("LastWriteTime", LARGE_INTEGER), + ("ChangeTime", LARGE_INTEGER), + ("FileAttributes", ULONG), + ] +FILE_BASIC_INFORMATION = _FILE_BASIC_INFORMATION +PFILE_BASIC_INFORMATION = POINTER(_FILE_BASIC_INFORMATION) + +class _FILE_EA_INFORMATION(Structure): + _fields_ = [ + ("EaSize", ULONG), + ] +PFILE_EA_INFORMATION = POINTER(_FILE_EA_INFORMATION) +FILE_EA_INFORMATION = _FILE_EA_INFORMATION + +class _FILE_IO_PRIORITY_HINT_INFORMATION(Structure): + _fields_ = [ + ("PriorityHint", IO_PRIORITY_HINT), + ] +PFILE_IO_PRIORITY_HINT_INFORMATION = POINTER(_FILE_IO_PRIORITY_HINT_INFORMATION) +FILE_IO_PRIORITY_HINT_INFORMATION = _FILE_IO_PRIORITY_HINT_INFORMATION + +class _FILE_MODE_INFORMATION(Structure): + _fields_ = [ + ("Mode", ULONG), + ] +PFILE_MODE_INFORMATION = POINTER(_FILE_MODE_INFORMATION) +FILE_MODE_INFORMATION = _FILE_MODE_INFORMATION + +class _FILE_NAME_INFORMATION(Structure): + _fields_ = [ + ("FileNameLength", ULONG), + ("FileName", WCHAR * (1)), + ] +PFILE_NAME_INFORMATION = POINTER(_FILE_NAME_INFORMATION) +FILE_NAME_INFORMATION = _FILE_NAME_INFORMATION + +class _FILE_NETWORK_OPEN_INFORMATION(Structure): + _fields_ = [ + ("CreationTime", LARGE_INTEGER), + ("LastAccessTime", LARGE_INTEGER), + ("LastWriteTime", LARGE_INTEGER), + ("ChangeTime", LARGE_INTEGER), + ("AllocationSize", LARGE_INTEGER), + ("EndOfFile", LARGE_INTEGER), + ("FileAttributes", ULONG), + ] +PFILE_NETWORK_OPEN_INFORMATION = POINTER(_FILE_NETWORK_OPEN_INFORMATION) +FILE_NETWORK_OPEN_INFORMATION = _FILE_NETWORK_OPEN_INFORMATION + +class _FILE_STANDARD_INFORMATION(Structure): + _fields_ = [ + ("AllocationSize", LARGE_INTEGER), + ("EndOfFile", LARGE_INTEGER), + ("NumberOfLinks", ULONG), + ("DeletePending", BOOLEAN), + ("Directory", BOOLEAN), + ] +FILE_STANDARD_INFORMATION = _FILE_STANDARD_INFORMATION +PFILE_STANDARD_INFORMATION = POINTER(_FILE_STANDARD_INFORMATION) + +class _FILE_ACCESS_INFORMATION(Structure): + _fields_ = [ + ("AccessFlags", ACCESS_MASK), + ] +FILE_ACCESS_INFORMATION = _FILE_ACCESS_INFORMATION +PFILE_ACCESS_INFORMATION = POINTER(_FILE_ACCESS_INFORMATION) + +class _FILE_POSITION_INFORMATION(Structure): + _fields_ = [ + ("CurrentByteOffset", LARGE_INTEGER), + ] +PFILE_POSITION_INFORMATION = POINTER(_FILE_POSITION_INFORMATION) +FILE_POSITION_INFORMATION = _FILE_POSITION_INFORMATION + +class _FILE_IS_REMOTE_DEVICE_INFORMATION(Structure): + _fields_ = [ + ("IsRemote", BOOLEAN), + ] +FILE_IS_REMOTE_DEVICE_INFORMATION = _FILE_IS_REMOTE_DEVICE_INFORMATION +PFILE_IS_REMOTE_DEVICE_INFORMATION = POINTER(_FILE_IS_REMOTE_DEVICE_INFORMATION) + +class _FILE_ALL_INFORMATION(Structure): + _fields_ = [ + ("BasicInformation", FILE_BASIC_INFORMATION), + ("StandardInformation", FILE_STANDARD_INFORMATION), + ("InternalInformation", FILE_INTERNAL_INFORMATION), + ("EaInformation", FILE_EA_INFORMATION), + ("AccessInformation", FILE_ACCESS_INFORMATION), + ("PositionInformation", FILE_POSITION_INFORMATION), + ("ModeInformation", FILE_MODE_INFORMATION), + ("AlignmentInformation", FILE_ALIGNMENT_INFORMATION), + ("NameInformation", FILE_NAME_INFORMATION), + ] +PFILE_ALL_INFORMATION = POINTER(_FILE_ALL_INFORMATION) +FILE_ALL_INFORMATION = _FILE_ALL_INFORMATION + +class _FILE_STREAM_INFORMATION(Structure): + _fields_ = [ + ("NextEntryOffset", ULONG), + ("StreamNameLength", ULONG), + ("StreamSize", LARGE_INTEGER), + ("StreamAllocationSize", LARGE_INTEGER), + ("StreamName", WCHAR * (1)), + ] +FILE_STREAM_INFORMATION = _FILE_STREAM_INFORMATION +PFILE_STREAM_INFORMATION = POINTER(_FILE_STREAM_INFORMATION) + +class _FILE_DISPOSITION_INFORMATION(Structure): + _fields_ = [ + ("DeleteFile", BOOLEAN), + ] +PFILE_DISPOSITION_INFORMATION = POINTER(_FILE_DISPOSITION_INFORMATION) +FILE_DISPOSITION_INFORMATION = _FILE_DISPOSITION_INFORMATION + +class _FILE_FULL_EA_INFORMATION(Structure): + _fields_ = [ + ("NextEntryOffset", ULONG), + ("Flags", BYTE), + ("EaNameLength", BYTE), + ("EaValueLength", USHORT), + ("EaName", CHAR * (1)), + ] +FILE_FULL_EA_INFORMATION = _FILE_FULL_EA_INFORMATION +PFILE_FULL_EA_INFORMATION = POINTER(_FILE_FULL_EA_INFORMATION) + +class _FILE_GET_EA_INFORMATION(Structure): + _fields_ = [ + ("NextEntryOffset", ULONG), + ("EaNameLength", UCHAR), + ("EaName", CHAR * (1)), + ] +FILE_GET_EA_INFORMATION = _FILE_GET_EA_INFORMATION +PFILE_GET_EA_INFORMATION = POINTER(_FILE_GET_EA_INFORMATION) + +class tagVS_FIXEDFILEINFO(Structure): + _fields_ = [ + ("dwSignature", DWORD), + ("dwStrucVersion", DWORD), + ("dwFileVersionMS", DWORD), + ("dwFileVersionLS", DWORD), + ("dwProductVersionMS", DWORD), + ("dwProductVersionLS", DWORD), + ("dwFileFlagsMask", DWORD), + ("dwFileFlags", DWORD), + ("dwFileOS", DWORD), + ("dwFileType", DWORD), + ("dwFileSubtype", DWORD), + ("dwFileDateMS", DWORD), + ("dwFileDateLS", DWORD), + ] +VS_FIXEDFILEINFO = tagVS_FIXEDFILEINFO + +class _ANON__FILE_LINK_INFORMATION_SUB_UNION_1(Union): + _fields_ = [ + ("ReplaceIfExists", BOOLEAN), + ("Flags", ULONG), + ] + +class _FILE_LINK_INFORMATION(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("anon_01", _ANON__FILE_LINK_INFORMATION_SUB_UNION_1), + ("RootDirectory", HANDLE), + ("FileNameLength", ULONG), + ("FileName", WCHAR * (1)), + ] +PFILE_LINK_INFORMATION = POINTER(_FILE_LINK_INFORMATION) +FILE_LINK_INFORMATION = _FILE_LINK_INFORMATION + +class _WIN32_FIND_DATAA(Structure): + _fields_ = [ + ("dwFileAttributes", DWORD), + ("ftCreationTime", FILETIME), + ("ftLastAccessTime", FILETIME), + ("ftLastWriteTime", FILETIME), + ("nFileSizeHigh", DWORD), + ("nFileSizeLow", DWORD), + ("dwReserved0", DWORD), + ("dwReserved1", DWORD), + ("cFileName", CHAR * (MAX_PATH)), + ("cAlternateFileName", CHAR * (14)), + ("dwFileType", DWORD), + ("dwCreatorType", DWORD), + ("wFinderFlags", WORD), + ] +LPWIN32_FIND_DATAA = POINTER(_WIN32_FIND_DATAA) +PWIN32_FIND_DATAA = POINTER(_WIN32_FIND_DATAA) +WIN32_FIND_DATAA = _WIN32_FIND_DATAA + +class _WIN32_FIND_DATAW(Structure): + _fields_ = [ + ("dwFileAttributes", DWORD), + ("ftCreationTime", FILETIME), + ("ftLastAccessTime", FILETIME), + ("ftLastWriteTime", FILETIME), + ("nFileSizeHigh", DWORD), + ("nFileSizeLow", DWORD), + ("dwReserved0", DWORD), + ("dwReserved1", DWORD), + ("cFileName", WCHAR * (MAX_PATH)), + ("cAlternateFileName", WCHAR * (14)), + ("dwFileType", DWORD), + ("dwCreatorType", DWORD), + ("wFinderFlags", WORD), + ] +PWIN32_FIND_DATAW = POINTER(_WIN32_FIND_DATAW) +WIN32_FIND_DATAW = _WIN32_FIND_DATAW +LPWIN32_FIND_DATAW = POINTER(_WIN32_FIND_DATAW) + +class _FILE_NOTIFY_INFORMATION(Structure): + _fields_ = [ + ("NextEntryOffset", DWORD), + ("Action", DWORD), + ("FileNameLength", DWORD), + ("FileName", WCHAR * (1)), + ] +FILE_NOTIFY_INFORMATION = _FILE_NOTIFY_INFORMATION +PFILE_NOTIFY_INFORMATION = POINTER(_FILE_NOTIFY_INFORMATION) + +class _FILE_NOTIFY_EXTENDED_INFORMATION(Structure): + _fields_ = [ + ("NextEntryOffset", DWORD), + ("Action", DWORD), + ("CreationTime", LARGE_INTEGER), + ("LastModificationTime", LARGE_INTEGER), + ("LastChangeTime", LARGE_INTEGER), + ("LastAccessTime", LARGE_INTEGER), + ("AllocatedLength", LARGE_INTEGER), + ("FileSize", LARGE_INTEGER), + ("FileAttributes", DWORD), + ("ReparsePointTag", DWORD), + ("FileId", LARGE_INTEGER), + ("ParentFileId", LARGE_INTEGER), + ("FileNameLength", DWORD), + ("FileName", WCHAR * (1)), + ] +PFILE_NOTIFY_EXTENDED_INFORMATION = POINTER(_FILE_NOTIFY_EXTENDED_INFORMATION) +FILE_NOTIFY_EXTENDED_INFORMATION = _FILE_NOTIFY_EXTENDED_INFORMATION + +class _ANON__FILE_RENAME_INFORMATION_SUB_UNION_1(Union): + _fields_ = [ + ("ReplaceIfExists", BOOLEAN), + ("Flags", ULONG), + ] + +class _FILE_RENAME_INFORMATION(Structure): + _anonymous_ = ("__ANON_DUMMYUNIONNAME_FILE_RENAME_INFORMATION",) + _fields_ = [ + ("__ANON_DUMMYUNIONNAME_FILE_RENAME_INFORMATION", _ANON__FILE_RENAME_INFORMATION_SUB_UNION_1), + ("RootDirectory", HANDLE), + ("FileNameLength", ULONG), + ("FileName", WCHAR * (1)), + ] +FILE_RENAME_INFORMATION = _FILE_RENAME_INFORMATION +PFILE_RENAME_INFORMATION = POINTER(_FILE_RENAME_INFORMATION) + +INITIAL_FILE_RENAME_INFORMATION = _FILE_RENAME_INFORMATION + +class _FILE_RENAME_INFORMATION(INITIAL_FILE_RENAME_INFORMATION): + @property + def filename(self): + filename_addr = ctypes.addressof(self) + type(self).FileName.offset + if getattr(self, "_target", None) is not None: #remote ctypes :D -> TRICKS OF THE YEAR + raw_data = self._target.read_memory(filename_addr, self.FileNameLength) + return raw_data.decode("utf16") + size = int(self.FileNameLength / 2) + return (ctypes.c_wchar * size).from_address(filename_addr)[:] + +FILE_RENAME_INFORMATION = _FILE_RENAME_INFORMATION +PFILE_RENAME_INFORMATION = POINTER(_FILE_RENAME_INFORMATION) +PolicyAuditLogInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyAuditLogInformation", 0x1) +PolicyAuditEventsInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyAuditEventsInformation", 0x2) +PolicyPrimaryDomainInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyPrimaryDomainInformation", 0x3) +PolicyPdAccountInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyPdAccountInformation", 0x4) +PolicyAccountDomainInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyAccountDomainInformation", 0x5) +PolicyLsaServerRoleInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyLsaServerRoleInformation", 0x6) +PolicyReplicaSourceInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyReplicaSourceInformation", 0x7) +PolicyDefaultQuotaInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyDefaultQuotaInformation", 0x8) +PolicyModificationInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyModificationInformation", 0x9) +PolicyAuditFullSetInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyAuditFullSetInformation", 0xa) +PolicyAuditFullQueryInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyAuditFullQueryInformation", 0xb) +PolicyDnsDomainInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyDnsDomainInformation", 0xc) +PolicyDnsDomainInformationInt = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyDnsDomainInformationInt", 0xd) +PolicyLocalAccountDomainInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyLocalAccountDomainInformation", 0xe) +PolicyMachineAccountInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyMachineAccountInformation", 0xf) +PolicyLastEntry = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyLastEntry", 0x10) +class _POLICY_INFORMATION_CLASS(EnumType): + values = [PolicyAuditLogInformation, PolicyAuditEventsInformation, PolicyPrimaryDomainInformation, PolicyPdAccountInformation, PolicyAccountDomainInformation, PolicyLsaServerRoleInformation, PolicyReplicaSourceInformation, PolicyDefaultQuotaInformation, PolicyModificationInformation, PolicyAuditFullSetInformation, PolicyAuditFullQueryInformation, PolicyDnsDomainInformation, PolicyDnsDomainInformationInt, PolicyLocalAccountDomainInformation, PolicyMachineAccountInformation, PolicyLastEntry] + mapper = FlagMapper(*values) +POLICY_INFORMATION_CLASS = _POLICY_INFORMATION_CLASS +PPOLICY_INFORMATION_CLASS = POINTER(_POLICY_INFORMATION_CLASS) + + +PolicyServerRoleBackup = EnumValue("_POLICY_LSA_SERVER_ROLE", "PolicyServerRoleBackup", 0x0) +PolicyServerRolePrimary = EnumValue("_POLICY_LSA_SERVER_ROLE", "PolicyServerRolePrimary", 0x1) +class _POLICY_LSA_SERVER_ROLE(EnumType): + values = [PolicyServerRoleBackup, PolicyServerRolePrimary] + mapper = FlagMapper(*values) +POLICY_LSA_SERVER_ROLE = _POLICY_LSA_SERVER_ROLE +PPOLICY_LSA_SERVER_ROLE = POINTER(_POLICY_LSA_SERVER_ROLE) + + +class _LSA_OBJECT_ATTRIBUTES(Structure): + _fields_ = [ + ("Length", ULONG), + ("RootDirectory", HANDLE), + ("ObjectName", PLSA_UNICODE_STRING), + ("Attributes", ULONG), + ("SecurityDescriptor", PVOID), + ("SecurityQualityOfService", PVOID), + ] +PLSA_OBJECT_ATTRIBUTES = POINTER(_LSA_OBJECT_ATTRIBUTES) +LSA_OBJECT_ATTRIBUTES = _LSA_OBJECT_ATTRIBUTES + +class _POLICY_PRIMARY_DOMAIN_INFO(Structure): + _fields_ = [ + ("Name", LSA_UNICODE_STRING), + ("Sid", PSID), + ] +PPOLICY_PRIMARY_DOMAIN_INFO = POINTER(_POLICY_PRIMARY_DOMAIN_INFO) +POLICY_PRIMARY_DOMAIN_INFO = _POLICY_PRIMARY_DOMAIN_INFO + +class _POLICY_LSA_SERVER_ROLE_INFO(Structure): + _fields_ = [ + ("LsaServerRole", POLICY_LSA_SERVER_ROLE), + ] +POLICY_LSA_SERVER_ROLE_INFO = _POLICY_LSA_SERVER_ROLE_INFO +PPOLICY_LSA_SERVER_ROLE_INFO = POINTER(_POLICY_LSA_SERVER_ROLE_INFO) + +class _POLICY_ACCOUNT_DOMAIN_INFO(Structure): + _fields_ = [ + ("DomainName", LSA_UNICODE_STRING), + ("DomainSid", PSID), + ] +POLICY_ACCOUNT_DOMAIN_INFO = _POLICY_ACCOUNT_DOMAIN_INFO +PPOLICY_ACCOUNT_DOMAIN_INFO = POINTER(_POLICY_ACCOUNT_DOMAIN_INFO) + +class _POLICY_PRIMARY_DOMAIN_INFO(Structure): + _fields_ = [ + ("Name", LSA_UNICODE_STRING), + ("Sid", PSID), + ] +PPOLICY_PRIMARY_DOMAIN_INFO = POINTER(_POLICY_PRIMARY_DOMAIN_INFO) +POLICY_PRIMARY_DOMAIN_INFO = _POLICY_PRIMARY_DOMAIN_INFO + +class _LSA_TRANSLATED_SID(Structure): + _fields_ = [ + ("Use", SID_NAME_USE), + ("RelativeId", ULONG), + ("DomainIndex", LONG), + ] +LSA_TRANSLATED_SID = _LSA_TRANSLATED_SID +PLSA_TRANSLATED_SID = POINTER(_LSA_TRANSLATED_SID) + +class _LSA_TRANSLATED_SID2(Structure): + _fields_ = [ + ("Use", SID_NAME_USE), + ("Sid", PSID), + ("DomainIndex", LONG), + ("Flags", ULONG), + ] +PLSA_TRANSLATED_SID2 = POINTER(_LSA_TRANSLATED_SID2) +LSA_TRANSLATED_SID2 = _LSA_TRANSLATED_SID2 + +class _LSA_TRANSLATED_NAME(Structure): + _fields_ = [ + ("Use", SID_NAME_USE), + ("Name", LSA_UNICODE_STRING), + ("DomainIndex", LONG), + ] +LSA_TRANSLATED_NAME = _LSA_TRANSLATED_NAME +PLSA_TRANSLATED_NAME = POINTER(_LSA_TRANSLATED_NAME) + +class _LSA_TRUST_INFORMATION(Structure): + _fields_ = [ + ("Name", LSA_UNICODE_STRING), + ("Sid", PSID), + ] +LSA_TRUST_INFORMATION = _LSA_TRUST_INFORMATION +PLSA_TRUST_INFORMATION = POINTER(_LSA_TRUST_INFORMATION) + +class _LSA_REFERENCED_DOMAIN_LIST(Structure): + _fields_ = [ + ("Entries", ULONG), + ("Domains", PLSA_TRUST_INFORMATION), + ] +LSA_REFERENCED_DOMAIN_LIST = _LSA_REFERENCED_DOMAIN_LIST +PLSA_REFERENCED_DOMAIN_LIST = POINTER(_LSA_REFERENCED_DOMAIN_LIST) + +class _LOCALGROUP_INFO_0(Structure): + _fields_ = [ + ("lgrpi0_name", LPWSTR), + ] +LPLOCALGROUP_INFO_0 = POINTER(_LOCALGROUP_INFO_0) +LOCALGROUP_INFO_0 = _LOCALGROUP_INFO_0 +PLOCALGROUP_INFO_0 = POINTER(_LOCALGROUP_INFO_0) + +class _LOCALGROUP_INFO_1(Structure): + _fields_ = [ + ("lgrpi1_name", LPWSTR), + ("lgrpi1_comment", LPWSTR), + ] +LPLOCALGROUP_INFO_1 = POINTER(_LOCALGROUP_INFO_1) +LOCALGROUP_INFO_1 = _LOCALGROUP_INFO_1 +PLOCALGROUP_INFO_1 = POINTER(_LOCALGROUP_INFO_1) + +class _LOCALGROUP_MEMBERS_INFO_0(Structure): + _fields_ = [ + ("lgrmi0_sid", PSID), + ] +LPLOCALGROUP_MEMBERS_INFO_0 = POINTER(_LOCALGROUP_MEMBERS_INFO_0) +LOCALGROUP_MEMBERS_INFO_0 = _LOCALGROUP_MEMBERS_INFO_0 +PLOCALGROUP_MEMBERS_INFO_0 = POINTER(_LOCALGROUP_MEMBERS_INFO_0) + +class _LOCALGROUP_MEMBERS_INFO_1(Structure): + _fields_ = [ + ("lgrmi1_sid", PSID), + ("lgrmi1_sidusage", SID_NAME_USE), + ("lgrmi1_name", LPWSTR), + ] +LPLOCALGROUP_MEMBERS_INFO_1 = POINTER(_LOCALGROUP_MEMBERS_INFO_1) +LOCALGROUP_MEMBERS_INFO_1 = _LOCALGROUP_MEMBERS_INFO_1 +PLOCALGROUP_MEMBERS_INFO_1 = POINTER(_LOCALGROUP_MEMBERS_INFO_1) + +class _LOCALGROUP_MEMBERS_INFO_2(Structure): + _fields_ = [ + ("lgrmi2_sid", PSID), + ("lgrmi2_sidusage", SID_NAME_USE), + ("lgrmi2_domainandname", LPWSTR), + ] +LPLOCALGROUP_MEMBERS_INFO_2 = POINTER(_LOCALGROUP_MEMBERS_INFO_2) +PLOCALGROUP_MEMBERS_INFO_2 = POINTER(_LOCALGROUP_MEMBERS_INFO_2) +LOCALGROUP_MEMBERS_INFO_2 = _LOCALGROUP_MEMBERS_INFO_2 + +class _LOCALGROUP_MEMBERS_INFO_3(Structure): + _fields_ = [ + ("lgrmi3_domainandname", LPWSTR), + ] +LPLOCALGROUP_MEMBERS_INFO_3 = POINTER(_LOCALGROUP_MEMBERS_INFO_3) +PLOCALGROUP_MEMBERS_INFO_3 = POINTER(_LOCALGROUP_MEMBERS_INFO_3) +LOCALGROUP_MEMBERS_INFO_3 = _LOCALGROUP_MEMBERS_INFO_3 + +class _NET_DISPLAY_USER(Structure): + _fields_ = [ + ("usri1_name", LPWSTR), + ("usri1_comment", LPWSTR), + ("usri1_flags", DWORD), + ("usri1_full_name", LPWSTR), + ("usri1_user_id", DWORD), + ("usri1_next_index", DWORD), + ] +NET_DISPLAY_USER = _NET_DISPLAY_USER +PNET_DISPLAY_USER = POINTER(_NET_DISPLAY_USER) + +class _NET_DISPLAY_MACHINE(Structure): + _fields_ = [ + ("usri2_name", LPWSTR), + ("usri2_comment", LPWSTR), + ("usri2_flags", DWORD), + ("usri2_user_id", DWORD), + ("usri2_next_index", DWORD), + ] +PNET_DISPLAY_MACHINE = POINTER(_NET_DISPLAY_MACHINE) +NET_DISPLAY_MACHINE = _NET_DISPLAY_MACHINE + +class _NET_DISPLAY_GROUP(Structure): + _fields_ = [ + ("grpi3_name", LPWSTR), + ("grpi3_comment", LPWSTR), + ("grpi3_group_id", DWORD), + ("grpi3_attributes", DWORD), + ("grpi3_next_index", DWORD), + ] +PNET_DISPLAY_GROUP = POINTER(_NET_DISPLAY_GROUP) +NET_DISPLAY_GROUP = _NET_DISPLAY_GROUP + +class _USER_INFO_0(Structure): + _fields_ = [ + ("usri0_name", LPWSTR), + ] +PUSER_INFO_0 = POINTER(_USER_INFO_0) +LPUSER_INFO_0 = POINTER(_USER_INFO_0) +USER_INFO_0 = _USER_INFO_0 + +class _USER_INFO_1(Structure): + _fields_ = [ + ("usri1_name", LPWSTR), + ("usri1_password", LPWSTR), + ("usri1_password_age", DWORD), + ("usri1_priv", DWORD), + ("usri1_home_dir", LPWSTR), + ("usri1_comment", LPWSTR), + ("usri1_flags", DWORD), + ("usri1_script_path", LPWSTR), + ] +PUSER_INFO_1 = POINTER(_USER_INFO_1) +LPUSER_INFO_1 = POINTER(_USER_INFO_1) +USER_INFO_1 = _USER_INFO_1 + +class _USER_INFO_2(Structure): + _fields_ = [ + ("usri2_name", LPWSTR), + ("usri2_password", LPWSTR), + ("usri2_password_age", DWORD), + ("usri2_priv", DWORD), + ("usri2_home_dir", LPWSTR), + ("usri2_comment", LPWSTR), + ("usri2_flags", DWORD), + ("usri2_script_path", LPWSTR), + ("usri2_auth_flags", DWORD), + ("usri2_full_name", LPWSTR), + ("usri2_usr_comment", LPWSTR), + ("usri2_parms", LPWSTR), + ("usri2_workstations", LPWSTR), + ("usri2_last_logon", DWORD), + ("usri2_last_logoff", DWORD), + ("usri2_acct_expires", DWORD), + ("usri2_max_storage", DWORD), + ("usri2_units_per_week", DWORD), + ("usri2_logon_hours", PBYTE), + ("usri2_bad_pw_count", DWORD), + ("usri2_num_logons", DWORD), + ("usri2_logon_server", LPWSTR), + ("usri2_country_code", DWORD), + ("usri2_code_page", DWORD), + ] +PUSER_INFO_2 = POINTER(_USER_INFO_2) +USER_INFO_2 = _USER_INFO_2 +LPUSER_INFO_2 = POINTER(_USER_INFO_2) + +class _USER_INFO_3(Structure): + _fields_ = [ + ("usri3_name", LPWSTR), + ("usri3_password", LPWSTR), + ("usri3_password_age", DWORD), + ("usri3_priv", DWORD), + ("usri3_home_dir", LPWSTR), + ("usri3_comment", LPWSTR), + ("usri3_flags", DWORD), + ("usri3_script_path", LPWSTR), + ("usri3_auth_flags", DWORD), + ("usri3_full_name", LPWSTR), + ("usri3_usr_comment", LPWSTR), + ("usri3_parms", LPWSTR), + ("usri3_workstations", LPWSTR), + ("usri3_last_logon", DWORD), + ("usri3_last_logoff", DWORD), + ("usri3_acct_expires", DWORD), + ("usri3_max_storage", DWORD), + ("usri3_units_per_week", DWORD), + ("usri3_logon_hours", PBYTE), + ("usri3_bad_pw_count", DWORD), + ("usri3_num_logons", DWORD), + ("usri3_logon_server", LPWSTR), + ("usri3_country_code", DWORD), + ("usri3_code_page", DWORD), + ("usri3_user_id", DWORD), + ("usri3_primary_group_id", DWORD), + ("usri3_profile", LPWSTR), + ("usri3_home_dir_drive", LPWSTR), + ("usri3_password_expired", DWORD), + ] +PUSER_INFO_3 = POINTER(_USER_INFO_3) +USER_INFO_3 = _USER_INFO_3 +LPUSER_INFO_3 = POINTER(_USER_INFO_3) + +class _USER_INFO_10(Structure): + _fields_ = [ + ("usri10_name", LPWSTR), + ("usri10_comment", LPWSTR), + ("usri10_usr_comment", LPWSTR), + ("usri10_full_name", LPWSTR), + ] +USER_INFO_10 = _USER_INFO_10 +PUSER_INFO_10 = POINTER(_USER_INFO_10) +LPUSER_INFO_10 = POINTER(_USER_INFO_10) + +class _USER_INFO_11(Structure): + _fields_ = [ + ("usri11_name", LPWSTR), + ("usri11_comment", LPWSTR), + ("usri11_usr_comment", LPWSTR), + ("usri11_full_name", LPWSTR), + ("usri11_priv", DWORD), + ("usri11_auth_flags", DWORD), + ("usri11_password_age", DWORD), + ("usri11_home_dir", LPWSTR), + ("usri11_parms", LPWSTR), + ("usri11_last_logon", DWORD), + ("usri11_last_logoff", DWORD), + ("usri11_bad_pw_count", DWORD), + ("usri11_num_logons", DWORD), + ("usri11_logon_server", LPWSTR), + ("usri11_country_code", DWORD), + ("usri11_workstations", LPWSTR), + ("usri11_max_storage", DWORD), + ("usri11_units_per_week", DWORD), + ("usri11_logon_hours", PBYTE), + ("usri11_code_page", DWORD), + ] +PUSER_INFO_11 = POINTER(_USER_INFO_11) +USER_INFO_11 = _USER_INFO_11 +LPUSER_INFO_11 = POINTER(_USER_INFO_11) + +class _USER_INFO_20(Structure): + _fields_ = [ + ("usri20_name", LPWSTR), + ("usri20_full_name", LPWSTR), + ("usri20_comment", LPWSTR), + ("usri20_flags", DWORD), + ("usri20_user_id", DWORD), + ] +PUSER_INFO_20 = POINTER(_USER_INFO_20) +USER_INFO_20 = _USER_INFO_20 +LPUSER_INFO_20 = POINTER(_USER_INFO_20) + +class _USER_INFO_23(Structure): + _fields_ = [ + ("usri23_name", LPWSTR), + ("usri23_full_name", LPWSTR), + ("usri23_comment", LPWSTR), + ("usri23_flags", DWORD), + ("usri23_user_sid", PSID), + ] +USER_INFO_23 = _USER_INFO_23 +PUSER_INFO_23 = POINTER(_USER_INFO_23) +LPUSER_INFO_23 = POINTER(_USER_INFO_23) + +class _GROUP_INFO_0(Structure): + _fields_ = [ + ("grpi0_name", LPWSTR), + ] +PGROUP_INFO_0 = POINTER(_GROUP_INFO_0) +GROUP_INFO_0 = _GROUP_INFO_0 +LPGROUP_INFO_0 = POINTER(_GROUP_INFO_0) + +class _GROUP_INFO_1(Structure): + _fields_ = [ + ("grpi1_name", LPWSTR), + ("grpi1_comment", LPWSTR), + ] +GROUP_INFO_1 = _GROUP_INFO_1 +PGROUP_INFO_1 = POINTER(_GROUP_INFO_1) +LPGROUP_INFO_1 = POINTER(_GROUP_INFO_1) + +class _GROUP_INFO_2(Structure): + _fields_ = [ + ("grpi2_name", LPWSTR), + ("grpi2_comment", LPWSTR), + ("grpi2_group_id", DWORD), + ("grpi2_attributes", DWORD), + ] +PGROUP_INFO_2 = POINTER(_GROUP_INFO_2) +GROUP_INFO_2 = _GROUP_INFO_2 + +class _GROUP_INFO_3(Structure): + _fields_ = [ + ("grpi3_name", LPWSTR), + ("grpi3_comment", LPWSTR), + ("grpi3_group_sid", PSID), + ("grpi3_attributes", DWORD), + ] +GROUP_INFO_3 = _GROUP_INFO_3 +PGROUP_INFO_3 = POINTER(_GROUP_INFO_3) + +class _GROUP_USERS_INFO_0(Structure): + _fields_ = [ + ("grui0_name", LPWSTR), + ] +GROUP_USERS_INFO_0 = _GROUP_USERS_INFO_0 +PGROUP_USERS_INFO_0 = POINTER(_GROUP_USERS_INFO_0) +LPGROUP_USERS_INFO_0 = POINTER(_GROUP_USERS_INFO_0) + +class _GROUP_USERS_INFO_1(Structure): + _fields_ = [ + ("grui1_name", LPWSTR), + ("grui1_attributes", DWORD), + ] +PGROUP_USERS_INFO_1 = POINTER(_GROUP_USERS_INFO_1) +GROUP_USERS_INFO_1 = _GROUP_USERS_INFO_1 +LPGROUP_USERS_INFO_1 = POINTER(_GROUP_USERS_INFO_1) + +AclRevisionInformation = EnumValue("_ACL_INFORMATION_CLASS", "AclRevisionInformation", 0x1) +AclSizeInformation = EnumValue("_ACL_INFORMATION_CLASS", "AclSizeInformation", 0x2) +class _ACL_INFORMATION_CLASS(EnumType): + values = [AclRevisionInformation, AclSizeInformation] + mapper = FlagMapper(*values) +ACL_INFORMATION_CLASS = _ACL_INFORMATION_CLASS + + +NO_MULTIPLE_TRUSTEE = EnumValue("_MULTIPLE_TRUSTEE_OPERATION", "NO_MULTIPLE_TRUSTEE", 0x0) +TRUSTEE_IS_IMPERSONATE = EnumValue("_MULTIPLE_TRUSTEE_OPERATION", "TRUSTEE_IS_IMPERSONATE", 0x1) +class _MULTIPLE_TRUSTEE_OPERATION(EnumType): + values = [NO_MULTIPLE_TRUSTEE, TRUSTEE_IS_IMPERSONATE] + mapper = FlagMapper(*values) +MULTIPLE_TRUSTEE_OPERATION = _MULTIPLE_TRUSTEE_OPERATION + + +TRUSTEE_IS_SID = EnumValue("_TRUSTEE_FORM", "TRUSTEE_IS_SID", 0x0) +TRUSTEE_IS_NAME = EnumValue("_TRUSTEE_FORM", "TRUSTEE_IS_NAME", 0x1) +TRUSTEE_BAD_FORM = EnumValue("_TRUSTEE_FORM", "TRUSTEE_BAD_FORM", 0x2) +TRUSTEE_IS_OBJECTS_AND_SID = EnumValue("_TRUSTEE_FORM", "TRUSTEE_IS_OBJECTS_AND_SID", 0x3) +TRUSTEE_IS_OBJECTS_AND_NAME = EnumValue("_TRUSTEE_FORM", "TRUSTEE_IS_OBJECTS_AND_NAME", 0x4) +class _TRUSTEE_FORM(EnumType): + values = [TRUSTEE_IS_SID, TRUSTEE_IS_NAME, TRUSTEE_BAD_FORM, TRUSTEE_IS_OBJECTS_AND_SID, TRUSTEE_IS_OBJECTS_AND_NAME] + mapper = FlagMapper(*values) +TRUSTEE_FORM = _TRUSTEE_FORM + + +TRUSTEE_IS_UNKNOWN = EnumValue("_TRUSTEE_TYPE", "TRUSTEE_IS_UNKNOWN", 0x0) +TRUSTEE_IS_USER = EnumValue("_TRUSTEE_TYPE", "TRUSTEE_IS_USER", 0x1) +TRUSTEE_IS_GROUP = EnumValue("_TRUSTEE_TYPE", "TRUSTEE_IS_GROUP", 0x2) +TRUSTEE_IS_DOMAIN = EnumValue("_TRUSTEE_TYPE", "TRUSTEE_IS_DOMAIN", 0x3) +TRUSTEE_IS_ALIAS = EnumValue("_TRUSTEE_TYPE", "TRUSTEE_IS_ALIAS", 0x4) +TRUSTEE_IS_WELL_KNOWN_GROUP = EnumValue("_TRUSTEE_TYPE", "TRUSTEE_IS_WELL_KNOWN_GROUP", 0x5) +TRUSTEE_IS_DELETED = EnumValue("_TRUSTEE_TYPE", "TRUSTEE_IS_DELETED", 0x6) +TRUSTEE_IS_INVALID = EnumValue("_TRUSTEE_TYPE", "TRUSTEE_IS_INVALID", 0x7) +TRUSTEE_IS_COMPUTER = EnumValue("_TRUSTEE_TYPE", "TRUSTEE_IS_COMPUTER", 0x8) +class _TRUSTEE_TYPE(EnumType): + values = [TRUSTEE_IS_UNKNOWN, TRUSTEE_IS_USER, TRUSTEE_IS_GROUP, TRUSTEE_IS_DOMAIN, TRUSTEE_IS_ALIAS, TRUSTEE_IS_WELL_KNOWN_GROUP, TRUSTEE_IS_DELETED, TRUSTEE_IS_INVALID, TRUSTEE_IS_COMPUTER] + mapper = FlagMapper(*values) +TRUSTEE_TYPE = _TRUSTEE_TYPE + + +NOT_USED_ACCESS = EnumValue("_ACCESS_MODE", "NOT_USED_ACCESS", 0x0) +GRANT_ACCESS = EnumValue("_ACCESS_MODE", "GRANT_ACCESS", 0x1) +SET_ACCESS = EnumValue("_ACCESS_MODE", "SET_ACCESS", 0x2) +DENY_ACCESS = EnumValue("_ACCESS_MODE", "DENY_ACCESS", 0x3) +REVOKE_ACCESS = EnumValue("_ACCESS_MODE", "REVOKE_ACCESS", 0x4) +SET_AUDIT_SUCCESS = EnumValue("_ACCESS_MODE", "SET_AUDIT_SUCCESS", 0x5) +SET_AUDIT_FAILURE = EnumValue("_ACCESS_MODE", "SET_AUDIT_FAILURE", 0x6) +class _ACCESS_MODE(EnumType): + values = [NOT_USED_ACCESS, GRANT_ACCESS, SET_ACCESS, DENY_ACCESS, REVOKE_ACCESS, SET_AUDIT_SUCCESS, SET_AUDIT_FAILURE] + mapper = FlagMapper(*values) +ACCESS_MODE = _ACCESS_MODE + + +class _ACL(Structure): + _fields_ = [ + ("AclRevision", BYTE), + ("Sbz1", BYTE), + ("AclSize", WORD), + ("AceCount", WORD), + ("Sbz2", WORD), + ] +PACL = POINTER(_ACL) +ACL = _ACL + +class _ACL_REVISION_INFORMATION(Structure): + _fields_ = [ + ("AclRevision", DWORD), + ] +PACL_REVISION_INFORMATION = POINTER(_ACL_REVISION_INFORMATION) +ACL_REVISION_INFORMATION = _ACL_REVISION_INFORMATION + +class _ACL_SIZE_INFORMATION(Structure): + _fields_ = [ + ("AceCount", DWORD), + ("AclBytesInUse", DWORD), + ("AclBytesFree", DWORD), + ] +PACL_SIZE_INFORMATION = POINTER(_ACL_SIZE_INFORMATION) +ACL_SIZE_INFORMATION = _ACL_SIZE_INFORMATION + +class _ACE_HEADER(Structure): + _fields_ = [ + ("AceType", BYTE), + ("AceFlags", BYTE), + ("AceSize", WORD), + ] +PACE_HEADER = POINTER(_ACE_HEADER) +ACE_HEADER = _ACE_HEADER + +class _ACCESS_ALLOWED_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +PACCESS_ALLOWED_ACE = POINTER(_ACCESS_ALLOWED_ACE) +ACCESS_ALLOWED_ACE = _ACCESS_ALLOWED_ACE + +class _ACCESS_ALLOWED_CALLBACK_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +PACCESS_ALLOWED_CALLBACK_ACE = POINTER(_ACCESS_ALLOWED_CALLBACK_ACE) +ACCESS_ALLOWED_CALLBACK_ACE = _ACCESS_ALLOWED_CALLBACK_ACE + +class _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("Flags", DWORD), + ("ObjectType", GUID), + ("InheritedObjectType", GUID), + ("SidStart", DWORD), + ] +PACCESS_ALLOWED_CALLBACK_OBJECT_ACE = POINTER(_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE) +ACCESS_ALLOWED_CALLBACK_OBJECT_ACE = _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE + +class _ACCESS_DENIED_CALLBACK_OBJECT_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("Flags", DWORD), + ("ObjectType", GUID), + ("InheritedObjectType", GUID), + ("SidStart", DWORD), + ] +ACCESS_DENIED_CALLBACK_OBJECT_ACE = _ACCESS_DENIED_CALLBACK_OBJECT_ACE +PACCESS_DENIED_CALLBACK_OBJECT_ACE = POINTER(_ACCESS_DENIED_CALLBACK_OBJECT_ACE) + +class _ACCESS_ALLOWED_OBJECT_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("Flags", DWORD), + ("ObjectType", GUID), + ("InheritedObjectType", GUID), + ("SidStart", DWORD), + ] +PACCESS_ALLOWED_OBJECT_ACE = POINTER(_ACCESS_ALLOWED_OBJECT_ACE) +ACCESS_ALLOWED_OBJECT_ACE = _ACCESS_ALLOWED_OBJECT_ACE + +class _ACCESS_DENIED_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +ACCESS_DENIED_ACE = _ACCESS_DENIED_ACE +PACCESS_DENIED_ACE = POINTER(_ACCESS_DENIED_ACE) + +class _ACCESS_DENIED_CALLBACK_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +ACCESS_DENIED_CALLBACK_ACE = _ACCESS_DENIED_CALLBACK_ACE +PACCESS_DENIED_CALLBACK_ACE = POINTER(_ACCESS_DENIED_CALLBACK_ACE) + +class _ACCESS_DENIED_OBJECT_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("Flags", DWORD), + ("ObjectType", GUID), + ("InheritedObjectType", GUID), + ("SidStart", DWORD), + ] +ACCESS_DENIED_OBJECT_ACE = _ACCESS_DENIED_OBJECT_ACE +PACCESS_DENIED_OBJECT_ACE = POINTER(_ACCESS_DENIED_OBJECT_ACE) + +class _SYSTEM_MANDATORY_LABEL_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +SYSTEM_MANDATORY_LABEL_ACE = _SYSTEM_MANDATORY_LABEL_ACE +PSYSTEM_MANDATORY_LABEL_ACE = POINTER(_SYSTEM_MANDATORY_LABEL_ACE) + +class _SYSTEM_AUDIT_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +SYSTEM_AUDIT_ACE = _SYSTEM_AUDIT_ACE + +class _SYSTEM_ALARM_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +SYSTEM_ALARM_ACE = _SYSTEM_ALARM_ACE + +class _SYSTEM_RESOURCE_ATTRIBUTE_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +PSYSTEM_RESOURCE_ATTRIBUTE_ACE = POINTER(_SYSTEM_RESOURCE_ATTRIBUTE_ACE) +SYSTEM_RESOURCE_ATTRIBUTE_ACE = _SYSTEM_RESOURCE_ATTRIBUTE_ACE + +class _SYSTEM_SCOPED_POLICY_ID_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +SYSTEM_SCOPED_POLICY_ID_ACE = _SYSTEM_SCOPED_POLICY_ID_ACE +PSYSTEM_SCOPED_POLICY_ID_ACE = POINTER(_SYSTEM_SCOPED_POLICY_ID_ACE) + +class _SYSTEM_PROCESS_TRUST_LABEL_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +PSYSTEM_PROCESS_TRUST_LABEL_ACE = POINTER(_SYSTEM_PROCESS_TRUST_LABEL_ACE) +SYSTEM_PROCESS_TRUST_LABEL_ACE = _SYSTEM_PROCESS_TRUST_LABEL_ACE + +class _SYSTEM_AUDIT_OBJECT_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("Flags", DWORD), + ("ObjectType", GUID), + ("InheritedObjectType", GUID), + ("SidStart", DWORD), + ] +SYSTEM_AUDIT_OBJECT_ACE = _SYSTEM_AUDIT_OBJECT_ACE +PSYSTEM_AUDIT_OBJECT_ACE = POINTER(_SYSTEM_AUDIT_OBJECT_ACE) + +class _SYSTEM_ALARM_OBJECT_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("Flags", DWORD), + ("ObjectType", GUID), + ("InheritedObjectType", GUID), + ("SidStart", DWORD), + ] +SYSTEM_ALARM_OBJECT_ACE = _SYSTEM_ALARM_OBJECT_ACE +PSYSTEM_ALARM_OBJECT_ACE = POINTER(_SYSTEM_ALARM_OBJECT_ACE) + +class _SYSTEM_AUDIT_CALLBACK_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +PSYSTEM_AUDIT_CALLBACK_ACE = POINTER(_SYSTEM_AUDIT_CALLBACK_ACE) +SYSTEM_AUDIT_CALLBACK_ACE = _SYSTEM_AUDIT_CALLBACK_ACE + +class _SYSTEM_ALARM_CALLBACK_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +SYSTEM_ALARM_CALLBACK_ACE = _SYSTEM_ALARM_CALLBACK_ACE +PSYSTEM_ALARM_CALLBACK_ACE = POINTER(_SYSTEM_ALARM_CALLBACK_ACE) + +class _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("Flags", DWORD), + ("ObjectType", GUID), + ("InheritedObjectType", GUID), + ("SidStart", DWORD), + ] +PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE = POINTER(_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE) +SYSTEM_AUDIT_CALLBACK_OBJECT_ACE = _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE + +class _SYSTEM_ALARM_CALLBACK_OBJECT_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("Flags", DWORD), + ("ObjectType", GUID), + ("InheritedObjectType", GUID), + ("SidStart", DWORD), + ] +PSYSTEM_ALARM_CALLBACK_OBJECT_ACE = POINTER(_SYSTEM_ALARM_CALLBACK_OBJECT_ACE) +SYSTEM_ALARM_CALLBACK_OBJECT_ACE = _SYSTEM_ALARM_CALLBACK_OBJECT_ACE + +class _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_UNION(Union): + _fields_ = [ + ("pInt64", DWORD * (ANYSIZE_ARRAY)), + ("pUint64", DWORD * (ANYSIZE_ARRAY)), + ("ppString", DWORD * (ANYSIZE_ARRAY)), + ("pFqbn", DWORD * (ANYSIZE_ARRAY)), + ("pOctetString", DWORD * (ANYSIZE_ARRAY)), + ] +CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_UNION = _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_UNION + +class _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1(Structure): + _fields_ = [ + ("Name", DWORD), + ("ValueType", WORD), + ("Reserved", WORD), + ("Flags", DWORD), + ("ValueCount", DWORD), + ("Values", CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_UNION), + ] +PCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = POINTER(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1) +CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 + +class _CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE(Structure): + _fields_ = [ + ("Version", DWORD64), + ("Name", PWSTR), + ] +PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = POINTER(_CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE) +CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = _CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE + +class _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE(Structure): + _fields_ = [ + ("pValue", PVOID), + ("ValueLength", DWORD), + ] +PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = POINTER(_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE) +CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE + +class _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE(Structure): + _fields_ = [ + ("Length", DWORD), + ("OctetString", BYTE * (ANYSIZE_ARRAY)), + ] +PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE = POINTER(_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE) +CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE = _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE + +class _CLAIM_SECURITY_ATTRIBUTE_V1_UNION(Union): + _fields_ = [ + ("pInt64", PLONG64), + ("pUint64", PDWORD64), + ("ppString", POINTER(PWSTR)), + ("pFqbn", PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE), + ("pOctetString", PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE), + ] +CLAIM_SECURITY_ATTRIBUTE_V1_UNION = _CLAIM_SECURITY_ATTRIBUTE_V1_UNION + +class _CLAIM_SECURITY_ATTRIBUTE_V1(Structure): + _fields_ = [ + ("Name", PWSTR), + ("ValueType", WORD), + ("Reserved", WORD), + ("Flags", DWORD), + ("ValueCount", DWORD), + ("Values", CLAIM_SECURITY_ATTRIBUTE_V1_UNION), + ] +CLAIM_SECURITY_ATTRIBUTE_V1 = _CLAIM_SECURITY_ATTRIBUTE_V1 +PCLAIM_SECURITY_ATTRIBUTE_V1 = POINTER(_CLAIM_SECURITY_ATTRIBUTE_V1) + +class _CLAIM_SECURITY_ATTRIBUTES_INFORMATION_UNION(Union): + _fields_ = [ + ("pAttributeV1", PCLAIM_SECURITY_ATTRIBUTE_V1), + ] +CLAIM_SECURITY_ATTRIBUTES_INFORMATION_UNION = _CLAIM_SECURITY_ATTRIBUTES_INFORMATION_UNION + +class _CLAIM_SECURITY_ATTRIBUTES_INFORMATION(Structure): + _fields_ = [ + ("Version", WORD), + ("Reserved", WORD), + ("AttributeCount", DWORD), + ("Attribute", CLAIM_SECURITY_ATTRIBUTES_INFORMATION_UNION), + ] +CLAIM_SECURITY_ATTRIBUTES_INFORMATION = _CLAIM_SECURITY_ATTRIBUTES_INFORMATION +PCLAIM_SECURITY_ATTRIBUTES_INFORMATION = POINTER(_CLAIM_SECURITY_ATTRIBUTES_INFORMATION) + +class _SECURITY_DESCRIPTOR(Structure): + _fields_ = [ + ("Revision", BYTE), + ("Sbz1", BYTE), + ("Control", SECURITY_DESCRIPTOR_CONTROL), + ("Owner", PSID), + ("Group", PSID), + ("Sacl", PACL), + ("Dacl", PACL), + ] +PISECURITY_DESCRIPTOR = POINTER(_SECURITY_DESCRIPTOR) +SECURITY_DESCRIPTOR = _SECURITY_DESCRIPTOR + +class _GENERIC_MAPPING(Structure): + _fields_ = [ + ("GenericRead", ACCESS_MASK), + ("GenericWrite", ACCESS_MASK), + ("GenericExecute", ACCESS_MASK), + ("GenericAll", ACCESS_MASK), + ] +PGENERIC_MAPPING = POINTER(_GENERIC_MAPPING) +GENERIC_MAPPING = _GENERIC_MAPPING + +class _PRIVILEGE_SET(Structure): + _fields_ = [ + ("PrivilegeCount", DWORD), + ("Control", DWORD), + ("Privilege", LUID_AND_ATTRIBUTES * (ANYSIZE_ARRAY)), + ] +PRIVILEGE_SET = _PRIVILEGE_SET +PPRIVILEGE_SET = POINTER(_PRIVILEGE_SET) + +class _OBJECTS_AND_NAME_A(Structure): + _fields_ = [ + ("ObjectsPresent", DWORD), + ("ObjectType", SE_OBJECT_TYPE), + ("ObjectTypeName", LPSTR), + ("InheritedObjectTypeName", LPSTR), + ("ptstrName", LPSTR), + ] +OBJECTS_AND_NAME_A = _OBJECTS_AND_NAME_A +POBJECTS_AND_NAME_A = POINTER(_OBJECTS_AND_NAME_A) + +class _OBJECTS_AND_SID(Structure): + _fields_ = [ + ("ObjectsPresent", DWORD), + ("ObjectTypeGuid", GUID), + ("InheritedObjectTypeGuid", GUID), + ("pSid", PSID), + ] +POBJECTS_AND_SID = POINTER(_OBJECTS_AND_SID) +OBJECTS_AND_SID = _OBJECTS_AND_SID + +class _ANON__TRUSTEE_A_SUB_UNION_1(Union): + _fields_ = [ + ("ptstrName", LPSTR), + ("pSid", PSID), + ("pObjectsAndSid", POINTER(OBJECTS_AND_SID)), + ("pObjectsAndName", POINTER(OBJECTS_AND_NAME_A)), + ] + +# Self referencing struct tricks +class _TRUSTEE_A(Structure): pass +PTRUSTEEA = POINTER(_TRUSTEE_A) +TRUSTEEA = _TRUSTEE_A +TRUSTEE_A = _TRUSTEE_A +PTRUSTEE_A = POINTER(_TRUSTEE_A) +_TRUSTEE_A._fields_ = [ + ("pMultipleTrustee", POINTER(_TRUSTEE_A)), + ("MultipleTrusteeOperation", MULTIPLE_TRUSTEE_OPERATION), + ("TrusteeForm", TRUSTEE_FORM), + ("TrusteeType", TRUSTEE_TYPE), + ("anon_01", _ANON__TRUSTEE_A_SUB_UNION_1), + ("ptstrName", LPCH), +] + +class _OBJECTS_AND_NAME_W(Structure): + _fields_ = [ + ("ObjectsPresent", DWORD), + ("ObjectType", SE_OBJECT_TYPE), + ("ObjectTypeName", LPWSTR), + ("InheritedObjectTypeName", LPWSTR), + ("ptstrName", LPWSTR), + ] +OBJECTS_AND_NAME_W = _OBJECTS_AND_NAME_W +POBJECTS_AND_NAME_W = POINTER(_OBJECTS_AND_NAME_W) + +class _ANON__TRUSTEE_W_SUB_UNION_1(Union): + _fields_ = [ + ("ptstrName", LPWSTR), + ("pSid", PSID), + ("pObjectsAndSid", POINTER(OBJECTS_AND_SID)), + ("pObjectsAndName", POINTER(OBJECTS_AND_NAME_W)), + ] + +# Self referencing struct tricks +class _TRUSTEE_W(Structure): pass +PTRUSTEE_W = POINTER(_TRUSTEE_W) +TRUSTEE_W = _TRUSTEE_W +PTRUSTEEW = POINTER(_TRUSTEE_W) +TRUSTEEW = _TRUSTEE_W +_TRUSTEE_W._fields_ = [ + ("pMultipleTrustee", POINTER(_TRUSTEE_W)), + ("MultipleTrusteeOperation", MULTIPLE_TRUSTEE_OPERATION), + ("TrusteeForm", TRUSTEE_FORM), + ("TrusteeType", TRUSTEE_TYPE), + ("anon_01", _ANON__TRUSTEE_W_SUB_UNION_1), + ("ptstrName", LPWCH), +] + +class _EXPLICIT_ACCESS_W(Structure): + _fields_ = [ + ("grfAccessPermissions", DWORD), + ("grfAccessMode", ACCESS_MODE), + ("grfInheritance", DWORD), + ("Trustee", TRUSTEE_W), + ] +EXPLICIT_ACCESSW = _EXPLICIT_ACCESS_W +PEXPLICIT_ACCESSW = POINTER(_EXPLICIT_ACCESS_W) +PEXPLICIT_ACCESS_W = POINTER(_EXPLICIT_ACCESS_W) +EXPLICIT_ACCESS_W = _EXPLICIT_ACCESS_W + +ComputerNameNetBIOS = EnumValue("_COMPUTER_NAME_FORMAT", "ComputerNameNetBIOS", 0x0) +ComputerNameDnsHostname = EnumValue("_COMPUTER_NAME_FORMAT", "ComputerNameDnsHostname", 0x1) +ComputerNameDnsDomain = EnumValue("_COMPUTER_NAME_FORMAT", "ComputerNameDnsDomain", 0x2) +ComputerNameDnsFullyQualified = EnumValue("_COMPUTER_NAME_FORMAT", "ComputerNameDnsFullyQualified", 0x3) +ComputerNamePhysicalNetBIOS = EnumValue("_COMPUTER_NAME_FORMAT", "ComputerNamePhysicalNetBIOS", 0x4) +ComputerNamePhysicalDnsHostname = EnumValue("_COMPUTER_NAME_FORMAT", "ComputerNamePhysicalDnsHostname", 0x5) +ComputerNamePhysicalDnsDomain = EnumValue("_COMPUTER_NAME_FORMAT", "ComputerNamePhysicalDnsDomain", 0x6) +ComputerNamePhysicalDnsFullyQualified = EnumValue("_COMPUTER_NAME_FORMAT", "ComputerNamePhysicalDnsFullyQualified", 0x7) +ComputerNameMax = EnumValue("_COMPUTER_NAME_FORMAT", "ComputerNameMax", 0x8) +class _COMPUTER_NAME_FORMAT(EnumType): + values = [ComputerNameNetBIOS, ComputerNameDnsHostname, ComputerNameDnsDomain, ComputerNameDnsFullyQualified, ComputerNamePhysicalNetBIOS, ComputerNamePhysicalDnsHostname, ComputerNamePhysicalDnsDomain, ComputerNamePhysicalDnsFullyQualified, ComputerNameMax] + mapper = FlagMapper(*values) +COMPUTER_NAME_FORMAT = _COMPUTER_NAME_FORMAT + + +class _SYSTEM_PROCESS_INFORMATION(Structure): + _fields_ = [ + ("NextEntryOffset", ULONG), + ("NumberOfThreads", ULONG), + ("Reserved1", BYTE * (24)), + ("CreateTime", LARGE_INTEGER), + ("UserTime", LARGE_INTEGER), + ("KernelTime", LARGE_INTEGER), + ("ImageName", UNICODE_STRING), + ("BasePriority", LONG), + ("UniqueProcessId", HANDLE), + ("InheritedFromUniqueProcessId", PVOID), + ("HandleCount", ULONG), + ("Reserved4", BYTE * (4)), + ("Reserved5", PVOID * (1)), + ("PeakVirtualSize", PVOID), + ("VirtualSize", PVOID), + ("PageFaultCount", PVOID), + ("PeakWorkingSetSize", PVOID), + ("WorkingSetSize", PVOID), + ("QuotaPeakPagedPoolUsage", PVOID), + ("QuotaPagedPoolUsage", PVOID), + ("QuotaPeakNonPagedPoolUsage", PVOID), + ("QuotaNonPagedPoolUsage", PVOID), + ("PagefileUsage", PVOID), + ("PeakPagefileUsage", SIZE_T), + ("PrivatePageCount", SIZE_T), + ("Reserved6", LARGE_INTEGER * (6)), + ] +SYSTEM_PROCESS_INFORMATION = _SYSTEM_PROCESS_INFORMATION +PSYSTEM_PROCESS_INFORMATION = POINTER(_SYSTEM_PROCESS_INFORMATION) + +class _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION(Structure): + _fields_ = [ + ("IdleTime", LARGE_INTEGER), + ("KernelTime", LARGE_INTEGER), + ("UserTime", LARGE_INTEGER), + ("Reserved1", LARGE_INTEGER * (2)), + ("Reserved2", ULONG), + ] +SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION = _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION +PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION = POINTER(_SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION) + +class _SYSTEM_REGISTRY_QUOTA_INFORMATION(Structure): + _fields_ = [ + ("RegistryQuotaAllowed", ULONG), + ("RegistryQuotaUsed", ULONG), + ("Reserved1", PVOID), + ] +SYSTEM_REGISTRY_QUOTA_INFORMATION = _SYSTEM_REGISTRY_QUOTA_INFORMATION +PSYSTEM_REGISTRY_QUOTA_INFORMATION = POINTER(_SYSTEM_REGISTRY_QUOTA_INFORMATION) + +class _SYSTEM_BASIC_INFORMATION(Structure): + _fields_ = [ + ("Reserved1", BYTE * (24)), + ("Reserved2", PVOID * (4)), + ("NumberOfProcessors", CHAR), + ] +PSYSTEM_BASIC_INFORMATION = POINTER(_SYSTEM_BASIC_INFORMATION) +SYSTEM_BASIC_INFORMATION = _SYSTEM_BASIC_INFORMATION + +class _TIME_ZONE_INFORMATION(Structure): + _fields_ = [ + ("Bias", LONG), + ("StandardName", WCHAR * (32)), + ("StandardDate", SYSTEMTIME), + ("StandardBias", LONG), + ("DaylightName", WCHAR * (32)), + ("DaylightDate", SYSTEMTIME), + ("DaylightBias", LONG), + ] +LPTIME_ZONE_INFORMATION = POINTER(_TIME_ZONE_INFORMATION) +PTIME_ZONE_INFORMATION = POINTER(_TIME_ZONE_INFORMATION) +TIME_ZONE_INFORMATION = _TIME_ZONE_INFORMATION + +TraceGuidQueryList = EnumValue("TRACE_INFO_CLASS", "TraceGuidQueryList", 0x0) +TraceGuidQueryInfo = EnumValue("TRACE_INFO_CLASS", "TraceGuidQueryInfo", 0x1) +TraceGuidQueryProcess = EnumValue("TRACE_INFO_CLASS", "TraceGuidQueryProcess", 0x2) +TraceStackTracingInfo = EnumValue("TRACE_INFO_CLASS", "TraceStackTracingInfo", 0x3) +TraceSystemTraceEnableFlagsInfo = EnumValue("TRACE_INFO_CLASS", "TraceSystemTraceEnableFlagsInfo", 0x4) +TraceSampledProfileIntervalInfo = EnumValue("TRACE_INFO_CLASS", "TraceSampledProfileIntervalInfo", 0x5) +TraceProfileSourceConfigInfo = EnumValue("TRACE_INFO_CLASS", "TraceProfileSourceConfigInfo", 0x6) +TraceProfileSourceListInfo = EnumValue("TRACE_INFO_CLASS", "TraceProfileSourceListInfo", 0x7) +TracePmcEventListInfo = EnumValue("TRACE_INFO_CLASS", "TracePmcEventListInfo", 0x8) +TracePmcCounterListInfo = EnumValue("TRACE_INFO_CLASS", "TracePmcCounterListInfo", 0x9) +TraceSetDisallowList = EnumValue("TRACE_INFO_CLASS", "TraceSetDisallowList", 0xa) +TraceVersionInfo = EnumValue("TRACE_INFO_CLASS", "TraceVersionInfo", 0xb) +TraceGroupQueryList = EnumValue("TRACE_INFO_CLASS", "TraceGroupQueryList", 0xc) +TraceGroupQueryInfo = EnumValue("TRACE_INFO_CLASS", "TraceGroupQueryInfo", 0xd) +TraceDisallowListQuery = EnumValue("TRACE_INFO_CLASS", "TraceDisallowListQuery", 0xe) +TraceInfoReserved15 = EnumValue("TRACE_INFO_CLASS", "TraceInfoReserved15", 0xf) +TracePeriodicCaptureStateListInfo = EnumValue("TRACE_INFO_CLASS", "TracePeriodicCaptureStateListInfo", 0x10) +TracePeriodicCaptureStateInfo = EnumValue("TRACE_INFO_CLASS", "TracePeriodicCaptureStateInfo", 0x11) +TraceProviderBinaryTracking = EnumValue("TRACE_INFO_CLASS", "TraceProviderBinaryTracking", 0x12) +TraceMaxLoggersQuery = EnumValue("TRACE_INFO_CLASS", "TraceMaxLoggersQuery", 0x13) +MaxTraceSetInfoClass = EnumValue("TRACE_INFO_CLASS", "MaxTraceSetInfoClass", 0x14) +class TRACE_INFO_CLASS(EnumType): + values = [TraceGuidQueryList, TraceGuidQueryInfo, TraceGuidQueryProcess, TraceStackTracingInfo, TraceSystemTraceEnableFlagsInfo, TraceSampledProfileIntervalInfo, TraceProfileSourceConfigInfo, TraceProfileSourceListInfo, TracePmcEventListInfo, TracePmcCounterListInfo, TraceSetDisallowList, TraceVersionInfo, TraceGroupQueryList, TraceGroupQueryInfo, TraceDisallowListQuery, TraceInfoReserved15, TracePeriodicCaptureStateListInfo, TracePeriodicCaptureStateInfo, TraceProviderBinaryTracking, TraceMaxLoggersQuery, MaxTraceSetInfoClass] + mapper = FlagMapper(*values) +TRACE_QUERY_INFO_CLASS = TRACE_INFO_CLASS + + +class _TRACE_GUID_INFO(Structure): + _fields_ = [ + ("InstanceCount", ULONG), + ("Reserved", ULONG), + ] +PTRACE_GUID_INFO = POINTER(_TRACE_GUID_INFO) +TRACE_GUID_INFO = _TRACE_GUID_INFO + +class _TRACE_PROVIDER_INSTANCE_INFO(Structure): + _fields_ = [ + ("NextOffset", ULONG), + ("EnableCount", ULONG), + ("Pid", ULONG), + ("Flags", ULONG), + ] +TRACE_PROVIDER_INSTANCE_INFO = _TRACE_PROVIDER_INSTANCE_INFO +PTRACE_PROVIDER_INSTANCE_INFO = POINTER(_TRACE_PROVIDER_INSTANCE_INFO) + +class _TRACE_ENABLE_INFO(Structure): + _fields_ = [ + ("IsEnabled", ULONG), + ("Level", UCHAR), + ("Reserved1", UCHAR), + ("LoggerId", USHORT), + ("EnableProperty", ULONG), + ("Reserved2", ULONG), + ("MatchAnyKeyword", ULONGLONG), + ("MatchAllKeyword", ULONGLONG), + ] +PTRACE_ENABLE_INFO = POINTER(_TRACE_ENABLE_INFO) +TRACE_ENABLE_INFO = _TRACE_ENABLE_INFO + +class _ANON__ANON__WNODE_HEADER_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("Version", ULONG), + ("Linkage", ULONG), + ] + +class _ANON__WNODE_HEADER_SUB_UNION_1(Union): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("HistoricalContext", ULONG64), + ("anon_01", _ANON__ANON__WNODE_HEADER_SUB_UNION_1_SUB_STRUCTURE_1), + ] + + +class _ANON__WNODE_HEADER_SUB_UNION_2(Union): + _fields_ = [ + ("KernelHandle", HANDLE), + ("TimeStamp", LARGE_INTEGER), + ] + +class _WNODE_HEADER(Structure): + _anonymous_ = ("anon_01","anon_02") + _fields_ = [ + ("BufferSize", ULONG), + ("ProviderId", ULONG), + ("anon_01", _ANON__WNODE_HEADER_SUB_UNION_1), + ("anon_02", _ANON__WNODE_HEADER_SUB_UNION_2), + ("Guid", GUID), + ("ClientContext", ULONG), + ("Flags", ULONG), + ] +PWNODE_HEADER = POINTER(_WNODE_HEADER) +WNODE_HEADER = _WNODE_HEADER + +class _EVENT_TRACE_PROPERTIES(Structure): + _fields_ = [ + ("Wnode", WNODE_HEADER), + ("BufferSize", ULONG), + ("MinimumBuffers", ULONG), + ("MaximumBuffers", ULONG), + ("MaximumFileSize", ULONG), + ("LogFileMode", ULONG), + ("FlushTimer", ULONG), + ("EnableFlags", ULONG), + ("AgeLimit", LONG), + ("NumberOfBuffers", ULONG), + ("FreeBuffers", ULONG), + ("EventsLost", ULONG), + ("BuffersWritten", ULONG), + ("LogBuffersLost", ULONG), + ("RealTimeBuffersLost", ULONG), + ("LoggerThreadId", HANDLE), + ("LogFileNameOffset", ULONG), + ("LoggerNameOffset", ULONG), + ] +EVENT_TRACE_PROPERTIES = _EVENT_TRACE_PROPERTIES +PEVENT_TRACE_PROPERTIES = POINTER(_EVENT_TRACE_PROPERTIES) + +class _ANON__ANON__EVENT_TRACE_HEADER_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("HeaderType", BYTE), + ("MarkerFlags", BYTE), + ] + +class _ANON__EVENT_TRACE_HEADER_SUB_UNION_1(Union): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("FieldTypeFlags", USHORT), + ("anon_01", _ANON__ANON__EVENT_TRACE_HEADER_SUB_UNION_1_SUB_STRUCTURE_1), + ] + + +class _ANON__ANON__EVENT_TRACE_HEADER_SUB_UNION_2_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("Type", BYTE), + ("Level", BYTE), + ("Version", USHORT), + ] + +class _ANON__EVENT_TRACE_HEADER_SUB_UNION_2(Union): + _anonymous_ = ("Class",) + _fields_ = [ + ("Version", ULONG), + ("Class", _ANON__ANON__EVENT_TRACE_HEADER_SUB_UNION_2_SUB_STRUCTURE_1), + ] + + +class _ANON__EVENT_TRACE_HEADER_SUB_UNION_3(Union): + _fields_ = [ + ("Guid", GUID), + ("GuidPtr", ULONGLONG), + ] + + +class _ANON__ANON__EVENT_TRACE_HEADER_SUB_UNION_4_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("KernelTime", ULONG), + ("UserTime", ULONG), + ] + + +class _ANON__ANON__EVENT_TRACE_HEADER_SUB_UNION_4_SUB_STRUCTURE_2(Structure): + _fields_ = [ + ("ClientContext", ULONG), + ("Flags", ULONG), + ] + +class _ANON__EVENT_TRACE_HEADER_SUB_UNION_4(Union): + _anonymous_ = ("anon_01","anon_02") + _fields_ = [ + ("anon_01", _ANON__ANON__EVENT_TRACE_HEADER_SUB_UNION_4_SUB_STRUCTURE_1), + ("ProcessorTime", ULONG64), + ("anon_02", _ANON__ANON__EVENT_TRACE_HEADER_SUB_UNION_4_SUB_STRUCTURE_2), + ] + +class _EVENT_TRACE_HEADER(Structure): + _anonymous_ = ("anon_01","anon_02","anon_03","anon_04") + _fields_ = [ + ("Size", USHORT), + ("anon_01", _ANON__EVENT_TRACE_HEADER_SUB_UNION_1), + ("anon_02", _ANON__EVENT_TRACE_HEADER_SUB_UNION_2), + ("ThreadId", ULONG), + ("ProcessId", ULONG), + ("TimeStamp", LARGE_INTEGER), + ("anon_03", _ANON__EVENT_TRACE_HEADER_SUB_UNION_3), + ("anon_04", _ANON__EVENT_TRACE_HEADER_SUB_UNION_4), + ] +EVENT_TRACE_HEADER = _EVENT_TRACE_HEADER +PEVENT_TRACE_HEADER = POINTER(_EVENT_TRACE_HEADER) + +class _ANON__ANON__ETW_BUFFER_CONTEXT_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("ProcessorNumber", BYTE), + ("Alignment", BYTE), + ] + +class _ANON__ETW_BUFFER_CONTEXT_SUB_UNION_1(Union): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("anon_01", _ANON__ANON__ETW_BUFFER_CONTEXT_SUB_UNION_1_SUB_STRUCTURE_1), + ("ProcessorIndex", USHORT), + ] + +class _ETW_BUFFER_CONTEXT(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("anon_01", _ANON__ETW_BUFFER_CONTEXT_SUB_UNION_1), + ("LoggerId", USHORT), + ] +PETW_BUFFER_CONTEXT = POINTER(_ETW_BUFFER_CONTEXT) +ETW_BUFFER_CONTEXT = _ETW_BUFFER_CONTEXT + +class _ANON__EVENT_TRACE_SUB_UNION_1(Union): + _fields_ = [ + ("ClientContext", ULONG), + ("BufferContext", ETW_BUFFER_CONTEXT), + ] + +class _EVENT_TRACE(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("Header", EVENT_TRACE_HEADER), + ("InstanceId", ULONG), + ("ParentInstanceId", ULONG), + ("ParentGuid", GUID), + ("MofData", PVOID), + ("MofLength", ULONG), + ("anon_01", _ANON__EVENT_TRACE_SUB_UNION_1), + ] +EVENT_TRACE = _EVENT_TRACE +PEVENT_TRACE = POINTER(_EVENT_TRACE) + +class _ANON__ANON__TRACE_LOGFILE_HEADER_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("MajorVersion", UCHAR), + ("MinorVersion", UCHAR), + ("SubVersion", UCHAR), + ("SubMinorVersion", UCHAR), + ] + +class _ANON__TRACE_LOGFILE_HEADER_SUB_UNION_1(Union): + _anonymous_ = ("VersionDetail",) + _fields_ = [ + ("Version", ULONG), + ("VersionDetail", _ANON__ANON__TRACE_LOGFILE_HEADER_SUB_UNION_1_SUB_STRUCTURE_1), + ] + + +class _ANON__ANON__TRACE_LOGFILE_HEADER_SUB_UNION_2_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("StartBuffers", ULONG), + ("PointerSize", ULONG), + ("EventsLost", ULONG), + ("CpuSpeedInMHz", ULONG), + ] + +class _ANON__TRACE_LOGFILE_HEADER_SUB_UNION_2(Union): + _anonymous_ = ("DUMMYSTRUCTNAME",) + _fields_ = [ + ("LogInstanceGuid", GUID), + ("DUMMYSTRUCTNAME", _ANON__ANON__TRACE_LOGFILE_HEADER_SUB_UNION_2_SUB_STRUCTURE_1), + ] + +class _TRACE_LOGFILE_HEADER(Structure): + _anonymous_ = ("DUMMYUNIONNAME","DUMMYUNIONNAME2") + _fields_ = [ + ("BufferSize", ULONG), + ("DUMMYUNIONNAME", _ANON__TRACE_LOGFILE_HEADER_SUB_UNION_1), + ("ProviderVersion", ULONG), + ("NumberOfProcessors", ULONG), + ("EndTime", LARGE_INTEGER), + ("TimerResolution", ULONG), + ("MaximumFileSize", ULONG), + ("LogFileMode", ULONG), + ("BuffersWritten", ULONG), + ("DUMMYUNIONNAME2", _ANON__TRACE_LOGFILE_HEADER_SUB_UNION_2), + ("LoggerName", LPWSTR), + ("LogFileName", LPWSTR), + ("TimeZone", TIME_ZONE_INFORMATION), + ("BootTime", LARGE_INTEGER), + ("PerfFreq", LARGE_INTEGER), + ("StartTime", LARGE_INTEGER), + ("ReservedFlags", ULONG), + ("BuffersLost", ULONG), + ] +TRACE_LOGFILE_HEADER = _TRACE_LOGFILE_HEADER +PTRACE_LOGFILE_HEADER = POINTER(_TRACE_LOGFILE_HEADER) + +class _ANON__EVENT_TRACE_LOGFILEA_SUB_UNION_1(Union): + _fields_ = [ + ("LogFileMode", ULONG), + ("ProcessTraceMode", ULONG), + ] + + +class _ANON__EVENT_TRACE_LOGFILEA_SUB_UNION_2(Union): + _fields_ = [ + ("EventCallback", PEVENT_CALLBACK), + ("EventRecordCallback", PEVENT_RECORD_CALLBACK), + ] + +class _EVENT_TRACE_LOGFILEA(Structure): + _anonymous_ = ("anon_01","anon_02") + _fields_ = [ + ("LogFileName", LPSTR), + ("LoggerName", LPSTR), + ("CurrentTime", LONGLONG), + ("BuffersRead", ULONG), + ("anon_01", _ANON__EVENT_TRACE_LOGFILEA_SUB_UNION_1), + ("CurrentEvent", EVENT_TRACE), + ("LogfileHeader", TRACE_LOGFILE_HEADER), + ("BufferCallback", PEVENT_TRACE_BUFFER_CALLBACKA), + ("BufferSize", ULONG), + ("Filled", ULONG), + ("EventsLost", ULONG), + ("anon_02", _ANON__EVENT_TRACE_LOGFILEA_SUB_UNION_2), + ("IsKernelTrace", ULONG), + ("Context", PVOID), + ] +EVENT_TRACE_LOGFILEA = _EVENT_TRACE_LOGFILEA +PEVENT_TRACE_LOGFILEA = POINTER(_EVENT_TRACE_LOGFILEA) + +class _ANON__EVENT_TRACE_LOGFILEW_SUB_UNION_1(Union): + _fields_ = [ + ("LogFileMode", ULONG), + ("ProcessTraceMode", ULONG), + ] + + +class _ANON__EVENT_TRACE_LOGFILEW_SUB_UNION_2(Union): + _fields_ = [ + ("EventCallback", PEVENT_CALLBACK), + ("EventRecordCallback", PEVENT_RECORD_CALLBACK), + ] + +class _EVENT_TRACE_LOGFILEW(Structure): + _anonymous_ = ("anon_01","anon_02") + _fields_ = [ + ("LogFileName", LPWSTR), + ("LoggerName", LPWSTR), + ("CurrentTime", LONGLONG), + ("BuffersRead", ULONG), + ("anon_01", _ANON__EVENT_TRACE_LOGFILEW_SUB_UNION_1), + ("CurrentEvent", EVENT_TRACE), + ("LogfileHeader", TRACE_LOGFILE_HEADER), + ("BufferCallback", PEVENT_TRACE_BUFFER_CALLBACKW), + ("BufferSize", ULONG), + ("Filled", ULONG), + ("EventsLost", ULONG), + ("anon_02", _ANON__EVENT_TRACE_LOGFILEW_SUB_UNION_2), + ("IsKernelTrace", ULONG), + ("Context", PVOID), + ] +EVENT_TRACE_LOGFILEW = _EVENT_TRACE_LOGFILEW +PEVENT_TRACE_LOGFILEW = POINTER(_EVENT_TRACE_LOGFILEW) + +class _EVENT_FILTER_DESCRIPTOR(Structure): + _fields_ = [ + ("Ptr", ULONGLONG), + ("Size", ULONG), + ("Type", ULONG), + ] +PEVENT_FILTER_DESCRIPTOR = POINTER(_EVENT_FILTER_DESCRIPTOR) +EVENT_FILTER_DESCRIPTOR = _EVENT_FILTER_DESCRIPTOR + +class _ENABLE_TRACE_PARAMETERS(Structure): + _fields_ = [ + ("Version", ULONG), + ("EnableProperty", ULONG), + ("ControlFlags", ULONG), + ("SourceId", GUID), + ("EnableFilterDesc", PEVENT_FILTER_DESCRIPTOR), + ("FilterDescCount", ULONG), + ] +ENABLE_TRACE_PARAMETERS = _ENABLE_TRACE_PARAMETERS +PENABLE_TRACE_PARAMETERS = POINTER(_ENABLE_TRACE_PARAMETERS) + +class _EVENT_DESCRIPTOR(Structure): + _fields_ = [ + ("Id", USHORT), + ("Version", BYTE), + ("Channel", BYTE), + ("Level", BYTE), + ("Opcode", BYTE), + ("Task", USHORT), + ("Keyword", ULONGLONG), + ] +EVENT_DESCRIPTOR = _EVENT_DESCRIPTOR +PEVENT_DESCRIPTOR = POINTER(_EVENT_DESCRIPTOR) +PCEVENT_DESCRIPTOR = POINTER(_EVENT_DESCRIPTOR) + +class _EVENT_DESCRIPTOR(_EVENT_DESCRIPTOR): + def __repr__(self): + return "<{0} Id={self.Id} Opcode={self.Opcode} Version={self.Version} Level={self.Level}>".format(type(self).__name__, self=self) +EVENT_DESCRIPTOR = _EVENT_DESCRIPTOR +PEVENT_DESCRIPTOR = POINTER(_EVENT_DESCRIPTOR) +PCEVENT_DESCRIPTOR = POINTER(_EVENT_DESCRIPTOR) +class _ANON__ANON__EVENT_HEADER_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("KernelTime", ULONG), + ("UserTime", ULONG), + ] + +class _ANON__EVENT_HEADER_SUB_UNION_1(Union): + _anonymous_ = ("DUMMYSTRUCTNAME",) + _fields_ = [ + ("DUMMYSTRUCTNAME", _ANON__ANON__EVENT_HEADER_SUB_UNION_1_SUB_STRUCTURE_1), + ("ProcessorTime", ULONG64), + ] + +class _EVENT_HEADER(Structure): + _anonymous_ = ("DUMMYUNIONNAME",) + _fields_ = [ + ("Size", USHORT), + ("HeaderType", USHORT), + ("Flags", USHORT), + ("EventProperty", USHORT), + ("ThreadId", ULONG), + ("ProcessId", ULONG), + ("TimeStamp", LARGE_INTEGER), + ("ProviderId", GUID), + ("EventDescriptor", EVENT_DESCRIPTOR), + ("DUMMYUNIONNAME", _ANON__EVENT_HEADER_SUB_UNION_1), + ("ActivityId", GUID), + ] +EVENT_HEADER = _EVENT_HEADER +PEVENT_HEADER = POINTER(_EVENT_HEADER) + +class _ANON__EVENT_HEADER_EXTENDED_DATA_ITEM_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("Linkage", USHORT, 1), + ("Reserved2", USHORT, 15), + ] + +class _EVENT_HEADER_EXTENDED_DATA_ITEM(Structure): + _anonymous_ = ("anon_01",) + _fields_ = [ + ("Reserved1", USHORT), + ("ExtType", USHORT), + ("anon_01", _ANON__EVENT_HEADER_EXTENDED_DATA_ITEM_SUB_STRUCTURE_1), + ("DataSize", USHORT), + ("DataPtr", ULONGLONG), + ] +EVENT_HEADER_EXTENDED_DATA_ITEM = _EVENT_HEADER_EXTENDED_DATA_ITEM +PEVENT_HEADER_EXTENDED_DATA_ITEM = POINTER(_EVENT_HEADER_EXTENDED_DATA_ITEM) + +_OLD_EVENT_HEADER_EXTENDED_DATA_ITEM = _EVENT_HEADER_EXTENDED_DATA_ITEM +class _EVENT_HEADER_EXTENDED_DATA_ITEM(_OLD_EVENT_HEADER_EXTENDED_DATA_ITEM): + @property + def data(self): + bdata = (ctypes.c_char * self.DataSize).from_address(self.DataPtr) + return bdata[:] +EVENT_HEADER_EXTENDED_DATA_ITEM = _EVENT_HEADER_EXTENDED_DATA_ITEM +PEVENT_HEADER_EXTENDED_DATA_ITEM = POINTER(_EVENT_HEADER_EXTENDED_DATA_ITEM) +class _EVENT_RECORD(Structure): + _fields_ = [ + ("EventHeader", EVENT_HEADER), + ("BufferContext", ETW_BUFFER_CONTEXT), + ("ExtendedDataCount", USHORT), + ("UserDataLength", USHORT), + ("ExtendedData", PEVENT_HEADER_EXTENDED_DATA_ITEM), + ("UserData", PVOID), + ("UserContext", PVOID), + ] +EVENT_RECORD = _EVENT_RECORD +PEVENT_RECORD = POINTER(_EVENT_RECORD) + +_OLD_EVENT_RECORD = _EVENT_RECORD +class _EVENT_RECORD(_OLD_EVENT_RECORD): + pass +EVENT_RECORD = _EVENT_RECORD +PEVENT_RECORD = POINTER(_EVENT_RECORD) +class _TRACE_GUID_REGISTRATION(Structure): + _fields_ = [ + ("Guid", LPCGUID), + ("RegHandle", HANDLE), + ] +TRACE_GUID_REGISTRATION = _TRACE_GUID_REGISTRATION +PTRACE_GUID_REGISTRATION = POINTER(_TRACE_GUID_REGISTRATION) + +class _ANON__ANON__EVENT_DATA_DESCRIPTOR_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("Type", UCHAR), + ("Reserved1", UCHAR), + ("Reserved2", USHORT), + ] + +class _ANON__EVENT_DATA_DESCRIPTOR_SUB_UNION_1(Union): + _anonymous_ = ("DUMMYSTRUCTNAME",) + _fields_ = [ + ("Reserved", ULONG), + ("DUMMYSTRUCTNAME", _ANON__ANON__EVENT_DATA_DESCRIPTOR_SUB_UNION_1_SUB_STRUCTURE_1), + ] + +class _EVENT_DATA_DESCRIPTOR(Structure): + _anonymous_ = ("DUMMYUNIONNAME",) + _fields_ = [ + ("Ptr", ULONGLONG), + ("Size", ULONG), + ("DUMMYUNIONNAME", _ANON__EVENT_DATA_DESCRIPTOR_SUB_UNION_1), + ] +EVENT_DATA_DESCRIPTOR = _EVENT_DATA_DESCRIPTOR +PEVENT_DATA_DESCRIPTOR = POINTER(_EVENT_DATA_DESCRIPTOR) + +TokenInvalid = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenInvalid", 0x0) +TokenUser = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenUser", 0x1) +TokenGroups = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenGroups", 0x2) +TokenPrivileges = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenPrivileges", 0x3) +TokenOwner = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenOwner", 0x4) +TokenPrimaryGroup = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenPrimaryGroup", 0x5) +TokenDefaultDacl = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenDefaultDacl", 0x6) +TokenSource = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenSource", 0x7) +TokenType = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenType", 0x8) +TokenImpersonationLevel = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenImpersonationLevel", 0x9) +TokenStatistics = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenStatistics", 0xa) +TokenRestrictedSids = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenRestrictedSids", 0xb) +TokenSessionId = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenSessionId", 0xc) +TokenGroupsAndPrivileges = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenGroupsAndPrivileges", 0xd) +TokenSessionReference = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenSessionReference", 0xe) +TokenSandBoxInert = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenSandBoxInert", 0xf) +TokenAuditPolicy = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenAuditPolicy", 0x10) +TokenOrigin = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenOrigin", 0x11) +TokenElevationType = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenElevationType", 0x12) +TokenLinkedToken = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenLinkedToken", 0x13) +TokenElevation = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenElevation", 0x14) +TokenHasRestrictions = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenHasRestrictions", 0x15) +TokenAccessInformation = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenAccessInformation", 0x16) +TokenVirtualizationAllowed = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenVirtualizationAllowed", 0x17) +TokenVirtualizationEnabled = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenVirtualizationEnabled", 0x18) +TokenIntegrityLevel = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenIntegrityLevel", 0x19) +TokenUIAccess = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenUIAccess", 0x1a) +TokenMandatoryPolicy = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenMandatoryPolicy", 0x1b) +TokenLogonSid = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenLogonSid", 0x1c) +TokenIsAppContainer = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenIsAppContainer", 0x1d) +TokenCapabilities = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenCapabilities", 0x1e) +TokenAppContainerSid = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenAppContainerSid", 0x1f) +TokenAppContainerNumber = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenAppContainerNumber", 0x20) +TokenUserClaimAttributes = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenUserClaimAttributes", 0x21) +TokenDeviceClaimAttributes = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenDeviceClaimAttributes", 0x22) +TokenRestrictedUserClaimAttributes = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenRestrictedUserClaimAttributes", 0x23) +TokenRestrictedDeviceClaimAttributes = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenRestrictedDeviceClaimAttributes", 0x24) +TokenDeviceGroups = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenDeviceGroups", 0x25) +TokenRestrictedDeviceGroups = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenRestrictedDeviceGroups", 0x26) +TokenSecurityAttributes = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenSecurityAttributes", 0x27) +TokenIsRestricted = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenIsRestricted", 0x28) +TokenProcessTrustLevel = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenProcessTrustLevel", 0x29) +TokenPrivateNameSpace = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenPrivateNameSpace", 0x2a) +TokenSingletonAttributes = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenSingletonAttributes", 0x2b) +TokenBnoIsolation = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenBnoIsolation", 0x2c) +TokenChildProcessFlags = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenChildProcessFlags", 0x2d) +MaxTokenInfoClass = EnumValue("_TOKEN_INFORMATION_CLASS", "MaxTokenInfoClass", 0x2e) +class _TOKEN_INFORMATION_CLASS(EnumType): + values = [TokenInvalid, TokenUser, TokenGroups, TokenPrivileges, TokenOwner, TokenPrimaryGroup, TokenDefaultDacl, TokenSource, TokenType, TokenImpersonationLevel, TokenStatistics, TokenRestrictedSids, TokenSessionId, TokenGroupsAndPrivileges, TokenSessionReference, TokenSandBoxInert, TokenAuditPolicy, TokenOrigin, TokenElevationType, TokenLinkedToken, TokenElevation, TokenHasRestrictions, TokenAccessInformation, TokenVirtualizationAllowed, TokenVirtualizationEnabled, TokenIntegrityLevel, TokenUIAccess, TokenMandatoryPolicy, TokenLogonSid, TokenIsAppContainer, TokenCapabilities, TokenAppContainerSid, TokenAppContainerNumber, TokenUserClaimAttributes, TokenDeviceClaimAttributes, TokenRestrictedUserClaimAttributes, TokenRestrictedDeviceClaimAttributes, TokenDeviceGroups, TokenRestrictedDeviceGroups, TokenSecurityAttributes, TokenIsRestricted, TokenProcessTrustLevel, TokenPrivateNameSpace, TokenSingletonAttributes, TokenBnoIsolation, TokenChildProcessFlags, MaxTokenInfoClass] + mapper = FlagMapper(*values) +TOKEN_INFORMATION_CLASS = _TOKEN_INFORMATION_CLASS +PTOKEN_INFORMATION_CLASS = POINTER(_TOKEN_INFORMATION_CLASS) + + +TokenElevationTypeDefault = EnumValue("_TOKEN_ELEVATION_TYPE", "TokenElevationTypeDefault", 0x1) +TokenElevationTypeFull = EnumValue("_TOKEN_ELEVATION_TYPE", "TokenElevationTypeFull", 0x2) +TokenElevationTypeLimited = EnumValue("_TOKEN_ELEVATION_TYPE", "TokenElevationTypeLimited", 0x3) +class _TOKEN_ELEVATION_TYPE(EnumType): + values = [TokenElevationTypeDefault, TokenElevationTypeFull, TokenElevationTypeLimited] + mapper = FlagMapper(*values) +TOKEN_ELEVATION_TYPE = _TOKEN_ELEVATION_TYPE +PTOKEN_ELEVATION_TYPE = POINTER(_TOKEN_ELEVATION_TYPE) + + +class _TOKEN_PRIVILEGES(Structure): + _fields_ = [ + ("PrivilegeCount", DWORD), + ("Privileges", LUID_AND_ATTRIBUTES * (ANYSIZE_ARRAY)), + ] +TOKEN_PRIVILEGES = _TOKEN_PRIVILEGES +PTOKEN_PRIVILEGES = POINTER(_TOKEN_PRIVILEGES) + +class _TOKEN_ELEVATION(Structure): + _fields_ = [ + ("TokenIsElevated", DWORD), + ] +TOKEN_ELEVATION = _TOKEN_ELEVATION +PTOKEN_ELEVATION = POINTER(_TOKEN_ELEVATION) + +class _SID_AND_ATTRIBUTES(Structure): + _fields_ = [ + ("Sid", PSID), + ("Attributes", DWORD), + ] +SID_AND_ATTRIBUTES = _SID_AND_ATTRIBUTES +PSID_AND_ATTRIBUTES = POINTER(_SID_AND_ATTRIBUTES) + +_INITIAL_SID_AND_ATTRIBUTES = _SID_AND_ATTRIBUTES +class _SID_AND_ATTRIBUTES(_INITIAL_SID_AND_ATTRIBUTES): + pass + + # Only in TOKEN_GROUPS + # attributes = FlagExatractor(_INITIAL_SID_AND_ATTRIBUTES.Attributes, + # (SE_GROUP_MANDATORY, + # SE_GROUP_ENABLED_BY_DEFAULT, + # SE_GROUP_ENABLED, + # SE_GROUP_OWNER, + # SE_GROUP_USE_FOR_DENY_ONLY, + # SE_GROUP_INTEGRITY, + # SE_GROUP_INTEGRITY_ENABLED, + # SE_GROUP_LOGON_ID, + # SE_GROUP_RESOURCE)) +SID_AND_ATTRIBUTES = _SID_AND_ATTRIBUTES +PSID_AND_ATTRIBUTES = POINTER(_SID_AND_ATTRIBUTES) +class _TOKEN_MANDATORY_LABEL(Structure): + _fields_ = [ + ("Label", SID_AND_ATTRIBUTES), + ] +TOKEN_MANDATORY_LABEL = _TOKEN_MANDATORY_LABEL +PTOKEN_MANDATORY_LABEL = POINTER(_TOKEN_MANDATORY_LABEL) + +class _TOKEN_USER(Structure): + _fields_ = [ + ("User", SID_AND_ATTRIBUTES), + ] +PTOKEN_USER = POINTER(_TOKEN_USER) +TOKEN_USER = _TOKEN_USER + +class _TOKEN_DEFAULT_DACL(Structure): + _fields_ = [ + ("DefaultDacl", PACL), + ] +TOKEN_DEFAULT_DACL = _TOKEN_DEFAULT_DACL +PTOKEN_DEFAULT_DACL = POINTER(_TOKEN_DEFAULT_DACL) + +class _TOKEN_GROUPS(Structure): + _fields_ = [ + ("GroupCount", DWORD), + ("Groups", SID_AND_ATTRIBUTES * (ANYSIZE_ARRAY)), + ] +TOKEN_GROUPS = _TOKEN_GROUPS +PTOKEN_GROUPS = POINTER(_TOKEN_GROUPS) + +class _TOKEN_OWNER(Structure): + _fields_ = [ + ("Owner", PSID), + ] +TOKEN_OWNER = _TOKEN_OWNER +PTOKEN_OWNER = POINTER(_TOKEN_OWNER) + +class _TOKEN_PRIMARY_GROUP(Structure): + _fields_ = [ + ("PrimaryGroup", PSID), + ] +PTOKEN_PRIMARY_GROUP = POINTER(_TOKEN_PRIMARY_GROUP) +TOKEN_PRIMARY_GROUP = _TOKEN_PRIMARY_GROUP + +class _TOKEN_SOURCE(Structure): + _fields_ = [ + ("SourceName", CHAR * (TOKEN_SOURCE_LENGTH)), + ("SourceIdentifier", LUID), + ] +PTOKEN_SOURCE = POINTER(_TOKEN_SOURCE) +TOKEN_SOURCE = _TOKEN_SOURCE + +class _TOKEN_STATISTICS(Structure): + _fields_ = [ + ("TokenId", LUID), + ("AuthenticationId", LUID), + ("ExpirationTime", LARGE_INTEGER), + ("TokenType", TOKEN_TYPE), + ("ImpersonationLevel", SECURITY_IMPERSONATION_LEVEL), + ("DynamicCharged", DWORD), + ("DynamicAvailable", DWORD), + ("GroupCount", DWORD), + ("PrivilegeCount", DWORD), + ("ModifiedId", LUID), + ] +PTOKEN_STATISTICS = POINTER(_TOKEN_STATISTICS) +TOKEN_STATISTICS = _TOKEN_STATISTICS + +class _TOKEN_ORIGIN(Structure): + _fields_ = [ + ("OriginatingLogonSession", LUID), + ] +TOKEN_ORIGIN = _TOKEN_ORIGIN +PTOKEN_ORIGIN = POINTER(_TOKEN_ORIGIN) + +class _TOKEN_LINKED_TOKEN(Structure): + _fields_ = [ + ("LinkedToken", HANDLE), + ] +PTOKEN_LINKED_TOKEN = POINTER(_TOKEN_LINKED_TOKEN) +TOKEN_LINKED_TOKEN = _TOKEN_LINKED_TOKEN + +class _TOKEN_MANDATORY_POLICY(Structure): + _fields_ = [ + ("Policy", DWORD), + ] +TOKEN_MANDATORY_POLICY = _TOKEN_MANDATORY_POLICY +PTOKEN_MANDATORY_POLICY = POINTER(_TOKEN_MANDATORY_POLICY) + +class _SID_AND_ATTRIBUTES_HASH(Structure): + _fields_ = [ + ("SidCount", DWORD), + ("SidAttr", PSID_AND_ATTRIBUTES), + ("Hash", SID_HASH_ENTRY * (SID_HASH_SIZE)), + ] +SID_AND_ATTRIBUTES_HASH = _SID_AND_ATTRIBUTES_HASH +PSID_AND_ATTRIBUTES_HASH = POINTER(_SID_AND_ATTRIBUTES_HASH) + +class _TOKEN_APPCONTAINER_INFORMATION(Structure): + _fields_ = [ + ("TokenAppContainer", PSID), + ] +PTOKEN_APPCONTAINER_INFORMATION = POINTER(_TOKEN_APPCONTAINER_INFORMATION) +TOKEN_APPCONTAINER_INFORMATION = _TOKEN_APPCONTAINER_INFORMATION + +class _TOKEN_ACCESS_INFORMATION(Structure): + _fields_ = [ + ("SidHash", PSID_AND_ATTRIBUTES_HASH), + ("RestrictedSidHash", PSID_AND_ATTRIBUTES_HASH), + ("Privileges", PTOKEN_PRIVILEGES), + ("AuthenticationId", LUID), + ("TokenType", TOKEN_TYPE), + ("ImpersonationLevel", SECURITY_IMPERSONATION_LEVEL), + ("MandatoryPolicy", TOKEN_MANDATORY_POLICY), + ("Flags", DWORD), + ("AppContainerNumber", DWORD), + ("PackageSid", PSID), + ("CapabilitiesHash", PSID_AND_ATTRIBUTES_HASH), + ("TrustLevelSid", PSID), + ("SecurityAttributes", PSECURITY_ATTRIBUTES_OPAQUE), + ] +PTOKEN_ACCESS_INFORMATION = POINTER(_TOKEN_ACCESS_INFORMATION) +TOKEN_ACCESS_INFORMATION = _TOKEN_ACCESS_INFORMATION + +class _TOKEN_GROUPS_AND_PRIVILEGES(Structure): + _fields_ = [ + ("SidCount", DWORD), + ("SidLength", DWORD), + ("Sids", PSID_AND_ATTRIBUTES), + ("RestrictedSidCount", DWORD), + ("RestrictedSidLength", DWORD), + ("RestrictedSids", PSID_AND_ATTRIBUTES), + ("PrivilegeCount", DWORD), + ("PrivilegeLength", DWORD), + ("Privileges", PLUID_AND_ATTRIBUTES), + ("AuthenticationId", LUID), + ] +TOKEN_GROUPS_AND_PRIVILEGES = _TOKEN_GROUPS_AND_PRIVILEGES +PTOKEN_GROUPS_AND_PRIVILEGES = POINTER(_TOKEN_GROUPS_AND_PRIVILEGES) + +class _TOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE(Structure): + _fields_ = [ + ("Version", ULONG64), + ("Name", UNICODE_STRING), + ] +PTOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE = POINTER(_TOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE) +TOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE = _TOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE + +class _TOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE(Structure): + _fields_ = [ + ("pValue", PVOID), + ("ValueLength", ULONG), + ] +PTOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = POINTER(_TOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE) +TOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = _TOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE + +class _TOKEN_SECURITY_ATTRIBUTE_V1_UNION(Union): + _fields_ = [ + ("pInt64", PLONG64), + ("pUint64", PULONG64), + ("pString", PUNICODE_STRING), + ("pFqbn", PTOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE), + ("pOctetString", PTOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE), + ] +TOKEN_SECURITY_ATTRIBUTE_V1_UNION = _TOKEN_SECURITY_ATTRIBUTE_V1_UNION + +class _TOKEN_SECURITY_ATTRIBUTE_V1(Structure): + _fields_ = [ + ("Name", UNICODE_STRING), + ("ValueType", USHORT), + ("Reserved", USHORT), + ("Flags", ULONG), + ("ValueCount", ULONG), + ("Values", TOKEN_SECURITY_ATTRIBUTE_V1_UNION), + ] +TOKEN_SECURITY_ATTRIBUTE_V1 = _TOKEN_SECURITY_ATTRIBUTE_V1 +PTOKEN_SECURITY_ATTRIBUTE_V1 = POINTER(_TOKEN_SECURITY_ATTRIBUTE_V1) + +class _TOKEN_SECURITY_ATTRIBUTES_INFORMATION_UNION(Union): + _fields_ = [ + ("pAttributeV1", PTOKEN_SECURITY_ATTRIBUTE_V1), + ] +TOKEN_SECURITY_ATTRIBUTES_INFORMATION_UNION = _TOKEN_SECURITY_ATTRIBUTES_INFORMATION_UNION + +class _TOKEN_SECURITY_ATTRIBUTES_INFORMATION(Structure): + _fields_ = [ + ("Version", USHORT), + ("Reserved", USHORT), + ("AttributeCount", ULONG), + ("Attribute", TOKEN_SECURITY_ATTRIBUTES_INFORMATION_UNION), + ] +PTOKEN_SECURITY_ATTRIBUTES_INFORMATION = POINTER(_TOKEN_SECURITY_ATTRIBUTES_INFORMATION) +TOKEN_SECURITY_ATTRIBUTES_INFORMATION = _TOKEN_SECURITY_ATTRIBUTES_INFORMATION + +class _API_SET_VALUE_ENTRY(Structure): + _fields_ = [ + ("Flags", ULONG), + ("NameOffset", ULONG), + ("NameLength", ULONG), + ("ValueOffset", ULONG), + ("ValueLength", ULONG), + ] +API_SET_VALUE_ENTRY = _API_SET_VALUE_ENTRY +PAPI_SET_VALUE_ENTRY = POINTER(_API_SET_VALUE_ENTRY) + +class _API_SET_NAMESPACE_ENTRY(Structure): + _fields_ = [ + ("Flags", ULONG), + ("NameOffset", ULONG), + ("NameLength", ULONG), + ("AliasOffset", ULONG), + ("AliasLength", ULONG), + ("DataOffset", ULONG), + ] +PAPI_SET_NAMESPACE_ENTRY = POINTER(_API_SET_NAMESPACE_ENTRY) +API_SET_NAMESPACE_ENTRY = _API_SET_NAMESPACE_ENTRY + +class _API_SET_NAMESPACE_ARRAY(Structure): + _fields_ = [ + ("Version", ULONG), + ("Size", ULONG), + ("Flags", ULONG), + ("Count", ULONG), + ("Array", API_SET_NAMESPACE_ENTRY * (ANYSIZE_ARRAY)), + ] +PAPI_SET_NAMESPACE_ARRAY = POINTER(_API_SET_NAMESPACE_ARRAY) +API_SET_NAMESPACE_ARRAY = _API_SET_NAMESPACE_ARRAY + +class _API_SET_VALUE_ENTRY_V2(Structure): + _fields_ = [ + ("NameOffset", ULONG), + ("NameLength", ULONG), + ("ValueOffset", ULONG), + ("ValueLength", ULONG), + ] +PAPI_SET_VALUE_ENTRY_V2 = POINTER(_API_SET_VALUE_ENTRY_V2) +API_SET_VALUE_ENTRY_V2 = _API_SET_VALUE_ENTRY_V2 + +class _API_SET_VALUE_ARRAY_V2(Structure): + _fields_ = [ + ("Count", ULONG), + ("Array", API_SET_VALUE_ENTRY_V2 * (ANYSIZE_ARRAY)), + ] +API_SET_VALUE_ARRAY_V2 = _API_SET_VALUE_ARRAY_V2 +PAPI_SET_VALUE_ARRAY_V2 = POINTER(_API_SET_VALUE_ARRAY_V2) + +class _API_SET_NAMESPACE_ENTRY_V2(Structure): + _fields_ = [ + ("NameOffset", ULONG), + ("NameLength", ULONG), + ("DataOffset", ULONG), + ] +PAPI_SET_NAMESPACE_ENTRY_V2 = POINTER(_API_SET_NAMESPACE_ENTRY_V2) +API_SET_NAMESPACE_ENTRY_V2 = _API_SET_NAMESPACE_ENTRY_V2 + +class _API_SET_NAMESPACE_ARRAY_V2(Structure): + _fields_ = [ + ("Version", ULONG), + ("Count", ULONG), + ("Array", API_SET_NAMESPACE_ENTRY_V2 * (ANYSIZE_ARRAY)), + ] +API_SET_NAMESPACE_ARRAY_V2 = _API_SET_NAMESPACE_ARRAY_V2 +PAPI_SET_NAMESPACE_ARRAY_V2 = POINTER(_API_SET_NAMESPACE_ARRAY_V2) + +class _API_SET_VALUE_ARRAY_V4(Structure): + _fields_ = [ + ("GuessFlags", ULONG), + ("Count", ULONG), + ("Array", API_SET_VALUE_ENTRY_V2 * (ANYSIZE_ARRAY)), + ] +API_SET_VALUE_ARRAY_V4 = _API_SET_VALUE_ARRAY_V4 +PAPI_SET_VALUE_ARRAY_V2 = POINTER(_API_SET_VALUE_ARRAY_V4) + +class _API_SET_NAMESPACE_ARRAY_V4(Structure): + _fields_ = [ + ("Version", ULONG), + ("Size", ULONG), + ("Flags", ULONG), + ("Count", ULONG), + ("Array", API_SET_NAMESPACE_ENTRY * (ANYSIZE_ARRAY)), + ] +API_SET_NAMESPACE_ARRAY_V4 = _API_SET_NAMESPACE_ARRAY_V4 +PAPI_SET_NAMESPACE_ARRAY_V4 = POINTER(_API_SET_NAMESPACE_ARRAY_V4) + +class _API_SET_NAMESPACE_ENTRY_V4(Structure): + _fields_ = [ + ("Flags", ULONG), + ("NameOffset", ULONG), + ("NameLength", ULONG), + ("AliasOffset", ULONG), + ("AliasLength", ULONG), + ("DataOffset", ULONG), + ] +PAPI_SET_NAMESPACE_ENTRY_V4 = POINTER(_API_SET_NAMESPACE_ENTRY_V4) +API_SET_NAMESPACE_ENTRY_V4 = _API_SET_NAMESPACE_ENTRY_V4 + +class _API_SET_NAMESPACE_ENTRY_V6(Structure): + _fields_ = [ + ("Flags", ULONG), + ("NameOffset", ULONG), + ("NameLength", ULONG), + ("HashedLength", ULONG), + ("ValueOffset", ULONG), + ("ValueCount", ULONG), + ] +API_SET_NAMESPACE_ENTRY_V6 = _API_SET_NAMESPACE_ENTRY_V6 + +class _API_SET_NAMESPACE_V6(Structure): + _fields_ = [ + ("Version", ULONG), + ("Size", ULONG), + ("Flags", ULONG), + ("Count", ULONG), + ("EntryOffset", ULONG), + ("HashOffset", ULONG), + ("HashFactor", ULONG), + ] +API_SET_NAMESPACE_V6 = _API_SET_NAMESPACE_V6 + +BG_JOB_STATE_QUEUED = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_QUEUED", 0x0) +BG_JOB_STATE_CONNECTING = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_CONNECTING", 0x1) +BG_JOB_STATE_TRANSFERRING = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_TRANSFERRING", 0x2) +BG_JOB_STATE_SUSPENDED = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_SUSPENDED", 0x3) +BG_JOB_STATE_ERROR = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_ERROR", 0x4) +BG_JOB_STATE_TRANSIENT_ERROR = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_TRANSIENT_ERROR", 0x5) +BG_JOB_STATE_TRANSFERRED = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_TRANSFERRED", 0x6) +BG_JOB_STATE_ACKNOWLEDGED = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_ACKNOWLEDGED", 0x7) +BG_JOB_STATE_CANCELLED = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_CANCELLED", 0x8) +class _BG_JOB_STATE(EnumType): + values = [BG_JOB_STATE_QUEUED, BG_JOB_STATE_CONNECTING, BG_JOB_STATE_TRANSFERRING, BG_JOB_STATE_SUSPENDED, BG_JOB_STATE_ERROR, BG_JOB_STATE_TRANSIENT_ERROR, BG_JOB_STATE_TRANSFERRED, BG_JOB_STATE_ACKNOWLEDGED, BG_JOB_STATE_CANCELLED] + mapper = FlagMapper(*values) +BG_JOB_STATE = _BG_JOB_STATE + + +BG_JOB_PROXY_USAGE_PRECONFIG = EnumValue("_BG_JOB_PROXY_USAGE", "BG_JOB_PROXY_USAGE_PRECONFIG", 0x0) +BG_JOB_PROXY_USAGE_NO_PROXY = EnumValue("_BG_JOB_PROXY_USAGE", "BG_JOB_PROXY_USAGE_NO_PROXY", 0x1) +BG_JOB_PROXY_USAGE_OVERRIDE = EnumValue("_BG_JOB_PROXY_USAGE", "BG_JOB_PROXY_USAGE_OVERRIDE", 0x2) +BG_JOB_PROXY_USAGE_AUTODETECT = EnumValue("_BG_JOB_PROXY_USAGE", "BG_JOB_PROXY_USAGE_AUTODETECT", 0x3) +class _BG_JOB_PROXY_USAGE(EnumType): + values = [BG_JOB_PROXY_USAGE_PRECONFIG, BG_JOB_PROXY_USAGE_NO_PROXY, BG_JOB_PROXY_USAGE_OVERRIDE, BG_JOB_PROXY_USAGE_AUTODETECT] + mapper = FlagMapper(*values) +BG_JOB_PROXY_USAGE = _BG_JOB_PROXY_USAGE + + +BG_JOB_PRIORITY_FOREGROUND = EnumValue("_BG_JOB_PRIORITY", "BG_JOB_PRIORITY_FOREGROUND", 0x0) +BG_JOB_PRIORITY_HIGH = EnumValue("_BG_JOB_PRIORITY", "BG_JOB_PRIORITY_HIGH", 0x1) +BG_JOB_PRIORITY_NORMAL = EnumValue("_BG_JOB_PRIORITY", "BG_JOB_PRIORITY_NORMAL", 0x2) +BG_JOB_PRIORITY_LOW = EnumValue("_BG_JOB_PRIORITY", "BG_JOB_PRIORITY_LOW", 0x3) +class _BG_JOB_PRIORITY(EnumType): + values = [BG_JOB_PRIORITY_FOREGROUND, BG_JOB_PRIORITY_HIGH, BG_JOB_PRIORITY_NORMAL, BG_JOB_PRIORITY_LOW] + mapper = FlagMapper(*values) +BG_JOB_PRIORITY = _BG_JOB_PRIORITY + + +BG_ERROR_CONTEXT_NONE = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_NONE", 0x0) +BG_ERROR_CONTEXT_UNKNOWN = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_UNKNOWN", 0x1) +BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER", 0x2) +BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION", 0x3) +BG_ERROR_CONTEXT_LOCAL_FILE = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_LOCAL_FILE", 0x4) +BG_ERROR_CONTEXT_REMOTE_FILE = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_REMOTE_FILE", 0x5) +BG_ERROR_CONTEXT_GENERAL_TRANSPORT = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_GENERAL_TRANSPORT", 0x6) +BG_ERROR_CONTEXT_REMOTE_APPLICATION = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_REMOTE_APPLICATION", 0x7) +class _BG_ERROR_CONTEXT(EnumType): + values = [BG_ERROR_CONTEXT_NONE, BG_ERROR_CONTEXT_UNKNOWN, BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER, BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION, BG_ERROR_CONTEXT_LOCAL_FILE, BG_ERROR_CONTEXT_REMOTE_FILE, BG_ERROR_CONTEXT_GENERAL_TRANSPORT, BG_ERROR_CONTEXT_REMOTE_APPLICATION] + mapper = FlagMapper(*values) +BG_ERROR_CONTEXT = _BG_ERROR_CONTEXT + + +BG_JOB_TYPE_DOWNLOAD = EnumValue("_BG_JOB_TYPE", "BG_JOB_TYPE_DOWNLOAD", 0x0) +BG_JOB_TYPE_UPLOAD = EnumValue("_BG_JOB_TYPE", "BG_JOB_TYPE_UPLOAD", 0x1) +BG_JOB_TYPE_UPLOAD_REPLY = EnumValue("_BG_JOB_TYPE", "BG_JOB_TYPE_UPLOAD_REPLY", 0x2) +class _BG_JOB_TYPE(EnumType): + values = [BG_JOB_TYPE_DOWNLOAD, BG_JOB_TYPE_UPLOAD, BG_JOB_TYPE_UPLOAD_REPLY] + mapper = FlagMapper(*values) +BG_JOB_TYPE = _BG_JOB_TYPE + + +class _BG_FILE_PROGRESS(Structure): + _fields_ = [ + ("BytesTotal", UINT64), + ("BytesTransferred", UINT64), + ("Completed", BOOL), + ] +BG_FILE_PROGRESS = _BG_FILE_PROGRESS + +class _BG_JOB_PROGRESS(Structure): + _fields_ = [ + ("BytesTotal", UINT64), + ("BytesTransferred", UINT64), + ("FilesTotal", ULONG), + ("FilesTransferred", ULONG), + ] +BG_JOB_PROGRESS = _BG_JOB_PROGRESS + +class _BG_FILE_INFO(Structure): + _fields_ = [ + ("RemoteName", LPWSTR), + ("LocalName", LPWSTR), + ] +BG_FILE_INFO = _BG_FILE_INFO + +class _BG_JOB_TIMES(Structure): + _fields_ = [ + ("CreationTime", FILETIME), + ("ModificationTime", FILETIME), + ("TransferCompletionTime", FILETIME), + ] +BG_JOB_TIMES = _BG_JOB_TIMES + +WBEM_GENUS_CLASS = EnumValue("tag_WBEM_GENUS_TYPE", "WBEM_GENUS_CLASS", 0x1) +WBEM_GENUS_INSTANCE = EnumValue("tag_WBEM_GENUS_TYPE", "WBEM_GENUS_INSTANCE", 0x2) +class tag_WBEM_GENUS_TYPE(EnumType): + values = [WBEM_GENUS_CLASS, WBEM_GENUS_INSTANCE] + mapper = FlagMapper(*values) +WBEM_GENUS_TYPE = tag_WBEM_GENUS_TYPE + + +WBEM_FLAG_CREATE_OR_UPDATE = EnumValue("tag_WBEM_CHANGE_FLAG_TYPE", "WBEM_FLAG_CREATE_OR_UPDATE", 0x0) +WBEM_FLAG_UPDATE_ONLY = EnumValue("tag_WBEM_CHANGE_FLAG_TYPE", "WBEM_FLAG_UPDATE_ONLY", 0x1) +WBEM_FLAG_CREATE_ONLY = EnumValue("tag_WBEM_CHANGE_FLAG_TYPE", "WBEM_FLAG_CREATE_ONLY", 0x2) +WBEM_FLAG_UPDATE_COMPATIBLE = EnumValue("tag_WBEM_CHANGE_FLAG_TYPE", "WBEM_FLAG_UPDATE_COMPATIBLE", 0x0) +WBEM_FLAG_UPDATE_SAFE_MODE = EnumValue("tag_WBEM_CHANGE_FLAG_TYPE", "WBEM_FLAG_UPDATE_SAFE_MODE", 0x20) +WBEM_FLAG_UPDATE_FORCE_MODE = EnumValue("tag_WBEM_CHANGE_FLAG_TYPE", "WBEM_FLAG_UPDATE_FORCE_MODE", 0x40) +WBEM_MASK_UPDATE_MODE = EnumValue("tag_WBEM_CHANGE_FLAG_TYPE", "WBEM_MASK_UPDATE_MODE", 0x60) +WBEM_FLAG_ADVISORY = EnumValue("tag_WBEM_CHANGE_FLAG_TYPE", "WBEM_FLAG_ADVISORY", 0x10000) +class tag_WBEM_CHANGE_FLAG_TYPE(EnumType): + values = [WBEM_FLAG_CREATE_OR_UPDATE, WBEM_FLAG_UPDATE_ONLY, WBEM_FLAG_CREATE_ONLY, WBEM_FLAG_UPDATE_COMPATIBLE, WBEM_FLAG_UPDATE_SAFE_MODE, WBEM_FLAG_UPDATE_FORCE_MODE, WBEM_MASK_UPDATE_MODE, WBEM_FLAG_ADVISORY] + mapper = FlagMapper(*values) +WBEM_CHANGE_FLAG_TYPE = tag_WBEM_CHANGE_FLAG_TYPE + + +WBEM_NO_ERROR = EnumValue("tag_WBEMSTATUS", "WBEM_NO_ERROR", 0x0) +WBEM_S_NO_ERROR = EnumValue("tag_WBEMSTATUS", "WBEM_S_NO_ERROR", 0x0) +WBEM_S_SAME = EnumValue("tag_WBEMSTATUS", "WBEM_S_SAME", 0x0) +WBEM_S_FALSE = EnumValue("tag_WBEMSTATUS", "WBEM_S_FALSE", 0x1) +WBEM_S_ALREADY_EXISTS = EnumValue("tag_WBEMSTATUS", "WBEM_S_ALREADY_EXISTS", 0x40001) +WBEM_S_RESET_TO_DEFAULT = EnumValue("tag_WBEMSTATUS", "WBEM_S_RESET_TO_DEFAULT", 0x40002) +WBEM_S_DIFFERENT = EnumValue("tag_WBEMSTATUS", "WBEM_S_DIFFERENT", 0x40003) +WBEM_S_TIMEDOUT = EnumValue("tag_WBEMSTATUS", "WBEM_S_TIMEDOUT", 0x40004) +WBEM_S_NO_MORE_DATA = EnumValue("tag_WBEMSTATUS", "WBEM_S_NO_MORE_DATA", 0x40005) +WBEM_S_OPERATION_CANCELLED = EnumValue("tag_WBEMSTATUS", "WBEM_S_OPERATION_CANCELLED", 0x40006) +WBEM_S_PENDING = EnumValue("tag_WBEMSTATUS", "WBEM_S_PENDING", 0x40007) +WBEM_S_DUPLICATE_OBJECTS = EnumValue("tag_WBEMSTATUS", "WBEM_S_DUPLICATE_OBJECTS", 0x40008) +WBEM_S_ACCESS_DENIED = EnumValue("tag_WBEMSTATUS", "WBEM_S_ACCESS_DENIED", 0x40009) +WBEM_S_PARTIAL_RESULTS = EnumValue("tag_WBEMSTATUS", "WBEM_S_PARTIAL_RESULTS", 0x40010) +WBEM_S_SOURCE_NOT_AVAILABLE = EnumValue("tag_WBEMSTATUS", "WBEM_S_SOURCE_NOT_AVAILABLE", 0x40017) +WBEM_E_FAILED = EnumValue("tag_WBEMSTATUS", "WBEM_E_FAILED", 0x80041001) +WBEM_E_NOT_FOUND = EnumValue("tag_WBEMSTATUS", "WBEM_E_NOT_FOUND", 0x80041002) +WBEM_E_ACCESS_DENIED = EnumValue("tag_WBEMSTATUS", "WBEM_E_ACCESS_DENIED", 0x80041003) +WBEM_E_PROVIDER_FAILURE = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_FAILURE", 0x80041004) +WBEM_E_TYPE_MISMATCH = EnumValue("tag_WBEMSTATUS", "WBEM_E_TYPE_MISMATCH", 0x80041005) +WBEM_E_OUT_OF_MEMORY = EnumValue("tag_WBEMSTATUS", "WBEM_E_OUT_OF_MEMORY", 0x80041006) +WBEM_E_INVALID_CONTEXT = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_CONTEXT", 0x80041007) +WBEM_E_INVALID_PARAMETER = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_PARAMETER", 0x80041008) +WBEM_E_NOT_AVAILABLE = EnumValue("tag_WBEMSTATUS", "WBEM_E_NOT_AVAILABLE", 0x80041009) +WBEM_E_CRITICAL_ERROR = EnumValue("tag_WBEMSTATUS", "WBEM_E_CRITICAL_ERROR", 0x8004100a) +WBEM_E_INVALID_STREAM = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_STREAM", 0x8004100b) +WBEM_E_NOT_SUPPORTED = EnumValue("tag_WBEMSTATUS", "WBEM_E_NOT_SUPPORTED", 0x8004100c) +WBEM_E_INVALID_SUPERCLASS = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_SUPERCLASS", 0x8004100d) +WBEM_E_INVALID_NAMESPACE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_NAMESPACE", 0x8004100e) +WBEM_E_INVALID_OBJECT = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_OBJECT", 0x8004100f) +WBEM_E_INVALID_CLASS = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_CLASS", 0x80041010) +WBEM_E_PROVIDER_NOT_FOUND = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_NOT_FOUND", 0x80041011) +WBEM_E_INVALID_PROVIDER_REGISTRATION = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_PROVIDER_REGISTRATION", 0x80041012) +WBEM_E_PROVIDER_LOAD_FAILURE = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_LOAD_FAILURE", 0x80041013) +WBEM_E_INITIALIZATION_FAILURE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INITIALIZATION_FAILURE", 0x80041014) +WBEM_E_TRANSPORT_FAILURE = EnumValue("tag_WBEMSTATUS", "WBEM_E_TRANSPORT_FAILURE", 0x80041015) +WBEM_E_INVALID_OPERATION = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_OPERATION", 0x80041016) +WBEM_E_INVALID_QUERY = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_QUERY", 0x80041017) +WBEM_E_INVALID_QUERY_TYPE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_QUERY_TYPE", 0x80041018) +WBEM_E_ALREADY_EXISTS = EnumValue("tag_WBEMSTATUS", "WBEM_E_ALREADY_EXISTS", 0x80041019) +WBEM_E_OVERRIDE_NOT_ALLOWED = EnumValue("tag_WBEMSTATUS", "WBEM_E_OVERRIDE_NOT_ALLOWED", 0x8004101a) +WBEM_E_PROPAGATED_QUALIFIER = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROPAGATED_QUALIFIER", 0x8004101b) +WBEM_E_PROPAGATED_PROPERTY = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROPAGATED_PROPERTY", 0x8004101c) +WBEM_E_UNEXPECTED = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNEXPECTED", 0x8004101d) +WBEM_E_ILLEGAL_OPERATION = EnumValue("tag_WBEMSTATUS", "WBEM_E_ILLEGAL_OPERATION", 0x8004101e) +WBEM_E_CANNOT_BE_KEY = EnumValue("tag_WBEMSTATUS", "WBEM_E_CANNOT_BE_KEY", 0x8004101f) +WBEM_E_INCOMPLETE_CLASS = EnumValue("tag_WBEMSTATUS", "WBEM_E_INCOMPLETE_CLASS", 0x80041020) +WBEM_E_INVALID_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_SYNTAX", 0x80041021) +WBEM_E_NONDECORATED_OBJECT = EnumValue("tag_WBEMSTATUS", "WBEM_E_NONDECORATED_OBJECT", 0x80041022) +WBEM_E_READ_ONLY = EnumValue("tag_WBEMSTATUS", "WBEM_E_READ_ONLY", 0x80041023) +WBEM_E_PROVIDER_NOT_CAPABLE = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_NOT_CAPABLE", 0x80041024) +WBEM_E_CLASS_HAS_CHILDREN = EnumValue("tag_WBEMSTATUS", "WBEM_E_CLASS_HAS_CHILDREN", 0x80041025) +WBEM_E_CLASS_HAS_INSTANCES = EnumValue("tag_WBEMSTATUS", "WBEM_E_CLASS_HAS_INSTANCES", 0x80041026) +WBEM_E_QUERY_NOT_IMPLEMENTED = EnumValue("tag_WBEMSTATUS", "WBEM_E_QUERY_NOT_IMPLEMENTED", 0x80041027) +WBEM_E_ILLEGAL_NULL = EnumValue("tag_WBEMSTATUS", "WBEM_E_ILLEGAL_NULL", 0x80041028) +WBEM_E_INVALID_QUALIFIER_TYPE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_QUALIFIER_TYPE", 0x80041029) +WBEM_E_INVALID_PROPERTY_TYPE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_PROPERTY_TYPE", 0x8004102a) +WBEM_E_VALUE_OUT_OF_RANGE = EnumValue("tag_WBEMSTATUS", "WBEM_E_VALUE_OUT_OF_RANGE", 0x8004102b) +WBEM_E_CANNOT_BE_SINGLETON = EnumValue("tag_WBEMSTATUS", "WBEM_E_CANNOT_BE_SINGLETON", 0x8004102c) +WBEM_E_INVALID_CIM_TYPE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_CIM_TYPE", 0x8004102d) +WBEM_E_INVALID_METHOD = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_METHOD", 0x8004102e) +WBEM_E_INVALID_METHOD_PARAMETERS = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_METHOD_PARAMETERS", 0x8004102f) +WBEM_E_SYSTEM_PROPERTY = EnumValue("tag_WBEMSTATUS", "WBEM_E_SYSTEM_PROPERTY", 0x80041030) +WBEM_E_INVALID_PROPERTY = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_PROPERTY", 0x80041031) +WBEM_E_CALL_CANCELLED = EnumValue("tag_WBEMSTATUS", "WBEM_E_CALL_CANCELLED", 0x80041032) +WBEM_E_SHUTTING_DOWN = EnumValue("tag_WBEMSTATUS", "WBEM_E_SHUTTING_DOWN", 0x80041033) +WBEM_E_PROPAGATED_METHOD = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROPAGATED_METHOD", 0x80041034) +WBEM_E_UNSUPPORTED_PARAMETER = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNSUPPORTED_PARAMETER", 0x80041035) +WBEM_E_MISSING_PARAMETER_ID = EnumValue("tag_WBEMSTATUS", "WBEM_E_MISSING_PARAMETER_ID", 0x80041036) +WBEM_E_INVALID_PARAMETER_ID = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_PARAMETER_ID", 0x80041037) +WBEM_E_NONCONSECUTIVE_PARAMETER_IDS = EnumValue("tag_WBEMSTATUS", "WBEM_E_NONCONSECUTIVE_PARAMETER_IDS", 0x80041038) +WBEM_E_PARAMETER_ID_ON_RETVAL = EnumValue("tag_WBEMSTATUS", "WBEM_E_PARAMETER_ID_ON_RETVAL", 0x80041039) +WBEM_E_INVALID_OBJECT_PATH = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_OBJECT_PATH", 0x8004103a) +WBEM_E_OUT_OF_DISK_SPACE = EnumValue("tag_WBEMSTATUS", "WBEM_E_OUT_OF_DISK_SPACE", 0x8004103b) +WBEM_E_BUFFER_TOO_SMALL = EnumValue("tag_WBEMSTATUS", "WBEM_E_BUFFER_TOO_SMALL", 0x8004103c) +WBEM_E_UNSUPPORTED_PUT_EXTENSION = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNSUPPORTED_PUT_EXTENSION", 0x8004103d) +WBEM_E_UNKNOWN_OBJECT_TYPE = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNKNOWN_OBJECT_TYPE", 0x8004103e) +WBEM_E_UNKNOWN_PACKET_TYPE = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNKNOWN_PACKET_TYPE", 0x8004103f) +WBEM_E_MARSHAL_VERSION_MISMATCH = EnumValue("tag_WBEMSTATUS", "WBEM_E_MARSHAL_VERSION_MISMATCH", 0x80041040) +WBEM_E_MARSHAL_INVALID_SIGNATURE = EnumValue("tag_WBEMSTATUS", "WBEM_E_MARSHAL_INVALID_SIGNATURE", 0x80041041) +WBEM_E_INVALID_QUALIFIER = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_QUALIFIER", 0x80041042) +WBEM_E_INVALID_DUPLICATE_PARAMETER = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_DUPLICATE_PARAMETER", 0x80041043) +WBEM_E_TOO_MUCH_DATA = EnumValue("tag_WBEMSTATUS", "WBEM_E_TOO_MUCH_DATA", 0x80041044) +WBEM_E_SERVER_TOO_BUSY = EnumValue("tag_WBEMSTATUS", "WBEM_E_SERVER_TOO_BUSY", 0x80041045) +WBEM_E_INVALID_FLAVOR = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_FLAVOR", 0x80041046) +WBEM_E_CIRCULAR_REFERENCE = EnumValue("tag_WBEMSTATUS", "WBEM_E_CIRCULAR_REFERENCE", 0x80041047) +WBEM_E_UNSUPPORTED_CLASS_UPDATE = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNSUPPORTED_CLASS_UPDATE", 0x80041048) +WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE = EnumValue("tag_WBEMSTATUS", "WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE", 0x80041049) +WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE = EnumValue("tag_WBEMSTATUS", "WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE", 0x80041050) +WBEM_E_TOO_MANY_PROPERTIES = EnumValue("tag_WBEMSTATUS", "WBEM_E_TOO_MANY_PROPERTIES", 0x80041051) +WBEM_E_UPDATE_TYPE_MISMATCH = EnumValue("tag_WBEMSTATUS", "WBEM_E_UPDATE_TYPE_MISMATCH", 0x80041052) +WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED = EnumValue("tag_WBEMSTATUS", "WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED", 0x80041053) +WBEM_E_UPDATE_PROPAGATED_METHOD = EnumValue("tag_WBEMSTATUS", "WBEM_E_UPDATE_PROPAGATED_METHOD", 0x80041054) +WBEM_E_METHOD_NOT_IMPLEMENTED = EnumValue("tag_WBEMSTATUS", "WBEM_E_METHOD_NOT_IMPLEMENTED", 0x80041055) +WBEM_E_METHOD_DISABLED = EnumValue("tag_WBEMSTATUS", "WBEM_E_METHOD_DISABLED", 0x80041056) +WBEM_E_REFRESHER_BUSY = EnumValue("tag_WBEMSTATUS", "WBEM_E_REFRESHER_BUSY", 0x80041057) +WBEM_E_UNPARSABLE_QUERY = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNPARSABLE_QUERY", 0x80041058) +WBEM_E_NOT_EVENT_CLASS = EnumValue("tag_WBEMSTATUS", "WBEM_E_NOT_EVENT_CLASS", 0x80041059) +WBEM_E_MISSING_GROUP_WITHIN = EnumValue("tag_WBEMSTATUS", "WBEM_E_MISSING_GROUP_WITHIN", 0x8004105a) +WBEM_E_MISSING_AGGREGATION_LIST = EnumValue("tag_WBEMSTATUS", "WBEM_E_MISSING_AGGREGATION_LIST", 0x8004105b) +WBEM_E_PROPERTY_NOT_AN_OBJECT = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROPERTY_NOT_AN_OBJECT", 0x8004105c) +WBEM_E_AGGREGATING_BY_OBJECT = EnumValue("tag_WBEMSTATUS", "WBEM_E_AGGREGATING_BY_OBJECT", 0x8004105d) +WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY", 0x8004105f) +WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING = EnumValue("tag_WBEMSTATUS", "WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING", 0x80041060) +WBEM_E_QUEUE_OVERFLOW = EnumValue("tag_WBEMSTATUS", "WBEM_E_QUEUE_OVERFLOW", 0x80041061) +WBEM_E_PRIVILEGE_NOT_HELD = EnumValue("tag_WBEMSTATUS", "WBEM_E_PRIVILEGE_NOT_HELD", 0x80041062) +WBEM_E_INVALID_OPERATOR = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_OPERATOR", 0x80041063) +WBEM_E_LOCAL_CREDENTIALS = EnumValue("tag_WBEMSTATUS", "WBEM_E_LOCAL_CREDENTIALS", 0x80041064) +WBEM_E_CANNOT_BE_ABSTRACT = EnumValue("tag_WBEMSTATUS", "WBEM_E_CANNOT_BE_ABSTRACT", 0x80041065) +WBEM_E_AMENDED_OBJECT = EnumValue("tag_WBEMSTATUS", "WBEM_E_AMENDED_OBJECT", 0x80041066) +WBEM_E_CLIENT_TOO_SLOW = EnumValue("tag_WBEMSTATUS", "WBEM_E_CLIENT_TOO_SLOW", 0x80041067) +WBEM_E_NULL_SECURITY_DESCRIPTOR = EnumValue("tag_WBEMSTATUS", "WBEM_E_NULL_SECURITY_DESCRIPTOR", 0x80041068) +WBEM_E_TIMED_OUT = EnumValue("tag_WBEMSTATUS", "WBEM_E_TIMED_OUT", 0x80041069) +WBEM_E_INVALID_ASSOCIATION = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_ASSOCIATION", 0x8004106a) +WBEM_E_AMBIGUOUS_OPERATION = EnumValue("tag_WBEMSTATUS", "WBEM_E_AMBIGUOUS_OPERATION", 0x8004106b) +WBEM_E_QUOTA_VIOLATION = EnumValue("tag_WBEMSTATUS", "WBEM_E_QUOTA_VIOLATION", 0x8004106c) +WBEM_E_RESERVED_001 = EnumValue("tag_WBEMSTATUS", "WBEM_E_RESERVED_001", 0x8004106d) +WBEM_E_RESERVED_002 = EnumValue("tag_WBEMSTATUS", "WBEM_E_RESERVED_002", 0x8004106e) +WBEM_E_UNSUPPORTED_LOCALE = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNSUPPORTED_LOCALE", 0x8004106f) +WBEM_E_HANDLE_OUT_OF_DATE = EnumValue("tag_WBEMSTATUS", "WBEM_E_HANDLE_OUT_OF_DATE", 0x80041070) +WBEM_E_CONNECTION_FAILED = EnumValue("tag_WBEMSTATUS", "WBEM_E_CONNECTION_FAILED", 0x80041071) +WBEM_E_INVALID_HANDLE_REQUEST = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_HANDLE_REQUEST", 0x80041072) +WBEM_E_PROPERTY_NAME_TOO_WIDE = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROPERTY_NAME_TOO_WIDE", 0x80041073) +WBEM_E_CLASS_NAME_TOO_WIDE = EnumValue("tag_WBEMSTATUS", "WBEM_E_CLASS_NAME_TOO_WIDE", 0x80041074) +WBEM_E_METHOD_NAME_TOO_WIDE = EnumValue("tag_WBEMSTATUS", "WBEM_E_METHOD_NAME_TOO_WIDE", 0x80041075) +WBEM_E_QUALIFIER_NAME_TOO_WIDE = EnumValue("tag_WBEMSTATUS", "WBEM_E_QUALIFIER_NAME_TOO_WIDE", 0x80041076) +WBEM_E_RERUN_COMMAND = EnumValue("tag_WBEMSTATUS", "WBEM_E_RERUN_COMMAND", 0x80041077) +WBEM_E_DATABASE_VER_MISMATCH = EnumValue("tag_WBEMSTATUS", "WBEM_E_DATABASE_VER_MISMATCH", 0x80041078) +WBEM_E_VETO_DELETE = EnumValue("tag_WBEMSTATUS", "WBEM_E_VETO_DELETE", 0x80041079) +WBEM_E_VETO_PUT = EnumValue("tag_WBEMSTATUS", "WBEM_E_VETO_PUT", 0x8004107a) +WBEM_E_INVALID_LOCALE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_LOCALE", 0x80041080) +WBEM_E_PROVIDER_SUSPENDED = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_SUSPENDED", 0x80041081) +WBEM_E_SYNCHRONIZATION_REQUIRED = EnumValue("tag_WBEMSTATUS", "WBEM_E_SYNCHRONIZATION_REQUIRED", 0x80041082) +WBEM_E_NO_SCHEMA = EnumValue("tag_WBEMSTATUS", "WBEM_E_NO_SCHEMA", 0x80041083) +WBEM_E_PROVIDER_ALREADY_REGISTERED = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_ALREADY_REGISTERED", 0x80041084) +WBEM_E_PROVIDER_NOT_REGISTERED = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_NOT_REGISTERED", 0x80041085) +WBEM_E_FATAL_TRANSPORT_ERROR = EnumValue("tag_WBEMSTATUS", "WBEM_E_FATAL_TRANSPORT_ERROR", 0x80041086) +WBEM_E_ENCRYPTED_CONNECTION_REQUIRED = EnumValue("tag_WBEMSTATUS", "WBEM_E_ENCRYPTED_CONNECTION_REQUIRED", 0x80041087) +WBEM_E_PROVIDER_TIMED_OUT = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_TIMED_OUT", 0x80041088) +WBEM_E_NO_KEY = EnumValue("tag_WBEMSTATUS", "WBEM_E_NO_KEY", 0x80041089) +WBEM_E_PROVIDER_DISABLED = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_DISABLED", 0x8004108a) +WBEMESS_E_REGISTRATION_TOO_BROAD = EnumValue("tag_WBEMSTATUS", "WBEMESS_E_REGISTRATION_TOO_BROAD", 0x80042001) +WBEMESS_E_REGISTRATION_TOO_PRECISE = EnumValue("tag_WBEMSTATUS", "WBEMESS_E_REGISTRATION_TOO_PRECISE", 0x80042002) +WBEMESS_E_AUTHZ_NOT_PRIVILEGED = EnumValue("tag_WBEMSTATUS", "WBEMESS_E_AUTHZ_NOT_PRIVILEGED", 0x80042003) +WBEMMOF_E_EXPECTED_QUALIFIER_NAME = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_QUALIFIER_NAME", 0x80044001) +WBEMMOF_E_EXPECTED_SEMI = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_SEMI", 0x80044002) +WBEMMOF_E_EXPECTED_OPEN_BRACE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_OPEN_BRACE", 0x80044003) +WBEMMOF_E_EXPECTED_CLOSE_BRACE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_CLOSE_BRACE", 0x80044004) +WBEMMOF_E_EXPECTED_CLOSE_BRACKET = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_CLOSE_BRACKET", 0x80044005) +WBEMMOF_E_EXPECTED_CLOSE_PAREN = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_CLOSE_PAREN", 0x80044006) +WBEMMOF_E_ILLEGAL_CONSTANT_VALUE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_ILLEGAL_CONSTANT_VALUE", 0x80044007) +WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER", 0x80044008) +WBEMMOF_E_EXPECTED_OPEN_PAREN = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_OPEN_PAREN", 0x80044009) +WBEMMOF_E_UNRECOGNIZED_TOKEN = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_UNRECOGNIZED_TOKEN", 0x8004400a) +WBEMMOF_E_UNRECOGNIZED_TYPE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_UNRECOGNIZED_TYPE", 0x8004400b) +WBEMMOF_E_EXPECTED_PROPERTY_NAME = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_PROPERTY_NAME", 0x8004400c) +WBEMMOF_E_TYPEDEF_NOT_SUPPORTED = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_TYPEDEF_NOT_SUPPORTED", 0x8004400d) +WBEMMOF_E_UNEXPECTED_ALIAS = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_UNEXPECTED_ALIAS", 0x8004400e) +WBEMMOF_E_UNEXPECTED_ARRAY_INIT = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_UNEXPECTED_ARRAY_INIT", 0x8004400f) +WBEMMOF_E_INVALID_AMENDMENT_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_AMENDMENT_SYNTAX", 0x80044010) +WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT", 0x80044011) +WBEMMOF_E_INVALID_PRAGMA = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_PRAGMA", 0x80044012) +WBEMMOF_E_INVALID_NAMESPACE_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_NAMESPACE_SYNTAX", 0x80044013) +WBEMMOF_E_EXPECTED_CLASS_NAME = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_CLASS_NAME", 0x80044014) +WBEMMOF_E_TYPE_MISMATCH = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_TYPE_MISMATCH", 0x80044015) +WBEMMOF_E_EXPECTED_ALIAS_NAME = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_ALIAS_NAME", 0x80044016) +WBEMMOF_E_INVALID_CLASS_DECLARATION = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_CLASS_DECLARATION", 0x80044017) +WBEMMOF_E_INVALID_INSTANCE_DECLARATION = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_INSTANCE_DECLARATION", 0x80044018) +WBEMMOF_E_EXPECTED_DOLLAR = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_DOLLAR", 0x80044019) +WBEMMOF_E_CIMTYPE_QUALIFIER = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_CIMTYPE_QUALIFIER", 0x8004401a) +WBEMMOF_E_DUPLICATE_PROPERTY = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_DUPLICATE_PROPERTY", 0x8004401b) +WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION", 0x8004401c) +WBEMMOF_E_OUT_OF_RANGE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_OUT_OF_RANGE", 0x8004401d) +WBEMMOF_E_INVALID_FILE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_FILE", 0x8004401e) +WBEMMOF_E_ALIASES_IN_EMBEDDED = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_ALIASES_IN_EMBEDDED", 0x8004401f) +WBEMMOF_E_NULL_ARRAY_ELEM = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_NULL_ARRAY_ELEM", 0x80044020) +WBEMMOF_E_DUPLICATE_QUALIFIER = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_DUPLICATE_QUALIFIER", 0x80044021) +WBEMMOF_E_EXPECTED_FLAVOR_TYPE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_FLAVOR_TYPE", 0x80044022) +WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES", 0x80044023) +WBEMMOF_E_MULTIPLE_ALIASES = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_MULTIPLE_ALIASES", 0x80044024) +WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2 = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2", 0x80044025) +WBEMMOF_E_NO_ARRAYS_RETURNED = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_NO_ARRAYS_RETURNED", 0x80044026) +WBEMMOF_E_MUST_BE_IN_OR_OUT = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_MUST_BE_IN_OR_OUT", 0x80044027) +WBEMMOF_E_INVALID_FLAGS_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_FLAGS_SYNTAX", 0x80044028) +WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE", 0x80044029) +WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE", 0x8004402a) +WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE", 0x8004402b) +WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX", 0x8004402c) +WBEMMOF_E_INVALID_QUALIFIER_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_QUALIFIER_SYNTAX", 0x8004402d) +WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE", 0x8004402e) +WBEMMOF_E_ERROR_CREATING_TEMP_FILE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_ERROR_CREATING_TEMP_FILE", 0x8004402f) +WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE", 0x80044030) +WBEMMOF_E_INVALID_DELETECLASS_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_DELETECLASS_SYNTAX", 0x80044031) +class tag_WBEMSTATUS(EnumType): + values = [WBEM_NO_ERROR, WBEM_S_NO_ERROR, WBEM_S_SAME, WBEM_S_FALSE, WBEM_S_ALREADY_EXISTS, WBEM_S_RESET_TO_DEFAULT, WBEM_S_DIFFERENT, WBEM_S_TIMEDOUT, WBEM_S_NO_MORE_DATA, WBEM_S_OPERATION_CANCELLED, WBEM_S_PENDING, WBEM_S_DUPLICATE_OBJECTS, WBEM_S_ACCESS_DENIED, WBEM_S_PARTIAL_RESULTS, WBEM_S_SOURCE_NOT_AVAILABLE, WBEM_E_FAILED, WBEM_E_NOT_FOUND, WBEM_E_ACCESS_DENIED, WBEM_E_PROVIDER_FAILURE, WBEM_E_TYPE_MISMATCH, WBEM_E_OUT_OF_MEMORY, WBEM_E_INVALID_CONTEXT, WBEM_E_INVALID_PARAMETER, WBEM_E_NOT_AVAILABLE, WBEM_E_CRITICAL_ERROR, WBEM_E_INVALID_STREAM, WBEM_E_NOT_SUPPORTED, WBEM_E_INVALID_SUPERCLASS, WBEM_E_INVALID_NAMESPACE, WBEM_E_INVALID_OBJECT, WBEM_E_INVALID_CLASS, WBEM_E_PROVIDER_NOT_FOUND, WBEM_E_INVALID_PROVIDER_REGISTRATION, WBEM_E_PROVIDER_LOAD_FAILURE, WBEM_E_INITIALIZATION_FAILURE, WBEM_E_TRANSPORT_FAILURE, WBEM_E_INVALID_OPERATION, WBEM_E_INVALID_QUERY, WBEM_E_INVALID_QUERY_TYPE, WBEM_E_ALREADY_EXISTS, WBEM_E_OVERRIDE_NOT_ALLOWED, WBEM_E_PROPAGATED_QUALIFIER, WBEM_E_PROPAGATED_PROPERTY, WBEM_E_UNEXPECTED, WBEM_E_ILLEGAL_OPERATION, WBEM_E_CANNOT_BE_KEY, WBEM_E_INCOMPLETE_CLASS, WBEM_E_INVALID_SYNTAX, WBEM_E_NONDECORATED_OBJECT, WBEM_E_READ_ONLY, WBEM_E_PROVIDER_NOT_CAPABLE, WBEM_E_CLASS_HAS_CHILDREN, WBEM_E_CLASS_HAS_INSTANCES, WBEM_E_QUERY_NOT_IMPLEMENTED, WBEM_E_ILLEGAL_NULL, WBEM_E_INVALID_QUALIFIER_TYPE, WBEM_E_INVALID_PROPERTY_TYPE, WBEM_E_VALUE_OUT_OF_RANGE, WBEM_E_CANNOT_BE_SINGLETON, WBEM_E_INVALID_CIM_TYPE, WBEM_E_INVALID_METHOD, WBEM_E_INVALID_METHOD_PARAMETERS, WBEM_E_SYSTEM_PROPERTY, WBEM_E_INVALID_PROPERTY, WBEM_E_CALL_CANCELLED, WBEM_E_SHUTTING_DOWN, WBEM_E_PROPAGATED_METHOD, WBEM_E_UNSUPPORTED_PARAMETER, WBEM_E_MISSING_PARAMETER_ID, WBEM_E_INVALID_PARAMETER_ID, WBEM_E_NONCONSECUTIVE_PARAMETER_IDS, WBEM_E_PARAMETER_ID_ON_RETVAL, WBEM_E_INVALID_OBJECT_PATH, WBEM_E_OUT_OF_DISK_SPACE, WBEM_E_BUFFER_TOO_SMALL, WBEM_E_UNSUPPORTED_PUT_EXTENSION, WBEM_E_UNKNOWN_OBJECT_TYPE, WBEM_E_UNKNOWN_PACKET_TYPE, WBEM_E_MARSHAL_VERSION_MISMATCH, WBEM_E_MARSHAL_INVALID_SIGNATURE, WBEM_E_INVALID_QUALIFIER, WBEM_E_INVALID_DUPLICATE_PARAMETER, WBEM_E_TOO_MUCH_DATA, WBEM_E_SERVER_TOO_BUSY, WBEM_E_INVALID_FLAVOR, WBEM_E_CIRCULAR_REFERENCE, WBEM_E_UNSUPPORTED_CLASS_UPDATE, WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE, WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE, WBEM_E_TOO_MANY_PROPERTIES, WBEM_E_UPDATE_TYPE_MISMATCH, WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED, WBEM_E_UPDATE_PROPAGATED_METHOD, WBEM_E_METHOD_NOT_IMPLEMENTED, WBEM_E_METHOD_DISABLED, WBEM_E_REFRESHER_BUSY, WBEM_E_UNPARSABLE_QUERY, WBEM_E_NOT_EVENT_CLASS, WBEM_E_MISSING_GROUP_WITHIN, WBEM_E_MISSING_AGGREGATION_LIST, WBEM_E_PROPERTY_NOT_AN_OBJECT, WBEM_E_AGGREGATING_BY_OBJECT, WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY, WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING, WBEM_E_QUEUE_OVERFLOW, WBEM_E_PRIVILEGE_NOT_HELD, WBEM_E_INVALID_OPERATOR, WBEM_E_LOCAL_CREDENTIALS, WBEM_E_CANNOT_BE_ABSTRACT, WBEM_E_AMENDED_OBJECT, WBEM_E_CLIENT_TOO_SLOW, WBEM_E_NULL_SECURITY_DESCRIPTOR, WBEM_E_TIMED_OUT, WBEM_E_INVALID_ASSOCIATION, WBEM_E_AMBIGUOUS_OPERATION, WBEM_E_QUOTA_VIOLATION, WBEM_E_RESERVED_001, WBEM_E_RESERVED_002, WBEM_E_UNSUPPORTED_LOCALE, WBEM_E_HANDLE_OUT_OF_DATE, WBEM_E_CONNECTION_FAILED, WBEM_E_INVALID_HANDLE_REQUEST, WBEM_E_PROPERTY_NAME_TOO_WIDE, WBEM_E_CLASS_NAME_TOO_WIDE, WBEM_E_METHOD_NAME_TOO_WIDE, WBEM_E_QUALIFIER_NAME_TOO_WIDE, WBEM_E_RERUN_COMMAND, WBEM_E_DATABASE_VER_MISMATCH, WBEM_E_VETO_DELETE, WBEM_E_VETO_PUT, WBEM_E_INVALID_LOCALE, WBEM_E_PROVIDER_SUSPENDED, WBEM_E_SYNCHRONIZATION_REQUIRED, WBEM_E_NO_SCHEMA, WBEM_E_PROVIDER_ALREADY_REGISTERED, WBEM_E_PROVIDER_NOT_REGISTERED, WBEM_E_FATAL_TRANSPORT_ERROR, WBEM_E_ENCRYPTED_CONNECTION_REQUIRED, WBEM_E_PROVIDER_TIMED_OUT, WBEM_E_NO_KEY, WBEM_E_PROVIDER_DISABLED, WBEMESS_E_REGISTRATION_TOO_BROAD, WBEMESS_E_REGISTRATION_TOO_PRECISE, WBEMESS_E_AUTHZ_NOT_PRIVILEGED, WBEMMOF_E_EXPECTED_QUALIFIER_NAME, WBEMMOF_E_EXPECTED_SEMI, WBEMMOF_E_EXPECTED_OPEN_BRACE, WBEMMOF_E_EXPECTED_CLOSE_BRACE, WBEMMOF_E_EXPECTED_CLOSE_BRACKET, WBEMMOF_E_EXPECTED_CLOSE_PAREN, WBEMMOF_E_ILLEGAL_CONSTANT_VALUE, WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER, WBEMMOF_E_EXPECTED_OPEN_PAREN, WBEMMOF_E_UNRECOGNIZED_TOKEN, WBEMMOF_E_UNRECOGNIZED_TYPE, WBEMMOF_E_EXPECTED_PROPERTY_NAME, WBEMMOF_E_TYPEDEF_NOT_SUPPORTED, WBEMMOF_E_UNEXPECTED_ALIAS, WBEMMOF_E_UNEXPECTED_ARRAY_INIT, WBEMMOF_E_INVALID_AMENDMENT_SYNTAX, WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT, WBEMMOF_E_INVALID_PRAGMA, WBEMMOF_E_INVALID_NAMESPACE_SYNTAX, WBEMMOF_E_EXPECTED_CLASS_NAME, WBEMMOF_E_TYPE_MISMATCH, WBEMMOF_E_EXPECTED_ALIAS_NAME, WBEMMOF_E_INVALID_CLASS_DECLARATION, WBEMMOF_E_INVALID_INSTANCE_DECLARATION, WBEMMOF_E_EXPECTED_DOLLAR, WBEMMOF_E_CIMTYPE_QUALIFIER, WBEMMOF_E_DUPLICATE_PROPERTY, WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION, WBEMMOF_E_OUT_OF_RANGE, WBEMMOF_E_INVALID_FILE, WBEMMOF_E_ALIASES_IN_EMBEDDED, WBEMMOF_E_NULL_ARRAY_ELEM, WBEMMOF_E_DUPLICATE_QUALIFIER, WBEMMOF_E_EXPECTED_FLAVOR_TYPE, WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES, WBEMMOF_E_MULTIPLE_ALIASES, WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2, WBEMMOF_E_NO_ARRAYS_RETURNED, WBEMMOF_E_MUST_BE_IN_OR_OUT, WBEMMOF_E_INVALID_FLAGS_SYNTAX, WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE, WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE, WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE, WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX, WBEMMOF_E_INVALID_QUALIFIER_SYNTAX, WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE, WBEMMOF_E_ERROR_CREATING_TEMP_FILE, WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE, WBEMMOF_E_INVALID_DELETECLASS_SYNTAX] + mapper = FlagMapper(*values) +WBEMSTATUS = tag_WBEMSTATUS + + +WBEM_NO_WAIT = EnumValue("tag_WBEM_TIMEOUT_TYPE", "WBEM_NO_WAIT", 0x0) +WBEM_INFINITE = EnumValue("tag_WBEM_TIMEOUT_TYPE", "WBEM_INFINITE", 0xffffffff) +class tag_WBEM_TIMEOUT_TYPE(EnumType): + values = [WBEM_NO_WAIT, WBEM_INFINITE] + mapper = FlagMapper(*values) +WBEM_TIMEOUT_TYPE = tag_WBEM_TIMEOUT_TYPE + + +WBEM_FLAG_RETURN_IMMEDIATELY = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_FLAG_RETURN_IMMEDIATELY", 0x10) +WBEM_FLAG_RETURN_WBEM_COMPLETE = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_FLAG_RETURN_WBEM_COMPLETE", 0x0) +WBEM_FLAG_BIDIRECTIONAL = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_FLAG_BIDIRECTIONAL", 0x0) +WBEM_FLAG_FORWARD_ONLY = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_FLAG_FORWARD_ONLY", 0x20) +WBEM_FLAG_NO_ERROR_OBJECT = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_FLAG_NO_ERROR_OBJECT", 0x40) +WBEM_FLAG_RETURN_ERROR_OBJECT = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_FLAG_RETURN_ERROR_OBJECT", 0x0) +WBEM_FLAG_SEND_STATUS = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_FLAG_SEND_STATUS", 0x80) +WBEM_FLAG_DONT_SEND_STATUS = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_FLAG_DONT_SEND_STATUS", 0x0) +WBEM_FLAG_ENSURE_LOCATABLE = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_FLAG_ENSURE_LOCATABLE", 0x100) +WBEM_FLAG_DIRECT_READ = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_FLAG_DIRECT_READ", 0x200) +WBEM_FLAG_SEND_ONLY_SELECTED = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_FLAG_SEND_ONLY_SELECTED", 0x0) +WBEM_RETURN_WHEN_COMPLETE = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_RETURN_WHEN_COMPLETE", 0x0) +WBEM_RETURN_IMMEDIATELY = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_RETURN_IMMEDIATELY", 0x10) +WBEM_MASK_RESERVED_FLAGS = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_MASK_RESERVED_FLAGS", 0x1f000) +WBEM_FLAG_USE_AMENDED_QUALIFIERS = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_FLAG_USE_AMENDED_QUALIFIERS", 0x20000) +WBEM_FLAG_STRONG_VALIDATION = EnumValue("tag_WBEM_GENERIC_FLAG_TYPE", "WBEM_FLAG_STRONG_VALIDATION", 0x100000) +class tag_WBEM_GENERIC_FLAG_TYPE(EnumType): + values = [WBEM_FLAG_RETURN_IMMEDIATELY, WBEM_FLAG_RETURN_WBEM_COMPLETE, WBEM_FLAG_BIDIRECTIONAL, WBEM_FLAG_FORWARD_ONLY, WBEM_FLAG_NO_ERROR_OBJECT, WBEM_FLAG_RETURN_ERROR_OBJECT, WBEM_FLAG_SEND_STATUS, WBEM_FLAG_DONT_SEND_STATUS, WBEM_FLAG_ENSURE_LOCATABLE, WBEM_FLAG_DIRECT_READ, WBEM_FLAG_SEND_ONLY_SELECTED, WBEM_RETURN_WHEN_COMPLETE, WBEM_RETURN_IMMEDIATELY, WBEM_MASK_RESERVED_FLAGS, WBEM_FLAG_USE_AMENDED_QUALIFIERS, WBEM_FLAG_STRONG_VALIDATION] + mapper = FlagMapper(*values) +WBEM_GENERIC_FLAG_TYPE = tag_WBEM_GENERIC_FLAG_TYPE + + +WBEM_FLAG_CONNECT_REPOSITORY_ONLY = EnumValue("tag_WBEM_CONNECT_OPTIONS", "WBEM_FLAG_CONNECT_REPOSITORY_ONLY", 0x40) +WBEM_FLAG_CONNECT_USE_MAX_WAIT = EnumValue("tag_WBEM_CONNECT_OPTIONS", "WBEM_FLAG_CONNECT_USE_MAX_WAIT", 0x80) +WBEM_FLAG_CONNECT_PROVIDERS = EnumValue("tag_WBEM_CONNECT_OPTIONS", "WBEM_FLAG_CONNECT_PROVIDERS", 0x100) +class tag_WBEM_CONNECT_OPTIONS(EnumType): + values = [WBEM_FLAG_CONNECT_REPOSITORY_ONLY, WBEM_FLAG_CONNECT_USE_MAX_WAIT, WBEM_FLAG_CONNECT_PROVIDERS] + mapper = FlagMapper(*values) +WBEM_CONNECT_OPTIONS = tag_WBEM_CONNECT_OPTIONS + + +WBEM_FLAG_DEEP = EnumValue("tag_WBEM_QUERY_FLAG_TYPE", "WBEM_FLAG_DEEP", 0x0) +WBEM_FLAG_SHALLOW = EnumValue("tag_WBEM_QUERY_FLAG_TYPE", "WBEM_FLAG_SHALLOW", 0x1) +WBEM_FLAG_PROTOTYPE = EnumValue("tag_WBEM_QUERY_FLAG_TYPE", "WBEM_FLAG_PROTOTYPE", 0x2) +class tag_WBEM_QUERY_FLAG_TYPE(EnumType): + values = [WBEM_FLAG_DEEP, WBEM_FLAG_SHALLOW, WBEM_FLAG_PROTOTYPE] + mapper = FlagMapper(*values) +WBEM_QUERY_FLAG_TYPE = tag_WBEM_QUERY_FLAG_TYPE + + +WMI_GET_ALL_DATA = EnumValue("WMIDPREQUESTCODE", "WMI_GET_ALL_DATA", 0x0) +WMI_GET_SINGLE_INSTANCE = EnumValue("WMIDPREQUESTCODE", "WMI_GET_SINGLE_INSTANCE", 0x1) +WMI_SET_SINGLE_INSTANCE = EnumValue("WMIDPREQUESTCODE", "WMI_SET_SINGLE_INSTANCE", 0x2) +WMI_SET_SINGLE_ITEM = EnumValue("WMIDPREQUESTCODE", "WMI_SET_SINGLE_ITEM", 0x3) +WMI_ENABLE_EVENTS = EnumValue("WMIDPREQUESTCODE", "WMI_ENABLE_EVENTS", 0x4) +WMI_DISABLE_EVENTS = EnumValue("WMIDPREQUESTCODE", "WMI_DISABLE_EVENTS", 0x5) +WMI_ENABLE_COLLECTION = EnumValue("WMIDPREQUESTCODE", "WMI_ENABLE_COLLECTION", 0x6) +WMI_DISABLE_COLLECTION = EnumValue("WMIDPREQUESTCODE", "WMI_DISABLE_COLLECTION", 0x7) +WMI_REGINFO = EnumValue("WMIDPREQUESTCODE", "WMI_REGINFO", 0x8) +WMI_EXECUTE_METHOD = EnumValue("WMIDPREQUESTCODE", "WMI_EXECUTE_METHOD", 0x9) +class WMIDPREQUESTCODE(EnumType): + values = [WMI_GET_ALL_DATA, WMI_GET_SINGLE_INSTANCE, WMI_SET_SINGLE_INSTANCE, WMI_SET_SINGLE_ITEM, WMI_ENABLE_EVENTS, WMI_DISABLE_EVENTS, WMI_ENABLE_COLLECTION, WMI_DISABLE_COLLECTION, WMI_REGINFO, WMI_EXECUTE_METHOD] + mapper = FlagMapper(*values) + + +class WSAData64(Structure): + _fields_ = [ + ("wVersion", WORD), + ("wHighVersion", WORD), + ("iMaxSockets", USHORT), + ("iMaxUdpDg", USHORT), + ("lpVendorInfo", POINTER(CHAR)), + ("szDescription", CHAR * (WSADESCRIPTION_LEN + 1)), + ("szSystemStatus", CHAR * (WSASYS_STATUS_LEN + 1)), + ] +WSADATA64 = WSAData64 +LPWSADATA64 = POINTER(WSAData64) + +class WSAData32(Structure): + _fields_ = [ + ("wVersion", WORD), + ("wHighVersion", WORD), + ("szDescription", CHAR * (WSADESCRIPTION_LEN + 1)), + ("szSystemStatus", CHAR * (WSASYS_STATUS_LEN + 1)), + ("iMaxSockets", USHORT), + ("iMaxUdpDg", USHORT), + ("lpVendorInfo", POINTER(CHAR)), + ] +LPWSADATA32 = POINTER(WSAData32) +WSADATA32 = WSAData32 + +class _ANON__ANON_IN_ADDR_SUB_UNION_1_SUB_STRUCTURE_1(Structure): + _fields_ = [ + ("s_b1", UCHAR), + ("s_b2", UCHAR), + ("s_b3", UCHAR), + ("s_b4", UCHAR), + ] + + +class _ANON__ANON_IN_ADDR_SUB_UNION_1_SUB_STRUCTURE_2(Structure): + _fields_ = [ + ("s_w1", USHORT), + ("s_w2", USHORT), + ] + +class _ANON_IN_ADDR_SUB_UNION_1(Union): + _anonymous_ = ("S_un_b","S_un_w") + _fields_ = [ + ("S_un_b", _ANON__ANON_IN_ADDR_SUB_UNION_1_SUB_STRUCTURE_1), + ("S_un_w", _ANON__ANON_IN_ADDR_SUB_UNION_1_SUB_STRUCTURE_2), + ("S_addr", ULONG), + ] + +class in_addr(Structure): + _anonymous_ = ("S_un",) + _fields_ = [ + ("S_un", _ANON_IN_ADDR_SUB_UNION_1), + ] + + +class sockaddr(Structure): + _fields_ = [ + ("sa_family", USHORT), + ("sa_data", CHAR * (14)), + ] + + +class sockaddr_in(Structure): + _fields_ = [ + ("sin_family", SHORT), + ("sin_port", USHORT), + ("sin_addr", in_addr), + ("sin_zero", CHAR * (8)), + ] + + +# Self referencing struct tricks +class addrinfoW(Structure): pass +ADDRINFOW = addrinfoW +PADDRINFOW = POINTER(addrinfoW) +addrinfoW._fields_ = [ + ("ai_flags", INT), + ("ai_family", INT), + ("ai_socktype", INT), + ("ai_protocol", INT), + ("ai_addrlen", SIZE_T), + ("ai_canonname", PWSTR), + ("ai_addr", POINTER(sockaddr)), + ("ai_next", POINTER(addrinfoW)), +] + +class _WSAPROTOCOLCHAIN(Structure): + _fields_ = [ + ("ChainLen", INT), + ("ChainEntries", DWORD * (MAX_PROTOCOL_CHAIN)), + ] +LPWSAPROTOCOLCHAIN = POINTER(_WSAPROTOCOLCHAIN) +WSAPROTOCOLCHAIN = _WSAPROTOCOLCHAIN + +class _WSAPROTOCOL_INFOA(Structure): + _fields_ = [ + ("dwServiceFlags1", DWORD), + ("dwServiceFlags2", DWORD), + ("dwServiceFlags3", DWORD), + ("dwServiceFlags4", DWORD), + ("dwProviderFlags", DWORD), + ("ProviderId", GUID), + ("dwCatalogEntryId", DWORD), + ("ProtocolChain", WSAPROTOCOLCHAIN), + ("iVersion", INT), + ("iAddressFamily", INT), + ("iMaxSockAddr", INT), + ("iMinSockAddr", INT), + ("iSocketType", INT), + ("iProtocol", INT), + ("iProtocolMaxOffset", INT), + ("iNetworkByteOrder", INT), + ("iSecurityScheme", INT), + ("dwMessageSize", DWORD), + ("dwProviderReserved", DWORD), + ("szProtocol", CHAR * (WSAPROTOCOL_LEN + 1)), + ] +WSAPROTOCOL_INFOA = _WSAPROTOCOL_INFOA +LPWSAPROTOCOL_INFOA = POINTER(_WSAPROTOCOL_INFOA) + +class _WSAPROTOCOL_INFOW(Structure): + _fields_ = [ + ("dwServiceFlags1", DWORD), + ("dwServiceFlags2", DWORD), + ("dwServiceFlags3", DWORD), + ("dwServiceFlags4", DWORD), + ("dwProviderFlags", DWORD), + ("ProviderId", GUID), + ("dwCatalogEntryId", DWORD), + ("ProtocolChain", WSAPROTOCOLCHAIN), + ("iVersion", INT), + ("iAddressFamily", INT), + ("iMaxSockAddr", INT), + ("iMinSockAddr", INT), + ("iSocketType", INT), + ("iProtocol", INT), + ("iProtocolMaxOffset", INT), + ("iNetworkByteOrder", INT), + ("iSecurityScheme", INT), + ("dwMessageSize", DWORD), + ("dwProviderReserved", DWORD), + ("szProtocol", WCHAR * (WSAPROTOCOL_LEN + 1)), + ] +LPWSAPROTOCOL_INFOW = POINTER(_WSAPROTOCOL_INFOW) +WSAPROTOCOL_INFOW = _WSAPROTOCOL_INFOW + +# Self referencing struct tricks +class addrinfo(Structure): pass +PADDRINFOA = POINTER(addrinfo) +ADDRINFOA = addrinfo +addrinfo._fields_ = [ + ("ai_flags", INT), + ("ai_family", INT), + ("ai_socktype", INT), + ("ai_protocol", INT), + ("ai_addrlen", SIZE_T), + ("ai_canonname", POINTER(CHAR)), + ("ai_addr", POINTER(sockaddr)), + ("ai_next", POINTER(addrinfo)), +] + diff --git a/pythonmemorymodule/windows/hooks.py b/pythonmemorymodule/windows/hooks.py new file mode 100644 index 0000000..fccdf8e --- /dev/null +++ b/pythonmemorymodule/windows/hooks.py @@ -0,0 +1,130 @@ +import sys +import ctypes + +import windows +import windows.utils as utils +from . import native_exec +from .generated_def import winfuncs +from .generated_def.windef import PAGE_EXECUTE_READWRITE +from .generated_def.winstructs import * + +# TODO Not a big fan of importing 'meta' every load +# Should do an Hook API that take the winproxy function (not generate every hook possible) +import windows.generated_def.meta + + +class Callback(object): + """Give type information to hook callback""" + def __init__(self, *types): + self.types = types + + def __call__(self, func): + func._types_info = self.types + return func + + +class KnownCallback(object): + types = () + + def __call__(self, func): + func._types_info = self.types + return func + + +def add_callback_to_module(callback): + setattr(sys.modules[__name__], type(callback).__name__, callback) + +# Generate IATCallback decorator for all known functions + + + +for func in windows.generated_def.meta.functions: + prototype = getattr(winfuncs, func + "Prototype") + callback_name = func + "Callback" + + class CallBackDeclaration(KnownCallback): + types = (prototype._restype_,) + prototype._argtypes_ + + CallBackDeclaration.__name__ = callback_name + add_callback_to_module(CallBackDeclaration()) + + +class IATHook(object): + """Look at my hook <3""" + + def __init__(self, IAT_entry, callback, types=None): + if types is None: + if not hasattr(callback, "_types_info"): + raise ValueError("Callback for IATHook has no type infomations") + types = callback._types_info + self.original_types = types + self.callback_types = self.transform_arguments(self.original_types) + self.entry = IAT_entry + self.callback = callback + ## No more circular ref -> but stub is destroyed -> segv :( + self.stub = ctypes.WINFUNCTYPE(*self.callback_types)(self.hook_callback) + # stub = ctypes.WINFUNCTYPE(*self.callback_types)(self.hook_callback) + # self.stub_addr = ctypes.cast(stub, PVOID) # Same problem as keep stub... (GC..) + self.stub_addr = ctypes.cast(self.stub, PVOID).value # Same problem as keep stub... (GC..) + # IAT_entry.stub = stub + self.realfunction = ctypes.WINFUNCTYPE(*types)(IAT_entry.nonhookvalue) + self.is_enable = False + + def transform_arguments(self, types): + res = [] + for type in types: + if type in (ctypes.c_wchar_p, ctypes.c_char_p): + res.append(ctypes.c_void_p) + else: + res.append(type) + return res + + def enable(self): + """Enable the IAT hook: you MUST keep a reference to the IATHook while the hook is enabled""" + with utils.VirtualProtected(self.entry.addr, ctypes.sizeof(PVOID), PAGE_EXECUTE_READWRITE): + self.entry.value = self.stub_addr + self.is_enable = True + self.entry.enabled = True + + def disable(self): + """Disable the IAT hook""" + with utils.VirtualProtected(self.entry.addr, ctypes.sizeof(PVOID), PAGE_EXECUTE_READWRITE): + self.entry.value = self.entry.nonhookvalue + self.is_enable = False + self.entry.enabled = True + + def hook_callback(self, *args): + adapted_args = [] + for value, type in zip(args, self.original_types[1:]): + if type == ctypes.c_wchar_p: + adapted_args.append(ctypes.c_wchar_p(value)) + elif type == ctypes.c_char_p: + adapted_args.append(ctypes.c_char_p((value))) + else: + adapted_args.append(value) + + def real_function(*args): + if args == (): + args = adapted_args + return self.realfunction(*args) + return self.callback(*adapted_args, real_function=real_function) + +## New simple hook API based on winproxy +def setup_hook(target, hook, dll_to_hook): + "TODO: Test and doc :D" + dll_name, api_name = windows.winproxy.get_target(target) + prototype = target.prototype + hook._types_info = (prototype._restype_,) + prototype._argtypes_ + + if not dll_name.endswith(".dll"): + dll_name += ".dll" + # Get the peb of our process + peb = windows.current_process.peb + # Get the dll_to_hook + module_to_hook = [m for m in peb.modules if m.name.lower() == dll_to_hook.lower()][0] + # Get the iat entries for DLL dll_name + adv_imports = module_to_hook.pe.imports[dll_name] + # Get RegOpenKeyExA iat entry + iat = [n for n in adv_imports if n.name == api_name][0] + iat.set_hook(hook) + return iat \ No newline at end of file diff --git a/pythonmemorymodule/windows/injection.py b/pythonmemorymodule/windows/injection.py new file mode 100644 index 0000000..85d9217 --- /dev/null +++ b/pythonmemorymodule/windows/injection.py @@ -0,0 +1,438 @@ +import struct +import ctypes +import os +import sys + +import windows +import windows.utils as utils +import windows.generated_def as gdef + +from .native_exec import simple_x86 as x86 +from .native_exec import simple_x64 as x64 + +from windows.generated_def import STATUS_THREAD_IS_TERMINATING +from windows.native_exec.nativeutils import GetProcAddress64, GetProcAddress32 +from windows.dbgprint import dbgprint + + +class InjectionFailedError(WindowsError): + pass + +def get_kernel32_dll_name(): + # Our injected shellcode search for 'kernel32.dll' with a strcmp + # The BaseDllName of k32 might be 'KERNEL32.DLL' or 'kernel32.dll' on different system32 + # We base the name on our own loaded kernel32 + k32 = [m for m in windows.current_process.peb.modules if m.name == "kernel32.dll"] + assert len(k32) == 1 + k32name = k32[0].BaseDllName.str + return (k32name + "\x00").encode("utf-16-le") + +def perform_manual_getproc_loadlib_32(target, dll_name): + dll = get_kernel32_dll_name() + api = "LoadLibraryA\x00" + dll_to_load = dll_name + "\x00" + + RemoteManualLoadLibray = x86.MultipleInstr() + code = RemoteManualLoadLibray + code += x86.Mov("ECX", x86.mem("[ESP + 4]")) + code += x86.Push(x86.mem("[ECX + 4]")) + code += x86.Push(x86.mem("[ECX]")) + code += x86.Call(":FUNC_GETPROCADDRESS32") + code += x86.Push(x86.mem("[ECX + 8]")) + code += x86.Call("EAX") # LoadLibrary + code += x86.Pop("ECX") + code += x86.Pop("ECX") + code += x86.Ret() + + RemoteManualLoadLibray += GetProcAddress32 + + with target.allocated_memory(0x1000) as addr: + addr2 = addr + len(dll) + addr3 = addr2 + len(api) + addr4 = addr3 + len(dll_to_load) + + target.write_memory(addr, dll) + target.write_memory(addr2, api) + target.write_memory(addr3, dll_to_load) + target.write_qword(addr4, addr) + target.write_qword(addr4 + 4, addr2) + target.write_qword(addr4 + 0x8, addr3) + + t = target.execute(RemoteManualLoadLibray.get_code(), addr4) + t.wait() + if not t.exit_code: + raise InjectionFailedError("Injection of <{0}> failed".format(dll_name)) + return True + +def perform_manual_getproc_loadlib_64(target, dll_name): + dll = get_kernel32_dll_name() + api = "LoadLibraryA\x00" + dll_to_load = dll_name + "\x00" + + RemoteManualLoadLibray = x64.MultipleInstr() + code = RemoteManualLoadLibray + code += x64.Mov("R15", "RCX") + code += x64.Mov("RCX", x64.mem("[R15 + 0]")) + code += x64.Mov("RDX", x64.mem("[R15 + 8]")) + code += x64.Call(":FUNC_GETPROCADDRESS64") + code += x64.Mov("RCX", x64.mem("[R15 + 0x10]")) + code += x64.Push("RCX") + code += x64.Push("RCX") + code += x64.Push("RCX") + code += x64.Call("RAX") # LoadLibrary + code += x64.Pop("RCX") + code += x64.Pop("RCX") + code += x64.Pop("RCX") + code += x64.Ret() + + RemoteManualLoadLibray += GetProcAddress64 + + with target.allocated_memory(0x1000) as addr: + addr2 = addr + len(dll) + addr3 = addr2 + len(api) + addr4 = addr3 + len(dll_to_load) + + target.write_memory(addr, dll) + target.write_memory(addr2, api) + target.write_memory(addr3, dll_to_load) + target.write_qword(addr4, addr) + target.write_qword(addr4 + 8, addr2) + target.write_qword(addr4 + 0x10, addr3) + + t = target.execute(RemoteManualLoadLibray.get_code(), addr4) + t.wait() + if not t.exit_code: + raise InjectionFailedError("Injection of <{0}> failed".format(dll_name)) + return True + +def generate_simple_LoadLibraryW_64(load_libraryW, remote_store): + code = RemoteLoadLibrayStub = x64.MultipleInstr() + code += x64.Mov("RAX", load_libraryW) + code += (x64.Push("RDI") * 5) # Prepare stack + code += x64.Call("RAX") + code += (x64.Pop("RDI") * 5) # Clean stack + code += x64.Mov(x64.deref(remote_store), "RAX") + code += x64.Ret() + return RemoteLoadLibrayStub.get_code() + + + +def perform_manual_getproc_loadlib(target, *args, **kwargs): + if target.bitness == 32: + return perform_manual_getproc_loadlib_32(target, *args, **kwargs) + return perform_manual_getproc_loadlib_64(target, *args, **kwargs) + + +def load_dll_in_remote_process(target, dll_path): + rpeb = target.peb + if rpeb.Ldr: + # LDR est parcourable, ca va etre deja plus simple.. + modules = rpeb.modules + if any(mod.fullname.lower() == dll_path.lower() for mod in modules): + # DLL already loaded + dbgprint("DLL already present in target", "DLLINJECT") + return False + k32 = [mod for mod in modules if mod.name.lower() == "kernel32.dll"] + if k32: + # We have kernel32 \o/ + k32 = k32[0] + try: + load_libraryW = k32.pe.exports["LoadLibraryW"] + except KeyError: + raise ValueError("Kernel32 have no export (wtf)") + + with target.allocated_memory(0x1000) as addr: + if target.bitness == 32: + target.write_memory(addr, (dll_path + "\x00").encode('utf-16le')) + t = target.create_thread(load_libraryW, addr) + t.wait() + module_baseaddr = t.exit_code + else: + # For 64b target we need a special stub as the return value of + # load_libraryW does not fit in t.exit_code (DWORD) + retval_addr = addr + target.write_ptr(retval_addr, 0) + addr += ctypes.sizeof(ctypes.c_ulonglong) + full_dll_name = (dll_path + "\x00").encode('utf-16le') + target.write_memory(addr, full_dll_name) + param_addr = addr + addr += len(full_dll_name) + shellcode_addr = addr + shellcode = generate_simple_LoadLibraryW_64(load_libraryW, retval_addr) + target.write_memory(shellcode_addr, shellcode) + t = target.create_thread(shellcode_addr, param_addr) + t.wait() + module_baseaddr = target.read_ptr(retval_addr) + + if not module_baseaddr: + raise InjectionFailedError(u"Injection of <{0}> failed".format(dll_path)) + dbgprint("DLL Injected via LoadLibray", "DLLINJECT") + # Cannot return the full return value of load_libraryW in 64b target.. (exit_code is a DWORD) + return module_baseaddr + # Hardcore mode + # We don't have k32 or PEB->Ldr + # Go inject a GetProcAddress(LoadLib) + LoadLib shellcode :D + dbgprint("DLL Via manual getproc / loadlib", "DLLINJECT") + if target.bitness == 32: + return perform_manual_getproc_loadlib_32(target, dll_path) + return perform_manual_getproc_loadlib_64(target, dll_path) + +python_function_32_bits = {} + +def generate_python_exec_shellcode_32(target, PyDll): + pymodule = [mod for mod in target.peb.modules if mod.name == PyDll][0] + base = pymodule.baseaddr + if not python_function_32_bits: + Py_exports = pymodule.pe.exports + python_function_32_bits["PyEval_InitThreads"] = Py_exports["PyEval_InitThreads"] - base + python_function_32_bits["Py_IsInitialized"] = Py_exports["Py_IsInitialized"] - base + python_function_32_bits["PyGILState_Release"] = Py_exports["PyGILState_Release"] - base + python_function_32_bits["PyGILState_Ensure"] = Py_exports["PyGILState_Ensure"] - base + python_function_32_bits["PyEval_SaveThread"] = Py_exports["PyEval_SaveThread"] - base + python_function_32_bits["Py_Initialize"] = Py_exports["Py_Initialize"] - base + python_function_32_bits["PyRun_SimpleString"] = Py_exports["PyRun_SimpleString"] - base + Py_exports = python_function_32_bits + PyEval_InitThreads = Py_exports["PyEval_InitThreads"] + base + Py_IsInitialized = Py_exports["Py_IsInitialized"] + base + PyGILState_Release = Py_exports["PyGILState_Release"] + base + PyGILState_Ensure = Py_exports["PyGILState_Ensure"] + base + PyEval_SaveThread = Py_exports["PyEval_SaveThread"] + base + Py_Initialize = Py_exports["Py_Initialize"] + base + PyRun_SimpleString = Py_exports["PyRun_SimpleString"] + base + + code = x86.MultipleInstr() + code += x86.Mov('EAX', Py_IsInitialized) + code += x86.Call('EAX') + code += x86.Mov("EDI", "EAX") + code += x86.Cmp("EAX", 0) + code += x86.Jnz(":DO_ENSURE") + code += x86.Mov('EAX', Py_Initialize) + code += x86.Call('EAX') + # https://docs.python.org/3/c-api/init.html#c.PyEval_InitThreads + code += x86.Mov('EAX', PyEval_InitThreads) + code += x86.Call('EAX') + code += x86.Label(":DO_ENSURE") + code += x86.Mov('EAX', PyGILState_Ensure) + code += x86.Call('EAX') + code += x86.Push('EAX') + # Get the string to execute from parameters + code += x86.Mov("EAX", x86.mem("[ESP + 0x8]")) + code += x86.Push('EAX') + code += x86.Mov('EAX', PyRun_SimpleString) + code += x86.Call('EAX') + code += x86.Mov("ESI", "EAX") + code += x86.Mov('EAX', PyGILState_Release) + code += x86.Call('EAX') + code += x86.Pop('EAX') + code += x86.Cmp("EDI", 0) + code += x86.Jnz(":RETURN") + # If PyEval_InitThreads was called (init done in this thread) + # We must release the GIL + code += x86.Mov('EAX', PyEval_SaveThread) + code += x86.Call('EAX') + code += x86.Label(":RETURN") + code += x86.Mov("EAX", "ESI") + code += x86.Pop("EDI") + code += x86.Ret() + return code.get_code() + + +python_function_64_bits = {} + +def generate_python_exec_shellcode_64(target, PyDll): + pymodule = [mod for mod in target.peb.modules if mod.name == PyDll][0] + base = pymodule.baseaddr + if not python_function_64_bits: + Py_exports = pymodule.pe.exports + python_function_64_bits["PyEval_InitThreads"] = Py_exports["PyEval_InitThreads"] - base + python_function_64_bits["Py_IsInitialized"] = Py_exports["Py_IsInitialized"] - base + python_function_64_bits["PyGILState_Release"] = Py_exports["PyGILState_Release"] - base + python_function_64_bits["PyGILState_Ensure"] = Py_exports["PyGILState_Ensure"] - base + python_function_64_bits["PyEval_SaveThread"] = Py_exports["PyEval_SaveThread"] - base + python_function_64_bits["Py_Initialize"] = Py_exports["Py_Initialize"] - base + python_function_64_bits["PyRun_SimpleString"] = Py_exports["PyRun_SimpleString"] - base + Py_exports = python_function_64_bits + PyEval_InitThreads = Py_exports["PyEval_InitThreads"] + base + Py_IsInitialized = Py_exports["Py_IsInitialized"] + base + PyGILState_Release = Py_exports["PyGILState_Release"] + base + PyGILState_Ensure = Py_exports["PyGILState_Ensure"] + base + PyEval_SaveThread = Py_exports["PyEval_SaveThread"] + base + Py_Initialize = Py_exports["Py_Initialize"] + base + PyRun_SimpleString = Py_exports["PyRun_SimpleString"] + base + + Reserve_space_for_call = x64.MultipleInstr([x64.Push('RDI')] * 4) + Clean_space_for_call = x64.MultipleInstr([x64.Pop('RDI')] * 4) + code = x64.MultipleInstr() + # Do stack alignement + code += x64.Push('RCX') + code += Reserve_space_for_call + code += x64.Mov('RAX', Py_IsInitialized) + code += x64.Call('RAX') + code += x64.Mov("RDI", "RAX") + code += x64.Cmp("RAX", 0) + code += x64.Jnz(":DO_ENSURE") + code += x64.Mov('RAX', Py_Initialize) + code += x64.Call('RAX') + # https://docs.python.org/3/c-api/init.html#c.PyEval_InitThreads + code += x64.Mov('RAX', PyEval_InitThreads) + code += x64.Call('RAX') + code += x64.Label(":DO_ENSURE") + code += x64.Mov('RAX', PyGILState_Ensure) + code += x64.Call('RAX') + code += x64.Mov('R15', 'RAX') + code += x64.Mov("RCX", x64.mem("[RSP + 0x20]")) + code += x64.Mov('RAX', PyRun_SimpleString) + code += x64.Call('RAX') + code += x64.Mov('RCX', 'R15') + code += x64.Mov('R15', 'RAX') + code += x64.Mov('RAX', PyGILState_Release) + code += x64.Call('RAX') + code += x64.Cmp("RDI", 0) + code += x64.Jnz(":RETURN") + # If PyEval_InitThreads was called (init done in this thread) + # We must release the GIL + code += x64.Mov('RAX', PyEval_SaveThread) + code += x64.Call('RAX') + code += x64.Label(":RETURN") + code += Clean_space_for_call + # Remove stack alignement + code += x64.Pop('RCX') + code += x64.Mov("RAX", "R15") + code += x64.Ret() + return code.get_code() + + +def inject_python_command(target, code_injected, PYDLL): + """Postulate: PYDLL is already loaded in target process""" + PYCODE = code_injected + "\x00" + # TODO: free this (how ? when ?) + remote_python_code_addr = target.virtual_alloc(len(PYCODE)) + target.write_memory(remote_python_code_addr, PYCODE) + shellcode_addr = getattr(target, "_execute_python_shellcode", None) + if shellcode_addr is not None: + return shellcode_addr, remote_python_code_addr + if target.bitness == 32: + shellcode_generator = generate_python_exec_shellcode_32 + else: + shellcode_generator = generate_python_exec_shellcode_64 + + shellcode = shellcode_generator(target, PYDLL) + shellcode_addr = target.virtual_alloc(len(shellcode)) + target.write_memory(shellcode_addr, shellcode) + target._execute_python_shellcode = shellcode_addr + return shellcode_addr, remote_python_code_addr + +def get_dll_name_from_python_version(): + version = sys.version_info + return "python{v.major}{v.minor}.dll".format(v=version) + +def find_python_dll_to_inject(target_bitness): + pydll_name = get_dll_name_from_python_version() + if windows.current_process.bitness == target_bitness: + # We can inject our own DLL + pymodules = [m for m in windows.current_process.peb.modules if m.name == pydll_name] + assert len(pymodules) == 1 + return pymodules[0].fullname + # Okay, so we need to find the DLL to inject. + # Problem is, for py3 the DLL is not un system32, so we need for search for it + # Simpler solution is the registry + # Add a check using %PATH% ? + assert windows.system.bitness == 64, "How can we have process of different bitness on 32b system ?" + if sys.version_info.major == 2: + # Python2 DLL are located in system32/syswow64 + # We know that we are looking to DLL of the other bitness + if windows.current_process.bitness == 32: + # We need to check that the real system32\pythonXX.dll exists + systempath = "sysnative" + else: + # We need to check that the wow64 system32\pythonXX.dll exists + systempath = "syswow64" + if os.path.exists(os.path.join(os.environ["windir"], systempath, pydll_name)): + # In any way (32b ou 64b) the target process will load system32\pydll + # If the target is 32b the wow64 layer will translate it + return os.path.join(os.environ["windir"], "system32", pydll_name) + # If not found this way -> may mean we have a install only for a user, give registry a try + + # Python 3 dll must be located using the registry + for base_key in "HKEY_LOCAL_MACHINE", "HKEY_CURRENT_USER": + # Open the registry in 64b view regardless of current process bitness + regbase = windows.system.registry(base_key, gdef.KEY_WOW64_64KEY | gdef.KEY_READ) + # we cannot use sys.winver as we are looking for the OTHER version + # But from Python it looks like format is + # {Major}.{Minor}{-32}(for 32b build) + # This code do not handle -test version + winver_base = sys.winver[:3] # major-minor + if target_bitness == 64: + pyinstallkeys = [regbase(r"SOFTWARE\Python\PythonCore")(winver_base)] + else: + pyinstallkeys = [regbase(r"SOFTWARE\Python\PythonCore")(winver_base + "-32"), + regbase(r"SOFTWARE\WOW6432Node\Python\PythonCore")(winver_base + "-32")] + for pyinstallkey in pyinstallkeys: + if not pyinstallkey.exists: + continue + try: + pyinstallpath = pyinstallkey("InstallPath")[""].value + final_path = os.path.join(pyinstallpath, pydll_name) + assert os.path.exists(final_path), "Could not find <{0}> pydll referenced from registry".format(final_path) + return final_path + except WindowsError as e: + if e.winerror != gdef.ERROR_FILE_NOT_FOUND: + raise + # Not found + continue + # Could not find a valid installation + raise ValueError("Could not find a path for python-dll <{0}>({1}bits)".format(sys.winver, target_bitness)) + + + +def execute_python_code(process, code): + # Cache the value ? + py_dll_name = get_dll_name_from_python_version() + pydll_path = find_python_dll_to_inject(process.bitness) + if sys.version_info.major == 3: + # FOr py3, we may have a per-user install. + # Meaning that the vcruntime140.dll will not be in the injected process path + # Find it & load-it as well, it should be in the same directory as pythonxx.dll + vc_runtime_dll = os.path.join(os.path.dirname(pydll_path), "vcruntime140.dll") + load_dll_in_remote_process(process, vc_runtime_dll) + # Try to inject the vcrunt + load_dll_in_remote_process(process, pydll_path) + shellcode, pythoncode = inject_python_command(process, code, py_dll_name) + t = process.create_thread(shellcode, pythoncode) + return t + + +retrieve_exc = r""" +import traceback +import sys +addr = {0} +txt = "".join(traceback.format_exception(sys.last_type, sys.last_value, sys.last_traceback)) +import ctypes + +size = ctypes.c_uint.from_address(addr) +size.value = len(txt) +buff = (ctypes.c_char * len(txt)).from_address(addr + ctypes.sizeof(ctypes.c_uint)) +buff[:] = txt.encode() +""" + +def retrieve_last_exception_data(process): + with process.allocated_memory(0x1000) as mem: + execute_python_code(process, retrieve_exc.format(mem)).wait() + size = struct.unpack("".format(get_vendor_id())) + infos = format.from_buffer_copy(struct.pack("".format(bits)) + return cls.int_size[bits] + + def get_new_page(self, size): + addr = windows.winproxy.VirtualAlloc(0, size, 0x1000, gdef.PAGE_EXECUTE_READWRITE) + mymap = (ctypes.c_char * size).from_address(addr) + mymap.addr = addr + self.maps.append(mymap) + self.cur_offset = 0 + self.cur_page_size = size + + def reserve_size(self, size): + if size + self.cur_offset > self.cur_page_size: + self.get_new_page((size + 0x1000) & ~0xfff) + addr = self.maps[-1].addr + self.cur_offset + self.cur_offset += size + return addr + + def reserve_int(self, nb_int=1): + int_size = self.get_int_size() + return self.reserve_size(int_size * nb_int) + + def write_code(self, code): + size = len(code) + if size + self.cur_offset > self.cur_page_size: + self.get_new_page((size + 0x1000) & ~0xfff) + self.maps[-1][self.cur_offset: self.cur_offset + size] = code + addr = self.maps[-1].addr + self.cur_offset + self.cur_offset += size + return addr + + def close(self): + maps = self.maps + self.maps = [] + self.cur_offset = 0 + self.cur_page_size = 0 + if getattr(sys, "path", None) is None: + # Path is None -> Python shutdown + return + for mymap in maps: + windows.winproxy.VirtualFree(mymap.addr, dwFreeType=gdef.MEM_RELEASE) + + def __del__(self): + self.close() + +allocator = CustomAllocator() + + +def create_function(code, types, calling_convention=ctypes.CFUNCTYPE): + """Create a python function that call raw machine code + + :param str code: Raw machine code that will be called + :param list types: Return type and parameters type (see :mod:`ctypes`) + :return: the created function + :rtype: function + """ + func_type = calling_convention(*types) + addr = allocator.write_code(code) + res = func_type(addr) + res.code_addr = addr + return res diff --git a/pythonmemorymodule/windows/native_exec/nativeutils.py b/pythonmemorymodule/windows/native_exec/nativeutils.py new file mode 100644 index 0000000..28e10cb --- /dev/null +++ b/pythonmemorymodule/windows/native_exec/nativeutils.py @@ -0,0 +1,280 @@ +import windows + +import windows.native_exec.simple_x64 as x64 +import windows.native_exec.simple_x86 as x86 +from windows.generated_def.winstructs import * + + +StrlenW64 = x64.MultipleInstr() +StrlenW64 += x64.Label(":FUNC_STRLENW64") +StrlenW64 += x64.Push("RCX") +StrlenW64 += x64.Push("RDI") +StrlenW64 += x64.Mov("RDI", "RCX") +StrlenW64 += x64.Xor("RAX", "RAX") +StrlenW64 += x64.Xor("RCX", "RCX") +StrlenW64 += x64.Dec("RCX") +StrlenW64 += x64.Repne + x64.ScasW() +StrlenW64 += x64.Not("RCX") +StrlenW64 += x64.Dec("RCX") +StrlenW64 += x64.Mov("RAX", "RCX") +StrlenW64 += x64.Pop("RDI") +StrlenW64 += x64.Pop("RCX") +StrlenW64 += x64.Ret() + + +StrlenA64 = x64.MultipleInstr() +StrlenA64 += x64.Label(":FUNC_STRLENA64") +StrlenA64 += x64.Push("RCX") +StrlenA64 += x64.Push("RDI") +StrlenA64 += x64.Mov("RDI", "RCX") +StrlenA64 += x64.Xor("RAX", "RAX") +StrlenA64 += x64.Xor("RCX", "RCX") +StrlenA64 += x64.Dec("RCX") +StrlenA64 += x64.Repne + x64.ScasB() +StrlenA64 += x64.Not("RCX") +StrlenA64 += x64.Dec("RCX") +StrlenA64 += x64.Mov("RAX", "RCX") +StrlenA64 += x64.Pop("RDI") +StrlenA64 += x64.Pop("RCX") +StrlenA64 += x64.Ret() + + +GetProcAddress64 = x64.MultipleInstr() +GetProcAddress64 += x64.Label(":FUNC_GETPROCADDRESS64") +GetProcAddress64 += x64.Push("RBX") +GetProcAddress64 += x64.Push("RCX") +GetProcAddress64 += x64.Push("RDX") +GetProcAddress64 += x64.Push("RSI") +GetProcAddress64 += x64.Push("RDI") +GetProcAddress64 += x64.Push("R8") +GetProcAddress64 += x64.Push("R9") +GetProcAddress64 += x64.Push("R10") +GetProcAddress64 += x64.Push("R11") +GetProcAddress64 += x64.Push("R12") +GetProcAddress64 += x64.Push("R13") +# Params : RCX -> libname +# Params : RDX -> API Name +GetProcAddress64 += x64.Mov("R11", "RCX") +GetProcAddress64 += x64.Mov("R12", "RDX") +GetProcAddress64 += x64.Mov("RAX", x64.mem("GS:[0x60]")) #PEB ! +GetProcAddress64 += x64.Mov("RAX", x64.mem("[RAX + 24] ")) # ; RAX = ldr (+ 6 for 64 cause of 2 ptr) +GetProcAddress64 += x64.Mov("RAX", x64.mem("[RAX + 32]")) # ; RAX on the first elt of the list (first module) +GetProcAddress64 += x64.Mov("RDX", "RAX") +GetProcAddress64 += x64.Label(":a_dest") +GetProcAddress64 += x64.Mov("RAX", "RDX") +GetProcAddress64 += x64.Mov("RBX", x64.mem("[RAX + 32]")) # RBX : first base ! (base of current module) +#GetProcAddress64 += x64.Mov("RBX ", x64.mem("[RAX + 32]")) # RBX : first base ! (base of current module) +GetProcAddress64 += x64.Cmp("RBX", 0) +GetProcAddress64 += x64.Jz(":DLL_NOT_FOUND") +GetProcAddress64 += x64.Mov("RCX", x64.mem("[RAX + 80]")) # RCX = NAME (UNICODE_STRING.Buffer) +GetProcAddress64 += x64.Call(":FUNC_STRLENW64") +GetProcAddress64 += x64.Mov("RDI", "RCX") +GetProcAddress64 += x64.Mov("RCX", "RAX") +GetProcAddress64 += x64.Mov("RSI", "R11") +GetProcAddress64 += x64.Rep + x64.CmpsW() #;cmp with current dll name (unicode) +GetProcAddress64 += x64.Test("RCX", "RCX") +GetProcAddress64 += x64.Jz(":DLL_FOUND") +GetProcAddress64 += x64.Mov("RDX", x64.mem("[RDX]")) +GetProcAddress64 += x64.Jmp(":a_dest") +GetProcAddress64 += x64.Label(":DLL_FOUND") # here rbx = base +GetProcAddress64 += x64.Mov("EAX", x64.mem("[RBX + 60]")) # rax = PEBASE RVA +GetProcAddress64 += x64.Add("RAX", "RBX") # RAX = PEBASE +GetProcAddress64 += x64.Add("RAX", 24) # ;OPTIONAL HEADER +GetProcAddress64 += x64.Mov("ECX", x64.mem("[rax + 112]")) # ;rcx = RVA export dir +GetProcAddress64 += x64.Add("RCX", "RBX") # ;rcx = export_dir +GetProcAddress64 += x64.Mov("RAX", "RCX") # ;RAX = export_dir +GetProcAddress64 += x64.Push("RAX") # ;Save it for after function search +# ; EBX = BASE | EAX = EXPORT DIR +GetProcAddress64 += x64.Mov("ECX", x64.mem("[RAX + 24] ")) +GetProcAddress64 += x64.Mov("R13", "RCX") # ;r13 = NB names +GetProcAddress64 += x64.Mov("EDX", x64.mem("[RAX + 32] ")) # EDX = names array RVA +GetProcAddress64 += x64.Add("RDX", "RBX") # RDX = names array +GetProcAddress64 += x64.Xor("RCX", "RCX") +GetProcAddress64 += x64.Label(":SEARCH_LOOP") +GetProcAddress64 += x64.Cmp("RCX", "R13") +GetProcAddress64 += x64.Jz(":API_NOT_FOUND") +GetProcAddress64 += x64.Mov("ESI", x64.mem("[RDX + RCX * 4]")) # ;Get function name RVA +GetProcAddress64 += x64.Add("RSI", "RBX") # ;Get name addr +GetProcAddress64 += x64.Push("RCX") # ;Save current index (could use x64 register) +GetProcAddress64 += x64.Mov("RCX", "R12") +GetProcAddress64 += x64.Call(":FUNC_STRLENA64") # TODO: mov outside the loop :D +GetProcAddress64 += x64.Mov("RCX", "RAX") +GetProcAddress64 += x64.Mov("RDI", "R12") +GetProcAddress64 += x64.Inc("RCX") +GetProcAddress64 += x64.Rep + x64.CmpsB() +GetProcAddress64 += x64.Mov("EAX", "ECX") +GetProcAddress64 += x64.Pop("RCX") +GetProcAddress64 += x64.Inc("RCX") +GetProcAddress64 += x64.Test("RAX", "RAX") +GetProcAddress64 += x64.Jnz(":SEARCH_LOOP") +# Func FOUND ! +GetProcAddress64 += x64.Dec("RCX") +GetProcAddress64 += x64.Pop("RAX") # ;Restore export_dir addr +GetProcAddress64 += x64.Mov("EDX", x64.mem("[RAX + 36]")) # ;EDX = AddressOfNameOrdinals RVX +GetProcAddress64 += x64.Add("RDX", "RBX") +GetProcAddress64 += x64.OperandSizeOverride + x64.Mov("ECX", x64.mem("[rdx + rcx * 2]")) # ; ecx = Ieme ordinal (short array) +GetProcAddress64 += x64.And('RCX', 0xffff) +GetProcAddress64 += x64.Mov("EDX", x64.mem("[RAX + 28]")) # ; AddressOfFunctions RVA +GetProcAddress64 += x64.Add("RDX", "RBX") +GetProcAddress64 += x64.Mov("EDX", x64.mem("[RDX + RCX * 4]")) +GetProcAddress64 += x64.Add("RDX", "RBX") +GetProcAddress64 += x64.Mov("RAX", "RDX") +GetProcAddress64 += x64.Label(":RETURN") +GetProcAddress64 += x64.Pop("R13") +GetProcAddress64 += x64.Pop("R12") +GetProcAddress64 += x64.Pop("R11") +GetProcAddress64 += x64.Pop("R10") +GetProcAddress64 += x64.Pop("R9") +GetProcAddress64 += x64.Pop("R8") +GetProcAddress64 += x64.Pop("RDI") +GetProcAddress64 += x64.Pop("RSI") +GetProcAddress64 += x64.Pop("RDX") +GetProcAddress64 += x64.Pop("RCX") +GetProcAddress64 += x64.Pop("RBX") +GetProcAddress64 += x64.Ret() +GetProcAddress64 += x64.Label(":DLL_NOT_FOUND") +GetProcAddress64 += x64.Mov("RAX", 0xfffffffffffffffe) +GetProcAddress64 += x64.Jmp(":RETURN") +GetProcAddress64 += x64.Label(":API_NOT_FOUND") +GetProcAddress64 += x64.Pop("RAX") +GetProcAddress64 += x64.Mov("RAX", 0xffffffffffffffff) +GetProcAddress64 += x64.Jmp(":RETURN") +# Ajout des dependances +GetProcAddress64 += StrlenW64 +GetProcAddress64 += StrlenA64 + + + +###### 32 bits ####### + + +StrlenW32 = x86.MultipleInstr() +StrlenW32 += x86.Label(":FUNC_STRLENW32") +StrlenW32 += x86.Push("EDI") +StrlenW32 += x86.Mov("EDI", x86.mem("[ESP + 8]")) +StrlenW32 += x86.Push("ECX") +StrlenW32 += x86.Xor("EAX", "EAX") +StrlenW32 += x86.Xor("ECX", "ECX") +StrlenW32 += x86.Dec("ECX") +StrlenW32 += x86.Repne + x86.ScasW() +StrlenW32 += x86.Not("ECX") +StrlenW32 += x86.Dec("ECX") +StrlenW32 += x86.Mov("EAX", "ECX") +StrlenW32 += x86.Pop("ECX") +StrlenW32 += x86.Pop("EDI") +StrlenW32 += x86.Ret() + + +StrlenA32 = x86.MultipleInstr() +StrlenA32 += x86.Label(":FUNC_STRLENA32") +StrlenA32 += x86.Push("EDI") +StrlenA32 += x86.Mov("EDI", x86.mem("[ESP + 8]")) +StrlenA32 += x86.Push("ECX") +StrlenA32 += x86.Xor("EAX", "EAX") +StrlenA32 += x86.Xor("ECX", "ECX") +StrlenA32 += x86.Dec("ECX") +StrlenA32 += x86.Repne + x86.ScasB() +StrlenA32 += x86.Not("ECX") +StrlenA32 += x86.Dec("ECX") +StrlenA32 += x86.Mov("EAX", "ECX") +StrlenA32 += x86.Pop("ECX") +StrlenA32 += x86.Pop("EDI") +StrlenA32 += x86.Ret() + + +GetProcAddress32 = x86.MultipleInstr() +GetProcAddress32 += x86.Label(":FUNC_GETPROCADDRESS32") +GetProcAddress32 += x86.Push("EBX") +GetProcAddress32 += x86.Push("ECX") +GetProcAddress32 += x86.Push("EDI") +GetProcAddress32 += x86.Push("ESI") +GetProcAddress32 += x86.Push("EBP") +GetProcAddress32 += x86.Mov("EAX", x86.mem("FS:[0x30]")) +GetProcAddress32 += x86.Mov("EAX", x86.mem("[EAX + 0xC]")) +GetProcAddress32 += x86.Mov("EAX", x86.mem("[EAX + 0xC]")) # ; RAX on the first elt of the list (first module) +GetProcAddress32 += x86.Mov("EDX", "EAX") +GetProcAddress32 += x86.Label(":a_dest") +GetProcAddress32 += x86.Mov("EAX", "EDX") +GetProcAddress32 += x86.Mov("EBX", x86.mem("[EAX + 0x18]")) # EBX : first base ! (base of current module) +GetProcAddress32 += x86.Cmp("EBX", 0) +GetProcAddress32 += x86.Jz(":DLL_NOT_FOUND") +GetProcAddress32 += x86.Mov("ECX", x86.mem("[EAX + 0x30]")) # RCX = NAME (UNICODE_STRING.Buffer) +GetProcAddress32 += x86.Push("ECX") +GetProcAddress32 += x86.Call(":FUNC_STRLENW32") +GetProcAddress32 += x86.Pop("EDI") # Current name +GetProcAddress32 += x86.Mov("ECX", "EAX") +GetProcAddress32 += x86.Mov("ESI", x86.mem("[ESP + 0x18]")) +GetProcAddress32 += x86.Rep + x86.CmpsW() +GetProcAddress32 += x86.Test("ECX", "ECX") +GetProcAddress32 += x86.Jz(":DLL_FOUND") +GetProcAddress32 += x86.Mov("EDX", x86.mem("[EDX]")) +GetProcAddress32 += x86.Jmp(":a_dest") +GetProcAddress32 += x86.Label(":DLL_FOUND") +GetProcAddress32 += x86.Mov("EAX", x86.mem("[EBX + 0x3c]")) # rax = PEBASE RVA +GetProcAddress32 += x86.Add("EAX", "EBX") # RAX = PEBASE +GetProcAddress32 += x86.Add("EAX", 0x18) # ;OPTIONAL HEADER +GetProcAddress32 += x86.Mov("ECX", x86.mem("[EAX + 0x60]")) # ;ecx = RVA export dir +GetProcAddress32 += x86.Add("ECX", "EBX") # ;ecx = export_dir +GetProcAddress32 += x86.Mov("EAX", "ECX") +GetProcAddress32 += x86.Push("EAX") # Save it +# ; EBX = BASE | EAX = EXPORT DIR +GetProcAddress32 += x86.Mov("ECX", x86.mem("[EAX + 24] ")) +GetProcAddress32 += x86.Mov("EBP", "ECX") # ;EBP = NB names +GetProcAddress32 += x86.Mov("EDX", x86.mem("[EAX + 32] ")) # EDX = names array RVA +GetProcAddress32 += x86.Add("EDX", "EBX") # RDX = names array +GetProcAddress32 += x86.Xor("ECX", "ECX") +GetProcAddress32 += x86.Mov("ESI", x86.mem("[ESP + 0x20]")) +GetProcAddress32 += x86.Label(":SEARCH_LOOP") +GetProcAddress32 += x86.Cmp("ECX", "EBP") +GetProcAddress32 += x86.Jz(":API_NOT_FOUND") +GetProcAddress32 += x86.Mov("EDI", x86.mem("[EDX + ECX * 4]")) # ;Get function name RVA +GetProcAddress32 += x86.Add("EDI", "EBX") # ;Get name addr +GetProcAddress32 += x86.Push("ECX") # Save current index +GetProcAddress32 += x86.Push("ESI") +GetProcAddress32 += x86.Call(":FUNC_STRLENA32") +GetProcAddress32 += x86.Mov("ECX", "EAX") +GetProcAddress32 += x86.Push("EDI") +GetProcAddress32 += x86.Call(":FUNC_STRLENA32") +GetProcAddress32 += x86.Pop("EDI") +GetProcAddress32 += x86.Cmp("EAX", "ECX") +GetProcAddress32 += x86.Jnz(":ABORT_STRCMP") +GetProcAddress32 += x86.Inc("ECX") +GetProcAddress32 += x86.Rep + x86.CmpsB() +GetProcAddress32 += x86.Label(":ABORT_STRCMP") +GetProcAddress32 += x86.Pop("ESI") +GetProcAddress32 += x86.Mov("EAX", "ECX") +GetProcAddress32 += x86.Pop("ECX") +GetProcAddress32 += x86.Inc("ECX") +GetProcAddress32 += x86.Test("EAX", "EAX") +GetProcAddress32 += x86.Jnz(":SEARCH_LOOP") + +GetProcAddress32 += x86.Dec("ECX") +#GetProcAddress32 += x86.Int3() # da poi(edx + (ecx * 4)) + ebx; da esi +GetProcAddress32 += x86.Pop("EAX") # ;Restore export_dir addr +GetProcAddress32 += x86.Mov("EDX", x86.mem("[EAX + 36]")) # ;EDX = AddressOfNameOrdinals RVX +GetProcAddress32 += x86.Add("EDX", "EBX") +#GetProcAddress32 += x86.Mov("ECX", x86.mem("[EDX + ECX * 2]")) +GetProcAddress32 += x86.OperandSizeOverride + x86.Mov("ECX", x86.mem("[EDX + ECX * 2]")) +# ; ecx = Ieme ordinal (short array) +GetProcAddress32 += x86.And('ECX', 0xffff) +GetProcAddress32 += x86.Mov("EDX", x86.mem("[EAX + 28]")) # ; AddressOfFunctions RVA +GetProcAddress32 += x86.Add("EDX", "EBX") +GetProcAddress32 += x86.Mov("EDX", x86.mem("[EDX + ECX * 4]")) +GetProcAddress32 += x86.Add("EDX", "EBX") +GetProcAddress32 += x86.Mov("EAX", "EDX") +GetProcAddress32 += x86.Label(":RETURN") +GetProcAddress32 += x86.Pop("EBP") +GetProcAddress32 += x86.Pop("ESI") +GetProcAddress32 += x86.Pop("EDI") +GetProcAddress32 += x86.Pop("ECX") +GetProcAddress32 += x86.Pop("EBX") +GetProcAddress32 += x86.Ret() +GetProcAddress32 += x86.Label(":DLL_NOT_FOUND") +GetProcAddress32 += x86.Mov("EAX", 0xfffffffe) +GetProcAddress32 += x86.Jmp(":RETURN") +GetProcAddress32 += x86.Label(":API_NOT_FOUND") +GetProcAddress32 += x86.Pop("EAX") +GetProcAddress32 += x86.Mov("EAX", 0xffffffff) +GetProcAddress32 += x86.Jmp(":RETURN") +GetProcAddress32 += StrlenW32 +GetProcAddress32 += StrlenA32 \ No newline at end of file diff --git a/pythonmemorymodule/windows/native_exec/simple_x64.py b/pythonmemorymodule/windows/native_exec/simple_x64.py new file mode 100644 index 0000000..6e6e652 --- /dev/null +++ b/pythonmemorymodule/windows/native_exec/simple_x64.py @@ -0,0 +1,1368 @@ +import sys +import collections +import struct +import binascii + +DEBUG = False + + +# py3 +is_py3 = (sys.version_info.major >= 3) +if is_py3: + basestring = str + int_types = int +else: + int_types = (int, long) + +class BitArray(object): + def __init__(self, size, bits): + self.size = size + if len(bits) > size: + raise ValueError("size > len(bits)") + + bits_list = [] + for bit in bits: + x = int(bit) + if x not in [0, 1]: + raise ValueError("Not expected bits value {0}".format(x)) + bits_list.append(x) + + self.array = bits_list + if size > len(self.array): + self.array = ([0] * (size - len(self.array))) + self.array + + def dump(self): + res = [] + for i in range(self.size // 8): + c = 0 + for x in (self.array[i * 8: (i + 1) * 8]): + c = (c << 1) + x + res.append(c) + return bytearray((res)) + + def __getitem__(self, slice): + return self.array[slice] + + def __setitem__(self, slice, value): + self.array[slice] = value + return True + + def __repr__(self): + return repr(self.array) + + def __add__(self, other): + if not isinstance(other, BitArray): + return NotImplemented + return BitArray(self.size + other.size, self.array + other.array) + + def __or__(self, other): + if not isinstance(other, BitArray): + return NotImplemented + if self.size != other.size: + raise ValueError("OR ON DIFF SIZE") + new_array = [(x | y) for x, y in zip(self.array, other.array)] + return BitArray(self.size, new_array) + + def to_int(self): + return int("".join([str(i) for i in self.array]), 2) + + @classmethod + def from_string(cls, str_base): + l = [] + for c in bytearray(reversed(str_base)): + for i in range(8): + l.append(c & 1) + c = c >> 1 + return cls(len(str_base) * 8, list(reversed(l))) + + @classmethod + def from_int(cls, size, x): + if x < 0: + x = x & ((2 ** size) - 1) + return cls(size, bin(x)[2:]) + + def copy(self): + return type(self)(self.size, self.array) + + def __eq__(self, other): + if not isinstance(other, BitArray): + return NotImplemented + return self.array == other.array + + def __ne__(self, other): + if not isinstance(other, BitArray): + return NotImplemented + return self.array != other.array + + +# Prefix +class Prefix(object): + PREFIX_VALUE = None + + def __init__(self, next=None): + self.next = next + + def __add__(self, other): + return type(self)(other) + + def get_code_py3(self): + return bytes([self.PREFIX_VALUE]) + self.next.get_code() + + def get_code(self): + return chr(self.PREFIX_VALUE) + self.next.get_code() + + if is_py3: + get_code = get_code_py3 + + +def create_prefix(name, value): + prefix_type = type(name + "Type", (Prefix,), {'PREFIX_VALUE': value}) + return prefix_type() + +LockPrefix = create_prefix('LockPrefix', 0xf0) +Repne = create_prefix('Repne', 0xf2) +Rep = create_prefix('Rep', 0xf3) +SSPrefix = create_prefix('SSPrefix', 0x36) +CSPrefix = create_prefix('CSPrefix', 0x2e) +DSPrefix = create_prefix('DSPrefix', 0x3e) +ESPrefix = create_prefix('ESPrefix', 0x26) +FSPrefix = create_prefix('FSPrefix', 0x64) +GSPrefix = create_prefix('GSPrefix', 0x65) +OperandSizeOverride = create_prefix('OperandSizeOverride', 0x66) +AddressSizeOverride = create_prefix('AddressSizeOverride', 0x67) + +mem_access = collections.namedtuple('mem_access', ['base', 'index', 'scale', 'disp', 'prefix']) + +reg_order = ['RAX', 'RCX', 'RDX', 'RBX', 'RSP', 'RBP', 'RSI', 'RDI'] +new_reg_order = ['R8', 'R9', 'R10', 'R11', 'R12', 'R13', 'R14', 'R15'] +x64_regs = reg_order + new_reg_order + +registers_32_bits = {'R15D': 'R15', 'R14D': 'R14', 'ESP': 'RSP', 'R9D': 'R9', +'EDI': 'RDI', 'R11D': 'R11', 'R8D': 'R8', 'R10D': 'R10', 'EAX': 'RAX', +'R13D': 'R13', 'EBP': 'RBP', 'R12D': 'R12', 'EDX': 'RDX', 'EBX': 'RBX', +'ESI': 'RSI', 'ECX': 'RCX'} + +registers_64_to_32_bits = {r64:r32 for r32,r64 in registers_32_bits.items()} + +x64_segment_selectors = {'CS': CSPrefix, 'DS': DSPrefix, 'ES': ESPrefix, 'SS': SSPrefix, + 'FS': FSPrefix, 'GS': GSPrefix} + + +class X64(object): + @staticmethod + def is_reg(name): + try: + return (name.upper() in reg_order) or X64.is_new_reg(name) or X64.is_32b_reg(name) + except AttributeError: # Not a string + return False + + @staticmethod + def is_new_reg(name): + try: + return name.upper() in new_reg_order + except AttributeError: # Not a string + return False + + @staticmethod + def is_32b_reg(name): + try: + return name.upper() in registers_32_bits + except AttributeError: # Not a string + return False + + @staticmethod + def is_mem_acces(data): + return isinstance(data, mem_access) + + @staticmethod + def mem_access_has_only(mem_access, names): + if not X64.is_mem_acces(mem_access): + raise ValueError("mem_access_has_only") + for f in mem_access._fields: + if f != "prefix" and getattr(mem_access, f) and f not in names: + return False + if "base" in names and mem_access.base is None: + return False + return True + + @staticmethod + def to_little_endian(i, size=64): + pack = {8: 'B', 16: 'H', 32: 'I', 64: 'Q'} + s = pack[size] + mask = (1 << size) - 1 + i = i & mask + return struct.unpack("<" + s, struct.pack(">" + s, i))[0] + + +def create_displacement(base=None, index=None, scale=None, disp=0, prefix=None): + if index is not None and scale is None: + scale = 1 + if scale and index is None: + raise ValueError("Cannot create displacement with scale and no index") + if scale and index.upper() == "RSP": + raise ValueError("Cannot create displacement with index == RSP") + return mem_access(base, index, scale, disp, prefix) + + +def deref(disp): + return create_displacement(disp=disp) + + +def mem(data): + """Parse a memory access string of format [EXPR] or seg:[EXPR] + EXPR may describe: BASE | INDEX * SCALE | DISPLACEMENT or any combinaison (in this order) + """ + if not isinstance(data, str): + raise TypeError("mem need a string to parse") + data = data.strip() + prefix = None + if not (data.startswith("[") and data.endswith("]")): + if data[2] != ":": + raise ValueError("mem acces expect <[EXPR]> or or ".format(data)) + sub_items = item.split("*") + if len(sub_items) != 2: + raise ValueError("Invalid item <{0}> in mem access".format(item)) + index, scale = sub_items + index, scale = index.strip(), scale.strip() + if not X64.is_reg(index): + raise ValueError("Invalid index <{0}> in mem access".format(index)) + try: + scale = int(scale, 0) + except ValueError: + raise ValueError("Invalid scale <{0}> in mem access".format(scale)) + parsed_items['scale'] = scale + parsed_items['index'] = index + else: + # displacement / base / index alone + if X64.is_reg(item): + if 'base' not in parsed_items: + parsed_items['base'] = item + continue + # Already have base + index -> cannot avec another register in expression + if 'index' in parsed_items: + raise ValueError("Multiple index / index*scale in mem expression <{0}>".format(data)) + parsed_items['index'] = item + continue + try: + disp = int(item, 0) + except ValueError: + raise ValueError("Invalid base/index or displacement <{0}> in mem access".format(item)) + if 'disp' in parsed_items: + raise ValueError("Multiple displacement in mem expression <{0}>".format(data)) + parsed_items['disp'] = disp + return create_displacement(**parsed_items) + + +class X64RegisterSelector(object): + + reg_opcode = {v: BitArray.from_int(size=3, x=i) for i, v in enumerate(reg_order)} + new_reg_opcode = {v: BitArray.from_int(size=3, x=i) for i, v in enumerate(new_reg_order)} + + def accept_arg(self, args, instr_state): + x = args[0] + try: + if getattr(instr_state.type, "default_32_bits", False): + return (1, self.reg_opcode[x.upper()], BitArray(8, [0, 1, 0, 0 ,1 , 0, 0, 0])) + return (1, self.reg_opcode[x.upper()], BitArray(8, [0, 1, 0, 0 ,0 , 0, 0, 0])) + except (KeyError, AttributeError): + pass + try: + return (1, self.new_reg_opcode[x.upper()], BitArray(8, [0, 1, 0, 0 ,1 , 0, 0, 1])) + except (KeyError, AttributeError): + return (None, None, None) + + @classmethod + def get_reg_bits(cls, name): + try: + return cls.reg_opcode[name.upper()] + except KeyError: + return cls.new_reg_opcode[name.upper()] + + +class FixedRegister(object): + def __init__(self, register, is_64_bit_register=True): + self.reg = register.upper() + self.is_64_bit_register = is_64_bit_register + + def accept_arg(self, args, instr_state): + x = args[0] + rex = None + if isinstance(x, str) and x.upper() == self.reg: + if self.is_64_bit_register: + rex = BitArray.from_int(8, 0x48) + return 1, BitArray(0, []), rex + return None, None, None + +RegisterRax = lambda: FixedRegister('RAX', is_64_bit_register=True) + + +class RawBits(BitArray): + def accept_arg(self, args, instr_state): + return (0, self.copy(), None) + + +class ImmediatOverflow(ValueError): + pass + +# 8 / 16 /32 only accept signed value because of jmp +# Should I have signed / unsigned stuff ? (seems so..) + +def accept_as_8immediat(x): + try: + return struct.pack("".format(mem_access.scale)) + if mem_access.base is None: + return BitArray.from_int(2, scale[mem_access.scale]) + self.setup_sib_index_rex(mem_access.index) + BitArray(3, "101") + return BitArray.from_int(2, scale[mem_access.scale]) + self.setup_sib_index_rex(mem_access.index) + self.setup_sib_base_rex(mem_access.base) + + +class REG64__MEM_Slash(ModRM_REG64__MEM): + # A ModRM_REG64__MEM where the setup_reg_as_register() does + # not set the REX (as the register is hardcoded in the Slash + def setup_reg_as_register(self, name): + name = name.upper() + if name in registers_32_bits: + name = registers_32_bits[name] + self.setup_as_32bit_operation() + else: + # self.is_rex_needed = True + # self.rex[4] = 1 + self.setup_as_64bit_operation() + + self.reg = X64RegisterSelector.get_reg_bits(name) + if X64.is_new_reg(name): + self.is_rex_needed = True + self.rex[5] = 1 + +class Slash(object): + "No idea for the name: represent the modRM for single args + encoding in reg (/7 in cmp in man intel)" + + def __init__(self, reg_num): + "reg = 7 for /7" + self.reg = reg_order[reg_num] + self.reg_num = reg_num + + def accept_arg(self, args, instr_state): + if len(args) < 1: + raise ValueError("Missing arg for Slash") + # Reuse all the MODRm logique with the reg as our self.reg + # The sens of param is strange I need to fix the `reversed` logique + injected_reg = self.reg + if X64.is_32b_reg(args[0]): + injected_reg = registers_64_to_32_bits[injected_reg] + try: + arg_consum, value, rex = ModRM([ModRM_REG__REG, REG64__MEM_Slash], has_direction_bit=False).accept_arg(args[:1] + [injected_reg] + args[1:], instr_state) + except ValueError as e: + # Size mismatch + return None, None, None + if value is None: + return arg_consum, value, rex + return arg_consum - 1, value, rex + +instr_state = collections.namedtuple('instr_state', ['previous', 'prefixes', 'type']) + + +class Instruction(object): + encoding = [] + default_rex = BitArray.from_int(8, 0x40) + + def __init__(self, *initial_args): + # if (type(self) is Push): + # import pdb;pdb.set_trace() + + for type_encoding in self.encoding: + args = list(initial_args) + res = [] + prefix = [] + full_rex = self.default_rex + #if hasattr(self, "default_32_bits") and self.default_32_bits: + # full_rex = BitArray.from_int(8, 0x48) + for element in type_encoding: + arg_consum, value, rex = element.accept_arg(args, instr_state(res, prefix, type(self))) + if arg_consum is None: + break + res.append(value) + del args[:arg_consum] + if rex is not None: + full_rex = full_rex | rex + else: # if no break + if args: # if still args: fail + continue + self.prefix = prefix + self.value = sum(res, BitArray(0, "")) + if full_rex != self.default_rex: + self.value = full_rex + self.value + return + raise ValueError("Cannot encode <{0} {1}>:(".format(type(self).__name__, initial_args)) + + def get_code(self): + prefix_opcode = b"".join(chr(p.PREFIX_VALUE) for p in self.prefix) + return prefix_opcode + bytes(self.value.dump()) + + def get_code_py3(self): + prefix_opcode = b"".join(bytes([p.PREFIX_VALUE]) for p in self.prefix) + return prefix_opcode + bytes(self.value.dump()) + + if is_py3: + get_code = get_code_py3 + + def __mul__(self, value): + if not isinstance(value, int_types): + return NotImplemented + res = MultipleInstr() + for i in range(value): + res += self + return res + + +class DelayedJump(object): + def __init__(self, type, label): + self.type = type + self.label = label + + +class JmpType(Instruction): + def __new__(cls, *initial_args): + if len(initial_args) == 1: + arg = initial_args[0] + if isinstance(arg, str) and arg[0] == ":": + return DelayedJump(cls, arg) + return super(JmpType, cls).__new__(cls) + + +class Push(Instruction): + encoding = [(RawBits.from_int(5, 0x50 >> 3), X64RegisterSelector()), + (RawBits.from_int(8, 0x68), AnyImm32()), + (RawBits.from_int(8, 0xff), Slash(6))] + + +class Pop(Instruction): + encoding = [(RawBits.from_int(5, 0x58 >> 3), X64RegisterSelector())] + + + +class Xchg(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(5, 0x90 >> 3), RegisterRax(), X64RegisterSelector()), + (RawBits.from_int(5, 0x90 >> 3), X64RegisterSelector(), RegisterRax())] + + +class Ret(Instruction): + encoding = [(RawBits.from_int(8, 0xc3),), + (RawBits.from_int(8, 0xc2), UImm16())] + + +class Int(Instruction): + encoding = [(RawBits.from_int(8, 0xcd), UImm8())] + +class Int3(Instruction): + encoding = [(RawBits.from_int(8, 0xcc),)] + + +class Dec(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0xff), Slash(1))] + + +class Inc(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0xff), Slash(0))] + + +class And(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0x25), RegisterRax(), AnyImm32()), + (RawBits.from_int(8, 0x81), Slash(4), AnyImm32()), + (RawBits.from_int(8, 0x21), ModRM([ModRM_REG__REG, ModRM_REG64__MEM]))] + + +class Or(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0x0d), RegisterRax(), AnyImm32()), + (RawBits.from_int(8, 0x81), Slash(1), AnyImm32()), + (RawBits.from_int(8, 0x09), ModRM([ModRM_REG__REG, ModRM_REG64__MEM]))] + + +class Add(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0x05), RegisterRax(), Imm32()), + (RawBits.from_int(8, 0x81), Slash(0), Imm32()), + (RawBits.from_int(8, 0x01), ModRM([ModRM_REG__REG, ModRM_REG64__MEM]))] + + +class Sub(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0x2D), RegisterRax(), Imm32()), + (RawBits.from_int(8, 0x81), Slash(5), Imm32()), + (RawBits.from_int(8, 0x29), ModRM([ModRM_REG__REG, ModRM_REG64__MEM]))] + + +class Out(Instruction): + encoding = [(RawBits.from_int(8, 0xee), FixedRegister('DX'), FixedRegister('AL')), + (RawBits.from_int(16, 0x66ef), FixedRegister('DX'), FixedRegister('AX')), # Fuck-it hardcoded prefix for now + (RawBits.from_int(8, 0xef), FixedRegister('DX'), FixedRegister('EAX'))] + + +class In(Instruction): + encoding = [(RawBits.from_int(8, 0xec), FixedRegister('AL'), FixedRegister('DX')), + (RawBits.from_int(16, 0x66ed), FixedRegister('AX'), FixedRegister('DX')), # Fuck-it hardcoded prefix for now + (RawBits.from_int(8, 0xed), FixedRegister('EAX'), FixedRegister('DX'))] + + +class Cpuid(Instruction): + encoding = [(RawBits.from_int(16, 0x0fa2),)] + + +class JmpImm(object): + accept_as_Ximmediat = (None) + + def __init__(self, sub): + self.sub = sub + + def accept_arg(self, args, instr_state): + try: + jump_size = int(args[0]) + except (ValueError, TypeError): + return (None, None, None) + jump_size -= self.sub + try: + jmp_imm = self.accept_as_Ximmediat(jump_size) + except ImmediatOverflow: + return (None, None, None) + return (1, BitArray.from_string(jmp_imm), None) + + +class JmpImm8(JmpImm): + accept_as_Ximmediat = staticmethod(accept_as_8immediat) + + +class JmpImm32(JmpImm): + accept_as_Ximmediat = staticmethod(accept_as_32immediat) + +class Call(JmpType): + encoding = [(RawBits.from_int(8, 0xe8), JmpImm32(5)), + (RawBits.from_int(8, 0xff), Slash(2))] + + +class Jmp(JmpType): + encoding = [(RawBits.from_int(8, 0xeb), JmpImm8(2)), + (RawBits.from_int(8, 0xe9), JmpImm32(5)), + (RawBits.from_int(13, 0xffe0 >> 3), X64RegisterSelector())] + + +class Jz(JmpType): + encoding = [(RawBits.from_int(8, 0x74), JmpImm8(2)), + (RawBits.from_int(16, 0x0f84), JmpImm32(6))] + + +Je = Jz + + +class Jnz(JmpType): + encoding = [(RawBits.from_int(8, 0x75), JmpImm8(2)), + (RawBits.from_int(16, 0x0f85), JmpImm32(6))] + + +class Jb(JmpType): + encoding = [(RawBits.from_int(8, 0x72), JmpImm8(2)), + (RawBits.from_int(16, 0x0f82), JmpImm32(6))] + + +class Jbe(JmpType): + encoding = [(RawBits.from_int(8, 0x76), JmpImm8(2)), + (RawBits.from_int(16, 0x0f86), JmpImm32(6))] + + +class Jnb(JmpType): + encoding = [(RawBits.from_int(8, 0x73), JmpImm8(2)), + (RawBits.from_int(16, 0x0f83), JmpImm32(6))] + + +class Lea(Instruction): + refuse_reverse = True + encoding = [(RawBits.from_int(8, 0x8d), ModRM([ModRM_REG64__MEM], accept_reverse=False, has_direction_bit=False))] + + +class Mov(Instruction): + default_32_bits = True + encoding = [(Mov_RAX_OFF64(),), (Mov_OFF64_RAX(),), + (RawBits.from_int(8, 0xc7), Slash(0), Imm32()), + (RawBits.from_int(8, 0x89), ModRM([ModRM_REG__REG, ModRM_REG64__MEM])), + (RawBits.from_int(5, 0xb8 >> 3), X64RegisterSelector(), Imm64())] + + +class Pushfq(Instruction): + encoding = [(RawBits.from_int(8, 0x9c),)] + + +class Popfq(Instruction): + encoding = [(RawBits.from_int(8, 0x9d),)] + + +class Cmp(Instruction): + default_32_bits = True + + encoding = [(RawBits.from_int(8, 0x3d), RegisterRax(), AnyImm32()), + (RawBits.from_int(8, 0x81), Slash(7), AnyImm32()), + (RawBits.from_int(8, 0x3b), ModRM([ModRM_REG__REG, ModRM_REG64__MEM]))] + +class Test(Instruction): + default_32_bits = True + refuse_reverse = True + encoding = [(RawBits.from_int(8, 0xf7), Slash(0), AnyImm32()), + (RawBits.from_int(8, 0x85), ModRM([ModRM_REG__REG, ModRM_REG64__MEM], has_direction_bit=False))] + + +class Xor(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0x31), ModRM([ModRM_REG__REG, ModRM_REG64__MEM]))] + + +class Shr(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0xC1), Slash(5), Imm8())] + +class Shl(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0xC1), Slash(4), Imm8())] + +class Nop(Instruction): + encoding = [(RawBits.from_int(8, 0x90),)] + +class Not(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0xF7), Slash(2))] + +class ScasB(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0xAE),)] + + +class ScasW(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(16, 0x66AF),)] + + +class ScasD(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0xAF),)] + +class ScasQ(Instruction): + encoding = [(RawBits.from_int(16, 0x48AF),)] + + +class CmpsB(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0xa6),)] + + +class CmpsW(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(16, 0x66A7),)] + + +class CmpsD(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0xa7),)] + + +class CmpsQ(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(16, 0x48A7),)] + + +class Retf(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0xcb),)] + + +class Retf32(Instruction): + encoding = [(RawBits.from_int(8, 0xcb),)] + + +class _NopArtifact(Nop): + pass + + +def JmpAt(addr): + code = MultipleInstr() + code += Mov('RAX', addr) + code += Jmp('RAX') + return code + +class Raw(Instruction): + """Output raw data""" + def __init__(self, *initial_args): + if len(initial_args) != 1: + raise ValueError("raw 'opcode' only accept one argument") + # Accept space + self.data = binascii.unhexlify(initial_args[0].replace(" ", "")) + + def get_code(self): + return self.data + +class Label(object): + def __init__(self, name): + self.name = name + + +class MultipleInstr(object): + JUMP_SIZE = 6 + + def __init__(self, init_instrs=()): + self.instrs = {} + self.labels = {} + self.expected_labels = {} + # List of all labeled jump already resolved + # Will be used for 'relocation' + self.computed_jump = [] + self.size = 0 + for i in init_instrs: + self += i + + def get_code(self): + if self.expected_labels: + raise ValueError("Unresolved labels: {0}".format(self.expected_labels.keys())) + return b"".join([bytes(x[1].get_code()) for x in sorted(self.instrs.items())]) + + def add_instruction(self, instruction): + if isinstance(instruction, Label): + return self.add_label(instruction) + # Change DelayedJump to LabeledJump ? + if isinstance(instruction, DelayedJump): + return self.add_delayed_jump(instruction) + if isinstance(instruction, (Instruction, Prefix)): + self.instrs[self.size] = instruction + self.size += len(instruction.get_code()) + return + raise ValueError("Don't know what to do with {0} of type {1}".format(instruction, type(instruction))) + + def add_label(self, label): + if label.name not in self.expected_labels: + # Label that have no jump before definition + # Just registed the address of the label + self.labels[label.name] = self.size + return + # Label with jmp before definition + # Lot of stuff todo: + # Find all delayed jump that refer to this jump + # Replace them with real jump + # If size of jump < JUMP_SIZE: relocate everything we can + # Update expected_labels + for jump_to_label in self.expected_labels[label.name]: + if jump_to_label.offset in self.instrs: + raise ValueError("WTF REPLACE EXISTING INSTR...") + distance = self.size - jump_to_label.offset + real_jump = jump_to_label.type(distance) + self.instrs[jump_to_label.offset] = real_jump + self.computed_jump.append((jump_to_label.offset, self.size)) + for i in range(self.JUMP_SIZE - len(real_jump.get_code())): + self.instrs[jump_to_label.offset + len(real_jump.get_code()) + i] = _NopArtifact() + del self.expected_labels[label.name] + self.labels[label.name] = self.size + if not self.expected_labels: + # No more un-resolved label (for now): time to reduce the shellcode + self._reduce_shellcode() + + def add_delayed_jump(self, jump): + dst = jump.label + if dst in self.labels: + # Jump to already defined labels + # Nothing fancy: get offset of label and jump to it ! + distance = self.size - self.labels[dst] + jump_instruction = jump.type(-distance) + self.computed_jump.append((self.size, self.labels[dst])) + return self.add_instruction(jump_instruction) + # Jump to undefined label + # Add label to expected ones + # Add jump info -> offset of jump | type + # Reserve space for call ! + jump.offset = self.size + self.expected_labels.setdefault(dst, []).append(jump) + self.size += self.JUMP_SIZE + return + + def _reduce_shellcode(self): + to_remove = [offset for offset, instr in self.instrs.items() if type(instr) == _NopArtifact] + while to_remove: + self._remove_nop_artifact(to_remove[0]) + # _remove_nop_artifact will change the offsets of the nop + # Need to refresh these offset + to_remove = [offset for offset, instr in self.instrs.items() if type(instr) == _NopArtifact] + + def _remove_nop_artifact(self, offset): + """Remove a NOP from the shellcode, adjust jump and labels""" + for src, dst in self.computed_jump: + # Reduce size of Jump over the nop (both sens) + if src < offset < dst or dst < offset < src: + old_jmp = self.instrs[src] + old_jump_size = len(old_jmp.get_code()) + if src < offset < dst: + new_jmp = type(old_jmp)(dst - src - 1) + else: + new_jmp = type(old_jmp)(dst - src + 1) + new_jmp_size = len(new_jmp.get_code()) + if new_jmp_size > old_jump_size: + raise ValueError("Wtf jump of smaller size of bigger.. ABORT") + self.instrs[src] = new_jmp + # Add other _NopArtifact if jump instruction size is reduced + for i in range(old_jump_size - new_jmp_size): + self.instrs[src + new_jmp_size + i] = _NopArtifact() + + # dec offset of all Label after the NOP + for name, labeloffset in self.labels.items(): + if labeloffset > offset: + self.labels[name] = labeloffset - 1 + + # dec offset of all instr after the NOP + new_instr = {} + for instroffset, instr in self.instrs.items(): + if instroffset == offset: + continue + if instroffset > offset: + instroffset -= 1 + new_instr[instroffset] = instr + self.instrs = new_instr + # Update all computed jump + new_computed_jump = [] + for src, dst in self.computed_jump: + if src > offset: + src -= 1 + if dst > offset: + dst -= 1 + new_computed_jump.append((src, dst)) + self.computed_jump = new_computed_jump + # dec size of the shellcode + self.size -= 1 + + def merge_shellcode(self, other): + shared_labels = set(self.labels) & set(other.labels) + if shared_labels: + raise ValueError("Cannot merge shellcode: shared labels {0}".format(shared_labels)) + for offset, instr in sorted(other.instrs.items()): + for label_name in [name for name, label_offset in other.labels.items() if label_offset == offset]: + self.add_instruction(Label(label_name)) + self.add_instruction(instr) + + def __iadd__(self, other): + if isinstance(other, MultipleInstr): + self.merge_shellcode(other) + elif isinstance(other, basestring): + self.assemble(other) + else: + self.add_instruction(other) + return self + + def assemble(self, code): + for instr in assemble_instructions_generator(code): + self.add_instruction(instr) + + + +def split_in_instruction(str): + for line in str.split("\n"): + if not line: + continue + for instr in line.split(";"): + if not instr: + continue + yield instr.strip() + +def assemble_instructions_generator(str): + for instr in split_in_instruction(str): + data = instr.split(" ", 1) + mnemo, args_raw = data[0], data[1:] + try: + instr_object = globals()[mnemo.capitalize()] + except: + raise ValueError("Unknow mnemonic <{0}>".format(mnemo)) + + args = [] + if args_raw: + for arg in args_raw[0].split(","): + arg = arg.strip() + if (arg[0] == "[" or arg[2:4] == ":[") and arg[-1] == "]": + arg = mem(arg) + else: + try: + arg = int(arg, 0) + except ValueError: + pass + args.append(arg) + yield instr_object(*args) # Yield the currently parsed instruction + + +def assemble(str): + """Play test""" + shellcode = MultipleInstr() + shellcode += str + return shellcode.get_code() + +def shellcode(str): + shellcode = MultipleInstr() + shellcode += str + return shellcode + + +try: + import midap + import idc + in_IDA = True +except ImportError: + in_IDA = False + +if in_IDA: + def test_code(): + s = MultipleInstr() + s += Mov('r8', 'r14') + s += Label(':A_POLITICALLY_CORRECT_LABEL_NAME') + s += Jnz(':END') + s += Add('r14', 0x12345678) + s += Dec('r9') + s += Dec('rax') + s += Jnz(':END') + s += Mov('r8', 'rdx') + s += Jnz(':END') + s += Mov('r8', 'rdx') + s += Jnz(':A_POLITICALLY_CORRECT_LABEL_NAME') + s += Mov('r9', 'r10') + s += Label(':END') + s += Ret() + return s + + def reset(): + idc.MakeUnknown(idc.MinEA(), 0x1000, 0) + for i in range(0x1000): + idc.PatchByte(idc.MinEA() + i, 0) + + s = test_code() + + def tst(): + reset() + midap.here(idc.MinEA()).write(s.get_code()) + idc.MakeFunction(idc.MinEA()) + + # tst() diff --git a/pythonmemorymodule/windows/native_exec/simple_x86.py b/pythonmemorymodule/windows/native_exec/simple_x86.py new file mode 100644 index 0000000..0181c88 --- /dev/null +++ b/pythonmemorymodule/windows/native_exec/simple_x86.py @@ -0,0 +1,1186 @@ +import sys +import collections +import struct +import binascii + +# py3 +is_py3 = (sys.version_info.major >= 3) +if is_py3: + basestring = str + int_types = int +else: + int_types = (int, long) + +class BitArray(object): + def __init__(self, size, bits): + self.size = size + if len(bits) > size: + raise ValueError("size > len(bits)") + + bits_list = [] + for bit in bits: + x = int(bit) + if x not in [0, 1]: + raise ValueError("Not expected bits value {0}".format(x)) + bits_list.append(x) + + self.array = bits_list + if size > len(self.array): + self.array = ([0] * (size - len(self.array))) + self.array + + def copy(self): + new = type(self)(0, "") + new.size = self.size + new.array = list(self.array) + return new + + def dump(self): + res = [] + for i in range(self.size // 8): + c = 0 + for x in (self.array[i * 8: (i + 1) * 8]): + c = (c << 1) + x + res.append(c) + return bytearray((res)) + + def __getitem__(self, slice): + return self.array[slice] + + def __setitem__(self, slice, value): + self.array[slice] = value + return True + + def __repr__(self): + return repr(self.array) + + def __add__(self, other): + if not isinstance(other, BitArray): + return NotImplemented + return BitArray(self.size + other.size, self.array + other.array) + + def to_int(self): + return int("".join([str(i) for i in self.array]), 2) + + @classmethod + def from_string(cls, str_base): + l = [] + for c in bytearray(reversed(str_base)): + for i in range(8): + l.append(c & 1) + c = c >> 1 + return cls(len(str_base) * 8, list(reversed(l))) + + @classmethod + def from_int(cls, size, x): + if x < 0: + x = x & ((2 ** size) - 1) + return cls(size, bin(x)[2:]) + + +# Prefix +class Prefix(object): + PREFIX_VALUE = None + + def __init__(self, next=None): + self.next = next + + def __add__(self, other): + return type(self)(other) + + def get_code_py3(self): + return bytes([self.PREFIX_VALUE]) + self.next.get_code() + + def get_code(self): + return chr(self.PREFIX_VALUE) + self.next.get_code() + + if is_py3: + get_code = get_code_py3 + + +def create_prefix(name, value): + prefix_type = type(name + "Type", (Prefix,), {'PREFIX_VALUE': value}) + return prefix_type() + +LockPrefix = create_prefix('LockPrefix', 0xf0) +Repne = create_prefix('Repne', 0xf2) +Rep = create_prefix('Rep', 0xf3) +SSPrefix = create_prefix('SSPrefix', 0x36) +CSPrefix = create_prefix('CSPrefix', 0x2e) +DSPrefix = create_prefix('DSPrefix', 0x3e) +ESPrefix = create_prefix('ESPrefix', 0x26) +FSPrefix = create_prefix('FSPrefix', 0x64) +GSPrefix = create_prefix('GSPrefix', 0x65) +OperandSizeOverride = create_prefix('OperandSizeOverride', 0x66) +AddressSizeOverride = create_prefix('AddressSizeOverride', 0x67) + +# Main informations about X86 +mem_access = collections.namedtuple('mem_access', ['base', 'index', 'scale', 'disp', 'prefix']) +x86_regs = ['EAX', 'ECX', 'EDX', 'EBX', 'ESP', 'EBP', 'ESI', 'EDI'] +x86_16bits_regs = ['AX', 'CX', 'DX', 'BX', 'SP', 'BP', 'SI', 'DI'] + +x86_segment_selectors = {'CS': CSPrefix, 'DS': DSPrefix, 'ES': ESPrefix, 'SS': SSPrefix, + 'FS': FSPrefix, 'GS': GSPrefix} + +# Man intel -> Sreg (Vol 2.a 3-6) +x86_segment_selectors_number = { + "ES": "000", + "CS": "001", + "SS": "010", + "DS": "011", + "FS": "100", + "GS": "101", + } + +class X86(object): + @staticmethod + def is_reg(name): + try: + return name.upper() in x86_regs + x86_16bits_regs + except AttributeError: # Not a string + return False + + @staticmethod + def is_seg_reg(name): + try: + return name.upper() in x86_segment_selectors_number + except AttributeError: + return False + + @staticmethod + def reg_size(name): + if name.upper() in x86_regs: + return 32 + elif name.upper() in x86_16bits_regs: + return 16 + else: + raise ValueError("Unknow register <{0}>".format(name)) + + @staticmethod + def is_mem_acces(data): + return isinstance(data, mem_access) + + @staticmethod + def mem_access_has_only(mem_access, names): + if not X86.is_mem_acces(mem_access): + raise ValueError("mem_access_has_only") + for f in mem_access._fields: + v = getattr(mem_access, f) + if v and f != 'prefix' and f not in names: + return False + if v is None and f in names: + return False + return True + + +def create_displacement(base=None, index=None, scale=None, disp=0, prefix=None): + """Creates a X86 memory access description""" + if index is not None and scale is None: + scale = 1 + if scale and index is None: + raise ValueError("Cannot create displacement with scale and no index") + if scale and index.upper() == "ESP": + raise ValueError("Cannot create displacement with index == ESP") + return mem_access(base, index, scale, disp, prefix) + + +def deref(disp): + """Create a memory access for an immediate value ``Ex: [0x42424242]``""" + return create_displacement(disp=disp) + + +def mem(data): + """Parse a memory access string of format ``[EXPR]`` or ``seg:[EXPR]`` + + ``EXPR`` may describe: ``BASE | INDEX * SCALE | DISPLACEMENT`` or any combinaison (in this order) + """ + if not isinstance(data, str): + raise TypeError("mem need a string to parse") + data = data.strip() + prefix = None + if not (data.startswith("[") and data.endswith("]")): + if data[2] != ":": + raise ValueError("mem acces expect <[EXPR]> or or ".format(data)) + sub_items = item.split("*") + if len(sub_items) != 2: + raise ValueError("Invalid item <{0}> in mem access".format(item)) + index, scale = sub_items + index, scale = index.strip(), scale.strip() + if not X86.is_reg(index): + raise ValueError("Invalid index <{0}> in mem access".format(index)) + if X86.reg_size(index) == 16: + raise NotImplementedError("16bits modrm") + try: + scale = int(scale, 0) + except ValueError: + raise ValueError("Invalid scale <{0}> in mem access".format(scale)) + parsed_items['scale'] = scale + parsed_items['index'] = index + else: + # displacement / base / index alone + if X86.is_reg(item): + if X86.reg_size(item) == 16: + raise NotImplementedError("16bits modrm") + if 'base' not in parsed_items: + parsed_items['base'] = item + continue + # Already have base + index -> cannot avec another register in expression + if 'index' in parsed_items: + raise ValueError("Multiple index / index*scale in mem expression <{0}>".format(data)) + parsed_items['index'] = item + continue + try: + disp = int(item, 0) + except ValueError: + raise ValueError("Invalid base/index or displacement <{0}> in mem access".format(item)) + if 'disp' in parsed_items: + raise ValueError("Multiple displacement in mem expression <{0}>".format(data)) + parsed_items['disp'] = disp + return create_displacement(**parsed_items) + + +# Helper to get the BitArray associated to a register +class X86RegisterSelector(object): + size = 3 # bits + reg_opcode = {v: BitArray.from_int(size=3, x=i) for i, v in enumerate(x86_regs)} + reg_opcode.update({v: BitArray.from_int(size=3, x=i) for i, v in enumerate(x86_16bits_regs)}) + + def accept_arg(self, args, instr_state): + x = args[0] + try: + return (1, self.reg_opcode[x.upper()]) + except (KeyError, AttributeError): + return (None, None) + + @classmethod + def get_reg_bits(cls, name): + return cls.reg_opcode[name.upper()] + + +# Instruction Parameters +class FixedRegister(object): + def __init__(self, register): + self.reg = register.upper() + + def accept_arg(self, args, instr_state): + x = args[0] + if isinstance(x, str) and x.upper() == self.reg: + return (1, BitArray(0, [])) + return None, None + +RegisterEax = lambda: FixedRegister('EAX') + + +class RawBits(BitArray): + def accept_arg(self, args, instr_state): + return (0, self.copy()) + + +# Immediat value logic +# All 8/16 bits stuff are sign extended +class ImmediatOverflow(ValueError): + pass + + +def accept_as_8immediat(x): + try: + return struct.pack(" need to fix it + if sub.match(arg1, arg2): + d = sub(arg1, arg2, 0, instr_state) + if self.has_direction_bit: + instr_state.previous[0][-2] = d.direction + return (2, d.mod + d.reg + d.rm + d.after) + elif self.accept_reverse and sub.match(arg2, arg1): + d = sub(arg2, arg1, 1, instr_state) + if self.has_direction_bit: + instr_state.previous[0][-2] = d.direction + return (2, d.mod + d.reg + d.rm + d.after) + return (None, None) + + +class ModRM_REG__REG(object): + + @classmethod + def match(cls, arg1, arg2): + return X86.is_reg(arg1) and X86.is_reg(arg2) + + def __init__(self, arg1, arg2, reversed, instr_state): + self.mod = BitArray(2, "11") + if X86.reg_size(arg1) != X86.reg_size(arg2): + raise ValueError("Register size mitmatch between {0} and {1}".format(arg1, arg2)) + if X86.reg_size(arg1) == 16: + instr_state.prefixes.append(OperandSizeOverride) + self.reg = X86RegisterSelector.get_reg_bits(arg2) + self.rm = X86RegisterSelector.get_reg_bits(arg1) + self.after = BitArray(0, "") + self.direction = 0 + +class ModRM_REG__SEGREG(object): + @classmethod + def match(cls, arg1, arg2): + return X86.is_reg(arg1) and X86.is_seg_reg(arg2) + + def __init__(self, arg1, arg2, reversed, instr_state): + self.mod = BitArray(2, "11") + self.rm = X86RegisterSelector.get_reg_bits(arg1) + self.reg = BitArray(3, x86_segment_selectors_number[arg2.upper()]) + self.after = BitArray(0, "") + self.direction = reversed + + +class ModRM_REG__MEM(object): + + @classmethod + def match(cls, arg1, arg2): + return X86.is_reg(arg1) and X86.is_mem_acces(arg2) + + def setup_reg_as_register(self, regname, instr_state): + self.reg = X86RegisterSelector.get_reg_bits(regname) + if X86.reg_size(regname) == 16: + instr_state.prefixes.append(OperandSizeOverride) + + def __init__(self, arg1, arg2, reversed, instr_state): + # ARG1 : REG + # ARG2 : prefix:[MEM] + # Handle prefix: + if arg2.prefix is not None: + instr_state.prefixes.append(x86_segment_selectors[arg2.prefix]) + if X86.mem_access_has_only(arg2, ["disp"]): + self.mod = BitArray(2, "00") + self.setup_reg_as_register(arg1, instr_state) + self.rm = BitArray(3, "101") + try: + self.after = BitArray.from_string(accept_as_32immediat(arg2.disp)) + except ImmediatOverflow: + raise ImmediatOverflow("Interger32 overflow for displacement {0}".format(hex(arg2.disp))) + self.direction = not reversed + return + # Those registers cannot be addressed without SIB + # No index -> no scale -> no SIB + FIRE_UP_SIB = (arg2.base and arg2.base.upper() in ["ESP", "EBP"]) or arg2.index + if not FIRE_UP_SIB: + self.setup_reg_as_register(arg1, instr_state) + self.rm = X86RegisterSelector.get_reg_bits(arg2.base) + self.compute_displacement(arg2.disp) + self.direction = not reversed + return + # FIRE UP THE SIB + # Handle no base and base == EBP special case + if not arg2.base: + force_displacement = 4 + elif arg2.base.upper() == "EBP": + force_displacement = 1 + else: + force_displacement = 0 + + self.setup_reg_as_register(arg1, instr_state) + self.rm = BitArray(3, "100") + self.compute_displacement(arg2.disp, force_displacement) + self.after = self.compute_sib(arg2) + self.after + if not arg2.base: + self.mod = BitArray(2, "00") + self.direction = not reversed + + def compute_displacement(self, displacement, force_displacement=0): + if not displacement and not force_displacement: + self.mod = BitArray(2, "00") + self.after = BitArray(0, "") + return + # Pack in a byte + try: + v = accept_as_8immediat(displacement) + except ImmediatOverflow: + v = None + if v is not None and force_displacement <= 1: + self.mod = BitArray(2, "01") + self.after = BitArray.from_string(v) + return + # Pack in a dword + try: + v = accept_as_32immediat(displacement) + except ImmediatOverflow: + v = None + if v is not None and force_displacement <= 4: + self.mod = BitArray(2, "10") + self.after = BitArray.from_string(v) + return + raise ValueError("Displacement {0} is too big".format(hex(displacement))) + + def compute_sib(self, mem_access): + scale = {1: 0, 2: 1, 4: 2, 8: 3} + if mem_access.index is None: + return BitArray(2, "00") + BitArray(3, "100") + X86RegisterSelector.get_reg_bits(mem_access.base) + if mem_access.scale not in scale: + raise ValueError("Invalid scale for mem access <{0}>".format(mem_access.scale)) + if mem_access.base is None: + return BitArray.from_int(2, scale[mem_access.scale]) + X86RegisterSelector.get_reg_bits(mem_access.index) + BitArray(3, "101") + return BitArray.from_int(2, scale[mem_access.scale]) + X86RegisterSelector.get_reg_bits(mem_access.index) + X86RegisterSelector.get_reg_bits(mem_access.base) + + +class Slash(object): + "No idea for the name: represent the modRM for single args + encoding in reg (/7 in cmp in man intel)" + + def __init__(self, reg_num): + "reg = 7 for /7" + self.reg = x86_regs[reg_num] + + def accept_arg(self, args, instr_state): + if len(args) < 1: + raise ValueError("Missing arg for Slash") + # Reuse all the MODRm logique with the reg as our self.reg + # The sens of param is strange I need to fix the `reversed` logique + arg_consum, value = ModRM([ModRM_REG__REG, ModRM_REG__MEM], has_direction_bit=False).accept_arg(args[:1] + [self.reg] + args[1:], instr_state) + if value is None: + return arg_consum, value + return arg_consum - 1, value + +class ControlRegisterModRM(object): + def __init__(self, writecr = False): + self.writecr = writecr + + def accept_arg(self, args, instr_state): + writecr = self.writecr + if len(args) < 2: + return None, None + reg = args[writecr] + cr = args[not writecr] + if not isinstance(cr, str): + return None, None + if not cr.lower().startswith("cr"): + return None, None + try: + cr_number = int(cr[2:], 10) + except ValueError as e: + raise ValueError("Invalid ControlRegister {0}".format(cr)) + if cr_number > 7: + raise ValueError("Invalid ControlRegister {0}".format(cr)) + + modrm_params = [reg, x86_regs[cr_number]] + args[2:] + return ModRM([ModRM_REG__REG], has_direction_bit=False).accept_arg(modrm_params, instr_state) + + +instr_state = collections.namedtuple('instr_state', ['previous', 'prefixes']) + +class Instruction(object): + """Base class of instructions, use `encoding` to find a valid way to assemble the instruction""" + encoding = [] + + def __init__(self, *initial_args): + # print(self, initial_args) + for type_encoding in self.encoding: + args = list(initial_args) + prefix = [] + res = [] + for element in type_encoding: + arg_consum, value = element.accept_arg(args, instr_state(res, prefix)) + if arg_consum is None: + break + res.append(value) + del args[:arg_consum] + else: # if no break + if args: # if still args: fail + continue + self.value = sum(res, BitArray(0, "")) + self.prefix = prefix + return + raise ValueError("Cannot encode <{0} {1}>:(".format(type(self).__name__, initial_args)) + + def get_code(self): + # print(self.value) + prefix_opcode = b"".join(chr(p.PREFIX_VALUE) for p in self.prefix) + return prefix_opcode + bytes(self.value.dump()) + + def get_code_py3(self): + prefix_opcode = b"".join(bytes([p.PREFIX_VALUE]) for p in self.prefix) + return prefix_opcode + bytes(self.value.dump()) + + if is_py3: + get_code = get_code_py3 + + #def __add__(self, other): + # res = MultipleInstr() + # res += self + # res += other + # return res + + def __mul__(self, value): + if not isinstance(value, int_types): + return NotImplemented + res = MultipleInstr() + for i in range(value): + res += self + return res + + +# Jump helpers +class DelayedJump(object): + """A jump to a label :NAME""" + + def __init__(self, type, label): + self.type = type + self.label = label + + +class JmpType(Instruction): + """Dispatcher between a real jump or DelayedJump if parameters is a label""" + + def __new__(cls, *initial_args): + if len(initial_args) == 1: + arg = initial_args[0] + if isinstance(arg, str) and arg[0] == ":": + return DelayedJump(cls, arg) + return super(JmpType, cls).__new__(cls) + + +class JmpImm(object): + """Immediat parameters for Jump instruction + Sub a specified size from the size to jump to `emulate` a jump from the begin address of the instruction""" + accept_as_Ximmediat = None + + def __init__(self, sub): + self.sub = sub + + def accept_arg(self, args, instr_state): + try: + jump_size = int(args[0]) + except (ValueError, TypeError): + return (None, None) + jump_size -= self.sub + try: + jmp_imm = self.accept_as_Ximmediat(jump_size) + except ImmediatOverflow: + return (None, None) + return (1, BitArray.from_string(jmp_imm)) + + +class JmpImm8(JmpImm): + accept_as_Ximmediat = staticmethod(accept_as_8immediat) + + +class JmpImm32(JmpImm): + accept_as_Ximmediat = staticmethod(accept_as_32immediat) + + +# Instructions + +class Call(JmpType): + encoding = [(RawBits.from_int(8, 0xe8), JmpImm32(5)), + (RawBits.from_int(8, 0xff), Slash(2)), + (RawBits.from_int(8, 0x9a), SegmentSelectorAbsoluteAddr())] + +class Jmp(JmpType): + encoding = [(RawBits.from_int(8, 0xeb), JmpImm8(2)), + (RawBits.from_int(8, 0xe9), JmpImm32(5)), + (RawBits.from_int(8, 0xea), SegmentSelectorAbsoluteAddr())] + + +class Jz(JmpType): + encoding = [(RawBits.from_int(8, 0x74), JmpImm8(2)), + (RawBits.from_int(16, 0x0f84), JmpImm32(6))] + + +Je = Jz + + +class Jnz(JmpType): + encoding = [(RawBits.from_int(8, 0x75), JmpImm8(2)), + (RawBits.from_int(16, 0x0f85), JmpImm32(6))] + + +class Jbe(JmpType): + encoding = [(RawBits.from_int(8, 0x76), JmpImm8(2)), + (RawBits.from_int(16, 0x0f86), JmpImm32(6))] + + +class Jnb(JmpType): + encoding = [(RawBits.from_int(8, 0x73), JmpImm8(2)), + (RawBits.from_int(16, 0x0f83), JmpImm32(6))] + + +class Push(Instruction): + encoding = [(RawBits.from_int(5, 0x50 >> 3), X86RegisterSelector()), + (RawBits.from_int(8, 0x68), Imm32()), + (RawBits.from_int(8, 0xff), Slash(6))] + + +class Pop(Instruction): + encoding = [(RawBits.from_int(5, 0x58 >> 3), X86RegisterSelector())] + + +class Dec(Instruction): + encoding = [(RawBits.from_int(5, 0x48 >> 3), X86RegisterSelector())] + + +class Inc(Instruction): + encoding = [(RawBits.from_int(5, 0x40 >> 3), X86RegisterSelector()), + (RawBits.from_int(8, 0xff), Slash(0))] + + +class Add(Instruction): + encoding = [(RawBits.from_int(8, 0x05), RegisterEax(), Imm32()), + (RawBits.from_int(8, 0x81), Slash(0), Imm32()), + (RawBits.from_int(8, 0x01), ModRM([ModRM_REG__REG, ModRM_REG__MEM]))] + +class And(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0x25), RegisterEax(), Imm32()), + (RawBits.from_int(8, 0x81), Slash(4), Imm32()), + (RawBits.from_int(8, 0x21), ModRM([ModRM_REG__REG, ModRM_REG__MEM]))] + + +class Or(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0x0d), RegisterEax(), Imm32()), + (RawBits.from_int(8, 0x81), Slash(1), Imm32()), + (RawBits.from_int(8, 0x09), ModRM([ModRM_REG__REG, ModRM_REG__MEM]))] + + +class Sub(Instruction): + encoding = [(RawBits.from_int(8, 0x2D), RegisterEax(), Imm32()), + (RawBits.from_int(8, 0x81), Slash(5), Imm32()), + (RawBits.from_int(8, 0x29), ModRM([ModRM_REG__REG, ModRM_REG__MEM]))] + + +class Mov(Instruction): + encoding = [(RawBits.from_int(8, 0x89), ModRM([ModRM_REG__REG, ModRM_REG__MEM])), + (RawBits.from_int(8, 0xc7), Slash(0), Imm32()), + (RawBits.from_int(5, 0xB8 >> 3), X86RegisterSelector(), Imm32()), + (RawBits.from_int(8, 0x8C), ModRM([ModRM_REG__SEGREG])), + (RawBits.from_int(16, 0x0f20), ControlRegisterModRM(writecr=False)), + (RawBits.from_int(16, 0x0f22), ControlRegisterModRM(writecr=True))] + + +class Movsb(Instruction): + encoding = [(RawBits.from_int(8, 0xa4),)] + + +class Movsd(Instruction): + encoding = [(RawBits.from_int(8, 0xa5),)] + + +class Pushfd(Instruction): + encoding = [(RawBits.from_int(8, 0x9c),)] + + +class Pushad(Instruction): + encoding = [(RawBits.from_int(8, 0x60),)] + + +class Popfd(Instruction): + encoding = [(RawBits.from_int(8, 0x9d),)] + + +class Popad(Instruction): + encoding = [(RawBits.from_int(8, 0x61),)] + + +class Lea(Instruction): + encoding = [(RawBits.from_int(8, 0x8d), ModRM([ModRM_REG__MEM], accept_reverse=False, has_direction_bit=False))] + + +class Cmp(Instruction): + encoding = [(RawBits.from_int(8, 0x3d), RegisterEax(), Imm32()), + (RawBits.from_int(8, 0x81), Slash(7), Imm32()), + (RawBits.from_int(8, 0x3b), ModRM([ModRM_REG__REG, ModRM_REG__MEM]))] + + +class Test(Instruction): + encoding = [(RawBits.from_int(8, 0xf7), Slash(0), Imm32()), + (RawBits.from_int(8, 0x85), ModRM([ModRM_REG__REG, ModRM_REG__MEM], has_direction_bit=False))] + + +class Out(Instruction): + encoding = [(RawBits.from_int(8, 0xee), FixedRegister('DX'), FixedRegister('AL')), + (RawBits.from_int(16, 0x66ef), FixedRegister('DX'), FixedRegister('AX')), # Fuck-it hardcoded prefix for now + (RawBits.from_int(8, 0xef), FixedRegister('DX'), FixedRegister('EAX'))] + + +class In(Instruction): + encoding = [(RawBits.from_int(8, 0xec), FixedRegister('AL'), FixedRegister('DX')), + (RawBits.from_int(16, 0x66ed), FixedRegister('AX'), FixedRegister('DX')), # Fuck-it hardcoded prefix for now + (RawBits.from_int(8, 0xed), FixedRegister('EAX'), FixedRegister('DX'))] + + +class Xor(Instruction): + encoding = [(RawBits.from_int(8, 0x31), ModRM([ModRM_REG__REG]))] + + +class Xchg(Instruction): + encoding = [(RawBits.from_int(5, 0x90 >> 3), RegisterEax(), X86RegisterSelector()), (RawBits.from_int(5, 0x90 >> 3), X86RegisterSelector(), RegisterEax())] + + +class Rol(Instruction): + encoding = [(RawBits.from_int(8, 0xC1), Slash(0), Imm8())] + +class Ror(Instruction): + encoding = [(RawBits.from_int(8, 0xC1), Slash(1), Imm8())] + +class Shr(Instruction): + encoding = [(RawBits.from_int(8, 0xC1), Slash(5), Imm8())] + +class Shl(Instruction): + encoding = [(RawBits.from_int(8, 0xC1), Slash(4), Imm8())] + +class Cpuid(Instruction): + encoding = [(RawBits.from_int(16, 0x0fa2),)] + + +class Ret(Instruction): + encoding = [(RawBits.from_int(8, 0xc3),), + (RawBits.from_int(8, 0xc2), UImm16())] + + +class ScasB(Instruction): + encoding = [(RawBits.from_int(8, 0xAE),)] + +class ScasW(Instruction): + encoding = [(RawBits.from_int(16, 0x66AF),)] + +class ScasD(Instruction): + encoding = [(RawBits.from_int(8, 0xAF),)] + + +class StosB(Instruction): + encoding = [(RawBits.from_int(8, 0xAA),)] + +class StosW(Instruction): + encoding = [(RawBits.from_int(16, 0x66AB),)] + +class StosD(Instruction): + encoding = [(RawBits.from_int(8, 0xAB),)] + + +class CmpsB(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0xa6),)] + + +class CmpsW(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(16, 0x66A7),)] + + +class CmpsD(Instruction): + default_32_bits = True + encoding = [(RawBits.from_int(8, 0xa7),)] + + +class Nop(Instruction): + encoding = [(RawBits.from_int(8, 0x90),)] + +class Not(Instruction): + encoding = [(RawBits.from_int(8, 0xF7), Slash(2))] + +class Retf(Instruction): + encoding = [(RawBits.from_int(8, 0xcb),)] + +class Int(Instruction): + encoding = [(RawBits.from_int(8, 0xcd), UImm8())] + +class Int3(Instruction): + encoding = [(RawBits.from_int(8, 0xcc),)] + +class Iret(Instruction): + encoding = [(RawBits.from_int(8, 0xcf),)] + + +class _NopArtifact(Nop): + """Special NOP used in shellcode reduction""" + pass + + +class Byte(Instruction): + """Output a raw byte""" + encoding = [(UImm8(),)] + + +class Raw(Instruction): + """Output raw data""" + def __init__(self, *initial_args): + if len(initial_args) != 1: + raise ValueError("raw 'opcode' only accept one argument") + # Accept space + self.data = binascii.unhexlify(initial_args[0].replace(" ", "")) + + def get_code(self): + return self.data + + + + +class Label(object): + def __init__(self, name): + self.name = name + + +def JmpAt(addr): + code = MultipleInstr() + code += Push(addr) + code += Ret() + return code + + +class MultipleInstr(object): + JUMP_SIZE = 6 + + def __init__(self, init_instrs=()): + self.instrs = {} + self.labels = {} + self.expected_labels = {} + # List of all labeled jump already resolved + # Will be used for 'relocation' + self.computed_jump = [] + self.size = 0 + for i in init_instrs: + self += i + + def get_code(self): + if self.expected_labels: + raise ValueError("Unresolved labels: {0}".format(self.expected_labels.keys())) + return b"".join([x[1].get_code() for x in sorted(self.instrs.items())]) + + def add_instruction(self, instruction): + if isinstance(instruction, Label): + return self.add_label(instruction) + # Change DelayedJump to LabeledJump ? + if isinstance(instruction, DelayedJump): + return self.add_delayed_jump(instruction) + if isinstance(instruction, (Instruction, Prefix)): + self.instrs[self.size] = instruction + self.size += len(instruction.get_code()) + return + raise ValueError("Don't know what to do with {0} of type {1}".format(instruction, type(instruction))) + + def add_label(self, label): + if label.name not in self.expected_labels: + # Label that have no jump before definition + # Just registed the address of the label + self.labels[label.name] = self.size + return + # Label with jmp before definition + # Lot of stuff todo: + # Find all delayed jump that refer to this jump + # Replace them with real jump + # If size of jump < JUMP_SIZE: relocate everything we can + # Update expected_labels + for jump_to_label in self.expected_labels[label.name]: + if jump_to_label.offset in self.instrs: + raise ValueError("WTF REPLACE EXISTING INSTR...") + distance = self.size - jump_to_label.offset + real_jump = jump_to_label.type(distance) + self.instrs[jump_to_label.offset] = real_jump + self.computed_jump.append((jump_to_label.offset, self.size)) + for i in range(self.JUMP_SIZE - len(real_jump.get_code())): + self.instrs[jump_to_label.offset + len(real_jump.get_code()) + i] = _NopArtifact() + del self.expected_labels[label.name] + self.labels[label.name] = self.size + if not self.expected_labels: + # No more un-resolved label (for now): time to reduce the shellcode + self._reduce_shellcode() + + def add_delayed_jump(self, jump): + dst = jump.label + if dst in self.labels: + # Jump to already defined labels + # Nothing fancy: get offset of label and jump to it ! + distance = self.size - self.labels[dst] + jump_instruction = jump.type(-distance) + self.computed_jump.append((self.size, self.labels[dst])) + return self.add_instruction(jump_instruction) + # Jump to undefined label + # Add label to expected ones + # Add jump info -> offset of jump | type + # Reserve space for call ! + jump.offset = self.size + self.expected_labels.setdefault(dst, []).append(jump) + self.size += self.JUMP_SIZE + return + + def _reduce_shellcode(self): + to_remove = [offset for offset, instr in self.instrs.items() if type(instr) == _NopArtifact] + while to_remove: + self._remove_nop_artifact(to_remove[0]) + # _remove_nop_artifact will change the offsets of the nop + # Need to refresh these offset + to_remove = [offset for offset, instr in self.instrs.items() if type(instr) == _NopArtifact] + + def _remove_nop_artifact(self, offset): + # Remove a NOP from the shellcode + for src, dst in self.computed_jump: + # Reduce size of Jump over the nop (both sens) + if src < offset < dst or dst < offset < src: + old_jmp = self.instrs[src] + old_jump_size = len(old_jmp.get_code()) + if src < offset < dst: + new_jmp = type(old_jmp)(dst - src - 1) + else: + new_jmp = type(old_jmp)(dst - src + 1) + new_jmp_size = len(new_jmp.get_code()) + if new_jmp_size > old_jump_size: + raise ValueError("Wtf jump of smaller size is bigger.. ABORT") + self.instrs[src] = new_jmp + # Add other _NopArtifact if jump instruction size is reduced + for i in range(old_jump_size - new_jmp_size): + self.instrs[src + new_jmp_size + i] = _NopArtifact() + + # dec offset of all Label after the NOP + for name, labeloffset in self.labels.items(): + if labeloffset > offset: + self.labels[name] = labeloffset - 1 + + # dec offset of all instr after the NOP + new_instr = {} + for instroffset, instr in self.instrs.items(): + if instroffset == offset: + continue + if instroffset > offset: + instroffset -= 1 + new_instr[instroffset] = instr + self.instrs = new_instr + # Update all computed jump + new_computed_jump = [] + for src, dst in self.computed_jump: + if src > offset: + src -= 1 + if dst > offset: + dst -= 1 + new_computed_jump.append((src, dst)) + self.computed_jump = new_computed_jump + # dec size of the shellcode + self.size -= 1 + + def merge_shellcode(self, other): + shared_labels = set(self.labels) & set(other.labels) + if shared_labels: + raise ValueError("Cannot merge shellcode: shared labels {0}".format(shared_labels)) + for offset, instr in sorted(other.instrs.items()): + for label_name in [name for name, label_offset in other.labels.items() if label_offset == offset]: + self.add_instruction(Label(label_name)) + self.add_instruction(instr) + + def __iadd__(self, other): + if isinstance(other, MultipleInstr): + self.merge_shellcode(other) + elif isinstance(other, basestring): + self.assemble(other) + else: + self.add_instruction(other) + return self + + def assemble(self, code): + for instr in assemble_instructions_generator(code): + self.add_instruction(instr) + + +def split_in_instruction(str): + for line in str.split("\n"): + if not line: + continue + for instr in line.split(";"): + if not instr: + continue + yield instr.strip() + +def assemble_instructions_generator(str): + for instr in split_in_instruction(str): + data = instr.split(" ", 1) + mnemo, args_raw = data[0], data[1:] + try: + instr_object = globals()[mnemo.capitalize()] + except: + raise ValueError("Unknow mnemonic <{0}>".format(mnemo)) + + args = [] + if args_raw: + for arg in args_raw[0].split(","): + arg = arg.strip() + if (arg[0] == "[" or arg[2:4] == ":[") and arg[-1] == "]": + arg = mem(arg) + else: + try: + arg = int(arg, 0) + except ValueError: + pass + args.append(arg) + yield instr_object(*args) + +def assemble(str): + """Play test""" + shellcode = MultipleInstr() + shellcode += str + return shellcode.get_code() + +def shellcode(str): + shellcode = MultipleInstr() + shellcode += str + return shellcode + +# IDA : import windows.native_exec.simple_x86 as x86 +# IDA testing + +try: + import midap + import idc + in_IDA = True +except ImportError: + in_IDA = False + + +if in_IDA: + def test_code(): + s = MultipleInstr() + s += Mov("Eax", "ESI") + s += Inc("Ecx") + s += Dec("edi") + s += Ret() + return s + + def reset(): + idc.MakeUnknown(idc.MinEA(), 0x1000, 0) + for i in range(0x1000): + idc.PatchByte(idc.MinEA() + i, 0) + + s = test_code() + + def tst(): + reset() + midap.here(idc.MinEA()).write(s.get_code()) + idc.MakeFunction(idc.MinEA()) diff --git a/pythonmemorymodule/windows/pe_parse.py b/pythonmemorymodule/windows/pe_parse.py new file mode 100644 index 0000000..b677626 --- /dev/null +++ b/pythonmemorymodule/windows/pe_parse.py @@ -0,0 +1,453 @@ +import ctypes +import windows +import windows.hooks as hooks +import windows.utils as utils + +from windows.generated_def.winstructs import * +from windows.utils import transform_ctypes_fields +import windows.remotectypes as rctypes + +IMAGE_ORDINAL_FLAG32 = 0x80000000 +IMAGE_ORDINAL_FLAG64 = 0x8000000000000000 + + +def get_structure_transformer_for_target(target, targetbitness=None): + current_bitness = windows.current_process.bitness + if target is None: + ctypes_structure_transformer = lambda x:x + create_structure_at = lambda structcls, addr: structcls.from_address(addr) + return ctypes_structure_transformer, create_structure_at + + if targetbitness is None: + targetbitness = target.bitness + + if targetbitness == 32 and current_bitness == 64: + ctypes_structure_transformer = rctypes.transform_type_to_remote32bits + elif targetbitness == 64 and current_bitness == 32: + ctypes_structure_transformer = rctypes.transform_type_to_remote64bits + elif targetbitness == current_bitness: + ctypes_structure_transformer = rctypes.transform_type_to_remote + else: + raise NotImplementedError("Parsing {0} PE from {1} Process".format(targetedbitness, proc_bitness)) + + def create_structure_at(structcls, addr): # Il reste une closure sur 'target' ici !! + return ctypes_structure_transformer(structcls)(addr, target) + return ctypes_structure_transformer, create_structure_at + +def get_pe_bitness(baseaddr, target): + # We can force bitness as the field we access are bitness-independant + pe = GetPEFile(baseaddr, target, force_bitness=32) + machine = pe.get_NT_HEADER().FileHeader.Machine + if machine == 0x14c: + return 32 + elif machine == 0x8664: + return 64 + else: + raise ValueError("Unknow PE target machine <0x{0:x}>".format(machine)) + + +## == PEPARSE V2 == + + +import collections +CtypesStructureTransformers = collections.namedtuple("CtypesStructureTransformers", ["ctypes_structure_transformer", "create_structure_at"]) + +def GetPEFile(baseaddr, target=None, force_bitness=None): + """Returns a :class:`PEFile` to explore a PE loaded at `baseaddr` in process `target`. + + :rtype: :class:`PEFile` + + .. note:: + + If target is ``None`` it refers to the current process + """ + proc_bitness = windows.current_process.bitness + + if force_bitness is None: + targetedbitness = get_pe_bitness(baseaddr, target) + else: + targetedbitness = force_bitness + + transformers = get_structure_transformer_for_target(target, targetedbitness) + #ctypes_structure_transformer, create_structure_at = transformers + transfor_funcs = CtypesStructureTransformers(*transformers) # TODO: rename + return PEFile(target, baseaddr, targetedbitness, transfor_funcs) + + +class THUNK_DATA(ctypes.Union): + _fields_ = [ + ("Ordinal", PVOID), + ("AddressOfData", PVOID) + ] + +# Special case for .NET PE32 rewrite as 64b +# We may have a PE in a 64b process with a 32b IAT +class THUNK_DATA_32(ctypes.Union): + _fields_ = [ + ("Ordinal", DWORD), + ("AddressOfData", DWORD) + ] + +class IMPORT_BY_NAME(ctypes.Structure): + _fields_ = [ + ("Hint", WORD), + ("Name", BYTE) + ] + + +def get_string(target, addr): + if target is None: + return ctypes.c_char_p(addr).value.decode("latin1") + return target.read_string(addr) + + +class PESection(IMAGE_SECTION_HEADER): + + @property + def name(self): + if self.target is None: + name = get_string(self.target, ctypes.addressof(self.Name))[:8] + else: + name = get_string(self.target, self._base_addr)[:8] + # Decode as UTF-8 as the MS doc say ? + return name + + @property + def start(self): + return self.baseaddr + self.VirtualAddress + + @property + def size(self): + return self.VirtualSize + + def __repr__(self): + return "".format(self.name) + + + @classmethod + def create(cls, pefile, addr): + self = pefile.transformers.create_structure_at(cls, addr) + self.baseaddr = pefile.baseaddr + self.target = pefile.target + return self + + +class IATPtr(PVOID): + @classmethod + def from_iatentry(cls, iat_entry): + self = cls.from_address(iat_entry.addr) + self.addr = iat_entry.addr + self.nonhookvalue = iat_entry.nonhookvalue + return self + +class IATEntry(ctypes.Structure): + """Represent an entry in the IAT of a module + Can be used to get resolved value and setup hook + """ + _fields_ = [ + ("value", PVOID)] + + @classmethod + def create(cls, addr, ord, name, target, transformers): + self = transformers.create_structure_at(cls, addr) + self.addr = addr + self.ord = ord + self.name = name + self.hook = None + self.nonhookvalue = self.value + self.target = target + return self + + def __repr__(self): + return '<{0} "{1}" ordinal {2}>'.format(self.__class__.__name__, self.name, self.ord) + + def set_hook(self, callback, types=None): + """Setup a hook on the entry and return it. + You MUST keep a reference to the hook while the hook is enabled. + + :param callback: the hook + + .. note:: + + see :ref:`hook_protocol` + + :rtype: :class:`windows.hooks.IATHook` + + .. warning:: + + This works only for PEFile with the current process as target. + """ + if self.target is not None: + raise NotImplementedError("Setting hook in remote process (use python code injection)") + + hook = hooks.IATHook(self, callback, types) + import weakref + self.whook = weakref.ref(hook, self.on_destroy) + self.hook = hook + hook.enable() + return hook + + def on_destroy(self, *args): + # We cannot know if the hook was enabled here.. + print("DESTROY: {0} -> ".format(args, self.enabled)) + # print(args[0]()) + + def remove_hook(self): + """Remove the hook on the entry""" + if self.hook is None: + return False + self.hook.disable() + self.hook = None + return True + + # def __del__(self): + # print(self.hook) + # if self.hook: + # print("LOL BYE {0}".format(self.hook)) + + +class IMAGE_IMPORT_DESCRIPTOR(IMAGE_IMPORT_DESCRIPTOR): # TODO: use explicite name winstructs.IMAGE_IMPORT_DESCRIPTOR + def get_INT(self, pe): + THUNK_DATA_TYPE = THUNK_DATA + if not self.OriginalFirstThunk: + return None + # We may have 32bits PE mapped in 32bits process (thanks to .NET PE) + if self.target is None and pe.bitness != windows.current_process.bitness: + assert windows.current_process.bitness == 64 and pe.bitness == 32, "Mapped 64b PE in current process 32b not handled" + THUNK_DATA_TYPE = THUNK_DATA_32 + int_addr = self.OriginalFirstThunk + self.baseaddr + int_entry = self.transformers.create_structure_at(THUNK_DATA_TYPE, int_addr) + res = [] + while int_entry.Ordinal: + if int_entry.Ordinal & self.IMAGE_ORDINAL_FLAG: + res += [(int_entry.Ordinal & 0x7fffffff, None)] + else: + import_by_name = self.transformers.create_structure_at(IMPORT_BY_NAME, self.baseaddr + int_entry.AddressOfData) + name_address = self.baseaddr + int_entry.AddressOfData + type(import_by_name).Name.offset + name = get_string(self.target, name_address) + res.append((import_by_name.Hint, name)) + int_addr += ctypes.sizeof(type(int_entry)) + int_entry = self.transformers.create_structure_at(THUNK_DATA_TYPE, int_addr) + return res + + def get_IAT(self, pe): + THUNK_DATA_TYPE = THUNK_DATA + if self.target is None and pe.bitness != windows.current_process.bitness: + assert windows.current_process.bitness == 64 and pe.bitness == 32, "Mapped 64b PE in current process 32b not handled" + THUNK_DATA_TYPE = THUNK_DATA_32 + iat_addr = self.FirstThunk + self.baseaddr + iat_entry = self.transformers.create_structure_at(THUNK_DATA_TYPE, iat_addr) + res = [] + while iat_entry.Ordinal: + res.append(IATEntry.create(iat_addr, -1, "??", self.target, self.transformers)) + iat_addr += ctypes.sizeof(type(iat_entry)) + iat_entry = self.transformers.create_structure_at(THUNK_DATA_TYPE, iat_addr) + return res + + @classmethod + def create(cls, pefile, addr): + self = pefile.transformers.create_structure_at(cls, addr) + self.baseaddr = pefile.baseaddr + self.transformers = pefile.transformers + self.IMAGE_ORDINAL_FLAG = pefile.IMAGE_ORDINAL_FLAG + self.target = pefile.target + return self + +class IMAGE_EXPORT_DIRECTORY(IMAGE_EXPORT_DIRECTORY): # TODO: use explicite name winstructs._IMAGE_EXPORT_DIRECTORY + def get_exports(self): + NameOrdinals = self.transformers.create_structure_at((WORD * self.NumberOfNames), self.AddressOfNameOrdinals + self.baseaddr) + NameOrdinals = list(NameOrdinals) + Functions = self.transformers.create_structure_at((DWORD * self.NumberOfFunctions), self.AddressOfFunctions + self.baseaddr) + Names = self.transformers.create_structure_at((DWORD * self.NumberOfNames), self.AddressOfNames + self.baseaddr) + res = [] + for nb, func in enumerate(Functions): + func += self.baseaddr + if nb in NameOrdinals: + name = get_string(self.target, Names[NameOrdinals.index(nb)] + self.baseaddr) + # Export name should be ascii + # Decode from ascii or return bytes ? + # https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#export-address-table + else: + name = None + res.append((nb, func, name)) + return res + + @classmethod + def create(cls, pefile, addr): + self = pefile.transformers.create_structure_at(cls, addr) + self.transformers = pefile.transformers + self.target = pefile.target + self.baseaddr = pefile.baseaddr + return self + + +class IMAGE_DOS_HEADER(ctypes.Structure): + _fields_ = [ + ("e_magic", CHAR * 2), + ("e_cblp", WORD), + ("e_cp", WORD), + ("e_crlc", WORD), + ("e_cparhdr", WORD), + ("e_minalloc", WORD), + ("e_maxalloc", WORD), + ("e_ss", WORD), + ("e_sp", WORD), + ("e_csum", WORD), + ("e_ip", WORD), + ("e_cs", WORD), + ("e_lfarlc", WORD), + ("e_ovno", WORD), + ("e_res", WORD * 4), + ("e_oemid", WORD), + ("e_oeminfo", WORD), + ("e_res2", WORD * 10), + ("e_lfanew", DWORD), + ] + +class PEFile(object): + """Represent a PE loaded in a process (current or remote)""" + + def __init__(self, target, baseaddr, targetedbitness, transformers): + self.target = target + self.baseaddr = baseaddr + self.bitness = targetedbitness + self.transformers = transformers + + if targetedbitness == 32: + self.IMAGE_ORDINAL_FLAG = IMAGE_ORDINAL_FLAG32 + else: + self.IMAGE_ORDINAL_FLAG = IMAGE_ORDINAL_FLAG64 + + def get_DOS_HEADER(self): + return self.transformers.create_structure_at(IMAGE_DOS_HEADER, self.baseaddr) + + def get_NT_HEADER(self): + offset = self.get_DOS_HEADER().e_lfanew + if self.bitness == 32: + return self.transformers.create_structure_at(IMAGE_NT_HEADERS32, self.baseaddr + offset) + return self.transformers.create_structure_at(IMAGE_NT_HEADERS64, self.baseaddr + offset) + + + STANDARD_OPTIONAL_HEADER_TYPE_PER_MAGIC = { + IMAGE_NT_OPTIONAL_HDR32_MAGIC: IMAGE_OPTIONAL_HEADER32, + IMAGE_NT_OPTIONAL_HDR64_MAGIC: IMAGE_OPTIONAL_HEADER64, + } + + STANDARD_OPTIONAL_HEADER_SIZE_PER_MAGIC = ( + (IMAGE_NT_OPTIONAL_HDR32_MAGIC, ctypes.sizeof(IMAGE_OPTIONAL_HEADER32)), + (IMAGE_NT_OPTIONAL_HDR64_MAGIC, ctypes.sizeof(IMAGE_OPTIONAL_HEADER64)), + ) + + def get_OptionalHeader(self): + # We can have a 32bits PE with a 64 bits OptionalHeader + # Ex : PE32 .NET that allow to be loaded in 64b process + # See: https://github.com/dotnet/runtime/blob/8bbe33819464216becffb7cf8b7ea8dd3bab5836/src/coreclr/src/vm/peimagelayout.cpp#L599 + # In this case the OptionalHeader is transformed in 64bits & OptionalHeader.Magic is changed accordingly + # So we cannot just rely on get_NT_HEADER() to give us the correct OptionalHeader type. some re-check are required + default_opth = self.get_NT_HEADER().OptionalHeader + # Cannot juste compare types with type(default_opth) as it may be a remoteType + current_opth_infos = (default_opth.Magic, ctypes.sizeof(default_opth)) + if current_opth_infos in self.STANDARD_OPTIONAL_HEADER_SIZE_PER_MAGIC: + # The default OptionalHeader structure match what we expect based on the magic (most of the cases) + return default_opth + # Mismatch -> PE32 remapped as 64b (with OptionalHeader rewrite) + # Remap the correct OptionalHeader + opt_header_real_type = self.STANDARD_OPTIONAL_HEADER_TYPE_PER_MAGIC[default_opth.Magic] + opt_header_addr = default_opth._base_addr if self.target else ctypes.addressof(default_opth) + return self.transformers.create_structure_at(opt_header_real_type, opt_header_addr) + + def get_DataDirectory(self): + return self.get_OptionalHeader().DataDirectory + + + def get_IMPORT_DESCRIPTORS(self): + import_datadir = self.get_DataDirectory()[IMAGE_DIRECTORY_ENTRY_IMPORT] + if import_datadir.VirtualAddress == 0: + return [] + import_descriptor_addr = self.baseaddr + import_datadir.VirtualAddress + current_import_descriptor = IMAGE_IMPORT_DESCRIPTOR.create(self, import_descriptor_addr) + res = [] + while current_import_descriptor.FirstThunk: + res.append(current_import_descriptor) + import_descriptor_addr += ctypes.sizeof(IMAGE_IMPORT_DESCRIPTOR) + current_import_descriptor = IMAGE_IMPORT_DESCRIPTOR.create(self, import_descriptor_addr) + return res + + def get_EXPORT_DIRECTORY(self): + export_directory_rva = self.get_DataDirectory()[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress + if export_directory_rva == 0: + return None + export_directory_addr = self.baseaddr + export_directory_rva + exp_dir = IMAGE_EXPORT_DIRECTORY.create(self, export_directory_addr) + return exp_dir + + @utils.fixedpropety + def sections(self): + nt_header = self.get_NT_HEADER() + nb_section = nt_header.FileHeader.NumberOfSections + SizeOfOptionalHeader = self.get_NT_HEADER().FileHeader.SizeOfOptionalHeader + if self.target is None: + opt_header_addr = ctypes.addressof(self.get_NT_HEADER().OptionalHeader) + else: + opt_header_addr = self.get_NT_HEADER().OptionalHeader._base_addr + base_section = opt_header_addr + SizeOfOptionalHeader + #pe_section_type = IMAGE_SECTION_HEADER + return [PESection.create(self, base_section + (sizeof(IMAGE_SECTION_HEADER) * i)) for i in range(nb_section)] + #sections_array = self.transformers.create_structure_at((self.PESection * nb_section), base_section) + #return list(sections_array) + + @utils.fixedpropety + def exports(self): + """The exports of the PE in a dict. Keys are ordinal (:class:`int`) and name (:class:`str`). + The values are the addresses of the exports. + + :type: {(:class:`int` or :class:`str`) : :class:`int`}""" + res = {} + exp_dir = self.get_EXPORT_DIRECTORY() + export_datadir = self.get_DataDirectory()[IMAGE_DIRECTORY_ENTRY_EXPORT] + export_start = self.baseaddr + export_datadir.VirtualAddress + export_end = export_start + export_datadir.Size + if exp_dir is None: + return res + raw_exports = exp_dir.get_exports() + for id, rva_addr, rva_name in raw_exports: + if export_start <= rva_addr < export_end: + # Export proxy... + # Contains the string to another Dll.Function + rva_addr = get_string(self.target, rva_addr) # Put the string proxy instead + + res[id] = rva_addr + if rva_name is not None: + res[rva_name] = rva_addr + return res + + @utils.fixedpropety + def export_name(self): + """The Name attribute of the ``EXPORT_DIRECTORY``""" + exp_dir = self.get_EXPORT_DIRECTORY() + if exp_dir is None: + return None + if not exp_dir.Name: + return None + return get_string(self.target, self.baseaddr + exp_dir.Name) + + # TODO: get imports by parsing other modules exports if no INT + @utils.fixedpropety + def imports(self): + """The imports of the PE in a dict. + Keys are the names of DLL to import from and values are :class:`list` + of :class:`IATEntry` + + :type: {:class:`str` : [:class:`IATEntry`]}""" + res = {} + for import_descriptor in self.get_IMPORT_DESCRIPTORS(): + INT = import_descriptor.get_INT(self) + IAT = import_descriptor.get_IAT(self) + if INT is not None: + for iat_entry, (ord, name) in zip(IAT, INT): + # str(name.decode()) -> python2 and python3 compatible for str result + iat_entry.ord = ord + iat_entry.name = str(name) if name else "" + name = get_string(self.target, self.baseaddr + import_descriptor.Name) + res.setdefault(name.lower(), []).extend(IAT) + return res \ No newline at end of file diff --git a/pythonmemorymodule/windows/pipe.py b/pythonmemorymodule/windows/pipe.py new file mode 100644 index 0000000..424fd52 --- /dev/null +++ b/pythonmemorymodule/windows/pipe.py @@ -0,0 +1,127 @@ +import windows +from windows import winproxy +import windows.generated_def as gdef +import ctypes + +from windows.pycompat import is_py3 + +if is_py3: + from multiprocessing.connection import PipeConnection as native_PipeConnection +else: + from _multiprocessing import PipeConnection as native_PipeConnection + +# Inspired from 'multiprocessing\connection.py' + +def full_pipe_address(addr): + """Return the full address of the pipe `addr`""" + if not isinstance(addr, bytes): + addr = addr.encode("ascii") + if addr.startswith(b"\\\\"): + return addr + return br"\\.\pipe" + "\\".encode() + addr + +class PipeConnection(object): # Cannot inherit: crash the interpreter + """A wrapper arround :class:`_multiprocessing.PipeConnection` able to work as a ContextManager""" + BUFFER_SIZE = 0x2000 + + def __init__(self, connection, name=None, server=False): + self.handle = connection.fileno() + self.connection = connection + self.name = name + self.server = server + + @classmethod + def from_handle(cls, phandle, *args, **kwargs): + """Create a :class:`PipeConnection` from pipe handle `phandle`""" + connection = native_PipeConnection(phandle) + return cls(connection, *args, **kwargs) + + @classmethod + def create(cls, addr, security_descriptor=None): + """Create a namedpipe pipe ``addr`` + + :returns type: :class:`PipeConnection` + """ + addr = full_pipe_address(addr) + + security_attributes = None + if security_descriptor is not None: + if isinstance(security_descriptor, str): + security_descriptor = windows.security.SecurityDescriptor.from_string(security_descriptor) + security_attributes = gdef.SECURITY_ATTRIBUTES() + security_attributes.nLength = ctypes.sizeof(security_attributes) + security_attributes.lpSecurityDescriptor = security_descriptor # Accept as arg ? + security_attributes.bInheritHandle = True # Accept as arg ? + + + pipehandle = winproxy.CreateNamedPipeA( + addr, gdef.PIPE_ACCESS_DUPLEX, + gdef.PIPE_TYPE_MESSAGE | gdef.PIPE_READMODE_MESSAGE | + gdef.PIPE_WAIT, + gdef.PIPE_UNLIMITED_INSTANCES, cls.BUFFER_SIZE, cls.BUFFER_SIZE, + gdef.NMPWAIT_WAIT_FOREVER, security_attributes + ) + return cls.from_handle(pipehandle, name=addr, server=True) + + @classmethod + def connect(cls, addr): + """Connect to the named pipe ``addr`` + + :returns type: :class:`PipeConnection` + """ + addr = full_pipe_address(addr) + pipehandle = winproxy.CreateFileA(addr, gdef.GENERIC_READ | gdef.GENERIC_WRITE, 0, None, gdef.OPEN_EXISTING, 0, None) + winproxy.SetNamedPipeHandleState(pipehandle, gdef.ULONG(gdef.PIPE_READMODE_MESSAGE), None, None) + return cls.from_handle(pipehandle, name=addr, server=False) + + def send(self, *args, **kwargs): + """Send an object on the pipe""" + return self.connection.send(*args, **kwargs) + + def recv(self, *args, **kwargs): + """Send an object from the pipe""" + return self.connection.recv(*args, **kwargs) + + def wait_connection(self): + """Wait for a client process to connect to the named pipe""" + return winproxy.ConnectNamedPipe(self.handle, None) + + def get_security_descriptor(self): + return windows.security.SecurityDescriptor.from_handle(self.handle) + + def set_security_descriptor(self, sd): + if isinstance(sd, basestring): + sd = windows.security.SecurityDescriptor.from_string(sd) + sd._apply_to_handle_and_type(self.handle) + + security_descriptor = property(get_security_descriptor, set_security_descriptor) + + def close(self): + """Close the handle of the pipe""" + self.connection.close() + self.handle = None + + def __enter__(self): + return self + + def __exit__(self, *args, **kwargs): + self.close() + + def __repr__(self): + return """<{0} name="{1}" server={2}>""".format(type(self).__name__, self.name, self.server) + + +connect = PipeConnection.connect +create = PipeConnection.create + +def send_object(addr, obj): + """Send `obj` on pipe ``addr``""" + with connect(addr) as np: + np.send(obj) + return None + +def recv_object(addr): + """Receive an object from pipe ``addr``""" + with create(addr) as np: + np.wait_connection() + return np.recv() \ No newline at end of file diff --git a/pythonmemorymodule/windows/pycompat.py b/pythonmemorymodule/windows/pycompat.py new file mode 100644 index 0000000..c86e294 --- /dev/null +++ b/pythonmemorymodule/windows/pycompat.py @@ -0,0 +1,38 @@ +import sys + +is_py3 = (sys.version_info.major >= 3) + +if is_py3: + def str_from_ascii_function(s): + return s.decode("ascii") + + int_types = int + basestring = str + anybuff = (str, bytes) + + def raw_encode(s): + if isinstance(s, str): + return s.encode("latin1") + return s + + def raw_decode(s): + if isinstance(s, bytes): + return s.decode("latin1") + return s + +else: # py2.7 + def str_from_ascii_function(s): + return s + + int_types = (int, long) + basestring = basestring + anybuff = basestring + + def raw_encode(s): + if isinstance(s, unicode): + return s.encode("latin1") + return s + + def raw_decode(s): + # No unicode for now on py2 + return s diff --git a/pythonmemorymodule/windows/remotectypes.py b/pythonmemorymodule/windows/remotectypes.py new file mode 100644 index 0000000..6794ee4 --- /dev/null +++ b/pythonmemorymodule/windows/remotectypes.py @@ -0,0 +1,525 @@ +"""remote ctypes, a try to a ctypes wrapper that accept a target object for every ready operation +Some code is copy-paste, might be userful to rewrite some part later""" + +import _ctypes +import ctypes +import ctypes.wintypes +import itertools +from _ctypes import _SimpleCData + +# No PFW deps in this file +import sys +is_py3 = (sys.version_info.major >= 3) +if is_py3: + int_types = int +else: + int_types = (int, long) + + +# ## Utils ### # +def is_pointer(x): + return isinstance(x, _ctypes._Pointer) + + +def is_pointer_type(x): + return issubclass(x, _ctypes._Pointer) + + +def is_array(x): + return isinstance(x, _ctypes.Array) + + +def is_array_type(x): + return issubclass(x, _ctypes.Array) + + +def is_structure_type(x): + return issubclass(x, ctypes.Structure) + + +def is_union_type(x): + return issubclass(x, ctypes.Union) + +# ### My types ### # + +# # 64bits pointer types # # + +# I know direct inheritance from _SimpleCData seems bad +# But it seems to be the only way to have the normal +# ctypes.Structure way of working (need to investigate) + + +class c_void_p64(_SimpleCData): + _type_ = "Q" + + +class c_char_p64(_SimpleCData): + _type_ = "Q" + + +class c_wchar_p64(_SimpleCData): + _type_ = "Q" + + +# # 32bits pointer types # # +class c_void_p32(_SimpleCData): + _type_ = "I" + + +class c_char_p32(_SimpleCData): + _type_ = "I" + + +class c_wchar_p32(_SimpleCData): + _type_ = "I" + + +# standard type translation +# don't know how to handle size_t since it's non-distinguable from c_ulong +# maybe force import before ctypes and modif stuff into ctypes ? + + +# # Remote Value +# Used by the RemoteStructure to access the target memory + +class RemoteValue(object): + @classmethod + def from_buffer_with_target(cls, buffer, offset=0, target=None): + x = cls.from_buffer(buffer) + x.target = target + return x + + +class RemotePtr(RemoteValue): + @property + def raw_value(self): + return ctypes.cast(self, ctypes.c_void_p).value + + +class RemoteCCharP(RemotePtr, ctypes.c_char_p): + @property + def value(self): + base = self.raw_value + if not base: + return None + res = [] + for i in itertools.count(): + x = self.target.read_memory(base + (i * 0x100), 0x100) + if b"\x00" in x: + res.append(x.split(b"\x00", 1)[0]) + break + res.append(x) + return b"".join(res) + + +class RemoteWCharP(RemotePtr, ctypes.c_char_p): + @property + def value(self): + base = self.raw_value + if not base: + return None + # Simple case where target in a WinProcess + try: + return self.target.read_wstring(base) + except AttributeError as e: + pass + # Copy of Winprocess.read_wstring if target is a custom object + read_size = 0x100 + readden = 0 + # I am trying to do something smart here.. + while True: + try: + x = self.read_memory(addr + readden, read_size) + except winproxy.WinproxyError as e: + if read_size == 2: + raise + # handle read_wstring at end of page + # Of read failed: read only the half of size + # read_size must remain a multiple of 2 + read_size = read_size / 2 + continue + readden += read_size + utf16_chars = ["".join(c) for c in zip(*[iter(x)] * 2)] + if "\x00\x00" in utf16_chars: + res.extend(utf16_chars[:utf16_chars.index("\x00\x00")]) + break + res.extend(x) + return "".join(res).decode('utf16') + + +class RemoteStructurePointer(RemotePtr, ctypes.c_void_p): + @classmethod + def from_buffer_with_target_and_ptr_type(cls, buffer, offset=0, target=None, ptr_type=None): + x = cls.from_buffer(buffer) + x.target = target + x.real_pointer_type = ptr_type + return x + + @property + def contents(self): + remote_pointed_type = RemoteStructure.from_structure(self.real_pointer_type._type_) + return remote_pointed_type(self.raw_value, self.target) + + def __repr__(self): + return "".format(self.real_pointer_type._type_.__name__) + + +def create_remote_array(subtype, len): + + class RemoteArray(_ctypes.Array): + _length_ = len + _type_ = subtype + + def __init__(self, addr, target): + self._base_addr = addr + self.target = target + + def __getitem__(self, slice): + # import pdb;pdb.set_trace() + if not isinstance(slice, int_types): + raise NotImplementedError("RemoteArray slice __getitem__") + if slice >= len: + raise IndexError("Access to {0} for a RemoteArray of size {1}".format(slice, len)) + item_addr = self._base_addr + (ctypes.sizeof(subtype) * slice) + + # TODO: do better ? + class TST(ctypes.Structure): + _fields_ = [("TST", subtype)] + return RemoteStructure.from_structure(TST)(item_addr, target=self.target).TST + + def __getslice__(self, start, stop): # Still used even for python 2.7 wtf :F + stop = min(stop, len) + start = max(start, 0) + # dummy implementation + return [self[i] for i in range(start, stop)] + + return RemoteArray + + +# 64bits pointers + +class RemotePtr64(RemoteValue): + def __init__(self, value, target): + self.target = target + super(RemotePtr64, self).__init__(value) + + @property + def raw_value(self): + # Bypass our own 'value' implementation + # Even if we are a subclass of c_ulonglong + my_addr = ctypes.addressof(self) + return ctypes.c_ulonglong.from_address(my_addr).value + + +class Remote_c_void_p64(RemotePtr64, c_void_p64): + pass + + +# base explanation: +# RemotePtr64 for the good `raw_value` implem +# RemoteCCharP for the good `value` implem +# c_char_p64 for the good _type_ (ctypes size) +class Remote_c_char_p64(c_char_p64, RemotePtr64, RemoteCCharP): + def __repr__(self): + return "".format(self.raw_value) + + +class Remote_w_char_p64(c_wchar_p64, RemotePtr64, RemoteWCharP): + def __repr__(self): + return "".format(self.raw_value) + + +class RemoteStructurePointer64(Remote_c_void_p64): + @property + def raw_value(self): + return self.value + + @classmethod + def from_buffer_with_target_and_ptr_type(cls, buffer, offset=0, target=None, ptr_type=None): + x = cls.from_buffer(buffer) + x.target = target + x.real_pointer_type = ptr_type + return x + + @property + def contents(self): + remote_pointed_type = transform_type_to_remote64bits(self.real_pointer_type._sub_ctypes_) + return remote_pointed_type(self.raw_value, self.target) + + +type_32_64_translation_table = { + ctypes.c_void_p: Remote_c_void_p64, + ctypes.c_char_p: Remote_c_char_p64, + ctypes.c_wchar_p: Remote_w_char_p64, +} + + +# 32bits pointers + +class RemotePtr32(RemoteValue): + def __init__(self, value, target): + self.target = target + super(RemotePtr32, self).__init__(value) + + @property + def raw_value(self): + # Bypass our own 'value' implementation + # Even if we are a subclass of c_ulonglong + my_addr = ctypes.addressof(self) + return ctypes.c_ulong.from_address(my_addr).value + + +class Remote_c_void_p32(RemotePtr32, c_void_p32): + pass + + +# base explanation: +# RemotePtr64 for the good `raw_value` implem +# RemoteCCharP for the good `value` implem +# c_char_p64 for the good _type_ (ctypes size) +class Remote_c_char_p32(c_char_p32, RemotePtr32, RemoteCCharP): + def __repr__(self): + return "".format(self.raw_value) + + +class Remote_w_char_p32(c_wchar_p32, RemotePtr32, RemoteWCharP): + def __repr__(self): + return "".format(self.raw_value) + + +class RemoteStructurePointer32(Remote_c_void_p32): + @property + def raw_value(self): + return self.value + + @classmethod + def from_buffer_with_target_and_ptr_type(cls, buffer, offset=0, target=None, ptr_type=None): + x = cls.from_buffer(buffer) + x.target = target + x.real_pointer_type = ptr_type + return x + + @property + def contents(self): + # What if we have a non-struct pointer + # Like a Ptr(DWORD) we would like to get the underlying value + realtype = self.real_pointer_type._sub_ctypes_ + # if _SimpleCData in realtype.__bases__: + # A ctypes original value. + # Returnthe real pointed value + # Kind of a tricks for now compared to the real ctypes behavior + # import pdb;pdb.set_trace() + # if not self.value: + # return None + # targetptr = self.target.read_ptr(self.value) + # if not targetptr: + # return None + # ss = self.target.read_memory(targetptr, ctypes.sizeof(realtype)) + # return realtype.from_buffer(bytearray(ss)).value + remote_pointed_type = transform_type_to_remote32bits(self.real_pointer_type._sub_ctypes_) + return remote_pointed_type(self.raw_value, self.target) + + +type_64_32_translation_table = { + ctypes.c_void_p: Remote_c_void_p32, + ctypes.c_char_p: Remote_c_char_p32, + ctypes.c_wchar_p: Remote_w_char_p32, +} + + +class RemoteStructureUnion(object): + """Target is a process object""" + _reserved_name = ["_target", "_fields_", "_fields_dict_", "_base_addr", "_get_field_by_name", + "_get_field_descrptor_by_name", "_handle_field_getattr", "_field_type_to_remote_type", + "__getattribute__", "_fields_"] + + _field_type_to_remote_type = { + ctypes.c_char_p: RemoteCCharP, + ctypes.c_wchar_p: RemoteWCharP, + Remote_c_void_p64: Remote_c_void_p64, + Remote_c_char_p64: Remote_c_char_p64, + Remote_w_char_p64: Remote_w_char_p64, + Remote_c_void_p32: Remote_c_void_p32, + Remote_c_char_p32: Remote_c_char_p32, + Remote_w_char_p32: Remote_w_char_p32 + } + + def __init__(self, base_addr, target): + self._target = target + self._base_addr = base_addr + self._fields_dict_ = dict(self._fields_) + + def _get_field_by_name(self, fieldname): + try: + return self._fields_dict_[fieldname] + except KeyError: + raise AttributeError(fieldname + "is not a field of {0}".format(type(self))) + + def _get_field_descrptor_by_name(self, fieldname): + return getattr(type(self), fieldname) # ctypes metaclass fill this for us + + def _handle_field_getattr(self, ftype, fosset, fsize): + s = self._target.read_memory(self._base_addr + fosset, fsize) + if ftype in self._field_type_to_remote_type: + return self._field_type_to_remote_type[ftype].from_buffer_with_target(bytearray(s), target=self._target).value + if issubclass(ftype, _ctypes._Pointer): # Pointer + return RemoteStructurePointer.from_buffer_with_target_and_ptr_type(bytearray(s), target=self._target, ptr_type=ftype) + if issubclass(ftype, RemotePtr64): # Pointer to remote64 bits process + return RemoteStructurePointer64.from_buffer_with_target_and_ptr_type(bytearray(s), target=self._target, ptr_type=ftype) + if issubclass(ftype, RemotePtr32): # Pointer to remote32 bits process + return RemoteStructurePointer32.from_buffer_with_target_and_ptr_type(bytearray(s), target=self._target, ptr_type=ftype) + if issubclass(ftype, RemoteStructureUnion): # Structure|Union already transfomed in remote + return ftype(self._base_addr + fosset, self._target) + if issubclass(ftype, ctypes.Structure): # Structure that must be transfomed + return RemoteStructure.from_structure(ftype)(self._base_addr + fosset, self._target) + if issubclass(ftype, ctypes.Union): # Union that must be transfomed + return RemoteUnion.from_structure(ftype)(self._base_addr + fosset, self._target) + if issubclass(ftype, _ctypes.Array): # Arrays + # if this is a string: just cast the read value to string + if ftype._type_ == ctypes.c_char: # Use issubclass instead ? + return s.split(b"\x00", 1)[0] + elif ftype._type_ == ctypes.c_wchar: # Use issubclass instead ? + # Decode from utf16 -> size /=2 | put it in a wchar array | split at the first "\x00" + return (ftype._type_ * (fsize / 2)).from_buffer_copy(s.decode('utf16'))[:].split("\x00", 1)[0] # Sorry.. + # I am pretty sur something smarter is possible.. + return create_remote_array(ftype._type_, ftype._length_)(self._base_addr + fosset, self._target) + # Normal types + # Follow the ctypes usage: if it's not directly inherited from _SimpleCData + # We do not apply the .value + # Seems weird but it's mandatory AND useful :D (in pe_parse) + if _SimpleCData not in ftype.__bases__: + return ftype.from_buffer(bytearray(s)) + return ftype.from_buffer(bytearray(s)).value + + def __getattribute__(self, fieldname): + if fieldname in type(self)._reserved_name: # Prevent recursion ! + return super(RemoteStructureUnion, self).__getattribute__(fieldname) + try: + t = self._get_field_by_name(fieldname) + except AttributeError: # Not a real attribute + return super(RemoteStructureUnion, self).__getattribute__(fieldname) + descr = self._get_field_descrptor_by_name(fieldname) + return self._handle_field_getattr(t, descr.offset, descr.size) + + @classmethod + def from_structure(cls, structcls): + class MyStruct(cls, structcls): # inherit of structcls to keep property (see winobject.LoadedModule) + _fields_ = structcls._fields_ + + MyStruct.__name__ = "Remote" + structcls.__name__ + return MyStruct + + @classmethod + def from_fields(cls, fields, base_cls=None): + bases = [cls] + if base_cls: + bases.append(base_cls) + # inherit of structcls to keep property (see winobject.LoadedModule) + RemoteStruct = type("RemoteStruct", tuple(bases), {"_fields_": fields}) + if base_cls: + RemoteStruct.__name__ = "Remote" + base_cls.__name__ + return RemoteStruct + + +class RemoteStructure(RemoteStructureUnion, ctypes.Structure): + pass + + +class RemoteUnion(RemoteStructureUnion, ctypes.Union): + pass + + +remote_struct = RemoteStructure.from_structure + +# ctypes 32 -> 64 methods +def MakePtr64(type): + class PointerToStruct64(Remote_c_void_p64): + _sub_ctypes_ = (type) + + @property + def contents(self): + return RemoteStructurePointer64.from_buffer_with_target_and_ptr_type(bytearray(self), target=self.target, ptr_type=self).contents + + def __repr__(self): + return "".format(type.__name__) + return PointerToStruct64 + +def transform_structure_to_remote64bits(structcls): + """Create a remote structure for a 64bits target process""" + new_fields = [] + for fname, ftype in structcls._fields_: + ftype = transform_type_to_remote64bits(ftype) + new_fields.append((fname, ftype)) + return RemoteStructure.from_fields(new_fields, base_cls=structcls) + +def transform_union_to_remote64bits(structcls): + """Create a remote union for a 64bits target process""" + new_fields = [] + for fname, ftype in structcls._fields_: + ftype = transform_type_to_remote64bits(ftype) + new_fields.append((fname, ftype)) + return RemoteUnion.from_fields(new_fields, base_cls=structcls) + +def transform_type_to_remote64bits(ftype): + if is_pointer_type(ftype): + return MakePtr64(ftype._type_) + if is_array_type(ftype): + return create_remote_array(transform_type_to_remote64bits(ftype._type_), ftype._length_) + if is_structure_type(ftype): + return transform_structure_to_remote64bits(ftype) + if is_union_type(ftype): + return transform_union_to_remote64bits(ftype) + # Normal types + return type_32_64_translation_table.get(ftype, ftype) + + +# ctypes 64 -> 32 methods +def MakePtr32(type): + class PointerToStruct32(Remote_c_void_p32): + _sub_ctypes_ = (type) + + # Not sur about this code.. + # Logic problem: why do I have PointerToStruct32 and RemoteStructurePointer32... ? + @property + def contents(self): + return RemoteStructurePointer32.from_buffer_with_target_and_ptr_type(bytearray(self), target=self.target, ptr_type=self).contents + + def __repr__(self): + return "".format(type.__name__) + + return PointerToStruct32 + +def transform_structure_to_remote32bits(structcls): + """Create a remote structure for a 32bits target process""" + new_fields = [] + for fname, ftype in structcls._fields_: + ftype = transform_type_to_remote32bits(ftype) + new_fields.append((fname, ftype)) + return RemoteStructure.from_fields(new_fields, base_cls=structcls) + +def transform_union_to_remote32bits(structcls): + """Create a remote union for a 32bits target process""" + new_fields = [] + for fname, ftype in structcls._fields_: + ftype = transform_type_to_remote32bits(ftype) + new_fields.append((fname, ftype)) + return RemoteUnion.from_fields(new_fields, base_cls=structcls) + +def transform_type_to_remote32bits(ftype): + if issubclass(ftype, RemoteStructureUnion): + return ftype + if is_pointer_type(ftype): + return MakePtr32(ftype._type_) + if is_array_type(ftype): + return create_remote_array(transform_type_to_remote32bits(ftype._type_), ftype._length_) + if is_structure_type(ftype): + return transform_structure_to_remote32bits(ftype) + if is_union_type(ftype): + return transform_union_to_remote32bits(ftype) + # Normal types + return type_64_32_translation_table.get(ftype, ftype) + +if ctypes.sizeof(ctypes.c_void_p) == 4: + transform_type_to_remote = transform_type_to_remote32bits +if ctypes.sizeof(ctypes.c_void_p) == 8: + transform_type_to_remote = transform_type_to_remote64bits diff --git a/pythonmemorymodule/windows/rpc/__init__.py b/pythonmemorymodule/windows/rpc/__init__.py new file mode 100644 index 0000000..383b79e --- /dev/null +++ b/pythonmemorymodule/windows/rpc/__init__.py @@ -0,0 +1,3 @@ +from . import ndr +from .client import RPCClient +from .epmapper import find_alpc_endpoint_and_connect, find_alpc_endpoints, construct_alpc_tower \ No newline at end of file diff --git a/pythonmemorymodule/windows/rpc/client.py b/pythonmemorymodule/windows/rpc/client.py new file mode 100644 index 0000000..e1239e9 --- /dev/null +++ b/pythonmemorymodule/windows/rpc/client.py @@ -0,0 +1,180 @@ +import ctypes +import struct + +import windows.alpc as alpc +import windows.com +import windows.generated_def as gdef + +if windows.pycompat.is_py3: + buffer = bytes + + +KNOW_REQUEST_TYPE = gdef.FlagMapper(gdef.RPC_REQUEST_TYPE_CALL, gdef.RPC_REQUEST_TYPE_BIND) +KNOW_RESPONSE_TYPE = gdef.FlagMapper(gdef.RPC_RESPONSE_TYPE_FAIL, gdef.RPC_RESPONSE_TYPE_SUCCESS, gdef.RPC_RESPONSE_TYPE_BIND_OK) +KNOWN_RPC_ERROR_CODE = gdef.FlagMapper( + gdef.ERROR_INVALID_HANDLE, + gdef.RPC_X_BAD_STUB_DATA, + gdef.RPC_S_UNKNOWN_IF, + gdef.RPC_S_PROTOCOL_ERROR, + gdef.RPC_S_UNSUPPORTED_TRANS_SYN, + gdef.RPC_S_PROCNUM_OUT_OF_RANGE) + +NOT_USED = 0xBAADF00D + +class ALPC_RPC_BIND(ctypes.Structure): + _pack_ = 1 + _fields_ = [ + ("request_type", gdef.DWORD), + ("UNK1", gdef.DWORD), + ("UNK2", gdef.DWORD), + ("target", gdef.RPC_IF_ID), + ("flags", gdef.DWORD), + ("if_nb_ndr32", gdef.USHORT), + ("if_nb_ndr64", gdef.USHORT), + ("if_nb_unkn", gdef.USHORT), + ("PAD", gdef.USHORT), + ("register_multiple_syntax", gdef.DWORD), + ("use_flow", gdef.DWORD), + ("UNK5", gdef.DWORD), + ("maybe_flow_id", gdef.DWORD), + ("UNK7", gdef.DWORD), + ("some_context_id", gdef.DWORD), + ("UNK9", gdef.DWORD), + ] + +class ALPC_RPC_CALL(ctypes.Structure): + _pack_ = 1 + _fields_ = [ + ("request_type", gdef.DWORD), + ("UNK1", gdef.DWORD), + ("flags",gdef.DWORD), + ("request_id", gdef.DWORD), + ("if_nb", gdef.DWORD), + ("method_offset", gdef.DWORD), + ("UNK2", gdef.DWORD), + ("UNK3", gdef.DWORD), + ("UNK4", gdef.DWORD), + ("UNK5", gdef.DWORD), + ("UNK6", gdef.DWORD), + ("UNK7", gdef.DWORD), + ("ORPC_IPID", gdef.GUID) + ] + +class RPCClient(object): + """A client for RPC-over-ALPC able to bind to interface and perform calls using NDR32 marshalling""" + REQUEST_IDENTIFIER = 0x11223344 + def __init__(self, port): + self.alpc_client = alpc.AlpcClient(port) #: The :class:`windows.alpc.AlpcClient` used to communicate with the server + self.number_of_bind_if = 0 # if -> interface + self.if_bind_number = {} + + def bind(self, IID_str, version=(1,0)): + """Bind to the ``IID_str`` with the given ``version`` + + :returns: :class:`windows.generated_def.IID` + """ + IID = windows.com.IID.from_string(IID_str) + request = self._forge_bind_request(IID, version, self.number_of_bind_if) + response = self._send_request(request) + # Parse reponse + request_type = self._get_request_type(response) + if request_type != gdef.RPC_RESPONSE_TYPE_BIND_OK: + raise ValueError("Unexpected reponse type. Expected RESPONSE_TYPE_BIND_OK got {0}".format(KNOW_RESPONSE_TYPE[request_type])) + iid_hash = hash(buffer(IID)[:]) # TODO: add __hash__ to IID + self.if_bind_number[iid_hash] = self.number_of_bind_if + self.number_of_bind_if += 1 + #TODO: attach version information to IID + return IID + + def forge_alpc_request(self, IID, method_offset, params, ipid=None): + """Craft an ALPC message containing an RPC request to call ``method_offset`` of interface ``IID` + with ``params``. + Can be used to craft request without directly sending it + """ + iid_hash = hash(buffer(IID)[:]) + interface_nb = self.if_bind_number[iid_hash] # TODO: add __hash__ to IID + if len(params) > 0x900: # 0x1000 - size of meta-data + request = self._forge_call_request_in_view(interface_nb, method_offset, params, ipid=ipid) + else: + request = self._forge_call_request(interface_nb, method_offset, params, ipid=ipid) + return request + + def call(self, IID, method_offset, params, ipid=None): + """Call method number ``method_offset`` of interface ``IID`` with mashalled ``params`` + + :param IID IID: An IID previously returned by :func:`bind` + :param int method_offset: + :param str params: The mashalled parameters (NDR32) + :returns: :class:`str` + """ + request = self.forge_alpc_request(IID, method_offset, params, ipid=ipid) + response = self._send_request(request) + # Parse reponse + request_type = self._get_request_type(response) + if request_type != gdef.RPC_RESPONSE_TYPE_SUCCESS: + raise ValueError("Unexpected reponse type. Expected RESPONSE_SUCCESS got {0}".format(KNOW_RESPONSE_TYPE[request_type])) + + # windows.utils.sprint(ALPC_RPC_CALL.from_buffer_copy(response + "\x00" * 12)) + data = struct.unpack("<6I", response[:6 * 4]) + assert data[3] == self.REQUEST_IDENTIFIER + return response[4 * 6:] # Should be the return value (not completly verified) + + def _send_request(self, request): + response = self.alpc_client.send_receive(request) + return response.data + + def _forge_call_request(self, interface_nb, method_offset, params, ipid=None): + # TODO: differents REQUEST_IDENTIFIER for each req ? + # TODO: what is this '0' ? (1 is also accepted) (flags ?) + # request = struct.pack("<16I", gdef.RPC_REQUEST_TYPE_CALL, NOT_USED, 1, self.REQUEST_IDENTIFIER, interface_nb, method_offset, *[NOT_USED] * 10) + req = ALPC_RPC_CALL() + req.request_type = gdef.RPC_REQUEST_TYPE_CALL + req.flags = 0 + req.request_id = self.REQUEST_IDENTIFIER + req.if_nb = interface_nb + req.method_offset = method_offset + if ipid: + req.ORPC_IPID = ipid + this = gdef.ORPCTHIS() + this.version = (5,7) + this.flags = 1 + lthis = gdef.LOCALTHIS() + return buffer(req)[:] + buffer(this)[:] + buffer(lthis)[:] + params + return buffer(req)[:] + params + + def _forge_call_request_in_view(self, interface_nb, method_offset, params, ipid=None): + # import pdb;pdb.set_trace() + # Version crade qui clean rien pour POC. GROS DOUTES :D + raw_request = self._forge_call_request(interface_nb, method_offset, "") + p = windows.alpc.AlpcMessage(0x2000) + section = self.alpc_client.create_port_section(0x40000, 0, len(params)) + view = self.alpc_client.map_section(section[0], len(params)) + p.port_message.data = raw_request + windows.rpc.ndr.NdrLong.pack(len(params) + 0x200) + "\x00" * 40 + p.attributes.ValidAttributes |= gdef.ALPC_MESSAGE_VIEW_ATTRIBUTE + p.view_attribute.Flags = 0x40000 + p.view_attribute.ViewBase = view.ViewBase + p.view_attribute.SectionHandle = view.SectionHandle + p.view_attribute.ViewSize = len(params) + windows.current_process.write_memory(view.ViewBase, params) # Write NDR to view + return p + + def _forge_bind_request(self, uuid, syntaxversion, requested_if_nb): + version_major, version_minor = syntaxversion + req = ALPC_RPC_BIND() + req.request_type = gdef.RPC_REQUEST_TYPE_BIND + req.target = gdef.RPC_IF_ID(uuid, *syntaxversion) + req.flags = gdef.BIND_IF_SYNTAX_NDR32 + req.if_nb_ndr32 = requested_if_nb + req.if_nb_ndr64 = 0 + req.if_nb_unkn = 0 + req.register_multiple_syntax = False + req.some_context_id = 0xB00B00B + return buffer(req)[:] + + def _get_request_type(self, response): + "raise if request_type == RESPONSE_TYPE_FAIL" + request_type = struct.unpack(" len(unpacked[2]) + # Parse towers + return [explode_alpc_tower(obj) for obj in unpacked[2]] + + +def find_alpc_endpoint_and_connect(targetiid, version=(1,0), sid=gdef.WinLocalSystemSid): + """Ask the EPMapper for ALPC endpoints of ``targetiid:version`` and connect to one of them. + + :param str targetiid: The IID of the requested interface + :param (int,int) version: The version requested interface + :param WELL_KNOWN_SID_TYPE sid: The SID used to request the EPMapper + + :returns: A connected :class:`~windows.rpc.RPCClient` + """ + dbgprint("Finding ALPC endpoints for <{0}>".format(targetiid), "RPC") + alpctowers = find_alpc_endpoints(targetiid, version, nb_response=50, sid=sid) + dbgprint("ALPC endpoints list: <{0}>".format(alpctowers), "RPC") + for tower in alpctowers: + dbgprint("Trying to connect to endpoint <{0}>".format(tower.endpoint), "RPC") + alpc_port = r"\RPC Control\{0}".format(tower.endpoint.decode()) + try: + client = windows.rpc.RPCClient(alpc_port) + except Exception as e: + dbgprint("Could not connect to endpoint <{0}>: {1}".format(tower.endpoint, e), "RPC") + continue + break + else: + raise ValueError("Could not find a valid endpoint for target <{0}> version <{1}>".format(targetiid, version)) + dbgprint('Connected to ALPC port "{0}"'.format(alpc_port), "RPC") + return client + diff --git a/pythonmemorymodule/windows/rpc/ndr.py b/pythonmemorymodule/windows/rpc/ndr.py new file mode 100644 index 0000000..4365606 --- /dev/null +++ b/pythonmemorymodule/windows/rpc/ndr.py @@ -0,0 +1,618 @@ +import windows +import windows.generated_def as gdef + +import struct + +try: + unichr # Py2/Py3 compat +except NameError: + unichr = chr + +# http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm#tagcjh_19_03_07 + +## Array +# A conformant array is an array in which the maximum number of elements is not known beforehand and therefore is included in the representation of the array. +# A varying array is an array in which the actual number of elements passed in a given call varies and therefore is included in the representation of the array. + +## Pointers + +# NDR defines two classes of pointers that differ both in semantics and in representation +# - reference pointers, which cannot be null and cannot be aliases +# - full pointers, which can be null and can be an aliases +# - unique pointers, which can be null and cannot be aliases, and are transmitted as full pointers. + + +def pack_dword(x): + return struct.pack(" members got <{1}>".format(len(cls.MEMBERS), len(data))) + conformant_size = [] + res = [] + res_size = 0 + pointed = [] + outstream = NdrWriteStream() + pointed_to_pack = [] + # pointedoutstream = NdrWriteStream() + for i, (member, memberdata) in enumerate(zip(cls.MEMBERS, data)): + if hasattr(member, "pack_in_struct"): + x, y = member.pack_in_struct(memberdata, i) + assert len(x) == 4, "Pointer should be size 4" + # Write the pointer + outstream.align(4) + outstream.write(x) + if y is not None: + # Store the info to the pointed to pack + pointed_to_pack.append((member.subcls.get_alignment(), y)) + # pointedoutstream.write(y) + elif hasattr(member, "pack_conformant"): + size, data = member.pack_conformant(memberdata) + outstream.align(member.get_alignment()) + outstream.write(data) + conformant_size.append(size) + # res.append(data) + # res_size += len(data) + else: + packed_member = member.pack(memberdata) + outstream.align(member.get_alignment()) + outstream.write(packed_member) + # Pack the pointed to the stream + for alignement, pointed_data in pointed_to_pack: + outstream.align(alignement) + outstream.write(pointed_data) + return dword_pad(b"".join(conformant_size)) + outstream.get_data() + + @classmethod + def unpack(cls, stream): + """Unpack the structure from the stream""" + conformant_members = [hasattr(m, "pack_conformant") for m in cls.MEMBERS] + is_conformant = any(conformant_members) + assert(conformant_members.count(True) <= 1), "Unpack conformant struct with more that one conformant MEMBER not implem" + data = [] + if is_conformant: + conformant_size = NdrLong.unpack(stream) + post_subcls = [] + for i, member in enumerate(cls.MEMBERS): + if conformant_members[i]: + data.append(member.unpack_conformant(stream, conformant_size)) + else: + if hasattr(member, "unpack_in_struct"): + # print("[{0}] Dereferenced unpacking".format(i)) + ptr, subcls = member.unpack_in_struct(stream) + if not ptr: + data.append(None) + else: + data.append(ptr) + post_subcls.append((i, subcls)) + # print(post_subcls) + else: + data.append(member.unpack(stream)) + # print("Applying deref unpack") + for i, entry in post_subcls: + new_data = entry.unpack(stream) + if getattr(entry, "post_unpack", None): + new_data = entry.post_unpack(new_data) + data[i] = new_data + + return cls.post_unpack(data) + + @classmethod + def post_unpack(cls, data): + return data + + @classmethod + def get_alignment(self): + return max([x.get_alignment() for x in self.MEMBERS]) + + + +class NdrParameters(object): + """a class to pack NDR parameters together to performs RPC call, this class should be subclassed with + an attribute ``MEMBERS`` describing the members of the class + """ + @classmethod + def pack(cls, data): + if not (len(data) == len(cls.MEMBERS)): + print("Size mistach:") + print(" * data size = {0}".format(len(data))) + print(" * members size = {0}".format(len(cls.MEMBERS))) + print(" * data {0}".format(data)) + print(" * members = {0}".format(cls.MEMBERS)) + raise ValueError("NdrParameters packing number elements mismatch: structure has <{0}> members got <{1}>".format(len(cls.MEMBERS), len(data))) + + + outstream = NdrWriteStream() + for (member, memberdata) in zip(cls.MEMBERS, data): + alignment = member.get_alignment() + outstream.align(alignment) + packed_member = member.pack(memberdata) + outstream.write(packed_member) + return outstream.get_data() + + + + @classmethod + def unpack(cls, stream): + res = [] + for member in cls.MEMBERS: + unpacked_member = member.unpack(stream) + res.append(unpacked_member) + return res + + def get_alignment(self): + raise ValueError("NdrParameters should always be top type in NDR description") + + +class NdrConformantArray(object): + MEMBER_TYPE = None + @classmethod + def pack(cls, data): + ndrsize = NdrLong.pack(len(data)) + return dword_pad(ndrsize + b"".join([cls.MEMBER_TYPE.pack(memberdata) for memberdata in data])) + + @classmethod + def pack_conformant(cls, data): + ndrsize = NdrLong.pack(len(data)) + ndrdata = dword_pad(b"".join([cls.MEMBER_TYPE.pack(memberdata) for memberdata in data])) + return ndrsize, ndrdata + + @classmethod + def unpack(cls, stream): + nbelt = NdrLong.unpack(stream) + result = cls.unpack_conformant(stream, nbelt) + return cls._post_unpack(result) + + @classmethod + def _post_unpack(cls, result): + return result + + @classmethod + def unpack_conformant(cls, stream, size): + res = [cls.MEMBER_TYPE.unpack(stream) for i in range(size)] + stream.align(4) + return res + + @classmethod + def get_alignment(self): + # TODO: test on array of Hyper + return max(4, self.MEMBER_TYPE.get_alignment()) + + +class NdrConformantVaryingArrays(object): + MEMBER_TYPE = None + @classmethod + def pack(cls, data): + ndrsize = NdrLong.pack(len(data)) + offset = NdrLong.pack(0) + return dword_pad(ndrsize + offset + ndrsize + b"".join([cls.MEMBER_TYPE.pack(memberdata) for memberdata in data])) + + @classmethod + def unpack(cls, stream): + maxcount = NdrLong.unpack(stream) + offset = NdrLong.unpack(stream) + count = NdrLong.unpack(stream) + assert(offset == 0) + # assert(maxcount == count) + + result = [] + post_subcls = [] + for i in range(count): + member = cls.MEMBER_TYPE + if hasattr(member, "unpack_in_struct"): + ptr, subcls = member.unpack_in_struct(stream) + if not ptr: + result.append(None) + else: + result.append(ptr) + post_subcls.append((i, subcls)) + else: + data = member.unpack(stream) + result.append(data) + # Unpack pointers + for i, entry in post_subcls: + data = entry.unpack(stream) + result[i] = data + + return cls._post_unpack(result) + + @classmethod + def _post_unpack(cls, result): + return result + + def get_alignment(self): + # TODO: test on array of Hyper + return max(4, self.MEMBER_TYPE.get_alignment()) + + +class NdrWcharConformantVaryingArrays(NdrConformantVaryingArrays): + MEMBER_TYPE = NdrShort + + @classmethod + def _post_unpack(self, result): + return u"".join(unichr(c) for c in result) + +class NdrCharConformantVaryingArrays(NdrConformantVaryingArrays): + MEMBER_TYPE = NdrByte + +class NdrHyperConformantVaryingArrays(NdrConformantVaryingArrays): + MEMBER_TYPE = NdrHyper + +class NdrHyperConformantArray(NdrConformantArray): + MEMBER_TYPE = NdrHyper + +class NdrLongConformantArray(NdrConformantArray): + MEMBER_TYPE = NdrLong + +class NdrShortConformantArray(NdrConformantArray): + MEMBER_TYPE = NdrShort + +class NdrByteConformantArray(NdrConformantArray): + MEMBER_TYPE = NdrByte + + @classmethod + def _post_unpack(self, result): + return bytearray(result) + +class NdrWcharConformantArray(NdrConformantArray): + MEMBER_TYPE = NdrShort + + @classmethod + def _post_unpack(self, result): + return bytearray(result) + +class NdrGuidConformantArray(NdrConformantArray): + MEMBER_TYPE = NdrGuid + + +class NdrStream(object): + """A stream of bytes used for NDR unpacking""" + def __init__(self, data): + self.fulldata = data + self.data = data + + def partial_unpack(self, format): + size = struct.calcsize(format) + toparse = self.data[:size] + self.data = self.data[size:] + return struct.unpack(format, toparse) + + def read_aligned_dword(self, size): + aligned_size = size + if size % 4: + aligned_size = size + (4 - (size % 4)) + retdata = self.data[:size] + self.data = self.data[aligned_size:] + return retdata + + def read(self, size): + data = self.data[:size] + self.data = self.data[size:] + if len(data) < size: + raise ValueError("Could not read {0} from stream".format(size)) + return data + + def align(self, size): + """Discard some bytes to align the remaining stream on ``size``""" + + already_read = len(self.fulldata) - len(self.data) + if already_read % size: + # Realign + size_to_align = (size - (already_read % size)) + self.data = self.data[size_to_align:] + # print("align {0}: {1}".format(size, size_to_align)) + return size_to_align + # print("align {0}: 0".format(size)) + return 0 + +class NdrWriteStream(object): + def __init__(self): + self.data_parts = [] + self.data_size = 0 + + def get_data(self): + data = b"".join(self.data_parts) + assert len(data) == self.data_size + return data + + def write(self, data): + self.data_parts.append(data) + self.data_size += len(data) + return None + + def align(self, alignement): + if self.data_size % alignement == 0: + return + topadsize = (alignement) - (self.data_size % alignement) + self.write(b"P" * topadsize) + return + +def make_parameters(types, name=None): + class NdrCustomParameters(NdrParameters): + MEMBERS = types + return NdrCustomParameters + +def make_structure(types, name=None): + class NdrCustomStructure(NdrStructure): + MEMBERS = types + return NdrCustomStructure diff --git a/pythonmemorymodule/windows/security.py b/pythonmemorymodule/windows/security.py new file mode 100644 index 0000000..c78ce78 --- /dev/null +++ b/pythonmemorymodule/windows/security.py @@ -0,0 +1,1192 @@ +import ctypes +import sys + +import windows +import windows.generated_def as gdef +from windows import winproxy +from windows.pycompat import basestring + +from windows.winobject.token import Token, KNOW_INTEGRITY_LEVEL + + +# Specific access right + +FILE_ACCESS_RIGHT = gdef.FlagMapper( + gdef.FILE_READ_DATA, + gdef.FILE_WRITE_DATA, + gdef.FILE_APPEND_DATA, + gdef.FILE_READ_EA, + gdef.FILE_WRITE_EA, + gdef.FILE_EXECUTE, + gdef.FILE_READ_ATTRIBUTES, + gdef.FILE_WRITE_ATTRIBUTES +) + +DIRECTORY_ACCESS_RIGHT = gdef.FlagMapper( + gdef.FILE_LIST_DIRECTORY, + gdef.FILE_ADD_FILE, + gdef.FILE_ADD_SUBDIRECTORY, + gdef.FILE_READ_EA, + gdef.FILE_WRITE_EA, + gdef.FILE_TRAVERSE, + gdef.FILE_DELETE_CHILD, + gdef.FILE_READ_ATTRIBUTES, + gdef.FILE_WRITE_ATTRIBUTES, +) +NAMED_PIPE_ACCESS_RIGHT = gdef.FlagMapper( + gdef.FILE_READ_DATA, + gdef.FILE_WRITE_DATA, + gdef.FILE_CREATE_PIPE_INSTANCE, + gdef.FILE_READ_ATTRIBUTES, + gdef.FILE_WRITE_ATTRIBUTES, +) + +TOKEN_ACCESS_RIGHT = gdef.FlagMapper( + gdef.TOKEN_ASSIGN_PRIMARY, + gdef.TOKEN_DUPLICATE, + gdef.TOKEN_IMPERSONATE, + gdef.TOKEN_QUERY, + gdef.TOKEN_QUERY_SOURCE, + gdef.TOKEN_ADJUST_PRIVILEGES, + gdef.TOKEN_ADJUST_GROUPS, + gdef.TOKEN_ADJUST_DEFAULT, + gdef.TOKEN_ADJUST_SESSIONID, +) + +CLUSTER_API_ACCESS_RIGH = gdef.FlagMapper( + gdef.CLUSAPI_READ_ACCESS, + gdef.CLUSAPI_CHANGE_ACCESS, + gdef.CLUSAPI_NO_ACCESS, +) + +FAX_ACCESS_RIGHT = gdef.FlagMapper( + gdef.FAX_JOB_SUBMIT, + gdef.FAX_JOB_QUERY, + gdef.FAX_CONFIG_QUERY, + gdef.FAX_CONFIG_SET, + gdef.FAX_PORT_QUERY, + gdef.FAX_PORT_SET, + gdef.FAX_JOB_MANAGE, +) + +CALLBACK_ACCESS_RIGHT = gdef.FlagMapper( + gdef.CALLBACK_MODIFY_STATE, +) + +MUTANT_ACCESS_RIGHT = gdef.FlagMapper( + gdef.MUTANT_QUERY_STATE, +) + +EVENT_ACCESS_RIGHT = gdef.FlagMapper( + gdef.EVENT_QUERY_STATE, + gdef.EVENT_MODIFY_STATE, +) + +SEMAPHORE_ACCESS_RIGHT = gdef.FlagMapper( + gdef.SEMAPHORE_QUERY_STATE, + gdef.SEMAPHORE_MODIFY_STATE, +) + +TIMER_ACCESS_RIGHT = gdef.FlagMapper( + gdef.TIMER_QUERY_STATE, + gdef.TIMER_QUERY_STATE, +) + +IO_COMPLETION_ACCESS_RIGHT = gdef.FlagMapper( + gdef.IO_COMPLETION_QUERY_STATE, + gdef.IO_COMPLETION_MODIFY_STATE, +) + +PORT_ACCESS_RIGHT = gdef.FlagMapper( + gdef.PORT_CONNECT, +) + +OBJECT_MANAGER_TYPE_ACCESS_RIGHT = gdef.FlagMapper( + gdef.OBJECT_TYPE_CREATE +) + +OBJECT_MANAGER_DIRECTORY_ACCESS_RIGHT = gdef.FlagMapper( + gdef.DIRECTORY_QUERY, + gdef.DIRECTORY_TRAVERSE, + gdef.DIRECTORY_CREATE_OBJECT, + gdef.DIRECTORY_CREATE_SUBDIRECTORY, +) + +OBJECT_MANAGER_SIMLINK_ACCESS_RIGHT = gdef.FlagMapper( + gdef.SYMBOLIC_LINK_QUERY, +) + +PROCESS_ACCESS_RIGHT = gdef.FlagMapper( + gdef.PROCESS_TERMINATE , + gdef.PROCESS_CREATE_THREAD , + gdef.PROCESS_SET_SESSIONID , + gdef.PROCESS_VM_OPERATION , + gdef.PROCESS_VM_READ , + gdef.PROCESS_VM_WRITE , + gdef.PROCESS_DUP_HANDLE , + gdef.PROCESS_CREATE_PROCESS , + gdef.PROCESS_SET_QUOTA , + gdef.PROCESS_SET_INFORMATION , + gdef.PROCESS_QUERY_INFORMATION , + gdef.PROCESS_SUSPEND_RESUME , + gdef.PROCESS_QUERY_LIMITED_INFORMATION , + gdef.PROCESS_SET_LIMITED_INFORMATION , +) + +THREAD_ACCESS_RIGHT = gdef.FlagMapper( + gdef.THREAD_TERMINATE, + gdef.THREAD_SUSPEND_RESUME, + gdef.THREAD_GET_CONTEXT, + gdef.THREAD_SET_CONTEXT, + gdef.THREAD_QUERY_INFORMATION, + gdef.THREAD_SET_INFORMATION, + gdef.THREAD_SET_THREAD_TOKEN, + gdef.THREAD_IMPERSONATE, + gdef.THREAD_DIRECT_IMPERSONATION, +) + +JOB_ACCESS_RIGHT = gdef.FlagMapper( + gdef.JOB_OBJECT_ASSIGN_PROCESS, + gdef.JOB_OBJECT_SET_ATTRIBUTES, + gdef.JOB_OBJECT_QUERY, + gdef.JOB_OBJECT_TERMINATE, + gdef.JOB_OBJECT_SET_SECURITY_ATTRIBUTES, +) + +KEY_ACCESS_RIGHT = gdef.FlagMapper( + gdef.KEY_QUERY_VALUE, + gdef.KEY_SET_VALUE, + gdef.KEY_CREATE_SUB_KEY, + gdef.KEY_ENUMERATE_SUB_KEYS, + gdef.KEY_NOTIFY, + gdef.KEY_CREATE_LINK, + gdef.KEY_WOW64_64KEY, + gdef.KEY_WOW64_32KEY, + # KEY_WOW64_RES (0x0300) # Just a mask of the 2 last +) + +SECTION_ACCESS_RIGHT = gdef.FlagMapper( + gdef.SECTION_QUERY, + gdef.SECTION_MAP_WRITE, + gdef.SECTION_MAP_READ, + gdef.SECTION_MAP_EXECUTE, + gdef.SECTION_EXTEND_SIZE, + gdef.SECTION_MAP_EXECUTE_EXPLICIT, +) + +COM_ACCESS_RIGHT = gdef.FlagMapper( + gdef.COM_EXECUTE, + gdef.COM_EXECUTE_LOCAL, + gdef.COM_EXECUTE_REMOTE, + gdef.COM_ACTIVATE_LOCAL, + gdef.COM_ACTIVATE_REMOTE, +) + +SERVICE_ACCESS_RIGHT = gdef.FlagMapper( + gdef.SERVICE_QUERY_CONFIG, + gdef.SERVICE_CHANGE_CONFIG, + gdef.SERVICE_QUERY_STATUS, + gdef.SERVICE_ENUMERATE_DEPENDENTS, + gdef.SERVICE_START, + gdef.SERVICE_STOP, + gdef.SERVICE_PAUSE_CONTINUE, + gdef.SERVICE_INTERROGATE, + gdef.SERVICE_USER_DEFINED_CONTROL, +) + +ADS_ACCESS_RIGHT = gdef.FlagMapper( + gdef.ADS_RIGHT_DS_CREATE_CHILD, + gdef.ADS_RIGHT_DS_DELETE_CHILD, + gdef.ADS_RIGHT_ACTRL_DS_LIST, + gdef.ADS_RIGHT_DS_SELF, + gdef.ADS_RIGHT_DS_READ_PROP, + gdef.ADS_RIGHT_DS_WRITE_PROP, + gdef.ADS_RIGHT_DS_DELETE_TREE, + gdef.ADS_RIGHT_DS_LIST_OBJECT, + gdef.ADS_RIGHT_DS_CONTROL_ACCESS, +) + + +SPECIFIC_ACCESS_RIGTH_BY_TYPE = { + None: gdef.FlagMapper(), + "file": FILE_ACCESS_RIGHT, + "directory": DIRECTORY_ACCESS_RIGHT, + "named_pipe": NAMED_PIPE_ACCESS_RIGHT, + "token": TOKEN_ACCESS_RIGHT, + "cluster_api": CLUSTER_API_ACCESS_RIGH, + "fax": FAX_ACCESS_RIGHT, + "callback": CALLBACK_ACCESS_RIGHT, + "mutant": MUTANT_ACCESS_RIGHT, + "event": EVENT_ACCESS_RIGHT, + "semaphore": SEMAPHORE_ACCESS_RIGHT, + "io_completion": IO_COMPLETION_ACCESS_RIGHT, + "port": PORT_ACCESS_RIGHT, + "object_manager_type": OBJECT_MANAGER_TYPE_ACCESS_RIGHT, + "object_manager_directory": OBJECT_MANAGER_DIRECTORY_ACCESS_RIGHT, + "object_manager_symlink": OBJECT_MANAGER_SIMLINK_ACCESS_RIGHT, + "process": PROCESS_ACCESS_RIGHT, + "thread": THREAD_ACCESS_RIGHT, + "job": JOB_ACCESS_RIGHT, + "key": KEY_ACCESS_RIGHT, + "com": COM_ACCESS_RIGHT, + "service": SERVICE_ACCESS_RIGHT, + "ad": ADS_ACCESS_RIGHT, +} + +# SD + +SD_CONTROL_FLAGS = gdef.FlagMapper( + gdef.SE_OWNER_DEFAULTED, + gdef.SE_GROUP_DEFAULTED, + gdef.SE_DACL_PRESENT, + gdef.SE_DACL_DEFAULTED, + gdef.SE_SACL_PRESENT, + gdef.SE_SACL_DEFAULTED, + gdef.SE_DACL_UNTRUSTED, + gdef.SE_SERVER_SECURITY, + gdef.SE_DACL_AUTO_INHERIT_REQ, + gdef.SE_SACL_AUTO_INHERIT_REQ, + gdef.SE_DACL_AUTO_INHERITED, + gdef.SE_SACL_AUTO_INHERITED, + gdef.SE_DACL_PROTECTED, + gdef.SE_SACL_PROTECTED, + gdef.SE_RM_CONTROL_VALID, + gdef.SE_SELF_RELATIVE, +) + +# ACE + +ACE_FLAGS = gdef.FlagMapper( + gdef.OBJECT_INHERIT_ACE , + gdef.CONTAINER_INHERIT_ACE , + gdef.NO_PROPAGATE_INHERIT_ACE , + gdef.INHERIT_ONLY_ACE , + gdef.INHERITED_ACE , + gdef.VALID_INHERIT_FLAGS , + gdef.SUCCESSFUL_ACCESS_ACE_FLAG, + gdef.FAILED_ACCESS_ACE_FLAG +) + +ACE_MASKS = gdef.FlagMapper( + gdef.GENERIC_READ , + gdef.GENERIC_WRITE , + gdef.GENERIC_EXECUTE , + gdef.GENERIC_ALL , + gdef.READ_CONTROL , + gdef.DELETE , + gdef.WRITE_DAC , + gdef.WRITE_OWNER , + gdef.SYNCHRONIZE , +) + +MANDATORY_LABEL_ACE_MASK = gdef.FlagMapper( + gdef.SYSTEM_MANDATORY_LABEL_NO_WRITE_UP, + gdef.SYSTEM_MANDATORY_LABEL_NO_READ_UP, + gdef.SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP, +) + + + +class AceHeader(gdef.ACE_HEADER): + """Improved ACE_HEADER""" + def _to_ace_type(self, ace_type): + return ctypes.cast(ctypes.byref(self), ctypes.POINTER(ace_type))[0] + + @property + def AceType(self): + """The type of the Ace header""" + raw_type = super(AceHeader, self).AceType + return ACE_CLASS_TYPE_MAPPER[raw_type] + + @property + def flags(self): + """The flags of the Ace header + + :type: [:class:`int`] - A list of :class:`int` + """ + return list(self._flags_generator()) + + def _flags_generator(self): + flags = self.AceFlags + for i in range(8): # Sizeof(AceFlags) * 8 + v = flags & (1 << i) + if v: + yield ACE_FLAGS[v] + + def subclass(self): + # ACE_CLASS_BY_ACE_TYPE is defined later in this file + subcls = ACE_CLASS_BY_ACE_TYPE[self.AceType] + return self._to_ace_type(subcls) + + def __repr__(self): + return "<{0} type={1}>".format(type(self).__name__, self.AceType) + + +class AceBase(object): # Ca ou mettre flags extraction dans le ctypes generated + """Base object for all ``ACE`` classes. provide access to an improved header""" + @property + def Header(self): # Override the ctypes Header for the struct -> return extended header + """The Header of the ``ACE`` + + :type: :class:`AceHeader` + """ + addr = ctypes.addressof(self) + sheader = super(AceBase, type(self)).Header + return AceHeader.from_address(addr + sheader.offset) + + +class MaskAndSidACE(AceBase): + """`Virtual` ACE for ACE struct with the following layout: + + - ACE_HEADER Header + - ACCESS_MASK Mask + - DWORD SidStart + """ + + def _sid_offset(self): + return type(self).SidStart.offset + + @property + def sid(self): + """The sid described by the ``ACE`` + + :type: :class:`windows.generated_def.winstructs.PSID` + """ + return gdef.PSID(ctypes.addressof(self) + self._sid_offset()) + + @property + def mask(self): + """The list of flags described by the ``ACE`` + + :type: [:class:`int`] - A list of :class:`int` + """ + return list(self._mask_generator()) + + def _mask_generator(self): + mask = self.Mask + for i in range(32): # sizeof ACCESS_MASK * 8 + v = mask & (1 << i) + if v: + yield ACE_MASKS[v] + + def __repr__(self): + return "<{0} mask={1}>".format(type(self).__name__, self.Mask) + + +class CallbackACE(MaskAndSidACE): + @property + def application_data(self): + """The application-specific data + + see : https://msdn.microsoft.com/en-us/library/hh877860.aspx + + :type: :class:`str` + """ + selfptr = ctypes.cast(ctypes.addressof(self), gdef.PUCHAR) + datastart = ctypes.sizeof(self) + self.sid.size - 4 + dataend = self.Header.AceSize + return selfptr[datastart: dataend] + + @property + def condition(self): + buff = windows.utils.BUFFER(gdef.BYTE).from_buffer_copy(self.application_data) + resstr = gdef.LPWSTR() + winproxy.GetStringConditionFromBinary(buff, StringAceCondition=resstr) + condition = resstr.value + winproxy.LocalFree(resstr) + return condition + + +class ObjectRelatedACE(MaskAndSidACE): + FLAGS_VALUES = (gdef.ACE_OBJECT_TYPE_PRESENT, + gdef.ACE_INHERITED_OBJECT_TYPE_PRESENT) + + @property + def flags(self): + """The flags of the ``ACE`` + + :type: [:class:`int`] - A list of :class:`int` + """ + flags = self.Flags + return [x for x in self.FLAGS_VALUES if flags & x] + + @property + def object_type(self): + """The ``ObjectType`` described in the ACE. ``None`` if `ACE`` has no ``ObjectType`` + + :type: :class:`~windows.generated_def.winstructs.PSID` or ``None`` + """ + if not self.Flags & gdef.ACE_OBJECT_TYPE_PRESENT: + return None + return self.ObjectType + + @property + def inherited_object_type(self): + """The ``InheritedObjectType`` described in the ACE. ``None`` if `ACE`` has no ``InheritedObjectType`` + + :type: :class:`~windows.generated_def.winstructs.PSID` or ``None`` + """ + if not self.Flags & gdef.ACE_INHERITED_OBJECT_TYPE_PRESENT: + return None + if self.Flags & gdef.ACE_OBJECT_TYPE_PRESENT: + # There is an ObjectType so our offset is the good one + return self.InheritedObjectType + # No ObjectType -> InheritedObjectType is at ObjectType offset + # Those are the same type so we can directly use ObjectType + return self.ObjectType + + def _sid_offset(self): + base_offset = type(self).SidStart.offset + if not self.Flags & gdef.ACE_OBJECT_TYPE_PRESENT: + base_offset -= ctypes.sizeof(gdef.GUID) + if not self.Flags & gdef.ACE_INHERITED_OBJECT_TYPE_PRESENT: + base_offset -= ctypes.sizeof(gdef.GUID) + return base_offset + +# DACL related ACE + +# Allow the resolution of Header first +class AccessAllowedACE(MaskAndSidACE, gdef.ACCESS_ALLOWED_ACE): + ACE_TYPE = gdef.ACCESS_ALLOWED_ACE_TYPE + +class AccessDeniedACE(MaskAndSidACE, gdef.ACCESS_DENIED_ACE): + ACE_TYPE = gdef.ACCESS_DENIED_ACE_TYPE + +class AccessAllowedCallbackACE(CallbackACE, gdef.ACCESS_ALLOWED_CALLBACK_ACE): + ACE_TYPE = gdef.ACCESS_ALLOWED_CALLBACK_ACE_TYPE + +class AccessDeniedCallbackACE(CallbackACE, gdef.ACCESS_DENIED_CALLBACK_ACE): + ACE_TYPE = gdef.ACCESS_DENIED_CALLBACK_ACE_TYPE + +class AccessAllowedObjectACE(ObjectRelatedACE, gdef.ACCESS_ALLOWED_OBJECT_ACE): + ACE_TYPE = gdef.ACCESS_ALLOWED_OBJECT_ACE_TYPE + +class AccessDeniedObjectACE(ObjectRelatedACE, gdef.ACCESS_DENIED_OBJECT_ACE): + ACE_TYPE = gdef.ACCESS_DENIED_OBJECT_ACE_TYPE + +class AccessAllowedCallbackObjectACE(CallbackACE, gdef.ACCESS_ALLOWED_CALLBACK_OBJECT_ACE): + ACE_TYPE = gdef.ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE + +# Strangly -> no SDDL for this one +class AccessDeniedCallbackObjectACE(CallbackACE, gdef.ACCESS_DENIED_CALLBACK_OBJECT_ACE): + ACE_TYPE = gdef.ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE + + +# SACL related ACE + +class SystemAuditACE(MaskAndSidACE, gdef.SYSTEM_AUDIT_ACE): + ACE_TYPE = gdef.SYSTEM_AUDIT_ACE_TYPE + +class SystemAlarmACE(MaskAndSidACE, gdef.SYSTEM_ALARM_ACE): + """reserved for future use.""" + ACE_TYPE = gdef.SYSTEM_ALARM_ACE_TYPE + +class SystemAuditObjectACE(ObjectRelatedACE, gdef.SYSTEM_AUDIT_OBJECT_ACE): + ACE_TYPE = gdef.SYSTEM_AUDIT_OBJECT_ACE_TYPE + +class SystemAlarmObjectACE(ObjectRelatedACE, gdef.SYSTEM_ALARM_OBJECT_ACE): + """reserved for future use.""" + ACE_TYPE = gdef.SYSTEM_ALARM_OBJECT_ACE_TYPE + +class SystemAuditCallbackACE(CallbackACE, gdef.SYSTEM_AUDIT_CALLBACK_ACE): + ACE_TYPE = gdef.SYSTEM_AUDIT_CALLBACK_ACE_TYPE + +class SystemAlarmCallbackACE(CallbackACE, gdef.SYSTEM_ALARM_CALLBACK_ACE): + """reserved for future use.""" + ACE_TYPE = gdef.SYSTEM_ALARM_CALLBACK_ACE_TYPE + +class SystemAuditCallbackObjectACE(CallbackACE, gdef.SYSTEM_AUDIT_CALLBACK_OBJECT_ACE): + ACE_TYPE = gdef.SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE + +class SystemAlarmCallbackObjectACE(CallbackACE, gdef.SYSTEM_ALARM_CALLBACK_OBJECT_ACE): + """Reserved for future use""" + ACE_TYPE = gdef.SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE + +class SystemMandatoryLabelACE(MaskAndSidACE, gdef.SYSTEM_MANDATORY_LABEL_ACE): + ACE_TYPE = gdef.SYSTEM_MANDATORY_LABEL_ACE_TYPE + +class SystemResourceAttributeACE(MaskAndSidACE, gdef.SYSTEM_RESOURCE_ATTRIBUTE_ACE): + ACE_TYPE = gdef.SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE + + @property + def attribute(self): + # Sid-size not in the initial struct + sid_size_over = self.sid.size - type(self).SidStart.size + sec_attr_addr = ctypes.addressof(self) + ctypes.sizeof(self) + sid_size_over + return ClaimSecurityAttributeRelativeV1.from_address(sec_attr_addr) + +class SystemScopedPolicyIDACE(MaskAndSidACE, gdef.SYSTEM_SCOPED_POLICY_ID_ACE): + ACE_TYPE = gdef.SYSTEM_SCOPED_POLICY_ID_ACE_TYPE + +class SystemProcessTrustLabelACE(MaskAndSidACE, gdef.SYSTEM_PROCESS_TRUST_LABEL_ACE): + """Reserved. (from MSDC)""" + ACE_TYPE = gdef.SYSTEM_PROCESS_TRUST_LABEL_ACE_TYPE + + +ACE_CLASS_BY_ACE_TYPE = {cls.ACE_TYPE: cls for cls in ( + # DACL + AccessAllowedACE, + AccessDeniedACE, + AccessAllowedCallbackACE, + AccessDeniedCallbackACE, + AccessAllowedObjectACE, + AccessDeniedObjectACE, + AccessAllowedCallbackObjectACE, + # SACL + SystemAuditACE, + SystemAlarmACE, # reserved for future use. + SystemAuditObjectACE, + SystemAlarmObjectACE, # reserved for future use. + SystemAuditCallbackACE, + SystemAlarmCallbackACE, # reserved for future use. + SystemAuditCallbackObjectACE, + SystemAlarmCallbackObjectACE, # reserved for future use. + SystemMandatoryLabelACE, + SystemResourceAttributeACE, + SystemScopedPolicyIDACE, + SystemProcessTrustLabelACE, + +)} + +ACE_CLASS_TYPE_MAPPER = gdef.FlagMapper(*ACE_CLASS_BY_ACE_TYPE.keys()) + +# CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 follow the SYSTEM_RESOURCE_ATTRIBUTE_ACE +# For ACE of type SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE + +def retrieve_long64_from_addr(addr): + return gdef.LONG64.from_address(addr).value + +def retrieve_ulong64_from_addr(addr): + return gdef.ULONG64.from_address(addr).value + +def retrieve_wstr_from_addr(addr): + return gdef.LPWSTR(addr).value + +# https://msdn.microsoft.com/en-us/library/hh877847.aspx +def retrieve_psid_from_addr(addr): + psid_addr = addr + gdef.CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE.OctetString.offset + return gdef.PSID(psid_addr) + +def retrieve_bool_from_addr(addr): + return bool(gdef.ULONG64.from_address(addr).value) + +def retrieve_octet_string_from_addr(addr): + # Good doc: https://msdn.microsoft.com/en-us/library/hh877833.aspx + # Doc broken in: https://docs.microsoft.com/en-us/windows/desktop/api/winnt/ns-winnt-_claim_security_attribute_relative_v1 + ostring = gdef.CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE.from_address(addr) + # Bypass the array limit + return ctypes.cast(ostring.OctetString, gdef.PUCHAR)[:ostring.Length] + +class ClaimSecurityAttributeRelativeV1(gdef.CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1): + VALUE_ARRAY_PTR_BY_TYPE = { + gdef.CLAIM_SECURITY_ATTRIBUTE_TYPE_INT64: + ("pInt64", retrieve_long64_from_addr), + gdef.CLAIM_SECURITY_ATTRIBUTE_TYPE_UINT64: + ("pUint64", retrieve_ulong64_from_addr), + gdef.CLAIM_SECURITY_ATTRIBUTE_TYPE_STRING: + ("ppString", retrieve_wstr_from_addr), + gdef.CLAIM_SECURITY_ATTRIBUTE_TYPE_SID: + # ppString is not the good one + # But none is doc for PSID + ("ppString", retrieve_psid_from_addr), + gdef.CLAIM_SECURITY_ATTRIBUTE_TYPE_BOOLEAN: + ("pUint64", retrieve_bool_from_addr), + gdef.CLAIM_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING: + ("pOctetString", retrieve_octet_string_from_addr), + } + + @property + def name(self): + return gdef.LPWSTR(ctypes.addressof(self) + self.Name).value + + @property + def values(self): + array_name, get_value = self.VALUE_ARRAY_PTR_BY_TYPE[self.ValueType] + base = ctypes.addressof(self) + array = getattr(self.Values, array_name) + # The pointer allow us to bypass the array _length_ of 1 + array_ptr = ctypes.cast(array, ctypes.POINTER(array._type_)) + offsets = array_ptr[:self.ValueCount] + # Cast values + return tuple(get_value(base + off) for off in offsets) + + +# ACL +class Acl(gdef.ACL): + """All the ``ACE`` returned by :class:`Acl` methods/property are described in the :ref:`Ace section `""" + @property + def size_info(self): + size_info = gdef.ACL_SIZE_INFORMATION() + winproxy.GetAclInformation(self, ctypes.byref(size_info), ctypes.sizeof(size_info), gdef.AclSizeInformation) + return size_info + + def get_ace(self, i): + """Retrieve ``ACE`` number ``i`` + + :return: :class:`Ace` + """ + ace = gdef.PVOID() + winproxy.GetAce(self, i, ace) + # TODO: subclass ACL + return AceHeader.from_address(ace.value).subclass() + + @property + def aces(self): + """The list of ``ACE`` in the ACL :class:`Acl` + + :type: [:class:`Ace`] - A list of ACE + """ + return list(self) + + def __len__(self): + """The number of ``ACE`` in the :class:`Acl`""" + return self.AceCount + + def __getitem__(self, i): + """Return ``ACE`` nb ``i`` + + :return: :class:`Ace` + """ + try: + return self.get_ace(i) + except WindowsError as e: + if e.winerror == gdef.ERROR_INVALID_PARAMETER: + raise IndexError("Invalid ACL index {0}".format(i)) + raise + + def __iter__(self): + """Return an iterable over all the ``ACE`` in the :class:`Acl` + + :yield: :class:`Ace`""" + for i in range(self.AceCount): + yield self.get_ace(i) + + def __repr__(self): + return "".format(self.AceCount) + +PAcl = ctypes.POINTER(Acl) + +# Security descriptor +class SecurityDescriptor(gdef.PSECURITY_DESCRIPTOR): + """A Security Descriptor + + .. warning:: + + TODO: free the underliying buffer when not needed anymore for now the underliying memory is never freed. + """ + DEFAULT_SECURITY_INFORMATION = ( + gdef.OWNER_SECURITY_INFORMATION | + gdef.GROUP_SECURITY_INFORMATION | + gdef.DACL_SECURITY_INFORMATION | + gdef.ATTRIBUTE_SECURITY_INFORMATION | + gdef.LABEL_SECURITY_INFORMATION | # Integrity + # gdef.SACL_SECURITY_INFORMATION | # Need special rights + gdef.SCOPE_SECURITY_INFORMATION | + gdef.PROCESS_TRUST_LABEL_SECURITY_INFORMATION + ) + + # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-queryserviceobjectsecurity + # Default flags for services + SERVICE_SECURITY_INFORMATION = ( + gdef.OWNER_SECURITY_INFORMATION | + gdef.GROUP_SECURITY_INFORMATION | + gdef.DACL_SECURITY_INFORMATION + ) + + """The default ``flags`` value for functions expecting a + `SECURITY_INFORMATION `_. + + This value regroups the followings flags: + + - ``OWNER_SECURITY_INFORMATION`` + - ``GROUP_SECURITY_INFORMATION`` + - ``DACL_SECURITY_INFORMATION`` + - ``ATTRIBUTE_SECURITY_INFORMATION`` + - ``SCOPE_SECURITY_INFORMATION`` + - ``PROCESS_TRUST_LABEL_SECURITY_INFORMATION`` + - ``LABEL_SECURITY_INFORMATION`` + + .. warning:: + + Note that the value ``SACL_SECURITY_INFORMATION`` needed to access the SACL is not present as it require the ``SeSecurityPrivilege``. + + To query the SACL enable the ``SeSecurityPrivilege`` and use the parameter ``query_sacl=True`` on the functions expecting a ``flags`` + + see :ref:`Query SACL sample ` + """ + + _close_function = winproxy.LocalFree + + @classmethod + def create(cls): + buff = windows.utils.BUFFER(gdef.SECURITY_DESCRIPTOR, 1)() + winproxy.InitializeSecurityDescriptor(buff, gdef.SECURITY_DESCRIPTOR_REVISION) + return buff.cast(windows.security.SecurityDescriptor) + + @property + def control(self): + """The security descriptor control + + :type: :class:`~windows.generated_def.winstructs.SECURITY_DESCRIPTOR_CONTROL` + """ + lpdwRevision = gdef.DWORD() + control = gdef.SECURITY_DESCRIPTOR_CONTROL() + winproxy.GetSecurityDescriptorControl(self, control, lpdwRevision) + return control.value + + @property + def revision(self): + """The security descriptor's revision + + :type: :class:`int` + """ + lpdwRevision = gdef.DWORD() + control = gdef.SECURITY_DESCRIPTOR_CONTROL() + winproxy.GetSecurityDescriptorControl(self, control, lpdwRevision) + return lpdwRevision.value + + def get_owner(self): + """The owner of the security descriptor + + :type: :class:`~windows.generated_def.winstructs.PSID` or ``None`` + """ + owner = gdef.PSID() + lpbOwnerDefaulted = gdef.BOOL() + winproxy.GetSecurityDescriptorOwner(self, owner, lpbOwnerDefaulted) + # Return None of owner is NULL + return owner or None + + def set_owner(self, new_owner): + winproxy.SetSecurityDescriptorOwner(self, new_owner, bOwnerDefaulted=False) + + owner = property(get_owner, set_owner) + + @property + def group(self): + """The group of the security descriptor + + :type: :class:`~windows.generated_def.winstructs.PSID` or ``None`` + """ + group = gdef.PSID() + lpbGroupDefaulted = gdef.BOOL() + winproxy.GetSecurityDescriptorGroup(self, group, lpbGroupDefaulted) + # Return None of group is NULL + return group or None + + + @property + def dacl(self): + """The DACL of the security descriptor. + + :type: :class:`Acl` or ``None`` if the DACL was ``NULL`` or not present + """ + dacl_present = gdef.BOOL() + pdacl = gdef.PACL() + lpbDaclDefaulted = gdef.BOOL() + winproxy.GetSecurityDescriptorDacl(self, dacl_present, pdacl, lpbDaclDefaulted) + if not dacl_present or not pdacl: + return None + return ctypes.cast(pdacl, PAcl)[0] + + @property + def sacl(self): + """The SACL of the security descriptor. You may need special attention to retrieve it (see :class:`DEFAULT_SECURITY_INFORMATION`) + + :type: :class:`Acl` or ``None`` if the SACL was ``NULL`` or not present + """ + sacl_present = gdef.BOOL() + psacl = gdef.PACL() + lpbSaclDefaulted = gdef.BOOL() + winproxy.GetSecurityDescriptorSacl(self, sacl_present, psacl, lpbSaclDefaulted) + if not sacl_present or not psacl: + return None + return ctypes.cast(psacl, PAcl)[0] + + # Constructors + @classmethod + def from_string(cls, sddl): + """Return a new :class:`SecurityDescriptor` from the ``SDDL``. + + :returns: :class:`SecurityDescriptor` + + .. warning:: + + At the moment the underliying buffer is never freed. + + See `ConvertStringSecurityDescriptorToSecurityDescriptorA `_ + """ + self = cls() + winproxy.ConvertStringSecurityDescriptorToSecurityDescriptorA( + sddl.encode("ascii"), + gdef.SDDL_REVISION_1, + self, + None) + # TODO: we need to free this buffer.. + # Keep track of Security Descritor state ? + return self + + @classmethod + def _from_name_and_type(cls, objname, objtype, flags=DEFAULT_SECURITY_INFORMATION, query_sacl=False): + self = cls() + + if query_sacl: + flags |= gdef.SACL_SECURITY_INFORMATION + + winproxy.GetNamedSecurityInfoW( + objname, + objtype, + flags, + None, + None, + None, + None, + self + ) + return self + + @classmethod + def _from_handle_and_type(cls, handle, objtype, flags=DEFAULT_SECURITY_INFORMATION, query_sacl=False): + self = cls() + + if query_sacl: + flags |= gdef.SACL_SECURITY_INFORMATION + + winproxy.GetSecurityInfo( + handle, + objtype, + flags, + None, + None, + None, + None, + self + ) + return self + + + def _apply_to_handle_and_type(self, handle, objtype=gdef.SE_KERNEL_OBJECT, flags=None): + # Make SecurityDescriptor method has_audit_ace ? + + if flags is None: + flags = gdef.OWNER_SECURITY_INFORMATION | gdef.GROUP_SECURITY_INFORMATION | gdef.DACL_SECURITY_INFORMATION | gdef.LABEL_SECURITY_INFORMATION + if (self.sacl and + any(ace.Header.AceType != gdef.SYSTEM_MANDATORY_LABEL_ACE_TYPE for ace in self.sacl)): + flags |= gdef.SACL_SECURITY_INFORMATION + + return winproxy.SetSecurityInfo( + handle, + objtype, + flags, + self.owner, + self.group, + self.dacl, + self.sacl + ) + + @classmethod + def from_filename(cls, filename, query_sacl=False, flags=DEFAULT_SECURITY_INFORMATION): + """Retrieve the security descriptor for the file ``filename``""" + return cls._from_name_and_type(filename, gdef.SE_FILE_OBJECT, flags=flags, query_sacl=query_sacl) + + + def to_filename(self, filename, flags=0): + "Test method: WILL CHANGE" + if not flags: + if self.owner: + flags |= gdef.OWNER_SECURITY_INFORMATION + if self.group: + flags |= gdef.GROUP_SECURITY_INFORMATION + if self.dacl: + flags |= gdef.DACL_SECURITY_INFORMATION + if self.sacl: + flags |= gdef.SACL_SECURITY_INFORMATION + winproxy.SetNamedSecurityInfoW(filename, gdef.SE_FILE_OBJECT, flags, self.owner, self.group, self.dacl, self.sacl) + + def to_handle(self, handle, flags=0): + if not flags: + if self.owner: + flags |= gdef.OWNER_SECURITY_INFORMATION + if self.group: + flags |= gdef.GROUP_SECURITY_INFORMATION + if self.dacl: + flags |= gdef.DACL_SECURITY_INFORMATION + if self.sacl: + flags |= gdef.SACL_SECURITY_INFORMATION + self._apply_to_handle_and_type(handle, gdef.SE_FILE_OBJECT, flags) + + @classmethod + def from_service(cls, filename, query_sacl=False, flags=SERVICE_SECURITY_INFORMATION): + """Retrieve the security descriptor for the service named ``service``""" + sd = cls._from_name_and_type(filename, gdef.SE_SERVICE, flags=flags, query_sacl=query_sacl) + sd.obj_type = "service" + return sd + + @classmethod + def from_handle(cls, handle, query_sacl=False, flags=DEFAULT_SECURITY_INFORMATION, obj_type=None): + """Retrieve the security descriptor for the kernel object described by``handle``""" + sd = cls._from_handle_and_type(handle, gdef.SE_KERNEL_OBJECT, flags=flags, query_sacl=query_sacl) + sd.obj_type = obj_type # Test + return sd + + @classmethod + def from_binary(cls, data): + """Retrieve the security descriptor described by the binary ``data``. + Binary security descriptor can be found in the registry for example + """ + if isinstance(data, basestring): + data = ctypes.c_buffer(data) + return ctypes.cast(data, cls) + + def to_string(self, security_information=DEFAULT_SECURITY_INFORMATION): + """Return the SDDL representation of the security descriptor + + :type: :class:`str` + """ + result_cstr = gdef.LPSTR() + winproxy.ConvertSecurityDescriptorToStringSecurityDescriptorA( + self, + gdef.SDDL_REVISION_1, + security_information, + result_cstr, + None) + result = result_cstr.value # Retrieve a python-str copy + winproxy.LocalFree(result_cstr) + return result.decode() + + __str__ = to_string + + def isrelative(self): + """[WIP] api may change""" + return bool(self.control & gdef.SE_SELF_RELATIVE) + + def make_absolute(self): + """[WIP] api may change""" + # Assert relative ? + abs_descriptor_size = gdef.DWORD(0) + dacl_size = gdef.DWORD(0) + sacl_size = gdef.DWORD(0) + owner_size = gdef.DWORD(0) + prim_groupe_size = gdef.DWORD(0) + + try: + windows.winproxy.MakeAbsoluteSD(self, None, abs_descriptor_size, + None, + dacl_size, + None, + sacl_size, + None, + owner_size, + None, + prim_groupe_size) + except WindowsError as e: + if e.winerror != gdef.ERROR_INSUFFICIENT_BUFFER: + raise + + abs_sd = windows.utils.BUFFER(gdef.BYTE, abs_descriptor_size.value)().cast(SecurityDescriptor) + # dacl = ctypes.create_string_buffer(dacl_size.value) + dacl = windows.utils.BUFFER(gdef.BYTE, dacl_size.value)() + sacl = windows.utils.BUFFER(gdef.BYTE, sacl_size.value)() + owner = ctypes.create_string_buffer(owner_size.value) + prim_groupe = ctypes.create_string_buffer(prim_groupe_size.value) + + windows.winproxy.MakeAbsoluteSD(self, abs_sd, abs_descriptor_size, + dacl.cast(gdef.PACL), + dacl_size, + sacl.cast(gdef.PACL), + sacl_size, + owner, + owner_size, + prim_groupe, + prim_groupe_size) + + abs_sd._save = [dacl, sacl, owner, prim_groupe] + return abs_sd + + def make_relative(self): + """[WIP] api may change""" + srsd_size = gdef.DWORD(0) + try: + windows.winproxy.MakeSelfRelativeSD(self, None, srsd_size) + except WindowsError as e: + if e.winerror != gdef.ERROR_INSUFFICIENT_BUFFER: + raise + + srsd = windows.utils.BUFFER(gdef.BYTE, srsd_size.value)().cast(SecurityDescriptor) + windows.winproxy.MakeSelfRelativeSD(self, srsd, srsd_size) + return srsd + + + # If we want auto-free we need to handle relf-relative SD + # We need to keep-track of sub-object of the SD + # Just a ref to SD from SACL / DACL ? + + # def __del__(self): + # if self._needs_free and sys.path is not None: + # print("FREE SELF") + # self._close_function(self) + + def __repr__(self): + if (self.isrelative()): + return "<{0} (self relative format) at {1:#x}>".format(type(self).__name__, id(self)) + return "<{0} (absolute format) at {1:#x}>".format(type(self).__name__, id(self)) + + def explain(self, type=None): + if type is None: + type = getattr(self, "obj_type", None) + return explain_sd(self, sdtype=type) + +# Explain SD POC +# If ok -> new file + + +def explain_sid(sid): + if sid is None: + return "None" + try: + info = u"\\".join(windows.utils.lookup_sid(sid)) + except WindowsError as e: + print(e) + info = u"" + return u"{0} ({1})".format(info, sid) + +def explain_mask(mask, sdtype): + mapper = windows.security.SPECIFIC_ACCESS_RIGTH_BY_TYPE[sdtype] + res = [] + for i in range(32): # sizeof ACCESS_MASK * 8 + v = mask & (1 << i) + if v: + res.append(mapper[ACE_MASKS[v]]) + return res + +def explain_simple_ace(ace, sdtype): + yield u"Type:" + yield u" " + str(ace.Header.AceType) + yield u"Flags: {0:#x}".format(ace.Header.AceFlags) + yield u" {0}".format(ace.Header.flags) + yield u"SID:" + yield u" " + explain_sid(ace.sid) + yield u"Mask: {0:#x}".format(ace.Mask) + mapper = windows.security.SPECIFIC_ACCESS_RIGTH_BY_TYPE[sdtype] + yield u" " + str(list(mapper[x] for x in ace.mask)) + +def explain_mandatory_label_ace(ace, sdtype): + assert ace.Header.AceType == gdef.SYSTEM_MANDATORY_LABEL_ACE_TYPE + yield u"Type:" + yield u" {0} (Integrity Level)".format(ace.Header.AceType) + yield u"Flags:" + yield u" {0:#x}".format(ace.Header.AceFlags) + yield u"SID:" + sid = ace.sid + count = windows.winproxy.GetSidSubAuthorityCount(sid) + integrity = windows.winproxy.GetSidSubAuthority(sid, count[0] - 1)[0] + yield u" {0} (Integrity Level: {1})".format(sid, KNOW_INTEGRITY_LEVEL[integrity]) + yield u"Mask:" + mapper = MANDATORY_LABEL_ACE_MASK + yield u" " + str(list(mapper[x] for x in ace.mask)) + +def explain_object_related_ace(ace, sdtype): + yield u"Type:" + yield u" " + str(ace.Header.AceType) + yield u"HeaderFlags:" + yield u" {0:#x}".format(ace.Header.AceFlags) + yield u"SID:" + yield u" " + explain_sid(ace.sid) + yield u"Mask:" + mapper = windows.security.SPECIFIC_ACCESS_RIGTH_BY_TYPE[sdtype] + yield u" " + str(list(mapper[x] for x in ace.mask)) + yield u"Flag:" + yield u" " + str(ace.flags) + object_type = ace.object_type + inherited_object_type = ace.inherited_object_type + if object_type: + yield u"ObjectType" + yield u" " + object_type + if inherited_object_type: + yield u"InheritedObjectType" + yield u" " + inherited_object_type + +def explain_callback_ace(ace, sdtype): + yield u"Type:" + yield u" " + str(ace.Header.AceType) + yield u"HeaderFlags:" + yield u" {0:#x}".format(ace.Header.AceFlags) + yield u"SID:" + yield u" " + explain_sid(ace.sid) + yield u"Mask:" + mapper = windows.security.SPECIFIC_ACCESS_RIGTH_BY_TYPE[sdtype] + yield u" " + str(list(mapper[x] for x in ace.mask)) + yield u"Application data:" + yield u" " + repr(ace.application_data.replace(b"\x00", b"")) + try: + condition = ace.condition + yield u"Condition:" + yield u" " + condition + except ValueError: + pass + +def explain_resource_attribute(ace, sdtype): + yield u"Type:" + yield u" " + str(ace.Header.AceType) + yield u"HeaderFlags:" + yield u" {0:#x}".format(ace.Header.AceFlags) + yield u"SID:" + yield u" " + explain_sid(ace.sid) + yield u"Mask:" + mapper = windows.security.SPECIFIC_ACCESS_RIGTH_BY_TYPE[sdtype] + yield u" " + str(list(mapper[x] for x in ace.mask)) + + attribute = ace.attribute + yield u"Attribute Name:" + yield u" " + attribute.name + yield u"Attribute Type:" + yield u" {0:#x}".format(attribute.ValueType) + yield u"Attribute Flags:" + yield u" {0:#x}".format(attribute.Flags) + yield u"Values:" + for value in attribute.values: + yield u" " + repr(value) + + +ACE_EXPLAINER = { + gdef.ACCESS_ALLOWED_ACE_TYPE: explain_simple_ace, + gdef.ACCESS_DENIED_ACE_TYPE: explain_simple_ace, + gdef.SYSTEM_MANDATORY_LABEL_ACE_TYPE: explain_mandatory_label_ace, + gdef.SYSTEM_AUDIT_ACE_TYPE: explain_simple_ace, + gdef.ACCESS_ALLOWED_OBJECT_ACE_TYPE: explain_object_related_ace, + gdef.ACCESS_DENIED_OBJECT_ACE_TYPE: explain_object_related_ace, + gdef.ACCESS_ALLOWED_CALLBACK_ACE_TYPE: explain_callback_ace, + gdef.SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE: explain_resource_attribute, +} + + +def explain_acl(acl, sdtype=None): + if acl is None: + yield u"None" + for ace in acl.aces: + yield str(ace) + for line in ACE_EXPLAINER[ace.Header.AceType](ace, sdtype): + yield u" " + line + +def explain_sd(sd, sdtype=None): + print(u"Security Descriptor: {0}".format(sd)) + print(u" Owner:") + print(u" " + explain_sid(sd.owner)) + print(u" Group:") + print(u" " + explain_sid(sd.group)) + print(u" Control:") + control = sd.control + print(" {0}".format([flag for flag in SD_CONTROL_FLAGS if control & flag])) + print(u" Dacl: {0}".format(sd.dacl)) + if sd.dacl: + for line in explain_acl(sd.dacl, sdtype): + try: + print(u" " + line) + except UnicodeError: + print(" " + line.encode("cp1252")) + print(u" Sacl: {0}".format(sd.sacl)) + if sd.sacl: + for line in explain_acl(sd.sacl, sdtype): + try: + print(u" " + line) + except UnicodeError: + print(" " + line.encode("cp1252")) diff --git a/pythonmemorymodule/windows/syswow64.py b/pythonmemorymodule/windows/syswow64.py new file mode 100644 index 0000000..28b1b0a --- /dev/null +++ b/pythonmemorymodule/windows/syswow64.py @@ -0,0 +1,331 @@ +import struct +import ctypes +from ctypes import byref +import codecs +import functools +import threading + +import windows +import windows.native_exec.simple_x86 as x86 +import windows.native_exec.simple_x64 as x64 +from .generated_def.winstructs import * +from windows.winobject import process +from windows import winproxy +from .winproxy import NeededParameter +from .pycompat import int_types + +# Special code for syswow64 process +CS_32bits = 0x23 +CS_64bits = 0x33 + +# Allow to keep per-thread state of asm stub +class ThreadState(threading.local): + def __init__(self): # Called once per thread + self.allocator = windows.native_exec.native_function.CustomAllocator() + self.raw_call_per_function = {} + self.current_original_args = None + +thread_state = ThreadState() + + +def generate_64bits_execution_stub_from_syswow(x64shellcode): + """shellcode must NOT end by a ret""" + current_process = windows.current_process + if not current_process.is_wow_64: + raise ValueError("Calling generate_64bits_execution_stub_from_syswow from non-syswow process") + + transition64 = x64.MultipleInstr() + transition64 += x64.Call(":TOEXEC") + transition64 += x64.Mov("RDX", "RAX") + transition64 += x64.Shr("RDX", 32) + transition64 += x64.Retf32() # 32 bits return addr + transition64 += x64.Label(":TOEXEC") + x64shellcodeaddr = thread_state.allocator.write_code(transition64.get_code() + x64shellcode) + + transition = x86.MultipleInstr() + transition += x86.Call(CS_64bits, x64shellcodeaddr) + # Reset the SS segment selector. + # We need to do that due to a bug in AMD CPUs with RETF & SS + # https://github.com/hakril/PythonForWindows/issues/10 + # http://blog.rewolf.pl/blog/?p=1484 + transition += x86.Mov("ECX", "SS") + transition += x86.Mov("SS", "ECX") + transition += x86.Ret() + + stubaddr = thread_state.allocator.write_code(transition.get_code()) + exec_stub = ctypes.CFUNCTYPE(ULONG64)(stubaddr) + return exec_stub + +def execute_64bits_code_from_syswow(x64shellcode): + return generate_64bits_execution_stub_from_syswow(x64shellcode)() + +def generate_syswow64_call(target, errcheck=None): + nb_args = len(target.prototype._argtypes_) + target_addr = get_syswow_ntdll_exports()[target.__name__] + argument_buffer_len = (nb_args * 8) + argument_buffer = thread_state.allocator.reserve_size(argument_buffer_len) + alignement_information = thread_state.allocator.reserve_size(8) + + nb_args_on_stack = max(nb_args - 4, 0) + + code_64b = x64.MultipleInstr() + # Save registers + + code_64b += x64.Push('RBX') + code_64b += x64.Push('RCX') + code_64b += x64.Push('RDX') + code_64b += x64.Push('RSI') + code_64b += x64.Push('RDI') + code_64b += x64.Push('R8') + code_64b += x64.Push('R9') + code_64b += x64.Push('R10') + code_64b += x64.Push('R11') + code_64b += x64.Push('R12') + code_64b += x64.Push('R13') + + # Alignment stuff :) + code_64b += x64.Mov('RCX', 'RSP') + code_64b += x64.And('RCX', 0x0f) + code_64b += x64.Mov(x64.deref(alignement_information), 'RCX') + code_64b += x64.Sub('RSP', 'RCX') + # retrieve argument from the argument buffer + if nb_args >= 1: + code_64b += x64.Mov('RCX', x64.create_displacement(disp=argument_buffer)) + if nb_args >= 2: + code_64b += x64.Mov('RDX', x64.create_displacement(disp=argument_buffer + (8 * 1))) + if nb_args >= 3: + code_64b += x64.Mov('R8', x64.create_displacement(disp=argument_buffer + (8 * 2))) + if nb_args >= 4: + code_64b += x64.Mov('R9', x64.create_displacement(disp=argument_buffer + (8 * 3))) + for i in range(nb_args_on_stack): + code_64b += x64.Mov('RAX', x64.create_displacement(disp=argument_buffer + 8 * (nb_args - 1 - i))) + code_64b += x64.Push('RAX') + # reserve space for register (calling convention) + code_64b += x64.Push('R9') + code_64b += x64.Push('R8') + code_64b += x64.Push('RDX') + code_64b += x64.Push('RCX') + # Call + code_64b += x64.Mov('R13', target_addr) + code_64b += x64.Call('R13') + # Realign stack :) + code_64b += x64.Add('RSP', x64.deref(alignement_information)) + # Clean stack + code_64b += x64.Add('RSP', (4 + nb_args_on_stack) * 8) + code_64b += x64.Pop('R13') + code_64b += x64.Pop('R12') + code_64b += x64.Pop('R11') + code_64b += x64.Pop('R10') + code_64b += x64.Pop('R9') + code_64b += x64.Pop('R8') + code_64b += x64.Pop('RDI') + code_64b += x64.Pop('RSI') + code_64b += x64.Pop('RDX') + code_64b += x64.Pop('RCX') + code_64b += x64.Pop('RBX') + code_64b += x64.Ret() + return try_generate_stub_target(code_64b.get_code(), argument_buffer, target, errcheck=errcheck) + + +def try_generate_stub_target(shellcode, argument_buffer, target, errcheck=None): + if not windows.current_process.is_wow_64: + raise ValueError("Calling execute_64bits_code_from_syswow from non-syswow process") + native_caller = generate_64bits_execution_stub_from_syswow(shellcode) + native_caller.errcheck = errcheck if errcheck is not None else target.errcheck + # Generate the wrapper function that fill the argument_buffer + expected_arguments_number = len(target.prototype._argtypes_) + def wrapper(*args): + if len(args) != expected_arguments_number: + raise ValueError("{0} syswow accept {1} args ({2} given)".format(target.__name__, expected_arguments_number, len(args))) + # Transform args (ctypes byref possibly) to int + writable_args = [] + for i, value in enumerate(args): + if not isinstance(value, int_types): + try: + value = ctypes.cast(value, ctypes.c_void_p).value + except ctypes.ArgumentError as e: + raise ctypes.ArgumentError("Argument {0}: wrong type <{1}>".format(i, type(value).__name__)) + writable_args.append(value) + # Build buffer + buffer = struct.pack("<" + "Q" * len(writable_args), *writable_args) + ctypes.memmove(argument_buffer, buffer, len(buffer)) + # Copy origincal args in function, for errcheck if needed + thread_state.current_original_args = args + + return native_caller() + wrapper.__name__ = "{0}".format(target.__name__,) + wrapper.__doc__ = "This is a wrapper to {0} in 64b mode, it accept <{1}> args".format(target.__name__, expected_arguments_number) + return wrapper + + +def get_current_process_syswow_peb_addr(): + get_peb_64_code = x64.assemble("mov rax, gs:[0x60]; ret") + return execute_64bits_code_from_syswow(get_peb_64_code) + +def get_current_process_syswow_peb(): + current_process = windows.current_process + + class CurrentProcessReadSyswow(process.Process): + bitness = 64 + def _get_handle(self): + return winproxy.OpenProcess(dwProcessId=current_process.pid) + + def read_memory(self, addr, size): + buffer_addr = ctypes.create_string_buffer(size) + winproxy.NtWow64ReadVirtualMemory64(self.handle, addr, buffer_addr, size) + return buffer_addr[:] + peb_addr = get_current_process_syswow_peb_addr() + return windows.winobject.process.RemotePEB64(peb_addr, CurrentProcessReadSyswow()) + + +class ReadSyswow64Process(process.Process): + def __init__(self, target): + self.target = target + self._bitness = target.bitness + + def _get_handle(self): + return self.target.handle + + def read_memory(self, addr, size): + buffer_addr = ctypes.create_string_buffer(size) + winproxy.NtWow64ReadVirtualMemory64(self.target.handle, addr, buffer_addr, size) + return buffer_addr[:] + + #read_string = process.Process.read_string + + +def get_syswow_ntdll_exports(): + if get_syswow_ntdll_exports.value is not None: + return get_syswow_ntdll_exports.value + peb64 = get_current_process_syswow_peb() + ntdll64 = [m for m in peb64.modules if m.name == "ntdll.dll"] + if not ntdll64: + raise ValueError("Could not find ntdll.dll in syswow peb") + ntdll64 = ntdll64[0] + exports = ntdll64.pe.exports + get_syswow_ntdll_exports.value = exports + return exports +get_syswow_ntdll_exports.value = None + + +class Syswow64ApiProxy(object): + """Create a python wrapper around a function""" + def __init__(self, winproxy_function, errcheck=None): + self.winproxy_function = winproxy_function + self.errcheck = errcheck + if winproxy_function is not None: + self.params_name = [param[1] for param in winproxy_function.params] + + def __call__(self, python_proxy): + if not windows.winproxy.is_implemented(self.winproxy_function): + return None + + def force_resolution(): + if self.winproxy_function in thread_state.raw_call_per_function: + return True + try: + stub = generate_syswow64_call(self.winproxy_function, errcheck=self.errcheck) + thread_state.raw_call_per_function[self.winproxy_function] = stub + except KeyError: + raise windows.winproxy.ExportNotFound(self.winproxy_function.__name__, "SysWow[ntdll64]") + + + def perform_call(*args): + if len(self.params_name) != len(args): + print("ERROR:") + print("Expected params: {0}".format(self.params_name)) + print("Just Got params: {0}".format(args)) + raise ValueError("I do not have all parameters: how is that possible ?") + for param_name, param_value in zip(self.params_name, args): + if param_value is NeededParameter: + raise TypeError("{0}: Missing Mandatory parameter <{1}>".format(self.winproxy_function.__name__, param_name)) + + if self.winproxy_function not in thread_state.raw_call_per_function: + force_resolution() + return thread_state.raw_call_per_function[self.winproxy_function](*args) + + + setattr(python_proxy, "ctypes_function", perform_call) + setattr(python_proxy, "force_resolution", force_resolution) + return python_proxy + +def ntquerysysteminformation_syswow64_error_check(result, func, args): + args = thread_state.current_original_args + if result == 0: + return args + # Ignore STATUS_INFO_LENGTH_MISMATCH if SystemInformation is None + if result == STATUS_INFO_LENGTH_MISMATCH and not args[1]: + return args + raise winproxy.WinproxyError("NtQuerySystemInformation failed with NTStatus {0}".format(hex(result))) + +@Syswow64ApiProxy(winproxy.NtQuerySystemInformation, errcheck=ntquerysysteminformation_syswow64_error_check) +# @Syswow64ApiProxy(winproxy.NtQuerySystemInformation) +def NtQuerySystemInformation_32_to_64(SystemInformationClass, SystemInformation=None, SystemInformationLength=0, ReturnLength=NeededParameter): + if SystemInformation is not None and SystemInformationLength == 0: + SystemInformationLength = ctypes.sizeof(SystemInformation) + if SystemInformation is None: + SystemInformation = 0 + return NtQuerySystemInformation_32_to_64.ctypes_function(SystemInformationClass, SystemInformation, SystemInformationLength, ReturnLength) + + +@Syswow64ApiProxy(winproxy.NtCreateThreadEx) +def NtCreateThreadEx_32_to_64(ThreadHandle=None, DesiredAccess=0x1fffff, ObjectAttributes=0, ProcessHandle=NeededParameter, lpStartAddress=NeededParameter, lpParameter=NeededParameter, CreateSuspended=0, dwStackSize=0, Unknown1=0, Unknown2=0, Unknown3=0): + if ThreadHandle is None: + ThreadHandle = byref(HANDLE()) + return NtCreateThreadEx_32_to_64.ctypes_function(ThreadHandle, DesiredAccess, ObjectAttributes, ProcessHandle, lpStartAddress, lpParameter, CreateSuspended, dwStackSize, Unknown1, Unknown2, Unknown3) + + +ProcessBasicInformation = 0 +@Syswow64ApiProxy(winproxy.NtQueryInformationProcess) +def NtQueryInformationProcess_32_to_64(ProcessHandle, ProcessInformationClass=ProcessBasicInformation, ProcessInformation=NeededParameter, ProcessInformationLength=0, ReturnLength=None): + if ProcessInformation is not None and ProcessInformationLength == 0: + ProcessInformationLength = ctypes.sizeof(ProcessInformation) + if type(ProcessInformation) == PROCESS_BASIC_INFORMATION: + ProcessInformation = byref(ProcessInformation) + if ReturnLength is None: + ReturnLength = byref(ULONG()) + return NtQueryInformationProcess_32_to_64.ctypes_function(ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength, ReturnLength) + + +@Syswow64ApiProxy(winproxy.NtQueryInformationThread) +def NtQueryInformationThread_32_to_64(ThreadHandle, ThreadInformationClass, ThreadInformation, ThreadInformationLength=0, ReturnLength=None): + if ReturnLength is None: + ReturnLength = byref(ULONG()) + if ThreadInformation is not None and ThreadInformationLength == 0: + ThreadInformationLength = ctypes.sizeof(ThreadInformation) + return NtQueryInformationThread_32_to_64.ctypes_function(ThreadHandle, ThreadInformationClass, ThreadInformation, ThreadInformationLength, ReturnLength) + + + +@Syswow64ApiProxy(winproxy.NtQueryVirtualMemory) +def NtQueryVirtualMemory_32_to_64(ProcessHandle, BaseAddress, MemoryInformationClass, MemoryInformation=NeededParameter, MemoryInformationLength=0, ReturnLength=None): + if ReturnLength is None: + ReturnLength = byref(ULONG()) + if MemoryInformation is not None and MemoryInformationLength == 0: + MemoryInformationLength = ctypes.sizeof(MemoryInformation) + if isinstance(MemoryInformation, ctypes.Structure): + MemoryInformation = byref(MemoryInformation) + return NtQueryVirtualMemory_32_to_64.ctypes_function(ProcessHandle, BaseAddress, MemoryInformationClass, MemoryInformation, MemoryInformationLength, ReturnLength) + + +@Syswow64ApiProxy(winproxy.NtProtectVirtualMemory) +def NtProtectVirtualMemory_32_to_64(ProcessHandle, BaseAddress, NumberOfBytesToProtect, NewAccessProtection, OldAccessProtection=None): + if OldAccessProtection is None: + XOldAccessProtection = DWORD() + OldAccessProtection = ctypes.addressof(XOldAccessProtection) + return NtProtectVirtualMemory_32_to_64.ctypes_function(ProcessHandle, BaseAddress, NumberOfBytesToProtect, NewAccessProtection, OldAccessProtection) + + +@Syswow64ApiProxy(winproxy.NtGetContextThread) +def NtGetContextThread_32_to_64(hThread, lpContext): + if type(lpContext) == windows.winobject.exception.ECONTEXT64: + lpContext = byref(lpContext) + return NtGetContextThread_32_to_64.ctypes_function(hThread, lpContext) + +@Syswow64ApiProxy(winproxy.LdrLoadDll) +def LdrLoadDll_32_to_64(PathToFile, Flags, ModuleFileName, ModuleHandle): + return LdrLoadDll_32_to_64.ctypes_function(PathToFile, Flags, ModuleFileName, ModuleHandle) + +@Syswow64ApiProxy(winproxy.NtSetContextThread) +def NtSetContextThread_32_to_64(hThread, lpContext): + return NtSetContextThread_32_to_64.ctypes_function(hThread, lpContext) diff --git a/pythonmemorymodule/windows/test.py b/pythonmemorymodule/windows/test.py new file mode 100644 index 0000000..f080ca6 --- /dev/null +++ b/pythonmemorymodule/windows/test.py @@ -0,0 +1,25 @@ +import windows +import windows.generated_def as gdef +from windows.utils import create_process, DisableWow64FsRedirection + + +test_binary_name = "notepad.exe" +DEFAULT_CREATION_FLAGS = gdef.CREATE_NEW_CONSOLE + +if windows.system.bitness == 32: + def pop_proc_32(dwCreationFlags=DEFAULT_CREATION_FLAGS): + return create_process(r"C:\Windows\system32\{0}".format(test_binary_name).encode(), dwCreationFlags=dwCreationFlags, show_windows=True) + + def pop_proc_64(dwCreationFlags=DEFAULT_CREATION_FLAGS): + raise WindowsError("Cannot create calc64 in 32bits system") +else: + def pop_proc_32(dwCreationFlags=DEFAULT_CREATION_FLAGS): + return create_process(r"C:\Windows\syswow64\{0}".format(test_binary_name).encode(), dwCreationFlags=dwCreationFlags, show_windows=True) + + if windows.current_process.bitness == 32: + def pop_proc_64(dwCreationFlags=DEFAULT_CREATION_FLAGS): + with DisableWow64FsRedirection(): + return create_process(r"C:\Windows\system32\{0}".format(test_binary_name).encode(), dwCreationFlags=dwCreationFlags, show_windows=True) + else: + def pop_proc_64(dwCreationFlags=DEFAULT_CREATION_FLAGS): + return create_process(r"C:\Windows\system32\{0}".format(test_binary_name).encode(), dwCreationFlags=dwCreationFlags, show_windows=True) \ No newline at end of file diff --git a/pythonmemorymodule/windows/utils/__init__.py b/pythonmemorymodule/windows/utils/__init__.py new file mode 100644 index 0000000..4c22a3a --- /dev/null +++ b/pythonmemorymodule/windows/utils/__init__.py @@ -0,0 +1,3 @@ +from .pythonutils import * +from .winutils import * +from .improved_buffer import * diff --git a/pythonmemorymodule/windows/utils/improved_buffer.py b/pythonmemorymodule/windows/utils/improved_buffer.py new file mode 100644 index 0000000..ab4d043 --- /dev/null +++ b/pythonmemorymodule/windows/utils/improved_buffer.py @@ -0,0 +1,134 @@ +import sys +import ctypes +import _ctypes +import windows.generated_def as gdef +from windows.pycompat import basestring + +## TESTING Improved Buffer code ### +## This code is not stable and WILL CHANGE ## +## Do not use for now :) ## + +# Uses cases: + # Simple buffer + # String / Wstring / Bytes + # Resize array in struct + # Typed buffer : filed call & contains X struct S + # Having a ptr on struct with a buffer > sizeof(struct) + # Autocreate a good-typed buffer from a tuple of ctypes objects + + # On peut vouloir creer un buffer avec 12 elts de type X + # Ou creer un buffer avec 12 elt de type X mais une sub-size de 1000 + +if sys.version_info.major >= 3: + long = int + +class ImprovedCtypesBufferBase(object): + def cast(self, type): + return ctypes.cast(self, type) + + def as_string(self): + return ctypes.cast(self, gdef.LPCSTR).value + + def as_wstring(self): + return ctypes.cast(self, gdef.LPWSTR).value + + def as_pvoid(self): + return self.cast(gdef.PVOID) + + # Constructor + @classmethod + def from_size(cls, size): + raw_buffer = ctypes.c_buffer(size) + buffer = cls.from_buffer(raw_buffer) + buffer._raw_buffer_ = raw_buffer + return buffer + + @property + def real_size(self): + real_buffer = getattr(self, "_raw_buffer_", self) + return ctypes.sizeof(real_buffer) + + def __new__(cls, *args, **kwargs): + if "size" in kwargs: + buff = ctypes.create_string_buffer(kwargs["size"]) + self = cls.from_buffer(buff) + self._raw_buffer_ = buff + return self + # Add a '_raw_buffer_' even when no explicit size ? + return super(ImprovedCtypesBufferBase, cls).__new__(cls, *args, **kwargs) + + +# Used in windows.crypto.sign_verify for test +class PartialBufferType(object): + def __init__(self, type, nbelt=None): + self.type = type + self.nbelt = None + + @staticmethod + def create_real_implem(item_type, nbelt): + if isinstance(nbelt, long): + nbelt = int(nbelt) + assert isinstance(nbelt, int) + cls_name = "TypedBuffer<{0}><{1}>".format(item_type.__name__, nbelt) + + class TmpImplemArrayName(ImprovedCtypesBufferBase, ctypes.Array): + _type_ = item_type + _length_ = nbelt + + TmpImplemArrayName.__name__ = cls_name + return TmpImplemArrayName + + def from_buffer(self, buffer): # size as kwargs ? + if len(buffer) % ctypes.sizeof(self.type): + raise NotImplementedError("Buffer size of not a multiple of sizeof({0})".format(self.type.__name__)) + nbelt = int(len(buffer) / ctypes.sizeof(self.type)) + return self.create_real_implem(self.type, nbelt).from_buffer(buffer) + + def from_buffer_copy(self, buffer): # size as kwargs ? + if len(buffer) % ctypes.sizeof(self.type): + raise NotImplementedError("Buffer size of not a multiple of sizeof({0})".format(self.type.__name__)) + nbelt = int(len(buffer) / ctypes.sizeof(self.type)) + return self.create_real_implem(self.type, nbelt).from_buffer_copy(buffer) + + def create(self, nbelt): + return self.create_real_implem(self.type, nbelt) + + def __mul__(self, nbelt): + return self.create_real_implem(self.type, nbelt) + + def __call__(self, *args, **kwargs): + if len(args) == 1: # String magic: explode string as arg + if isinstance(args[0], basestring): + args = args[0] + nbelt = kwargs.get("nbelt", max(len(args), 1)) + return self.create_real_implem(self.type, nbelt)(*args, **kwargs) + +# # Expose these predefined types ? +# CharBuffer = PartialBufferType(gdef.CHAR) +# WCharBuffer = PartialBufferType(gdef.WCHAR) +# ByteBuffer = PartialBufferType(gdef.BYTE) + + +def BUFFER(type, nbelt=None): + if nbelt is None: + return PartialBufferType(type) # Allow user to create custom sized buffer + return PartialBufferType.create_real_implem(type, int(nbelt)) + +def buffer(obj, eltclass=None): + if eltclass is None: # Guess + obj = list(obj) + item = obj[0] + eltclass = type(item) # All object must have the same type + dlen = len(obj) + return BUFFER(eltclass, dlen)(*obj) + +def resized_array(array, newnbelt, newtype=None): + if newtype is None: + newtype = array._type_ + btype = BUFFER(newtype, newnbelt) + new_array = btype.from_address(ctypes.addressof(array)) + new_array._base_array_ = array # Keep a ref to prevent some gc + return new_array + + + diff --git a/pythonmemorymodule/windows/utils/pythonutils.py b/pythonmemorymodule/windows/utils/pythonutils.py new file mode 100644 index 0000000..bdc6f8a --- /dev/null +++ b/pythonmemorymodule/windows/utils/pythonutils.py @@ -0,0 +1,115 @@ +"""utils fonctions non windows-related""" +import sys +import ctypes +import _ctypes +import windows.generated_def as gdef + +from windows import winproxy +from windows.dbgprint import dbgprint +from windows.pycompat import basestring + + + +def fixedpropety(f): + cache_name = "_" + f.__name__ + + def prop(self): + try: + return getattr(self, cache_name) + except AttributeError: + setattr(self, cache_name, f(self)) + return getattr(self, cache_name) + return property(prop, doc=f.__doc__) + +# Slow fix of the typo :) +fixedproperty = fixedpropety + +# type replacement based on name +def transform_ctypes_fields(struct, replacement): + return [(name, replacement.get(name, type)) for name, type in struct._fields_] + + +def print_ctypes_struct(struct, name="", hexa=False): + sprint_method = getattr(struct, "__sprint__", None) + if sprint_method is not None: + # Allow function to accept 'hexa' param + # But handle function that don't, So we can just do: + # __sprint__ = __repr__ + print("{0} -> {1}".format(name, sprint_method())) + return + + if isinstance(struct, _ctypes._Pointer): + if ctypes.cast(struct, ctypes.c_void_p).value is None: + print("{0} -> NULL".format(name)) + return + return print_ctypes_struct(struct[0], name + "", hexa=hexa) + + if not hasattr(struct, "_fields_"): + value = struct + if hasattr(struct, "value"): + value = struct.value + + if isinstance(value, basestring): + value = repr(value) + if hexa and not isinstance(value, gdef.Flag): + try: + print("{0} -> {1}".format(name, hex(value))) + return + except TypeError: + pass + print("{0} -> {1}".format(name, value)) + return + + for field in struct._fields_: + if len(field) == 2: + fname, ftype = field + nb_bits = None + elif len(field) == 3: + fname, ftype, nb_bits = field + else: + raise ValueError("Unknown ctypes field entry format <{0}>".format(field)) + try: + value = getattr(struct, fname) + except Exception as e: + print("Error while printing <{0}> : {1}".format(fname, e)) + continue + print_ctypes_struct(value, "{0}.{1}".format(name, fname), hexa=hexa) + + +def sprint(struct, name="struct", hexa=True): + """Print recursively the content of a :mod:`ctypes` structure""" + return print_ctypes_struct(struct, name=name, hexa=hexa) + + +class AutoHandle(object): + """An abstract class that allow easy handle creation/destruction/wait""" + # Big bypass to prevent missing reference at programm exit.. + _close_function = ctypes.WinDLL("kernel32").CloseHandle + def _get_handle(self): + raise NotImplementedError("{0} is abstract".format(type(self).__name__)) + + @property + def handle(self): + """An handle on the object + + :type: HANDLE + + .. note:: + The handle is automaticaly closed when the object is destroyed + """ + if hasattr(self, "_handle"): + return self._handle + self._handle = self._get_handle() + dbgprint("Open handle {0} for {1}".format(hex(self._handle), self), "HANDLE") + return self._handle + + def wait(self, timeout=gdef.INFINITE): + """Wait for the object""" + return winproxy.WaitForSingleObject(self.handle, timeout) + + def __del__(self): + # sys.path is not None -> check if python shutdown + if hasattr(sys, "path") and sys.path is not None and hasattr(self, "_handle") and self._handle: + # Prevent some bug where dbgprint might be None when __del__ is called in a closing process + dbgprint("Closing Handle {0} for {1}".format(hex(self._handle), self), "HANDLE") if dbgprint is not None else None + self._close_function(self._handle) \ No newline at end of file diff --git a/pythonmemorymodule/windows/utils/winutils.py b/pythonmemorymodule/windows/utils/winutils.py new file mode 100644 index 0000000..a4a2920 --- /dev/null +++ b/pythonmemorymodule/windows/utils/winutils.py @@ -0,0 +1,627 @@ +import ctypes +import msvcrt +import os +import sys +import code +import math +import datetime +import warnings +from collections import namedtuple + +import windows +from windows.dbgprint import dbgprint +import windows.generated_def as gdef + +from .. import winproxy +from ..generated_def.winstructs import * + + +# Function resolution ! +# should be in winproxy ? +def get_func_addr(dll_name, func_name): + # Load the DLL + ctypes.WinDLL(dll_name) + modules = windows.current_process.peb.modules + if not dll_name.lower().endswith(".dll"): + dll_name += ".dll" + mod = [x for x in modules if x.name == dll_name][0] + return mod.pe.exports[func_name] + + +def get_remote_func_addr(target, dll_name, func_name): + name_modules = [m for m in target.peb.modules if m.name == dll_name] + if not len(name_modules): + raise ValueError("Module <{0}> not loaded in target <{1}>".format(dll_name, target)) + mod = name_modules[0] + return mod.pe.exports[func_name] + + +def is_wow_64(hProcess): + try: + fnIsWow64Process = get_func_addr("kernel32.dll", "IsWow64Process") + except winproxy.WinproxyError: + return False + IsWow64Process = ctypes.WINFUNCTYPE(BOOL, HANDLE, ctypes.POINTER(BOOL))(fnIsWow64Process) + Wow64Process = BOOL() + res = IsWow64Process(hProcess, ctypes.byref(Wow64Process)) + if res: + return bool(Wow64Process) + raise ctypes.WinError() + + +def create_file_from_handle(handle, mode="r"): + """Return a Python :class:`file` around a ``Windows`` HANDLE""" + flags = os.O_BINARY if "b" in mode else os.O_TEXT + fd = msvcrt.open_osfhandle(handle, flags) + kwargs = {} + if windows.pycompat.is_py3 and flags == os.O_TEXT: + # Buffering, encoding + args = (100, "ascii") + else: + # Buffering + args = (0,) + # In py2 os.fdopen do not accept kwargs + return os.fdopen(fd, mode, *args) + + +def get_handle_from_file(f): + """Get the ``Windows`` HANDLE of a python :class:`file`""" + return msvcrt.get_osfhandle(f.fileno()) + + +def create_console(): + """Create a new console displaying STDOUT. + Useful in injection of GUI process""" + winproxy.AllocConsole() + stdout_handle = winproxy.GetStdHandle(gdef.STD_OUTPUT_HANDLE) + console_stdout = create_file_from_handle(stdout_handle, "w") + sys.stdout = console_stdout + + stdin_handle = winproxy.GetStdHandle(gdef.STD_INPUT_HANDLE) + console_stdin = create_file_from_handle(stdin_handle, "r") + sys.stdin = console_stdin + + stderr_handle = winproxy.GetStdHandle(gdef.STD_ERROR_HANDLE) + console_stderr = create_file_from_handle(stderr_handle, "w") + sys.stderr = console_stderr + + +def create_process(path, args=None, dwCreationFlags=0, show_windows=True): + """A convenient wrapper arround :func:`windows.winproxy.CreateProcessA`""" + proc_info = PROCESS_INFORMATION() + lpStartupInfo = None + if show_windows: + StartupInfo = STARTUPINFOW() + StartupInfo.cb = ctypes.sizeof(StartupInfo) + StartupInfo.dwFlags = 0 + lpStartupInfo = ctypes.byref(StartupInfo) + lpCommandLine = None + if isinstance(path, bytes): + path = path.decode() + if args: + unicode_args = [] + for arg in args: + if isinstance(arg, bytes): + arg = arg.decode() + unicode_args.append(arg) + lpCommandLine = (" ".join(unicode_args)) + windows.winproxy.CreateProcessW(path, lpCommandLine=lpCommandLine, dwCreationFlags=dwCreationFlags, lpProcessInformation=ctypes.byref(proc_info), lpStartupInfo=lpStartupInfo) + dbgprint("CreateProcessW new process handle {:#x}".format(proc_info.hProcess), "HANDLE") + dbgprint("CreateProcessW new thread handle {:#x}".format(proc_info.hThread), "HANDLE") + dbgprint("Automatic close of thread handle {:#x}".format(proc_info.hThread), "HANDLE") + windows.winproxy.CloseHandle(proc_info.hThread) # Give access to a WinThread in addition of the WinProcess ? + return windows.winobject.process.WinProcess(pid=proc_info.dwProcessId, handle=proc_info.hProcess) + + +def device_io_control(handle, iocode, buffer): + outbuffer = ctypes.c_buffer(0x1000) + returned_size = gdef.DWORD() + windows.winproxy.DeviceIoControl(handle, iocode, buffer, lpOutBuffer=outbuffer, lpBytesReturned=returned_size) + return outbuffer[:returned_size.value] + + + +def tmp_cp_as(path, token): + proc_info = PROCESS_INFORMATION() + windows.winproxy.CreateProcessAsUserA(token, path, lpCommandLine=None, dwCreationFlags=gdef.CREATE_NEW_CONSOLE, lpProcessInformation=ctypes.byref(proc_info), lpStartupInfo=None) + return windows.winobject.process.WinProcess(pid=proc_info.dwProcessId, handle=proc_info.hProcess) + +def find_handle(proc, value): + return [h for h in windows.system.handles if h.dwProcessId == proc.pid and h.wValue == value] + +def lookup_privilege_value(privilege_name): + luid = LUID() + winproxy.LookupPrivilegeValueA(None, privilege_name, byref(luid)) + return luid + +def lookup_privilege_name(privilege_value): + if isinstance(privilege_value, tuple): + luid = LUID(privilege_value[1], privilege_value[0]) + privilege_value = luid + size = DWORD(0x100) + buff = ctypes.c_buffer(size.value) + winproxy.LookupPrivilegeNameA(None, privilege_value, buff, size) + return buff[:size.value] + + +def lookup_sid(psid): + """Retrieves the name of the Computer/Domain and the name of the Account for a given SID + + :returns: (:class:`unicode`, :class:`unicode`) - A tuple of two unicode strings + """ + usernamesize = gdef.DWORD(0x1000) + computernamesize = gdef.DWORD(0x1000) + username = ctypes.create_unicode_buffer(usernamesize.value) + computername = ctypes.create_unicode_buffer(computernamesize.value) + peUse = gdef.SID_NAME_USE() + winproxy.LookupAccountSidW(None, psid, username, usernamesize, computername, computernamesize, peUse) + return computername[:computernamesize.value], username[:usernamesize.value] + +def enable_privilege(lpszPrivilege, bEnablePrivilege): + """ + Enable or disable a privilege:: + + enable_privilege(SE_DEBUG_NAME, True) + """ + tp = TOKEN_PRIVILEGES() + luid = LUID() + hToken = HANDLE() + + winproxy.OpenProcessToken(winproxy.GetCurrentProcess(), TOKEN_ALL_ACCESS, byref(hToken)) + winproxy.LookupPrivilegeValueA(None, lpszPrivilege, byref(luid)) + tp.PrivilegeCount = 1 + tp.Privileges[0].Luid = luid + if bEnablePrivilege: + tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED + else: + tp.Privileges[0].Attributes = 0 + winproxy.AdjustTokenPrivileges(hToken, False, byref(tp), sizeof(TOKEN_PRIVILEGES)) + winproxy.CloseHandle(hToken) + if winproxy.GetLastError() == gdef.ERROR_NOT_ALL_ASSIGNED: + raise ValueError("Failed to get privilege {0}".format(lpszPrivilege)) + return True + + +def check_is_elevated(): + """Return ``True`` if process is Admin""" + hToken = HANDLE() + elevation = TOKEN_ELEVATION() + cbsize = DWORD() + + winproxy.OpenProcessToken(winproxy.GetCurrentProcess(), TOKEN_ALL_ACCESS, byref(hToken)) + winproxy.GetTokenInformation(hToken, TokenElevation, byref(elevation), sizeof(elevation), byref(cbsize)) + winproxy.CloseHandle(hToken) + return elevation.TokenIsElevated + + +def check_debug(): + """Check that kernel is in debug mode (beware of NOUMEX): + + https://msdn.microsoft.com/en-us/library/windows/hardware/ff556253(v=vs.85).aspx#_______noumex______ + """ + options = windows.system.registry(r'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control')['SystemStartOptions'] + control = options.value + if "DEBUG" not in control: + # print "[-] Enable debug boot!" + # print "> bcdedit /debug on" + return False + if "DEBUG=NOUMEX" not in control: + pass + # print "[*] Warning noumex not set!" + # print "> bcdedit /set noumex on" + return True + +UNIX_EPOCH = datetime.datetime(1970, 1, 1, 0, 0) +WINDOWS_EPOCH = datetime.datetime(1601, 1, 1, 0, 0) +# https://docs.microsoft.com/en-us/cpp/atl-mfc-shared/date-type?view=vs-2019 +# Why keep it simple and have only one epoch ? :D +# I don't want to name this "DATE_EPOCH" as everything is a DATE +# So let's go with COMDATE as this structure seems very related to COM/AUTOMATION +COMDATE_EPOCH = datetime.datetime(1899, 12, 30, 0, 0) + +WIN_TO_UNIX_EPOCH_SECOND = int((UNIX_EPOCH - WINDOWS_EPOCH).total_seconds()) +WIN_TICK_PER_SECOND_INT = 10**7 +WIN_TICK_PER_SECOND_FLOAT = 10.0**7 +WIN_TO_UNIX_EPOCH_WIN_TICKS = WIN_TO_UNIX_EPOCH_SECOND * WIN_TICK_PER_SECOND_INT + +# TODO: look in python stblib how filetime -> unix timestamp translation is down (os.stat code ?) + +def unix_timestamp_from_filetime(filetime): + # Round the filetime + last_number = (filetime % 10) + # We do some sort of "manual rounding cause of py2 vs py3 + # PY2: round(0.5) == 1 + # PY3: round(0.5) == 0 + if last_number == 5: + rounding = 1 + else: + rounding = round(last_number / 10.0) + round_win_ticks = ((filetime // 10) + int(rounding)) * 10 + return round((round_win_ticks - WIN_TO_UNIX_EPOCH_WIN_TICKS) / WIN_TICK_PER_SECOND_FLOAT, 7) + +def datetime_from_filetime(filetime): + """return a :class:`datetime.datetime` from a ``windows`` FILETIME int""" + # Manual non-approx rounding as filetime will not have a perfect representation as Python float + # We do some sort of "manual rounding cause of py2 vs py3 + # PY2: round(0.5) == 1 + # PY3: round(0.5) == 0 + last_number = (filetime % 10) + if last_number == 5: + rounding = 1 + else: + rounding = round(last_number / 10.0) + round_microsecond = (filetime // 10) + int(rounding) + return WINDOWS_EPOCH + datetime.timedelta(microseconds=round_microsecond) + +def filetime_from_datetime(dtime): + """Return the FILETIME value from a :class:`datetime.datetime` in a python :class:`int`""" + return int((dtime - WINDOWS_EPOCH).total_seconds()) * WIN_TICK_PER_SECOND_INT + +def datetime_from_comdate(comtime): + # Hour values are expressed as the absolute value of the fractional part of the number. + if comtime < 0: + # The date timeline becomes discontinuous for date values less than 0 (before 30 December 1899). This is because the whole-number portion of the date value is treated as signed, while the fractional part is treated as unsigned. + # other words, the whole-number part of the date value may be positive or negative, while the fractional part of the date value is always added to the overall logical date. + # WTF :D + dec, nb = math.modf(comtime) + final_delta = nb + abs(dec) + return COMDATE_EPOCH + datetime.timedelta(final_delta) + return COMDATE_EPOCH + datetime.timedelta(comtime) + +def datetime_from_systemtime(systime): + return datetime.datetime( + year=systime.wYear, + month=systime.wMonth, + day=systime.wDay, + hour=systime.wHour, + minute=systime.wMinute, + second=systime.wSecond, + microsecond=systime.wMilliseconds * 1000, + ) + +class FixedInteractiveConsole(code.InteractiveConsole): + def raw_input(self, prompt=">>>"): + sys.stdout.write(prompt) + return raw_input("") + + +def pop_shell(locs=None): + """Pop a console with an InterativeConsole""" + if locs is None: + locs = globals() + create_console() + FixedInteractiveConsole(locs).interact() + +def get_kernel_modules(): + warnings.warn("get_kernel_modules() will be removed: use windows.system.modules instead", DeprecationWarning) + return windows.system.modules + +class FileStreamInformation(gdef.FILE_STREAM_INFORMATION): + @property + def name(self): + return gdef.LPWSTR(ctypes.addressof(self) + type(self).StreamName.offset).value + + @property + def next(self): + if not self.NextEntryOffset: + return None + return type(self).from_address(ctypes.addressof(self) + self.NextEntryOffset) + + + def all(self): + return list(self) + + def __iter__(self): + while self: + yield self + self = self.next + + def __repr__(self): + return "".format(self.name) + + +ntqueryinformationfile_info_structs = { + gdef.FileAccessInformation: gdef.FILE_ACCESS_INFORMATION, + gdef.FileAlignmentInformation: gdef.FILE_ALIGNMENT_INFORMATION, + gdef.FileAllInformation: gdef.FILE_ALL_INFORMATION, + gdef.FileAttributeTagInformation: gdef.FILE_ATTRIBUTE_TAG_INFORMATION, + gdef.FileBasicInformation: gdef.FILE_BASIC_INFORMATION, + gdef.FileEaInformation: gdef.FILE_EA_INFORMATION , + gdef.FileInternalInformation: gdef.FILE_INTERNAL_INFORMATION, + gdef.FileIoPriorityHintInformation: gdef.FILE_IO_PRIORITY_HINT_INFORMATION, + gdef.FileModeInformation: gdef.FILE_MODE_INFORMATION, + gdef.FileNetworkOpenInformation: gdef.FILE_NETWORK_OPEN_INFORMATION, + gdef.FileNameInformation: gdef.FILE_NAME_INFORMATION, + gdef.FilePositionInformation: gdef.FILE_POSITION_INFORMATION, + gdef.FileStandardInformation: gdef.FILE_STANDARD_INFORMATION, + gdef.FileIsRemoteDeviceInformation: gdef.FILE_IS_REMOTE_DEVICE_INFORMATION, + gdef.FileStreamInformation: FileStreamInformation, +} + +def query_file_information(file_or_handle, file_info_class): + if not isinstance(file_or_handle, windows.pycompat.int_types): + file_or_handle = windows.utils.get_handle_from_file(file_or_handle) + handle = file_or_handle + io_status = gdef.IO_STATUS_BLOCK() + info = ntqueryinformationfile_info_structs[file_info_class]() + # Do helper for 'is_pointer' / get pointed_size & co ? (useful for winproxy) + pinfo = ctypes.pointer(info) + try: + windows.winproxy.NtQueryInformationFile(handle, io_status, pinfo, ctypes.sizeof(info), FileInformationClass=file_info_class) + except Exception as e: + if not (e.winerror & 0xffffffff) == gdef.STATUS_BUFFER_OVERFLOW: + raise + # STATUS_BUFFER_OVERFLOW -> Guess we have a FILE_NAME_INFORMATION somewhere that need a bigger buffer + if file_info_class == gdef.FileNameInformation: + file_name_length = pinfo[0].FileNameLength + elif file_info_class == gdef.FileAllInformation: + file_name_length = pinfo[0].NameInformation.FileNameLength + elif file_info_class == gdef.FileStreamInformation: + file_name_length = 0x10000 + else: + raise + full_size = ctypes.sizeof(info) + file_name_length # We add a little too much size for the sake of simplicity + buffer = ctypes.c_buffer(full_size) + windows.winproxy.NtQueryInformationFile(handle, io_status, buffer, full_size, FileInformationClass=file_info_class) + pinfo = ctypes.cast(buffer, ctypes.POINTER(ntqueryinformationfile_info_structs[file_info_class])) + info = pinfo[0] + # return list of ADS if FileStreamInformation ? + return info + + +class EAInfo(gdef.FILE_FULL_EA_INFORMATION): + @property + def name(self): + return gdef.LPCSTR(ctypes.addressof(self) + type(self).EaName.offset).value + + @property + def value(self): + value_addr = ctypes.addressof(self) + type(self).EaName.offset + self.EaNameLength + 1 # +1 -> Name \x00 + return (ctypes.c_char * self.EaValueLength).from_address(value_addr)[:] + + @property + def next(self): + # NextEntryOffset is Relative to our current offset + if not self.NextEntryOffset: + return None + try: # First entry + raw_buffer = self._b_base_._raw_buffer_ + except AttributeError as e: + raw_buffer = self._raw_buffer_ + curoffset = getattr(self, "_raw_buffer_offset_", 0) + new = type(self).from_buffer(raw_buffer, curoffset + self.NextEntryOffset) + # Keep the underlying buffer easily accessible + new._raw_buffer_ = raw_buffer + new._raw_buffer_offset_ = curoffset + self.NextEntryOffset + return new + + + def __iter__(self): + while self: + yield self + self = self.next + + def __repr__(self): + return '<{0} name="{1}">'.format(type(self).__name__, self.name) + + +MAXIMUM_EA_SIZE = 0x0000ffff + +def query_extended_attributes(file_or_handle): + if isinstance(file_or_handle, file): + file_or_handle = windows.utils.get_handle_from_file(file_or_handle) + # Check EaSize + x = windows.utils.query_file_information(file_or_handle, gdef.FileEaInformation) + if not x.EaSize: + return + io_status = gdef.IO_STATUS_BLOCK() + # Handle Win10 / Win7 + # Saw on Win10 -> EaSize > MAXIMUM_EA_SIZE + # Saw on Win7 -> EaSize not enought (STATUS_BUFFER_OVERFLOW) + buffsize = max(MAXIMUM_EA_SIZE, x.EaSize) + buffer = windows.utils.BUFFER(EAInfo)(size=buffsize) + windows.winproxy.NtQueryEaFile(file_or_handle, io_status, buffer, buffsize, False, None, 0, None, True) + return buffer[0] + + + + +ntqueryvolumeinformationfile_info_structs = { + gdef.FileFsAttributeInformation: gdef.FILE_FS_ATTRIBUTE_INFORMATION, + gdef.FileFsControlInformation: gdef.FILE_FS_CONTROL_INFORMATION, + gdef.FileFsDeviceInformation: gdef.FILE_FS_DEVICE_INFORMATION, + gdef.FileFsDriverPathInformation: gdef.FILE_FS_DRIVER_PATH_INFORMATION, + gdef.FileFsFullSizeInformation: gdef.FILE_FS_FULL_SIZE_INFORMATION, + gdef.FileFsObjectIdInformation: gdef.FILE_FS_OBJECTID_INFORMATION, + gdef.FileFsSizeInformation: gdef.FILE_FS_SIZE_INFORMATION, + gdef.FileFsVolumeInformation: gdef.FILE_FS_VOLUME_INFORMATION, + gdef.FileFsSectorSizeInformation: gdef.FILE_FS_SECTOR_SIZE_INFORMATION, +} + + +# TODO: FileFsDriverPathInformation +# TODO: Extended FILE_FS_VOLUME_INFORMATION that can read the real value of 'VolumeLabel' +def query_volume_information(file_or_handle, volume_info_class): + if not isinstance(file_or_handle, windows.pycompat.int_types): + file_or_handle = get_handle_from_file(file_or_handle) + handle = file_or_handle + io_status = gdef.IO_STATUS_BLOCK() + info = ntqueryvolumeinformationfile_info_structs[volume_info_class]() + # Do helper for 'is_pointer' / get pointed_size & co ? (useful for winproxy) + pinfo = ctypes.pointer(info) + try: + windows.winproxy.NtQueryVolumeInformationFile(handle, io_status, pinfo, ctypes.sizeof(info), FsInformationClass=volume_info_class) + except WindowsError as e: + # import pdb;pdb.set_trace() + if not (e.winerror & 0xffffffff) == gdef.STATUS_BUFFER_OVERFLOW: + raise + if volume_info_class == gdef.FileFsAttributeInformation: + file_name_length = pinfo[0].FileSystemNameLength + elif volume_info_class == gdef.FileFsVolumeInformation: + # Well VolumeLabelLength is clearly broken (after testing..) so we are adding some bytes to it.. + file_name_length = pinfo[0].VolumeLabelLength + 0x100 # I have seen cases where the VolumeLabelLength is not even enough.. + else: + raise + full_size = ctypes.sizeof(info) + file_name_length # We add a little too much size for the sake of simplicity + buffer = ctypes.c_buffer(full_size) + windows.winproxy.NtQueryVolumeInformationFile(handle, io_status, buffer, full_size, FsInformationClass=volume_info_class) + pinfo = ctypes.cast(buffer, ctypes.POINTER(ntqueryvolumeinformationfile_info_structs[volume_info_class])) + info = pinfo[0] + return info + return info + +# String stuff +def ntstatus(code): + return windows.generated_def.ntstatus.NtStatusException(code) + + +_WINERROR_BY_VALUE = None +def winerror(code): + global _WINERROR_BY_VALUE + if not _WINERROR_BY_VALUE: # Lazy init + _WINERROR_BY_VALUE = gdef.FlagMapper(*(getattr(gdef, error) for error in gdef.meta.errors)) + val = _WINERROR_BY_VALUE[code] + if val is code: # Not found + val = _WINERROR_BY_VALUE[code & 0xffff] # Hresult: extract code (https://en.wikipedia.org/wiki/HRESULT) + return val + + + +def get_long_path(path): + """Return the long path form for ``path``. + + :raise: :class:`~windows.winproxy.WinproxyError` if ``path`` does not exists + :param path: a valid Windows path + :type path: :class:`str` | :obj:`unicode` + :returns: :class:`str` | :obj:`unicode` -- same type as ``path`` parameter + """ + size = 0x1000 + buffer = ctypes.create_unicode_buffer(size) + rsize = winproxy.GetLongPathNameW(path, buffer, size) + return buffer[:rsize] + + +def get_short_path(path): + """Return the short path form for ``path`` + + :raise: :class:`~windows.winproxy.WinproxyError` if ``path`` does not exists + :param path: a valid Windows path + :type path: :class:`str` | :obj:`unicode` + :returns: :class:`str` | :obj:`unicode` -- same type as ``path`` parameter + """ + size = 0x1000 + buffer = ctypes.create_unicode_buffer(size) + rsize = winproxy.GetShortPathNameW(path, buffer, size) + return buffer[:rsize] + +def dospath_to_ntpath(dospath): + ustring = gdef.UNICODE_STRING() + windows.winproxy.RtlDosPathNameToNtPathName_U(dospath, ustring, None, None) + return ustring.str + + +def get_shared_mapping(name=None, handle=INVALID_HANDLE_VALUE, size=0x1000): + # TODO: real code + h = windows.winproxy.CreateFileMappingA(handle, dwMaximumSizeLow=size, lpName=name) + addr = windows.winproxy.MapViewOfFile(h, dwNumberOfBytesToMap=size) + return addr + + +def create_file(name, access=gdef.GENERIC_READ, share=gdef.FILE_SHARE_READ, security=None, creation=gdef.OPEN_EXISTING, flags=gdef.FILE_ATTRIBUTE_NORMAL): + return windows.winproxy.CreateFileA(name, access, share, security, creation, flags, 0) + +#def mapfile(file): +# fhandle = get_handle_from_file(file) +# h = windows.winproxy.CreateFileMappingA(fhandle, None, PAGE_READONLY, 0, 1, None) +# addr = windows.winproxy.MapViewOfFile(h, dwDesiredAccess=FILE_MAP_READ, dwNumberOfBytesToMap=1) +# return addr + +def decompress_buffer(buffer, comptype=gdef.COMPRESSION_FORMAT_LZNT1, uncompress_size=None): + if uncompress_size is None: + uncompress_size = len(buffer) * 10 + result_size = DWORD() + uncompressed = ctypes.c_buffer(uncompress_size) + windows.winproxy.RtlDecompressBuffer(comptype, uncompressed, uncompress_size, buffer, len(buffer), result_size) + return uncompressed[:result_size.value] + +def compress_buffer(buffer, comptype=gdef.COMPRESSION_FORMAT_LZNT1): + uncompress_size = len(buffer) + CompressedBufferSize = uncompress_size + 0x1000 + CompressedBuffer = ctypes.c_buffer(CompressedBufferSize) + chunk = 4096 + final_size = gdef.DWORD() + work_space_size = gdef.ULONG() + ignore_data = gdef.ULONG() + + windows.winproxy.RtlGetCompressionWorkSpaceSize(comptype, work_space_size, ignore_data) + work_space = ctypes.c_buffer(work_space_size.value) + windows.winproxy.RtlCompressBuffer(comptype, buffer, uncompress_size, CompressedBuffer, CompressedBufferSize, chunk, final_size, work_space) + return CompressedBuffer[:final_size.value] + + +# sid.py + real SID type ? + +def get_known_sid(sid_type): + size = DWORD() + try: + windows.winproxy.CreateWellKnownSid(sid_type, None, None, size) + except WindowsError: + pass + buffer = ctypes.c_buffer(size.value) + windows.winproxy.CreateWellKnownSid(sid_type, None, buffer, size) + return ctypes.cast(buffer, PSID) + +UnloadEventTraceInfo = namedtuple("UnloadEventTraceInfo", ["size", "nb_elt", "array_ptr"]) + +def get_unload_event_trace(): + x = PULONG() + y = PULONG() + z = PVOID() + windows.winproxy.RtlGetUnloadEventTraceEx(x, y, z) + return UnloadEventTraceInfo(x[0], y[0], z.value) + +class VirtualProtected(object): + """ + A context manager usable like `VirtualProtect` that will restore the old protection at exit :: + + with utils.VirtualProtected(IATentry.addr, ctypes.sizeof(PVOID), gdef.PAGE_EXECUTE_READWRITE): + IATentry.value = 0x42424242 + """ + def __init__(self, addr, size, new_protect): + if (addr % 0x1000): + addr = addr - addr % 0x1000 + self.addr = addr + self.size = size + self.new_protect = new_protect + + def __enter__(self): + self.old_protect = DWORD() + winproxy.VirtualProtect(self.addr, self.size, self.new_protect, ctypes.byref(self.old_protect)) + return self + + def __exit__(self, exc_type, exc_value, traceback): + winproxy.VirtualProtect(self.addr, self.size, self.old_protect.value, ctypes.byref(self.old_protect)) + return False + + +class DisableWow64FsRedirection(object): + """ + A context manager that disable the SysWow64 Filesystem Redirection :: + + if is_process_32_bits: + def pop_calc_64(): + with windows.utils.DisableWow64FsRedirection(): + return windows.utils.create_process(r"C:\Windows\system32\calc.exe", True) + """ + def __enter__(self): + if windows.current_process.bitness == 64 or windows.system.bitness == 32: + return self + self.OldValue = PVOID() + winproxy.Wow64DisableWow64FsRedirection(ctypes.byref(self.OldValue)) + return self + + def __exit__(self, exc_type, exc_value, traceback): + if windows.current_process.bitness == 64 or windows.system.bitness == 32: + return False + winproxy.Wow64RevertWow64FsRedirection(self.OldValue) + return False diff --git a/pythonmemorymodule/windows/winobject/__init__.py b/pythonmemorymodule/windows/winobject/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pythonmemorymodule/windows/winobject/apisetmap.py b/pythonmemorymodule/windows/winobject/apisetmap.py new file mode 100644 index 0000000..c9e336e --- /dev/null +++ b/pythonmemorymodule/windows/winobject/apisetmap.py @@ -0,0 +1,181 @@ +import ctypes + +import windows +import windows.generated_def as gdef + +from windows import utils + + +def get_api_set_map_for_current_process(base): + base = windows.current_process.peb.ApiSetMap + version = windows.current_process.read_dword(base) + if version not in API_SET_MAP_BY_VERSION: + raise NotImplementedError("ApiSetMap version <{0}> not implemented, please contact me, I need a sample to implement it ;)") + return API_SET_MAP_BY_VERSION[version](base) + + +class ApiSetMap(object): + """The base class for the ApiSeMap + (see `Runtime DLL name resolution: ApiSetSchema `_) + """ + version = None #: The version of the ApiSetMap + + def __init__(self, base): + self.base = base + self.target = windows.current_process + + # helpers + def read_apiset_wstring(self, offset, length): + return self.target.read_memory(self.base + offset, length).decode("utf-16") + + # Low-level version-dependent parsing function + def entries_array(self): + raise NotImplementedError("Should be implemented by subclasses") + + def get_entry_name(self, entry): + raise NotImplementedError("Should be implemented by subclasses") + + def get_entry_name_basicimpl(self, entry): + return self.read_apiset_wstring(entry.NameOffset, entry.NameLength) + + def values_for_entry(self, entry): + raise NotImplementedError("Should be implemented by subclasses") + + @utils.fixedpropety + def apisetmap_dict(self): + """The apisetmap dll-mapping content extracted from memory as a :class:`dict` + + ``key -> value example``:: + + u'ext-ms-win-advapi32-encryptedfile-l1-1-1' -> u'advapi32.dll' + """ + res = {} + for entry in self.entries_array(): + values = self.values_for_entry(entry) + if not values: + final_value = None + else: + final_value = values[-1] + res[self.get_entry_name(entry)] = final_value + return res + + @utils.fixedpropety + def resolution_dict(self): + """The :class:`dict` based on :obj:`apisetmap_dict` with only the part checked by ``Windows``. + + ``Windows`` does not care about what is after the last ``-`` + + ``key -> value example``:: + + u'ext-ms-win-advapi32-encryptedfile-l1-1-' -> u'advapi32.dll' + + """ + res = {} + for name, resolved_name in self.apisetmap_dict.items(): + # ApiSetResolveToHost does not care about last version + extension + # It remove everything after the last '-' + + # Possible to have no '-' ? + try: + cutname = name[:name.rindex("-") + 1] + except ValueError as e: + cutname = name + res[cutname] = resolved_name + return res + + def resolve(self, dllname): + """The method used to resolve a DLL name using the ApiSetMap. + The behavior should match the non-exported function ``ntdll!ApiSetResolveToHost`` + """ + try: + cutname = dllname[:dllname.rindex("-") + 1] + except ValueError as e: + return None + return self.resolution_dict[cutname] + + + +class ApiSetMapVersion2(ApiSetMap): + """Represent an ApiSetMap version-2""" + version = 2 #: The version of the ApiSetMap + + def namespace(self): + return gdef.API_SET_NAMESPACE_ARRAY_V2.from_address(self.base) + + def entries_array(self): + namespace = self.namespace() + array_addr = ctypes.addressof(namespace.Array) + array_size = namespace.Count + return (gdef.API_SET_NAMESPACE_ENTRY_V2 * array_size).from_address(array_addr) + + get_entry_name = ApiSetMap.get_entry_name_basicimpl + + def values_for_entry(self, entry): + values_array_v2 = (gdef.API_SET_VALUE_ARRAY_V2).from_address(self.base + entry.DataOffset) + array_size = values_array_v2.Count + array_addr = ctypes.addressof(values_array_v2.Array) + values_array = (gdef.API_SET_VALUE_ENTRY_V2 * array_size).from_address(array_addr) + res = [] + for value in values_array: + if value.ValueLength: + v = self.read_apiset_wstring(value.ValueOffset, value.ValueLength) + res.append(v) + return res + + +class ApiSetMapVersion4(ApiSetMap): + """Represent an ApiSetMap version-4""" + version = 4 #: The version of the ApiSetMap + + def namespace(self): + return gdef.API_SET_NAMESPACE_ARRAY_V4.from_address(self.base) + + def entries_array(self): + namespace = self.namespace() + array_addr = ctypes.addressof(namespace.Array) + array_size = namespace.Count + return (gdef.API_SET_NAMESPACE_ENTRY_V4 * array_size).from_address(array_addr) + + get_entry_name = ApiSetMap.get_entry_name_basicimpl + + def values_for_entry(self, entry): + values_array_v2 = (gdef.API_SET_VALUE_ARRAY_V4).from_address(self.base + entry.DataOffset) + array_size = values_array_v2.Count + array_addr = ctypes.addressof(values_array_v2.Array) + values_array = (gdef.API_SET_VALUE_ENTRY * array_size).from_address(array_addr) + res = [] + for value in values_array: + if value.ValueLength: + v = self.read_apiset_wstring(value.ValueOffset, value.ValueLength) + res.append(v) + return res + +class ApiSetMapVersion6(ApiSetMap): + """Represent an ApiSetMap version-6""" + version = 6 #: The version of the ApiSetMap + + def namespace(self): + return gdef.API_SET_NAMESPACE_V6.from_address(self.base) + + get_entry_name = ApiSetMap.get_entry_name_basicimpl + + def entries_array(self): + namespace = self.namespace() + array_offset = namespace.EntryOffset + array_size = namespace.Count + return (gdef.API_SET_NAMESPACE_ENTRY_V6 * array_size).from_address(self.base + array_offset) + + def values_for_entry(self, entry): + values_array = (gdef.API_SET_VALUE_ENTRY * entry.ValueCount).from_address(self.base + entry.ValueOffset) + res = [] + for value in values_array: + if value.ValueLength: + v = self.read_apiset_wstring(value.ValueOffset, value.ValueLength) + res.append(v) + return res + +API_SET_MAP_BY_VERSION = { + 2: ApiSetMapVersion2, + 4: ApiSetMapVersion4, + 6: ApiSetMapVersion6, +} \ No newline at end of file diff --git a/pythonmemorymodule/windows/winobject/bits.py b/pythonmemorymodule/windows/winobject/bits.py new file mode 100644 index 0000000..286c129 --- /dev/null +++ b/pythonmemorymodule/windows/winobject/bits.py @@ -0,0 +1,264 @@ +import threading + +import windows +import windows.com +from windows.com import COMImplementation +from windows.generated_def.interfaces import (IBackgroundCopyManager, IEnumBackgroundCopyJobs, IBackgroundCopyJob, + IBackgroundCopyCallback, IUnknown, IBackgroundCopyError, IEnumBackgroundCopyFiles, + IBackgroundCopyFile) +import windows.generated_def as gdef + +BackgroundCopyManager = windows.com.IID.from_string("4991d34b-80a1-4291-83b6-3328366b9097") +BackgroundCopyManager1_5 = windows.com.IID.from_string("f087771f-d74f-4c1a-bb8a-e16aca9124ea") +BackgroundCopyManager2_0 = windows.com.IID.from_string("6d18ad12-bde3-4393-b311-099c346e6df9s") +BackgroundCopyManager2_5 = windows.com.IID.from_string("03ca98d6-ff5d-49b8-abc6-03dd84127020") +BackgroundCopyManager3_0 = windows.com.IID.from_string("659cdea7-489e-11d9-a9cd-000d56965251") + +BITS_CLS_BY_VERSION = { + (1,0): BackgroundCopyManager, + (1,5): BackgroundCopyManager1_5, + (2,0): BackgroundCopyManager2_0, + (2,5): BackgroundCopyManager2_5, + (3,0): BackgroundCopyManager3_0, +} + + +class BitsCopyCallback(COMImplementation): + IMPLEMENT = IBackgroundCopyCallback + + def JobError(self, this, job, error): + return True + + def JobTransferred(self, this, job): + #copy_terminated.set() + return True + + def JobModification(self, job, reserved): + return True + +class BitsCopyCallbackSetEvent(BitsCopyCallback): + def __init__(self, event): + super(BitsCopyCallbackSetEvent, self).__init__() + self.event = event + + # With the current generated_def.interface design, the current + # prototype is: + # ctypes.WINFUNCTYPE(HRESULT, PVOID, PVOID)(4, "JobError") + # How should I address that ? + def JobError(self, this, job, error): + job = BitsCopyJob(job) + error = BitsCopyError(error) + errcode, errctx = error.error + print("Copy failed with error code <{0:#x}> (ctx={1})".format(errcode, errctx)) + print("see ") + self.event.set() + return True + + def JobTransferred(self, this, job): + self.event.set() + return True + +class BitsCopyManager(IBackgroundCopyManager): + def get_jobs(self, flags=0): + jobsenum = IEnumBackgroundCopyJobs() + self.EnumJobs(flags, jobsenum) + res = [] + nbretrieved = gdef.DWORD() + while True: + current = BitsCopyJob() + jobsenum.Next(1, current, nbretrieved) + if not nbretrieved.value: + break + res.append(current.promote()) + jobsenum.Release() + return res + + @property + def jobs(self): + return self.get_jobs() + + def create(self, name, jobtype): + myjob_uuid = windows.com.IID() + newjob = BitsCopyJob() + self.CreateJob(name, jobtype, myjob_uuid, newjob) + return newjob.promote() + +class BitsCopyJob(IBackgroundCopyJob): + version = 1 + @property + def owner(self): + owner = gdef.LPWSTR() + self.GetOwner(owner) + data = owner.value + windows.winproxy.CoTaskMemFree(owner) + return data + + + @property + def iid(self): + res = windows.com.IID() + self.GetId(res) + res.update_strid() + return res + + @property + def state(self): + x = gdef.BG_JOB_STATE() + self.GetState(x) + return x.value + + @property + def name(self): + descr = gdef.LPWSTR() + self.GetDisplayName(descr) + data = descr.value + windows.winproxy.CoTaskMemFree(descr) + return data + + @property + def description(self): + descr = gdef.LPWSTR() + self.GetDescription(descr) + data = descr.value + windows.winproxy.CoTaskMemFree(descr) + return data + + @property + def files(self): + enum = IEnumBackgroundCopyFiles() + self.EnumFiles(enum) + count = gdef.ULONG() + enum.GetCount(count) + if not count: + return [] + res_size = gdef.ULONG() + array = (BitsFile * count.value)() + enum.Next(count.value, array, res_size) + return array[:res_size.value] + + @property + def type(self): + res = gdef.BG_JOB_TYPE() + self.GetType(res) + return res.value + + @property + def priority(self): + priority = gdef.BG_JOB_PRIORITY() + self.GetPriority(priority) + return priority.value + + @property + def minimum_retry_delay(self): + retry_delay = gdef.ULONG() + self.GetMinimumRetryDelay(retry_delay) + return retry_delay.value + + @property + def proxy_settings(self): + ProxyUsage = gdef.BG_JOB_PROXY_USAGE() + ProxyList = gdef.LPWSTR() + ProxyBypassList = gdef.LPWSTR() + self.GetProxySettings(ProxyUsage, ProxyList, ProxyBypassList) + result = ProxyUsage.value, ProxyList.value, ProxyBypassList.value + windows.winproxy.CoTaskMemFree(ProxyList) + windows.winproxy.CoTaskMemFree(ProxyBypassList) + return result + + @property + def times(self): + res = gdef.BG_JOB_TIMES() + self.GetTimes(res) + return res + + + def wait(self): + if self.state.value == gdef.BG_JOB_STATE_SUSPENDED: + raise ValueError("Cannot wait a BG_JOB_STATE_SUSPENDED job") + event = threading.Event() + callback_event = BitsCopyCallbackSetEvent(event) + self.SetNotifyInterface(callback_event) + self.SetNotifyFlags(1 | 2) # BG_NOTIFY_JOB_TRANSFERRED | BG_NOTIFY_JOB_ERROR + event.wait() + return True + + + def promote(self): + try: + return self.query(BitsCopyJob2) + except WindowsError as e: + return self + + + def __repr__(self): + return '<{0} iid="{1}" at {2:#08x}>'.format(type(self).__name__, self.iid, id(self)) + + +class BitsCopyJob2(gdef.IBackgroundCopyJob2, BitsCopyJob): + version = 2 + @property + def notify_cmdline(self): + path = gdef.LPWSTR() + params = gdef.LPWSTR() + self.GetNotifyCmdLine(path, params) + strpath, strparams = path.value, params.value + windows.winproxy.CoTaskMemFree(path) + windows.winproxy.CoTaskMemFree(params) + return strpath, strparams + + +class BitsFile(IBackgroundCopyFile): + version = 1 + @property + def local_name(self): + name = gdef.LPWSTR() + self.GetLocalName(name) + data = name.value + windows.winproxy.CoTaskMemFree(name) + return data + + @property + def remote_name(self): + name = gdef.LPWSTR() + self.GetRemoteName(name) + data = name.value + windows.winproxy.CoTaskMemFree(name) + return data + + @property + def progress(self): + progress = gdef.BG_FILE_PROGRESS() + self.GetProgress(progress) + return progress + + def promote(self): + try: + return self.query(BitsFile3) + except WindowsError as e: + return self + +class BitsFile3(gdef.IBackgroundCopyFile3, BitsFile): + version = 3 + @property + def temporary_name(self): + name = gdef.LPWSTR() + self.GetTemporaryName(name) + data = name.value + windows.winproxy.CoTaskMemFree(name) + return data + +class BitsCopyError(IBackgroundCopyError): + @property + def error(self): + err_ctx = gdef.BG_ERROR_CONTEXT() + err = gdef.HRESULT() + self.GetError(err_ctx, err) + return (err.value & 0xffffffff, err_ctx) + + +def create_manager(version=(3,0)): + windows.com.init() + clsid = BITS_CLS_BY_VERSION[version] + manager = BitsCopyManager() + windows.com.create_instance(clsid, manager) + return manager \ No newline at end of file diff --git a/pythonmemorymodule/windows/winobject/device_manager.py b/pythonmemorymodule/windows/winobject/device_manager.py new file mode 100644 index 0000000..72d905f --- /dev/null +++ b/pythonmemorymodule/windows/winobject/device_manager.py @@ -0,0 +1,515 @@ +import ctypes +import itertools + +import windows +from windows import winproxy +import windows.generated_def as gdef +from windows.security import SecurityDescriptor +from windows.utils import fixedproperty + + +class DeviceManager(object): + """Represent the device manager""" + + + @property + def classes(self): + """The list of installed device classes. + + :return: [:class:`DeviceClass`] -- A list of :class:`DeviceClass` + """ + return list(self._classes_generator()) + + def _classes_generator(self): + for index in itertools.count(): + try: + yield self._enumerate_classes(index, 0) + except WindowsError as e: + if e.winerror == gdef.CR_NO_SUCH_VALUE: + break + # Some index values might represent list entries containing invalid class data, + # in which case the function returns CR_INVALID_DATA. + # This return value can be ignored. + if e.winerror == gdef.CR_INVALID_DATA: + continue + raise + + + def _enumerate_classes(self, index, flags=0): + res = DeviceClass() + x = winproxy.CM_Enumerate_Classes(index, res, flags) + return res + + +class DeviceClass(gdef.GUID): + """A Device class, which is mainly a :class:`GUID` with additional attributes""" + def __init__(self): + # Bypass GUID __init__ that is not revelant here + pass + + @fixedproperty + def name(self): + """The name of the device class""" + return self._get_device_class_name() + + @property + def devices(self): + """The set of devices of the current class. + + :type: :class:`DeviceInformationSet` + """ + return self.enumerate_devices() + + def enumerate_devices(self, flags=0): + handle = winproxy.SetupDiGetClassDevsA(self, Flags=flags) + return DeviceInformationSet(handle) + + def _get_device_class_name(self): + name = ctypes.create_string_buffer(gdef.MAX_CLASS_NAME_LEN) + winproxy.SetupDiClassNameFromGuidA(self, name) + return name.value + + def __repr__(self): + guid_cls = self.to_string() + return """<{0} name="{1}" guid={2}>""".format(type(self).__name__, self.name, guid_cls) + + __str__ = __repr__ # Overwrite default GUID str + +class DeviceInformationSet(gdef.HDEVINFO): + """A device instances, can be itered to retrieve the underliyings :class:`DeviceInstance`""" + + def all_device_infos(self): + for index in itertools.count(): + try: + yield self.enum_device_info(index) + except WindowsError as e: + if e.winerror == gdef.ERROR_NO_MORE_ITEMS: + return + raise + + __iter__ = all_device_infos + + def enum_device_info(self, index): + res = DeviceInstance(self) + res.cbSize = ctypes.sizeof(res) + winproxy.SetupDiEnumDeviceInfo(self, index, res) + return res + + def enum_device_interface(self, index): + """Not Implemented Yet""" + raise NotImplementedError("enum_device_interface") + + def all(self): + return list(self) + + +class DeviceInstance(gdef.SP_DEVINFO_DATA): + """An instance of a Device. + + The properties are from the page https://docs.microsoft.com/en-us/windows/win32/api/setupapi/nf-setupapi-setupdigetdeviceregistrypropertya#spdrp_address + """ + def __init__(self, information_set=None): + self.information_set = information_set + + # make a .device_class ? that return the DeviceClass ased in ClassGuid ? + def get_property(self, property): + datatype = gdef.DWORD() + buffer_size = 0x1000 + buffer = windows.utils.BUFFER(gdef.BYTE, nbelt=buffer_size)() + required_size = gdef.DWORD() + # Registry parsing code expect W stuff, so use W function + try: + winproxy.SetupDiGetDeviceRegistryPropertyW(self.information_set, self, property, datatype, buffer.cast(gdef.LPBYTE), buffer_size, required_size) + except WindowsError as e: + if e.winerror == gdef.ERROR_INVALID_DATA: + return None + raise + # PropertyRegDataType + # A pointer to a variable that receives the data type of the property + # that is being retrieved. + # This is one of the standard registry data types + # Look like its registry based, so use the registry decoders :) + return windows.winobject.registry.decode_registry_buffer(datatype.value, buffer, required_size.value) + + + def _generate_property_getter(prop): + def getter(self): + return self.get_property(prop) + return property(getter) + + name = _generate_property_getter(gdef.SPDRP_FRIENDLYNAME) + """The name of the device""" + description = _generate_property_getter(gdef.SPDRP_DEVICEDESC) + """The description of the device""" + hardware_id = _generate_property_getter(gdef.SPDRP_HARDWAREID) + """The list of hardware IDs for the device. + (https://docs.microsoft.com/en-us/windows/win32/api/setupapi/nf-setupapi-setupdigetdeviceregistrypropertya#spdrp_hardwareid) + """ + enumerator_name = _generate_property_getter(gdef.SPDRP_ENUMERATOR_NAME) + """The enumerator name of the devices + (https://docs.microsoft.com/en-us/windows/win32/api/setupapi/nf-setupapi-setupdigetdeviceregistrypropertya#spdrp_enumerator_name) + """ + driver = _generate_property_getter(gdef.SPDRP_DRIVER) + """The driver of the device + https://docs.microsoft.com/en-us/windows/win32/api/setupapi/nf-setupapi-setupdigetdeviceregistrypropertya#spdrp_driver + """ + # Map on Device type ? + # https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/specifying-device-types + type = _generate_property_getter(gdef.SPDRP_DEVTYPE) + """The type of device + (https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/specifying-device-types) + """ + upper_filters = _generate_property_getter(gdef.SPDRP_UPPERFILTERS) + """A list of string that contains the names of a device's upper filter drivers.""" + lower_filters = _generate_property_getter(gdef.SPDRP_LOWERFILTERS) + """A list of string that contains the names of a device's lower filter drivers.""" + raw_security_descriptor = _generate_property_getter(gdef.SPDRP_SECURITY) + """The raw (binary) security descriptor of the device""" + # I would prefer to use the security_descriptor sddl + # ssdl = _generate_property_getter(gdef.SPDRP_SECURITY_SDS) + service_name = _generate_property_getter(gdef.SPDRP_SERVICE) + """The name of the service for the device + (https://docs.microsoft.com/en-us/windows/win32/api/setupapi/nf-setupapi-setupdigetdeviceregistrypropertya#spdrp_service) + """ + manufacturer = _generate_property_getter(gdef.SPDRP_MFG) + """The name of the device manufacturer.""" + location_information = _generate_property_getter(gdef.SPDRP_LOCATION_INFORMATION) + """The hardware location of a device.""" + location_paths = _generate_property_getter(gdef.SPDRP_LOCATION_PATHS) + """A list of strings that represents the location of the device in the device tree.""" + # Looks like it can raise ERROR_NO_SUCH_DEVINST + # install_date = _generate_property_getter(gdef.SPDRP_INSTALL_STATE) + capabilites = _generate_property_getter(gdef.SPDRP_CAPABILITIES) + """The device capabilites + (https://docs.microsoft.com/en-us/windows/win32/api/setupapi/nf-setupapi-setupdigetdeviceregistrypropertya#spdrp_capabilities) + """ + bus_type = _generate_property_getter(gdef.SPDRP_BUSTYPEGUID) + """The function retrieves the GUID for the device's bus type.""" + bus_number = _generate_property_getter(gdef.SPDRP_BUSNUMBER) + """The device's bus number.""" + address = _generate_property_getter(gdef.SPDRP_ADDRESS) + """The device's address.""" + ui_number = _generate_property_getter(gdef.SPDRP_UI_NUMBER) + """Retrieves a DWORD value set to the value of the UINumber member of the device's""" + ui_number_desc_format = _generate_property_getter(gdef.SPDRP_UI_NUMBER_DESC_FORMAT) + + # Getter with special error handling + @property + def device_object_name(self): + """The function retrieves a string that contains the name that is associated with the device's PDO.""" + try: + return self.get_property(gdef.SPDRP_PHYSICAL_DEVICE_OBJECT_NAME) + except WindowsError as e: + if e.winerror not in (gdef.ERROR_INVALID_DATA, gdef.ERROR_NO_SUCH_DEVINST): + raise + + + # https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/hardware-resources + # Explanation of types: + # - https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/hardware-resources#logical-configuration-types-for-resource-requirements-lists + def get_first_logical_configuration(self, type): + res = LogicalConfiguration() + try: + winproxy.CM_Get_First_Log_Conf(res, self.DevInst, type) + except WindowsError as e: + if e.winerror == gdef.CR_CALL_NOT_IMPLEMENTED: + e.strerror += " (Cannot be called from Wow64 process since Win8)" + raise + return res + + def get_next_logical_configuration(self, logconf): + res = gdef.HANDLE(0) + winproxy.CM_Get_Next_Log_Conf(res, logconf) + return res + + def _logical_configuration_generator(self, type): + x = self.get_first_logical_configuration(type) + while x: + yield x + try: + x = self.get_next_logical_configuration(x) + except WindowsError as e: + if e.winerror == gdef.CR_NO_MORE_LOG_CONF: + return + raise + + def get_logical_configuration(self, type): + return list(self._logical_configuration_generator(type)) + + + # Allocated Configuration + # From https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/hardware-resources#logical-configuration-types-for-resource-lists + # A resource list identifying resources currently in use by a device instance. + # !!! Only one allocated configuration can exist for each device instance. + @property + def allocated_configuration(self): + """The allocated configuration of the device. + (https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/hardware-resources#logical-configuration-types-for-resource-lists) + + :type: :class:`LogicalConfiguration` + """ + + allocconfs = self.get_logical_configuration(gdef.ALLOC_LOG_CONF) + if not allocconfs: + return allocconfs + assert len(allocconfs) == 1 # Only one allocated configuration can exist for each device instance. + return allocconfs[0] + + # Boot Configuration + # From https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/hardware-resources#logical-configuration-types-for-resource-lists + # A resource list identifying the resources assigned to a device instance when the system is booted + # Only one boot configuration can exist for each device instance. + + @property + def boot_configuration(self): + """The boot configuration of the device. + (https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/hardware-resources#logical-configuration-types-for-resource-lists) + + :type: :class:`LogicalConfiguration` + """ + bootconfs = self.get_logical_configuration(gdef.BOOT_LOG_CONF) + if not bootconfs: + return bootconfs + assert len(bootconfs) == 1 # Only one boot configuration can exist for each device instance. + return bootconfs[0] + + + + # Make properties for Each type of logical configuration ? + + # 'advanced' attributes extrapolated from properties + @property + def security_descriptor(self): + """The security descriptor of the device. + + :type: :class:`~windows.security.SecurityDescriptor` + """ + + return SecurityDescriptor.from_binary(self.raw_security_descriptor) + + def __repr__(self): + return """<{0} "{1}" (id={2})>""".format(type(self).__name__, self.description, self.DevInst) + + +class LogicalConfiguration(gdef.HANDLE): + """Logical Configuration of a Device instance""" + + def get_next_resource_descriptor(self, resource, resdes=None): + if resdes is None: + # Using logical-conf as resdes will retrieve the first one + # https://docs.microsoft.com/en-us/windows/win32/api/cfgmgr32/nf-cfgmgr32-cm_get_next_res_des#remarks + resdes = self + resid = None + if resource == gdef.ResType_All: + resid = gdef.RESOURCEID() + res = gdef.HANDLE() + winproxy.CM_Get_Next_Res_Des(res, resdes, resource, resid, 0) + resdes_type = resid.value if resid is not None else resource + return ResourceDescriptor.from_handle_and_type(res.value, resdes_type) + + def get_resources_for_type(self, type): + try: + current = self.get_next_resource_descriptor(type) + yield current + while True: + current = self.get_next_resource_descriptor(type, current) + yield current + except WindowsError as e: + if e.winerror == gdef.CR_NO_MORE_RES_DES: + return + raise + + @property + def resources(self): + """The list of resources in the current logical configuration + + :type: [:class:`ResourceDescriptor`] -- A list of [:class:`ResourceDescriptor`] + """ + return list(self.get_resources_for_type(gdef.ResType_All)) + + def __repr__(self): + return "<{0}>".format(type(self).__name__) + + +ResType_Mapper = gdef.FlagMapper( + gdef.ResType_None, + gdef.ResType_Mem, + gdef.ResType_IO, + gdef.ResType_DMA, + gdef.ResType_IRQ, + gdef.ResType_BusNumber, + gdef.ResType_MemLarge, + gdef.ResType_ClassSpecific, + gdef.ResType_DevicePrivate, + gdef.ResType_MfCardConfig, + gdef.ResType_PcCardConfig, + +) + +class ResourceDescriptor(gdef.HANDLE): + """Describe a resource allocated or reserved by a device instance. + This class is a base class, all resources returned by :class:`LogicalConfiguration` should be one of the following: + + * :class:`ResourceNoType` + * :class:`MemoryResource` + * :class:`IoResource` + * :class:`DmaResource` + * :class:`IrqResource` + * :class:`BusNumberResource` + * :class:`MemLargeResource` + * :class:`ClassSpecificResource` + * :class:`DevicePrivateResource` + * :class:`MfCardConfigResource` + * :class:`PcCardConfigResource` + """ + SUBCLASSES = {} + + def __init__(self, handle, type): + super(ResourceDescriptor, self).__init__(handle) + self.type = ResType_Mapper[type] + + @classmethod + def from_handle_and_type(cls, handle, type): + ecls = cls.SUBCLASSES[type] + return ecls(handle, type) + + @property + def rawdata(self): + """The raw data describing the resource""" + data_size = gdef.ULONG() + winproxy.CM_Get_Res_Des_Data_Size(data_size, self) + if not self: + return None + data_size = data_size.value + buffer = ctypes.create_string_buffer(data_size) + winproxy.CM_Get_Res_Des_Data(self, buffer, data_size) + return bytearray(buffer[:data_size]) + + def __repr__(self): + return "<{0} type={1!r}>".format(type(self).__name__, self.type) + + +class ResourceDescriptorWithHeader(ResourceDescriptor): + # Assert the header is the first field + @property + def header_type(self): + # Type of first field + return self.DATA_TYPE._fields_[0][1] + + @property + def header(self): + return self.header_type.from_buffer(self.rawdata) + + @property + def data(self): + return None + +class ResourceDescriptorWithHeaderAndRanges(ResourceDescriptorWithHeader): + def count_field_name(self): + # Assert (manyally checked) that the first field of the + # header is a field containing the size of the data array + # Return name of the first field of the header + return self.header_type._fields_[0][0] + + @property + def data(self): + count_field_name = self.count_field_name() + count = getattr(self.header, count_field_name) + # No entry: + if not count: + return [] + raise NotImplementedError("Resource descriptor with non-zero entry in range array") + + +class ResourceNoType(ResourceDescriptor): + @property + def data(self): + return self.rawdata + +class MemoryResource(ResourceDescriptorWithHeaderAndRanges): + """A resource of type MEM_RESOURCE""" + DATA_TYPE = gdef.MEM_RESOURCE + + def __str__(self): + return "<{0} : [{1:#016x}-{2:#016x}]>".format(type(self).__name__, self.header.MD_Alloc_Base, self.header.MD_Alloc_End) + +class IoResource(ResourceDescriptorWithHeaderAndRanges): + """A resource of type IO_RESOURCE""" + DATA_TYPE = gdef.IO_RESOURCE + + def __str__(self): + return "<{0} : [{1:#016x}-{2:#016x}]>".format(type(self).__name__, self.header.IOD_Alloc_Base, self.header.IOD_Alloc_End) + +class DmaResource(ResourceDescriptorWithHeaderAndRanges): + """A resource of type DMA_RESOURCE""" + DATA_TYPE = gdef.DMA_RESOURCE + + def __str__(self): + return "<{0} : [{1:#016x}]>".format(type(self).__name__, self.header.DD_Alloc_Chan) + + +class IrqResource(ResourceDescriptorWithHeaderAndRanges): + """A resource of type IRQ_RESOURCE""" + # 32/64 based on current process bitness + # Cross bitness cannot be implemented as >=Win8 block it + DATA_TYPE = gdef.IRQ_RESOURCE + + def __str__(self): + return "<{0} : [{1:#016x}]>".format(type(self).__name__, self.header.IRQD_Alloc_Num) + + +class BusNumberResource(ResourceDescriptorWithHeaderAndRanges): + """A resource of type BUSNUMBER_RESOURCE""" + DATA_TYPE = gdef.BUSNUMBER_RESOURCE + + def __str__(self): + return "<{0} : [{1:#016x}-{2:#016x}]>".format(type(self).__name__, self.header.BUSD_Alloc_Base, self.header.BUSD_Alloc_End) + + +class MemLargeResource(ResourceDescriptor): + """A resource of type MEM_LARGE_RESOURCE""" + DATA_TYPE = gdef.MEM_LARGE_RESOURCE + + def __str__(self): + return "<{0} : [{1:#016x}-{2:#016x}]>".format(type(self).__name__, self.header.MLD_Alloc_Base, self.header.MLD_Alloc_End) + +class ClassSpecificResource(ResourceDescriptorWithHeader): + """A resource of type CS_RESOURCE""" + DATA_TYPE = gdef.CS_RESOURCE + # Any idea for __str__ ? + +class DevicePrivateResource(ResourceDescriptor): + """A device private resource + (https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devprivate-resource) + """ + + @property + def header(self): + return None + + # Any idea for __str__ ? + +class MfCardConfigResource(ResourceDescriptorWithHeader): + """A resource of type MFCARD_RESOURCE""" + DATA_TYPE = gdef.MFCARD_RESOURCE + # Any idea for __str__ ? + +class PcCardConfigResource(ResourceDescriptorWithHeader): + """A resource of type PCCARD_RESOURCE""" + DATA_TYPE = gdef.PCCARD_RESOURCE + # Any idea for __str__ ? + +# Flemme de faire une meta-classe pour ca.. +ResourceDescriptor.SUBCLASSES.update({ + gdef.ResType_None: ResourceNoType, + gdef.ResType_Mem: MemoryResource, + gdef.ResType_IO: IoResource, + gdef.ResType_DMA: DmaResource, + gdef.ResType_IRQ: IrqResource, + gdef.ResType_BusNumber: BusNumberResource, + gdef.ResType_MemLarge: MemLargeResource, + gdef.ResType_ClassSpecific: ClassSpecificResource, + gdef.ResType_DevicePrivate: DevicePrivateResource, + gdef.ResType_MfCardConfig: MfCardConfigResource, + gdef.ResType_PcCardConfig: PcCardConfigResource, +}) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winobject/event_log.py b/pythonmemorymodule/windows/winobject/event_log.py new file mode 100644 index 0000000..05cca35 --- /dev/null +++ b/pythonmemorymodule/windows/winobject/event_log.py @@ -0,0 +1,1123 @@ +import ctypes +import os.path +import xml.dom.minidom +from contextlib import contextmanager + +import windows +import windows.generated_def as gdef +from windows import winproxy +from windows.pycompat import int_types, basestring + + +# Helpers + + +@contextmanager +def ClosingEvtHandle(handle): + try: + yield handle + finally: + winproxy.EvtClose(handle) + + +# low-level api helpers +def queryinfo(handle, propertyid): + size = 0x1000 + buffer = ctypes.create_string_buffer(size) + evt = ImprovedEVT_VARIANT.from_buffer(buffer) + res = gdef.DWORD() + windows.winproxy.EvtGetLogInfo(handle, propertyid, size, evt, res) + return evt + +def arrayproperty(handle, property, index, flags=0): + size = 0x1000 + buffer = ctypes.create_string_buffer(size) + evt = ImprovedEVT_VARIANT.from_buffer(buffer) + res = gdef.DWORD() + windows.winproxy.EvtGetObjectArrayProperty(handle, property, index, flags, size, evt, res) + return evt + +def generate_query_function(query_function): + def generated_query_function(handle, propertyid, flags=0): + size = 0x10000 + buffer = ctypes.create_string_buffer(size) + evt = ImprovedEVT_VARIANT.from_buffer(buffer) + res = gdef.DWORD() + query_function(handle, propertyid, flags, size, evt, res) + return evt + return generated_query_function + +chaninfo = generate_query_function(winproxy.EvtGetChannelConfigProperty) +eventinfo = generate_query_function(winproxy.EvtGetEventMetadataProperty) +publishinfo = generate_query_function(winproxy.EvtGetPublisherMetadataProperty) + + +class EvtHandle(gdef.EVT_HANDLE): + # Class attribute function + # Will pass (self) as first parameter (binding) + # No need to pass any param to close ourself :) + _close_function = windows.winproxy.EvtClose + + def __del__(self): + if not bool(self): + return + self._close_function() + +# Class high-level API +class EvtQuery(EvtHandle): + """Represent an Event-log query""" + DEFAULT_TIMEOUT = 0x1000 + + def __init__(self, handle=0, channel=None, timeout=None): + super(EvtQuery, self).__init__(handle) + self.channel = channel + self.timeout = timeout if timeout is not None else self.DEFAULT_TIMEOUT + + def __next__(self): + """Return the next :class:`EvtEvent` matching the query""" + try: + event = EvtEvent(channel=self.channel) + ret = gdef.DWORD() + windows.winproxy.EvtNext(self, 1, event, self.timeout, 0, ret) + except WindowsError as e: + if e.winerror == gdef.ERROR_NO_MORE_ITEMS: + raise StopIteration + raise + assert ret.value == 1 + return event + + def __iter__(self): + return self + + def seek(self, position, seek_flags=None): + """Seek to ``position``. + ``seek_flags`` can be one of: + + * ``None`` + * ``EvtSeekRelativeToFirst`` + * ``EvtSeekRelativeToLast`` + * ``EvtSeekRelativeToBookmark`` + + If ``seek_flags`` is None: + + * ``position >= 0`` will use ``EvtSeekRelativeToFirst`` + * ``position < 0`` will use ``EvtSeekRelativeToLast`` and with ``position+1`` + * This allow retrieve the ``position`` lasts events + """ + + if seek_flags is None: + if position >= 0: + seek_flags = gdef.EvtSeekRelativeToFirst + else: + # -1 + EvtSeekRelativeToLast will give us the last 2 events + # So passing (-1, None) will give us the last event only + # If user do not want this calcul it can directly pass seek_flags + seek_flags = gdef.EvtSeekRelativeToLast + position += 1 + windows.winproxy.EvtSeek(self, position, 0, 0, seek_flags) + + next = __next__ # Yep.. real name is 'next' in Py2 :D + + def all(self): # SqlAlchemy like :) + """Return a list with all the query results + + :rtype: [:class:`EvtEvent`] -- A list of Event + """ + return list(self) + + def first(self): # SqlAlchemy like :) -> allow testing in interactive console + """Return the first query result + + :rtype: :class:`EvtEvent` -- An Event + """ + return next(iter(self)) + + + + +class EvtEvent(EvtHandle): + """An Event log""" + def __init__(self, handle=0, channel=None): + super(EvtEvent, self).__init__(handle) + self.channel = channel + + def render(self, ctx, rtype): + size = 0x10000 + buffer = ctypes.c_buffer(size) + rsize = gdef.DWORD() + elementnb = gdef.DWORD() + try: + windows.winproxy.EvtRender(ctx, self, rtype, size, buffer, rsize, elementnb) + except WindowsError as e: + if e.winerror != gdef.ERROR_INSUFFICIENT_BUFFER: + raise + size = rsize.value + buffer = ctypes.c_buffer(size) + windows.winproxy.EvtRender(ctx, self, rtype, size, buffer, rsize, elementnb) + # Adapting return value type + if rtype != gdef.EvtRenderEventValues: + # import pdb;pdb.set_trace() + # assert elementnb.value == 1 + return buffer[:rsize.value] + # print("Got <{0}> elt".format(elementnb.value)) + return list((ImprovedEVT_VARIANT * elementnb.value).from_buffer(buffer)) + + def render_xml(self): + xml = self.render(None, 1).decode("utf-16") + assert xml[-1] == "\x00" + return xml[:-1] + + def value(self, name, **kwargs): + """Retrieve a value from the event. + ``name`` is an XPath expressions that uniquely identify a node or attribute in the event. + (see https://msdn.microsoft.com/en-us/library/windows/desktop/aa385352(v=vs.85).aspx) + """ + values = self.get_values((name,), **kwargs) + assert len(values) == 1 + return values[0] + + def get_values(self, values, flags=gdef.EvtRenderContextValues): + nbelt = len(values) + pwstr_values = tuple(gdef.LPWSTR(v) for v in values) + pwstr_rarray = (gdef.LPWSTR * nbelt)(*pwstr_values) + # https://msdn.microsoft.com/en-us/library/windows/desktop/aa385352(v=vs.85).aspx + # An array of XPath expressions that uniquely identify a node or attribute in the event that you want to render. + # Each value wil return 1 node :) + ctx = windows.winproxy.EvtCreateRenderContext(nbelt, pwstr_rarray, gdef.EvtRenderContextValues) + result = self.render(ctx, gdef.EvtRenderEventValues) + windows.winproxy.EvtClose(ctx) + return [r.value for r in result] + + def system_values(self): # POC: use this for all @property based on system data ? + ctx = windows.winproxy.EvtCreateRenderContext(0, None, gdef.EvtRenderContextSystem) + result = self.render(ctx, gdef.EvtRenderEventValues) + windows.winproxy.EvtClose(ctx) + return [r.value for r in result] + + def event_values(self): + """The values of the event in a list""" + ctx = windows.winproxy.EvtCreateRenderContext(0, None, gdef.EvtRenderContextUser) + result = self.render(ctx, gdef.EvtRenderEventValues) + windows.winproxy.EvtClose(ctx) + return [r.value for r in result] + + def get_raw_values(self, values, flags=gdef.EvtRenderContextValues): + nbelt = len(values) + pwstr_values = tuple(gdef.LPWSTR(v) for v in values) + pwstr_rarray = (gdef.LPWSTR * nbelt)(*pwstr_values) + # https://msdn.microsoft.com/en-us/library/windows/desktop/aa385352(v=vs.85).aspx + # An array of XPath expressions that uniquely identify a node or attribute in the event that you want to render. + # Each value will return 1 node :) + ctx = windows.winproxy.EvtCreateRenderContext(nbelt, pwstr_rarray, gdef.EvtRenderContextValues) + result = self.render(ctx, gdef.EvtRenderEventValues) + windows.winproxy.EvtClose(ctx) + return list(result) + + + # Properties arround common Event/System values + @property + def provider(self): + """The provider of the event""" + return self.system_values()[gdef.EvtSystemProviderName] + + @property + def computer(self): + """The computer that generated the event""" + return self.system_values()[gdef.EvtSystemComputer] + + @property + def id(self): + """The ID of the Event""" + return self.value("Event/System/EventID") + + @property + def version(self): + """The version of the Event""" + return self.value("Event/System/Version") + + @property + def level(self): + """The level of the Event""" + return self.value("Event/System/Level") + + @property + def opcode(self): + """The opcode of the Event""" + return self.value("Event/System/Opcode") + + @property + def time_created(self): + """The creation time of the Event""" + return self.value("Event/System/TimeCreated/@SystemTime") + + @property + def pid(self): + """The process ID of the Event""" + return self.value("Event/System/Execution/@ProcessID") + + @property + def tid(self): + """The process ID of the Event""" + return self.value("Event/System/Execution/@ThreadID") + + @property + def error_payload(self): + raw = self.value("Event/ProcessingErrorData/EventPayload") + return bytearray(raw) if raw is not None else None + + @property + def user(self): + """The User ID associated with the Event""" + return self.system_values()[gdef.EvtSystemUserID] + + @property + def metadata(self): + """The medata for the current Event + + :type: :class:`EventMetadata` + """ + try: + return self.channel.get_event_metadata(self.id) + except KeyError as e: + if not self.channel.config.classic: + raise + # id not found: try via the Provider in the event (classic channel) + return self.channel.get_classic_event_metadata(self.id, self.provider) + + # Test + @property + def data(self): # user/event specifique data + """A dict of EventData Name:Value for the current dict. + + :type: :class:`dict` + """ + # What about classic channels where there is no event_metadata ? + # Return a dict with [0-1-2-3-4] as key ? raise ? + # Juste use the render_xml ? + event_data_name = (i["name"] for i in self.metadata.event_data if i["type"] == "data") + return {k:v for k,v in zip(event_data_name, self.event_values())} + + def xml_data(self): + xmlevt = xml.dom.minidom.parseString(self.render_xml()) + res = {} + + eventdata = xmlevt.getElementsByTagName("EventData") + if eventdata: + # FIELD_VALUE + for i, datanode in enumerate(xmlevt.getElementsByTagName("Data")): + name = datanode.getAttribute("Name") + if not name: + # Some Data in old EVTX have no name (Windows Powershell) + # Do the best we can by using the position of the event + name = str(i) + + if datanode.hasChildNodes(): + value = datanode.firstChild.nodeValue + else: + value = "" + if not (name not in res): + import pdb;pdb.set_trace() + res[name] = value + userdata = xmlevt.getElementsByTagName("UserData") + if userdata: + # + # + # FIELD_VALUE + # + # + for datanode in userdata[0].firstChild.childNodes: + name = datanode.tagName + if datanode.hasChildNodes(): + value = datanode.firstChild.nodeValue + else: + value = "" + assert name not in res + res[name] = value + return res + + + @property + def date(self): + """``Event.time_created`` as a :class:``datetime``""" + return windows.utils.datetime_from_filetime(self.time_created) + + def __repr__(self): + creation_time = windows.utils.datetime_from_filetime(self.time_created) + return '<{0} id="{self.id}" time="{creation_time}">'.format(type(self).__name__, self=self, creation_time=creation_time) + + +class ImprovedEVT_VARIANT(gdef.EVT_VARIANT): + VALUE_MAPPER = { + gdef.EvtVarTypeNull : 'NoneValue', + gdef.EvtVarTypeString : 'StringVal', + gdef.EvtVarTypeAnsiString : 'AnsiStringVal', + gdef.EvtVarTypeSByte : 'SByteVal', + gdef.EvtVarTypeByte : 'ByteVal', + gdef.EvtVarTypeInt16 : 'Int16Val', + gdef.EvtVarTypeUInt16 : 'UInt16Val', + gdef.EvtVarTypeInt32 : 'Int32Val', + gdef.EvtVarTypeUInt32 : 'UInt32Val', + gdef.EvtVarTypeInt64 : 'Int64Val', + gdef.EvtVarTypeUInt64 : 'UInt64Val', + gdef.EvtVarTypeSingle : 'SingleVal', + gdef.EvtVarTypeDouble : 'DoubleVal', + gdef.EvtVarTypeBoolean : 'BooleanVal', + gdef.EvtVarTypeBinary : 'BinaryVal', + gdef.EvtVarTypeGuid : 'GuidVal', + gdef.EvtVarTypeSizeT : 'SizeTVal', + gdef.EvtVarTypeFileTime : 'FileTimeVal', + gdef.EvtVarTypeSysTime : 'SysTimeVal', + gdef.EvtVarTypeSid : 'SidVal', + gdef.EvtVarTypeHexInt32 : 'UInt32Val', + gdef.EvtVarTypeHexInt64 : 'UInt64Val', + gdef.EvtVarTypeEvtHandle : 'EvtHandleVal', + gdef.EvtVarTypeEvtXml : 'XmlVal', + # Array types: TODO: generic stuff + gdef.EvtVarTypeString + gdef.EVT_VARIANT_TYPE_ARRAY : "StringArr", + gdef.EvtVarTypeUInt16 + gdef.EVT_VARIANT_TYPE_ARRAY : "UInt16Arr", + gdef.EvtVarTypeUInt32 + gdef.EVT_VARIANT_TYPE_ARRAY : "UInt32Arr", + gdef.EvtVarTypeUInt64 + gdef.EVT_VARIANT_TYPE_ARRAY : "UInt64Arr", + } + NoneValue = None + + @property + def Type(self): + raw_type = super(ImprovedEVT_VARIANT, self).Type + return gdef.EVT_VARIANT_TYPE.mapper.get(raw_type, raw_type) + + @property + def value(self): # Prototype !! + attrname = self.VALUE_MAPPER[self.Type] + # print("Resolve type <{0}> -> {1}".format(self.Type, attrname)) + v = getattr(self, attrname) + if self.Type == gdef.EvtVarTypeBinary: + v = v[:self.Count] # No need for a raw UBYTE ptr + elif self.Type == gdef.EvtVarTypeGuid: + v = v[0] # Deref LP_GUID + elif self.Type & gdef.EVT_VARIANT_TYPE_ARRAY: + # TODO: handle all array type + v = v[:self.Count] + return v + + @classmethod + def from_value(cls, value, vtype=None): + if vtype is None: + # Guess type + if isinstance(value, int_types): + vtype = gdef.EvtVarTypeUInt64 + elif isinstance(value, basestring): + vtype = gdef.EvtVarTypeString + elif isinstance(value, bytes): + # not basestring and bytes -> py3 bytes + vtype = gdef.EvtVarTypeBinary + value = windows.utils.BUFFER(gdef.BYTE).from_buffer_copy(value) + else: + raise NotImplementedError("LATER") + self = cls() + # import pdb;pdb.set_trace() + # Yolo test :) + super(ImprovedEVT_VARIANT, ImprovedEVT_VARIANT).Type.__set__(self, vtype) + # super(ImprovedEVT_VARIANT, self).Type = vtype + attrname = self.VALUE_MAPPER[self.Type] + setattr(self, attrname, value) + if self.Type in (gdef.EvtVarTypeBinary, gdef.EvtVarTypeString): + self.Count = len(value) + return self + + def __repr__(self): + return "<{0} of type={1}>".format(type(self).__name__, self.Type) + + + +class EvtChannel(object): + """An Event Log channel""" + DEFAULT_QUERY_FLAGS = gdef.EvtQueryChannelPath + gdef.EvtQueryForwardDirection + + def __init__(self, name): + self.name = name + self.event_metadata_by_id = {} + self.classic_event_metadata_by_id = {} # For classic only + + def query(self, filter=None, ids=None, timeout=None): + """Query the event with the ``ids`` or perform a query with the raw query ``filter`` + + Both parameters are mutually exclusive. + + .. note:: Here are some query examples + + List all events with a event data attribute named 'RuleName': + ``Event/EventData/Data[@Name='RuleName']`` + + List all events with a event data value of 'C:\\\\WINDOWS\\\\System32\\\\svchost.exe': + ``Event/EventData[Data='C:\\WINDOWS\\System32\\svchost.exe']`` + + List all events with an EventID of 2006: + ``Event/System[EventID=2006]`` + + List all event with a given EventID while searching for a specific field value (Sysmon for the test here) + ``Event/System[EventID=3] and Event/EventData/Data[@Name='DestinationIp'] and Event/EventData[Data='10.0.0.2']`` + + :rtype: :class:`EvtQuery` + """ + if ids and filter: + raise ValueError(" and are mutually exclusive") + if ids is not None: + if isinstance(ids, int_types): + ids = (ids,) + ids_filter = " or ".join("EventID={0}".format(id) for id in ids) + filter = "Event/System[{0}]".format(ids_filter) + query_handle = winproxy.EvtQuery(None, self.name, filter, self.DEFAULT_QUERY_FLAGS) + return EvtQuery(query_handle, self, timeout=timeout) + + @property + def events(self): + """The list of all events in the channels, an alias for ``channel.query().all()`` + + :type: [:class:`EvtEvent`] -- A list of :class:`EvtEvent` + """ + return self.query().all() + + @property + def config(self): + """The configuration of the channel + + :type: :class:`ChannelConfig` + """ + return ChannelConfig.from_channel_name(self.name) + + def get_event_metadata(self, id): + """Return the metadata for the event ID ``id`` + + :rtype: :class:`EventMetadata` + """ + try: + return self.event_metadata_by_id[id] + except KeyError as e: + pass + + pub_metada = self.config.publisher.metadata + self.event_metadata_by_id = {evtm.id: evtm for evtm in pub_metada.events_metadata} + return self.event_metadata_by_id[id] + + def get_classic_event_metadata(self, id, providername): + if providername not in self.classic_event_metadata_by_id: + # print("CALCUL FOR PROVIDER: <{0}> !!!!!!!!!!!!!!".format(providername)) + publisher = EvtPublisher(providername) + events_metadata = {x.id: x for x in publisher.metadata.events_metadata} + self.classic_event_metadata_by_id[providername] = events_metadata + return self.classic_event_metadata_by_id[providername][id] + + + def __repr__(self): + return '<{0} "{1}">'.format(type(self).__name__, self.name) + + +class EvtFile(EvtChannel): + """Represent an Evtx file""" + DEFAULT_QUERY_FLAGS = gdef.EvtQueryFilePath + gdef.EvtQueryForwardDirection + + @property + def config(self): + """Not implemented for EvtFile + + :raise: :class:`NotImplementedError` + """ + raise NotImplementedError("Cannot retrieve the configuration of an EvtFile") + + +class ChannelConfig(EvtHandle): + """The configuration of a event channel""" + def __init__(self, handle, name=None): + super(ChannelConfig, self).__init__(handle) + self.name = name + + @classmethod + def from_channel_name(cls, name): + """Return the :class:`ChannelConfig` for the channel ``name``""" + return cls(winproxy.EvtOpenChannelConfig(None, name, 0), name) + + @property + def publisher(self): + """The :class:`EvtPublisher` for the channel""" + return EvtPublisher(chaninfo(self, gdef.EvtChannelConfigOwningPublisher).value) + + def publishers(self): + "TEST" + return [EvtPublisher(pub) for pub in chaninfo(self, gdef.EvtChannelPublisherList).value] + + @property + def keywords(self): + return int(chaninfo(self, gdef.EvtChannelPublishingConfigKeywords).value) + + @property + def enabled(self): + return bool(chaninfo(self, gdef.EvtChannelConfigEnabled).value) + + + @property + def classic(self): + """``True`` if the channel is a classic event channel (for example the Application or System log)""" + return bool(chaninfo(self, gdef.EvtChannelConfigClassicEventlog).value) + + def __repr__(self): + return '<{0} "{1}">'.format(type(self).__name__, self.name) + + +class PublisherMetadataChannel(object): + """Represent a PublisherMetadataChannel (see https://docs.microsoft.com/en-us/windows/win32/api/winevt/ne-winevt-evt_publisher_metadata_property_id)""" + + def __init__(self, pub_metadata, channel_id): + super(PublisherMetadataChannel, self).__init__() + self.pub_metadata = pub_metadata + self._id = channel_id + + def _query_channel_metadata_property(self, propertyid): + return self.pub_metadata.chanrefs.property(propertyid, self._id) + + @property + def flags(self): + """The flags of the ``PublisherMetadataChannel``""" + return int(self._query_channel_metadata_property(gdef.EvtPublisherMetadataChannelReferenceFlags)) + + @property + def name(self): + """The name of the ``PublisherMetadataChannel``""" + return str(self._query_channel_metadata_property(gdef.EvtPublisherMetadataChannelReferencePath)) + + @property + def id(self): + """The reference id of the ``PublisherMetadataChannel``""" + return int(self._query_channel_metadata_property(gdef.EvtPublisherMetadataChannelReferenceID)) + + @property + def index(self): + """The reference index of the ``PublisherMetadataChannel``""" + return int(self._query_channel_metadata_property(gdef.EvtPublisherMetadataChannelReferenceIndex)) + + @property + def message_id(self): + """The message id of the ``PublisherMetadataChannel``""" + return int(self._query_channel_metadata_property(gdef.EvtPublisherMetadataChannelReferenceMessageID)) + + +class PublisherMetadataLevel(object): + """Represent a PublisherMetadataLevel (see https://docs.microsoft.com/en-us/windows/win32/api/winevt/ne-winevt-evt_publisher_metadata_property_id)""" + def __init__(self, pub_metadata, channel_id): + super(PublisherMetadataLevel, self).__init__() + self.pub_metadata = pub_metadata + self._id = channel_id + + def _query_level_metadata_property(self, propertyid): + return self.pub_metadata.levelrefs.property(propertyid, self._id) + + @property + def name(self): + return str(self._query_level_metadata_property(gdef.EvtPublisherMetadataLevelName)) + + @property + def value(self): + return int(self._query_level_metadata_property(gdef.EvtPublisherMetadataLevelValue)) + + @property + def message_id(self): + return int(self._query_level_metadata_property(gdef.EvtPublisherMetadataLevelMessageID)) + + +class PublisherMetadataOpcode(object): + """Represent a PublisherMetadataOpcode (see https://docs.microsoft.com/en-us/windows/win32/api/winevt/ne-winevt-evt_publisher_metadata_property_id)""" + def __init__(self, pub_metadata, channel_id): + super(PublisherMetadataOpcode, self).__init__() + self.pub_metadata = pub_metadata + self._id = channel_id + + def _query_opcode_metadata_property(self, propertyid): + return self.pub_metadata.opcoderefs.property(propertyid, self._id) + + @property + def name(self): + """The name of the ``PublisherMetadataOpcode``""" + return str(self._query_opcode_metadata_property(gdef.EvtPublisherMetadataOpcodeName)) + + @property + def value(self): + """The opcode value of the ``PublisherMetadataOpcode``""" + return int(self._query_opcode_metadata_property(gdef.EvtPublisherMetadataOpcodeValue)) + + @property + def message_id(self): + """The message id of the ``PublisherMetadataOpcode``""" + return int(self._query_opcode_metadata_property(gdef.EvtPublisherMetadataOpcodeMessageID)) + + +class PublisherMetadataKeyword(object): + """Represent a PublisherMetadataKeyword (see https://docs.microsoft.com/en-us/windows/win32/api/winevt/ne-winevt-evt_publisher_metadata_property_id)""" + + def __init__(self, pub_metadata, channel_id): + super(PublisherMetadataKeyword, self).__init__() + self.pub_metadata = pub_metadata + self._id = channel_id + + def _query_keyword_metadata_property(self, propertyid): + return self.pub_metadata.keywordrefs.property(propertyid, self._id) + + @property + def name(self): + """The name of the ``PublisherMetadataKeyword``""" + return str(self._query_keyword_metadata_property(gdef.EvtPublisherMetadataKeywordName)) + + @property + def value(self): + """The value of the ``PublisherMetadataKeyword``""" + return int(self._query_keyword_metadata_property(gdef.EvtPublisherMetadataKeywordValue)) + + @property + def message_id(self): + """The message id of the ``PublisherMetadataKeyword``""" + return int(self._query_keyword_metadata_property(gdef.EvtPublisherMetadataKeywordMessageID)) + +class PublisherMetadataTask(object): + """Represent a PublisherMetadataTask (see https://docs.microsoft.com/en-us/windows/win32/api/winevt/ne-winevt-evt_publisher_metadata_property_id)""" + def __init__(self, pub_metadata, channel_id): + super(PublisherMetadataTask, self).__init__() + self.pub_metadata = pub_metadata + self._id = channel_id + + def _query_keyword_metadata_property(self, propertyid): + return self.pub_metadata.taskrefs.property(propertyid, self._id) + + @property + def name(self): + """The name of the ``PublisherMetadataTask``""" + return str(self._query_keyword_metadata_property(gdef.EvtPublisherMetadataTaskName)) + + @property + def value(self): + """The value of the ``PublisherMetadataTask``""" + return int(self._query_keyword_metadata_property(gdef.EvtPublisherMetadataTaskValue)) + + @property + def event_guid(self): + """The event GUId of the ``PublisherMetadataTask``""" + return self._query_keyword_metadata_property(gdef.EvtPublisherMetadataTaskEventGuid) + + @property + def message_id(self): + """The message ID GUId of the ``PublisherMetadataTask``""" + return int(self._query_keyword_metadata_property(gdef.EvtPublisherMetadataTaskMessageID)) + +class EvtPublisher(object): + """An Event provider""" + def __init__(self, name): + self.name = name + + @property + def metadata(self): + """Return the metadata for this publisher + + :type: :class:`PublisherMetadata` + """ + return PublisherMetadata.from_publisher_name(self.name) + + def __repr__(self): + return '<{0} "{1}">'.format(type(self).__name__, self.name) + + +class PublisherMetadata(EvtHandle): + """The metadata about an event provider""" + def __init__(self, handle, name=None): + super(PublisherMetadata, self).__init__(handle) + self.name = name + + @classmethod + def from_publisher_name(cls, name): + """The :class:`PublisherMetadata` for the publisher ``name``""" + return cls(winproxy.EvtOpenPublisherMetadata(None, name, None, 0, 0), name) + + @property + def guid(self): + """The GUID associated with this provider + + :type: [:class:`GUID`] -- the GUID in a XXXXXXXXXX-YYYY-ZZZZ-TTTT-VVVVVVVVVV form + """ + return publishinfo(self, gdef.EvtPublisherMetadataPublisherGuid).value + + @property + def chanrefs(self): + """Identifies the channels child element of the provider. + + :type: :class:`PropertyArray` + """ + return PropertyArray(publishinfo(self, gdef.EvtPublisherMetadataChannelReferences).value) + + @property + def levelrefs(self): + """Identifies the levels child element of the provider. + + :type: :class:`PropertyArray` + """ + return PropertyArray(publishinfo(self, gdef.EvtPublisherMetadataLevels).value) + + @property + def opcoderefs(self): + """Identifies the opcodes child element of the provider. + + :type: :class:`PropertyArray` + """ + return PropertyArray(publishinfo(self, gdef.EvtPublisherMetadataOpcodes).value) + + @property + def keywordrefs(self): + """The list of keywords defined by this provider + + :type: :class:`PropertyArray` + """ + return PropertyArray(publishinfo(self, gdef.EvtPublisherMetadataKeywords).value) + + @property + def taskrefs(self): + """The list of tasks defined by this provider + + :type: :class:`PropertyArray` + """ + return PropertyArray(publishinfo(self, gdef.EvtPublisherMetadataTasks).value) + + @property + def channels_metadata(self): + """The :class:`PublisherMetadataChannel` for each channel this provider defines + + :yield: :class:`PublisherMetadataChannel` + """ + return [PublisherMetadataChannel(self, i) for i in range(self.chanrefs.size)] + + @property + def levels_metadata(self): + """The :class:`PublisherMetadataLevel` for each level this provider defines + + :yield: :class:`PublisherMetadataLevel` + """ + return [PublisherMetadataLevel(self, i) for i in range(self.levelrefs.size)] + + @property + def opcodes_metadata(self): + """The :class:`PublisherMetadataOpcode` for each opcode this provider defines + + :yield: :class:`PublisherMetadataOpcode` + """ + return [PublisherMetadataOpcode(self, i) for i in range(self.opcoderefs.size)] + + @property + def tasks_metadata(self): + """The :class:`PublisherMetadataTask` for each opcode this provider defines + + :yield: :class:`PublisherMetadataTask` + """ + return [PublisherMetadataTask(self, i) for i in range(self.taskrefs.size)] + + @property + def keywords_metadata(self): + """The :class:`PublisherMetadataKeyword` for each opcode this provider defines + + :yield: :class:`PublisherMetadataKeyword` + """ + return [PublisherMetadataKeyword(self, i) for i in range(self.keywordrefs.size)] + + @property + def events_metadata(self): + """The :class:`EventMetadata` for each event this provider defines + + :yield: :class:`EventMetadata` + """ + eh = winproxy.EvtOpenEventMetadataEnum(self, 0) + with ClosingEvtHandle(eh): + while True: + try: + nh = windows.winproxy.EvtNextEventMetadata(eh, 0) + yield EventMetadata(nh) + except WindowsError as e: + if e.winerror != gdef.ERROR_NO_MORE_ITEMS: + raise + break + + @property + def channel_name_by_id(self): + """The dict of channel defined by this provider by their id + + :type: :class:`dict` + """ + chansref = self.chanrefs + channame_by_value_id = {} + for i in range(chansref.size): + value = chansref.property(gdef.EvtPublisherMetadataChannelReferenceID, i) + name = chansref.property(gdef.EvtPublisherMetadataChannelReferencePath, i) + channame_by_value_id[value] = name + return channame_by_value_id + + @property + def channels(self): + """The list of :class:`EvtChannel` defined by this provider + + :type: [:class:`EvtChannel`] -- A list of :class:`EvtChannel` + """ + chansref = self.chanrefs + propertyid = gdef.EvtPublisherMetadataChannelReferencePath + return [EvtChannel(chansref.property(propertyid, i)) for i in range(chansref.size)] + + def message(self, msgid): + "TODO" + size = 0x1000 + buffer = ctypes.c_buffer(size) + sbuff = ctypes.cast(buffer, gdef.LPWSTR) + outsize = gdef.DWORD() + try: + winproxy.EvtFormatMessage(self, None, msgid, 0, None, gdef.EvtFormatMessageId, size, sbuff, outsize) + except WindowsError as e: + if e.winerror != gdef.ERROR_EVT_UNRESOLVED_VALUE_INSERT: + raise + return sbuff.value + + @property + def message_id(self): + """ + """ + return publishinfo(self, gdef.EvtPublisherMetadataPublisherMessageID).value + + @property + def message_filepath(self): + """ + """ + return publishinfo(self, gdef.EvtPublisherMetadataMessageFilePath).value + + @property + def message_resource_filepath(self): + """ + """ + return publishinfo(self, gdef.EvtPublisherMetadataResourceFilePath).value + + @property + def message_parameter_filepath(self): + """ + """ + return publishinfo(self, gdef.EvtPublisherMetadataParameterFilePath).value + + + def __repr__(self): + return '<{0} "{1}">'.format(type(self).__name__, self.name) + + +class PropertyArray(gdef.EVT_OBJECT_ARRAY_PROPERTY_HANDLE): + "TODO" + @property + def size(self): + array_size = gdef.DWORD() + windows.winproxy.EvtGetObjectArraySize(self, array_size) + return array_size.value + + def property(self, type, index): + return arrayproperty(self, type, index).value + +class EventMetadata(EvtHandle): + """The Metadata about a given Event type + + + see: https://msdn.microsoft.com/en-us/library/windows/desktop/aa385517(v=vs.85).aspx + """ + + @property + def id(self): + """The ID of the Event""" + # https://docs.microsoft.com/en-us/windows/desktop/wes/eventschema-systempropertiestype-complextype + # Qualifiers: + # A legacy provider uses a 32-bit number to identify its events. + # If the event is logged by a legacy provider, the value of EventID + # element contains the low-order 16 bits of the event identifier and the + # Qualifier attribute contains the high-order 16 bits of the event identifier. + # [Question] Only true for legacy provider / channels ?? + return eventinfo(self, gdef.EventMetadataEventID).value & 0xffff + + @property + def version(self): + """The version of the Event""" + return eventinfo(self, gdef.EventMetadataEventVersion).value + + @property + def channel_id(self): + """The Channel attribute of the Event definition""" + return eventinfo(self, gdef.EventMetadataEventChannel).value + + @property + def keyword(self): + """The keyword attribute of the Event definition""" + return eventinfo(self, gdef.EventMetadataEventKeyword).value + + @property + def opcode(self): + """The opcode attribute of the Event definition""" + return eventinfo(self, gdef.EventMetadataEventOpcode).value + + @property + def level(self): + """The level attribute of the Event definition""" + return eventinfo(self, gdef.EventMetadataEventLevel).value + + @property + def task(self): + """The task attribute of the Event definition""" + return eventinfo(self, gdef.EventMetadataEventTask).value + + @property + def message_id(self): + """Identifies the message attribute of the event definition.""" + return eventinfo(self, gdef.EventMetadataEventMessageID).value + + @property + def template(self): + """Identifies the template attribute of the event definition which is an XML string""" + return eventinfo(self, gdef.EventMetadataEventTemplate).value + + def _parse_event_template_data_element(self, element): + res = {"type": "data"} + res["name"] = element.attributes["name"].value + res["inType"] = element.attributes["inType"].value + res["outType"] = element.attributes["outType"].value + count = element.attributes.get("count", None) + if count: + res["count"] = count.value + length = element.attributes.get("length", None) + if length: + res["length"] = length.value + return res + + def _parse_event_template_struct_element(self, element): + res = {"type": "struct"} + res["name"] = element.attributes["name"].value + res["fields"] = [self._parse_event_template_data_element(elt) for elt in element.childNodes if elt.nodeType == elt.ELEMENT_NODE] + return res + + def _event_data_generator(self, template): + xmldoc = xml.dom.minidom.parseString(template) + xmltemplate = xmldoc.getElementsByTagName("template")[0] + for element in (n for n in xmltemplate.childNodes if n.nodeType == n.ELEMENT_NODE): + if element.tagName == "data": + yield self._parse_event_template_data_element(element) + elif element.tagName == "struct": + yield self._parse_event_template_struct_element(element) + else: + raise ValueError("Unexpected XML element <{0}> in event template".format(element.tagName)) + + @property + def event_data(self): + """The list of attribute specifique for this event. + Retrieved by parsing :data:`EventMetadata.template` + """ + template = self.template + if not template: + return [] + return list(self._event_data_generator(template)) + + def yolo(self): + template = self.template + if not template: + return None + xmltemplate = xml.dom.minidom.parseString(template) + return xmltemplate + + +class EvtlogManager(object): + """The main Evt class to open Evt channel/publisher and evtx file""" + # https://msdn.microsoft.com/en-us/library/windows/desktop/aa385784(v=vs.85).aspx + + def is_implemented(self): + """Return ``True`` if the new Evt-API is implemented on the current computer + + see: https://msdn.microsoft.com/en-us/library/windows/desktop/aa385784(v=vs.85).aspx + """ + return windows.winproxy.is_implemented(windows.winproxy.EvtQuery) + + @property + def channels(self): + h = windows.winproxy.EvtOpenChannelEnum(None, 0) + size = 0x1000 + buffer = ctypes.create_unicode_buffer(size) + ressize = gdef.DWORD() + with ClosingEvtHandle(h): + while True: + try: + windows.winproxy.EvtNextChannelPath(h, size, buffer, ressize) + except WindowsError as e: + if e.winerror != gdef.ERROR_NO_MORE_ITEMS: + raise + return + assert buffer[ressize.value - 1] == "\x00" + name = buffer[:ressize.value - 1] + chan = EvtChannel(name) + yield chan + + @property + def publishers(self): + h = windows.winproxy.EvtOpenPublisherEnum(None, 0) + size = 0x1000 + buffer = ctypes.create_unicode_buffer(size) + ressize = gdef.DWORD() + with ClosingEvtHandle(h): + while True: + try: + windows.winproxy.EvtNextPublisherId(h, size, buffer, ressize) + except WindowsError as e: + if e.winerror != gdef.ERROR_NO_MORE_ITEMS: + raise + return + assert buffer[ressize.value - 1] == "\x00" + name = buffer[:ressize.value - 1] + publisher = EvtPublisher(name) + yield publisher + + + + def open_channel(self, name): + """Open the Evt channel with ``name`` + + :rtype: :class:`EvtChannel` + """ + chan = EvtChannel(name) + chan.config # Force to retrieve a handle (check channel exists) + return chan + + def open_evtx_file(self, filename): + """Open the evtx file with ``filename`` + + :rtype: :class:`EvtFile` + """ + with windows.utils.DisableWow64FsRedirection(): + if not os.path.exists(filename): + raise WindowsError(gdef.ERROR_FILE_NOT_FOUND, "Could not find file <{0}>".format(filename)) + file = EvtFile(filename) + return file + + def open_publisher(self, name): + """Open the Evt publisher with ``name`` + + :rtype: :class:`EvtPublisher` + """ + publisher = EvtPublisher(name) + publisher.metadata # Force to retrieve a handle (check channel exists) + return publisher + + def __getitem__(self, name): + """Open the Evt Channel/Publisher or Evtx file with ``name`` + + :rtype: :class:`EvtChannel` or :class:`EvtPublisher` or :class:`EvtFile` + """ + try: + return self.open_channel(name) + except WindowsError as e: + if e.winerror == gdef.ERROR_ACCESS_DENIED: + raise + + try: + return self.open_publisher(name) + except WindowsError as e: + if e.winerror == gdef.ERROR_ACCESS_DENIED: + raise + # Raise FILE_NOT_FOUND if not found (last chance) + return self.open_evtx_file(name) + diff --git a/pythonmemorymodule/windows/winobject/event_trace.py b/pythonmemorymodule/windows/winobject/event_trace.py new file mode 100644 index 0000000..65e94ad --- /dev/null +++ b/pythonmemorymodule/windows/winobject/event_trace.py @@ -0,0 +1,449 @@ +import ctypes +import windows +import windows.generated_def as gdef +from windows.pycompat import basestring + +# Renommer le fichier etw ? + +MAX_ETW_SESSIONS = 64 +MAX_SESSION_NAME_LEN = 1024 +MAX_LOGFILE_PATH_LEN = 1024 + +MAX_SESSION_NAME_LEN_W = MAX_SESSION_NAME_LEN * 2 +MAX_LOGFILE_PATH_LEN_W = MAX_LOGFILE_PATH_LEN * 2 + + +class EventRecord(gdef.EVENT_RECORD): + @property + def tid(self): + """Thread ID that provided the event""" + return self.EventHeader.ThreadId + + @property + def pid(self): + """Process ID that provided the event""" + return self.EventHeader.ProcessId + + @property + def guid(self): + """Guid of the Event""" + # Well, this is called "ProviderId" but seems to be the Event GUID + # As a provider can generated multiple event with differents GUID + # And this value reflect EVENT_TRACE_HEADER.Guid passed to TraceEvent + return self.EventHeader.ProviderId + + @property + def id(self): + """ID of the Event""" + return self.EventHeader.EventDescriptor.Id + + @property + def opcode(self): + return self.EventHeader.EventDescriptor.Opcode + + @property + def version(self): + return self.EventHeader.EventDescriptor.Version + + @property + def level(self): + return self.EventHeader.EventDescriptor.Level + + @property + def context(self): + if self.UserContext is None: + return None + return ctypes.py_object.from_address(self.UserContext).value + + @property + def user_data(self): + """Event specific data + + :type: :class:`str` + """ + if not (self.UserData and self.UserDataLength): + return "" + dbuf = (ctypes.c_char * self.UserDataLength).from_address(self.UserData) + return dbuf[:] + + # def match(self, provider=None, id=None, opcode=None): + + def __repr__(self): + guid = self.EventHeader.ProviderId + return """<{0} provider="{1}" id={2}>""".format(type(self).__name__, guid, self.id) + + +PEventRecord = ctypes.POINTER(EventRecord) + +class EventTraceProperties(gdef.EVENT_TRACE_PROPERTIES): + """Represent an Event Trace session that may exist or now. (https://docs.microsoft.com/en-us/windows/win32/api/evntrace/ns-evntrace-event_trace_properties) + + This class is widly used by :class:`EtwTrace` + """ + # Test: ascii / Use Wchar ? + FULL_SIZE = ctypes.sizeof(gdef.EVENT_TRACE_PROPERTIES) + MAX_SESSION_NAME_LEN_W + MAX_LOGFILE_PATH_LEN_W + + # def alloc(cls, size) ? + @classmethod + def create(cls): + """Initialize a new :class:`EventTraceProperties`""" + buff = windows.utils.BUFFER(cls)(size=cls.FULL_SIZE) + # ctypes.memset(buff, "\x00", cls.FULL_SIZE) + self = buff[0] + self.Wnode.BufferSize = cls.FULL_SIZE + self.LoggerNameOffset = ctypes.sizeof(cls) + self.LogFileNameOffset = ctypes.sizeof(cls) + MAX_SESSION_NAME_LEN + return self + + def get_logfilename(self): + assert self.LogFileNameOffset + return windows.current_process.read_string(ctypes.addressof(self) + self.LogFileNameOffset) + + def set_logfilename(self, filename): + assert self.LogFileNameOffset + if not filename.endswith("\x00"): + filename += "\x00" + return windows.current_process.write_memory(ctypes.addressof(self) + self.LogFileNameOffset, filename) + + logfile = property(get_logfilename, set_logfilename) #: The logfile associated with the session + + def get_logger_name(self): + assert self.LoggerNameOffset + return windows.current_process.read_string(ctypes.addressof(self) + self.LoggerNameOffset) + + + def set_logfilename(self, filename): + assert self.LoggerNameOffset + if not filename.endswith("\x00"): + filename += "\x00" + return windows.current_process.write_memory(ctypes.addressof(self) + self.LoggerNameOffset, filename) + + name = property(get_logger_name, set_logfilename) #: The name of the session + + @property + def guid(self): + """The GUID of the Event Trace session (see ``Wnode.Guid``)""" + return self.Wnode.Guid + + @property + def id(self): + """The LoggerId if the session (see ``Wnode.HistoricalContext``)""" + return self.Wnode.HistoricalContext + + + def __repr__(self): + return """<{0} name="{1}" guid={2}>""".format(type(self).__name__, self.name, self.guid) + + + # GUID setter ? + +class CtxProcess(object): + def __init__(self, trace, func, stop=False): + self.trace = trace + self.func = func + self.stop = stop + self.timing = {} + + def _get_time(self): + now = gdef.FILETIME() + windows.winproxy.GetSystemTimeAsFileTime(now) + return now + + def __enter__(self): + self.timing["begin"] = self._get_time() + return self.timing + + def __exit__(self, exc_type, exc_value, traceback): + # bad_end = self._get_time() + self.trace.flush() + if self.stop: + self.trace.stop() + # End time after the flush is effective. + self.timing["end"] = self._get_time() + # print("Trace ctx: fake-end: {0:#x}".format(int(fake_end))) + print("Trace ctx: begin={0:#x} | end={1:#x}".format(int(self.timing["begin"]), int(self.timing["end"]))) + self.trace.process(self.func, **self.timing) + + +class EtwTrace(object): + """Represent an ETW Trace for tracing/processing events""" + def __init__(self, name, logfile=None, guid=None): + self.name = windows.pycompat.raw_encode(name) #: The name of the trace + self.logfile = logfile #: The logging file of the trace (``None`` means real time trace) + if guid and isinstance(guid, basestring): + guid = gdef.GUID.from_string(guid) + self.guid = guid #: The guid of the trace + self.handle = 0 + + def exists(self): + """Return ``True`` if the trace already exist (based on its name)""" + prop = EventTraceProperties.create() + try: + windows.winproxy.ControlTraceA(self.handle, self.name, prop, gdef.EVENT_TRACE_CONTROL_QUERY) + except WindowsError as e: + if e.winerror == gdef.ERROR_WMI_INSTANCE_NOT_FOUND: + return False # Not found -> does not exists + raise # Other error -> reraise + return True + + def start(self, flags=0, mode=0): + """Start the tracing""" + prop = EventTraceProperties.create() + prop.NumberOfBuffers = 42 + prop.EnableFlags = flags + prop.LogFileMode = mode + if self.guid: + prop.Wnode.Guid = self.guid + if self.logfile: + prop.logfile = self.logfile + if self.name: # Base REAL_TIME on option ? name presence ? logfile presence ? + prop.LogFileMode |= gdef.EVENT_TRACE_REAL_TIME_MODE + handle = gdef.TRACEHANDLE() + windows.winproxy.StartTraceA(handle, self.name, prop) + if not self.guid: + self.guid = prop.Wnode.Guid + self.handle = handle + + def stop(self, soft=False): # Change name + """stop the tracing. + + ``soft`` will allow to stop a non-existing trace that do not exists/run. + This allow for simpler script that stop/start some EtwTrace. + """ + prop = EventTraceProperties.create() + try: + windows.winproxy.ControlTraceA(0, self.name, prop, gdef.EVENT_TRACE_CONTROL_STOP) + except WindowsError as e: + if soft and e.winerror == gdef.ERROR_WMI_INSTANCE_NOT_FOUND: + return False + raise + return True + + def flush(self): + """Flush the trace""" + prop = EventTraceProperties.create() + windows.winproxy.ControlTraceA(0, self.name, prop, gdef.EVENT_TRACE_CONTROL_FLUSH) + + + def enable(self, guid, flags=0xff, level=0xff): + """Enable the specified event trace provider.""" + if isinstance(guid, basestring): + guid = gdef.GUID.from_string(guid) + return windows.winproxy.EnableTrace(1, flags, level, guid, self.handle) # EnableTraceEx ? + + def enable_ex(self, guid, flags=0xff, level=0xff, any_keyword = 0xffffffff, all_keyword=0x00): + """Enable the specified event trace provider.""" + if isinstance(guid, basestring): + guid = gdef.GUID.from_string(guid) + + # TODO : implement EnableParameters + EVENT_CONTROL_CODE_ENABLE_PROVIDER = 1 + + # EnableTraceEx only accept a UCHAR for the level param + # TODO : maybe raise an Exception instead of silently masking the value ? + level = gdef.UCHAR(chr(level & 0xff)) + + return windows.winproxy.EnableTraceEx2(self.handle, guid, EVENT_CONTROL_CODE_ENABLE_PROVIDER, level , any_keyword, all_keyword, 0, None) + + + def process(self, callback, begin=None, end=None, context=None): + """Process the event retrieved by the trace. + This function will call ``callback`` with any :class:`EventRecord` in the trace. + ``begin/end`` allow to filter and only process events in a given timeframe. + + .. warning:: + + If the trace if ``REALTIME`` (no logfile) this function will hang/process new event until the trace is stopped. + + Using ``logman -ets stop TRACE_NAME`` for exemple. + + """ + if end == "now": + end = gdef.FILETIME() + windows.winproxy.GetSystemTimeAsFileTime(end) + windows.utils.sprint(end) + + logfile = gdef.EVENT_TRACE_LOGFILEW() + logfile.LoggerName = windows.pycompat.raw_decode(self.name) + # logfile.ProcessTraceMode = gdef.PROCESS_TRACE_MODE_EVENT_RECORD | gdef.PROCESS_TRACE_MODE_RAW_TIMESTAMP + logfile.ProcessTraceMode = gdef.PROCESS_TRACE_MODE_EVENT_RECORD + if not self.logfile: + logfile.ProcessTraceMode |= gdef.PROCESS_TRACE_MODE_REAL_TIME + else: + # logfile.ProcessTraceMode |= gdef.PROCESS_TRACE_MODE_REAL_TIME + logfile.LogFileName = self.logfile + + if context: + context_ptr = ctypes.pointer(ctypes.py_object(context)) + logfile.Context = ctypes.cast(context_ptr, ctypes.c_void_p) + + @ctypes.WINFUNCTYPE(gdef.PVOID, PEventRecord) + def real_callback(record_ptr): + try: + x = callback(record_ptr[0]) + except Exception as e: + print("CALLBACK ERROR: {0}".format(e)) + return 1 + if x is None: + x = 1 + return x + + @ctypes.WINFUNCTYPE(gdef.PVOID, gdef.PEVENT_TRACE_LOGFILEW) + def buffer_callback(trace): + print("Buffer-callback: event-lost={0}".format(trace[0].LogfileHeader.EventsLost)) + print("Buffer-callback: buffer-lost={0}".format(trace[0].LogfileHeader.BuffersLost)) + return True + + logfile.EventRecordCallback = ctypes.cast(real_callback, gdef.PVOID) + # logfile.BufferCallback = ctypes.cast(buffer_callback, gdef.PVOID) + r = windows.winproxy.OpenTraceW(logfile) + rh = gdef.TRACEHANDLE(r) + return windows.winproxy.ProcessTrace(rh, 1, begin, end) + + def CtxProcess(self, func, stop=False): + return CtxProcess(self, func, stop=stop) + + def __repr__(self): + return """<{0} name={1!r} logfile={2!r}>""".format(type(self).__name__, self.name, self.logfile) + +class TraceProvider(object): + """Represent a ETW provider, which is just a GUID. + Corresponding name for a provider may be available trhought WMI. + """ + def __init__(self, guid): + self.guid = guid + + @property + def infos(self): + """The :class:`TraceGuidInfo` associated with the provider. + Main use is to retrieve the instances of the provider (directly available with ``instances``) + + :type: :class:`TraceGuidInfo` + """ + size = gdef.DWORD() + info_buffer = ctypes.c_buffer(0x1000) + try: + windows.winproxy.EnumerateTraceGuidsEx(gdef.TraceGuidQueryInfo, self.guid, ctypes.sizeof(self.guid), info_buffer, ctypes.sizeof(info_buffer), size) + except WindowsError as e: + if not e.winerror == gdef.ERROR_INSUFFICIENT_BUFFER: + raise + # Buffer to small + info_buffer = ctypes.c_buffer(size.value) + windows.winproxy.EnumerateTraceGuidsEx(gdef.TraceGuidQueryInfo, self.guid, ctypes.sizeof(self.guid), info_buffer, ctypes.sizeof(info_buffer), size) + return TraceGuidInfo.from_raw_buffer(info_buffer) + + # We dont really care about the C struct layout + # Our trace providers should be able to directly returns its instances + @property + def instances(self): + """The instances of the provider. + + :type: [:class:`TraceProviderInstanceInfo`] -- A list of :class:`TraceProviderInstanceInfo` + """ + return self.infos.instances + + def __repr__(self): + return """<{0} for "{1}">""".format(type(self).__name__, self.guid) + + +class TraceGuidInfo(gdef.TRACE_GUID_INFO): + """Defines the header to the list of sessions that enabled the provider + (see https://docs.microsoft.com/en-us/windows/win32/api/evntrace/ns-evntrace-trace_guid_info) + """ + + @classmethod + def from_raw_buffer(cls, buffer): + self = cls.from_buffer(buffer) + self._raw_buffer_ = buffer + return self + + def _instance_generator(self): + if not self.InstanceCount: + return + abs_offset = ctypes.sizeof(self) + for i in range(self.InstanceCount): + instance = TraceProviderInstanceInfo.from_raw_buffer(self._raw_buffer_, abs_offset) + abs_offset += instance.NextOffset + yield instance + + @property + def instances(self): + """The instances of the provider. + + :type: [:class:`TraceProviderInstanceInfo`] -- A list of :class:`TraceProviderInstanceInfo` + """ + return [x for x in self._instance_generator()] + + def __repr__(self): + return "<{0} InstanceCount={1} Reserved={2}>".format(type(self).__name__, self.InstanceCount, self.Reserved) + + +class TraceProviderInstanceInfo(gdef.TRACE_PROVIDER_INSTANCE_INFO): + """Defines an instance of the provider + (see https://docs.microsoft.com/en-us/windows/win32/api/evntrace/ns-evntrace-trace_provider_instance_info) + """ + @classmethod + def from_raw_buffer(cls, buffer, offset): + self = cls.from_buffer(buffer, offset) + self._offset = offset + self._raw_buffer_ = buffer + return self + + def _instance_generator(self): + offset = self._offset + ctypes.sizeof(self) + entry_size = ctypes.sizeof(gdef.TRACE_ENABLE_INFO) + for i in range(self.EnableCount): + yield gdef.TRACE_ENABLE_INFO.from_buffer(self._raw_buffer_, offset) + offset += entry_size + + @property + def sessions(self): + """The sessions for the instance + + :type: [:class:`~windows.generated_def.winstructs.TRACE_ENABLE_INFO`] -- A list of session + """ + return [x for x in self._instance_generator()] + + def __repr__(self): + return "<{0} Pid={1} EnableCount={2}>".format(type(self).__name__, self.Pid, self.EnableCount) + + +class EtwManager(object): + """An object to query ETW session/providers and open new trace""" + + @property + def sessions(self): + """The list of currently active ETW session. + + :type: [:class:`EventTraceProperties`] -- A list of :class:`EventTraceProperties` + """ + # Create a tuple of MAX_ETW_SESSIONS EventTraceProperties ptr + t = [EventTraceProperties.create() for _ in range(MAX_ETW_SESSIONS)] + # Put this in a ctypes array + array = (gdef.POINTER(EventTraceProperties) * MAX_ETW_SESSIONS)(*(ctypes.pointer(e) for e in t)) + # Cast as array/ptr does not handle subtypes very-well + tarray = ctypes.cast(array, ctypes.POINTER(ctypes.POINTER(gdef.EVENT_TRACE_PROPERTIES))) + count = gdef.DWORD() + windows.winproxy.QueryAllTracesA(tarray, MAX_ETW_SESSIONS, count) + return t[:count.value] + + + @property + def providers(self): + """The list of currently existing ETW providers. + + :type: [:class:`TraceProvider`] -- A list of ETW providers + """ + buffer = windows.utils.BUFFER(gdef.GUID, 0x1000)() + size = gdef.DWORD() + windows.winproxy.EnumerateTraceGuidsEx(gdef.TraceGuidQueryList, None, 0, buffer, buffer.real_size, size) + return [TraceProvider(g) for g in buffer[:size.value // ctypes.sizeof(gdef.GUID)]] + + + # Temp name / API ? + def open_trace(self, name=None, logfile=None, guid=None): + """Open a new ETW Trace + + :return: :class:`EtwTrace` + """ + return EtwTrace(name, logfile, guid) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winobject/exception.py b/pythonmemorymodule/windows/winobject/exception.py new file mode 100644 index 0000000..0556abf --- /dev/null +++ b/pythonmemorymodule/windows/winobject/exception.py @@ -0,0 +1,375 @@ +import ctypes +import windows +from windows.generated_def.winstructs import * +import windows.generated_def.windef as windef + +EXCEPTION_CONTINUE_SEARCH = (0x0) +EXCEPTION_CONTINUE_EXECUTION = (0xffffffff) + +exception_type = [ + "EXCEPTION_ACCESS_VIOLATION", + "EXCEPTION_DATATYPE_MISALIGNMENT", + "EXCEPTION_BREAKPOINT", + "EXCEPTION_SINGLE_STEP", + "EXCEPTION_ARRAY_BOUNDS_EXCEEDED", + "EXCEPTION_FLT_DENORMAL_OPERAND", + "EXCEPTION_FLT_DIVIDE_BY_ZERO", + "EXCEPTION_FLT_INEXACT_RESULT", + "EXCEPTION_FLT_INVALID_OPERATION", + "EXCEPTION_FLT_OVERFLOW", + "EXCEPTION_FLT_STACK_CHECK", + "EXCEPTION_FLT_UNDERFLOW", + "EXCEPTION_INT_DIVIDE_BY_ZERO", + "EXCEPTION_INT_OVERFLOW", + "EXCEPTION_PRIV_INSTRUCTION", + "EXCEPTION_IN_PAGE_ERROR", + "EXCEPTION_ILLEGAL_INSTRUCTION", + "EXCEPTION_NONCONTINUABLE_EXCEPTION", + "EXCEPTION_STACK_OVERFLOW", + "EXCEPTION_INVALID_DISPOSITION", + "EXCEPTION_GUARD_PAGE", + "EXCEPTION_INVALID_HANDLE", + "EXCEPTION_POSSIBLE_DEADLOCK", +] + +# x -> x dict may seems strange but useful to get the Flags (with name) from the int +# exception_name_by_value[0x80000001] -> EXCEPTION_GUARD_PAGE(0x80000001L) +exception_name_by_value = dict([(x, x) for x in [getattr(windows.generated_def.windef, name) for name in exception_type]]) + +class EEXCEPTION_RECORDBase(object): + @property + def ExceptionCode(self): + """The Exception code + + :type: :class:`int`""" + real_code = super(EEXCEPTION_RECORDBase, self).ExceptionCode + return exception_name_by_value.get(real_code, windows.generated_def.windef.Flag("UNKNOW_EXCEPTION", real_code)) + + @property + def ExceptionAddress(self): + """The Exception Address + + :type: :class:`int`""" + x = super(EEXCEPTION_RECORDBase, self).ExceptionAddress + if x is None: + return 0x0 + return x + +class EEXCEPTION_RECORD(EEXCEPTION_RECORDBase, EXCEPTION_RECORD): + """Enhanced exception record""" + + fields = [f[0] for f in EXCEPTION_RECORD._fields_] + """The fields of the structure""" + +class EEXCEPTION_RECORD32(EEXCEPTION_RECORDBase, EXCEPTION_RECORD32): + """Enhanced exception record (32bits)""" + + fields = [f[0] for f in EXCEPTION_RECORD32._fields_] + """The fields of the structure""" + +class EEXCEPTION_RECORD64(EEXCEPTION_RECORDBase, EXCEPTION_RECORD64): + """Enhanced exception record (64bits)""" + + fields = [f[0] for f in EXCEPTION_RECORD64._fields_] + """The fields of the structure""" + + +class EEXCEPTION_DEBUG_INFO32(ctypes.Structure): + """Enhanced Debug info""" + _fields_ = windows.utils.transform_ctypes_fields(EXCEPTION_DEBUG_INFO, {"ExceptionRecord": EEXCEPTION_RECORD32}) + + fields = [f[0] for f in _fields_] + """The fields of the structure""" + +class EEXCEPTION_DEBUG_INFO64(ctypes.Structure): + """Enhanced Debug info""" + _fields_ = windows.utils.transform_ctypes_fields(EXCEPTION_DEBUG_INFO, {"ExceptionRecord": EEXCEPTION_RECORD64}) + + fields = [f[0] for f in _fields_] + """The fields of the structure""" + + +class EEflags(ctypes.Structure): + "Flag view of the Eflags register" + _fields_ = [("CF", DWORD, 1), + ("RES_1", DWORD, 1), + ("PF", DWORD, 1), + ("RES_3", DWORD, 1), + ("AF", DWORD, 1), + ("RES_5", DWORD, 1), + ("ZF", DWORD, 1), + ("SF", DWORD, 1), + ("TF", DWORD, 1), + ("IF", DWORD, 1), + ("DF", DWORD, 1), + ("OF", DWORD, 1), + ("IOPL_1", DWORD, 1), + ("IOPL_2", DWORD, 1), + ("NT", DWORD, 1), + ("RES_15", DWORD, 1), + ("RF", DWORD, 1), + ("VM", DWORD, 1), + ("AC", DWORD, 1), + ("VIF", DWORD, 1), + ("VIP", DWORD, 1), + ("ID", DWORD, 1), + ] + + fields = [f[0] for f in _fields_] + """The fields of the structure""" + + def get_raw(self): + x = DWORD.from_address(ctypes.addressof(self)) + return x.value + + def set_raw(self, value): + x = DWORD.from_address(ctypes.addressof(self)) + x.value = value + return None + + def dump(self): + res = [] + for name in [x[0] for x in self._fields_]: + if name.startswith("RES_"): + continue + if getattr(self, name): + res.append(name) + return "|".join(res) + + def __repr__(self): + return hex(self) + + def __hex__(self): + if self.raw == 0: + return "{0}({1})".format(type(self).__name__, hex(self.raw)) + return "{0}({1}:{2})".format(type(self).__name__, hex(self.raw), self.dump()) + + raw = property(get_raw, set_raw) + """Raw value of the eflags + + :type: :class:`int` + """ + + +class EDr7(ctypes.Structure): + "Flag view of the DR7 register" + _fields_ = [("L0", DWORD, 1), + ("G0", DWORD, 1), + ("L1", DWORD, 1), + ("G1", DWORD, 1), + ("L2", DWORD, 1), + ("G2", DWORD, 1), + ("L3", DWORD, 1), + ("G3", DWORD, 1), + ("LE", DWORD, 1), + ("GE", DWORD, 1), + ("RES_1", DWORD, 3), + ("GD", DWORD, 1), + ("RES_1", DWORD, 2), + ("RW0", DWORD, 2), + ("LEN0", DWORD, 2), + ("RW1", DWORD, 2), + ("LEN1", DWORD, 2), + ("RW2", DWORD, 2), + ("LEN2", DWORD, 2), + ("RW3", DWORD, 2), + ("LEN3", DWORD, 2), + ] + + fields = [f[0] for f in _fields_] + """The fields of the structure""" + +class ECONTEXTBase(object): + """DAT CONTEXT""" + default_dump = () + pc_reg = '' + sp_reg = '' + func_result_reg = '' + special_reg_type = {} + + + def regs(self, to_dump=None): + """Return the name and values of the registers + + :returns: [(reg_name, value)] -- A :class:`list` of :class:`tuple`""" + res = [] + if to_dump is None: + to_dump = self.default_dump + for name in to_dump: + value = getattr(self, name) + if name in self.special_reg_type: + value = self.special_reg_type[name](value) + res.append((name, value)) + return res + + def dump(self, to_dump=None): + """Dump (print) the current context""" + regs = self.regs() + for name, value in regs: + print("{0} -> {1}".format(name, hex(value))) + return None + + def get_pc(self): + return getattr(self, self.pc_reg) + + def set_pc(self, value): + return setattr(self, self.pc_reg, value) + + def get_sp(self): + return getattr(self, self.sp_reg) + + def set_sp(self, value): + return setattr(self, self.sp_reg, value) + + def get_func_result(self): + return getattr(self, self.func_result_reg) + + def set_func_result(self, value): + return setattr(self, self.func_result_reg, value) + + pc = property(get_pc, set_pc, None, "Program Counter register (EIP or RIP)") + sp = property(get_sp, set_sp, None, "Stack Pointer register (ESP or RSP)") + func_result = property(get_func_result, set_func_result, None, "Function Resultat register (EAX or RAX)") + + @property + def EEFlags(self): + """Enhanced view of the Eflags (you also have ``EFlags`` for the raw value) + + :type: :class:`EEflags` + """ + off = type(self).EFlags.offset + x = EEflags.from_address(ctypes.addressof(self) + off) + x.self = self + return x + + @property + def EDr7(self): + """Enhanced view of the DR7 register (you also have ``Dr7`` for the raw value) + + :type: :class:`EDr7` + """ + off = type(self).Dr7.offset + x = EDr7.from_address(ctypes.addressof(self) + off) + x.self = self + return x + +class ECONTEXT32(ECONTEXTBase, CONTEXT32): + default_dump = ('Eip', 'Esp', 'Eax', 'Ebx', 'Ecx', 'Edx', 'Ebp', 'Edi', 'Esi', 'EFlags') + pc_reg = 'Eip' + sp_reg = 'Esp' + func_result_reg = 'Eax' + fields = [f[0] for f in CONTEXT32._fields_] + """The fields of the structure""" + +class ECONTEXTWOW64(ECONTEXTBase, WOW64_CONTEXT): + default_dump = ('Eip', 'Esp', 'Eax', 'Ebx', 'Ecx', 'Edx', 'Ebp', 'Edi', 'Esi', 'EFlags') + pc_reg = 'Eip' + sp_reg = 'Esp' + func_result_reg = 'Eax' + fields = [f[0] for f in WOW64_CONTEXT._fields_] + """The fields of the structure""" + + +class ECONTEXT64(ECONTEXTBase, CONTEXT64): + default_dump = ('Rip', 'Rsp', 'Rax', 'Rbx', 'Rcx', 'Rdx', 'Rbp', 'Rdi', 'Rsi', + 'R8', 'R9', 'R10', 'R11', 'R12', 'R13', 'R14', 'R15', 'EFlags') + pc_reg = 'Rip' + sp_reg = 'Rsp' + func_result_reg = 'Rax' + fields = [f[0] for f in CONTEXT64._fields_] + """The fields of the structure""" + + @classmethod + def new_aligned(cls): + """Return a new :class:`ECONTEXT64` aligned on 16 bits + + temporary workaround or horrible hack ? choose your side + """ + size = ctypes.sizeof(cls) + nb_qword = int((size + 8) / ctypes.sizeof(ULONGLONG)) + buffer = (nb_qword * ULONGLONG)() + struct_address = ctypes.addressof(buffer) + if (struct_address & 0xf) not in [0, 8]: + raise ValueError("ULONGLONG array not aligned on 8") + if (struct_address & 0xf) == 8: + struct_address += 8 + self = cls.from_address(struct_address) + # Keep the raw buffer alive + self._buffer = buffer + return self + +def bitness(): + """Return 32 or 64""" + import platform + bits = platform.architecture()[0] + return int(bits[:2]) + +if bitness() == 32: + ECONTEXT = ECONTEXT32 +else: + ECONTEXT = ECONTEXT64 + + +class EEXCEPTION_POINTERS(ctypes.Structure): + _fields_ = [ + ("ExceptionRecord", ctypes.POINTER(EEXCEPTION_RECORD)), + ("ContextRecord", ctypes.POINTER(ECONTEXT)), + ] + + def dump(self): + """Dump (print) the EEXCEPTION_POINTERS""" + record = self.ExceptionRecord[0] + print("Dumping Exception: ") + print(" ExceptionCode = {0} at {1}".format(record.ExceptionCode, hex(record.ExceptionAddress))) + regs = self.ContextRecord[0].regs() + for name, value in regs: + print(" {0} -> {1}".format(name, hex(value))) + + +class VectoredException(object): + """A decorator that create a callable which can be passed to :func:`AddVectoredExceptionHandler`""" + func_type = ctypes.WINFUNCTYPE(ctypes.c_uint, ctypes.POINTER(EEXCEPTION_POINTERS)) + + def __new__(cls, func): + self = object.__new__(cls) + self.func = func + v = self.func_type(self.decorator) + v.self = self + return v + + def decorator(self, exception_pointers): + try: + return self.func(exception_pointers) + except BaseException as e: + import traceback + print("Ignored Python Exception in Vectored Exception: {0}".format(e)) + traceback.print_exc() + return windef.EXCEPTION_CONTINUE_SEARCH + + +class VectoredExceptionHandler(object): + def __init__(self, pos, handler): + self.handler = VectoredException(handler) + self.pos = pos + + def __enter__(self): + self.value = windows.winproxy.AddVectoredExceptionHandler(self.pos, self.handler) + return self + + def __exit__(self, exc_type, exc_value, traceback): + windows.winproxy.RemoveVectoredExceptionHandler(self.value) + return False + +class DumpContextOnException(VectoredExceptionHandler): + def __init__(self, exit=False): + self.exit = exit + super(DumpContextOnException, self).__init__(self.print_context_result) + + def print_context_result(self, exception_pointers): + except_record = exception_pointers[0].ExceptionRecord[0] + exception_pointers[0].dump() + sys.stdout.flush() + if self.exit: + windows.current_process.exit() + return 0 + diff --git a/pythonmemorymodule/windows/winobject/file.py b/pythonmemorymodule/windows/winobject/file.py new file mode 100644 index 0000000..ea59c03 --- /dev/null +++ b/pythonmemorymodule/windows/winobject/file.py @@ -0,0 +1,63 @@ +import os.path + +import windows +import windows.generated_def as gdef + +from windows import security +from windows import utils + + +class WinFile(object): + def __init__(self, filename=None, handle=None): + if not filename and handle: + raise ValueError("File constructor should be given a filename OR handle") + self.filename = filename + if handle: + self._handle = handle + self._file = utils.create_file_from_handle(self.handle) + + @utils.fixedproperty + def file(self): + assert not getattr(self, "_handle", None) + return open(self.filename, "r") + + # We do not close the handle on __del__ -> the destructor of file will do it ? + # BUt in this case handle without a file will NOT close it.. + @utils.fixedproperty + def handle(self): + if os.path.isdir(self.filename): + return windows.utils.create_file(self.filename, share=gdef.FILE_SHARE_READ | gdef.FILE_SHARE_WRITE, flags=gdef.FILE_FLAG_BACKUP_SEMANTICS) + else: + file = self.file + return utils.get_handle_from_file(file) + + + def get_security_descriptor(self, query_sacl=False, flags=security.SecurityDescriptor.DEFAULT_SECURITY_INFORMATION): + return security.SecurityDescriptor.from_handle(self.handle, query_sacl=query_sacl, flags=flags, obj_type="file") + + def set_security_descriptor(self, sd): + flags = 0 + if sd.owner: + flags |= gdef.OWNER_SECURITY_INFORMATION + if sd.group: + flags |= gdef.GROUP_SECURITY_INFORMATION + if sd.dacl: + flags |= gdef.DACL_SECURITY_INFORMATION + if sd.sacl: + flags |= gdef.SACL_SECURITY_INFORMATION + # Check Mandatory label ? + + handle = windows.utils.create_file(self.filename, access=gdef.GENERIC_READ|gdef.WRITE_DAC, share=gdef.FILE_SHARE_READ | gdef.FILE_SHARE_WRITE, flags=gdef.FILE_FLAG_BACKUP_SEMANTICS) + return windows.winproxy.SetSecurityInfo(handle, gdef.SE_KERNEL_OBJECT, flags, sd.owner, sd.group, sd.dacl, sd.sacl) + + + + security_descriptor = property(get_security_descriptor, set_security_descriptor) + + @classmethod + def from_file(cls): + handle = utils.get_handle_from_file(file) + self = cls(filename=file.name, handle=handle) + self._file = file + return self + diff --git a/pythonmemorymodule/windows/winobject/handle.py b/pythonmemorymodule/windows/winobject/handle.py new file mode 100644 index 0000000..03ba471 --- /dev/null +++ b/pythonmemorymodule/windows/winobject/handle.py @@ -0,0 +1,196 @@ +import os +import ctypes + +import windows +from windows import winproxy +from windows.generated_def import windef +import windows.generated_def as gdef + +current_process_pid = os.getpid() + +class BaseSystemHandle(object): + # Big bypass to prevent missing reference at programm exit.. + _close_function = ctypes.WinDLL("kernel32").CloseHandle + + """A handle of the system""" + @windows.utils.fixedpropety + def process(self): + """The process possessing the handle + + :type: :class:`WinProcess `""" + # "TODO: something smart ? :D" + # return [p for p in windows.system.processes if p.pid == self.dwProcessId][0] + return windows.WinProcess(pid=self.dwProcessId) + + @property + def pid(self): + return self.dwProcessId + + @property + def value(self): + return self.wValue + + + @windows.utils.fixedpropety + def name(self): + """The name of the handle + + :type: :class:`str`""" + return self._get_object_name() + + @windows.utils.fixedpropety + def type(self): + """The type of the handle + + :type: :class:`str`""" + return self._get_object_type() + + @property + def infos(self): + """TODO: DOC""" + return self._get_object_basic_infos() + + def _get_object_name(self): + lh = self.local_handle + size_needed = gdef.DWORD() + yyy = ctypes.c_buffer(0x1000) + winproxy.NtQueryObject(lh, gdef.ObjectNameInformation, ctypes.byref(yyy), ctypes.sizeof(yyy), ctypes.byref(size_needed)) + return gdef.LSA_UNICODE_STRING.from_buffer_copy(yyy[:size_needed.value]).str + + def _get_object_type(self): + lh = self.local_handle + xxx = gdef.PUBLIC_OBJECT_TYPE_INFORMATION() + size_needed = gdef.DWORD() + try: + winproxy.NtQueryObject(lh, gdef.ObjectTypeInformation, ctypes.byref(xxx), ctypes.sizeof(xxx), ctypes.byref(size_needed)) + except WindowsError as e: + if e.code != gdef.STATUS_INFO_LENGTH_MISMATCH: + raise + size = size_needed.value + buffer = ctypes.c_buffer(size) + winproxy.NtQueryObject(lh, gdef.ObjectTypeInformation, buffer, size, ctypes.byref(size_needed)) + xxx = gdef.PUBLIC_OBJECT_TYPE_INFORMATION.from_buffer_copy(buffer) + return xxx.TypeName.str + + def _get_object_basic_infos(self): + pass + lh = self.local_handle + size_needed = gdef.DWORD() + basic_infos = gdef.PUBLIC_OBJECT_BASIC_INFORMATION() + winproxy.NtQueryObject(lh, gdef.ObjectBasicInformation, ctypes.byref(basic_infos), ctypes.sizeof(basic_infos), ctypes.byref(size_needed)) + return basic_infos + + @windows.utils.fixedpropety + def local_handle(self): + """A local copy of the handle, acquired with ``DuplicateHandle`` + + :type: :class:`int`""" + if self.dwProcessId == windows.current_process.pid: + return self.wValue + res = gdef.HANDLE() + winproxy.DuplicateHandle(self.process.handle, self.wValue, windows.current_process.handle, ctypes.byref(res), dwOptions=gdef.DUPLICATE_SAME_ACCESS) + return res.value + + def description(self): + stype = self.type + descr_func = getattr(self, "description_" + stype, None) + if descr_func is None: + return None + return descr_func() + + def description_Process(self): + proc = windows.WinProcess(handle=self.wValue) + res = str(proc) + del proc._handle + return res + + def description_Thread(self): + thread = windows.WinThread(handle=self.wValue) + res = str(thread) + del thread._handle + return res + + def __repr__(self): + return "<{0} value=<0x{1:x}> in process pid={2}>".format(type(self).__name__, self.wValue, self.dwProcessId) + + def __del__(self): + if self.dwProcessId == current_process_pid: + return + if hasattr(self, "_local_handle"): + return self._close_function(self._local_handle) + +class Handle(gdef.SYSTEM_HANDLE, BaseSystemHandle): + pass + +class HandleWow64(gdef.SYSTEM_HANDLE64, BaseSystemHandle): + pass # For wow64 process + +def enumerate_handles(): + if windows.current_process.is_wow_64: + return enumerate_handles_syswow64() + size_needed = gdef.ULONG() + # Should at least be sizeof(gdef.SYSTEM_HANDLE_INFORMATION) + tmp_buffer = windows.utils.BUFFER(gdef.SYSTEM_HANDLE_INFORMATION)() + try: + winproxy.NtQuerySystemInformation(gdef.SystemHandleInformation, tmp_buffer, tmp_buffer.real_size, ReturnLength=ctypes.byref(size_needed)) + except WindowsError as e: + pass + size = size_needed.value + 0x1000 # In case we have some more handle created + buf = windows.utils.BUFFER(gdef.SYSTEM_HANDLE_INFORMATION)(size=size) + size_needed.value = 0 + winproxy.NtQuerySystemInformation(gdef.SystemHandleInformation, buf, buf.real_size, ReturnLength=ctypes.byref(size_needed)) + handle_array = windows.utils.resized_array(buf[0].Handles, buf[0].HandleCount, Handle) + return list(handle_array) + + +def enumerate_handles_syswow64(): + size_needed = gdef.ULONG() + # Should at least be sizeof(gdef.SYSTEM_HANDLE_INFORMATION) + tmp_buffer = windows.utils.BUFFER(gdef.SYSTEM_HANDLE_INFORMATION64)() + try: + windows.syswow64.NtQuerySystemInformation_32_to_64(gdef.SystemHandleInformation, tmp_buffer, tmp_buffer.real_size, ReturnLength=ctypes.byref(size_needed)) + except WindowsError as e: + pass + size = size_needed.value + 0x1000 # In case we have some more handle created + buf = windows.utils.BUFFER(gdef.SYSTEM_HANDLE_INFORMATION64)(size=size) + size_needed.value = 0 + windows.syswow64.NtQuerySystemInformation_32_to_64(gdef.SystemHandleInformation, buf, buf.real_size, ReturnLength=ctypes.byref(size_needed)) + handle_array = windows.utils.resized_array(buf[0].Handles, buf[0].HandleCount, HandleWow64) + return list(handle_array) + + +def enumerate_type(): + "WIP: DO NOT USE" + size_needed = DWORD() + fsize = 8 + fbuffer = ctypes.c_buffer(fsize) + try: + winproxy.NtQueryObject(None, gdef.ObjectTypesInformation, fbuffer, fsize, ctypes.byref(size_needed)) + except WindowsError as e: + if e.code != STATUS_INFO_LENGTH_MISMATCH: + raise + else: + # We had enought memory ? + return + + # Looks like the Wow64 syscall emulation is broken :D + # It write AFTER the buffer if we are a wow64 process :D + # So better allocate a standalone buffer (triggering a ACCESS_VIOLATION) that corrupting the heap + # This is a worst case scenario, as we allocation more space it should not happen ! + size = size_needed.value + 0x200 + size_needed.value = 0 + + with windows.current_process.allocated_memory(size, gdef.PAGE_READWRITE) as buffer_base: + winproxy.NtQueryObject(None, gdef.ObjectTypesInformation, buffer_base, size, ctypes.byref(size_needed)) + # Cache some exceptions ? + # Parse the buffer data in-place as string are addr-dependant + types_info = gdef.OBJECT_TYPES_INFORMATION.from_address(buffer_base) + offset = ctypes.sizeof(gdef.PVOID) # Looks like the size of the struct is PTR aligned as the struct is follower by other stuff + for i in range(types_info.NumberOfTypes): + info = gdef.PUBLIC_OBJECT_TYPE_INFORMATION.from_address(buffer_base + offset) + yield info + offset += ctypes.sizeof(gdef.PUBLIC_OBJECT_TYPE_INFORMATION) + info.TypeName.MaximumLength + if offset % ctypes.sizeof(gdef.PVOID): + offset += ctypes.sizeof(gdef.PVOID) - (offset % ctypes.sizeof(gdef.PVOID)) + # End-of ctx-manager + return diff --git a/pythonmemorymodule/windows/winobject/network.py b/pythonmemorymodule/windows/winobject/network.py new file mode 100644 index 0000000..fe1cd83 --- /dev/null +++ b/pythonmemorymodule/windows/winobject/network.py @@ -0,0 +1,447 @@ +import windows +import ctypes +import socket +import struct + +from windows import winproxy +import windows.generated_def as gdef +from windows.com import interfaces as cominterfaces +from windows.generated_def.winstructs import * +from windows.generated_def.windef import * + + +class TCP4Connection(MIB_TCPROW_OWNER_PID): + """A TCP4 socket (connected or listening)""" + @property + def established(self): + """``True`` if connection is established else it's a listening socket""" + return self.dwState == MIB_TCP_STATE_ESTAB + + @property + def remote_port(self): + """:type: :class:`int`""" + if not self.established: + return None + return socket.ntohs(self.dwRemotePort) + + @property + def local_port(self): + """:type: :class:`int`""" + return socket.ntohs(self.dwLocalPort) + + @property + def local_addr(self): + """Local address IP (x.x.x.x) + + :type: :class:`str`""" + return socket.inet_ntoa(struct.pack("""" + closing = MIB_TCPROW() + closing.dwState = MIB_TCP_STATE_DELETE_TCB + closing.dwLocalAddr = self.dwLocalAddr + closing.dwLocalPort = self.dwLocalPort + closing.dwRemoteAddr = self.dwRemoteAddr + closing.dwRemotePort = self.dwRemotePort + return winproxy.SetTcpEntry(ctypes.byref(closing)) + + def __repr__(self): + if not self.established: + return "".format(self.local_addr, self.local_port) + return " {s.remote_addr}:{s.remote_port}>".format(s=self) + + +class TCP6Connection(MIB_TCP6ROW_OWNER_PID): + """A TCP6 socket (connected or listening)""" + @staticmethod + def _str_ipv6_addr(addr): + return ":".join(c.encode('hex') for c in addr) + + @property + def established(self): + """``True`` if connection is established else it's a listening socket""" + return self.dwState == MIB_TCP_STATE_ESTAB + + @property + def remote_port(self): + """:type: :class:`int`""" + if not self.established: + return None + return socket.ntohs(self.dwRemotePort) + + @property + def local_port(self): + """:type: :class:`int`""" + return socket.ntohs(self.dwLocalPort) + + @property + def local_addr(self): + """Local address IP + + :type: :class:`str`""" + return self._str_ipv6_addr(self.ucLocalAddr) + + @property + def remote_addr(self): + """remote address IP + + :type: :class:`str`""" + if not self.established: + return None + return self._str_ipv6_addr(self.ucRemoteAddr) + + @property + def remote_proto(self): + """Equals to ``self.remote_port`` for Ipv6""" + return self.remote_port + + @property + def remote_host(self): + """Equals to ``self.remote_addr`` for Ipv6""" + return self.remote_addr + + def close(self): + raise NotImplementedError("Closing IPV6 connection non implemented") + + def __repr__(self): + if not self.established: + return "".format(self.local_addr, self.local_port) + return " {2}:{3}>".format(self.local_addr, self.local_port, self.remote_addr, self.remote_port) + + +def get_MIB_TCPTABLE_OWNER_PID_from_buffer(buffer): + x = windows.generated_def.winstructs.MIB_TCPTABLE_OWNER_PID.from_buffer(buffer) + nb_entry = x.dwNumEntries + + class _GENERATED_MIB_TCPTABLE_OWNER_PID(ctypes.Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", TCP4Connection * nb_entry), + ] + + return _GENERATED_MIB_TCPTABLE_OWNER_PID.from_buffer(buffer) + + +def get_MIB_TCP6TABLE_OWNER_PID_from_buffer(buffer): + x = windows.generated_def.winstructs.MIB_TCP6TABLE_OWNER_PID.from_buffer(buffer) + nb_entry = x.dwNumEntries + + # Struct _MIB_TCP6TABLE_OWNER_PID definitions + class _GENERATED_MIB_TCP6TABLE_OWNER_PID(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", TCP6Connection * nb_entry), + ] + + return _GENERATED_MIB_TCP6TABLE_OWNER_PID.from_buffer(buffer) + +class Firewall(cominterfaces.INetFwPolicy2): + """The windows firewall""" + @property + def rules(self): + """The rules of the firewall + + :type: [:class:`FirewallRule`] -- A list of rule + """ + ifw_rules = cominterfaces.INetFwRules() + self.get_Rules(ifw_rules) + + nb_rules = gdef.LONG() + ifw_rules.get_Count(nb_rules) + + unknw = cominterfaces.IUnknown() + ifw_rules.get__NewEnum(unknw) + + pVariant = cominterfaces.IEnumVARIANT() + unknw.QueryInterface(pVariant.IID, pVariant) + + count = gdef.ULONG() + var = windows.com.Variant() + + rules = [] + for i in range(nb_rules.value): + pVariant.Next(1, var, count) + if not count.value: + break + rule = FirewallRule() + idisp = var.asdispatch + idisp.QueryInterface(rule.IID, rule) + rules.append(rule) + return rules + + @property + def current_profile_types(self): + """Mask of the profiles currently enabled + + :type: :class:`long` + """ + cpt = gdef.LONG() + self.get_CurrentProfileTypes(cpt) + return cpt.value + + @property + def enabled(self): + """A maping of the active firewall profiles + + { + + ``NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_DOMAIN(0x1L)``: ``True`` or ``False``, + + ``NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PRIVATE(0x2L)``: ``True`` or ``False``, + + ``NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PUBLIC(0x4L)``: ``True`` or ``False``, + + } + + + :type: :class:`dict` + """ + profiles = [gdef.NET_FW_PROFILE2_DOMAIN, gdef.NET_FW_PROFILE2_PRIVATE, gdef.NET_FW_PROFILE2_PUBLIC] + return {prof: self.enabled_for_profile_type(prof) for prof in profiles} + + + def enabled_for_profile_type(self, profile_type): + enabled = gdef.VARIANT_BOOL() + self.get_FirewallEnabled(profile_type, enabled) + return enabled.value + + + +class FirewallRule(cominterfaces.INetFwRule): + """A rule of the firewall""" + @property + def name(self): + """Name of the rule + + :type: :class:`unicode` + """ + name = gdef.BSTR() + self.get_Name(name) + return name.value + + @property + def description(self): + """Description of the rule + + :type: :class:`unicode` + """ + description = gdef.BSTR() + self.get_Description(description) + return description.value + + @property + def application_name(self): + """Name of the application to which apply the rule + + :type: :class:`unicode` + """ + applicationname = gdef.BSTR() + self.get_ApplicationName(applicationname) + return applicationname.value + + @property + def service_name(self): + """Name of the service to which apply the rule + + :type: :class:`unicode` + """ + servicename = gdef.BSTR() + self.get_ServiceName(servicename) + return servicename.value + + @property + def protocol(self): + """Protocol to which apply the rule + + :type: :class:`long` + """ + protocol = gdef.LONG() + self.get_Protocol(protocol) + return protocol.value + + @property + def local_address(self): + """Local address of the rule + + :type: :class:`unicode` + """ + local_address = gdef.BSTR() + self.get_LocalAddresses(local_address) + return local_address.value + + @property + def remote_address(self): + """Remote address of the rule + + :type: :class:`unicode` + """ + remote_address = gdef.BSTR() + self.get_RemoteAddresses(remote_address) + return remote_address.value + + @property + def direction(self): + """Direction of the rule, values might be: + + * ``NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN(0x1L)`` + * ``NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_OUT(0x2L)`` + + subclass of :class:`long` + """ + direction = gdef.NET_FW_RULE_DIRECTION() + self.get_Direction(direction) + return direction.value + + @property + def interface_types(self): + """Types of interface of the rule + + :type: :class:`unicode` + """ + interface_type = gdef.BSTR() + self.get_InterfaceTypes(interface_type) + return interface_type.value + + @property + def local_port(self): + """Local port of the rule + + :type: :class:`unicode` + """ + local_port = gdef.BSTR() + self.get_LocalPorts(local_port) + return local_port.value + + @property + def remote_port(self): + """Remote port of the rule + + :type: :class:`unicode` + """ + remote_port = gdef.BSTR() + self.get_RemotePorts(remote_port) + return remote_port.value + + @property + def action(self): + """Action of the rule, values might be: + + * ``NET_FW_ACTION_.NET_FW_ACTION_BLOCK(0x0L)`` + * ``NET_FW_ACTION_.NET_FW_ACTION_ALLOW(0x1L)`` + + subclass of :class:`long` + """ + action = gdef.NET_FW_ACTION() + self.get_Action(action) + return action.value + + @property + def enabled(self): + """``True`` if rule is enabled""" + enabled = gdef.VARIANT_BOOL() + self.get_Enabled(enabled) + return enabled.value + + @property + def grouping(self): + """Grouping of the rule + + :type: :class:`unicode` + """ + grouping = gdef.BSTR() + self.get_RemotePorts(grouping) + return grouping.value + + @property + def icmp_type_and_code(self): + icmp_type_and_code = gdef.BSTR() + self.get_RemotePorts(icmp_type_and_code) + return icmp_type_and_code.value + + def __repr__(self): + return u'<{0} "{1}">'.format(type(self).__name__, self.name).encode("ascii", errors='backslashreplace') + +class Network(object): + NetFwPolicy2 = windows.com.IID.from_string("E2B3C97F-6AE1-41AC-817A-F6F92166D7DD") + + @property + def firewall(self): + """The firewall of the system + + :type: :class:`Firewall` + """ + windows.com.init() + firewall = Firewall() + windows.com.create_instance(self.NetFwPolicy2, firewall) + return firewall + + @staticmethod + def _get_tcp_ipv4_sockets(): + size = ctypes.c_uint(0) + try: + winproxy.GetExtendedTcpTable(None, ctypes.byref(size), ulAf=AF_INET) + except winproxy.WinproxyError: + pass # Allow us to set size to the needed value + buffer = (ctypes.c_char * size.value)() + winproxy.GetExtendedTcpTable(buffer, ctypes.byref(size), ulAf=AF_INET) + t = get_MIB_TCPTABLE_OWNER_PID_from_buffer(buffer) + return list(t.table) + + @staticmethod + def _get_tcp_ipv6_sockets(): + size = ctypes.c_uint(0) + try: + winproxy.GetExtendedTcpTable(None, ctypes.byref(size), ulAf=AF_INET6) + except winproxy.WinproxyError: + pass # Allow us to set size to the needed value + buffer = (ctypes.c_char * size.value)() + winproxy.GetExtendedTcpTable(buffer, ctypes.byref(size), ulAf=AF_INET6) + t = get_MIB_TCP6TABLE_OWNER_PID_from_buffer(buffer) + return list(t.table) + + + ipv4 = property(lambda self: self._get_tcp_ipv4_sockets()) + """List of TCP IPv4 socket (connection and listening) + + :type: [:class:`TCP4Connection`]""" + + ipv6 = property(lambda self: self._get_tcp_ipv6_sockets()) + """List of TCP IPv6 socket (connection and listening) + + :type: [:class:`TCP6Connection`] + """ diff --git a/pythonmemorymodule/windows/winobject/object_manager.py b/pythonmemorymodule/windows/winobject/object_manager.py new file mode 100644 index 0000000..95cea9c --- /dev/null +++ b/pythonmemorymodule/windows/winobject/object_manager.py @@ -0,0 +1,226 @@ +import os.path +import ctypes +from collections import namedtuple + +import windows +from windows import winproxy +import windows.generated_def as gdef + + +def query_link(linkpath): + """Resolve the link object with path ``linkpath``""" + obj_attr = gdef.OBJECT_ATTRIBUTES() + obj_attr.Length = ctypes.sizeof(obj_attr) + obj_attr.RootDirectory = 0 + obj_attr.ObjectName = ctypes.pointer(gdef.LSA_UNICODE_STRING.from_string(linkpath)) + obj_attr.Attributes = gdef.OBJ_CASE_INSENSITIVE + obj_attr.SecurityDescriptor = 0 + obj_attr.SecurityQualityOfService = 0 + res = gdef.HANDLE() + x = winproxy.NtOpenSymbolicLinkObject(res, gdef.DIRECTORY_QUERY | gdef.READ_CONTROL , obj_attr) + v = gdef.LSA_UNICODE_STRING.from_size(1000) + s = gdef.ULONG() + try: + winproxy.NtQuerySymbolicLinkObject(res, v, s) + except WindowsError as e: + if not (e.winerror & 0xffffffff) == gdef.STATUS_BUFFER_TOO_SMALL: + raise + # If our initial 1000 buffer is not enought (improbable) retry with correct size + v = gdef.LSA_UNICODE_STRING.from_size(s.value) + winproxy.NtQuerySymbolicLinkObject(res, v, s) + return v.str + + +class KernelObject(object): + """Represent an object in the Object Manager namespace""" + def __init__(self, path, name, type=None): + self.path = path + self.name = name + if path and not path.endswith("\\"): + path += "\\" + self.fullname = path + name + self.type = type + + @property + def target(self): + """Resolve the target of a symbolic link object. + + :rtype: :class:`str` or None if object is not a link + """ + try: + return query_link(self.fullname) + except windows.generated_def.ntstatus.NtStatusException as e: + if e.code != gdef.STATUS_OBJECT_TYPE_MISMATCH: + raise + return None + + def items(self): + """Return the list of tuple (object's name, object) in the current directory object. + + :rtype: [(:class:`str`, :class:`KernelObject`)] -- A list of tuple + + .. note:: + + the :class:`KernelObject` must be of type ``Directory`` or + it will raise :class:`~windows.generated_def.ntstatus.NtStatusException` with + code :data:`~windows.generated_def.STATUS_OBJECT_TYPE_MISMATCH` + """ + path = self.fullname + return [(name, KernelObject(path, name, typename)) for name, typename in self._directory_query_generator()] + + def keys(self): + """Return the list of objects' name in the current directory object. + + :rtype: [:class:`str`] -- A list of name + + .. note:: + + the :class:`KernelObject` must be of type ``Directory`` or + it will raise :class:`~windows.generated_def.ntstatus.NtStatusException` with + code :data:`~windows.generated_def.STATUS_OBJECT_TYPE_MISMATCH` + """ + return list(self) + + def values(self): + """Return the list of objects in the current directory object. + + :rtype: [:class:`KernelObject`] -- A list of object + + .. note:: + + the :class:`KernelObject` must be of type ``Directory`` or + it will raise :class:`~windows.generated_def.ntstatus.NtStatusException` with + code :data:`~windows.generated_def.STATUS_OBJECT_TYPE_MISMATCH` + """ + path = self.fullname + return [KernelObject(path, name, typename) for name, typename in self._directory_query_generator()] + + def _open_directory(self): + path = self.fullname + utf16_len = len(path) * 2 + obj_attr = gdef.OBJECT_ATTRIBUTES() + obj_attr.Length = ctypes.sizeof(obj_attr) + obj_attr.RootDirectory = None + obj_attr.ObjectName = ctypes.pointer(gdef.LSA_UNICODE_STRING.from_string(path)) + obj_attr.Attributes = gdef.OBJ_CASE_INSENSITIVE + obj_attr.SecurityDescriptor = 0 + obj_attr.SecurityQualityOfService = 0 + res = gdef.HANDLE() + winproxy.NtOpenDirectoryObject(res, gdef.DIRECTORY_QUERY | gdef.READ_CONTROL , obj_attr) + return res.value + + def _directory_query_generator(self): + handle = self._open_directory() + size = 0x1000 + buf = ctypes.c_buffer(size) + rres = gdef.ULONG() + ctx = gdef.ULONG() + while True: + try: + # Restart == True has we don't save the buffer when resizing it for next call + winproxy.NtQueryDirectoryObject(handle, buf, size, False, True, ctypes.byref(ctx), rres) + break + except gdef.NtStatusException as e: + if e.code == gdef.STATUS_NO_MORE_ENTRIES: + return + if e.code == gdef.STATUS_MORE_ENTRIES: + # If the call did not extrack all data: retry with bigger buffer + size *= 2 + buf = ctypes.c_buffer(size) + continue + raise + # Function -> _extract_objects ? + t = gdef.OBJECT_DIRECTORY_INFORMATION.from_buffer(buf) + t = gdef.POBJECT_DIRECTORY_INFORMATION(t) + res = {} + for v in t: + if v.Name.Buffer is None: + break + yield v.Name.str, v.TypeName.str + + def __iter__(self): + """Iter over the list of name in the Directory object. + + :yield: :class:`str` -- The names of objects in the directory. + + .. note:: + + the :class:`KernelObject` must be of type ``Directory`` or + it will raise :class:`~windows.generated_def.ntstatus.NtStatusException` with + code :data:`~windows.generated_def.STATUS_OBJECT_TYPE_MISMATCH` + """ + return (name for name, type in self._directory_query_generator()) + + def __repr__(self): + return """<{0} "{1}" (type="{2}")>""".format(type(self).__name__, self.fullname, self.type) + + def get(self, name): + """Retrieve the object ``name`` in the current directory. + + :rtype: :class:`KernelObject` + """ + for objname, objtype in self._directory_query_generator(): + if objname.lower() == name.lower(): + return KernelObject(self.fullname, name, objtype) + raise KeyError("Could not find WinObject <{0}> under <{1}>".format(name, self.fullname)) + + def __getitem__(self, name): + """Query object ``name`` from the directory, split and subquery on ``\\``:: + + >>> obj + + >>> obj["WindowStations"]["WinSta0"] + + >>> obj["WindowStations\\WinSta0"] + + + :rtype: :class:`KernelObject` + :raise: :class:`KeyError` if ``name`` can not be found. + """ + if name.startswith("\\"): + # Are we the root directory ? + if not self.fullname == "\\" : + raise ValueError("Cannot query an object path begining by '\\' from an object other than '\\'") + elif name == "\\": # Ask for root ? return ourself + return self + else: + name = name[1:] # Strip the leading \ and go to normal case + obj = self + for part in name.split("\\"): + try: + obj = obj.get(part) + except gdef.NtStatusException as e: + if e.code == gdef.STATUS_OBJECT_TYPE_MISMATCH: + raise KeyError("Could not find object <{0}> under <{1}> because it is a <{2}>".format( + part, obj.name, obj.type)) + raise # Something smart to do ? + return obj + + +class ObjectManager(object): + """Represent the object manager. + + .. note:: + + For now, it only offers the ``root`` :class:`KernelObject`. But I want a ``manager`` object accessible + from ``windows.system`` just like other API and not directly the ``root`` directory. + """ + + @property + def root(self): + """The root ``\\`` Directory + + :type: :class:`KernelObject` -- The root :class:`KernelObject` + """ + return KernelObject("", "\\", "Directory") + + def __getitem__(self, name): + """Query ``name`` from the root ``\\`` directory:: + + object_manager["RPC Control"]["lsasspirpc"] + object_manager[r"\\RPC Control\\lsasspirpc"] + + :rtype: :class:`KernelObject` + """ + return self.root[name] + diff --git a/pythonmemorymodule/windows/winobject/process.py b/pythonmemorymodule/windows/winobject/process.py new file mode 100644 index 0000000..e9b66a3 --- /dev/null +++ b/pythonmemorymodule/windows/winobject/process.py @@ -0,0 +1,1557 @@ +import sys +import ctypes +import os +import copy +import time +import struct +import itertools + +from contextlib import contextmanager +from collections import namedtuple + +import windows +import windows.native_exec.simple_x86 as x86 +import windows.native_exec.simple_x64 as x64 +import windows.remotectypes as rctypes +import windows.generated_def as gdef + +from windows import injection +from windows import native_exec +from windows import pe_parse +from windows import winproxy +from windows import utils +from windows.dbgprint import dbgprint +from windows.generated_def.winstructs import * +from windows.generated_def.ntstatus import NtStatusException + +from windows.winobject import exception +from windows.winobject import apisetmap +from windows.winobject import token +from windows import security + +from windows.pycompat import raw_encode, raw_decode, basestring + +TimeInfo = namedtuple("TimeInfo", ["creation", "exit", "kernel", "user"]) +"""Time information about a process""" + + +class DeadThread(utils.AutoHandle): + """An already dead thread (returned only by API returning a new thread if thread die before being returned)""" + def __init__(self, handle, tid=None): + if tid is None: + tid = WinThread._get_thread_id(handle) + self.tid = tid + # set AutoHandle _handle + self._handle = handle + + @property + def is_exit(self): + """``True`` if the thread is terminated + + :type: :class:`bool` + """ + return self.exit_code != STILL_ACTIVE + + @property + def exit_code(self): + """The exit code of the thread : ``STILL_ACTIVE`` means the process is not dead + + :type: :class:`int` + """ + res = DWORD() + winproxy.GetExitCodeThread(self.handle, byref(res)) + return res.value + + +class Process(utils.AutoHandle): + @utils.fixedpropety + def is_wow_64(self): + """``True`` if the process is a SysWow64 process (32bit process on 64bits system). + + :type: :class:`bool` + """ + # return utils.is_wow_64(self.handle) + return utils.is_wow_64(self.limited_handle) + + @utils.fixedpropety + def bitness(self): + """The bitness of the process + + :returns: :class:`int` -- 32 or 64 + """ + if windows.system.bitness == 32: + return 32 + if self.is_wow_64: + return 32 + return 64 + + @utils.fixedpropety + def limited_handle(self): + if windows.system.version[0] <= 5: + # Windows XP | Serveur 2003 + return winproxy.OpenProcess(PROCESS_QUERY_INFORMATION, dwProcessId=self.pid) + return winproxy.OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, dwProcessId=self.pid) + + + @utils.fixedpropety + def ppid(self): + """Parent Process ID + + :type: :class:`int` + """ + if windows.current_process.bitness == 32 and self.bitness == 64: + xtype = windows.remotectypes.transform_type_to_remote64bits(PROCESS_BASIC_INFORMATION) + # Fuck-it <3 + data = (ctypes.c_char * ctypes.sizeof(xtype))() + windows.syswow64.NtQueryInformationProcess_32_to_64(self.limited_handle, ProcessInformation=data, ProcessInformationLength=ctypes.sizeof(xtype)) + # Map a remote64bits(PROCESS_BASIC_INFORMATION) at the address of 'data' + x = xtype(ctypes.addressof(data), windows.current_process) + else: + information_type = 0 + x = PROCESS_BASIC_INFORMATION() + winproxy.NtQueryInformationProcess(self.limited_handle, information_type, x) + return x.InheritedFromUniqueProcessId + + @property + def threads(self): + """The threads of the process + + :type: [:class:`WinThread`] -- A list of Thread + """ + owner_pid = self.pid + return [WinThread._from_THREADENTRY32(th, owner=self) for th in windows.system.enumerate_threads_generator() if th.th32OwnerProcessID == owner_pid] + + def virtual_alloc(self, size): + raise NotImplementedError("virtual_alloc") + + def virtual_free(self): + raise NotImplementedError("virtual_free") + + @property + def exit_code(self): + """The exit code of the process : ``STILL_ACTIVE`` means the process is not dead + + :type: :class:`int` + """ + res = DWORD() + winproxy.GetExitCodeProcess(self.handle, byref(res)) + return res.value + + @property + def is_exit(self): + """``True`` if the process is terminated + + :type: :class:`bool` + """ + return self.exit_code != STILL_ACTIVE + + @contextmanager + def allocated_memory(self, size, prot=PAGE_EXECUTE_READWRITE): + """ContextManager to allocate memory and free it + + :type: :class:`int` -- the address of the allocated memory + """ + addr = self.virtual_alloc(size, prot=prot) + try: + yield addr + finally: + winproxy.VirtualFreeEx(self.handle, addr) + + @contextmanager + def virtual_protected(self, addr, size, protect): + """A context manager for local virtual_protect (old Protection are restored at exit)""" + old_protect = DWORD() + self.virtual_protect(addr, size, protect, old_protect) + try: + yield addr + finally: + self.virtual_protect(addr, size, old_protect.value, old_protect) + + def virtual_protect(self, addr, size, protect, old_protect=None): + """Change the access right of one or more page of the process""" + if windows.current_process.bitness == 32 and self.bitness == 64: + if size & 0x0fff: + size = ((size >> 12) + 1) << 12 + if old_protect is None: + old_protect = gdef.DWORD() + xold_protect = ctypes.addressof(old_protect) + xaddr = ULONG64(addr) + addr = ctypes.addressof(xaddr) + xsize = ULONG(size) + size = ctypes.addressof(xsize) + return windows.syswow64.NtProtectVirtualMemory_32_to_64(self.handle, addr, size, protect, xold_protect) + else: + winproxy.VirtualProtectEx(self.handle, addr, size, protect, old_protect) + + + def execute(self, code, parameter=0): + """Execute some native code in the context of the process + + :return: The thread executing the code + :rtype: :class:`WinThread` or :class:`DeadThread` + """ + x = self.virtual_alloc(len(code)) #Todo: free this ? when ? how ? reuse ? + self.write_memory(x, code) + return self.create_thread(x, parameter) + + def query_memory(self, addr): + """Query the memory informations about page at ``addr`` + + :rtype: :class:`~windows.generated_def.winstructs.MEMORY_BASIC_INFORMATION` + """ + if windows.current_process.bitness == 32 and self.bitness == 64: + res = MEMORY_BASIC_INFORMATION64() + try: + v = windows.syswow64.NtQueryVirtualMemory_32_to_64(ProcessHandle=self.handle, BaseAddress=addr, MemoryInformationClass=MemoryBasicInformation, MemoryInformation=res) + except NtStatusException as e: + if e.code & 0xffffffff == 0XC000000D: + raise winproxy.WinproxyError("NtQueryVirtualMemory_32_to_64") + raise + return res + + info_type = {32 : MEMORY_BASIC_INFORMATION32, 64 : MEMORY_BASIC_INFORMATION64} + res = info_type[windows.current_process.bitness]() + ptr = ctypes.cast(byref(res), POINTER(MEMORY_BASIC_INFORMATION)) + winproxy.VirtualQueryEx(self.handle, addr, ptr, sizeof(res)) + return res + + def memory_state(self): + """Yield the memory information for the whole address space of the process + + :yield: :class:`~windows.generated_def.winstructs.MEMORY_BASIC_INFORMATION` + """ + addr = 0 + res = [] + while True: + try: + x = self.query_memory(addr) + yield x + except winproxy.WinproxyError: + return + addr += x.RegionSize + + def query_working_set(self): + if self.bitness == 64 or windows.current_process.bitness == 64: + WSET_BLOCK = EPSAPI_WORKING_SET_BLOCK64 + dummy = PSAPI_WORKING_SET_INFORMATION64() + else: + WSET_BLOCK = EPSAPI_WORKING_SET_BLOCK32 + dummy = PSAPI_WORKING_SET_INFORMATION32() + try: + windows.winproxy.QueryWorkingSet(self.handle, ctypes.byref(dummy), ctypes.sizeof(dummy)) + except WindowsError as e: + if e.winerror != 24: + raise + + NumberOfEntriesType = [f for f in WSET_BLOCK._fields_ if f[0] == "Flags"][0][1] + for i in range(10): + # use the same type as WSET_BLOCK.Flags + class GENERATED_PSAPI_WORKING_SET_INFORMATION(ctypes.Structure): + _fields_ = [ + ("NumberOfEntries", NumberOfEntriesType), + ("WorkingSetInfo", WSET_BLOCK * dummy.NumberOfEntries), + ] + res = GENERATED_PSAPI_WORKING_SET_INFORMATION() + try: + if windows.current_process.bitness == 32 and self.bitness == 64: + windows.syswow64.NtQueryVirtualMemory_32_to_64(self.handle, 0, MemoryWorkingSetList, res) + else: + windows.winproxy.QueryWorkingSet(self.handle, ctypes.byref(res), ctypes.sizeof(res)) + except WindowsError as e: + if e.winerror != 24: + raise + dummy.NumberOfEntries = res.NumberOfEntries + continue + except windows.generated_def.ntstatus.NtStatusException as e: + if e.code != STATUS_INFO_LENGTH_MISMATCH: + raise + dummy.NumberOfEntries = res.NumberOfEntries + continue + return res.WorkingSetInfo + # Raise ? + return None + + def query_working_setex(self, addresses): + if self.bitness == 64 or windows.current_process.bitness == 64: + info_type = EPSAPI_WORKING_SET_EX_INFORMATION64 + else: + info_type = EPSAPI_WORKING_SET_EX_INFORMATION32 + info_array = (info_type * len(addresses))() + for i, data in enumerate(info_array): + info_array[i].VirtualAddress = addresses[i] + if windows.current_process.bitness == 32 and self.bitness == 64: + windows.syswow64.NtQueryVirtualMemory_32_to_64(self.handle, 0, MemoryWorkingSetListEx, info_array) + else: + winproxy.QueryWorkingSetEx(self.handle, ctypes.byref(info_array), ctypes.sizeof(info_array)) + return info_array + + + def get_mapped_filename(self, addr): + """The filename mapped at address ``addr`` or ``None`` + + :rtype: :class:`unicode` or ``None`` + """ + buffer_size = 0x1000 + buffer = ctypes.c_buffer(buffer_size) + + if windows.current_process.bitness == 32 and self.bitness == 64: + target_size = ctypes.c_buffer(buffer_size) + try: + windows.syswow64.NtQueryVirtualMemory_32_to_64(self.handle, addr, MemorySectionName, buffer, buffer_size, target_size) + except NtStatusException as e: + if e.code not in (STATUS_FILE_INVALID, STATUS_INVALID_ADDRESS): + raise + return None + remote_winstring = rctypes.transform_type_to_remote64bits(gdef.LSA_UNICODE_STRING) + mapped_filename = remote_winstring(ctypes.addressof(buffer), windows.current_process) + return mapped_filename.str + + try: + size = winproxy.GetMappedFileNameW(self.handle, addr, buffer, buffer_size) + except winproxy.WinproxyError as e: + if e.winerror not in (gdef.ERROR_UNEXP_NET_ERR, gdef.ERROR_FILE_INVALID): + raise # Raise if error type is not expected: detect mapped aborted transaction + return None + return buffer[: size * 2].decode("utf16") + + def read_byte(self, addr): + """Read a ``CHAR`` at ``addr``""" + sizeof_char = sizeof(CHAR) + return struct.unpack(" check if python shutdown + if sys.path is not None and hasattr(self, "_limited_handle") and self._limited_handle: + # Prevent some bug where dbgprint might be None when __del__ is called in a closing process + # This line is bad -> it reopens a handle closed by 'super(Process, self).__del__()' ._. + dbgprint("Closing limited handle {0} for {1}".format(hex(self._limited_handle), self), "HANDLE") if dbgprint is not None else None + self._close_function(self._limited_handle) + +class Thread(utils.AutoHandle): + def open_token(self, flags=MAXIMUM_ALLOWED, as_self=False): + """Open the Thread token if any (Impersonation) else return None. + ``as_self`` tells which security context should be used + + :returns: :class:`~windows.winobject.token.Token` + + .. note:: + + see https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-openthreadtoken + + """ + token_handle = HANDLE() + try: + winproxy.OpenThreadToken(self.handle, flags, as_self, byref(token_handle)) + except WindowsError as e: + if e.winerror == gdef.ERROR_NO_TOKEN: + # No token to open: return None + return None + raise + return token.Token(token_handle.value) + + def set_token(self, token): + """Set the token for the thread (impersonation). Setting the token to None revert the impersonation""" + thandle = getattr(token, "handle", token) # Accept raw handle & token object + return winproxy.SetThreadToken(self.handle, thandle) + + + _TOKEN_PROPERTY_DOC = """The thread :class:`~windows.winobject.token.Token` + + :getter: :func:`open_token` + :setter: :func:`set_token` + """ + + token = property(open_token, set_token, doc=_TOKEN_PROPERTY_DOC) + + +class CurrentThread(Thread): + """The current thread""" + @property #It's not a fixedpropety because executing thread might change + def tid(self): + """Thread ID + + :type: :class:`int` + """ + return winproxy.GetCurrentThreadId() + + @property + def owner(self): + """The current process + + :type: :class:`CurrentProcess` + """ + return windows.current_process + + def _get_handle(self): + return winproxy.GetCurrentThread() + + def __del__(self): + pass + + def exit(self, code=0): + """Exit the thread""" + return winproxy.ExitThread(code) + + + + def wait(self, timeout=INFINITE): + """Raise :class:`ValueError` to prevent deadlock :D""" + raise ValueError("wait() on current thread") + + +class CurrentProcess(Process): + """The current process""" + get_peb = None + + get_peb_32_code = x86.MultipleInstr() + get_peb_32_code += x86.Mov('EAX', x86.mem('fs:[0x30]')) + get_peb_32_code += x86.Ret() + get_peb_32_code = get_peb_32_code.get_code() + + get_peb_64_code = x64.MultipleInstr() + get_peb_64_code += x64.Mov('RAX', x64.mem('gs:[0x60]')) + get_peb_64_code += x64.Ret() + get_peb_64_code = get_peb_64_code.get_code() + + allocator = native_exec.native_function.allocator + + name = "CurrentProcess" # Used by Winthread for __repr__ + + # Use RtlGetCurrentPeb ? + def get_peb_builtin(self): + if self.get_peb is not None: + return self.get_peb + if self.bitness == 32: + get_peb = native_exec.create_function(self.get_peb_32_code, [PVOID]) + else: + get_peb = native_exec.create_function(self.get_peb_64_code, [PVOID]) + self.get_peb = get_peb + return get_peb + + def _get_handle(self): + return winproxy.GetCurrentProcess() + + @utils.fixedpropety + def limited_handle(self): + return winproxy.GetCurrentProcess() + + + def __del__(self): + pass + + @property + def pid(self): + """Process ID + + :type: :class:`int` + """ + return os.getpid() + + @utils.fixedpropety # leave it has fixed property as we don't care if CurrentProcess is never collected + def peb(self): + """The Process Environment Block of the current process + + :type: :class:`PEB` + """ + return PEB.from_address(self.get_peb_builtin()()) + + @utils.fixedpropety + def bitness(self): + """The bitness of the process + + :type: :class:`int` -- 32 or 64 + """ + import platform + bits = platform.architecture()[0] + return int(bits[:2]) + + def virtual_alloc(self, size, prot=PAGE_EXECUTE_READWRITE): + """Allocate memory in the process + + :return: The address of the allocated memory + :rtype: :class:`int` + """ + return winproxy.VirtualAlloc(dwSize=size, flProtect=prot) + + def virtual_free(self, addr): + """Free memory in the process by virtual_alloc""" + return winproxy.VirtualFree(addr) + + def write_memory(self, addr, data): + """Write data at addr""" + data = raw_encode(data) + # buffertype = (c_char * len(data)).from_address(addr) + # buffertype[:len(data)] = data + ctypes.memmove(addr, data, len(data)) + return True + + def read_memory(self, addr, size): + """Read ``size`` from ``addr`` + + :return: The data read + :rtype: :class:`str` + """ + dbgprint('Read CurrentProcess Memory', 'READMEM') + buffer = ctypes.c_buffer(size) + ctypes.memmove(buffer, addr, size) + return buffer[:] + + def create_thread(self, lpStartAddress, lpParameter, dwCreationFlags=0): + """Create a new thread + + :rtype: :class:`WinThread` or :class:`DeadThread` + """ + handle = winproxy.CreateThread(lpStartAddress=lpStartAddress, lpParameter=lpParameter, dwCreationFlags=dwCreationFlags) + return WinThread._from_handle(handle) + + def load_library(self, dll_path): + """Load the library in current process + + :rtype: :class:`LoadedModule` + """ + dllbase = winproxy.LoadLibraryA(dll_path) + return [m for m in self.peb.modules if m.baseaddr == dllbase][0] + + def execute(self, code, parameter=0): + """Execute native code ``code`` in the current thread. + + :rtype: :class:`int` the return value of the native code""" + f = windows.native_exec.create_function(code, [PVOID, PVOID]) + return f(parameter) + + def exit(self, code=0): + """Exit the process""" + return winproxy.ExitProcess(code) + + def wait(self, timeout=INFINITE): + """Raise :class:`ValueError` to prevent deadlock :D""" + raise ValueError("wait() on current thread") + + @utils.fixedpropety + def peb_syswow(self): + """The 64bits PEB of a SysWow64 process + + :type: :class:`PEB` + """ + if not self.is_wow_64: + raise ValueError("Not a syswow process") + return windows.syswow64.get_current_process_syswow_peb() + + # TODO: use ctypes.string_at / ctypes.wstring_at for read_string / read_wstring ? + + def read_string(self, addr): + return ctypes.string_at(addr) # Raises WindowsError on fail + + def read_wstring(self, addr): + return ctypes.wstring_at(addr) # Raises WindowsError on fail + +class WinThread(Thread): + """Represent a thread """ + + def __init__(self, tid=None, handle=None, owner_pid=None, owner=None): + if tid is None and handle is None: + raise ValueError("Need at least or to create a {0}".format(type(self).__name__)) + + if tid is not None: self._tid = tid + if handle is not None: self._handle = handle + if owner is not None: self._owner = owner + if owner_pid is not None: self._owner_pid = owner_pid + if owner_pid is None and owner: + self._owner_pid = owner.pid + + @classmethod + def _from_THREADENTRY32(cls, entry, owner=None): + tid = entry.th32ThreadID + owner_pid = entry.th32OwnerProcessID + return cls(tid=tid, owner_pid=owner_pid, owner=owner) + + @classmethod + def _from_handle(cls, handle): + # Create a DeadThread if thread is already dead ? + return WinThread(handle=handle) + + @utils.fixedpropety + def tid(self): + """Thread ID + + :type: :class:`int`""" + return self._get_thread_id(self.handle) + + @utils.fixedpropety + def owner_pid(self): + res = THREAD_BASIC_INFORMATION() + windows.winproxy.NtQueryInformationThread(self.handle, ThreadBasicInformation, byref(res), ctypes.sizeof(res)) + owner_id = res.ClientId.UniqueProcess + return owner_id + + @utils.fixedpropety + def owner(self): + """The Process owning the thread + + :type: :class:`WinProcess` + """ + return WinProcess(pid=self.owner_pid) + + @property + def context(self): + """The context of the thread, type depend of the target process. + + :type: :class:`windows.exception.ECONTEXT32` or :class:`windows.exception.ECONTEXT64` or :class:`windows.exception.ECONTEXTWOW64` + """ + if self.owner.bitness == 32 and windows.current_process.bitness == 64: + # Wow64 + x = exception.ECONTEXTWOW64() + x.ContextFlags = CONTEXT_ALL + winproxy.Wow64GetThreadContext(self.handle, x) + return x + + if self.owner.bitness == 64 and windows.current_process.bitness == 32: + x = exception.ECONTEXT64.new_aligned() + x.ContextFlags = CONTEXT_ALL + windows.syswow64.NtGetContextThread_32_to_64(self.handle, x) + return x + + if self.owner.bitness == 32: + x = exception.ECONTEXT32() + else: + x = exception.ECONTEXT64.new_aligned() + x.ContextFlags = CONTEXT_ALL + winproxy.GetThreadContext(self.handle, x) + return x + + @property + def context_syswow(self): + """The 64 bits context of a syswow thread. + + :type: :class:`windows.exception.ECONTEXT64` + """ + if not self.owner.is_wow_64: + raise ValueError("Not a syswow process") + x = exception.ECONTEXT64.new_aligned() + x.ContextFlags = CONTEXT_ALL + if windows.current_process.bitness == 64: + winproxy.GetThreadContext(self.handle, x) + else: + windows.syswow64.NtGetContextThread_32_to_64(self.handle, x) + return x + + + def set_context(self, context): + """Set the thread's context to ``context``""" + if self.owner.bitness == windows.current_process.bitness: + return winproxy.SetThreadContext(self.handle, context) + if windows.current_process.bitness == 64 and self.owner.bitness == 32: + return winproxy.Wow64SetThreadContext(self.handle, context) + return windows.syswow64.NtSetContextThread_32_to_64(self.handle, ctypes.byref(context)) + + + def set_syswow_context(self, context): + """Set a syswow thread's 64 context to ``context``""" + if not self.owner.is_wow_64: + raise ValueError("Not a syswow process") + if windows.current_process.bitness == 64: + return winproxy.SetThreadContext(self.handle, context) + return windows.syswow64.NtSetContextThread_32_to_64(self.handle, ctypes.byref(context)) + + + @property + def start_address(self): + """The start address of the thread + + :type: :class:`int` + """ + if windows.current_process.bitness == 32 and self.owner.bitness == 64: + res = ULONGLONG() + windows.syswow64.NtQueryInformationThread_32_to_64(self.handle, ThreadQuerySetWin32StartAddress, byref(res), ctypes.sizeof(res)) + return res.value + res_size = max(self.owner.bitness, windows.current_process.bitness) + if res_size == 32: + res = ULONG() + else: + res = ULONGLONG() + winproxy.NtQueryInformationThread(self.handle, ThreadQuerySetWin32StartAddress, byref(res), ctypes.sizeof(res)) + return res.value + + def _get_principal_teb_addr(self): + # Returns the 64bits TEB on a 64bits computer (syswow process or not) + # Returns the 32bits TEB on a 32bits computer + + # If we are wow64 process its means we either + # - Want the TEB of a 64b process + # - Want the TEB64 of a Wowprocess + # It's the same code for both + if windows.current_process.is_wow_64: + restype = rctypes.transform_type_to_remote64bits(THREAD_BASIC_INFORMATION) + ressize = (ctypes.sizeof(restype)) + # Manual aligned allocation :DDDD + nb_qword = (ressize + 8) / ctypes.sizeof(ULONGLONG) + buffer = (nb_qword * ULONGLONG)() + struct_address = ctypes.addressof(buffer) + if (struct_address & 0xf) not in [0, 8]: + raise ValueError("ULONGLONG array not aligned on 8") + windows.syswow64.NtQueryInformationThread_32_to_64(self.handle, ThreadBasicInformation, struct_address, ressize) + return restype(struct_address, windows.current_process).TebBaseAddress + + res = THREAD_BASIC_INFORMATION() + windows.winproxy.NtQueryInformationThread(self.handle, ThreadBasicInformation, byref(res), ctypes.sizeof(res)) + return res.TebBaseAddress + + @property + def teb_base(self): + """The address of the thread's TEB. If the owner is a SysWow64 process, return the TEB32. + + :type: :class:`int` + """ + main_teb_addr = self._get_principal_teb_addr() + if not self.owner.is_wow_64: + return main_teb_addr + # import pdb; pdb.set_trace() + # TEB32 is pointed at the begining of the TEB64 + return self.owner.read_dword(main_teb_addr) + + + + @property + def teb_syswow_base(self): + """The address of the thread's TEB64 for a SysWow64 process + + :type: :class:`int` + """ + if not self.owner.is_wow_64: + raise ValueError("Not a syswow process") + # just return the main TEB + return self._get_principal_teb_addr() + + + def exit(self, code=0): + """Exit the thread""" + return winproxy.TerminateThread(self.handle, code) + + def resume(self): + """Resume the thread""" + return winproxy.ResumeThread(self.handle) + + def suspend(self): + """Suspend the thread""" + return winproxy.SuspendThread(self.handle) + + def _get_handle(self): + return winproxy.OpenThread(dwThreadId=self.tid) + + @property + def is_exit(self): + """``True`` if the thread is terminated + + :type: :class:`bool` + """ + return self.exit_code != STILL_ACTIVE + + @property + def exit_code(self): + """The exit code of the thread : ``STILL_ACTIVE`` means the process is not dead + + :type: :class:`int` + """ + res = DWORD() + winproxy.GetExitCodeThread(self.handle, byref(res)) + return res.value + + def __repr__(self): + owner = self.owner + if owner is None: + owner_name = "".format(hex(self.th32OwnerProcessID)) + else: + try: + owner_name = owner.name + except EnvironmentError: + owner_name = "!cannot-retrieve-owner-name" + return '<{0} {1} owner "{2}" at {3}>'.format(self.__class__.__name__, self.tid, owner_name, hex(id(self))) + + + @staticmethod + def _get_thread_id_by_api(handle): + return winproxy.GetThreadId(handle) + + @staticmethod + def _get_thread_id_manual(handle): + if windows.current_process.bitness == 32 and self.owner.bitness == 64: + raise NotImplementedError("[_get_thread_id_manual] 32 -> 64 (XP64 bits + Syswow process ?)") + res = THREAD_BASIC_INFORMATION() + windows.winproxy.NtQueryInformationThread(handle, ThreadBasicInformation, byref(res), ctypes.sizeof(res)) + id2 = res.ClientId.UniqueThread + return id2 + + if winproxy.is_implemented(winproxy.GetThreadId): + _get_thread_id = _get_thread_id_by_api + else: + _get_thread_id = _get_thread_id_manual + + +class WinProcess(Process): + """A Process on the system""" + def __init__(self, pid=None, handle=None, name=None, ppid=None): + if pid is None and handle is None: + raise ValueError("Need at least or to create a {0}".format(type(self).__name__)) + + if pid is not None: self._pid = pid + if handle is not None: self._handle = handle + if name is not None: self._name = name + if ppid is not None: self._ppid = ppid + + + @staticmethod + def _from_handle(handle): + #pid = winproxy.GetProcessId(handle) + #proc = [p for p in windows.system.processes if p.pid == pid][0] + #proc._handle = handle + #dbgprint("Process {0} from handle {1}".format(proc, hex(handle)), "HANDLE") + return WinProcess(handle=handle) + + @classmethod + def _from_PROCESSENTRY32(cls, entry): + # Temporary encoded name + name = entry.szExeFile.encode(errors="backslashreplace") + pid = entry.th32ProcessID + ppid = entry.th32ParentProcessID + return cls(pid=pid, name=name, ppid=ppid) + + + @utils.fixedpropety + def name(self): + """Name of the process + + :type: :class:`str` + """ + buffer = ctypes.c_buffer(0x1024) + rsize = winproxy.GetProcessImageFileNameA(self.limited_handle, buffer) # Use a syscall and not some remote process reading + # GetProcessImageFileNameA returns the fullpath + return buffer[:rsize].decode().split("\\")[-1] + + @utils.fixedpropety + def pid(self): + """Process ID + + :type: :class:`int` + """ + return winproxy.GetProcessId(self.handle) + + def _get_handle(self): + return winproxy.OpenProcess(dwProcessId=self.pid) + + def __repr__(self): + try: + exe_name = self.name + except WindowsError as e: + exe_name = "!cannot-retrieve-name" + try: + if self.is_exit: + return '<{0} "{1}" pid {2} (DEAD) at {3}>'.format(self.__class__.__name__, exe_name, self.pid, hex(id(self))) + except WindowsError: # Cannot open process + pass + return '<{0} "{1}" pid {2} at {3}>'.format(self.__class__.__name__, exe_name, self.pid, hex(id(self))) + + def virtual_alloc(self, size, prot=PAGE_EXECUTE_READWRITE, addr=None): + """Allocate memory in the process + + :return: The address of the allocated memory + :rtype: :class:`int` + """ + return winproxy.VirtualAllocEx(self.handle, lpAddress=addr, dwSize=size, flProtect=prot) + + def virtual_free(self, addr): + """Free memory in the process by virtual_alloc""" + return winproxy.VirtualFreeEx(self.handle, addr) + + def write_memory(self, addr, data): + """Write `data` at `addr`""" + data = raw_encode(data) + if windows.current_process.bitness == 32 and self.bitness == 64: + if not winproxy.is_implemented(winproxy.NtWow64WriteVirtualMemory64): + raise ValueError("NtWow64WriteVirtualMemory64 non available in ntdll: cannot write into 64bits processus") + return winproxy.NtWow64WriteVirtualMemory64(self.handle, addr, data, len(data)) + return winproxy.WriteProcessMemory(self.handle, addr, lpBuffer=data) + + def low_read_memory(self, addr, buffer_addr, size): + if windows.current_process.bitness == 32 and self.bitness == 64: + # OptionalExport can be None (see winproxy.py) + if not winproxy.is_implemented(winproxy.NtWow64ReadVirtualMemory64): + raise ValueError("NtWow64ReadVirtualMemory64 non available in ntdll: cannot read into 64bits processus") + return winproxy.NtWow64ReadVirtualMemory64(self.handle, addr, buffer_addr, size) + #if self.is_wow_64 and addr > 0xffffffff: + # return winproxy.NtWow64ReadVirtualMemory64(self.handle, addr, buffer_addr, size) + return winproxy.ReadProcessMemory(self.handle, addr, lpBuffer=buffer_addr, nSize=size) + + def read_memory(self, addr, size): + """Read ``size`` from ``addr`` + + :return: The data read + :rtype: :class:`str` + """ + buffer = ctypes.create_string_buffer(size) + self.low_read_memory(addr, ctypes.byref(buffer), size) + return buffer[:] + + # Simple cache test + # real_read = read_memory + # + # def read_memory(self, addr, size): + # """Cached version for test""" + # dbgprint('Read remote Memory of {0}'.format(self), 'READMEM') + # if not hasattr(self, "_cache_cache"): + # self._cache_cache = {} + # page_addr = addr & 0xfffffffffffff000 + # if page_addr in self._cache_cache: + # #print("CACHED Read on page {0}".format(hex(page_addr))) + # page_data = self._cache_cache[page_addr] + # return page_data[addr & 0xfff: (addr & 0xfff) + size] + # else: + # page_data = self.real_read(page_addr, 0x1000) + # self._cache_cache[page_addr] = page_data + # return page_data[addr & 0xfff: (addr & 0xfff) + size] + + def read_memory_into(self, addr, struct): + """Read a :mod:`ctypes` struct from `addr` + + :returns: struct + """ + self.low_read_memory(addr, ctypes.byref(struct), ctypes.sizeof(struct)) + return struct + + def create_thread(self, addr, param): + """Create a remote thread + + :rtype: :class:`WinThread` or :class:`DeadThread` + """ + if windows.current_process.bitness == 32 and self.bitness == 64: + thread_handle = HANDLE() + windows.syswow64.NtCreateThreadEx_32_to_64(ThreadHandle=byref(thread_handle) ,ProcessHandle=self.handle, lpStartAddress=addr, lpParameter=param) + return WinThread._from_handle(thread_handle.value) + return WinThread._from_handle(winproxy.CreateRemoteThread(hProcess=self.handle, lpStartAddress=addr, lpParameter=param)) + + def load_library(self, dll_path): + """Load the library in remote process + + :rtype: :class:`LoadedModule` + """ + dllbase = windows.injection.load_dll_in_remote_process(self, dll_path) + return [m for m in self.peb.modules if m.baseaddr == dllbase][0] + + def execute_python(self, pycode): + """Execute Python code into the remote process. + + This function waits for the remote process to end and + raises an exception if the remote thread raised one + """ + return injection.safe_execute_python(self, pycode) + + def execute_python_unsafe(self, pycode): + """Execute Python code into the remote process. + + :rtype: :rtype: :class:`WinThread` or :class:`DeadThread` : The thread executing the python code + """ + return injection.execute_python_code(self, pycode) + + + + + @utils.fixedpropety + def peb_addr(self): + """The address of the PEB + + :type: :class:`int` + """ + if windows.current_process.bitness == 32 and self.bitness == 64: + x = windows.remotectypes.transform_type_to_remote64bits(PROCESS_BASIC_INFORMATION) + # Fuck-it <3 + data = (ctypes.c_char * ctypes.sizeof(x))() + windows.syswow64.NtQueryInformationProcess_32_to_64(self.handle, ProcessInformation=data, ProcessInformationLength=ctypes.sizeof(x)) + peb_offset = x.PebBaseAddress.offset + peb_addr = struct.unpack("'.format(self.__class__.__name__, self.name, hex(id(self))) + + @property + def pe(self): + """A PE representation of the module + + :type: :class:`windows.pe_parse.PEFile` + """ + return pe_parse.GetPEFile(self.baseaddr) + + +class LIST_ENTRY_PTR(PVOID): + def TO_LDR_ENTRY(self): + return LDR_DATA_TABLE_ENTRY.from_address(self.value - sizeof(PVOID) * 2) + + +class PEB(gdef.PEB): + """The PEB (Process Environment Block) of the current process""" + + @property + def exe(self): + """The executable of the process, as pointed by PEB.ImageBaseAddress + + :type: :class:`windows.pe_parse.PEFile` + """ + return windows.pe_parse.GetPEFile(self.ImageBaseAddress) + + @property + def imagepath(self): + """The ImagePathName of the PEB + + :type: :class:`~windows.generated_def.winstructs.LSA_UNICODE_STRING` + """ + return self.ProcessParameters.contents.ImagePathName + + @property + def commandline(self): + """The CommandLine of the PEB + + :type: :class:`~windows.generated_def.winstructs.LSA_UNICODE_STRING` + """ + return self.ProcessParameters.contents.CommandLine + + @property + def modules(self): + """The loaded modules present in the PEB + + :type: [:class:`LoadedModule`] -- List of loaded modules + """ + res = [] + list_entry_ptr = ctypes.cast(self.Ldr.contents.InMemoryOrderModuleList.Flink, LIST_ENTRY_PTR) + current_dll = list_entry_ptr.TO_LDR_ENTRY() + while current_dll.DllBase: + res.append(current_dll) + list_entry_ptr = ctypes.cast(current_dll.InMemoryOrderLinks.Flink, LIST_ENTRY_PTR) + current_dll = list_entry_ptr.TO_LDR_ENTRY() + return [LoadedModule.from_address(addressof(LDR)) for LDR in res] + + @staticmethod + def _extract_environment(env_block_addr, target): + result = [] + while True: + venv = target.read_wstring(env_block_addr) + if not venv: + return result + result.append(venv) + env_block_addr += ((len(venv) + 1) * 2) + # raise RuntimeError("Out of infinite loop") + + @property + def environment(self): + # TODO: Tests + return self._extract_environment(self.ProcessParameters.contents.Environment, windows.current_process) + + @property + def apisetmap(self): + """The :class:`~windows.winobject.apisetmap.ApiSetMap` of the process + + :rtype: A subclass of :class:`~windows.winobject.apisetmap.ApiSetMap` + :raise: :class:`~exception.NotImplementedError` -- Before ``6.2`` ApiSetMap did not exist + :raise: :class:`~exception.NotImplementedError` -- Not implemented for remote process + """ + if windows.system.version < (6,2): + raise NotImplementedError("ApiSetMap does not exist prior to Windows 7") + return apisetmap.get_api_set_map_for_current_process(self.ApiSetMap) + + +# Memory stuff + +class EPSAPI_WORKING_SET_BLOCK_BASE(object): + @property + def protection(self): + return self.Flags & 0b11111 + + @property + def sharecount(self): + return (self.Flags >> 5) & 0b111 + + @property + def shared(self): + return (self.Flags >> 8) & 1 + + @property + def virtualpage(self): + return (self.Flags >> 12) + + +class EPSAPI_WORKING_SET_BLOCK(EPSAPI_WORKING_SET_BLOCK_BASE, PSAPI_WORKING_SET_BLOCK): + pass + +class EPSAPI_WORKING_SET_BLOCK32(EPSAPI_WORKING_SET_BLOCK_BASE, PSAPI_WORKING_SET_BLOCK32): + pass + +class EPSAPI_WORKING_SET_BLOCK64(EPSAPI_WORKING_SET_BLOCK_BASE, PSAPI_WORKING_SET_BLOCK64): + pass + + +class EPSAPI_WORKING_SET_EX_BLOCK_BASE(object): + @property + def valid(self): + return self.Flags & 0b1 + + @property + def sharecount(self): + return (self.Flags >> 1) & 0b111 + + @property + def shared(self): + return (self.Flags >> 15) & 1 + +class EPSAPI_WORKING_SET_EX_BLOCK(EPSAPI_WORKING_SET_EX_BLOCK_BASE, PSAPI_WORKING_SET_EX_BLOCK): + pass + +class EPSAPI_WORKING_SET_EX_BLOCK32(EPSAPI_WORKING_SET_EX_BLOCK_BASE, PSAPI_WORKING_SET_EX_BLOCK32): + pass + +class EPSAPI_WORKING_SET_EX_BLOCK64(EPSAPI_WORKING_SET_EX_BLOCK_BASE, PSAPI_WORKING_SET_EX_BLOCK64): + pass + +class EPSAPI_WORKING_SET_EX_INFORMATION(ctypes.Structure): + _fields_ = windows.utils.transform_ctypes_fields(PSAPI_WORKING_SET_EX_INFORMATION, {"VirtualAttributes": EPSAPI_WORKING_SET_EX_BLOCK}) + +class EPSAPI_WORKING_SET_EX_INFORMATION32(ctypes.Structure): + _fields_ = windows.utils.transform_ctypes_fields(PSAPI_WORKING_SET_EX_INFORMATION32, {"VirtualAttributes": EPSAPI_WORKING_SET_EX_BLOCK32}) + +class EPSAPI_WORKING_SET_EX_INFORMATION64(ctypes.Structure): + _fields_ = windows.utils.transform_ctypes_fields(PSAPI_WORKING_SET_EX_INFORMATION64, {"VirtualAttributes": EPSAPI_WORKING_SET_EX_BLOCK64}) + + +class RemoteLoadedModule(rctypes.RemoteStructure.from_structure(LoadedModule)): + @property + def pe(self): + """A PE representation of the module + + :type: :class:`windows.pe_parse.PEFile` + """ + return pe_parse.GetPEFile(self.baseaddr, target=self._target) + + +class RemotePEB(rctypes.RemoteStructure.from_structure(PEB)): + def ptr_flink_to_remote_module(self, ptr_value): + return RemoteLoadedModule(ptr_value - ctypes.sizeof(ctypes.c_void_p) * 2, self._target) + + @property + def exe(self): + """The executable of the process, as pointed by PEB.ImageBaseAddress + + :type: :class:`windows.pe_parse.PEFile` + """ + return pe_parse.GetPEFile(self.ImageBaseAddress, target=self._target) + + @property + def modules(self): + """The loaded modules present in the PEB + + :type: [:class:`LoadedModule`] -- List of loaded modules + """ + res = [] + if not self.Ldr.value: + raise ValueError("PEB->Ldr is NULL: cannot walk the module list") + list_entry_ptr = self.Ldr.contents.InMemoryOrderModuleList.Flink.raw_value + current_dll = self.ptr_flink_to_remote_module(list_entry_ptr) + while current_dll.DllBase: + res.append(current_dll) + list_entry_ptr = current_dll.InMemoryOrderLinks.Flink.raw_value + current_dll = self.ptr_flink_to_remote_module(list_entry_ptr) + return res + + @property + def environment(self): + # TODO: Tests + return self._extract_environment(self.ProcessParameters.contents.Environment, self._target) + + @property + def apisetmap(self): + raise NotImplementedError("ApiSetMap for remote process not implemented yet") + + + + +if CurrentProcess().bitness == 32: + class RemoteLoadedModule64(rctypes.transform_type_to_remote64bits(LoadedModule)): + @property + def pe(self): + """A PE representation of the module + + :type: :class:`windows.pe_parse.PEFile` + """ + return pe_parse.GetPEFile(self.baseaddr, target=self._target) + + class RemotePEB64(rctypes.transform_type_to_remote64bits(PEB)): + + def ptr_flink_to_remote_module(self, ptr_value): + return RemoteLoadedModule64(ptr_value - ctypes.sizeof(rctypes.c_void_p64) * 2, self._target) + + + @property + def exe(self): + """The executable of the process, as pointed by PEB.ImageBaseAddress + + :type: :class:`windows.pe_parse.PEFile` + """ + return pe_parse.GetPEFile(self.ImageBaseAddress, target=self._target) + + @property + def modules(self): + """The loaded modules present in the PEB + + :type: [:class:`LoadedModule`] -- List of loaded modules + """ + res = [] + if not self.Ldr.value: + raise ValueError("PEB->Ldr is NULL: cannot walk the module list") + list_entry_ptr = self.Ldr.contents.InMemoryOrderModuleList.Flink.raw_value + current_dll = self.ptr_flink_to_remote_module(list_entry_ptr) + while current_dll.DllBase: + res.append(current_dll) + list_entry_ptr = current_dll.InMemoryOrderLinks.Flink.raw_value + current_dll = self.ptr_flink_to_remote_module(list_entry_ptr) + return res + + @property + def environment(self): + # TODO: Tests + return self._extract_environment(self.ProcessParameters.contents.Environment, self._target) + + apisetmap = RemotePEB.apisetmap + +if CurrentProcess().bitness == 64: + + class RemoteLoadedModule32(rctypes.transform_type_to_remote32bits(LoadedModule)): + @property + def pe(self): + """A PE representation of the module + + :type: :class:`windows.pe_parse.PEFile` + """ + return pe_parse.GetPEFile(self.baseaddr, target=self._target) + + class RemotePEB32(rctypes.transform_type_to_remote32bits(PEB)): + def ptr_flink_to_remote_module(self, ptr_value): + return RemoteLoadedModule32(ptr_value - ctypes.sizeof(rctypes.c_void_p32) * 2, self._target) + + @property + def exe(self): + """The executable of the process, as pointed by PEB.ImageBaseAddress + + :type: :class:`windows.pe_parse.PEFile` + """ + return pe_parse.GetPEFile(self.ImageBaseAddress, target=self._target) + + + @property + def modules(self): + """The loaded modules present in the PEB + + :type: [:class:`LoadedModule`] -- List of loaded modules + """ + res = [] + if not self.Ldr.value: + raise ValueError("PEB->Ldr is NULL: cannot walk the module list") + list_entry_ptr = self.Ldr.contents.InMemoryOrderModuleList.Flink.raw_value + current_dll = self.ptr_flink_to_remote_module(list_entry_ptr) + while current_dll.DllBase: + res.append(current_dll) + list_entry_ptr = current_dll.InMemoryOrderLinks.Flink.raw_value + current_dll = self.ptr_flink_to_remote_module(list_entry_ptr) + return res + + @property + def environment(self): + # TODO: Tests + return self._extract_environment(self.ProcessParameters.contents.Environment, self._target) + + apisetmap = RemotePEB.apisetmap \ No newline at end of file diff --git a/pythonmemorymodule/windows/winobject/registry.py b/pythonmemorymodule/windows/winobject/registry.py new file mode 100644 index 0000000..478192d --- /dev/null +++ b/pythonmemorymodule/windows/winobject/registry.py @@ -0,0 +1,450 @@ +import sys +import ctypes +import itertools +import struct +from collections import namedtuple, defaultdict + +import windows +from windows.dbgprint import dbgprint +import windows.generated_def as gdef +from windows import winproxy +from windows.pycompat import basestring, int_types, is_py3 + +WENCODING = "utf-16-le" + +# So _winreg does not handle unicode stuff in Py2 :( +# Need to rewrite everything to get it working with unicode + +class WinRegistryKey(gdef.HKEY): + _close_function = staticmethod(winproxy.RegCloseKey) + + def __del__(self): + if sys is None or sys.path is None: # Late shutdown (not sur winproxy is still up) + return + if self: # Not NULL handle ? + dbgprint(u"Closing registry key handle {0:#x}".format(self.value), 'REGISTRY') + self._close_function(self) + + + + +class ExpectWindowsError(object): + def __init__(self, errornumber): + self.errornumber = errornumber + + def __enter__(self): + pass + + def __exit__(self, etype, e, tb): + return (etype in (winproxy.WinproxyError, WindowsError) and e.winerror == self.errornumber) + +# Translation reg-buffer <-> python methodes +def Reg2Py_QWORD(buffer, size): + return buffer.cast(gdef.PULONG64)[0] + +def Py2Reg_QWORD(obj): + return struct.pack("I", obj) + + +def Reg2Py_BINARY(buffer, size): + return bytes(bytearray(buffer[:size])) + +def Py2Reg_BINARY(obj): + # latin-1 encoding if py3 & type is str ? + return obj + + +def Reg2Py_SZ(buffer, size): + # Buffer is UTF16. buffer is extended-buffer + if size == 0: + return u"" + if buffer[size - 1] == 0 and buffer[size - 2] == 0: + # NULL TERMINATED: EASY + return buffer.as_wstring() + # Not null terminated: keep last byte + assert not size % 2 + return (gdef.WCHAR * (size // 2)).from_buffer(buffer)[:] + +def Py2Reg_SZ(obj): + return obj.encode(WENCODING) + +def Reg2Py_Multi_SZ(buffer, size): + if not size: + return [] + # Simple path + if is_py3: + rawstr = bytes(buffer) + else: + rawstr = "".join([chr(c) for c in buffer[:size]]) + try: + unistr = rawstr.decode(WENCODING) + return unistr.rstrip(u"\x00").split(u"\x00") + except UnicodeDecodeError as e: + pass + # Complexe-path + # This is not some valide UTF-16 + # Try our best to extract some stuff from raw + return rawstr.rstrip(b"\x00").split(b"\x00") + + +def Py2Reg_Multi_SZ(obj): + # Work on encoded values (to prevent str/unicode errors) + uni_list = [s.encode(WENCODING) for s in obj] + # Separate by UTF-16 NULL BYTE (2 \x00) + uni_str = b"\x00\x00".join(uni_list) + # Add UTF-16 NULL byte for final string + final UTF-16 \x00 (4 \x00) + return uni_str + b"\x00\x00\x00\x00" + +DECODE_METHOD = 0 +ENCODE_METHOD = 1 + + +KNOWN_ENCODE_DECODE_METHODS = { + gdef.REG_SZ: (Reg2Py_SZ, Py2Reg_SZ), + gdef.REG_EXPAND_SZ: (Reg2Py_SZ, Py2Reg_SZ), + gdef.REG_MULTI_SZ: (Reg2Py_Multi_SZ, Py2Reg_Multi_SZ), + gdef.REG_DWORD: (Reg2Py_DWORD, Py2Reg_DWORD), + gdef.REG_DWORD_BIG_ENDIAN: (Reg2Py_DWORD_BIG_ENDIAN, Py2Reg_DWORD_BIG_ENDIAN), + gdef.REG_QWORD: (Reg2Py_QWORD, Py2Reg_QWORD), + # Binary formats + gdef.REG_LINK: (Reg2Py_BINARY, Py2Reg_BINARY), # TESTING + gdef.REG_BINARY: (Reg2Py_BINARY, Py2Reg_BINARY), + gdef.REG_NONE: (Reg2Py_BINARY, Py2Reg_BINARY), +} + +# All unknown format are seens as binary data +UNKNOWM_FORMAT = (Reg2Py_BINARY, Py2Reg_BINARY) +ENCODE_DECODE_METHODS = defaultdict(lambda: UNKNOWM_FORMAT, KNOWN_ENCODE_DECODE_METHODS) + +def decode_registry_buffer(type, buffer, size): + try: + return ENCODE_DECODE_METHODS[type][DECODE_METHOD](buffer, size) + except UnicodeDecodeError as e: + # Best effort if any decoding error happen + return "".join(chr(c) for c in buffer[:size]) + + +KeyValue = namedtuple("KeyValue", ["name", "value", "type"]) +"""A registry value (name, value, type)""" + + +class PyHKey(object): + """A windows registry key""" + def __init__(self, surkey, name, sam=gdef.KEY_READ): + self.surkey = surkey + self.name = name + self.fullname = self.surkey.fullname + "\\" + self.name if self.name else self.surkey.name + self.sam = sam + self._phkey = None + #self.phkey + + def __repr__(self): + return ''.format(self.fullname) + + def _open_key(self, handle, name, sam): + result = WinRegistryKey() + winproxy.RegOpenKeyExW(handle, name, 0, sam, result) # TODO: options REG_OPTION_OPEN_LINK + dbgprint(u"Opening registry key <{0}> (handle={1:#x})".format(name, result.value), "REGISTRY") + return result + + def _create_key(self, parent, name, sam): + result = WinRegistryKey() + flags = 0 + winproxy.RegCreateKeyExW(parent, name, 0, None, flags, sam, None, result, None) + dbgprint(u"Creating registry key <{0}> (handle={1:#x})".format(name, result.value), "REGISTRY") + return result + + @property + def phkey(self): + if self._phkey is not None: + return self._phkey + try: + self._phkey = self._open_key(self.surkey.phkey, self.name, self.sam) + except WindowsError as e: + raise WindowsError(e.winerror, "Could not open registry key <{0}> ({1})".format(self.fullname, e.strerror)) + return self._phkey + + @property + def exists(self): + # May have been deleted in between + # So tells use nothing + if self._phkey: # Not None + pointer not NULL + try: + self.get_key_size_info() + except WindowsError as e: + if e.winerror == gdef.ERROR_KEY_DELETED: + return False + raise + return True + try: + tmpphkey = self._open_key(self.surkey.phkey, self.name, gdef.KEY_READ) + except WindowsError as e: + return False + # tmpphkey will be garbage collected and auto-closed + return True + + @property + def subkeys(self): + """The subkeys of the registry key + + :type: [:class:`PyHKey`] - A list of keys""" + res = [] + with ExpectWindowsError(259): + default_name_size = 256 + 1 + name_size = gdef.DWORD(default_name_size) + name_buffer = ctypes.create_unicode_buffer(name_size.value) + for i in itertools.count(): + name_size.value = default_name_size + winproxy.RegEnumKeyExW(self.phkey, i, name_buffer, name_size, None, None, None, None) + res.append(name_buffer[:name_size.value]) # Will allow key name with \x00 inside + return [PyHKey(self, n) for n in res] + + def get_key_size_info(self): + max_name_len = gdef.DWORD() + max_value_len = gdef.DWORD() + winproxy.RegQueryInfoKeyW(self.phkey, None, None, None, None, None, None, None, max_name_len, max_value_len, None, None) + return (max_name_len.value, max_value_len.value) + + @property + def values(self): + """The values of the registry key + + :type: [:class:`KeyValue`] - A list of values""" + res = [] + # Get max info keys + + max_name_size, max_data_size = self.get_key_size_info() + # Null terminators + max_name_size += 1 + max_data_size += 2 + with ExpectWindowsError(259): + for i in itertools.count(): + value_type = gdef.DWORD() + namesize = gdef.DWORD(max_name_size) + keyname = ctypes.create_unicode_buffer(namesize.value) + datasize = gdef.DWORD(max_data_size) + databuffer = windows.utils.BUFFER(gdef.BYTE, nbelt=datasize.value)() + # A value can have been added in-between. + # So recheck the size given by get_key_size_info :) + # But check 10 times max as RegEnumValueW may bug (seen) and always return ERROR_MORE_DATA even with enought size + for _ in range(10): + try: + winproxy.RegEnumValueW(self.phkey, i, keyname, namesize, None, value_type, databuffer, datasize) + break + except WindowsError as e: + if e.winerror != gdef.ERROR_MORE_DATA: + raise + # I found some strange Windows where even with a big enought buffer: + # - the data was filled + # - ERROR_MORE_DATA was returned + ## To prevent such bug to trigger and infinite loop, two things + # - If the retuned namesize <= the passed keysize and keyname is not empty -> return the data` + # - Max 10 test to prevent Infinite loop + if ((namesize.value <= max_name_size) and (datasize.value <= max_data_size) and + (keyname[:namesize.value].count("\x00") < namesize.value)): # Not just 0 Zero ? + break + + # Update the sizes / buffers & try again :) + max_name_size, max_data_size = self.get_key_size_info() + max_name_size = max(max_name_size + 1, namesize.value + 1) # namesize.value may be > to max_name_size apparently (guessed) + max_data_size = max(max_data_size + 2, datasize.value + 2) # datasize.value may be > to max_data_size apparently (seen) + namesize = gdef.DWORD(max_name_size) + keyname = ctypes.create_unicode_buffer(namesize.value) + datasize = gdef.DWORD(max_data_size) + databuffer = windows.utils.BUFFER(gdef.BYTE, nbelt=datasize.value)() + else: + # Probably a windows bug that prevent us from retrieving the data + # Raise something (thus preventing getting the other values..) ? ignore it ? + raise ValueError("Could not extract registry key values, problably a Windows/hook bug") + vobj = decode_registry_buffer(value_type.value, databuffer, datasize.value) + res.append(KeyValue(keyname.value, vobj, value_type.value)) + return res + + + @property + def info(self): + # Need other stuff ? + nb_key = gdef.DWORD() + nb_values = gdef.DWORD() + last_modif = gdef.FILETIME() + winproxy.RegQueryInfoKeyW(self.phkey, None, None, None, nb_key, None, None, nb_values, None, None, None, last_modif) + return nb_key.value, nb_values.value, int(last_modif) + + @property + def last_write(self): + return self.info[2] + + def get(self, value_name): + """Retrieves the value ``value_name`` + + :rtype: :class:`KeyValue` + """ + + type = gdef.DWORD(0) + size = gdef.DWORD(0x100) + while True: + buffer = windows.utils.BUFFER(gdef.BYTE, nbelt=size.value)() + try: + winproxy.RegQueryValueExW(self.phkey, value_name, None, type, buffer, size) + break + except WindowsError as e: + if e.winerror != gdef.ERROR_MORE_DATA: + raise + size.value *= 2 + buffer = windows.utils.BUFFER(gdef.BYTE, nbelt=size.value)() + continue + vobj = decode_registry_buffer(type.value, buffer, size.value) + return KeyValue(value_name, vobj, type.value) + + def _guess_value_type(self, value): + if isinstance(value, basestring): + return gdef.REG_SZ + elif isinstance(value, int_types): + return gdef.REG_DWORD + # elif isinstance(value, (list, tuple)): + # if all(isinstance(v, basestring) in value): + # return _winreg.REG_MULTI_SZ + raise ValueError("Cannot guest registry type of value to set <{0}>".format(value)) + + + def set(self, name, value, type=None): + """Set the value for ``name`` to ``value``. if ``type`` is None try to guess items""" + if type is None: + type = self._guess_value_type(value) + + + buffer = ENCODE_DECODE_METHODS[type][ENCODE_METHOD](value) + if isinstance(buffer, bytes): # Should not be unicode at this point + buffer = windows.utils.BUFFER(gdef.BYTE).from_buffer_copy(buffer) + return winproxy.RegSetValueExW(self.phkey, name, 0, type, buffer, len(buffer)) + + def delete_value(self, name): + """Delete the value with ``name``""" + return winproxy.RegDeleteValueW(self.phkey, name) + + + def open_subkey(self, name, sam=None): + """Open the subkey ``name`` + + :rtype: :class:`PyHKey` + """ + if sam is None: + sam = self.sam + return PyHKey(self, name, sam) + + def reopen(self, sam): + """Reopen the registry key with a new ``sam`` + + :rtype: :class:`PyHKey` + """ + return PyHKey(self.surkey, self.name, sam) + + def create(self): + """Create the registry key""" + try: + self._phkey = self._create_key(self.surkey.phkey, self.name, self.sam) + except WindowsError as e: + raise WindowsError(e.winerror, "Could not create registry key <{0}> ({1})".format(self.fullname, e.strerror)) + return self + + def delete(self): + """Delete the registry key""" + # Allow a 'recursive' param to empty before delete ? + try: + windows.winproxy.RegDeleteKeyExW(self.surkey.phkey, self.name, self.sam, 0) + except WindowsError as e: + raise WindowsError(e.winerror, "Could not delete registry key <{0}> ({1})".format(self.fullname, e.strerror)) + return None + + def empty(self): + windows.winproxy.RegDeleteTreeW(self.phkey, None) + + + + def __setitem__(self, name, value): + rtype = None + if not (isinstance(value, basestring) or isinstance(value, int_types)): + value, rtype = value + return self.set(name, value, rtype) + + __getitem__ = get + + __delitem__ = delete_value + + __call__ = open_subkey + + +class DummyPHKEY(object): + def __init__(self, phkey, name): + self.phkey = phkey + self.name = name + + +HKEY_LOCAL_MACHINE = PyHKey(DummyPHKEY(gdef.HKEY_LOCAL_MACHINE, "HKEY_LOCAL_MACHINE"), "", gdef.KEY_READ) +HKEY_CLASSES_ROOT = PyHKey(DummyPHKEY(gdef.HKEY_CLASSES_ROOT, "HKEY_CLASSES_ROOT"), "", gdef.KEY_READ ) +HKEY_CURRENT_USER = PyHKey(DummyPHKEY(gdef.HKEY_CURRENT_USER, "HKEY_CURRENT_USER"), "", gdef.KEY_READ) +HKEY_DYN_DATA = PyHKey(DummyPHKEY(gdef.HKEY_DYN_DATA, "HKEY_DYN_DATA"), "", gdef.KEY_READ) +HKEY_PERFORMANCE_DATA = PyHKey(DummyPHKEY(gdef.HKEY_PERFORMANCE_DATA, "HKEY_PERFORMANCE_DATA"), "", gdef.KEY_READ) +HKEY_USERS = PyHKey(DummyPHKEY(gdef.HKEY_USERS, "HKEY_USERS"), "", gdef.KEY_READ ) + + +class Registry(object): + """The ``Windows`` registry""" + + registry_base_keys = { + "HKEY_LOCAL_MACHINE" : HKEY_LOCAL_MACHINE, + "HKEY_CLASSES_ROOT" : HKEY_CLASSES_ROOT, + "HKEY_CURRENT_USER" : HKEY_CURRENT_USER, + "HKEY_DYN_DATA" : HKEY_DYN_DATA, + "HKEY_PERFORMANCE_DATA": HKEY_PERFORMANCE_DATA, + "HKEY_USERS" : HKEY_USERS + } + + def __init__(self, sam=gdef.KEY_READ): + self.sam = sam + + @classmethod + def reopen(cls, sam): + """Return a new :class:`Registry` using ``sam`` as the new default + + :rtype: :class:`Registry` + """ + return cls(sam) + + def __call__(self, name, sam=None): + """Get a registry key:: + + registry(r"HKEY_LOCAL_MACHINE\\Software") + registry("HKEY_LOCAL_MACHINE")("Software") + + :rtype: :class:`PyHKey` + """ + if sam is None: + sam = self.sam + + if name in self.registry_base_keys: + key = self.registry_base_keys[name] + if sam != key.sam: + key = key.reopen(sam) + return key + if "\\" not in name: + raise ValueError("Unknow registry base key <{0}>".format(name)) + base_name, subkey = name.split("\\", 1) + if base_name not in self.registry_base_keys: + raise ValueError("Unknow registry base key <{0}>".format(base_name)) + return self.registry_base_keys[base_name](subkey, sam) diff --git a/pythonmemorymodule/windows/winobject/service.py b/pythonmemorymodule/windows/winobject/service.py new file mode 100644 index 0000000..4693bce --- /dev/null +++ b/pythonmemorymodule/windows/winobject/service.py @@ -0,0 +1,191 @@ +import ctypes +import windows + +from collections import namedtuple +from contextlib import contextmanager + +from windows import utils +from windows.pycompat import int_types +import windows.generated_def as gdef +from windows.generated_def import * +from windows import security +from windows.pycompat import basestring + +""" +``type`` might be one of: + + * ``SERVICE_KERNEL_DRIVER(0x1L)`` + * ``SERVICE_FILE_SYSTEM_DRIVER(0x2L)`` + * ``SERVICE_WIN32_OWN_PROCESS(0x10L)`` + * ``SERVICE_WIN32_SHARE_PROCESS(0x20L)`` + * ``SERVICE_INTERACTIVE_PROCESS(0x100L)`` + +``state`` might be one of: + + * ``SERVICE_STOPPED(0x1L)`` + * ``SERVICE_START_PENDING(0x2L)`` + * ``SERVICE_STOP_PENDING(0x3L)`` + * ``SERVICE_RUNNING(0x4L)`` + * ``SERVICE_CONTINUE_PENDING(0x5L)`` + * ``SERVICE_PAUSE_PENDING(0x6L)`` + * ``SERVICE_PAUSED(0x7L)`` + +``flags`` might be one of: + + * ``0`` + * ``SERVICE_RUNS_IN_SYSTEM_PROCESS(0x1L)`` + +""" + + +class ServiceManager(utils.AutoHandle): + """An object to query, list and explore services""" + def _get_handle(self): + return windows.winproxy.OpenSCManagerW(dwDesiredAccess=gdef.MAXIMUM_ALLOWED) + + def open_service(self, name, access=gdef.MAXIMUM_ALLOWED): + return windows.winproxy.OpenServiceW(self.handle, name, access) # Check service exists :) + + def get_service(self, key, access=gdef.MAXIMUM_ALLOWED): + """Get a service by its name/index or a list of services via a slice + + :return: :class:`Service` or [:class:`Service`] -- A :class:`Service` or list of :class:`Service` + """ + if isinstance(key, int_types): + return self.enumerate_services()[key] + if isinstance(key, slice): + # Get service list + servlist = self.enumerate_services() + # Extract indexes matching the slice + indexes = key.indices(len(servlist)) + return [servlist[idx] for idx in range(*indexes)] + # Retrieve service by its name + handle = self.open_service(key, access) + return Service(name=key, handle=handle) + + __getitem__ = get_service + """Get a service by its name/index or a list of services via a slice + + :return: :class:`Service` or [:class:`Service`] -- A :class:`Service` or list of :class:`Service` + """ + + def get_service_display_name(self, name): + # This API is strange.. + # Why can't we retrieve the display name for a service handle ? + BUFFER_SIZE = 0x1000 + result = (WCHAR * BUFFER_SIZE)() + size_needed = gdef.DWORD(BUFFER_SIZE) + windows.winproxy.GetServiceDisplayNameW(self.handle, name, result, size_needed) + return result.value + + def _enumerate_services_generator(self): + """The generator code behind __iter__. + Allow to iter over the services on the system + """ + size_needed = gdef.DWORD() + nb_services = gdef.DWORD() + counter = gdef.DWORD() + try: + windows.winproxy.EnumServicesStatusExW(self.handle, SC_ENUM_PROCESS_INFO, SERVICE_TYPE_ALL, SERVICE_STATE_ALL, None, 0, ctypes.byref(size_needed), ctypes.byref(nb_services), byref(counter), None) + except WindowsError: + pass + + while True: + size = size_needed.value + buffer = (BYTE * size)() + try: + windows.winproxy.EnumServicesStatusExW(self.handle, SC_ENUM_PROCESS_INFO, SERVICE_TYPE_ALL, SERVICE_STATE_ALL, buffer, size, ctypes.byref(size_needed), ctypes.byref(nb_services), byref(counter), None) + except WindowsError as e: + continue + break + services_array = (gdef.ENUM_SERVICE_STATUS_PROCESSW * nb_services.value).from_buffer(buffer) + for service_info in services_array: + shandle = self.open_service(service_info.lpServiceName) + yield Service(handle=shandle, name=service_info.lpServiceName, description=service_info.lpDisplayName) + return + + __iter__ = _enumerate_services_generator + """Iter over the services on the system + + :yield: :class:`Service` + """ + + def enumerate_services(self): + return list(self._enumerate_services_generator()) + + +class Service(gdef.SC_HANDLE): + """Represent a service on the system""" + def __init__(self, handle, name, description=None): + super(Service, self).__init__(handle) + self.name = name + """The name of the service + + :type: :class:`str` + """ + if description is not None: + self._description = description # Setup fixedpropety + + @property + def description(self): + """The description of the service + + :type: :class:`str` + """ + return ServiceManager().get_service_display_name(self.name) + + @property + def status(self): + """The status of the service + + :type: :class:`~windows.generated_def.winstructs.SERVICE_STATUS_PROCESS` + """ + buffer = windows.utils.BUFFER(gdef.SERVICE_STATUS_PROCESS)() + size_needed = gdef.DWORD() + windows.winproxy.QueryServiceStatusEx(self, gdef.SC_STATUS_PROCESS_INFO, buffer.cast(gdef.LPBYTE), ctypes.sizeof(buffer), size_needed) + return buffer[0] + + @property # Can change if service is started/stopped when the object exist + def process(self): + """The process running the service (if any) + + :type: :class:`WinProcess ` or ``None`` + """ + pid = self.status.dwProcessId + if not pid: + return None + l = windows.WinProcess(pid=pid) + return l + + @property + def security_descriptor(self): + """The security descriptor of the service + + :type: :class:`~windows.security.SecurityDescriptor` + """ + return security.SecurityDescriptor.from_service(self.name) + + def start(self, args=None): + """Start the service + + :param args: a list of :class:`str` + """ + nbelt = 0 + if args is not None: + if isinstance(args, windows.pycompat.anybuff): + args = [args] + nbelt = len(args) + args = (gdef.LPWSTR * (nbelt))(*args) + return windows.winproxy.StartServiceW(self, nbelt, args) + + def stop(self): + """Stop the service""" + status = SERVICE_STATUS() + windows.winproxy.ControlService(self, gdef.SERVICE_CONTROL_STOP, status) + return status + + def __repr__(self): + return """<{0} "{1}" {2!r}>""".format(type(self).__name__, self.name, self.status.state) + + def __del__(self): + return windows.winproxy.CloseServiceHandle(self) diff --git a/pythonmemorymodule/windows/winobject/system.py b/pythonmemorymodule/windows/winobject/system.py new file mode 100644 index 0000000..7476c51 --- /dev/null +++ b/pythonmemorymodule/windows/winobject/system.py @@ -0,0 +1,508 @@ +import os +import ctypes +import copy +import struct + +import windows +from windows import winproxy +from windows import utils + +import windows.generated_def as gdef + + + +from windows.winobject import process +from windows.winobject import network +from windows.winobject import registry +from windows.winobject import exception +from windows.winobject import service +from windows.winobject import volume +from windows.winobject import wmi +from windows.winobject import object_manager +from windows.winobject import device_manager +from windows.winobject import handle +from windows.winobject import event_log +from windows.winobject import event_trace +from windows.winobject import task_scheduler +from windows.winobject import system_module +from windows.winobject import bits + +from windows.dbgprint import dbgprint + +class System(object): + """The state of the current ``Windows`` system ``Python`` is running on""" + + # Setup these in a fixedproperty ? + network = network.Network() + """Object of class :class:`windows.winobject.network.Network`""" + registry = registry.Registry() + """Object of class :class:`windows.winobject.registry.Registry`""" + + @property + def processes(self): + """The list of running processes + + :type: [:class:`~windows.winobject.process.WinProcess`] -- A list of Process + """ + return self.enumerate_processes() + + @property + def threads(self): + """The list of running threads + + :type: [:class:`~windows.winobject.process.WinThread`] -- A list of Thread + """ + return self.enumerate_threads_setup_owners() + + @property + def logicaldrives(self): + """List of logical drives [C:\, ...] + + :type: [:class:`~windows.winobject.volume.LogicalDrive`] -- A list of LogicalDrive + """ + return volume.enum_logical_drive() + + @utils.fixedpropety + def services(self): + """An object to query, list and explore services + + :type: :class:`~windows.winobject.service.ServiceManager` + """ + return service.ServiceManager() + + @property + def handles(self): + """The list of system handles + + :type: [:class:`~windows.winobject.handle.Handle`] -- A list of Hanlde""" + return handle.enumerate_handles() + + @property + def modules(self): + """The list of system modules + + :type: [:class:`~windows.winobject.system_module.SystemModule`] -- A list of :class:`~windows.winobject.system_module.SystemModule` or :class:`~windows.winobject.system_module.SystemModuleWow64` + """ + return system_module.enumerate_kernel_modules() + + @utils.fixedpropety + def bitness(self): + """The bitness of the system + + :type: :class:`int` -- 32 or 64 + """ + if os.environ["PROCESSOR_ARCHITECTURE"].lower() != "x86": + return 64 + if "PROCESSOR_ARCHITEW6432" in os.environ: + return 64 + return 32 + + @utils.fixedpropety + def wmi(self): + r"""An object to perform wmi requests to various namespaces + + :type: :class:`~windows.winobject.wmi.WmiManager`""" + return wmi.WmiManager() + + + @utils.fixedpropety + def event_log(self): + """An object to open Event channel/publisher and evtx file + + :type: :class:`~windows.winobject.event_log.EvtlogManager` + """ + return event_log.EvtlogManager() + + @utils.fixedpropety + def etw(self): + """An object to interact with ETW (Event Tracing for Windows) + + :type: :class:`~windows.winobject.event_trace.EtwManager` + """ + return event_trace.EtwManager() + + + @utils.fixedpropety + def task_scheduler(self): + """An object able to manage scheduled tasks on the local system + + :type: :class:`~windows.winobject.task_scheduler.TaskService` + """ + windows.com.init() + clsid_task_scheduler = gdef.IID.from_string("0f87369f-a4e5-4cfc-bd3e-73e6154572dd") + task_service = task_scheduler.TaskService() + # What is non-implemented (WinXP) + # Raise (NotImplementedError?) ? Return NotImplemented ? + windows.com.create_instance(clsid_task_scheduler, task_service) + task_service.connect() + return task_service + + @utils.fixedpropety + def object_manager(self): + """An object to query the objects in the kernel object manager. + + :type: :class:`~windows.winobject.object_manager.ObjectManager` + """ + return windows.winobject.object_manager.ObjectManager() + + @utils.fixedpropety + def device_manager(self): + """An object to query the device&driver configured on the computer. + + :type: :class:`~windows.winobject.device_manager.DeviceManager` + """ + return windows.winobject.device_manager.DeviceManager() + + @utils.fixedpropety + def bits(self): + return bits.create_manager() + + #TODO: use GetComputerNameExA ? and recover other names ? + @utils.fixedpropety + def computer_name(self): + """The name of the computer + + :type: :class:`str` + """ + size = gdef.DWORD(0x1000) + # For now I don't know what is best as A vs W APIs... + if windows.pycompat.is_py3: + buf = ctypes.create_unicode_buffer(size.value) + winproxy.GetComputerNameW(buf, ctypes.byref(size)) + else: + buf = ctypes.create_string_buffer(size.value) + winproxy.GetComputerNameA(buf, ctypes.byref(size)) + return buf[:size.value] + + def _computer_name_ex(self, nametype): + size = gdef.DWORD(0) + try: + winproxy.GetComputerNameExW(nametype, None, ctypes.byref(size)) + except WindowsError as e: + if e.winerror != gdef.ERROR_MORE_DATA: + raise + + buf = ctypes.create_unicode_buffer(size.value) + winproxy.GetComputerNameExW(nametype, buf, ctypes.byref(size)) + return buf[:size.value] + + @utils.fixedproperty + def domain(self): + # [WIP] name of the domain joined by the computer, None is no domain joined + return self._computer_name_ex(gdef.ComputerNameDnsDomain) or None + + @utils.fixedpropety + def version(self): + """The version of the system + + :type: (:class:`int`, :class:`int`) -- (Major, Minor) + """ + data = self.get_version() + result = data.dwMajorVersion, data.dwMinorVersion + if result == (6,2): + result_str = self.get_file_version("kernel32") + result_tup = [int(x) for x in result_str.split(".")] + result = tuple(result_tup[:2]) + return result + + @utils.fixedpropety + def version_name(self): + """The name of the system version, values are: + + * Windows Server 2016 + * Windows 10 + * Windows Server 2012 R2 + * Windows 8.1 + * Windows Server 2012 + * Windows 8 + * Windows Server 2008 + * Windows 7 + * Windows Server 2008 + * Windows Vista + * Windows XP Professional x64 Edition + * TODO: version (5.2) + is_workstation + bitness == 32 (don't even know if possible..) + * Windows Server 2003 R2 + * Windows Server 2003 + * Windows XP + * Windows 2000 + * "Unknow Windows ".format(version, is_workstation) + + :type: :class:`str` + """ + version = self.version + is_workstation = self.product_type == gdef.VER_NT_WORKSTATION + if version == (10, 0): + return ["Windows Server 2016", "Windows 10"][is_workstation] + elif version == (6, 3): + return ["Windows Server 2012 R2", "Windows 8.1"][is_workstation] + elif version == (6, 2): + return ["Windows Server 2012", "Windows 8"][is_workstation] + elif version == (6, 1): + return ["Windows Server 2008 R2", "Windows 7"][is_workstation] + elif version == (6, 0): + return ["Windows Server 2008", "Windows Vista"][is_workstation] + elif version == (5, 2): + metric = winproxy.GetSystemMetrics(gdef.SM_SERVERR2) + if is_workstation: + if self.bitness == 64: + return "Windows XP Professional x64 Edition" + else: + return "TODO: version (5.2) + is_workstation + bitness == 32" + elif metric != 0: + return "Windows Server 2003 R2" + else: + return "Windows Server 2003" + elif version == (5, 1): + return "Windows XP" + elif version == (5, 0): + return "Windows 2000" + else: + return "Unknow Windows ".format(version, is_workstation) + + VERSION_MAPPER = gdef.FlagMapper(gdef.VER_NT_WORKSTATION, gdef.VER_NT_DOMAIN_CONTROLLER, gdef.VER_NT_SERVER) + @utils.fixedpropety + def product_type(self): + """The product type, value might be: + + * VER_NT_WORKSTATION(0x1L) + * VER_NT_DOMAIN_CONTROLLER(0x2L) + * VER_NT_SERVER(0x3L) + + :type: :class:`long` or :class:`int` (or subclass) + """ + version = self.get_version() + return self.VERSION_MAPPER[version.wProductType] + + + EDITION_MAPPER = gdef.FlagMapper(gdef.PRODUCT_UNDEFINED, + gdef.PRODUCT_ULTIMATE, + gdef.PRODUCT_HOME_BASIC, + gdef.PRODUCT_HOME_PREMIUM, + gdef.PRODUCT_ENTERPRISE, + gdef.PRODUCT_HOME_BASIC_N, + gdef.PRODUCT_BUSINESS, + gdef.PRODUCT_STANDARD_SERVER, + gdef.PRODUCT_DATACENTER_SERVER, + gdef.PRODUCT_SMALLBUSINESS_SERVER, + gdef.PRODUCT_ENTERPRISE_SERVER, + gdef.PRODUCT_STARTER, + gdef.PRODUCT_DATACENTER_SERVER_CORE, + gdef.PRODUCT_STANDARD_SERVER_CORE, + gdef.PRODUCT_ENTERPRISE_SERVER_CORE, + gdef.PRODUCT_ENTERPRISE_SERVER_IA64, + gdef.PRODUCT_BUSINESS_N, + gdef.PRODUCT_WEB_SERVER, + gdef.PRODUCT_CLUSTER_SERVER, + gdef.PRODUCT_HOME_SERVER, + gdef.PRODUCT_STORAGE_EXPRESS_SERVER, + gdef.PRODUCT_STORAGE_STANDARD_SERVER, + gdef.PRODUCT_STORAGE_WORKGROUP_SERVER, + gdef.PRODUCT_STORAGE_ENTERPRISE_SERVER, + gdef.PRODUCT_SERVER_FOR_SMALLBUSINESS, + gdef.PRODUCT_SMALLBUSINESS_SERVER_PREMIUM, + gdef.PRODUCT_HOME_PREMIUM_N, + gdef.PRODUCT_ENTERPRISE_N, + gdef.PRODUCT_ULTIMATE_N, + gdef.PRODUCT_WEB_SERVER_CORE, + gdef.PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT, + gdef.PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY, + gdef.PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING, + gdef.PRODUCT_SERVER_FOUNDATION, + gdef.PRODUCT_HOME_PREMIUM_SERVER, + gdef.PRODUCT_SERVER_FOR_SMALLBUSINESS_V, + gdef.PRODUCT_STANDARD_SERVER_V, + gdef.PRODUCT_DATACENTER_SERVER_V, + gdef.PRODUCT_ENTERPRISE_SERVER_V, + gdef.PRODUCT_DATACENTER_SERVER_CORE_V, + gdef.PRODUCT_STANDARD_SERVER_CORE_V, + gdef.PRODUCT_ENTERPRISE_SERVER_CORE_V, + gdef.PRODUCT_HYPERV, + gdef.PRODUCT_STORAGE_EXPRESS_SERVER_CORE, + gdef.PRODUCT_STORAGE_STANDARD_SERVER_CORE, + gdef.PRODUCT_STORAGE_WORKGROUP_SERVER_CORE, + gdef.PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE, + gdef.PRODUCT_STARTER_N, + gdef.PRODUCT_PROFESSIONAL, + gdef.PRODUCT_PROFESSIONAL_N, + gdef.PRODUCT_SB_SOLUTION_SERVER, + gdef.PRODUCT_SERVER_FOR_SB_SOLUTIONS, + gdef.PRODUCT_STANDARD_SERVER_SOLUTIONS, + gdef.PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE, + gdef.PRODUCT_SB_SOLUTION_SERVER_EM, + gdef.PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM, + gdef.PRODUCT_SOLUTION_EMBEDDEDSERVER, + gdef.PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE, + gdef.PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE, + gdef.PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT, + gdef.PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL, + gdef.PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC, + gdef.PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC, + gdef.PRODUCT_CLUSTER_SERVER_V, + gdef.PRODUCT_EMBEDDED, + gdef.PRODUCT_STARTER_E, + gdef.PRODUCT_HOME_BASIC_E, + gdef.PRODUCT_HOME_PREMIUM_E, + gdef.PRODUCT_PROFESSIONAL_E, + gdef.PRODUCT_ENTERPRISE_E, + gdef.PRODUCT_ULTIMATE_E, + gdef.PRODUCT_ENTERPRISE_EVALUATION, + gdef.PRODUCT_MULTIPOINT_STANDARD_SERVER, + gdef.PRODUCT_MULTIPOINT_PREMIUM_SERVER, + gdef.PRODUCT_STANDARD_EVALUATION_SERVER, + gdef.PRODUCT_DATACENTER_EVALUATION_SERVER, + gdef.PRODUCT_ENTERPRISE_N_EVALUATION, + gdef.PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER, + gdef.PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER, + gdef.PRODUCT_CORE_ARM, + gdef.PRODUCT_CORE_N, + gdef.PRODUCT_CORE_COUNTRYSPECIFIC, + gdef.PRODUCT_CORE_LANGUAGESPECIFIC, + gdef.PRODUCT_CORE, + gdef.PRODUCT_PROFESSIONAL_WMC, + gdef.PRODUCT_UNLICENSED) + + @utils.fixedpropety + def edition(self): # Find a better name ? + version = self.get_version() + edition = gdef.DWORD() + try: + winproxy.GetProductInfo(version.dwMajorVersion, + version.dwMinorVersion, + version.wServicePackMajor, + version.wServicePackMinor, + edition) + except winproxy.ExportNotFound as e: + # Windows XP does not implem GetProductInfo + assert version.dwMajorVersion, version.dwMinorVersion == (5,1) + return self._edition_windows_xp() + return self.EDITION_MAPPER[edition.value] + + def _edition_windows_xp(self): + # Emulate standard response from IsOS(gdef.OS_PROFESSIONAL) + if winproxy.IsOS(gdef.OS_PROFESSIONAL): + return gdef.PRODUCT_PROFESSIONAL + return gdef.PRODUCT_HOME_BASIC + + @utils.fixedpropety + def windir(self): + buffer = ctypes.c_buffer(0x100) + reslen = winproxy.GetWindowsDirectoryA(buffer) + return buffer[:reslen] + + def get_version(self): + data = gdef.OSVERSIONINFOEXA() + data.dwOSVersionInfoSize = ctypes.sizeof(data) + winproxy.GetVersionExA(ctypes.cast(ctypes.pointer(data), ctypes.POINTER(gdef.OSVERSIONINFOA))) + return data + + def get_file_version(self, name): + size = winproxy.GetFileVersionInfoSizeA(name) + buf = ctypes.c_buffer(size) + winproxy.GetFileVersionInfoA(name, 0, size, buf) + + bufptr = gdef.PVOID() + bufsize = gdef.UINT() + winproxy.VerQueryValueA(buf, "\\VarFileInfo\\Translation", ctypes.byref(bufptr), ctypes.byref(bufsize)) + bufstr = ctypes.cast(bufptr, gdef.LPCSTR) + tup = struct.unpack("", "SLOW") + thread_entry = gdef.THREADENTRY32() + thread_entry.dwSize = ctypes.sizeof(thread_entry) + snap = winproxy.CreateToolhelp32Snapshot(gdef.TH32CS_SNAPTHREAD, 0) + dbgprint("New handle CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD) | {0:#x}".format(snap), "HANDLE") + try: + winproxy.Thread32First(snap, thread_entry) + yield thread_entry + while winproxy.Thread32Next(snap, thread_entry): + yield thread_entry + finally: + winproxy.CloseHandle(snap) + dbgprint("CLOSE CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD) | {0:#x}".format(snap), "HANDLE") + + + @staticmethod + def enumerate_threads(): + return [WinThread._from_THREADENTRY32(th) for th in System.enumerate_threads_generator()] + + + def enumerate_threads_setup_owners(self): + # Enumerating threads is a special operation concerning the owner process. + # We may not be able to retrieve the name of the owning process by normal way + # (as we need to get a handle on the process) + # So, this implementation of enumerate_thread also setup the owner with the result of enumerate_processes + dbgprint("Enumerating threads with CreateToolhelp32Snapshot and setup owner", "SLOW") + + # One snap for both enum to be prevent race + snap = winproxy.CreateToolhelp32Snapshot(gdef.TH32CS_SNAPTHREAD | gdef.TH32CS_SNAPPROCESS, 0) + + process_entry = gdef.PROCESSENTRY32W() + process_entry.dwSize = ctypes.sizeof(process_entry) + winproxy.Process32FirstW(snap, process_entry) + processes = [] + processes.append(process.WinProcess._from_PROCESSENTRY32(process_entry)) + while winproxy.Process32NextW(snap, process_entry): + processes.append(process.WinProcess._from_PROCESSENTRY32(process_entry)) + + # Forge a dict pid -> process + proc_dict = {proc.pid: proc for proc in processes} + + thread_entry = gdef.THREADENTRY32() + thread_entry.dwSize = ctypes.sizeof(thread_entry) + threads = [] + winproxy.Thread32First(snap, thread_entry) + parent = proc_dict[thread_entry.th32OwnerProcessID] + threads.append(process.WinThread._from_THREADENTRY32(thread_entry, owner=parent)) + while winproxy.Thread32Next(snap, thread_entry): + parent = proc_dict[thread_entry.th32OwnerProcessID] + threads.append(process.WinThread._from_THREADENTRY32(thread_entry, owner=parent)) + winproxy.CloseHandle(snap) + return threads \ No newline at end of file diff --git a/pythonmemorymodule/windows/winobject/system_module.py b/pythonmemorymodule/windows/winobject/system_module.py new file mode 100644 index 0000000..cb65ff2 --- /dev/null +++ b/pythonmemorymodule/windows/winobject/system_module.py @@ -0,0 +1,53 @@ +import ctypes + +import windows +import windows.winproxy as winproxy +import windows.generated_def as gdef + +class BaseSystemModule(object): + """[ABSTRACT] A common base class for all system modules""" + + @property + def name(self): + """The name of the system module: alias for ``ImageName``""" + return self.ImageName + + def __repr__(self): + return """<{0} name="{1}" base={2:#x}>""".format(type(self).__name__, self.ImageName, self.Base) + + + +class SystemModule(BaseSystemModule, gdef.SYSTEM_MODULE): + """A system module. + + .. note:: + inherit from SYSTEM_MODULE[32/64] based on the current process bitness + """ + pass + + +# Only useful / meaningful in Wow64 Process +class SystemModuleWow64(BaseSystemModule, gdef.SYSTEM_MODULE64): + """An explicite 64b system module for SysWow64 processes""" + pass + + +def enumerate_kernel_modules(): + if windows.current_process.is_wow_64: + return enumerate_kernel_modules_syswow64() + cbsize = gdef.DWORD() + winproxy.NtQuerySystemInformation(gdef.SystemModuleInformation, None, 0, ctypes.byref(cbsize)) + raw_buffer = (cbsize.value * gdef.BYTE)() + buffer = gdef.SYSTEM_MODULE_INFORMATION.from_address(ctypes.addressof(raw_buffer)) + winproxy.NtQuerySystemInformation(gdef.SystemModuleInformation, ctypes.byref(raw_buffer), ctypes.sizeof(raw_buffer), ctypes.byref(cbsize)) + modules = (SystemModule * buffer.ModulesCount).from_buffer(raw_buffer, gdef.SYSTEM_MODULE_INFORMATION.Modules.offset) + return list(modules) + +def enumerate_kernel_modules_syswow64(): + cbsize = gdef.DWORD() + windows.syswow64.NtQuerySystemInformation_32_to_64(gdef.SystemModuleInformation, None, 0, ctypes.addressof(cbsize)) + raw_buffer = (cbsize.value * gdef.BYTE)() + buffer = gdef.SYSTEM_MODULE_INFORMATION64.from_address(ctypes.addressof(raw_buffer)) + windows.syswow64.NtQuerySystemInformation_32_to_64(gdef.SystemModuleInformation, ctypes.byref(raw_buffer), ctypes.sizeof(raw_buffer), ctypes.byref(cbsize)) + modules = (SystemModuleWow64 * buffer.ModulesCount).from_buffer(raw_buffer, gdef.SYSTEM_MODULE_INFORMATION64.Modules.offset) + return list(modules) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winobject/task_scheduler.py b/pythonmemorymodule/windows/winobject/task_scheduler.py new file mode 100644 index 0000000..62743ff --- /dev/null +++ b/pythonmemorymodule/windows/winobject/task_scheduler.py @@ -0,0 +1,485 @@ +import windows.com +import windows.generated_def as gdef + + +def generate_simple_getter(function, restype, extract_value=True, doc=None): + def value_getter(self): + res = restype() + getattr(self, function)(res) + if extract_value: + return res.value + return res + return property(value_getter, doc=doc) + + +def add_simple_setter(getter, function, restype): + @getter.setter + def value_setter(self, value): + resvalue = restype(value) + return getattr(self, function)(resvalue) + return value_setter + + +class TaskCollectionType(object): + ITEM_TYPE = None + + count = generate_simple_getter("get_Count", gdef.LONG) + + def get_item_type(self): + return self.ITEM_TYPE + + def get_item(self, index): + """Return elements nb ``index``. Collection index starts at 1""" + if index == 0: + raise IndexError("<{0}> Index start as 1".format(type(self).__name__)) + index = self.get_index(index) + res = self.get_item_type()() + self.get_Item(index, res) + return res + + def get_index(self, index): + return index + + def items_generator(self): + for i in range(self.count): + # Start index is 1 + # https://msdn.microsoft.com/en-us/library/windows/desktop/aa446901(v=vs.85).aspx + yield self.get_item(1 + i) + + @property + def items(self): + """Return the list of item in the collection + + :type: :class:`list` + """ + return list(self.items_generator()) + + def __iter__(self): + return self.items_generator() + + def __getitem__(self, index): # Allow subclasses to only overwrite 'get_item' to rewrite both behavior + return self.get_item(index) + +# Need to-do the doc=xx tricks to have the documentation in the 'AbstractAction' subclasses + +class AbstractAction(object): + type_doc = """The type of action + + :type: :class:`~windows.generated_def.winstructs.TASK_ACTION_TYPE` + """ + type = generate_simple_getter("get_Type", gdef.TASK_ACTION_TYPE, doc=type_doc) + + id_doc = """The action id + + :type: :class:`~windows.generated_def.winstructs.BSTR` + """ + id = generate_simple_getter("get_Id", gdef.BSTR, doc=id_doc) + + +class Action(gdef.IAction, AbstractAction): + """Describe an action performed by a task""" + ACTION_SUBTYPE = {} + + + @property + def subtype(self): + """Return the :class:`Action`-subtype according to :data:`AbstractAction.type`""" + subinterface = self.ACTION_SUBTYPE[self.type] # KeyError ? + return self.query(subinterface) + + +class ExecAction(gdef.IExecAction, AbstractAction): + """Represent an action of type + :data:`~windows.generated_def.winstructs._TASK_ACTION_TYPE.TASK_ACTION_EXEC`""" + path = generate_simple_getter("get_Path", gdef.BSTR) + path = add_simple_setter(path, "put_Path", gdef.BSTR) + """[R-W] The path of the programm to execute""" + + arguments = generate_simple_getter("get_Arguments", gdef.BSTR) + arguments = add_simple_setter(arguments, "put_Arguments", gdef.BSTR) + """[R-W] The arguments for the command to execute""" + + working_directory = generate_simple_getter("get_WorkingDirectory", gdef.BSTR) + """The working directory for the command to execute""" + +# Register action subtype +Action.ACTION_SUBTYPE[gdef.TASK_ACTION_EXEC] = ExecAction + +class ComHandlerAction(gdef.IComHandlerAction, AbstractAction): + """Represent an action of type + :data:`~windows.generated_def.winstructs._TASK_ACTION_TYPE.TASK_ACTION_COM_HANDLER`""" + + classid = generate_simple_getter("get_ClassId", gdef.BSTR) + classid = add_simple_setter(classid, "put_ClassId", gdef.BSTR) + """The CLSID of the COM server executed + + :type: :class:`~windows.generated_def.winstructs.BSTR` + """ + data = generate_simple_getter("get_Data", gdef.BSTR) + data = add_simple_setter(data, "put_Data", gdef.BSTR) + """The DATA for the COM class + + :type: :class:`~windows.generated_def.winstructs.BSTR` + """ + +# Register action subtype +Action.ACTION_SUBTYPE[gdef.TASK_ACTION_COM_HANDLER] = ComHandlerAction + + +class EmailAction(gdef.IEmailAction, AbstractAction): + pass + + +Action.ACTION_SUBTYPE[gdef.TASK_ACTION_SEND_EMAIL] = EmailAction + +class ShowMessageAction(gdef.IShowMessageAction, AbstractAction): + pass + +Action.ACTION_SUBTYPE[gdef.TASK_ACTION_SHOW_MESSAGE] = ShowMessageAction + +class Trigger(gdef.ITrigger): + """A task trigger""" + type = generate_simple_getter("get_Type", gdef.TASK_TRIGGER_TYPE2) + """The type of trigger + + :type: :class:`~windows.generated_def.winstructs.TASK_TRIGGER_TYPE2` + """ + + +class ActionCollection(gdef.IActionCollection, TaskCollectionType): + ITEM_TYPE = Action + + def create(self, action_type): + """Create a new action of type ``action_type`` + + :rtype: A subclass of :class:`Action` + """ + res = self.ITEM_TYPE() + self.Create(action_type, res) + return res.subtype + + def get_item(self, index): + item = super(ActionCollection, self).get_item(index) + # Need to Release() item ? + return item.subtype + +class TriggerCollection(gdef.ITriggerCollection, TaskCollectionType): + ITEM_TYPE = Trigger + + +class TaskRegistrationInfo(gdef.IRegistrationInfo): + """Provides the administrative information that can be used to describe the task. + + This information includes details such as a description of the task, + the author of the task, the date the task is registered, + and the security descriptor of the task. + """ + author = generate_simple_getter("get_Author", gdef.BSTR) + """The author of the task""" + description = generate_simple_getter("get_Description", gdef.BSTR) + """The description of the task""" + date = generate_simple_getter("get_Date", gdef.BSTR) + """The registration date of the task""" + source = generate_simple_getter("get_Source", gdef.BSTR) + """Where the task originated from. + + For example, a task may originate from a component, service, application, or user. + """ + documentation = generate_simple_getter("get_Documentation", gdef.BSTR) + """Any additional documentation for the task""" + uri = generate_simple_getter("get_URI", gdef.BSTR) + """the URI of the task.""" + version = generate_simple_getter("get_Version", gdef.BSTR) + """The version number of the task.""" + + # Return WindowsError: [Error -2147467263] Not implemented + # xml = generate_simple_getter("get_XmlText", gdef.BSTR) + + sddl = generate_simple_getter("get_SecurityDescriptor", windows.com.Variant) + + @property + def security_descriptor(self): + sddl = self.sddl + if not sddl: + return None + return windows.security.SecurityDescriptor.from_string(sddl) + + + +class TaskPrincipal(gdef.IPrincipal): + """Provides the security credentials for a principal. + These security credentials define the security context for the tasks that are associated with the principal. + """ + + name = generate_simple_getter("get_DisplayName", gdef.BSTR) + name = add_simple_setter(name, "put_DisplayName", gdef.BSTR) + """The name of the principal""" + id = generate_simple_getter("get_Id", gdef.BSTR) + id = add_simple_setter(id, "put_Id", gdef.BSTR) + """the identifier of the principal.""" + user_id = generate_simple_getter("get_UserId", gdef.BSTR) + user_id = add_simple_setter(user_id, "put_UserId", gdef.BSTR) + """the user identifier that is required to run the task""" + group_id = generate_simple_getter("get_GroupId", gdef.BSTR) + group_id = add_simple_setter(group_id, "put_GroupId", gdef.BSTR) + """the user group that is required to run the task""" + run_level = generate_simple_getter("get_RunLevel", gdef.TASK_RUNLEVEL_TYPE) + """the privilege level that is required to run the tasks + + :type: :class:`~windows.generated_def.winstructs.TASK_RUNLEVEL_TYPE` + """ + logon_type = generate_simple_getter("get_LogonType", gdef.TASK_LOGON_TYPE) + """ logon method that is required to run the task + + :type: :class:`~windows.generated_def.winstructs.TASK_LOGON_TYPE` + """ + +class TaskDefinition(gdef.ITaskDefinition): + """The definition of a task""" + actions = generate_simple_getter("get_Actions", ActionCollection, extract_value=False) + """The list of actions of the task + + :type: :class:`ActionCollection` + """ + triggers = generate_simple_getter("get_Triggers", TriggerCollection, extract_value=False) + """The list of triggers of the task + + :type: :class:`TriggerCollection` + """ + + registration_info = generate_simple_getter("get_RegistrationInfo", TaskRegistrationInfo, extract_value=False) + """The registration information of the task + + :type: :class:`TaskRegistrationInfo` + """ + + principal = generate_simple_getter("get_Principal", TaskPrincipal, extract_value=False) + """The principal that provides the security credentials for the task. + These security credentials define the security context for the tasks that are associated with the principal. + + :type: :class:`TaskPrincipal` + """ + + xml = generate_simple_getter("get_XmlText", gdef.BSTR) + """The XML representig the task definition + + :type: :class:`str` + """ + + + +class Task(gdef.IRegisteredTask): + """A scheduled task""" + name = generate_simple_getter("get_Name", gdef.BSTR) + """The name of the task""" + path = generate_simple_getter("get_Path", gdef.BSTR) + """The path of the task""" + state = generate_simple_getter("get_State", gdef.TASK_STATE) + """The state of the task + + + :type: :class:`~windows.generated_def.winstructs.TASK_STATE` + """ + enabled = generate_simple_getter("get_Enabled", gdef.VARIANT_BOOL) + """``True`` is the task is enabled""" + last_runtime = generate_simple_getter("get_LastRunTime", gdef.DATE) + """Gets the last time the registered task was last run.""" + next_runtime = generate_simple_getter("get_NextRunTime", gdef.DATE) + """Gets the next time the registered task will be run.""" + + definition = generate_simple_getter("get_Definition", TaskDefinition, extract_value=False) + """The definition of the task + + :type: :class:`TaskDefinition` + """ + + xml = generate_simple_getter("get_Xml", gdef.BSTR) + """The XML representig the task + + :type: :class:`str` + """ + + def run(self, params=None, flags=gdef.TASK_RUN_NO_FLAGS, sessionid=0, user=None): + if params is None: params = gdef.VARIANT() # Empty variant + result = gdef.IRunningTask() + self.RunEx(params, flags, sessionid, user, result) + return result + + def get_security_descriptor(self, secinfo): + res = gdef.BSTR() + self.GetSecurityDescriptor(secinfo, res) + return res.value + + def __repr__(self): + return """<{0} "{1}" at {2:#x}>""".format(type(self).__name__, self.name, id(self)) + + +class TaskCollection(gdef.IRegisteredTaskCollection, TaskCollectionType): + ITEM_TYPE = Task + def get_index(self, index): + vindex = windows.com.Variant() + vindex.vt = gdef.VT_I4 + vindex._VARIANT_NAME_3.lVal = index + return vindex + + +class TaskService(gdef.ITaskService): + """The task scheduler""" + def create(self, flags=0): + """Create a new :class:`TaskDefinition` that can be used to create/register a new scheduled task + + :rtype: :class:`TaskDefinition` + """ + res = TaskDefinition() + self.NewTask(flags, res) + return res + + def connect(self, server=None, user=None, domain=None, password=None): + if server is None: server = gdef.VARIANT() # Empty variant + if user is None: user = gdef.VARIANT() # Empty variant + if domain is None: domain = gdef.VARIANT() # Empty variant + if password is None: password = gdef.VARIANT() # Empty variant + self.Connect(server, user, domain, password) + + def folder(self, name): + """Return the :class:`TaskFolder` with ``name`` + + :rtype: :class:`TaskFolder` + """ + folder = TaskFolder() + self.GetFolder(name, folder) + return folder + + __call__ = folder # use the same 'API' than the registry + """Alias for :func:`folder`""" + + + @property + def root(self): + r"""The root ``\`` :class:`TaskFolder`""" + return self.folder("\\") + + + +class TaskFolder(gdef.ITaskFolder): + """A folder of tasks""" + path = generate_simple_getter("get_Path", gdef.BSTR) + name = generate_simple_getter("get_Name", gdef.BSTR) + + @property + def folders(self): + """The list of sub-folders + + :type: :class:`TaskFolderCollection` + """ + res = TaskFolderCollection() + self.GetFolders(0, res) + return res + + def register(self, name, taskdef, flags=gdef.TASK_CREATE, userid=None, password=None, logonType=gdef.TASK_LOGON_NONE, ssid=None): + """Register the task definition ``taskdef`` as a new task with ``name`` + + :rtype: :class:`Task` + """ + new_task = Task() + + if userid is None: userid = gdef.VARIANT() # Empty variant + if password is None: password = gdef.VARIANT() # Empty variant + if ssid is None: ssid = gdef.VARIANT() # Empty variant + + self.RegisterTaskDefinition(name, taskdef, flags, userid, password, logonType, ssid, new_task) + return new_task + + @property + def tasks(self, flags=gdef.TASK_ENUM_HIDDEN): + """The list of tasks in the folder + + :type: :class:`TaskCollection` + """ + tasks = TaskCollection() + self.GetTasks(flags, tasks) + return tasks + + def get_task(self, name): + """Retrieve the task with ``name`` in the current folder + + :rtype: :class:`Task` + """ + res = Task() + self.GetTask(name, res) + return res + + def delete_task(self, name): + """Delete the task with ``name`` in the current folder""" + return self.DeleteTask(name, 0) + + def folder(self, name): + """Return the :class:`TaskFolder` with ``name``""" + folder = TaskFolder() + self.GetFolder(name, folder) + return folder + + def create_folder(self, name): + """Create a new sub-:class:`TaskFolder` with ``name``""" + folder = TaskFolder() + self.CreateFolder(name, gdef.VARIANT(), folder) + return folder + + def delete_folder(self, name): + """Delete the sub-folder with ``name`` in the current folder""" + return self.DeleteFolder(name, 0) + + __getitem__ = get_task + """ Alias for :func:`get_task`""" + __delitem__ = delete_task + """ Alias for :func:`delete_task`""" + __call__ = folder # use the same 'API' than the registry + """ Alias for :func:`folder`""" + + + + def __repr__(self): + return """<{0} "{1}" at {2:#x}>""".format(type(self).__name__, self.path, id(self)) + + +class TaskFolderCollection(gdef.ITaskFolderCollection, TaskCollectionType): + ITEM_TYPE = TaskFolder + + def get_index(self, index): + vindex = windows.com.Variant() + vindex.vt = gdef.VT_I4 + vindex._VARIANT_NAME_3.lVal = index + return vindex + +# windows.com.init() +# clsid_task_scheduler = gdef.IID.from_string("0f87369f-a4e5-4cfc-bd3e-73e6154572dd") +# x = TaskService() +# emptvar = gdef.VARIANT() +# windows.com.create_instance(clsid_task_scheduler, x) +# x.connect() +# folder = x.folder("\\") +# assert folder.value +# tasks = folder.tasks + +# for task in tasks.items: + # print(task.name) + # for action in task.definition.actions.items: + # print(" * {0}".format(action.type)) + # subtype = action.subtype + # print(" * Path: {0}".format(subtype.path)) + # print(" * Args: {0}".format(subtype.arguments)) + # print(" * WDir: {0}".format(subtype.working_directory)) + +# Test creation + +# ntd = x.create() +# actions = ntd.actions +# nea = actions.create(gdef.TASK_ACTION_EXEC).subtype +# nea.path = "MY_BINARY" +# nea.arguments = "MY_ARGUMENTS" + +# folder.register("PROUT", ntd) + +# path = gdef.BSTR() +# e.get_Path(path) +# print(path) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winobject/token.py b/pythonmemorymodule/windows/winobject/token.py new file mode 100644 index 0000000..091a1ce --- /dev/null +++ b/pythonmemorymodule/windows/winobject/token.py @@ -0,0 +1,626 @@ +import ctypes +import functools + +import windows +from windows import utils +from windows import winproxy +import windows.generated_def as gdef +# import windows.security # at the end of this file (loop import) + +bltn_type = type + +KNOW_INTEGRITY_LEVEL = gdef.FlagMapper( + gdef.SECURITY_MANDATORY_UNTRUSTED_RID, + gdef.SECURITY_MANDATORY_LOW_RID, + gdef.SECURITY_MANDATORY_MEDIUM_RID, + gdef.SECURITY_MANDATORY_MEDIUM_PLUS_RID, + gdef.SECURITY_MANDATORY_HIGH_RID, + gdef.SECURITY_MANDATORY_SYSTEM_RID, + gdef.SECURITY_MANDATORY_PROTECTED_PROCESS_RID +) + +# Voodoo to fix lookup-strangeness in class declaration +def meta_craft(x): + def partial_applier(infos_class, rtype): + return property(functools.partial(x, infos_class=infos_class, rtype=rtype)) + return partial_applier + + +class TokenGroups(gdef.TOKEN_GROUPS): + @property + def _groups(self): + return windows.utils.resized_array(self.Groups, self.GroupCount) + + @property + def sids_and_attributes(self): + """The sids and attributes of each group + + :type: [:class:`~windows.generated_def.winstructs.SID_AND_ATTRIBUTES`] - A list of :class:`~windows.generated_def.winstructs.SID_AND_ATTRIBUTES` + """ + return self._groups # Something else ? + + @property + def sids(self): + """The sids of each group + + :type: [:class:`~windows.generated_def.winstructs.PSID`] - A list of :class:`~windows.generated_def.winstructs.PSID` + """ + return [g.Sid for g in self._groups] + + def __repr__(self): + return "<{0} count={1}>".format(type(self).__name__, self.GroupCount) + +TokenGroupsType = TokenGroups # Prevent confusion with token.TokenGroups + +class TokenPrivileges(gdef.TOKEN_PRIVILEGES): + """Improved ``TOKEN_PRIVILEGES`` usable like a mapping""" + @property + def _privileges(self): + return windows.utils.resized_array(self.Privileges, self.PrivilegeCount) + + def all(self): + """The list of all privileges + + :returns: [:class:`~windows.generated_def.winstructs.LUID_AND_ATTRIBUTES`] - A list of :class:`~windows.generated_def.winstructs.LUID_AND_ATTRIBUTES` + """ + return list(self._privileges) + + def keys(self): + """The name of all privileges in the TokenPrivileges + + :returns: [:class:`str`] - A list of name + """ + return [self._lookup_name(p.Luid) for p in self._privileges] + + __iter__ = keys + + def items(self): + """The (name, Attribute) of all privileges in the TokenPrivileges + + :returns: [(:class:`str`, :class:`int`)] - A list of (name, Attribute) tuple + """ + return [(self._lookup_name(p.Luid), p.Attributes) for p in self._privileges] + + def _get_priv_by_name(self, name): + luid = self._lookup_value(name) + x = [p for p in self._privileges if p.Luid == luid] + if not x: + return None + assert len(x) == 1 + return x[0] + + def __getitem__(self, name): + """Retrieve the attribute value for privilege ``name`` + + :raises: KeyError if privilege ``name`` not in the TokenPrivileges + :returns: :class:`int` + """ + priv = self._get_priv_by_name(name) + if not priv: + raise KeyError(name) + return priv.Attributes + + def __setitem__(self, name, value): + """Set the attribute value for privilege ``name`` + + :raises: KeyError if privilege ``name`` not in the TokenPrivileges + """ + priv = self._get_priv_by_name(name) + if not priv: + raise KeyError(name) + priv.Attributes = value + + # __delitem__ that set SE_PRIVILEGE_REMOVED ? + + def _lookup_name(self, luid): + size = gdef.DWORD(0x100) + buff = ctypes.create_unicode_buffer(size.value) + winproxy.LookupPrivilegeNameW(None, luid, buff, size) + return buff[:size.value] + + def _lookup_value(self, name): + luid = gdef.LUID() + winproxy.LookupPrivilegeValueW(None, name, ctypes.byref(luid)) + return luid + + + +TokenPrivilegesType = TokenPrivileges + +class TokenSecurityAttributesInformation(gdef.TOKEN_SECURITY_ATTRIBUTES_INFORMATION): + @property + def attributes(self): + """Return all the attributes as :class:`TokenSecurityAttributeV1` + + :type: [:class:`TokenSecurityAttributeV1`] - A list of token security attributes + """ + tptr = ctypes.cast(self.Attribute.pAttributeV1, ctypes.POINTER(TokenSecurityAttributeV1)) + # Well look like this cast does NOT keep a ref to self. + # Setup the base object ref ourself + tptr._custom_base_ = self + return tptr[:self.AttributeCount] + + +class TokenSecurityAttributeV1(gdef.TOKEN_SECURITY_ATTRIBUTE_V1): + VALUE_ARRAY_PTR_BY_TYPE = { + gdef.TOKEN_SECURITY_ATTRIBUTE_TYPE_INT64: "pInt64", + gdef.TOKEN_SECURITY_ATTRIBUTE_TYPE_UINT64: "pUint64", + gdef.TOKEN_SECURITY_ATTRIBUTE_TYPE_STRING: "pString", + gdef.TOKEN_SECURITY_ATTRIBUTE_TYPE_FQBN: "pFqbn", + # TOKEN_SECURITY_ATTRIBUTE_TYPE_SID + # TOKEN_SECURITY_ATTRIBUTE_TYPE_BOOLEAN + gdef.TOKEN_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING: "pOctetString", + } + + @property + def name(self): + """The name of the security attribute""" + return self.Name.str + + @property + def values(self): + """The values of the security attribute""" + array_name = self.VALUE_ARRAY_PTR_BY_TYPE[self.ValueType] + return getattr(self.Values, array_name)[:self.ValueCount] + + def __repr__(self): + return """<{0} name="{1}">""".format(type(self).__name__, self.name) + + + +# https://docs.microsoft.com/en-us/windows/desktop/SecAuthZ/access-tokens +class Token(utils.AutoHandle): + """Represent a Windows Token. + The attributes only documented by a type are from the :class:`~windows.generated_def.winstructs.TOKEN_INFORMATION_CLASS`, such return values may be improved version of the structure. + + .. note:: + + see `[MSDN] TOKEN_INFORMATION_CLASS `_ + """ + def __init__(self, handle): + self._handle = handle + + def _get_required_token_information_size(self, infos_class): + cbsize = gdef.DWORD() + try: + winproxy.GetTokenInformation(self.handle, infos_class, None, 0, ctypes.byref(cbsize)) + except winproxy.WinproxyError as e: + if not e.winerror in (gdef.ERROR_INSUFFICIENT_BUFFER, gdef.ERROR_BAD_LENGTH): + raise + return cbsize.value + + def get_token_infomations(self, infos_class, rtype): + required_size = self._get_required_token_information_size(infos_class) + requested_size = max(required_size, ctypes.sizeof(rtype)) + buffer = utils.BUFFER(rtype, 1)(size=requested_size) + cbsize = gdef.DWORD() + winproxy.GetTokenInformation(self.handle, infos_class, buffer, buffer.real_size, cbsize) + return buffer[0] + + + def set_informations(self, info_type, infos): + return winproxy.SetTokenInformation(self.handle, info_type, ctypes.byref(infos), ctypes.sizeof(infos)) + + + craft = meta_craft(get_token_infomations) + # https://docs.microsoft.com/en-us/windows/desktop/api/winnt/ne-winnt-_token_information_class + TokenUser = craft(gdef.TokenUser, gdef.TOKEN_USER) #: :class:`~windows.generated_def.winstructs.TOKEN_USER` + TokenGroups = craft(gdef.TokenGroups , TokenGroupsType) #: :class:`TokenGroups` + TokenPrivileges = craft(gdef.TokenPrivileges , TokenPrivilegesType) #: :class:`TokenPrivileges` + TokenOwner = craft(gdef.TokenOwner, gdef.TOKEN_OWNER) #: :class:`~windows.generated_def.winstructs.TOKEN_OWNER` + TokenPrimaryGroup = craft(gdef.TokenPrimaryGroup, gdef.TOKEN_PRIMARY_GROUP) #: :class:`~windows.generated_def.winstructs.TOKEN_PRIMARY_GROUP` + TokenDefaultDacl = craft(gdef.TokenDefaultDacl, gdef.TOKEN_DEFAULT_DACL) #: :class:`~windows.generated_def.winstructs.TOKEN_DEFAULT_DACL` + TokenSource = craft(gdef.TokenSource, gdef.TOKEN_SOURCE) #: :class:`~windows.generated_def.winstructs.TOKEN_SOURCE` + TokenType = craft(gdef.TokenType, gdef.TOKEN_TYPE) #: :class:`~windows.generated_def.winstructs.TOKEN_TYPE` + TokenImpersonationLevel = craft(gdef.TokenImpersonationLevel, gdef.SECURITY_IMPERSONATION_LEVEL) #: :class:`~windows.generated_def.winstructs.SECURITY_IMPERSONATION_LEVEL` + TokenStatistics = craft(gdef.TokenStatistics, gdef.TOKEN_STATISTICS) #: :class:`~windows.generated_def.winstructs.TOKEN_STATISTICS` + TokenRestrictedSids = craft(gdef.TokenRestrictedSids, TokenGroupsType) #: :class:`~windows.generated_def.winstructs.TokenGroups` + TokenSessionId = craft(gdef.TokenSessionId, gdef.DWORD) #: :class:`~windows.generated_def.winstructs.DWORD` + TokenGroupsAndPrivileges = craft(gdef.TokenGroupsAndPrivileges, gdef.TOKEN_GROUPS_AND_PRIVILEGES) #: :class:`~windows.generated_def.winstructs.TOKEN_GROUPS_AND_PRIVILEGES` + # TokenSessionReference = craft(gdef.TokenSessionReference, ???) # Reserved. + TokenSandBoxInert = craft(gdef.TokenSandBoxInert, gdef.DWORD) #: :class:`~windows.generated_def.winstructs.DWORD` + # TokenAuditPolicy = craft(gdef.TokenAuditPolicy, ???) # Reserved. + TokenOrigin = craft(gdef.TokenOrigin, gdef.TOKEN_ORIGIN) #: :class:`~windows.generated_def.winstructs.TOKEN_ORIGIN` + TokenElevationType = craft(gdef.TokenElevationType, gdef.TOKEN_ELEVATION_TYPE) #: :class:`~windows.generated_def.winstructs.TOKEN_ELEVATION_TYPE` + TokenLinkedToken = craft(gdef.TokenLinkedToken, gdef.TOKEN_LINKED_TOKEN) #: :class:`~windows.generated_def.winstructs.TOKEN_LINKED_TOKEN` + TokenElevation = craft(gdef.TokenElevation, gdef.TOKEN_ELEVATION) #: :class:`~windows.generated_def.winstructs.TOKEN_ELEVATION` + TokenHasRestrictions = craft(gdef.TokenHasRestrictions, gdef.DWORD) #: :class:`~windows.generated_def.winstructs.DWORD` + TokenAccessInformation = craft(gdef.TokenAccessInformation, gdef.TOKEN_ACCESS_INFORMATION) #: :class:`~windows.generated_def.winstructs.TOKEN_ACCESS_INFORMATION` + TokenVirtualizationAllowed = craft(gdef.TokenVirtualizationAllowed, gdef.DWORD) #: :class:`~windows.generated_def.winstructs.DWORD` + TokenVirtualizationEnabled = craft(gdef.TokenVirtualizationEnabled, gdef.DWORD) #: :class:`~windows.generated_def.winstructs.DWORD` + TokenIntegrityLevel = craft(gdef.TokenIntegrityLevel, gdef.TOKEN_MANDATORY_LABEL) #: :class:`~windows.generated_def.winstructs.TOKEN_MANDATORY_LABEL` + TokenUIAccess = craft(gdef.TokenUIAccess, gdef.DWORD) #: :class:`~windows.generated_def.winstructs.DWORD` + TokenMandatoryPolicy = craft(gdef.TokenMandatoryPolicy, gdef.TOKEN_MANDATORY_POLICY) #: :class:`~windows.generated_def.winstructs.TOKEN_MANDATORY_POLICY` + TokenLogonSid = craft(gdef.TokenLogonSid, TokenGroupsType) #: :class:`TokenGroups` + TokenIsAppContainer = craft(gdef.TokenIsAppContainer, gdef.DWORD) #: :class:`~windows.generated_def.winstructs.DWORD` + TokenCapabilities = craft(gdef.TokenCapabilities, TokenGroupsType) #: :class:`TokenGroups` + TokenAppContainerSid = craft(gdef.TokenAppContainerSid, gdef.TOKEN_APPCONTAINER_INFORMATION) #: :class:`~windows.generated_def.winstructs.TOKEN_APPCONTAINER_INFORMATION` + TokenAppContainerNumber = craft(gdef.TokenAppContainerNumber, gdef.DWORD) #: :class:`~windows.generated_def.winstructs.DWORD` + TokenUserClaimAttributes = craft(gdef.TokenUserClaimAttributes, gdef.CLAIM_SECURITY_ATTRIBUTES_INFORMATION) #: :class:`~windows.generated_def.winstructs.CLAIM_SECURITY_ATTRIBUTES_INFORMATION` + TokenDeviceClaimAttributes = craft(gdef.TokenDeviceClaimAttributes, gdef.CLAIM_SECURITY_ATTRIBUTES_INFORMATION) #: :class:`~windows.generated_def.winstructs.CLAIM_SECURITY_ATTRIBUTES_INFORMATION` + # TokenRestrictedUserClaimAttributes = craft(gdef.TokenRestrictedUserClaimAttributes, ???) # Reserved. + # TokenRestrictedDeviceClaimAttributes = craft(gdef.TokenRestrictedDeviceClaimAttributes, ???) # Reserved. + TokenDeviceGroups = craft(gdef.TokenDeviceGroups, TokenGroupsType) #: :class:`TokenGroups` + TokenRestrictedDeviceGroups = craft(gdef.TokenRestrictedDeviceGroups, gdef.TOKEN_GROUPS) #: :class:`~windows.generated_def.winstructs.TOKEN_GROUPS` + # Reserved. + # Structure found in ntseapi.h (thx internet) + TokenSecurityAttributes = craft(gdef.TokenSecurityAttributes, TokenSecurityAttributesInformation) #: :class:`TokenSecurityAttributesInformation` + # Help would be appreciated for the structures of the following query type + + # TokenIsRestricted = craft(gdef.TokenIsRestricted, ???) # Reserved. + TokenProcessTrustLevel = craft(gdef.TokenProcessTrustLevel, gdef.PSID) #: :class:`~windows.generated_def.winstructs.PSID` + # TokenPrivateNameSpace = craft(gdef.TokenPrivateNameSpace, gdef.ULONG) # Reserved. + # TokenSingletonAttributes = craft(gdef.TokenSingletonAttributes, ???) # Reserved. + # TokenBnoIsolation = craft(gdef.TokenBnoIsolation, ???) # Reserved. + # TokenChildProcessFlags = craft(gdef.TokenChildProcessFlags, ???) # Reserved. + # TokenIsLessPrivilegedAppContainer = craft(gdef.TokenIsLessPrivilegedAppContainer, ???) # Reserved. + + # High level properties + + @property + def user(self): + """The user sid of the token + + :type: :class:`~windows.generated_def.winstructs.PSID` + """ + return self.TokenUser.User.Sid + + @property + def username(self): + """The username of the token + + :type: :class:`str` + """ + return self._user_and_computer_name()[1] + + @property + def computername(self): + """The computername of the token + + :type: :class:`str` + """ + return self._user_and_computer_name()[0] + + def _user_and_computer_name(self): + return windows.utils.lookup_sid(self.user) + + + groups = TokenGroups #: Alias for TokenGroups (type may change in the future for improved struct) + + @property + def owner(self): + """The owner sid of the token + + :type: :class:`~windows.generated_def.winstructs.PSID` + """ + return self.TokenOwner.Owner + + @property + def primary_group(self): + """The sid of the primary group of the token + + :type: :class:`~windows.generated_def.winstructs.PSID` + """ + return self.TokenPrimaryGroup.PrimaryGroup + + @property + def default_dacl(self): + """The defaul DACL of the token + + :type: :class:`windows.security.Acl` + """ + return self.get_token_infomations(gdef.TokenDefaultDacl, windows.security.PAcl)[0] + + # def source(self): (tok.TokenSource) ?? + + @property + def type(self): + """The type (Primary / Impersonation) of the token + + + """ + return self.TokenType.value + + @property + def impersonation_level(self): + """The impersonation level of a ``TokenImpersonation`` token. + + :raises: :class:`WindowsError` if token is not a ``TokenImpersonation`` + :type: :class:`int` -- Enum value from :class:`~windows.generated_def.winstructs.SECURITY_IMPERSONATION_LEVEL` + """ + try: + return self.TokenImpersonationLevel.value + except WindowsError as e: + if (e.winerror == gdef.ERROR_INVALID_PARAMETER and + self.type != gdef.TokenImpersonation): + # raise ValueError ? + e.strerror += " This Token is not an Impersonation token" + raise + + statistics = TokenStatistics #: Alias for TokenStatistics (type may change in the future for improved struct) + + @property + def id(self): + """The TokenId Specifies an unique identifier that identifies this instance of the token object. + + :type: :class:`int` + """ + return int(self.TokenStatistics.TokenId) + + @property + def authentication_id(self): + """The AuthenticationId Specifies an unique identifier assigned to the session this token represents. + There can be many tokens representing a single logon session. + + :type: :class:`int` + """ + return int(self.TokenStatistics.AuthenticationId) + + @property + def modified_id(self): + """The ModifiedId Specifies an unique identifier that changes each time the token is modified. + + :type: :class:`int` + """ + return int(self.TokenStatistics.ModifiedId) + + restricted_sids = TokenRestrictedSids #: Alias for TokenRestrictedSids (type may change in the future for improved struct) + session_id = TokenSessionId #: Alias for TokenSessionId (type may change in the future for improved struct) + + @property + def groups_and_privileges(self): + """Alias for TokenGroupsAndPrivileges (type may change in the future for improved struct)""" + # Return enhanced 'TOKEN_GROUPS_AND_PRIVILEGES' ? + return self.TokenGroupsAndPrivileges + + @property + def privileges(self): + """Alias for ``TokenPrivileges`` + + :type: :class:`TokenPrivileges` + """ + return self.TokenPrivileges + + sandbox_inert = TokenSandBoxInert #: Alias for TokenSandBoxInert (type may change in the future for improved struct) + + # def audit_policy(self): + # raise NotImplementedError("Need to find the type of TokenAuditPolicy") + + @property + def origin(self): + """The originating logon session of the token. + + :type: :class:`int` + """ + origin_logon_session = self.TokenOrigin.OriginatingLogonSession + return int(origin_logon_session) # improved LUID implem __int__ :) + + @property + def elevation_type(self): + """The elevation type of the token. + + :type: :class:`int` -- Enum value from :class:`~windows.generated_def.winstructs.TOKEN_ELEVATION_TYPE` + """ + return self.TokenElevationType.value + + @property + def linked_token(self): + """The token linked to our token if present (may raise else) + + :type: :class:`Token` + """ + # TODO: return None if not present ? + return Token(self.TokenLinkedToken.LinkedToken) + + @property + def elevated(self): + """``True`` if token is an elevated token""" + return bool(self.TokenElevation.TokenIsElevated) + + is_elevated = elevated #: Alias for ``elevated`` deprecated and may disapear + has_restriction = TokenHasRestrictions #: Alias for TokenHasRestrictions (type may change in the future for improved struct) + + @property + def access_information(self): + """Alias for TokenAccessInformation (type may change in the future for improved struct)""" + # Return enhanced subclass ? + return self.TokenAccessInformation + + @property + def trust_level(self): + """The trust level of the process if present else ``None``. + + :type: :class:`~windows.generated_def.winstructs.PSID` + """ + tl = self.TokenProcessTrustLevel + if not tl: # NULL: + return None + return tl + + virtualization_allowed = TokenVirtualizationAllowed #: Alias for TokenVirtualizationAllowed (type may change in the future for improved struct) + virtualization_enabled = TokenVirtualizationEnabled #: Alias for TokenVirtualizationEnabled (type may change in the future for improved struct) + + @property + def integrity_level(self): + """The integrity level and attributes of the token + + :type: :class:`windows.generated_def.winstructs.SID_AND_ATTRIBUTES` + """ + return self.TokenIntegrityLevel.Label # SID_AND_ATTRIBUTES + + def get_integrity(self): + """Return the integrity level of the token + + :type: :class:`int` + """ + sid = self.integrity_level.Sid + count = winproxy.GetSidSubAuthorityCount(sid) + integrity = winproxy.GetSidSubAuthority(sid, count[0] - 1)[0] + return KNOW_INTEGRITY_LEVEL[integrity] + + def set_integrity(self, integrity): + """Set the integrity level of a token + + :param type: :class:`int` + """ + mandatory_label = gdef.TOKEN_MANDATORY_LABEL() + mandatory_label.Label.Attributes = 0x60 + # cast integrity to int to accept SECURITY_MANDATORY_LOW_RID & other Flags + mandatory_label.Label.Sid = gdef.PSID.from_string("S-1-16-{0}".format(int(integrity))) + return self.set_informations(gdef.TokenIntegrityLevel, mandatory_label) + + _INTEGRITY_PROPERTY_DOC = """The integrity of the token as an int (extracted from integrity PSID) + + :getter: :func:`get_integrity` + :setter: :func:`set_integrity` + """ + + integrity = property(get_integrity, set_integrity, doc=_INTEGRITY_PROPERTY_DOC) + + ui_access = TokenUIAccess #: Alias for TokenUIAccess (type may change in the future for improved struct) + + VALID_TOKEN_POLICIES = gdef.FlagMapper( + gdef.TOKEN_MANDATORY_POLICY_OFF, + gdef.TOKEN_MANDATORY_POLICY_NO_WRITE_UP, + gdef.TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN, + gdef.TOKEN_MANDATORY_POLICY_VALID_MASK, + ) + + @property + def mandatory_policy(self): + """mandatory integrity access policy for the associated token + + :type: :class:`int` -- see `[MSDN] mandatory policy `_ + """ + return self.VALID_TOKEN_POLICIES[self.TokenMandatoryPolicy.Policy] + + @property + def logon_sid(self): + """The logon sid of the token. (Case of multiple logon sid not handled and will raise AssertionError) + + :type: :class:`windows.generated_def.winstructs.SID_AND_ATTRIBUTES` + """ + rgroups = self.TokenLogonSid + assert rgroups.GroupCount == 1, "More than 1 TokenLogonSid" + return rgroups.Groups[0] + + is_appcontainer = TokenIsAppContainer #: Alias for TokenIsAppContainer (type may change in the future for improved struct) + capabilities = TokenCapabilities #: Alias for TokenCapabilities (type may change in the future for improved struct) + + @property + def appcontainer_sid(self): + """The sid of the TokenAppContainerSid if present else ``None`` + + :type: :class:`~windows.generated_def.winstructs.PSID` + """ + sid = self.TokenAppContainerSid.TokenAppContainer + if not sid: # NULL + return None + return sid + + appcontainer_number = TokenAppContainerNumber #: Alias for TokenAppContainerNumber (type may change in the future for improved struct) + + @property + def security_attributes(self): + """The security attributes of the token + + :type: [:class:`TokenSecurityAttributeV1`] - A list of token security attributes + """ + return self.TokenSecurityAttributes.attributes + + + ## Token Methods + def duplicate(self, access_rigth=gdef.MAXIMUM_ALLOWED, attributes=None, type=None, impersonation_level=None): + """Duplicate the token into a new :class:`Token`. + + :param type: The type of token: ``TokenPrimary(0x1L)`` or ``TokenImpersonation(0x2L)`` + :param impersonation_level: The :class:`~windows.generated_def.winstructs.SECURITY_IMPERSONATION_LEVEL` for a ``TokenImpersonation(0x2L)``: + + - If ``type`` is ``TokenPrimary(0x1L)`` this parameter is ignored if ``None`` or used as-is. + - If ``type`` is ``TokenImpersonation(0x2L)`` and this parameter is None, ``self.impersonation_level`` is used. + - If ``type`` is ``TokenImpersonation(0x2L)`` and our Token is a ``TokenPrimary(0x1L)`` this parameter MUST be provided + + :returns: :class:`Token` - The duplicate token + + Example: + + >>> tok + + >>> tok.duplicate() + + >>> tok.duplicate(type=gdef.TokenImpersonation) + ... + ValueError: Duplicating a PrimaryToken as a TokenImpersonation require explicit parameter + >>> tok.duplicate(type=gdef.TokenImpersonation, impersonation_level=gdef.SecurityImpersonation) + + """ + newtoken = gdef.HANDLE() + if type is None: + type = self.type + if impersonation_level is None: + if self.type == gdef.TokenImpersonation: + impersonation_level = self.impersonation_level + elif type != gdef.TokenImpersonation: + impersonation_level = 0 #: ignored + else: + raise ValueError("Duplicating a PrimaryToken as a TokenImpersonation require explicit parameter") + winproxy.DuplicateTokenEx(self.handle, access_rigth, attributes, impersonation_level, type, newtoken) + return bltn_type(self)(newtoken.value) + + def adjust_privileges(self, privileges): + """Adjust the token privileges according to ``privileges``. + This API is the `complex one` to adjust multiple privileges at once. + + To simply enable one privilege see :func:`enable_privilege`. + + :param privileges: :class:`~windows.generated_def.winstructs.TOKEN_PRIVILEGES` (or subclass as :class:`TokenPrivileges`). To easily update your token privileges use the result of :data:`privileges`. + + Example: + + >>> tok = windows.current_process.token + >>> privs = tok.privileges + >>> privs["SeShutdownPrivilege"] = gdef.SE_PRIVILEGE_ENABLED + >>> privs["SeUndockPrivilege"] = gdef.SE_PRIVILEGE_ENABLED + >>> tok.adjust_privileges(privs) + + """ + buffsize = None + if isinstance(privileges, TokenPrivilegesType): + # The TokenPrivilegesType should come from a PTR via Improved buffer + try: + buffsize = privileges._b_base_.real_size + except AttributeError as e: + pass + if buffsize is None: + buffsize = ctypes.sizeof(privileges) + winproxy.AdjustTokenPrivileges(self.handle, False, privileges, buffsize, None, None) + if winproxy.GetLastError() == gdef.ERROR_NOT_ALL_ASSIGNED: + # Transform this in a real WindowsError + raise WindowsError(gdef.ERROR_NOT_ALL_ASSIGNED, "Failed to adjust all privileges") + + def enable_privilege(self, name): + """Enable privilege ``name`` in the token + + :raises: :class:`ValueError` if :class:`Token` has no privilege ``name`` + """ + privs = self.privileges + try: + privs[name] = gdef.SE_PRIVILEGE_ENABLED + except KeyError as e: + # Emulate the WindowsError that would be triggered in 'adjust_privileges' ? + raise ValueError("{0} has no privilege <{1}>".format(self, name)) + return self.adjust_privileges(privs) + + def __repr__(self): + flag_repr = gdef.Flag.__repr__ + try: + tid_int = int(self.TokenStatistics.TokenId) # May raise -> which is bad as __repr__ may be called on __del__... + except WindowsError as e: + return object.__repr__(self) + toktype = self.type + if toktype == gdef.TokenPrimary: + return "<{0} TokenId={1:#x} Type={2}>".format(type(self).__name__, tid_int, flag_repr(toktype)) + return "<{0} TokenId={1:#x} Type={2} ImpersonationLevel={3}>".format(type(self).__name__, tid_int, flag_repr(toktype), flag_repr(self.impersonation_level)) + + +import windows.security diff --git a/pythonmemorymodule/windows/winobject/volume.py b/pythonmemorymodule/windows/winobject/volume.py new file mode 100644 index 0000000..5d7c05a --- /dev/null +++ b/pythonmemorymodule/windows/winobject/volume.py @@ -0,0 +1,88 @@ +import ctypes + +import windows +from windows import winproxy +import windows.generated_def as gdef +from windows.generated_def.winstructs import * + +from windows.utils import AutoHandle + +import sys + + +class LogicalDrive(AutoHandle): + DRIVE_TYPE = gdef.FlagMapper(DRIVE_UNKNOWN, DRIVE_NO_ROOT_DIR, DRIVE_REMOVABLE, + DRIVE_FIXED, DRIVE_REMOTE, DRIVE_CDROM, DRIVE_RAMDISK) + + def __init__(self, name): + self.name = name + + @property + def type(self): + """The type of drive, values are: + + * DRIVE_UNKNOWN(0x0L) + * DRIVE_NO_ROOT_DIR(0x1L) + * DRIVE_REMOVABLE(0x2L) + * DRIVE_FIXED(0x3L) + * DRIVE_REMOTE(0x4L) + * DRIVE_CDROM(0x5L) + * DRIVE_RAMDISK(0x6L) + + :type: :class:`long` or :class:`int` (or subclass) + """ + t = winproxy.GetDriveTypeA(self.name) + return self.DRIVE_TYPE.get(t,t) + + @property + def path(self): + """The target path of the device + + :type: :class:`str`""" + res = query_dos_device(self.name.strip("\\")) + if len(res) != 1: + raise ValueError("[Unexpected result] query_dos_device(logicaldrive) returned multiple path") + return res[0] + + def query_info(self, info): + return windows.utils.query_volume_information(self.handle, info) + + @property + def volume_info(self): + return self.query_info(gdef.FileFsVolumeInformation) + + @property + def serial(self): + return self.volume_info.VolumeSerialNumber + + def _get_handle(self): + nt_name = windows.utils.dospath_to_ntpath(self.name) + handle = windows.winproxy.CreateFileA(nt_name, gdef.GENERIC_READ, + gdef.FILE_SHARE_READ, None, gdef.OPEN_EXISTING, gdef.FILE_FLAG_BACKUP_SEMANTICS , None) + return handle + + def __repr__(self): + return """<{0} "{1}" ({2})>""".format(type(self).__name__, self.name, self.type.name) + +def enum_logical_drive(): + return [LogicalDrive(name) for name in get_logical_drive_names()] + +def get_logical_drive_names(): + size = 0x100 + buffer = ctypes.c_buffer(size) + rsize = winproxy.GetLogicalDriveStringsA(0x1000, buffer) + return buffer[:rsize].rstrip(b"\x00").split(b"\x00") + +def get_info(drivename): + size = 0x1000 + volume_name = ctypes.c_buffer(size) + fs_name = ctypes.c_buffer(size) + flags = DWORD() + winproxy.GetVolumeInformationA(drivename, volume_name, size, None, None, ctypes.byref(flags), fs_name, size) + return volume_name[:10], fs_name[:10] + +def query_dos_device(name): + size = 0x1000 + buffer = ctypes.c_buffer(size) + rsize = winproxy.QueryDosDeviceA(name, buffer, size) + return buffer[:rsize].rstrip(b"\x00").split(b"\x00") \ No newline at end of file diff --git a/pythonmemorymodule/windows/winobject/wmi.py b/pythonmemorymodule/windows/winobject/wmi.py new file mode 100644 index 0000000..d9fdaa9 --- /dev/null +++ b/pythonmemorymodule/windows/winobject/wmi.py @@ -0,0 +1,473 @@ +import windows +import ctypes +import struct +import functools +from functools import partial +from collections import namedtuple + +from ctypes.wintypes import * + +import windows.com +import windows.generated_def as gdef +from windows.generated_def.winstructs import * + +from windows.pycompat import basestring + +# Common error check for all WMI COM interfaces +# This 'just' add the corresponding 'WBEMSTATUS' to the hresult error code +class WmiComInterface(object): + """Base class used for COM call error checking for WMI interfaces""" + def errcheck(self, result, func, args): + if result < 0: + wmitag = gdef.WBEMSTATUS.mapper[result & 0xffffffff] + raise ctypes.WinError(result, wmitag) + return args + +sentinel = object() +# POC +class QualifierSet(gdef.IWbemQualifierSet): + def get_variant(self, name): + """Retrieve the value of property ``name`` as a :class:`~windows.com.Variant` + + :return: :class:`~windows.com.Variant` + """ + if not isinstance(name, basestring): + nametype = type(name).__name__ + raise TypeError("WmiObject attributes name must be str, not <{0}>".format(nametype)) + variant_res = windows.com.Variant() + self.Get(name, 0, variant_res, None) + return variant_res + + def get(self, name, default=sentinel): + """Return the value of the property ``name``. The return value depends of the type of the property and can vary""" + try: + return self.get_variant(name).value + except WindowsError as e: + if (e.winerror & 0xffffffff) != gdef.WBEM_E_NOT_FOUND: + raise + if default is sentinel: + raise + return default + + def names(self): + res = POINTER(windows.com.SafeArray)() + x = ctypes.pointer(res) + self.GetNames(0, cast(x, POINTER(POINTER(gdef.SAFEARRAY)))) + # need to free the safearray / unlock ? + properties = [p for p in res[0].to_list(BSTR)] + return properties + + +# https://docs.microsoft.com/en-us/windows/desktop/api/wbemcli/nn-wbemcli-iwbemclassobject + +WmiMethod = namedtuple("WmiMethod", ["inparam", "outparam"]) + +# https://docs.microsoft.com/en-us/windows/desktop/WmiSdk/calling-a-method +class WmiObject(gdef.IWbemClassObject, WmiComInterface): + """The WmiObject (which wrap ``IWbemClassObject``) contains and manipulates both class definitions and class object instances. + Can be used as a mapping to access properties. + """ + + def get_variant(self, name): + """Retrieve the value of property ``name`` as a :class:`~windows.com.Variant` + + :return: :class:`~windows.com.Variant` + """ + if not isinstance(name, basestring): + nametype = type(name).__name__ + raise TypeError("WmiObject attributes name must be str, not <{0}>".format(nametype)) + variant_res = windows.com.Variant() + self.Get(name, 0, variant_res, None, None) + return variant_res + + def get(self, name): + """Return the value of the property ``name``. The return value depends of the type of the property and can vary""" + return self.get_variant(name).value + + def get_method(self, name): + """Return the information about the method ``name`` + + :returns: :class:`WmiMethod` + """ + inpararm = type(self)() + outpararm = type(self)() + variant_res = windows.com.Variant() + self.GetMethod(name, 0, inpararm, outpararm) + return WmiMethod(inpararm, outpararm) + + + def put_variant(self, name, variant): + if not isinstance(name, basestring): + nametype = type(name).__name__ + raise TypeError("WmiObject attributes name must be str, not <{0}>".format(nametype)) + return self.Put(name, 0, variant, 0) + + def put(self, name, value): + """Set the property ``name`` to ``value``""" + variant_value = windows.com.Variant(value) + return self.put_variant(name, variant_value) + + def spawn_instance(self): + """Create a new object of the class represented by the current :class:`WmiObject` + + :returns: :class:`WmiObject` + """ + instance = type(self)() + self.SpawnInstance(0, instance) + return instance + + @property + def genus(self): + """The genus of the object. + + :returns: ``WBEM_GENUS_CLASS(0x1L)`` if the :class:`WmiObject` is a Class and ``WBEM_GENUS_INSTANCE(0x2L)`` for instances and events. + """ + return gdef.tag_WBEM_GENUS_TYPE.mapper[self.get("__GENUS")] + + ## Higher level API + def get_properties(self, system_properties=False): + """Return the list of properties names available for the current object. + If ``system_properties`` is ``False`` property names begining with ``_`` are ignored. + + :returns: [:class:`str`] -- A list of string + + .. note: + + About system properties: https://docs.microsoft.com/en-us/windows/desktop/wmisdk/wmi-system-properties + """ + res = POINTER(windows.com.SafeArray)() + x = ctypes.pointer(res) + self.GetNames(None, 0, None, cast(x, POINTER(POINTER(gdef.SAFEARRAY)))) + # need to free the safearray / unlock ? + properties = [p for p in res[0].to_list(BSTR) if system_properties or (not p.startswith("_"))] + return properties + + properties = property(get_properties) #: The properties of the object (exclude system properties) + + @property + def qualifier_set(self): # changer de nom ? + res = QualifierSet() + self.GetQualifierSet(res) + return res + + def get_p_set(self, name): # Changer de nom ? + res = QualifierSet() + self.GetPropertyQualifierSet(name, res) + return res + + # Make WmiObject a mapping object + + def keys(self): + """The properties of the object (include system properties)""" + return self.get_properties(system_properties=True) + + __getitem__ = get + __setitem__ = put + + def items(self): + return [(k, self.get(k)) for k in self.properties] + + def values(self): # Not sur anyone will use this but keep the dict interface + return [x[1] for x in self.items()] + + ## Make it callable like any class :D + __call__ = spawn_instance + + def __repr__(self): + if not self: + return """<{0} (NULL)>""".format(type(self).__name__,) + if self.genus == gdef.WBEM_GENUS_CLASS: + return """<{0} class "{1}">""".format(type(self).__name__, self.get("__Class")) + return """<{0} instance of "{1}">""".format(type(self).__name__, self.get("__Class")) + + def __sprint__(self): + return """ {0}\n + {1} + """.format(repr(self), "\n".join(": ".join([x[0], str(x[1])]) for x in sorted(self.items()))) + + +class WmiEnumeration(gdef.IEnumWbemClassObject, WmiComInterface): + """Represent an enumeration of object that can be itered""" + DEFAULT_TIMEOUT = gdef.WBEM_INFINITE #: The default timeout + + def next(self, timeout=None): + """Return the next object in the enumeration with `timeout`. + + :raises: ``WindowsError(WBEM_S_TIMEDOUT)`` if timeout expire + :returns: :class:`WmiObject` + """ + timeout = self.DEFAULT_TIMEOUT if timeout is None else timeout + # For now the count is hardcoded to 1 + obj = WmiObject() + return_count = gdef.ULONG(0) + error = self.Next(timeout, 1, obj, return_count) + if error == gdef.WBEM_S_TIMEDOUT: + raise ctypes.WinError(gdef.WBEM_S_TIMEDOUT, "Wmi timeout") + elif error == WBEM_S_FALSE: + return None + else: + return obj + + def __iter__(self): + """Return an iterator with ``DEFAULT_TIMEOUT``""" + return self.iter_timeout(self.DEFAULT_TIMEOUT) + + def iter_timeout(self, timeout=None): + """Return an iterator with a custom ``timeout``""" + while True: + obj = self.next(timeout) + if obj is None: + return + yield obj + + def all(self): + """Return all elements in the enumeration as a list + + :returns: [:class:`WmiObject`] - A list of :class:`WmiObject` + """ + return list(self) # SqlAlchemy like :) + + +class WmiCallResult(gdef.IWbemCallResult, WmiComInterface): + """The result of a WMI call/query. Real result value type depends of the context""" + def __init__(self, result_type=None, namespace_name=None): + self.result_type = result_type + self.namespace_name = namespace_name + + def get_call_status(self, timeout=gdef.WBEM_INFINITE): + """The status of the call""" + status = gdef.LONG() + self.GetCallStatus(timeout, status) + return WBEMSTATUS.mapper[status.value & 0xffffffff] + + def get_result_object(self, timeout=gdef.WBEM_INFINITE): + """The result as a :class:`WmiObject` (returned by :func:`WmiNamespace.exec_method`)""" + result = WmiObject() + self.GetResultObject(timeout, result) + return result + + def get_result_string(self, timeout=gdef.WBEM_INFINITE): + """The result as a :class:`WmiObject` (returned by :func:`WmiNamespace.put_instance`)""" + result = gdef.BSTR() + self.GetResultString(timeout, result) + return result + + def get_result_service(self, timeout=gdef.WBEM_INFINITE): + """The result as a :class:`WmiNamespace` (not used yet)""" + result = WmiNamespace() + self.GetResultServices(timeout, result) + return result + + @property + def result(self): + """The result of the correct type based on ``self.result_type``""" + if self.result_type is None: + raise ValueError("Cannot call with no result_type") + return getattr(self, "get_result_" + self.result_type)() + + +class WmiLocator(gdef.IWbemLocator, WmiComInterface): + pass # Just for the WMI errcheck callback + + +# !TEST CODE +class WmiNamespace(gdef.IWbemServices, WmiComInterface): + r"""An object to perform wmi request to a given ``namespace``""" + + #CLSID_WbemAdministrativeLocator_IID = windows.com.IID.from_string('CB8555CC-9128-11D1-AD9B-00C04FD8FDFF') + WbemLocator_CLSID = windows.com.IID.from_string('4590F811-1D3A-11D0-891F-00AA004B2E24') + + DEFAULT_ENUM_FLAGS = (gdef.WBEM_FLAG_RETURN_IMMEDIATELY | + WBEM_FLAG_FORWARD_ONLY) #: The defauls flags used for enumeration. ``(WBEM_FLAG_RETURN_IMMEDIATELY | WBEM_FLAG_FORWARD_ONLY)`` + + def __init__(self, namespace): + self.name = namespace + + @classmethod + def connect(cls, namespace, user=None, password=None): + """Connect to ``namespace`` using ``user`` and ``password`` for authentification if given + + :return: :class:`WmiNamespace` - The connected :class:`WmiNamespace`""" + # this method assert com is initialised + self = cls(namespace) # IWbemServices subclass + locator = WmiLocator() + windows.com.create_instance(cls.WbemLocator_CLSID, locator) + locator.ConnectServer(namespace, user, password , None, gdef.WBEM_FLAG_CONNECT_USE_MAX_WAIT, None, None, self) + locator.Release() + return self + + def query(self, query): + """Return the list of :class:`WmiObject` matching ``query``. + + This API is the `simple one`, if you need timeout or complexe feature see :func:`exec_query` + + :return: [:class:`WmiObject`] - A list of :class:`WmiObject` + """ + return list(self.exec_query(query)) + + def select(self, clsname, deep=True): + """Return the list of :class:`WmiObject` that are instance of ``clsname``. Deep has the same meaning as in :func:`create_instance_enum`. + + This API is the `simple one`, if you need timeout or complexe feature see :func:`create_instance_enum` + + :return: [:class:`WmiObject`] - A list of :class:`WmiObject` + """ + return list(self.create_instance_enum(clsname, deep=deep)) + + + def exec_query(self, query, flags=DEFAULT_ENUM_FLAGS, ctx=None): + """Execute a WQL query with custom flags and returns a ::class:`WmiEnumeration` that can be used to + iter the result with timeouts + + :returns: :class:`WmiEnumeration` + """ + enumerator = WmiEnumeration() + self.ExecQuery("WQL", query, flags, ctx, enumerator) + return enumerator + + # Create friendly name for create_class_enum & create_instance_enum ? + + def create_class_enum(self, superclass, flags=DEFAULT_ENUM_FLAGS, deep=True): + """Enumerate the classes in the ``namespace`` that match ``superclass``. + if ``superclass`` is None will enumerate all top-level class. ``deep`` allow to returns all subclasses + + :returns: :class:`WmiEnumeration` + + .. note:: + + See https://docs.microsoft.com/en-us/windows/desktop/api/wbemcli/nf-wbemcli-iwbemservices-createclassenum + """ + + flags |= gdef.WBEM_FLAG_DEEP if deep else gdef.WBEM_FLAG_SHALLOW + enumerator = WmiEnumeration() + self.CreateClassEnum(superclass, flags, None, enumerator) + return enumerator + + @property + def classes(self): + """The list of classes in the namespace. This a a wrapper arround :func:`create_class_enum`. + + :return: [:class:`WmiObject`] - A list of :class:`WmiObject` + """ + return self.create_class_enum(None, deep=True) + + def create_instance_enum(self, clsname, flags=DEFAULT_ENUM_FLAGS, deep=True): + """Enumerate the instances of ``clsname``. Deep allows to enumerate the instance of subclasses as well + + :returns: :class:`WmiEnumeration` + + Example: + >>> windows.system.wmi["root\\subscription"].create_instance_enum("__EventConsumer", deep=False).all() + [] + >>> windows.system.wmi["root\\subscription"].create_instance_enum("__EventConsumer", deep=True).all() + [] + + .. note:: + + See https://docs.microsoft.com/en-us/windows/desktop/api/wbemcli/nf-wbemcli-iwbemservices-createinstanceenum + """ + flags |= gdef.WBEM_FLAG_DEEP if deep else gdef.WBEM_FLAG_SHALLOW + enumerator = WmiEnumeration() + self.CreateInstanceEnum(clsname, flags, None, enumerator) + return enumerator + + def get_object(self, path): + """Return the object matching ``path``. If ``path`` is a class name return the class object`` + + :return: :class:`WmiObject` + """ + result = WmiObject() + self.GetObject(path, gdef.WBEM_FLAG_RETURN_WBEM_COMPLETE, None, result, None) + return result + + def put_instance(self, instance, flags=gdef.WBEM_FLAG_CREATE_ONLY): + """Creates or updates an instance of an existing class in the namespace + + :return: :class:`WmiCallResult` ``(string)`` - Used to retrieve the string representing the path of the object created/updated + """ + res = WmiCallResult(result_type="string") + self.PutInstance(instance, flags, None, res) + return res + + def delete_instance(self, instance, flags=0): + """TODO: Document""" + if isinstance(instance, gdef.IWbemClassObject): + instance = instance["__Path"] + return self.DeleteInstance(instance, flags, None, None) + + def exec_method(self, obj, method, inparam, flags=0): + """Exec method named on ``object`` with ``inparam``. + + :params obj: The :class:`WmiObject` or path of the object the call apply to + :params method: The name of the method to call on the object + :params inparam: The :class:`WmiObject` representing the input parameters and retrieve using :func:`WmiObject.get_method` + + :returns: :class:`WmiCallResult` ``(object)`` if flag `WBEM_FLAG_RETURN_IMMEDIATELY` was passed + :returns: :class:`WmiObject` the outparam object if flag `WBEM_FLAG_RETURN_IMMEDIATELY` was NOT passed + + .. note:: + + This API will lakely change to better wrap with WmiObject/inparam/Dict & co + """ + if flags & gdef.WBEM_FLAG_RETURN_IMMEDIATELY: + # semisynchronous call -> WmiCallResult + result = WmiCallResult(result_type="object") + outparam = None + else: + # Synchronous call -> WmiObject (outparam) + result = None + outparam = WmiObject() + if isinstance(obj, gdef.IWbemClassObject): + obj = obj.get("__Path") + # Flags 0 -> synchronous call + # No WmiCallResult result is directly in outparam + self.ExecMethod(obj, method, 0, None, inparam, outparam, result) + return outparam or result + + def __repr__(self): + null = "" if self else " (NULL)" + return """<{0} "{1}"{2}>""".format(type(self).__name__, self.name, null) + +class WmiManager(dict): + """The main WMI class exposed, used to list and access differents WMI namespace, can be used as a dict to access + :class:`WmiNamespace` by name + + Example: + >>> windows.system.wmi["root\\SecurityCenter2"] + + """ + DEFAULT_NAMESPACE = "root\\cimv2" #: The default namespace for :func:`select` & :func:`query` + def __init__(self): + # Someone is going to use wmi: let's init com ! + windows.com.init() + self.wmi_requester_by_namespace = {} + + @property + def default_namespace(self): + return self[self.DEFAULT_NAMESPACE] + + @property + def select(self): + r""":func:`WmiRequester.select` for default WMI namespace 'root\\cimv2'""" + return self.default_namespace.select + + @property + def query(self): + r""":func:`WmiRequester.query` for default WMI namespace 'root\\cimv2'""" + return self.default_namespace.query + + def get_subnamespaces(self, root="root"): + return [x["Name"] for x in self[root].select("__NameSpace")] + + namespaces = property(get_subnamespaces) + """The list of available WMI namespaces""" + + def _open_wmi_requester(self, namespace): + return WmiNamespace.connect(namespace) + + def __missing__(self, key): + self[key] = self._open_wmi_requester(key) + return self[key] + + def __repr__(self): + return object.__repr__(self) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winproxy/__init__.py b/pythonmemorymodule/windows/winproxy/__init__.py new file mode 100644 index 0000000..304da7a --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/__init__.py @@ -0,0 +1,3 @@ +from .apiproxy import is_implemented, get_target, resolve +from .error import WinproxyError, ExportNotFound +from .apis import * # Import all functions \ No newline at end of file diff --git a/pythonmemorymodule/windows/winproxy/apiproxy.py b/pythonmemorymodule/windows/winproxy/apiproxy.py new file mode 100644 index 0000000..348c47f --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apiproxy.py @@ -0,0 +1,122 @@ +import ctypes +import functools + +import windows.generated_def as gdef +from .error import ExportNotFound +from windows.pycompat import is_py3 + +# Utils +def is_implemented(apiproxy): + """Return :obj:`True` if DLL/Api can be found""" + try: + apiproxy.force_resolution() + except ExportNotFound: + return False + return True + + +def get_target(apiproxy): + """POC for newshook""" + return apiproxy.target_dll, apiproxy.target_func + + +def resolve(apiproxy): + """Resolve the address of ``apiproxy``. Might raise if ``apiproxy`` is not implemented""" + apiproxy.force_resolution() + func = ctypes.WinDLL(apiproxy.target_dll)[apiproxy.target_func] + return ctypes.cast(func, gdef.PVOID).value + + +class NeededParameterType(object): + _inst = None + + def __new__(cls): + if cls._inst is None: + cls._inst = super(NeededParameterType, cls).__new__(cls) + return cls._inst + + def __repr__(self): + return "NeededParameter" + +NeededParameter = NeededParameterType() +sentinel = object() + +class ApiProxy(object): + APIDLL = None + """Create a python wrapper around a kernel32 function""" + def __init__(self, func_name=None, error_check=sentinel, deffunc_module=None): + self.deffunc_module = deffunc_module if deffunc_module is not None else gdef.winfuncs + self.func_name = func_name + if error_check is sentinel: + error_check = self.default_error_check + + self.error_check = error_check + self._cprototyped = None + + def __call__(self, python_proxy): + # Use the name of the sub-function if None was given + if self.func_name is None: + self.func_name = python_proxy.__name__ + + errchk = None + if self.error_check is not None: + errchk = functools.wraps(self.error_check)(functools.partial(self.error_check, self.func_name)) + + prototype = getattr(self.deffunc_module, self.func_name + "Prototype") + params = getattr(self.deffunc_module, self.func_name + "Params") + python_proxy.prototype = prototype + python_proxy.params = params + python_proxy.errcheck = errchk + python_proxy.target_dll = self.APIDLL + python_proxy.target_func = self.func_name + # Give access to the 'ApiProxy' object from the function + python_proxy.proxy = self + params_name = [param[1] for param in params] + if (self.error_check.__doc__): + doc = python_proxy.__doc__ + doc = doc if doc else "" + python_proxy.__doc__ = doc + "\nErrcheck:\n " + self.error_check.__doc__ + + def generate_ctypes_function(): + try: + api_dll = ctypes.windll[self.APIDLL] + except WindowsError as e: + if e.winerror == gdef.ERROR_BAD_EXE_FORMAT: + e.strerror = e.strerror.replace("%1", "<{0}>".format(self.APIDLL)) + raise + try: + c_prototyped = prototype((self.func_name, api_dll), params) + except (AttributeError, WindowsError): + raise ExportNotFound(self.func_name, self.APIDLL) + if errchk is not None: + c_prototyped.errcheck = errchk + self._cprototyped = c_prototyped + + def perform_call(*args): + if self._cprototyped is None: + generate_ctypes_function() + try: + return self._cprototyped(*args) + except ctypes.ArgumentError as e: + # We just add a conversion ctypes argument fail + # We can do some heavy computation if needed + # Not a case that normally happen + + # "argument 2: : wrong type" + # Thx ctypes.. + argnbstr, ecx, reason = e.args[0].split(":") # py2 / py3 compat :) + if not argnbstr.startswith("argument "): + raise # Don't knnow if it can happen + argnb = int(argnbstr[len("argument "):]) + badarg = args[argnb - 1] + if badarg is NeededParameter: + badargname = params_name[argnb - 1] + raise TypeError("{0}: Missing Mandatory parameter <{1}>".format(self.func_name, badargname)) + # Not NeededParameter: the caller need to fix the used param :) + # raise the real ctypes error + raise + + + setattr(python_proxy, "ctypes_function", perform_call) + setattr(python_proxy, "force_resolution", generate_ctypes_function) + return python_proxy diff --git a/pythonmemorymodule/windows/winproxy/apis/__init__.py b/pythonmemorymodule/windows/winproxy/apis/__init__.py new file mode 100644 index 0000000..e387b34 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/__init__.py @@ -0,0 +1,27 @@ +from .advapi32 import * +from .cfgmgr32 import * +from .crypt32 import * +from .cryptui import * +from .dbghelp import * +from .dnsapi import * +from .iphlpapi import * +from .kernel32 import * +from .ktmw32 import * +from .ntdll import * +from .netapi32 import * +from .ole32 import * +from .oleaut32 import * +from .oleacc import * +from .psapi import * +from .setupapi import * +from .shell32 import * +from .shlwapi import * +from .tdh import * +from .user32 import * +from .version import * +from .virtdisk import * +from .wevtapi import * +from .winhttp import * +from .wininet import * +from .wintrust import * +from .ws2_32 import * \ No newline at end of file diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/__init__.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8ed7570e62ac536b880d3b56cdbb5833460fdb05 GIT binary patch literal 711 zcmb8rO>fgM7zc2tT@y1_UdMPla4u4-twobS2qA&AUB(5tSeBwRHjSy{Sh3TP+dc)~ zfv*&C+i726r#)UDOwM;y!K@aj*J&tGis#YRvuMaF6KQ2vL@7xL&|eDvfE-#`X&@(iGwbo76jdfm7x~} ziyJ55V12TYwNsU0bfao7lv}f;m7CB8f-;5o_9iIk%_yw+x^cdbTQ^S^^FO3c;O;lm z)z44w_;)DlxXIS8GyHRvH>EV*@e}1wnw>nfesvs<<9M1XqkNjqY}eEGWhELdKZIZJj$xvNM*sWlMb{2+xoiLc literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/__init__.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e49d57b9dc23fd753cd135b14d79cf44b6e3616a GIT binary patch literal 995 zcma)(yN=U96o$tMvCTrbEPLTnfarph2oi(@LR3i5EEGUz$#OhHJY+n!JmVO5JOw-g z;%!_;Q_xUthqT>R96Kjq7m*kp<@G@5A99fphotEB(?V^`inuU@@{-`{=9 zvex9d+E!N|RRn9j70~JG!-`;a-)(!gXAUZY)t%qf|DShv<=n3b)_NNf(suK=bMEqK Q_uKRTvTZIQy9XEh2ZF9E9{>OV literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/advapi32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/advapi32.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fdecce3c34f7263cf14d2e47e1c7016af6cd1a1a GIT binary patch literal 27005 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 I)98r(UoHdYIsgCw literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/advapi32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/advapi32.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f76c3c9b1cc36f7c56cb342c1c43dc6f16d00179 GIT binary patch literal 51378 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

-@$-Q5}m0XHd1qXlOu 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 literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/cfgmgr32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/cfgmgr32.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f81d7d14a322748737baf425967765769b67d961 GIT binary patch literal 4910 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 Hw59wP%>)b7 literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/crypt32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/crypt32.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..181cd5ffbea728f65761f19d791429331f42564f GIT binary patch literal 9692 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 lhNf)P2ipI({V9A$lcR{R&xU;6nxHyvzO}T)qGR literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/dnsapi.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/dnsapi.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..803c5d68111f0dbb0287149c6793c33f49aba386 GIT binary patch literal 2324 zcmcgs&rcgi6rNeHf8fQ?B+#_9Bxw{PBNdYh615?!8U;uqB{apUB5hr5mz@Euc-PL% zI>C`uQHejGrzS_#15HE^9DB^4U?WSQJyoiD;6_AGIrY6+7O+gD^wROp^Lx*4$KUtn zz4u!tlP0jv?)<`j)d~3vjcCR9mAxz_*|Qiyd^T-5!v&WNTVaNS4E~f{=K^+@;yfLWH_^f@Md;2ki%M#x?U;X6Xm5^ z&^yC9xU80Zt0*llL|Ir)nem{{XsNLiK#;4CXh zTb5g9)e`F6mi4G=m-c^2T)%gF^3I*0Tl%(Nbb!iYnTZ4d2u?9RZzF?!_=xu<*+Z;v z7M-hwZzUJ9;Mosl%_~fnovO<{Ulwi_{ae+!g3qOY_palzQqkjuN)68SM#gfVUCMni z!reK}Mr@Z|88193daV3J;&%lTTLAE~5R%AMY61&di6kg;2*mQiXFJosJiR?|@%g8# z_2$5MYhb*gpAH{!Dtga3C^7J0igE8<0r8CZAfvTg?pqhgCll#CiNPb;GhB8Q0rj~qR2R)UFdSzCX zy$rf4pmFh-Gl~CjPOXsq$6yN-Ct&Y=0s_hRZy7_I#?b1*i|WS0ACF)C*m&?m)395H z-Oz27hyRoK14Ud60=N$R7r`k|V7kNw6j*Lf)WDz<9JlITu7dLJ_tHL6kGYYlB?S!H zJ`?5pQ5Aaa(8Q@D!MtI64lmuZJyzlpp}-A<`N#PpPz=D9D30de-T401-KH_yGG-h4 zY{(49U$k^k6tmAkc~@p@aKie*DTln0P-)YG^N^Gl#4FfMK?;3XXA<9uaF2j4P@I7+ zu`m($$t~mjrg47t@{4TK7;7104Sg(Zn-f7IY{;O0f6U|-xW|Rm8#z)cpz+~IgXWqv*P=NLoTC^yM=^Bt(D$E$6UUyMS10G&P6l5X c{QOLVW}7tIqFF>Sjv&Sn!*H8NxmEK21zgb!NdN!< literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/iphlpapi.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/iphlpapi.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..04a8b438f88959209201611855cae50b873314e7 GIT binary patch literal 2026 zcma)7OK;mo5Z>iWv`ks@D|V9t3Hm^xwl-R{DA1xPqBxE#K#>JoK>(&(<;jq`zUWJ^7qlPn}sxvEssL7MRh_EO+Pi%_y!^$^_Q^t3TNv79oG5 zu(&`+9s;F*0b_*GkhsM!9cr#l3DcM!8bi}Hhn8z8*$7KR+qEeo1lW>6@&~mMhd}8zFiu>`h^sN`>fC^^scSI}OzN`IOishZpPRA= zGqGJSN!#-xu;_WR?0LhO+mGnRcn88&mo_ z&5TQP0;dygqEC#8Ikk?7sKJH0C5`8ha%nzm9kvgoRk$aubnuGDeYt+Xv;DJ-M*t=8 zvg@COT&xurm(Xvefe_f}7;Z@G+b>zAUTLz0glnX&-T@+HaiQ3=^@2t`teu zYIK7N)CCy!eBmDPp_2RwZ2m9ODIj$gq1b@$#U`>l$hLsV8U)sipfCDJLMe6WB#X*h z?S2X`J;2wn0s^J?vszJB+t3Er_|av#naowtBY>VxJiv-bQ(@?4(4T=hG+7u&=|2cD zK)DB$V%yAfeT@W7R>6@5^AoU=E*5=xrc}B*T)t`i3(%on^`fH*l;1D*RWRA%V$p!= zA6=H3{U-F)nXD%7ejv-qt-#v>!$?II)K2v=eNtan@RpmixwiY9M_l+B%zJF`$~&U! z32DQ`Q=?BHQU#_@nriT>VXS7I8ar~UyVvo$jYqA0@9>xQ{*ea*+-tO2s#6v66$lk3 z1lC4nNGSiV!K-#S+ob(t@z?MZPS5mnU^a1RO+zxwGBxyVYM4$zI{X@_Lt3H#0=_V~ AN&o-= literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/iphlpapi.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/iphlpapi.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..932201b3317b1394c037ec6747269d118a4e1db4 GIT binary patch literal 3452 zcmc&$OH3O_7@pnri(SmKKtnXk~WBVB%MI*9B6l zxDtmPbBIb0ZN;IbL|iy>ELQN`Rd`Lfwt`nzmFKSD)mP!wRan+gg;ig{YOKO)s9-f=E{HtM zFR4Q&Uh;q*-f;QSu_-mRv~1K*5P}Jwil~tU(TVEejCw7jC?J(nN%;{`Q;O+J`fmp5 z_(SNdA%a32Mj;+^Apz8}K`0>^w%{(dkOTAZdBJc8()00j#Qdx)cG8{jI1QI9C*kX| zY>2X)Na0MJKG(|fSD8rsv`Y z6XoG^bW9a^y`bC--_wYyg_Dto+Hx{Hl2S4WlGL^ESWNe4X2Uws^t*SJ1dhj&B%EG` zd6Ruty&qli4)&46EWv$|1n$2UUW_GiYEh&AY3jK!*rJ6^GrZ|#)de49;DiUQ8z5Wy z9k|=FcMjSw{Ls7pINyGw(0(IlYb#!Aqd86~xeX-L(eys<2UtTopxM@~JX45PP`T@a z=s7n5v6g~FpHb4INnM3-EBbPpXmT`@RPYX!)n zzr>b(v3pPKUZ2a0-h$}O30|iAj6%a;HtGeY_fvRSLn~bNf^N}wq4ccV%^?Uam}ymE zMY&Diayp&=q^(Y_}yZjuphQ zoG?~doi-T6s&fDy-ZZJIR}*j4gEc-JNrS4IwQ!^pA(LI9YFcaNDhN~xG`qBS0cd8m z?@O2Vq)VG0??`!Rq#%vtY$IP*ySh z)Gi8r)Go7P&h1ORds6S_{q5B5qr5a-kfw9CX=Yh*Tj1_^n%Qb(w47}A-Z_#aYD9;# z5Zy1_WnH#}87?>mu=9XQ1FF)c!mzW02s@k<4+V5PHQHuwPsuaB;qg&<^8Uo=vi)m+q+AAAm;!$8iV9on^lR z^g*utdV#Lws$B=@{apEVWaGJkBUA}b{jaF>@6%Tz;_I^=-*v8b9`PJ^`3M2L5)j{L z3LGWELC@tK+wQHLtQ6#Lju0B-{rnLUxH-;>rNQilb$Wrj&6p-ym>{w;InD>nQ!Fu= z=u{)Ba)2>Sv@k*BD(Oy{e#Z2377mEYXB%alQ7Z>T<(wen1g#uXM3oM5EY$x1L{P@E literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/kernel32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/kernel32.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c0767417c91b63b15fe775e2a264208131522861 GIT binary patch literal 28664 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 literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/kernel32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/kernel32.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0978e904b0ba68c834df42a2d91868022ceb4602 GIT binary patch literal 54933 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 literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/ktmw32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/ktmw32.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aabc7cb6d2a0e86493efd45f3ab7ff2ceec2fc5b GIT binary patch literal 1312 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 literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/netapi32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/netapi32.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2eb461dcbc2c5529c7ce62ed2a743b72626840b8 GIT binary patch literal 4418 zcmcgv%~KOe6z>_55YmZ!_`xpf;;xF~2fBRt!CJ1m2)YGqgoQ&kwb?P#NHm#=Ju{MM z6t>DgU{C8FJ+V++ICA93aiFMzn%cuwZF%s9g(pw@UJnV$Cc0Rqc4ppmzxmDUey`tq z{qkoh6d=%=U;eKCMG5%_2l?jR>TEX2gghfEQKck_xKAl1N2(;E%4${8lk!HqDPP1V z#-3z#${+DdL?(Si^*$x4k9nu72$_T1ZIK$8u$pNY%;i}`t$s>MIgvmGl)nr`E1+u1 zP{9hQKp84j0Y%GDyDFf9WvJQ;s8AWIt^#UT8LGYlsZmBfB97Q1gL$*niOtKpkH{ryhRFcmWqhqaFDD)+%G&Tf^B zDOS>qG0t@!i;uJTy;-t}3wU!k-W?q=7&oGta?i+W(H=c+rI=3v#v79c^EqZM%4yrEW9zw31TKbw(!=nyOD2_)MeaqOg3Bx}`>2I?Meq zp&-@JF^&S6D*V<%jZ?krO)Y<%dOo?_bbhtzyzOapFJ7PjE{+oN4PzdSz1aig88P#G zcs?(fw}?q{Bq!zMTvg7K^X7cH>S>TRSCBYNW~ISd*=dA*=-1;)vXARlx{sLys3bR> z+PIlbGb1);X>l{5YqNeQ0ETk)n`94I((&E4#?mHt0%^|1Qc5Pt zG>3wDd4d_7DXJ4RbyESZ;5b3f3^4z=qNzz{;NlK#HQoRNzAsOL(An$;GDTj{uhwY$ z3T>b7UU;%(*`rbW=W+Y4wLwTm>XG5mD-X%92ni0$uLT8`cUTs7jpJVATMcxCNv}cY z{Y^RzvgQi%h6&#TVj!5Bz@)b<#c)Bz=vNLi_Vrrj~eorWQ1T3ll)ev$o7w=~lU z4(lAgxn_;Q7Y44a#GHqL!I9L#ZJY;!<~+JayH;q|{N2T)OMC6`FZS&WSnQEBfVTWW z{z=#}Dr^}=mN&X(%Yrk3pbzezd23RzCPwUa%}TlE^YhPPLcSk};~PsPAxrTC$T^7Q z3nb0>F625_?5*B)3ZY1FZ{LXv+$1dH!&|YoTSaW$A=Hs@QSezW-#IPOj2P z+cWveTqy|3i@@C0zIt2xN?P+a)TM0a&jObt`3zql0fMSFuF+#F^w>;b{`$hX#qOm? zb`&CMVwq-EX~y=Y2wE8l=n>By9%^oHwq9ka|R*V1&$igpy88 zA-{;-7Wx_}1ijkL5bZGHNYDceB&b-^8a=T>Pt0`BXThoWEz|HS4cnfutI#L$+qxpf z#EDblyq&mg^x#T+=mdvETD3KT%jjtzF(+W>{@EEhafQ~ z?0XXsvJa(R5ygEXiu*(q_kE&_2!~8P*kb#TDfsg2|M{{|ugsV67~n{bz`g07t1sw* zHF|1=o|=g)>|OLN1?(SVwvw{-N6R#~N^`a+_pzNB^xRXTXR$}~4p{4dT=!el1IcmJ zBk#J+YxK+tJu@FzxVdO8jV;rWRXSpOMn0A6^1Zk$ktW`89*flZB_gp}iDOLW+lNgN z{4&UWr}ac?yMidO6m*w-`xpm2zX;O#H$cj>Y{4@{cw>rm*Hm1eVfGXm6ytYi8ML&7 z-p-wvVxWe0Py1fZn44lG$G24g;JjOT@;WXC$pyF#tgDJsM(;B1Sfw4dr$a2bb+_Yl z%RguDR-M~+hiQx}P+Y{IymmsRL(d&#`k@3CwJ=A2;9ek(R}|r*Fn0@LoLbZ%;^Y-) zlE~j8pNX&*F(KB<>kusJVJrvV_%FHt1}^gf7@~H@N%#k|Q6)*zItfjQ-#R&BmtKF9 zvv#FxogB7HuMLkZUDzPyJmoyghAdOA_9&LZo$48ax7^e?_Eb;bYy literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/ntdll.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/ntdll.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..acab137a5cd23e04a474f465bbd11156411460fd GIT binary patch literal 15528 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 M?=!w+lB3c81GD+&xc~qF literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/ntdll.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/ntdll.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5eba6fc97c24e2cca06a98245b88122469295e47 GIT binary patch literal 28875 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 Uv{hZNf~=}~37;VNl+sZD1v(Vhf&c&j literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/ole32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/ole32.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8ee8ea1719728266d2d2a65f00af302a67b52756 GIT binary patch literal 3371 zcmcgu%}*Og6rWwMjbZsn2x%xylPJvx227ID(k4xlAoCGR<|CK{;#jiG?f?t+?sjI) zM`T4*;t%Ml>9Hr5hzmz9l{j)-kR{NbDpft?Mnq0I_0246Y~YZnQfGJH&b)d1W`4gn z^Jf33tE)j!F2DU%jaMP`H*0vse^@yv2nfAKDpG|EO1N(!D<*sbQbpC5k+S}TKO0B{ zcw5R;WrK;JfJ8KaRR0Q61K3~iA+!dMTN2eG!qo+6ta&Q%jeWCxE=)Bgs#PmOrA0zM z<*VQdI%ZXSiWT!+=M9AeI4~ut)hGPdpYmnR3I7eJSji`>&YWUZd&27MDOPnStQt?T zsy|_MP8H%P)bN(U9C|B)42e##$J9oMvAEJeS;3z&>yCid&#F16Pnc1b96~h_8Lkqi*<`82Q=$(ZZc_MY7Gu5Sv8~SIB70{ zUp?H_dFOWL-7wBhVl|x3s@>lt7c^Zp7ASk0jIw0f)M%1p=ror|5Juxdh6=q7V!3qf z)io{m@3q|ct>gDs+b!M2mTp_R;NIk{_npFG;uQ%hjN^mvLA*wmr-%3NC05InD39_& z0X(dgyu{HPVF+SeA2Fi3W@+h+_7e9kIt_}oWMZ0{%IS)w89JEMnDe6;NSep06I2)6 z4=D3=%MXk4LtA>t0V&mB;T1**$I=g# zkHwM~^S->4_vZuos(i2j{?BUrWf=W-$ znu*UVPIa1k)f&^oe8;I(7noX);dz{KYSe{j)^zLDChLf4)N<;9nY5Xn)H1*(rofu# zpo_A(UGa)bSqrEL6O2209|WW9@~(VqN4~Wl+-Tj5ZoRZ$Oxqf@bFcOh>Jf)Ucs&tc zi0=@pO^WZi1eHH2y0m&J7n~tT$1bf8pz>+77QoM1$=4B`XCg*~;IxIKI_xrC!7i14 zCqR@8)l{e2e5%h4=O8~Y$|4yWF?0(rT8>0C==PcBJY{}46D|$cp-GrvRM5*H7!65aqfF42R(~#!<1@N?1@^*x^@i^AL zMHg*=+<;*KYR-eowgf=679AOu6zmcb)u#-nitUt~Zoxu>g#h`7QZ|me3S96V&?Zb= zf`?uO!N7mHD~EUF@aojMw%NS(gFTV5)7rK?Ta;&QY4-n$^Z>RZnKY%tle1W{4kOL6 z6PDD;1tvmFw1GGt)-Kk;#8<5IWLRUHZCk26Hoh%S6y*t9ns8xBVC@w~77r`i8=n%^ z0(e;~c{&OyEMEW>g%wE@Y+43!K}k+MEY6Y|t0W8qIzCXk(3mS0H8*D8LW?kQ6CQdI zMEQap+K6t_t;n`KQj|w*X~cz9O1fapym46nC3SlVt|1bOM|=B;k%cpJI@;?Zf{dLp z=}TATRAo%QJ1Y|QU6=)7q8*-6!fx4>+jiu()qCp;#}an=p~7a*5p+Z4;{sE8+#iLc zE@F(O>D(aB_7i-VP6S7UG{FWuWc){{5+-iJLs|A_j5qJftvhn-YU8%tQItDuse^MJ zYH|YZ3Fe$XJd!)7v5pC(Ej0yy0#03JQ<`SVAe`3x*d{DKge57*&;M@tKLkIy;W!zN z4n@aOgHK~)(Xq#)eLcN>z3$n^vKREn;*qh5RCH)$bU2cV_l-X58|BH3Z*smL_|oCb zb4Y|8n0(@Vb$tllcmHo5kOAmmB+x%W?)wBm*h6*8{Mtj;?8^HublX1d-a}XI%6q?7 z6u#R>C&e$#@0j-eQCAHTYnNMozPNI6@6y%Pv0}J?9|^)EpP8lVvubIwe2dY4Y?>TNcCzRQM>c}@6|2emL mUTy=bN_;VQV6hxcEb`P^Ip literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleacc.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleacc.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..33918934b861d8f83730c6f31a5bdad6f798ac29 GIT binary patch literal 829 zcmY*Y!EV$r5VezRHoM(+ivWom=N!5MfsjB5wQ5B{YPS^#4pt;9wWn=poCG^zS+uw9 zH*kg{e3Gx6`U{*Gdy6O|&Db-O%$u2))a&a*f^z@rtNcj``Q@CO5}~t=YTl!fMADM5 z)k#&rLP}&H!!lAm)>AQyRiE{JEGiQhB`By`kSVoe(+Po3@w(z) zK-a>Rx+$*cHmbRY1_+~)us~84LWB)b7Rvxz2<_TY3Aqp+n8hn+n)YqNd4=el+ac$w zmR;%YBhEi|d3l|QcaC509URz^Y4f%a*z0*Mb&P=awuIBXD_ag)*P4rS5Enm)-oTtU zzt4A{W$z4VlU4bJnOE6fEjl-z$@Yu(RdSMxj{8!xF<#$odCYqLf zqYJX2i(nCck8o9Vng;gP(a8r8?Mq#&0}TcTv}4iE8!-H|t3+GWRT|lT`DT@ibWunf z&peZM&@`V`@BiC_9wU}^fNKufv9=j_KONb4RodRY9&vI873dtl0FLXm>;JpanF}U3 zy literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleacc.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleacc.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f2a27d0b80a7ed2280510a7d49bd0389551dbd98 GIT binary patch literal 1142 zcmZ`&&1(}u6o0e3*`!Tlsig?DMa2&qXoI5og@^@d6>3@(5tfBzyEARq?w7M0Yb0QV z{sEq>M^E*m7mptO6H*Zja}vZuZ;^WH$v3-AHHdF!-n@_5dB6G1?3+@lA5f0%yrl05 zz<23%CAV+vHqh7r3Y2(YWHa#Wf|&4k6tojZX{XDe5xn7_#Al+L0TZVS1uUROfwIE>#j!d>U2rptVaQ&6)P-nOBpqpKXs``Z9W{r5(vSKivJ! z(a`FOj)tUp_Zq4VNV;*HUmp<<|H#b^yfH> zkt{LjB=v~J)>18S5;qLWn#g;1vz*3VmkNC?eIcSRiXLa*$8zK2D0~vHGQ0ZE4l?q~!sjXNAScKBJXo7BFt(yR+~jMXA@- zmSwPjWT&iiiGa(0j7y3{F1_>g9b`9*F1Tka^Mpseh`V L4EBbyM0%Fr$g(Ki literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleaut32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleaut32.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dcd51e003e92de55e7d4daeb15a57e854313dfb0 GIT binary patch literal 1523 zcmb7EOK;Rj5bm};j>q%N11$)|vg}GQheSYDEA0xch!O}$kc~9rVp*~rcPBCUF;v^I zgK`U3u6u@KZu}OGedUxhH%?UbWM+p*NV_dnx$ASgzxukWU3NM?!|~(kKjNdq*e43+ z2V(3Vn)-lFFu^kxOrAWq0-G~o2|IK0M$pLJz%{XxE#zL{<;|d(`+?8dHWLluzG1?Z zjbl4#$<{Fw3&MNDj(N~FQB(LP>d2OCiq=~$+M;8SE+W1`x}s;0-VEuBMT7Kb$dXt# z$fDpwHdr~utl7?~g??aZZ)241LizVt_jaTdQtZYM=dzM8uywa6BMDGKlpMr zX%>}5^jboxd#X+n{ALOywDJ5PihF44B09+eE?8g*9@x@B(L8X4g$dc(|0|R0cP3eQ zWhUdgTEDY1SkPV+6_`vEX+MhcQq&pE+fnqQjt&@I$yS;x-Gl=b@0E2S&Wpc-+g?I5;=2}5{NKd)XS7?`2T+cu`tgk8^E5xc*`q?FiB#Gey*y9*GcF;6YvgG5e`&Yn zH?;5zZFH`xHxRo?_%(7A4VJV!X+C}7tozpvWFY~|BO<(cy7O)591!T?#V|JnY}$$b zrMh9d!`xY*+W`yY=)#yrHBDry26U=Mqe)>dNs}(My7ul)eiVPwT~c&_9&7WywZi+Z R)9|_D_}sJ6=xMCWzXDWkQ9b|w literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleaut32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleaut32.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fbb94f94fa050552cf83cb412acd09eea32a5fe1 GIT binary patch literal 2489 zcmcgs&u<$=6rS0&9cN-Ep`j!-g+|accEL%gqo7uZ)Fm`jYC|N811n3b&CVn>-5+Ll z-Qp6VAmtC>L~`sYI0}az`7>@4b2R zen}Y zxDq!9l|hpz1S1J8BO2XCG{&NPGC~KU2Td805F6SPlY`KN=)gAWwJ3=*Sn)nq5?E~T z*TFrZ_CWNYQPRg8_L-!QIn>7-Ift3(V~(D~O!hI~ptyiC!^a?Rg)z$Ls>U^wxr}FIZ`iU`#<|T^{UOsId5LwcWT>{KK4skYMx2VSi*G`M9{3$# z80wR>nC~El6iksKQLM;9a71iKPq362m4rCiBVQUUcOy^~w+*IM+}w?o%zzhHRZ9p{ zRgb8uY14`UWi*?6 zhtGa!q!wDKg?eN>xcON4o!&_>VSy+^KUom4gIs}Od)Cbhjc60~#=U^{@rp=;;X>8P z8-}eHTwby^yb;~4mYJijS1jEv*;WR7a@l$6z@n4nzW?R{e}K zO&mSn4cU_(yIxdZDw&Qq$Tu8q&8}F~fgev!o^HYwG2sB0M0ZjGU=uDKl1!6iYVXz9 z^RF9Zu|*c^^5SdVh|!J@OX93>yBh9=NE@wt6Rv_{fOkQ0m^P_Ha=l5e*K!Rq+aj}d zc{Wh{8lyheQM_7lKQ|a0cwh9s%;8)@%H_fm zItTUTW&D$%%74n|#S{vU^S!{fj4?h!$u0jnLRag(_wQ(~e%5`2^7ZrYc0$4*w^2X* zH1Ptgf4zD|kd)X;{djr%a$CZ9ri}!=kdZVT8sa^Kc_7Sp5$4-5pRk*#AVf!~+@uzSVe{=o@ Dt2YiB literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/psapi.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/psapi.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..67ad19052b5d26f037bfb53666be0dba20340add GIT binary patch literal 2062 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 literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/setupapi.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/setupapi.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..658030ccae1efda55efc4d6090baefd8081628ed GIT binary patch literal 4426 zcmd59OKcm*b$0m?#U&+MA6u5~XkEB*naYaVD0Uk-LFtf|)l#$}$!S9{*>1Q)aUJe1 zGrP1+g8@{)haPi^d+0%zsxZ`pFGX_nC4i5VphCg|0SXia>YEIumz?_EEO$kUbn3R3 z4tL+adGqGYywALO{9`g1C(x#zeXf0xAmne@@mr*g9Jm4@4~a%Jp-Kw)6|2M$3WDI# zL?cuP10K@C)rb)-M2&&MfDtRiI4x2gG~$K0Ar&MeQAilcLK5iF!jLvl7#7Jq(P9sX zHb|ozAwo9c^;+SWNa(Q*=xq8VqK#?s2SPWkaJ&zn^ne`U8bL0a_)}s7blHU0YudP$ z?2$P7Lf)Ys-myNb5BID--iPa057&u4T*rI3PWIs%>EW8_!!_E&bxISKN$SKiG)6up zxUsvs=`?E8ekKAX6>?+gntqd6_ZseSo>Gl!H&vz@)S=8B(rraIYE^1b)1g`_><-)Y zQVF;e%T(@DX1R&7s#k;FF-Glr)lpzxMK!f5b%#t#p^RBfDOG6c<7YA~s{aE*pae+J z{E#^K0gxUNN(zET3ZfEh-xAz6>^iy)T!431!8_TpBivuieiEuisHr< z#jvz`74d|kd{S4d?U88u=0YZya}&0sI(iATu2>oygiW}k8ZE1+OULdXkptZFx3^1g z6>r&;*+o^WqybKboES=|yUM zM74{mp$)~AGtifrvQwclI!1;O ztE8(CahGjZmmG1I;GmRtTMwM!Q}FBXYr&&*N@@xYToZmf>P$8XBdGy) z8b0g{0vW)IP5(>w3NlS0_#S|i=!Vhe>>PA#%t5|6&m#*0lst$%AgopSdODxUWo5_WA+FIo zdWl}JW!)@W%z(sWnKB&t?}~NN9c#z-Jau@4X6PL|&29TA%rGsu@vI3+h^dan+<4`# ziHRI?k{h{JRafmJv73S!48a9>570$xh1W+OqT_TQJ)uS^t0iiC+D6zLuolA&yCVxwu<*ek$umsQ z?x?SHdzfpEi-G2TBKir6LGU)bHip(3`MdP$u5@Wzy7c(dCuZxtO6zugpOAaPFU04B zBy!?690Dnl6FqC71^k8;1-HgkK>jmpG$YOE2FThB- zf_Nk@OMtwb^SdweLx-PfJ3IsBC9@iSESIeux}BeSsPHR5 z$0T6mb=Iy`uHn`YHVP1Hh$4UGen?;N#EPir%AaciWrBPR| z6))Ppja~8n3%tW_zyMmvo&q)ZLxLdek>ncx?UB>1?q`pjZ*@O^B|mGu_}L@Nt$+9I zN6Cqa78%(a8d;O}qoVNUKIsLYU4M?$Zw`mzL>yi_`55~jC==^bHuUknSkK&1(}u6rb7MY_`d!Nwr16j|z$qq{S};MWmtCR?u1qA}kBbc4yiw-7jZ0#FX6H zs}~QR?XmyTTs`&d&6DrVHnkS&z`UK`dz1Ix@4Yw4Tdf9xwRrNKJ+KJ*iQxPK9a(`b zzky(c(S&%_m!^hiQo;;oCRSSWYN_qn8e2&{bv!4X@n$GlC#=ToL&9ucJ21TlZyXR- zXU-uxpk7m>8P?Fq)u_o_janMD*sMmgyuoK!`zvJ~Hm5ahM*F0D z5pRk7%UHEHIcJ=0g(6IO$pskQoiI*boqX_Oy6%jf*ztH6hYW|`# zhp(&U-4lj2RB zaOEb&SzjeyS&Ida%3O?Evqn@AZh=m#ZlV!Ugt4Xz&-j{jaa=e|i*p2HG>tXi-&p76R#*<+h&+YCh-KN+ zA&(7Z6){Uxy^#BO;bQnjaET-}LDvw7FHJz)2J8QVp7Okd*Dmn92fAyhzl#Dj^t`Umr!L^S{a literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/shell32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/shell32.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5bf48ff2a7fcf23a8b6eefbad2bfe4ce9068279c GIT binary patch literal 2204 zcmc&#%}*Og6rWwM?KNu$+I%5W1=^-9h5$(eG_5KqDgi1Hf@)QjR<2gg&VX0hug=M9{{(}OKzpiG^}x-Md&;Tr?Rp(tQz<=Eot^#dn>WvI-u&jx z^G~^44}ms#`Xe2c2>BfcaZ9#@X1_qlHlc(HCQ+lWV2Nr%AXKCYQ?in3(n_hRa4eZ= zOIBqoqh ze#tjo6l+o1CvJslXdB8)cKq7?{wTv z+++}t>E>qu+r$Tq+q3r3#~S?BNKL4TwM0#-C3nEne%o7t>tW$y0(6xl#i5h zT`Grs{C8CF%Miui$@rRI#Yp=By7urk&LH%nFo=LBrsJ)O8`P)hur z;IT4ss7ySUo&&`*N6JiHn)x3#&|>%oMAZ>=9uyoQJb({ygzV;pKsj@p^|Kj|w<5e5 z(;&Pa*_{>X71e!(B~0#iwnsF>;&PPr4_psdZV`MFM2>I`UJr8{3BGo$j2u0q8Ma-BnI9hEXvm9V^U%qfn4bU`v?BCK^B zYfDsV!n+kFXL#@-kzs^yph;L%FcDtLpGFmRhEKu}x8r>T*hmP1a6)pM;d4T6)I0lc zenM{7&+83I6s8)a8-BR^0=0j>nv#ilVe_r;uWwy%h=O1U4TAV0LBzhcD)p~z pX3@>;885SqPAC6p@N}Xsj2s9fN5TjOG>wj?(a~s!CRB&S{sndx-M#<- literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/shlwapi.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/shlwapi.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..67bab1892af2627f8b79c4de1a36ad54f84d8599 GIT binary patch literal 1153 zcmZ`&Pfrs;6rb7M?k;6ps$fJtc&-UVqcPDK1A&MnP)MpV*=({|b_Tkzf9lLsEa6r@ zgJ(GM0sJy^_0%&rPrf%TT1}knynXLY=KcA--&Bo8oxplL{>DDog#18bb~#|I!Iozr z7-2Lg;p9(4YHX{pLx&P(F*~mnZs-N5HEHGA+(JpB>#*m+M#umu7t^M_WwlAu$L%q=9oN>0Fh@{|( z3*F3QoE80?7ra!QwW$sclPr&`GCt#?N-@st!ia0It&>B%(_O*k{+XSVS=`Y5@OQJI{`VHs^!=>WTv(N?D34-O*5 zrP|$13zlakkNQIhUamY}efD(q)e0{TI9o{y_VPt^nw6|NmH6)?dJ*&^BROeowLcUd zB=uoStjs444XE*@h|=vs9eJ?<`z8RP$R#}|=kyAYx~84BrTwlF@NIw63#l6Rxr`47 zWva5OyoSTRJbRZ3sk8@LSERi^&58wxC+>p4z&DsGu#ElR5=0BH+yOC@cwH=_cL~LB zBqzaf&gRN}JVYy{AZ{1x@DfaS@(C!4C_19DrL1H7*kSYmaQ%dc7PA#SuEnmRm)<$K zLY6umf!D`~UiKZ-wl8X+YiC>Tb+tFeU%PTB6)&{+1*Qt1=$aXaoU5B0S zb^q<)A%w)v%#@Zb->Fl9zV?E4Cvb~LnDyQ?-|7)Bxk%tO#K1M(_}g@j(CGseOc4T` z7dYQZ=`}-3LsdfsGYkWp$vIP-!5QbL{Wp_m@D|Z956dS$aB0a3Xv=b-UdP7Wq`v^P CPY#O! literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/shlwapi.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/shlwapi.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..01dc58b3f3c83123897d303dbd371fee899e9a09 GIT binary patch literal 1823 zcmb_cL2nyH6rNeH*Bh^$w1l=al-ejxg{3B7XbUKNkWzN1LAH)#)T@Ioa9|*k`2nUEDf?Z_xzu3g#Sn*<}iV;yr%#C}Rsd))A z;pwIx>Qr~aOPWcH6ts#+d>;{wYKO4TF}(d|8VaJuAqSDkfM`Lr&k3X~E`*2}Ey(SR~B>2S;OsxI}YA5fCV zBDGO=T&v<+k14CzL%%_Y;_AHyg9Aj7dEb&Irg2>hnzBA^2v{FPzxR6(bUJMxYwU5M<9n`CoTN^ds4xEaA1d~<%c*S8n5DAcq z%--VCKsL*!;lnORkOHCi51aT=Di;_PmHCuvD8wR!Z`l_5ZEQyb0mmm zc15}*JsETK6{(eQK?*NRki^=fTuDAdPJaRcI31Y_hO8kpp1=HNAkSjZwxjGv+e0nE zSEFgTC3ZrYT_mwlo7>S%gDfptJUZW$nS8G8{lgciBelS!t7p=R^CLu%*O`=sy2c+C zMPiVqLgRHFP){U2f#ipy7V$7^#e_Wju-rl-q0&{d`>@C*7lSj;g2*Ji2rpj&kY|4N zo7{(_oYrk)s?QzO$< zPmH;?G1pS(!UM@q39X-n>{YNVE)5)B*rYyXWw?ASC})u#AF7*DsYA(yQ839pla%&j zkB5~X-Uj_L4AVADiL6|7Q9@W}GO3^G@ANO3_t-oPW#qgI(2Ze?J1E@-*Qc3dV1B5x~tJOBUy literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/tdh.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/tdh.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3672ef59ccce88542bd18f0bd491c20c1b742bd4 GIT binary patch literal 788 zcmY*XO=}cE5bd6?olR!50S$QbyoW4`A{ayx6Ny5yEJiQGKr@-D%?_C_yL*f)xh22B zvmX6Ref5;TAP82^uDBLdO;z_y)qAg|9t<`Z*~7c9@S8LC(-!OIQL#_1-cbMsykPP2 z$xA18IRgjW!YlpQFM~MfYOm;(VH|RH%)p1>mO+62jT`r|f5V^$;Vrx2@dofSHtOF| zUpBdOD2^Nx9yIw>)}I$~j?rL3jMYQW5XzizhEKDl~8 z0a?s}#SZY;MUPPMH~@#{x+Z)N^W`X4!+bL8nNWy|h6!OdgeYrh3!6tmd~DNVbrT#+ z-yWTum`LeV=NUnp*C2fwW$ppaQj2c|ZjRaI4<@(ht_#2La4-3wP^zR#FV&(-j_Rx} zvC=9z&h?x2JkhB1>1kF%kyn^B3u<2NJ{doLG=9E|$UlBAbG!&0h1Woy}01%~f)if5Csm<&gTzZ3~F1A62N-R-p}r>SbA2)}2YSG`kyTH@1-; zBJ|*2U_E+}isa(aKO>cbVNZg1=q)9l3W9HTlW5R4vv1yeGyC3eesA|fCX)h`i^p&1 zF9PsgIDLutjP4E^`#^z`3aHUaY)O>~P>ITwm>pN+c0x^reyozT6;&Z1!3xm$9?%4f zAIJbrd?HatBw!;4=rsEwpvgTLj;JY0HXx@Qi!;Sz33W~il*OvG&fT4QFji!YGP-VX z!)89?ITB28=G7{`Zh1Q6+~vCIQf3ZnpwY+BokM3I7^sATDp8`!h$)6hk%cBck*EnO zAqF{6p3rhsR`zMRm`etVt~*#**MpR<+b*qDggvV3&ud1dx06_0f4sE18jO0r;aeuc zEW4B^Fn4gCvXUXN_JEd|x%CmcqU&#!zUn}Hq&olcOqw|JMZ{Eo>;4bG|i}5o`yHbSLo3fH#Y(F&OR4cw@Ppoqc*d+&;p*hHcRFfh$c@o)v=-`#P;WMQDg+-B#V9fOERp#lXnq&Hw>)^>` z^+ByvVmwIqj1B80^F+d#89t5+pXjSIXn5188t@}M^EF-gk}iCj`h4Xuy?m5jZpD_v zd*#wWA}SM1_SnmBGABerb!=LY8FpivBB&s-A;VnIz{Rf<#KYEx?T)w(p_~=_A%g|}xz~Yz)$5%T5&ijR fO93g>n0}Sr%XTC}R!9egK9NBh9S%hs;Vpgx2fY?w literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/user32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/user32.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..72de471acaeb2c96fa91d153fcb4091087ea16e1 GIT binary patch literal 3726 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 Rinvk4SwU~M@MfL|{tG`V?>GPe literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/version.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/version.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..05dfc0901bf3d721be105f91193490649f3a2c8a GIT binary patch literal 2256 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 literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/virtdisk.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/virtdisk.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8bc96dd569b43afe122d4ac5e321944bbf7bdeef GIT binary patch literal 1088 zcmZ{jOK;Oa5XX1@it8q%PYDDPTytmz0wIAAYSf4psZApVI9Qgft#_K3`o-?1B~otf zXW$ISexX{oSW}OxS5-aW4{~3Abw=?6i)d~o%hu2^DBb$)#Ml3D|#SU)C(Qv|P zM#A}%=2mD^!YyuRPVROO)&p?sD&va1Y!II}9MWAiTl-OL9TO zOy7lN<^qqrFt^PmUu6QXL*9InUApqH2nV7h6xa zpFG}vu?6`t@GX|}=g*?^wBY5rG|$S^F=ACJquaY|S5wiztY%At<`aiDY3)mlzFqSe zA-m}Kv4KXBuXILcbY{)$nKN_0c|&qV``DHCQ3Zvm9hSnBPqz~_tw6>nlOj=RS#&(T zb`u|}Qm_%c!?<<^OpW#C!k6770Vxj|p5ea9*huQ&cl)LG_F2I*_)|5pf?Q%9P18`C zK5tmH{_j=9s`+FM4T7(Bm14OZ{oO| zr5wbtf+RgjlbT%IGqK?43`EAN3i!X+4=`Ty-^UkWRHvoAdFAxxO&7OEP=H_xc#IRI zTYpPuWSl-WxbC#TADRgB2Wz*UGvOMC>15sCx-xa91(tdQ4Ttt$&FA_xMI}v%eA1*V O)(URN4X9(^p}zo286pG# literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/virtdisk.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/virtdisk.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4eb1a715373004fc1534cd53b22b6eda672171a9 GIT binary patch literal 1586 zcmcIk%TL@!7$19WWA;%BDMg~G$e~TM6i}*ERUae@5={sS1a*^2buC$rX8;$!Iy1X; zrIoss_yc+>JytzXMf?N(D=H_7l+~OnMLlp^L{2&N8yjyI!L^^qpTC#Kzwa^rqgE>; zpqZmz@RbrmFQrnDekz>&4#Gad2rB`y@~0B2R!Kov#ic+CbxRKo%gA&s7zs_w3`ea| z1*zyR!ulS<2GI{-|3kQQvdStV5*S1ED~E zat)MyM3ALmWT{xON`O&={1nIq?wl+GtAME_YG3=5FZ*mK$6~fX#h|X&M}+A(5kPVr zQFfd##?3&=Rmb_h=?14BV`<~w^8Ndw%DBsY4-(jpF&%-gh)bAkx)SwJCQs0b1n~Mh z?{oVRBb3>ZyTjU%y&QYZkVKr>cYVInd~9>V_}ZEm;=qrHowQ-!X#U2+N7olVnqj`=W%8NGa@ua8roar5}9p zbb9gm^kS+_<%>=fFM0+@1(_hoYMYw0rD9LL%7+sH^OS81r~LAuHD=p+Dv>WnXO?t0rpS<)%#F~sF%v zK5s7*=21U^YSDKfT1>)#w|q=!BO#u@>3dmu=w<0EKWGsexJg3rx!TM?0F~@bxY-S0 zvNo4rROX&l=F<6F>Fux5hu@^%CMoUo5&BWNrye6zT~%LY98CJEnpLV^6Gq-wF?l+* z3tJ>2)a3*_a9Bj`tg3BEqX`3@O*Yje6#3f|dUm9!>|=J;@)^(CnBg6lj%<8oe_xx6 z`RTnyXF-)i%Kie@FDZ)BL$z*p_0W6i+4VQNo?f(i=+pF~)z?(zW*?nrKd&51>#P4< rWu%UE-~DN3Z>Fy*%C6E!k{_3lIzBKNXJS@W8MCSm#T2I8k>&d@LOYll literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/wevtapi.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/wevtapi.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..58ff5adf3e426ef8819296c9e7c5bb9469dc732a GIT binary patch literal 4657 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 Hr}lpVax$Mr literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/winhttp.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/winhttp.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..32ef3e923276c7f589a2450e490264d307099023 GIT binary patch literal 2463 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 literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/wininet.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/wininet.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e32de1265d2fc2efaf3f79c74822c2746c3d5f00 GIT binary patch literal 6737 zcmc&&OLN=S6~2H-iW2nlL)OEOs7ceBb)+U^r{iSusQi$nS{5ZrjuM78LlKt`2?VJN zFtl7wtIqfbbX9kml`4%kT4u?mmykv?@?e#jOc&nC!*r8X&$$3-l0Z7tOeKND;k^eR z&pij4o_bKhUU^FNYk=!G){~3`3)V~21w&ApnXopB>#|Ct^9Tkz=pOHpQw9^9> zbfF{ySp}IX#k_*-2f$DOhdOc9xE>xcfs>g*oq8S`7WM^6a$(q?aL#a&V*#t}Es7_f(FuPKTtP;ei6$ zrL3BT-b|?7494Rs3>=S}o$+`sFBcVTcg5qY#e`yC35?H9-I<;?yEHwaXOrM&CNHx9 zjA5RWX(~}v^f+ZK&*I4pO|EQ_Dh~g1Hu-Vvp+=b&QxhxNni{*4PZo1j)wS5YtUg&> zis@9-A3R9rWCh%b71qG6I(mKVgZIZi8l|}!%`fmQJHHr|`tc~zxJJ)2j@&EBNG zR-jruRaCiVtIcdz3fj|$OflQ#(u9&oYi6fhicq+T-%?papGHPT7*uw``W?{?jp{In zb@FfNodfCmo^*ZZ-uH`@F}!(et&q?(HUv&-I0P`_aPk&(844t)iVfss@Ibn{Ctckf+L^9| zUc`;ZbXQ94ODV&bI{Bb&Mn=H5X77IsI)(y6WACEioM56m2PPWlqHna!jXBbPY%1 zsXu9V1=Xl~(tqRl~P>N_W6!>386xD~u07 z$x!?X8^1@vX+mn819yR(raRC$Doy1;xqSnyZPzS%P-Pb~o2nqY1_PNr$j>|$D>eg* ziYcj9XEx6uweTXY2mBK6%|arT@=Qk75SdL<&LSHFYZ?x3@#o~%b=t*&o6CL41M^NRD zoG8&vch4sJa|ptN=t&F`1<&XS?D0hQLCZO?hVewk32~G}-T*7xHA`<2_^eY==cyhp z@QsMI4En4T4$37q*}-j!neQq1thP9;Q}hx_1Llk;<+VkkbsMi>R>ptg4a&HsBJvL%{*I8o-Q zDmSK?AJWX$u=mgxoc?B~0vU-+B^0yIp(ml(WHfC-7VvKrh z2#+N!oVv9J&n^pjM4SCeq3HsunUp`lbJO@VVk~5LrR9BT+3+o& zK+NZyQsBgV_laHZeJl3m#+br%Vm3uF~ z+LadfrA5QHcsg;}(@h2sn|R5f_b8BImO^pt1ppqHdawY@6)9VrQd4>Rw)@!^Fup0t zB~(t+Z>hrg#OuQuR$qeg$pld{ebSsh%NPO*tZKCaFmxb=_N36})t&p5LE}CwovB?Z zy)UH=U-}dRw)t2A7n}WGMgLJ?ZD4s6$4&^F$6>sRQLUWvI`pO(9cQ^@U;mOfwbJ+q z5jAf@m(76nF2U@#UzLo((=25Poyu`|Lt}O~c71772H`CVf1ScGp&5o``uTet{%*&5 zsnU;^@PUax*Yd|h{tU&RK=@vq?^XF`jc;c7R)8<5d>P`EoEJV`BY3Lu>B%`}eP|i^ z<$H;rgP&NhpgvT0{PU9h+Gza#K;AdJzCVz+jmGa`KomYa zByREdo3By()0;~{BKE9b`rDOfR}Mu%hzN%Ss2c6Gf??ba ztG5HHMmw!w!mvvggs@l_7pNNTw1UCiHr$_jJD_T`(+cJhkLyu=T%c;S(+Z}Q*jvG@ taDP_n{Q*^@KVNdpm-QG>9UYV5b~5#LK-Flc6-+B}d1HV==K{~l{{l^K79Rir literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/wintrust.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/wintrust.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..adef1dcd49db4324e2507ed253c92af16df9dbf9 GIT binary patch literal 2659 zcma)8%}*Og6yII1?Zw!}d<7B+&?IVWsnC2WZKJk|YeGN@2o;)0mZjCQGuYegS7z5G zj<}I)uRWJz{-wG0#5uQ~`rccwF^;J`(#+29&By!AZ{EyoP%0G^NUIlrv2CdRgJ3Y} z0G>gP3{_E>!ch~_QDYBHQy~3smO%a-5vxF*y z=GZ);>HgRoY=JB@)V|1W5}NI|-(pK-nd@7Y*=@4S_bn@Il`J=ydZ1L-E>NSr3k}Mu zCXHI??2F)CS5ED5&N$n*gyr#=3ur9+fyspkglV_A{YDm#Eypzj-+a$SVB95r7!@pk8^8S^OK-L*aDIzDfPU6|Zof3)%7{>BgM+&kiI z-SXIz$4y|(f|CfpA?nw(LWdBoWh3m0Jb1+%AvHtM)uKwaswyW3RJAkEoF=SiA=e>) zDnk(~f2*g;sd}oNXAYE)>K<+j2>6N%=eSEU$|*bUhCDKlJH8z|fe#w%?GvBLLfER2 zWoJ_w;p;#IJvRb;rs%F3KID*#$Kj!b^gir>etS^zA z3|j}Cqo^Cj+#4y-moWJnI=G1iqVeQe{vRUgUWu=8&aa`6)8R?<9#yNktw1<&+XK@< zECRoU*8RYB?CwZ{RTzE`=OLvKji=N~O0c(WxC^*-Lt+`I6}HKVFiJOTR3v=^p3!?E z6r%BX+(~&*%>K${QhMAr%-?qk1MDBwC={EP*7yCkBC$JqG^7DFDt1KUq%e~1O5@jNbk z<}q1Zvhu_s98p|ouVKhBF7ubZV?@;jxMt{ik@LMLZ==P15|x?o+{)5bsJGB)z-vg) zqR8NM7$`DJkDkDbnqF&q4C%R{+gz++171yZEeHyJjC+BxN4qaje9}YEhFr3z8oo`^ u_%Zoy_!)lsl;|lGhEh~3S_QI^FQ|GJa;Bgfknu}d2Mk&7eX(xnW%WP!6+j69 literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/wintrust.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/wintrust.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b17cf4493dcd58ac9a7bff55edc6dbf230040460 GIT binary patch literal 4525 zcmcgv&vVn(7QV6-$MKDmhCoB<58Og&4JD5PO$(GzH;~$)FoE!z;CP-?C8UBE-9$j{o*G{^~(#tGa${x=+qg7`*U9d}suDa?uSC(U8=M8V(q&L>lz2|;9 zI^R9#9^L#W8jTQWN1y&%PD1Zj9C)p#*?Be=AmlNTi7aR&?cRk#ARQEl9FT*WSm;Uj z6hi3`AB$RVA)F2u`qF&@36Rf--1CUYA*E+MNXQ0UZc9f3M2RTjpL^E@(8J|6IsAyM zLwCbdkTgZ4UnloQbDm429pE2kyRKoST?t$4NhMs+(FeBH>2k3ZN^z2<2JSGZB3o=Ou zWFZ{{|3t_&Urwb%asYe@I?-8Gzr#wV<@yj_QFRN4H{-odIGfeMm2B3DWU~cBE@{~B z&t|_WNm_Fzl$cIk{rq#M-?Su4&4J@fhRk}w31?VV7NwGAwKMpMJVUSl{4#ej^G{P@ zW=5Bm&9a`kYUD}%q+m4Q`O>Q4K@%?*0tX7Yl zuOB&YizDuj9q^uu3l43ILe5)jm?u~faQy5dh{wbN>9rqPJJ{3UeU+>Vs{#McpCLa9 zH!<80j4u?XE|z&noWYz`E-Gerv83lL)zBec;?jyPJCR~O!8NI?PPjPx#ht5?C7I|) zEEZ$KaAzZ)7=Vs>1jHKojlR;L@fwZ)cziQbNml8#I=yC#*ErRj2pF%0pu=f>44oIJ zwHjOpD;q6KGlabi27ubJ305vz6Nx(sxuEJ3l9o$K=F%iH3X`g)Bqd$e6m}S~qSLd4 zI;XdoTR@N#D!TVxd1X?Q@}`OQfoPNI>o8&{4#H((2bqpG=y;8eS4vy?C-?2ye^qI= zPP4X{b;){_9MA;wf|DJG&i_JoRa^%<8!cPAbdSFP-Lo#=9;a_>eXbdTW#3S2D{5lHtR4SJ|NG*j-wLn(dHc%JnMd$of=+ zUaHYcmDJXK9%TDop-S~S)ooFCNn>2Sh6~B#{QvD$FQs4g5l-a3DydAFFmy}#+H$!D zVWYNU>(F9;rnF#|O-m`bkws@(aXkqGh9U-+`6>uxc%nhaYIJP#!PX^vdbUdE>U7Q) z=l+(6zV=@TddbU9furm_5YA9>#e9H)PH1_9sn${fR5KPc^gL>(4Nc9JyQcIg+CYJ+ z(Msue8uY^&{jd_*x^CZEu;r4y@=cXKtkZ|K_;BB&`-VrpnZ=ltn90utIE?YdIj65^ zHoIMddlng@h$BO<8pj*-LXBRiyt|cpvQnk9bvkQ{v-?i%Esq+nIky!}kxZpY(@)Rc ztLM;pUW$APJBDf$7`ax$o^H^~HF~+CJ~?d9q^oqkPUmfL-X(=+9JaQOG#K3^GXTNG_0pkR3KP4@DRix>#%4d&j0zx630*=wN}E#8uUz!p4mKHxwuuX z(pzKN`8#U=*qs_6fx)%czaO`SlU3nlT{yWD z5QIr#hoJmDNCKyJbrFvJ_UNOd2)f5X_c&;%r3(2l8pmku7*M&G=iX^>sNs7j==}EX za?ss&d!X`TJ_(@np9IkPreB~6`}~^YcIMjcfXc-@=U0Y9Gd{mS=eKvAgRZyR165ah jw>k8-&mQQyVpANO@?k;O6+6YTQ$DPx!v&cVcpm-*wD!0D literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/ws2_32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/ws2_32.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..341d0ed0266cadf32ff0b396c2f8026c0280073b GIT binary patch literal 2883 zcmZ`*-E-4M5Z6hvtk{l|kO1K`KubGrhYVk(Q%Y&v1VTzM454I3;~9;jJ0~KtBu+AE zI_9OxE3bV{9`i5VYoB<|Tc5hS{)jR7W^Q%6dw09P+r2%-2aK_nD?~jk8d5I$ze*9fN6H=SFBYb55>lITrC|m~YyS-5hhqngyrOEILJ|iIOwE ztnnPT_BC#a+@9f-d7j(*nlmBFdm10(g?(+0Ig`W{d5O3wQ5FS0{(}nFcknx|pYN93t7yN}M zy{5>7te9$iJ%|!iK9Vw)Y9ejOYjt(Z#-4611^8eS{R2Hif=|I-c8 z+z|YR*W~x^)^~!4$2%#0=?v>$5&%a?=967H1~xI}Q*_MMOjcqf^D)zV4ae9Qp{Eyt zv{|OTVcWVaWqMo749HjZLI0bz4LCNvR$;2pjY!M|gwWgs#HzefdtF^!S#sB&FFt+r zO6FiEHL<={T^8A@mu3`Sm_62LMLr#{vZP4ipp=OsWqNWmJvk*vNC##kP58KOeQbD(8s9v8jkyrt^t!FDE3C*(`7L;4$L+?Wbav)JFwcIIfQ&T zVi@{DkOmQiH1dU<@S-9)4+x3Mb$Z2{zKnJ2SWq9!^j7g1zE96`!Y z?YxHg!uX|l+k#*UuExRy_wry-KNSe0yb6Y(PAjPsFg^BJYa?F;c?1ufSiYZj3;F4#6vub12=4>Re2qE=vb3ya6HlsYA@rA zZ;>GPS;k@b2+Jf45DNyPt+$Os^8{0IQ)C|JGKd;6Sv!LKNotUGHMpRvl&lH)F7P{? zl{^XH4kqdkx1JIf9MZH3++HwsVKp33N&@%JympxutZkp-jv|fGFcE_Tx~M!vyLV zjnO&9HdUVQJPy6ju9Cb177;SRpV5gQ>7Tp}Gkfq)eCdL}i^?JJ4?s4L@}H3)=NmwJ z4aZm#2s~ck6Yz&nS9+$b&J8EX6+`|26XiW5KOz}2`4D92Cm|~968Vuvu zID(fW>)KH)RVG$;l}8$iXxP*OEG9pG#a)manK{Q-K-<>2*3zVng=dew*E4niwRAYc z4P}BYSDC4ZIQep9$|@{Z#zw253{a|E<4eJO43q9dKc=M8Z8pgy%0_x6mq6QrZ^%b5 zR;CpGJ2EPlQ8#qBs~}rI`BNmwjV`ez(Dveq#k6VR178%BZI@Xp2OUh%-cgt-9&||L{QyFWB9=R4Kj{3sJVadS nZ$NCV#3uDw-P9*_+ca|pW?BVi8}RLR9DmwN%+6s)d71qWi~&wa literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/ws2_32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/ws2_32.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8c6317d97b30520b72efb16070bbc14e4ec060e0 GIT binary patch literal 5057 zcmd5}O}* zb0{rsX~khz>LG`1lf$m$6D48~xl~&9w8tEuktNWRkRnw*B&cSb7gghY%QD~Ax?SGnbMctGr zF2$XcQZ><>8}vHBg0YJ_Z@ALbe=(JW+)_C6KIY_l7Fu>0^*B%E@*5n!a0)#Wq%9+m69D zRY`E>7-Vx5@-2lV)ZpV2%r5Y*^Nml)A zLd)RfN1Ug*71Xn`44_zAi~UmNX)B@A%QbjxLDMqxIkdH#b)*X*g(H6re|3UCPQA!7mH~iYb<8@ zW3g0P$tJO17mGd2#*@Vv&&ciZ$i#$IryFr2A;Za*(hB#209K=-F2u7*qx=ZZ$N|dw z?UMZA+>EYreNKx%&{wp%NLtRORL#)m#uCPj?EIXe>c*{Ga!N@iG<7bs0_$qM1AXsZ z?)#uuP0g!HZ#<<856&$oG$p;P&5b%4t>IT!eCPUQn7d;@YsNgcvB52hLj8EPhnHZ16ravCN z`O#hOfoH7X?DWW(YD~m+L--S*YZtPbER1M*xT=FOED2eb6z7Y&jwgEu8gItun}n0a z656A9GNHuuwERFd_&Jygz)$Z3vPO2j^?z(CG_-Gf+f8r#Uf|5r@xNTk_m39(N6kPa zABYqJ5z`mhWx=(ZLWi<*D0m(>6zcm7I!}n~Rrdz0vgNFFs8P148gWJ832h-Q zBz*>Po0)`gpM>OV)n%qt{wN{aBTwc=0+OWV%VefRJXgjrzXU=FasfK}TR>3#Ejz4Z zn|0(?o`=8oyzu4OodUaKN_W18)73#n8iCV|!|7&iLtIADP!Ue*;lnTz1mnOF`_vBW z+-9Adwa>49-SXmeo=p|llqpTwVxu8S%?BM}lxxuWPmHoEt=4S7N?XoqhlUZsEt24f zZ5NN_iZ56aW&kh%PaA1DowNeU4BVWekB7AAqUBYVuP5V>U~yGEWhuJ^hFgX&u3-~o87~wLizSNu> z@_a1Xiq{b4nvk30qWlL)F#L4f*imi-*+}|v3PT%}+pxpVZ?p5c3pr); zMxG57*pMj={m|=R0SYU&uG-%5%0kG82&4l~^3_4JixYmM|SL~ z9ro@vdp9?d)AOvSzETO*jUA5n}e#n0c3!qN)zryME-IUT@QoklXyQJN${JtcY&7;0A z$&C5$z8HeizT~3s?~`isxa%9_{^M}U=cXt2i9`IvRlj!TcW2kn?z`MHLUAfWzi|^+ z&|%e;VJPi_YL<362xNE!;OW~Y?aI@x0&rZE_9CtqaUq9e1MS@?or2wvmaPS>O3bvt zOqXMTWn;|NUX%9aXDJoRR?LNH-lsRomncjvU)0X6t_er!hyBukA1Y5-DKLO?1 B;}!q_ literal 0 HcmV?d00001 diff --git a/pythonmemorymodule/windows/winproxy/apis/advapi32.py b/pythonmemorymodule/windows/winproxy/apis/advapi32.py new file mode 100644 index 0000000..4517abd --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/advapi32.py @@ -0,0 +1,745 @@ +import ctypes +import windows.generated_def as gdef +import windows.pycompat + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import fail_on_zero, succeed_on_zero, result_is_error_code, result_is_handle, no_error_check, result_is_ntstatus + +class Advapi32Proxy(ApiProxy): + APIDLL = "advapi32" + default_error_check = staticmethod(fail_on_zero) + +# Process + +@Advapi32Proxy() +def CreateProcessAsUserA(hToken, lpApplicationName, lpCommandLine=None, lpProcessAttributes=None, lpThreadAttributes=None, bInheritHandles=False, + dwCreationFlags=0, lpEnvironment=None, lpCurrentDirectory=None, lpStartupInfo=None, lpProcessInformation=None): + if lpStartupInfo is None: + StartupInfo = gdef.STARTUPINFOA() + StartupInfo.cb = ctypes.sizeof(StartupInfo) + StartupInfo.dwFlags = 0 + # StartupInfo.wShowWindow = gdef.SW_HIDE + lpStartupInfo = ctypes.byref(StartupInfo) + if lpProcessInformation is None: + lpProcessInformation = ctypes.byref(gdef.PROCESS_INFORMATION()) + return CreateProcessAsUserA.ctypes_function(hToken, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation) + + return CreateProcessAsUserA.ctypes_function(hToken, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation) + +@Advapi32Proxy() +def CreateProcessAsUserW(hToken, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation): + return CreateProcessAsUserW.ctypes_function(hToken, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation) + + +# Token + +@Advapi32Proxy() +def OpenProcessToken(ProcessHandle=None, DesiredAccess=NeededParameter, TokenHandle=NeededParameter): + """If ProcessHandle is None: take the current process""" + if ProcessHandle is None: + # TODO: FAIL + ProcessHandle = GetCurrentProcess() + return OpenProcessToken.ctypes_function(ProcessHandle, DesiredAccess, TokenHandle) + +@Advapi32Proxy() +def OpenThreadToken(ThreadHandle, DesiredAccess, OpenAsSelf, TokenHandle): + return OpenThreadToken.ctypes_function(ThreadHandle, DesiredAccess, OpenAsSelf, TokenHandle) + +@Advapi32Proxy() +def SetThreadToken(Thread, Token): + if isinstance(Thread, (int, long)): + Thread = gdef.HANDLE(Thread) + return SetThreadToken.ctypes_function(Thread, Token) + +@Advapi32Proxy() +def DuplicateToken(ExistingTokenHandle, ImpersonationLevel, DuplicateTokenHandle): + return DuplicateToken.ctypes_function(ExistingTokenHandle, ImpersonationLevel, DuplicateTokenHandle) + +@Advapi32Proxy() +def DuplicateTokenEx(hExistingToken, dwDesiredAccess, lpTokenAttributes, ImpersonationLevel, TokenType, phNewToken): + return DuplicateTokenEx.ctypes_function(hExistingToken, dwDesiredAccess, lpTokenAttributes, ImpersonationLevel, TokenType, phNewToken) + +@Advapi32Proxy() +def GetTokenInformation(TokenHandle=NeededParameter, TokenInformationClass=NeededParameter, TokenInformation=None, TokenInformationLength=0, ReturnLength=None): + if ReturnLength is None: + ReturnLength = ctypes.byref(gdef.DWORD()) + return GetTokenInformation.ctypes_function(TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength, ReturnLength) + +@Advapi32Proxy() +def SetTokenInformation(TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength): + return SetTokenInformation.ctypes_function(TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength) + + +# Token - Privilege + +@Advapi32Proxy() +def LookupPrivilegeValueA(lpSystemName=None, lpName=NeededParameter, lpLuid=NeededParameter): + return LookupPrivilegeValueA.ctypes_function(lpSystemName, lpName, lpLuid) + + +@Advapi32Proxy() +def LookupPrivilegeValueW(lpSystemName=None, lpName=NeededParameter, lpLuid=NeededParameter): + return LookupPrivilegeValueW.ctypes_function(lpSystemName, lpName, lpLuid) + +@Advapi32Proxy() +def LookupPrivilegeNameA(lpSystemName, lpLuid, lpName, cchName): + return LookupPrivilegeNameA.ctypes_function(lpSystemName, lpLuid, lpName, cchName) + +@Advapi32Proxy() +def LookupPrivilegeNameW(lpSystemName, lpLuid, lpName, cchName): + return LookupPrivilegeNameW.ctypes_function(lpSystemName, lpLuid, lpName, cchName) + + +@Advapi32Proxy() +def AdjustTokenPrivileges(TokenHandle, DisableAllPrivileges=False, NewState=NeededParameter, BufferLength=None, PreviousState=None, ReturnLength=None): + if BufferLength is None: + BufferLength = ctypes.sizeof(NewState) + return AdjustTokenPrivileges.ctypes_function(TokenHandle, DisableAllPrivileges, NewState, BufferLength, PreviousState, ReturnLength) + +# Access check + +@Advapi32Proxy() +def MapGenericMask(AccessMask, GenericMapping): + return MapGenericMask.ctypes_function(AccessMask, GenericMapping) + +@Advapi32Proxy() +def AccessCheck(pSecurityDescriptor, ClientToken, DesiredAccess, GenericMapping, PrivilegeSet, PrivilegeSetLength, GrantedAccess, AccessStatus): + return AccessCheck.ctypes_function(pSecurityDescriptor, ClientToken, DesiredAccess, GenericMapping, PrivilegeSet, PrivilegeSetLength, GrantedAccess, AccessStatus) + +# Sid + +@Advapi32Proxy() +def LookupAccountSidA(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse): + return LookupAccountSidA.ctypes_function(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse) + + +@Advapi32Proxy() +def LookupAccountSidW(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse): + return LookupAccountSidW.ctypes_function(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse) + + +@Advapi32Proxy() +def LookupAccountNameA(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse): + return LookupAccountNameA.ctypes_function(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse) + +@Advapi32Proxy() +def LookupAccountNameW(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse): + return LookupAccountNameW.ctypes_function(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse) + + +@Advapi32Proxy() +def CreateWellKnownSid(WellKnownSidType, DomainSid=None, pSid=None, cbSid=NeededParameter): + return CreateWellKnownSid.ctypes_function(WellKnownSidType, DomainSid, pSid, cbSid) + +@Advapi32Proxy() +def GetLengthSid(pSid): + return GetLengthSid.ctypes_function(pSid) + + +@Advapi32Proxy(error_check=no_error_check) +def EqualSid(pSid1, pSid2): + return EqualSid.ctypes_function(pSid1, pSid2) + +@Advapi32Proxy() +def GetSidSubAuthority(pSid, nSubAuthority): + return GetSidSubAuthority.ctypes_function(pSid, nSubAuthority) + +@Advapi32Proxy() +def GetSidSubAuthorityCount(pSid): + return GetSidSubAuthorityCount.ctypes_function(pSid) + +@Advapi32Proxy() +def ConvertStringSidToSidA(StringSid, Sid): + return ConvertStringSidToSidA.ctypes_function(StringSid, Sid) + +@Advapi32Proxy() +def ConvertStringSidToSidW(StringSid, Sid): + return ConvertStringSidToSidW.ctypes_function(StringSid, Sid) + +@Advapi32Proxy() +def ConvertSidToStringSidA(Sid, StringSid): + return ConvertSidToStringSidA.ctypes_function(Sid, StringSid) + +@Advapi32Proxy() +def ConvertSidToStringSidW(Sid, StringSid): + return ConvertSidToStringSidW.ctypes_function(Sid, StringSid) + +@Advapi32Proxy() +def CopySid(nDestinationSidLength, pDestinationSid, pSourceSid): + return CopySid.ctypes_function(nDestinationSidLength, pDestinationSid, pSourceSid) + + +# Security descriptor + +@Advapi32Proxy(error_check=result_is_error_code) +def GetNamedSecurityInfoA(pObjectName, ObjectType, SecurityInfo, ppsidOwner=None, ppsidGroup=None, ppDacl=None, ppSacl=None, ppSecurityDescriptor=None): + return GetNamedSecurityInfoA.ctypes_function(pObjectName, ObjectType, SecurityInfo, ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor) + +@Advapi32Proxy(error_check=result_is_error_code) +def GetNamedSecurityInfoW(pObjectName, ObjectType, SecurityInfo, ppsidOwner=None, ppsidGroup=None, ppDacl=None, ppSacl=None, ppSecurityDescriptor=None): + return GetNamedSecurityInfoW.ctypes_function(pObjectName, ObjectType, SecurityInfo, ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor) + +@Advapi32Proxy(error_check=result_is_error_code) +def GetSecurityInfo(handle, ObjectType, SecurityInfo, ppsidOwner=None, ppsidGroup=None, ppDacl=None, ppSacl=None, ppSecurityDescriptor=None): + return GetSecurityInfo.ctypes_function(handle, ObjectType, SecurityInfo, ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor) + +@Advapi32Proxy(error_check=result_is_error_code) +def SetSecurityInfo(handle, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl): + return SetSecurityInfo.ctypes_function(handle, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl) + +@Advapi32Proxy(error_check=result_is_error_code) +def SetNamedSecurityInfoA(pObjectName, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl): + return SetNamedSecurityInfoA.ctypes_function(pObjectName, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl) + +@Advapi32Proxy(error_check=result_is_error_code) +def SetNamedSecurityInfoW(pObjectName, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl): + return SetNamedSecurityInfoW.ctypes_function(pObjectName, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl) + + +@Advapi32Proxy() +def InitializeSecurityDescriptor(pSecurityDescriptor, dwRevision): + return InitializeSecurityDescriptor.ctypes_function(pSecurityDescriptor, dwRevision) + +@Advapi32Proxy() +def IsValidSecurityDescriptor(pSecurityDescriptor): + return IsValidSecurityDescriptor.ctypes_function(pSecurityDescriptor) + +@Advapi32Proxy() +def ConvertStringSecurityDescriptorToSecurityDescriptorA(StringSecurityDescriptor, StringSDRevision, SecurityDescriptor, SecurityDescriptorSize): + return ConvertStringSecurityDescriptorToSecurityDescriptorA.ctypes_function(StringSecurityDescriptor, StringSDRevision, SecurityDescriptor, SecurityDescriptorSize) + +@Advapi32Proxy() +def ConvertStringSecurityDescriptorToSecurityDescriptorW(StringSecurityDescriptor, StringSDRevision, SecurityDescriptor, SecurityDescriptorSize): + return ConvertStringSecurityDescriptorToSecurityDescriptorW.ctypes_function(StringSecurityDescriptor, StringSDRevision, SecurityDescriptor, SecurityDescriptorSize) + +@Advapi32Proxy() +def ConvertSecurityDescriptorToStringSecurityDescriptorA(SecurityDescriptor, RequestedStringSDRevision, SecurityInformation, StringSecurityDescriptor, StringSecurityDescriptorLen): + return ConvertSecurityDescriptorToStringSecurityDescriptorA.ctypes_function(SecurityDescriptor, RequestedStringSDRevision, SecurityInformation, StringSecurityDescriptor, StringSecurityDescriptorLen) + +@Advapi32Proxy() +def ConvertSecurityDescriptorToStringSecurityDescriptorW(SecurityDescriptor, RequestedStringSDRevision, SecurityInformation, StringSecurityDescriptor, StringSecurityDescriptorLen): + return ConvertSecurityDescriptorToStringSecurityDescriptorW.ctypes_function(SecurityDescriptor, RequestedStringSDRevision, SecurityInformation, StringSecurityDescriptor, StringSecurityDescriptorLen) + +@Advapi32Proxy() +def GetSecurityDescriptorDacl(pSecurityDescriptor, lpbDaclPresent, pDacl, lpbDaclDefaulted): + return GetSecurityDescriptorDacl.ctypes_function(pSecurityDescriptor, lpbDaclPresent, pDacl, lpbDaclDefaulted) + +@Advapi32Proxy() +def GetSecurityDescriptorLength(pSecurityDescriptor): + return GetSecurityDescriptorLength.ctypes_function(pSecurityDescriptor) + +@Advapi32Proxy() +def GetSecurityDescriptorControl(pSecurityDescriptor, pControl, lpdwRevision): + return GetSecurityDescriptorControl.ctypes_function(pSecurityDescriptor, pControl, lpdwRevision) + +@Advapi32Proxy() +def GetSecurityDescriptorOwner(pSecurityDescriptor, pOwner, lpbOwnerDefaulted): + return GetSecurityDescriptorOwner.ctypes_function(pSecurityDescriptor, pOwner, lpbOwnerDefaulted) + +@Advapi32Proxy() +def SetSecurityDescriptorOwner(pSecurityDescriptor, pOwner, bOwnerDefaulted): + return SetSecurityDescriptorOwner.ctypes_function(pSecurityDescriptor, pOwner, bOwnerDefaulted) + +@Advapi32Proxy() +def GetSecurityDescriptorGroup(pSecurityDescriptor, pGroup, lpbGroupDefaulted): + return GetSecurityDescriptorGroup.ctypes_function(pSecurityDescriptor, pGroup, lpbGroupDefaulted) + +@Advapi32Proxy() +def GetSecurityDescriptorSacl(pSecurityDescriptor, lpbSaclPresent, pSacl, lpbSaclDefaulted): + return GetSecurityDescriptorSacl.ctypes_function(pSecurityDescriptor, lpbSaclPresent, pSacl, lpbSaclDefaulted) + +@Advapi32Proxy() +def MakeAbsoluteSD(pSelfRelativeSecurityDescriptor, pAbsoluteSecurityDescriptor, lpdwAbsoluteSecurityDescriptorSize, pDacl, lpdwDaclSize, pSacl, lpdwSaclSize, pOwner, lpdwOwnerSize, pPrimaryGroup, lpdwPrimaryGroupSize): + return MakeAbsoluteSD.ctypes_function(pSelfRelativeSecurityDescriptor, pAbsoluteSecurityDescriptor, lpdwAbsoluteSecurityDescriptorSize, pDacl, lpdwDaclSize, pSacl, lpdwSaclSize, pOwner, lpdwOwnerSize, pPrimaryGroup, lpdwPrimaryGroupSize) + +@Advapi32Proxy() +def MakeSelfRelativeSD(pAbsoluteSecurityDescriptor, pSelfRelativeSecurityDescriptor, lpdwBufferLength): + return MakeSelfRelativeSD.ctypes_function(pAbsoluteSecurityDescriptor, pSelfRelativeSecurityDescriptor, lpdwBufferLength) + +# ACE - ACL + +@Advapi32Proxy() +def GetAclInformation(pAcl, pAclInformation, nAclInformationLength, dwAclInformationClass): + return GetAclInformation.ctypes_function(pAcl, pAclInformation, nAclInformationLength, dwAclInformationClass) + +@Advapi32Proxy() +def GetAce(pAcl, dwAceIndex, pAce): + return GetAce.ctypes_function(pAcl, dwAceIndex, pAce) + + +@Advapi32Proxy() +def GetStringConditionFromBinary(BinaryAceCondition, BinaryAceConditionSize=None, Reserved1=0, StringAceCondition=NeededParameter): + if BinaryAceConditionSize is None: + BinaryAceConditionSize = len(BinaryAceCondition) + return GetStringConditionFromBinary.ctypes_function(BinaryAceCondition, BinaryAceConditionSize, Reserved1, StringAceCondition) + +# Registry + +@Advapi32Proxy(error_check=result_is_error_code) +def RegOpenKeyExA(hKey, lpSubKey, ulOptions, samDesired, phkResult): + return RegOpenKeyExA.ctypes_function(hKey, lpSubKey, ulOptions, samDesired, phkResult) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegOpenKeyExW(hKey, lpSubKey, ulOptions, samDesired, phkResult): + return RegOpenKeyExW.ctypes_function(hKey, lpSubKey, ulOptions, samDesired, phkResult) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegCreateKeyExA(hKey, lpSubKey, Reserved, lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition): + return RegCreateKeyExA.ctypes_function(hKey, lpSubKey, Reserved, lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegCreateKeyExW(hKey, lpSubKey, Reserved, lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition): + return RegCreateKeyExW.ctypes_function(hKey, lpSubKey, Reserved, lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegGetValueA(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData): + return RegGetValueA.ctypes_function(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegGetValueW(hkey, lpSubKey=None, lpValue=NeededParameter, dwFlags=0, pdwType=None, pvData=None, pcbData=None): + return RegGetValueW.ctypes_function(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegQueryValueExA(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData): + return RegQueryValueExA.ctypes_function(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegQueryValueExW(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData): + return RegQueryValueExW.ctypes_function(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegCloseKey(hKey): + return RegCloseKey.ctypes_function(hKey) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegSetValueExW(hKey, lpValueName, Reserved, dwType, lpData, cbData): + return RegSetValueExW.ctypes_function(hKey, lpValueName, Reserved, dwType, lpData, cbData) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegSetValueExA(hKey, lpValueName, Reserved, dwType, lpData, cbData): + return RegSetValueExA.ctypes_function(hKey, lpValueName, Reserved, dwType, lpData, cbData) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegSetKeyValueA(hKey, lpSubKey, lpValueName, dwType, lpData, cbData): + return RegSetKeyValueA.ctypes_function(hKey, lpSubKey, lpValueName, dwType, lpData, cbData) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegSetKeyValueW(hKey, lpSubKey, lpValueName, dwType, lpData, cbData): + return RegSetKeyValueW.ctypes_function(hKey, lpSubKey, lpValueName, dwType, lpData, cbData) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegEnumKeyExA(hKey, dwIndex, lpName, lpcchName, lpReserved, lpClass, lpcchClass, lpftLastWriteTime): + return RegEnumKeyExA.ctypes_function(hKey, dwIndex, lpName, lpcchName, lpReserved, lpClass, lpcchClass, lpftLastWriteTime) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegEnumKeyExW(hKey, dwIndex, lpName, lpcchName, lpReserved, lpClass, lpcchClass, lpftLastWriteTime): + return RegEnumKeyExW.ctypes_function(hKey, dwIndex, lpName, lpcchName, lpReserved, lpClass, lpcchClass, lpftLastWriteTime) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegGetKeySecurity(hKey, SecurityInformation, pSecurityDescriptor, lpcbSecurityDescriptor): + return RegGetKeySecurity.ctypes_function(hKey, SecurityInformation, pSecurityDescriptor, lpcbSecurityDescriptor) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegQueryInfoKeyA(hKey, lpClass, lpcchClass, lpReserved, lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime): + return RegQueryInfoKeyA.ctypes_function(hKey, lpClass, lpcchClass, lpReserved, lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegQueryInfoKeyW(hKey, lpClass, lpcchClass, lpReserved, lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime): + return RegQueryInfoKeyW.ctypes_function(hKey, lpClass, lpcchClass, lpReserved, lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegDeleteKeyValueW(hKey, lpSubKey, lpValueName): + return RegDeleteKeyValueW.ctypes_function(hKey, lpSubKey, lpValueName) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegDeleteKeyValueA(hKey, lpSubKey, lpValueName): + return RegDeleteKeyValueA.ctypes_function(hKey, lpSubKey, lpValueName) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegDeleteKeyExA(hKey, lpSubKey, samDesired, Reserved): + return RegDeleteKeyExA.ctypes_function(hKey, lpSubKey, samDesired, Reserved) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegDeleteKeyExW(hKey, lpSubKey, samDesired, Reserved): + return RegDeleteKeyExW.ctypes_function(hKey, lpSubKey, samDesired, Reserved) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegDeleteValueA(hKey, lpValueName): + return RegDeleteValueA.ctypes_function(hKey, lpValueName) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegDeleteValueW(hKey, lpValueName): + return RegDeleteValueW.ctypes_function(hKey, lpValueName) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegDeleteTreeA(hKey, lpSubKey): + return RegDeleteTreeA.ctypes_function(hKey, lpSubKey) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegDeleteTreeW(hKey, lpSubKey): + return RegDeleteTreeW.ctypes_function(hKey, lpSubKey) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegEnumValueA(hKey, dwIndex, lpValueName, lpcchValueName, lpReserved, lpType, lpData, lpcbData): + return RegEnumValueA.ctypes_function(hKey, dwIndex, lpValueName, lpcchValueName, lpReserved, lpType, lpData, lpcbData) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegEnumValueW(hKey, dwIndex, lpValueName, lpcchValueName, lpReserved, lpType, lpData, lpcbData): + return RegEnumValueW.ctypes_function(hKey, dwIndex, lpValueName, lpcchValueName, lpReserved, lpType, lpData, lpcbData) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegSaveKeyA(hKey, lpFile, lpSecurityAttributes): + return RegSaveKeyA.ctypes_function(hKey, lpFile, lpSecurityAttributes) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegSaveKeyW(hKey, lpFile, lpSecurityAttributes): + return RegSaveKeyW.ctypes_function(hKey, lpFile, lpSecurityAttributes) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegSaveKeyExA(hKey, lpFile, lpSecurityAttributes, Flags): + return RegSaveKeyExA.ctypes_function(hKey, lpFile, lpSecurityAttributes, Flags) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegSaveKeyExW(hKey, lpFile, lpSecurityAttributes, Flags): + return RegSaveKeyExW.ctypes_function(hKey, lpFile, lpSecurityAttributes, Flags) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegLoadKeyA(hKey, lpSubKey, lpFile): + return RegLoadKeyA.ctypes_function(hKey, lpSubKey, lpFile) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegLoadKeyW(hKey, lpSubKey, lpFile): + return RegLoadKeyW.ctypes_function(hKey, lpSubKey, lpFile) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegUnLoadKeyA(hKey, lpSubKey): + return RegUnLoadKeyA.ctypes_function(hKey, lpSubKey) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegUnLoadKeyW(hKey, lpSubKey): + return RegUnLoadKeyW.ctypes_function(hKey, lpSubKey) + +# Service + +@Advapi32Proxy() +def OpenSCManagerA(lpMachineName=None, lpDatabaseName=None, dwDesiredAccess=gdef.SC_MANAGER_ALL_ACCESS): + return OpenSCManagerA.ctypes_function(lpMachineName, lpDatabaseName, dwDesiredAccess) + +@Advapi32Proxy() +def OpenSCManagerW(lpMachineName=None, lpDatabaseName=None, dwDesiredAccess=gdef.SC_MANAGER_ALL_ACCESS): + return OpenSCManagerW.ctypes_function(lpMachineName, lpDatabaseName, dwDesiredAccess) + +@Advapi32Proxy() +def EnumServicesStatusExA(hSCManager, InfoLevel, dwServiceType, dwServiceState, lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned, lpResumeHandle, pszGroupName): + return EnumServicesStatusExA.ctypes_function(hSCManager, InfoLevel, dwServiceType, dwServiceState, lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned, lpResumeHandle, pszGroupName) + +@Advapi32Proxy() +def EnumServicesStatusExW(hSCManager, InfoLevel, dwServiceType, dwServiceState, lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned, lpResumeHandle, pszGroupName): + return EnumServicesStatusExW.ctypes_function(hSCManager, InfoLevel, dwServiceType, dwServiceState, lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned, lpResumeHandle, pszGroupName) + +@Advapi32Proxy() +def StartServiceA(hService, dwNumServiceArgs, lpServiceArgVectors): + return StartServiceA.ctypes_function(hService, dwNumServiceArgs, lpServiceArgVectors) + +@Advapi32Proxy() +def StartServiceW(hService, dwNumServiceArgs, lpServiceArgVectors): + return StartServiceW.ctypes_function(hService, dwNumServiceArgs, lpServiceArgVectors) + +@Advapi32Proxy() +def OpenServiceA(hSCManager, lpServiceName, dwDesiredAccess): + return OpenServiceA.ctypes_function(hSCManager, lpServiceName, dwDesiredAccess) + +@Advapi32Proxy() +def OpenServiceW(hSCManager, lpServiceName, dwDesiredAccess): + return OpenServiceW.ctypes_function(hSCManager, lpServiceName, dwDesiredAccess) + +@Advapi32Proxy() +def ControlService(hService, dwControl, lpServiceStatus): + return ControlService.ctypes_function(hService, dwControl, lpServiceStatus) + +@Advapi32Proxy() +def CloseServiceHandle(hSCObject): + return CloseServiceHandle.ctypes_function(hSCObject) + +@Advapi32Proxy() +def QueryServiceStatus(hService, lpServiceStatus): + return QueryServiceStatus.ctypes_function(hService, lpServiceStatus) + +@Advapi32Proxy() +def QueryServiceStatusEx(hService, InfoLevel, lpBuffer, cbBufSize, pcbBytesNeeded): + return QueryServiceStatusEx.ctypes_function(hService, InfoLevel, lpBuffer, cbBufSize, pcbBytesNeeded) + +@Advapi32Proxy() +def DeleteService(hService): + return DeleteService.ctypes_function(hService) + +@Advapi32Proxy() +def GetServiceDisplayNameA(hSCManager, lpServiceName, lpDisplayName, lpcchBuffer): + return GetServiceDisplayNameA.ctypes_function(hSCManager, lpServiceName, lpDisplayName, lpcchBuffer) + +@Advapi32Proxy() +def GetServiceDisplayNameW(hSCManager, lpServiceName, lpDisplayName, lpcchBuffer): + return GetServiceDisplayNameW.ctypes_function(hSCManager, lpServiceName, lpDisplayName, lpcchBuffer) + +# Event log + +@Advapi32Proxy() +def OpenEventLogA(lpUNCServerName=None, lpSourceName=NeededParameter): + return OpenEventLogA.ctypes_function(lpUNCServerName, lpSourceName) + +@Advapi32Proxy() +def OpenEventLogW(lpUNCServerName=None, lpSourceName=NeededParameter): + return OpenEventLogW.ctypes_function(lpUNCServerName, lpSourceName) + +@Advapi32Proxy() +def OpenBackupEventLogA(lpUNCServerName=None, lpSourceName=NeededParameter): + return OpenBackupEventLogA.ctypes_function(lpUNCServerName, lpSourceName) + +@Advapi32Proxy() +def OpenBackupEventLogW(lpUNCServerName=None, lpSourceName=NeededParameter): + return OpenBackupEventLogW.ctypes_function(lpUNCServerName, lpSourceName) + + +@Advapi32Proxy() +def ReadEventLogA(hEventLog, dwReadFlags, dwRecordOffset, lpBuffer, nNumberOfBytesToRead, pnBytesRead, pnMinNumberOfBytesNeeded): + return ReadEventLogA.ctypes_function(hEventLog, dwReadFlags, dwRecordOffset, lpBuffer, nNumberOfBytesToRead, pnBytesRead, pnMinNumberOfBytesNeeded) + +@Advapi32Proxy() +def ReadEventLogW(hEventLog, dwReadFlags, dwRecordOffset, lpBuffer, nNumberOfBytesToRead, pnBytesRead, pnMinNumberOfBytesNeeded): + return ReadEventLogW.ctypes_function(hEventLog, dwReadFlags, dwRecordOffset, lpBuffer, nNumberOfBytesToRead, pnBytesRead, pnMinNumberOfBytesNeeded) + +@Advapi32Proxy() +def GetEventLogInformation(hEventLog, dwInfoLevel, lpBuffer, cbBufSize, pcbBytesNeeded): + return GetEventLogInformation.ctypes_function(hEventLog, dwInfoLevel, lpBuffer, cbBufSize, pcbBytesNeeded) + +@Advapi32Proxy() +def GetNumberOfEventLogRecords(hEventLog, NumberOfRecords): + return GetNumberOfEventLogRecords.ctypes_function(hEventLog, NumberOfRecords) + +@Advapi32Proxy() +def CloseEventLog(hEventLog): + return CloseEventLog.ctypes_function(hEventLog) + + +# Crypto +## Crypto key + +@Advapi32Proxy() +def CryptGenKey(hProv, Algid, dwFlags, phKey): + return CryptGenKey.ctypes_function(hProv, Algid, dwFlags, phKey) + + +@Advapi32Proxy() +def CryptDestroyKey(hKey): + return CryptDestroyKey.ctypes_function(hKey) + +@Advapi32Proxy() +def CryptExportKey(hKey, hExpKey, dwBlobType, dwFlags, pbData, pdwDataLen): + return CryptExportKey.ctypes_function(hKey, hExpKey, dwBlobType, dwFlags, pbData, pdwDataLen) + +@Advapi32Proxy() +def CryptImportKey(hProv, pbData, dwDataLen, hPubKey, dwFlags, phKey): + return CryptImportKey.ctypes_function(hProv, pbData, dwDataLen, hPubKey, dwFlags, phKey) + +## crypt context + +@Advapi32Proxy() +def CryptAcquireContextA(phProv, pszContainer, pszProvider, dwProvType, dwFlags): + return CryptAcquireContextA.ctypes_function(phProv, pszContainer, pszProvider, dwProvType, dwFlags) + + +@Advapi32Proxy() +def CryptAcquireContextW(phProv, pszContainer, pszProvider, dwProvType, dwFlags): + return CryptAcquireContextW.ctypes_function(phProv, pszContainer, pszProvider, dwProvType, dwFlags) + + +@Advapi32Proxy() +def CryptReleaseContext(hProv, dwFlags): + return CryptReleaseContext.ctypes_function(hProv, dwFlags) + +## Encrypt / Decrypt + +@Advapi32Proxy() +def CryptEncrypt(hKey, hHash, Final, dwFlags, pbData, pdwDataLen, dwBufLen): + return CryptEncrypt.ctypes_function(hKey, hHash, Final, dwFlags, pbData, pdwDataLen, dwBufLen) + +@Advapi32Proxy() +def CryptDecrypt(hKey, hHash, Final, dwFlags, pbData, pdwDataLen): + return CryptDecrypt.ctypes_function(hKey, hHash, Final, dwFlags, pbData, pdwDataLen) + +## Crypt Key + +@Advapi32Proxy() +def CryptDeriveKey(hProv, Algid, hBaseData, dwFlags, phKey): + return CryptDeriveKey.ctypes_function(hProv, Algid, hBaseData, dwFlags, phKey) + +## Crypt hash + +@Advapi32Proxy() +def CryptCreateHash(hProv, Algid, hKey=None, dwFlags=0, phHash=NeededParameter): + return CryptCreateHash.ctypes_function(hProv, Algid, hKey, dwFlags, phHash) + +@Advapi32Proxy() +def CryptHashData(hHash, pbData, dwDataLen=None, dwFlags=0): + if isinstance(pbData, windows.pycompat.anybuff): + pbData = (gdef.BYTE * len(pbData))(*bytearray(pbData)) + if dwDataLen is None: + dwDataLen = len(pbData) + return CryptHashData.ctypes_function(hHash, pbData, dwDataLen, dwFlags) + +@Advapi32Proxy() +def CryptGetHashParam(hHash, dwParam, pbData, pdwDataLen=None, dwFlags=0): + if pdwDataLen is None: + pdwDataLen = ctypes.sizeof(pbData) + return CryptGetHashParam.ctypes_function(hHash, dwParam, pbData, pdwDataLen, dwFlags) + +@Advapi32Proxy() +def CryptVerifySignatureA(hHash, pbSignature, dwSigLen, hPubKey, szDescription, dwFlags): + return CryptVerifySignatureA.ctypes_function(hHash, pbSignature, dwSigLen, hPubKey, szDescription, dwFlags) + +@Advapi32Proxy() +def CryptVerifySignatureW(hHash, pbSignature, dwSigLen, hPubKey, szDescription, dwFlags): + return CryptVerifySignatureW.ctypes_function(hHash, pbSignature, dwSigLen, hPubKey, szDescription, dwFlags) + +@Advapi32Proxy() +def CryptSignHashA(hHash, dwKeySpec, szDescription, dwFlags, pbSignature, pdwSigLen): + return CryptSignHashA.ctypes_function(hHash, dwKeySpec, szDescription, dwFlags, pbSignature, pdwSigLen) + +@Advapi32Proxy() +def CryptSignHashW(hHash, dwKeySpec, szDescription, dwFlags, pbSignature, pdwSigLen): + return CryptSignHashW.ctypes_function(hHash, dwKeySpec, szDescription, dwFlags, pbSignature, pdwSigLen) + +@Advapi32Proxy() +def CryptDestroyHash(hHash): + return CryptDestroyHash.ctypes_function(hHash) + + +## Event Tracing +@Advapi32Proxy(error_check=succeed_on_zero) +def EnumerateTraceGuidsEx(TraceQueryInfoClass, InBuffer, InBufferSize, OutBuffer, OutBufferSize, ReturnLength): + if isinstance(InBuffer, gdef.GUID): + # GUID is not convertible to a pointer directly + # But we want to use it as an array for this function + # Test/Assert on InBufferSize? + InBuffer = ctypes.cast(ctypes.pointer(InBuffer), gdef.PVOID) # Caller keep a ref + return EnumerateTraceGuidsEx.ctypes_function(TraceQueryInfoClass, InBuffer, InBufferSize, OutBuffer, OutBufferSize, ReturnLength) + +@Advapi32Proxy(error_check=result_is_error_code) +def QueryAllTracesA(PropertyArray, PropertyArrayCount, SessionCount): + return QueryAllTracesA.ctypes_function(PropertyArray, PropertyArrayCount, SessionCount) + + +@Advapi32Proxy(error_check=result_is_error_code) +def QueryAllTracesW(PropertyArray, PropertyArrayCount, SessionCount): + return QueryAllTracesW.ctypes_function(PropertyArray, PropertyArrayCount, SessionCount) + + +@Advapi32Proxy(error_check=result_is_handle) +def OpenTraceA(Logfile): + return OpenTraceA.ctypes_function(Logfile) + +@Advapi32Proxy(error_check=result_is_handle) +def OpenTraceW(Logfile): + return OpenTraceW.ctypes_function(Logfile) + + +@Advapi32Proxy(error_check=result_is_error_code) +def StartTraceA(TraceHandle, InstanceName, Properties): + return StartTraceA.ctypes_function(TraceHandle, InstanceName, Properties) + +@Advapi32Proxy(error_check=result_is_error_code) +def StartTraceW(TraceHandle, InstanceName, Properties): + return StartTraceW.ctypes_function(TraceHandle, InstanceName, Properties) + +@Advapi32Proxy(error_check=result_is_error_code) +def StopTraceA(TraceHandle, InstanceName, Properties): + return StopTraceA.ctypes_function(TraceHandle, InstanceName, Properties) + +@Advapi32Proxy(error_check=result_is_error_code) +def StopTraceW(TraceHandle, InstanceName, Properties): + return StopTraceW.ctypes_function(TraceHandle, InstanceName, Properties) + +@Advapi32Proxy(error_check=result_is_error_code) +def ControlTraceA(TraceHandle, InstanceName, Properties, ControlCode): + return ControlTraceA.ctypes_function(TraceHandle, InstanceName, Properties, ControlCode) + +@Advapi32Proxy(error_check=result_is_error_code) +def ControlTraceW(TraceHandle, InstanceName, Properties, ControlCode): + return ControlTraceW.ctypes_function(TraceHandle, InstanceName, Properties, ControlCode) + +@Advapi32Proxy(error_check=result_is_error_code) +def ProcessTrace(HandleArray, HandleCount, StartTime, EndTime): + return ProcessTrace.ctypes_function(HandleArray, HandleCount, StartTime, EndTime) + +@Advapi32Proxy(error_check=result_is_error_code) +def EnableTrace(Enable, EnableFlag, EnableLevel, ControlGuid, SessionHandle): + return EnableTrace.ctypes_function(Enable, EnableFlag, EnableLevel, ControlGuid, SessionHandle) + +@Advapi32Proxy(error_check=result_is_error_code) +def EnableTraceEx(ProviderId, SourceId, TraceHandle, IsEnabled, Level, MatchAnyKeyword, MatchAllKeyword, EnableProperty, EnableFilterDesc): + return EnableTraceEx.ctypes_function(ProviderId, SourceId, TraceHandle, IsEnabled, Level, MatchAnyKeyword, MatchAllKeyword, EnableProperty, EnableFilterDesc) + +@Advapi32Proxy(error_check=result_is_error_code) +def EnableTraceEx2(TraceHandle, ProviderId, ControlCode, Level, MatchAnyKeyword, MatchAllKeyword, Timeout, EnableParameters): + return EnableTraceEx2.ctypes_function(TraceHandle, ProviderId, ControlCode, Level, MatchAnyKeyword, MatchAllKeyword, Timeout, EnableParameters) + +@Advapi32Proxy(error_check=result_is_error_code) +def TraceQueryInformation(SessionHandle, InformationClass, TraceInformation, InformationLength, ReturnLength): + return TraceQueryInformation.ctypes_function(SessionHandle, InformationClass, TraceInformation, InformationLength, ReturnLength) + +@Advapi32Proxy(error_check=result_is_error_code) +def TraceSetInformation(SessionHandle, InformationClass, TraceInformation, InformationLength): + return TraceSetInformation.ctypes_function(SessionHandle, InformationClass, TraceInformation, InformationLength) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegisterTraceGuidsW(RequestAddress, RequestContext, ControlGuid, GuidCount, TraceGuidReg, MofImagePath, MofResourceName, RegistrationHandle): + return RegisterTraceGuidsW.ctypes_function(RequestAddress, RequestContext, ControlGuid, GuidCount, TraceGuidReg, MofImagePath, MofResourceName, RegistrationHandle) + +@Advapi32Proxy(error_check=result_is_error_code) +def RegisterTraceGuidsA(RequestAddress, RequestContext, ControlGuid, GuidCount, TraceGuidReg, MofImagePath, MofResourceName, RegistrationHandle): + return RegisterTraceGuidsA.ctypes_function(RequestAddress, RequestContext, ControlGuid, GuidCount, TraceGuidReg, MofImagePath, MofResourceName, RegistrationHandle) + +@Advapi32Proxy(error_check=result_is_error_code) +def TraceEvent(SessionHandle, EventTrace): + return TraceEvent.ctypes_function(SessionHandle, EventTrace) + +@Advapi32Proxy(error_check=result_is_handle) +def GetTraceLoggerHandle(Buffer): + return GetTraceLoggerHandle.ctypes_function(Buffer) + + +# Lsa APIs +@Advapi32Proxy(error_check=result_is_ntstatus) +def LsaOpenPolicy(SystemName=None, ObjectAttributes=None, DesiredAccess=NeededParameter, PolicyHandle=NeededParameter): + if ObjectAttributes is None: + ObjectAttributes = gdef.LSA_OBJECT_ATTRIBUTES() + return LsaOpenPolicy.ctypes_function(SystemName, ObjectAttributes, DesiredAccess, PolicyHandle) + +@Advapi32Proxy(error_check=result_is_ntstatus) +def LsaQueryInformationPolicy(PolicyHandle, InformationClass, Buffer): + return LsaQueryInformationPolicy.ctypes_function(PolicyHandle, InformationClass, Buffer) + +@Advapi32Proxy(error_check=result_is_ntstatus) +def LsaClose(ObjectHandle): + return LsaClose.ctypes_function(ObjectHandle) + +@Advapi32Proxy(error_check=result_is_ntstatus) +def LsaNtStatusToWinError(Status): + return LsaNtStatusToWinError.ctypes_function(Status) + +@Advapi32Proxy(error_check=result_is_ntstatus) +def LsaLookupNames(PolicyHandle, Count, Names, ReferencedDomains, Sids): + return LsaLookupNames.ctypes_function(PolicyHandle, Count, Names, ReferencedDomains, Sids) + +@Advapi32Proxy(error_check=result_is_ntstatus) +def LsaLookupNames2(PolicyHandle, Flags, Count, Names, ReferencedDomains, Sids): + return LsaLookupNames2.ctypes_function(PolicyHandle, Flags, Count, Names, ReferencedDomains, Sids) + +@Advapi32Proxy(error_check=result_is_ntstatus) +def LsaLookupSids(PolicyHandle, Count, Sids, ReferencedDomains, Names): + return LsaLookupSids.ctypes_function(PolicyHandle, Count, Sids, ReferencedDomains, Names) + +@Advapi32Proxy(error_check=result_is_ntstatus) +def LsaLookupSids2(PolicyHandle, LookupOptions, Count, Sids, ReferencedDomains, Names): + return LsaLookupSids2.ctypes_function(PolicyHandle, LookupOptions, Count, Sids, ReferencedDomains, Names) + diff --git a/pythonmemorymodule/windows/winproxy/apis/cfgmgr32.py b/pythonmemorymodule/windows/winproxy/apis/cfgmgr32.py new file mode 100644 index 0000000..61c2f75 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/cfgmgr32.py @@ -0,0 +1,142 @@ +import ctypes +from ctypes import wintypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter, is_implemented +from ..error import WinproxyError, result_is_error_code + +CFGMGR32_ERRORS = gdef.FlagMapper( + gdef.CR_SUCCESS, + gdef.CR_DEFAULT, + gdef.CR_OUT_OF_MEMORY, + gdef.CR_INVALID_POINTER, + gdef.CR_INVALID_FLAG, + gdef.CR_INVALID_DEVNODE, + gdef.CR_INVALID_DEVINST, + gdef.CR_INVALID_RES_DES, + gdef.CR_INVALID_LOG_CONF, + gdef.CR_INVALID_ARBITRATOR, + gdef.CR_INVALID_NODELIST, + gdef.CR_DEVNODE_HAS_REQS, + gdef.CR_DEVINST_HAS_REQS, + gdef.CR_INVALID_RESOURCEID, + gdef.CR_DLVXD_NOT_FOUND, + gdef.CR_NO_SUCH_DEVNODE, + gdef.CR_NO_SUCH_DEVINST, + gdef.CR_NO_MORE_LOG_CONF, + gdef.CR_NO_MORE_RES_DES, + gdef.CR_ALREADY_SUCH_DEVNODE, + gdef.CR_ALREADY_SUCH_DEVINST, + gdef.CR_INVALID_RANGE_LIST, + gdef.CR_INVALID_RANGE, + gdef.CR_FAILURE, + gdef.CR_NO_SUCH_LOGICAL_DEV, + gdef.CR_CREATE_BLOCKED, + gdef.CR_NOT_SYSTEM_VM, + gdef.CR_REMOVE_VETOED, + gdef.CR_APM_VETOED, + gdef.CR_INVALID_LOAD_TYPE, + gdef.CR_BUFFER_SMALL, + gdef.CR_NO_ARBITRATOR, + gdef.CR_NO_REGISTRY_HANDLE, + gdef.CR_REGISTRY_ERROR, + gdef.CR_INVALID_DEVICE_ID, + gdef.CR_INVALID_DATA, + gdef.CR_INVALID_API, + gdef.CR_DEVLOADER_NOT_READY, + gdef.CR_NEED_RESTART, + gdef.CR_NO_MORE_HW_PROFILES, + gdef.CR_DEVICE_NOT_THERE, + gdef.CR_NO_SUCH_VALUE, + gdef.CR_WRONG_TYPE, + gdef.CR_INVALID_PRIORITY, + gdef.CR_NOT_DISABLEABLE, + gdef.CR_FREE_RESOURCES, + gdef.CR_QUERY_VETOED, + gdef.CR_CANT_SHARE_IRQ, + gdef.CR_NO_DEPENDENT, + gdef.CR_SAME_RESOURCES, + gdef.CR_NO_SUCH_REGISTRY_KEY, + gdef.CR_INVALID_MACHINENAME, + gdef.CR_REMOTE_COMM_FAILURE, + gdef.CR_MACHINE_UNAVAILABLE, + gdef.CR_NO_CM_SERVICES, + gdef.CR_ACCESS_DENIED, + gdef.CR_CALL_NOT_IMPLEMENTED, + gdef.CR_INVALID_PROPERTY, + gdef.CR_DEVICE_INTERFACE_ACTIVE, + gdef.CR_NO_SUCH_DEVICE_INTERFACE, + gdef.CR_INVALID_REFERENCE_STRING, + gdef.CR_INVALID_CONFLICT_LIST, + gdef.CR_INVALID_INDEX, + gdef.CR_INVALID_STRUCTURE_SIZE +) + + + +class CfgMgr32Error(WinproxyError): + def __new__(cls, func_name, error_code): + error_flag = CFGMGR32_ERRORS[error_code] + api_error = super(WinproxyError, cls).__new__(cls) + api_error.api_name = func_name + api_error.winerror = error_flag + api_error.strerror = error_flag.name + api_error.args = (func_name, api_error.winerror, api_error.strerror) + return api_error + +def tst_error(func_name, result, func, args): + if result: + raise CfgMgr32Error(func_name, result) + return args + +class CfgMgr32Proxy(ApiProxy): + APIDLL = "CfgMgr32" + # We can make a custom error_check taht translate error code to CR_ flags if needed + default_error_check = staticmethod(tst_error) + + + +@CfgMgr32Proxy() +def CM_Enumerate_Classes(ulClassIndex, ClassGuid, ulFlags): + return CM_Enumerate_Classes.ctypes_function(ulClassIndex, ClassGuid, ulFlags) + + +@CfgMgr32Proxy() +def CM_Get_First_Log_Conf(plcLogConf, dnDevInst, ulFlags): + return CM_Get_First_Log_Conf.ctypes_function(plcLogConf, dnDevInst, ulFlags) + +@CfgMgr32Proxy() +def CM_Get_First_Log_Conf_Ex(plcLogConf, dnDevInst, ulFlags, hMachine): + return CM_Get_First_Log_Conf_Ex.ctypes_function(plcLogConf, dnDevInst, ulFlags, hMachine) + +@CfgMgr32Proxy() +def CM_Get_Next_Log_Conf(plcLogConf, lcLogConf, ulFlags=0): + return CM_Get_Next_Log_Conf.ctypes_function(plcLogConf, lcLogConf, ulFlags) + +@CfgMgr32Proxy() +def CM_Get_Next_Log_Conf_Ex(plcLogConf, lcLogConf, ulFlags, hMachine): + return CM_Get_Next_Log_Conf_Ex.ctypes_function(plcLogConf, lcLogConf, ulFlags, hMachine) + + +@CfgMgr32Proxy() +def CM_Free_Res_Des_Handle(hRes): + return CM_Free_Res_Des_Handle.ctypes_function(hRes) + +@CfgMgr32Proxy() +def CM_Get_Next_Res_Des(prdResDes, rdResDes, ForResource, pResourceID, ulFlags=0): + return CM_Get_Next_Res_Des.ctypes_function(prdResDes, rdResDes, ForResource, pResourceID, ulFlags) + + +@CfgMgr32Proxy() +def CM_Get_Res_Des_Data_Size(pulSize, rdResDes, ulFlags=0): + return CM_Get_Res_Des_Data_Size.ctypes_function(pulSize, rdResDes, ulFlags) + + +@CfgMgr32Proxy() +def CM_Get_Res_Des_Data(rdResDes, Buffer, BufferLen, ulFlags=0): + return CM_Get_Res_Des_Data.ctypes_function(rdResDes, Buffer, BufferLen, ulFlags) + + +@CfgMgr32Proxy() +def CM_Get_Parent(pdnDevInst, dnDevInst, ulFlags=0): + return CM_Get_Parent.ctypes_function(pdnDevInst, dnDevInst, ulFlags) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winproxy/apis/crypt32.py b/pythonmemorymodule/windows/winproxy/apis/crypt32.py new file mode 100644 index 0000000..8179fc2 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/crypt32.py @@ -0,0 +1,241 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import no_error_check, fail_on_zero + +import windows.pycompat +from windows.pycompat import int_types + +class Crypt32Proxy(ApiProxy): + APIDLL = "crypt32" + default_error_check = staticmethod(fail_on_zero) + +# Certificate + +@Crypt32Proxy() +def CertStrToNameA(dwCertEncodingType, pszX500, dwStrType, pvReserved, pbEncoded, pcbEncoded, ppszError): + return CertStrToNameA.ctypes_function(dwCertEncodingType, pszX500, dwStrType, pvReserved, pbEncoded, pcbEncoded, ppszError) + + +@Crypt32Proxy() +def CertStrToNameW(dwCertEncodingType, pszX500, dwStrType, pvReserved, pbEncoded, pcbEncoded, ppszError): + return CertStrToNameW.ctypes_function(dwCertEncodingType, pszX500, dwStrType, pvReserved, pbEncoded, pcbEncoded, ppszError) + +@Crypt32Proxy() +def CertGetNameStringA(pCertContext, dwType, dwFlags, pvTypePara, pszNameString, cchNameString): + return CertGetNameStringA.ctypes_function(pCertContext, dwType, dwFlags, pvTypePara, pszNameString, cchNameString) + + +@Crypt32Proxy() +def CertGetNameStringW(pCertContext, dwType, dwFlags, pvTypePara, pszNameString, cchNameString): + return CertGetNameStringW.ctypes_function(pCertContext, dwType, dwFlags, pvTypePara, pszNameString, cchNameString) + +@Crypt32Proxy() +def CertCreateSelfSignCertificate(hCryptProvOrNCryptKey, pSubjectIssuerBlob, dwFlags, pKeyProvInfo, pSignatureAlgorithm, pStartTime, pEndTime, pExtensions): + return CertCreateSelfSignCertificate.ctypes_function(hCryptProvOrNCryptKey, pSubjectIssuerBlob, dwFlags, pKeyProvInfo, pSignatureAlgorithm, pStartTime, pEndTime, pExtensions) + +@Crypt32Proxy() +def CertGetCertificateContextProperty(pCertContext, dwPropId, pvData, pcbData): + return CertGetCertificateContextProperty.ctypes_function(pCertContext, dwPropId, pvData, pcbData) + +@Crypt32Proxy(error_check=no_error_check) +def CertEnumCertificateContextProperties(pCertContext, dwPropId): + return CertEnumCertificateContextProperties.ctypes_function(pCertContext, dwPropId) + +@Crypt32Proxy() +def CertCreateCertificateContext(dwCertEncodingType, pbCertEncoded, cbCertEncoded): + return CertCreateCertificateContext.ctypes_function(dwCertEncodingType, pbCertEncoded, cbCertEncoded) + + +## Certificate chain + +@Crypt32Proxy() +def CertGetCertificateChain(hChainEngine, pCertContext, pTime, hAdditionalStore, pChainPara, dwFlags, pvReserved, ppChainContext): + return CertGetCertificateChain.ctypes_function(hChainEngine, pCertContext, pTime, hAdditionalStore, pChainPara, dwFlags, pvReserved, ppChainContext) + +@Crypt32Proxy() +def CertDuplicateCertificateContext(pCertContext): + return CertDuplicateCertificateContext.ctypes_function(pCertContext) + +@Crypt32Proxy() +def CertFreeCertificateContext(pCertContext): + return CertFreeCertificateContext.ctypes_function(pCertContext) + +@Crypt32Proxy(error_check=no_error_check) +def CertCompareCertificate(dwCertEncodingType, pCertId1, pCertId2): + """This function does not raise is compare has failed: + return 0 if cert are NOT equals + """ + return CertCompareCertificate.ctypes_function(dwCertEncodingType, pCertId1, pCertId2) + +@Crypt32Proxy() +def CryptHashCertificate(hCryptProv, Algid, dwFlags, pbEncoded, cbEncoded, pbComputedHash, pcbComputedHash): + return CryptHashCertificate.ctypes_function(hCryptProv, Algid, dwFlags, pbEncoded, cbEncoded, pbComputedHash, pcbComputedHash) + +## Certificate store + +@Crypt32Proxy() +def CertOpenStore(lpszStoreProvider, dwMsgAndCertEncodingType, hCryptProv, dwFlags, pvPara): + if isinstance(lpszStoreProvider, int_types): + lpszStoreProvider = gdef.LPCSTR(lpszStoreProvider) + return CertOpenStore.ctypes_function(lpszStoreProvider, dwMsgAndCertEncodingType, hCryptProv, dwFlags, pvPara) + +@Crypt32Proxy() +def CertAddCertificateContextToStore(hCertStore, pCertContext, dwAddDisposition, ppStoreContext): + return CertAddCertificateContextToStore.ctypes_function(hCertStore, pCertContext, dwAddDisposition, ppStoreContext) + +@Crypt32Proxy() +def CertFindCertificateInStore(hCertStore, dwCertEncodingType, dwFindFlags, dwFindType, pvFindPara, pPrevCertContext): + return CertFindCertificateInStore.ctypes_function(hCertStore, dwCertEncodingType, dwFindFlags, dwFindType, pvFindPara, pPrevCertContext) + +@Crypt32Proxy() +def CertEnumCertificatesInStore(hCertStore, pPrevCertContext): + return CertEnumCertificatesInStore.ctypes_function(hCertStore, pPrevCertContext) + +@Crypt32Proxy() +def PFXExportCertStoreEx(hStore, pPFX, szPassword, pvPara, dwFlags): + return PFXExportCertStoreEx.ctypes_function(hStore, pPFX, szPassword, pvPara, dwFlags) + +@Crypt32Proxy() +def PFXImportCertStore(pPFX, szPassword, dwFlags): + return PFXImportCertStore.ctypes_function(pPFX, szPassword, dwFlags) + +@Crypt32Proxy() +def CertEnumCTLsInStore(hCertStore, pPrevCtlContext): + return CertEnumCTLsInStore.ctypes_function(hCertStore, pPrevCtlContext) + +@Crypt32Proxy() +def CertCloseStore(hCertStore, dwFlags): + return CertCloseStore.ctypes_function(hCertStore, dwFlags) + + +# Key + +@Crypt32Proxy() +def CryptAcquireCertificatePrivateKey(pCert, dwFlags, pvParameters, phCryptProvOrNCryptKey, pdwKeySpec, pfCallerFreeProvOrNCryptKey): + return CryptAcquireCertificatePrivateKey.ctypes_function(pCert, dwFlags, pvParameters, phCryptProvOrNCryptKey, pdwKeySpec, pfCallerFreeProvOrNCryptKey) + + + +# Encrypt / Decrypt + +@Crypt32Proxy() +def CryptEncryptMessage(pEncryptPara, cRecipientCert, rgpRecipientCert, pbToBeEncrypted, cbToBeEncrypted, pbEncryptedBlob, pcbEncryptedBlob): + if isinstance(pbToBeEncrypted, windows.pycompat.anybuff): + # Transform string to array of byte + pbToBeEncrypted = (gdef.BYTE * len(pbToBeEncrypted))(*bytearray(pbToBeEncrypted)) + if cbToBeEncrypted is None and pbToBeEncrypted is not None: + cbToBeEncrypted = len(pbToBeEncrypted) + return CryptEncryptMessage.ctypes_function(pEncryptPara, cRecipientCert, rgpRecipientCert, pbToBeEncrypted, cbToBeEncrypted, pbEncryptedBlob, pcbEncryptedBlob) + +@Crypt32Proxy() +def CryptDecryptMessage(pDecryptPara, pbEncryptedBlob, cbEncryptedBlob, pbDecrypted, pcbDecrypted, ppXchgCert): + return CryptDecryptMessage.ctypes_function(pDecryptPara, pbEncryptedBlob, cbEncryptedBlob, pbDecrypted, pcbDecrypted, ppXchgCert) + + + + +# Sign / Verify + +@Crypt32Proxy() +def CryptSignMessage(pSignPara, fDetachedSignature, cToBeSigned, rgpbToBeSigned, rgcbToBeSigned, pbSignedBlob, pcbSignedBlob): + return CryptSignMessage.ctypes_function(pSignPara, fDetachedSignature, cToBeSigned, rgpbToBeSigned, rgcbToBeSigned, pbSignedBlob, pcbSignedBlob) + + +@Crypt32Proxy() +def CryptSignAndEncryptMessage(pSignPara, pEncryptPara, cRecipientCert, rgpRecipientCert, pbToBeSignedAndEncrypted, cbToBeSignedAndEncrypted, pbSignedAndEncryptedBlob, pcbSignedAndEncryptedBlob): + return CryptSignAndEncryptMessage.ctypes_function(pSignPara, pEncryptPara, cRecipientCert, rgpRecipientCert, pbToBeSignedAndEncrypted, cbToBeSignedAndEncrypted, pbSignedAndEncryptedBlob, pcbSignedAndEncryptedBlob) + + +@Crypt32Proxy() +def CryptVerifyMessageSignature(pVerifyPara, dwSignerIndex, pbSignedBlob, cbSignedBlob, pbDecoded, pcbDecoded, ppSignerCert): + return CryptVerifyMessageSignature.ctypes_function(pVerifyPara, dwSignerIndex, pbSignedBlob, cbSignedBlob, pbDecoded, pcbDecoded, ppSignerCert) + + +@Crypt32Proxy() +def CryptVerifyMessageSignatureWithKey(pVerifyPara, pPublicKeyInfo, pbSignedBlob, cbSignedBlob, pbDecoded, pcbDecoded): + return CryptVerifyMessageSignatureWithKey.ctypes_function(pVerifyPara, pPublicKeyInfo, pbSignedBlob, cbSignedBlob, pbDecoded, pcbDecoded) + + +@Crypt32Proxy() +def CryptVerifyMessageHash(pHashPara, pbHashedBlob, cbHashedBlob, pbToBeHashed, pcbToBeHashed, pbComputedHash, pcbComputedHash): + return CryptVerifyMessageHash.ctypes_function(pHashPara, pbHashedBlob, cbHashedBlob, pbToBeHashed, pcbToBeHashed, pbComputedHash, pcbComputedHash) + + +# Crypt-object + +@Crypt32Proxy() +def CryptEncodeObjectEx(dwCertEncodingType, lpszStructType, pvStructInfo, dwFlags, pEncodePara, pvEncoded, pcbEncoded): + lpszStructType = gdef.LPCSTR(lpszStructType) if isinstance(lpszStructType, int_types) else lpszStructType + return CryptEncodeObjectEx.ctypes_function(dwCertEncodingType, lpszStructType, pvStructInfo, dwFlags, pEncodePara, pvEncoded, pcbEncoded) + +@Crypt32Proxy() +def CryptQueryObject(dwObjectType, pvObject, dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags, dwFlags, pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType, phCertStore, phMsg, ppvContext): + return CryptQueryObject.ctypes_function(dwObjectType, pvObject, dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags, dwFlags, pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType, phCertStore, phMsg, ppvContext) + +@Crypt32Proxy() +def CryptDecodeObject(dwCertEncodingType, lpszStructType, pbEncoded, cbEncoded, dwFlags, pvStructInfo, pcbStructInfo): + return CryptDecodeObject.ctypes_function(dwCertEncodingType, lpszStructType, pbEncoded, cbEncoded, dwFlags, pvStructInfo, pcbStructInfo) + +@Crypt32Proxy() +def CryptMsgGetParam(hCryptMsg, dwParamType, dwIndex, pvData, pcbData): + return CryptMsgGetParam.ctypes_function(hCryptMsg, dwParamType, dwIndex, pvData, pcbData) + +@Crypt32Proxy() +def CryptMsgOpenToEncode(dwMsgEncodingType, dwFlags, dwMsgType, pvMsgEncodeInfo, pszInnerContentObjID, pStreamInfo): + return CryptMsgOpenToEncode.ctypes_function(dwMsgEncodingType, dwFlags, dwMsgType, pvMsgEncodeInfo, pszInnerContentObjID, pStreamInfo) + +@Crypt32Proxy() +def CryptMsgOpenToDecode(dwMsgEncodingType, dwFlags, dwMsgType, hCryptProv, pRecipientInfo, pStreamInfo): + return CryptMsgOpenToDecode.ctypes_function(dwMsgEncodingType, dwFlags, dwMsgType, hCryptProv, pRecipientInfo, pStreamInfo) + +@Crypt32Proxy() +def CryptMsgUpdate(hCryptMsg, pbData, cbData, fFinal): + return CryptMsgUpdate.ctypes_function(hCryptMsg, pbData, cbData, fFinal) + +@Crypt32Proxy() +def CryptMsgControl(hCryptMsg, dwFlags, dwCtrlType, pvCtrlPara): + return CryptMsgControl.ctypes_function(hCryptMsg, dwFlags, dwCtrlType, pvCtrlPara) + + +@Crypt32Proxy() +def CryptMsgVerifyCountersignatureEncoded(hCryptProv, dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature, cbSignerInfoCountersignature, pciCountersigner): + return CryptMsgVerifyCountersignatureEncoded.ctypes_function(hCryptProv, dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature, cbSignerInfoCountersignature, pciCountersigner) + +@Crypt32Proxy() +def CryptMsgVerifyCountersignatureEncodedEx(hCryptProv, dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature, cbSignerInfoCountersignature, dwSignerType, pvSigner, dwFlags, pvExtra): + return CryptMsgVerifyCountersignatureEncodedEx.ctypes_function(hCryptProv, dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature, cbSignerInfoCountersignature, dwSignerType, pvSigner, dwFlags, pvExtra) + + +@Crypt32Proxy() +def CryptMsgClose(hCryptMsg): + return CryptMsgClose.ctypes_function(hCryptMsg) + +@Crypt32Proxy() +def CryptEnumOIDFunction(dwEncodingType, pszFuncName, pszOID, dwFlags, pvArg, pfnEnumOIDFunc): + return CryptEnumOIDFunction.ctypes_function(dwEncodingType, pszFuncName, pszOID, dwFlags, pvArg, pfnEnumOIDFunc) + +@Crypt32Proxy() +def CryptGetOIDFunctionValue(dwEncodingType, pszFuncName, pszOID, pwszValueName, pdwValueType, pbValueData, pcbValueData): + return Cry + ptGetOIDFunctionValue.ctypes_function(dwEncodingType, pszFuncName, pszOID, pwszValueName, pdwValueType, pbValueData, pcbValueData) + + +# DPAPI + +@Crypt32Proxy() +def CryptProtectData(pDataIn, szDataDescr=None, pOptionalEntropy=None, pvReserved=None, pPromptStruct=None, dwFlags=0, pDataOut=NeededParameter): + return CryptProtectData.ctypes_function(pDataIn, szDataDescr, pOptionalEntropy, pvReserved, pPromptStruct, dwFlags, pDataOut) + +@Crypt32Proxy() +def CryptUnprotectData(pDataIn, ppszDataDescr=None, pOptionalEntropy=None, pvReserved=None, pPromptStruct=None, dwFlags=0, pDataOut=NeededParameter): + return CryptUnprotectData.ctypes_function(pDataIn, ppszDataDescr, pOptionalEntropy, pvReserved, pPromptStruct, dwFlags, pDataOut) + +@Crypt32Proxy() +def CryptProtectMemory(pDataIn, cbDataIn, dwFlags): + return CryptProtectMemory.ctypes_function(pDataIn, cbDataIn, dwFlags) + +@Crypt32Proxy() +def CryptUnprotectMemory(pDataIn, cbDataIn, dwFlags): + return CryptUnprotectMemory.ctypes_function(pDataIn, cbDataIn, dwFlags) diff --git a/pythonmemorymodule/windows/winproxy/apis/cryptui.py b/pythonmemorymodule/windows/winproxy/apis/cryptui.py new file mode 100644 index 0000000..38fa9b2 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/cryptui.py @@ -0,0 +1,14 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import fail_on_zero + +class CryptUIProxy(ApiProxy): + APIDLL = "cryptui" + default_error_check = staticmethod(fail_on_zero) + + +@CryptUIProxy() +def CryptUIDlgViewContext(dwContextType, pvContext, hwnd, pwszTitle, dwFlags, pvReserved): + return CryptUIDlgViewContext.ctypes_function(dwContextType, pvContext, hwnd, pwszTitle, dwFlags, pvReserved) diff --git a/pythonmemorymodule/windows/winproxy/apis/dbghelp.py b/pythonmemorymodule/windows/winproxy/apis/dbghelp.py new file mode 100644 index 0000000..808dceb --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/dbghelp.py @@ -0,0 +1,193 @@ +import ctypes +import windows.generated_def as gdef +from windows.pycompat import int_types + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import fail_on_zero + +class DbgHelpProxy(ApiProxy): + APIDLL = "dbghelp" + default_error_check = staticmethod(fail_on_zero) + +# We keep the simple definition where callback UserContext are PVOID +# Be we want to be able to pass arbitrary python object (list/dict) +# So ctypes magic to make the py_object->pvoid transformation +# !! this code loose a ref to obj. +# Should still work as our calling-caller method keep a ref +def transform_pyobject_to_pvoid(obj): + if obj is None or isinstance(obj, int_types): + return obj + return ctypes.POINTER(gdef.PVOID)(ctypes.py_object(obj))[0] + +@DbgHelpProxy() +def SymInitialize(hProcess, UserSearchPath, fInvadeProcess): + return SymInitialize.ctypes_function(hProcess, UserSearchPath, fInvadeProcess) + +@DbgHelpProxy() +def SymCleanup(hProcess): + return SymCleanup.ctypes_function(hProcess) + +@DbgHelpProxy() +def SymLoadModuleExA(hProcess, hFile, ImageName, ModuleName, BaseOfDll, DllSize, Data, Flags): + return SymLoadModuleExA.ctypes_function(hProcess, hFile, ImageName, ModuleName, BaseOfDll, DllSize, Data, Flags) + +@DbgHelpProxy() +def SymLoadModuleExW(hProcess, hFile, ImageName, ModuleName, BaseOfDll, DllSize, Data, Flags): + return SymLoadModuleExW.ctypes_function(hProcess, hFile, ImageName, ModuleName, BaseOfDll, DllSize, Data, Flags) + +@DbgHelpProxy() +def SymUnloadModule64(hProcess, BaseOfDll): + return SymUnloadModule64.ctypes_function(hProcess, BaseOfDll) + +@DbgHelpProxy() +def SymFromAddr(hProcess, Address, Displacement, Symbol): + return SymFromAddr.ctypes_function(hProcess, Address, Displacement, Symbol) + +@DbgHelpProxy() +def SymGetModuleInfo64(hProcess, dwAddr, ModuleInfo): + return SymGetModuleInfo64.ctypes_function(hProcess, dwAddr, ModuleInfo) + +@DbgHelpProxy() +def SymFromName(hProcess, Name, Symbol): + return SymFromName.ctypes_function(hProcess, Name, Symbol) + +@DbgHelpProxy() +def SymLoadModuleEx(hProcess, hFile, ImageName, ModuleName, BaseOfDll, DllSize, Data, Flags): + return SymLoadModuleEx.ctypes_function(hProcess, hFile, ImageName, ModuleName, BaseOfDll, DllSize, Data, Flags) + +@DbgHelpProxy(error_check=None) +def SymSetOptions(SymOptions): + return SymSetOptions.ctypes_function(SymOptions) + +@DbgHelpProxy(error_check=None) +def SymGetOptions(): + return SymGetOptions.ctypes_function() + +@DbgHelpProxy() +def SymGetSearchPath(hProcess, SearchPath, SearchPathLength=None): + if SearchPath and SearchPathLength is None: + SearchPathLength = len(SearchPath) + return SymGetSearchPath.ctypes_function(hProcess, SearchPath, SearchPathLength) + +@DbgHelpProxy() +def SymGetSearchPathW(hProcess, SearchPath, SearchPathLength=None): + if SearchPath and SearchPathLength is None: + SearchPathLength = len(SearchPath) + return SymGetSearchPathW.ctypes_function(hProcess, SearchPath, SearchPathLength) + +@DbgHelpProxy() +def SymSetSearchPath(hProcess, SearchPath): + return SymSetSearchPath.ctypes_function(hProcess, SearchPath) + +@DbgHelpProxy() +def SymSetSearchPathW(hProcess, SearchPath): + return SymSetSearchPathW.ctypes_function(hProcess, SearchPath) + + +@DbgHelpProxy() +def SymGetTypeInfo(hProcess, ModBase, TypeId, GetType, pInfo): + return SymGetTypeInfo.ctypes_function(hProcess, ModBase, TypeId, GetType, pInfo) + +@DbgHelpProxy() +def SymEnumSymbols(hProcess, BaseOfDll, Mask, EnumSymbolsCallback, UserContext=None): + UserContext = transform_pyobject_to_pvoid(UserContext) + return SymEnumSymbols.ctypes_function(hProcess, BaseOfDll, Mask, EnumSymbolsCallback, UserContext) + +@DbgHelpProxy() +def SymEnumSymbolsEx(hProcess, BaseOfDll, Mask, EnumSymbolsCallback, UserContext=None, Options=NeededParameter): + UserContext = transform_pyobject_to_pvoid(UserContext) + return SymEnumSymbolsEx.ctypes_function(hProcess, BaseOfDll, Mask, EnumSymbolsCallback, UserContext, Options) + +@DbgHelpProxy() +def SymEnumSymbolsForAddr(hProcess, Address, EnumSymbolsCallback, UserContext=None): + UserContext = transform_pyobject_to_pvoid(UserContext) + return SymEnumSymbolsForAddr.ctypes_function(hProcess, Address, EnumSymbolsCallback, UserContext) + +@DbgHelpProxy() +def SymEnumSymbolsForAddrW(hProcess, Address, EnumSymbolsCallback, UserContext=None): + UserContext = transform_pyobject_to_pvoid(UserContext) + return SymEnumSymbolsForAddrW.ctypes_function(hProcess, Address, EnumSymbolsCallback, UserContext) + +@DbgHelpProxy() +def SymEnumTypes(hProcess, BaseOfDll, EnumSymbolsCallback, UserContext=None): + UserContext = transform_pyobject_to_pvoid(UserContext) + return SymEnumTypes.ctypes_function(hProcess, BaseOfDll, EnumSymbolsCallback, UserContext) + +@DbgHelpProxy() +def SymEnumTypesByName(hProcess, BaseOfDll, mask, EnumSymbolsCallback, UserContext=None): + UserContext = transform_pyobject_to_pvoid(UserContext) + return SymEnumTypesByName.ctypes_function(hProcess, BaseOfDll, mask, EnumSymbolsCallback, UserContext) + +@DbgHelpProxy() +def SymEnumerateModules64(hProcess, EnumModulesCallback, UserContext=None): + UserContext = transform_pyobject_to_pvoid(UserContext) + return SymEnumerateModules64.ctypes_function(hProcess, EnumModulesCallback, UserContext) + +@DbgHelpProxy() +def SymGetTypeFromName(hProcess, BaseOfDll, Name, Symbol): + return SymGetTypeFromName.ctypes_function(hProcess, BaseOfDll, Name, Symbol) + +@DbgHelpProxy() +def SymSearch(hProcess, BaseOfDll, Index, SymTag, Mask, Address, EnumSymbolsCallback, UserContext, Options): + UserContext = transform_pyobject_to_pvoid(UserContext) + return SymSearch.ctypes_function(hProcess, BaseOfDll, Index, SymTag, Mask, Address, EnumSymbolsCallback, UserContext, Options) + +@DbgHelpProxy() +def SymSearchW(hProcess, BaseOfDll, Index, SymTag, Mask, Address, EnumSymbolsCallback, UserContext, Options): + UserContext = transform_pyobject_to_pvoid(UserContext) + return SymSearchW.ctypes_function(hProcess, BaseOfDll, Index, SymTag, Mask, Address, EnumSymbolsCallback, UserContext, Options) + +@DbgHelpProxy() +def SymRefreshModuleList(hProcess): + return SymRefreshModuleList.ctypes_function(hProcess) + +# Helpers + +@DbgHelpProxy() +def SymFunctionTableAccess(hProcess, AddrBase): + return SymFunctionTableAccess.ctypes_function(hProcess, AddrBase) + +@DbgHelpProxy() +def SymFunctionTableAccess64(hProcess, AddrBase): + return SymFunctionTableAccess64.ctypes_function(hProcess, AddrBase) + +@DbgHelpProxy() +def SymGetModuleBase(hProcess, dwAddr): + return SymGetModuleBase.ctypes_function(hProcess, dwAddr) + +@DbgHelpProxy() +def SymGetModuleBase64(hProcess, qwAddr): + return SymGetModuleBase64.ctypes_function(hProcess, qwAddr) + +@DbgHelpProxy() +def SymEnumProcesses(EnumProcessesCallback, UserContext=None): + return SymEnumProcesses.ctypes_function(EnumProcessesCallback, UserContext) + +## Sym callback + +@DbgHelpProxy() +def SymRegisterCallback(hProcess, CallbackFunction, UserContext=None): + return SymRegisterCallback.ctypes_function(hProcess, CallbackFunction, UserContext) + +@DbgHelpProxy() +def SymRegisterCallback64(hProcess, CallbackFunction, UserContext=0): + return SymRegisterCallback64.ctypes_function(hProcess, CallbackFunction, UserContext) + +@DbgHelpProxy() +def SymRegisterCallbackW64(hProcess, CallbackFunction, UserContext=0): + return SymRegisterCallbackW64.ctypes_function(hProcess, CallbackFunction, UserContext) + + +# Stack walk + +@DbgHelpProxy() +def StackWalk64(MachineType, hProcess, hThread, StackFrame, ContextRecord, ReadMemoryRoutine, FunctionTableAccessRoutine, GetModuleBaseRoutine, TranslateAddress): + return StackWalk64.ctypes_function(MachineType, hProcess, hThread, StackFrame, ContextRecord, ReadMemoryRoutine, FunctionTableAccessRoutine, GetModuleBaseRoutine, TranslateAddress) + +@DbgHelpProxy() +def StackWalkEx(MachineType, hProcess, hThread, StackFrame, ContextRecord, ReadMemoryRoutine, FunctionTableAccessRoutine, GetModuleBaseRoutine, TranslateAddress, Flags): + return StackWalkEx.ctypes_function(MachineType, hProcess, hThread, StackFrame, ContextRecord, ReadMemoryRoutine, FunctionTableAccessRoutine, GetModuleBaseRoutine, TranslateAddress, Flags) + +@DbgHelpProxy() +def StackWalk(MachineType, hProcess, hThread, StackFrame, ContextRecord, ReadMemoryRoutine, FunctionTableAccessRoutine, GetModuleBaseRoutine, TranslateAddress): + return StackWalk.ctypes_function(MachineType, hProcess, hThread, StackFrame, ContextRecord, ReadMemoryRoutine, FunctionTableAccessRoutine, GetModuleBaseRoutine, TranslateAddress) diff --git a/pythonmemorymodule/windows/winproxy/apis/dnsapi.py b/pythonmemorymodule/windows/winproxy/apis/dnsapi.py new file mode 100644 index 0000000..92f6529 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/dnsapi.py @@ -0,0 +1,32 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import fail_on_zero, result_is_error_code, no_error_check + +class DNSapiProxy(ApiProxy): + APIDLL = "dnsapi" + default_error_check = staticmethod(fail_on_zero) + + +@DNSapiProxy() +def DnsGetCacheDataTable(DnsEntries): + return DnsGetCacheDataTable.ctypes_function(DnsEntries) + + +@DNSapiProxy(error_check=result_is_error_code) +def DnsQuery_A(pszName, wType, Options, pExtra, ppQueryResults, pReserved): + return DnsQuery_A.ctypes_function(pszName, wType, Options, pExtra, ppQueryResults, pReserved) + + +@DNSapiProxy(error_check=result_is_error_code) +def DnsQuery_W(pszName, wType, Options, pExtra, ppQueryResults, pReserved): + return DnsQuery_W.ctypes_function(pszName, wType, Options, pExtra, ppQueryResults, pReserved) + +@DNSapiProxy(error_check=result_is_error_code) +def DnsQueryEx(pQueryRequest, pQueryResults, pCancelHandle): + return DnsQueryEx.ctypes_function(pQueryRequest, pQueryResults, pCancelHandle) + +@DNSapiProxy(error_check=no_error_check) +def DnsFree(pData, FreeType): + return DnsFree.ctypes_function(pData, FreeType) diff --git a/pythonmemorymodule/windows/winproxy/apis/iphlpapi.py b/pythonmemorymodule/windows/winproxy/apis/iphlpapi.py new file mode 100644 index 0000000..1c6da15 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/iphlpapi.py @@ -0,0 +1,47 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import succeed_on_zero + +class IphlpapiProxy(ApiProxy): + APIDLL = "iphlpapi" + default_error_check = staticmethod(succeed_on_zero) + + +@IphlpapiProxy() +def SetTcpEntry(pTcpRow): + return SetTcpEntry.ctypes_function(pTcpRow) + +@IphlpapiProxy() +def GetExtendedTcpTable(pTcpTable, pdwSize=None, bOrder=True, ulAf=NeededParameter, TableClass=gdef.TCP_TABLE_OWNER_PID_ALL, Reserved=0): + if pdwSize is None: + pdwSize = gdef.ULONG(ctypes.sizeof(pTcpTable)) + return GetExtendedTcpTable.ctypes_function(pTcpTable, pdwSize, bOrder, ulAf, TableClass, Reserved) + +@IphlpapiProxy() +def GetInterfaceInfo(pIfTable, dwOutBufLen=None): + if dwOutBufLen is None: + dwOutBufLen = gdef.ULONG(ctypes.sizeof(pIfTable)) + return GetInterfaceInfo.ctypes_function(pIfTable, dwOutBufLen) + +@IphlpapiProxy() +def GetIfTable(pIfTable, pdwSize, bOrder=False): + return GetIfTable.ctypes_function(pIfTable, pdwSize, bOrder) + +@IphlpapiProxy() +def GetIpAddrTable(pIpAddrTable, pdwSize, bOrder=False): + return GetIpAddrTable.ctypes_function(pIpAddrTable, pdwSize, bOrder) + + +@IphlpapiProxy() +def GetIpNetTable(IpNetTable, SizePointer, Order): + return GetIpNetTable.ctypes_function(IpNetTable, SizePointer, Order) + +@IphlpapiProxy() +def GetAdaptersInfo(AdapterInfo, SizePointer): + return GetAdaptersInfo.ctypes_function(AdapterInfo, SizePointer) + +@IphlpapiProxy() +def GetPerAdapterInfo(IfIndex, pPerAdapterInfo, pOutBufLen): + return GetPerAdapterInfo.ctypes_function(IfIndex, pPerAdapterInfo, pOutBufLen) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winproxy/apis/kernel32.py b/pythonmemorymodule/windows/winproxy/apis/kernel32.py new file mode 100644 index 0000000..b763d41 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/kernel32.py @@ -0,0 +1,935 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import (fail_on_zero, + no_error_check, + result_is_handle, + succeed_on_zero, + fail_on_minus_one) + + +class Kernel32Proxy(ApiProxy): + APIDLL = "kernel32" + default_error_check = staticmethod(fail_on_zero) + +# Process + +@Kernel32Proxy() +def GetCurrentProcess(): + return GetCurrentProcess.ctypes_function() + +@Kernel32Proxy() +def ExitProcess(uExitCode): + return ExitProcess.ctypes_function(uExitCode) + +@Kernel32Proxy() +def TerminateProcess(hProcess, uExitCode): + return TerminateProcess.ctypes_function(hProcess, uExitCode) + +@Kernel32Proxy() +def GetExitCodeProcess(hProcess, lpExitCode): + return GetExitCodeProcess.ctypes_function(hProcess, lpExitCode) + +@Kernel32Proxy() +def GetProcessId(Process): + return GetProcessId.ctypes_function(Process) + + +@Kernel32Proxy() +def CreateProcessA(lpApplicationName, lpCommandLine=None, lpProcessAttributes=None, lpThreadAttributes=None, bInheritHandles=False, + dwCreationFlags=0, lpEnvironment=None, lpCurrentDirectory=None, lpStartupInfo=None, lpProcessInformation=None): + if lpStartupInfo is None: + StartupInfo = gdef.STARTUPINFOA() + StartupInfo.cb = ctypes.sizeof(StartupInfo) + StartupInfo.dwFlags = gdef.STARTF_USESHOWWINDOW + StartupInfo.wShowWindow = gdef.SW_HIDE + lpStartupInfo = ctypes.byref(StartupInfo) + if lpProcessInformation is None: + lpProcessInformation = ctypes.byref(gdef.PROCESS_INFORMATION()) + return CreateProcessA.ctypes_function(lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation) + + +@Kernel32Proxy() +def CreateProcessW(lpApplicationName, lpCommandLine=None, lpProcessAttributes=None, lpThreadAttributes=None, bInheritHandles=False, + dwCreationFlags=0, lpEnvironment=None, lpCurrentDirectory=None, lpStartupInfo=None, lpProcessInformation=None): + if lpStartupInfo is None: + StartupInfo = gdef.STARTUPINFOW() + StartupInfo.cb = ctypes.sizeof(StartupInfo) + StartupInfo.dwFlags = gdef.STARTF_USESHOWWINDOW + StartupInfo.wShowWindow = gdef.SW_HIDE + lpStartupInfo = ctypes.byref(StartupInfo) + if lpProcessInformation is None: + lpProcessInformation = ctypes.byref(gdef.PROCESS_INFORMATION()) + return CreateProcessW.ctypes_function(lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation) + +@Kernel32Proxy() +def OpenProcess(dwDesiredAccess=gdef.PROCESS_ALL_ACCESS, bInheritHandle=0, dwProcessId=NeededParameter): + return OpenProcess.ctypes_function(dwDesiredAccess, bInheritHandle, dwProcessId) + + +## Process Infos +@Kernel32Proxy() +def GetProcessTimes(hProcess, lpCreationTime, lpExitTime, lpKernelTime, lpUserTime): + return GetProcessTimes.ctypes_function(hProcess, lpCreationTime, lpExitTime, lpKernelTime, lpUserTime) + +@Kernel32Proxy() +def GetPriorityClass(hProcess): + return GetPriorityClass.ctypes_function(hProcess) + +@Kernel32Proxy() +def SetPriorityClass(hProcess, dwPriorityClass): + return SetPriorityClass.ctypes_function(hProcess, dwPriorityClass) + + +PROCESS_MITIGATION_STUCTS = (gdef.PROCESS_MITIGATION_ASLR_POLICY, + gdef.PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY, + gdef.PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY, + gdef.PROCESS_MITIGATION_DEP_POLICY, + gdef.PROCESS_MITIGATION_DYNAMIC_CODE_POLICY, + gdef.PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY, + gdef.PROCESS_MITIGATION_IMAGE_LOAD_POLICY, + gdef.PROCESS_MITIGATION_POLICY, + gdef.PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY, + gdef.PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY) + +@Kernel32Proxy() +def GetProcessMitigationPolicy(hProcess, MitigationPolicy, lpBuffer, dwLength=None): + if dwLength is None: + dwLength = ctypes.sizeof(lpBuffer) + return GetProcessMitigationPolicy.ctypes_function(hProcess, MitigationPolicy, lpBuffer, dwLength) + + +@Kernel32Proxy() +def SetProcessMitigationPolicy(MitigationPolicy, lpBuffer, dwLength=None): + if dwLength is None: + dwLength = ctypes.sizeof(lpBuffer) + if isinstance(lpBuffer, PROCESS_MITIGATION_STUCTS): + lpBuffer = ctypes.byref(lpBuffer) + return SetProcessMitigationPolicy.ctypes_function(MitigationPolicy, lpBuffer, dwLength) + +@Kernel32Proxy() +def GetProcessDEPPolicy(hProcess, lpFlags, lpPermanent): + return GetProcessDEPPolicy.ctypes_function(hProcess, lpFlags, lpPermanent) + +## Process Infos ThreadAttribute + +# ProcThreadAttributeList +def initializeprocthreadattributelist_error_check(func_name, result, func, args): + if result: + return args + error = GetLastError() + if error == gdef.ERROR_INSUFFICIENT_BUFFER and args[0] is None: + return args + raise WinproxyError(func_name) + +@Kernel32Proxy(error_check=initializeprocthreadattributelist_error_check) +def InitializeProcThreadAttributeList(lpAttributeList=None, dwAttributeCount=NeededParameter, dwFlags=0, lpSize=NeededParameter): + return InitializeProcThreadAttributeList.ctypes_function(lpAttributeList, dwAttributeCount, dwFlags, lpSize) + + +@Kernel32Proxy() +def UpdateProcThreadAttribute(lpAttributeList, dwFlags=0, Attribute=NeededParameter, lpValue=NeededParameter, cbSize=NeededParameter, lpPreviousValue=None, lpReturnSize=None): + return UpdateProcThreadAttribute.ctypes_function(lpAttributeList, dwFlags, Attribute, lpValue, cbSize, lpPreviousValue, lpReturnSize) + + +@Kernel32Proxy() +def DeleteProcThreadAttributeList(lpAttributeList): + return DeleteProcThreadAttributeList.ctypes_function(lpAttributeList) + + +## Process-module + +@Kernel32Proxy() +def GetModuleHandleA(lpModuleName): + return GetModuleHandleA.ctypes_function(lpModuleName) + +@Kernel32Proxy() +def GetModuleHandleW(lpModuleName): + return GetModuleHandleW.ctypes_function(lpModuleName) + +@Kernel32Proxy() +def GetModuleFileNameA(hModule, lpFilename, nSize): + return GetModuleFileNameA.ctypes_function(hModule, lpFilename, nSize) + +@Kernel32Proxy() +def GetModuleFileNameW(hModule, lpFilename, nSize): + return GetModuleFileNameW.ctypes_function(hModule, lpFilename, nSize) + +## Thread + +@Kernel32Proxy() +def GetExitCodeThread(hThread, lpExitCode): + return GetExitCodeThread.ctypes_function(hThread, lpExitCode) + +@Kernel32Proxy() +def GetCurrentThread(): + return GetCurrentThread.ctypes_function() + +@Kernel32Proxy() +def GetCurrentThreadId(): + return GetCurrentThreadId.ctypes_function() + +@Kernel32Proxy() +def TerminateThread(hThread, dwExitCode): + return TerminateThread.ctypes_function(hThread, dwExitCode) + +@Kernel32Proxy() +def ExitThread(dwExitCode): + return ExitThread.ctypes_function(dwExitCode) + +@Kernel32Proxy(error_check=fail_on_minus_one) +def ResumeThread(hThread): + return ResumeThread.ctypes_function(hThread) + +@Kernel32Proxy(error_check=fail_on_minus_one) +def SuspendThread(hThread): + return SuspendThread.ctypes_function(hThread) + +@Kernel32Proxy() +def GetThreadId(Thread): + return GetThreadId.ctypes_function(Thread) + + +@Kernel32Proxy() +def CreateThread(lpThreadAttributes=None, dwStackSize=0, lpStartAddress=NeededParameter, lpParameter=NeededParameter, dwCreationFlags=0, lpThreadId=None): + return CreateThread.ctypes_function(lpThreadAttributes, dwStackSize, lpStartAddress, lpParameter, dwCreationFlags, lpThreadId) + + +@Kernel32Proxy() +def CreateRemoteThread(hProcess=NeededParameter, lpThreadAttributes=None, dwStackSize=0, + lpStartAddress=NeededParameter, lpParameter=NeededParameter, dwCreationFlags=0, lpThreadId=None): + return CreateRemoteThread.ctypes_function(hProcess, lpThreadAttributes, dwStackSize, lpStartAddress, lpParameter, dwCreationFlags, lpThreadId) + +@Kernel32Proxy() +def GetThreadContext(hThread, lpContext): + # TODO: RM ME IF TEST PASS + # if lpContext is None: + # Context = CONTEXT() + # context.ContextFlags = CONTEXT_FULL | CONTEXT_DEBUG_REGISTERS + # lpContext = ctypes.byref(Context) + return GetThreadContext.ctypes_function(hThread, lpContext) + + +@Kernel32Proxy() +def SetThreadContext(hThread, lpContext): + return SetThreadContext.ctypes_function(hThread, lpContext) + +@Kernel32Proxy() +def OpenThread(dwDesiredAccess=gdef.THREAD_ALL_ACCESS, bInheritHandle=0, dwThreadId=NeededParameter): + return OpenThread.ctypes_function(dwDesiredAccess, bInheritHandle, dwThreadId) + +@Kernel32Proxy() +def SetThreadAffinityMask(hThread=None, dwThreadAffinityMask=NeededParameter): + """If hThread is not given, it will be the current thread""" + if hThread is None: + hThread = GetCurrentThread() + return SetThreadAffinityMask.ctypes_function(hThread, dwThreadAffinityMask) + + +## Memory + +@Kernel32Proxy(error_check=succeed_on_zero) +def LocalFree(hMem): + return LocalFree.ctypes_function(hMem) + +@Kernel32Proxy() +def VirtualAlloc(lpAddress=0, dwSize=NeededParameter, flAllocationType=gdef.MEM_COMMIT, flProtect=gdef.PAGE_EXECUTE_READWRITE): + return VirtualAlloc.ctypes_function(lpAddress, dwSize, flAllocationType, flProtect) + +@Kernel32Proxy() +def VirtualFree(lpAddress, dwSize=0, dwFreeType=gdef.MEM_RELEASE): + return VirtualFree.ctypes_function(lpAddress, dwSize, dwFreeType) + +@Kernel32Proxy() +def VirtualProtect(lpAddress, dwSize, flNewProtect, lpflOldProtect=None): + if lpflOldProtect is None: + lpflOldProtect = ctypes.byref(gdef.DWORD()) + return VirtualProtect.ctypes_function(lpAddress, dwSize, flNewProtect, lpflOldProtect) + + +## Memory remote + +@Kernel32Proxy() +def VirtualQueryEx(hProcess, lpAddress, lpBuffer, dwLength): + return VirtualQueryEx.ctypes_function(hProcess, lpAddress, lpBuffer, dwLength) + +@Kernel32Proxy() +def VirtualAllocEx(hProcess, lpAddress=0, dwSize=NeededParameter, flAllocationType=gdef.MEM_COMMIT, flProtect=gdef.PAGE_EXECUTE_READWRITE): + return VirtualAllocEx.ctypes_function(hProcess, lpAddress, dwSize, flAllocationType, flProtect) + +@Kernel32Proxy() +def VirtualFreeEx(hProcess, lpAddress, dwSize=0, dwFreeType=gdef.MEM_RELEASE): + return VirtualFreeEx.ctypes_function(hProcess, lpAddress, dwSize, dwFreeType) + + +@Kernel32Proxy() +def VirtualProtectEx(hProcess, lpAddress, dwSize, flNewProtect, lpflOldProtect=None): + if lpflOldProtect is None: + lpflOldProtect = ctypes.byref(gdef.DWORD()) + return VirtualProtectEx.ctypes_function(hProcess, lpAddress, dwSize, flNewProtect, lpflOldProtect) + + +@Kernel32Proxy() +def ReadProcessMemory(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead=None): + return ReadProcessMemory.ctypes_function(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead) + +@Kernel32Proxy() +def WriteProcessMemory(hProcess, lpBaseAddress, lpBuffer, nSize=None, lpNumberOfBytesWritten=None): + """Computer nSize with len(lpBuffer) if not given""" + if nSize is None: + nSize = len(lpBuffer) + return WriteProcessMemory.ctypes_function(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesWritten) + + +## Error + +@Kernel32Proxy(error_check=no_error_check) +def GetLastError(): + return GetLastError.ctypes_function() + +## Handle + +@Kernel32Proxy() +def CloseHandle(hObject): + return CloseHandle.ctypes_function(hObject) + +@Kernel32Proxy() +def DuplicateHandle(hSourceProcessHandle, hSourceHandle, hTargetProcessHandle, lpTargetHandle, dwDesiredAccess=0, bInheritHandle=False, dwOptions=0): + return DuplicateHandle.ctypes_function(hSourceProcessHandle, hSourceHandle, hTargetProcessHandle, lpTargetHandle, dwDesiredAccess, bInheritHandle, dwOptions) + + + +## Process Modules +@Kernel32Proxy() +def GetProcAddress(hModule, lpProcName): + return GetProcAddress.ctypes_function(hModule, lpProcName) + +@Kernel32Proxy() +def LoadLibraryA(lpFileName): + return LoadLibraryA.ctypes_function(lpFileName) + +@Kernel32Proxy() +def LoadLibraryW(lpFileName): + return LoadLibraryW.ctypes_function(lpFileName) + +@Kernel32Proxy() +def LoadLibraryExA(lpLibFileName, hFile, dwFlags): + return LoadLibraryExA.ctypes_function(lpLibFileName, hFile, dwFlags) + +@Kernel32Proxy() +def LoadLibraryExW(lpLibFileName, hFile, dwFlags): + return LoadLibraryExW.ctypes_function(lpLibFileName, hFile, dwFlags) + +@Kernel32Proxy() +def FreeLibrary(hLibModule): + return FreeLibrary.ctypes_function(hLibModule) + +## Version + +@Kernel32Proxy() +def GetVersionExA(lpVersionInformation): + return GetVersionExA.ctypes_function(lpVersionInformation) + +@Kernel32Proxy() +def GetVersionExW(lpVersionInformation): + return GetVersionExW.ctypes_function(lpVersionInformation) + + + +## Hardware + +@Kernel32Proxy() +def GetCurrentProcessorNumber(): + return GetCurrentProcessorNumber.ctypes_function() + +## Console + +@Kernel32Proxy() +def AllocConsole(): + return AllocConsole.ctypes_function() + +@Kernel32Proxy() +def FreeConsole(): + return FreeConsole.ctypes_function() + +@Kernel32Proxy() +def SetConsoleCtrlHandler(HandlerRoutine, Add): + return SetConsoleCtrlHandler.ctypes_function(HandlerRoutine, Add) + +@Kernel32Proxy() +def GetStdHandle(nStdHandle): + return GetStdHandle.ctypes_function(nStdHandle) + +@Kernel32Proxy() +def SetStdHandle(nStdHandle, hHandle): + return SetStdHandle.ctypes_function(nStdHandle, hHandle) + +## System + +@Kernel32Proxy() +def GetComputerNameA(lpBuffer, lpnSize): + return GetComputerNameA.ctypes_function(lpBuffer, lpnSize) + +@Kernel32Proxy() +def GetComputerNameW(lpBuffer, lpnSize): + return GetComputerNameW.ctypes_function(lpBuffer, lpnSize) + +@Kernel32Proxy() +def GetComputerNameExA(NameType, lpBuffer, nSize): + return GetComputerNameExA.ctypes_function(NameType, lpBuffer, nSize) + +@Kernel32Proxy() +def GetComputerNameExW(NameType, lpBuffer, nSize): + return GetComputerNameExW.ctypes_function(NameType, lpBuffer, nSize) + +@Kernel32Proxy() +def GetWindowsDirectoryA(lpBuffer, uSize=None): + if uSize is None: + uSize = gdef.DWORD(len(lpBuffer)) + return GetWindowsDirectoryA.ctypes_function(lpBuffer, uSize) + +@Kernel32Proxy() +def GetWindowsDirectoryW(lpBuffer, uSize=None): + if uSize is None: + uSize = gdef.DWORD(len(lpBuffer)) + return GetWindowsDirectoryW.ctypes_function(lpBuffer, uSize) + +@Kernel32Proxy() +def GetProductInfo(dwOSMajorVersion, dwOSMinorVersion, dwSpMajorVersion, dwSpMinorVersion, pdwReturnedProductType): + return GetProductInfo.ctypes_function(dwOSMajorVersion, dwOSMinorVersion, dwSpMajorVersion, dwSpMinorVersion, pdwReturnedProductType) + + + + +## Other + +@Kernel32Proxy(error_check=no_error_check) +def lstrcmpA(lpString1, lpString2): + return lstrcmpA.ctypes_function(lpString1, lpString2) + +@Kernel32Proxy(error_check=no_error_check) +def lstrcmpW(lpString1, lpString2): + return lstrcmpW.ctypes_function(lpString1, lpString2) + +@Kernel32Proxy("Sleep", no_error_check) +def Sleep(dwMilliseconds): + return Sleep.ctypes_function(dwMilliseconds) + +@Kernel32Proxy("SleepEx", no_error_check) +def SleepEx(dwMilliseconds, bAlertable=False): + return SleepEx.ctypes_function(dwMilliseconds, bAlertable) + + +@Kernel32Proxy(error_check=succeed_on_zero) +def WaitForSingleObject(hHandle, dwMilliseconds=gdef.INFINITE): + return WaitForSingleObject.ctypes_function(hHandle, dwMilliseconds) + +@Kernel32Proxy() +def DeviceIoControl(hDevice, dwIoControlCode, lpInBuffer, nInBufferSize=None, lpOutBuffer=NeededParameter, nOutBufferSize=None, lpBytesReturned=None, lpOverlapped=None): + if nInBufferSize is None: + nInBufferSize = len(lpInBuffer) + if nOutBufferSize is None: + nOutBufferSize = len(lpOutBuffer) + if lpBytesReturned is None: + # Some windows check 0 / others does not + lpBytesReturned = ctypes.byref(gdef.DWORD()) + return DeviceIoControl.ctypes_function(hDevice, dwIoControlCode, lpInBuffer, nInBufferSize, lpOutBuffer, nOutBufferSize, lpBytesReturned, lpOverlapped) + + +# Wow64 + +@Kernel32Proxy() +def Wow64DisableWow64FsRedirection(OldValue=None): + if OldValue is None: + OldValue = gdef.PVOID() + return Wow64DisableWow64FsRedirection.ctypes_function(OldValue) + +@Kernel32Proxy() +def Wow64RevertWow64FsRedirection(OldValue=None): + if OldValue is None: + OldValue = gdef.PVOID() + return Wow64RevertWow64FsRedirection.ctypes_function(OldValue) + +@Kernel32Proxy() +def Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection): + return Wow64EnableWow64FsRedirection.ctypes_function(Wow64FsEnableRedirection) + +@Kernel32Proxy() +def Wow64GetThreadContext(hThread, lpContext): + return Wow64GetThreadContext.ctypes_function(hThread, lpContext) + +@Kernel32Proxy() +def Wow64SetThreadContext(hThread, lpContext): + return Wow64SetThreadContext.ctypes_function(hThread, lpContext) + + + +## File + +@Kernel32Proxy(error_check=result_is_handle) +def CreateFileA(lpFileName, dwDesiredAccess=gdef.GENERIC_READ, dwShareMode=0, lpSecurityAttributes=None, dwCreationDisposition=gdef.OPEN_EXISTING, dwFlagsAndAttributes=gdef.FILE_ATTRIBUTE_NORMAL, hTemplateFile=None): + return CreateFileA.ctypes_function(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile) + + +@Kernel32Proxy(error_check=result_is_handle) +def CreateFileW(lpFileName, dwDesiredAccess=gdef.GENERIC_READ, dwShareMode=0, lpSecurityAttributes=None, dwCreationDisposition=gdef.OPEN_EXISTING, dwFlagsAndAttributes=gdef.FILE_ATTRIBUTE_NORMAL, hTemplateFile=None): + return CreateFileW.ctypes_function(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile) + +@Kernel32Proxy(error_check=result_is_handle) +def CreateFileTransactedA(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile, hTransaction, pusMiniVersion, pExtendedParameter): + return CreateFileTransactedA.ctypes_function(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile, hTransaction, pusMiniVersion, pExtendedParameter) + +@Kernel32Proxy(error_check=result_is_handle) +def CreateFileTransactedW(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile, hTransaction, pusMiniVersion, pExtendedParameter): + return CreateFileTransactedW.ctypes_function(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile, hTransaction, pusMiniVersion, pExtendedParameter) + +@Kernel32Proxy() +def ReadFile(hFile, lpBuffer, nNumberOfBytesToRead=None, lpNumberOfBytesRead=None, lpOverlapped=None): + if nNumberOfBytesToRead is None: + nNumberOfBytesToRead = len(lpBuffer) + if lpOverlapped is None and lpNumberOfBytesRead is None: + lpNumberOfBytesRead = ctypes.byref(gdef.DWORD()) + return ReadFile.ctypes_function(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped) + + +@Kernel32Proxy() +def WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite=None, lpNumberOfBytesWritten=None, lpOverlapped=None): + if nNumberOfBytesToWrite is None: + nNumberOfBytesToWrite = len(lpBuffer) + if lpOverlapped is None and lpNumberOfBytesWritten is None: + lpNumberOfBytesWritten = ctypes.byref(gdef.DWORD()) + return WriteFile.ctypes_function(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped) + + +@Kernel32Proxy() +def CreateFileMappingA(hFile, lpFileMappingAttributes=None, flProtect=gdef.PAGE_READWRITE, dwMaximumSizeHigh=0, dwMaximumSizeLow=NeededParameter, lpName=NeededParameter): + return CreateFileMappingA.ctypes_function(hFile, lpFileMappingAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, lpName) + + +@Kernel32Proxy() +def CreateFileMappingW(hFile, lpFileMappingAttributes=None, flProtect=gdef.PAGE_READWRITE, dwMaximumSizeHigh=0, dwMaximumSizeLow=0, lpName=NeededParameter): + return CreateFileMappingW.ctypes_function(hFile, lpFileMappingAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, lpName) + +@Kernel32Proxy() +def OpenFileMappingW(dwDesiredAccess, bInheritHandle, lpName): + return OpenFileMappingW.ctypes_function(dwDesiredAccess, bInheritHandle, lpName) + +@Kernel32Proxy() +def OpenFileMappingA(dwDesiredAccess, bInheritHandle, lpName): + return OpenFileMappingA.ctypes_function(dwDesiredAccess, bInheritHandle, lpName) + +@Kernel32Proxy() +def MapViewOfFile(hFileMappingObject, dwDesiredAccess=gdef.FILE_MAP_ALL_ACCESS, dwFileOffsetHigh=0, dwFileOffsetLow=0, dwNumberOfBytesToMap=NeededParameter): + return MapViewOfFile.ctypes_function(hFileMappingObject, dwDesiredAccess, dwFileOffsetHigh, dwFileOffsetLow, dwNumberOfBytesToMap) + +@Kernel32Proxy() +def UnmapViewOfFile(lpBaseAddress): + return UnmapViewOfFile.ctypes_function(lpBaseAddress) + +@Kernel32Proxy() +def FindFirstFileA(lpFileName, lpFindFileData): + return FindFirstFileA.ctypes_function(lpFileName, lpFindFileData) + + +@Kernel32Proxy() +def FindFirstFileW(lpFileName, lpFindFileData): + return FindFirstFileW.ctypes_function(lpFileName, lpFindFileData) + + +@Kernel32Proxy() +def FindNextFileA(hFindFile, lpFindFileData): + return FindNextFileA.ctypes_function(hFindFile, lpFindFileData) + + +@Kernel32Proxy() +def FindNextFileW(hFindFile, lpFindFileData): + return FindNextFileW.ctypes_function(hFindFile, lpFindFileData) + + +@Kernel32Proxy() +def FindClose(hFindFile): + return FindClose.ctypes_function(hFindFile) + +@Kernel32Proxy() +def FindFirstChangeNotificationA(lpPathName, bWatchSubtree, dwNotifyFilter): + return FindFirstChangeNotificationA.ctypes_function(lpPathName, bWatchSubtree, dwNotifyFilter) + +@Kernel32Proxy() +def FindFirstChangeNotificationW(lpPathName, bWatchSubtree, dwNotifyFilter): + return FindFirstChangeNotificationW.ctypes_function(lpPathName, bWatchSubtree, dwNotifyFilter) + +@Kernel32Proxy() +def FindNextChangeNotification(hChangeHandle): + return FindNextChangeNotification.ctypes_function(hChangeHandle) + +@Kernel32Proxy() +def FindCloseChangeNotification(hChangeHandle): + return FindCloseChange + Notification.ctypes_function(hChangeHandle) + +@Kernel32Proxy() +def FindNextChangeNotification(hChangeHandle): + return FindNextChangeNotification.ctypes_function(hChangeHandle) + +@Kernel32Proxy() +def ReadDirectoryChangesW(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine): + return ReadDirectoryChangesW.ctypes_function(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine) + +@Kernel32Proxy() +def ReadDirectoryChangesExW(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine, ReadDirectoryNotifyInformationClass): + return ReadDirectoryChangesExW.ctypes_function(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine, ReadDirectoryNotifyInformationClass) + + + +## Tlhelp (snapshoot) + +@Kernel32Proxy() +def CreateToolhelp32Snapshot(dwFlags, th32ProcessID=0): + return CreateToolhelp32Snapshot.ctypes_function(dwFlags, th32ProcessID) + +@Kernel32Proxy() +def Thread32First(hSnapshot, lpte): + """Set byref(lpte) if needed""" + if type(lpte) == gdef.THREADENTRY32: + lpte = ctypes.byref(lpte) + return Thread32First.ctypes_function(hSnapshot, lpte) + +@Kernel32Proxy(error_check=no_error_check) +def Thread32Next(hSnapshot, lpte): + """Set byref(lpte) if needed""" + if type(lpte) == gdef.THREADENTRY32: + lpte = ctypes.byref(lpte) + return Thread32Next.ctypes_function(hSnapshot, lpte) + +@Kernel32Proxy() +def Process32First(hSnapshot, lpte): + return Process32First.ctypes_function(hSnapshot, lpte) + +@Kernel32Proxy(error_check=no_error_check) +def Process32Next(hSnapshot, lpte): + return Process32Next.ctypes_function(hSnapshot, lpte) + +@Kernel32Proxy() +def Process32FirstW(hSnapshot, lppe): + return Process32FirstW.ctypes_function(hSnapshot, lppe) + +@Kernel32Proxy(error_check=no_error_check) +def Process32NextW(hSnapshot, lppe): + return Process32NextW.ctypes_function(hSnapshot, lppe) + + +## VEH + +@Kernel32Proxy() +def AddVectoredContinueHandler(FirstHandler=1, VectoredHandler=NeededParameter): + return AddVectoredContinueHandler.ctypes_function(FirstHandler, VectoredHandler) + + +@Kernel32Proxy() +def AddVectoredExceptionHandler(FirstHandler=1, VectoredHandler=NeededParameter): + return AddVectoredExceptionHandler.ctypes_function(FirstHandler, VectoredHandler) + + +@Kernel32Proxy() +def RemoveVectoredExceptionHandler(Handler): + return RemoveVectoredExceptionHandler.ctypes_function(Handler) + +## Event + +@Kernel32Proxy() +def OpenEventA(dwDesiredAccess, bInheritHandle, lpName): + return OpenEventA.ctypes_function(dwDesiredAccess, bInheritHandle, lpName) + +@Kernel32Proxy() +def OpenEventW(dwDesiredAccess, bInheritHandle, lpName): + return OpenEventW.ctypes_function(dwDesiredAccess, bInheritHandle, lpName) + +@Kernel32Proxy() +def CreateEventA(lpEventAttributes, bManualReset, bInitialState, lpName): + return CreateEventA.ctypes_function(lpEventAttributes, bManualReset, bInitialState, lpName) + +@Kernel32Proxy() +def CreateEventW(lpEventAttributes, bManualReset, bInitialState, lpName): + return CreateEventW.ctypes_function(lpEventAttributes, bManualReset, bInitialState, lpName) + +@Kernel32Proxy() +def CreateEventExA(lpEventAttributes, lpName, dwFlags, dwDesiredAccess): + return CreateEventExA.ctypes_function(lpEventAttributes, lpName, dwFlags, dwDesiredAccess) + +@Kernel32Proxy() +def CreateEventExW(lpEventAttributes, lpName, dwFlags, dwDesiredAccess): + return CreateEventExW.ctypes_function(lpEventAttributes, lpName, dwFlags, dwDesiredAccess) + + +## Path + +@Kernel32Proxy() +def GetLongPathNameA(lpszShortPath, lpszLongPath, cchBuffer=None): + if cchBuffer is None: + cchBuffer = len(lpszLongPath) + return GetLongPathNameA.ctypes_function(lpszShortPath, lpszLongPath, cchBuffer) + +@Kernel32Proxy() +def GetLongPathNameW(lpszShortPath, lpszLongPath, cchBuffer=None): + if cchBuffer is None: + cchBuffer = len(lpszLongPath) + return GetLongPathNameW.ctypes_function(lpszShortPath, lpszLongPath, cchBuffer) + +@Kernel32Proxy() +def GetShortPathNameA(lpszLongPath, lpszShortPath, cchBuffer=None): + if cchBuffer is None: + cchBuffer = len(lpszShortPath) + return GetShortPathNameA.ctypes_function(lpszLongPath, lpszShortPath, cchBuffer) + +@Kernel32Proxy() +def GetShortPathNameW(lpszLongPath, lpszShortPath, cchBuffer=None): + if cchBuffer is None: + cchBuffer = len(lpszShortPath) + return GetShortPathNameW.ctypes_function(lpszLongPath, lpszShortPath, cchBuffer) + + +# Debug-API + +@Kernel32Proxy(error_check=no_error_check) +def IsDebuggerPresent(): + return IsDebuggerPresent.ctypes_function() + +@Kernel32Proxy() +def WaitForDebugEvent(lpDebugEvent, dwMilliseconds=gdef.INFINITE): + return WaitForDebugEvent.ctypes_function(lpDebugEvent, dwMilliseconds) + +@Kernel32Proxy() +def DebugBreak(): + return DebugBreak.ctypes_function() + +@Kernel32Proxy() +def ContinueDebugEvent(dwProcessId, dwThreadId, dwContinueStatus): + return ContinueDebugEvent.ctypes_function(dwProcessId, dwThreadId, dwContinueStatus) + +@Kernel32Proxy() +def DebugActiveProcess(dwProcessId): + return DebugActiveProcess.ctypes_function(dwProcessId) + +@Kernel32Proxy() +def DebugActiveProcessStop(dwProcessId): + return DebugActiveProcessStop.ctypes_function(dwProcessId) + +@Kernel32Proxy() +def DebugSetProcessKillOnExit(KillOnExit): + return DebugSetProcessKillOnExit.ctypes_function(KillOnExit) + +@Kernel32Proxy() +def DebugBreakProcess(Process): + return DebugBreakProcess.ctypes_function(Process) + +# Volumes + +@Kernel32Proxy() +def GetLogicalDriveStringsA(nBufferLength, lpBuffer): + return GetLogicalDriveStringsA.ctypes_function(nBufferLength, lpBuffer) + +@Kernel32Proxy() +def GetLogicalDriveStringsW(nBufferLength, lpBuffer): + return GetLogicalDriveStringsW.ctypes_function(nBufferLength, lpBuffer) + +@Kernel32Proxy() +def GetVolumeNameForVolumeMountPointA(lpszVolumeMountPoint, lpszVolumeName, cchBufferLength): + return GetVolumeNameForVolumeMountPointA.ctypes_function(lpszVolumeMountPoint, lpszVolumeName, cchBufferLength) + +@Kernel32Proxy() +def GetVolumeNameForVolumeMountPointW(lpszVolumeMountPoint, lpszVolumeName, cchBufferLength): + return GetVolumeNameForVolumeMountPointW.ctypes_function(lpszVolumeMountPoint, lpszVolumeName, cchBufferLength) + +@Kernel32Proxy() +def GetDriveTypeA(lpRootPathName): + return GetDriveTypeA.ctypes_function(lpRootPathName) + +@Kernel32Proxy() +def GetDriveTypeW(lpRootPathName): + return GetDriveTypeW.ctypes_function(lpRootPathName) + +@Kernel32Proxy() +def QueryDosDeviceA(lpDeviceName, lpTargetPath, ucchMax): + return QueryDosDeviceA.ctypes_function(lpDeviceName, lpTargetPath, ucchMax) + +@Kernel32Proxy() +def QueryDosDeviceW(lpDeviceName, lpTargetPath, ucchMax): + return QueryDosDeviceW.ctypes_function(lpDeviceName, lpTargetPath, ucchMax) + + +@Kernel32Proxy() +def GetVolumeInformationA(lpRootPathName, lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize): + if nVolumeNameSize == 0 and lpVolumeNameBuffer is not None: + nVolumeNameSize = len(lpVolumeNameBuffer) + if nFileSystemNameSize == 0 and lpFileSystemNameBuffer is not None: + nFileSystemNameSize = len(lpFileSystemNameBuffer) + return GetVolumeInformationA.ctypes_function(lpRootPathName, lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize) + + +@Kernel32Proxy() +def GetVolumeInformationW(lpRootPathName, lpVolumeNameBuffer=None, nVolumeNameSize=0, lpVolumeSerialNumber=None, lpMaximumComponentLength=None, lpFileSystemFlags=None, lpFileSystemNameBuffer=None, nFileSystemNameSize=0): + if nVolumeNameSize == 0 and lpVolumeNameBuffer is not None: + nVolumeNameSize = len(lpVolumeNameBuffer) + if nFileSystemNameSize == 0 and lpFileSystemNameBuffer is not None: + nFileSystemNameSize = len(lpFileSystemNameBuffer) + return GetVolumeInformationW.ctypes_function(lpRootPathName, lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize) + + +@Kernel32Proxy() +def FindFirstVolumeA(lpszVolumeName, cchBufferLength): + if cchBufferLength is None: + cchBufferLength = len(lpszVolumeName) + return FindFirstVolumeA.ctypes_function(lpszVolumeName, cchBufferLength) + + +@Kernel32Proxy() +def FindFirstVolumeW(lpszVolumeName, cchBufferLength): + if cchBufferLength is None: + cchBufferLength = len(lpszVolumeName) + return FindFirstVolumeW.ctypes_function(lpszVolumeName, cchBufferLength) + + + +@Kernel32Proxy() +def FindNextVolumeA(hFindVolume, lpszVolumeName, cchBufferLength): + if cchBufferLength is None: + cchBufferLength = len(lpszVolumeName) + return FindNextVolumeA.ctypes_function(hFindVolume, lpszVolumeName, cchBufferLength) + + +@Kernel32Proxy() +def FindNextVolumeW(hFindVolume, lpszVolumeName, cchBufferLength): + if cchBufferLength is None: + cchBufferLength = len(lpszVolumeName) + return FindNextVolumeW.ctypes_function(hFindVolume, lpszVolumeName, cchBufferLength) + +# pipe + +@Kernel32Proxy() +def CreateNamedPipeA(lpName, dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize, nInBufferSize, nDefaultTimeOut, lpSecurityAttributes): + return CreateNamedPipeA.ctypes_function(lpName, dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize, nInBufferSize, nDefaultTimeOut, lpSecurityAttributes) + +@Kernel32Proxy() +def CreateNamedPipeW(lpName, dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize, nInBufferSize, nDefaultTimeOut, lpSecurityAttributes): + return CreateNamedPipeW.ctypes_function(lpName, dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize, nInBufferSize, nDefaultTimeOut, lpSecurityAttributes) + +@Kernel32Proxy() +def ConnectNamedPipe(hNamedPipe, lpOverlapped): + return ConnectNamedPipe.ctypes_function(hNamedPipe, lpOverlapped) + +@Kernel32Proxy() +def SetNamedPipeHandleState(hNamedPipe, lpMode, lpMaxCollectionCount, lpCollectDataTimeout): + return SetNamedPipeHandleState.ctypes_function(hNamedPipe, lpMode, lpMaxCollectionCount, lpCollectDataTimeout) + +@Kernel32Proxy() +def CreatePipe(hReadPipe, hWritePipe, lpPipeAttributes, nSize): + return CreatePipe.ctypes_function(hReadPipe, hWritePipe, lpPipeAttributes, nSize) + +# Firmware + +@Kernel32Proxy() +def GetFirmwareEnvironmentVariableA(lpName, lpGuid, pBuffer, nSize): + return GetFirmwareEnvironmentVariableA.ctypes_function(lpName, lpGuid, pBuffer, nSize) + +@Kernel32Proxy() +def GetFirmwareEnvironmentVariableW(lpName, lpGuid, pBuffer, nSize): + return GetFirmwareEnvironmentVariableW.ctypes_function(lpName, lpGuid, pBuffer, nSize) + +@Kernel32Proxy() +def GetFirmwareEnvironmentVariableExA(lpName, lpGuid, pBuffer, nSize, pdwAttribubutes): + return GetFirmwareEnvironmentVariableExA.ctypes_function(lpName, lpGuid, pBuffer, nSize, pdwAttribubutes) + +@Kernel32Proxy() +def GetFirmwareEnvironmentVariableExW(lpName, lpGuid, pBuffer, nSize, pdwAttribubutes): + return GetFirmwareEnvironmentVariableExW.ctypes_function(lpName, lpGuid, pBuffer, nSize, pdwAttribubutes) + +##### + +# Time + +@Kernel32Proxy(error_check=fail_on_zero) +def FileTimeToSystemTime(lpFileTime, lpSystemTime): + return FileTimeToSystemTime.ctypes_function(lpFileTime, lpSystemTime) + +@Kernel32Proxy(error_check=fail_on_zero) +def SystemTimeToFileTime(lpSystemTime, lpFileTime): + return SystemTimeToFileTime.ctypes_function(lpSystemTime, lpFileTime) + +@Kernel32Proxy(error_check=None) +def GetSystemTime(lpSystemTime): + return GetSystemTime.ctypes_function(lpSystemTime) + +@Kernel32Proxy(error_check=None) +def GetSystemTimeAsFileTime(lpSystemTimeAsFileTime): + return GetSystemTimeAsFileTime.ctypes_function(lpSystemTimeAsFileTime) + + +@Kernel32Proxy(error_check=fail_on_zero) +def GetSystemTimes(lpIdleTime, lpKernelTime, lpUserTime): + return GetSystemTimes.ctypes_function(lpIdleTime, lpKernelTime, lpUserTime) + +@Kernel32Proxy(error_check=None) +def GetLocalTime(lpSystemTime): + return GetLocalTime.ctypes_function(lpSystemTime) + +@Kernel32Proxy(error_check=None) +def GetTickCount(): + return GetTickCount.ctypes_function() + +@Kernel32Proxy(error_check=None) +def GetTickCount64(): + return GetTickCount64.ctypes_function() + +##### + +# Heap + +@Kernel32Proxy(error_check=fail_on_zero) +def HeapAlloc(hHeap, dwFlags, dwBytes): + return HeapAlloc.ctypes_function(hHeap, dwFlags, dwBytes) + + +##### + +# Resources + +@Kernel32Proxy() +def FindResourceA(hModule, lpName, lpType): + return FindResourceA.ctypes_function(hModule, lpName, lpType) + +@Kernel32Proxy() +def FindResourceW(hModule, lpName, lpType): + return FindResourceW.ctypes_function(hModule, lpName, lpType) + +@Kernel32Proxy() +def SizeofResource(hModule, hResInfo): + return SizeofResource.ctypes_function(hModule, hResInfo) + +@Kernel32Proxy() +def LoadResource(hModule, hResInfo): + return LoadResource.ctypes_function(hModule, hResInfo) + +@Kernel32Proxy() +def LockResource(hResData): + return LockResource.ctypes_function(hResData) + +@Kernel32Proxy() +def FreeResource(hResData): + return FreeResource.ctypes_function(hResData) + +@Kernel32Proxy() +def EnumResourceTypesA(hModule, lpEnumFunc, lParam): + return EnumResourceTypesA.ctypes_function(hModule, lpEnumFunc, lParam) + +@Kernel32Proxy() +def EnumResourceTypesW(hModule, lpEnumFunc, lParam): + return EnumResourceTypesW.ctypes_function(hModule, lpEnumFunc, lParam) + +@Kernel32Proxy() +def EnumResourceNamesA(hModule, lpType, lpEnumFunc, lParam): + return EnumResourceNamesA.ctypes_function(hModule, lpType, lpEnumFunc, lParam) + +@Kernel32Proxy() +def EnumResourceNamesW(hModule, lpType, lpEnumFunc, lParam): + return EnumResourceNamesW.ctypes_function(hModule, lpType, lpEnumFunc, lParam) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winproxy/apis/ktmw32.py b/pythonmemorymodule/windows/winproxy/apis/ktmw32.py new file mode 100644 index 0000000..4bf6d92 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/ktmw32.py @@ -0,0 +1,29 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import fail_on_zero + +class Ktmw32Proxy(ApiProxy): + APIDLL = "Ktmw32" + default_error_check = staticmethod(fail_on_zero) + + +@Ktmw32Proxy() +def CommitTransaction(TransactionHandle): + return CommitTransaction.ctypes_function(TransactionHandle) + + +@Ktmw32Proxy() +def CreateTransaction(lpTransactionAttributes, UOW, CreateOptions, IsolationLevel, IsolationFlags, Timeout, Description): + return CreateTransaction.ctypes_function(lpTransactionAttributes, UOW, CreateOptions, IsolationLevel, IsolationFlags, Timeout, Description) + + +@Ktmw32Proxy() +def RollbackTransaction(TransactionHandle): + return RollbackTransaction.ctypes_function(TransactionHandle) + + +@Ktmw32Proxy() +def OpenTransaction(dwDesiredAccess, TransactionId): + return OpenTransaction.ctypes_function(dwDesiredAccess, TransactionId) diff --git a/pythonmemorymodule/windows/winproxy/apis/netapi32.py b/pythonmemorymodule/windows/winproxy/apis/netapi32.py new file mode 100644 index 0000000..516e015 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/netapi32.py @@ -0,0 +1,58 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import succeed_on_zero + +class NetApi32Proxy(ApiProxy): + APIDLL = "netapi32" + default_error_check = staticmethod(succeed_on_zero) + + +@NetApi32Proxy() +def NetLocalGroupGetMembers(servername, localgroupname, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle): + return NetLocalGroupGetMembers.ctypes_function(servername, localgroupname, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle) + +@NetApi32Proxy() +def NetQueryDisplayInformation(ServerName, Level, Index, EntriesRequested, PreferredMaximumLength, ReturnedEntryCount, SortedBuffer): + return NetQueryDisplayInformation.ctypes_function(ServerName, Level, Index, EntriesRequested, PreferredMaximumLength, ReturnedEntryCount, SortedBuffer) + +@NetApi32Proxy() +def NetUserEnum(servername, level, filter, bufptr, prefmaxlen, entriesread, totalentries, resume_handle): + return NetUserEnum.ctypes_function(servername, level, filter, bufptr, prefmaxlen, entriesread, totalentries, resume_handle) + +@NetApi32Proxy() +def NetGroupEnum(servername, level, bufptr, prefmaxlen, entriesread, totalentries, resume_handle): + return NetGroupEnum.ctypes_function(servername, level, bufptr, prefmaxlen, entriesread, totalentries, resume_handle) + +@NetApi32Proxy() +def NetGroupGetInfo(servername, groupname, level, bufptr): + return NetGroupGetInfo.ctypes_function(servername, groupname, level, bufptr) + +@NetApi32Proxy() +def NetGroupGetUsers(servername, groupname, level, bufptr, prefmaxlen, entriesread, totalentries, ResumeHandle): + return NetGroupGetUsers.ctypes_function(servername, groupname, level, bufptr, prefmaxlen, entriesread, totalentries, ResumeHandle) + +@NetApi32Proxy() +def NetLocalGroupEnum(servername, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle): + return NetLocalGroupEnum.ctypes_function(servername, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle) + +@NetApi32Proxy() +def NetLocalGroupGetInfo(servername, groupname, level, bufptr): + return NetLocalGroupGetInfo.ctypes_function(servername, groupname, level, bufptr) + +@NetApi32Proxy() +def NetLocalGroupGetMembers(servername, localgroupname, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle): + return NetLocalGroupGetMembers.ctypes_function(servername, localgroupname, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle) + +@NetApi32Proxy() +def NetLocalGroupGetInfo(servername, groupname, level, bufptr): + return NetLocalGroupGetInfo.ctypes_function(servername, groupname, level, bufptr) + +@NetApi32Proxy() +def NetLocalGroupEnum(servername, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle): + return NetLocalGroupEnum.ctypes_function(servername, level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle) + +@NetApi32Proxy() +def NetApiBufferFree(Buffer): + return NetApiBufferFree.ctypes_function(Buffer) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winproxy/apis/ntdll.py b/pythonmemorymodule/windows/winproxy/apis/ntdll.py new file mode 100644 index 0000000..7140005 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/ntdll.py @@ -0,0 +1,425 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import WinproxyError, result_is_ntstatus, fail_on_zero + +class NtdllProxy(ApiProxy): + APIDLL = "ntdll" + default_error_check = staticmethod(result_is_ntstatus) + + +# Process + +@NtdllProxy() +def NtOpenProcess(ProcessHandle, DesiredAccess, ObjectAttributes, ClientId): + return NtOpenProcess.ctypes_function(ProcessHandle, DesiredAccess, ObjectAttributes, ClientId) + +@NtdllProxy() +def NtTerminateProcess(ProcessHandle, ExitStatus): + return NtTerminateProcess.ctypes_function(ProcessHandle, ExitStatus) + +# Memory + +@NtdllProxy() +def NtReadVirtualMemory(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead): + return NtReadVirtualMemory.ctypes_function(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead) + +@NtdllProxy() +def NtWriteVirtualMemory(ProcessHandle, BaseAddress, Buffer, NumberOfBytesToWrite, NumberOfBytesWritten): + return NtWriteVirtualMemory.ctypes_function(ProcessHandle, BaseAddress, Buffer, NumberOfBytesToWrite, NumberOfBytesWritten) + +# Wow64 + +@NtdllProxy() +def NtWow64ReadVirtualMemory64(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead=None): + return NtWow64ReadVirtualMemory64.ctypes_function(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead) + +@NtdllProxy() +def NtWow64WriteVirtualMemory64(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesWritten=None): + return NtWow64WriteVirtualMemory64.ctypes_function(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesWritten) + +# File + +@NtdllProxy() +def NtCreateFile(FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, AllocationSize, FileAttributes, ShareAccess, CreateDisposition, CreateOptions, EaBuffer, EaLength): + return NtCreateFile.ctypes_function(FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, AllocationSize, FileAttributes, ShareAccess, CreateDisposition, CreateOptions, EaBuffer, EaLength) + +@NtdllProxy() +def NtOpenFile(FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, ShareAccess, OpenOptions): + return NtOpenFile.ctypes_function(FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, ShareAccess, OpenOptions) + + +@NtdllProxy() +def NtSetInformationFile(FileHandle, IoStatusBlock, FileInformation, Length, FileInformationClass): + return NtSetInformationFile.ctypes_function(FileHandle, IoStatusBlock, FileInformation, Length, FileInformationClass) + +@NtdllProxy() +def NtQueryInformationFile(FileHandle, IoStatusBlock, FileInformation, Length=None, FileInformationClass=NeededParameter): + if Length is None: + Length = ctypes.sizeof(FileInformation) + return NtQueryInformationFile.ctypes_function(FileHandle, IoStatusBlock, FileInformation, Length, FileInformationClass) + +@NtdllProxy() +def NtQueryDirectoryFile(FileHandle, Event=None, ApcRoutine=None, ApcContext=None, IoStatusBlock=NeededParameter, FileInformation=NeededParameter, Length=None, FileInformationClass=NeededParameter, ReturnSingleEntry=NeededParameter, FileName=None, RestartScan=NeededParameter): + if Length is None: + Length = ctypes.sizeof(FileInformation) + return NtQueryDirectoryFile.ctypes_function(FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, FileInformation, Length, FileInformationClass, ReturnSingleEntry, FileName, RestartScan) + +@NtdllProxy() +def NtQueryVolumeInformationFile(FileHandle, IoStatusBlock, FsInformation, Length=None, FsInformationClass=NeededParameter): + if Length is None: + Length = ctypes.sizeof(FsInformation) + return NtQueryVolumeInformationFile.ctypes_function(FileHandle, IoStatusBlock, FsInformation, Length, FsInformationClass) + +@NtdllProxy() +def NtQueryEaFile(FileHandle, IoStatusBlock, Buffer, Length, ReturnSingleEntry, EaList, EaListLength, EaIndex, RestartScan): + return NtQueryEaFile.ctypes_function(FileHandle, IoStatusBlock, Buffer, Length, ReturnSingleEntry, EaList, EaListLength, EaIndex, RestartScan) + +@NtdllProxy() +def NtSetEaFile(FileHandle, IoStatusBlock, Buffer, Length): + return NtSetEaFile.ctypes_function(FileHandle, IoStatusBlock, Buffer, Length) + + +# Process + +@NtdllProxy() +def NtQueryInformationProcess(ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength=0, ReturnLength=None): + if ProcessInformation is not None and ProcessInformationLength == 0: + ProcessInformationLength = ctypes.sizeof(ProcessInformation) + if type(ProcessInformation) == gdef.PROCESS_BASIC_INFORMATION: + ProcessInformation = ctypes.byref(ProcessInformation) + if ReturnLength is None: + ReturnLength = ctypes.byref(gdef.ULONG()) + return NtQueryInformationProcess.ctypes_function(ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength, ReturnLength) + +@NtdllProxy() +def NtSetInformationProcess(ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength=0): + if not ProcessInformationLength: + ProcessInformationLength = ctypes.sizeof(ProcessInformation) + return NtSetInformationProcess.ctypes_function(ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength) + + +@NtdllProxy() +def LdrLoadDll(PathToFile, Flags, ModuleFileName, ModuleHandle): + return LdrLoadDll.ctypes_function(PathToFile, Flags, ModuleFileName, ModuleHandle) + +@NtdllProxy() +def RtlGetUnloadEventTraceEx(ElementSize, ElementCount, EventTrace): + return RtlGetUnloadEventTraceEx.ctypes_function(ElementSize, ElementCount, EventTrace) + + +# Thread + +@NtdllProxy() +def NtGetContextThread(hThread, lpContext): + return NtGetContextThread.ctypes_function(hThread, lpContext) + +@NtdllProxy() +def NtQueryInformationThread(ThreadHandle, ThreadInformationClass, ThreadInformation, ThreadInformationLength=0, ReturnLength=None): + if ReturnLength is None: + ReturnLength = ctypes.byref(gdef.ULONG()) + if ThreadInformation is not None and ThreadInformationLength == 0: + ThreadInformationLength = ctypes.sizeof(ThreadInformation) + return NtQueryInformationThread.ctypes_function(ThreadHandle, ThreadInformationClass, ThreadInformation, ThreadInformationLength, ReturnLength) + + +@NtdllProxy() +def NtCreateProcessEx(ProcessHandle, DesiredAccess, ObjectAttributes=None, ParentProcess=NeededParameter, Flags=NeededParameter, SectionHandle=NeededParameter, DebugPort=None, ExceptionPort=None, InJob=False): + return NtCreateProcessEx.ctypes_function(ProcessHandle, DesiredAccess, ObjectAttributes, ParentProcess, Flags, SectionHandle, DebugPort, ExceptionPort, InJob) + +@NtdllProxy() +def NtCreateThreadEx(ThreadHandle=None, DesiredAccess=0x1fffff, ObjectAttributes=0, ProcessHandle=NeededParameter, lpStartAddress=NeededParameter, lpParameter=NeededParameter, CreateSuspended=0, dwStackSize=0, Unknown1=0, Unknown2=0, Unknown=0): + if ThreadHandle is None: + ThreadHandle = ctypes.byref(gdef.HANDLE()) + return NtCreateThreadEx.ctypes_function(ThreadHandle, DesiredAccess, ObjectAttributes, ProcessHandle, lpStartAddress, lpParameter, CreateSuspended, dwStackSize, Unknown1, Unknown2, Unknown3) + + +@NtdllProxy() +def NtSetContextThread(hThread, lpContext): + return NtSetContextThread.ctypes_function(hThread, lpContext) + +@NtdllProxy() +def NtDelayExecution(Alertable, DelayInterval): + return NtDelayExecution.ctypes_function(Alertable, DelayInterval) + + +# Memory + +@NtdllProxy() +def NtAllocateVirtualMemory(ProcessHandle, BaseAddress, ZeroBits, RegionSize, AllocationType, Protect): + return NtAllocateVirtualMemory.ctypes_function(ProcessHandle, BaseAddress, ZeroBits, RegionSize, AllocationType, Protect) + + +@NtdllProxy() +def NtFreeVirtualMemory(ProcessHandle, BaseAddress, RegionSize, FreeType): + return NtFreeVirtualMemory.ctypes_function(ProcessHandle, BaseAddress, RegionSize, FreeType) + +@NtdllProxy() +def NtProtectVirtualMemory(ProcessHandle, BaseAddress, NumberOfBytesToProtect, NewAccessProtection, OldAccessProtection=None): + if OldAccessProtection is None: + OldAccessProtection = gdef.DWORD() + return NtProtectVirtualMemory.ctypes_function(ProcessHandle, BaseAddress, NumberOfBytesToProtect, NewAccessProtection, OldAccessProtection) + +@NtdllProxy() +def NtQueryVirtualMemory(ProcessHandle, BaseAddress, MemoryInformationClass, MemoryInformation=NeededParameter, MemoryInformationLength=0, ReturnLength=None): + if ReturnLength is None: + ReturnLength = ctypes.byref(gdef.ULONG()) + if MemoryInformation is not None and MemoryInformationLength == 0: + ProcessInformationLength = ctypes.sizeof(MemoryInformation) + if type(MemoryInformation) == gdef.MEMORY_BASIC_INFORMATION64: + MemoryInformation = ctypes.byref(MemoryInformation) + return NtQueryVirtualMemory.ctypes_function(ProcessHandle, BaseAddress, MemoryInformationClass, MemoryInformation=NeededParameter, MemoryInformationLength=0, ReturnLength=None) + + +# System + +def ntquerysysteminformation_error_check(func_name, result, func, args): + if result == 0: + return args + # Ignore STATUS_INFO_LENGTH_MISMATCH if SystemInformation is None + if result == gdef.STATUS_INFO_LENGTH_MISMATCH and args[1] is None: + return args + raise WinproxyError("{0} failed with NTStatus {1}".format(func_name, hex(result))) + + +@NtdllProxy(error_check=ntquerysysteminformation_error_check) +def NtQuerySystemInformation(SystemInformationClass, SystemInformation=None, SystemInformationLength=0, ReturnLength=NeededParameter): + if SystemInformation is not None and SystemInformationLength == 0: + SystemInformationLength = ctypes.sizeof(SystemInformation) + return NtQuerySystemInformation.ctypes_function(SystemInformationClass, SystemInformation, SystemInformationLength, ReturnLength) + +# path + +@NtdllProxy(error_check=fail_on_zero) +def RtlDosPathNameToNtPathName_U(DosName, NtName=None, PartName=None, RelativeName=None): + return RtlDosPathNameToNtPathName_U.ctypes_function(DosName, NtName, PartName, RelativeName) + + + +# kernel Object + +@NtdllProxy() +def NtQueryObject(Handle, ObjectInformationClass, ObjectInformation=None, ObjectInformationLength=0, ReturnLength=NeededParameter): + return NtQueryObject.ctypes_function(Handle, ObjectInformationClass, ObjectInformation, ObjectInformationLength, ReturnLength) + +@NtdllProxy() +def NtOpenDirectoryObject(DirectoryHandle, DesiredAccess, ObjectAttributes): + return NtOpenDirectoryObject.ctypes_function(DirectoryHandle, DesiredAccess, ObjectAttributes) + + +@NtdllProxy() +def NtQueryDirectoryObject(DirectoryHandle, Buffer, Length, ReturnSingleEntry, RestartScan, Context, ReturnLength): + return NtQueryDirectoryObject.ctypes_function(DirectoryHandle, Buffer, Length, ReturnSingleEntry, RestartScan, Context, ReturnLength) + + +@NtdllProxy() +def NtCreateSymbolicLinkObject(pHandle, DesiredAccess, ObjectAttributes, DestinationName): + return NtCreateSymbolicLinkObject.ctypes_function(pHandle, DesiredAccess, ObjectAttributes, DestinationName) + + +@NtdllProxy() +def NtOpenSymbolicLinkObject(LinkHandle, DesiredAccess, ObjectAttributes): + return NtOpenSymbolicLinkObject.ctypes_function(LinkHandle, DesiredAccess, ObjectAttributes) + + +@NtdllProxy() +def NtQuerySymbolicLinkObject(LinkHandle, LinkTarget, ReturnedLength): + return NtQuerySymbolicLinkObject.ctypes_function(LinkHandle, LinkTarget, ReturnedLength) + + +# Event + +@NtdllProxy() +def NtOpenEvent(EventHandle, DesiredAccess, ObjectAttributes): + return NtOpenEvent.ctypes_function(EventHandle, DesiredAccess, ObjectAttributes) + + +# LPC + +@NtdllProxy() +def NtConnectPort(PortHandle, PortName, SecurityQos, ClientView, ServerView, MaxMessageLength, ConnectionInformation, ConnectionInformationLength): + return NtConnectPort.ctypes_function(PortHandle, PortName, SecurityQos, ClientView, ServerView, MaxMessageLength, ConnectionInformation, ConnectionInformationLength) + + +# ALPC + +@NtdllProxy() +def NtAlpcCreatePort(PortHandle, ObjectAttributes, PortAttributes): + return NtAlpcCreatePort.ctypes_function(PortHandle, ObjectAttributes, PortAttributes) + + +@NtdllProxy() +def NtAlpcConnectPort(PortHandle, PortName, ObjectAttributes, PortAttributes, Flags, RequiredServerSid, ConnectionMessage, BufferLength, OutMessageAttributes, InMessageAttributes, Timeout): + return NtAlpcConnectPort.ctypes_function(PortHandle, PortName, ObjectAttributes, PortAttributes, Flags, RequiredServerSid, ConnectionMessage, BufferLength, OutMessageAttributes, InMessageAttributes, Timeout) + + +@NtdllProxy() +def NtAlpcConnectPortEx(PortHandle, ConnectionPortObjectAttributes, ClientPortObjectAttributes, PortAttributes, Flags, ServerSecurityRequirements, ConnectionMessage, BufferLength, OutMessageAttributes, InMessageAttributes, Timeout): + return NtAlpcConnectPortEx.ctypes_function(PortHandle, ConnectionPortObjectAttributes, ClientPortObjectAttributes, PortAttributes, Flags, ServerSecurityRequirements, ConnectionMessage, BufferLength, OutMessageAttributes, InMessageAttributes, Timeout) + + +@NtdllProxy() +def NtAlpcAcceptConnectPort(PortHandle, ConnectionPortHandle, Flags, ObjectAttributes, PortAttributes, PortContext, ConnectionRequest, ConnectionMessageAttributes, AcceptConnection): + return NtAlpcAcceptConnectPort.ctypes_function(PortHandle, ConnectionPortHandle, Flags, ObjectAttributes, PortAttributes, PortContext, ConnectionRequest, ConnectionMessageAttributes, AcceptConnection) + + +@NtdllProxy() +def NtAlpcQueryInformation(PortHandle, PortInformationClass, PortInformation, Length, ReturnLength): + return NtAlpcQueryInformation.ctypes_function(PortHandle, PortInformationClass, PortInformation, Length, ReturnLength) + +@NtdllProxy() +def NtAlpcDisconnectPort(PortHandle, Flags): + return NtAlpcDisconnectPort.ctypes_function(PortHandle, Flags) + +@NtdllProxy() +def NtAlpcSendWaitReceivePort(PortHandle, Flags, SendMessage, SendMessageAttributes, ReceiveMessage, BufferLength, ReceiveMessageAttributes, Timeout): + return NtAlpcSendWaitReceivePort.ctypes_function(PortHandle, Flags, SendMessage, SendMessageAttributes, ReceiveMessage, BufferLength, ReceiveMessageAttributes, Timeout) + +@NtdllProxy() +def AlpcInitializeMessageAttribute(AttributeFlags, Buffer, BufferSize, RequiredBufferSize): + return AlpcInitializeMessageAttribute.ctypes_function(AttributeFlags, Buffer, BufferSize, RequiredBufferSize) + +@NtdllProxy() +def AlpcGetMessageAttribute(Buffer, AttributeFlag): + return AlpcGetMessageAttribute.ctypes_function(Buffer, AttributeFlag) + +@NtdllProxy() +def NtAlpcCreatePortSection(PortHandle, Flags, SectionHandle, SectionSize, AlpcSectionHandle, ActualSectionSize): + return NtAlpcCreatePortSection.ctypes_function(PortHandle, Flags, SectionHandle, SectionSize, AlpcSectionHandle, ActualSectionSize) + +@NtdllProxy() +def NtAlpcDeletePortSection(PortHandle, Flags, SectionHandle): + return NtAlpcDeletePortSection.ctypes_function(PortHandle, Flags, SectionHandle) + +@NtdllProxy() +def NtAlpcCreateSectionView(PortHandle, Flags, ViewAttributes): + return NtAlpcCreateSectionView.ctypes_function(PortHandle, Flags, ViewAttributes) + +@NtdllProxy() +def NtAlpcDeleteSectionView(PortHandle, Flags, ViewBase): + return NtAlpcDeleteSectionView.ctypes_function(PortHandle, Flags, ViewBase) + +@NtdllProxy() +def NtAlpcQueryInformationMessage(PortHandle, PortMessage, MessageInformationClass, MessageInformation, Length, ReturnLength): + return NtAlpcQueryInformationMessage.ctypes_function(PortHandle, PortMessage, MessageInformationClass, MessageInformation, Length, ReturnLength) + +@NtdllProxy() +def TpCallbackSendAlpcMessageOnCompletion(TpHandle, PortHandle, Flags, SendMessage): + return TpCallbackSendAlpcMessageOnCompletion.ctypes_function(TpHandle, PortHandle, Flags, SendMessage) + +@NtdllProxy() +def NtAlpcImpersonateClientOfPort(PortHandle, Message, Flags): + return NtAlpcImpersonateClientOfPort.ctypes_function(PortHandle, Message, Flags) + + +# Compression + +@NtdllProxy() +def RtlDecompressBuffer(CompressionFormat, UncompressedBuffer, UncompressedBufferSize, CompressedBuffer, CompressedBufferSize=None, FinalUncompressedSize=NeededParameter): + if CompressedBufferSize is None: + CompressedBufferSize = len(CompressedBuffer) + return RtlDecompressBuffer.ctypes_function(CompressionFormat, UncompressedBuffer, UncompressedBufferSize, CompressedBuffer, CompressedBufferSize, FinalUncompressedSize) + +@NtdllProxy() +def RtlDecompressBufferEx(CompressionFormat, UncompressedBuffer, UncompressedBufferSize, CompressedBuffer, CompressedBufferSize=None, FinalUncompressedSize=NeededParameter, WorkSpace=NeededParameter): + if CompressedBufferSize is None: + CompressedBufferSize = len(CompressedBuffer) + # TODO: automatic 'WorkSpace' size calc + allocation ? + return RtlDecompressBufferEx.ctypes_function(CompressionFormat, UncompressedBuffer, UncompressedBufferSize, CompressedBuffer, CompressedBufferSize, FinalUncompressedSize, WorkSpace) + +@NtdllProxy() +def RtlGetCompressionWorkSpaceSize(CompressionFormatAndEngine, CompressBufferWorkSpaceSize, CompressFragmentWorkSpaceSize): + return RtlGetCompressionWorkSpaceSize.ctypes_function(CompressionFormatAndEngine, CompressBufferWorkSpaceSize, CompressFragmentWorkSpaceSize) + +@NtdllProxy() +def RtlCompressBuffer(CompressionFormatAndEngine, UncompressedBuffer, UncompressedBufferSize, CompressedBuffer, CompressedBufferSize, UncompressedChunkSize=4096, FinalCompressedSize=NeededParameter, WorkSpace=NeededParameter): + return RtlCompressBuffer.ctypes_function(CompressionFormatAndEngine, UncompressedBuffer, UncompressedBufferSize, CompressedBuffer, CompressedBufferSize, UncompressedChunkSize, FinalCompressedSize, WorkSpace) + + +# Section + +@NtdllProxy() +def NtCreateSection(SectionHandle, DesiredAccess, ObjectAttributes, MaximumSize, SectionPageProtection, AllocationAttributes, FileHandle): + return NtCreateSection.ctypes_function(SectionHandle, DesiredAccess, ObjectAttributes, MaximumSize, SectionPageProtection, AllocationAttributes, FileHandle) + + +@NtdllProxy() +def NtOpenSection(SectionHandle, DesiredAccess, ObjectAttributes): + return NtOpenSection.ctypes_function(SectionHandle, DesiredAccess, ObjectAttributes) + + +@NtdllProxy() +def NtMapViewOfSection(SectionHandle, ProcessHandle, BaseAddress, ZeroBits, CommitSize, SectionOffset, ViewSize, InheritDisposition, AllocationType, Win32Protect): + return NtMapViewOfSection.ctypes_function(SectionHandle, ProcessHandle, BaseAddress, ZeroBits, CommitSize, SectionOffset, ViewSize, InheritDisposition, AllocationType, Win32Protect) + + +@NtdllProxy() +def NtUnmapViewOfSection(ProcessHandle, BaseAddress): + return NtUnmapViewOfSection.ctypes_function(ProcessHandle, BaseAddress) + +# Registry + +@NtdllProxy() +def NtOpenKey(KeyHandle, DesiredAccess, ObjectAttributes): + return NtOpenKey.ctypes_function(KeyHandle, DesiredAccess, ObjectAttributes) + +@NtdllProxy() +def NtCreateKey(pKeyHandle, DesiredAccess, ObjectAttributes, TitleIndex, Class, CreateOptions, Disposition): + return NtCreateKey.ctypes_function(pKeyHandle, DesiredAccess, ObjectAttributes, TitleIndex, Class, CreateOptions, Disposition) + +@NtdllProxy() +def NtSetValueKey(KeyHandle, ValueName, TitleIndex, Type, Data, DataSize): + return NtSetValueKey.ctypes_function(KeyHandle, ValueName, TitleIndex, Type, Data, DataSize) + +@NtdllProxy() +def NtQueryValueKey(KeyHandle, ValueName, KeyValueInformationClass, KeyValueInformation, Length, ResultLength): + return NtQueryValueKey.ctypes_function(KeyHandle, ValueName, KeyValueInformationClass, KeyValueInformation, Length, ResultLength) + +@NtdllProxy() +def NtEnumerateValueKey(KeyHandle, Index, KeyValueInformationClass, KeyValueInformation, Length, ResultLength): + return NtEnumerateValueKey.ctypes_function(KeyHandle, Index, KeyValueInformationClass, KeyValueInformation, Length, ResultLength) + +@NtdllProxy() +def NtDeleteValueKey(KeyHandle, ValueName): + return NtDeleteValueKey.ctypes_function(KeyHandle, ValueName) + +@NtdllProxy() +def NtQueryLicenseValue(Name, Type, Buffer, Length=None, DataLength=NeededParameter): + if Length is None and Buffer: + Length = len(buffer) + return NtQueryLicenseValue.ctypes_function(Name, Type, Buffer, Length, DataLength) + +@NtdllProxy() +def NtQueryKey(KeyHandle, KeyInformationClass, KeyInformation, Length, ResultLength): + return NtQueryKey.ctypes_function(KeyHandle, KeyInformationClass, KeyInformation, Length, ResultLength) + +# Other + +@NtdllProxy() +def RtlEqualUnicodeString(String1, String2, CaseInSensitive): + return RtlEqualUnicodeString.ctypes_function(String1, String2, CaseInSensitive) + +@NtdllProxy(error_check=None) +def RtlMoveMemory(Destination, Source, Length): + return RtlMoveMemory.ctypes_function(Destination, Source, Length) + + +# Firmware +@NtdllProxy() +def NtEnumerateSystemEnvironmentValuesEx(InformationClass, Buffer, BufferLength): + return NtEnumerateSystemEnvironmentValuesEx.ctypes_function(InformationClass, Buffer, BufferLength) + + +# Pipe +@NtdllProxy() +def NtCreateNamedPipeFile(NamedPipeFileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, ShareAccess, CreateDisposition, CreateOptions, WriteModeMessage, ReadModeMessage, NonBlocking, MaxInstances, InBufferSize, OutBufferSize, DefaultTimeOut): + return NtCreateNamedPipeFile.ctypes_function(NamedPipeFileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, ShareAccess, CreateDisposition, CreateOptions, WriteModeMessage, ReadModeMessage, NonBlocking, MaxInstances, InBufferSize, OutBufferSize, DefaultTimeOut) + + +######### + + + + + diff --git a/pythonmemorymodule/windows/winproxy/apis/ole32.py b/pythonmemorymodule/windows/winproxy/apis/ole32.py new file mode 100644 index 0000000..2d490cb --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/ole32.py @@ -0,0 +1,49 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import no_error_check + +# IMPORTANT: +# Functions that returns HRESULT (like CoInitializeEx) will raise if HRESULT is an error +# even if there is no error check on the return value + +class Ole32Proxy(ApiProxy): + APIDLL = "ole32" + default_error_check = staticmethod(no_error_check) + + +@Ole32Proxy() +def CoInitializeEx(pvReserved=None, dwCoInit=gdef.COINIT_MULTITHREADED): + return CoInitializeEx.ctypes_function(pvReserved, dwCoInit) + + +@Ole32Proxy() +def CoInitializeSecurity(pSecDesc, cAuthSvc, asAuthSvc, pReserved1, dwAuthnLevel, dwImpLevel, pAuthList, dwCapabilities, pReserved3): + return CoInitializeSecurity.ctypes_function(pSecDesc, cAuthSvc, asAuthSvc, pReserved1, dwAuthnLevel, dwImpLevel, pAuthList, dwCapabilities, pReserved3) + + +@Ole32Proxy() +def CoCreateInstance(rclsid, pUnkOuter=None, dwClsContext=gdef.CLSCTX_INPROC_SERVER, riid=NeededParameter, ppv=NeededParameter): + return CoCreateInstance.ctypes_function(rclsid, pUnkOuter, dwClsContext, riid, ppv) + +@Ole32Proxy() +def CoCreateInstanceEx(rclsid, punkOuter, dwClsCtx, pServerInfo, dwCount, pResults): + return CoCreateInstanceEx.ctypes_function(rclsid, punkOuter, dwClsCtx, pServerInfo, dwCount, pResults) + + +@Ole32Proxy() +def CoGetClassObject(rclsid, dwClsContext, pvReserved, riid, ppv): + return CoGetClassObject.ctypes_function(rclsid, dwClsContext, pvReserved, riid, ppv) + +@Ole32Proxy() +def CoGetInterceptor(iidIntercepted, punkOuter, iid, ppv): + return CoGetInterceptor.ctypes_function(iidIntercepted, punkOuter, iid, ppv) + +@Ole32Proxy() +def CLSIDFromProgID(lpszProgID, lpclsid): + return CLSIDFromProgID.ctypes_function(lpszProgID, lpclsid) + +@Ole32Proxy() +def CoTaskMemFree(pv): + return CoTaskMemFree.ctypes_function(pv) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winproxy/apis/oleacc.py b/pythonmemorymodule/windows/winproxy/apis/oleacc.py new file mode 100644 index 0000000..cd4b50b --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/oleacc.py @@ -0,0 +1,13 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter, is_implemented +from ..error import succeed_on_zero + +class OleaccProxy(ApiProxy): + APIDLL = "Oleacc" + default_error_check = staticmethod(succeed_on_zero) + +@OleaccProxy() +def ObjectFromLresult(lResult, riid, wParam, ppvObject): + return ObjectFromLresult.ctypes_function(lResult, riid, wParam, ppvObject) diff --git a/pythonmemorymodule/windows/winproxy/apis/oleaut32.py b/pythonmemorymodule/windows/winproxy/apis/oleaut32.py new file mode 100644 index 0000000..e77733f --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/oleaut32.py @@ -0,0 +1,43 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import no_error_check, fail_on_zero, succeed_on_zero + +# IMPORTANT: +# Functions that returns HRESULT (like CoInitializeEx) will raise if HRESULT is an error +# even if there is no error check on the return value + +class Ole32Proxy(ApiProxy): + APIDLL = "oleaut32" + default_error_check = staticmethod(no_error_check) + + +@Ole32Proxy() +def SysAllocString(psz): + return SysAllocString.ctypes_function(psz) + + +@Ole32Proxy() +def SysFreeString(bstrString): + return SysFreeString.ctypes_function(bstrString) + +@Ole32Proxy(error_check=fail_on_zero) +def SafeArrayCreate(vt, cDims, rgsabound): + return SafeArrayCreate.ctypes_function(vt, cDims, rgsabound) + + +@Ole32Proxy(error_check=succeed_on_zero) +def SafeArrayDestroy(psa): + return SafeArrayDestroy.ctypes_function(psa) + + +@Ole32Proxy(error_check=succeed_on_zero) +def SafeArrayPutElement(psa, rgIndices, pv): + return SafeArrayPutElement.ctypes_function(psa, rgIndices, pv) + + +@Ole32Proxy(error_check=succeed_on_zero) +def SafeArrayGetElement(psa, rgIndices, pv): + return SafeArrayGetElement.ctypes_function(psa, rgIndices, pv) + diff --git a/pythonmemorymodule/windows/winproxy/apis/psapi.py b/pythonmemorymodule/windows/winproxy/apis/psapi.py new file mode 100644 index 0000000..5b7690c --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/psapi.py @@ -0,0 +1,58 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import fail_on_zero + +class PsapiProxy(ApiProxy): + APIDLL = "psapi" + default_error_check = staticmethod(fail_on_zero) + + +@PsapiProxy() +def GetMappedFileNameW(hProcess, lpv, lpFilename, nSize=None): + if nSize is None: + nSize = ctypes.sizeof(lpFilename) + return GetMappedFileNameW.ctypes_function(hProcess, lpv, lpFilename, nSize) + +@PsapiProxy() +def GetMappedFileNameA(hProcess, lpv, lpFilename, nSize=None): + if nSize is None: + nSize = ctypes.sizeof(lpFilename) + return GetMappedFileNameA.ctypes_function(hProcess, lpv, lpFilename, nSize) + +@PsapiProxy() +def QueryWorkingSet(hProcess, pv, cb): + return QueryWorkingSet.ctypes_function(hProcess, pv, cb) + +@PsapiProxy() +def QueryWorkingSetEx(hProcess, pv, cb): + return QueryWorkingSetEx.ctypes_function(hProcess, pv, cb) + +@PsapiProxy() +def GetModuleBaseNameA(hProcess, hModule, lpBaseName, nSize=None): + if nSize is None: + nSize = len(lpBaseName) + return GetModuleBaseNameA.ctypes_function(hProcess, hModule, lpBaseName, nSize) + +@PsapiProxy() +def GetModuleBaseNameW(hProcess, hModule, lpBaseName, nSize=None): + if nSize is None: + nSize = len(lpBaseName) + return GetModuleBaseNameW.ctypes_function(hProcess, hModule, lpBaseName, nSize) + +@PsapiProxy() +def GetProcessImageFileNameA(hProcess, lpImageFileName, nSize=None): + if nSize is None: + nSize = len(lpImageFileName) + return GetProcessImageFileNameA.ctypes_function(hProcess, lpImageFileName, nSize) + +@PsapiProxy() +def GetProcessImageFileNameW(hProcess, lpImageFileName, nSize=None): + if nSize is None: + nSize = len(lpImageFileName) + return GetProcessImageFileNameW.ctypes_function(hProcess, lpImageFileName, nSize) + +@PsapiProxy() +def GetProcessMemoryInfo(Process, ppsmemCounters, cb): + return GetProcessMemoryInfo.ctypes_function(Process, ppsmemCounters, cb) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winproxy/apis/setupapi.py b/pythonmemorymodule/windows/winproxy/apis/setupapi.py new file mode 100644 index 0000000..059f0de --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/setupapi.py @@ -0,0 +1,78 @@ +import ctypes +from ctypes import wintypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter, is_implemented +from ..error import succeed_on_zero, fail_on_zero, result_is_handle, no_error_check + + +MAX_CLASS_NAME_LEN = 32 +MAX_DEV_LEN = 1000 + + +class SetupApiProxy(ApiProxy): + APIDLL = "SetupApi" + default_error_check = staticmethod(fail_on_zero) + + +@SetupApiProxy() +def SetupDiClassNameFromGuidA(ClassGuid, ClassName, ClassNameSize=None, RequiredSize=None): + """ + Given a class Guid, return the name associated or raise an Exception + """ + if ClassNameSize is None: + ClassNameSize = ctypes.sizeof(ClassName) + return SetupDiClassNameFromGuidA.ctypes_function(ClassGuid, ClassName, ClassNameSize, RequiredSize) + + +@SetupApiProxy() +def SetupDiClassNameFromGuidW(Guid): + + """ + Given a class Guid, return the name associated or raise an Exception + """ + if ClassNameSize is None: + ClassNameSize = ctypes.sizeof(ClassName) + return SetupDiClassNameFromGuidW.ctypes_function(ClassGuid, ClassName, ClassNameSize, RequiredSize) + + +@SetupApiProxy(error_check=result_is_handle) +def SetupDiGetClassDevsA(Guid, Enumerator=None, hwndParent=None, Flags=0): + """ + Given a class GUID, return a HANDLE to the device's information set or raise an Exception + """ + return SetupDiGetClassDevsA.ctypes_function(Guid, Enumerator, hwndParent, Flags) + +@SetupApiProxy(error_check=result_is_handle) +def SetupDiGetClassDevsW(Guid, Enumerator=None, hwndParent=None, Flags=0): + """ + Given a class GUID, return a HANDLE to the device's information set or raise an Exception + """ + return SetupDiGetClassDevsW.ctypes_function(Guid, Enumerator, hwndParent, Flags) + +@SetupApiProxy() +def SetupDiEnumDeviceInfo(DeviceInfoSet, MemberIndex, DeviceInfoData): + """ + Given a device information set, return the info associated with the index + or raise ERROR_NO_MORE_ITEMS if there is none anymore. + """ + return SetupDiEnumDeviceInfo.ctypes_function(DeviceInfoSet, MemberIndex, DeviceInfoData) + +@SetupApiProxy() +def SetupDiEnumDeviceInterfaces(DeviceInfoSet, DeviceInfoData, InterfaceClassGuid, MemberIndex, DeviceInterfaceData): + return SetupDiEnumDeviceInterfaces.ctypes_function(DeviceInfoSet, DeviceInfoData, InterfaceClassGuid, MemberIndex, DeviceInterfaceData) + +@SetupApiProxy() +def SetupDiGetDeviceRegistryPropertyA(DeviceInfoSet, DeviceInfoData, Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize, RequiredSize): + return SetupDiGetDeviceRegistryPropertyA.ctypes_function(DeviceInfoSet, DeviceInfoData, Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize, RequiredSize) + +@SetupApiProxy() +def SetupDiGetDeviceRegistryPropertyW(DeviceInfoSet, DeviceInfoData, Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize, RequiredSize): + return SetupDiGetDeviceRegistryPropertyW.ctypes_function(DeviceInfoSet, DeviceInfoData, Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize, RequiredSize) + + + + +@SetupApiProxy() +def SetupDiDestroyDeviceInfoList(hDevInfo): + return SetupDiDestroyDeviceInfoList.ctypes_function(hDevInfo) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winproxy/apis/shell32.py b/pythonmemorymodule/windows/winproxy/apis/shell32.py new file mode 100644 index 0000000..2954efd --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/shell32.py @@ -0,0 +1,29 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import fail_on_zero, succeed_on_zero + +class Shell32Proxy(ApiProxy): + APIDLL = "shell32" + default_error_check = staticmethod(fail_on_zero) + +@Shell32Proxy() +def ShellExecuteA(hwnd, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd): + return ShellExecuteA.ctypes_function(hwnd, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd) + +@Shell32Proxy() +def ShellExecuteW(hwnd, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd): + return ShellExecuteW.ctypes_function(hwnd, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd) + +@Shell32Proxy() +def SHGetPathFromIDListA(pidl, pszPath): + return SHGetPathFromIDListA.ctypes_function(pidl, pszPath) + +@Shell32Proxy() +def SHGetPathFromIDListW(pidl, pszPath): + return SHGetPathFromIDListW.ctypes_function(pidl, pszPath) + +@Shell32Proxy(error_check=succeed_on_zero) +def SHFileOperationA(lpFileOp): + return SHFileOperationA.ctypes_function(lpFileOp) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winproxy/apis/shlwapi.py b/pythonmemorymodule/windows/winproxy/apis/shlwapi.py new file mode 100644 index 0000000..dd5a721 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/shlwapi.py @@ -0,0 +1,27 @@ +import ctypes +import windows +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter, is_implemented +from ..error import fail_on_zero + +class ShlwapiProxy(ApiProxy): + APIDLL = "Shlwapi" + default_error_check = staticmethod(fail_on_zero) + +@ShlwapiProxy() +def StrStrIW(pszFirst, pszSrch): + return StrStrIW.ctypes_function(pszFirst, pszSrch) + +@ShlwapiProxy() +def StrStrIA(pszFirst, pszSrch): + return StrStrIA.ctypes_function(pszFirst, pszSrch) + +@ShlwapiProxy() +def IsOS(dwOS): + if not is_implemented(IsOS) and windows.system.version[0] < 6: + # Before Vista: + # If so use ordinal 437 from DOCUMENTATION + # https://docs.microsoft.com/en-us/windows/desktop/api/shlwapi/nf-shlwapi-isos#remarks + IsOS.proxy.func_name = 437 + return IsOS.ctypes_function(dwOS) diff --git a/pythonmemorymodule/windows/winproxy/apis/tdh.py b/pythonmemorymodule/windows/winproxy/apis/tdh.py new file mode 100644 index 0000000..4db3a9f --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/tdh.py @@ -0,0 +1,16 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import result_is_error_code + +# TDH: Trace Data Helper +# https://docs.microsoft.com/en-us/windows/desktop/etw/retrieving-event-data-using-tdh + +class TdhProxy(ApiProxy): + APIDLL = "tdh" + default_error_check = staticmethod(result_is_error_code) + +@TdhProxy() +def TdhEnumerateProviders(pBuffer, pBufferSize): + return TdhEnumerateProviders.ctypes_function(pBuffer, pBufferSize) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winproxy/apis/user32.py b/pythonmemorymodule/windows/winproxy/apis/user32.py new file mode 100644 index 0000000..98b16bc --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/user32.py @@ -0,0 +1,119 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import fail_on_zero, no_error_check + +class User32Proxy(ApiProxy): + APIDLL = "user32" + default_error_check = staticmethod(fail_on_zero) + + +# Window + +@User32Proxy() +def EnumWindows(lpEnumFunc, lParam): + return EnumWindows.ctypes_function(lpEnumFunc, lParam) + +@User32Proxy() +def GetParent(hWnd): + return GetParent.ctypes_function(hWnd) + +@User32Proxy(error_check=no_error_check) +def GetWindowTextA(hWnd, lpString, nMaxCount): + return GetWindowTextA.ctypes_function(hWnd, lpString, nMaxCount) + +@User32Proxy() +def GetWindowTextW(hWnd, lpString, nMaxCount): + return GetWindowTextW.ctypes_function(hWnd, lpString, nMaxCount) + +@User32Proxy() +def FindWindowA(lpClassName, lpWindowName): + return FindWindowA.ctypes_function(lpClassName, lpWindowName) + +@User32Proxy() +def FindWindowW(lpClassName, lpWindowName): + return FindWindowW.ctypes_function(lpClassName, lpWindowName) + +@User32Proxy() +def GetWindowModuleFileNameA(hwnd, pszFileName, cchFileNameMax): + return GetWindowModuleFileNameA.ctypes_function(hwnd, pszFileName, cchFileNameMax) + +@User32Proxy() +def GetWindowModuleFileNameW(hwnd, pszFileName, cchFileNameMax): + return GetWindowModuleFileNameW.ctypes_function(hwnd, pszFileName, cchFileNameMax) + +@User32Proxy() +def EnumChildWindows(hWndParent, lpEnumFunc, lParam): + return EnumChildWindows.ctypes_function(hWndParent, lpEnumFunc, lParam) + +@User32Proxy() +def GetClassInfoExA(hinst, lpszClass, lpwcx): + return GetClassInfoExA.ctypes_function(hinst, lpszClass, lpwcx) + +@User32Proxy() +def GetClassInfoExW(hinst, lpszClass, lpwcx): + return GetClassInfoExW.ctypes_function(hinst, lpszClass, lpwcx) + +@User32Proxy() +def GetWindowThreadProcessId(hWnd, lpdwProcessId): + return GetWindowThreadProcessId.ctypes_function(hWnd, lpdwProcessId) + +@User32Proxy() +def WindowFromPoint(Point): + return WindowFromPoint.ctypes_function(Point) + +@User32Proxy() +def GetWindowRect(hWnd, lpRect): + return GetWindowRect.ctypes_function(hWnd, lpRect) + +@User32Proxy("RealGetWindowClassA") +def RealGetWindowClassA(hwnd, pszType, cchType=None): + if cchType is None: + cchType = len(pszType) + return RealGetWindowClassA.ctypes_function(hwnd, pszType, cchType) + +@User32Proxy("RealGetWindowClassW") +def RealGetWindowClassW(hwnd, pszType, cchType=None): + if cchType is None: + cchType = len(pszType) + return RealGetWindowClassW.ctypes_function(hwnd, pszType, cchType) + +@User32Proxy("GetClassNameA") +def GetClassNameA (hwnd, pszType, cchType=None): + if cchType is None: + cchType = len(pszType) + return GetClassNameA .ctypes_function(hwnd, pszType, cchType) + +@User32Proxy("GetClassNameW") +def GetClassNameW (hwnd, pszType, cchType=None): + if cchType is None: + cchType = len(pszType) + return GetClassNameW .ctypes_function(hwnd, pszType, cchType) + +## Windows Message + +@User32Proxy() +def MessageBoxA(hWnd=0, lpText=NeededParameter, lpCaption=None, uType=0): + return MessageBoxA.ctypes_function(hWnd, lpText, lpCaption, uType) + +@User32Proxy() +def MessageBoxW(hWnd=0, lpText=NeededParameter, lpCaption=None, uType=0): + return MessageBoxW.ctypes_function(hWnd, lpText, lpCaption, uType) + +# Cursor + +@User32Proxy() +def GetCursorPos(lpPoint): + return GetCursorPos.ctypes_function(lpPoint) + +# System + + +# If the function succeeds, the return value is the requested system metric or configuration setting. +# If the function fails, the return value is 0. GetLastError does not provide extended error information. +# And 0 is also a valid return value.. Thanks a lot.. + +@User32Proxy(error_check=no_error_check) +def GetSystemMetrics(nIndex): + return GetSystemMetrics.ctypes_function(nIndex) diff --git a/pythonmemorymodule/windows/winproxy/apis/version.py b/pythonmemorymodule/windows/winproxy/apis/version.py new file mode 100644 index 0000000..2c00d0d --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/version.py @@ -0,0 +1,67 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import fail_on_zero + +class VersionProxy(ApiProxy): + APIDLL = "version" + default_error_check = staticmethod(fail_on_zero) + + +@VersionProxy() +def GetFileVersionInfoA(lptstrFilename, dwHandle=0, dwLen=None, lpData=NeededParameter): + if dwLen is None and lpData is not None: + dwLen = len(lpData) + return GetFileVersionInfoA.ctypes_function(lptstrFilename, dwHandle, dwLen, lpData) + + +@VersionProxy() +def GetFileVersionInfoW(lptstrFilename, dwHandle=0, dwLen=None, lpData=NeededParameter): + if dwLen is None and lpData is not None: + dwLen = len(lpData) + return GetFileVersionInfoW.ctypes_function(lptstrFilename, dwHandle, dwLen, lpData) + + +@VersionProxy() +def GetFileVersionInfoExA(dwFlags, lpwstrFilename, dwHandle, dwLen, lpData): + return GetFileVersionInfoExA.ctypes_function(dwFlags, lpwstrFilename, dwHandle, dwLen, lpData) + + +@VersionProxy() +def GetFileVersionInfoExW(dwFlags, lpwstrFilename, dwHandle, dwLen, lpData): + return GetFileVersionInfoExW.ctypes_function(dwFlags, lpwstrFilename, dwHandle, dwLen, lpData) + + +@VersionProxy() +def GetFileVersionInfoSizeA(lptstrFilename, lpdwHandle=None): + if lpdwHandle is None: + lpdwHandle = ctypes.byref(gdef.DWORD()) + return GetFileVersionInfoSizeA.ctypes_function(lptstrFilename, lpdwHandle) + + +@VersionProxy() +def GetFileVersionInfoSizeW(lptstrFilename, lpdwHandle=None): + if lpdwHandle is None: + lpdwHandle = ctypes.byref(gdef.DWORD()) + return GetFileVersionInfoSizeW.ctypes_function(lptstrFilename, lpdwHandle) + + +@VersionProxy() +def GetFileVersionInfoSizeExA(dwFlags, lpwstrFilename, lpdwHandle=None): + return GetFileVersionInfoSizeExA.ctypes_function(dwFlags, lpwstrFilename, lpdwHandle) + + +@VersionProxy() +def GetFileVersionInfoSizeExW(dwFlags, lpwstrFilename, lpdwHandle=None): + return GetFileVersionInfoSizeExW.ctypes_function(dwFlags, lpwstrFilename, lpdwHandle) + + +@VersionProxy() +def VerQueryValueA(pBlock, lpSubBlock, lplpBuffer, puLen): + return VerQueryValueA.ctypes_function(pBlock, lpSubBlock, lplpBuffer, puLen) + + +@VersionProxy() +def VerQueryValueW(pBlock, lpSubBlock, lplpBuffer, puLen): + return VerQueryValueW.ctypes_function(pBlock, lpSubBlock, lplpBuffer, puLen) diff --git a/pythonmemorymodule/windows/winproxy/apis/virtdisk.py b/pythonmemorymodule/windows/winproxy/apis/virtdisk.py new file mode 100644 index 0000000..7352ff0 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/virtdisk.py @@ -0,0 +1,18 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import no_error_check, result_is_error_code + +class VirtDiskProxy(ApiProxy): + APIDLL = "virtdisk" + default_error_check = staticmethod(result_is_error_code) + + +@VirtDiskProxy() +def OpenVirtualDisk(VirtualStorageType, Path, VirtualDiskAccessMask, Flags, Parameters, Handle): + return OpenVirtualDisk.ctypes_function(VirtualStorageType, Path, VirtualDiskAccessMask, Flags, Parameters, Handle) + +@VirtDiskProxy() +def AttachVirtualDisk(VirtualDiskHandle, SecurityDescriptor, Flags, ProviderSpecificFlags, Parameters, Overlapped): + return AttachVirtualDisk.ctypes_function(VirtualDiskHandle, SecurityDescriptor, Flags, ProviderSpecificFlags, Parameters, Overlapped) diff --git a/pythonmemorymodule/windows/winproxy/apis/wevtapi.py b/pythonmemorymodule/windows/winproxy/apis/wevtapi.py new file mode 100644 index 0000000..b3003bb --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/wevtapi.py @@ -0,0 +1,131 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import fail_on_zero + +class WevtapiProxy(ApiProxy): + APIDLL = "Wevtapi" + default_error_check = staticmethod(fail_on_zero) + + +# Session + +@WevtapiProxy() +def EvtOpenSession(LoginClass, Login, Timeout=0, Flags=0): + return EvtOpenSession.ctypes_function(LoginClass, Login, Timeout, Flags) + +# Event + +@WevtapiProxy() +def EvtOpenLog(Session, Path, Flags): + return EvtOpenLog.ctypes_function(Session, Path, Flags) + +@WevtapiProxy() +def EvtClose(Object): + return EvtClose.ctypes_function(Object) + +@WevtapiProxy() +def EvtQuery(Session, Path, Query, Flags): + return EvtQuery.ctypes_function(Session, Path, Query, Flags) + +@WevtapiProxy() +def EvtNext(ResultSet, EventArraySize, EventArray, Timeout, Flags, Returned): + return EvtNext.ctypes_function(ResultSet, EventArraySize, EventArray, Timeout, Flags, Returned) + +@WevtapiProxy() +def EvtSeek(ResultSet, Position, Bookmark, Timeout, Flags): + return EvtSeek.ctypes_function(ResultSet, Position, Bookmark, Timeout, Flags) + + +# Channel + +@WevtapiProxy() +def EvtOpenChannelEnum(Session, Flags): + return EvtOpenChannelEnum.ctypes_function(Session, Flags) + + +@WevtapiProxy() +def EvtNextChannelPath(ChannelEnum, ChannelPathBufferSize, ChannelPathBuffer, ChannelPathBufferUsed): + return EvtNextChannelPath.ctypes_function(ChannelEnum, ChannelPathBufferSize, ChannelPathBuffer, ChannelPathBufferUsed) + +@WevtapiProxy() +def EvtOpenChannelConfig(Session, ChannelPath, Flags): + return EvtOpenChannelConfig.ctypes_function(Session, ChannelPath, Flags) + +@WevtapiProxy() +def EvtGetChannelConfigProperty(ChannelConfig, PropertyId, Flags, PropertyValueBufferSize, PropertyValueBuffer, PropertyValueBufferUsed): + return EvtGetChannelConfigProperty.ctypes_function(ChannelConfig, PropertyId, Flags, PropertyValueBufferSize, PropertyValueBuffer, PropertyValueBufferUsed) + +# Publisher + +@WevtapiProxy() +def EvtOpenPublisherEnum(Session, Flags): + return EvtOpenPublisherEnum.ctypes_function(Session, Flags) + +@WevtapiProxy() +def EvtNextPublisherId(PublisherEnum, PublisherIdBufferSize, PublisherIdBuffer, PublisherIdBufferUsed): + return EvtNextPublisherId.ctypes_function(PublisherEnum, PublisherIdBufferSize, PublisherIdBuffer, PublisherIdBufferUsed) + +@WevtapiProxy() +def EvtOpenPublisherMetadata(Session, PublisherIdentity, LogFilePath, Locale, Flags): + return EvtOpenPublisherMetadata.ctypes_function(Session, PublisherIdentity, LogFilePath, Locale, Flags) + +@WevtapiProxy() +def EvtGetPublisherMetadataProperty(PublisherMetadata, PropertyId, Flags, PublisherMetadataPropertyBufferSize, PublisherMetadataPropertyBuffer, PublisherMetadataPropertyBufferUsed): + return EvtGetPublisherMetadataProperty.ctypes_function(PublisherMetadata, PropertyId, Flags, PublisherMetadataPropertyBufferSize, PublisherMetadataPropertyBuffer, PublisherMetadataPropertyBufferUsed) + + +# Evt metadata + +@WevtapiProxy() +def EvtOpenEventMetadataEnum(PublisherMetadata, Flags): + return EvtOpenEventMetadataEnum.ctypes_function(PublisherMetadata, Flags) + + +@WevtapiProxy() +def EvtNextEventMetadata(EventMetadataEnum, Flags): + return EvtNextEventMetadata.ctypes_function(EventMetadataEnum, Flags) + + +@WevtapiProxy() +def EvtGetEventMetadataProperty(EventMetadata, PropertyId, Flags, EventMetadataPropertyBufferSize, EventMetadataPropertyBuffer, EventMetadataPropertyBufferUsed): + return EvtGetEventMetadataProperty.ctypes_function(EventMetadata, PropertyId, Flags, EventMetadataPropertyBufferSize, EventMetadataPropertyBuffer, EventMetadataPropertyBufferUsed) + +# Render + +@WevtapiProxy() +def EvtCreateRenderContext(ValuePathsCount, ValuePaths, Flags): + return EvtCreateRenderContext.ctypes_function(ValuePathsCount, ValuePaths, Flags) + + +@WevtapiProxy() +def EvtRender(Context, Fragment, Flags, BufferSize, Buffer, BufferUsed, PropertyCount): + return EvtRender.ctypes_function(Context, Fragment, Flags, BufferSize, Buffer, BufferUsed, PropertyCount) + + +@WevtapiProxy() +def EvtFormatMessage(PublisherMetadata, Event, MessageId, ValueCount, Values, Flags, BufferSize, Buffer, BufferUsed): + return EvtFormatMessage.ctypes_function(PublisherMetadata, Event, MessageId, ValueCount, Values, Flags, BufferSize, Buffer, BufferUsed) + +# Other + +@WevtapiProxy() +def EvtGetLogInfo(Log, PropertyId, PropertyValueBufferSize, PropertyValueBuffer, PropertyValueBufferUsed): + return EvtGetLogInfo.ctypes_function(Log, PropertyId, PropertyValueBufferSize, PropertyValueBuffer, PropertyValueBufferUsed) + +@WevtapiProxy() +def EvtGetObjectArraySize(ObjectArray, ObjectArraySize): + return EvtGetObjectArraySize.ctypes_function(ObjectArray, ObjectArraySize) + + +@WevtapiProxy() +def EvtGetObjectArrayProperty(ObjectArray, PropertyId, ArrayIndex, Flags, PropertyValueBufferSize, PropertyValueBuffer, PropertyValueBufferUsed): + return EvtGetObjectArrayProperty.ctypes_function(ObjectArray, PropertyId, ArrayIndex, Flags, PropertyValueBufferSize, PropertyValueBuffer, PropertyValueBufferUsed) + + +#### + + + + diff --git a/pythonmemorymodule/windows/winproxy/apis/winhttp.py b/pythonmemorymodule/windows/winproxy/apis/winhttp.py new file mode 100644 index 0000000..90b2eda --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/winhttp.py @@ -0,0 +1,51 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter + +from ..error import (fail_on_zero) + + +class WinHTTPProxy(ApiProxy): + APIDLL = "winhttp" + default_error_check = staticmethod(fail_on_zero) + +@WinHTTPProxy() +def WinHttpOpen(pszAgentW, dwAccessType, pszProxyW, pszProxyBypassW, dwFlags): + return WinHttpOpen.ctypes_function(pszAgentW, dwAccessType, pszProxyW, pszProxyBypassW, dwFlags) + +@WinHTTPProxy() +def WinHttpCloseHandle(hInternet): + return WinHttpCloseHandle.ctypes_function(hInternet) + +@WinHTTPProxy() +def WinHttpConnect(hSession, pswzServerName, nServerPort, dwReserved): + return WinHttpConnect.ctypes_function(hSession, pswzServerName, nServerPort, dwReserved) + +@WinHTTPProxy() +def WinHttpQueryDataAvailable(hRequest, lpdwNumberOfBytesAvailable): + return WinHttpQueryDataAvailable.ctypes_function(hRequest, lpdwNumberOfBytesAvailable) + +@WinHTTPProxy() +def WinHttpReadData(hRequest, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead): + return WinHttpReadData.ctypes_function(hRequest, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead) + +@WinHTTPProxy() +def WinHttpOpenRequest(hConnect, pwszVerb, pwszObjectName, pwszVersion, pwszReferrer, ppwszAcceptTypes, dwFlags): + return WinHttpOpenRequest.ctypes_function(hConnect, pwszVerb, pwszObjectName, pwszVersion, pwszReferrer, ppwszAcceptTypes, dwFlags) + +@WinHTTPProxy() +def WinHttpSendRequest(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength, dwTotalLength, dwContext): + return WinHttpSendRequest.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength, dwTotalLength, dwContext) + +@WinHTTPProxy() +def WinHttpReceiveResponse(hRequest, lpReserved): + return WinHttpReceiveResponse.ctypes_function(hRequest, lpReserved) + +@WinHTTPProxy() +def WinHttpAddRequestHeaders(hRequest, lpszHeaders, dwHeadersLength, dwModifiers): + return WinHttpAddRequestHeaders.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, dwModifiers) + +@WinHTTPProxy() +def WinHttpQueryHeaders(hRequest, dwInfoLevel, pwszName, lpBuffer, lpdwBufferLength, lpdwIndex): + return WinHttpQueryHeaders.ctypes_function(hRequest, dwInfoLevel, pwszName, lpBuffer, lpdwBufferLength, lpdwIndex) diff --git a/pythonmemorymodule/windows/winproxy/apis/wininet.py b/pythonmemorymodule/windows/winproxy/apis/wininet.py new file mode 100644 index 0000000..0f4117e --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/wininet.py @@ -0,0 +1,95 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter + +from ..error import (fail_on_zero) + + +class WinInetProxy(ApiProxy): + APIDLL = "wininet" + default_error_check = staticmethod(fail_on_zero) + +@WinInetProxy() +def InternetCheckConnectionA(lpszUrl, dwFlags, dwReserved): + return InternetCheckConnectionA.ctypes_function(lpszUrl, dwFlags, dwReserved) + +@WinInetProxy() +def InternetCheckConnectionW(lpszUrl, dwFlags, dwReserved): + return InternetCheckConnectionW.ctypes_function(lpszUrl, dwFlags, dwReserved) + +@WinInetProxy() +def InternetOpenA(lpszAgent, dwAccessType, lpszProxy, lpszProxyBypass, dwFlags): + return InternetOpenA.ctypes_function(lpszAgent, dwAccessType, lpszProxy, lpszProxyBypass, dwFlags) + +@WinInetProxy() +def InternetOpenW(lpszAgent, dwAccessType, lpszProxy, lpszProxyBypass, dwFlags): + return InternetOpenW.ctypes_function(lpszAgent, dwAccessType, lpszProxy, lpszProxyBypass, dwFlags) + +@WinInetProxy() +def InternetOpenUrlA(hInternet, lpszUrl, lpszHeaders, dwHeadersLength, dwFlags, dwContext): + return InternetOpenUrlA.ctypes_function(hInternet, lpszUrl, lpszHeaders, dwHeadersLength, dwFlags, dwContext) + +@WinInetProxy() +def InternetOpenUrlW(hInternet, lpszUrl, lpszHeaders, dwHeadersLength, dwFlags, dwContext): + return InternetOpenUrlW.ctypes_function(hInternet, lpszUrl, lpszHeaders, dwHeadersLength, dwFlags, dwContext) + +@WinInetProxy() +def InternetConnectA(hInternet, lpszServerName, nServerPort, lpszUserName, lpszPassword, dwService, dwFlags, dwContext): + return InternetConnectA.ctypes_function(hInternet, lpszServerName, nServerPort, lpszUserName, lpszPassword, dwService, dwFlags, dwContext) + +@WinInetProxy() +def InternetConnectW(hInternet, lpszServerName, nServerPort, lpszUserName, lpszPassword, dwService, dwFlags, dwContext): + return InternetConnectW.ctypes_function(hInternet, lpszServerName, nServerPort, lpszUserName, lpszPassword, dwService, dwFlags, dwContext) + +@WinInetProxy() +def HttpOpenRequestA(hConnect, lpszVerb, lpszObjectName, lpszVersion, lpszReferrer, lplpszAcceptTypes, dwFlags, dwContext): + return HttpOpenRequestA.ctypes_function(hConnect, lpszVerb, lpszObjectName, lpszVersion, lpszReferrer, lplpszAcceptTypes, dwFlags, dwContext) + +@WinInetProxy() +def HttpOpenRequestW(hConnect, lpszVerb, lpszObjectName, lpszVersion, lpszReferrer, lplpszAcceptTypes, dwFlags, dwContext): + return HttpOpenRequestW.ctypes_function(hConnect, lpszVerb, lpszObjectName, lpszVersion, lpszReferrer, lplpszAcceptTypes, dwFlags, dwContext) + +@WinInetProxy() +def InternetSetOptionA(hInternet, dwOption, lpBuffer, dwBufferLength): + return InternetSetOptionA.ctypes_function(hInternet, dwOption, lpBuffer, dwBufferLength) + +@WinInetProxy() +def InternetSetOptionW(hInternet, dwOption, lpBuffer, dwBufferLength): + return InternetSetOptionW.ctypes_function(hInternet, dwOption, lpBuffer, dwBufferLength) + +@WinInetProxy() +def HttpSendRequestA(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength): + return HttpSendRequestA.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength) + +@WinInetProxy() +def HttpSendRequestW(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength): + return HttpSendRequestW.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength) + +@WinInetProxy() +def InternetReadFile(hFile, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead): + return InternetReadFile.ctypes_function(hFile, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead) + +@WinInetProxy() +def InternetReadFileExA(hFile, lpBuffersOut, dwFlags, dwContext): + return InternetReadFileExA.ctypes_function(hFile, lpBuffersOut, dwFlags, dwContext) + +@WinInetProxy() +def InternetReadFileExW(hFile, lpBuffersOut, dwFlags, dwContext): + return InternetReadFileExW.ctypes_function(hFile, lpBuffersOut, dwFlags, dwContext) + +@WinInetProxy() +def HttpQueryInfoA(hRequest, dwInfoLevel, lpBuffer, lpdwBufferLength, lpdwIndex): + return HttpQueryInfoA.ctypes_function(hRequest, dwInfoLevel, lpBuffer, lpdwBufferLength, lpdwIndex) + +@WinInetProxy() +def HttpQueryInfoW(hRequest, dwInfoLevel, lpBuffer, lpdwBufferLength, lpdwIndex): + return HttpQueryInfoW.ctypes_function(hRequest, dwInfoLevel, lpBuffer, lpdwBufferLength, lpdwIndex) + +@WinInetProxy() +def HttpSendRequestA(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength): + return HttpSendRequestA.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength) + +@WinInetProxy() +def HttpSendRequestW(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength): + return HttpSendRequestW.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength) diff --git a/pythonmemorymodule/windows/winproxy/apis/wintrust.py b/pythonmemorymodule/windows/winproxy/apis/wintrust.py new file mode 100644 index 0000000..6c91c51 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/wintrust.py @@ -0,0 +1,68 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter +from ..error import no_error_check, fail_on_zero + +class WinTrustProxy(ApiProxy): + APIDLL = "wintrust" + default_error_check = staticmethod(fail_on_zero) + + +# Trust + +@WinTrustProxy(error_check=no_error_check) +def WinVerifyTrust(hwnd, pgActionID, pWVTData): + return WinVerifyTrust.ctypes_function(hwnd, pgActionID, pWVTData) + +# Catalog + +@WinTrustProxy() +def CryptCATAdminCalcHashFromFileHandle(hFile, pcbHash, pbHash, dwFlags): + return CryptCATAdminCalcHashFromFileHandle.ctypes_function(hFile, pcbHash, pbHash, dwFlags) + +@WinTrustProxy() +def CryptCATAdminCalcHashFromFileHandle2(hCatAdmin, hFile, pcbHash, pbHash, dwFlags): + return CryptCATAdminCalcHashFromFileHandle2.ctypes_function(hCatAdmin, hFile, pcbHash, pbHash, dwFlags) + +@WinTrustProxy(error_check=no_error_check) +def CryptCATAdminEnumCatalogFromHash(hCatAdmin, pbHash, cbHash, dwFlags, phPrevCatInfo): + return CryptCATAdminEnumCatalogFromHash.ctypes_function(hCatAdmin, pbHash, cbHash, dwFlags, phPrevCatInfo) + +@WinTrustProxy() +def CryptCATAdminAcquireContext(phCatAdmin, pgSubsystem, dwFlags): + return CryptCATAdminAcquireContext.ctypes_function(phCatAdmin, pgSubsystem, dwFlags) + +@WinTrustProxy() +def CryptCATAdminAcquireContext2(phCatAdmin, pgSubsystem, pwszHashAlgorithm, pStrongHashPolicy, dwFlags): + return CryptCATAdminAcquireContext2.ctypes_function(phCatAdmin, pgSubsystem, pwszHashAlgorithm, pStrongHashPolicy, dwFlags) + + +@WinTrustProxy() +def CryptCATCatalogInfoFromContext(hCatInfo, psCatInfo, dwFlags): + return CryptCATCatalogInfoFromContext.ctypes_function(hCatInfo, psCatInfo, dwFlags) + + +@WinTrustProxy(error_check=no_error_check) +def CryptCATAdminReleaseCatalogContext(hCatAdmin, hCatInfo, dwFlags): + return CryptCATAdminReleaseCatalogContext.ctypes_function(hCatAdmin, hCatInfo, dwFlags) + + +@WinTrustProxy() +def CryptCATAdminReleaseContext(hCatAdmin, dwFlags): + return CryptCATAdminReleaseContext.ctypes_function(hCatAdmin, dwFlags) + + +@WinTrustProxy(error_check=no_error_check) +def CryptCATEnumerateAttr(hCatalog, pCatMember, pPrevAttr): + return CryptCATEnumerateAttr.ctypes_function(hCatalog, pCatMember, pPrevAttr) + + +@WinTrustProxy(error_check=no_error_check) +def CryptCATEnumerateCatAttr(hCatalog, pPrevAttr): + return CryptCATEnumerateCatAttr.ctypes_function(hCatalog, pPrevAttr) + + +@WinTrustProxy(error_check=no_error_check) +def CryptCATEnumerateMember(hCatalog, pPrevMember): + return CryptCATEnumerateMember.ctypes_function(hCatalog, pPrevMember) \ No newline at end of file diff --git a/pythonmemorymodule/windows/winproxy/apis/ws2_32.py b/pythonmemorymodule/windows/winproxy/apis/ws2_32.py new file mode 100644 index 0000000..e43fc47 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/apis/ws2_32.py @@ -0,0 +1,76 @@ +import ctypes +import windows.generated_def as gdef + +from ..apiproxy import ApiProxy, NeededParameter + +from ..error import WinproxyError, succeed_on_zero, no_error_check, fail_on_minus_one + +len_ = len + +class Ws2_32Proxy(ApiProxy): + APIDLL = "ws2_32" + default_error_check = staticmethod(succeed_on_zero) + +def check_invalid_socket(func_name, result, func, args): + if result == gdef.INVALID_SOCKET: + raise WinproxyError(func_name, error_code=WSAGetLastError()) + return args + +@Ws2_32Proxy() +def WSAStartup(wVersionRequested, lpWSAData): + if isinstance(lpWSAData, gdef.WSADATA): + lpWSAData = ctypes.byref(lpWSAData) # Not naturally done as lpWSAData is defined as a PVOID due to WSADATA32/WSADATA64 types + return WSAStartup.ctypes_function(wVersionRequested, lpWSAData) + + +@Ws2_32Proxy() +def WSACleanup(): + return WSACleanup.ctypes_function() + +@Ws2_32Proxy(error_check=no_error_check) +def WSAGetLastError(): + return WSAGetLastError.ctypes_function() + +@Ws2_32Proxy() +def getaddrinfo(pNodeName, pServiceName, pHints, ppResult): + return getaddrinfo.ctypes_function(pNodeName, pServiceName, pHints, ppResult) + +@Ws2_32Proxy() +def GetAddrInfoW(pNodeName, pServiceName, pHints, ppResult): + return GetAddrInfoW.ctypes_function(pNodeName, pServiceName, pHints, ppResult) + +@Ws2_32Proxy(error_check=check_invalid_socket) +def WSASocketA(af, type, protocol, lpProtocolInfo, g, dwFlags): + return WSASocketA.ctypes_function(af, type, protocol, lpProtocolInfo, g, dwFlags) + +@Ws2_32Proxy(error_check=check_invalid_socket) +def WSASocketW(af, type, protocol, lpProtocolInfo, g, dwFlags): + return WSASocketW.ctypes_function(af, type, protocol, lpProtocolInfo, g, dwFlags) + +@Ws2_32Proxy(error_check=check_invalid_socket) +def socket(af, type, protocol): + return socket.ctypes_function(af, type, protocol) + +@Ws2_32Proxy(error_check=fail_on_minus_one) # SOCKET_ERROR +def connect(s, name, namelen): + return connect.ctypes_function(s, name, namelen) + +@Ws2_32Proxy(error_check=fail_on_minus_one) # SOCKET_ERROR +def send(s, buf, len=None, flags=0): + if len is None: + len = len_(buf) + return send.ctypes_function(s, buf, len, flags) + +@Ws2_32Proxy(error_check=fail_on_minus_one) # SOCKET_ERROR +def recv(s, buf, len=None, flags=0): + if len is None: + len = len_(buf) + return recv.ctypes_function(s, buf, len, flags) + +@Ws2_32Proxy(error_check=fail_on_minus_one) # SOCKET_ERROR +def shutdown(s, how): + return shutdown.ctypes_function(s, how) + +@Ws2_32Proxy(error_check=fail_on_minus_one) # SOCKET_ERROR +def closesocket(s): + return closesocket.ctypes_function(s) diff --git a/pythonmemorymodule/windows/winproxy/error.py b/pythonmemorymodule/windows/winproxy/error.py new file mode 100644 index 0000000..aaaddc8 --- /dev/null +++ b/pythonmemorymodule/windows/winproxy/error.py @@ -0,0 +1,79 @@ +import ctypes + +import windows.generated_def as gdef +from windows.generated_def.ntstatus import NtStatusException + + +# ApiProxy stuff +class ExportNotFound(RuntimeError): + def __init__(self, func_name, api_name): + self.func_name = func_name + self.api_name = api_name + super(ExportNotFound, self).__init__("Function {0} not found into {1}".format(func_name, api_name)) + + +# PFW Winproxy Exception type +class WinproxyError(WindowsError): + def __new__(cls, func_name, error_code=None): + win_error = ctypes.WinError(error_code) #GetLastError by default + api_error = super(WinproxyError, cls).__new__(cls) + api_error.api_name = func_name + api_error.winerror = win_error.winerror & 0xffffffff + api_error.strerror = win_error.strerror + api_error.args = (func_name, win_error.winerror, win_error.strerror) + return api_error + + def __init__(self, func_name, error_code=None): + super(WinproxyError, self).__init__(func_name) + + def __repr__(self): + return "{0}: {1}".format(self.api_name, super(WinproxyError, self).__repr__()) + + def __str__(self): + return "{0}: {1}".format(self.api_name, super(WinproxyError, self).__str__()) + + +# winproxy Error check +no_error_check = None + +def fail_on_minus_one(func_name, result, func, args): + """Raise WinproxyError if call result is -1""" + if result == -1: + raise WinproxyError(func_name) + return args + + +def fail_on_zero(func_name, result, func, args): + """raise WinproxyError if result is 0""" + if not result: + raise WinproxyError(func_name) + return args + + +def succeed_on_zero(func_name, result, func, args): + """raise WinproxyError if result is NOT 0""" + if result: + raise WinproxyError(func_name) + return args + + +def result_is_error_code(func_name, result, func, args): + """raise WinproxyError(result) if result is NOT 0""" + if result: + raise WinproxyError(func_name, error_code=result) + return args + + +def result_is_ntstatus(func_name, result, func, args): + """raise NtStatusException is result is not 0""" + if result: + raise NtStatusException(result & 0xffffffff) + return args + + +def result_is_handle(func_name, result, func, args): + """raise WinproxyError is result is INVALID_HANDLE_VALUE""" + if result == gdef.INVALID_HANDLE_VALUE: + raise WinproxyError(func_name) + return args + diff --git a/pythonmemorymodule/windows/wintrust.py b/pythonmemorymodule/windows/wintrust.py new file mode 100644 index 0000000..171dcd9 --- /dev/null +++ b/pythonmemorymodule/windows/wintrust.py @@ -0,0 +1,191 @@ +import ctypes +import struct +import windows +from collections import namedtuple +from windows import winproxy +import windows.generated_def as gdef +from windows.generated_def.winstructs import * + + + +# From: um/SoftPub.h +WINTRUST_ACTION_GENERIC_VERIFY_V2 = gdef.IID.from_string("00AAC56B-CD44-11d0-8CC2-00C04FC295EE") +DRIVER_ACTION_VERIFY = gdef.IID.from_string("F750E6C3-38EE-11d1-85E5-00C04FC295EE") + +wintrust_know_return_value = [ +TRUST_E_PROVIDER_UNKNOWN, +TRUST_E_ACTION_UNKNOWN, +TRUST_E_SUBJECT_FORM_UNKNOWN, +DIGSIG_E_ENCODE, +TRUST_E_SUBJECT_NOT_TRUSTED, +TRUST_E_BAD_DIGEST, +DIGSIG_E_DECODE, +DIGSIG_E_EXTENSIBILITY, +PERSIST_E_SIZEDEFINITE, +DIGSIG_E_CRYPTO, +PERSIST_E_SIZEINDEFINITE, +PERSIST_E_NOTSELFSIZING, +TRUST_E_NOSIGNATURE, +CERT_E_EXPIRED, +CERT_E_VALIDITYPERIODNESTING, +CERT_E_PURPOSE, +CERT_E_ISSUERCHAINING, +CERT_E_MALFORMED, +CERT_E_UNTRUSTEDROOT, +CERT_E_CHAINING, +TRUST_E_FAIL, +CERT_E_REVOKED, +CERT_E_UNTRUSTEDTESTROOT, +CERT_E_REVOCATION_FAILURE, +CERT_E_CN_NO_MATCH, +CERT_E_WRONG_USAGE, +TRUST_E_EXPLICIT_DISTRUST, +CERT_E_UNTRUSTEDCA, +CERT_E_INVALID_POLICY, +CERT_E_INVALID_NAME, +CRYPT_E_FILE_ERROR, +] +wintrust_return_value_mapper = gdef.FlagMapper(*wintrust_know_return_value) + + +def check_signature(filename): + """Check if ``filename`` embeds a valid signature. + + :return: :class:`int`: ``0`` if ``filename`` have a valid signature else the error + """ + file_data = WINTRUST_FILE_INFO() + file_data.cbStruct = ctypes.sizeof(WINTRUST_FILE_INFO) + file_data.pcwszFilePath = filename + file_data.hFile = None + file_data.pgKnownSubject = None + + WVTPolicyGUID = WINTRUST_ACTION_GENERIC_VERIFY_V2 + + win_trust_data = WINTRUST_DATA() + win_trust_data.cbStruct = ctypes.sizeof(WINTRUST_DATA) + win_trust_data.pPolicyCallbackData = None + win_trust_data.pSIPClientData = None + win_trust_data.dwUIChoice = WTD_UI_NONE + # win_trust_data.fdwRevocationChecks = WTD_REVOKE_NONE + win_trust_data.fdwRevocationChecks = WTD_REVOKE_WHOLECHAIN + win_trust_data.dwUnionChoice = WTD_CHOICE_FILE + win_trust_data.dwStateAction = WTD_STATEACTION_VERIFY + win_trust_data.hWVTStateData = None + win_trust_data.pwszURLReference = None + win_trust_data.dwUIContext = 0 + + #win_trust_data.dwProvFlags = 0x1000 + 0x10 + 0x800 + win_trust_data.tmp_union.pFile = ctypes.pointer(file_data) + + x = winproxy.WinVerifyTrust(None, ctypes.byref(WVTPolicyGUID), ctypes.byref(win_trust_data)) + win_trust_data.dwStateAction = WTD_STATEACTION_CLOSE + winproxy.WinVerifyTrust(None, ctypes.byref(WVTPolicyGUID), ctypes.byref(win_trust_data)) + return wintrust_return_value_mapper[x & 0xffffffff] + + +def get_catalog_for_filename(filename): + ctx = HCATADMIN() + winproxy.CryptCATAdminAcquireContext(ctypes.byref(ctx), DRIVER_ACTION_VERIFY, 0) + hash = get_file_hash(filename) + if hash is None: + return None + t = winproxy.CryptCATAdminEnumCatalogFromHash(ctx, hash, len(hash), 0, None) + if t is None: + return None + tname = get_catalog_name_from_handle(t) + + while t is not None: + t = winproxy.CryptCATAdminEnumCatalogFromHash(ctx, hash, len(hash), 0, ctypes.byref(HCATINFO(t))) + # Todo: how to handle multiple catalog ? + winproxy.CryptCATAdminReleaseCatalogContext(ctx, t, 0) + winproxy.CryptCATAdminReleaseContext(ctx, 0) + return tname + + +def get_file_hash(filename): + f = open(filename, "rb") + handle = windows.utils.get_handle_from_file(f) + + size = DWORD(0) + x = winproxy.CryptCATAdminCalcHashFromFileHandle(handle, ctypes.byref(size), None, 0) + buffer = (BYTE * size.value)() + try: + x = winproxy.CryptCATAdminCalcHashFromFileHandle(handle, ctypes.byref(size), buffer, 0) + except WindowsError as e: + if e.winerror == 1006: + # CryptCATAdminCalcHashFromFileHandle: [Error 1006] + # The volume for a file has been externally altered so that the opened file is no longer valid. + # (returned for empty file) + return None + raise + return buffer + +def get_file_hash2(filename): #POC: name/API will change/disapear + f = open(filename, "rb") + handle = windows.utils.get_handle_from_file(f) + + cathand = HANDLE() + h = winproxy.CryptCATAdminAcquireContext2(cathand, None, "SHA256", None, 0) + print(cathand) + + size = DWORD(0) + x = winproxy.CryptCATAdminCalcHashFromFileHandle2(cathand, handle, ctypes.byref(size), None, 0) + buffer = (BYTE * size.value)() + try: + x = winproxy.CryptCATAdminCalcHashFromFileHandle2(cathand, handle, ctypes.byref(size), buffer, 0) + except WindowsError as e: + if e.winerror == 1006: + # CryptCATAdminCalcHashFromFileHandle: [Error 1006] + # The volume for a file has been externally altered so that the opened file is no longer valid. + # (returned for empty file) + return None + raise + return buffer + + +def get_catalog_name_from_handle(handle): + cat_info = CATALOG_INFO() + cat_info.cbStruct = ctypes.sizeof(cat_info) + winproxy.CryptCATCatalogInfoFromContext(handle, ctypes.byref(cat_info), 0) + return cat_info.wszCatalogFile + +SignatureData = namedtuple("SignatureData", ["signed", "catalog", "catalogsigned", "additionalinfo"]) +"""Signature information for ``FILENAME``: + + * ``signed``: True if ``FILENAME`` embeds a valide signature + * ``catalog``: The filename of the catalog ``FILENAME`` is part of (if any) + * ``catalogsigned``: True if ``catalog`` embeds a valide signature + * ``additionalinfo``: The return error of ``check_signature(FILENAME)`` + +``additionalinfo`` is useful to know if ``FILENAME`` signature was rejected for an invalid root / expired cert. +""" + +def full_signature_information(filename): + """Returns more information about the signature of ``filename`` + + :return: :class:`SignatureData` + """ + check_sign = check_signature(filename) + signed = not bool(check_sign) + catalog = get_catalog_for_filename(filename) + if catalog is None: + return SignatureData(signed, None, False, check_sign) + catalogsigned = not bool(check_signature(catalog)) + return SignatureData(signed, catalog, catalogsigned, check_sign) + +def is_signed(filename): + """Check if ``filename`` is signed: + + * File embeds a valid signature + * File is part of a signed catalog file + + :return: :class:`bool` + """ + check_sign = check_signature(filename) + if check_sign == 0: + return True + catalog = get_catalog_for_filename(filename) + if catalog is None: + return False + catalogsigned = not bool(check_signature(catalog)) + return catalogsigned From 463c9a31dee60f529687f89d018d0d54b8f8ffc3 Mon Sep 17 00:00:00 2001 From: naksyn <59816245+naksyn@users.noreply.github.com> Date: Thu, 27 Jul 2023 16:03:10 +0200 Subject: [PATCH 2/4] Update README.md --- README.md | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 123cb59..0ca553b 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,8 @@ pure-python implementation of MemoryModule technique to load a dll or unmanaged # What is it -PythonMemoryModule is a Python ctypes porting of the [MemoryModule](https://www.joachim-bauch.de/tutorials/loading-a-dll-from-memory/) technique originally published by [Joachim Bauch](https://github.com/fancycode/MemoryModule). It can load a dll or unmanaged exe using Python without requiring the use of an external library (pyd). -It leverages [pefile](https://github.com/erocarrera/pefile) to parse PE headers and ctypes. - +PythonMemoryModule is a Python ctypes porting of the [MemoryModule](https://www.joachim-bauch.de/tutorials/loading-a-dll-from-memory/) technique originally published by [Joachim Bauch](https://github.com/fancycode/MemoryModule). It can load a dll or unmanaged exe using Python without requiring the use of an external library (pyd) and has (partial) support for commandline parameters passing. +It leverages [pefile](https://github.com/erocarrera/pefile) to parse PE headers, [PythonForWindows](https://github.com/hakril/PythonForWindows) to access process parameters, and ctypes for the heavy lifting. The tool was originally thought to be used as a [Pyramid](https://github.com/naksyn/Pyramid/) module to provide evasion against AV/EDR by loading dll/exe payloads in python.exe entirely from memory, however other use-cases are possible (IP protection, pyds in-memory loading, spinoffs for other stealthier techniques) so I decided to create a dedicated repo. @@ -28,6 +27,8 @@ The tool was originally thought to be used as a [Pyramid](https://github.com/nak # How to use it +## Example n.1 + In the following example a Cobalt Strike stageless beacon dll is downloaded (not saved on disk), loaded in memory and started by calling the entrypoint. ```python @@ -46,14 +47,25 @@ Note: if you use staging in your malleable profile the dll would not be able to ![](MemoryModuleCS.gif) +## Example n.2 -# How to detect it +In the following example we use the commandline passing funcionality to execute chisel in memory. + + +https://github.com/naksyn/PythonMemoryModule/assets/59816245/cdc91760-1897-450f-9770-1cd2377913c7 -Using the MemoryModule technique will mostly respect the sections' permissions of the target DLL and avoid the noisy RWX approach. However within the program memory there will be a private commit not backed by a dll on disk and this is a MemoryModule telltale. +## Commandline parameters passing - Partial support -### Future improvements +This technique hase been implemented by stomping the Commandline parameter on the PEB at runtime. +This won't work with every executable since it depends on which functions are used to pass arguments. - 1. add support for argument parsing. - 2. add support (basic) for .NET assemblies execution. +Generally, to get a universally working technique would be required to hook GetCommandlineA GetCommandlineW __getmainargs and __wgetmainargs since PEB stomping won't cover all cases, more details [here]( +https://blog-30cm-tw.translate.goog/2020/08/windows-c-mainargc-argv.html?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=it&_x_tr_pto=wapp) + +During my testing I found that mimikatz and several go binaries are working just by doing PEB stomping, on the other hand, cmdline passing via PEB stomping alone to mingw and VS compiled binaries won't likely work. + +# How to detect it + +Using the MemoryModule technique will mostly respect the sections' permissions of the target DLL and avoid the noisy RWX approach. However within the program memory there will be a private commit not backed by a dll on disk and this is a MemoryModule telltale. From c676f20717c2e2ee256e2a5f87b402d5f7d7e250 Mon Sep 17 00:00:00 2001 From: naksyn <59816245+naksyn@users.noreply.github.com> Date: Thu, 27 Jul 2023 16:04:11 +0200 Subject: [PATCH 3/4] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0ca553b..d461870 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ pure-python implementation of MemoryModule technique to load a dll or unmanaged # What is it PythonMemoryModule is a Python ctypes porting of the [MemoryModule](https://www.joachim-bauch.de/tutorials/loading-a-dll-from-memory/) technique originally published by [Joachim Bauch](https://github.com/fancycode/MemoryModule). It can load a dll or unmanaged exe using Python without requiring the use of an external library (pyd) and has (partial) support for commandline parameters passing. + It leverages [pefile](https://github.com/erocarrera/pefile) to parse PE headers, [PythonForWindows](https://github.com/hakril/PythonForWindows) to access process parameters, and ctypes for the heavy lifting. The tool was originally thought to be used as a [Pyramid](https://github.com/naksyn/Pyramid/) module to provide evasion against AV/EDR by loading dll/exe payloads in python.exe entirely from memory, however other use-cases are possible (IP protection, pyds in-memory loading, spinoffs for other stealthier techniques) so I decided to create a dedicated repo. From 9bb2f6761d17177798e739b7c5160267e569a9cb Mon Sep 17 00:00:00 2001 From: naksyn <59816245+naksyn@users.noreply.github.com> Date: Sat, 16 Dec 2023 13:03:40 +0100 Subject: [PATCH 4/4] Added control and moved folder Added control for empty passed argument and moved windows folder out for easier importing. --- pythonmemorymodule/__init__.py | 13 +++++++++---- .../apis/__pycache__/__init__.cpython-310.pyc | Bin 711 -> 0 bytes .../apis/__pycache__/__init__.cpython-311.pyc | Bin 995 -> 0 bytes .../apis/__pycache__/advapi32.cpython-310.pyc | Bin 27005 -> 0 bytes .../apis/__pycache__/advapi32.cpython-311.pyc | Bin 51378 -> 0 bytes .../apis/__pycache__/cfgmgr32.cpython-310.pyc | Bin 4910 -> 0 bytes .../apis/__pycache__/cfgmgr32.cpython-311.pyc | Bin 8133 -> 0 bytes .../apis/__pycache__/crypt32.cpython-310.pyc | Bin 9692 -> 0 bytes .../apis/__pycache__/crypt32.cpython-311.pyc | Bin 17364 -> 0 bytes .../apis/__pycache__/cryptui.cpython-310.pyc | Bin 842 -> 0 bytes .../apis/__pycache__/cryptui.cpython-311.pyc | Bin 1158 -> 0 bytes .../apis/__pycache__/dbghelp.cpython-310.pyc | Bin 6784 -> 0 bytes .../apis/__pycache__/dbghelp.cpython-311.pyc | Bin 13021 -> 0 bytes .../apis/__pycache__/dnsapi.cpython-310.pyc | Bin 1489 -> 0 bytes .../apis/__pycache__/dnsapi.cpython-311.pyc | Bin 2324 -> 0 bytes .../apis/__pycache__/iphlpapi.cpython-310.pyc | Bin 2026 -> 0 bytes .../apis/__pycache__/iphlpapi.cpython-311.pyc | Bin 3452 -> 0 bytes .../apis/__pycache__/kernel32.cpython-310.pyc | Bin 28664 -> 0 bytes .../apis/__pycache__/kernel32.cpython-311.pyc | Bin 54933 -> 0 bytes .../apis/__pycache__/ktmw32.cpython-310.pyc | Bin 1312 -> 0 bytes .../apis/__pycache__/ktmw32.cpython-311.pyc | Bin 2018 -> 0 bytes .../apis/__pycache__/netapi32.cpython-310.pyc | Bin 2484 -> 0 bytes .../apis/__pycache__/netapi32.cpython-311.pyc | Bin 4418 -> 0 bytes .../apis/__pycache__/ntdll.cpython-310.pyc | Bin 15528 -> 0 bytes .../apis/__pycache__/ntdll.cpython-311.pyc | Bin 28875 -> 0 bytes .../apis/__pycache__/ole32.cpython-310.pyc | Bin 2071 -> 0 bytes .../apis/__pycache__/ole32.cpython-311.pyc | Bin 3371 -> 0 bytes .../apis/__pycache__/oleacc.cpython-310.pyc | Bin 829 -> 0 bytes .../apis/__pycache__/oleacc.cpython-311.pyc | Bin 1142 -> 0 bytes .../apis/__pycache__/oleaut32.cpython-310.pyc | Bin 1523 -> 0 bytes .../apis/__pycache__/oleaut32.cpython-311.pyc | Bin 2489 -> 0 bytes .../apis/__pycache__/psapi.cpython-310.pyc | Bin 2062 -> 0 bytes .../apis/__pycache__/psapi.cpython-311.pyc | Bin 3610 -> 0 bytes .../apis/__pycache__/setupapi.cpython-310.pyc | Bin 2862 -> 0 bytes .../apis/__pycache__/setupapi.cpython-311.pyc | Bin 4426 -> 0 bytes .../apis/__pycache__/shell32.cpython-310.pyc | Bin 1417 -> 0 bytes .../apis/__pycache__/shell32.cpython-311.pyc | Bin 2204 -> 0 bytes .../apis/__pycache__/shlwapi.cpython-310.pyc | Bin 1153 -> 0 bytes .../apis/__pycache__/shlwapi.cpython-311.pyc | Bin 1823 -> 0 bytes .../apis/__pycache__/tdh.cpython-310.pyc | Bin 788 -> 0 bytes .../apis/__pycache__/tdh.cpython-311.pyc | Bin 1090 -> 0 bytes .../apis/__pycache__/user32.cpython-310.pyc | Bin 3726 -> 0 bytes .../apis/__pycache__/user32.cpython-311.pyc | Bin 6898 -> 0 bytes .../apis/__pycache__/version.cpython-310.pyc | Bin 2256 -> 0 bytes .../apis/__pycache__/version.cpython-311.pyc | Bin 3914 -> 0 bytes .../apis/__pycache__/virtdisk.cpython-310.pyc | Bin 1088 -> 0 bytes .../apis/__pycache__/virtdisk.cpython-311.pyc | Bin 1586 -> 0 bytes .../apis/__pycache__/wevtapi.cpython-310.pyc | Bin 4657 -> 0 bytes .../apis/__pycache__/wevtapi.cpython-311.pyc | Bin 8160 -> 0 bytes .../apis/__pycache__/winhttp.cpython-310.pyc | Bin 2463 -> 0 bytes .../apis/__pycache__/winhttp.cpython-311.pyc | Bin 4028 -> 0 bytes .../apis/__pycache__/wininet.cpython-310.pyc | Bin 3777 -> 0 bytes .../apis/__pycache__/wininet.cpython-311.pyc | Bin 6737 -> 0 bytes .../apis/__pycache__/wintrust.cpython-310.pyc | Bin 2659 -> 0 bytes .../apis/__pycache__/wintrust.cpython-311.pyc | Bin 4525 -> 0 bytes .../apis/__pycache__/ws2_32.cpython-310.pyc | Bin 2883 -> 0 bytes .../apis/__pycache__/ws2_32.cpython-311.pyc | Bin 5057 -> 0 bytes .../windows => windows}/__init__.py | 0 {pythonmemorymodule/windows => windows}/alpc.py | 0 {pythonmemorymodule/windows => windows}/com.py | 0 .../windows => windows}/crypto/__init__.py | 0 .../windows => windows}/crypto/catalog.py | 0 .../windows => windows}/crypto/certificate.py | 0 .../windows => windows}/crypto/cryptmsg.py | 0 .../windows => windows}/crypto/dpapi.py | 0 .../crypto/encrypt_decrypt.py | 0 .../windows => windows}/crypto/generation.py | 0 .../windows => windows}/crypto/sign_verify.py | 0 .../windows => windows}/dbgprint.py | 0 .../windows => windows}/debug/__init__.py | 0 .../windows => windows}/debug/breakpoints.py | 0 .../windows => windows}/debug/debugger.py | 0 .../windows => windows}/debug/localdbg.py | 0 .../windows => windows}/debug/symboldbg.py | 0 .../windows => windows}/debug/symbols.py | 0 .../generated_def/__init__.py | 0 .../generated_def/auto_doc_tst.py | 0 .../windows => windows}/generated_def/flag.py | 0 .../generated_def/interfaces.py | 0 .../windows => windows}/generated_def/meta.py | 0 .../generated_def/ntstatus.py | 0 .../windows => windows}/generated_def/windef.py | 0 .../generated_def/winerror.py | 0 .../generated_def/winfuncs.py | 0 .../generated_def/winstructs.py | 0 .../windows => windows}/hooks.py | 0 .../windows => windows}/injection.py | 0 .../windows => windows}/native_exec/__init__.py | 0 .../windows => windows}/native_exec/cpuid.py | 0 .../native_exec/native_function.py | 0 .../native_exec/nativeutils.py | 0 .../native_exec/simple_x64.py | 0 .../native_exec/simple_x86.py | 0 .../windows => windows}/pe_parse.py | 0 {pythonmemorymodule/windows => windows}/pipe.py | 0 .../windows => windows}/pycompat.py | 0 .../windows => windows}/remotectypes.py | 0 .../windows => windows}/rpc/__init__.py | 0 .../windows => windows}/rpc/client.py | 0 .../windows => windows}/rpc/epmapper.py | 0 .../windows => windows}/rpc/ndr.py | 0 .../windows => windows}/security.py | 0 .../windows => windows}/syswow64.py | 0 {pythonmemorymodule/windows => windows}/test.py | 0 .../windows => windows}/utils/__init__.py | 0 .../utils/improved_buffer.py | 0 .../windows => windows}/utils/pythonutils.py | 0 .../windows => windows}/utils/winutils.py | 0 .../windows => windows}/winobject/__init__.py | 0 .../windows => windows}/winobject/apisetmap.py | 0 .../windows => windows}/winobject/bits.py | 0 .../winobject/device_manager.py | 0 .../windows => windows}/winobject/event_log.py | 0 .../winobject/event_trace.py | 0 .../windows => windows}/winobject/exception.py | 0 .../windows => windows}/winobject/file.py | 0 .../windows => windows}/winobject/handle.py | 0 .../windows => windows}/winobject/network.py | 0 .../winobject/object_manager.py | 0 .../windows => windows}/winobject/process.py | 0 .../windows => windows}/winobject/registry.py | 0 .../windows => windows}/winobject/service.py | 0 .../windows => windows}/winobject/system.py | 0 .../winobject/system_module.py | 0 .../winobject/task_scheduler.py | 0 .../windows => windows}/winobject/token.py | 0 .../windows => windows}/winobject/volume.py | 0 .../windows => windows}/winobject/wmi.py | 0 .../windows => windows}/winproxy/__init__.py | 0 .../windows => windows}/winproxy/apiproxy.py | 0 .../winproxy/apis/__init__.py | 0 .../winproxy/apis/advapi32.py | 0 .../winproxy/apis/cfgmgr32.py | 0 .../winproxy/apis/crypt32.py | 0 .../winproxy/apis/cryptui.py | 0 .../winproxy/apis/dbghelp.py | 0 .../windows => windows}/winproxy/apis/dnsapi.py | 0 .../winproxy/apis/iphlpapi.py | 0 .../winproxy/apis/kernel32.py | 0 .../windows => windows}/winproxy/apis/ktmw32.py | 0 .../winproxy/apis/netapi32.py | 0 .../windows => windows}/winproxy/apis/ntdll.py | 0 .../windows => windows}/winproxy/apis/ole32.py | 0 .../windows => windows}/winproxy/apis/oleacc.py | 0 .../winproxy/apis/oleaut32.py | 0 .../windows => windows}/winproxy/apis/psapi.py | 0 .../winproxy/apis/setupapi.py | 0 .../winproxy/apis/shell32.py | 0 .../winproxy/apis/shlwapi.py | 0 .../windows => windows}/winproxy/apis/tdh.py | 0 .../windows => windows}/winproxy/apis/user32.py | 0 .../winproxy/apis/version.py | 0 .../winproxy/apis/virtdisk.py | 0 .../winproxy/apis/wevtapi.py | 0 .../winproxy/apis/winhttp.py | 0 .../winproxy/apis/wininet.py | 0 .../winproxy/apis/wintrust.py | 0 .../windows => windows}/winproxy/apis/ws2_32.py | 0 .../windows => windows}/winproxy/error.py | 0 .../windows => windows}/wintrust.py | 0 160 files changed, 9 insertions(+), 4 deletions(-) delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/__init__.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/__init__.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/advapi32.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/advapi32.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/cfgmgr32.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/cfgmgr32.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/crypt32.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/crypt32.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/cryptui.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/cryptui.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/dbghelp.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/dbghelp.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/dnsapi.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/dnsapi.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/iphlpapi.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/iphlpapi.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/kernel32.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/kernel32.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ktmw32.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ktmw32.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/netapi32.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/netapi32.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ntdll.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ntdll.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ole32.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ole32.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/oleacc.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/oleacc.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/oleaut32.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/oleaut32.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/psapi.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/psapi.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/setupapi.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/setupapi.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/shell32.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/shell32.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/shlwapi.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/shlwapi.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/tdh.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/tdh.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/user32.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/user32.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/version.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/version.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/virtdisk.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/virtdisk.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/wevtapi.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/wevtapi.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/winhttp.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/winhttp.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/wininet.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/wininet.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/wintrust.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/wintrust.cpython-311.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ws2_32.cpython-310.pyc delete mode 100644 pythonmemorymodule/windows/winproxy/apis/__pycache__/ws2_32.cpython-311.pyc rename {pythonmemorymodule/windows => windows}/__init__.py (100%) rename {pythonmemorymodule/windows => windows}/alpc.py (100%) rename {pythonmemorymodule/windows => windows}/com.py (100%) rename {pythonmemorymodule/windows => windows}/crypto/__init__.py (100%) rename {pythonmemorymodule/windows => windows}/crypto/catalog.py (100%) rename {pythonmemorymodule/windows => windows}/crypto/certificate.py (100%) rename {pythonmemorymodule/windows => windows}/crypto/cryptmsg.py (100%) rename {pythonmemorymodule/windows => windows}/crypto/dpapi.py (100%) rename {pythonmemorymodule/windows => windows}/crypto/encrypt_decrypt.py (100%) rename {pythonmemorymodule/windows => windows}/crypto/generation.py (100%) rename {pythonmemorymodule/windows => windows}/crypto/sign_verify.py (100%) rename {pythonmemorymodule/windows => windows}/dbgprint.py (100%) rename {pythonmemorymodule/windows => windows}/debug/__init__.py (100%) rename {pythonmemorymodule/windows => windows}/debug/breakpoints.py (100%) rename {pythonmemorymodule/windows => windows}/debug/debugger.py (100%) rename {pythonmemorymodule/windows => windows}/debug/localdbg.py (100%) rename {pythonmemorymodule/windows => windows}/debug/symboldbg.py (100%) rename {pythonmemorymodule/windows => windows}/debug/symbols.py (100%) rename {pythonmemorymodule/windows => windows}/generated_def/__init__.py (100%) rename {pythonmemorymodule/windows => windows}/generated_def/auto_doc_tst.py (100%) rename {pythonmemorymodule/windows => windows}/generated_def/flag.py (100%) rename {pythonmemorymodule/windows => windows}/generated_def/interfaces.py (100%) rename {pythonmemorymodule/windows => windows}/generated_def/meta.py (100%) rename {pythonmemorymodule/windows => windows}/generated_def/ntstatus.py (100%) rename {pythonmemorymodule/windows => windows}/generated_def/windef.py (100%) rename {pythonmemorymodule/windows => windows}/generated_def/winerror.py (100%) rename {pythonmemorymodule/windows => windows}/generated_def/winfuncs.py (100%) rename {pythonmemorymodule/windows => windows}/generated_def/winstructs.py (100%) rename {pythonmemorymodule/windows => windows}/hooks.py (100%) rename {pythonmemorymodule/windows => windows}/injection.py (100%) rename {pythonmemorymodule/windows => windows}/native_exec/__init__.py (100%) rename {pythonmemorymodule/windows => windows}/native_exec/cpuid.py (100%) rename {pythonmemorymodule/windows => windows}/native_exec/native_function.py (100%) rename {pythonmemorymodule/windows => windows}/native_exec/nativeutils.py (100%) rename {pythonmemorymodule/windows => windows}/native_exec/simple_x64.py (100%) rename {pythonmemorymodule/windows => windows}/native_exec/simple_x86.py (100%) rename {pythonmemorymodule/windows => windows}/pe_parse.py (100%) rename {pythonmemorymodule/windows => windows}/pipe.py (100%) rename {pythonmemorymodule/windows => windows}/pycompat.py (100%) rename {pythonmemorymodule/windows => windows}/remotectypes.py (100%) rename {pythonmemorymodule/windows => windows}/rpc/__init__.py (100%) rename {pythonmemorymodule/windows => windows}/rpc/client.py (100%) rename {pythonmemorymodule/windows => windows}/rpc/epmapper.py (100%) rename {pythonmemorymodule/windows => windows}/rpc/ndr.py (100%) rename {pythonmemorymodule/windows => windows}/security.py (100%) rename {pythonmemorymodule/windows => windows}/syswow64.py (100%) rename {pythonmemorymodule/windows => windows}/test.py (100%) rename {pythonmemorymodule/windows => windows}/utils/__init__.py (100%) rename {pythonmemorymodule/windows => windows}/utils/improved_buffer.py (100%) rename {pythonmemorymodule/windows => windows}/utils/pythonutils.py (100%) rename {pythonmemorymodule/windows => windows}/utils/winutils.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/__init__.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/apisetmap.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/bits.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/device_manager.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/event_log.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/event_trace.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/exception.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/file.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/handle.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/network.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/object_manager.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/process.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/registry.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/service.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/system.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/system_module.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/task_scheduler.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/token.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/volume.py (100%) rename {pythonmemorymodule/windows => windows}/winobject/wmi.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/__init__.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apiproxy.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/__init__.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/advapi32.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/cfgmgr32.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/crypt32.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/cryptui.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/dbghelp.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/dnsapi.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/iphlpapi.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/kernel32.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/ktmw32.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/netapi32.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/ntdll.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/ole32.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/oleacc.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/oleaut32.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/psapi.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/setupapi.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/shell32.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/shlwapi.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/tdh.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/user32.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/version.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/virtdisk.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/wevtapi.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/winhttp.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/wininet.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/wintrust.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/apis/ws2_32.py (100%) rename {pythonmemorymodule/windows => windows}/winproxy/error.py (100%) rename {pythonmemorymodule/windows => windows}/wintrust.py (100%) diff --git a/pythonmemorymodule/__init__.py b/pythonmemorymodule/__init__.py index 4bd399d..0968e89 100644 --- a/pythonmemorymodule/__init__.py +++ b/pythonmemorymodule/__init__.py @@ -563,8 +563,11 @@ def execPE(self): self.pythonmemorymodule.contents.initialized = 1 def load_module(self): - if self.new_command: + if self.new_command != None and len(self.new_command) != 0: + passed_args=True self.cmdline_check() + else: + passed_args=False if not self.is_exe() and not self.is_dll(): raise WindowsError('The specified module does not appear to be an exe nor a dll.') @@ -639,15 +642,17 @@ def load_module(self): self.finalize_sections() self.dbg('Executing TLS.') self.ExecuteTLS() - self.dbg('Stomping PEB') - self.stomp_PEB() + if passed_args: + self.dbg('Stomping PEB') + self.stomp_PEB() self.dbg('Starting new thread to execute PE') my_thread = threading.Thread(target=self.execPE) my_thread.start() - self.unstomp_PEB() + if passed_args: + self.unstomp_PEB() def IMAGE_FIRST_SECTION(self): diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/__init__.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 8ed7570e62ac536b880d3b56cdbb5833460fdb05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 711 zcmb8rO>fgM7zc2tT@y1_UdMPla4u4-twobS2qA&AUB(5tSeBwRHjSy{Sh3TP+dc)~ zfv*&C+i726r#)UDOwM;y!K@aj*J&tGis#YRvuMaF6KQ2vL@7xL&|eDvfE-#`X&@(iGwbo76jdfm7x~} ziyJ55V12TYwNsU0bfao7lv}f;m7CB8f-;5o_9iIk%_yw+x^cdbTQ^S^^FO3c;O;lm z)z44w_;)DlxXIS8GyHRvH>EV*@e}1wnw>nfesvs<<9M1XqkNjqY}eEGWhELdKZIZJj$xvNM*sWlMb{2+xoiLc diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/__init__.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index e49d57b9dc23fd753cd135b14d79cf44b6e3616a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 995 zcma)(yN=U96o$tMvCTrbEPLTnfarph2oi(@LR3i5EEGUz$#OhHJY+n!JmVO5JOw-g z;%!_;Q_xUthqT>R96Kjq7m*kp<@G@5A99fphotEB(?V^`inuU@@{-`{=9 zvex9d+E!N|RRn9j70~JG!-`;a-)(!gXAUZY)t%qf|DShv<=n3b)_NNf(suK=bMEqK Q_uKRTvTZIQy9XEh2ZF9E9{>OV diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/advapi32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/advapi32.cpython-310.pyc deleted file mode 100644 index fdecce3c34f7263cf14d2e47e1c7016af6cd1a1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27005 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 I)98r(UoHdYIsgCw diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/advapi32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/advapi32.cpython-311.pyc deleted file mode 100644 index f76c3c9b1cc36f7c56cb342c1c43dc6f16d00179..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51378 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

-@$-Q5}m0XHd1qXlOu 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 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/cfgmgr32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/cfgmgr32.cpython-310.pyc deleted file mode 100644 index f81d7d14a322748737baf425967765769b67d961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4910 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 Hw59wP%>)b7 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/crypt32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/crypt32.cpython-310.pyc deleted file mode 100644 index 181cd5ffbea728f65761f19d791429331f42564f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9692 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 lhNf)P2ipI({V9A$lcR{R&xU;6nxHyvzO}T)qGR diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/dnsapi.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/dnsapi.cpython-311.pyc deleted file mode 100644 index 803c5d68111f0dbb0287149c6793c33f49aba386..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2324 zcmcgs&rcgi6rNeHf8fQ?B+#_9Bxw{PBNdYh615?!8U;uqB{apUB5hr5mz@Euc-PL% zI>C`uQHejGrzS_#15HE^9DB^4U?WSQJyoiD;6_AGIrY6+7O+gD^wROp^Lx*4$KUtn zz4u!tlP0jv?)<`j)d~3vjcCR9mAxz_*|Qiyd^T-5!v&WNTVaNS4E~f{=K^+@;yfLWH_^f@Md;2ki%M#x?U;X6Xm5^ z&^yC9xU80Zt0*llL|Ir)nem{{XsNLiK#;4CXh zTb5g9)e`F6mi4G=m-c^2T)%gF^3I*0Tl%(Nbb!iYnTZ4d2u?9RZzF?!_=xu<*+Z;v z7M-hwZzUJ9;Mosl%_~fnovO<{Ulwi_{ae+!g3qOY_palzQqkjuN)68SM#gfVUCMni z!reK}Mr@Z|88193daV3J;&%lTTLAE~5R%AMY61&di6kg;2*mQiXFJosJiR?|@%g8# z_2$5MYhb*gpAH{!Dtga3C^7J0igE8<0r8CZAfvTg?pqhgCll#CiNPb;GhB8Q0rj~qR2R)UFdSzCX zy$rf4pmFh-Gl~CjPOXsq$6yN-Ct&Y=0s_hRZy7_I#?b1*i|WS0ACF)C*m&?m)395H z-Oz27hyRoK14Ud60=N$R7r`k|V7kNw6j*Lf)WDz<9JlITu7dLJ_tHL6kGYYlB?S!H zJ`?5pQ5Aaa(8Q@D!MtI64lmuZJyzlpp}-A<`N#PpPz=D9D30de-T401-KH_yGG-h4 zY{(49U$k^k6tmAkc~@p@aKie*DTln0P-)YG^N^Gl#4FfMK?;3XXA<9uaF2j4P@I7+ zu`m($$t~mjrg47t@{4TK7;7104Sg(Zn-f7IY{;O0f6U|-xW|Rm8#z)cpz+~IgXWqv*P=NLoTC^yM=^Bt(D$E$6UUyMS10G&P6l5X c{QOLVW}7tIqFF>Sjv&Sn!*H8NxmEK21zgb!NdN!< diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/iphlpapi.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/iphlpapi.cpython-310.pyc deleted file mode 100644 index 04a8b438f88959209201611855cae50b873314e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2026 zcma)7OK;mo5Z>iWv`ks@D|V9t3Hm^xwl-R{DA1xPqBxE#K#>JoK>(&(<;jq`zUWJ^7qlPn}sxvEssL7MRh_EO+Pi%_y!^$^_Q^t3TNv79oG5 zu(&`+9s;F*0b_*GkhsM!9cr#l3DcM!8bi}Hhn8z8*$7KR+qEeo1lW>6@&~mMhd}8zFiu>`h^sN`>fC^^scSI}OzN`IOishZpPRA= zGqGJSN!#-xu;_WR?0LhO+mGnRcn88&mo_ z&5TQP0;dygqEC#8Ikk?7sKJH0C5`8ha%nzm9kvgoRk$aubnuGDeYt+Xv;DJ-M*t=8 zvg@COT&xurm(Xvefe_f}7;Z@G+b>zAUTLz0glnX&-T@+HaiQ3=^@2t`teu zYIK7N)CCy!eBmDPp_2RwZ2m9ODIj$gq1b@$#U`>l$hLsV8U)sipfCDJLMe6WB#X*h z?S2X`J;2wn0s^J?vszJB+t3Er_|av#naowtBY>VxJiv-bQ(@?4(4T=hG+7u&=|2cD zK)DB$V%yAfeT@W7R>6@5^AoU=E*5=xrc}B*T)t`i3(%on^`fH*l;1D*RWRA%V$p!= zA6=H3{U-F)nXD%7ejv-qt-#v>!$?II)K2v=eNtan@RpmixwiY9M_l+B%zJF`$~&U! z32DQ`Q=?BHQU#_@nriT>VXS7I8ar~UyVvo$jYqA0@9>xQ{*ea*+-tO2s#6v66$lk3 z1lC4nNGSiV!K-#S+ob(t@z?MZPS5mnU^a1RO+zxwGBxyVYM4$zI{X@_Lt3H#0=_V~ AN&o-= diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/iphlpapi.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/iphlpapi.cpython-311.pyc deleted file mode 100644 index 932201b3317b1394c037ec6747269d118a4e1db4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3452 zcmc&$OH3O_7@pnri(SmKKtnXk~WBVB%MI*9B6l zxDtmPbBIb0ZN;IbL|iy>ELQN`Rd`Lfwt`nzmFKSD)mP!wRan+gg;ig{YOKO)s9-f=E{HtM zFR4Q&Uh;q*-f;QSu_-mRv~1K*5P}Jwil~tU(TVEejCw7jC?J(nN%;{`Q;O+J`fmp5 z_(SNdA%a32Mj;+^Apz8}K`0>^w%{(dkOTAZdBJc8()00j#Qdx)cG8{jI1QI9C*kX| zY>2X)Na0MJKG(|fSD8rsv`Y z6XoG^bW9a^y`bC--_wYyg_Dto+Hx{Hl2S4WlGL^ESWNe4X2Uws^t*SJ1dhj&B%EG` zd6Ruty&qli4)&46EWv$|1n$2UUW_GiYEh&AY3jK!*rJ6^GrZ|#)de49;DiUQ8z5Wy z9k|=FcMjSw{Ls7pINyGw(0(IlYb#!Aqd86~xeX-L(eys<2UtTopxM@~JX45PP`T@a z=s7n5v6g~FpHb4INnM3-EBbPpXmT`@RPYX!)n zzr>b(v3pPKUZ2a0-h$}O30|iAj6%a;HtGeY_fvRSLn~bNf^N}wq4ccV%^?Uam}ymE zMY&Diayp&=q^(Y_}yZjuphQ zoG?~doi-T6s&fDy-ZZJIR}*j4gEc-JNrS4IwQ!^pA(LI9YFcaNDhN~xG`qBS0cd8m z?@O2Vq)VG0??`!Rq#%vtY$IP*ySh z)Gi8r)Go7P&h1ORds6S_{q5B5qr5a-kfw9CX=Yh*Tj1_^n%Qb(w47}A-Z_#aYD9;# z5Zy1_WnH#}87?>mu=9XQ1FF)c!mzW02s@k<4+V5PHQHuwPsuaB;qg&<^8Uo=vi)m+q+AAAm;!$8iV9on^lR z^g*utdV#Lws$B=@{apEVWaGJkBUA}b{jaF>@6%Tz;_I^=-*v8b9`PJ^`3M2L5)j{L z3LGWELC@tK+wQHLtQ6#Lju0B-{rnLUxH-;>rNQilb$Wrj&6p-ym>{w;InD>nQ!Fu= z=u{)Ba)2>Sv@k*BD(Oy{e#Z2377mEYXB%alQ7Z>T<(wen1g#uXM3oM5EY$x1L{P@E diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/kernel32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/kernel32.cpython-310.pyc deleted file mode 100644 index c0767417c91b63b15fe775e2a264208131522861..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28664 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 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/kernel32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/kernel32.cpython-311.pyc deleted file mode 100644 index 0978e904b0ba68c834df42a2d91868022ceb4602..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54933 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 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/ktmw32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/ktmw32.cpython-310.pyc deleted file mode 100644 index aabc7cb6d2a0e86493efd45f3ab7ff2ceec2fc5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1312 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 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/netapi32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/netapi32.cpython-311.pyc deleted file mode 100644 index 2eb461dcbc2c5529c7ce62ed2a743b72626840b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4418 zcmcgv%~KOe6z>_55YmZ!_`xpf;;xF~2fBRt!CJ1m2)YGqgoQ&kwb?P#NHm#=Ju{MM z6t>DgU{C8FJ+V++ICA93aiFMzn%cuwZF%s9g(pw@UJnV$Cc0Rqc4ppmzxmDUey`tq z{qkoh6d=%=U;eKCMG5%_2l?jR>TEX2gghfEQKck_xKAl1N2(;E%4${8lk!HqDPP1V z#-3z#${+DdL?(Si^*$x4k9nu72$_T1ZIK$8u$pNY%;i}`t$s>MIgvmGl)nr`E1+u1 zP{9hQKp84j0Y%GDyDFf9WvJQ;s8AWIt^#UT8LGYlsZmBfB97Q1gL$*niOtKpkH{ryhRFcmWqhqaFDD)+%G&Tf^B zDOS>qG0t@!i;uJTy;-t}3wU!k-W?q=7&oGta?i+W(H=c+rI=3v#v79c^EqZM%4yrEW9zw31TKbw(!=nyOD2_)MeaqOg3Bx}`>2I?Meq zp&-@JF^&S6D*V<%jZ?krO)Y<%dOo?_bbhtzyzOapFJ7PjE{+oN4PzdSz1aig88P#G zcs?(fw}?q{Bq!zMTvg7K^X7cH>S>TRSCBYNW~ISd*=dA*=-1;)vXARlx{sLys3bR> z+PIlbGb1);X>l{5YqNeQ0ETk)n`94I((&E4#?mHt0%^|1Qc5Pt zG>3wDd4d_7DXJ4RbyESZ;5b3f3^4z=qNzz{;NlK#HQoRNzAsOL(An$;GDTj{uhwY$ z3T>b7UU;%(*`rbW=W+Y4wLwTm>XG5mD-X%92ni0$uLT8`cUTs7jpJVATMcxCNv}cY z{Y^RzvgQi%h6&#TVj!5Bz@)b<#c)Bz=vNLi_Vrrj~eorWQ1T3ll)ev$o7w=~lU z4(lAgxn_;Q7Y44a#GHqL!I9L#ZJY;!<~+JayH;q|{N2T)OMC6`FZS&WSnQEBfVTWW z{z=#}Dr^}=mN&X(%Yrk3pbzezd23RzCPwUa%}TlE^YhPPLcSk};~PsPAxrTC$T^7Q z3nb0>F625_?5*B)3ZY1FZ{LXv+$1dH!&|YoTSaW$A=Hs@QSezW-#IPOj2P z+cWveTqy|3i@@C0zIt2xN?P+a)TM0a&jObt`3zql0fMSFuF+#F^w>;b{`$hX#qOm? zb`&CMVwq-EX~y=Y2wE8l=n>By9%^oHwq9ka|R*V1&$igpy88 zA-{;-7Wx_}1ijkL5bZGHNYDceB&b-^8a=T>Pt0`BXThoWEz|HS4cnfutI#L$+qxpf z#EDblyq&mg^x#T+=mdvETD3KT%jjtzF(+W>{@EEhafQ~ z?0XXsvJa(R5ygEXiu*(q_kE&_2!~8P*kb#TDfsg2|M{{|ugsV67~n{bz`g07t1sw* zHF|1=o|=g)>|OLN1?(SVwvw{-N6R#~N^`a+_pzNB^xRXTXR$}~4p{4dT=!el1IcmJ zBk#J+YxK+tJu@FzxVdO8jV;rWRXSpOMn0A6^1Zk$ktW`89*flZB_gp}iDOLW+lNgN z{4&UWr}ac?yMidO6m*w-`xpm2zX;O#H$cj>Y{4@{cw>rm*Hm1eVfGXm6ytYi8ML&7 z-p-wvVxWe0Py1fZn44lG$G24g;JjOT@;WXC$pyF#tgDJsM(;B1Sfw4dr$a2bb+_Yl z%RguDR-M~+hiQx}P+Y{IymmsRL(d&#`k@3CwJ=A2;9ek(R}|r*Fn0@LoLbZ%;^Y-) zlE~j8pNX&*F(KB<>kusJVJrvV_%FHt1}^gf7@~H@N%#k|Q6)*zItfjQ-#R&BmtKF9 zvv#FxogB7HuMLkZUDzPyJmoyghAdOA_9&LZo$48ax7^e?_Eb;bYy diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/ntdll.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/ntdll.cpython-310.pyc deleted file mode 100644 index acab137a5cd23e04a474f465bbd11156411460fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15528 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 M?=!w+lB3c81GD+&xc~qF diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/ntdll.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/ntdll.cpython-311.pyc deleted file mode 100644 index 5eba6fc97c24e2cca06a98245b88122469295e47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28875 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 Uv{hZNf~=}~37;VNl+sZD1v(Vhf&c&j diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/ole32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/ole32.cpython-311.pyc deleted file mode 100644 index 8ee8ea1719728266d2d2a65f00af302a67b52756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3371 zcmcgu%}*Og6rWwMjbZsn2x%xylPJvx227ID(k4xlAoCGR<|CK{;#jiG?f?t+?sjI) zM`T4*;t%Ml>9Hr5hzmz9l{j)-kR{NbDpft?Mnq0I_0246Y~YZnQfGJH&b)d1W`4gn z^Jf33tE)j!F2DU%jaMP`H*0vse^@yv2nfAKDpG|EO1N(!D<*sbQbpC5k+S}TKO0B{ zcw5R;WrK;JfJ8KaRR0Q61K3~iA+!dMTN2eG!qo+6ta&Q%jeWCxE=)Bgs#PmOrA0zM z<*VQdI%ZXSiWT!+=M9AeI4~ut)hGPdpYmnR3I7eJSji`>&YWUZd&27MDOPnStQt?T zsy|_MP8H%P)bN(U9C|B)42e##$J9oMvAEJeS;3z&>yCid&#F16Pnc1b96~h_8Lkqi*<`82Q=$(ZZc_MY7Gu5Sv8~SIB70{ zUp?H_dFOWL-7wBhVl|x3s@>lt7c^Zp7ASk0jIw0f)M%1p=ror|5Juxdh6=q7V!3qf z)io{m@3q|ct>gDs+b!M2mTp_R;NIk{_npFG;uQ%hjN^mvLA*wmr-%3NC05InD39_& z0X(dgyu{HPVF+SeA2Fi3W@+h+_7e9kIt_}oWMZ0{%IS)w89JEMnDe6;NSep06I2)6 z4=D3=%MXk4LtA>t0V&mB;T1**$I=g# zkHwM~^S->4_vZuos(i2j{?BUrWf=W-$ znu*UVPIa1k)f&^oe8;I(7noX);dz{KYSe{j)^zLDChLf4)N<;9nY5Xn)H1*(rofu# zpo_A(UGa)bSqrEL6O2209|WW9@~(VqN4~Wl+-Tj5ZoRZ$Oxqf@bFcOh>Jf)Ucs&tc zi0=@pO^WZi1eHH2y0m&J7n~tT$1bf8pz>+77QoM1$=4B`XCg*~;IxIKI_xrC!7i14 zCqR@8)l{e2e5%h4=O8~Y$|4yWF?0(rT8>0C==PcBJY{}46D|$cp-GrvRM5*H7!65aqfF42R(~#!<1@N?1@^*x^@i^AL zMHg*=+<;*KYR-eowgf=679AOu6zmcb)u#-nitUt~Zoxu>g#h`7QZ|me3S96V&?Zb= zf`?uO!N7mHD~EUF@aojMw%NS(gFTV5)7rK?Ta;&QY4-n$^Z>RZnKY%tle1W{4kOL6 z6PDD;1tvmFw1GGt)-Kk;#8<5IWLRUHZCk26Hoh%S6y*t9ns8xBVC@w~77r`i8=n%^ z0(e;~c{&OyEMEW>g%wE@Y+43!K}k+MEY6Y|t0W8qIzCXk(3mS0H8*D8LW?kQ6CQdI zMEQap+K6t_t;n`KQj|w*X~cz9O1fapym46nC3SlVt|1bOM|=B;k%cpJI@;?Zf{dLp z=}TATRAo%QJ1Y|QU6=)7q8*-6!fx4>+jiu()qCp;#}an=p~7a*5p+Z4;{sE8+#iLc zE@F(O>D(aB_7i-VP6S7UG{FWuWc){{5+-iJLs|A_j5qJftvhn-YU8%tQItDuse^MJ zYH|YZ3Fe$XJd!)7v5pC(Ej0yy0#03JQ<`SVAe`3x*d{DKge57*&;M@tKLkIy;W!zN z4n@aOgHK~)(Xq#)eLcN>z3$n^vKREn;*qh5RCH)$bU2cV_l-X58|BH3Z*smL_|oCb zb4Y|8n0(@Vb$tllcmHo5kOAmmB+x%W?)wBm*h6*8{Mtj;?8^HublX1d-a}XI%6q?7 z6u#R>C&e$#@0j-eQCAHTYnNMozPNI6@6y%Pv0}J?9|^)EpP8lVvubIwe2dY4Y?>TNcCzRQM>c}@6|2emL mUTy=bN_;VQV6hxcEb`P^Ip diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleacc.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleacc.cpython-310.pyc deleted file mode 100644 index 33918934b861d8f83730c6f31a5bdad6f798ac29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 829 zcmY*Y!EV$r5VezRHoM(+ivWom=N!5MfsjB5wQ5B{YPS^#4pt;9wWn=poCG^zS+uw9 zH*kg{e3Gx6`U{*Gdy6O|&Db-O%$u2))a&a*f^z@rtNcj``Q@CO5}~t=YTl!fMADM5 z)k#&rLP}&H!!lAm)>AQyRiE{JEGiQhB`By`kSVoe(+Po3@w(z) zK-a>Rx+$*cHmbRY1_+~)us~84LWB)b7Rvxz2<_TY3Aqp+n8hn+n)YqNd4=el+ac$w zmR;%YBhEi|d3l|QcaC509URz^Y4f%a*z0*Mb&P=awuIBXD_ag)*P4rS5Enm)-oTtU zzt4A{W$z4VlU4bJnOE6fEjl-z$@Yu(RdSMxj{8!xF<#$odCYqLf zqYJX2i(nCck8o9Vng;gP(a8r8?Mq#&0}TcTv}4iE8!-H|t3+GWRT|lT`DT@ibWunf z&peZM&@`V`@BiC_9wU}^fNKufv9=j_KONb4RodRY9&vI873dtl0FLXm>;JpanF}U3 zy diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleacc.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleacc.cpython-311.pyc deleted file mode 100644 index f2a27d0b80a7ed2280510a7d49bd0389551dbd98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1142 zcmZ`&&1(}u6o0e3*`!Tlsig?DMa2&qXoI5og@^@d6>3@(5tfBzyEARq?w7M0Yb0QV z{sEq>M^E*m7mptO6H*Zja}vZuZ;^WH$v3-AHHdF!-n@_5dB6G1?3+@lA5f0%yrl05 zz<23%CAV+vHqh7r3Y2(YWHa#Wf|&4k6tojZX{XDe5xn7_#Al+L0TZVS1uUROfwIE>#j!d>U2rptVaQ&6)P-nOBpqpKXs``Z9W{r5(vSKivJ! z(a`FOj)tUp_Zq4VNV;*HUmp<<|H#b^yfH> zkt{LjB=v~J)>18S5;qLWn#g;1vz*3VmkNC?eIcSRiXLa*$8zK2D0~vHGQ0ZE4l?q~!sjXNAScKBJXo7BFt(yR+~jMXA@- zmSwPjWT&iiiGa(0j7y3{F1_>g9b`9*F1Tka^Mpseh`V L4EBbyM0%Fr$g(Ki diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleaut32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleaut32.cpython-310.pyc deleted file mode 100644 index dcd51e003e92de55e7d4daeb15a57e854313dfb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1523 zcmb7EOK;Rj5bm};j>q%N11$)|vg}GQheSYDEA0xch!O}$kc~9rVp*~rcPBCUF;v^I zgK`U3u6u@KZu}OGedUxhH%?UbWM+p*NV_dnx$ASgzxukWU3NM?!|~(kKjNdq*e43+ z2V(3Vn)-lFFu^kxOrAWq0-G~o2|IK0M$pLJz%{XxE#zL{<;|d(`+?8dHWLluzG1?Z zjbl4#$<{Fw3&MNDj(N~FQB(LP>d2OCiq=~$+M;8SE+W1`x}s;0-VEuBMT7Kb$dXt# z$fDpwHdr~utl7?~g??aZZ)241LizVt_jaTdQtZYM=dzM8uywa6BMDGKlpMr zX%>}5^jboxd#X+n{ALOywDJ5PihF44B09+eE?8g*9@x@B(L8X4g$dc(|0|R0cP3eQ zWhUdgTEDY1SkPV+6_`vEX+MhcQq&pE+fnqQjt&@I$yS;x-Gl=b@0E2S&Wpc-+g?I5;=2}5{NKd)XS7?`2T+cu`tgk8^E5xc*`q?FiB#Gey*y9*GcF;6YvgG5e`&Yn zH?;5zZFH`xHxRo?_%(7A4VJV!X+C}7tozpvWFY~|BO<(cy7O)591!T?#V|JnY}$$b zrMh9d!`xY*+W`yY=)#yrHBDry26U=Mqe)>dNs}(My7ul)eiVPwT~c&_9&7WywZi+Z R)9|_D_}sJ6=xMCWzXDWkQ9b|w diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleaut32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/oleaut32.cpython-311.pyc deleted file mode 100644 index fbb94f94fa050552cf83cb412acd09eea32a5fe1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2489 zcmcgs&u<$=6rS0&9cN-Ep`j!-g+|accEL%gqo7uZ)Fm`jYC|N811n3b&CVn>-5+Ll z-Qp6VAmtC>L~`sYI0}az`7>@4b2R zen}Y zxDq!9l|hpz1S1J8BO2XCG{&NPGC~KU2Td805F6SPlY`KN=)gAWwJ3=*Sn)nq5?E~T z*TFrZ_CWNYQPRg8_L-!QIn>7-Ift3(V~(D~O!hI~ptyiC!^a?Rg)z$Ls>U^wxr}FIZ`iU`#<|T^{UOsId5LwcWT>{KK4skYMx2VSi*G`M9{3$# z80wR>nC~El6iksKQLM;9a71iKPq362m4rCiBVQUUcOy^~w+*IM+}w?o%zzhHRZ9p{ zRgb8uY14`UWi*?6 zhtGa!q!wDKg?eN>xcON4o!&_>VSy+^KUom4gIs}Od)Cbhjc60~#=U^{@rp=;;X>8P z8-}eHTwby^yb;~4mYJijS1jEv*;WR7a@l$6z@n4nzW?R{e}K zO&mSn4cU_(yIxdZDw&Qq$Tu8q&8}F~fgev!o^HYwG2sB0M0ZjGU=uDKl1!6iYVXz9 z^RF9Zu|*c^^5SdVh|!J@OX93>yBh9=NE@wt6Rv_{fOkQ0m^P_Ha=l5e*K!Rq+aj}d zc{Wh{8lyheQM_7lKQ|a0cwh9s%;8)@%H_fm zItTUTW&D$%%74n|#S{vU^S!{fj4?h!$u0jnLRag(_wQ(~e%5`2^7ZrYc0$4*w^2X* zH1Ptgf4zD|kd)X;{djr%a$CZ9ri}!=kdZVT8sa^Kc_7Sp5$4-5pRk*#AVf!~+@uzSVe{=o@ Dt2YiB diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/psapi.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/psapi.cpython-310.pyc deleted file mode 100644 index 67ad19052b5d26f037bfb53666be0dba20340add..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2062 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 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/setupapi.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/setupapi.cpython-311.pyc deleted file mode 100644 index 658030ccae1efda55efc4d6090baefd8081628ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4426 zcmd59OKcm*b$0m?#U&+MA6u5~XkEB*naYaVD0Uk-LFtf|)l#$}$!S9{*>1Q)aUJe1 zGrP1+g8@{)haPi^d+0%zsxZ`pFGX_nC4i5VphCg|0SXia>YEIumz?_EEO$kUbn3R3 z4tL+adGqGYywALO{9`g1C(x#zeXf0xAmne@@mr*g9Jm4@4~a%Jp-Kw)6|2M$3WDI# zL?cuP10K@C)rb)-M2&&MfDtRiI4x2gG~$K0Ar&MeQAilcLK5iF!jLvl7#7Jq(P9sX zHb|ozAwo9c^;+SWNa(Q*=xq8VqK#?s2SPWkaJ&zn^ne`U8bL0a_)}s7blHU0YudP$ z?2$P7Lf)Ys-myNb5BID--iPa057&u4T*rI3PWIs%>EW8_!!_E&bxISKN$SKiG)6up zxUsvs=`?E8ekKAX6>?+gntqd6_ZseSo>Gl!H&vz@)S=8B(rraIYE^1b)1g`_><-)Y zQVF;e%T(@DX1R&7s#k;FF-Glr)lpzxMK!f5b%#t#p^RBfDOG6c<7YA~s{aE*pae+J z{E#^K0gxUNN(zET3ZfEh-xAz6>^iy)T!431!8_TpBivuieiEuisHr< z#jvz`74d|kd{S4d?U88u=0YZya}&0sI(iATu2>oygiW}k8ZE1+OULdXkptZFx3^1g z6>r&;*+o^WqybKboES=|yUM zM74{mp$)~AGtifrvQwclI!1;O ztE8(CahGjZmmG1I;GmRtTMwM!Q}FBXYr&&*N@@xYToZmf>P$8XBdGy) z8b0g{0vW)IP5(>w3NlS0_#S|i=!Vhe>>PA#%t5|6&m#*0lst$%AgopSdODxUWo5_WA+FIo zdWl}JW!)@W%z(sWnKB&t?}~NN9c#z-Jau@4X6PL|&29TA%rGsu@vI3+h^dan+<4`# ziHRI?k{h{JRafmJv73S!48a9>570$xh1W+OqT_TQJ)uS^t0iiC+D6zLuolA&yCVxwu<*ek$umsQ z?x?SHdzfpEi-G2TBKir6LGU)bHip(3`MdP$u5@Wzy7c(dCuZxtO6zugpOAaPFU04B zBy!?690Dnl6FqC71^k8;1-HgkK>jmpG$YOE2FThB- zf_Nk@OMtwb^SdweLx-PfJ3IsBC9@iSESIeux}BeSsPHR5 z$0T6mb=Iy`uHn`YHVP1Hh$4UGen?;N#EPir%AaciWrBPR| z6))Ppja~8n3%tW_zyMmvo&q)ZLxLdek>ncx?UB>1?q`pjZ*@O^B|mGu_}L@Nt$+9I zN6Cqa78%(a8d;O}qoVNUKIsLYU4M?$Zw`mzL>yi_`55~jC==^bHuUknSkK&1(}u6rb7MY_`d!Nwr16j|z$qq{S};MWmtCR?u1qA}kBbc4yiw-7jZ0#FX6H zs}~QR?XmyTTs`&d&6DrVHnkS&z`UK`dz1Ix@4Yw4Tdf9xwRrNKJ+KJ*iQxPK9a(`b zzky(c(S&%_m!^hiQo;;oCRSSWYN_qn8e2&{bv!4X@n$GlC#=ToL&9ucJ21TlZyXR- zXU-uxpk7m>8P?Fq)u_o_janMD*sMmgyuoK!`zvJ~Hm5ahM*F0D z5pRk7%UHEHIcJ=0g(6IO$pskQoiI*boqX_Oy6%jf*ztH6hYW|`# zhp(&U-4lj2RB zaOEb&SzjeyS&Ida%3O?Evqn@AZh=m#ZlV!Ugt4Xz&-j{jaa=e|i*p2HG>tXi-&p76R#*<+h&+YCh-KN+ zA&(7Z6){Uxy^#BO;bQnjaET-}LDvw7FHJz)2J8QVp7Okd*Dmn92fAyhzl#Dj^t`Umr!L^S{a diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/shell32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/shell32.cpython-311.pyc deleted file mode 100644 index 5bf48ff2a7fcf23a8b6eefbad2bfe4ce9068279c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2204 zcmc&#%}*Og6rWwM?KNu$+I%5W1=^-9h5$(eG_5KqDgi1Hf@)QjR<2gg&VX0hug=M9{{(}OKzpiG^}x-Md&;Tr?Rp(tQz<=Eot^#dn>WvI-u&jx z^G~^44}ms#`Xe2c2>BfcaZ9#@X1_qlHlc(HCQ+lWV2Nr%AXKCYQ?in3(n_hRa4eZ= zOIBqoqh ze#tjo6l+o1CvJslXdB8)cKq7?{wTv z+++}t>E>qu+r$Tq+q3r3#~S?BNKL4TwM0#-C3nEne%o7t>tW$y0(6xl#i5h zT`Grs{C8CF%Miui$@rRI#Yp=By7urk&LH%nFo=LBrsJ)O8`P)hur z;IT4ss7ySUo&&`*N6JiHn)x3#&|>%oMAZ>=9uyoQJb({ygzV;pKsj@p^|Kj|w<5e5 z(;&Pa*_{>X71e!(B~0#iwnsF>;&PPr4_psdZV`MFM2>I`UJr8{3BGo$j2u0q8Ma-BnI9hEXvm9V^U%qfn4bU`v?BCK^B zYfDsV!n+kFXL#@-kzs^yph;L%FcDtLpGFmRhEKu}x8r>T*hmP1a6)pM;d4T6)I0lc zenM{7&+83I6s8)a8-BR^0=0j>nv#ilVe_r;uWwy%h=O1U4TAV0LBzhcD)p~z pX3@>;885SqPAC6p@N}Xsj2s9fN5TjOG>wj?(a~s!CRB&S{sndx-M#<- diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/shlwapi.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/shlwapi.cpython-310.pyc deleted file mode 100644 index 67bab1892af2627f8b79c4de1a36ad54f84d8599..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1153 zcmZ`&Pfrs;6rb7M?k;6ps$fJtc&-UVqcPDK1A&MnP)MpV*=({|b_Tkzf9lLsEa6r@ zgJ(GM0sJy^_0%&rPrf%TT1}knynXLY=KcA--&Bo8oxplL{>DDog#18bb~#|I!Iozr z7-2Lg;p9(4YHX{pLx&P(F*~mnZs-N5HEHGA+(JpB>#*m+M#umu7t^M_WwlAu$L%q=9oN>0Fh@{|( z3*F3QoE80?7ra!QwW$sclPr&`GCt#?N-@st!ia0It&>B%(_O*k{+XSVS=`Y5@OQJI{`VHs^!=>WTv(N?D34-O*5 zrP|$13zlakkNQIhUamY}efD(q)e0{TI9o{y_VPt^nw6|NmH6)?dJ*&^BROeowLcUd zB=uoStjs444XE*@h|=vs9eJ?<`z8RP$R#}|=kyAYx~84BrTwlF@NIw63#l6Rxr`47 zWva5OyoSTRJbRZ3sk8@LSERi^&58wxC+>p4z&DsGu#ElR5=0BH+yOC@cwH=_cL~LB zBqzaf&gRN}JVYy{AZ{1x@DfaS@(C!4C_19DrL1H7*kSYmaQ%dc7PA#SuEnmRm)<$K zLY6umf!D`~UiKZ-wl8X+YiC>Tb+tFeU%PTB6)&{+1*Qt1=$aXaoU5B0S zb^q<)A%w)v%#@Zb->Fl9zV?E4Cvb~LnDyQ?-|7)Bxk%tO#K1M(_}g@j(CGseOc4T` z7dYQZ=`}-3LsdfsGYkWp$vIP-!5QbL{Wp_m@D|Z956dS$aB0a3Xv=b-UdP7Wq`v^P CPY#O! diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/shlwapi.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/shlwapi.cpython-311.pyc deleted file mode 100644 index 01dc58b3f3c83123897d303dbd371fee899e9a09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1823 zcmb_cL2nyH6rNeH*Bh^$w1l=al-ejxg{3B7XbUKNkWzN1LAH)#)T@Ioa9|*k`2nUEDf?Z_xzu3g#Sn*<}iV;yr%#C}Rsd))A z;pwIx>Qr~aOPWcH6ts#+d>;{wYKO4TF}(d|8VaJuAqSDkfM`Lr&k3X~E`*2}Ey(SR~B>2S;OsxI}YA5fCV zBDGO=T&v<+k14CzL%%_Y;_AHyg9Aj7dEb&Irg2>hnzBA^2v{FPzxR6(bUJMxYwU5M<9n`CoTN^ds4xEaA1d~<%c*S8n5DAcq z%--VCKsL*!;lnORkOHCi51aT=Di;_PmHCuvD8wR!Z`l_5ZEQyb0mmm zc15}*JsETK6{(eQK?*NRki^=fTuDAdPJaRcI31Y_hO8kpp1=HNAkSjZwxjGv+e0nE zSEFgTC3ZrYT_mwlo7>S%gDfptJUZW$nS8G8{lgciBelS!t7p=R^CLu%*O`=sy2c+C zMPiVqLgRHFP){U2f#ipy7V$7^#e_Wju-rl-q0&{d`>@C*7lSj;g2*Ji2rpj&kY|4N zo7{(_oYrk)s?QzO$< zPmH;?G1pS(!UM@q39X-n>{YNVE)5)B*rYyXWw?ASC})u#AF7*DsYA(yQ839pla%&j zkB5~X-Uj_L4AVADiL6|7Q9@W}GO3^G@ANO3_t-oPW#qgI(2Ze?J1E@-*Qc3dV1B5x~tJOBUy diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/tdh.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/tdh.cpython-310.pyc deleted file mode 100644 index 3672ef59ccce88542bd18f0bd491c20c1b742bd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmY*XO=}cE5bd6?olR!50S$QbyoW4`A{ayx6Ny5yEJiQGKr@-D%?_C_yL*f)xh22B zvmX6Ref5;TAP82^uDBLdO;z_y)qAg|9t<`Z*~7c9@S8LC(-!OIQL#_1-cbMsykPP2 z$xA18IRgjW!YlpQFM~MfYOm;(VH|RH%)p1>mO+62jT`r|f5V^$;Vrx2@dofSHtOF| zUpBdOD2^Nx9yIw>)}I$~j?rL3jMYQW5XzizhEKDl~8 z0a?s}#SZY;MUPPMH~@#{x+Z)N^W`X4!+bL8nNWy|h6!OdgeYrh3!6tmd~DNVbrT#+ z-yWTum`LeV=NUnp*C2fwW$ppaQj2c|ZjRaI4<@(ht_#2La4-3wP^zR#FV&(-j_Rx} zvC=9z&h?x2JkhB1>1kF%kyn^B3u<2NJ{doLG=9E|$UlBAbG!&0h1Woy}01%~f)if5Csm<&gTzZ3~F1A62N-R-p}r>SbA2)}2YSG`kyTH@1-; zBJ|*2U_E+}isa(aKO>cbVNZg1=q)9l3W9HTlW5R4vv1yeGyC3eesA|fCX)h`i^p&1 zF9PsgIDLutjP4E^`#^z`3aHUaY)O>~P>ITwm>pN+c0x^reyozT6;&Z1!3xm$9?%4f zAIJbrd?HatBw!;4=rsEwpvgTLj;JY0HXx@Qi!;Sz33W~il*OvG&fT4QFji!YGP-VX z!)89?ITB28=G7{`Zh1Q6+~vCIQf3ZnpwY+BokM3I7^sATDp8`!h$)6hk%cBck*EnO zAqF{6p3rhsR`zMRm`etVt~*#**MpR<+b*qDggvV3&ud1dx06_0f4sE18jO0r;aeuc zEW4B^Fn4gCvXUXN_JEd|x%CmcqU&#!zUn}Hq&olcOqw|JMZ{Eo>;4bG|i}5o`yHbSLo3fH#Y(F&OR4cw@Ppoqc*d+&;p*hHcRFfh$c@o)v=-`#P;WMQDg+-B#V9fOERp#lXnq&Hw>)^>` z^+ByvVmwIqj1B80^F+d#89t5+pXjSIXn5188t@}M^EF-gk}iCj`h4Xuy?m5jZpD_v zd*#wWA}SM1_SnmBGABerb!=LY8FpivBB&s-A;VnIz{Rf<#KYEx?T)w(p_~=_A%g|}xz~Yz)$5%T5&ijR fO93g>n0}Sr%XTC}R!9egK9NBh9S%hs;Vpgx2fY?w diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/user32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/user32.cpython-310.pyc deleted file mode 100644 index 72de471acaeb2c96fa91d153fcb4091087ea16e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3726 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 Rinvk4SwU~M@MfL|{tG`V?>GPe diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/version.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/version.cpython-310.pyc deleted file mode 100644 index 05dfc0901bf3d721be105f91193490649f3a2c8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2256 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 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/virtdisk.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/virtdisk.cpython-310.pyc deleted file mode 100644 index 8bc96dd569b43afe122d4ac5e321944bbf7bdeef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1088 zcmZ{jOK;Oa5XX1@it8q%PYDDPTytmz0wIAAYSf4psZApVI9Qgft#_K3`o-?1B~otf zXW$ISexX{oSW}OxS5-aW4{~3Abw=?6i)d~o%hu2^DBb$)#Ml3D|#SU)C(Qv|P zM#A}%=2mD^!YyuRPVROO)&p?sD&va1Y!II}9MWAiTl-OL9TO zOy7lN<^qqrFt^PmUu6QXL*9InUApqH2nV7h6xa zpFG}vu?6`t@GX|}=g*?^wBY5rG|$S^F=ACJquaY|S5wiztY%At<`aiDY3)mlzFqSe zA-m}Kv4KXBuXILcbY{)$nKN_0c|&qV``DHCQ3Zvm9hSnBPqz~_tw6>nlOj=RS#&(T zb`u|}Qm_%c!?<<^OpW#C!k6770Vxj|p5ea9*huQ&cl)LG_F2I*_)|5pf?Q%9P18`C zK5tmH{_j=9s`+FM4T7(Bm14OZ{oO| zr5wbtf+RgjlbT%IGqK?43`EAN3i!X+4=`Ty-^UkWRHvoAdFAxxO&7OEP=H_xc#IRI zTYpPuWSl-WxbC#TADRgB2Wz*UGvOMC>15sCx-xa91(tdQ4Ttt$&FA_xMI}v%eA1*V O)(URN4X9(^p}zo286pG# diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/virtdisk.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/virtdisk.cpython-311.pyc deleted file mode 100644 index 4eb1a715373004fc1534cd53b22b6eda672171a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1586 zcmcIk%TL@!7$19WWA;%BDMg~G$e~TM6i}*ERUae@5={sS1a*^2buC$rX8;$!Iy1X; zrIoss_yc+>JytzXMf?N(D=H_7l+~OnMLlp^L{2&N8yjyI!L^^qpTC#Kzwa^rqgE>; zpqZmz@RbrmFQrnDekz>&4#Gad2rB`y@~0B2R!Kov#ic+CbxRKo%gA&s7zs_w3`ea| z1*zyR!ulS<2GI{-|3kQQvdStV5*S1ED~E zat)MyM3ALmWT{xON`O&={1nIq?wl+GtAME_YG3=5FZ*mK$6~fX#h|X&M}+A(5kPVr zQFfd##?3&=Rmb_h=?14BV`<~w^8Ndw%DBsY4-(jpF&%-gh)bAkx)SwJCQs0b1n~Mh z?{oVRBb3>ZyTjU%y&QYZkVKr>cYVInd~9>V_}ZEm;=qrHowQ-!X#U2+N7olVnqj`=W%8NGa@ua8roar5}9p zbb9gm^kS+_<%>=fFM0+@1(_hoYMYw0rD9LL%7+sH^OS81r~LAuHD=p+Dv>WnXO?t0rpS<)%#F~sF%v zK5s7*=21U^YSDKfT1>)#w|q=!BO#u@>3dmu=w<0EKWGsexJg3rx!TM?0F~@bxY-S0 zvNo4rROX&l=F<6F>Fux5hu@^%CMoUo5&BWNrye6zT~%LY98CJEnpLV^6Gq-wF?l+* z3tJ>2)a3*_a9Bj`tg3BEqX`3@O*Yje6#3f|dUm9!>|=J;@)^(CnBg6lj%<8oe_xx6 z`RTnyXF-)i%Kie@FDZ)BL$z*p_0W6i+4VQNo?f(i=+pF~)z?(zW*?nrKd&51>#P4< rWu%UE-~DN3Z>Fy*%C6E!k{_3lIzBKNXJS@W8MCSm#T2I8k>&d@LOYll diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/wevtapi.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/wevtapi.cpython-310.pyc deleted file mode 100644 index 58ff5adf3e426ef8819296c9e7c5bb9469dc732a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4657 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 Hr}lpVax$Mr diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/winhttp.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/winhttp.cpython-310.pyc deleted file mode 100644 index 32ef3e923276c7f589a2450e490264d307099023..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2463 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 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/wininet.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/wininet.cpython-311.pyc deleted file mode 100644 index e32de1265d2fc2efaf3f79c74822c2746c3d5f00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6737 zcmc&&OLN=S6~2H-iW2nlL)OEOs7ceBb)+U^r{iSusQi$nS{5ZrjuM78LlKt`2?VJN zFtl7wtIqfbbX9kml`4%kT4u?mmykv?@?e#jOc&nC!*r8X&$$3-l0Z7tOeKND;k^eR z&pij4o_bKhUU^FNYk=!G){~3`3)V~21w&ApnXopB>#|Ct^9Tkz=pOHpQw9^9> zbfF{ySp}IX#k_*-2f$DOhdOc9xE>xcfs>g*oq8S`7WM^6a$(q?aL#a&V*#t}Es7_f(FuPKTtP;ei6$ zrL3BT-b|?7494Rs3>=S}o$+`sFBcVTcg5qY#e`yC35?H9-I<;?yEHwaXOrM&CNHx9 zjA5RWX(~}v^f+ZK&*I4pO|EQ_Dh~g1Hu-Vvp+=b&QxhxNni{*4PZo1j)wS5YtUg&> zis@9-A3R9rWCh%b71qG6I(mKVgZIZi8l|}!%`fmQJHHr|`tc~zxJJ)2j@&EBNG zR-jruRaCiVtIcdz3fj|$OflQ#(u9&oYi6fhicq+T-%?papGHPT7*uw``W?{?jp{In zb@FfNodfCmo^*ZZ-uH`@F}!(et&q?(HUv&-I0P`_aPk&(844t)iVfss@Ibn{Ctckf+L^9| zUc`;ZbXQ94ODV&bI{Bb&Mn=H5X77IsI)(y6WACEioM56m2PPWlqHna!jXBbPY%1 zsXu9V1=Xl~(tqRl~P>N_W6!>386xD~u07 z$x!?X8^1@vX+mn819yR(raRC$Doy1;xqSnyZPzS%P-Pb~o2nqY1_PNr$j>|$D>eg* ziYcj9XEx6uweTXY2mBK6%|arT@=Qk75SdL<&LSHFYZ?x3@#o~%b=t*&o6CL41M^NRD zoG8&vch4sJa|ptN=t&F`1<&XS?D0hQLCZO?hVewk32~G}-T*7xHA`<2_^eY==cyhp z@QsMI4En4T4$37q*}-j!neQq1thP9;Q}hx_1Llk;<+VkkbsMi>R>ptg4a&HsBJvL%{*I8o-Q zDmSK?AJWX$u=mgxoc?B~0vU-+B^0yIp(ml(WHfC-7VvKrh z2#+N!oVv9J&n^pjM4SCeq3HsunUp`lbJO@VVk~5LrR9BT+3+o& zK+NZyQsBgV_laHZeJl3m#+br%Vm3uF~ z+LadfrA5QHcsg;}(@h2sn|R5f_b8BImO^pt1ppqHdawY@6)9VrQd4>Rw)@!^Fup0t zB~(t+Z>hrg#OuQuR$qeg$pld{ebSsh%NPO*tZKCaFmxb=_N36})t&p5LE}CwovB?Z zy)UH=U-}dRw)t2A7n}WGMgLJ?ZD4s6$4&^F$6>sRQLUWvI`pO(9cQ^@U;mOfwbJ+q z5jAf@m(76nF2U@#UzLo((=25Poyu`|Lt}O~c71772H`CVf1ScGp&5o``uTet{%*&5 zsnU;^@PUax*Yd|h{tU&RK=@vq?^XF`jc;c7R)8<5d>P`EoEJV`BY3Lu>B%`}eP|i^ z<$H;rgP&NhpgvT0{PU9h+Gza#K;AdJzCVz+jmGa`KomYa zByREdo3By()0;~{BKE9b`rDOfR}Mu%hzN%Ss2c6Gf??ba ztG5HHMmw!w!mvvggs@l_7pNNTw1UCiHr$_jJD_T`(+cJhkLyu=T%c;S(+Z}Q*jvG@ taDP_n{Q*^@KVNdpm-QG>9UYV5b~5#LK-Flc6-+B}d1HV==K{~l{{l^K79Rir diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/wintrust.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/wintrust.cpython-310.pyc deleted file mode 100644 index adef1dcd49db4324e2507ed253c92af16df9dbf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2659 zcma)8%}*Og6yII1?Zw!}d<7B+&?IVWsnC2WZKJk|YeGN@2o;)0mZjCQGuYegS7z5G zj<}I)uRWJz{-wG0#5uQ~`rccwF^;J`(#+29&By!AZ{EyoP%0G^NUIlrv2CdRgJ3Y} z0G>gP3{_E>!ch~_QDYBHQy~3smO%a-5vxF*y z=GZ);>HgRoY=JB@)V|1W5}NI|-(pK-nd@7Y*=@4S_bn@Il`J=ydZ1L-E>NSr3k}Mu zCXHI??2F)CS5ED5&N$n*gyr#=3ur9+fyspkglV_A{YDm#Eypzj-+a$SVB95r7!@pk8^8S^OK-L*aDIzDfPU6|Zof3)%7{>BgM+&kiI z-SXIz$4y|(f|CfpA?nw(LWdBoWh3m0Jb1+%AvHtM)uKwaswyW3RJAkEoF=SiA=e>) zDnk(~f2*g;sd}oNXAYE)>K<+j2>6N%=eSEU$|*bUhCDKlJH8z|fe#w%?GvBLLfER2 zWoJ_w;p;#IJvRb;rs%F3KID*#$Kj!b^gir>etS^zA z3|j}Cqo^Cj+#4y-moWJnI=G1iqVeQe{vRUgUWu=8&aa`6)8R?<9#yNktw1<&+XK@< zECRoU*8RYB?CwZ{RTzE`=OLvKji=N~O0c(WxC^*-Lt+`I6}HKVFiJOTR3v=^p3!?E z6r%BX+(~&*%>K${QhMAr%-?qk1MDBwC={EP*7yCkBC$JqG^7DFDt1KUq%e~1O5@jNbk z<}q1Zvhu_s98p|ouVKhBF7ubZV?@;jxMt{ik@LMLZ==P15|x?o+{)5bsJGB)z-vg) zqR8NM7$`DJkDkDbnqF&q4C%R{+gz++171yZEeHyJjC+BxN4qaje9}YEhFr3z8oo`^ u_%Zoy_!)lsl;|lGhEh~3S_QI^FQ|GJa;Bgfknu}d2Mk&7eX(xnW%WP!6+j69 diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/wintrust.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/wintrust.cpython-311.pyc deleted file mode 100644 index b17cf4493dcd58ac9a7bff55edc6dbf230040460..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4525 zcmcgv&vVn(7QV6-$MKDmhCoB<58Og&4JD5PO$(GzH;~$)FoE!z;CP-?C8UBE-9$j{o*G{^~(#tGa${x=+qg7`*U9d}suDa?uSC(U8=M8V(q&L>lz2|;9 zI^R9#9^L#W8jTQWN1y&%PD1Zj9C)p#*?Be=AmlNTi7aR&?cRk#ARQEl9FT*WSm;Uj z6hi3`AB$RVA)F2u`qF&@36Rf--1CUYA*E+MNXQ0UZc9f3M2RTjpL^E@(8J|6IsAyM zLwCbdkTgZ4UnloQbDm429pE2kyRKoST?t$4NhMs+(FeBH>2k3ZN^z2<2JSGZB3o=Ou zWFZ{{|3t_&Urwb%asYe@I?-8Gzr#wV<@yj_QFRN4H{-odIGfeMm2B3DWU~cBE@{~B z&t|_WNm_Fzl$cIk{rq#M-?Su4&4J@fhRk}w31?VV7NwGAwKMpMJVUSl{4#ej^G{P@ zW=5Bm&9a`kYUD}%q+m4Q`O>Q4K@%?*0tX7Yl zuOB&YizDuj9q^uu3l43ILe5)jm?u~faQy5dh{wbN>9rqPJJ{3UeU+>Vs{#McpCLa9 zH!<80j4u?XE|z&noWYz`E-Gerv83lL)zBec;?jyPJCR~O!8NI?PPjPx#ht5?C7I|) zEEZ$KaAzZ)7=Vs>1jHKojlR;L@fwZ)cziQbNml8#I=yC#*ErRj2pF%0pu=f>44oIJ zwHjOpD;q6KGlabi27ubJ305vz6Nx(sxuEJ3l9o$K=F%iH3X`g)Bqd$e6m}S~qSLd4 zI;XdoTR@N#D!TVxd1X?Q@}`OQfoPNI>o8&{4#H((2bqpG=y;8eS4vy?C-?2ye^qI= zPP4X{b;){_9MA;wf|DJG&i_JoRa^%<8!cPAbdSFP-Lo#=9;a_>eXbdTW#3S2D{5lHtR4SJ|NG*j-wLn(dHc%JnMd$of=+ zUaHYcmDJXK9%TDop-S~S)ooFCNn>2Sh6~B#{QvD$FQs4g5l-a3DydAFFmy}#+H$!D zVWYNU>(F9;rnF#|O-m`bkws@(aXkqGh9U-+`6>uxc%nhaYIJP#!PX^vdbUdE>U7Q) z=l+(6zV=@TddbU9furm_5YA9>#e9H)PH1_9sn${fR5KPc^gL>(4Nc9JyQcIg+CYJ+ z(Msue8uY^&{jd_*x^CZEu;r4y@=cXKtkZ|K_;BB&`-VrpnZ=ltn90utIE?YdIj65^ zHoIMddlng@h$BO<8pj*-LXBRiyt|cpvQnk9bvkQ{v-?i%Esq+nIky!}kxZpY(@)Rc ztLM;pUW$APJBDf$7`ax$o^H^~HF~+CJ~?d9q^oqkPUmfL-X(=+9JaQOG#K3^GXTNG_0pkR3KP4@DRix>#%4d&j0zx630*=wN}E#8uUz!p4mKHxwuuX z(pzKN`8#U=*qs_6fx)%czaO`SlU3nlT{yWD z5QIr#hoJmDNCKyJbrFvJ_UNOd2)f5X_c&;%r3(2l8pmku7*M&G=iX^>sNs7j==}EX za?ss&d!X`TJ_(@np9IkPreB~6`}~^YcIMjcfXc-@=U0Y9Gd{mS=eKvAgRZyR165ah jw>k8-&mQQyVpANO@?k;O6+6YTQ$DPx!v&cVcpm-*wD!0D diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/ws2_32.cpython-310.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/ws2_32.cpython-310.pyc deleted file mode 100644 index 341d0ed0266cadf32ff0b396c2f8026c0280073b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2883 zcmZ`*-E-4M5Z6hvtk{l|kO1K`KubGrhYVk(Q%Y&v1VTzM454I3;~9;jJ0~KtBu+AE zI_9OxE3bV{9`i5VYoB<|Tc5hS{)jR7W^Q%6dw09P+r2%-2aK_nD?~jk8d5I$ze*9fN6H=SFBYb55>lITrC|m~YyS-5hhqngyrOEILJ|iIOwE ztnnPT_BC#a+@9f-d7j(*nlmBFdm10(g?(+0Ig`W{d5O3wQ5FS0{(}nFcknx|pYN93t7yN}M zy{5>7te9$iJ%|!iK9Vw)Y9ejOYjt(Z#-4611^8eS{R2Hif=|I-c8 z+z|YR*W~x^)^~!4$2%#0=?v>$5&%a?=967H1~xI}Q*_MMOjcqf^D)zV4ae9Qp{Eyt zv{|OTVcWVaWqMo749HjZLI0bz4LCNvR$;2pjY!M|gwWgs#HzefdtF^!S#sB&FFt+r zO6FiEHL<={T^8A@mu3`Sm_62LMLr#{vZP4ipp=OsWqNWmJvk*vNC##kP58KOeQbD(8s9v8jkyrt^t!FDE3C*(`7L;4$L+?Wbav)JFwcIIfQ&T zVi@{DkOmQiH1dU<@S-9)4+x3Mb$Z2{zKnJ2SWq9!^j7g1zE96`!Y z?YxHg!uX|l+k#*UuExRy_wry-KNSe0yb6Y(PAjPsFg^BJYa?F;c?1ufSiYZj3;F4#6vub12=4>Re2qE=vb3ya6HlsYA@rA zZ;>GPS;k@b2+Jf45DNyPt+$Os^8{0IQ)C|JGKd;6Sv!LKNotUGHMpRvl&lH)F7P{? zl{^XH4kqdkx1JIf9MZH3++HwsVKp33N&@%JympxutZkp-jv|fGFcE_Tx~M!vyLV zjnO&9HdUVQJPy6ju9Cb177;SRpV5gQ>7Tp}Gkfq)eCdL}i^?JJ4?s4L@}H3)=NmwJ z4aZm#2s~ck6Yz&nS9+$b&J8EX6+`|26XiW5KOz}2`4D92Cm|~968Vuvu zID(fW>)KH)RVG$;l}8$iXxP*OEG9pG#a)manK{Q-K-<>2*3zVng=dew*E4niwRAYc z4P}BYSDC4ZIQep9$|@{Z#zw253{a|E<4eJO43q9dKc=M8Z8pgy%0_x6mq6QrZ^%b5 zR;CpGJ2EPlQ8#qBs~}rI`BNmwjV`ez(Dveq#k6VR178%BZI@Xp2OUh%-cgt-9&||L{QyFWB9=R4Kj{3sJVadS nZ$NCV#3uDw-P9*_+ca|pW?BVi8}RLR9DmwN%+6s)d71qWi~&wa diff --git a/pythonmemorymodule/windows/winproxy/apis/__pycache__/ws2_32.cpython-311.pyc b/pythonmemorymodule/windows/winproxy/apis/__pycache__/ws2_32.cpython-311.pyc deleted file mode 100644 index 8c6317d97b30520b72efb16070bbc14e4ec060e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5057 zcmd5}O}* zb0{rsX~khz>LG`1lf$m$6D48~xl~&9w8tEuktNWRkRnw*B&cSb7gghY%QD~Ax?SGnbMctGr zF2$XcQZ><>8}vHBg0YJ_Z@ALbe=(JW+)_C6KIY_l7Fu>0^*B%E@*5n!a0)#Wq%9+m69D zRY`E>7-Vx5@-2lV)ZpV2%r5Y*^Nml)A zLd)RfN1Ug*71Xn`44_zAi~UmNX)B@A%QbjxLDMqxIkdH#b)*X*g(H6re|3UCPQA!7mH~iYb<8@ zW3g0P$tJO17mGd2#*@Vv&&ciZ$i#$IryFr2A;Za*(hB#209K=-F2u7*qx=ZZ$N|dw z?UMZA+>EYreNKx%&{wp%NLtRORL#)m#uCPj?EIXe>c*{Ga!N@iG<7bs0_$qM1AXsZ z?)#uuP0g!HZ#<<856&$oG$p;P&5b%4t>IT!eCPUQn7d;@YsNgcvB52hLj8EPhnHZ16ravCN z`O#hOfoH7X?DWW(YD~m+L--S*YZtPbER1M*xT=FOED2eb6z7Y&jwgEu8gItun}n0a z656A9GNHuuwERFd_&Jygz)$Z3vPO2j^?z(CG_-Gf+f8r#Uf|5r@xNTk_m39(N6kPa zABYqJ5z`mhWx=(ZLWi<*D0m(>6zcm7I!}n~Rrdz0vgNFFs8P148gWJ832h-Q zBz*>Po0)`gpM>OV)n%qt{wN{aBTwc=0+OWV%VefRJXgjrzXU=FasfK}TR>3#Ejz4Z zn|0(?o`=8oyzu4OodUaKN_W18)73#n8iCV|!|7&iLtIADP!Ue*;lnTz1mnOF`_vBW z+-9Adwa>49-SXmeo=p|llqpTwVxu8S%?BM}lxxuWPmHoEt=4S7N?XoqhlUZsEt24f zZ5NN_iZ56aW&kh%PaA1DowNeU4BVWekB7AAqUBYVuP5V>U~yGEWhuJ^hFgX&u3-~o87~wLizSNu> z@_a1Xiq{b4nvk30qWlL)F#L4f*imi-*+}|v3PT%}+pxpVZ?p5c3pr); zMxG57*pMj={m|=R0SYU&uG-%5%0kG82&4l~^3_4JixYmM|SL~ z9ro@vdp9?d)AOvSzETO*jUA5n}e#n0c3!qN)zryME-IUT@QoklXyQJN${JtcY&7;0A z$&C5$z8HeizT~3s?~`isxa%9_{^M}U=cXt2i9`IvRlj!TcW2kn?z`MHLUAfWzi|^+ z&|%e;VJPi_YL<362xNE!;OW~Y?aI@x0&rZE_9CtqaUq9e1MS@?or2wvmaPS>O3bvt zOqXMTWn;|NUX%9aXDJoRR?LNH-lsRomncjvU)0X6t_er!hyBukA1Y5-DKLO?1 B;}!q_ diff --git a/pythonmemorymodule/windows/__init__.py b/windows/__init__.py similarity index 100% rename from pythonmemorymodule/windows/__init__.py rename to windows/__init__.py diff --git a/pythonmemorymodule/windows/alpc.py b/windows/alpc.py similarity index 100% rename from pythonmemorymodule/windows/alpc.py rename to windows/alpc.py diff --git a/pythonmemorymodule/windows/com.py b/windows/com.py similarity index 100% rename from pythonmemorymodule/windows/com.py rename to windows/com.py diff --git a/pythonmemorymodule/windows/crypto/__init__.py b/windows/crypto/__init__.py similarity index 100% rename from pythonmemorymodule/windows/crypto/__init__.py rename to windows/crypto/__init__.py diff --git a/pythonmemorymodule/windows/crypto/catalog.py b/windows/crypto/catalog.py similarity index 100% rename from pythonmemorymodule/windows/crypto/catalog.py rename to windows/crypto/catalog.py diff --git a/pythonmemorymodule/windows/crypto/certificate.py b/windows/crypto/certificate.py similarity index 100% rename from pythonmemorymodule/windows/crypto/certificate.py rename to windows/crypto/certificate.py diff --git a/pythonmemorymodule/windows/crypto/cryptmsg.py b/windows/crypto/cryptmsg.py similarity index 100% rename from pythonmemorymodule/windows/crypto/cryptmsg.py rename to windows/crypto/cryptmsg.py diff --git a/pythonmemorymodule/windows/crypto/dpapi.py b/windows/crypto/dpapi.py similarity index 100% rename from pythonmemorymodule/windows/crypto/dpapi.py rename to windows/crypto/dpapi.py diff --git a/pythonmemorymodule/windows/crypto/encrypt_decrypt.py b/windows/crypto/encrypt_decrypt.py similarity index 100% rename from pythonmemorymodule/windows/crypto/encrypt_decrypt.py rename to windows/crypto/encrypt_decrypt.py diff --git a/pythonmemorymodule/windows/crypto/generation.py b/windows/crypto/generation.py similarity index 100% rename from pythonmemorymodule/windows/crypto/generation.py rename to windows/crypto/generation.py diff --git a/pythonmemorymodule/windows/crypto/sign_verify.py b/windows/crypto/sign_verify.py similarity index 100% rename from pythonmemorymodule/windows/crypto/sign_verify.py rename to windows/crypto/sign_verify.py diff --git a/pythonmemorymodule/windows/dbgprint.py b/windows/dbgprint.py similarity index 100% rename from pythonmemorymodule/windows/dbgprint.py rename to windows/dbgprint.py diff --git a/pythonmemorymodule/windows/debug/__init__.py b/windows/debug/__init__.py similarity index 100% rename from pythonmemorymodule/windows/debug/__init__.py rename to windows/debug/__init__.py diff --git a/pythonmemorymodule/windows/debug/breakpoints.py b/windows/debug/breakpoints.py similarity index 100% rename from pythonmemorymodule/windows/debug/breakpoints.py rename to windows/debug/breakpoints.py diff --git a/pythonmemorymodule/windows/debug/debugger.py b/windows/debug/debugger.py similarity index 100% rename from pythonmemorymodule/windows/debug/debugger.py rename to windows/debug/debugger.py diff --git a/pythonmemorymodule/windows/debug/localdbg.py b/windows/debug/localdbg.py similarity index 100% rename from pythonmemorymodule/windows/debug/localdbg.py rename to windows/debug/localdbg.py diff --git a/pythonmemorymodule/windows/debug/symboldbg.py b/windows/debug/symboldbg.py similarity index 100% rename from pythonmemorymodule/windows/debug/symboldbg.py rename to windows/debug/symboldbg.py diff --git a/pythonmemorymodule/windows/debug/symbols.py b/windows/debug/symbols.py similarity index 100% rename from pythonmemorymodule/windows/debug/symbols.py rename to windows/debug/symbols.py diff --git a/pythonmemorymodule/windows/generated_def/__init__.py b/windows/generated_def/__init__.py similarity index 100% rename from pythonmemorymodule/windows/generated_def/__init__.py rename to windows/generated_def/__init__.py diff --git a/pythonmemorymodule/windows/generated_def/auto_doc_tst.py b/windows/generated_def/auto_doc_tst.py similarity index 100% rename from pythonmemorymodule/windows/generated_def/auto_doc_tst.py rename to windows/generated_def/auto_doc_tst.py diff --git a/pythonmemorymodule/windows/generated_def/flag.py b/windows/generated_def/flag.py similarity index 100% rename from pythonmemorymodule/windows/generated_def/flag.py rename to windows/generated_def/flag.py diff --git a/pythonmemorymodule/windows/generated_def/interfaces.py b/windows/generated_def/interfaces.py similarity index 100% rename from pythonmemorymodule/windows/generated_def/interfaces.py rename to windows/generated_def/interfaces.py diff --git a/pythonmemorymodule/windows/generated_def/meta.py b/windows/generated_def/meta.py similarity index 100% rename from pythonmemorymodule/windows/generated_def/meta.py rename to windows/generated_def/meta.py diff --git a/pythonmemorymodule/windows/generated_def/ntstatus.py b/windows/generated_def/ntstatus.py similarity index 100% rename from pythonmemorymodule/windows/generated_def/ntstatus.py rename to windows/generated_def/ntstatus.py diff --git a/pythonmemorymodule/windows/generated_def/windef.py b/windows/generated_def/windef.py similarity index 100% rename from pythonmemorymodule/windows/generated_def/windef.py rename to windows/generated_def/windef.py diff --git a/pythonmemorymodule/windows/generated_def/winerror.py b/windows/generated_def/winerror.py similarity index 100% rename from pythonmemorymodule/windows/generated_def/winerror.py rename to windows/generated_def/winerror.py diff --git a/pythonmemorymodule/windows/generated_def/winfuncs.py b/windows/generated_def/winfuncs.py similarity index 100% rename from pythonmemorymodule/windows/generated_def/winfuncs.py rename to windows/generated_def/winfuncs.py diff --git a/pythonmemorymodule/windows/generated_def/winstructs.py b/windows/generated_def/winstructs.py similarity index 100% rename from pythonmemorymodule/windows/generated_def/winstructs.py rename to windows/generated_def/winstructs.py diff --git a/pythonmemorymodule/windows/hooks.py b/windows/hooks.py similarity index 100% rename from pythonmemorymodule/windows/hooks.py rename to windows/hooks.py diff --git a/pythonmemorymodule/windows/injection.py b/windows/injection.py similarity index 100% rename from pythonmemorymodule/windows/injection.py rename to windows/injection.py diff --git a/pythonmemorymodule/windows/native_exec/__init__.py b/windows/native_exec/__init__.py similarity index 100% rename from pythonmemorymodule/windows/native_exec/__init__.py rename to windows/native_exec/__init__.py diff --git a/pythonmemorymodule/windows/native_exec/cpuid.py b/windows/native_exec/cpuid.py similarity index 100% rename from pythonmemorymodule/windows/native_exec/cpuid.py rename to windows/native_exec/cpuid.py diff --git a/pythonmemorymodule/windows/native_exec/native_function.py b/windows/native_exec/native_function.py similarity index 100% rename from pythonmemorymodule/windows/native_exec/native_function.py rename to windows/native_exec/native_function.py diff --git a/pythonmemorymodule/windows/native_exec/nativeutils.py b/windows/native_exec/nativeutils.py similarity index 100% rename from pythonmemorymodule/windows/native_exec/nativeutils.py rename to windows/native_exec/nativeutils.py diff --git a/pythonmemorymodule/windows/native_exec/simple_x64.py b/windows/native_exec/simple_x64.py similarity index 100% rename from pythonmemorymodule/windows/native_exec/simple_x64.py rename to windows/native_exec/simple_x64.py diff --git a/pythonmemorymodule/windows/native_exec/simple_x86.py b/windows/native_exec/simple_x86.py similarity index 100% rename from pythonmemorymodule/windows/native_exec/simple_x86.py rename to windows/native_exec/simple_x86.py diff --git a/pythonmemorymodule/windows/pe_parse.py b/windows/pe_parse.py similarity index 100% rename from pythonmemorymodule/windows/pe_parse.py rename to windows/pe_parse.py diff --git a/pythonmemorymodule/windows/pipe.py b/windows/pipe.py similarity index 100% rename from pythonmemorymodule/windows/pipe.py rename to windows/pipe.py diff --git a/pythonmemorymodule/windows/pycompat.py b/windows/pycompat.py similarity index 100% rename from pythonmemorymodule/windows/pycompat.py rename to windows/pycompat.py diff --git a/pythonmemorymodule/windows/remotectypes.py b/windows/remotectypes.py similarity index 100% rename from pythonmemorymodule/windows/remotectypes.py rename to windows/remotectypes.py diff --git a/pythonmemorymodule/windows/rpc/__init__.py b/windows/rpc/__init__.py similarity index 100% rename from pythonmemorymodule/windows/rpc/__init__.py rename to windows/rpc/__init__.py diff --git a/pythonmemorymodule/windows/rpc/client.py b/windows/rpc/client.py similarity index 100% rename from pythonmemorymodule/windows/rpc/client.py rename to windows/rpc/client.py diff --git a/pythonmemorymodule/windows/rpc/epmapper.py b/windows/rpc/epmapper.py similarity index 100% rename from pythonmemorymodule/windows/rpc/epmapper.py rename to windows/rpc/epmapper.py diff --git a/pythonmemorymodule/windows/rpc/ndr.py b/windows/rpc/ndr.py similarity index 100% rename from pythonmemorymodule/windows/rpc/ndr.py rename to windows/rpc/ndr.py diff --git a/pythonmemorymodule/windows/security.py b/windows/security.py similarity index 100% rename from pythonmemorymodule/windows/security.py rename to windows/security.py diff --git a/pythonmemorymodule/windows/syswow64.py b/windows/syswow64.py similarity index 100% rename from pythonmemorymodule/windows/syswow64.py rename to windows/syswow64.py diff --git a/pythonmemorymodule/windows/test.py b/windows/test.py similarity index 100% rename from pythonmemorymodule/windows/test.py rename to windows/test.py diff --git a/pythonmemorymodule/windows/utils/__init__.py b/windows/utils/__init__.py similarity index 100% rename from pythonmemorymodule/windows/utils/__init__.py rename to windows/utils/__init__.py diff --git a/pythonmemorymodule/windows/utils/improved_buffer.py b/windows/utils/improved_buffer.py similarity index 100% rename from pythonmemorymodule/windows/utils/improved_buffer.py rename to windows/utils/improved_buffer.py diff --git a/pythonmemorymodule/windows/utils/pythonutils.py b/windows/utils/pythonutils.py similarity index 100% rename from pythonmemorymodule/windows/utils/pythonutils.py rename to windows/utils/pythonutils.py diff --git a/pythonmemorymodule/windows/utils/winutils.py b/windows/utils/winutils.py similarity index 100% rename from pythonmemorymodule/windows/utils/winutils.py rename to windows/utils/winutils.py diff --git a/pythonmemorymodule/windows/winobject/__init__.py b/windows/winobject/__init__.py similarity index 100% rename from pythonmemorymodule/windows/winobject/__init__.py rename to windows/winobject/__init__.py diff --git a/pythonmemorymodule/windows/winobject/apisetmap.py b/windows/winobject/apisetmap.py similarity index 100% rename from pythonmemorymodule/windows/winobject/apisetmap.py rename to windows/winobject/apisetmap.py diff --git a/pythonmemorymodule/windows/winobject/bits.py b/windows/winobject/bits.py similarity index 100% rename from pythonmemorymodule/windows/winobject/bits.py rename to windows/winobject/bits.py diff --git a/pythonmemorymodule/windows/winobject/device_manager.py b/windows/winobject/device_manager.py similarity index 100% rename from pythonmemorymodule/windows/winobject/device_manager.py rename to windows/winobject/device_manager.py diff --git a/pythonmemorymodule/windows/winobject/event_log.py b/windows/winobject/event_log.py similarity index 100% rename from pythonmemorymodule/windows/winobject/event_log.py rename to windows/winobject/event_log.py diff --git a/pythonmemorymodule/windows/winobject/event_trace.py b/windows/winobject/event_trace.py similarity index 100% rename from pythonmemorymodule/windows/winobject/event_trace.py rename to windows/winobject/event_trace.py diff --git a/pythonmemorymodule/windows/winobject/exception.py b/windows/winobject/exception.py similarity index 100% rename from pythonmemorymodule/windows/winobject/exception.py rename to windows/winobject/exception.py diff --git a/pythonmemorymodule/windows/winobject/file.py b/windows/winobject/file.py similarity index 100% rename from pythonmemorymodule/windows/winobject/file.py rename to windows/winobject/file.py diff --git a/pythonmemorymodule/windows/winobject/handle.py b/windows/winobject/handle.py similarity index 100% rename from pythonmemorymodule/windows/winobject/handle.py rename to windows/winobject/handle.py diff --git a/pythonmemorymodule/windows/winobject/network.py b/windows/winobject/network.py similarity index 100% rename from pythonmemorymodule/windows/winobject/network.py rename to windows/winobject/network.py diff --git a/pythonmemorymodule/windows/winobject/object_manager.py b/windows/winobject/object_manager.py similarity index 100% rename from pythonmemorymodule/windows/winobject/object_manager.py rename to windows/winobject/object_manager.py diff --git a/pythonmemorymodule/windows/winobject/process.py b/windows/winobject/process.py similarity index 100% rename from pythonmemorymodule/windows/winobject/process.py rename to windows/winobject/process.py diff --git a/pythonmemorymodule/windows/winobject/registry.py b/windows/winobject/registry.py similarity index 100% rename from pythonmemorymodule/windows/winobject/registry.py rename to windows/winobject/registry.py diff --git a/pythonmemorymodule/windows/winobject/service.py b/windows/winobject/service.py similarity index 100% rename from pythonmemorymodule/windows/winobject/service.py rename to windows/winobject/service.py diff --git a/pythonmemorymodule/windows/winobject/system.py b/windows/winobject/system.py similarity index 100% rename from pythonmemorymodule/windows/winobject/system.py rename to windows/winobject/system.py diff --git a/pythonmemorymodule/windows/winobject/system_module.py b/windows/winobject/system_module.py similarity index 100% rename from pythonmemorymodule/windows/winobject/system_module.py rename to windows/winobject/system_module.py diff --git a/pythonmemorymodule/windows/winobject/task_scheduler.py b/windows/winobject/task_scheduler.py similarity index 100% rename from pythonmemorymodule/windows/winobject/task_scheduler.py rename to windows/winobject/task_scheduler.py diff --git a/pythonmemorymodule/windows/winobject/token.py b/windows/winobject/token.py similarity index 100% rename from pythonmemorymodule/windows/winobject/token.py rename to windows/winobject/token.py diff --git a/pythonmemorymodule/windows/winobject/volume.py b/windows/winobject/volume.py similarity index 100% rename from pythonmemorymodule/windows/winobject/volume.py rename to windows/winobject/volume.py diff --git a/pythonmemorymodule/windows/winobject/wmi.py b/windows/winobject/wmi.py similarity index 100% rename from pythonmemorymodule/windows/winobject/wmi.py rename to windows/winobject/wmi.py diff --git a/pythonmemorymodule/windows/winproxy/__init__.py b/windows/winproxy/__init__.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/__init__.py rename to windows/winproxy/__init__.py diff --git a/pythonmemorymodule/windows/winproxy/apiproxy.py b/windows/winproxy/apiproxy.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apiproxy.py rename to windows/winproxy/apiproxy.py diff --git a/pythonmemorymodule/windows/winproxy/apis/__init__.py b/windows/winproxy/apis/__init__.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/__init__.py rename to windows/winproxy/apis/__init__.py diff --git a/pythonmemorymodule/windows/winproxy/apis/advapi32.py b/windows/winproxy/apis/advapi32.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/advapi32.py rename to windows/winproxy/apis/advapi32.py diff --git a/pythonmemorymodule/windows/winproxy/apis/cfgmgr32.py b/windows/winproxy/apis/cfgmgr32.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/cfgmgr32.py rename to windows/winproxy/apis/cfgmgr32.py diff --git a/pythonmemorymodule/windows/winproxy/apis/crypt32.py b/windows/winproxy/apis/crypt32.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/crypt32.py rename to windows/winproxy/apis/crypt32.py diff --git a/pythonmemorymodule/windows/winproxy/apis/cryptui.py b/windows/winproxy/apis/cryptui.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/cryptui.py rename to windows/winproxy/apis/cryptui.py diff --git a/pythonmemorymodule/windows/winproxy/apis/dbghelp.py b/windows/winproxy/apis/dbghelp.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/dbghelp.py rename to windows/winproxy/apis/dbghelp.py diff --git a/pythonmemorymodule/windows/winproxy/apis/dnsapi.py b/windows/winproxy/apis/dnsapi.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/dnsapi.py rename to windows/winproxy/apis/dnsapi.py diff --git a/pythonmemorymodule/windows/winproxy/apis/iphlpapi.py b/windows/winproxy/apis/iphlpapi.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/iphlpapi.py rename to windows/winproxy/apis/iphlpapi.py diff --git a/pythonmemorymodule/windows/winproxy/apis/kernel32.py b/windows/winproxy/apis/kernel32.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/kernel32.py rename to windows/winproxy/apis/kernel32.py diff --git a/pythonmemorymodule/windows/winproxy/apis/ktmw32.py b/windows/winproxy/apis/ktmw32.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/ktmw32.py rename to windows/winproxy/apis/ktmw32.py diff --git a/pythonmemorymodule/windows/winproxy/apis/netapi32.py b/windows/winproxy/apis/netapi32.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/netapi32.py rename to windows/winproxy/apis/netapi32.py diff --git a/pythonmemorymodule/windows/winproxy/apis/ntdll.py b/windows/winproxy/apis/ntdll.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/ntdll.py rename to windows/winproxy/apis/ntdll.py diff --git a/pythonmemorymodule/windows/winproxy/apis/ole32.py b/windows/winproxy/apis/ole32.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/ole32.py rename to windows/winproxy/apis/ole32.py diff --git a/pythonmemorymodule/windows/winproxy/apis/oleacc.py b/windows/winproxy/apis/oleacc.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/oleacc.py rename to windows/winproxy/apis/oleacc.py diff --git a/pythonmemorymodule/windows/winproxy/apis/oleaut32.py b/windows/winproxy/apis/oleaut32.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/oleaut32.py rename to windows/winproxy/apis/oleaut32.py diff --git a/pythonmemorymodule/windows/winproxy/apis/psapi.py b/windows/winproxy/apis/psapi.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/psapi.py rename to windows/winproxy/apis/psapi.py diff --git a/pythonmemorymodule/windows/winproxy/apis/setupapi.py b/windows/winproxy/apis/setupapi.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/setupapi.py rename to windows/winproxy/apis/setupapi.py diff --git a/pythonmemorymodule/windows/winproxy/apis/shell32.py b/windows/winproxy/apis/shell32.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/shell32.py rename to windows/winproxy/apis/shell32.py diff --git a/pythonmemorymodule/windows/winproxy/apis/shlwapi.py b/windows/winproxy/apis/shlwapi.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/shlwapi.py rename to windows/winproxy/apis/shlwapi.py diff --git a/pythonmemorymodule/windows/winproxy/apis/tdh.py b/windows/winproxy/apis/tdh.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/tdh.py rename to windows/winproxy/apis/tdh.py diff --git a/pythonmemorymodule/windows/winproxy/apis/user32.py b/windows/winproxy/apis/user32.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/user32.py rename to windows/winproxy/apis/user32.py diff --git a/pythonmemorymodule/windows/winproxy/apis/version.py b/windows/winproxy/apis/version.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/version.py rename to windows/winproxy/apis/version.py diff --git a/pythonmemorymodule/windows/winproxy/apis/virtdisk.py b/windows/winproxy/apis/virtdisk.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/virtdisk.py rename to windows/winproxy/apis/virtdisk.py diff --git a/pythonmemorymodule/windows/winproxy/apis/wevtapi.py b/windows/winproxy/apis/wevtapi.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/wevtapi.py rename to windows/winproxy/apis/wevtapi.py diff --git a/pythonmemorymodule/windows/winproxy/apis/winhttp.py b/windows/winproxy/apis/winhttp.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/winhttp.py rename to windows/winproxy/apis/winhttp.py diff --git a/pythonmemorymodule/windows/winproxy/apis/wininet.py b/windows/winproxy/apis/wininet.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/wininet.py rename to windows/winproxy/apis/wininet.py diff --git a/pythonmemorymodule/windows/winproxy/apis/wintrust.py b/windows/winproxy/apis/wintrust.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/wintrust.py rename to windows/winproxy/apis/wintrust.py diff --git a/pythonmemorymodule/windows/winproxy/apis/ws2_32.py b/windows/winproxy/apis/ws2_32.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/apis/ws2_32.py rename to windows/winproxy/apis/ws2_32.py diff --git a/pythonmemorymodule/windows/winproxy/error.py b/windows/winproxy/error.py similarity index 100% rename from pythonmemorymodule/windows/winproxy/error.py rename to windows/winproxy/error.py diff --git a/pythonmemorymodule/windows/wintrust.py b/windows/wintrust.py similarity index 100% rename from pythonmemorymodule/windows/wintrust.py rename to windows/wintrust.py