| // Copyright 2025 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // Architecture-independent definitions. |
| |
| package windows |
| |
| // Pseudo handles. |
| const ( |
| CurrentProcess = ^uintptr(0) // -1 = current process |
| CurrentThread = ^uintptr(1) // -2 = current thread |
| ) |
| |
| const INVALID_HANDLE_VALUE = ^uintptr(0) |
| |
| const DWORD_MAX = 0xffffffff |
| |
| const ( |
| PROT_NONE = 0 |
| PROT_READ = 1 |
| PROT_WRITE = 2 |
| PROT_EXEC = 4 |
| ) |
| |
| const ( |
| MAP_ANON = 1 |
| MAP_PRIVATE = 2 |
| ) |
| |
| const DUPLICATE_SAME_ACCESS = 0x2 |
| |
| const THREAD_PRIORITY_HIGHEST = 0x2 |
| |
| const ( |
| SIGINT = 0x2 |
| SIGTERM = 0xF |
| ) |
| |
| const ( |
| CTRL_C_EVENT = 0x0 |
| CTRL_BREAK_EVENT = 0x1 |
| CTRL_CLOSE_EVENT = 0x2 |
| CTRL_LOGOFF_EVENT = 0x5 |
| CTRL_SHUTDOWN_EVENT = 0x6 |
| ) |
| |
| const ( |
| EXCEPTION_ACCESS_VIOLATION = 0xc0000005 |
| EXCEPTION_IN_PAGE_ERROR = 0xc0000006 |
| EXCEPTION_BREAKPOINT = 0x80000003 |
| EXCEPTION_ILLEGAL_INSTRUCTION = 0xc000001d |
| EXCEPTION_FLT_DENORMAL_OPERAND = 0xc000008d |
| EXCEPTION_FLT_DIVIDE_BY_ZERO = 0xc000008e |
| EXCEPTION_FLT_INEXACT_RESULT = 0xc000008f |
| EXCEPTION_FLT_OVERFLOW = 0xc0000091 |
| EXCEPTION_FLT_UNDERFLOW = 0xc0000093 |
| EXCEPTION_INT_DIVIDE_BY_ZERO = 0xc0000094 |
| EXCEPTION_INT_OVERFLOW = 0xc0000095 |
| ) |
| |
| const ( |
| SEM_FAILCRITICALERRORS = 0x0001 |
| SEM_NOGPFAULTERRORBOX = 0x0002 |
| SEM_NOOPENFILEERRORBOX = 0x8000 |
| ) |
| |
| const WER_FAULT_REPORTING_NO_UI = 0x0020 |
| |
| const INFINITE = 0xffffffff |
| |
| const WAIT_TIMEOUT = 258 |
| |
| const FAIL_FAST_GENERATE_EXCEPTION_ADDRESS = 0x1 |
| |
| const ( |
| EXCEPTION_CONTINUE_EXECUTION = -0x1 |
| EXCEPTION_CONTINUE_SEARCH = 0x0 |
| EXCEPTION_CONTINUE_SEARCH_SEH = 0x1 |
| ) |
| |
| const CREATE_WAITABLE_TIMER_HIGH_RESOLUTION = 0x00000002 |
| |
| const ( |
| SYNCHRONIZE = 0x00100000 |
| TIMER_QUERY_STATE = 0x0001 |
| TIMER_MODIFY_STATE = 0x0002 |
| ) |
| |
| // https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/596a1078-e883-4972-9bbc-49e60bebca55 |
| const ( |
| STATUS_SUCCESS = 0x00000000 |
| STATUS_PENDING = 0x00000103 |
| STATUS_CANCELLED = 0xC0000120 |
| ) |
| |
| // https://learn.microsoft.com/en-us/windows/win32/api/sysinfoapi/ns-sysinfoapi-system_info |
| type SystemInfo struct { |
| ProcessorArchitecture uint16 |
| Reserved uint16 |
| PageSize uint32 |
| MinimumApplicationAddress *byte |
| MaximumApplicationAddress *byte |
| ActiveProcessorMask uintptr |
| NumberOfProcessors uint32 |
| ProcessorType uint32 |
| AllocationGranularity uint32 |
| ProcessorLevel uint16 |
| ProcessorRevision uint16 |
| } |
| |
| // https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-exception_pointers |
| type ExceptionPointers struct { |
| Record *ExceptionRecord |
| Context *Context |
| } |
| |
| // https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-exception_record |
| type ExceptionRecord struct { |
| ExceptionCode uint32 |
| ExceptionFlags uint32 |
| ExceptionRecord *ExceptionRecord |
| ExceptionAddress uintptr |
| NumberParameters uint32 |
| ExceptionInformation [15]uintptr |
| } |
| |
| type Handle uintptr |
| |
| // https://learn.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-overlapped |
| type Overlapped struct { |
| Internal uintptr |
| InternalHigh uintptr |
| Offset uint32 |
| OffsetHigh uint32 |
| HEvent Handle |
| } |
| |
| // https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-memory_basic_information |
| type MemoryBasicInformation struct { |
| BaseAddress uintptr |
| AllocationBase uintptr |
| AllocationProtect uint32 |
| PartitionId uint16 |
| RegionSize uintptr |
| State uint32 |
| Protect uint32 |
| Type uint32 |
| } |
| |
| // https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/ns-wdm-_osversioninfow |
| type OSVERSIONINFOW struct { |
| OSVersionInfoSize uint32 |
| MajorVersion uint32 |
| MinorVersion uint32 |
| BuildNumber uint32 |
| PlatformID uint32 |
| CSDVersion [128]uint16 |
| } |