활동 식별자 사용

프레임워크 버전 1.11 이상에서 UMDF 드라이버는 활동 식별자(ID)를 설정하고 검색할 수 있습니다. 활동 ID를 사용하면 여러 I/O 요청을 연결할 수 있으므로 ETW(Windows용 이벤트 추적) 추적을 사용하여 추적할 수 있습니다. 이 항목에서는 드라이버가 활동 ID를 사용할 수 있는 몇 가지 가능한 시나리오에 대해 설명합니다.

새 요청을 기존 요청과 연결

드라이버의 I/O 디스패치 콜백 함수에서 들어오는 요청의 결과로 여러 프레임워크 I/O 요청을 만들 수 있습니다. 드라이버는 원래 요청에서 활동 ID를 가져오고 WdfRequestRetrieveActivityIdWdfRequestSetActivityId를 호출하여 새 요청에서 설정합니다.

코드 예제는 WdfRequestRetrieveActivityId를 참조하세요.

새 요청을 기존 스레드와 연결

드라이버는 I/O 디스패치 스레드가 아닌 스레드 또는 작업 항목에서 새 I/O 요청을 만들 수 있습니다. 해당 요청에서 또는 I/O 디스패치 스레드와 연결된 활동 ID를 사용하여 이러한 요청에 대한 활동 ID를 설정할 수 있습니다. 드라이버는 EventActivityIdControl 을 호출한 다음 WdfRequestSetActivityId 를 호출하여 각 새 I/O 요청에 대한 식별자를 설정하여 현재 스레드와 연결된 활동 ID를 검색할 수 있습니다.

드라이버가 Win32 API를 호출하여 I/O 요청을 보내는 경우 원래 요청에서 활동 ID를 검색하여 스레드로 전파할 수 있습니다. 그런 다음 I/O 관리자는 스레드와 연결된 활동 ID를 요청에 대한 응답으로 생성하는 I/O 요청 패킷(IRP)에 적용합니다.