aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/service/zsyscall_windows.go
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-05-11 22:13:31 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2019-05-11 22:15:02 +0200
commitfabe02d68f2e04254e5859af427e90ebc131df92 (patch)
tree4a5bddef7103b4339778f4678b08795eb87c92b6 /service/zsyscall_windows.go
parentui: allow editing existing tunnels without changing name (diff)
downloadwireguard-windows-fabe02d68f2e04254e5859af427e90ebc131df92.tar.xz
wireguard-windows-fabe02d68f2e04254e5859af427e90ebc131df92.zip
service: run UI at high integrity
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
-rw-r--r--service/zsyscall_windows.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/service/zsyscall_windows.go b/service/zsyscall_windows.go
index 38983370..9819b1f2 100644
--- a/service/zsyscall_windows.go
+++ b/service/zsyscall_windows.go
@@ -55,6 +55,7 @@ var (
procInitializeAcl = modadvapi32.NewProc("InitializeAcl")
procMakeAbsoluteSD = modadvapi32.NewProc("MakeAbsoluteSD")
procMakeSelfRelativeSD = modadvapi32.NewProc("MakeSelfRelativeSD")
+ procSetTokenInformation = modadvapi32.NewProc("SetTokenInformation")
procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock")
procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock")
procNotifyServiceStatusChangeW = modadvapi32.NewProc("NotifyServiceStatusChangeW")
@@ -234,6 +235,18 @@ func makeSelfRelativeSd(absoluteSecurityDescriptor *byte, relativeSecurityDescri
return
}
+func setTokenInformation(token windows.Token, infoClass uint32, info *byte, infoSize uint32) (err error) {
+ r1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoSize), 0, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
func createEnvironmentBlock(block *uintptr, token windows.Token, inheritExisting bool) (err error) {
var _p0 uint32
if inheritExisting {