Confirmed(CPI-C)
확인된 호출(함수 이름 cmcfmd)은 파트너 프로그램의 확인 요청에 회신합니다. 로컬 프로그램에서 수신된 데이터의 오류를 감지하지 못했다고 파트너 프로그램에 알릴 수 있습니다. 확인 요청을 실행하는 프로그램이 확인을 대기하므로 Confirmed 는 두 프로그램의 처리를 동기화합니다.
구문
CM_ENTRY Confirmed(
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
기본 반환 코드; 프로그램이 이 호출을 실행했을 때 대화가 CONFIRM, CONFIRM_SEND 또는 CONFIRM_DEALLOCATE 상태가 아니었습니다.
CM_PRODUCT_SPECIFIC_ERROR
기본 반환 코드; 제품별 오류가 발생하여 제품 오류 로그에 기록되었습니다.
상태 변경
프로그램이 확인됨을 발급할 때 대화는 다음 상태 중 하나여야 합니다.
확인
CONFIRM_SEND
CONFIRM_DEALLOCATE
새 상태는 이전 상태(로컬 프로그램에서 Confirmed를 실행했을 때의 대화 상태)에 의해 결정됩니다. 이전 상태는 이전 Receive 호출의 status_received 값으로 표시됩니다. 다음 표에는 return_code CM_OK 설정되면 가능한 상태 변경이 요약되어 있습니다.
이전 상태 | 새 상태 |
---|---|
확인 | RECEIVE |
CONFIRM_SEND | SEND |
CONFIRM_DEALLOCATE | RESET |
다른 반환 코드로 인해 상태가 변경되지 않습니다.
설명
확인 요청은 파트너 프로그램에서 다음 호출 중 하나에 의해 발급됩니다.
암호 확인 -
Prepare_To_Receive 수신 준비 유형이 CM_PREP_TO_RECEIVE_CONFIRM 또는 CM_PREP_TO_RECEIVE_SYNC_LEVEL 설정되고 대화 동기화 수준이 CM_CONFIRM 설정되었는지 여부입니다.
할당 취소 형식이 CM_DEALLOCATE_CONFIRM 또는 CM_DEALLOCATE_SYNC_LEVEL 설정되고 대화 동기화 수준이 CM_CONFIRM 설정되면 할당을 취소합니다.
다음과 같은 상황에서 Send_Data.
송신 유형이 CM_SEND_AND_CONFIRM 설정됩니다.
보내기 유형은 CM_SEND_AND_PREPARE_TO_RECEIVE 설정되고 수신 준비 형식은 CM_PREPARE_TO_RECEIVE_CONFIRM.
보내기 유형이 CM_SEND_AND_PREPARE_TO_RECEIVE 설정되고, 수신 준비 유형이 CM_PREPARE_TO_RECEIVE_SYNC_LEVEL 설정되고, 동기화 수준이 CM_CONFIRM 설정됩니다.
보내기 형식이 CM_SEND_AND_DEALLOCATE 설정되고 할당 취소 형식이 CM_DEALLOCATE_CONFIRM 설정됩니다.
보내기 유형이 CM_SEND_AND_DEALLOCATE 설정되고, 할당 취소 형식이 CM_DEALLOCATE_SYNC_LEVEL 설정되고, 동기화 수준이 CM_CONFIRM 설정됩니다.
로컬 프로그램에서 Receive의 status_received 매개 변수를 통해 확인 요청을 받습니다. 로컬 프로그램은 status_received 매개 변수가 다음 값 중 하나로 설정된 경우에만 Confirmed를 실행할 수 있습니다.
CM_CONFIRM_RECEIVED
CM_CONFIRM_SEND_RECEIVED
CM_CONFIRM_DEALLOC_RECEIVED