Tobias Klauser submitted this change.
windows: add WTSGetActiveConsoleSessionId
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-wtsgetactiveconsolesessionid
Change-Id: I3c180bbb3a768beac6633e78514fac4e3837b69d
Reviewed-on: https://go-review.googlesource.com/c/sys/+/331909
Reviewed-by: Jason A. Donenfeld <Ja...@zx2c4.com>
Reviewed-by: Alex Brainman <alex.b...@gmail.com>
Reviewed-by: Brad Fitzpatrick <brad...@golang.org>
Trust: Jason A. Donenfeld <Ja...@zx2c4.com>
Trust: Brad Fitzpatrick <brad...@golang.org>
Trust: Dmitri Shuralyov <dmit...@golang.org>
Run-TryBot: Tobias Klauser <tobias....@gmail.com>
TryBot-Result: Go Bot <go...@golang.org>
---
M windows/security_windows.go
M windows/zsyscall_windows.go
2 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/windows/security_windows.go b/windows/security_windows.go
index 111c10d..d414ef1 100644
--- a/windows/security_windows.go
+++ b/windows/security_windows.go
@@ -889,6 +889,7 @@
//sys WTSQueryUserToken(session uint32, token *Token) (err error) = wtsapi32.WTSQueryUserToken
//sys WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) = wtsapi32.WTSEnumerateSessionsW
//sys WTSFreeMemory(ptr uintptr) = wtsapi32.WTSFreeMemory
+//sys WTSGetActiveConsoleSessionId() (sessionID uint32)
type ACL struct {
aclRevision byte
diff --git a/windows/zsyscall_windows.go b/windows/zsyscall_windows.go
index 148de0f..2083ec3 100644
--- a/windows/zsyscall_windows.go
+++ b/windows/zsyscall_windows.go
@@ -346,6 +346,7 @@
procVirtualLock = modkernel32.NewProc("VirtualLock")
procVirtualProtect = modkernel32.NewProc("VirtualProtect")
procVirtualUnlock = modkernel32.NewProc("VirtualUnlock")
+ procWTSGetActiveConsoleSessionId = modkernel32.NewProc("WTSGetActiveConsoleSessionId")
procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects")
procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject")
procWriteConsoleW = modkernel32.NewProc("WriteConsoleW")
@@ -2992,6 +2993,12 @@
return
}
+func WTSGetActiveConsoleSessionId() (sessionID uint32) {
+ r0, _, _ := syscall.Syscall(procWTSGetActiveConsoleSessionId.Addr(), 0, 0, 0, 0)
+ sessionID = uint32(r0)
+ return
+}
+
func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {
var _p0 uint32
if waitAll {
To view, visit change 331909. To unsubscribe, or for help writing mail filters, visit settings.