Commit ce9966a39b

daurnimator <quae@daurnimator.com>
2019-11-19 06:39:50
std: improved windows.DeviceIoControl
1 parent b05a5a3
Changed files (2)
lib
lib/std/os/windows/kernel32.zig
@@ -59,7 +59,7 @@ pub extern "kernel32" stdcallcc fn DeviceIoControl(
     nInBufferSize: DWORD,
     lpOutBuffer: ?LPVOID,
     nOutBufferSize: DWORD,
-    lpBytesReturned: LPDWORD,
+    lpBytesReturned: ?*DWORD,
     lpOverlapped: ?*OVERLAPPED,
 ) BOOL;
 
lib/std/os/windows.zig
@@ -132,6 +132,7 @@ pub fn DeviceIoControl(
         overlapped,
     ) == 0) {
         switch (kernel32.GetLastError()) {
+            ERROR.IO_PENDING => if (overlapped == null) unreachable,
             else => |err| return unexpectedError(err),
         }
     }