Connor McAdams (@cmcadams) commented about dlls/setupapi/tests/devinst.c:
+ for (i = 0; i < ARRAY_SIZE(reg_props); i++) + { + const struct reg_property *prop = ®_props[i]; + DEVPROPKEY key = { DEVPKEY_Device_DeviceDesc.fmtid, prop->reg_prop + 2 }; + DEVPROPTYPE type = DEVPROP_TYPE_EMPTY; + BYTE buf[80] = {0}; + DWORD size = 0; + + winetest_push_context("reg_props[%lu] (%#lx)", i, prop->reg_prop); + SetLastError(0xdeadbeef); + ret = SetupDiSetDeviceRegistryPropertyW(set, &device, prop->reg_prop, prop->reg_value, prop->reg_size); + ok(ret, "Failed to set property, error %#lx.\n", GetLastError()); + ret = SetupDiGetDevicePropertyW(set, &device, &key, &type, buf, sizeof(buf), &size, 0); + todo_wine ok(ret, "Failed to get property, error %#lx.\n", GetLastError()); + todo_wine ok(type == prop->devprop_type, "Got unexpected type %#lx.\n", type); + todo_wine ok(size == prop->devprop_size, "Got unexpected size %lu.\n", size); Since we're setting last error here, it'd be useful to add an extra test to make sure we're clearing it (assuming it's cleared on native).
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/8515#note_109604