1 // Copyright © 2017 winapi-rs developers 2 // Licensed under the Apache License, Version 2.0 3 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 4 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 5 // All files in the project carrying such notice may not be copied, modified, or distributed 6 // except according to those terms. 7 use shared::minwindef::{BOOL, DWORD, LPDWORD, LPVOID, ULONG}; 8 use um::minwinbase::{LPOVERLAPPED, LPSECURITY_ATTRIBUTES}; 9 use um::winnt::{HANDLE, LPCWSTR, LPWSTR, PHANDLE}; 10 extern "system" { CreatePipe( hReadPipe: PHANDLE, hWritePipe: PHANDLE, lpPipeAttributes: LPSECURITY_ATTRIBUTES, nSize: DWORD, ) -> BOOL11 pub fn CreatePipe( 12 hReadPipe: PHANDLE, 13 hWritePipe: PHANDLE, 14 lpPipeAttributes: LPSECURITY_ATTRIBUTES, 15 nSize: DWORD, 16 ) -> BOOL; ConnectNamedPipe( hNamedPipe: HANDLE, lpOverlapped: LPOVERLAPPED, ) -> BOOL17 pub fn ConnectNamedPipe( 18 hNamedPipe: HANDLE, 19 lpOverlapped: LPOVERLAPPED, 20 ) -> BOOL; DisconnectNamedPipe( hNamedPipe: HANDLE, ) -> BOOL21 pub fn DisconnectNamedPipe( 22 hNamedPipe: HANDLE, 23 ) -> BOOL; SetNamedPipeHandleState( hNamedPipe: HANDLE, lpMode: LPDWORD, lpMaxCollectionCount: LPDWORD, lpCollectDataTimeout: LPDWORD, ) -> BOOL24 pub fn SetNamedPipeHandleState( 25 hNamedPipe: HANDLE, 26 lpMode: LPDWORD, 27 lpMaxCollectionCount: LPDWORD, 28 lpCollectDataTimeout: LPDWORD, 29 ) -> BOOL; PeekNamedPipe( hNamedPipe: HANDLE, lpBuffer: LPVOID, nBufferSize: DWORD, lpBytesRead: LPDWORD, lpTotalBytesAvail: LPDWORD, lpBytesLeftThisMessage: LPDWORD, ) -> BOOL30 pub fn PeekNamedPipe( 31 hNamedPipe: HANDLE, 32 lpBuffer: LPVOID, 33 nBufferSize: DWORD, 34 lpBytesRead: LPDWORD, 35 lpTotalBytesAvail: LPDWORD, 36 lpBytesLeftThisMessage: LPDWORD, 37 ) -> BOOL; TransactNamedPipe( hNamedPipe: HANDLE, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesRead: LPDWORD, lpOverlapped: LPOVERLAPPED, ) -> BOOL38 pub fn TransactNamedPipe( 39 hNamedPipe: HANDLE, 40 lpInBuffer: LPVOID, 41 nInBufferSize: DWORD, 42 lpOutBuffer: LPVOID, 43 nOutBufferSize: DWORD, 44 lpBytesRead: LPDWORD, 45 lpOverlapped: LPOVERLAPPED, 46 ) -> BOOL; CreateNamedPipeW( lpName: LPCWSTR, dwOpenMode: DWORD, dwPipeMode: DWORD, nMaxInstances: DWORD, nOutBufferSize: DWORD, nInBufferSize: DWORD, nDefaultTimeOut: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, ) -> HANDLE47 pub fn CreateNamedPipeW( 48 lpName: LPCWSTR, 49 dwOpenMode: DWORD, 50 dwPipeMode: DWORD, 51 nMaxInstances: DWORD, 52 nOutBufferSize: DWORD, 53 nInBufferSize: DWORD, 54 nDefaultTimeOut: DWORD, 55 lpSecurityAttributes: LPSECURITY_ATTRIBUTES, 56 ) -> HANDLE; WaitNamedPipeW( lpNamedPipeName: LPCWSTR, nTimeOut: DWORD, ) -> BOOL57 pub fn WaitNamedPipeW( 58 lpNamedPipeName: LPCWSTR, 59 nTimeOut: DWORD, 60 ) -> BOOL; GetNamedPipeClientComputerNameW( Pipe: HANDLE, ClientComputerName: LPWSTR, ClientComputerNameLength: ULONG, ) -> BOOL61 pub fn GetNamedPipeClientComputerNameW( 62 Pipe: HANDLE, 63 ClientComputerName: LPWSTR, 64 ClientComputerNameLength: ULONG, 65 ) -> BOOL; ImpersonateNamedPipeClient( hNamedPipe: HANDLE, ) -> BOOL66 pub fn ImpersonateNamedPipeClient( 67 hNamedPipe: HANDLE, 68 ) -> BOOL; GetNamedPipeInfo( hNamedPipe: HANDLE, lpFlags: LPDWORD, lpOutBufferSize: LPDWORD, lpInBufferSize: LPDWORD, lpMaxInstances: LPDWORD, ) -> BOOL69 pub fn GetNamedPipeInfo( 70 hNamedPipe: HANDLE, 71 lpFlags: LPDWORD, 72 lpOutBufferSize: LPDWORD, 73 lpInBufferSize: LPDWORD, 74 lpMaxInstances: LPDWORD, 75 ) -> BOOL; GetNamedPipeHandleStateW( hNamedPipe: HANDLE, lpState: LPDWORD, lpCurInstances: LPDWORD, lpMaxCollectionCount: LPDWORD, lpCollectDataTimeout: LPDWORD, lpUserName: LPWSTR, nMaxUserNameSize: DWORD, ) -> BOOL76 pub fn GetNamedPipeHandleStateW( 77 hNamedPipe: HANDLE, 78 lpState: LPDWORD, 79 lpCurInstances: LPDWORD, 80 lpMaxCollectionCount: LPDWORD, 81 lpCollectDataTimeout: LPDWORD, 82 lpUserName: LPWSTR, 83 nMaxUserNameSize: DWORD, 84 ) -> BOOL; CallNamedPipeW( lpNamedPipeName: LPCWSTR, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesRead: LPDWORD, nTimeOut: DWORD, ) -> BOOL85 pub fn CallNamedPipeW( 86 lpNamedPipeName: LPCWSTR, 87 lpInBuffer: LPVOID, 88 nInBufferSize: DWORD, 89 lpOutBuffer: LPVOID, 90 nOutBufferSize: DWORD, 91 lpBytesRead: LPDWORD, 92 nTimeOut: DWORD, 93 ) -> BOOL; 94 } 95