共用方式為


Request_To_Send (CPI-C)

Request_To_Send呼叫 (函式名稱 cmrts) 會通知合作夥伴計劃本機計劃想要傳送數據。

語法

  
CM_ENTRY Request_To_Send(   
  unsigned char FAR *conversation_ID,    
  CM_INT32 FAR *return_code              
);  

參數

conversation_ID
提供的參數。 指定交談的標識碼。 此參數的值是由 Initialize_ConversationAccept_Conversation 所傳回。

return_code
從這個呼叫傳回的程序代碼。 本主題稍後會列出有效的傳回碼。

回傳代碼

CM_OK
主要傳回碼;已成功執行的呼叫。

CM_OPERATION_NOT_ACCEPTED
主要傳回碼;此交談的上一個作業不完整。

CM_OPERATION_INCOMPLETE
主要傳回碼;作業尚未完成(處理模式僅限非封鎖),仍在進行中。 程式可以發出 Wait_For_Conversation 等候作業完成,或 Cancel_Conversation 取消作業和交談。 如果已呼叫 Specify_Windows_Handle ,應用程式應該等候Microsoft® Windows® 訊息的通知,而不是呼叫 Wait_For_Conversation

CM_PROGRAM_PARAMETER_CHECK
主要傳回碼; conversation_ID 指定的值無效。

CM_PROGRAM_STATE_CHECK
主要傳回碼;交談不在 RECEIVE、SEND、SEND_PENDING、CONFIRM、CONFIRM_SEND或CONFIRM_DEALLOCATE狀態中。

CM_PRODUCT_SPECIFIC_ERROR
主要傳回碼;發生產品特定的錯誤,且已在產品錯誤記錄檔中記錄。

狀態變更

交談可以是下列任何狀態:RECEIVE、SEND、SEND_PENDING、CONFIRM、CONFIRM_SEND或CONFIRM_DEALLOCATE。

沒有狀態變更。

為了回應此要求,合作夥伴計劃可以發出下列其中一個呼叫,將交談變更為 RECEIVE 狀態:

  • 接收 接收類型設定為 CM_RECEIVE_AND_WAIT

  • Prepare_To_Receive

  • 傳送類型設定為 CM_SEND_AND_PREP_TO_RECEIVE的Send_Data

    合作夥伴計劃也可以忽略傳送的要求。

    當本機程式透過後續接收呼叫的 status_received 參數收到下列其中一個值時,交談狀態會變更為 LOCAL 程式的 SEND:

  • CM_SEND_RECEIVED

  • CM_CONFIRM_SEND_RECEIVED和本機程式會回復已 確認 的電話

備註

合作夥伴計畫會透過下列呼叫 的 request_to_send_received 參數接收要求到傳送通知:

  • 已確認

  • 收到

  • Send_Data

  • Send_Error

  • Test_Request_To_Send_Received

    要求到傳送通知會立即傳送至合作夥伴計劃。 CPI-C 不會等到傳送緩衝區填滿或排清為止。 因此,要求到傳送通知可能會不依序傳送。 例如,如果本機程式處於 SEND 狀態,併發出 Prepare_To_Receive 呼叫,後面接著 Request_To_Send 呼叫,則夥伴程式在接收傳送通知之前,可以接收要求到傳送通知。 基於這個理由, request_to_send 可以透過 接收 呼叫向程序回報。

    收到要求傳送通知時,合作夥伴邏輯單元 (LU) 會保留通知,直到合作夥伴發出傳回 request_to_send_received的呼叫為止。 LU 只會針對每個交談保留一個要求到傳送通知。 因此,本機程式可以發出比夥伴交易計劃 (TP) 明確處理更多的 Request_To_Send 呼叫。