クラッシュ分離コーデックワーカー

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 は、分離された縮小 JPEG リクエストの後、ソース、スケーリング、出力、スキャンラインのジオメトリを報告します

個別のステータスは、利用不可または起動不可のワーカー、タイムアウト、クラッシュ、デコード拒否、プロトコル不一致、デコード出力制限をカバーします

ビルドとデプロイ

build-HotPDF-Codec-Worker.cmd

ビルドコマンドは、tools\CodecWorker\<platform>\Release の下に別々の Win32 および Win64 ワーカーを出力します。ホストプロセスアーキテクチャに一致するワーカーをデプロイしてください

関連 API