summaryrefslogtreecommitdiff
path: root/source4/lib/registry/regf.idl
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/registry/regf.idl')
-rw-r--r--source4/lib/registry/regf.idl52
1 files changed, 26 insertions, 26 deletions
diff --git a/source4/lib/registry/regf.idl b/source4/lib/registry/regf.idl
index 48a34462e6..e313dfc4da 100644
--- a/source4/lib/registry/regf.idl
+++ b/source4/lib/registry/regf.idl
@@ -22,12 +22,12 @@ interface regf
* 1.5.0.1 for WinXP
*/
- typedef [noprint] struct {
+ [noprint] struct regf_version {
[value(1)] uint32 major;
[value(3)] uint32 minor;
[value(0)] uint32 release;
[value(1)] uint32 build;
- } regf_version;
+ };
/*
"regf" is obviously the abbreviation for "Registry file". "regf" is the
@@ -36,7 +36,7 @@ interface regf
the first 0x200 bytes only!
*/
- typedef [public,noprint] struct {
+ [public,noprint] struct regf_hdr {
[charset(DOS)] uint8 REGF_ID[4]; /* 'regf' */
uint32 update_counter1;
uint32 update_counter2;
@@ -49,14 +49,14 @@ interface regf
uint32 padding[83]; /* Padding */
/* Checksum of first 0x200 bytes XOR-ed */
uint32 chksum;
- } regf_hdr;
+ };
/*
hbin probably means hive-bin (i.e. hive-container)
This block is always a multiple
of 4kb in size.
*/
- typedef [public,noprint] struct {
+ [public,noprint] struct hbin_block {
[charset(DOS)] uint8 HBIN_ID[4]; /* hbin */
uint32 offset_from_first; /* Offset from 1st hbin-Block */
uint32 offset_to_next; /* Offset to the next hbin-Block */
@@ -71,19 +71,19 @@ interface regf
uint8_t data[length];
Free space marker if 0xffffffff
*/
- } hbin_block;
+ };
- typedef [base_type(uint16),noprint] enum {
+ [base_type(uint16),noprint] enum reg_key_type {
REG_ROOT_KEY = 0x20,
REG_SUB_KEY = 0x2C,
REG_SYM_LINK = 0x10
- } reg_key_type;
+ };
/*
The nk-record can be treated as a combination of tree-record and
key-record of the win 95 registry.
*/
- typedef [public,noprint] struct {
+ [public,noprint] struct nk_block {
[charset(DOS)] uint8 header[2];
reg_key_type type;
NTTIME last_change;
@@ -101,10 +101,10 @@ interface regf
[value(strlen(key_name))] uint16 name_length;
uint16 clsname_length;
[charset(DOS)] uint8 key_name[name_length];
- } nk_block;
+ };
/* sk (? Security Key ?) is the ACL of the registry. */
- typedef [noprint,public] struct {
+ [noprint,public] struct sk_block {
[charset(DOS)] uint8 header[2];
uint16 tag;
uint32 prev_offset;
@@ -112,34 +112,34 @@ interface regf
uint32 ref_cnt;
uint32 rec_size;
uint8 sec_desc[rec_size];
- } sk_block;
+ };
- typedef [noprint] struct {
+ [noprint] struct lh_hash {
uint32 nk_offset;
uint32 base37; /* base37 of key name */
- } lh_hash;
+ };
/* Subkey listing with hash of first 4 characters */
- typedef [public,noprint] struct {
+ [public,noprint] struct lh_block {
[charset(DOS)] uint8 header[2];
uint16 key_count;
lh_hash hr[key_count];
- } lh_block;
+ };
- typedef [public,noprint] struct {
+ [public,noprint] struct li_block {
[charset(DOS)] uint8 header[2];
uint16 key_count;
uint32 nk_offset[key_count];
- } li_block;
+ };
- typedef [public,noprint] struct {
+ [public,noprint] struct ri_block {
[charset(DOS)] uint8 header[2];
uint16 key_count;
uint32 offset[key_count]; /* li/lh offset */
- } ri_block;
+ };
/* The vk-record consists information to a single value (value key). */
- typedef [public,noprint] struct {
+ [public,noprint] struct vk_block {
[charset(DOS)] uint8 header[2];
[value(strlen(data_name))] uint16 name_length;
uint32 data_length; /* If top-bit set, offset contains the data */
@@ -148,20 +148,20 @@ interface regf
uint16 flag; /* =1, has name, else no name (=Default). */
uint16 unk1;
[charset(DOS)] uint8 data_name[name_length];
- } vk_block;
+ };
- typedef [noprint] struct {
+ [noprint] struct hash_record {
uint32 nk_offset;
[charset(DOS)] uint8 hash[4];
- } hash_record;
+ };
/*
The lf-record is the counterpart to the RGKN-record (the
hash-function)
*/
- typedef [public,noprint] struct {
+ [public,noprint] struct lf_block {
[charset(DOS)] uint8 header[2];
uint16 key_count;
hash_record hr[key_count]; /* Array of hash records, depending on key_count */
- } lf_block;
+ };
}