|  | // 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_FILESYSTEM_INTERCEPTION_H_ | 
|  | #define SANDBOX_WIN_SRC_FILESYSTEM_INTERCEPTION_H_ | 
|  |  | 
|  | #include "sandbox/win/src/nt_internals.h" | 
|  | #include "sandbox/win/src/sandbox_types.h" | 
|  |  | 
|  | namespace sandbox { | 
|  |  | 
|  | extern "C" { | 
|  |  | 
|  | // Interception of NtCreateFile on the child process. | 
|  | SANDBOX_INTERCEPT NTSTATUS WINAPI | 
|  | TargetNtCreateFile(NtCreateFileFunction orig_CreateFile, | 
|  | PHANDLE file, | 
|  | ACCESS_MASK desired_access, | 
|  | POBJECT_ATTRIBUTES object_attributes, | 
|  | PIO_STATUS_BLOCK io_status, | 
|  | PLARGE_INTEGER allocation_size, | 
|  | ULONG file_attributes, | 
|  | ULONG sharing, | 
|  | ULONG disposition, | 
|  | ULONG options, | 
|  | PVOID ea_buffer, | 
|  | ULONG ea_length); | 
|  |  | 
|  | // Interception of NtOpenFile on the child process. | 
|  | SANDBOX_INTERCEPT NTSTATUS WINAPI | 
|  | TargetNtOpenFile(NtOpenFileFunction orig_OpenFile, | 
|  | PHANDLE file, | 
|  | ACCESS_MASK desired_access, | 
|  | POBJECT_ATTRIBUTES object_attributes, | 
|  | PIO_STATUS_BLOCK io_status, | 
|  | ULONG sharing, | 
|  | ULONG options); | 
|  |  | 
|  | // Interception of NtQueryAtttributesFile on the child process. | 
|  | // It should never be called directly. | 
|  | SANDBOX_INTERCEPT NTSTATUS WINAPI | 
|  | TargetNtQueryAttributesFile(NtQueryAttributesFileFunction orig_QueryAttributes, | 
|  | POBJECT_ATTRIBUTES object_attributes, | 
|  | PFILE_BASIC_INFORMATION file_attributes); | 
|  |  | 
|  | // Interception of NtQueryFullAtttributesFile on the child process. | 
|  | // It should never be called directly. | 
|  | SANDBOX_INTERCEPT NTSTATUS WINAPI TargetNtQueryFullAttributesFile( | 
|  | NtQueryFullAttributesFileFunction orig_QueryAttributes, | 
|  | POBJECT_ATTRIBUTES object_attributes, | 
|  | PFILE_NETWORK_OPEN_INFORMATION file_attributes); | 
|  |  | 
|  | // Interception of NtSetInformationFile on the child process. | 
|  | SANDBOX_INTERCEPT NTSTATUS WINAPI | 
|  | TargetNtSetInformationFile(NtSetInformationFileFunction orig_SetInformationFile, | 
|  | HANDLE file, | 
|  | PIO_STATUS_BLOCK io_status, | 
|  | PVOID file_information, | 
|  | ULONG length, | 
|  | FILE_INFORMATION_CLASS file_information_class); | 
|  |  | 
|  | }  // extern "C" | 
|  |  | 
|  | }  // namespace sandbox | 
|  |  | 
|  | #endif  // SANDBOX_WIN_SRC_FILESYSTEM_INTERCEPTION_H_ |