관리되는 스레드가 가장 (impersonation)으로 인해 사용자 컨텍스트를 변경 한시기를 확인하는 방법이 있습니까? Microsoft의 .NET 프로파일 링 API를 사용하여 관리되는 코드를 관찰하는 비 관리 코드에서이 작업을 수행 할 수 있기를 바랍니다.관리되는 스레드가 가장을 사용하여 사용자 컨텍스트를 변경 한 시점을 어떻게 알 수 있습니까?
예를 들어 일부 관리 코드가 사용자 컨텍스트 A에서 실행 중일 수 있으며 사용자 B를 가장합니다. 관리되는 코드가 API를 사용하여 수동으로 사용자 B를 가장하기 때문에 가장을 실행할 수 있습니다.
관리되지 않는 스레드에서 사용자 A에서 사용자 B로 전환하는 것을 어떻게 잡을 수 있습니까?
음, 재미 있습니다. OpenThreadToken은 스레드 핸들을 사용합니다. 내 관찰 codepath가 네이티브이며 관리되는 스레드가 가장 할 때 추적하려고하면 스레드 ID를 얻을 수 있다고 생각되지만 Windows 스레드 핸들을 얻을 수 있는지 확신 할 수 없습니다. ID를 어떻게 변환합니까? 또한 OpenThreadToken을 호출하여 관리되는 스레드를 지속적으로 폴링하여 솔루션을 구현하는 방법은 무엇입니까? –
OpenThread는 스레드 ID를 사용합니다. –