* Enables or disables the specified privilege.
*/
static BOOL
-win32_enable_privilege(LPTSTR lpszPrivilege, BOOL bEnable)
+win32_enable_privilege(LPTSTR lpszPrivilege)
{
- BOOL bResult;
LUID luid;
HANDLE hToken;
TOKEN_PRIVILEGES tokenPrivileges;
tokenPrivileges.PrivilegeCount = 1;
tokenPrivileges.Privileges[0].Luid = luid;
- tokenPrivileges.Privileges[0].Attributes = bEnable ?
- SE_PRIVILEGE_ENABLED : 0;
+ tokenPrivileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
- bResult = AdjustTokenPrivileges(hToken, FALSE, &tokenPrivileges,
- sizeof(TOKEN_PRIVILEGES), NULL, NULL);
+ if (!AdjustTokenPrivileges(hToken, FALSE, &tokenPrivileges, 0, NULL, NULL))
+ {
+ CloseHandle(hToken);
+ return FALSE;
+ }
- CloseHandle(hToken);
+ if (GetLastError() != ERROR_SUCCESS)
+ {
+ CloseHandle(hToken);
+ return FALSE;
+ }
- return bResult && GetLastError() == ERROR_SUCCESS;
+ CloseHandle(hToken);
+ return TRUE;
}
#endif
void
PlatformId(void)
{
- static int done = FALSE;
-
- if (done)
- return;
-
OSVERSIONINFO ovi;
ovi.dwOSVersionInfoSize = sizeof(ovi);
- GetVersionEx(&ovi);
+ if (!GetVersionEx(&ovi))
+ return;
#ifdef FEAT_EVAL
vim_snprintf(windowsVersion, sizeof(windowsVersion), "%d.%d",
#ifdef HAVE_ACL
// Enable privilege for getting or setting SACLs.
- win32_enable_privilege(SE_SECURITY_NAME, TRUE);
+ if (!win32_enable_privilege(SE_SECURITY_NAME))
+ return;
#endif
- done = TRUE;
}
#ifdef _MSC_VER
# pragma warning(pop)