Absturzisolierte Codec-Worker

HotPDF kann die risikoreiche Dekodierung von Bildern mit DCTDecode, JPXDecode und JBIG2Decode aus dem Hostprozess auslagern

Isolierungsmodi

Sobald ein verfügbarer Worker eine Anfrage annimmt, versucht cimAutomatic fehlgeschlagene oder bösartige Eingaben nicht erneut im Hostprozess

Prozessgrenze

Jede Dekodieranfrage läuft in einem neuen ausgeblendeten Prozess, der einem Windows Job Object für einen einzelnen Prozess zugewiesen ist

Konfiguration

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;

Ein leerer Wert für CodecWorkerExecutable wird zu HotPDFCodecWorker.exe neben der aktuellen Anwendung aufgelöst

Telemetrie

GetLastCodecWorkerInfo meldet Status, Prozesskennung, Exitcode, vergangene Millisekunden und eine begrenzte hostseitige Diagnose

GetLastJPEGReducedDecodeInfo meldet Quell-, skalierte, Ausgabe- und Scanline-Geometrie nach einer isolierten reduzierten JPEG-Anfrage

Getrennte Statuswerte decken nicht verfügbare oder nicht startbare Worker, Zeitüberschreitung, Absturz, Ablehnung der Dekodierung, Protokollabweichung und Grenzen für dekodierte Ausgabe ab

Build und Bereitstellung

build-HotPDF-Codec-Worker.cmd

Der Build-Befehl erzeugt getrennte Win32- und Win64-Worker unter tools\CodecWorker\<platform>\Release; stellen Sie den zur Architektur des Hostprozesses passenden Worker bereit

Verwandte APIs