dmp_compspec 和 dmp_compext 内核服务
用途
指定要包含在转储中的组件和回调参数。
语法
参数
| 项 | 描述 |
|---|---|
| 停靠 | 指向关联的 ldmp_parms_t 数据结构或者指向 ldmp_prepare_t 数据结构。 |
| comp | 指定组件,如标志所指示。 |
| 外标识 | 对于返回标识的 dmp_compspec 内核服务,如果您使用 dmp_compext 内核服务为要转储的组件提供其他参数,那么将指向 dmp_extid_t 类型的项。 然后,可以指定此标识以使用 dmp_compext 内核服务将其他参数添加到组件。 外标识 参数可以为 NULL。 |
| 标志 | 您可以指定以下值:
|
| p1, p2 ... | 指定组件的参数,其中最后一个参数必须为 NULL。 如果指定了关键字参数,那么这些参数必须是字符串,并且包含关键字及其值。 如果单个参数中出现多个关键字和值对,那么将用空格分隔这些关键字和值对。 例如, p1 参数可以是 foo=1234, p2 参数可以是 bar=5678,16。 此外, p1 参数可以是 foo=1234 bar=5678。如果设置了 DCF_LONG 标志,那么将传入两个长类型的参数。 在此情况下, p1 和 p2 参数包含长整型类型的值,并且不能再指定任何参数。 |
描述
dmp_compspec 和 dmp_compext 内核服务提供用于转储的组件及其回调参数。 您只能在实时转储中使用这些内核服务。
在使用 实时转储 内核服务启动实时转储之前,将使用 dmp_compspec 内核服务。 如果某个组件的回调要将另一个组件包括在实时转储中,即,当该回调接收到 RASCD_LDMP_PREPARE 命令时,也可以使用此内核服务。
多个组件可以包含在实时转储中。
dmp_compext 函数用于为组件提供附加参数。
返回值
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 指示成功完成。 |
| einval_ras_dmp_compspec_flags | 指示标志指定的值无效。 |
| Einval_ras_dmp_compspec_comp | 指示该组件规范无效。 |
| EINVAL_RAS_DMP_COMPSPEC_NOTWARE | 指示指定的组件必须支持实时转储。 |
| Einval_ras_dmp_compspec_anchor | 指示该锚点规范无效。 |
| Efault_ras_dmp_compspec_anchor | 指示锚点参数所引用的存储器无效。 |
| efault_ras_dmp_compspec_extid | 指示 外标识 参数所引用的存储无效。 |
| efault_ras_dmp_compspec_parms | 指示一个参数地址无效。 |
| Einval_ras_ldmp_estimate | 指示锚点参数指示转储大小估算请求,但未从进程环境中进行 dmp_compspec 调用。 |
| Einval_ras_dmp_compspec_noadd | 指示无法将组件添加到此转储,即,转储类型标志 ldpr_flags 已设置了 LDT_NOADD 位。 |
| einval_ras_dmp_compspec_failing | 指示已指定了发生故障的组件。 |
| enomem_ras_dmp_compspec | 指示没有可用存储器。 |
| einval_ras_dmp_compext_extid | 指示 外标识 参数未引用有效的组件。 |
| efault_ras_dmp_compext_extid | 指示 外标识 参数所引用的存储无效。 |
| efault_ras_dmp_compext_parms | 指示参数所引用的存储无效。 |
| Ebusy_ras_dmp_compext | 指示此组件的规范已完成,并且无法再添加更多参数。 如果 外标识 参数所指的组件已完成其 RASCD_LDMP_PREPARE 处理,那么会发生此情况。 |
| enomem_ras_dmp_compext | 指示没有可用存储器。 |