| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_UPDATER_WIN_USER_INFO_H_ |
| #define CHROME_UPDATER_WIN_USER_INFO_H_ |
| |
| #include <windows.h> |
| |
| #include <string> |
| |
| #include "base/win/atl.h" |
| |
| namespace updater { |
| |
| // Gets the user name, domain, and the SID associated with the access token |
| // of the current process. |
| HRESULT GetProcessUser(std::wstring* name, |
| std::wstring* domain, |
| std::wstring* sid); |
| |
| // Gets SID associated with the access token of the current process. |
| HRESULT GetProcessUserSid(CSid* sid); |
| |
| // Returns true if the current user is NT AUTHORITY\SYSTEM. |
| bool IsLocalSystemUser(); |
| |
| // Gets the user SID associated with the access token of the current thread if |
| // the thread is impersonating. If the thread is not impersonating, the API |
| // fails with ERROR_NO_TOKEN. |
| HRESULT GetThreadUserSid(std::wstring* sid); |
| |
| } // namespace updater |
| |
| #endif // CHROME_UPDATER_WIN_USER_INFO_H_ |