winlean additions; preparing for osproc patch to use named pipes
This commit is contained in:
parent
c852143f3a
commit
4e44ded2be
1 changed files with 32 additions and 0 deletions
|
|
@ -108,6 +108,13 @@ const
|
||||||
|
|
||||||
CREATE_UNICODE_ENVIRONMENT* = 1024'i32
|
CREATE_UNICODE_ENVIRONMENT* = 1024'i32
|
||||||
|
|
||||||
|
PIPE_ACCESS_DUPLEX* = 0x00000003'i32
|
||||||
|
PIPE_ACCESS_INBOUND* = 1'i32
|
||||||
|
PIPE_ACCESS_OUTBOUND* = 2'i32
|
||||||
|
PIPE_NOWAIT* = 0x00000001'i32
|
||||||
|
SYNCHRONIZE* = 0x00100000'i32
|
||||||
|
FILE_FLAG_WRITE_THROUGH* = 0x80000000'i32
|
||||||
|
|
||||||
proc closeHandle*(hObject: Handle): WINBOOL {.stdcall, dynlib: "kernel32",
|
proc closeHandle*(hObject: Handle): WINBOOL {.stdcall, dynlib: "kernel32",
|
||||||
importc: "CloseHandle".}
|
importc: "CloseHandle".}
|
||||||
|
|
||||||
|
|
@ -125,6 +132,19 @@ proc createPipe*(hReadPipe, hWritePipe: var Handle,
|
||||||
nSize: int32): WINBOOL{.
|
nSize: int32): WINBOOL{.
|
||||||
stdcall, dynlib: "kernel32", importc: "CreatePipe".}
|
stdcall, dynlib: "kernel32", importc: "CreatePipe".}
|
||||||
|
|
||||||
|
proc createNamedPipe*(lpName: WideCString,
|
||||||
|
dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize,
|
||||||
|
nInBufferSize, nDefaultTimeOut: int32,
|
||||||
|
lpSecurityAttributes: ptr SECURITY_ATTRIBUTES): Handle {.
|
||||||
|
stdcall, dynlib: "kernel32", importc: "CreateNamedPipeW".}
|
||||||
|
|
||||||
|
proc peekNamedPipe*(hNamedPipe: Handle, lpBuffer: pointer=nil,
|
||||||
|
nBufferSize: int32 = 0,
|
||||||
|
lpBytesRead: ptr int32 = nil,
|
||||||
|
lpTotalBytesAvail: ptr int32 = nil,
|
||||||
|
lpBytesLeftThisMessage: ptr int32 = nil): bool {.
|
||||||
|
stdcall, dynlib: "kernel32", importc: "PeekNamedPipe".}
|
||||||
|
|
||||||
when useWinUnicode:
|
when useWinUnicode:
|
||||||
proc createProcessW*(lpApplicationName, lpCommandLine: WideCString,
|
proc createProcessW*(lpApplicationName, lpCommandLine: WideCString,
|
||||||
lpProcessAttributes: ptr SECURITY_ATTRIBUTES,
|
lpProcessAttributes: ptr SECURITY_ATTRIBUTES,
|
||||||
|
|
@ -615,12 +635,24 @@ const
|
||||||
|
|
||||||
FILE_FLAG_BACKUP_SEMANTICS* = 33554432'i32
|
FILE_FLAG_BACKUP_SEMANTICS* = 33554432'i32
|
||||||
FILE_FLAG_OPEN_REPARSE_POINT* = 0x00200000'i32
|
FILE_FLAG_OPEN_REPARSE_POINT* = 0x00200000'i32
|
||||||
|
DUPLICATE_SAME_ACCESS* = 2
|
||||||
|
FILE_READ_DATA* = 0x00000001 # file & pipe
|
||||||
|
FILE_WRITE_DATA* = 0x00000002 # file & pipe
|
||||||
|
|
||||||
# Error Constants
|
# Error Constants
|
||||||
const
|
const
|
||||||
ERROR_ACCESS_DENIED* = 5
|
ERROR_ACCESS_DENIED* = 5
|
||||||
ERROR_HANDLE_EOF* = 38
|
ERROR_HANDLE_EOF* = 38
|
||||||
|
|
||||||
|
proc duplicateHandle*(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE,
|
||||||
|
hTargetProcessHandle: HANDLE,
|
||||||
|
lpTargetHandle: ptr HANDLE,
|
||||||
|
dwDesiredAccess: DWORD, bInheritHandle: WINBOOL,
|
||||||
|
dwOptions: DWORD): WINBOOL{.stdcall, dynlib: "kernel32",
|
||||||
|
importc: "DuplicateHandle".}
|
||||||
|
proc getCurrentProcess*(): HANDLE{.stdcall, dynlib: "kernel32",
|
||||||
|
importc: "GetCurrentProcess".}
|
||||||
|
|
||||||
when useWinUnicode:
|
when useWinUnicode:
|
||||||
proc createFileW*(lpFileName: WideCString, dwDesiredAccess, dwShareMode: DWORD,
|
proc createFileW*(lpFileName: WideCString, dwDesiredAccess, dwShareMode: DWORD,
|
||||||
lpSecurityAttributes: pointer,
|
lpSecurityAttributes: pointer,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue