| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/file_util.h" | 5 #include "base/file_util.h" |
| 6 | 6 |
| 7 #include <windows.h> | 7 #include <windows.h> |
| 8 #include <propvarutil.h> | 8 #include <propvarutil.h> |
| 9 #include <psapi.h> | 9 #include <psapi.h> |
| 10 #include <shellapi.h> | 10 #include <shellapi.h> |
| (...skipping 739 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 750 int WriteFile(const FilePath& filename, const char* data, int size) { | 750 int WriteFile(const FilePath& filename, const char* data, int size) { |
| 751 base::ThreadRestrictions::AssertIOAllowed(); | 751 base::ThreadRestrictions::AssertIOAllowed(); |
| 752 base::win::ScopedHandle file(CreateFile(filename.value().c_str(), | 752 base::win::ScopedHandle file(CreateFile(filename.value().c_str(), |
| 753 GENERIC_WRITE, | 753 GENERIC_WRITE, |
| 754 0, | 754 0, |
| 755 NULL, | 755 NULL, |
| 756 CREATE_ALWAYS, | 756 CREATE_ALWAYS, |
| 757 0, | 757 0, |
| 758 NULL)); | 758 NULL)); |
| 759 if (!file) { | 759 if (!file) { |
| 760 LOG(WARNING) << "CreateFile failed for path " << filename.value() << | 760 LOG(WARNING) << "CreateFile failed for path " << filename.value() |
| 761 " error code=" << GetLastError() << | 761 << " error code=" << GetLastError(); |
| 762 " error text=" << win_util::FormatLastWin32Error(); | |
| 763 return -1; | 762 return -1; |
| 764 } | 763 } |
| 765 | 764 |
| 766 DWORD written; | 765 DWORD written; |
| 767 BOOL result = ::WriteFile(file, data, size, &written, NULL); | 766 BOOL result = ::WriteFile(file, data, size, &written, NULL); |
| 768 if (result && static_cast<int>(written) == size) | 767 if (result && static_cast<int>(written) == size) |
| 769 return written; | 768 return written; |
| 770 | 769 |
| 771 if (!result) { | 770 if (!result) { |
| 772 // WriteFile failed. | 771 // WriteFile failed. |
| 773 LOG(WARNING) << "writing file " << filename.value() << | 772 LOG(WARNING) << "writing file " << filename.value() |
| 774 " failed, error code=" << GetLastError() << | 773 << " failed, error code=" << GetLastError(); |
| 775 " description=" << win_util::FormatLastWin32Error(); | |
| 776 } else { | 774 } else { |
| 777 // Didn't write all the bytes. | 775 // Didn't write all the bytes. |
| 778 LOG(WARNING) << "wrote" << written << " bytes to " << | 776 LOG(WARNING) << "wrote" << written << " bytes to " << |
| 779 filename.value() << " expected " << size; | 777 filename.value() << " expected " << size; |
| 780 } | 778 } |
| 781 return -1; | 779 return -1; |
| 782 } | 780 } |
| 783 | 781 |
| 784 bool RenameFileAndResetSecurityDescriptor(const FilePath& source_file_path, | 782 bool RenameFileAndResetSecurityDescriptor(const FilePath& source_file_path, |
| 785 const FilePath& target_file_path) { | 783 const FilePath& target_file_path) { |
| (...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1133 uint8 unused = *(touch + offset); | 1131 uint8 unused = *(touch + offset); |
| 1134 offset += step_size; | 1132 offset += step_size; |
| 1135 } | 1133 } |
| 1136 FreeLibrary(dll_module); | 1134 FreeLibrary(dll_module); |
| 1137 } | 1135 } |
| 1138 | 1136 |
| 1139 return true; | 1137 return true; |
| 1140 } | 1138 } |
| 1141 | 1139 |
| 1142 } // namespace file_util | 1140 } // namespace file_util |
| OLD | NEW |