v1.13.3
[wimlib] / include / wimlib / registry.h
1 #ifndef _WIMLIB_REGISTRY_H
2 #define _WIMLIB_REGISTRY_H
3
4 #include "wimlib/types.h"
5
6 struct regf;
7
8 enum hive_status {
9         HIVE_OK,
10         HIVE_CORRUPT,
11         HIVE_UNSUPPORTED,
12         HIVE_KEY_NOT_FOUND,
13         HIVE_VALUE_NOT_FOUND,
14         HIVE_VALUE_IS_WRONG_TYPE,
15         HIVE_OUT_OF_MEMORY,
16         HIVE_ITERATION_STOPPED,
17 };
18
19 extern enum hive_status
20 hive_validate(const void *hive_mem, size_t hive_size);
21
22 extern enum hive_status
23 hive_get_string(const struct regf *regf, const tchar *key_name,
24                 const tchar *value_name, tchar **value_ret);
25
26 extern enum hive_status
27 hive_get_number(const struct regf *regf, const tchar *key_name,
28                 const tchar *value_name, s64 *value_ret);
29
30 extern enum hive_status
31 hive_list_subkeys(const struct regf *regf, const tchar *key_name,
32                   tchar ***subkeys_ret);
33
34 extern void
35 hive_free_subkeys_list(tchar **subkeys);
36
37 extern const char *
38 hive_status_to_string(enum hive_status status);
39
40 #endif /* _WIMLIB_REGISTRY_H */