Commit accde7fe2d

Vincent Rischmann <vincent@rischmann.fr>
2021-04-19 23:14:55
windows: add wrappers for LocalFree, SetThreadDescription and GetThreadDescription
1 parent 0be1e74
Changed files (1)
lib
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");