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