diff --git a/src/serial.zig b/src/serial.zig index cc17db2..31959c2 100644 --- a/src/serial.zig +++ b/src/serial.zig @@ -234,12 +234,12 @@ const WindowsInformationIterator = struct { var port_length: std.os.windows.DWORD = std.os.windows.NAME_MAX; var data_type: std.os.windows.DWORD = 0; - const result = std.os.windows.advapi32.RegQueryValueExW( + const result = RegQueryValueExA( hkey, - std.unicode.utf8ToUtf16LeStringLiteral(key_token), + @as(std.os.windows.LPSTR, @ptrCast(@constCast(key_token))), null, &data_type, - @as(?*std.os.windows.BYTE, @ptrCast(port_name)), + port_name, &port_length, ); @@ -256,12 +256,12 @@ const WindowsInformationIterator = struct { var data_type: std.os.windows.DWORD = 0; var bytes_required: std.os.windows.DWORD = std.os.windows.MAX_PATH; - const result = SetupDiGetDeviceRegistryPropertyW( + const result = SetupDiGetDeviceRegistryPropertyA( device_info_set.*, device_info_data, @intFromEnum(property), &data_type, - @as(?*std.os.windows.BYTE, @ptrCast(property_str)), + property_str, std.os.windows.NAME_MAX, &bytes_required, ); @@ -405,6 +405,14 @@ extern "advapi32" fn RegEnumValueA( lpData: [*]std.os.windows.BYTE, lpcbData: *std.os.windows.DWORD, ) callconv(std.os.windows.WINAPI) std.os.windows.LSTATUS; +extern "advapi32" fn RegQueryValueExA( + hKey: HKEY, + lpValueName: std.os.windows.LPSTR, + lpReserved: ?*std.os.windows.DWORD, + lpType: ?*std.os.windows.DWORD, + lpData: ?[*]std.os.windows.BYTE, + lpcbData: ?*std.os.windows.DWORD, +) callconv(std.os.windows.WINAPI) std.os.windows.LSTATUS; extern "setupapi" fn SetupDiGetClassDevsW( classGuid: ?*const std.os.windows.GUID, enumerator: ?std.os.windows.PCWSTR, @@ -425,12 +433,12 @@ extern "setupapi" fn SetupDiOpenDevRegKey( keyType: std.os.windows.DWORD, samDesired: std.os.windows.REGSAM, ) callconv(std.os.windows.WINAPI) HKEY; -extern "setupapi" fn SetupDiGetDeviceRegistryPropertyW( +extern "setupapi" fn SetupDiGetDeviceRegistryPropertyA( hDevInfo: HDEVINFO, pSpDevInfoData: *SP_DEVINFO_DATA, property: std.os.windows.DWORD, propertyRegDataType: ?*std.os.windows.DWORD, - propertyBuffer: ?*std.os.windows.BYTE, + propertyBuffer: ?[*]std.os.windows.BYTE, propertyBufferSize: std.os.windows.DWORD, requiredSize: ?*std.os.windows.DWORD, ) callconv(std.os.windows.WINAPI) std.os.windows.BOOL;