Аварійно-ізольовані робочі процеси кодеків

HotPDF може виносити декодування ризикованих зображень DCTDecode, JPXDecode і JBIG2Decode за межі хост-процесу

Режими ізоляції

Після того як доступний робочий процес приймає запит, cimAutomatic не повторює невдале або зловмисне введення в хост-процесі

Межа процесу

Кожен запит декодування виконується у свіжому прихованому процесі, призначеному однопроцесному об'єкту завдання 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 повідомляє статус, ідентифікатор процесу, код завершення, минулі мілісекунди та обмежену хост-сторонню діагностику

GetLastJPEGReducedDecodeInfo повідомляє геометрію джерела, масштабування, виводу та рядка сканування після ізольованого запиту зменшеного JPEG

Окремі статуси охоплюють недоступні або такі, що не запускаються, робочі процеси, тайм-аут, аварійне завершення, відхилення декодування, невідповідність протоколу та межі декодованого виводу

Збірка та розгортання

build-HotPDF-Codec-Worker.cmd

Команда збірки створює окремі робочі процеси Win32 і Win64 у tools\CodecWorker\<platform>\Release; розгорніть робочий процес, що відповідає архітектурі хост-процесу

Пов'язані API