1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// This file provides a parser for PReg files which are used for storing group 6// policy settings in the file system. The file format is documented here: 7// 8// http://msdn.microsoft.com/en-us/library/windows/desktop/aa374407(v=vs.85).aspx 9 10#ifndef COMPONENTS_POLICY_CORE_COMMON_PREG_PARSER_WIN_H_ 11#define COMPONENTS_POLICY_CORE_COMMON_PREG_PARSER_WIN_H_ 12 13#include <vector> 14 15#include "base/memory/scoped_ptr.h" 16#include "base/strings/string16.h" 17#include "components/policy/policy_export.h" 18 19namespace base { 20class FilePath; 21} 22 23namespace policy { 24 25class PolicyLoadStatusSample; 26class RegistryDict; 27 28namespace preg_parser { 29 30// The magic header in PReg files: ASCII "PReg" + version (0x0001). 31POLICY_EXPORT extern const char kPRegFileHeader[8]; 32 33// Reads the PReg file at |file_path| and writes the registry data to |dict|. 34// |root| specifies the registry subtree the caller is interested in, 35// everything else gets ignored. 36POLICY_EXPORT bool ReadFile(const base::FilePath& file_path, 37 const base::string16& root, 38 RegistryDict* dict, 39 PolicyLoadStatusSample* status); 40 41} // namespace preg_parser 42} // namespace policy 43 44#endif // COMPONENTS_POLICY_CORE_COMMON_PREG_PARSER_WIN_H_ 45