Connor McAdams (@cmcadams) commented about dlls/setupapi/tests/devinst.c:
const struct reg_property *prop = ®_props[i];
BOOL todo = prop->reg_prop != SPDRP_CLASSGUID;
DWORD size = 0, type = 0;
DEVPROPKEY key;
BYTE buf[80];
key.fmtid = DEVPKEY_Device_DeviceDesc.fmtid;
key.pid = prop->reg_prop + 2;
memset(buf, 0, sizeof(buf));
winetest_push_context("reg_props[%lu] (%#lx)", i, prop->reg_prop);
SetLastError(0xdeadbeef);
ret = pSetupDiSetDevicePropertyW(set, &device_data, &key, prop->devprop_type, prop->devprop_value,
prop->devprop_size, 0);
ok(ret, "Failed to set property, error %#lx.\n", GetLastError());
We should check if `GetLastError()` has the error value we set, or if it's cleared.