-
- if (!LookupPrivilegeValue(NULL, privilege, &luid)) {
- goto out;
- }
-
- newState.PrivilegeCount = 1;
- newState.Privileges[0].Luid = luid;
- newState.Privileges[0].Attributes = (enable ? SE_PRIVILEGE_ENABLED : 0);
- ret = AdjustTokenPrivileges(hToken, FALSE, &newState, 0, NULL, NULL);
- CloseHandle(hToken);
-out:
- if (!ret) {
- fprintf(stderr, "WARNING: Failed to %s privilege %s\n",
- enable ? "enable" : "disable", privilege);
- fprintf(stderr,
- "WARNING: The program will continue, "
- "but if permission issues are\n"
- "encountered, you may need to run "
- "this program as the administrator\n");