r4155: More destinction between hives and predefined keys
[samba.git] / source4 / lib / registry / reg_samba.c
index a19029524d6eb47456ea454c55dd8fa2d89cb939..62973a14ab438e265b1d9d68cdc91c7dd39de012 100644 (file)
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_REGISTRY
 
-static WERROR reg_samba_get_hive (struct registry_context *ctx, uint32 hkey, struct registry_key **k)
+static WERROR reg_samba_get_predef (struct registry_context *ctx, uint32 hkey, struct registry_key **k)
 {
        WERROR error;
        const char *conf;
        char *backend, *location;
-       const char *hivename = reg_get_hkey_name(hkey);
+       const char *hivename = reg_get_predef_name(hkey);
 
        *k = NULL;
 
@@ -45,7 +45,18 @@ static WERROR reg_samba_get_hive (struct registry_context *ctx, uint32 hkey, str
                *location = '\0';
                location++;
        }
-       
+
+       /* FIXME: Different hive backend for HKEY_CLASSES_ROOT: merged view of HKEY_LOCAL_MACHINE\Software\Classes
+        * and HKEY_CURRENT_USER\Software\Classes */
+
+       /* FIXME: HKEY_CURRENT_CONFIG is an alias for HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles\Current */
+
+       /* FIXME: HKEY_PERFORMANCE_DATA is dynamically generated */
+
+       /* FIXME: HKEY_LOCAL_MACHINE\Hardware is autogenerated */
+
+       /* FIXME: HKEY_LOCAL_MACHINE\Security\SAM is an alias for HKEY_LOCAL_MACHINE\SAM */
+
        error = reg_open_hive(ctx, backend, location, NULL, k);
 
        talloc_destroy(backend);
@@ -56,7 +67,7 @@ static WERROR reg_samba_get_hive (struct registry_context *ctx, uint32 hkey, str
 WERROR reg_open_local (struct registry_context **ctx)
 {
        *ctx = talloc_p(NULL, struct registry_context);
-       (*ctx)->get_hive = reg_samba_get_hive;
+       (*ctx)->get_predefined_key = reg_samba_get_predef;
        
        return WERR_OK;
 }