Worker-e codec izolate la crash

HotPDF poate muta decodarea imaginilor cu risc ridicat DCTDecode, JPXDecode și JBIG2Decode în afara procesului gazdă

Moduri de izolare

Odată ce un worker disponibil acceptă o cerere, cimAutomatic nu reîncearcă intrarea eșuată sau rău intenționată în procesul gazdă

Granița procesului

Fiecare cerere de decodare rulează într-un proces ascuns nou atribuit unui Windows Job Object cu un singur proces

Configuration

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;

Un CodecWorkerExecutable gol se rezolvă la HotPDFCodecWorker.exe lângă aplicația curentă

Telemetry

GetLastCodecWorkerInfo raportează starea, identificatorul procesului, codul de ieșire, milisecundele scurse și o diagnosticare mărginită de partea gazdei

GetLastJPEGReducedDecodeInfo raportează geometria sursei, a imaginii scalate, a ieșirii și a liniilor de scanare după o cerere izolată de JPEG redus

Stări distincte acoperă worker-i indisponibili sau nelansabili, timeout, crash, respingerea decodării, nepotrivirea protocolului și limitele ieșirii decodate

Construire și implementare

build-HotPDF-Codec-Worker.cmd

Comanda de construire emite worker-i separați Win32 și Win64 sub tools\CodecWorker\<platform>\Release; implementați worker-ul care corespunde arhitecturii procesului gazdă

API-uri conexe