aboutsummaryrefslogtreecommitdiff
path: root/lib/std
diff options
context:
space:
mode:
authorVincent Rischmann <vincent@rischmann.fr>2021-04-19 23:14:55 +0200
committerVincent Rischmann <vincent@rischmann.fr>2021-07-29 10:57:08 +0200
commitaccde7fe2d8966ed181af4e819dc73e4d11caef9 (patch)
tree2fb3fb1a5f60e3fc87b331570e135a80d526446e /lib/std
parent0be1e74902e9bfb7dd35d2a3ba927db76f6d67c7 (diff)
downloadzig-accde7fe2d8966ed181af4e819dc73e4d11caef9.tar.gz
zig-accde7fe2d8966ed181af4e819dc73e4d11caef9.zip
windows: add wrappers for LocalFree, SetThreadDescription and GetThreadDescription
Diffstat (limited to 'lib/std')
-rw-r--r--lib/std/os/windows.zig19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig
index cbd4ce065b..04ce433758 100644
--- a/lib/std/os/windows.zig
+++ b/lib/std/os/windows.zig
@@ -1631,6 +1631,10 @@ pub fn HeapDestroy(hHeap: HANDLE) void {
assert(kernel32.HeapDestroy(hHeap) != 0);
}
+pub fn LocalFree(hMem: HLOCAL) void {
+ assert(kernel32.LocalFree(hMem) == null);
+}
+
pub const GetFileInformationByHandleError = error{Unexpected};
pub fn GetFileInformationByHandle(
@@ -2011,6 +2015,21 @@ pub fn unexpectedStatus(status: NTSTATUS) std.os.UnexpectedError {
return error.Unexpected;
}
+pub fn SetThreadDescription(hThread: HANDLE, lpThreadDescription: LPCWSTR) !void {
+ if (kernel32.SetThreadDescription(hThread, lpThreadDescription) == 0) {
+ switch (kernel32.GetLastError()) {
+ else => |err| return unexpectedError(err),
+ }
+ }
+}
+pub fn GetThreadDescription(hThread: HANDLE, ppszThreadDescription: *LPWSTR) !void {
+ if (kernel32.GetThreadDescription(hThread, ppszThreadDescription) == 0) {
+ switch (kernel32.GetLastError()) {
+ else => |err| return unexpectedError(err),
+ }
+ }
+}
+
test "" {
if (builtin.os.tag == .windows) {
_ = @import("windows/test.zig");