ICE 102

Проверяет таблицы MsiServiceConfig и MsiServiceConfigFailureActions .

Проверяет, что значение в столбце Event таблиц MsiServiceConfig и MsiServiceConfigFailureActions равно msidbServiceConfigEventInstall, msidbServiceConfigEventUninstall или msidbServiceConfigEventReinstall. Проверяет, является ли значение в столбце Component_ таблиц MsiServiceConfig и MsiServiceConfigFailureActions допустимым ключом в таблице компонентов.

Проверяет, являются ли значения в столбце ConfigType таблицы MsiServiceConfig одним из допустимых значений.

Проверяет, разделены ли значения в столбцах Actions и Delayed Actions таблицы MsiServiceConfigFailureActions по [~]. Проверяет, что количество значений, перечисленных в столбце Действия, и количество значений, перечисленных в столбце Отложенные действия в каждой строке таблицы MsiServiceConfigFailureActions, совпадают.

Если значение в поле ConfigType таблицы MsiServiceConfig равно SERVICE_CONFIG_DELAYED_AUTO_START значение в поле Аргумент должно быть равно 0 или 1.

Если значение в поле ConfigType таблицы MsiServiceConfig равно SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO значение в поле Argument должно содержать допустимую строку констант привилегий.

Если значение в поле ConfigType таблицы MsiServiceConfig равно SERVICE_CONFIG_SERVICE_SID_INFO значение в поле Аргумент должно быть SERVICE_SID_TYPE_NONE, SERVICE_SID_TYPE_RESTRICTED или SERVICE_SID_TYPE_UNRESTRICTED.

Если значение в поле ConfigType таблицы MsiServiceConfig равно SERVICE_CONFIG_PRESHUTDOWN_INFO значение в поле Аргумент должно быть положительным или пустым. Если значение в поле ConfigType таблицы MsiServiceConfig равно SERVICE_CONFIG_FAILURE_ACTIONS_FLAG значение в поле Аргумент должно содержать 0 или 1.

Установщик Windows 4.5 или более ранней версии: Не поддерживается. Этот ice доступен начиная с установщика Windows 5.0.

Результат

ICE102 публикует следующие ошибки.

Ошибка ICE102 Описание
В записи таблицы MsiServiceConfig (MsiServiceConfig = )[1], ConfigType =%d не является допустимым параметром. Значение должно находиться в диапазоне от 3 до 7. Поле Config таблицы MsiServiceConfig не содержит ни одного из допустимых значений.
В записи таблицы MsiServiceConfig (MsiServiceConfig = )[1] аргумент =%s не является допустимым параметром %s. Это должно быть %s. Поле Argument таблицы MsiServiceConfig не содержит ни одного из допустимых значений.
В записи таблицы MsiServiceConfigFailureActions (MsiServiceConfigFailureActions = )[1], Actions=[3] не является допустимым параметром. Это должен быть список неотрицательных целых чисел с разделителями NULL. Поле Actions объекта MsiServiceConfigFailureActions не содержит массив положительных целых чисел. Разделите значения в массиве по [~].
В записи таблицы MsiServiceConfigFailureActions (MsiServiceConfigFailureActions = )[1], DelayActions=[4] не является допустимым параметром. Это должен быть список неотрицательных целых чисел с разделителями NULL. Поле DelayActions msiServiceConfigFailureActions не содержит массив положительных целых чисел. Разделите значения в массиве по [~].
В записи таблицы MsiServiceConfigFailureActions (MsiServiceConfigFailureActions = )[1] число действий (=%d) не равно числу объектов DelayActions (=%d). Они должны быть равными. Количество элементов в полях Actions и DelayActions таблицы MsiServiceConfigFailureActions не равно. Количество элементов в этих массивах должно быть одинаковым.

 

ICE102 публикует следующие предупреждения.

Предупреждение ICE104 Описание
В записи таблицы MsiServiceConfig (MsiServiceConfig = )[1] поле Аргумент остается пустым. Будет использоваться значение предварительного завершения по умолчанию 180000 Задержка времени составляет 180 000 миллисекунда, так как поле Argument таблицы MsiServiceConfig пусто.
В записи таблицы MsiServiceConfigFailureActions (MsiServiceConfigFailureActions = )[1], ResetPeriod остается пустым. Он будет заменен на INFINITE. Число сбоев никогда не сбрасывается, так как поле ResetPeriod msiServiceConfigFailureActions пусто.