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

Popular posts from this blog

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

html - How to style widget with post count different than without post count -

url rewriting - How to redirect a http POST with urlrewritefilter -