Trabajadores de códec aislados frente a bloqueos

HotPDF puede sacar del proceso host la descodificación de imágenes de alto riesgo DCTDecode, JPXDecode y JBIG2Decode

Modos de aislamiento

Una vez que un trabajador disponible acepta una solicitud, cimAutomatic no reintenta en el proceso host la entrada fallida o maliciosa

Límite del proceso

Cada solicitud de descodificación se ejecuta en un proceso oculto nuevo asignado a un objeto de trabajo de Windows de un solo proceso

Configuración

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 vacío se resuelve a HotPDFCodecWorker.exe junto a la aplicación actual

Telemetría

GetLastCodecWorkerInfo informa del estado, el identificador de proceso, el código de salida, los milisegundos transcurridos y un diagnóstico acotado del lado host

GetLastJPEGReducedDecodeInfo informa de la geometría de origen, escalada, de salida y de línea de escaneo después de una solicitud JPEG reducida aislada

Estados distintos cubren trabajadores no disponibles o no iniciables, tiempo de espera, bloqueo, rechazo de descodificación, discrepancia de protocolo y límites de salida descodificada

Compilación e implementación

build-HotPDF-Codec-Worker.cmd

El comando de compilación genera trabajadores Win32 y Win64 independientes en tools\CodecWorker\<platform>\Release; implemente el trabajador que coincida con la arquitectura del proceso host

APIs relacionadas