콘텐츠로 이동
무료 평가 시작

pdcomm_gem_formatted_program_execution_start

함수

선택된 프로그램의 실행 추적을 시작하고 그 Start 동작을 반환합니다.

PdcommStatus pdcomm_gem_formatted_program_execution_start(PdcommTcpEndpoint *endpoint, const PdcommGemFormattedProgramSelectionToken *selection_token, const PdcommGemFormattedProgramDryRunReportHandle *dry_run_report, PdcommGemFormattedProgramExecutionToken *out_execution_token, PdcommGemFormattedProgramExecutionActionHandle **out_action)

선언 위치: #include <pdcomm_gem_formatted_program_executions.h>

장비 전용입니다. 선택(selection)이 여전히 현재 선택이어야 하고 HSMS 세션이 선택(Selected)된 상태여야 합니다. dry_run_report는 이 엔드포인트에서 만든 것이어야 하고, REJECT가 아니어야 하며, 선택, 기능(capability) 카탈로그의 존재 여부와 리비전, 프로그램 식별 정보와 명령 개수와 여전히 일치해야 합니다.

같은 선택, 보고서, 카탈로그로 START_PENDING 상태인 실행이 있으면, 다른 실행을 시작하지 않고 대기 중인 같은 Start 동작에 대한 새 핸들을 반환합니다.

매개변수

이름설명
endpoint정형 프로그램 조회가 구성된 장비 엔드포인트입니다.
selection_tokenpdcomm_gem_formatted_program_select()가 반환한 토큰입니다.
dry_run_reportpdcomm_gem_formatted_program_dry_run()이 만든 보고서입니다. 읽기만 하며 소유권은 호출자에게 남습니다.
out_execution_tokenstruct_size, version, 0인 reserved로 초기화한 호출자 저장 공간입니다. 성공하면 식별 필드를 기록하고 struct_size는 유지합니다. 실패하면 변경하지 않습니다.
out_actionStart 동작을 받습니다. endpoint가 유효하고 오염(poisoned) 상태가 아니며 두 출력이 모두 NULL이 아니면 먼저 NULL로 설정되므로, 이후의 모든 실패에서 NULL입니다.

반환값

성공하면 #PDCOMM_OK를 반환합니다. 포인터가 NULL이거나 토큰 구조체의 크기, 버전, 예약 필드가 유효하지 않으면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 선택이 현재 선택이 아니거나, 보고서가 다른 엔드포인트에서 왔거나, 시험 실행(dry run) 이후 선택, 카탈로그, 프로그램이 바뀌었으면 #PDCOMM_STALE_TOKEN을 반환합니다. 엔드포인트가 GEM 장비가 아니거나, 정형 프로그램 조회가 구성되지 않았거나, HSMS 세션이 선택되지 않았거나, 시험 실행 결과가 REJECT이거나, 다른 실행이 종료 상태가 아니면 #PDCOMM_INVALID_STATE를 반환합니다. 프로그램이 구성된 한도를 넘거나 카운터가 소진되면 #PDCOMM_LIMIT_EXCEEDED를 반환합니다. 엔드포인트에 준비된 TCP 이벤트(staged event)가 있으면 #PDCOMM_BACKPRESSURE를 반환합니다. 그 밖에 #PDCOMM_ALLOCATION_FAILED와 #PDCOMM_POISONED를 반환할 수 있습니다.

참고

  • 소유권: pdcomm_gem_formatted_program_execution_action_destroy()로 동작(action)을 해제합니다.