blob: c21e7ee7b21bc1e8971ab33a4bd74991dc8294da [file] [log] [blame]
// 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_