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 11 namespace sandbox { 12 13 extern "C" { 14 15 typedef NTSTATUS (WINAPI* NtCreateEventFunction) ( 16 PHANDLE EventHandle, 17 ACCESS_MASK DesiredAccess, 18 POBJECT_ATTRIBUTES ObjectAttributes, 19 EVENT_TYPE EventType, 20 BOOLEAN InitialState); 21 22 typedef NTSTATUS (WINAPI *NtOpenEventFunction) ( 23 PHANDLE EventHandle, 24 ACCESS_MASK DesiredAccess, 25 POBJECT_ATTRIBUTES ObjectAttributes); 26 27 // Interceptors for NtCreateEvent/NtOpenEvent 28 SANDBOX_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 36 SANDBOX_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