Index: base/win/registry.cc |
diff --git a/base/win/registry.cc b/base/win/registry.cc |
index a6cb9ae89f789a78461e7d611374e603f492b724..51a1466f22818ff2cf491ce2e1c9b6451f69131e 100644 |
--- a/base/win/registry.cc |
+++ b/base/win/registry.cc |
@@ -487,10 +487,13 @@ LONG RegKey::RegDelRecurse(HKEY root_key, |
// RegistryValueIterator ------------------------------------------------------ |
RegistryValueIterator::RegistryValueIterator(HKEY root_key, |
- const wchar_t* folder_key) |
+ const wchar_t* folder_key, |
+ REGSAM wow64access) |
: name_(MAX_PATH, L'\0'), |
value_(MAX_PATH, L'\0') { |
- LONG result = RegOpenKeyEx(root_key, folder_key, 0, KEY_READ, &key_); |
+ DCHECK(!wow64access || wow64access & kWow64AccessMask); |
+ LONG result = |
+ RegOpenKeyEx(root_key, folder_key, 0, KEY_READ | wow64access, &key_); |
if (result != ERROR_SUCCESS) { |
key_ = NULL; |
} else { |
@@ -576,8 +579,11 @@ bool RegistryValueIterator::Read() { |
// RegistryKeyIterator -------------------------------------------------------- |
RegistryKeyIterator::RegistryKeyIterator(HKEY root_key, |
- const wchar_t* folder_key) { |
- LONG result = RegOpenKeyEx(root_key, folder_key, 0, KEY_READ, &key_); |
+ const wchar_t* folder_key, |
+ REGSAM wow64access) { |
+ DCHECK(!wow64access || wow64access & kWow64AccessMask); |
+ LONG result = |
+ RegOpenKeyEx(root_key, folder_key, 0, KEY_READ | wow64access, &key_); |
if (result != ERROR_SUCCESS) { |
key_ = NULL; |
} else { |