Rémi Bernon (@rbernon) commented about dlls/cfgmgr32/main.c:
return TRUE;
}
-BOOL dev_objects_append_iface( DEV_OBJECT **objects, ULONG *len, const WCHAR *path, DEV_OBJECT_TYPE type, HDEVINFO set,
SP_DEVICE_INTERFACE_DATA *iface_data, ULONG props_len, const DEVPROPCOMPKEY *props,
BOOL all_props )
+static HRESULT dev_object_iface_get_props( DEV_OBJECT *obj, HDEVINFO set, SP_DEVICE_INTERFACE_DATA *iface_data,
ULONG props_len, const DEVPROPCOMPKEY *props, BOOL all_props )
I think there's two approaches there, depending on the answer to the question "Do we really need to implement the async/callback version of this API?".
* No: then you don't need all this.
* Yes: then I'd suggest to start implementing it first, and change the bit of code that's already there before adding more code for properties, so that you don't have to undo all the synchronous code you just added to implement the asynchronous one. Same thing for the tests, you can probably write helpers to test the async API and use them for the sync API, rather than the other way around which requires undoing/moving all the code into helpers after you added it.
Also note that if this is only meant to be used internally, then for future-proofness and performance considerations, implementing only the callback version might be a smarter choice. This would make the implementation of the sync API later fairly easy but you don't need to bother with it now.