From f6bf88d184349cadcdd0c65476921b349510c757 Mon Sep 17 00:00:00 2001 From: FourteenBrush <74827262+FourteenBrush@users.noreply.github.com> Date: Thu, 4 Sep 2025 00:38:51 +0200 Subject: [PATCH 1/4] Add `CancelIoEx` to kernel32.odin --- core/sys/windows/kernel32.odin | 1 + 1 file changed, 1 insertion(+) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index 114e70b41..99064df60 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -413,6 +413,7 @@ foreign kernel32 { lpBytesLeftThisMessage: ^u32, ) -> BOOL --- CancelIo :: proc(handle: HANDLE) -> BOOL --- + CancelIoEx :: proc(hFile: HANDLE, lpOverlapped: LPOVERLAPPED) -> BOOL --- GetOverlappedResult :: proc( hFile: HANDLE, lpOverlapped: LPOVERLAPPED, From 9aabe7526250045fdc914379de74488d92c123c2 Mon Sep 17 00:00:00 2001 From: FourteenBrush <74827262+FourteenBrush@users.noreply.github.com> Date: Fri, 5 Sep 2025 00:34:44 +0200 Subject: [PATCH 2/4] Add `ERROR_NOT_FOUND` Returned by `CancelIoEx` when cancelled number or io completions was 0. Was for some reason defined in `core:os`, but not in win32 pkg. Ref: https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--1000-1299- --- core/sys/windows/winerror.odin | 1 + 1 file changed, 1 insertion(+) diff --git a/core/sys/windows/winerror.odin b/core/sys/windows/winerror.odin index 05ab3d028..fee04fdc4 100644 --- a/core/sys/windows/winerror.odin +++ b/core/sys/windows/winerror.odin @@ -225,6 +225,7 @@ ERROR_ENVVAR_NOT_FOUND : DWORD : 203 ERROR_OPERATION_ABORTED : DWORD : 995 ERROR_IO_PENDING : DWORD : 997 ERROR_NO_UNICODE_TRANSLATION : DWORD : 1113 +ERROR_NOT_FOUND : DWORD : 1168 ERROR_TIMEOUT : DWORD : 1460 ERROR_DATATYPE_MISMATCH : DWORD : 1629 ERROR_UNSUPPORTED_TYPE : DWORD : 1630 From 64e96527765281c80b0e93b052148f62eaa01bda Mon Sep 17 00:00:00 2001 From: FourteenBrush <74827262+FourteenBrush@users.noreply.github.com> Date: Tue, 9 Sep 2025 14:04:36 +0200 Subject: [PATCH 3/4] Add `RtlNtStatusToDosError` Maps kernel NTSTATUS to win32 system error --- core/sys/windows/kernel32.odin | 1 + 1 file changed, 1 insertion(+) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index 99064df60..ff27cf795 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -555,6 +555,7 @@ foreign kernel32 { GetHandleInformation :: proc(hObject: HANDLE, lpdwFlags: ^DWORD) -> BOOL --- RtlCaptureStackBackTrace :: proc(FramesToSkip: ULONG, FramesToCapture: ULONG, BackTrace: [^]PVOID, BackTraceHash: PULONG) -> USHORT --- + RtlNtStatusToDosError :: proc(status: NTSTATUS) -> ULONG --- GetSystemPowerStatus :: proc(lpSystemPowerStatus: ^SYSTEM_POWER_STATUS) -> BOOL --- } From fb1dd3052d92a8e8b8de6aca9c74c482cfac30bf Mon Sep 17 00:00:00 2001 From: FourteenBrush <74827262+FourteenBrush@users.noreply.github.com> Date: Tue, 9 Sep 2025 14:11:38 +0200 Subject: [PATCH 4/4] Add `RtlNtStatusToDosError` `ERROR_MR_MID_NOT_FOUND` error --- core/sys/windows/winerror.odin | 1 + 1 file changed, 1 insertion(+) diff --git a/core/sys/windows/winerror.odin b/core/sys/windows/winerror.odin index fee04fdc4..23467761d 100644 --- a/core/sys/windows/winerror.odin +++ b/core/sys/windows/winerror.odin @@ -222,6 +222,7 @@ ERROR_LOCK_FAILED : DWORD : 167 ERROR_ALREADY_EXISTS : DWORD : 183 ERROR_NO_DATA : DWORD : 232 ERROR_ENVVAR_NOT_FOUND : DWORD : 203 +ERROR_MR_MID_NOT_FOUND : DWORD : 317 ERROR_OPERATION_ABORTED : DWORD : 995 ERROR_IO_PENDING : DWORD : 997 ERROR_NO_UNICODE_TRANSLATION : DWORD : 1113