# The Filter Process Model

By default, Filter runs independently from the calling application process. This is called out-of-process filtering. Out-of-process filtering protects the stability of the calling application in the rare case when a malformed document causes Filter to fail. You can configure Filter to run in the same process as the calling application. This is called in-process filtering. However, Micro Focus strongly recommends that you run Filter out of process whenever possible.

The creation of child processes on UNIX usually adheres to Portable Operating System Interface (POSIX) standards. AIX uses different thread semantics. If required, a version of `kvfilter` with POSIX thread semantics is available for AIX. This file is `kvfilter_nsl.a`. It must be renamed to `kvfilter.a` to be used by Filter.

To monitor and debug filtering operations during out-of-process filtering, you can generate an error log at run time. See Generate an Error Log.

The following functions can run both in process or out of process:

## Filter API

`fpCanFilterFile()` | `fpCanFilterStream()`
`fpFilterFile()` | `fpFilterStream()`
`fpGetDocInfoFile()` | `fpGetDocInfoStream()`
`fpGetOLESummaryInfo()` | `fpGetOLESummaryInfoFile()`
`fpGetRestrictionsFile()` | `fpGetRestrictionsStream()`
`fpGetXmpInfoFile()` | `fpGetXmpInfo()`

## File Extraction API

`fpCloseFile()` | `fpExtractSubFile()`
`fpFreeStruct()` | `fpGetMainFileInfo()`
`fpGetSubFileInfo()` | `fpGetSubFileMetaData()`
`fpOpenFile()` | `KVGetExtractInterface()`

Other Filter API functions always run in process.

_FT_HTML5_bannerTitle.htm