Module: Windows::Pipe

Defined in:
lib/windows/pipe.rb

Constant Summary collapse

NMPWAIT_NOWAIT =
0x00000001
NMPWAIT_WAIT_FOREVER =
0xffffffff
NMPWAIT_USE_DEFAULT_WAIT =
0x00000000
PIPE_WAIT =
0x00000000
PIPE_NOWAIT =
0x00000001
PIPE_ACCESS_INBOUND =
0x00000001
PIPE_ACCESS_OUTBOUND =
0x00000002
PIPE_ACCESS_DUPLEX =
0x00000003
PIPE_TYPE_BYTE =
0x00000000
PIPE_TYPE_MESSAGE =
0x00000004
PIPE_READMODE_BYTE =
0x00000000
PIPE_READMODE_MESSAGE =
0x00000002
PIPE_CLIENT_END =
0x00000000
PIPE_SERVER_END =
0x00000001
PIPE_UNLIMITED_INSTANCES =
255
CallNamedPipe =
Win32API.new('kernel32', 'CallNamedPipe', 'PPLPLPL', 'I')
ConnectNamedPipe =
Win32API.new('kernel32', 'ConnectNamedPipe', 'LP', 'I')
CreateNamedPipe =
Win32API.new('kernel32', 'CreateNamedPipe', 'PLLLLLLL', 'L')
CreatePipe =
Win32API.new('kernel32', 'CreatePipe', 'PPPL', 'I')
DisconnectNamedPipe =
Win32API.new('kernel32', 'DisconnectNamedPipe', 'L', 'I')
GetNamedPipeHandleState =
Win32API.new('kernel32', 'GetNamedPipeHandleState', 'LPPPPPL', 'I')
GetNamedPipeInfo =
Win32API.new('kernel32', 'GetNamedPipeInfo', 'LPPPP', 'I')
PeekNamedPipe =
Win32API.new('kernel32', 'PeekNamedPipe', 'LPLPPP', 'I')
SetNamedPipeHandleState =
Win32API.new('kernel32', 'SetNamedPipeHandleState', 'LPPP', 'I')
TransactNamedPipe =
Win32API.new('kernel32', 'TransactNamedPipe', 'LPLPLPP', 'I')
WaitNamedPipe =
Win32API.new('kernel32', 'WaitNamedPipe', 'PL', 'I')

Instance Method Summary collapse

Instance Method Details

#CallNamedPipe(name, buf, buf_size, out, out_size, read, timeout) ⇒ Object



35
36
37
# File 'lib/windows/pipe.rb', line 35

def CallNamedPipe(name, buf, buf_size, out, out_size, read, timeout)
   CallNamedPipe.call(name, buf, buf_size, out, out_size, read, timeout) != 0
end

#ConnectNamedPipe(pipe, overlapped = 0) ⇒ Object



39
40
41
# File 'lib/windows/pipe.rb', line 39

def ConnectNamedPipe(pipe, overlapped = 0)
   ConnectNamedPipe.call(pipe, overlapped) != 0
end

#CreateNamedPipe(name, open_mode, pipe_mode, max, out_size, in_size, timeout, sec_attr) ⇒ Object



43
44
45
# File 'lib/windows/pipe.rb', line 43

def CreateNamedPipe(name, open_mode, pipe_mode, max, out_size, in_size, timeout, sec_attr)
   CreateNamedPipe.call(name, open_mode, pipe_mode, max, out_size, in_size, timeout, sec_attr)
end

#CreatePipe(read_pipe, write_pipe, pipe_attr, size) ⇒ Object



47
48
49
# File 'lib/windows/pipe.rb', line 47

def CreatePipe(read_pipe, write_pipe, pipe_attr, size)
   CreatePipe.call(read_pipe, write_pipe, pipe_attr, size) != 0
end

#DisconnectNamedPipe(name) ⇒ Object



51
52
53
# File 'lib/windows/pipe.rb', line 51

def DisconnectNamedPipe(name)
   DisconnectNamedPipe.call(name) != 0
end

#GetNamedPipeHandleState(name, state, instances, count, timeout, user, size) ⇒ Object



55
56
57
# File 'lib/windows/pipe.rb', line 55

def GetNamedPipeHandleState(name, state, instances, count, timeout, user, size)
   GetNamedPipeHandleState.call(name, state, instances, count, timeout, user, size) != 0
end

#GetNamedPipeInfo(name, flags, out_size, in_size, max) ⇒ Object



59
60
61
# File 'lib/windows/pipe.rb', line 59

def GetNamedPipeInfo(name, flags, out_size, in_size, max)
   GetNamedPipeInfo.call(name, flags, out_size, in_size, max) != 0
end

#PeekNamedPipe(name, buf, buf_size, bytes_read, bytes_avail, bytes_left) ⇒ Object



63
64
65
# File 'lib/windows/pipe.rb', line 63

def PeekNamedPipe(name, buf, buf_size, bytes_read, bytes_avail, bytes_left)
   PeekNamedPipe.call(name, buf, buf_size, bytes_read, bytes_avail, bytes_left) != 0
end

#SetNamedPipeHandleState(name, mode, max, timeout) ⇒ Object



67
68
69
# File 'lib/windows/pipe.rb', line 67

def SetNamedPipeHandleState(name, mode, max, timeout)
   SetNamedPipeHandleState.call(name, mode, max, timeout) != 0
end

#TransactNamedPipe(name, in_buf, in_buf_size, out_buf, out_buf_size, read, overlapped) ⇒ Object



71
72
73
# File 'lib/windows/pipe.rb', line 71

def TransactNamedPipe(name, in_buf, in_buf_size, out_buf, out_buf_size, read, overlapped)
   TransactNamedPipe.call(name, in_buf, in_buf_size, out_buf, out_buf_size, read, overlapped) != 0
end

#WaitNamedPipe(name, timeout) ⇒ Object



75
76
77
# File 'lib/windows/pipe.rb', line 75

def WaitNamedPipe(name, timeout)
   WaitNamedPipe.call(name, timeout) != 0
end