AddDevice : 드라이버가 참여해야할 디바이스 스택이 생성될때
pnpDispatch(IRP_MN_REMOVE_DEVICE) : 드라이버가 참여하던 디바이스 스택으로 부터 자신의 디바이스 오브젝트를 제거하라는 목적
SIMPLE_Unload : 드라이버가 더이상 필요하지 않을때(메모리에서 제거)
디바이스 스택 : 디바이스 오브젝트(스택)
MmMaploSpace()
ExAllocatePool()
ExFreePool()
MmUnMaploSpace()
Win32 수준에서 구현하기
1. GDI API 함수를 사용하는 방법
1) GetPixel() 방법 : 무척단순하다, 속도가 엄청 느리다.
2) BitBlt() 방법 : GetPixel() 방법보다는 빠르다. 하지만, 디스플레이드라이버를 사용하기에 조금 느리다.
2. DirectX9 (DirectDraw) 사용하는 방법
디스플레이 메모리를 직접 접근하기에 무척 빠르다.
DirectX API 사용에 익숙해져야 한다.
3. 커널수준에서 사용하기
- DirectX 를 사용하는 경우의 속도와 동일한 속도가 나온다.
- MmMapIoSpace()등의 DDK 함수 사용에 익숙해져야 한다.
과제 : 지금까지 배운 모든 함수를 모아서 정리
댓글 영역