Using the Fax Extension Configuration API

The Fax Service Extension Configuration API provides persistent, secure storage for fax extension configuration data. Using the configuration persistence mechanism, fax extension DLLs such as fax service providers (FSPs) and routing extensions can retrieve and set fax device configuration data in a location-independent manner, and can register for and receive notifications from the fax service about changes in device configuration data.

The ability to persistently store configuration data in a location-independent manner solves problems that can arise in many situations. For example, if a Microsoft Management Console (MMC) snap-in executes remotely, it cannot configure properties for the fax extension because the snap-in does not have access to the configuration data that resides on the remote server. An example of a future problem could be if the storage location of configuration data changes. Fax service extensions that rely on a static storage location, such as the system registry, would no longer function.

When you use the configuration persistence mechanism, your configuration data has the same security as the fax server's own configuration data. This ensures that only users who have permission to configure the server will be able to modify the extension's configuration data.

If you plan to implement this feature, you must export the FaxExtInitializeConfig function. When you export FaxExtInitializeConfig, the fax service calls the function during service startup, when the service loads the fax extension DLL. Except in the case of a virtual FSP, the fax service calls FaxExtInitializeConfig before it calls any other fax extension initialization function. In the case of a virtual FSP, the fax service calls FaxDevVirtualDeviceCreation before it calls FaxExtInitializeConfig. The fax service passes the pointers to five fax server callback functions as parameters to FaxExtInitializeConfig.

This section includes the following topics.