调用 SetupWriteTextLogError

SetupWriteTextLogError 将有关 SetupAPI 特定错误或 Win32 错误的信息写入 SetupAPI 文本日志SetupWriteTextLogError 将两个连续条目写入文本日志:第一个条目包含与 SetupWriteTextLog 写入的格式相同的信息,第二个条目记录相应的错误代码和错误的用户友好说明。

若要调用 SetupWriteTextLogError,应用程序会提供与调用 SetupWriteTextLog 相同的信息,此外,还会提供特定于 SetupAPI 的错误或 Win32 错误的值。

SetupWriteTextLogError 以以下格式写入第一个日志条目:

entry_prefix time_stamp类别 ****缩进 formatted-message

SetupWriteTextLogError 以以下格式写入第二个日志条目:

entry_prefix time_stamp类别 **indentation **Error:error-number error-description

其中:

  • entry_prefix时间戳类别缩进格式化消息字段与文本日志节正文的格式中所述的字段相同。

  • 错误号字段包含错误号。

  • 错误说明字段包含错误的用户友好说明。

以下示例演示应用程序通常如何调用 SetupWriteTextLogError 来记录文本日志中有关错误的信息。 此示例中使用的错误是系统启动错误。 应用程序调用 SetupWriteTextLogError,并提供以下参数值:

LogTokenCategoryLogFlags 参数影响 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。