diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-11 22:13:31 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-11 22:15:02 +0200 |
commit | 8e5b2564c8c51ca4428a7244fb52483ffc7c4c25 (patch) | |
tree | 4a5bddef7103b4339778f4678b08795eb87c92b6 /service/zsyscall_windows.go | |
parent | ui: allow editing existing tunnels without changing name (diff) | |
download | wireguard-windows-8e5b2564c8c51ca4428a7244fb52483ffc7c4c25.tar.xz wireguard-windows-8e5b2564c8c51ca4428a7244fb52483ffc7c4c25.zip |
service: run UI at high integrity
Diffstat (limited to '')
-rw-r--r-- | service/zsyscall_windows.go | 13 |
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 { |