summaryrefslogtreecommitdiff
path: root/chromium/sandbox/win/src/sync_interception.h
blob: 0f985a8edc852ad08bd1c52b88affcdccc77db50 (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.

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

#ifndef SANDBOX_SRC_SYNC_INTERCEPTION_H__
#define SANDBOX_SRC_SYNC_INTERCEPTION_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_SRC_SYNC_INTERCEPTION_H__