mirror of
https://github.com/rwinkhart/go-winio.git
synced 2026-09-02 23:27:36 -04:00
Add support for flushing and disconnecting named pipes (#292)
* Add support for disconnecting pipes Signed-off-by: David Golub <david.golub@mongodb.com> * Expose Flush Signed-off-by: David Golub <david.golub@mongodb.com> * Add test Signed-off-by: David Golub <david.golub@mongodb.com> * Fix lint errors Signed-off-by: David Golub <david.golub@mongodb.com> --------- Signed-off-by: David Golub <david.golub@mongodb.com>
This commit is contained in:
@@ -65,6 +65,7 @@ var (
|
||||
procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe")
|
||||
procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort")
|
||||
procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW")
|
||||
procDisconnectNamedPipe = modkernel32.NewProc("DisconnectNamedPipe")
|
||||
procGetCurrentThread = modkernel32.NewProc("GetCurrentThread")
|
||||
procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW")
|
||||
procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo")
|
||||
@@ -331,6 +332,14 @@ func _createNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances
|
||||
return
|
||||
}
|
||||
|
||||
func disconnectNamedPipe(pipe syscall.Handle) (err error) {
|
||||
r1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(pipe), 0, 0)
|
||||
if r1 == 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func getCurrentThread() (h syscall.Handle) {
|
||||
r0, _, _ := syscall.Syscall(procGetCurrentThread.Addr(), 0, 0, 0, 0)
|
||||
h = syscall.Handle(r0)
|
||||
|
||||
Reference in New Issue
Block a user