Elizabeth Figura (@zfigura) commented about dlls/ntoskrnl.exe/pnp.c:
+ if (!SetupDiOpenDeviceInfoW( set, device_instance_id, NULL, 0, &sp_device )) + { + ERR( "Failed to open device, error %#lx.\n", GetLastError() ); + SetupDiDestroyDeviceInfoList( set ); + return GetLastError(); + } + + if (!SetupDiGetDevicePropertyW( set, &sp_device, property_key, property_type, data, size, required_size, flags )) + { + DWORD err = GetLastError(); + if (err != ERROR_INSUFFICIENT_BUFFER) + ERR( "Failed to get device property, error %#lx.\n", err); + SetupDiDestroyDeviceInfoList( set ); + return GetLastError() == ERROR_SUCCESS + ? (err == ERROR_INSUFFICIENT_BUFFER ? STATUS_BUFFER_TOO_SMALL : err) + : GetLastError(); This is checking the last error from SetupDiDestroyDeviceInfoList(), which I don't think there's really any reason to do. We don't expect that to ever fail.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/6338#note_79625