r15356: Remove unused 'flags' argument from socket_send() and friends.
[bbaumbach/samba-autobuild/.git] / source4 / lib / registry / regf.idl
index 760183c01d56f0f94a46a5369b25874495d42b3f..8f5db8c236a3e293ce4ee37193d021693149ae98 100644 (file)
@@ -17,6 +17,7 @@ interface regf
 
        /* 
         * Registry version number
+        * 1.2.0.1 for WinNT 3.51
         * 1.3.0.1 for WinNT 4
         * 1.5.0.1 for WinXP
         */
@@ -51,7 +52,7 @@ interface regf
        } regf_hdr;
 
        /* 
-               hbin probably means hive-bin (what bin stands for I don't know)
+               hbin probably means hive-bin (i.e. hive-container)
                This block is always a multiple
                of 4kb in size.
      */
@@ -64,8 +65,11 @@ interface regf
                uint32 block_size;         /* Block size (including the header!) */
                uint8 data[offset_to_next-0x20]; 
                /* data is filled with:
-                       uint32 length
-                       uint8_t data[length]
+                       uint32 length;                  
+                               Negative if in used, positive otherwise
+                               Always a multiple of 8
+                       uint8_t data[length];  
+                               Free space marker if 0xffffffff
             */
        } hbin_block;
 
@@ -94,15 +98,15 @@ interface regf
                uint32 sk_offset;
                uint32 clsname_offset;
                uint32 unk3[5];
-               uint16 name_length;
+               [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,nopush,nopull] struct {
+       typedef [noprint,public] struct {
                [charset(DOS)] uint8 header[2];
-               uint16 uk1;
+               uint16 tag;
                uint32 prev_offset;
                uint32 next_offset;
                uint32 ref_cnt;
@@ -137,7 +141,7 @@ interface regf
        /* The vk-record consists information to a single value (value key). */
        typedef [public,noprint] struct {
                [charset(DOS)] uint8 header[2];
-               uint16 name_length;
+               [value(strlen(data_name))] uint16 name_length;
                uint32 data_length;    /* If top-bit set, offset contains the data */
                uint32 data_offset;
                uint32 data_type;
@@ -148,7 +152,7 @@ interface regf
 
        typedef [noprint] struct {
                uint32 nk_off;
-               uint8 hash[4];
+               [charset(DOS)] uint8 hash[4];
        } hash_record;
 
        /*