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_POLICY_TARGET_H__ 9 #define SANDBOX_SRC_POLICY_TARGET_H__ 10 11 namespace sandbox { 12 13 struct CountedParameterSetBase; 14 15 // Performs a policy lookup and returns true if the request should be passed to 16 // the broker process. 17 bool QueryBroker(int ipc_id, CountedParameterSetBase* params); 18 19 extern "C" { 20 21 // Interception of NtSetInformationThread on the child process. 22 // It should never be called directly. 23 SANDBOX_INTERCEPT NTSTATUS WINAPI TargetNtSetInformationThread( 24 NtSetInformationThreadFunction orig_SetInformationThread, HANDLE thread, 25 NT_THREAD_INFORMATION_CLASS thread_info_class, PVOID thread_information, 26 ULONG thread_information_bytes); 27 28 // Interception of NtOpenThreadToken on the child process. 29 // It should never be called directly 30 SANDBOX_INTERCEPT NTSTATUS WINAPI TargetNtOpenThreadToken( 31 NtOpenThreadTokenFunction orig_OpenThreadToken, HANDLE thread, 32 ACCESS_MASK desired_access, BOOLEAN open_as_self, PHANDLE token); 33 34 // Interception of NtOpenThreadTokenEx on the child process. 35 // It should never be called directly 36 SANDBOX_INTERCEPT NTSTATUS WINAPI TargetNtOpenThreadTokenEx( 37 NtOpenThreadTokenExFunction orig_OpenThreadTokenEx, HANDLE thread, 38 ACCESS_MASK desired_access, BOOLEAN open_as_self, ULONG handle_attributes, 39 PHANDLE token); 40 41 } // extern "C" 42 43 } // namespace sandbox 44 45 #endif // SANDBOX_SRC_POLICY_TARGET_H__ 46