summaryrefslogtreecommitdiffstats
path: root/security/sandbox/chromium/sandbox/win/src/sync_interception.h
blob: c21e7ee7b21bc1e8971ab33a4bd74991dc8294da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Copyright (c) 2006-2008 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 SANDBOX_WIN_SRC_SYNC_INTERCEPTION_H_
#define SANDBOX_WIN_SRC_SYNC_INTERCEPTION_H_

#include "sandbox/win/src/nt_internals.h"
#include "sandbox/win/src/sandbox_types.h"

namespace sandbox {

extern "C" {

typedef NTSTATUS(WINAPI* NtCreateEventFunction)(
    PHANDLE EventHandle,
    ACCESS_MASK DesiredAccess,
    POBJECT_ATTRIBUTES ObjectAttributes,
    EVENT_TYPE EventType,
    BOOLEAN InitialState);

typedef NTSTATUS(WINAPI* NtOpenEventFunction)(
    PHANDLE EventHandle,
    ACCESS_MASK DesiredAccess,
    POBJECT_ATTRIBUTES ObjectAttributes);

// Interceptors for NtCreateEvent/NtOpenEvent
SANDBOX_INTERCEPT NTSTATUS WINAPI
TargetNtCreateEvent(NtCreateEventFunction orig_CreateEvent,
                    PHANDLE event_handle,
                    ACCESS_MASK desired_access,
                    POBJECT_ATTRIBUTES object_attributes,
                    EVENT_TYPE event_type,
                    BOOLEAN initial_state);

SANDBOX_INTERCEPT NTSTATUS WINAPI
TargetNtOpenEvent(NtOpenEventFunction orig_OpenEvent,
                  PHANDLE event_handle,
                  ACCESS_MASK desired_access,
                  POBJECT_ATTRIBUTES object_attributes);

}  // extern "C"

}  // namespace sandbox

#endif  // SANDBOX_WIN_SRC_SYNC_INTERCEPTION_H_