winapi - What is KEY_WOW64_RES? -
in windows headers, there
// // registry specific access rights. // #define key_query_value (0x0001) #define key_set_value (0x0002) #define key_create_sub_key (0x0004) #define key_enumerate_sub_keys (0x0008) #define key_notify (0x0010) #define key_create_link (0x0020) #define key_wow64_32key (0x0200) #define key_wow64_64key (0x0100) #define key_wow64_res (0x0300) these documented in msdn article, registry key security , access rights, except key_wow64_res. mean? appears turn on contradictory flags.
key_wow64_res combination of both key_wow64_32key , key_wow64_64key. useful masking out wow64 bits, such when need make changes existing rights mask want preserve wow64 bits.
for example, can and mask key_wow64_res retrieve existing wow64 bits, mask out key_wow64_res new mask, , or original wow64 bits new mask, eg:
regsam rights = ...; regsam wow64rights = rights & key_wow64_res; rights = (newrights & ~key_wow64_res) | wow64rights; one library know uses key_wow64_res when attempting open registry key read-only access using less restrictive rights each time fails:
// preserve key_wow64_xxx flags later use wowflags = faccess & key_wow64_res; result = regopenkeyex(..., key_read | wowflags, ...); if (result == 0) { ... } else { result = regopenkeyex(..., standard_rights_read | key_query_value | key_enumerate_sub_keys | wowflags, ...); if (result == 0) { ... } else { result = regopenkeyex(..., key_query_value | wowflags, ...); if (result == 0) { ... } } }
Comments
Post a Comment