MI_Result ValidateInfrastructureSchema(_In_ MI_ClassA *miClassArray, _Outptr_result_maybenull_ MI_Instance **extendedError ) { MI_Result r = MI_RESULT_OK; MI_Uint32 xCount = 0, yCount = 0; if( extendedError ) *extendedError = NULL; SetJobId(); DSC_EventWriteValidatingInfrastructureSchema(miClassArray->size); //Validate various infrastructure classes for( xCount = 0 ; xCount < miClassArray->size ; xCount++) { for (yCount = 0; g_InfraSchemaValidators[yCount].wszClassName != NULL; yCount++) { if( Tcscasecmp(miClassArray->data[xCount]->classDecl->name, g_InfraSchemaValidators[yCount].wszClassName) == 0 ) { break; } } if( g_InfraSchemaValidators[yCount].wszClassName == NULL || NitsShouldFault(NitsHere(), NitsAutomatic)) { return GetCimMIError(MI_RESULT_INVALID_PARAMETER, extendedError, ID_MODMAN_VALIDATE_INFRASCHEMA); } r = g_InfraSchemaValidators[yCount].Validator(miClassArray->data[xCount], extendedError); if( r != MI_RESULT_OK) { return r; } } return r; }
void MI_CALL MSFT_DSCLocalConfigurationManager_Invoke_TestConfiguration( _In_opt_ MSFT_DSCLocalConfigurationManager_Self* self, _In_ MI_Context* context, _In_opt_z_ const MI_Char* nameSpace, _In_opt_z_ const MI_Char* className, _In_opt_z_ const MI_Char* methodName, _In_ const MSFT_DSCLocalConfigurationManager* instanceName, _In_opt_ const MSFT_DSCLocalConfigurationManager_TestConfiguration* in) { MI_Instance *cimErrorDetails = NULL; SetJobId(); // Debug Log DSC_EventWriteMSFTMethodParameters(__WFUNCTION__,className,methodName,nameSpace); // If configuration data exists, output error mentioning this is reserved for future use if (in && in->configurationData.exists) { GetCimMIError(MI_RESULT_INVALID_PARAMETER, &cimErrorDetails, ID_LCM_CONF_DATAEXIST); MI_PostCimError(context, cimErrorDetails); MI_Instance_Delete(cimErrorDetails); ResetJobId(); return; } Invoke_TestConfiguration(self, context, nameSpace, className, methodName, instanceName, in); }
void MI_CALL MSFT_DSCLocalConfigurationManager_Invoke_RollBack( _In_opt_ MSFT_DSCLocalConfigurationManager_Self* self, _In_ MI_Context* context, _In_opt_z_ const MI_Char* nameSpace, _In_opt_z_ const MI_Char* className, _In_opt_z_ const MI_Char* methodName, _In_ const MSFT_DSCLocalConfigurationManager* instanceName, _In_opt_ const MSFT_DSCLocalConfigurationManager_RollBack* in) { MI_Instance *cimErrorDetails = NULL; SetJobId(); DSC_EventWriteMSFTMethodParameters(__WFUNCTION__,className,methodName,nameSpace); if (in && in->configurationNumber.exists) { GetCimMIError(MI_RESULT_INVALID_PARAMETER, &cimErrorDetails, ID_LCM_CONF_NUMBEREXIST); MI_PostCimError(context, cimErrorDetails); MI_Instance_Delete(cimErrorDetails); ResetJobId(); return; } //Show up an error if confirm is used. Whatif is supported but not confirm if (IsConfirmUsed(context)) { GetCimMIError(MI_RESULT_INVALID_PARAMETER, &cimErrorDetails, ID_LCM_CONFIRM_NOT_SUPPORTED); MI_PostCimError(context, cimErrorDetails); MI_Instance_Delete(cimErrorDetails); ResetJobId(); return; } Invoke_RollBack(self, context, nameSpace, className, methodName, instanceName, in); }
void MI_CALL MSFT_DSCLocalConfigurationManager_Invoke_GetConfiguration( _In_opt_ MSFT_DSCLocalConfigurationManager_Self* self, _In_ MI_Context* context, _In_opt_z_ const MI_Char* nameSpace, _In_opt_z_ const MI_Char* className, _In_opt_z_ const MI_Char* methodName, _In_ const MSFT_DSCLocalConfigurationManager* instanceName, _In_opt_ const MSFT_DSCLocalConfigurationManager_GetConfiguration* in) { SetJobId(); // Debug Log DSC_EventWriteMSFTMethodParameters(__WFUNCTION__,className,methodName,nameSpace); Invoke_GetConfiguration(self, context, nameSpace, className, methodName, instanceName, in); }
void MI_CALL MSFT_DSCLocalConfigurationManager_Invoke_SendConfiguration( _In_opt_ MSFT_DSCLocalConfigurationManager_Self* self, _In_ MI_Context* context, _In_opt_z_ const MI_Char* nameSpace, _In_opt_z_ const MI_Char* className, _In_opt_z_ const MI_Char* methodName, _In_ const MSFT_DSCLocalConfigurationManager* instanceName, _In_opt_ const MSFT_DSCLocalConfigurationManager_SendConfiguration* in) { SetJobId(); // Debug Log DSC_EventWriteMSFTMethodParameters(__WFUNCTION__,className,methodName,nameSpace); if (!in || !in->ConfigurationData.exists) { MI_Context_PostResult(context, MI_RESULT_INVALID_PARAMETER); ResetJobId(); return; } Invoke_SendConfiguration(self, context, nameSpace, className, methodName, instanceName, in); }
void MI_CALL MSFT_DSCLocalConfigurationManager_Invoke_PerformRequiredConfigurationChecks( _In_opt_ MSFT_DSCLocalConfigurationManager_Self* self, _In_ MI_Context* context, _In_opt_z_ const MI_Char* nameSpace, _In_opt_z_ const MI_Char* className, _In_opt_z_ const MI_Char* methodName, _In_ const MSFT_DSCLocalConfigurationManager* instanceName, _In_opt_ const MSFT_DSCLocalConfigurationManager_PerformRequiredConfigurationChecks* in) { SetJobId(); // Debug Log DSC_EventWriteMSFTMethodParameters(__WFUNCTION__,className,methodName,nameSpace); if (!in->Flags.exists || !(in->Flags.value == TASK_REGULAR || in->Flags.value == TASK_REBOOT || in->Flags.value == TASK_BOOTSTRAP )) { MI_Context_PostResult(context, MI_RESULT_INVALID_PARAMETER); ResetJobId(); return; } Invoke_PerformRequiredConfigurationChecks(self, context, nameSpace, className, methodName, instanceName, in); }