2016-07-01 4 views
0

위키 피 디아에서 나는 다음과 같이 쓰여 있습니다 :장치 드라이버는 어떻게 요청됩니까?

"호출 프로그램이 드라이버에서 루틴을 호출 할 때 드라이버는 장치에 명령을 실행합니다." (https://en.wikipedia.org/wiki/Device_driver)

프로그램이 드라이버에서 "루틴을 호출"하면 어떻게됩니까? 프로세스 간 통신을 통해 드라이버에 연락합니까? 장치 드라이버는로드 된 후에도 지속적으로 실행되지만 내 프로그램이 '어깨에서 탭'하여 무언가를 요청할 수 있는지 이해하지 못합니다. 드라이버는 플랫폼에 따라 근본적으로 다른가요?

답변

1

통신하려는 드라이버가있는 특정 장치를 열 수 있습니다. CreateFile 명령을 사용하여 장치 핸들을 연 다음 IOCTL 또는 WriteFile을 사용하여 드라이버와 통신 할 수 있습니다. DeviceIoControl을 사용하여 드라이버의 IOCTL을 호출 할 수 있습니다. 이전에 IOCTL 코드를 알아야합니다. 한 번 제공된 링크를 읽는 것이 좋습니다. http://www.codeproject.com/Articles/9504/Driver-Development-Part-Introduction-to-Drivers

장치 드라이버와 통신하는 방법을 알려주는 "장치 드라이버와 통신"섹션이 있습니다. 나는 이것이 운전자와의 의사 소통에 대해 의심의 여지가 많이 없기를 바랍니다.

관련 문제