110 {
111 if (!global::Interop.Advapi32.LookupPrivilegeValue(null, "SeDebugPrivilege", out var lpLuid))
112 {
113 return;
114 }
116 try
117 {
118 if (global::Interop.Advapi32.OpenProcessToken(global::Interop.Kernel32.GetCurrentProcess(), 32, out TokenHandle))
119 {
120 Unsafe.SkipInit(out global::Interop.Advapi32.TOKEN_PRIVILEGE tOKEN_PRIVILEGE);
121 tOKEN_PRIVILEGE.PrivilegeCount = 1u;
122 tOKEN_PRIVILEGE.Privileges.Luid = lpLuid;
123 tOKEN_PRIVILEGE.Privileges.Attributes = 2u;
124 global::Interop.Advapi32.AdjustTokenPrivileges(TokenHandle, DisableAllPrivileges: false, &tOKEN_PRIVILEGE, 0u, null, null);
125 }
126 }
127 finally
128 {
129 TokenHandle?.Dispose();
130 }
131 }