The third argument of ap_register_provider and ap_lookup_provider is provider_version. Most modules use hardcoded "0" as provider_version, but is it correct way? I think mod_socache_* approach is right.
* include/ap_socache.h line 167: /** The provider group used to register socache providers. */ #define AP_SOCACHE_PROVIDER_GROUP "socache" /** The provider version used to register socache providers. */ #define AP_SOCACHE_PROVIDER_VERSION "0" * modules/cache/mod_socache_shmcb.c line 868: static void register_hooks(apr_pool_t *p) { ap_register_provider(p, AP_SOCACHE_PROVIDER_GROUP, "shmcb", AP_SOCACHE_PROVIDER_VERSION, &socache_shmcb); Regards, Takashi