충돌 격리 코덱 워커

HotPDF는 위험도가 높은 DCTDecode, JPXDecode, JBIG2Decode 이미지 디코딩을 호스트 프로세스 밖으로 옮길 수 있습니다

격리 모드

사용 가능한 워커가 요청을 수락하면 cimAutomatic은 실패하거나 악성인 입력을 호스트 프로세스에서 재시도하지 않습니다

프로세스 경계

각 디코드 요청은 단일 프로세스 Windows Job Object에 할당된 새 숨겨진 프로세스에서 실행됩니다

구성

PDF.CodecIsolationMode := cimRequired;
PDF.CodecWorkerExecutable :=
  'C:\Program Files\MyApp\HotPDFCodecWorker.exe';
PDF.CodecWorkerTimeoutMilliseconds := 5000;
PDF.CodecWorkerMemoryLimitBytes := 256 * 1024 * 1024;

Bitmap := PDF.ExtractLoadedImage(0);
if Bitmap = nil then
begin
  PDF.GetLastCodecWorkerInfo(Info);
  Writeln(Ord(Info.Status), ': ', Info.ErrorMessage);
end;

빈 CodecWorkerExecutable은 현재 응용 프로그램 옆의 HotPDFCodecWorker.exe로 해석됩니다

텔레메트리

GetLastCodecWorkerInfo는 상태, 프로세스 식별자, 종료 코드, 경과 밀리초, 제한된 호스트 측 진단을 보고합니다

GetLastJPEGReducedDecodeInfo는 격리된 reduced JPEG 요청 후 소스, 배율 조정, 출력, 스캔라인 지오메트리를 보고합니다

구별되는 상태는 사용 불가 또는 시작 불가 워커, 시간 초과, 충돌, 디코드 거부, 프로토콜 불일치, 디코딩 출력 한도를 다룹니다

빌드 및 배포

build-HotPDF-Codec-Worker.cmd

빌드 명령은 tools\CodecWorker\<platform>\Release 아래에 별도의 Win32 및 Win64 워커를 생성합니다. 호스트 프로세스 아키텍처에 맞는 워커를 배포하십시오

관련 API