1. DeviceTree
kernel 에 등록된 device driver 의 정보를 표현한다.
device name, devObject address, attach device 정보
2. traceview
driver 의 WMI log 를 출력한다.
WMI log 를 driver 가 생성하기 위한 사전작업
1. GUID 를 만든다.
WINDDK\...\tool\other\genguid.exe 에서 registry type 으로 id 를 생성한다.
2. WPP_CONTROL_GUIDS 매크로를 정의한다.
3. makefile 에
RUN_WPP= $(sources) -km 과 C_DEFINES = $(C_DEFINES) -DEVENT_TRACING 을 적당한 위치에 추가 한다.
4. 아래의 코드가 WMI log 를 사용하는 .c 의 제일 위에 위치시킨다.
WMI log 발생을 위한 header 가 필요한데 이것은 DDK tool 에서 작성하여 .tmh file 로 만든다.
이것을 각 source 에서 가져다 쓸 수 있도록 한다.
#include
5. WMI log 초기화 : DriverEntry 에 WPP_INIT_TRACING(DriverObject, RegistryPath); 를 추가하고,
Unload 에 WPP_CLEANUP(DriverObject); 를 추가한다.
6. DoTraceMessage ( ) 을 이용하여 log 를 발생한다.
함수이름을 바꾸기를 원하면 Makefile 에 -func 에 대신사용할 함수이름을 지정한다.
RUN_WPP=$(SOURCES)\
-km \
-func:ToasterDebugPrint(LEVEL,MSG,...)
댓글 없음:
댓글 쓰기