diff options
Diffstat (limited to 'source4/lib')
-rw-r--r-- | source4/lib/registry/regf.idl | 52 |
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; + }; } |