Policy DLL Initialization

Every Policy DLL must implement a PolicyDllInit callback function.  This is the only Policy DLL callback function that is called by name. 

The purpose of the PolicyDllInit callback function is to perform Policy DLL initialization.  This initialization must include calling FePolSetPolicyConfiguration to select configuration options and provide FESF pointers to the other callback functions that the Policy DLL supports.

To be able to call FePolSetPolicyConfiguration, the Policy DLL builds an FE_POLICY_CONFIG structure.  This structure is typically allocated on the stack by the Policy DLL.  The structure must be zeroed before use.

Also specified in the FE_POLICY_CONFIG structure are a list of encryption algorithms and options, and a unique handle that will be used by the Policy DLL to identify each specific algorithm/option pair.

Finally, the Policy DLL uses the FE_POLICY_CONFIG structure to describe various “static” behaviors which happen without the Policy DLL being called, either because the Policy Service is not running or because these behaviors need to be configured before the Policy Service starts running.  These include:

      How to handle renames, link creation and transactions when the service is not running.

      Whether the Access Cache is active.

      The names and paths associated with Virtualization filters which need to be outside FESF control.