Set_Error_Direction调用(函数名称 cmsed)指定程序是在接收数据时还是准备发送数据时检测到错误。
语法
CM_ENTRY Set_Error_Direction(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *error_direction,
CM_INT32 FAR *return_code
);
参数
conversation_ID
提供的参数。 指定会话的标识符。 此参数的值由 Initialize_Conversation 或 Accept_Conversation返回。
error_direction
提供的参数。 指定程序遇到错误时数据流向的方向。 可能的值为:
CM_RECEIVE_ERROR
从合作伙伴计划收到的数据中出错。
CM_SEND_ERROR
本地计划准备将数据发送到合作伙伴计划时出错。
return_code
从此调用返回的代码。 本主题后面列出了有效的返回代码。
返回代码
CM_OK
主要返回代码;调用已成功执行。
CM_PROGRAM_PARAMETER_CHECK
主要返回代码; 由conversation_ID 或 error_direction 指定的值无效。
CM_PRODUCT_SPECIFIC_ERROR
主要返回代码;发生了特定于产品的错误,并且已记录在产品错误日志中。
状态更改
对话可以处于除 RESET 之外的任何状态。
没有状态更改。
注解
此调用将替代 由Initialize_Conversation 或 Accept_Conversation建立的默认错误方向。 默认错误方向为CM_RECEIVE_ERROR。
仅当程序发出处于SEND_PENDING状态的Send_Error时(data_received是非CM_NO_DATA_RECEIVED值)和发送指示器(status_received CM_SEND_RECEIVED)后,错误方向才相关。
当会话处于SEND_PENDING状态时,如果程序检测到收到的数据中的错误,或者本地程序准备发送数据时出错,则程序会发出 Send_Error 。 程序必须在发出Send_Error之前使用Set_Error_Direction提供错误方向信息,因为逻辑单元(LU)无法判断发生哪种错误(接收或发送)。 在后续Set_Error_Direction更改之前,新错误方向将一 直 有效。
发出 Send_Error 后,合作伙伴计划会收到以下返回代码之一:
如果 error_direction设置为CM_RECEIVE_ERROR, 则为CM_PROGRAM_ERROR_PURGING
如果error_direction设置为CM_SEND_ERROR,CM_PROGRAM_ERROR_NO_TRUNC