Вызов SetupWriteTextLogError
SetupWriteTextLogError записывает сведения об ошибке SetupAPI или ошибке Win32 в текстовый журнал SetupAPI. SetupWriteTextLogError записывает две последовательные записи в текстовый журнал: первая запись содержит те же сведения в том же формате, что и в SetupWriteTextLog , а вторая запись регистрирует соответствующий код ошибки и понятное описание ошибки.
Чтобы вызвать SetupWriteTextLogError, приложение предоставляет те же сведения, что и для вызова SetupWriteTextLog , и, кроме того, предоставляет значение ошибки SetupAPI или ошибки Win32.
SetupWriteTextLogError записывает первую запись журнала в следующем формате:
категория **** entry_prefix time_stamp отступ в формате сообщения
SetupWriteTextLogError записывает вторую запись журнала в следующем формате:
категория ** entry_prefix time_stamp отступ **Ошибка:error-number error-description
Где:
Поля entry_prefix, метки времени, категории, отступа и форматированного сообщения совпадают с полями, описанными в разделе Формат текста раздела журнала текста.
Поле error-number содержит номер ошибки.
Поле error-description содержит понятное описание ошибки.
В следующем примере показано, как приложение обычно вызывает SetupWriteTextLogError для записи сведений об ошибке в текстовый журнал. В примере используется ошибка запуска системы. Приложение вызывает SetupWriteTextLogError, предоставляя следующие значения параметров:
LogToken имеет значение маркера журнала, которое было получено путем вызова SetupGetThreadLogToken или является одним из системных значений маркеров журнала, описанных в разделе Маркеры журнала.
Для параметра Категория задано значение TXTLOG_VENDOR, указывающее, что запись журнала сделана приложением, предоставляемым поставщиком. Категории событий описаны в разделе Включение категорий событий для текстового журнала.
LogFlags имеет значение TXTLOG_ERROR. Этот пример не включает метку времени и не изменяет глубину отступа. Текущая глубина отступа ранее была задана в пять текстовых пробелов в монопространстве. Сведения об изменении глубины отступов см. в разделе Запись записей журнала с отступом. Уровни событий описаны в разделе Настройка уровня событий для текстового журнала.
Для параметра Error задано значение кода ошибки Win32, ERROR_SERVICE_ALREADY_RUNNING. Десятичное значение этого кода ошибки равно 1056.
Для параметра MessageStr задано значение TEXT("Start Service: Failed to start service 'SomeService'").
Список параметров, разделенных запятыми, не предоставляется.
Параметры LogToken, Category и LogFlags влияют на работу SetupWriteTextLogError так же, как эти параметры влияют на работу SetupWriteTextLog.
Следующий код вызывает SetupWriteTextLogError для записи записи журнала для этого примера:
//The LogToken value was previously returned by call to
//SetupGetThreadLogToken or one of the system-defined log token values
DWORD Category = TXTLOG_VENDOR;
DWORD Flags = TXTLOG_ERROR ;
DWORD ErrorCode = 1056; // The corresponding Win32 error code
SetupWriteTextLog(LogToken, Category, Flags, ErrorCode, TEXT("Start Service: Failed to start service 'SomeService'"),);
Если категория событий TXTLOG_VENDOR включена и для текстового журнала задан уровень событий TXTLOG_ERROR, этот код создаст запись в текстовом журнале, которая будет иметь следующий формат:
!!! : Start Service: Failed to start service 'SomeService'
!!! : Error 1056: An instance of the service is already running.
Имейте в виду, что SetupWriteTextLogError предоставляет строку "Экземпляр службы уже запущен". Для описания ошибки Win32 со значением 1056.