- SIMPLE_PnpDispatch() -
- 이 함수는 윈도상의 pnp 관리자 모듈이 SIMPLE 드라이버에게 pnp 사건이 발생 될때마다 이를 통지하는 역할로 사용
- 이 함수는 윈도상의 pnp 관리자 모듈이 SIMPLE 드라이버에게 pnp 사건이 발생 될때마다 이를 통지하는 역할로 사용
- pnp 관리자 : 사용자 모드 컴포넌트의 도움을 받아 디바이스 의 드라이버를 식별
- 여기서 인자값 DeviceObject는 이전에 SIMPLE_AddDevice함수에서 SIMPLE 드라이버가 만들어서 디바이스 스택에 올렸던 바로 그 Device_Object가 여기에 해당
- IRP는 내부적으로 자료구조 스택과 같은 형태의 메모리를 가진다.
- pStack 은 현재 스택의 Top 포인터가 가르키는 메모리 주소를 가져와서 보관
- IoGetCurrenIrpStackLocation() 함수는 IRP 내의 스택 메모리를 찾아서 현재 TOP 포인터를 구해서 반환, 이곳에는 SIMPLE 드라이버가 처리해야 하는 구체적인 명령어와 파라미터가 보관
- pStack->MinorFunction 는 pnp 관리자가 보내는 IRP 이다. 여기에는 구체적인 PnP 명령어의 의미가 담겨져 있다.
- IoDetachDevice()는 현존하는 디바이스 스택에서 SIMPLE 드라이버가 사용하는 DEVICE_Object를 떼어내버리는 역할을 수행
- IoDeleteDevice()는 SIMPLE 드라이버가 생성했던 Device_Object를 메모리에서 제거하도록 요청하는 함수
- IoCallDriver()는 IRP 명령어를 다른 드라이버에 보내는 역할을 수행, 여기서 다음 드라이버는 NextLayerDeviceObject라는 이름의 Device_Object만 있으면 된다.
'Soft Ware > Windows Driver' 카테고리의 다른 글
익큐티브 스핀 록에 대해서 ~~~ (0) | 2012.02.17 |
---|---|
스핀록에 대해서 ~~ (0) | 2012.02.17 |
디바이스 정리 (0) | 2011.11.21 |
윈도우 디바이스 드라이버 & Simple (0) | 2011.11.16 |
윈도우 디바이스 드라이버 & Simple 예제 (0) | 2011.11.16 |