1// Copyright (c) 2006-2008 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#include "sandbox/win/src/nt_internals.h"
6#include "sandbox/win/src/sandbox_types.h"
7
8#ifndef SANDBOX_SRC_TARGET_INTERCEPTIONS_H__
9#define SANDBOX_SRC_TARGET_INTERCEPTIONS_H__
10
11namespace sandbox {
12
13extern "C" {
14
15// Interception of NtMapViewOfSection on the child process.
16// It should never be called directly. This function provides the means to
17// detect dlls being loaded, so we can patch them if needed.
18SANDBOX_INTERCEPT NTSTATUS WINAPI TargetNtMapViewOfSection(
19    NtMapViewOfSectionFunction orig_MapViewOfSection, HANDLE section,
20    HANDLE process, PVOID *base, ULONG_PTR zero_bits, SIZE_T commit_size,
21    PLARGE_INTEGER offset, PSIZE_T view_size, SECTION_INHERIT inherit,
22    ULONG allocation_type, ULONG protect);
23
24// Interception of NtUnmapViewOfSection on the child process.
25// It should never be called directly. This function provides the means to
26// detect dlls being unloaded, so we can clean up our interceptions.
27SANDBOX_INTERCEPT NTSTATUS WINAPI TargetNtUnmapViewOfSection(
28    NtUnmapViewOfSectionFunction orig_UnmapViewOfSection, HANDLE process,
29    PVOID base);
30
31}  // extern "C"
32
33}  // namespace sandbox
34
35#endif  // SANDBOX_SRC_TARGET_INTERCEPTIONS_H__
36