
Dan, I got this when writing the resource setting data related method test case for VSMS. In DMTF cimv216Experimental, we have: uint32 AddResourceSettings(CIM_VSSD REF AffectedConfiguration, string ResourceSettings[], CIM_RASD REF ResultingResourceSettings[], /* out */ CIM_ConcreteJob REF Job); /* out */ uint32 RemoveResourceSettings(CIM_RASD REF ResourceSettings[], CIM_ConcreteJob REF Job); /* out */ But in the VSMS provider, the handlers are defined as follows: static struct method_handler AddResourceSettings = { .name = "AddResourceSettings", .handler = add_resource_settings, .args = {{"AffectedConfiguration", CMPI_string}, /* dmtf mof says CMPI_ref here */ {"ResourceSettings", CMPI_stringA}, ARG_END } }; static struct method_handler RemoveResourceSettings = { .name = "RemoveResourceSettings", .handler = rm_resource_settings, .args = {{"ResourceSettings", CMPI_stringA}, /* dmtf mof says CMPI_refA here */ ARG_END } }; And the three add/modify/remove resource settings method handler are using the same helper function 'update_resource_settings' taking ResourceSettings as embedded instance string array. I think we need some code refactoring here for the three method handlers. -- - Zhengang