15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sandbox/win/src/nt_internals.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sandbox/win/src/sandbox_types.h"
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef SANDBOX_SRC_NAMED_PIPE_INTERCEPTION_H__
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SANDBOX_SRC_NAMED_PIPE_INTERCEPTION_H__
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace sandbox {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern "C" {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef HANDLE (WINAPI *CreateNamedPipeWFunction) (
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    LPCWSTR lpName,
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    DWORD dwOpenMode,
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    DWORD dwPipeMode,
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    DWORD nMaxInstances,
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    DWORD nOutBufferSize,
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    DWORD nInBufferSize,
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    DWORD nDefaultTimeOut,
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    LPSECURITY_ATTRIBUTES lpSecurityAttributes);
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Interception of CreateNamedPipeW in kernel32.dll
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SANDBOX_INTERCEPT HANDLE WINAPI TargetCreateNamedPipeW(
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    CreateNamedPipeWFunction orig_CreateNamedPipeW, LPCWSTR pipe_name,
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    DWORD open_mode, DWORD pipe_mode, DWORD max_instance, DWORD out_buffer_size,
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    DWORD in_buffer_size, DWORD default_timeout,
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    LPSECURITY_ATTRIBUTES security_attributes);
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // extern "C"
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace sandbox
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // SANDBOX_SRC_NAMED_PIPE_INTERCEPTION_H__
37