summaryrefslogtreecommitdiff
path: root/source4/lib/registry/regf.idl
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-02-18 18:44:56 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:48:33 -0500
commit0515f728e64dde0c197aee6180dce79ad281d5f8 (patch)
treea90230e7c7bf5b93a8922852163291f729e39f39 /source4/lib/registry/regf.idl
parentd425796fff07b8bc7b9eb49bc8db71aff9c1161f (diff)
downloadsamba-0515f728e64dde0c197aee6180dce79ad281d5f8.tar.gz
samba-0515f728e64dde0c197aee6180dce79ad281d5f8.tar.bz2
samba-0515f728e64dde0c197aee6180dce79ad281d5f8.zip
r21433: Get rid of the COM support code - it's not used and unmaintained. We can
always bring it back if we need to. This code was getting in the way while refactoring. Add some tests for TDR. Get rid of typedef in lib/registry/tdr_regf.idl and fix the TDR code to be able to deal with it. (This used to be commit 1ad0f99a439f0d52a735b391bf9900d50171aca5)
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;
+ };
}