public PrivilegeEnabler(Process process)
        {
            lock (AccessTokenHandles)
            {
                if (AccessTokenHandles.ContainsKey(process))
                {
                    _accessTokenHandle = AccessTokenHandles[process];
                }
                else
                {
                    _accessTokenHandle =
                        process.GetAccessTokenHandle(TokenAccessRights.AdjustPrivileges | TokenAccessRights.Query);
                    AccessTokenHandles.Add(process, _accessTokenHandle);
                    _ownsHandle = true;
                }
            }

            _process = process;
        }