func releaseThreadToken(h windows.Token) { err := revertToSelf() if err != nil { panic(err) } h.Close() }
// EnableProcessPrivileges enables privileges globally for the process. func EnableProcessPrivileges(names []string) error { privileges, err := mapPrivileges(names) if err != nil { return err } p, _ := windows.GetCurrentProcess() var token windows.Token err = windows.OpenProcessToken(p, windows.TOKEN_ADJUST_PRIVILEGES|windows.TOKEN_QUERY, &token) if err != nil { return err } defer token.Close() return adjustPrivileges(token, privileges) }