aboutsummaryrefslogtreecommitdiff
path: root/core/sys
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2026-01-02 10:39:46 +0000
committergingerBill <gingerBill@users.noreply.github.com>2026-01-02 10:39:46 +0000
commitb86627ba3725b5cdf4b7ac0a4cb7f17f2eab08fb (patch)
tree124c44cac7b6312e3137583a8e7aef95fce4b080 /core/sys
parentbfe75d5c2cfce94b989431ddb2b186a0d877ffe9 (diff)
Improve formatting and `#raw_union` logic in `core:sys/windows`
Diffstat (limited to 'core/sys')
-rw-r--r--core/sys/windows/dnsapi.odin4
-rw-r--r--core/sys/windows/dwmapi.odin8
-rw-r--r--core/sys/windows/gdi32.odin110
-rw-r--r--core/sys/windows/hidpi.odin272
-rw-r--r--core/sys/windows/hidusage.odin1096
-rw-r--r--core/sys/windows/icu.odin2
-rw-r--r--core/sys/windows/ip_helper.odin4
-rw-r--r--core/sys/windows/kernel32.odin667
8 files changed, 1080 insertions, 1083 deletions
diff --git a/core/sys/windows/dnsapi.odin b/core/sys/windows/dnsapi.odin
index 728813696..73e565118 100644
--- a/core/sys/windows/dnsapi.odin
+++ b/core/sys/windows/dnsapi.odin
@@ -5,6 +5,6 @@ foreign import "system:Dnsapi.lib"
@(default_calling_convention="system")
foreign Dnsapi {
- DnsQuery_UTF8 :: proc(name: cstring, type: u16, options: DNS_QUERY_OPTIONS, extra: PVOID, results: ^^DNS_RECORD, reserved: PVOID) -> DNS_STATUS ---
- DnsRecordListFree :: proc(list: ^DNS_RECORD, options: DWORD) ---
+ DnsQuery_UTF8 :: proc(name: cstring, type: u16, options: DNS_QUERY_OPTIONS, extra: PVOID, results: ^^DNS_RECORD, reserved: PVOID) -> DNS_STATUS ---
+ DnsRecordListFree :: proc(list: ^DNS_RECORD, options: DWORD) ---
}
diff --git a/core/sys/windows/dwmapi.odin b/core/sys/windows/dwmapi.odin
index e86730660..0980c2e94 100644
--- a/core/sys/windows/dwmapi.odin
+++ b/core/sys/windows/dwmapi.odin
@@ -47,9 +47,9 @@ DWM_WINDOW_CORNER_PREFERENCE :: enum c_int {
@(default_calling_convention="system")
foreign dwmapi {
- DwmFlush :: proc() -> HRESULT ---
- DwmIsCompositionEnabled :: proc(pfEnabled: ^BOOL) -> HRESULT ---
+ DwmFlush :: proc() -> HRESULT ---
+ DwmIsCompositionEnabled :: proc(pfEnabled: ^BOOL) -> HRESULT ---
DwmExtendFrameIntoClientArea :: proc(hWnd: HWND, pMarInset: PMARGINS) -> HRESULT ---
- DwmGetWindowAttribute :: proc(hWnd: HWND, dwAttribute: DWORD, pvAttribute: PVOID, cbAttribute: DWORD) -> HRESULT ---
- DwmSetWindowAttribute :: proc(hWnd: HWND, dwAttribute: DWORD, pvAttribute: LPCVOID, cbAttribute: DWORD) -> HRESULT ---
+ DwmGetWindowAttribute :: proc(hWnd: HWND, dwAttribute: DWORD, pvAttribute: PVOID, cbAttribute: DWORD) -> HRESULT ---
+ DwmSetWindowAttribute :: proc(hWnd: HWND, dwAttribute: DWORD, pvAttribute: LPCVOID, cbAttribute: DWORD) -> HRESULT ---
}
diff --git a/core/sys/windows/gdi32.odin b/core/sys/windows/gdi32.odin
index 1a23b4c8f..756ec5011 100644
--- a/core/sys/windows/gdi32.odin
+++ b/core/sys/windows/gdi32.odin
@@ -7,85 +7,88 @@ foreign import gdi32 "system:Gdi32.lib"
@(default_calling_convention="system")
foreign gdi32 {
- GetDeviceCaps :: proc(hdc: HDC, index: INT) -> INT ---
+ GetDeviceCaps :: proc(hdc: HDC, index: INT) -> INT ---
GetStockObject :: proc(i: INT) -> HGDIOBJ ---
- SelectObject :: proc(hdc: HDC, h: HGDIOBJ) -> HGDIOBJ ---
- DeleteObject :: proc(ho: HGDIOBJ) -> BOOL ---
- SetBkColor :: proc(hdc: HDC, color: COLORREF) -> COLORREF ---
- SetBkMode :: proc(hdc: HDC, mode: BKMODE) -> INT ---
+ SelectObject :: proc(hdc: HDC, h: HGDIOBJ) -> HGDIOBJ ---
+ DeleteObject :: proc(ho: HGDIOBJ) -> BOOL ---
+ SetBkColor :: proc(hdc: HDC, color: COLORREF) -> COLORREF ---
+ SetBkMode :: proc(hdc: HDC, mode: BKMODE) -> INT ---
CreateCompatibleDC :: proc(hdc: HDC) -> HDC ---
- DeleteDC :: proc(hdc: HDC) -> BOOL ---
- CancelDC :: proc(hdc: HDC) -> BOOL ---
- SaveDC :: proc(hdc: HDC) -> INT ---
- RestoreDC :: proc(hdc: HDC, nSavedDC: INT) -> BOOL ---
+ DeleteDC :: proc(hdc: HDC) -> BOOL ---
+ CancelDC :: proc(hdc: HDC) -> BOOL ---
+ SaveDC :: proc(hdc: HDC) -> INT ---
+ RestoreDC :: proc(hdc: HDC, nSavedDC: INT) -> BOOL ---
CreateDIBPatternBrush :: proc(h: HGLOBAL, iUsage: UINT) -> HBRUSH ---
- CreateDIBitmap :: proc(hdc: HDC, pbmih: ^BITMAPINFOHEADER, flInit: DWORD, pjBits: VOID, pbmi: ^BITMAPINFO, iUsage: UINT) -> HBITMAP ---
- CreateDIBSection :: proc(hdc: HDC, pbmi: ^BITMAPINFO, usage: UINT, ppvBits: ^^VOID, hSection: HANDLE, offset: DWORD) -> HBITMAP ---
- StretchDIBits :: proc(hdc: HDC, xDest, yDest, DestWidth, DestHeight, xSrc, ySrc, SrcWidth, SrcHeight: INT, lpBits: VOID, lpbmi: ^BITMAPINFO, iUsage: UINT, rop: DWORD) -> INT ---
- StretchBlt :: proc(hdcDest: HDC, xDest, yDest, wDest, hDest: INT, hdcSrc: HDC, xSrc, ySrc, wSrc, hSrc: INT, rop: DWORD) -> BOOL ---
+ CreateDIBitmap :: proc(hdc: HDC, pbmih: ^BITMAPINFOHEADER, flInit: DWORD, pjBits: VOID, pbmi: ^BITMAPINFO, iUsage: UINT) -> HBITMAP ---
+ CreateDIBSection :: proc(hdc: HDC, pbmi: ^BITMAPINFO, usage: UINT, ppvBits: ^^VOID, hSection: HANDLE, offset: DWORD) -> HBITMAP ---
+ StretchDIBits :: proc(hdc: HDC, xDest, yDest, DestWidth, DestHeight, xSrc, ySrc, SrcWidth, SrcHeight: INT, lpBits: VOID, lpbmi: ^BITMAPINFO, iUsage: UINT, rop: DWORD) -> INT ---
+ StretchBlt :: proc(hdcDest: HDC, xDest, yDest, wDest, hDest: INT, hdcSrc: HDC, xSrc, ySrc, wSrc, hSrc: INT, rop: DWORD) -> BOOL ---
- SetPixelFormat :: proc(hdc: HDC, format: INT, ppfd: ^PIXELFORMATDESCRIPTOR) -> BOOL ---
- ChoosePixelFormat :: proc(hdc: HDC, ppfd: ^PIXELFORMATDESCRIPTOR) -> INT ---
+ SetPixelFormat :: proc(hdc: HDC, format: INT, ppfd: ^PIXELFORMATDESCRIPTOR) -> BOOL ---
+ ChoosePixelFormat :: proc(hdc: HDC, ppfd: ^PIXELFORMATDESCRIPTOR) -> INT ---
DescribePixelFormat :: proc(hdc: HDC, iPixelFormat: INT, nBytes: UINT, ppfd: ^PIXELFORMATDESCRIPTOR) -> INT ---
- SwapBuffers :: proc(hdc: HDC) -> BOOL ---
+ SwapBuffers :: proc(hdc: HDC) -> BOOL ---
SetDCBrushColor :: proc(hdc: HDC, color: COLORREF) -> COLORREF ---
GetDCBrushColor :: proc(hdc: HDC) -> COLORREF ---
- PatBlt :: proc(hdc: HDC, x, y, w, h: INT, rop: DWORD) -> BOOL ---
- Rectangle :: proc(hdc: HDC, left, top, right, bottom: INT) -> BOOL ---
+ PatBlt :: proc(hdc: HDC, x, y, w, h: INT, rop: DWORD) -> BOOL ---
+ Rectangle :: proc(hdc: HDC, left, top, right, bottom: INT) -> BOOL ---
- CreateFontW :: proc(cHeight, cWidth, cEscapement, cOrientation, cWeight: INT, bItalic, bUnderline, bStrikeOut, iCharSet, iOutPrecision: DWORD, iClipPrecision, iQuality, iPitchAndFamily: DWORD, pszFaceName: LPCWSTR) -> HFONT ---
- CreateFontIndirectW :: proc(lplf: ^LOGFONTW) -> HFONT ---
+ CreateFontW :: proc(cHeight, cWidth, cEscapement, cOrientation, cWeight: INT, bItalic, bUnderline, bStrikeOut, iCharSet, iOutPrecision: DWORD, iClipPrecision, iQuality, iPitchAndFamily: DWORD, pszFaceName: LPCWSTR) -> HFONT ---
+ CreateFontIndirectW :: proc(lplf: ^LOGFONTW) -> HFONT ---
CreateFontIndirectExW :: proc(unnamedParam1: ^ENUMLOGFONTEXDVW) -> HFONT ---
- AddFontResourceW :: proc(unnamedParam1: LPCWSTR) -> INT ---
- AddFontResourceExW :: proc(name: LPCWSTR, fl: DWORD, res: PVOID) -> INT ---
- AddFontMemResourceEx :: proc(pFileView: PVOID, cjSize: DWORD, pvResrved: PVOID, pNumFonts: ^DWORD) -> HANDLE ---
- EnumFontsW :: proc(hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM) -> INT ---
- EnumFontFamiliesW :: proc(hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM) -> INT ---
- EnumFontFamiliesExW :: proc(hdc: HDC, lpLogfont: LPLOGFONTW, lpProc: FONTENUMPROCW, lParam: LPARAM, dwFlags: DWORD) -> INT ---
-
- TextOutW :: proc(hdc: HDC, x, y: INT, lpString: LPCWSTR, c: INT) -> BOOL ---
+ AddFontResourceW :: proc(unnamedParam1: LPCWSTR) -> INT ---
+ AddFontResourceExW :: proc(name: LPCWSTR, fl: DWORD, res: PVOID) -> INT ---
+ AddFontMemResourceEx :: proc(pFileView: PVOID, cjSize: DWORD, pvResrved: PVOID, pNumFonts: ^DWORD) -> HANDLE ---
+ EnumFontsW :: proc(hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM) -> INT ---
+ EnumFontFamiliesW :: proc(hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM) -> INT ---
+ EnumFontFamiliesExW :: proc(hdc: HDC, lpLogfont: LPLOGFONTW, lpProc: FONTENUMPROCW, lParam: LPARAM, dwFlags: DWORD) -> INT ---
+
+ TextOutW :: proc(hdc: HDC, x, y: INT, lpString: LPCWSTR, c: INT) -> BOOL ---
GetTextExtentPoint32W :: proc(hdc: HDC, lpString: LPCWSTR, c: INT, psizl: LPSIZE) -> BOOL ---
- GetTextMetricsW :: proc(hdc: HDC, lptm: LPTEXTMETRICW) -> BOOL ---
+ GetTextMetricsW :: proc(hdc: HDC, lptm: LPTEXTMETRICW) -> BOOL ---
CreateSolidBrush :: proc(color: COLORREF) -> HBRUSH ---
- GetObjectW :: proc(h: HANDLE, c: INT, pv: LPVOID) -> c_int ---
+ GetObjectW :: proc(h: HANDLE, c: INT, pv: LPVOID) -> c_int ---
CreateCompatibleBitmap :: proc(hdc: HDC, cx, cy: INT) -> HBITMAP ---
- BitBlt :: proc(hdc: HDC, x, y, cx, cy: INT, hdcSrc: HDC, x1, y1: INT, rop: DWORD) -> BOOL ---
- GetDIBits :: proc(hdc: HDC, hbm: HBITMAP, start, cLines: UINT, lpvBits: LPVOID, lpbmi: ^BITMAPINFO, usage: UINT) -> INT ---
- SetDIBits :: proc(hdc: HDC, hbm: HBITMAP, start: UINT, cLines: UINT, lpBits: VOID, lpbmi: ^BITMAPINFO, ColorUse: UINT) -> INT ---
- SetDIBColorTable :: proc(hdc: HDC, iStart: UINT, cEntries: UINT, prgbq: ^RGBQUAD) -> UINT ---
- GetDIBColorTable :: proc(hdc: HDC, iStart: UINT, cEntries: UINT, prgbq: ^RGBQUAD) -> UINT ---
-
- CreatePen :: proc(iStyle, cWidth: INT, color: COLORREF) -> HPEN ---
- ExtCreatePen :: proc(iPenStyle, cWidth: DWORD, plbrush: ^LOGBRUSH, cStyle: DWORD, pstyle: ^DWORD) -> HPEN ---
+ BitBlt :: proc(hdc: HDC, x, y, cx, cy: INT, hdcSrc: HDC, x1, y1: INT, rop: DWORD) -> BOOL ---
+ GetDIBits :: proc(hdc: HDC, hbm: HBITMAP, start, cLines: UINT, lpvBits: LPVOID, lpbmi: ^BITMAPINFO, usage: UINT) -> INT ---
+ SetDIBits :: proc(hdc: HDC, hbm: HBITMAP, start: UINT, cLines: UINT, lpBits: VOID, lpbmi: ^BITMAPINFO, ColorUse: UINT) -> INT ---
+ SetDIBColorTable :: proc(hdc: HDC, iStart: UINT, cEntries: UINT, prgbq: ^RGBQUAD) -> UINT ---
+ GetDIBColorTable :: proc(hdc: HDC, iStart: UINT, cEntries: UINT, prgbq: ^RGBQUAD) -> UINT ---
+
+ CreatePen :: proc(iStyle, cWidth: INT, color: COLORREF) -> HPEN ---
+ ExtCreatePen :: proc(iPenStyle, cWidth: DWORD, plbrush: ^LOGBRUSH, cStyle: DWORD, pstyle: ^DWORD) -> HPEN ---
SetDCPenColor :: proc(hdc: HDC, color: COLORREF) -> COLORREF ---
GetDCPenColor :: proc(hdc: HDC) -> COLORREF ---
- CreatePalette :: proc(plpal: ^LOGPALETTE) -> HPALETTE ---
- SelectPalette :: proc(hdc: HDC, hPal: HPALETTE, bForceBkgd: BOOL) -> HPALETTE ---
+ CreatePalette :: proc(plpal: ^LOGPALETTE) -> HPALETTE ---
+ SelectPalette :: proc(hdc: HDC, hPal: HPALETTE, bForceBkgd: BOOL) -> HPALETTE ---
RealizePalette :: proc(hdc: HDC) -> UINT ---
SetTextColor :: proc(hdc: HDC, color: COLORREF) -> COLORREF ---
- RoundRect :: proc(hdc: HDC, left: INT, top: INT, right: INT, bottom: INT, width: INT, height: INT) -> BOOL ---
- SetPixel :: proc(hdc: HDC, x: INT, y: INT, color: COLORREF) -> COLORREF ---
+ RoundRect :: proc(hdc: HDC, left: INT, top: INT, right: INT, bottom: INT, width: INT, height: INT) -> BOOL ---
+ SetPixel :: proc(hdc: HDC, x: INT, y: INT, color: COLORREF) -> COLORREF ---
GdiTransparentBlt :: proc(hdcDest: HDC, xoriginDest, yoriginDest, wDest, hDest: INT, hdcSrc: HDC, xoriginSrc, yoriginSrc, wSrc, hSrc: INT, crTransparent: UINT) -> BOOL ---
- GdiGradientFill :: proc(hdc: HDC, pVertex: PTRIVERTEX, nVertex: ULONG, pMesh: PVOID, nCount: ULONG, ulMode: ULONG) -> BOOL ---
- GdiAlphaBlend :: proc(hdcDest: HDC, xoriginDest, yoriginDest, wDest, hDest: INT, hdcSrc: HDC, xoriginSrc, yoriginSrc, wSrc, hSrc: INT, ftn: BLENDFUNCTION) -> BOOL ---
+ GdiGradientFill :: proc(hdc: HDC, pVertex: PTRIVERTEX, nVertex: ULONG, pMesh: PVOID, nCount: ULONG, ulMode: ULONG) -> BOOL ---
+ GdiAlphaBlend :: proc(hdcDest: HDC, xoriginDest, yoriginDest, wDest, hDest: INT, hdcSrc: HDC, xoriginSrc, yoriginSrc, wSrc, hSrc: INT, ftn: BLENDFUNCTION) -> BOOL ---
}
+@(require_results)
RGB :: #force_inline proc "contextless" (#any_int r, g, b: int) -> COLORREF {
return COLORREF(DWORD(BYTE(r)) | (DWORD(BYTE(g)) << 8) | (DWORD(BYTE(b)) << 16))
}
+@(require_results)
PALETTERGB :: #force_inline proc "contextless" (#any_int r, g, b: int) -> COLORREF {
return 0x02000000 | RGB(r, g, b)
}
+@(require_results)
PALETTEINDEX :: #force_inline proc "contextless" (#any_int i: int) -> COLORREF {
return COLORREF(DWORD(0x01000000) | DWORD(WORD(i)))
}
@@ -154,17 +157,21 @@ ICONINFOEXW :: struct {
}
PICONINFOEXW :: ^ICONINFOEXW
-AC_SRC_OVER :: 0x00
+AC_SRC_OVER :: 0x00
AC_SRC_ALPHA :: 0x01
TransparentBlt :: GdiTransparentBlt
-GradientFill :: GdiGradientFill
-AlphaBlend :: GdiAlphaBlend
+GradientFill :: GdiGradientFill
+AlphaBlend :: GdiAlphaBlend
COLOR16 :: USHORT
TRIVERTEX :: struct {
- x, y: LONG,
- Red, Green, Blue, Alpha: COLOR16,
+ x: LONG,
+ y: LONG,
+ Red: COLOR16,
+ Green: COLOR16,
+ Blue: COLOR16,
+ Alpha: COLOR16,
}
PTRIVERTEX :: ^TRIVERTEX
@@ -179,7 +186,10 @@ GRADIENT_RECT :: struct {
PGRADIENT_RECT :: ^GRADIENT_RECT
BLENDFUNCTION :: struct {
- BlendOp, BlendFlags, SourceConstantAlpha, AlphaFormat: BYTE,
+ BlendOp: BYTE,
+ BlendFlags: BYTE,
+ SourceConstantAlpha: BYTE,
+ AlphaFormat: BYTE,
}
GRADIENT_FILL_RECT_H : ULONG : 0x00000000
diff --git a/core/sys/windows/hidpi.odin b/core/sys/windows/hidpi.odin
index 6f1e888cc..2cf2b2f34 100644
--- a/core/sys/windows/hidpi.odin
+++ b/core/sys/windows/hidpi.odin
@@ -2,149 +2,149 @@
package sys_windows
HIDD_CONFIGURATION :: struct {
- cookie: PVOID,
- size: ULONG,
+ cookie: PVOID,
+ size: ULONG,
RingBufferSize: ULONG,
}
PHIDD_CONFIGURATION :: ^HIDD_CONFIGURATION
HIDD_ATTRIBUTES :: struct {
- Size: ULONG,
- VendorID: USHORT,
- ProductID: USHORT,
+ Size: ULONG,
+ VendorID: USHORT,
+ ProductID: USHORT,
VersionNumber: USHORT,
}
PHIDD_ATTRIBUTES :: ^HIDD_ATTRIBUTES
HIDP_CAPS :: struct {
- Usage: USAGE,
- UsagePage: USAGE,
- InputReportByteLength: USHORT,
- OutputReportByteLength: USHORT,
- FeatureReportByteLength: USHORT,
- Reserved: [17]USHORT,
+ Usage: USAGE,
+ UsagePage: USAGE,
+ InputReportByteLength: USHORT,
+ OutputReportByteLength: USHORT,
+ FeatureReportByteLength: USHORT,
+ Reserved: [17]USHORT,
NumberLinkCollectionNodes: USHORT,
- NumberInputButtonCaps: USHORT,
- NumberInputValueCaps: USHORT,
- NumberInputDataIndices: USHORT,
- NumberOutputButtonCaps: USHORT,
- NumberOutputValueCaps: USHORT,
- NumberOutputDataIndices: USHORT,
- NumberFeatureButtonCaps: USHORT,
- NumberFeatureValueCaps: USHORT,
- NumberFeatureDataIndices: USHORT,
+ NumberInputButtonCaps: USHORT,
+ NumberInputValueCaps: USHORT,
+ NumberInputDataIndices: USHORT,
+ NumberOutputButtonCaps: USHORT,
+ NumberOutputValueCaps: USHORT,
+ NumberOutputDataIndices: USHORT,
+ NumberFeatureButtonCaps: USHORT,
+ NumberFeatureValueCaps: USHORT,
+ NumberFeatureDataIndices: USHORT,
}
PHIDP_CAPS :: ^HIDP_CAPS
HIDP_BUTTON_CAPS :: struct {
- UsagePage: USAGE,
- ReportID: UCHAR,
- IsAlias: BOOLEAN,
- BitField: USHORT,
- LinkCollection: USHORT,
- LinkUsage: USAGE,
- LinkUsagePage: USAGE,
- IsRange: BOOLEAN,
- IsStringRange: BOOLEAN,
+ UsagePage: USAGE,
+ ReportID: UCHAR,
+ IsAlias: BOOLEAN,
+ BitField: USHORT,
+ LinkCollection: USHORT,
+ LinkUsage: USAGE,
+ LinkUsagePage: USAGE,
+ IsRange: BOOLEAN,
+ IsStringRange: BOOLEAN,
IsDesignatorRange: BOOLEAN,
- IsAbsolute: BOOLEAN,
- ReportCount: USHORT,
- Reserved2: USHORT,
- Reserved: [9]ULONG,
+ IsAbsolute: BOOLEAN,
+ ReportCount: USHORT,
+ Reserved2: USHORT,
+ Reserved: [9]ULONG,
using _: struct #raw_union {
Range: struct {
- UsageMin: USAGE,
- UsageMax: USAGE,
- StringMin: USHORT,
- StringMax: USHORT,
+ UsageMin: USAGE,
+ UsageMax: USAGE,
+ StringMin: USHORT,
+ StringMax: USHORT,
DesignatorMin: USHORT,
DesignatorMax: USHORT,
- DataIndexMin: USHORT,
- DataIndexMax: USHORT,
- },
+ DataIndexMin: USHORT,
+ DataIndexMax: USHORT,
+ } `raw_union_tag:"IsRange=true"`,
NotRange: struct {
- Usage: USAGE,
- Reserved1: USAGE,
- StringIndex: USHORT,
- Reserved2: USHORT,
+ Usage: USAGE,
+ Reserved1: USAGE,
+ StringIndex: USHORT,
+ Reserved2: USHORT,
DesignatorIndex: USHORT,
- Reserved3: USHORT,
- DataIndex: USHORT,
- Reserved4: USHORT,
- },
+ Reserved3: USHORT,
+ DataIndex: USHORT,
+ Reserved4: USHORT,
+ } `raw_union_tag:"IsRange=false"`,
},
}
PHIDP_BUTTON_CAPS :: ^HIDP_BUTTON_CAPS
HIDP_VALUE_CAPS :: struct {
- UsagePage: USAGE,
- ReportID: UCHAR,
- IsAlias: BOOLEAN,
- BitField: USHORT,
- LinkCollection: USHORT,
- LinkUsage: USAGE,
- LinkUsagePage: USAGE,
- IsRange: BOOLEAN,
- IsStringRange: BOOLEAN,
+ UsagePage: USAGE,
+ ReportID: UCHAR,
+ IsAlias: BOOLEAN,
+ BitField: USHORT,
+ LinkCollection: USHORT,
+ LinkUsage: USAGE,
+ LinkUsagePage: USAGE,
+ IsRange: BOOLEAN,
+ IsStringRange: BOOLEAN,
IsDesignatorRange: BOOLEAN,
- IsAbsolute: BOOLEAN,
- HasNull: BOOLEAN,
- Reserved: UCHAR,
- BitSize: USHORT,
- ReportCount: USHORT,
- Reserved2: [5]USHORT,
- UnitsExp: ULONG,
- Units: ULONG,
- LogicalMin: LONG,
- LogicalMax: LONG,
- PhysicalMin: LONG,
- PhysicalMax: LONG,
+ IsAbsolute: BOOLEAN,
+ HasNull: BOOLEAN,
+ Reserved: UCHAR,
+ BitSize: USHORT,
+ ReportCount: USHORT,
+ Reserved2: [5]USHORT,
+ UnitsExp: ULONG,
+ Units: ULONG,
+ LogicalMin: LONG,
+ LogicalMax: LONG,
+ PhysicalMin: LONG,
+ PhysicalMax: LONG,
using _: struct #raw_union {
Range: struct {
- UsageMin: USAGE,
- UsageMax: USAGE,
- StringMin: USHORT,
- StringMax: USHORT,
+ UsageMin: USAGE,
+ UsageMax: USAGE,
+ StringMin: USHORT,
+ StringMax: USHORT,
DesignatorMin: USHORT,
DesignatorMax: USHORT,
- DataIndexMin: USHORT,
- DataIndexMax: USHORT,
- },
+ DataIndexMin: USHORT,
+ DataIndexMax: USHORT,
+ } `raw_union_tag:"IsRange=true"`,
NotRange: struct {
- Usage: USAGE,
- Reserved1: USAGE,
- StringIndex: USHORT,
- Reserved2: USHORT,
+ Usage: USAGE,
+ Reserved1: USAGE,
+ StringIndex: USHORT,
+ Reserved2: USHORT,
DesignatorIndex: USHORT,
- Reserved3: USHORT,
- DataIndex: USHORT,
- Reserved4: USHORT,
- },
+ Reserved3: USHORT,
+ DataIndex: USHORT,
+ Reserved4: USHORT,
+ } `raw_union_tag:"IsRange=false"`,
},
}
PHIDP_VALUE_CAPS :: ^HIDP_VALUE_CAPS
HIDP_DATA :: struct {
DataIndex: USHORT,
- Reserved: USHORT,
+ Reserved: USHORT,
using _ : struct #raw_union {
RawValue: ULONG,
- On: BOOLEAN,
+ On: BOOLEAN,
},
}
PHIDP_DATA :: ^HIDP_DATA
HIDP_LINK_COLLECTION_NODE :: struct {
- LinkUsage: USAGE,
- LinkUsagePage: USAGE,
- Parent: USHORT,
+ LinkUsage: USAGE,
+ LinkUsagePage: USAGE,
+ Parent: USHORT,
NumberOfChildren: USHORT,
- NextSibling: USHORT,
- FirstChild: USHORT,
- CollectionType: [8]ULONG,
- IsAlias: [1]ULONG,
- Reserved: [23]ULONG,
- UserContext: PVOID,
+ NextSibling: USHORT,
+ FirstChild: USHORT,
+ CollectionType: [8]ULONG,
+ IsAlias: [1]ULONG,
+ Reserved: [23]ULONG,
+ UserContext: PVOID,
}
PHIDP_LINK_COLLECTION_NODE :: ^HIDP_LINK_COLLECTION_NODE
@@ -157,56 +157,56 @@ HIDP_REPORT_TYPE :: enum c_int {
Feature,
}
-HIDP_STATUS_SUCCESS : NTSTATUS : 0x110000
-HIDP_STATUS_NULL : NTSTATUS : -2146369535 //0x80110001
-HIDP_STATUS_INVALID_PREPARSED_DATA : NTSTATUS : -1072627711 //0xC0110001
-HIDP_STATUS_INVALID_REPORT_TYPE : NTSTATUS : -1072627710 //0xC0110002
-HIDP_STATUS_INVALID_REPORT_LENGTH : NTSTATUS : -1072627709 //0xC0110003
-HIDP_STATUS_USAGE_NOT_FOUND : NTSTATUS : -1072627708 //0xC0110004
-HIDP_STATUS_VALUE_OUT_OF_RANGE : NTSTATUS : -1072627707 //0xC0110005
-HIDP_STATUS_BAD_LOG_PHY_VALUES : NTSTATUS : -1072627706 //0xC0100006
-HIDP_STATUS_BUFFER_TOO_SMALL : NTSTATUS : -1072627705 //0xC0110007
-HIDP_STATUS_INTERNAL_ERROR : NTSTATUS : -1072627704 //0xC0110008
-HIDP_STATUS_I8042_TRANS_UNKNOWN : NTSTATUS : -1072627703 //0xC0110009
-HIDP_STATUS_INCOMPATIBLE_REPORT_ID : NTSTATUS : -1072627702 //0xC011000A
-HIDP_STATUS_NOT_VALUE_ARRAY : NTSTATUS : -1072627701 //0xC011000B
-HIDP_STATUS_IS_VALUE_ARRAY : NTSTATUS : -1072627700 //0xC011000C
-HIDP_STATUS_DATA_INDEX_NOT_FOUND : NTSTATUS : -1072627699 //0xC011000D
+HIDP_STATUS_SUCCESS : NTSTATUS : 0x110000
+HIDP_STATUS_NULL : NTSTATUS : -2146369535 //0x80110001
+HIDP_STATUS_INVALID_PREPARSED_DATA : NTSTATUS : -1072627711 //0xC0110001
+HIDP_STATUS_INVALID_REPORT_TYPE : NTSTATUS : -1072627710 //0xC0110002
+HIDP_STATUS_INVALID_REPORT_LENGTH : NTSTATUS : -1072627709 //0xC0110003
+HIDP_STATUS_USAGE_NOT_FOUND : NTSTATUS : -1072627708 //0xC0110004
+HIDP_STATUS_VALUE_OUT_OF_RANGE : NTSTATUS : -1072627707 //0xC0110005
+HIDP_STATUS_BAD_LOG_PHY_VALUES : NTSTATUS : -1072627706 //0xC0100006
+HIDP_STATUS_BUFFER_TOO_SMALL : NTSTATUS : -1072627705 //0xC0110007
+HIDP_STATUS_INTERNAL_ERROR : NTSTATUS : -1072627704 //0xC0110008
+HIDP_STATUS_I8042_TRANS_UNKNOWN : NTSTATUS : -1072627703 //0xC0110009
+HIDP_STATUS_INCOMPATIBLE_REPORT_ID : NTSTATUS : -1072627702 //0xC011000A
+HIDP_STATUS_NOT_VALUE_ARRAY : NTSTATUS : -1072627701 //0xC011000B
+HIDP_STATUS_IS_VALUE_ARRAY : NTSTATUS : -1072627700 //0xC011000C
+HIDP_STATUS_DATA_INDEX_NOT_FOUND : NTSTATUS : -1072627699 //0xC011000D
HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE : NTSTATUS : -1072627698 //0xC011000E
-HIDP_STATUS_BUTTON_NOT_PRESSED : NTSTATUS : -1072627697 //0xC011000F
-HIDP_STATUS_REPORT_DOES_NOT_EXIST : NTSTATUS : -1072627696 //0xC0110010
-HIDP_STATUS_NOT_IMPLEMENTED : NTSTATUS : -1072627680 //0xC0110020
-HIDP_STATUS_NOT_BUTTON_ARRAY : NTSTATUS : -1072627679 //0xC0110021
+HIDP_STATUS_BUTTON_NOT_PRESSED : NTSTATUS : -1072627697 //0xC011000F
+HIDP_STATUS_REPORT_DOES_NOT_EXIST : NTSTATUS : -1072627696 //0xC0110010
+HIDP_STATUS_NOT_IMPLEMENTED : NTSTATUS : -1072627680 //0xC0110020
+HIDP_STATUS_NOT_BUTTON_ARRAY : NTSTATUS : -1072627679 //0xC0110021
HIDP_STATUS_I8242_TRANS_UNKNOWN :: HIDP_STATUS_I8042_TRANS_UNKNOWN
foreign import hid "system:hid.lib"
@(default_calling_convention="system")
foreign hid {
- HidP_GetCaps :: proc(PreparsedData: PHIDP_PREPARSED_DATA, Capabilities: PHIDP_CAPS) -> NTSTATUS ---
- HidP_GetButtonCaps :: proc(ReportType: HIDP_REPORT_TYPE, ButtonCaps: PHIDP_BUTTON_CAPS, ButtonCapsLength: PUSHORT, PreparsedData: PHIDP_PREPARSED_DATA) -> NTSTATUS ---
- HidP_GetValueCaps :: proc(ReportType: HIDP_REPORT_TYPE, ValueCaps: PHIDP_VALUE_CAPS, ValueCapsLength: PUSHORT, PreparsedData: PHIDP_PREPARSED_DATA) -> NTSTATUS ---
- HidP_GetUsages :: proc(ReportType: HIDP_REPORT_TYPE, UsagePage: USAGE, LinkCollection: USHORT, UsageList: PUSAGE, UsageLength: PULONG, PreparsedData: PHIDP_PREPARSED_DATA, Report: PCHAR, ReportLength: ULONG) -> NTSTATUS ---
- HidP_GetUsageValue :: proc(ReportType: HIDP_REPORT_TYPE, UsagePage: USAGE, LinkCollection: USHORT, Usage: USAGE, UsageValue: PULONG, PreparsedData: PHIDP_PREPARSED_DATA, Report: PCHAR, ReportLength: ULONG) -> NTSTATUS ---
- HidP_GetData :: proc(ReportType: HIDP_REPORT_TYPE, DataList: PHIDP_DATA, DataLength: PULONG, PreparsedData: PHIDP_PREPARSED_DATA, Report: PCHAR, ReportLength: ULONG) -> NTSTATUS ---
+ HidP_GetCaps :: proc(PreparsedData: PHIDP_PREPARSED_DATA, Capabilities: PHIDP_CAPS) -> NTSTATUS ---
+ HidP_GetButtonCaps :: proc(ReportType: HIDP_REPORT_TYPE, ButtonCaps: PHIDP_BUTTON_CAPS, ButtonCapsLength: PUSHORT, PreparsedData: PHIDP_PREPARSED_DATA) -> NTSTATUS ---
+ HidP_GetValueCaps :: proc(ReportType: HIDP_REPORT_TYPE, ValueCaps: PHIDP_VALUE_CAPS, ValueCapsLength: PUSHORT, PreparsedData: PHIDP_PREPARSED_DATA) -> NTSTATUS ---
+ HidP_GetUsages :: proc(ReportType: HIDP_REPORT_TYPE, UsagePage: USAGE, LinkCollection: USHORT, UsageList: PUSAGE, UsageLength: PULONG, PreparsedData: PHIDP_PREPARSED_DATA, Report: PCHAR, ReportLength: ULONG) -> NTSTATUS ---
+ HidP_GetUsageValue :: proc(ReportType: HIDP_REPORT_TYPE, UsagePage: USAGE, LinkCollection: USHORT, Usage: USAGE, UsageValue: PULONG, PreparsedData: PHIDP_PREPARSED_DATA, Report: PCHAR, ReportLength: ULONG) -> NTSTATUS ---
+ HidP_GetData :: proc(ReportType: HIDP_REPORT_TYPE, DataList: PHIDP_DATA, DataLength: PULONG, PreparsedData: PHIDP_PREPARSED_DATA, Report: PCHAR, ReportLength: ULONG) -> NTSTATUS ---
HidP_GetLinkCollectionNodes :: proc(LinkCollectionNodes: PHIDP_LINK_COLLECTION_NODE, LinkCollectionNodesLength: PULONG, PreparsedData: PHIDP_PREPARSED_DATA) -> NTSTATUS ---
- HidD_GetAttributes :: proc(HidDeviceObject: HANDLE, Attributes: PHIDD_ATTRIBUTES) -> BOOLEAN ---
- HidD_GetHidGuid :: proc(HidGuid: LPGUID) ---
- HidD_GetPreparsedData :: proc(HidDeviceObject: HANDLE, PreparsedData: ^PHIDP_PREPARSED_DATA) -> BOOLEAN ---
- HidD_FreePreparsedData :: proc(PreparsedData: PHIDP_PREPARSED_DATA) -> BOOLEAN ---
- HidD_FlushQueue :: proc(HidDeviceObject: HANDLE) -> BOOLEAN ---
- HidD_GetConfiguration :: proc(HidDeviceObject: HANDLE, Configuration: PHIDD_CONFIGURATION, ConfigurationLength: ULONG) -> BOOLEAN ---
- HidD_SetConfiguration :: proc(HidDeviceObject: HANDLE, Configuration: PHIDD_CONFIGURATION, ConfigurationLength: ULONG) -> BOOLEAN ---
- HidD_GetFeature :: proc(HidDeviceObject: HANDLE, ReportBuffer: PVOID, ReportBufferLength: ULONG) -> BOOLEAN ---
- HidD_SetFeature :: proc(HidDeviceObject: HANDLE, ReportBuffer: PVOID, ReportBufferLength: ULONG) -> BOOLEAN ---
- HidD_GetInputReport :: proc(HidDeviceObject: HANDLE, ReportBuffer: PVOID, ReportBufferLength: ULONG) -> BOOLEAN ---
- HidD_SetOutputReport :: proc(HidDeviceObject: HANDLE, ReportBuffer: PVOID, ReportBufferLength: ULONG) -> BOOLEAN ---
- HidD_GetNumInputBuffers :: proc(HidDeviceObject: HANDLE, NumberBuffers: PULONG) -> BOOLEAN ---
- HidD_SetNumInputBuffers :: proc(HidDeviceObject: HANDLE, NumberBuffers: ULONG) -> BOOLEAN ---
+ HidD_GetAttributes :: proc(HidDeviceObject: HANDLE, Attributes: PHIDD_ATTRIBUTES) -> BOOLEAN ---
+ HidD_GetHidGuid :: proc(HidGuid: LPGUID) ---
+ HidD_GetPreparsedData :: proc(HidDeviceObject: HANDLE, PreparsedData: ^PHIDP_PREPARSED_DATA) -> BOOLEAN ---
+ HidD_FreePreparsedData :: proc(PreparsedData: PHIDP_PREPARSED_DATA) -> BOOLEAN ---
+ HidD_FlushQueue :: proc(HidDeviceObject: HANDLE) -> BOOLEAN ---
+ HidD_GetConfiguration :: proc(HidDeviceObject: HANDLE, Configuration: PHIDD_CONFIGURATION, ConfigurationLength: ULONG) -> BOOLEAN ---
+ HidD_SetConfiguration :: proc(HidDeviceObject: HANDLE, Configuration: PHIDD_CONFIGURATION, ConfigurationLength: ULONG) -> BOOLEAN ---
+ HidD_GetFeature :: proc(HidDeviceObject: HANDLE, ReportBuffer: PVOID, ReportBufferLength: ULONG) -> BOOLEAN ---
+ HidD_SetFeature :: proc(HidDeviceObject: HANDLE, ReportBuffer: PVOID, ReportBufferLength: ULONG) -> BOOLEAN ---
+ HidD_GetInputReport :: proc(HidDeviceObject: HANDLE, ReportBuffer: PVOID, ReportBufferLength: ULONG) -> BOOLEAN ---
+ HidD_SetOutputReport :: proc(HidDeviceObject: HANDLE, ReportBuffer: PVOID, ReportBufferLength: ULONG) -> BOOLEAN ---
+ HidD_GetNumInputBuffers :: proc(HidDeviceObject: HANDLE, NumberBuffers: PULONG) -> BOOLEAN ---
+ HidD_SetNumInputBuffers :: proc(HidDeviceObject: HANDLE, NumberBuffers: ULONG) -> BOOLEAN ---
HidD_GetPhysicalDescriptor :: proc(HidDeviceObject: HANDLE, Buffer: PVOID, BufferLength: ULONG) -> BOOLEAN ---
HidD_GetManufacturerString :: proc(HidDeviceObject: HANDLE, Buffer: PVOID, BufferLength: ULONG) -> BOOLEAN ---
- HidD_GetProductString :: proc(HidDeviceObject: HANDLE, Buffer: PVOID, BufferLength: ULONG) -> BOOLEAN ---
- HidD_GetIndexedString :: proc(HidDeviceObject: HANDLE, StringIndex: ULONG, Buffer: PVOID, BufferLength: ULONG) -> BOOLEAN ---
+ HidD_GetProductString :: proc(HidDeviceObject: HANDLE, Buffer: PVOID, BufferLength: ULONG) -> BOOLEAN ---
+ HidD_GetIndexedString :: proc(HidDeviceObject: HANDLE, StringIndex: ULONG, Buffer: PVOID, BufferLength: ULONG) -> BOOLEAN ---
HidD_GetSerialNumberString :: proc(HidDeviceObject: HANDLE, Buffer: PVOID, BufferLength: ULONG) -> BOOLEAN ---
- HidD_GetMsGenreDescriptor :: proc(HidDeviceObject: HANDLE, Buffer: PVOID, BufferLength: ULONG) -> BOOLEAN ---
+ HidD_GetMsGenreDescriptor :: proc(HidDeviceObject: HANDLE, Buffer: PVOID, BufferLength: ULONG) -> BOOLEAN ---
}
diff --git a/core/sys/windows/hidusage.odin b/core/sys/windows/hidusage.odin
index eb2a85f2e..5f87bea2d 100644
--- a/core/sys/windows/hidusage.odin
+++ b/core/sys/windows/hidusage.odin
@@ -4,260 +4,260 @@ package sys_windows
USAGE :: distinct USHORT
PUSAGE :: ^USAGE
-HID_USAGE_PAGE_UNDEFINED :: 0x00
-HID_USAGE_PAGE_GENERIC :: 0x01
-HID_USAGE_PAGE_SIMULATION :: 0x02
-HID_USAGE_PAGE_VR :: 0x03
-HID_USAGE_PAGE_SPORT :: 0x04
-HID_USAGE_PAGE_GAME :: 0x05
-HID_USAGE_PAGE_GENERIC_DEVICE :: 0x06
-HID_USAGE_PAGE_KEYBOARD :: 0x07
-HID_USAGE_PAGE_LED :: 0x08
-HID_USAGE_PAGE_BUTTON :: 0x09
-HID_USAGE_PAGE_ORDINAL :: 0x0A
-HID_USAGE_PAGE_TELEPHONY :: 0x0B
-HID_USAGE_PAGE_CONSUMER :: 0x0C
-HID_USAGE_PAGE_DIGITIZER :: 0x0D
-HID_USAGE_PAGE_HAPTICS :: 0x0E
-HID_USAGE_PAGE_PID :: 0x0F
-HID_USAGE_PAGE_UNICODE :: 0x10
-HID_USAGE_PAGE_ALPHANUMERIC :: 0x14
-HID_USAGE_PAGE_SENSOR :: 0x20
-HID_USAGE_PAGE_LIGHTING_ILLUMINATION :: 0x59
-HID_USAGE_PAGE_BARCODE_SCANNER :: 0x8C
-HID_USAGE_PAGE_WEIGHING_DEVICE :: 0x8D
-HID_USAGE_PAGE_MAGNETIC_STRIPE_READER :: 0x8E
-HID_USAGE_PAGE_CAMERA_CONTROL :: 0x90
-HID_USAGE_PAGE_ARCADE :: 0x91
+HID_USAGE_PAGE_UNDEFINED :: 0x00
+HID_USAGE_PAGE_GENERIC :: 0x01
+HID_USAGE_PAGE_SIMULATION :: 0x02
+HID_USAGE_PAGE_VR :: 0x03
+HID_USAGE_PAGE_SPORT :: 0x04
+HID_USAGE_PAGE_GAME :: 0x05
+HID_USAGE_PAGE_GENERIC_DEVICE :: 0x06
+HID_USAGE_PAGE_KEYBOARD :: 0x07
+HID_USAGE_PAGE_LED :: 0x08
+HID_USAGE_PAGE_BUTTON :: 0x09
+HID_USAGE_PAGE_ORDINAL :: 0x0A
+HID_USAGE_PAGE_TELEPHONY :: 0x0B
+HID_USAGE_PAGE_CONSUMER :: 0x0C
+HID_USAGE_PAGE_DIGITIZER :: 0x0D
+HID_USAGE_PAGE_HAPTICS :: 0x0E
+HID_USAGE_PAGE_PID :: 0x0F
+HID_USAGE_PAGE_UNICODE :: 0x10
+HID_USAGE_PAGE_ALPHANUMERIC :: 0x14
+HID_USAGE_PAGE_SENSOR :: 0x20
+HID_USAGE_PAGE_LIGHTING_ILLUMINATION :: 0x59
+HID_USAGE_PAGE_BARCODE_SCANNER :: 0x8C
+HID_USAGE_PAGE_WEIGHING_DEVICE :: 0x8D
+HID_USAGE_PAGE_MAGNETIC_STRIPE_READER :: 0x8E
+HID_USAGE_PAGE_CAMERA_CONTROL :: 0x90
+HID_USAGE_PAGE_ARCADE :: 0x91
HID_USAGE_PAGE_MICROSOFT_BLUETOOTH_HANDSFREE :: 0xFFF3
-HID_USAGE_PAGE_VENDOR_DEFINED_BEGIN :: 0xFF00
-HID_USAGE_PAGE_VENDOR_DEFINED_END :: 0xFFFF
-
-HID_USAGE_GENERIC_POINTER :: 0x01
-HID_USAGE_GENERIC_MOUSE :: 0x02
-HID_USAGE_GENERIC_JOYSTICK :: 0x04
-HID_USAGE_GENERIC_GAMEPAD :: 0x05
-HID_USAGE_GENERIC_KEYBOARD :: 0x06
-HID_USAGE_GENERIC_KEYPAD :: 0x07
-HID_USAGE_GENERIC_MULTI_AXIS_CONTROLLER :: 0x08
-HID_USAGE_GENERIC_TABLET_PC_SYSTEM_CTL :: 0x09
+HID_USAGE_PAGE_VENDOR_DEFINED_BEGIN :: 0xFF00
+HID_USAGE_PAGE_VENDOR_DEFINED_END :: 0xFFFF
+
+HID_USAGE_GENERIC_POINTER :: 0x01
+HID_USAGE_GENERIC_MOUSE :: 0x02
+HID_USAGE_GENERIC_JOYSTICK :: 0x04
+HID_USAGE_GENERIC_GAMEPAD :: 0x05
+HID_USAGE_GENERIC_KEYBOARD :: 0x06
+HID_USAGE_GENERIC_KEYPAD :: 0x07
+HID_USAGE_GENERIC_MULTI_AXIS_CONTROLLER :: 0x08
+HID_USAGE_GENERIC_TABLET_PC_SYSTEM_CTL :: 0x09
HID_USAGE_GENERIC_PORTABLE_DEVICE_CONTROL :: 0x0D
-HID_USAGE_GENERIC_INTERACTIVE_CONTROL :: 0x0E
-HID_USAGE_GENERIC_SYSTEM_CTL :: 0x80
-
-HID_USAGE_GENERIC_X :: 0x30
-HID_USAGE_GENERIC_Y :: 0x31
-HID_USAGE_GENERIC_Z :: 0x32
-HID_USAGE_GENERIC_RX :: 0x33
-HID_USAGE_GENERIC_RY :: 0x34
-HID_USAGE_GENERIC_RZ :: 0x35
-HID_USAGE_GENERIC_SLIDER :: 0x36
-HID_USAGE_GENERIC_DIAL :: 0x37
-HID_USAGE_GENERIC_WHEEL :: 0x38
-HID_USAGE_GENERIC_HATSWITCH :: 0x39
-HID_USAGE_GENERIC_COUNTED_BUFFER :: 0x3A
-HID_USAGE_GENERIC_BYTE_COUNT :: 0x3B
-HID_USAGE_GENERIC_MOTION_WAKEUP :: 0x3C
-HID_USAGE_GENERIC_START :: 0x3D
-HID_USAGE_GENERIC_SELECT :: 0x3E
-HID_USAGE_GENERIC_VX :: 0x40
-HID_USAGE_GENERIC_VY :: 0x41
-HID_USAGE_GENERIC_VZ :: 0x42
-HID_USAGE_GENERIC_VBRX :: 0x43
-HID_USAGE_GENERIC_VBRY :: 0x44
-HID_USAGE_GENERIC_VBRZ :: 0x45
-HID_USAGE_GENERIC_VNO :: 0x46
-HID_USAGE_GENERIC_FEATURE_NOTIFICATION :: 0x47
-HID_USAGE_GENERIC_RESOLUTION_MULTIPLIER :: 0x48
-HID_USAGE_GENERIC_SYSCTL_POWER :: 0x81
-HID_USAGE_GENERIC_SYSCTL_SLEEP :: 0x82
-HID_USAGE_GENERIC_SYSCTL_WAKE :: 0x83
-HID_USAGE_GENERIC_SYSCTL_CONTEXT_MENU :: 0x84
-HID_USAGE_GENERIC_SYSCTL_MAIN_MENU :: 0x85
-HID_USAGE_GENERIC_SYSCTL_APP_MENU :: 0x86
-HID_USAGE_GENERIC_SYSCTL_HELP_MENU :: 0x87
-HID_USAGE_GENERIC_SYSCTL_MENU_EXIT :: 0x88
-HID_USAGE_GENERIC_SYSCTL_MENU_SELECT :: 0x89
-HID_USAGE_GENERIC_SYSCTL_MENU_RIGHT :: 0x8A
-HID_USAGE_GENERIC_SYSCTL_MENU_LEFT :: 0x8B
-HID_USAGE_GENERIC_SYSCTL_MENU_UP :: 0x8C
-HID_USAGE_GENERIC_SYSCTL_MENU_DOWN :: 0x8D
-HID_USAGE_GENERIC_SYSCTL_COLD_RESTART :: 0x8E
-HID_USAGE_GENERIC_SYSCTL_WARM_RESTART :: 0x8F
-HID_USAGE_GENERIC_DPAD_UP :: 0x90
-HID_USAGE_GENERIC_DPAD_DOWN :: 0x91
-HID_USAGE_GENERIC_DPAD_RIGHT :: 0x92
-HID_USAGE_GENERIC_DPAD_LEFT :: 0x93
-HID_USAGE_GENERIC_SYSCTL_FN :: 0x97
-HID_USAGE_GENERIC_SYSCTL_FN_LOCK :: 0x98
-HID_USAGE_GENERIC_SYSCTL_FN_LOCK_INDICATOR :: 0x99
-HID_USAGE_GENERIC_SYSCTL_DISMISS_NOTIFICATION :: 0x9A
-HID_USAGE_GENERIC_SYSCTL_DOCK :: 0xA0
-HID_USAGE_GENERIC_SYSCTL_UNDOCK :: 0xA1
-HID_USAGE_GENERIC_SYSCTL_SETUP :: 0xA2
-HID_USAGE_GENERIC_SYSCTL_SYS_BREAK :: 0xA3
-HID_USAGE_GENERIC_SYSCTL_SYS_DBG_BREAK :: 0xA4
-HID_USAGE_GENERIC_SYSCTL_APP_BREAK :: 0xA5
-HID_USAGE_GENERIC_SYSCTL_APP_DBG_BREAK :: 0xA6
-HID_USAGE_GENERIC_SYSCTL_MUTE :: 0xA7
-HID_USAGE_GENERIC_SYSCTL_HIBERNATE :: 0xA8
-HID_USAGE_GENERIC_SYSCTL_DISP_INVERT :: 0xB0
-HID_USAGE_GENERIC_SYSCTL_DISP_INTERNAL :: 0xB1
-HID_USAGE_GENERIC_SYSCTL_DISP_EXTERNAL :: 0xB2
-HID_USAGE_GENERIC_SYSCTL_DISP_BOTH :: 0xB3
-HID_USAGE_GENERIC_SYSCTL_DISP_DUAL :: 0xB4
-HID_USAGE_GENERIC_SYSCTL_DISP_TOGGLE :: 0xB5
-HID_USAGE_GENERIC_SYSCTL_DISP_SWAP :: 0xB6
-HID_USAGE_GENERIC_SYSCTL_DISP_AUTOSCALE :: 0xB7
-HID_USAGE_GENERIC_SYSTEM_DISPLAY_ROTATION_LOCK_BUTTON :: 0xC9
+HID_USAGE_GENERIC_INTERACTIVE_CONTROL :: 0x0E
+HID_USAGE_GENERIC_SYSTEM_CTL :: 0x80
+
+HID_USAGE_GENERIC_X :: 0x30
+HID_USAGE_GENERIC_Y :: 0x31
+HID_USAGE_GENERIC_Z :: 0x32
+HID_USAGE_GENERIC_RX :: 0x33
+HID_USAGE_GENERIC_RY :: 0x34
+HID_USAGE_GENERIC_RZ :: 0x35
+HID_USAGE_GENERIC_SLIDER :: 0x36
+HID_USAGE_GENERIC_DIAL :: 0x37
+HID_USAGE_GENERIC_WHEEL :: 0x38
+HID_USAGE_GENERIC_HATSWITCH :: 0x39
+HID_USAGE_GENERIC_COUNTED_BUFFER :: 0x3A
+HID_USAGE_GENERIC_BYTE_COUNT :: 0x3B
+HID_USAGE_GENERIC_MOTION_WAKEUP :: 0x3C
+HID_USAGE_GENERIC_START :: 0x3D
+HID_USAGE_GENERIC_SELECT :: 0x3E
+HID_USAGE_GENERIC_VX :: 0x40
+HID_USAGE_GENERIC_VY :: 0x41
+HID_USAGE_GENERIC_VZ :: 0x42
+HID_USAGE_GENERIC_VBRX :: 0x43
+HID_USAGE_GENERIC_VBRY :: 0x44
+HID_USAGE_GENERIC_VBRZ :: 0x45
+HID_USAGE_GENERIC_VNO :: 0x46
+HID_USAGE_GENERIC_FEATURE_NOTIFICATION :: 0x47
+HID_USAGE_GENERIC_RESOLUTION_MULTIPLIER :: 0x48
+HID_USAGE_GENERIC_SYSCTL_POWER :: 0x81
+HID_USAGE_GENERIC_SYSCTL_SLEEP :: 0x82
+HID_USAGE_GENERIC_SYSCTL_WAKE :: 0x83
+HID_USAGE_GENERIC_SYSCTL_CONTEXT_MENU :: 0x84
+HID_USAGE_GENERIC_SYSCTL_MAIN_MENU :: 0x85
+HID_USAGE_GENERIC_SYSCTL_APP_MENU :: 0x86
+HID_USAGE_GENERIC_SYSCTL_HELP_MENU :: 0x87
+HID_USAGE_GENERIC_SYSCTL_MENU_EXIT :: 0x88
+HID_USAGE_GENERIC_SYSCTL_MENU_SELECT :: 0x89
+HID_USAGE_GENERIC_SYSCTL_MENU_RIGHT :: 0x8A
+HID_USAGE_GENERIC_SYSCTL_MENU_LEFT :: 0x8B
+HID_USAGE_GENERIC_SYSCTL_MENU_UP :: 0x8C
+HID_USAGE_GENERIC_SYSCTL_MENU_DOWN :: 0x8D
+HID_USAGE_GENERIC_SYSCTL_COLD_RESTART :: 0x8E
+HID_USAGE_GENERIC_SYSCTL_WARM_RESTART :: 0x8F
+HID_USAGE_GENERIC_DPAD_UP :: 0x90
+HID_USAGE_GENERIC_DPAD_DOWN :: 0x91
+HID_USAGE_GENERIC_DPAD_RIGHT :: 0x92
+HID_USAGE_GENERIC_DPAD_LEFT :: 0x93
+HID_USAGE_GENERIC_SYSCTL_FN :: 0x97
+HID_USAGE_GENERIC_SYSCTL_FN_LOCK :: 0x98
+HID_USAGE_GENERIC_SYSCTL_FN_LOCK_INDICATOR :: 0x99
+HID_USAGE_GENERIC_SYSCTL_DISMISS_NOTIFICATION :: 0x9A
+HID_USAGE_GENERIC_SYSCTL_DOCK :: 0xA0
+HID_USAGE_GENERIC_SYSCTL_UNDOCK :: 0xA1
+HID_USAGE_GENERIC_SYSCTL_SETUP :: 0xA2
+HID_USAGE_GENERIC_SYSCTL_SYS_BREAK :: 0xA3
+HID_USAGE_GENERIC_SYSCTL_SYS_DBG_BREAK :: 0xA4
+HID_USAGE_GENERIC_SYSCTL_APP_BREAK :: 0xA5
+HID_USAGE_GENERIC_SYSCTL_APP_DBG_BREAK :: 0xA6
+HID_USAGE_GENERIC_SYSCTL_MUTE :: 0xA7
+HID_USAGE_GENERIC_SYSCTL_HIBERNATE :: 0xA8
+HID_USAGE_GENERIC_SYSCTL_DISP_INVERT :: 0xB0
+HID_USAGE_GENERIC_SYSCTL_DISP_INTERNAL :: 0xB1
+HID_USAGE_GENERIC_SYSCTL_DISP_EXTERNAL :: 0xB2
+HID_USAGE_GENERIC_SYSCTL_DISP_BOTH :: 0xB3
+HID_USAGE_GENERIC_SYSCTL_DISP_DUAL :: 0xB4
+HID_USAGE_GENERIC_SYSCTL_DISP_TOGGLE :: 0xB5
+HID_USAGE_GENERIC_SYSCTL_DISP_SWAP :: 0xB6
+HID_USAGE_GENERIC_SYSCTL_DISP_AUTOSCALE :: 0xB7
+HID_USAGE_GENERIC_SYSTEM_DISPLAY_ROTATION_LOCK_BUTTON :: 0xC9
HID_USAGE_GENERIC_SYSTEM_DISPLAY_ROTATION_LOCK_SLIDER_SWITCH :: 0xCA
-HID_USAGE_GENERIC_CONTROL_ENABLE :: 0xCB
-
-HID_USAGE_SIMULATION_FLIGHT_SIMULATION_DEVICE :: 0x01
-HID_USAGE_SIMULATION_AUTOMOBILE_SIMULATION_DEVICE :: 0x02
-HID_USAGE_SIMULATION_TANK_SIMULATION_DEVICE :: 0x03
-HID_USAGE_SIMULATION_SPACESHIP_SIMULATION_DEVICE :: 0x04
-HID_USAGE_SIMULATION_SUBMARINE_SIMULATION_DEVICE :: 0x05
-HID_USAGE_SIMULATION_SAILING_SIMULATION_DEVICE :: 0x06
-HID_USAGE_SIMULATION_MOTORCYCLE_SIMULATION_DEVICE :: 0x07
-HID_USAGE_SIMULATION_SPORTS_SIMULATION_DEVICE :: 0x08
-HID_USAGE_SIMULATION_AIRPLANE_SIMULATION_DEVICE :: 0x09
-HID_USAGE_SIMULATION_HELICOPTER_SIMULATION_DEVICE :: 0x0A
+HID_USAGE_GENERIC_CONTROL_ENABLE :: 0xCB
+
+HID_USAGE_SIMULATION_FLIGHT_SIMULATION_DEVICE :: 0x01
+HID_USAGE_SIMULATION_AUTOMOBILE_SIMULATION_DEVICE :: 0x02
+HID_USAGE_SIMULATION_TANK_SIMULATION_DEVICE :: 0x03
+HID_USAGE_SIMULATION_SPACESHIP_SIMULATION_DEVICE :: 0x04
+HID_USAGE_SIMULATION_SUBMARINE_SIMULATION_DEVICE :: 0x05
+HID_USAGE_SIMULATION_SAILING_SIMULATION_DEVICE :: 0x06
+HID_USAGE_SIMULATION_MOTORCYCLE_SIMULATION_DEVICE :: 0x07
+HID_USAGE_SIMULATION_SPORTS_SIMULATION_DEVICE :: 0x08
+HID_USAGE_SIMULATION_AIRPLANE_SIMULATION_DEVICE :: 0x09
+HID_USAGE_SIMULATION_HELICOPTER_SIMULATION_DEVICE :: 0x0A
HID_USAGE_SIMULATION_MAGIC_CARPET_SIMULATION_DEVICE :: 0x0B
-HID_USAGE_SIMULATION_BICYCLE_SIMULATION_DEVICE :: 0x0C
-HID_USAGE_SIMULATION_FLIGHT_CONTROL_STICK :: 0x20
-HID_USAGE_SIMULATION_FLIGHT_STICK :: 0x21
-HID_USAGE_SIMULATION_CYCLIC_CONTROL :: 0x22
-HID_USAGE_SIMULATION_CYCLIC_TRIM :: 0x23
-HID_USAGE_SIMULATION_FLIGHT_YOKE :: 0x24
-HID_USAGE_SIMULATION_TRACK_CONTROL :: 0x25
-
-HID_USAGE_SIMULATION_AILERON :: 0xB0
-HID_USAGE_SIMULATION_AILERON_TRIM :: 0xB1
-HID_USAGE_SIMULATION_ANTI_TORQUE_CONTROL :: 0xB2
-HID_USAGE_SIMULATION_AUTOPIOLOT_ENABLE :: 0xB3
-HID_USAGE_SIMULATION_CHAFF_RELEASE :: 0xB4
-HID_USAGE_SIMULATION_COLLECTIVE_CONTROL :: 0xB5
-HID_USAGE_SIMULATION_DIVE_BRAKE :: 0xB6
+HID_USAGE_SIMULATION_BICYCLE_SIMULATION_DEVICE :: 0x0C
+HID_USAGE_SIMULATION_FLIGHT_CONTROL_STICK :: 0x20
+HID_USAGE_SIMULATION_FLIGHT_STICK :: 0x21
+HID_USAGE_SIMULATION_CYCLIC_CONTROL :: 0x22
+HID_USAGE_SIMULATION_CYCLIC_TRIM :: 0x23
+HID_USAGE_SIMULATION_FLIGHT_YOKE :: 0x24
+HID_USAGE_SIMULATION_TRACK_CONTROL :: 0x25
+
+HID_USAGE_SIMULATION_AILERON :: 0xB0
+HID_USAGE_SIMULATION_AILERON_TRIM :: 0xB1
+HID_USAGE_SIMULATION_ANTI_TORQUE_CONTROL :: 0xB2
+HID_USAGE_SIMULATION_AUTOPIOLOT_ENABLE :: 0xB3
+HID_USAGE_SIMULATION_CHAFF_RELEASE :: 0xB4
+HID_USAGE_SIMULATION_COLLECTIVE_CONTROL :: 0xB5
+HID_USAGE_SIMULATION_DIVE_BRAKE :: 0xB6
HID_USAGE_SIMULATION_ELECTRONIC_COUNTERMEASURES :: 0xB7
-HID_USAGE_SIMULATION_ELEVATOR :: 0xB8
-HID_USAGE_SIMULATION_ELEVATOR_TRIM :: 0xB9
-HID_USAGE_SIMULATION_RUDDER :: 0xBA
-HID_USAGE_SIMULATION_THROTTLE :: 0xBB
-HID_USAGE_SIMULATION_FLIGHT_COMMUNICATIONS :: 0xBC
-HID_USAGE_SIMULATION_FLARE_RELEASE :: 0xBD
-HID_USAGE_SIMULATION_LANDING_GEAR :: 0xBE
-HID_USAGE_SIMULATION_TOE_BRAKE :: 0xBF
-HID_USAGE_SIMULATION_TRIGGER :: 0xC0
-HID_USAGE_SIMULATION_WEAPONS_ARM :: 0xC1
-HID_USAGE_SIMULATION_WEAPONS_SELECT :: 0xC2
-HID_USAGE_SIMULATION_WING_FLAPS :: 0xC3
-HID_USAGE_SIMULATION_ACCELLERATOR :: 0xC4
-HID_USAGE_SIMULATION_BRAKE :: 0xC5
-HID_USAGE_SIMULATION_CLUTCH :: 0xC6
-HID_USAGE_SIMULATION_SHIFTER :: 0xC7
-HID_USAGE_SIMULATION_STEERING :: 0xC8
-HID_USAGE_SIMULATION_TURRET_DIRECTION :: 0xC9
-HID_USAGE_SIMULATION_BARREL_ELEVATION :: 0xCA
-HID_USAGE_SIMULATION_DIVE_PLANE :: 0xCB
-HID_USAGE_SIMULATION_BALLAST :: 0xCC
-HID_USAGE_SIMULATION_BICYCLE_CRANK :: 0xCD
-HID_USAGE_SIMULATION_HANDLE_BARS :: 0xCE
-HID_USAGE_SIMULATION_FRONT_BRAKE :: 0xCF
-HID_USAGE_SIMULATION_REAR_BRAKE :: 0xD0
-
-HID_USAGE_VR_BELT :: 0x01
-HID_USAGE_VR_BODY_SUIT :: 0x02
-HID_USAGE_VR_FLEXOR :: 0x03
-HID_USAGE_VR_GLOVE :: 0x04
-HID_USAGE_VR_HEAD_TRACKER :: 0x05
+HID_USAGE_SIMULATION_ELEVATOR :: 0xB8
+HID_USAGE_SIMULATION_ELEVATOR_TRIM :: 0xB9
+HID_USAGE_SIMULATION_RUDDER :: 0xBA
+HID_USAGE_SIMULATION_THROTTLE :: 0xBB
+HID_USAGE_SIMULATION_FLIGHT_COMMUNICATIONS :: 0xBC
+HID_USAGE_SIMULATION_FLARE_RELEASE :: 0xBD
+HID_USAGE_SIMULATION_LANDING_GEAR :: 0xBE
+HID_USAGE_SIMULATION_TOE_BRAKE :: 0xBF
+HID_USAGE_SIMULATION_TRIGGER :: 0xC0
+HID_USAGE_SIMULATION_WEAPONS_ARM :: 0xC1
+HID_USAGE_SIMULATION_WEAPONS_SELECT :: 0xC2
+HID_USAGE_SIMULATION_WING_FLAPS :: 0xC3
+HID_USAGE_SIMULATION_ACCELLERATOR :: 0xC4
+HID_USAGE_SIMULATION_BRAKE :: 0xC5
+HID_USAGE_SIMULATION_CLUTCH :: 0xC6
+HID_USAGE_SIMULATION_SHIFTER :: 0xC7
+HID_USAGE_SIMULATION_STEERING :: 0xC8
+HID_USAGE_SIMULATION_TURRET_DIRECTION :: 0xC9
+HID_USAGE_SIMULATION_BARREL_ELEVATION :: 0xCA
+HID_USAGE_SIMULATION_DIVE_PLANE :: 0xCB
+HID_USAGE_SIMULATION_BALLAST :: 0xCC
+HID_USAGE_SIMULATION_BICYCLE_CRANK :: 0xCD
+HID_USAGE_SIMULATION_HANDLE_BARS :: 0xCE
+HID_USAGE_SIMULATION_FRONT_BRAKE :: 0xCF
+HID_USAGE_SIMULATION_REAR_BRAKE :: 0xD0
+
+HID_USAGE_VR_BELT :: 0x01
+HID_USAGE_VR_BODY_SUIT :: 0x02
+HID_USAGE_VR_FLEXOR :: 0x03
+HID_USAGE_VR_GLOVE :: 0x04
+HID_USAGE_VR_HEAD_TRACKER :: 0x05
HID_USAGE_VR_HEAD_MOUNTED_DISPLAY :: 0x06
-HID_USAGE_VR_HAND_TRACKER :: 0x07
-HID_USAGE_VR_OCULOMETER :: 0x08
-HID_USAGE_VR_VEST :: 0x09
-HID_USAGE_VR_ANIMATRONIC_DEVICE :: 0x0A
+HID_USAGE_VR_HAND_TRACKER :: 0x07
+HID_USAGE_VR_OCULOMETER :: 0x08
+HID_USAGE_VR_VEST :: 0x09
+HID_USAGE_VR_ANIMATRONIC_DEVICE :: 0x0A
-HID_USAGE_VR_STEREO_ENABLE :: 0x20
+HID_USAGE_VR_STEREO_ENABLE :: 0x20
HID_USAGE_VR_DISPLAY_ENABLE :: 0x21
-HID_USAGE_SPORT_BASEBALL_BAT :: 0x01
-HID_USAGE_SPORT_GOLF_CLUB :: 0x02
+HID_USAGE_SPORT_BASEBALL_BAT :: 0x01
+HID_USAGE_SPORT_GOLF_CLUB :: 0x02
HID_USAGE_SPORT_ROWING_MACHINE :: 0x03
-HID_USAGE_SPORT_TREADMILL :: 0x04
-HID_USAGE_SPORT_STICK_TYPE :: 0x38
+HID_USAGE_SPORT_TREADMILL :: 0x04
+HID_USAGE_SPORT_STICK_TYPE :: 0x38
-HID_USAGE_SPORT_OAR :: 0x30
-HID_USAGE_SPORT_SLOPE :: 0x31
-HID_USAGE_SPORT_RATE :: 0x32
-HID_USAGE_SPORT_STICK_SPEED :: 0x33
+HID_USAGE_SPORT_OAR :: 0x30
+HID_USAGE_SPORT_SLOPE :: 0x31
+HID_USAGE_SPORT_RATE :: 0x32
+HID_USAGE_SPORT_STICK_SPEED :: 0x33
HID_USAGE_SPORT_STICK_FACE_ANGLE :: 0x34
-HID_USAGE_SPORT_HEEL_TOE :: 0x35
-HID_USAGE_SPORT_FOLLOW_THROUGH :: 0x36
-HID_USAGE_SPORT_TEMPO :: 0x37
-HID_USAGE_SPORT_HEIGHT :: 0x39
-HID_USAGE_SPORT_PUTTER :: 0x50
-HID_USAGE_SPORT_1_IRON :: 0x51
-HID_USAGE_SPORT_2_IRON :: 0x52
-HID_USAGE_SPORT_3_IRON :: 0x53
-HID_USAGE_SPORT_4_IRON :: 0x54
-HID_USAGE_SPORT_5_IRON :: 0x55
-HID_USAGE_SPORT_6_IRON :: 0x56
-HID_USAGE_SPORT_7_IRON :: 0x57
-HID_USAGE_SPORT_8_IRON :: 0x58
-HID_USAGE_SPORT_9_IRON :: 0x59
-HID_USAGE_SPORT_10_IRON :: 0x5A
-HID_USAGE_SPORT_11_IRON :: 0x5B
-HID_USAGE_SPORT_SAND_WEDGE :: 0x5C
-HID_USAGE_SPORT_LOFT_WEDGE :: 0x5D
-HID_USAGE_SPORT_POWER_WEDGE :: 0x5E
-HID_USAGE_SPORT_1_WOOD :: 0x5F
-HID_USAGE_SPORT_3_WOOD :: 0x60
-HID_USAGE_SPORT_5_WOOD :: 0x61
-HID_USAGE_SPORT_7_WOOD :: 0x62
-HID_USAGE_SPORT_9_WOOD :: 0x63
+HID_USAGE_SPORT_HEEL_TOE :: 0x35
+HID_USAGE_SPORT_FOLLOW_THROUGH :: 0x36
+HID_USAGE_SPORT_TEMPO :: 0x37
+HID_USAGE_SPORT_HEIGHT :: 0x39
+HID_USAGE_SPORT_PUTTER :: 0x50
+HID_USAGE_SPORT_1_IRON :: 0x51
+HID_USAGE_SPORT_2_IRON :: 0x52
+HID_USAGE_SPORT_3_IRON :: 0x53
+HID_USAGE_SPORT_4_IRON :: 0x54
+HID_USAGE_SPORT_5_IRON :: 0x55
+HID_USAGE_SPORT_6_IRON :: 0x56
+HID_USAGE_SPORT_7_IRON :: 0x57
+HID_USAGE_SPORT_8_IRON :: 0x58
+HID_USAGE_SPORT_9_IRON :: 0x59
+HID_USAGE_SPORT_10_IRON :: 0x5A
+HID_USAGE_SPORT_11_IRON :: 0x5B
+HID_USAGE_SPORT_SAND_WEDGE :: 0x5C
+HID_USAGE_SPORT_LOFT_WEDGE :: 0x5D
+HID_USAGE_SPORT_POWER_WEDGE :: 0x5E
+HID_USAGE_SPORT_1_WOOD :: 0x5F
+HID_USAGE_SPORT_3_WOOD :: 0x60
+HID_USAGE_SPORT_5_WOOD :: 0x61
+HID_USAGE_SPORT_7_WOOD :: 0x62
+HID_USAGE_SPORT_9_WOOD :: 0x63
HID_USAGE_GAME_3D_GAME_CONTROLLER :: 0x01
-HID_USAGE_GAME_PINBALL_DEVICE :: 0x02
-HID_USAGE_GAME_GUN_DEVICE :: 0x03
-HID_USAGE_GAME_POINT_OF_VIEW :: 0x20
-HID_USAGE_GAME_GUN_SELECTOR :: 0x32
-HID_USAGE_GAME_GAMEPAD_FIRE_JUMP :: 0x37
-HID_USAGE_GAME_GAMEPAD_TRIGGER :: 0x39
-
-HID_USAGE_GAME_TURN_RIGHT_LEFT :: 0x21
+HID_USAGE_GAME_PINBALL_DEVICE :: 0x02
+HID_USAGE_GAME_GUN_DEVICE :: 0x03
+HID_USAGE_GAME_POINT_OF_VIEW :: 0x20
+HID_USAGE_GAME_GUN_SELECTOR :: 0x32
+HID_USAGE_GAME_GAMEPAD_FIRE_JUMP :: 0x37
+HID_USAGE_GAME_GAMEPAD_TRIGGER :: 0x39
+
+HID_USAGE_GAME_TURN_RIGHT_LEFT :: 0x21
HID_USAGE_GAME_PITCH_FORWARD_BACK :: 0x22
-HID_USAGE_GAME_ROLL_RIGHT_LEFT :: 0x23
-HID_USAGE_GAME_MOVE_RIGHT_LEFT :: 0x24
-HID_USAGE_GAME_MOVE_FORWARD_BACK :: 0x25
-HID_USAGE_GAME_MOVE_UP_DOWN :: 0x26
-HID_USAGE_GAME_LEAN_RIGHT_LEFT :: 0x27
-HID_USAGE_GAME_LEAN_FORWARD_BACK :: 0x28
-HID_USAGE_GAME_POV_HEIGHT :: 0x29
-HID_USAGE_GAME_FLIPPER :: 0x2A
-HID_USAGE_GAME_SECONDARY_FLIPPER :: 0x2B
-HID_USAGE_GAME_BUMP :: 0x2C
-HID_USAGE_GAME_NEW_GAME :: 0x2D
-HID_USAGE_GAME_SHOOT_BALL :: 0x2E
-HID_USAGE_GAME_PLAYER :: 0x2F
-HID_USAGE_GAME_GUN_BOLT :: 0x30
-HID_USAGE_GAME_GUN_CLIP :: 0x31
-HID_USAGE_GAME_GUN_SINGLE_SHOT :: 0x33
-HID_USAGE_GAME_GUN_BURST :: 0x34
-HID_USAGE_GAME_GUN_AUTOMATIC :: 0x35
-HID_USAGE_GAME_GUN_SAFETY :: 0x36
-
-HID_USAGE_GENERIC_DEVICE_BATTERY_STRENGTH :: 0x20
-HID_USAGE_GENERIC_DEVICE_WIRELESS_CHANNEL :: 0x21
-HID_USAGE_GENERIC_DEVICE_WIRELESS_ID :: 0x22
-HID_USAGE_GENERIC_DEVICE_DISCOVER_WIRELESS_CONTROL :: 0x23
+HID_USAGE_GAME_ROLL_RIGHT_LEFT :: 0x23
+HID_USAGE_GAME_MOVE_RIGHT_LEFT :: 0x24
+HID_USAGE_GAME_MOVE_FORWARD_BACK :: 0x25
+HID_USAGE_GAME_MOVE_UP_DOWN :: 0x26
+HID_USAGE_GAME_LEAN_RIGHT_LEFT :: 0x27
+HID_USAGE_GAME_LEAN_FORWARD_BACK :: 0x28
+HID_USAGE_GAME_POV_HEIGHT :: 0x29
+HID_USAGE_GAME_FLIPPER :: 0x2A
+HID_USAGE_GAME_SECONDARY_FLIPPER :: 0x2B
+HID_USAGE_GAME_BUMP :: 0x2C
+HID_USAGE_GAME_NEW_GAME :: 0x2D
+HID_USAGE_GAME_SHOOT_BALL :: 0x2E
+HID_USAGE_GAME_PLAYER :: 0x2F
+HID_USAGE_GAME_GUN_BOLT :: 0x30
+HID_USAGE_GAME_GUN_CLIP :: 0x31
+HID_USAGE_GAME_GUN_SINGLE_SHOT :: 0x33
+HID_USAGE_GAME_GUN_BURST :: 0x34
+HID_USAGE_GAME_GUN_AUTOMATIC :: 0x35
+HID_USAGE_GAME_GUN_SAFETY :: 0x36
+
+HID_USAGE_GENERIC_DEVICE_BATTERY_STRENGTH :: 0x20
+HID_USAGE_GENERIC_DEVICE_WIRELESS_CHANNEL :: 0x21
+HID_USAGE_GENERIC_DEVICE_WIRELESS_ID :: 0x22
+HID_USAGE_GENERIC_DEVICE_DISCOVER_WIRELESS_CONTROL :: 0x23
HID_USAGE_GENERIC_DEVICE_SECURITY_CODE_CHAR_ENTERED :: 0x24
-HID_USAGE_GENERIC_DEVICE_SECURITY_CODE_CHAR_ERASED :: 0x25
-HID_USAGE_GENERIC_DEVICE_SECURITY_CODE_CLEARED :: 0x26
+HID_USAGE_GENERIC_DEVICE_SECURITY_CODE_CHAR_ERASED :: 0x25
+HID_USAGE_GENERIC_DEVICE_SECURITY_CODE_CLEARED :: 0x26
// Error "keys"
-HID_USAGE_KEYBOARD_NOEVENT :: 0x00
-HID_USAGE_KEYBOARD_ROLLOVER :: 0x01
-HID_USAGE_KEYBOARD_POSTFAIL :: 0x02
+HID_USAGE_KEYBOARD_NOEVENT :: 0x00
+HID_USAGE_KEYBOARD_ROLLOVER :: 0x01
+HID_USAGE_KEYBOARD_POSTFAIL :: 0x02
HID_USAGE_KEYBOARD_UNDEFINED :: 0x03
// Letters
@@ -265,32 +265,32 @@ HID_USAGE_KEYBOARD_aA :: 0x04
HID_USAGE_KEYBOARD_zZ :: 0x1D
// Numbers
-HID_USAGE_KEYBOARD_ONE :: 0x1E
+HID_USAGE_KEYBOARD_ONE :: 0x1E
HID_USAGE_KEYBOARD_ZERO :: 0x27
// Modifier Keys
-HID_USAGE_KEYBOARD_LCTRL :: 0xE0
-HID_USAGE_KEYBOARD_LSHFT :: 0xE1
-HID_USAGE_KEYBOARD_LALT :: 0xE2
-HID_USAGE_KEYBOARD_LGUI :: 0xE3
-HID_USAGE_KEYBOARD_RCTRL :: 0xE4
-HID_USAGE_KEYBOARD_RSHFT :: 0xE5
-HID_USAGE_KEYBOARD_RALT :: 0xE6
-HID_USAGE_KEYBOARD_RGUI :: 0xE7
+HID_USAGE_KEYBOARD_LCTRL :: 0xE0
+HID_USAGE_KEYBOARD_LSHFT :: 0xE1
+HID_USAGE_KEYBOARD_LALT :: 0xE2
+HID_USAGE_KEYBOARD_LGUI :: 0xE3
+HID_USAGE_KEYBOARD_RCTRL :: 0xE4
+HID_USAGE_KEYBOARD_RSHFT :: 0xE5
+HID_USAGE_KEYBOARD_RALT :: 0xE6
+HID_USAGE_KEYBOARD_RGUI :: 0xE7
HID_USAGE_KEYBOARD_SCROLL_LOCK :: 0x47
-HID_USAGE_KEYBOARD_NUM_LOCK :: 0x53
-HID_USAGE_KEYBOARD_CAPS_LOCK :: 0x39
+HID_USAGE_KEYBOARD_NUM_LOCK :: 0x53
+HID_USAGE_KEYBOARD_CAPS_LOCK :: 0x39
// Function keys
-HID_USAGE_KEYBOARD_F1 :: 0x3A
-HID_USAGE_KEYBOARD_F2 :: 0x3B
-HID_USAGE_KEYBOARD_F3 :: 0x3C
-HID_USAGE_KEYBOARD_F4 :: 0x3D
-HID_USAGE_KEYBOARD_F5 :: 0x3E
-HID_USAGE_KEYBOARD_F6 :: 0x3F
-HID_USAGE_KEYBOARD_F7 :: 0x40
-HID_USAGE_KEYBOARD_F8 :: 0x41
-HID_USAGE_KEYBOARD_F9 :: 0x42
+HID_USAGE_KEYBOARD_F1 :: 0x3A
+HID_USAGE_KEYBOARD_F2 :: 0x3B
+HID_USAGE_KEYBOARD_F3 :: 0x3C
+HID_USAGE_KEYBOARD_F4 :: 0x3D
+HID_USAGE_KEYBOARD_F5 :: 0x3E
+HID_USAGE_KEYBOARD_F6 :: 0x3F
+HID_USAGE_KEYBOARD_F7 :: 0x40
+HID_USAGE_KEYBOARD_F8 :: 0x41
+HID_USAGE_KEYBOARD_F9 :: 0x42
HID_USAGE_KEYBOARD_F10 :: 0x43
HID_USAGE_KEYBOARD_F11 :: 0x44
HID_USAGE_KEYBOARD_F12 :: 0x45
@@ -315,103 +315,103 @@ HID_USAGE_KEYBOARD_PRINT_SCREEN :: 0x46
HID_USAGE_KEYBOARD_DELETE_FORWARD :: 0x4C
// Numeric Keypad
-HID_USAGE_KEYBOARD_KEYPAD_1_AND_END :: 0x59
+HID_USAGE_KEYBOARD_KEYPAD_1_AND_END :: 0x59
HID_USAGE_KEYBOARD_KEYPAD_0_AND_INSERT :: 0x62
-HID_USAGE_LED_NUM_LOCK :: 0x01
-HID_USAGE_LED_CAPS_LOCK :: 0x02
-HID_USAGE_LED_SCROLL_LOCK :: 0x03
-HID_USAGE_LED_COMPOSE :: 0x04
-HID_USAGE_LED_KANA :: 0x05
-HID_USAGE_LED_POWER :: 0x06
-HID_USAGE_LED_SHIFT :: 0x07
-HID_USAGE_LED_DO_NOT_DISTURB :: 0x08
-HID_USAGE_LED_MUTE :: 0x09
-HID_USAGE_LED_TONE_ENABLE :: 0x0A
-HID_USAGE_LED_HIGH_CUT_FILTER :: 0x0B
-HID_USAGE_LED_LOW_CUT_FILTER :: 0x0C
-HID_USAGE_LED_EQUALIZER_ENABLE :: 0x0D
-HID_USAGE_LED_SOUND_FIELD_ON :: 0x0E
-HID_USAGE_LED_SURROUND_FIELD_ON :: 0x0F
-HID_USAGE_LED_REPEAT :: 0x10
-HID_USAGE_LED_STEREO :: 0x11
+HID_USAGE_LED_NUM_LOCK :: 0x01
+HID_USAGE_LED_CAPS_LOCK :: 0x02
+HID_USAGE_LED_SCROLL_LOCK :: 0x03
+HID_USAGE_LED_COMPOSE :: 0x04
+HID_USAGE_LED_KANA :: 0x05
+HID_USAGE_LED_POWER :: 0x06
+HID_USAGE_LED_SHIFT :: 0x07
+HID_USAGE_LED_DO_NOT_DISTURB :: 0x08
+HID_USAGE_LED_MUTE :: 0x09
+HID_USAGE_LED_TONE_ENABLE :: 0x0A
+HID_USAGE_LED_HIGH_CUT_FILTER :: 0x0B
+HID_USAGE_LED_LOW_CUT_FILTER :: 0x0C
+HID_USAGE_LED_EQUALIZER_ENABLE :: 0x0D
+HID_USAGE_LED_SOUND_FIELD_ON :: 0x0E
+HID_USAGE_LED_SURROUND_FIELD_ON :: 0x0F
+HID_USAGE_LED_REPEAT :: 0x10
+HID_USAGE_LED_STEREO :: 0x11
HID_USAGE_LED_SAMPLING_RATE_DETECT :: 0x12
-HID_USAGE_LED_SPINNING :: 0x13
-HID_USAGE_LED_CAV :: 0x14
-HID_USAGE_LED_CLV :: 0x15
+HID_USAGE_LED_SPINNING :: 0x13
+HID_USAGE_LED_CAV :: 0x14
+HID_USAGE_LED_CLV :: 0x15
HID_USAGE_LED_RECORDING_FORMAT_DET :: 0x16
-HID_USAGE_LED_OFF_HOOK :: 0x17
-HID_USAGE_LED_RING :: 0x18
-HID_USAGE_LED_MESSAGE_WAITING :: 0x19
-HID_USAGE_LED_DATA_MODE :: 0x1A
-HID_USAGE_LED_BATTERY_OPERATION :: 0x1B
-HID_USAGE_LED_BATTERY_OK :: 0x1C
-HID_USAGE_LED_BATTERY_LOW :: 0x1D
-HID_USAGE_LED_SPEAKER :: 0x1E
-HID_USAGE_LED_HEAD_SET :: 0x1F
-HID_USAGE_LED_HOLD :: 0x20
-HID_USAGE_LED_MICROPHONE :: 0x21
-HID_USAGE_LED_COVERAGE :: 0x22
-HID_USAGE_LED_NIGHT_MODE :: 0x23
-HID_USAGE_LED_SEND_CALLS :: 0x24
-HID_USAGE_LED_CALL_PICKUP :: 0x25
-HID_USAGE_LED_CONFERENCE :: 0x26
-HID_USAGE_LED_STAND_BY :: 0x27
-HID_USAGE_LED_CAMERA_ON :: 0x28
-HID_USAGE_LED_CAMERA_OFF :: 0x29
-HID_USAGE_LED_ON_LINE :: 0x2A
-HID_USAGE_LED_OFF_LINE :: 0x2B
-HID_USAGE_LED_BUSY :: 0x2C
-HID_USAGE_LED_READY :: 0x2D
-HID_USAGE_LED_PAPER_OUT :: 0x2E
-HID_USAGE_LED_PAPER_JAM :: 0x2F
-HID_USAGE_LED_REMOTE :: 0x30
-HID_USAGE_LED_FORWARD :: 0x31
-HID_USAGE_LED_REVERSE :: 0x32
-HID_USAGE_LED_STOP :: 0x33
-HID_USAGE_LED_REWIND :: 0x34
-HID_USAGE_LED_FAST_FORWARD :: 0x35
-HID_USAGE_LED_PLAY :: 0x36
-HID_USAGE_LED_PAUSE :: 0x37
-HID_USAGE_LED_RECORD :: 0x38
-HID_USAGE_LED_ERROR :: 0x39
-HID_USAGE_LED_SELECTED_INDICATOR :: 0x3A
-HID_USAGE_LED_IN_USE_INDICATOR :: 0x3B
+HID_USAGE_LED_OFF_HOOK :: 0x17
+HID_USAGE_LED_RING :: 0x18
+HID_USAGE_LED_MESSAGE_WAITING :: 0x19
+HID_USAGE_LED_DATA_MODE :: 0x1A
+HID_USAGE_LED_BATTERY_OPERATION :: 0x1B
+HID_USAGE_LED_BATTERY_OK :: 0x1C
+HID_USAGE_LED_BATTERY_LOW :: 0x1D
+HID_USAGE_LED_SPEAKER :: 0x1E
+HID_USAGE_LED_HEAD_SET :: 0x1F
+HID_USAGE_LED_HOLD :: 0x20
+HID_USAGE_LED_MICROPHONE :: 0x21
+HID_USAGE_LED_COVERAGE :: 0x22
+HID_USAGE_LED_NIGHT_MODE :: 0x23
+HID_USAGE_LED_SEND_CALLS :: 0x24
+HID_USAGE_LED_CALL_PICKUP :: 0x25
+HID_USAGE_LED_CONFERENCE :: 0x26
+HID_USAGE_LED_STAND_BY :: 0x27
+HID_USAGE_LED_CAMERA_ON :: 0x28
+HID_USAGE_LED_CAMERA_OFF :: 0x29
+HID_USAGE_LED_ON_LINE :: 0x2A
+HID_USAGE_LED_OFF_LINE :: 0x2B
+HID_USAGE_LED_BUSY :: 0x2C
+HID_USAGE_LED_READY :: 0x2D
+HID_USAGE_LED_PAPER_OUT :: 0x2E
+HID_USAGE_LED_PAPER_JAM :: 0x2F
+HID_USAGE_LED_REMOTE :: 0x30
+HID_USAGE_LED_FORWARD :: 0x31
+HID_USAGE_LED_REVERSE :: 0x32
+HID_USAGE_LED_STOP :: 0x33
+HID_USAGE_LED_REWIND :: 0x34
+HID_USAGE_LED_FAST_FORWARD :: 0x35
+HID_USAGE_LED_PLAY :: 0x36
+HID_USAGE_LED_PAUSE :: 0x37
+HID_USAGE_LED_RECORD :: 0x38
+HID_USAGE_LED_ERROR :: 0x39
+HID_USAGE_LED_SELECTED_INDICATOR :: 0x3A
+HID_USAGE_LED_IN_USE_INDICATOR :: 0x3B
HID_USAGE_LED_MULTI_MODE_INDICATOR :: 0x3C
-HID_USAGE_LED_INDICATOR_ON :: 0x3D
-HID_USAGE_LED_INDICATOR_FLASH :: 0x3E
+HID_USAGE_LED_INDICATOR_ON :: 0x3D
+HID_USAGE_LED_INDICATOR_FLASH :: 0x3E
HID_USAGE_LED_INDICATOR_SLOW_BLINK :: 0x3F
HID_USAGE_LED_INDICATOR_FAST_BLINK :: 0x40
-HID_USAGE_LED_INDICATOR_OFF :: 0x41
-HID_USAGE_LED_FLASH_ON_TIME :: 0x42
-HID_USAGE_LED_SLOW_BLINK_ON_TIME :: 0x43
-HID_USAGE_LED_SLOW_BLINK_OFF_TIME :: 0x44
-HID_USAGE_LED_FAST_BLINK_ON_TIME :: 0x45
-HID_USAGE_LED_FAST_BLINK_OFF_TIME :: 0x46
-HID_USAGE_LED_INDICATOR_COLOR :: 0x47
-HID_USAGE_LED_RED :: 0x48
-HID_USAGE_LED_GREEN :: 0x49
-HID_USAGE_LED_AMBER :: 0x4A
-HID_USAGE_LED_GENERIC_INDICATOR :: 0x4B
-HID_USAGE_LED_SYSTEM_SUSPEND :: 0x4C
-HID_USAGE_LED_EXTERNAL_POWER :: 0x4D
-
-HID_USAGE_TELEPHONY_PHONE :: 0x01
-HID_USAGE_TELEPHONY_ANSWERING_MACHINE :: 0x02
-HID_USAGE_TELEPHONY_MESSAGE_CONTROLS :: 0x03
-HID_USAGE_TELEPHONY_HANDSET :: 0x04
-HID_USAGE_TELEPHONY_HEADSET :: 0x05
-HID_USAGE_TELEPHONY_KEYPAD :: 0x06
+HID_USAGE_LED_INDICATOR_OFF :: 0x41
+HID_USAGE_LED_FLASH_ON_TIME :: 0x42
+HID_USAGE_LED_SLOW_BLINK_ON_TIME :: 0x43
+HID_USAGE_LED_SLOW_BLINK_OFF_TIME :: 0x44
+HID_USAGE_LED_FAST_BLINK_ON_TIME :: 0x45
+HID_USAGE_LED_FAST_BLINK_OFF_TIME :: 0x46
+HID_USAGE_LED_INDICATOR_COLOR :: 0x47
+HID_USAGE_LED_RED :: 0x48
+HID_USAGE_LED_GREEN :: 0x49
+HID_USAGE_LED_AMBER :: 0x4A
+HID_USAGE_LED_GENERIC_INDICATOR :: 0x4B
+HID_USAGE_LED_SYSTEM_SUSPEND :: 0x4C
+HID_USAGE_LED_EXTERNAL_POWER :: 0x4D
+
+HID_USAGE_TELEPHONY_PHONE :: 0x01
+HID_USAGE_TELEPHONY_ANSWERING_MACHINE :: 0x02
+HID_USAGE_TELEPHONY_MESSAGE_CONTROLS :: 0x03
+HID_USAGE_TELEPHONY_HANDSET :: 0x04
+HID_USAGE_TELEPHONY_HEADSET :: 0x05
+HID_USAGE_TELEPHONY_KEYPAD :: 0x06
HID_USAGE_TELEPHONY_PROGRAMMABLE_BUTTON :: 0x07
-HID_USAGE_TELEPHONY_REDIAL :: 0x24
-HID_USAGE_TELEPHONY_TRANSFER :: 0x25
-HID_USAGE_TELEPHONY_DROP :: 0x26
-HID_USAGE_TELEPHONY_LINE :: 0x2A
-HID_USAGE_TELEPHONY_RING_ENABLE :: 0x2D
-HID_USAGE_TELEPHONY_SEND :: 0x31
-HID_USAGE_TELEPHONY_KEYPAD_0 :: 0xB0
-HID_USAGE_TELEPHONY_KEYPAD_D :: 0xBF
-HID_USAGE_TELEPHONY_HOST_AVAILABLE :: 0xF1
+HID_USAGE_TELEPHONY_REDIAL :: 0x24
+HID_USAGE_TELEPHONY_TRANSFER :: 0x25
+HID_USAGE_TELEPHONY_DROP :: 0x26
+HID_USAGE_TELEPHONY_LINE :: 0x2A
+HID_USAGE_TELEPHONY_RING_ENABLE :: 0x2D
+HID_USAGE_TELEPHONY_SEND :: 0x31
+HID_USAGE_TELEPHONY_KEYPAD_0 :: 0xB0
+HID_USAGE_TELEPHONY_KEYPAD_D :: 0xBF
+HID_USAGE_TELEPHONY_HOST_AVAILABLE :: 0xF1
HID_USAGE_CONSUMERCTRL :: 0x01
@@ -420,271 +420,271 @@ HID_USAGE_CONSUMER_CHANNEL_INCREMENT :: 0x9C
HID_USAGE_CONSUMER_CHANNEL_DECREMENT :: 0x9D
// transport control
-HID_USAGE_CONSUMER_PLAY :: 0xB0
-HID_USAGE_CONSUMER_PAUSE :: 0xB1
-HID_USAGE_CONSUMER_RECORD :: 0xB2
-HID_USAGE_CONSUMER_FAST_FORWARD :: 0xB3
-HID_USAGE_CONSUMER_REWIND :: 0xB4
+HID_USAGE_CONSUMER_PLAY :: 0xB0
+HID_USAGE_CONSUMER_PAUSE :: 0xB1
+HID_USAGE_CONSUMER_RECORD :: 0xB2
+HID_USAGE_CONSUMER_FAST_FORWARD :: 0xB3
+HID_USAGE_CONSUMER_REWIND :: 0xB4
HID_USAGE_CONSUMER_SCAN_NEXT_TRACK :: 0xB5
HID_USAGE_CONSUMER_SCAN_PREV_TRACK :: 0xB6
-HID_USAGE_CONSUMER_STOP :: 0xB7
-HID_USAGE_CONSUMER_PLAY_PAUSE :: 0xCD
+HID_USAGE_CONSUMER_STOP :: 0xB7
+HID_USAGE_CONSUMER_PLAY_PAUSE :: 0xCD
// GameDVR
-HID_USAGE_CONSUMER_GAMEDVR_OPEN_GAMEBAR :: 0xD0
-HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_RECORD :: 0xD1
-HID_USAGE_CONSUMER_GAMEDVR_RECORD_CLIP :: 0xD2
-HID_USAGE_CONSUMER_GAMEDVR_SCREENSHOT :: 0xD3
-HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_INDICATOR :: 0xD4
+HID_USAGE_CONSUMER_GAMEDVR_OPEN_GAMEBAR :: 0xD0
+HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_RECORD :: 0xD1
+HID_USAGE_CONSUMER_GAMEDVR_RECORD_CLIP :: 0xD2
+HID_USAGE_CONSUMER_GAMEDVR_SCREENSHOT :: 0xD3
+HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_INDICATOR :: 0xD4
HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_MICROPHONE :: 0xD5
-HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_CAMERA :: 0xD6
-HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_BROADCAST :: 0xD7
+HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_CAMERA :: 0xD6
+HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_BROADCAST :: 0xD7
// audio
-HID_USAGE_CONSUMER_VOLUME :: 0xE0
-HID_USAGE_CONSUMER_BALANCE :: 0xE1
-HID_USAGE_CONSUMER_MUTE :: 0xE2
-HID_USAGE_CONSUMER_BASS :: 0xE3
-HID_USAGE_CONSUMER_TREBLE :: 0xE4
-HID_USAGE_CONSUMER_BASS_BOOST :: 0xE5
-HID_USAGE_CONSUMER_SURROUND_MODE :: 0xE6
-HID_USAGE_CONSUMER_LOUDNESS :: 0xE7
-HID_USAGE_CONSUMER_MPX :: 0xE8
+HID_USAGE_CONSUMER_VOLUME :: 0xE0
+HID_USAGE_CONSUMER_BALANCE :: 0xE1
+HID_USAGE_CONSUMER_MUTE :: 0xE2
+HID_USAGE_CONSUMER_BASS :: 0xE3
+HID_USAGE_CONSUMER_TREBLE :: 0xE4
+HID_USAGE_CONSUMER_BASS_BOOST :: 0xE5
+HID_USAGE_CONSUMER_SURROUND_MODE :: 0xE6
+HID_USAGE_CONSUMER_LOUDNESS :: 0xE7
+HID_USAGE_CONSUMER_MPX :: 0xE8
HID_USAGE_CONSUMER_VOLUME_INCREMENT :: 0xE9
HID_USAGE_CONSUMER_VOLUME_DECREMENT :: 0xEA
// supplementary audio
-HID_USAGE_CONSUMER_BASS_INCREMENT :: 0x152
-HID_USAGE_CONSUMER_BASS_DECREMENT :: 0x153
+HID_USAGE_CONSUMER_BASS_INCREMENT :: 0x152
+HID_USAGE_CONSUMER_BASS_DECREMENT :: 0x153
HID_USAGE_CONSUMER_TREBLE_INCREMENT :: 0x154
HID_USAGE_CONSUMER_TREBLE_DECREMENT :: 0x155
// Application Launch
HID_USAGE_CONSUMER_AL_CONFIGURATION :: 0x183
-HID_USAGE_CONSUMER_AL_EMAIL :: 0x18A
-HID_USAGE_CONSUMER_AL_CALCULATOR :: 0x192
-HID_USAGE_CONSUMER_AL_BROWSER :: 0x194
-HID_USAGE_CONSUMER_AL_SEARCH :: 0x1C6
+HID_USAGE_CONSUMER_AL_EMAIL :: 0x18A
+HID_USAGE_CONSUMER_AL_CALCULATOR :: 0x192
+HID_USAGE_CONSUMER_AL_BROWSER :: 0x194
+HID_USAGE_CONSUMER_AL_SEARCH :: 0x1C6
// Application Control
-HID_USAGE_CONSUMER_AC_SEARCH :: 0x221
-HID_USAGE_CONSUMER_AC_GOTO :: 0x222
-HID_USAGE_CONSUMER_AC_HOME :: 0x223
-HID_USAGE_CONSUMER_AC_BACK :: 0x224
-HID_USAGE_CONSUMER_AC_FORWARD :: 0x225
-HID_USAGE_CONSUMER_AC_STOP :: 0x226
-HID_USAGE_CONSUMER_AC_REFRESH :: 0x227
-HID_USAGE_CONSUMER_AC_PREVIOUS :: 0x228
-HID_USAGE_CONSUMER_AC_NEXT :: 0x229
+HID_USAGE_CONSUMER_AC_SEARCH :: 0x221
+HID_USAGE_CONSUMER_AC_GOTO :: 0x222
+HID_USAGE_CONSUMER_AC_HOME :: 0x223
+HID_USAGE_CONSUMER_AC_BACK :: 0x224
+HID_USAGE_CONSUMER_AC_FORWARD :: 0x225
+HID_USAGE_CONSUMER_AC_STOP :: 0x226
+HID_USAGE_CONSUMER_AC_REFRESH :: 0x227
+HID_USAGE_CONSUMER_AC_PREVIOUS :: 0x228
+HID_USAGE_CONSUMER_AC_NEXT :: 0x229
HID_USAGE_CONSUMER_AC_BOOKMARKS :: 0x22A
-HID_USAGE_CONSUMER_AC_PAN :: 0x238
+HID_USAGE_CONSUMER_AC_PAN :: 0x238
// Keyboard Extended Attributes (defined on consumer page in HUTRR42)
-HID_USAGE_CONSUMER_EXTENDED_KEYBOARD_ATTRIBUTES_COLLECTION :: 0x2C0
-HID_USAGE_CONSUMER_KEYBOARD_FORM_FACTOR :: 0x2C1
-HID_USAGE_CONSUMER_KEYBOARD_KEY_TYPE :: 0x2C2
-HID_USAGE_CONSUMER_KEYBOARD_PHYSICAL_LAYOUT :: 0x2C3
-HID_USAGE_CONSUMER_VENDOR_SPECIFIC_KEYBOARD_PHYSICAL_LAYOUT :: 0x2C4
-HID_USAGE_CONSUMER_KEYBOARD_IETF_LANGUAGE_TAG_INDEX :: 0x2C5
+HID_USAGE_CONSUMER_EXTENDED_KEYBOARD_ATTRIBUTES_COLLECTION :: 0x2C0
+HID_USAGE_CONSUMER_KEYBOARD_FORM_FACTOR :: 0x2C1
+HID_USAGE_CONSUMER_KEYBOARD_KEY_TYPE :: 0x2C2
+HID_USAGE_CONSUMER_KEYBOARD_PHYSICAL_LAYOUT :: 0x2C3
+HID_USAGE_CONSUMER_VENDOR_SPECIFIC_KEYBOARD_PHYSICAL_LAYOUT :: 0x2C4
+HID_USAGE_CONSUMER_KEYBOARD_IETF_LANGUAGE_TAG_INDEX :: 0x2C5
HID_USAGE_CONSUMER_IMPLEMENTED_KEYBOARD_INPUT_ASSIST_CONTROLS :: 0x2C6
-HID_USAGE_DIGITIZER_DIGITIZER :: 0x01
-HID_USAGE_DIGITIZER_PEN :: 0x02
-HID_USAGE_DIGITIZER_LIGHT_PEN :: 0x03
-HID_USAGE_DIGITIZER_TOUCH_SCREEN :: 0x04
-HID_USAGE_DIGITIZER_TOUCH_PAD :: 0x05
-HID_USAGE_DIGITIZER_WHITE_BOARD :: 0x06
-HID_USAGE_DIGITIZER_COORD_MEASURING :: 0x07
-HID_USAGE_DIGITIZER_3D_DIGITIZER :: 0x08
-HID_USAGE_DIGITIZER_STEREO_PLOTTER :: 0x09
-HID_USAGE_DIGITIZER_ARTICULATED_ARM :: 0x0A
-HID_USAGE_DIGITIZER_ARMATURE :: 0x0B
-HID_USAGE_DIGITIZER_MULTI_POINT :: 0x0C
-HID_USAGE_DIGITIZER_FREE_SPACE_WAND :: 0x0D
-HID_USAGE_DIGITIZER_HEAT_MAP :: 0x0F
-HID_USAGE_DIGITIZER_STYLUS :: 0x20
-HID_USAGE_DIGITIZER_PUCK :: 0x21
-HID_USAGE_DIGITIZER_FINGER :: 0x22
+HID_USAGE_DIGITIZER_DIGITIZER :: 0x01
+HID_USAGE_DIGITIZER_PEN :: 0x02
+HID_USAGE_DIGITIZER_LIGHT_PEN :: 0x03
+HID_USAGE_DIGITIZER_TOUCH_SCREEN :: 0x04
+HID_USAGE_DIGITIZER_TOUCH_PAD :: 0x05
+HID_USAGE_DIGITIZER_WHITE_BOARD :: 0x06
+HID_USAGE_DIGITIZER_COORD_MEASURING :: 0x07
+HID_USAGE_DIGITIZER_3D_DIGITIZER :: 0x08
+HID_USAGE_DIGITIZER_STEREO_PLOTTER :: 0x09
+HID_USAGE_DIGITIZER_ARTICULATED_ARM :: 0x0A
+HID_USAGE_DIGITIZER_ARMATURE :: 0x0B
+HID_USAGE_DIGITIZER_MULTI_POINT :: 0x0C
+HID_USAGE_DIGITIZER_FREE_SPACE_WAND :: 0x0D
+HID_USAGE_DIGITIZER_HEAT_MAP :: 0x0F
+HID_USAGE_DIGITIZER_STYLUS :: 0x20
+HID_USAGE_DIGITIZER_PUCK :: 0x21
+HID_USAGE_DIGITIZER_FINGER :: 0x22
HID_USAGE_DIGITIZER_TABLET_FUNC_KEYS :: 0x39
HID_USAGE_DIGITIZER_PROG_CHANGE_KEYS :: 0x3A
-HID_USAGE_DIGITIZER_TIP_PRESSURE :: 0x30
-HID_USAGE_DIGITIZER_BARREL_PRESSURE :: 0x31
-HID_USAGE_DIGITIZER_IN_RANGE :: 0x32
-HID_USAGE_DIGITIZER_TOUCH :: 0x33
-HID_USAGE_DIGITIZER_UNTOUCH :: 0x34
-HID_USAGE_DIGITIZER_TAP :: 0x35
-HID_USAGE_DIGITIZER_QUALITY :: 0x36
-HID_USAGE_DIGITIZER_DATA_VALID :: 0x37
-HID_USAGE_DIGITIZER_TRANSDUCER_INDEX :: 0x38
-HID_USAGE_DIGITIZER_BATTERY_STRENGTH :: 0x3B
-HID_USAGE_DIGITIZER_INVERT :: 0x3C
-HID_USAGE_DIGITIZER_X_TILT :: 0x3D
-HID_USAGE_DIGITIZER_Y_TILT :: 0x3E
-HID_USAGE_DIGITIZER_AZIMUTH :: 0x3F
-HID_USAGE_DIGITIZER_ALTITUDE :: 0x40
-HID_USAGE_DIGITIZER_TWIST :: 0x41
-HID_USAGE_DIGITIZER_TIP_SWITCH :: 0x42
-HID_USAGE_DIGITIZER_SECONDARY_TIP_SWITCH :: 0x43
-HID_USAGE_DIGITIZER_BARREL_SWITCH :: 0x44
-HID_USAGE_DIGITIZER_ERASER :: 0x45
-HID_USAGE_DIGITIZER_TABLET_PICK :: 0x46
-HID_USAGE_DIGITIZER_TRANSDUCER_SERIAL :: 0x5B
+HID_USAGE_DIGITIZER_TIP_PRESSURE :: 0x30
+HID_USAGE_DIGITIZER_BARREL_PRESSURE :: 0x31
+HID_USAGE_DIGITIZER_IN_RANGE :: 0x32
+HID_USAGE_DIGITIZER_TOUCH :: 0x33
+HID_USAGE_DIGITIZER_UNTOUCH :: 0x34
+HID_USAGE_DIGITIZER_TAP :: 0x35
+HID_USAGE_DIGITIZER_QUALITY :: 0x36
+HID_USAGE_DIGITIZER_DATA_VALID :: 0x37
+HID_USAGE_DIGITIZER_TRANSDUCER_INDEX :: 0x38
+HID_USAGE_DIGITIZER_BATTERY_STRENGTH :: 0x3B
+HID_USAGE_DIGITIZER_INVERT :: 0x3C
+HID_USAGE_DIGITIZER_X_TILT :: 0x3D
+HID_USAGE_DIGITIZER_Y_TILT :: 0x3E
+HID_USAGE_DIGITIZER_AZIMUTH :: 0x3F
+HID_USAGE_DIGITIZER_ALTITUDE :: 0x40
+HID_USAGE_DIGITIZER_TWIST :: 0x41
+HID_USAGE_DIGITIZER_TIP_SWITCH :: 0x42
+HID_USAGE_DIGITIZER_SECONDARY_TIP_SWITCH :: 0x43
+HID_USAGE_DIGITIZER_BARREL_SWITCH :: 0x44
+HID_USAGE_DIGITIZER_ERASER :: 0x45
+HID_USAGE_DIGITIZER_TABLET_PICK :: 0x46
+HID_USAGE_DIGITIZER_TRANSDUCER_SERIAL :: 0x5B
HID_USAGE_DIGITIZER_HEAT_MAP_PROTOCOL_VENDOR_ID :: 0x6A
-HID_USAGE_DIGITIZER_HEAT_MAP_PROTOCOL_VERSION :: 0x6B
-HID_USAGE_DIGITIZER_HEAT_MAP_FRAME_DATA :: 0x6C
-HID_USAGE_DIGITIZER_TRANSDUCER_SERIAL_PART2 :: 0x6E
-HID_USAGE_DIGITIZER_TRANSDUCER_VENDOR :: 0x91
-HID_USAGE_DIGITIZER_TRANSDUCER_PRODUCT :: 0x92
-HID_USAGE_DIGITIZER_TRANSDUCER_CONNECTED :: 0xA2
+HID_USAGE_DIGITIZER_HEAT_MAP_PROTOCOL_VERSION :: 0x6B
+HID_USAGE_DIGITIZER_HEAT_MAP_FRAME_DATA :: 0x6C
+HID_USAGE_DIGITIZER_TRANSDUCER_SERIAL_PART2 :: 0x6E
+HID_USAGE_DIGITIZER_TRANSDUCER_VENDOR :: 0x91
+HID_USAGE_DIGITIZER_TRANSDUCER_PRODUCT :: 0x92
+HID_USAGE_DIGITIZER_TRANSDUCER_CONNECTED :: 0xA2
HID_USAGE_HAPTICS_SIMPLE_CONTROLLER :: 0x01
HID_USAGE_HAPTICS_WAVEFORM_LIST :: 0x10
HID_USAGE_HAPTICS_DURATION_LIST :: 0x11
-HID_USAGE_HAPTICS_AUTO_TRIGGER :: 0x20
-HID_USAGE_HAPTICS_MANUAL_TRIGGER :: 0x21
+HID_USAGE_HAPTICS_AUTO_TRIGGER :: 0x20
+HID_USAGE_HAPTICS_MANUAL_TRIGGER :: 0x21
HID_USAGE_HAPTICS_AUTO_ASSOCIATED_CONTROL :: 0x22
-HID_USAGE_HAPTICS_INTENSITY :: 0x23
-HID_USAGE_HAPTICS_REPEAT_COUNT :: 0x24
-HID_USAGE_HAPTICS_RETRIGGER_PERIOD :: 0x25
-HID_USAGE_HAPTICS_WAVEFORM_VENDOR_PAGE :: 0x26
-HID_USAGE_HAPTICS_WAVEFORM_VENDOR_ID :: 0x27
-HID_USAGE_HAPTICS_WAVEFORM_CUTOFF_TIME :: 0x28
+HID_USAGE_HAPTICS_INTENSITY :: 0x23
+HID_USAGE_HAPTICS_REPEAT_COUNT :: 0x24
+HID_USAGE_HAPTICS_RETRIGGER_PERIOD :: 0x25
+HID_USAGE_HAPTICS_WAVEFORM_VENDOR_PAGE :: 0x26
+HID_USAGE_HAPTICS_WAVEFORM_VENDOR_ID :: 0x27
+HID_USAGE_HAPTICS_WAVEFORM_CUTOFF_TIME :: 0x28
// Waveform types
-HID_USAGE_HAPTICS_WAVEFORM_BEGIN :: 0x1000
-HID_USAGE_HAPTICS_WAVEFORM_STOP :: 0x1001
-HID_USAGE_HAPTICS_WAVEFORM_NULL :: 0x1002
-HID_USAGE_HAPTICS_WAVEFORM_CLICK :: 0x1003
-HID_USAGE_HAPTICS_WAVEFORM_BUZZ :: 0x1004
-HID_USAGE_HAPTICS_WAVEFORM_RUMBLE :: 0x1005
-HID_USAGE_HAPTICS_WAVEFORM_PRESS :: 0x1006
+HID_USAGE_HAPTICS_WAVEFORM_BEGIN :: 0x1000
+HID_USAGE_HAPTICS_WAVEFORM_STOP :: 0x1001
+HID_USAGE_HAPTICS_WAVEFORM_NULL :: 0x1002
+HID_USAGE_HAPTICS_WAVEFORM_CLICK :: 0x1003
+HID_USAGE_HAPTICS_WAVEFORM_BUZZ :: 0x1004
+HID_USAGE_HAPTICS_WAVEFORM_RUMBLE :: 0x1005
+HID_USAGE_HAPTICS_WAVEFORM_PRESS :: 0x1006
HID_USAGE_HAPTICS_WAVEFORM_RELEASE :: 0x1007
-HID_USAGE_HAPTICS_WAVEFORM_END :: 0x1FFF
+HID_USAGE_HAPTICS_WAVEFORM_END :: 0x1FFF
HID_USAGE_HAPTICS_WAVEFORM_VENDOR_BEGIN :: 0x2000
-HID_USAGE_HAPTICS_WAVEFORM_VENDOR_END :: 0x2FFF
+HID_USAGE_HAPTICS_WAVEFORM_VENDOR_END :: 0x2FFF
-HID_USAGE_ALPHANUMERIC_ALPHANUMERIC_DISPLAY :: 0x01
-HID_USAGE_ALPHANUMERIC_BITMAPPED_DISPLAY :: 0x02
+HID_USAGE_ALPHANUMERIC_ALPHANUMERIC_DISPLAY :: 0x01
+HID_USAGE_ALPHANUMERIC_BITMAPPED_DISPLAY :: 0x02
HID_USAGE_ALPHANUMERIC_DISPLAY_ATTRIBUTES_REPORT :: 0x20
-HID_USAGE_ALPHANUMERIC_DISPLAY_CONTROL_REPORT :: 0x24
-HID_USAGE_ALPHANUMERIC_CHARACTER_REPORT :: 0x2B
-HID_USAGE_ALPHANUMERIC_DISPLAY_STATUS :: 0x2D
-HID_USAGE_ALPHANUMERIC_CURSOR_POSITION_REPORT :: 0x32
-HID_USAGE_ALPHANUMERIC_FONT_REPORT :: 0x3B
-HID_USAGE_ALPHANUMERIC_FONT_DATA :: 0x3C
-HID_USAGE_ALPHANUMERIC_CHARACTER_ATTRIBUTE :: 0x48
-HID_USAGE_ALPHANUMERIC_PALETTE_REPORT :: 0x85
-HID_USAGE_ALPHANUMERIC_PALETTE_DATA :: 0x88
-HID_USAGE_ALPHANUMERIC_BLIT_REPORT :: 0x8A
-HID_USAGE_ALPHANUMERIC_BLIT_DATA :: 0x8F
-HID_USAGE_ALPHANUMERIC_SOFT_BUTTON :: 0x90
-
-HID_USAGE_ALPHANUMERIC_ASCII_CHARACTER_SET :: 0x21
-HID_USAGE_ALPHANUMERIC_DATA_READ_BACK :: 0x22
-HID_USAGE_ALPHANUMERIC_FONT_READ_BACK :: 0x23
-HID_USAGE_ALPHANUMERIC_CLEAR_DISPLAY :: 0x25
-HID_USAGE_ALPHANUMERIC_DISPLAY_ENABLE :: 0x26
-HID_USAGE_ALPHANUMERIC_SCREEN_SAVER_DELAY :: 0x27
-HID_USAGE_ALPHANUMERIC_SCREEN_SAVER_ENABLE :: 0x28
-HID_USAGE_ALPHANUMERIC_VERTICAL_SCROLL :: 0x29
-HID_USAGE_ALPHANUMERIC_HORIZONTAL_SCROLL :: 0x2A
-HID_USAGE_ALPHANUMERIC_DISPLAY_DATA :: 0x2C
-HID_USAGE_ALPHANUMERIC_STATUS_NOT_READY :: 0x2E
-HID_USAGE_ALPHANUMERIC_STATUS_READY :: 0x2F
+HID_USAGE_ALPHANUMERIC_DISPLAY_CONTROL_REPORT :: 0x24
+HID_USAGE_ALPHANUMERIC_CHARACTER_REPORT :: 0x2B
+HID_USAGE_ALPHANUMERIC_DISPLAY_STATUS :: 0x2D
+HID_USAGE_ALPHANUMERIC_CURSOR_POSITION_REPORT :: 0x32
+HID_USAGE_ALPHANUMERIC_FONT_REPORT :: 0x3B
+HID_USAGE_ALPHANUMERIC_FONT_DATA :: 0x3C
+HID_USAGE_ALPHANUMERIC_CHARACTER_ATTRIBUTE :: 0x48
+HID_USAGE_ALPHANUMERIC_PALETTE_REPORT :: 0x85
+HID_USAGE_ALPHANUMERIC_PALETTE_DATA :: 0x88
+HID_USAGE_ALPHANUMERIC_BLIT_REPORT :: 0x8A
+HID_USAGE_ALPHANUMERIC_BLIT_DATA :: 0x8F
+HID_USAGE_ALPHANUMERIC_SOFT_BUTTON :: 0x90
+
+HID_USAGE_ALPHANUMERIC_ASCII_CHARACTER_SET :: 0x21
+HID_USAGE_ALPHANUMERIC_DATA_READ_BACK :: 0x22
+HID_USAGE_ALPHANUMERIC_FONT_READ_BACK :: 0x23
+HID_USAGE_ALPHANUMERIC_CLEAR_DISPLAY :: 0x25
+HID_USAGE_ALPHANUMERIC_DISPLAY_ENABLE :: 0x26
+HID_USAGE_ALPHANUMERIC_SCREEN_SAVER_DELAY :: 0x27
+HID_USAGE_ALPHANUMERIC_SCREEN_SAVER_ENABLE :: 0x28
+HID_USAGE_ALPHANUMERIC_VERTICAL_SCROLL :: 0x29
+HID_USAGE_ALPHANUMERIC_HORIZONTAL_SCROLL :: 0x2A
+HID_USAGE_ALPHANUMERIC_DISPLAY_DATA :: 0x2C
+HID_USAGE_ALPHANUMERIC_STATUS_NOT_READY :: 0x2E
+HID_USAGE_ALPHANUMERIC_STATUS_READY :: 0x2F
HID_USAGE_ALPHANUMERIC_ERR_NOT_A_LOADABLE_CHARACTER :: 0x30
HID_USAGE_ALPHANUMERIC_ERR_FONT_DATA_CANNOT_BE_READ :: 0x31
-HID_USAGE_ALPHANUMERIC_ROW :: 0x33
-HID_USAGE_ALPHANUMERIC_COLUMN :: 0x34
-HID_USAGE_ALPHANUMERIC_ROWS :: 0x35
-HID_USAGE_ALPHANUMERIC_COLUMNS :: 0x36
-HID_USAGE_ALPHANUMERIC_CURSOR_PIXEL_POSITIONING :: 0x37
-HID_USAGE_ALPHANUMERIC_CURSOR_MODE :: 0x38
-HID_USAGE_ALPHANUMERIC_CURSOR_ENABLE :: 0x39
-HID_USAGE_ALPHANUMERIC_CURSOR_BLINK :: 0x3A
-HID_USAGE_ALPHANUMERIC_CHAR_WIDTH :: 0x3D
-HID_USAGE_ALPHANUMERIC_CHAR_HEIGHT :: 0x3E
-HID_USAGE_ALPHANUMERIC_CHAR_SPACING_HORIZONTAL :: 0x3F
-HID_USAGE_ALPHANUMERIC_CHAR_SPACING_VERTICAL :: 0x40
-HID_USAGE_ALPHANUMERIC_UNICODE_CHAR_SET :: 0x41
-HID_USAGE_ALPHANUMERIC_FONT_7_SEGMENT :: 0x42
-HID_USAGE_ALPHANUMERIC_7_SEGMENT_DIRECT_MAP :: 0x43
-HID_USAGE_ALPHANUMERIC_FONT_14_SEGMENT :: 0x44
-HID_USAGE_ALPHANUMERIC_14_SEGMENT_DIRECT_MAP :: 0x45
-HID_USAGE_ALPHANUMERIC_DISPLAY_BRIGHTNESS :: 0x46
-HID_USAGE_ALPHANUMERIC_DISPLAY_CONTRAST :: 0x47
-HID_USAGE_ALPHANUMERIC_ATTRIBUTE_READBACK :: 0x49
-HID_USAGE_ALPHANUMERIC_ATTRIBUTE_DATA :: 0x4A
-HID_USAGE_ALPHANUMERIC_CHAR_ATTR_ENHANCE :: 0x4B
-HID_USAGE_ALPHANUMERIC_CHAR_ATTR_UNDERLINE :: 0x4C
-HID_USAGE_ALPHANUMERIC_CHAR_ATTR_BLINK :: 0x4D
-HID_USAGE_ALPHANUMERIC_BITMAP_SIZE_X :: 0x80
-HID_USAGE_ALPHANUMERIC_BITMAP_SIZE_Y :: 0x81
-HID_USAGE_ALPHANUMERIC_BIT_DEPTH_FORMAT :: 0x83
-HID_USAGE_ALPHANUMERIC_DISPLAY_ORIENTATION :: 0x84
-HID_USAGE_ALPHANUMERIC_PALETTE_DATA_SIZE :: 0x86
-HID_USAGE_ALPHANUMERIC_PALETTE_DATA_OFFSET :: 0x87
-HID_USAGE_ALPHANUMERIC_BLIT_RECTANGLE_X1 :: 0x8B
-HID_USAGE_ALPHANUMERIC_BLIT_RECTANGLE_Y1 :: 0x8C
-HID_USAGE_ALPHANUMERIC_BLIT_RECTANGLE_X2 :: 0x8D
-HID_USAGE_ALPHANUMERIC_BLIT_RECTANGLE_Y2 :: 0x8E
-HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_ID :: 0x91
-HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_SIDE :: 0x92
-HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_OFFSET1 :: 0x93
-HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_OFFSET2 :: 0x94
-HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_REPORT :: 0x95
-
-HID_USAGE_LAMPARRAY :: 0x01
-HID_USAGE_LAMPARRAY_ATTRBIUTES_REPORT :: 0x02
-HID_USAGE_LAMPARRAY_LAMP_COUNT :: 0x03
-HID_USAGE_LAMPARRAY_BOUNDING_BOX_WIDTH_IN_MICROMETERS :: 0x04
-HID_USAGE_LAMPARRAY_BOUNDING_BOX_HEIGHT_IN_MICROMETERS :: 0x05
-HID_USAGE_LAMPARRAY_BOUNDING_BOX_DEPTH_IN_MICROMETERS :: 0x06
-HID_USAGE_LAMPARRAY_KIND :: 0x07
+HID_USAGE_ALPHANUMERIC_ROW :: 0x33
+HID_USAGE_ALPHANUMERIC_COLUMN :: 0x34
+HID_USAGE_ALPHANUMERIC_ROWS :: 0x35
+HID_USAGE_ALPHANUMERIC_COLUMNS :: 0x36
+HID_USAGE_ALPHANUMERIC_CURSOR_PIXEL_POSITIONING :: 0x37
+HID_USAGE_ALPHANUMERIC_CURSOR_MODE :: 0x38
+HID_USAGE_ALPHANUMERIC_CURSOR_ENABLE :: 0x39
+HID_USAGE_ALPHANUMERIC_CURSOR_BLINK :: 0x3A
+HID_USAGE_ALPHANUMERIC_CHAR_WIDTH :: 0x3D
+HID_USAGE_ALPHANUMERIC_CHAR_HEIGHT :: 0x3E
+HID_USAGE_ALPHANUMERIC_CHAR_SPACING_HORIZONTAL :: 0x3F
+HID_USAGE_ALPHANUMERIC_CHAR_SPACING_VERTICAL :: 0x40
+HID_USAGE_ALPHANUMERIC_UNICODE_CHAR_SET :: 0x41
+HID_USAGE_ALPHANUMERIC_FONT_7_SEGMENT :: 0x42
+HID_USAGE_ALPHANUMERIC_7_SEGMENT_DIRECT_MAP :: 0x43
+HID_USAGE_ALPHANUMERIC_FONT_14_SEGMENT :: 0x44
+HID_USAGE_ALPHANUMERIC_14_SEGMENT_DIRECT_MAP :: 0x45
+HID_USAGE_ALPHANUMERIC_DISPLAY_BRIGHTNESS :: 0x46
+HID_USAGE_ALPHANUMERIC_DISPLAY_CONTRAST :: 0x47
+HID_USAGE_ALPHANUMERIC_ATTRIBUTE_READBACK :: 0x49
+HID_USAGE_ALPHANUMERIC_ATTRIBUTE_DATA :: 0x4A
+HID_USAGE_ALPHANUMERIC_CHAR_ATTR_ENHANCE :: 0x4B
+HID_USAGE_ALPHANUMERIC_CHAR_ATTR_UNDERLINE :: 0x4C
+HID_USAGE_ALPHANUMERIC_CHAR_ATTR_BLINK :: 0x4D
+HID_USAGE_ALPHANUMERIC_BITMAP_SIZE_X :: 0x80
+HID_USAGE_ALPHANUMERIC_BITMAP_SIZE_Y :: 0x81
+HID_USAGE_ALPHANUMERIC_BIT_DEPTH_FORMAT :: 0x83
+HID_USAGE_ALPHANUMERIC_DISPLAY_ORIENTATION :: 0x84
+HID_USAGE_ALPHANUMERIC_PALETTE_DATA_SIZE :: 0x86
+HID_USAGE_ALPHANUMERIC_PALETTE_DATA_OFFSET :: 0x87
+HID_USAGE_ALPHANUMERIC_BLIT_RECTANGLE_X1 :: 0x8B
+HID_USAGE_ALPHANUMERIC_BLIT_RECTANGLE_Y1 :: 0x8C
+HID_USAGE_ALPHANUMERIC_BLIT_RECTANGLE_X2 :: 0x8D
+HID_USAGE_ALPHANUMERIC_BLIT_RECTANGLE_Y2 :: 0x8E
+HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_ID :: 0x91
+HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_SIDE :: 0x92
+HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_OFFSET1 :: 0x93
+HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_OFFSET2 :: 0x94
+HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_REPORT :: 0x95
+
+HID_USAGE_LAMPARRAY :: 0x01
+HID_USAGE_LAMPARRAY_ATTRBIUTES_REPORT :: 0x02
+HID_USAGE_LAMPARRAY_LAMP_COUNT :: 0x03
+HID_USAGE_LAMPARRAY_BOUNDING_BOX_WIDTH_IN_MICROMETERS :: 0x04
+HID_USAGE_LAMPARRAY_BOUNDING_BOX_HEIGHT_IN_MICROMETERS :: 0x05
+HID_USAGE_LAMPARRAY_BOUNDING_BOX_DEPTH_IN_MICROMETERS :: 0x06
+HID_USAGE_LAMPARRAY_KIND :: 0x07
HID_USAGE_LAMPARRAY_MIN_UPDATE_INTERVAL_IN_MICROSECONDS :: 0x08
// 0x09 - 0x1F Reserved
-HID_USAGE_LAMPARRAY_LAMP_ATTRIBUTES_REQUEST_REPORT :: 0x20
-HID_USAGE_LAMPARRAY_LAMP_ID :: 0x21
+HID_USAGE_LAMPARRAY_LAMP_ATTRIBUTES_REQUEST_REPORT :: 0x20
+HID_USAGE_LAMPARRAY_LAMP_ID :: 0x21
HID_USAGE_LAMPARRAY_LAMP_ATTRIBUTES_RESPONSE_REPORT :: 0x22
-HID_USAGE_LAMPARRAY_POSITION_X_IN_MICROMETERS :: 0x23
-HID_USAGE_LAMPARRAY_POSITION_Y_IN_MICROMETERS :: 0x24
-HID_USAGE_LAMPARRAY_POSITION_Z_IN_MICROMETERS :: 0x25
-HID_USAGE_LAMPARRAY_LAMP_PURPOSES :: 0x26
-HID_USAGE_LAMPARRAY_UPDATE_LATENCY_IN_MICROSECONDS :: 0x27
-HID_USAGE_LAMPARRAY_RED_LEVEL_COUNT :: 0x28
-HID_USAGE_LAMPARRAY_GREEN_LEVEL_COUNT :: 0x29
-HID_USAGE_LAMPARRAY_BLUE_LEVEL_COUNT :: 0x2A
-HID_USAGE_LAMPARRAY_INTENSITY_LEVEL_COUNT :: 0x2B
-HID_USAGE_LAMPARRAY_IS_PROGRAMMABLE :: 0x2C
-HID_USAGE_LAMPARRAY_INPUT_BINDING :: 0x2D
+HID_USAGE_LAMPARRAY_POSITION_X_IN_MICROMETERS :: 0x23
+HID_USAGE_LAMPARRAY_POSITION_Y_IN_MICROMETERS :: 0x24
+HID_USAGE_LAMPARRAY_POSITION_Z_IN_MICROMETERS :: 0x25
+HID_USAGE_LAMPARRAY_LAMP_PURPOSES :: 0x26
+HID_USAGE_LAMPARRAY_UPDATE_LATENCY_IN_MICROSECONDS :: 0x27
+HID_USAGE_LAMPARRAY_RED_LEVEL_COUNT :: 0x28
+HID_USAGE_LAMPARRAY_GREEN_LEVEL_COUNT :: 0x29
+HID_USAGE_LAMPARRAY_BLUE_LEVEL_COUNT :: 0x2A
+HID_USAGE_LAMPARRAY_INTENSITY_LEVEL_COUNT :: 0x2B
+HID_USAGE_LAMPARRAY_IS_PROGRAMMABLE :: 0x2C
+HID_USAGE_LAMPARRAY_INPUT_BINDING :: 0x2D
// 0x2E - 0x4F Reserved
-HID_USAGE_LAMPARRAY_LAMP_MULTI_UPDATE_REPORT :: 0x50
-HID_USAGE_LAMPARRAY_LAMP_RED_UPDATE_CHANNEL :: 0x51
-HID_USAGE_LAMPARRAY_LAMP_GREEN_UPDATE_CHANNEL :: 0x52
-HID_USAGE_LAMPARRAY_LAMP_BLUE_UPDATE_CHANNEL :: 0x53
+HID_USAGE_LAMPARRAY_LAMP_MULTI_UPDATE_REPORT :: 0x50
+HID_USAGE_LAMPARRAY_LAMP_RED_UPDATE_CHANNEL :: 0x51
+HID_USAGE_LAMPARRAY_LAMP_GREEN_UPDATE_CHANNEL :: 0x52
+HID_USAGE_LAMPARRAY_LAMP_BLUE_UPDATE_CHANNEL :: 0x53
HID_USAGE_LAMPARRAY_LAMP_INTENSITY_UPDATE_CHANNEL :: 0x54
-HID_USAGE_LAMPARRAY_LAMP_UPDATE_FLAGS :: 0x55
+HID_USAGE_LAMPARRAY_LAMP_UPDATE_FLAGS :: 0x55
// 0x55 - 0x5F Reserved
HID_USAGE_LAMPARRAY_LAMP_RANGE_UPDATE_REPORT :: 0x60
-HID_USAGE_LAMPARRAY_LAMP_ID_START :: 0x61
-HID_USAGE_LAMPARRAY_LAMP_ID_END :: 0x62
+HID_USAGE_LAMPARRAY_LAMP_ID_START :: 0x61
+HID_USAGE_LAMPARRAY_LAMP_ID_END :: 0x62
// 0x63 - 0x6F Reserved
-HID_USAGE_LAMPARRAY_CONTROL_REPORT :: 0x70
+HID_USAGE_LAMPARRAY_CONTROL_REPORT :: 0x70
HID_USAGE_LAMPARRAY_AUTONOMOUS_MODE :: 0x71
HID_USAGE_CAMERA_AUTO_FOCUS :: 0x20
-HID_USAGE_CAMERA_SHUTTER :: 0x21
+HID_USAGE_CAMERA_SHUTTER :: 0x21
HID_USAGE_MS_BTH_HF_DIALNUMBER :: 0x21
HID_USAGE_MS_BTH_HF_DIALMEMORY :: 0x22
diff --git a/core/sys/windows/icu.odin b/core/sys/windows/icu.odin
index b481a05a9..7be9ce4c6 100644
--- a/core/sys/windows/icu.odin
+++ b/core/sys/windows/icu.odin
@@ -10,7 +10,7 @@ UError :: enum i32 {
@(default_calling_convention="system")
foreign icu {
ucal_getWindowsTimeZoneID :: proc(id: wstring, len: i32, winid: wstring, winidCapacity: i32, status: ^UError) -> i32 ---
- ucal_getDefaultTimeZone :: proc(result: wstring, cap: i32, status: ^UError) -> i32 ---
+ ucal_getDefaultTimeZone :: proc(result: wstring, cap: i32, status: ^UError) -> i32 ---
}
diff --git a/core/sys/windows/ip_helper.odin b/core/sys/windows/ip_helper.odin
index da23a064f..74ffa95b9 100644
--- a/core/sys/windows/ip_helper.odin
+++ b/core/sys/windows/ip_helper.odin
@@ -223,7 +223,7 @@ foreign iphlpapi {
The GetAdaptersAddresses function retrieves the addresses associated with the adapters on the local computer.
See: https://docs.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getadaptersaddresses
*/
- @(link_name="GetAdaptersAddresses") get_adapters_addresses :: proc(
+ GetAdaptersAddresses :: proc(
family: Address_Family,
flags: GAA_Flags,
_reserved: rawptr,
@@ -232,3 +232,5 @@ foreign iphlpapi {
) -> ULONG ---
}
+
+get_adapters_addresses :: GetAdaptersAddresses \ No newline at end of file
diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin
index e5163bac7..0ad11121e 100644
--- a/core/sys/windows/kernel32.odin
+++ b/core/sys/windows/kernel32.odin
@@ -60,15 +60,15 @@ foreign kernel32 {
// https://learn.microsoft.com/en-us/windows/console/getnumberofconsoleinputevents
GetNumberOfConsoleInputEvents :: proc(hConsoleInput: HANDLE, lpcNumberOfEvents: LPDWORD) -> BOOL ---
- GetConsoleMode :: proc(hConsoleHandle: HANDLE, lpMode: LPDWORD) -> BOOL ---
- SetConsoleMode :: proc(hConsoleHandle: HANDLE, dwMode: DWORD) -> BOOL ---
+ GetConsoleMode :: proc(hConsoleHandle: HANDLE, lpMode: LPDWORD) -> BOOL ---
+ SetConsoleMode :: proc(hConsoleHandle: HANDLE, dwMode: DWORD) -> BOOL ---
SetConsoleCursorPosition :: proc(hConsoleHandle: HANDLE, dwCursorPosition: COORD) -> BOOL ---
- SetConsoleTextAttribute :: proc(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL ---
- GetConsoleCP :: proc() -> CODEPAGE ---
- SetConsoleCP :: proc(wCodePageID: CODEPAGE) -> BOOL ---
- GetConsoleOutputCP :: proc() -> CODEPAGE ---
- SetConsoleOutputCP :: proc(wCodePageID: CODEPAGE) -> BOOL ---
- FlushConsoleInputBuffer :: proc(hConsoleInput: HANDLE) -> BOOL ---
+ SetConsoleTextAttribute :: proc(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL ---
+ GetConsoleCP :: proc() -> CODEPAGE ---
+ SetConsoleCP :: proc(wCodePageID: CODEPAGE) -> BOOL ---
+ GetConsoleOutputCP :: proc() -> CODEPAGE ---
+ SetConsoleOutputCP :: proc(wCodePageID: CODEPAGE) -> BOOL ---
+ FlushConsoleInputBuffer :: proc(hConsoleInput: HANDLE) -> BOOL ---
GetFileInformationByHandle :: proc(hFile: HANDLE, lpFileInformation: LPBY_HANDLE_FILE_INFORMATION) -> BOOL ---
@@ -82,11 +82,11 @@ foreign kernel32 {
dwBufferSize: DWORD) -> BOOL ---
- AddVectoredExceptionHandler :: proc(FirstHandler: ULONG, VectoredHandler: PVECTORED_EXCEPTION_HANDLER) -> LPVOID ---
- AddVectoredContinueHandler :: proc(FirstHandler: ULONG, VectoredHandler: PVECTORED_EXCEPTION_HANDLER) -> LPVOID ---
+ AddVectoredExceptionHandler :: proc(FirstHandler: ULONG, VectoredHandler: PVECTORED_EXCEPTION_HANDLER) -> LPVOID ---
+ AddVectoredContinueHandler :: proc(FirstHandler: ULONG, VectoredHandler: PVECTORED_EXCEPTION_HANDLER) -> LPVOID ---
RemoveVectoredExceptionHandler :: proc(Handle: LPVOID) -> DWORD ---
- RemoveVectoredContinueHandler :: proc(Handle: LPVOID) -> DWORD ---
- RaiseException :: proc(dwExceptionCode, dwExceptionFlags, nNumberOfArguments: DWORD, lpArguments: ^ULONG_PTR) -> ! ---
+ RemoveVectoredContinueHandler :: proc(Handle: LPVOID) -> DWORD ---
+ RaiseException :: proc(dwExceptionCode, dwExceptionFlags, nNumberOfArguments: DWORD, lpArguments: ^ULONG_PTR) -> ! ---
SetUnhandledExceptionFilter :: proc(lpTopLevelExceptionFilter: LPTOP_LEVEL_EXCEPTION_FILTER) -> LPTOP_LEVEL_EXCEPTION_FILTER ---
@@ -103,31 +103,31 @@ foreign kernel32 {
lpFileInformation: LPVOID,
dwBufferSize: DWORD) -> BOOL ---
- InitializeCriticalSection :: proc(CriticalSection: ^CRITICAL_SECTION) ---
+ InitializeCriticalSection :: proc(CriticalSection: ^CRITICAL_SECTION) ---
InitializeCriticalSectionAndSpinCount :: proc(CriticalSection: ^CRITICAL_SECTION, dwSpinCount: DWORD) -> BOOL ---
- EnterCriticalSection :: proc(CriticalSection: ^CRITICAL_SECTION) ---
- TryEnterCriticalSection :: proc(CriticalSection: ^CRITICAL_SECTION) -> BOOLEAN ---
- LeaveCriticalSection :: proc(CriticalSection: ^CRITICAL_SECTION) ---
- DeleteCriticalSection :: proc(CriticalSection: ^CRITICAL_SECTION) ---
-
- RemoveDirectoryW :: proc(lpPathName: LPCWSTR) -> BOOL ---
- SetFileAttributesW :: proc(lpFileName: LPCWSTR, dwFileAttributes: DWORD) -> BOOL ---
- SetLastError :: proc(dwErrCode: DWORD) ---
- GetCommTimeouts :: proc(handle: HANDLE, timeouts: ^COMMTIMEOUTS) -> BOOL ---
- SetCommTimeouts :: proc(handle: HANDLE, timeouts: ^COMMTIMEOUTS) -> BOOL ---
- ClearCommError :: proc(hFile: HANDLE, lpErrors: ^Com_Error, lpStat: ^COMSTAT) -> BOOL ---
- GetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL ---
- SetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL ---
- SetCommMask :: proc(handle: HANDLE, dwEvtMap: DWORD) -> BOOL ---
- GetCommMask :: proc(handle: HANDLE, lpEvtMask: LPDWORD) -> BOOL ---
- WaitCommEvent :: proc(handle: HANDLE, lpEvtMask: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL ---
- GetCommandLineW :: proc() -> LPCWSTR ---
- GetTempPathW :: proc(nBufferLength: DWORD, lpBuffer: LPCWSTR) -> DWORD ---
- GetTempFileNameW :: proc(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: c_int, lpTempFileName: LPWSTR) -> c_uint ---
- GetCurrentProcess :: proc() -> HANDLE ---
+ EnterCriticalSection :: proc(CriticalSection: ^CRITICAL_SECTION) ---
+ TryEnterCriticalSection :: proc(CriticalSection: ^CRITICAL_SECTION) -> BOOLEAN ---
+ LeaveCriticalSection :: proc(CriticalSection: ^CRITICAL_SECTION) ---
+ DeleteCriticalSection :: proc(CriticalSection: ^CRITICAL_SECTION) ---
+
+ RemoveDirectoryW :: proc(lpPathName: LPCWSTR) -> BOOL ---
+ SetFileAttributesW :: proc(lpFileName: LPCWSTR, dwFileAttributes: DWORD) -> BOOL ---
+ SetLastError :: proc(dwErrCode: DWORD) ---
+ GetCommTimeouts :: proc(handle: HANDLE, timeouts: ^COMMTIMEOUTS) -> BOOL ---
+ SetCommTimeouts :: proc(handle: HANDLE, timeouts: ^COMMTIMEOUTS) -> BOOL ---
+ ClearCommError :: proc(hFile: HANDLE, lpErrors: ^Com_Error, lpStat: ^COMSTAT) -> BOOL ---
+ GetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL ---
+ SetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL ---
+ SetCommMask :: proc(handle: HANDLE, dwEvtMap: DWORD) -> BOOL ---
+ GetCommMask :: proc(handle: HANDLE, lpEvtMask: LPDWORD) -> BOOL ---
+ WaitCommEvent :: proc(handle: HANDLE, lpEvtMask: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL ---
+ GetCommandLineW :: proc() -> LPCWSTR ---
+ GetTempPathW :: proc(nBufferLength: DWORD, lpBuffer: LPCWSTR) -> DWORD ---
+ GetTempFileNameW :: proc(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: c_int, lpTempFileName: LPWSTR) -> c_uint ---
+ GetCurrentProcess :: proc() -> HANDLE ---
GetCurrentProcessId :: proc() -> DWORD ---
- GetCurrentThread :: proc() -> HANDLE ---
- GetCurrentThreadId :: proc() -> DWORD ---
+ GetCurrentThread :: proc() -> HANDLE ---
+ GetCurrentThreadId :: proc() -> DWORD ---
GetProcessTimes :: proc(
hProcess: HANDLE,
lpCreationTime: LPFILETIME,
@@ -136,7 +136,7 @@ foreign kernel32 {
lpUserTime: LPFILETIME,
) -> BOOL ---
GetStdHandle :: proc(which: DWORD) -> HANDLE ---
- ExitProcess :: proc(uExitCode: c_uint) -> ! ---
+ ExitProcess :: proc(uExitCode: c_uint) -> ! ---
DeviceIoControl :: proc(
hDevice: HANDLE,
dwIoControlCode: DWORD,
@@ -164,15 +164,15 @@ foreign kernel32 {
dwCreationFlags: DWORD,
lpThreadId: LPDWORD,
) -> HANDLE ---
- SwitchToThread :: proc() -> BOOL ---
- ResumeThread :: proc(thread: HANDLE) -> DWORD ---
- GetThreadPriority :: proc(thread: HANDLE) -> c_int ---
- SetThreadPriority :: proc(thread: HANDLE, priority: c_int) -> BOOL ---
+ SwitchToThread :: proc() -> BOOL ---
+ ResumeThread :: proc(thread: HANDLE) -> DWORD ---
+ GetThreadPriority :: proc(thread: HANDLE) -> c_int ---
+ SetThreadPriority :: proc(thread: HANDLE, priority: c_int) -> BOOL ---
GetThreadDescription :: proc(hThread: HANDLE, ppszThreadDescription: ^PCWSTR) -> HRESULT ---
SetThreadDescription :: proc(hThread: HANDLE, lpThreadDescription: PCWSTR) -> HRESULT ---
- GetExitCodeThread :: proc(thread: HANDLE, exit_code: ^DWORD) -> BOOL ---
- TerminateThread :: proc(thread: HANDLE, exit_code: DWORD) -> BOOL ---
- SuspendThread :: proc(hThread: HANDLE) -> DWORD ---
+ GetExitCodeThread :: proc(thread: HANDLE, exit_code: ^DWORD) -> BOOL ---
+ TerminateThread :: proc(thread: HANDLE, exit_code: DWORD) -> BOOL ---
+ SuspendThread :: proc(hThread: HANDLE) -> DWORD ---
GetProcessAffinityMask :: proc(
hProcess: HANDLE,
@@ -237,17 +237,17 @@ foreign kernel32 {
nsize: DWORD,
args: rawptr,
) -> DWORD ---
- TlsAlloc :: proc() -> DWORD ---
- TlsFree :: proc(dwTlsIndex: DWORD) -> BOOL ---
- TlsGetValue :: proc(dwTlsIndex: DWORD) -> LPVOID ---
- TlsSetValue :: proc(dwTlsIndex: DWORD, lpTlsvalue: LPVOID) -> BOOL ---
- GetLastError :: proc() -> DWORD ---
+ TlsAlloc :: proc() -> DWORD ---
+ TlsFree :: proc(dwTlsIndex: DWORD) -> BOOL ---
+ TlsGetValue :: proc(dwTlsIndex: DWORD) -> LPVOID ---
+ TlsSetValue :: proc(dwTlsIndex: DWORD, lpTlsvalue: LPVOID) -> BOOL ---
+ GetLastError :: proc() -> DWORD ---
QueryPerformanceFrequency :: proc(lpFrequency: ^LARGE_INTEGER) -> BOOL ---
- QueryPerformanceCounter :: proc(lpPerformanceCount: ^LARGE_INTEGER) -> BOOL ---
- GetExitCodeProcess :: proc(hProcess: HANDLE, lpExitCode: LPDWORD) -> BOOL ---
- TerminateProcess :: proc(hProcess: HANDLE, uExitCode: UINT) -> BOOL ---
- OpenProcess :: proc(dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwProcessId: DWORD) -> HANDLE ---
- OpenThread :: proc(dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwThreadId: DWORD) -> HANDLE ---
+ QueryPerformanceCounter :: proc(lpPerformanceCount: ^LARGE_INTEGER) -> BOOL ---
+ GetExitCodeProcess :: proc(hProcess: HANDLE, lpExitCode: LPDWORD) -> BOOL ---
+ TerminateProcess :: proc(hProcess: HANDLE, uExitCode: UINT) -> BOOL ---
+ OpenProcess :: proc(dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwProcessId: DWORD) -> HANDLE ---
+ OpenThread :: proc(dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwThreadId: DWORD) -> HANDLE ---
GetThreadContext :: proc(
hThread: HANDLE,
lpContext: LPCONTEXT,
@@ -366,14 +366,14 @@ foreign kernel32 {
) -> BOOL ---
CompareFileTime :: proc(lpFileTime1: LPFILETIME, lpFileTime2: LPFILETIME) -> LONG ---
- FindFirstFileW :: proc(fileName: LPCWSTR, findFileData: LPWIN32_FIND_DATAW) -> HANDLE ---
- FindNextFileW :: proc(findFile: HANDLE, findFileData: LPWIN32_FIND_DATAW) -> BOOL ---
- FindClose :: proc(findFile: HANDLE) -> BOOL ---
- GetModuleHandleW :: proc(lpModuleName: LPCWSTR) -> HMODULE ---
- GetModuleHandleA :: proc(lpModuleName: LPCSTR) -> HMODULE ---
- GetSystemTimeAsFileTime :: proc(lpSystemTimeAsFileTime: LPFILETIME) ---
- GetSystemTimePreciseAsFileTime :: proc(lpSystemTimeAsFileTime: LPFILETIME) ---
- FileTimeToSystemTime :: proc(lpFileTime: ^FILETIME, lpSystemTime: ^SYSTEMTIME) -> BOOL ---
+ FindFirstFileW :: proc(fileName: LPCWSTR, findFileData: LPWIN32_FIND_DATAW) -> HANDLE ---
+ FindNextFileW :: proc(findFile: HANDLE, findFileData: LPWIN32_FIND_DATAW) -> BOOL ---
+ FindClose :: proc(findFile: HANDLE) -> BOOL ---
+ GetModuleHandleW :: proc(lpModuleName: LPCWSTR) -> HMODULE ---
+ GetModuleHandleA :: proc(lpModuleName: LPCSTR) -> HMODULE ---
+ GetSystemTimeAsFileTime :: proc(lpSystemTimeAsFileTime: LPFILETIME) ---
+ GetSystemTimePreciseAsFileTime :: proc(lpSystemTimeAsFileTime: LPFILETIME) ---
+ FileTimeToSystemTime :: proc(lpFileTime: ^FILETIME, lpSystemTime: ^SYSTEMTIME) -> BOOL ---
SystemTimeToTzSpecificLocalTime :: proc(
lpTimeZoneInformation: ^TIME_ZONE_INFORMATION,
lpUniversalTime: ^SYSTEMTIME,
@@ -428,7 +428,7 @@ foreign kernel32 {
lpTotalBytesAvail: ^u32,
lpBytesLeftThisMessage: ^u32,
) -> BOOL ---
- CancelIo :: proc(handle: HANDLE) -> BOOL ---
+ CancelIo :: proc(handle: HANDLE) -> BOOL ---
CancelIoEx :: proc(hFile: HANDLE, lpOverlapped: LPOVERLAPPED) -> BOOL ---
GetOverlappedResult :: proc(
hFile: HANDLE,
@@ -437,19 +437,19 @@ foreign kernel32 {
bWait: BOOL,
) -> BOOL ---
GetProcessHeap :: proc() -> HANDLE ---
- HeapAlloc :: proc(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T) -> LPVOID ---
- HeapReAlloc :: proc(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID, dwBytes: SIZE_T) -> LPVOID ---
- HeapFree :: proc(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID) -> BOOL ---
+ HeapAlloc :: proc(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T) -> LPVOID ---
+ HeapReAlloc :: proc(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID, dwBytes: SIZE_T) -> LPVOID ---
+ HeapFree :: proc(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID) -> BOOL ---
- LocalAlloc :: proc(flags: UINT, bytes: SIZE_T) -> LPVOID ---
+ LocalAlloc :: proc(flags: UINT, bytes: SIZE_T) -> LPVOID ---
LocalReAlloc :: proc(mem: LPVOID, bytes: SIZE_T, flags: UINT) -> LPVOID ---
- LocalFree :: proc(mem: LPVOID) -> LPVOID ---
+ LocalFree :: proc(mem: LPVOID) -> LPVOID ---
- GlobalAlloc :: proc(flags: UINT, bytes: SIZE_T) -> LPVOID ---
+ GlobalAlloc :: proc(flags: UINT, bytes: SIZE_T) -> LPVOID ---
GlobalReAlloc :: proc(mem: LPVOID, bytes: SIZE_T, flags: UINT) -> LPVOID ---
- GlobalFree :: proc(mem: LPVOID) -> LPVOID ---
+ GlobalFree :: proc(mem: LPVOID) -> LPVOID ---
- GlobalLock :: proc(hMem: HGLOBAL) -> LPVOID ---
+ GlobalLock :: proc(hMem: HGLOBAL) -> LPVOID ---
GlobalUnlock :: proc(hMem: HGLOBAL) -> BOOL ---
ReadDirectoryChangesW :: proc(
@@ -467,16 +467,16 @@ foreign kernel32 {
bWatchSubtree: BOOL,
dwNotifyFilter: DWORD,
) -> HANDLE ---
- FindNextChangeNotification :: proc(hChangeHandle: HANDLE) -> BOOL ---
+ FindNextChangeNotification :: proc(hChangeHandle: HANDLE) -> BOOL ---
FindCloseChangeNotification :: proc(hChangeHandle: HANDLE) -> BOOL ---
InitializeSRWLock :: proc(SRWLock: ^SRWLOCK) ---
AcquireSRWLockExclusive :: proc(SRWLock: ^SRWLOCK) ---
TryAcquireSRWLockExclusive :: proc(SRWLock: ^SRWLOCK) -> BOOLEAN ---
ReleaseSRWLockExclusive :: proc(SRWLock: ^SRWLOCK) ---
- AcquireSRWLockShared :: proc(SRWLock: ^SRWLOCK) ---
- TryAcquireSRWLockShared :: proc(SRWLock: ^SRWLOCK) -> BOOLEAN ---
- ReleaseSRWLockShared :: proc(SRWLock: ^SRWLOCK) ---
+ AcquireSRWLockShared :: proc(SRWLock: ^SRWLOCK) ---
+ TryAcquireSRWLockShared :: proc(SRWLock: ^SRWLOCK) -> BOOLEAN ---
+ ReleaseSRWLockShared :: proc(SRWLock: ^SRWLOCK) ---
InitializeConditionVariable :: proc(ConditionVariable: ^CONDITION_VARIABLE) ---
WakeConditionVariable :: proc(ConditionVariable: ^CONDITION_VARIABLE) ---
@@ -485,42 +485,42 @@ foreign kernel32 {
SleepConditionVariableSRW :: proc(ConditionVariable: ^CONDITION_VARIABLE, SRWLock: ^SRWLOCK, dwMilliseconds: DWORD, Flags: LONG) -> BOOL ---
- GetFileType :: proc(file_handle: HANDLE) -> DWORD ---
- SetFilePointer :: proc(file_handle: HANDLE, distance_to_move: LONG, distance_to_move_high: ^LONG, move_method: DWORD) -> DWORD ---
- GetFileSizeEx :: proc(file_handle: HANDLE, file_size: ^LARGE_INTEGER) -> BOOL ---
- GetFileAttributesW :: proc(lpFileName: LPCWSTR) -> DWORD ---
- GetFileAttributesExW :: proc(lpFileName: LPCWSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID) -> BOOL ---
- GetSystemInfo :: proc(system_info: ^SYSTEM_INFO) ---
- GetVersionExW :: proc(osvi: ^OSVERSIONINFOEXW) ---
- GetSystemDirectoryW :: proc(lpBuffer: LPWSTR, uSize: UINT) -> UINT ---
- GetWindowsDirectoryW :: proc(lpBuffer: LPWSTR, uSize: UINT) -> UINT ---
- GetSystemDefaultLangID :: proc() -> LANGID ---
- GetSystemDefaultLCID :: proc() -> LCID ---
+ GetFileType :: proc(file_handle: HANDLE) -> DWORD ---
+ SetFilePointer :: proc(file_handle: HANDLE, distance_to_move: LONG, distance_to_move_high: ^LONG, move_method: DWORD) -> DWORD ---
+ GetFileSizeEx :: proc(file_handle: HANDLE, file_size: ^LARGE_INTEGER) -> BOOL ---
+ GetFileAttributesW :: proc(lpFileName: LPCWSTR) -> DWORD ---
+ GetFileAttributesExW :: proc(lpFileName: LPCWSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID) -> BOOL ---
+ GetSystemInfo :: proc(system_info: ^SYSTEM_INFO) ---
+ GetVersionExW :: proc(osvi: ^OSVERSIONINFOEXW) ---
+ GetSystemDirectoryW :: proc(lpBuffer: LPWSTR, uSize: UINT) -> UINT ---
+ GetWindowsDirectoryW :: proc(lpBuffer: LPWSTR, uSize: UINT) -> UINT ---
+ GetSystemDefaultLangID :: proc() -> LANGID ---
+ GetSystemDefaultLCID :: proc() -> LCID ---
GetSystemDefaultLocaleName :: proc(lpLocaleName: LPWSTR, cchLocaleName: INT) -> INT ---
- LCIDToLocaleName :: proc(Locale: LCID, lpName: LPWSTR, cchName: INT, dwFlags: DWORD) -> INT ---
- LocaleNameToLCID :: proc(lpName: LPCWSTR, dwFlags: DWORD) -> LCID ---
- SetDllDirectoryW :: proc(lpPathName: LPCWSTR) -> BOOL ---
- AddDllDirectory :: proc(NewDirectory: PCWSTR) -> rawptr ---
- RemoveDllDirectory :: proc(Cookie: rawptr) -> BOOL ---
- LoadLibraryW :: proc(c_str: LPCWSTR) -> HMODULE ---
- LoadLibraryExW :: proc(c_str: LPCWSTR, hFile: HANDLE, dwFlags: LoadLibraryEx_Flags) -> HMODULE ---
- FreeLibrary :: proc(h: HMODULE) -> BOOL ---
- FreeLibraryAndExitThread :: proc(hLibModule: HMODULE, dwExitCode: DWORD) -> VOID ---
- GetProcAddress :: proc(h: HMODULE, c_str: LPCSTR) -> rawptr ---
-
- LoadResource :: proc(hModule: HMODULE, hResInfo: HRSRC) -> HGLOBAL ---
- FreeResource :: proc(hResData: HGLOBAL) -> BOOL ---
- LockResource :: proc(hResData: HGLOBAL) -> LPVOID ---
- SizeofResource :: proc(hModule: HMODULE, hResInfo: HRSRC) -> DWORD ---
- FindResourceW :: proc(hModule: HMODULE, lpName: LPCWSTR, lpType: LPCWSTR) -> HRSRC ---
- FindResourceExW :: proc(hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, wLanguage: LANGID) -> HRSRC ---
- EnumResourceNamesW :: proc(hModule: HMODULE, lpType: LPCWSTR, lpEnumFunc: ENUMRESNAMEPROCW, lParam: LONG_PTR) -> BOOL ---
- EnumResourceNamesExW :: proc(hModule: HMODULE, lpType: LPCWSTR, lpEnumFunc: ENUMRESNAMEPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID) -> BOOL ---
- EnumResourceTypesExW :: proc(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID) -> BOOL ---
- EnumResourceLanguagesExW :: proc(hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, lpEnumFunc: ENUMRESLANGPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID) -> BOOL ---
- LookupIconIdFromDirectory :: proc(presbits: PBYTE, fIcon: BOOL) -> INT ---
+ LCIDToLocaleName :: proc(Locale: LCID, lpName: LPWSTR, cchName: INT, dwFlags: DWORD) -> INT ---
+ LocaleNameToLCID :: proc(lpName: LPCWSTR, dwFlags: DWORD) -> LCID ---
+ SetDllDirectoryW :: proc(lpPathName: LPCWSTR) -> BOOL ---
+ AddDllDirectory :: proc(NewDirectory: PCWSTR) -> rawptr ---
+ RemoveDllDirectory :: proc(Cookie: rawptr) -> BOOL ---
+ LoadLibraryW :: proc(c_str: LPCWSTR) -> HMODULE ---
+ LoadLibraryExW :: proc(c_str: LPCWSTR, hFile: HANDLE, dwFlags: LoadLibraryEx_Flags) -> HMODULE ---
+ FreeLibrary :: proc(h: HMODULE) -> BOOL ---
+ FreeLibraryAndExitThread :: proc(hLibModule: HMODULE, dwExitCode: DWORD) -> VOID ---
+ GetProcAddress :: proc(h: HMODULE, c_str: LPCSTR) -> rawptr ---
+
+ LoadResource :: proc(hModule: HMODULE, hResInfo: HRSRC) -> HGLOBAL ---
+ FreeResource :: proc(hResData: HGLOBAL) -> BOOL ---
+ LockResource :: proc(hResData: HGLOBAL) -> LPVOID ---
+ SizeofResource :: proc(hModule: HMODULE, hResInfo: HRSRC) -> DWORD ---
+ FindResourceW :: proc(hModule: HMODULE, lpName: LPCWSTR, lpType: LPCWSTR) -> HRSRC ---
+ FindResourceExW :: proc(hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, wLanguage: LANGID) -> HRSRC ---
+ EnumResourceNamesW :: proc(hModule: HMODULE, lpType: LPCWSTR, lpEnumFunc: ENUMRESNAMEPROCW, lParam: LONG_PTR) -> BOOL ---
+ EnumResourceNamesExW :: proc(hModule: HMODULE, lpType: LPCWSTR, lpEnumFunc: ENUMRESNAMEPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID) -> BOOL ---
+ EnumResourceTypesExW :: proc(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID) -> BOOL ---
+ EnumResourceLanguagesExW :: proc(hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, lpEnumFunc: ENUMRESLANGPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID) -> BOOL ---
+ LookupIconIdFromDirectory :: proc(presbits: PBYTE, fIcon: BOOL) -> INT ---
LookupIconIdFromDirectoryEx :: proc(presbits: PBYTE, fIcon: BOOL, cxDesired: INT, cyDesired: INT, Flags: UINT) -> INT ---
- CreateIconFromResourceEx :: proc(presbits: PBYTE, dwResSize: DWORD, fIcon: BOOL, dwVer: DWORD, cxDesired: INT, cyDesired: INT, Flags: UINT) -> HICON ---
+ CreateIconFromResourceEx :: proc(presbits: PBYTE, dwResSize: DWORD, fIcon: BOOL, dwVer: DWORD, cxDesired: INT, cyDesired: INT, Flags: UINT) -> HICON ---
GetFullPathNameW :: proc(filename: LPCWSTR, buffer_length: DWORD, buffer: LPCWSTR, file_part: ^LPCWSTR) -> DWORD ---
GetLongPathNameW :: proc(short, long: LPCWSTR, len: DWORD) -> DWORD ---
@@ -533,21 +533,21 @@ foreign kernel32 {
CreatePipe :: proc(hReadPipe, hWritePipe: ^HANDLE, lpPipeAttributes: LPSECURITY_ATTRIBUTES, nSize: DWORD) -> BOOL ---
- ConnectNamedPipe :: proc(hNamedPipe: HANDLE, lpOverlapped: LPOVERLAPPED) -> BOOL ---
+ ConnectNamedPipe :: proc(hNamedPipe: HANDLE, lpOverlapped: LPOVERLAPPED) -> BOOL ---
DisconnectNamedPipe :: proc(hNamedPipe: HANDLE) -> BOOL ---
- WaitNamedPipeW :: proc(lpNamedPipeName: LPCWSTR, nTimeOut: DWORD) -> BOOL ---
-
- AllocConsole :: proc() -> BOOL ---
- AttachConsole :: proc(dwProcessId: DWORD) -> BOOL ---
- SetConsoleCtrlHandler :: proc(HandlerRoutine: PHANDLER_ROUTINE, Add: BOOL) -> BOOL ---
- GenerateConsoleCtrlEvent :: proc(dwCtrlEvent: DWORD, dwProcessGroupId: DWORD) -> BOOL ---
- FreeConsole :: proc() -> BOOL ---
- GetConsoleWindow :: proc() -> HWND ---
+ WaitNamedPipeW :: proc(lpNamedPipeName: LPCWSTR, nTimeOut: DWORD) -> BOOL ---
+
+ AllocConsole :: proc() -> BOOL ---
+ AttachConsole :: proc(dwProcessId: DWORD) -> BOOL ---
+ SetConsoleCtrlHandler :: proc(HandlerRoutine: PHANDLER_ROUTINE, Add: BOOL) -> BOOL ---
+ GenerateConsoleCtrlEvent :: proc(dwCtrlEvent: DWORD, dwProcessGroupId: DWORD) -> BOOL ---
+ FreeConsole :: proc() -> BOOL ---
+ GetConsoleWindow :: proc() -> HWND ---
GetConsoleScreenBufferInfo :: proc(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: PCONSOLE_SCREEN_BUFFER_INFO) -> BOOL ---
SetConsoleScreenBufferSize :: proc(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL ---
- SetConsoleWindowInfo :: proc(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: ^SMALL_RECT) -> BOOL ---
- GetConsoleCursorInfo :: proc(hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO) -> BOOL ---
- SetConsoleCursorInfo :: proc(hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO) -> BOOL ---
+ SetConsoleWindowInfo :: proc(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: ^SMALL_RECT) -> BOOL ---
+ GetConsoleCursorInfo :: proc(hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO) -> BOOL ---
+ SetConsoleCursorInfo :: proc(hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO) -> BOOL ---
GetDiskFreeSpaceExW :: proc(
lpDirectoryName: LPCWSTR,
@@ -561,15 +561,15 @@ foreign kernel32 {
// [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setfilecompletionnotificationmodes)
SetFileCompletionNotificationModes :: proc(FileHandle: HANDLE, Flags: u8) -> BOOL ---
// [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-createiocompletionport)
- CreateIoCompletionPort :: proc(FileHandle: HANDLE, ExistingCompletionPort: HANDLE, CompletionKey: ULONG_PTR, NumberOfConcurrentThreads: DWORD) -> HANDLE ---
+ CreateIoCompletionPort :: proc(FileHandle: HANDLE, ExistingCompletionPort: HANDLE, CompletionKey: ULONG_PTR, NumberOfConcurrentThreads: DWORD) -> HANDLE ---
//[MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-getqueuedcompletionstatus)
- GetQueuedCompletionStatus :: proc(CompletionPort: HANDLE, lpNumberOfBytesTransferred: ^DWORD, lpCompletionKey: PULONG_PTR, lpOverlapped: ^^OVERLAPPED, dwMilliseconds: DWORD) -> BOOL ---
+ GetQueuedCompletionStatus :: proc(CompletionPort: HANDLE, lpNumberOfBytesTransferred: ^DWORD, lpCompletionKey: PULONG_PTR, lpOverlapped: ^^OVERLAPPED, dwMilliseconds: DWORD) -> BOOL ---
// [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-getqueuedcompletionstatusex)
- GetQueuedCompletionStatusEx :: proc(CompletionPort: HANDLE, lpCompletionPortEntries: ^OVERLAPPED_ENTRY, ulCount: c_ulong, ulNumEntriesRemoved: ^c_ulong, dwMilliseconds: DWORD, fAlertable: BOOL) -> BOOL ---
+ GetQueuedCompletionStatusEx :: proc(CompletionPort: HANDLE, lpCompletionPortEntries: ^OVERLAPPED_ENTRY, ulCount: c_ulong, ulNumEntriesRemoved: ^c_ulong, dwMilliseconds: DWORD, fAlertable: BOOL) -> BOOL ---
// [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-postqueuedcompletionstatus)
- PostQueuedCompletionStatus :: proc(CompletionPort: HANDLE, dwNumberOfBytesTransferred: DWORD, dwCompletionKey: c_ulong, lpOverlapped: ^OVERLAPPED) -> BOOL ---
+ PostQueuedCompletionStatus :: proc(CompletionPort: HANDLE, dwNumberOfBytesTransferred: DWORD, dwCompletionKey: c_ulong, lpOverlapped: ^OVERLAPPED) -> BOOL ---
// [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-gethandleinformation)
- GetHandleInformation :: proc(hObject: HANDLE, lpdwFlags: ^DWORD) -> BOOL ---
+ GetHandleInformation :: proc(hObject: HANDLE, lpdwFlags: ^DWORD) -> BOOL ---
RtlCaptureStackBackTrace :: proc(FramesToSkip: ULONG, FramesToCapture: ULONG, BackTrace: [^]PVOID, BackTraceHash: PULONG) -> USHORT ---
RtlNtStatusToDosError :: proc(status: NTSTATUS) -> ULONG ---
@@ -625,44 +625,44 @@ THREAD_PRIORITY_IDLE :: THREAD_BASE_PRIORITY_IDLE
THREAD_MODE_BACKGROUND_BEGIN :: 0x00010000
THREAD_MODE_BACKGROUND_END :: 0x00020000
-PROCESS_ALL_ACCESS :: 0x000F0000 | SYNCHRONIZE | 0xFFFF
-PROCESS_CREATE_PROCESS :: 0x0080
-PROCESS_CREATE_THREAD :: 0x0002
-PROCESS_DUP_HANDLE :: 0x0040
-PROCESS_QUERY_INFORMATION :: 0x0400
+PROCESS_ALL_ACCESS :: 0x000F0000 | SYNCHRONIZE | 0xFFFF
+PROCESS_CREATE_PROCESS :: 0x0080
+PROCESS_CREATE_THREAD :: 0x0002
+PROCESS_DUP_HANDLE :: 0x0040
+PROCESS_QUERY_INFORMATION :: 0x0400
PROCESS_QUERY_LIMITED_INFORMATION :: 0x1000
-PROCESS_SET_INFORMATION :: 0x0200
-PROCESS_SET_QUOTA :: 0x0100
-PROCESS_SUSPEND_RESUME :: 0x0800
-PROCESS_TERMINATE :: 0x0001
-PROCESS_VM_OPERATION :: 0x0008
-PROCESS_VM_READ :: 0x0010
-PROCESS_VM_WRITE :: 0x0020
+PROCESS_SET_INFORMATION :: 0x0200
+PROCESS_SET_QUOTA :: 0x0100
+PROCESS_SUSPEND_RESUME :: 0x0800
+PROCESS_TERMINATE :: 0x0001
+PROCESS_VM_OPERATION :: 0x0008
+PROCESS_VM_READ :: 0x0010
+PROCESS_VM_WRITE :: 0x0020
THREAD_ALL_ACCESS :: \
- THREAD_DIRECT_IMPERSONATION |
- THREAD_GET_CONTEXT |
- THREAD_IMPERSONATE |
- THREAD_QUERY_INFORMATION |
+ THREAD_DIRECT_IMPERSONATION |
+ THREAD_GET_CONTEXT |
+ THREAD_IMPERSONATE |
+ THREAD_QUERY_INFORMATION |
THREAD_QUERY_LIMITED_INFORMATION |
- THREAD_SET_CONTEXT |
- THREAD_SET_INFORMATION |
- THREAD_SET_LIMITED_INFORMATION |
- THREAD_SET_THREAD_TOKEN |
- THREAD_SUSPEND_RESUME |
- THREAD_TERMINATE |
+ THREAD_SET_CONTEXT |
+ THREAD_SET_INFORMATION |
+ THREAD_SET_LIMITED_INFORMATION |
+ THREAD_SET_THREAD_TOKEN |
+ THREAD_SUSPEND_RESUME |
+ THREAD_TERMINATE |
SYNCHRONIZE
-THREAD_DIRECT_IMPERSONATION :: 0x0200
-THREAD_GET_CONTEXT :: 0x0008
-THREAD_IMPERSONATE :: 0x0100
-THREAD_QUERY_INFORMATION :: 0x0040
+THREAD_DIRECT_IMPERSONATION :: 0x0200
+THREAD_GET_CONTEXT :: 0x0008
+THREAD_IMPERSONATE :: 0x0100
+THREAD_QUERY_INFORMATION :: 0x0040
THREAD_QUERY_LIMITED_INFORMATION :: 0x0800
-THREAD_SET_CONTEXT :: 0x0010
-THREAD_SET_INFORMATION :: 0x0020
-THREAD_SET_LIMITED_INFORMATION :: 0x0400
-THREAD_SET_THREAD_TOKEN :: 0x0080
-THREAD_SUSPEND_RESUME :: 0x0002
-THREAD_TERMINATE :: 0x0001
+THREAD_SET_CONTEXT :: 0x0010
+THREAD_SET_INFORMATION :: 0x0020
+THREAD_SET_LIMITED_INFORMATION :: 0x0400
+THREAD_SET_THREAD_TOKEN :: 0x0080
+THREAD_SUSPEND_RESUME :: 0x0002
+THREAD_TERMINATE :: 0x0001
COPY_FILE_FAIL_IF_EXISTS :: 0x00000001
COPY_FILE_RESTARTABLE :: 0x00000002
@@ -701,7 +701,7 @@ FILE_MAP_TARGETS_INVALID :: DWORD(0x40000000)
FILE_MAP_LARGE_PAGES :: DWORD(0x20000000)
LOCKFILE_FAIL_IMMEDIATELY :: DWORD (0x00000001)
-LOCKFILE_EXCLUSIVE_LOCK :: DWORD(0x00000002)
+LOCKFILE_EXCLUSIVE_LOCK :: DWORD(0x00000002)
// Flags for `SetFileCompletionNotificationModes`.
FILE_SKIP_COMPLETION_PORT_ON_SUCCESS :: 0x1
@@ -720,16 +720,16 @@ PAGE_NOCACHE :: 0x200
PAGE_WRITECOMBINE :: 0x400
MEMORY_BASIC_INFORMATION :: struct {
- BaseAddress: PVOID,
- AllocationBase: PVOID,
+ BaseAddress: PVOID,
+ AllocationBase: PVOID,
AllocationProtect: DWORD,
- PartitionId: WORD,
- RegionSize: SIZE_T,
- State: DWORD,
- Protect: DWORD,
- Type: DWORD,
+ PartitionId: WORD,
+ RegionSize: SIZE_T,
+ State: DWORD,
+ Protect: DWORD,
+ Type: DWORD,
}
-PMEMORY_BASIC_INFORMATION :: ^MEMORY_BASIC_INFORMATION
+PMEMORY_BASIC_INFORMATION :: ^MEMORY_BASIC_INFORMATION
LPMEMORY_BASIC_INFORMATION :: ^MEMORY_BASIC_INFORMATION
MEM_COMMIT :: 0x1000
@@ -747,97 +747,97 @@ MEM_4MB_PAGES :: 0x80000000
@(default_calling_convention="system")
foreign kernel32 {
VirtualAlloc :: proc(
- lpAddress: LPVOID,
- dwSize: SIZE_T,
+ lpAddress: LPVOID,
+ dwSize: SIZE_T,
flAllocationType: DWORD,
- flProtect: DWORD,
+ flProtect: DWORD,
) -> LPVOID ---
VirtualProtect :: proc(
- lpAddress: LPVOID,
- dwSize: SIZE_T,
- flNewProtect: DWORD,
+ lpAddress: LPVOID,
+ dwSize: SIZE_T,
+ flNewProtect: DWORD,
lpflOldProtect: PDWORD,
) -> BOOL ---
VirtualFree :: proc(
- lpAddress: LPVOID,
- dwSize: SIZE_T,
+ lpAddress: LPVOID,
+ dwSize: SIZE_T,
dwFreeType: DWORD,
) -> BOOL ---
VirtualQuery :: proc(
lpAddress: LPCVOID,
- lpBuffer: PMEMORY_BASIC_INFORMATION,
- dwLength: SIZE_T,
+ lpBuffer: PMEMORY_BASIC_INFORMATION,
+ dwLength: SIZE_T,
) -> SIZE_T ---
VirtualAllocEx :: proc(
- hProcess: HANDLE,
- lpAddress: LPVOID,
- dwSize: SIZE_T,
+ hProcess: HANDLE,
+ lpAddress: LPVOID,
+ dwSize: SIZE_T,
flAllocationType: DWORD,
- flProtect: DWORD,
+ flProtect: DWORD,
) -> LPVOID ---
VirtualFreeEx :: proc(
- hProcess: HANDLE,
- lpAddress: LPVOID,
- dwSize: SIZE_T,
+ hProcess: HANDLE,
+ lpAddress: LPVOID,
+ dwSize: SIZE_T,
dwFreeType: DWORD,
) -> BOOL ---
VirtualProtectEx :: proc(
- hProcess: HANDLE,
- lpAddress: LPVOID,
- dwSize: SIZE_T,
- flNewProtect: DWORD,
+ hProcess: HANDLE,
+ lpAddress: LPVOID,
+ dwSize: SIZE_T,
+ flNewProtect: DWORD,
lpflOldProtect: PDWORD,
) -> BOOL ---
VirtualQueryEx :: proc(
- hProcess: HANDLE,
+ hProcess: HANDLE,
lpAddress: LPCVOID,
- lpBuffer: PMEMORY_BASIC_INFORMATION,
- dwLength: SIZE_T,
+ lpBuffer: PMEMORY_BASIC_INFORMATION,
+ dwLength: SIZE_T,
) -> SIZE_T ---
ReadProcessMemory :: proc(
- hProcess: HANDLE,
- lpBaseAddress: LPCVOID,
- lpBuffer: LPVOID,
- nSize: SIZE_T,
+ hProcess: HANDLE,
+ lpBaseAddress: LPCVOID,
+ lpBuffer: LPVOID,
+ nSize: SIZE_T,
lpNumberOfBytesRead: ^SIZE_T,
) -> BOOL ---
WriteProcessMemory :: proc(
- hProcess: HANDLE,
- lpBaseAddress: LPVOID,
- lpBuffer: LPCVOID,
- nSize: SIZE_T,
+ hProcess: HANDLE,
+ lpBaseAddress: LPVOID,
+ lpBuffer: LPCVOID,
+ nSize: SIZE_T,
lpNumberOfBytesWritten: ^SIZE_T,
) -> BOOL ---
CreateFileMappingW :: proc(
- hFile: HANDLE,
+ hFile: HANDLE,
lpFileMappingAttributes: LPSECURITY_ATTRIBUTES,
- flProtect: DWORD,
- dwMaximumSizeHigh: DWORD,
- dwMaximumSizeLow: DWORD,
- lpName: LPCWSTR,
+ flProtect: DWORD,
+ dwMaximumSizeHigh: DWORD,
+ dwMaximumSizeLow: DWORD,
+ lpName: LPCWSTR,
) -> HANDLE ---
OpenFileMappingW :: proc(
dwDesiredAccess: DWORD,
- bInheritHandle: BOOL,
- lpName: LPCWSTR,
+ bInheritHandle: BOOL,
+ lpName: LPCWSTR,
) -> HANDLE ---
MapViewOfFile :: proc(
- hFileMappingObject: HANDLE,
- dwDesiredAccess: DWORD,
- dwFileOffsetHigh: DWORD,
- dwFileOffsetLow: DWORD,
+ hFileMappingObject: HANDLE,
+ dwDesiredAccess: DWORD,
+ dwFileOffsetHigh: DWORD,
+ dwFileOffsetLow: DWORD,
dwNumberOfBytesToMap: SIZE_T,
) -> LPVOID ---
MapViewOfFileEx :: proc(
- hFileMappingObject: HANDLE,
- dwDesiredAccess: DWORD,
- dwFileOffsetHigh: DWORD,
- dwFileOffsetLow: DWORD,
+ hFileMappingObject: HANDLE,
+ dwDesiredAccess: DWORD,
+ dwFileOffsetHigh: DWORD,
+ dwFileOffsetLow: DWORD,
dwNumberOfBytesToMap: SIZE_T,
- lpBaseAddress: LPVOID,
+ lpBaseAddress: LPVOID,
) -> LPVOID ---
FlushViewOfFile :: proc(
- lpBaseAddress: LPCVOID,
+ lpBaseAddress: LPCVOID,
dwNumberOfBytesToFlush: SIZE_T,
) -> BOOL ---
UnmapViewOfFile :: proc(
@@ -845,36 +845,36 @@ foreign kernel32 {
) -> BOOL ---
GetLargePageMinimum :: proc() -> SIZE_T ---
GetProcessWorkingSetSizeEx :: proc(
- hProcess: HANDLE,
+ hProcess: HANDLE,
lpMinimumWorkingSetSize: PSIZE_T,
lpMaximumWorkingSetSize: PSIZE_T,
- Flags: PDWORD,
+ Flags: PDWORD,
) -> BOOL ---
SetProcessWorkingSetSizeEx :: proc(
- hProcess: HANDLE,
+ hProcess: HANDLE,
dwMinimumWorkingSetSize: SIZE_T,
dwMaximumWorkingSetSize: SIZE_T,
- Flags: DWORD,
+ Flags: DWORD,
) -> BOOL ---
VirtualLock :: proc(
lpAddress: LPVOID,
- dwSize: SIZE_T,
+ dwSize: SIZE_T,
) -> BOOL ---
VirtualUnlock :: proc(
lpAddress: LPVOID,
- dwSize: SIZE_T,
+ dwSize: SIZE_T,
) -> BOOL ---
GetWriteWatch :: proc(
- dwFlags: DWORD,
- lpBaseAddress: PVOID,
- dwRegionSize: SIZE_T,
- lpAddresses: ^PVOID,
- lpdwCount: ^ULONG_PTR,
+ dwFlags: DWORD,
+ lpBaseAddress: PVOID,
+ dwRegionSize: SIZE_T,
+ lpAddresses: ^PVOID,
+ lpdwCount: ^ULONG_PTR,
lpdwGranularity: LPDWORD,
) -> UINT ---
ResetWriteWatch :: proc(
lpBaseAddress: LPVOID,
- dwRegionSize: SIZE_T,
+ dwRegionSize: SIZE_T,
) -> UINT ---
}
@@ -907,27 +907,27 @@ foreign kernel32 {
GetSystemFileCacheSize :: proc(
lpMinimumFileCacheSize: PSIZE_T,
lpMaximumFileCacheSize: PSIZE_T,
- lpFlags: PDWORD,
+ lpFlags: PDWORD,
) -> BOOL ---
SetSystemFileCacheSize :: proc(
MinimumFileCacheSize: SIZE_T,
MaximumFileCacheSize: SIZE_T,
- Flags: DWORD,
+ Flags: DWORD,
) -> BOOL ---
CreateFileMappingNumaW :: proc(
- hFile: HANDLE,
+ hFile: HANDLE,
lpFileMappingAttributes: LPSECURITY_ATTRIBUTES,
- flProtect: DWORD,
- dwMaximumSizeHigh: DWORD,
- dwMaximumSizeLow: DWORD,
- lpName: LPCWSTR,
- nndPreferred: DWORD,
+ flProtect: DWORD,
+ dwMaximumSizeHigh: DWORD,
+ dwMaximumSizeLow: DWORD,
+ lpName: LPCWSTR,
+ nndPreferred: DWORD,
) -> HANDLE ---
}
WIN32_MEMORY_RANGE_ENTRY :: struct {
VirtualAddress: PVOID,
- NumberOfBytes: SIZE_T,
+ NumberOfBytes: SIZE_T,
}
PWIN32_MEMORY_RANGE_ENTRY :: ^WIN32_MEMORY_RANGE_ENTRY
@@ -935,56 +935,56 @@ PWIN32_MEMORY_RANGE_ENTRY :: ^WIN32_MEMORY_RANGE_ENTRY
@(default_calling_convention="system")
foreign kernel32 {
PrefetchVirtualMemory :: proc(
- hProcess: HANDLE,
- NumberOfEntries: ULONG_PTR,
+ hProcess: HANDLE,
+ NumberOfEntries: ULONG_PTR,
VirtualAddresses: PWIN32_MEMORY_RANGE_ENTRY,
- Flags: ULONG,
+ Flags: ULONG,
) -> BOOL ---
CreateFileMappingFromApp :: proc(
- hFile: HANDLE,
+ hFile: HANDLE,
SecurityAttributes: PSECURITY_ATTRIBUTES,
- PageProtection: ULONG,
- MaximumSize: ULONG64,
- Name: PCWSTR,
+ PageProtection: ULONG,
+ MaximumSize: ULONG64,
+ Name: PCWSTR,
) -> HANDLE ---
MapViewOfFileFromApp :: proc(
hFileMappingObject: HANDLE,
- DesiredAccess: ULONG,
- FileOffset: ULONG64,
+ DesiredAccess: ULONG,
+ FileOffset: ULONG64,
NumberOfBytesToMap: SIZE_T,
) -> PVOID ---
UnmapViewOfFileEx :: proc(
BaseAddress: PVOID,
- UnmapFlags: ULONG,
+ UnmapFlags: ULONG,
) -> BOOL ---
AllocateUserPhysicalPages :: proc(
- hProcess: HANDLE,
+ hProcess: HANDLE,
NumberOfPages: PULONG_PTR,
- PageArray: PULONG_PTR,
+ PageArray: PULONG_PTR,
) -> BOOL ---
FreeUserPhysicalPages :: proc(
- hProcess: HANDLE,
+ hProcess: HANDLE,
NumberOfPages: PULONG_PTR,
- PageArray: PULONG_PTR,
+ PageArray: PULONG_PTR,
) -> BOOL ---
MapUserPhysicalPages :: proc(
VirtualAddress: PVOID,
- NumberOfPages: ULONG_PTR,
- PageArray: PULONG_PTR,
+ NumberOfPages: ULONG_PTR,
+ PageArray: PULONG_PTR,
) -> BOOL ---
AllocateUserPhysicalPagesNuma :: proc(
- hProcess: HANDLE,
+ hProcess: HANDLE,
NumberOfPages: PULONG_PTR,
- PageArray: PULONG_PTR,
- nndPreferred: DWORD,
+ PageArray: PULONG_PTR,
+ nndPreferred: DWORD,
) -> BOOL ---
VirtualAllocExNuma :: proc(
- hProcess: HANDLE,
- lpAddress: LPVOID,
- dwSize: SIZE_T,
+ hProcess: HANDLE,
+ lpAddress: LPVOID,
+ dwSize: SIZE_T,
flAllocationType: DWORD,
- flProtect: DWORD,
- nndPreferred: DWORD,
+ flProtect: DWORD,
+ nndPreferred: DWORD,
) -> LPVOID ---
}
@@ -992,28 +992,20 @@ MEHC_PATROL_SCRUBBER_PRESENT :: ULONG(0x1)
@(default_calling_convention="system")
foreign kernel32 {
- GetMemoryErrorHandlingCapabilities :: proc(
- Capabilities: PULONG,
- ) -> BOOL ---
+ GetMemoryErrorHandlingCapabilities :: proc(Capabilities: PULONG) -> BOOL ---
}
@(default_calling_convention="system")
foreign kernel32 {
- GlobalMemoryStatusEx :: proc(
- lpBuffer: ^MEMORYSTATUSEX,
- ) -> BOOL ---
+ GlobalMemoryStatusEx :: proc(lpBuffer: ^MEMORYSTATUSEX) -> BOOL ---
}
PBAD_MEMORY_CALLBACK_ROUTINE :: #type proc "system" ()
@(default_calling_convention="system")
foreign kernel32 {
- RegisterBadMemoryNotification :: proc(
- Callback: PBAD_MEMORY_CALLBACK_ROUTINE,
- ) -> PVOID ---
- UnregisterBadMemoryNotification :: proc(
- RegistrationHandle: PVOID,
- ) -> BOOL ---
+ RegisterBadMemoryNotification :: proc(Callback: PBAD_MEMORY_CALLBACK_ROUTINE) -> PVOID ---
+ UnregisterBadMemoryNotification :: proc(RegistrationHandle: PVOID) -> BOOL ---
}
OFFER_PRIORITY :: enum c_int {
@@ -1031,33 +1023,33 @@ VmOfferPriorityNormal :: OFFER_PRIORITY.VmOfferPriorityNormal
foreign kernel32 {
OfferVirtualMemory :: proc(
VirtualAddress: PVOID,
- Size: SIZE_T,
- Priority: OFFER_PRIORITY,
+ Size: SIZE_T,
+ Priority: OFFER_PRIORITY,
) -> DWORD ---
ReclaimVirtualMemory :: proc(
VirtualAddress: PVOID,
- Size: SIZE_T,
+ Size: SIZE_T,
) -> DWORD ---
DiscardVirtualMemory :: proc(
VirtualAddress: PVOID,
- Size: SIZE_T,
+ Size: SIZE_T,
) -> DWORD ---
VirtualAllocFromApp :: proc(
- BaseAddress: PVOID,
- Size: SIZE_T,
+ BaseAddress: PVOID,
+ Size: SIZE_T,
AllocationType: ULONG,
- Protection: ULONG,
+ Protection: ULONG,
) -> PVOID ---
VirtualProtectFromApp :: proc(
- Address: PVOID,
- Size: SIZE_T,
+ Address: PVOID,
+ Size: SIZE_T,
NewProtection: ULONG,
OldProtection: PULONG,
) -> BOOL ---
OpenFileMappingFromApp :: proc(
DesiredAccess: ULONG,
InheritHandle: BOOL,
- Name: PCWSTR,
+ Name: PCWSTR,
) -> HANDLE ---
}
@@ -1067,54 +1059,48 @@ WIN32_MEMORY_INFORMATION_CLASS :: enum c_int {
MemoryRegionInfo :: WIN32_MEMORY_INFORMATION_CLASS.MemoryRegionInfo
WIN32_MEMORY_REGION_INFORMATION :: struct {
- AllocationBase: PVOID,
+ AllocationBase: PVOID,
AllocationProtect: ULONG,
- u: WIN32_MEMORY_REGION_INFORMATION_u,
+ using DUMMYUNIONNAME: struct #raw_union {
+ _: [1]u32,
+ Flags: ULONG,
+ using DUMMYSTRUCTNAME: bit_field ULONG {
+ Private: ULONG | 1,
+ MappedDataFile: ULONG | 1,
+ MappedImage: ULONG | 1,
+ MappedPageFile: ULONG | 1,
+ MappedPhysical: ULONG | 1,
+ DirectMapped: ULONG | 1,
+ Reserved: ULONG | 26,
+ },
+ },
RegionSize: SIZE_T,
CommitSize: SIZE_T,
}
-WIN32_MEMORY_REGION_INFORMATION_u :: struct #raw_union {
- u: [1]u32,
- Flags: ULONG,
- s: WIN32_MEMORY_REGION_INFORMATION_u_s,
-}
-WIN32_MEMORY_REGION_INFORMATION_u_s :: struct {
- Bitfield: ULONG,
-}
-WIN32_MEMORY_REGION_INFORMATION_u_s_Bitfield :: distinct ULONG
-/*bit_field #align(align_of(ULONG)) {
- Private : 1-0,
- MappedDataFile : 2-1,
- MappedImage : 3-2,
- MappedPageFile : 4-3,
- MappedPhysical : 5-4,
- DirectMapped : 6-5,
- Reserved : 32-6,
-}*/
@(default_calling_convention="system")
foreign one_core {
QueryVirtualMemoryInformation :: proc(
- Process: HANDLE,
- VirtualAddress: PVOID,
+ Process: HANDLE,
+ VirtualAddress: PVOID,
MemoryInformationClass: WIN32_MEMORY_INFORMATION_CLASS,
- MemoryInformation: PVOID,
- MemoryInformationSize: SIZE_T,
- ReturnSize: PSIZE_T,
+ MemoryInformation: PVOID,
+ MemoryInformationSize: SIZE_T,
+ ReturnSize: PSIZE_T,
) -> BOOL ---
MapViewOfFileNuma2 :: proc(
FileMappingHandle: HANDLE,
- ProcessHandle: HANDLE,
- Offset: ULONG64,
- BaseAddress: PVOID,
- ViewSize: SIZE_T,
- AllocationType: ULONG,
- PageProtection: ULONG,
- PreferredNode: ULONG,
+ ProcessHandle: HANDLE,
+ Offset: ULONG64,
+ BaseAddress: PVOID,
+ ViewSize: SIZE_T,
+ AllocationType: ULONG,
+ PageProtection: ULONG,
+ PreferredNode: ULONG,
) -> PVOID ---
GetCommPorts :: proc(
- lpPortNumbers: PULONG,
- uPortNumbersCount: ULONG,
+ lpPortNumbers: PULONG,
+ uPortNumbersCount: ULONG,
puPortNumbersFound: PULONG,
) -> ULONG ---
}
@@ -1124,12 +1110,12 @@ NUMA_NO_PREFERRED_NODE :: 0xffffffff
MapViewOfFile2 :: #force_inline proc "system" (
FileMappingHandle: HANDLE,
- ProcessHandle: HANDLE,
- Offset: ULONG64,
- BaseAddress: PVOID,
- ViewSize: SIZE_T,
- AllocationType: ULONG,
- PageProtection: ULONG,
+ ProcessHandle: HANDLE,
+ Offset: ULONG64,
+ BaseAddress: PVOID,
+ ViewSize: SIZE_T,
+ AllocationType: ULONG,
+ PageProtection: ULONG,
) -> PVOID {
return MapViewOfFileNuma2(
FileMappingHandle,
@@ -1147,8 +1133,8 @@ MapViewOfFile2 :: #force_inline proc "system" (
foreign kernel32 {
UnmapViewOfFile2 :: proc(
ProcessHandle: HANDLE,
- BaseAddress: PVOID,
- UnmapFlags: ULONG,
+ BaseAddress: PVOID,
+ UnmapFlags: ULONG,
) -> BOOL ---
}
@@ -1159,7 +1145,7 @@ foreign kernel32 {
OSMinorVersion: DWORD,
SpMajorVersion: DWORD,
SpMinorVersion: DWORD,
- product_type: ^Windows_Product_Type,
+ product_type: ^Windows_Product_Type,
) -> BOOL ---
}
@@ -1173,10 +1159,10 @@ LPFIBER_START_ROUTINE :: #type proc "system" (lpFiberParameter: LPVOID)
@(default_calling_convention = "system")
foreign kernel32 {
- CreateFiber :: proc(dwStackSize: SIZE_T, lpStartAddress: LPFIBER_START_ROUTINE, lpParameter: LPVOID) -> LPVOID ---
- DeleteFiber :: proc(lpFiber: LPVOID) ---
+ CreateFiber :: proc(dwStackSize: SIZE_T, lpStartAddress: LPFIBER_START_ROUTINE, lpParameter: LPVOID) -> LPVOID ---
+ DeleteFiber :: proc(lpFiber: LPVOID) ---
ConvertThreadToFiber :: proc(lpParameter: LPVOID) -> LPVOID ---
- SwitchToFiber :: proc(lpFiber: LPVOID) ---
+ SwitchToFiber :: proc(lpFiber: LPVOID) ---
}
LOGICAL_PROCESSOR_RELATIONSHIP :: enum c_int {
@@ -1199,11 +1185,11 @@ PROCESSOR_CACHE_TYPE :: enum c_int {
}
CACHE_DESCRIPTOR :: struct {
- Level: BYTE,
+ Level: BYTE,
Associativity: BYTE,
- LineSize: WORD,
- Size: DWORD,
- Type: PROCESSOR_CACHE_TYPE,
+ LineSize: WORD,
+ Size: DWORD,
+ Type: PROCESSOR_CACHE_TYPE,
}
ProcessorCore :: struct {
@@ -1212,17 +1198,16 @@ ProcessorCore :: struct {
NumaNode :: struct {
NodeNumber: DWORD,
}
-DUMMYUNIONNAME_u :: struct #raw_union {
- Core: ProcessorCore,
- Node: NumaNode,
- Cache: CACHE_DESCRIPTOR,
- Reserved: [2]ULONGLONG,
-}
SYSTEM_LOGICAL_PROCESSOR_INFORMATION :: struct {
ProcessorMask: ULONG_PTR,
- Relationship: LOGICAL_PROCESSOR_RELATIONSHIP,
- using DummyUnion: DUMMYUNIONNAME_u,
+ Relationship: LOGICAL_PROCESSOR_RELATIONSHIP,
+ using DUMMYUNIONNAME: struct #raw_union {
+ ProcessorCore: ProcessorCore `raw_union_tag:"Relationship=RelationProcessorCore"`,
+ NumaNode: NumaNode `raw_union_tag:"Relationship=RelationNumaNode"`,
+ Cache: CACHE_DESCRIPTOR `raw_union_tag:"Relationship=RelationCache"`,
+ Reserved: [2]ULONGLONG,
+ },
}
SYSTEM_POWER_STATUS :: struct {
@@ -1294,6 +1279,6 @@ ACTCTX_FLAG_HMODULE_VALID :: 0x080
@(default_calling_convention="system")
foreign kernel32 {
- CreateActCtxW :: proc(pActCtx: ^ACTCTXW) -> HANDLE ---
+ CreateActCtxW :: proc(pActCtx: ^ACTCTXW) -> HANDLE ---
ActivateActCtx :: proc(hActCtx: HANDLE, lpCookie: ^ULONG_PTR) -> BOOL ---
}