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).