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_SYNC_INTERCEPTION_H__ 9#define SANDBOX_SRC_SYNC_INTERCEPTION_H__ 10 11namespace sandbox { 12 13extern "C" { 14 15typedef NTSTATUS (WINAPI* NtCreateEventFunction) ( 16 PHANDLE EventHandle, 17 ACCESS_MASK DesiredAccess, 18 POBJECT_ATTRIBUTES ObjectAttributes, 19 EVENT_TYPE EventType, 20 BOOLEAN InitialState); 21 22typedef NTSTATUS (WINAPI *NtOpenEventFunction) ( 23 PHANDLE EventHandle, 24 ACCESS_MASK DesiredAccess, 25 POBJECT_ATTRIBUTES ObjectAttributes); 26 27// Interceptors for NtCreateEvent/NtOpenEvent 28SANDBOX_INTERCEPT NTSTATUS WINAPI TargetNtCreateEvent( 29 NtCreateEventFunction orig_CreateEvent, 30 PHANDLE event_handle, 31 ACCESS_MASK desired_access, 32 POBJECT_ATTRIBUTES object_attributes, 33 EVENT_TYPE event_type, 34 BOOLEAN initial_state); 35 36SANDBOX_INTERCEPT NTSTATUS WINAPI TargetNtOpenEvent( 37 NtOpenEventFunction orig_OpenEvent, 38 PHANDLE event_handle, 39 ACCESS_MASK desired_access, 40 POBJECT_ATTRIBUTES object_attributes); 41 42} // extern "C" 43 44} // namespace sandbox 45 46#endif // SANDBOX_SRC_SYNC_INTERCEPTION_H__ 47