Skip to content

Commit d558101

Browse files
committed
Watch.zig: reintroduce ReadDirectoryChangesW after kernel32 rework
1 parent 9cca1fc commit d558101

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

lib/std/Build/Watch.zig

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,14 +255,25 @@ const Os = switch (builtin.os.tag) {
255255
overlapped: windows.OVERLAPPED,
256256
buffer: [64512]u8 align(@alignOf(windows.FILE_NOTIFY_INFORMATION)) = undefined,
257257

258+
extern "kernel32" fn ReadDirectoryChangesW(
259+
hDirectory: windows.HANDLE,
260+
lpBuffer: [*]align(@alignOf(windows.FILE_NOTIFY_INFORMATION)) u8,
261+
nBufferLength: windows.DWORD,
262+
bWatchSubtree: windows.BOOL,
263+
dwNotifyFilter: windows.DWORD,
264+
lpBytesReturned: ?*windows.DWORD,
265+
lpOverlapped: ?*windows.OVERLAPPED,
266+
lpCompletionRoutine: windows.LPOVERLAPPED_COMPLETION_ROUTINE,
267+
) callconv(windows.WINAPI) windows.BOOL;
268+
258269
fn readChanges(self: *@This()) void {
259270
const notify_filter =
260271
windows.FILE_NOTIFY_CHANGE_CREATION |
261272
windows.FILE_NOTIFY_CHANGE_DIR_NAME |
262273
windows.FILE_NOTIFY_CHANGE_FILE_NAME |
263274
windows.FILE_NOTIFY_CHANGE_LAST_WRITE |
264275
windows.FILE_NOTIFY_CHANGE_SIZE;
265-
const r = windows.kernel32.ReadDirectoryChangesW(self.handle, @ptrCast(&self.buffer), self.buffer.len, 0, notify_filter, null, &self.overlapped, null);
276+
const r = ReadDirectoryChangesW(self.handle, @ptrCast(&self.buffer), self.buffer.len, 0, notify_filter, null, &self.overlapped, null);
266277
assert(r != 0);
267278
}
268279

0 commit comments

Comments
 (0)