Soft Ware/Windows Driver

디바이스 정리

달려가보자 2011. 11. 21. 15:24
디바이스 드라이버 의 개념 및 정리

드라이버들은 자신들을 나타낼수 있는 Device_Object를 만든다.

그 Device_Object는 구조의 형식은 그 틀이 정해져 있다. 틀이 정해져 있으면 무슨 문제가 있을까?

한번 생각봐야겠다. 그럼 내가 더 필요한 정보를 삽입할수 없다는 문제점이 있네요.. 

그래서 그 방법을 해결하기 위해서 Device_Object 구조체를 살펴 보면 ....

Device_Extension이라는 포인터 변수가 있다 +.+

이 녀석이 무엇을 하는 녀석인가 하고 보면 위의 문제점을 해결해 줄수 있는 녀석이였다 !!!!.

그 녀석을 따라가면 메모리 공간이 있다 바로 거기가 사용자가 사용할수 있는 공간이다 !!!..

이해가 안되시죠? 저도 많이 힘들었습니다. 머리로 그릴려고 계속 해도 안그려지더라구요 ㅠㅠ

 
Device_Object
->device_extension
→→→→→→→→→ 따라가 !!  Device_Extension 공간 !! 

이런 그림이 그려지겠죠? ㅎㅎㅎ

그럼 좀더  큰 틀을 보면서 생각해 보겠습니다.

장치들은 자신들을 나타낼수 있는 Driver_Object를 만든다

그리고 드라이버들은 자신들만의 다비이스 스택을 가지게 된다 !! +.+

여기서 디바이스 스택이라는 개념이 나왔다 !! 야호~~~~

디바이스 스택이 무엇인지 설명하겠습니다.

디바이스 스택은 각 드라이버들이 자신들을 나타내는 Device_Object를 이 스택에 차곡차곡 쌓기 위한

공간이다 !!!.

예를 들어보자 

난 군대를 다녀왔으니 군대 이야기를 해보자 군대에서 일렬로 줄을 섰다고 생각하자 

그럼 그 숫자를 세기 위해서 어떤 방법을 쓰나... 처음 주자가 하나 를 외치고 다음사람을 보면서

둘을 보면서 외친다.

자 이런식으로 해서 마지막 사람들까지 전달된다. 이렇게 신호를 전달하면 그 다음 사람이 인식하고 

그 다음 사람에게 또 다시 전달한다.

디바이스 스택에 쌓인 각종 드라이버들이 만들어 놓은 디바이스_오브젝트도 이렇게 전달한다.