Codec worker-и, изолирани при crash

HotPDF може да изнесе декодирането на image-и с висок риск DCTDecode, JPXDecode и JBIG2Decode извън host процеса

Режими на изолация

След като наличен worker приеме заявка, cimAutomatic не повтаря провалени или злонамерени входове в host процеса

Граница на процеса

Всяка заявка за декодиране върви в свеж скрит процес, закачен за single-process 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 докладва статус, идентификатор на процеса, exit код, измили милисекунди и ограничена host-страна диагностика

GetLastJPEGReducedDecodeInfo докладва source, scaled, output и scanline геометрия след изолирана reduced JPEG заявка

Различните статуси обхващат недостъпни или нестартируеми worker-и, timeout, crash, отхвърлено декодиране, несъответствие на протокола и лимити на декодирания изход

Билд и разполагане

build-HotPDF-Codec-Worker.cmd

Билд командата издава отделни Win32 и Win64 worker-и под tools\CodecWorker\<platform>\Release; разположете worker-а, съответстващ на архитектурата на host процеса

Свързани API