메모리 풀 관리(ExAllocatePoolWithTag)

IT/드라이버개발 2010. 12. 29. 15:05 Posted by Imtraveller
반응형

드라이버 작업중 누수되는 NonPagedPool 메모리에 대한 확인방법.
할당한 메모리가 점점 쌓여 일정시간이 흐른후 BSOD가 발생한 경우가 발생하여 확인 작업을 진행하였다.

ExAllocatePoolWithTag()를 이용하여 할당한 NonPagedPool 메모리가 환원되었는지 확인하는 방법은 아래와 같다. 
메모리 추적은 OSR의 PoolTag를 이용하였다.


풀태그를 각각의 메모리 할당하는 종류별로 분류하여 설정하고, 그 해당 Pool Tag의 메모리 Alloc-Frees-Bytes Used를 확인한다.
Bytes Used는 메모리 해제가 정상적으로 이루어진 경우 0이 되어야 하는데, 메모리 해제 누락시에 이 사이즈가 점점 증가한다.
증가하는 해당 Tag의 메모리 해제하는 부분을 잘 살펴 보면된다.

다운로드 pool tag
http://www.osronline.com/article.cfm?article=98



반응형