Password providers must register themselves in the registry to be installed. Every password provider must have a provider name, which should be short and does not appear in any UI. This name is used as the lpProvider parameter in API calls to identify which password provider to call. The provider's installer must create the following key in the registry:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\PwdProvider\<provider name>
In this key, the following values must be set:
ProviderPath=<file name of provider dll> Description=<description string for UI> ChangePassword=<exported name of PPChangePassword function> GetPasswordStatus=<exported name of PPGetPasswordStatus function>
Additionally, the following value may optionally be set:
NetworkProvider=01 00 00 00 (REG_BINARY). This identifies the password provider as a network provider, which means that the password will not appear in the list unless the DLL is already loaded. This allows network providers to register themselves as password providers, but not appear in UI unless their network is installed and running.
An example registry section is as follows:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\PwdProvider\SCRSAVE ProviderPath=password.cpl Description="Windows Screen Saver" ChangePassword="PPChangePassword" GetPasswordStatus="PPGetPasswordStatus"