Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / sandbox / win / src / eat_resolver.h
blob1d9d4306729b0cce1ccab8e57ff46a124d068516
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"
12 namespace sandbox {
14 // This is the concrete resolver used to perform exports table interceptions.
15 class EatResolverThunk : public ResolverThunk {
16 public:
17 EatResolverThunk() : eat_entry_(NULL) {}
18 ~EatResolverThunk() override {}
20 // Implementation of Resolver::Setup.
21 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,
26 void* thunk_storage,
27 size_t storage_bytes,
28 size_t* storage_used) override;
30 // Implementation of Resolver::ResolveTarget.
31 NTSTATUS ResolveTarget(const void* module,
32 const char* function_name,
33 void** address) override;
35 // Implementation of Resolver::GetThunkSize.
36 size_t GetThunkSize() const override;
38 private:
39 // The entry to patch.
40 DWORD* eat_entry_;
42 DISALLOW_COPY_AND_ASSIGN(EatResolverThunk);
45 } // namespace sandbox
48 #endif // SANDBOX_SRC_EAT_RESOLVER_H__