2.2.5 RVALENT

The RVALENT structure is used to store the values and data that are associated with a key, as specified in section 3.1.5.26. The format of the RVALENT structure is as follows.

 typedef struct value_ent {
   PRPC_UNICODE_STRING ve_valuename;
   DWORD ve_valuelen;
   LPDWORD ve_valueptr;
   DWORD ve_type;
 } RVALENT,
  *PRVALENT;

ve_valuename: A pointer to an RRP_UNICODE_STRING structure that MUST contain the name of the specified value to be retrieved.

ve_valuelen: The length in bytes of the ve_valueptr buffer.

ve_valueptr: A pointer to the data that is associated with a specified value.

ve_type: The type of the data that is associated with a specified value. For additional specification of the possible values, see section 3.1.1.5.

Value

Meaning

REG_BINARY

3

Binary data in any form.

REG_DWORD

4

A 32-bit number.

REG_DWORD_LITTLE_ENDIAN

4

A 32-bit number in little-endian format.

REG_DWORD_BIG_ENDIAN

5

A 32-bit number in big-endian format.

REG_EXPAND_SZ

2

A null-terminated string that contains unexpanded references to environment variables (for example, "%PATH%"). It will be a Unicode or system code page string, depending on the functions used to manipulate the string.

REG_LINK

6

A symbolic link.

REG_MULTI_SZ

7

A sequence of null-terminated strings, terminated by an empty string (\0).

For example:

 String1\0String2\0String3\0LastString\0\0

The first \0 terminates the first string, the second to the last \0 terminates the last string, and the final \0 terminates the sequence. Note that the final terminator MUST be factored into the length of the string.

REG_NONE

0

No defined value type.

REG_QWORD

11

A 64-bit number.

REG_QWORD_LITTLE_ENDIAN

11

A 64-bit number in little-endian format.

REG_SZ

1

A null-terminated string. This string is either a Unicode or an system code page string, depending on the functions used to manipulate the string.