1libesedb(3) BSD Library Functions Manual libesedb(3)
2
4 libesedb.h — Library to access the Extensible Storage Engine (ESE) Data‐
5 base File (EDB) format
6
8 library “libesedb”
9
11 #include <libesedb.h>
12
13 Support functions
14
15 const char *
16 libesedb_get_version(void);
17
18 int
19 libesedb_get_access_flags_read(void);
20
21 int
22 libesedb_get_codepage(int *codepage, libesedb_error_t **error);
23
24 int
25 libesedb_set_codepage(int codepage, libesedb_error_t **error);
26
27 int
28 libesedb_check_file_signature(const char *filename, libesedb_error_t **error);
29
30 Available when compiled with wide character string support:
31
32 int
33 libesedb_check_file_signature_wide(const wchar_t *filename, libesedb_error_t **error);
34
35 Available when compiled with libbfio support:
36
37 int
38 libesedb_check_file_signature_file_io_handle(libbfio_handle_t *bfio_handle, libesedb_error_t **error);
39
40 Notify functions
41
42 void
43 libesedb_notify_set_verbose(int verbose);
44
45 int
46 libesedb_notify_set_stream(FILE *stream, libesedb_error_t **error);
47
48 int
49 libesedb_notify_stream_open(const char *filename, libesedb_error_t **error);
50
51 int
52 libesedb_notify_stream_close(libesedb_error_t **error);
53
54 Error functions
55
56 void
57 libesedb_error_free(libesedb_error_t **error);
58
59 int
60 libesedb_error_fprint(libesedb_error_t *error, FILE *stream);
61
62 int
63 libesedb_error_sprint(libesedb_error_t *error, char *string, size_t size);
64
65 int
66 libesedb_error_backtrace_fprint(libesedb_error_t *error, FILE *stream);
67
68 int
69 libesedb_error_backtrace_sprint(libesedb_error_t *error, char *string, size_t size);
70
71 File functions
72
73 int
74 libesedb_file_initialize(libesedb_file_t **file, libesedb_error_t **error);
75
76 int
77 libesedb_file_free(libesedb_file_t **file, libesedb_error_t **error);
78
79 int
80 libesedb_file_signal_abort(libesedb_file_t *file, libesedb_error_t **error);
81
82 int
83 libesedb_file_open(libesedb_file_t *file, const char *filename, int access_flags, libesedb_error_t **error);
84
85 int
86 libesedb_file_close(libesedb_file_t *file, libesedb_error_t **error);
87
88 int
89 libesedb_file_get_type(libesedb_file_t *file, uint32_t *type, libesedb_error_t **error);
90
91 int
92 libesedb_file_get_format_version(libesedb_file_t *file, uint32_t *format_version, uint32_t *format_revision, libesedb_error_t **error);
93
94 int
95 libesedb_file_get_creation_format_version(libesedb_file_t *file, uint32_t *format_version, uint32_t *format_revision, libesedb_error_t **error);
96
97 int
98 libesedb_file_get_page_size(libesedb_file_t *file, uint32_t *page_size, libesedb_error_t **error);
99
100 int
101 libesedb_file_get_number_of_tables(libesedb_file_t *file, int *number_of_tables, libesedb_error_t **error);
102
103 int
104 libesedb_file_get_table(libesedb_file_t *file, int table_entry, libesedb_table_t **table, libesedb_error_t **error);
105
106 int
107 libesedb_file_get_table_by_utf8_name(libesedb_file_t *file, const uint8_t *utf8_string, size_t utf8_string_length, libesedb_table_t **table, libesedb_error_t **error);
108
109 int
110 libesedb_file_get_table_by_utf16_name(libesedb_file_t *file, const uint16_t *utf16_string, size_t utf16_string_length, libesedb_table_t **table, libesedb_error_t **error);
111
112 Available when compiled with wide character string support:
113
114 int
115 libesedb_file_open_wide(libesedb_file_t *file, const wchar_t *filename, int access_flags, libesedb_error_t **error);
116
117 Available when compiled with libbfio support:
118
119 int
120 libesedb_file_open_file_io_handle(libesedb_file_t *file, libbfio_handle_t *file_io_handle, int access_flags, libesedb_error_t **error);
121
122 Table functions
123
124 int
125 libesedb_table_free(libesedb_table_t **table, libesedb_error_t **error);
126
127 int
128 libesedb_table_get_identifier(libesedb_table_t *table, uint32_t *identifier, libesedb_error_t **error);
129
130 int
131 libesedb_table_get_utf8_name_size(libesedb_table_t *table, size_t *utf8_string_size, libesedb_error_t **error);
132
133 int
134 libesedb_table_get_utf8_name(libesedb_table_t *table, uint8_t *utf8_string, size_t utf8_string_size, libesedb_error_t **error);
135
136 int
137 libesedb_table_get_utf16_name_size(libesedb_table_t *table, size_t *utf16_string_size, libesedb_error_t **error);
138
139 int
140 libesedb_table_get_utf16_name(libesedb_table_t *table, uint16_t *utf16_string, size_t utf16_string_size, libesedb_error_t **error);
141
142 int
143 libesedb_table_get_utf8_template_name_size(libesedb_table_t *table, size_t *utf8_string_size, libesedb_error_t **error);
144
145 int
146 libesedb_table_get_utf8_template_name(libesedb_table_t *table, uint8_t *utf8_string, size_t utf8_string_size, libesedb_error_t **error);
147
148 int
149 libesedb_table_get_utf16_template_name_size(libesedb_table_t *table, size_t *utf16_string_size, libesedb_error_t **error);
150
151 int
152 libesedb_table_get_utf16_template_name(libesedb_table_t *table, uint16_t *utf16_string, size_t utf16_string_size, libesedb_error_t **error);
153
154 int
155 libesedb_table_get_number_of_columns(libesedb_table_t *table, int *number_of_columns, uint8_t flags, libesedb_error_t **error);
156
157 int
158 libesedb_table_get_column(libesedb_table_t *table, int column_entry, libesedb_column_t **column, uint8_t flags, libesedb_error_t **error);
159
160 int
161 libesedb_table_get_number_of_indexes(libesedb_table_t *table, int *number_of_indexes, libesedb_error_t **error);
162
163 int
164 libesedb_table_get_index(libesedb_table_t *table, int index_entry, libesedb_index_t **index, libesedb_error_t **error);
165
166 int
167 libesedb_table_get_number_of_records(libesedb_table_t *table, int *number_of_records, libesedb_error_t **error);
168
169 int
170 libesedb_table_get_record(libesedb_table_t *table, int record_entry, libesedb_record_t **record, libesedb_error_t **error);
171
172 Column functions
173
174 int
175 libesedb_column_free(libesedb_column_t **column, libesedb_error_t **error);
176
177 int
178 libesedb_column_get_identifier(libesedb_column_t *column, uint32_t *identifier, libesedb_error_t **error);
179
180 int
181 libesedb_column_get_type(libesedb_column_t *column, uint32_t *type, libesedb_error_t **error);
182
183 int
184 libesedb_column_get_utf8_name_size(libesedb_column_t *column, size_t *utf8_string_size, libesedb_error_t **error);
185
186 int
187 libesedb_column_get_utf8_name(libesedb_column_t *column, uint8_t *utf8_string, size_t utf8_string_size, libesedb_error_t **error);
188
189 int
190 libesedb_column_get_utf16_name_size(libesedb_column_t *column, size_t *utf16_string_size, libesedb_error_t **error);
191
192 int
193 libesedb_column_get_utf16_name(libesedb_column_t *column, uint16_t *utf16_string, size_t utf16_string_size, libesedb_error_t **error);
194
195 Index functions
196
197 int
198 libesedb_index_free(libesedb_index_t **index, libesedb_error_t **error);
199
200 int
201 libesedb_index_get_identifier(libesedb_index_t *index, uint32_t *identifier, libesedb_error_t **error);
202
203 int
204 libesedb_index_get_utf8_name_size(libesedb_index_t *index, size_t *utf8_string_size, libesedb_error_t **error);
205
206 int
207 libesedb_index_get_utf8_name(libesedb_index_t *index, uint8_t *utf8_string, size_t utf8_string_size, libesedb_error_t **error);
208
209 int
210 libesedb_index_get_utf16_name_size(libesedb_index_t *index, size_t *utf16_string_size, libesedb_error_t **error);
211
212 int
213 libesedb_index_get_utf16_name(libesedb_index_t *index, uint16_t *utf16_string, size_t utf16_string_size, libesedb_error_t **error);
214
215 int
216 libesedb_index_get_number_of_records(libesedb_index_t *index, int *number_of_records, libesedb_error_t **error);
217
218 int
219 libesedb_index_get_record(libesedb_index_t *index, int record_entry, libesedb_record_t **record, libesedb_error_t **error);
220
221 Record (row) functions
222
223 int
224 libesedb_record_free(libesedb_record_t **record, libesedb_error_t **error);
225
226 int
227 libesedb_record_get_number_of_values(libesedb_record_t *record, int *number_of_values, libesedb_error_t **error);
228
229 int
230 libesedb_record_get_column_identifier(libesedb_record_t *record, int value_entry, uint32_t *column_identifier, libesedb_error_t **error);
231
232 int
233 libesedb_record_get_column_type(libesedb_record_t *record, int value_entry, uint32_t *column_type, libesedb_error_t **error);
234
235 int
236 libesedb_record_get_utf8_column_name_size(libesedb_record_t *record, int value_entry, size_t *utf8_string_size, libesedb_error_t **error);
237
238 int
239 libesedb_record_get_utf8_column_name(libesedb_record_t *record, int value_entry, uint8_t *utf8_string, size_t utf8_string_size, libesedb_error_t **error);
240
241 int
242 libesedb_record_get_utf16_column_name_size(libesedb_record_t *record, int value_entry, size_t *utf16_string_size, libesedb_error_t **error);
243
244 int
245 libesedb_record_get_utf16_column_name(libesedb_record_t *record, int value_entry, uint16_t *utf16_string, size_t utf16_string_size, libesedb_error_t **error);
246
247 int
248 libesedb_record_get_value_data_size(libesedb_record_t *record, int value_entry, size_t *value_data_size, libesedb_error_t **error);
249
250 int
251 libesedb_record_get_value_data(libesedb_record_t *record, int value_entry, uint8_t *value_data, size_t value_data_size, libesedb_error_t **error);
252
253 int
254 libesedb_record_get_value_data_flags(libesedb_record_t *record, int value_entry, uint8_t *value_data_flags, libesedb_error_t **error);
255
256 int
257 libesedb_record_get_value_boolean(libesedb_record_t *record, int value_entry, uint8_t *value_boolean, libesedb_error_t **error);
258
259 int
260 libesedb_record_get_value_8bit(libesedb_record_t *record, int value_entry, uint8_t *value_8bit, libesedb_error_t **error);
261
262 int
263 libesedb_record_get_value_16bit(libesedb_record_t *record, int value_entry, uint16_t *value_16bit, libesedb_error_t **error);
264
265 int
266 libesedb_record_get_value_32bit(libesedb_record_t *record, int value_entry, uint32_t *value_32bit, libesedb_error_t **error);
267
268 int
269 libesedb_record_get_value_64bit(libesedb_record_t *record, int value_entry, uint64_t *value_64bit, libesedb_error_t **error);
270
271 int
272 libesedb_record_get_value_filetime(libesedb_record_t *record, int value_entry, uint64_t *value_filetime, libesedb_error_t **error);
273
274 int
275 libesedb_record_get_value_floating_point_32bit(libesedb_record_t *record, int value_entry, float *value_floating_point_32bit, libesedb_error_t **error);
276
277 int
278 libesedb_record_get_value_floating_point_64bit(libesedb_record_t *record, int value_entry, double *value_floating_point_64bit, libesedb_error_t **error);
279
280 int
281 libesedb_record_get_value_utf8_string_size(libesedb_record_t *record, int value_entry, size_t *utf8_string_size, libesedb_error_t **error);
282
283 int
284 libesedb_record_get_value_utf8_string(libesedb_record_t *record, int value_entry, uint8_t *utf8_string, size_t utf8_string_size, libesedb_error_t **error);
285
286 int
287 libesedb_record_get_value_utf16_string_size(libesedb_record_t *record, int value_entry, size_t *utf16_string_size, libesedb_error_t **error);
288
289 int
290 libesedb_record_get_value_utf16_string(libesedb_record_t *record, int value_entry, uint16_t *utf16_string, size_t utf16_string_size, libesedb_error_t **error);
291
292 int
293 libesedb_record_get_value_binary_data_size(libesedb_record_t *record, int value_entry, size_t *binary_data_size, libesedb_error_t **error);
294
295 int
296 libesedb_record_get_value_binary_data(libesedb_record_t *record, int value_entry, uint8_t *binary_data, size_t binary_data_size, libesedb_error_t **error);
297
298 int
299 libesedb_record_is_long_value(libesedb_record_t *record, int value_entry, libesedb_error_t **error);
300
301 int
302 libesedb_record_is_multi_value(libesedb_record_t *record, int value_entry, libesedb_error_t **error);
303
304 int
305 libesedb_record_get_long_value(libesedb_record_t *record, int value_entry, libesedb_long_value_t **long_value, libesedb_error_t **error);
306
307 int
308 libesedb_record_get_multi_value(libesedb_record_t *record, int value_entry, libesedb_multi_value_t **multi_value, libesedb_error_t **error);
309
310 Long value functions
311
312 int
313 libesedb_long_value_free(libesedb_long_value_t **long_value, libesedb_error_t **error);
314
315 int
316 libesedb_long_value_get_data_size(libesedb_long_value_t *long_value, size64_t *data_size, libesedb_error_t **error);
317
318 int
319 libesedb_long_value_get_data(libesedb_long_value_t *long_value, uint8_t *data, size_t data_size, libesedb_error_t **error);
320
321 int
322 libesedb_long_value_get_number_of_data_segments(libesedb_long_value_t *long_value, int *number_of_data_segments, libesedb_error_t **error);
323
324 int
325 libesedb_long_value_get_data_segment_size(libesedb_long_value_t *long_value, int data_segment_index, size_t *data_size, libesedb_error_t **error);
326
327 int
328 libesedb_long_value_get_data_segment(libesedb_long_value_t *long_value, int data_segment_index, uint8_t *data_segment, size_t data_size, libesedb_error_t **error);
329
330 int
331 libesedb_long_value_get_utf8_string_size(libesedb_long_value_t *long_value, size_t *utf8_string_size, libesedb_error_t **error);
332
333 int
334 libesedb_long_value_get_utf8_string(libesedb_long_value_t *long_value, uint8_t *utf8_string, size_t utf8_string_size, libesedb_error_t **error);
335
336 int
337 libesedb_long_value_get_utf16_string_size(libesedb_long_value_t *long_value, size_t *utf16_string_size, libesedb_error_t **error);
338
339 int
340 libesedb_long_value_get_utf16_string(libesedb_long_value_t *long_value, uint16_t *utf16_string, size_t utf16_string_size, libesedb_error_t **error);
341
342 Multi value functions
343
344 int
345 libesedb_multi_value_free(libesedb_multi_value_t **multi_value, libesedb_error_t **error);
346
347 int
348 libesedb_multi_value_get_column_type(libesedb_multi_value_t *multi_value, uint32_t *column_type, libesedb_error_t **error);
349
350 int
351 libesedb_multi_value_get_number_of_values(libesedb_multi_value_t *multi_value, int *number_of_values, libesedb_error_t **error);
352
353 int
354 libesedb_multi_value_get_value_data_size(libesedb_multi_value_t *multi_value, int value_entry, size_t *value_data_size, libesedb_error_t **error);
355
356 int
357 libesedb_multi_value_get_value_data(libesedb_multi_value_t *multi_value, int value_entry, uint8_t *value_data, size_t value_data_size, libesedb_error_t **error);
358
359 int
360 libesedb_multi_value_get_value_8bit(libesedb_multi_value_t *multi_value, int multi_value_index, uint8_t *value_8bit, libesedb_error_t **error);
361
362 int
363 libesedb_multi_value_get_value_16bit(libesedb_multi_value_t *multi_value, int multi_value_index, uint16_t *value_16bit, libesedb_error_t **error);
364
365 int
366 libesedb_multi_value_get_value_32bit(libesedb_multi_value_t *multi_value, int multi_value_index, uint32_t *value_32bit, libesedb_error_t **error);
367
368 int
369 libesedb_multi_value_get_value_64bit(libesedb_multi_value_t *multi_value, int multi_value_index, uint64_t *value_64bit, libesedb_error_t **error);
370
371 int
372 libesedb_multi_value_get_value_floating_point_32bit(libesedb_multi_value_t *multi_value, int multi_value_index, float *value_32bit, libesedb_error_t **error);
373
374 int
375 libesedb_multi_value_get_value_floating_point_64bit(libesedb_multi_value_t *multi_value, int multi_value_index, double *value_64bit, libesedb_error_t **error);
376
377 int
378 libesedb_multi_value_get_value_filetime(libesedb_multi_value_t *multi_value, int multi_value_index, uint64_t *value_filetime, libesedb_error_t **error);
379
380 int
381 libesedb_multi_value_get_value_utf8_string_size(libesedb_multi_value_t *multi_value, int multi_value_index, size_t *utf8_string_size, libesedb_error_t **error);
382
383 int
384 libesedb_multi_value_get_value_utf8_string(libesedb_multi_value_t *multi_value, int multi_value_index, uint8_t *utf8_string, size_t utf8_string_size, libesedb_error_t **error);
385
386 int
387 libesedb_multi_value_get_value_utf16_string_size(libesedb_multi_value_t *multi_value, int multi_value_index, size_t *utf16_string_size, libesedb_error_t **error);
388
389 int
390 libesedb_multi_value_get_value_utf16_string(libesedb_multi_value_t *multi_value, int multi_value_index, uint16_t *utf16_string, size_t utf16_string_size, libesedb_error_t **error);
391
392 int
393 libesedb_multi_value_get_value_binary_data_size(libesedb_multi_value_t *multi_value, int multi_value_index, size_t *binary_data_size, libesedb_error_t **error);
394
395 int
396 libesedb_multi_value_get_value_binary_data(libesedb_multi_value_t *multi_value, int multi_value_index, uint8_t *binary_data, size_t binary_data_size, libesedb_error_t **error);
397
399 The libesedb_get_version() function is used to retrieve the library ver‐
400 sion.
401
403 Most of the functions return NULL or -1 on error, dependent on the return
404 type. For the actual return values see "libesedb.h".
405
407 None
408
410 None
411
413 libesedb allows to be compiled with wide character support (wchar_t).
414
415 To compile libesedb with wide character support use: ./configure
416 --enable-wide-character-type=yes
417 or define: _UNICODE
418 or UNICODE
419 during compilation.
420
421 LIBESEDB_WIDE_CHARACTER_TYPE
422 in libesedb/features.h can be used to determine if libesedb was compiled
423 with wide character support.
424
426 Please report bugs of any kind on the project issue tracker:
427 https://github.com/libyal/libesedb/issues
428
430 These man pages are generated from "libesedb.h".
431
433 Copyright (C) 2009-2018, Joachim Metz <joachim.metz@gmail.com>.
434
435 This is free software; see the source for copying conditions. There is
436 NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
437 PURPOSE.
438
440 the libesedb.h include file
441
442libesedb January 21, 2017 libesedb