Trabalhadores de codec isolados contra falhas

O HotPDF pode mover a decodificação de imagens de alto risco DCTDecode, JPXDecode e JBIG2Decode para fora do processo host

Modos de isolamento

Uma vez que um trabalhador disponível aceita uma solicitação, cimAutomatic não tenta novamente entrada com falha ou maliciosa no processo host

Limite de processo

Cada solicitação de decodificação é executada em um novo processo oculto atribuído a um Windows Job Object de processo único

Configuração

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;

Um CodecWorkerExecutable vazio resolve para HotPDFCodecWorker.exe ao lado do aplicativo atual

Telemetria

GetLastCodecWorkerInfo relata o status, o identificador de processo, o código de saída, os milissegundos decorridos e um diagnóstico limitado do lado do host

GetLastJPEGReducedDecodeInfo relata geometria de origem, dimensionada, de saída e de linha de varredura após uma solicitação JPEG reduzida isolada

Status distintos cobrem trabalhadores indisponíveis ou não iniciáveis, expiração, falha, rejeição de decodificação, incompatibilidade de protocolo e limites de saída decodificada

Build e implantação

build-HotPDF-Codec-Worker.cmd

O comando de build emite trabalhadores Win32 e Win64 separados sob tools\CodecWorker\<platform>\Release; implante o trabalhador que corresponde à arquitetura do processo host

APIs relacionadas