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
3 // found in the LICENSE file.
5 #ifndef SANDBOX_SRC_EAT_RESOLVER_H__
6 #define SANDBOX_SRC_EAT_RESOLVER_H__
8 #include "base/basictypes.h"
9 #include "sandbox/win/src/nt_internals.h"
10 #include "sandbox/win/src/resolver.h"
14 // This is the concrete resolver used to perform exports table interceptions.
15 class EatResolverThunk
: public ResolverThunk
{
17 EatResolverThunk() : eat_entry_(NULL
) {}
18 virtual ~EatResolverThunk() {}
20 // Implementation of Resolver::Setup.
21 virtual NTSTATUS
Setup(const void* target_module
,
22 const void* interceptor_module
,
23 const char* target_name
,
24 const char* interceptor_name
,
25 const void* interceptor_entry_point
,
28 size_t* storage_used
);
30 // Implementation of Resolver::ResolveTarget.
31 virtual NTSTATUS
ResolveTarget(const void* module
,
32 const char* function_name
,
35 // Implementation of Resolver::GetThunkSize.
36 virtual size_t GetThunkSize() const;
39 // The entry to patch.
42 DISALLOW_COPY_AND_ASSIGN(EatResolverThunk
);
45 } // namespace sandbox
48 #endif // SANDBOX_SRC_EAT_RESOLVER_H__