Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1373)

Unified Diff: base/win/iat_patch_function.h

Issue 7265009: Revert 90464 - Move app/win/* files to base/win/, ui/base/win and chrome/common/ directories. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/base.gypi ('k') | base/win/iat_patch_function.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/win/iat_patch_function.h
===================================================================
--- base/win/iat_patch_function.h (revision 90470)
+++ base/win/iat_patch_function.h (working copy)
@@ -1,72 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef BASE_WIN_IAT_PATCH_FUNCTION_H_
-#define BASE_WIN_IAT_PATCH_FUNCTION_H_
-#pragma once
-
-#include <windows.h>
-
-#include "base/basictypes.h"
-
-namespace base {
-namespace win {
-
-// A class that encapsulates Import Address Table patching helpers and restores
-// the original function in the destructor.
-//
-// It will intercept functions for a specific DLL imported from another DLL.
-// This is the case when, for example, we want to intercept
-// CertDuplicateCertificateContext function (exported from crypt32.dll) called
-// by wininet.dll.
-class IATPatchFunction {
- public:
- IATPatchFunction();
- ~IATPatchFunction();
-
- // Intercept a function in an import table of a specific
- // module. Save the original function and the import
- // table address. These values will be used later
- // during Unpatch
- //
- // Arguments:
- // module Module to be intercepted
- // imported_from_module Module that exports the 'function_name'
- // function_name Name of the API to be intercepted
- //
- // Returns: Windows error code (winerror.h). NO_ERROR if successful
- //
- // Note: Patching a function will make the IAT patch take some "ownership" on
- // |module|. It will LoadLibrary(module) to keep the DLL alive until a call
- // to Unpatch(), which will call FreeLibrary() and allow the module to be
- // unloaded. The idea is to help prevent the DLL from going away while a
- // patch is still active.
- DWORD Patch(const wchar_t* module,
- const char* imported_from_module,
- const char* function_name,
- void* new_function);
-
- // Unpatch the IAT entry using internally saved original
- // function.
- //
- // Returns: Windows error code (winerror.h). NO_ERROR if successful
- DWORD Unpatch();
-
- bool is_patched() const {
- return (NULL != intercept_function_);
- }
-
- private:
- HMODULE module_handle_;
- void* intercept_function_;
- void* original_function_;
- IMAGE_THUNK_DATA* iat_thunk_;
-
- DISALLOW_COPY_AND_ASSIGN(IATPatchFunction);
-};
-
-} // namespace win
-} // namespace base
-
-#endif // BASE_WIN_IAT_PATCH_FUNCTION_H_
« no previous file with comments | « base/base.gypi ('k') | base/win/iat_patch_function.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698