internal WindowsImpersonationContext(IntPtr token) { if (token == ZeroHandle) { m_userToken = ZeroHandle; } else { m_userToken = WindowsIdentity._DuplicateHandle(token, false); if (m_userToken == ZeroHandle) { throw new ArgumentException(Environment.GetResourceString("Argument_InvalidToken")); } } }