驱动程序项目的消息编译器属性

设置 Message Compiler (MC.exe) 工具的属性。编译器生成你可以添加到项目中的消息源文件。

例如,如果你使用 Windows 事件跟踪 (ETW) 内核模式 API 向内核模式驱动程序添加事件跟踪,则你可以使用消息编译器来创建头文件,该文件包含事件提供程序、事件属性、通道以及事件的定义。必须将这个头文件包含在你的源代码中。消息编译器创建你添加到项目文件中的资源编译器脚本 (*.rc)。

设置驱动程序项目的消息编译器属性

  1. 打开驱动程序项目的属性页。在“解决方案资源管理器”中,右键单击驱动程序项目,然后选择“属性”****。
  2. 在驱动程序项目的属性页中,单击“配置属性”,然后单击“消息编译器”****。
  3. 设置项目的属性。

如果你向解决方案中添加消息文本文件 (.mc) 或清单 (.man),则该属性页可用。

选项 描述

其他选项

指定要传递给 Message Compiler (MC.exe) 工具的其他选项。

Ansi 输入文件

指定输入文件包含 ANSI 内容(这是默认设置)。(-a)

Bin 文件中的 Ansi 消息

指定输出 .bin 文件中的消息应为 ANSI。(-A)

基线路径

路径必须指向包含 .BIN 文件(该文件是由基线操作创建的)的文件夹。(-t directory)

基线资源路径

包含基线清单文件的文件夹。(-s directory)

调试输出路径

要在其中放置 .dbg C 包含文件的路径。(-x path)

启用 Callout 宏

添加 callout 宏以在记录时调用用户代码。不可用于 C#,因此被忽略。(-co)

启用调试输出路径

使得编译器能够放置“调试输出路径”属性指定的 .dbg C 包含文件。

所生成头文件的文件扩展名

指定所生成头文件的扩展名。(-e extension)

生成基线资源

创建检测的基线。

生成 C#(托管)日志记录类

生成 C#(托管)日志记录类,其中包括为了将事件记录到清单中而需要调用的方法。(-cs namespace)

生成一个包含计数器名称和 GUID 的头文件。

使用此选项可以指定你希望编译器用来放置所生成的头文件的文件夹。

生成内核模式日志记录宏

生成内核模式日志记录宏(-km)

生成 MOF 文件

为所有功能以及生成的宏生成下级支持。将根据清单生成 MOF 文件。MOF 文件将放在由 -h 选项 (-mof) 指定的位置中。

生成 OLE2 标头

生成 OLE2 头文件。(-o)

生成静态 C#(托管)日志记录类

生成静态 C#(托管)日志记录类,其中包括为了将事件记录到清单中而需要调用的方法。 (-css namespace)

生成用户模式日志记录宏

生成内核模式日志记录宏。(-um)

生成文件的基名称

指定所生成文件的基名称。(-z basename)

所生成的 RC 和二进制消息文件的路径

指定所生成的 RC 和二进制消息文件的路径。

头文件路径

指定所生成头文件的路径。(-h path)

最大消息长度

使用此参数可以在任何消息超过长度字符时,让编译器生成警告。(-m length)

前缀宏名称

使用此参数可以替代编译器用于记录宏名称和方法名称的默认前缀。(-p prefix)

RC 文件路径

你希望编译器用来放置所生成的资源编译器脚本(.rc 文件)和所生成的 .bin 文件的文件夹。(-r path)

从符号名称中删除字符

使用此参数可以删除你为事件指定的符号名称开头的几个字符。(-P prefix)

设置 Customer 位

在整个消息 ID 中设置 Customer 位。(-c)

终止具有 Null 的消息

终止消息表中具有 null 字符的所有字符串。(-n)

Unicode 输入文件

指定输入文件包含 Unicode 内容。(-u)

默认值为 ANSI。

Bin 文件中的 Unicode 消息

指定输出 .bin 文件中的消息应为 Unicode。(-U)

这是默认设置。

使用输入文件的基名称

使用此参数可以让编译器使用输入文件的基名称作为输出 .bin 文件的名称。(-b)

使用十进制值

使用此参数可以针对头文件中的严重性和设备常量使用十进制值,而不使用十六进制值。(-d)

验证基线资源

在以下情况下可以使用此参数:当你创建新版本的清单,并希望对照借助于 -s 选项创建的基线检查它是否与应用程序兼容时。

Verbose

使用此选项可以生成详细的输出。(-v)

 

相关主题

消息编译器 (MC.exe)

WDK 和 Visual Studio 构建环境

消息编译器任务

Windows 事件跟踪 (ETW)