diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig index 4249205a346625a3dbf7380d8a5038cfa7068979..346eab7915ef5c70e5910a1235cd08afaaab28fb 100644 --- a/lib/std/os/windows.zig +++ b/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), } } diff --git a/lib/std/os/windows/kernel32.zig b/lib/std/os/windows/kernel32.zig index 82dd03b82942113258a393aee7b3c3d86f1d64a7..954261bd1b406fa143b900b713379280dab94a5b 100644 --- a/lib/std/os/windows/kernel32.zig +++ b/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;