DEFINE_TRACE
DEFINE_TRACE 谓词可以为指定的 API 启用或禁用跟踪,并控制跟踪量。
以下结构描述了 DEFINE_TRACE 谓词使用的谓词控制块 (VCB)。
语法
struct define_trace {
unsigned short opcode;
unsigned char opext;
unsigned char reserv2;
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char reserv3[8];
unsigned char dt_set;
unsigned char appc;
unsigned char reserv4;
unsigned char srpi;
unsigned char sdlc;
unsigned char tkn_rng_dlc;
unsigned char pcnet_dlc;
unsigned char dft;
unsigned char acdi;
unsigned char reserv5;
unsigned char ehllapi;
unsigned char x25_api;
unsigned char x25_dlc;
unsigned char twinax;
unsigned char reserv6;
unsigned char lua_api;
unsigned char etherand;
unsigned char subsym;
unsigned char reserv7[8];
unsigned char reset_trc;
unsigned short trunc;
unsigned short strg_size;
unsigned char reserv8;
unsigned char phys_link[8];
unsigned char reserv9[56];
};
成员
opcode
提供的参数。 该谓词标识操作代码 SV_DEFINE_TRACE。
opext
一个保留字段。
reserv2
一个保留字段。
primary_rc
返回的参数。 指定在谓词完成时由 APPC 设置的主要返回代码。 有效的返回代码因发出的 APPC 谓词而异。 有关此谓词的有效错误代码,请参阅“返回代码”。
secondary_rc
返回的参数。 指定在谓词完成时由 APPC 设置的次要返回代码。 有效的返回代码因发出的 APPC 谓词而异。 有关此谓词的有效错误代码,请参阅“返回代码”。
reserv3
一个保留字段。
dt_set
提供的参数。 设置跟踪状态。
- 如果与特定 API 相关的参数(例如 appc 或 comm_serv)设置为 SV_CHANGE,可以使用 SV_ON 为该 API 启用跟踪 。
- 如果与特定 API 相关的参数设置为 SV_CHANGE,可以使用 SV_OFF 为该 API 禁用跟踪。
appc
提供的参数。 指示是否需要跟踪 APPC。
- 使用 SV_CHANGE 可为 APPC 启用或禁用跟踪,具体取决于 dt_set 参数。
- 使用 SV_IGNORE 可将 APPC 跟踪保持其当前状态。
允许的值会打开或关闭第 0 位;第 1 到 7 位是保留位。
reserv4
一个保留字段。
srpi
提供的参数。 指示是否需要跟踪 SRPI。
- 使用 SV_CHANGE 可为 APPC 启用或禁用跟踪,具体取决于 dt_set 参数。
- 使用 SV_IGNORE 可将 APPC 跟踪保持其当前状态。
sdlc
一个保留字段。
tkn_rng_dlc
一个保留字段。
pcnet_dlc
一个保留字段。
dft
一个保留字段。
acdi
一个保留字段。
reserv5
一个保留字段。
comm_serv
提供的参数。 指示是否需要跟踪 COMM_SERV_API。
- 使用 SV_CHANGE 可为 APPC 启用或禁用跟踪,具体取决于 dt_set 参数。
- 使用 SV_IGNORE 可将 APPC 跟踪保持其当前状态。
ehllapi
一个保留字段。
x25_api
一个保留字段。
x25_dlc
一个保留字段。
twinax
一个保留字段。
reserv6
一个保留字段。
lua_api
一个保留字段。
etherand
一个保留字段。
subsym
一个保留字段。
reserv7
一个保留字段。
reset_trc
提供的参数。 指示是否应重置跟踪文件指针。
- 如果使用 SV_NO,则不会将跟踪文件指针重置为指向跟踪文件的开头。 不会覆盖以前的跟踪记录。
- 如果使用 SV_YES,则会将跟踪文件指针重置为指向跟踪文件的开头。 将覆盖以前的跟踪记录。
trunc
提供的参数。 指定每条跟踪记录的最大字节数。 将截断多余的字节。 如果你不希望截断,请将此值设置为零。
strg_size
一个保留字段。
reserv8
一个保留字段。
phys_link
一个保留字段。
reserv9
一个保留字段。
返回代码
SV_OK
主要返回代码;谓词已成功执行。
SV_PARAMETER_CHECK
主要返回代码;由于参数错误,谓词未执行。
SV_INVALID_RESET_TRACE
次要返回代码;reset_trc 参数包含了无效值。
SV_INVALID_SET
次要返回代码;dt_set 参数包含了无效值。
SV_STATE_CHECK
主要返回代码;谓词未执行,因为它是在无效状态下发出的。
SV_COPY_TRACE_IN_PROGRESS
次要返回代码;先前发出的 COPY_TRACE_TO_FILE 仍在执行中。 使用 DEFINE_TRACE 时跟踪无法处于活动状态。
SV_COMM_SUBSYSTEM_NOT_LOADED
主要返回代码;处理谓词时无法加载或终止某个必需的组件。 因此无法通信。 请联系系统管理员以执行纠正措施。
SV_INVALID_VERB
主要返回代码;opcode 参数与任何谓词的操作代码都不匹配。 未执行任何谓词。
SV_INVALID_VERB_SEGMENT
主要返回代码;VCB 超出了数据段的末尾。
SV_UNEXPECTED_DOS_ERROR
主要返回代码;发生了以下状况之一:
- Microsoft® Windows® 系统在处理谓词时遇到错误。 已通过次要返回代码返回了操作系统返回代码。 如果该问题持续出现,请联系系统管理员执行纠正措施。
- 从另一个应用程序(其中发出的是 Windows SendMessage 函数调用,而不是更常见的 Windows PostMessage 函数调用)调用的消息循环发出了 CSV 。 无法处理谓词。
- 当 SendMessage 调用你的应用程序时发出了 CSV。 可以使用 InSendMessage Windows API 函数调用来确定应用程序是否是通过 SendMessage 调用的 。
备注
有关如何运行和使用跟踪的信息,请参阅相应的产品手册。