ICE 102

Validates the MsiServiceConfig and MsiServiceConfigFailureActions tables.

Verifies that the value in the Event column in the MsiServiceConfig and MsiServiceConfigFailureActions tables is msidbServiceConfigEventInstall, msidbServiceConfigEventUninstall, or msidbServiceConfigEventReinstall. Verifies that the value in the Component_ column in the MsiServiceConfig and MsiServiceConfigFailureActions tables is a valid key into the Component Table.

Verifies that the values in the ConfigType column of the MsiServiceConfig table is one of the allowed values.

Verifies that the values in the Actions and the Delayed Actions columns of the MsiServiceConfigFailureActions table are separated by [~]. Verifies that the number of values listed in the Actions column and the number of values listed in the Delayed Actions column in each row of the MsiServiceConfigFailureActions table are the same.

If the value in the ConfigType field in the MsiServiceConfig table is SERVICE_CONFIG_DELAYED_AUTO_START the value in the Argument field must be 0 or 1.

If the value in the ConfigType field in the MsiServiceConfig table is SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO the value in the Argument field must contain a valid string of Privilege Constants.

If the value in the ConfigType field in the MsiServiceConfig table is SERVICE_CONFIG_SERVICE_SID_INFO the value in the Argument field must be SERVICE_SID_TYPE_NONE, SERVICE_SID_TYPE_RESTRICTED, or SERVICE_SID_TYPE_UNRESTRICTED.

If the value in the ConfigType field in the MsiServiceConfig table is SERVICE_CONFIG_PRESHUTDOWN_INFO the value in the Argument field must be positive or empty. If the value in the ConfigType field in the MsiServiceConfig table is SERVICE_CONFIG_FAILURE_ACTIONS_FLAG the value in the Argument field must contain 0 or 1.

Windows Installer 4.5 or earlier: Not supported. This ICE is available beginning with Windows Installer 5.0.

Result

ICE102 posts the following errors.

ICE102 error Description
In the MsiServiceConfig table entry (MsiServiceConfig = )[1], ConfigType =%d is not a valid parameter. It should be between 3 and 7. The Config field of the MsiServiceConfig table does not contain one of the allowed values.
In the MsiServiceConfig table entry (MsiServiceConfig = )[1], Argument =%s is not a valid %s parameter. It should be %s. The Argument field of the MsiServiceConfig table does not contain one of the allowed values.
In the MsiServiceConfigFailureActions table entry (MsiServiceConfigFailureActions = )[1], Actions=[3] is not a valid parameter. It should be a list of null-separated non-negative integers. The Actions field of the MsiServiceConfigFailureActions does not contain an array of positive integers. Separate the values in the array by [~].
In the MsiServiceConfigFailureActions table entry (MsiServiceConfigFailureActions = )[1], DelayActions=[4] is not a valid parameter. It should be a list of null-separated non-negative integers. The DelayActions field of the MsiServiceConfigFailureActions does not contain an array of positive integers. Separate the values in the array by [~].
In the MsiServiceConfigFailureActions table entry (MsiServiceConfigFailureActions = )[1], number of Actions (=%d) is not equal to the number of DelayActions (=%d). They should be equal. The number of elements in the Actions and the DelayActions fields of the MsiServiceConfigFailureActions table are not equal. The number of elements in these arrays should be the same.

 

ICE102 posts the following warnings.

ICE104 warning Description
In the MsiServiceConfig table entry (MsiServiceConfig = )[1], Argument field is left blank. Default preshutdown value of 180000 will be used The time delay is 180000 milliseconds because the Argument field of the MsiServiceConfig table is blank.
In the MsiServiceConfigFailureActions table entry (MsiServiceConfigFailureActions = )[1], ResetPeriod is left blank. It will be replaced with INFINITE. The failure count is never be reset because the ResetPeriod field of the MsiServiceConfigFailureActions is blank.