Set_Error_Direction (CPI-C)

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_ConversationAccept_Conversation 返回。

error_direction
提供的参数。 指定程序遇到错误时数据流动的方向。 可能的值为:

  • CM_RECEIVE_ERROR

    从合作伙伴计划收到的数据中出错。

  • CM_SEND_ERROR

    本地计划准备将数据发送到合作伙伴计划时出错。

    return_code
    从此调用返回的代码。 本主题后面列出了有效的返回代码。

返回代码

CM_OK
主返回代码;调用已成功执行。

CM_PROGRAM_PARAMETER_CHECK
主返回代码; 由 conversation_IDerror_direction 指定的值无效。

CM_PRODUCT_SPECIFIC_ERROR
主返回代码;发生特定于产品的错误,并且已记录在产品错误日志中。

状态更改

会话可以处于除 RESET 之外的任何状态。

没有状态更改。

注解

此调用将替代 Initialize_ConversationAccept_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