Flush 呼叫(函式名稱 cmflus)會將本地邏輯單元(LU)的 send buffer 內容傳送給合作夥伴的 LU(及程式)。 如果傳送緩衝區為空,則不會發生任何動作。
語法
CM_ENTRY Flush(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *return_code
);
參數
conversation_ID
提供的參數。 指定對話的識別碼。 此參數的值以 Initialize_Conversation 或 Accept_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
主要退稅代碼;程式發出此通話時,對話狀態未達 SEND 或 SEND_PENDING。
CM_PRODUCT_SPECIFIC_ERROR
主要退稅代碼;發生了產品特定的錯誤,並已記錄在產品錯誤日誌中。
州際變動
對話必須在SEND或SEND_PENDING狀態下進行。
如果通話成功完成(return_code CM_OK),對話進入 SEND 狀態。
其他返回碼則不會改變狀態。
備註
Send_Data處理的資料會累積在本地 LU 傳送緩衝區,直到以下情況之一發生:
本地程式會發出 Flush 呼叫或其他呼叫來清除 LU 傳送緩衝區。 (部分傳送類型由 Set_Send_Type設定,包含 flush 功能。)
緩衝區已滿。
由 Allocate 產生的配置請求與 Send_Error 產生的錯誤資訊也會被緩衝。