그냥 사는 이야기

Driver Service StartType 본문

Development/System

Driver Service StartType

없다캐라 2008. 10. 21. 10:49
반응형

Driver Service

윈도우즈의 커널 드라이버 설치는 마치 윈도우즈 서비스(Windows service)처럼 간주되어 설치된다. 그래서 윈도우즈 서비스 설치하는 방식을 그대로 따르면 되는데 이 때 몇몇을 고려해 주어야 할 것이 있다.

설치도 서비스처럼 되지만 좀더 자세하게는 커널 드라이버라는 것을 명시해주고 드라이버 타입별로 어떤 식으로 시작시킬지 타입을 정해줄 수 있는데 아래의 표를 참조하면 된다.

StartType

타입 의미
SERVICE_BOOT_START 0 디바이스 드라이버를 시스템 로더에 의하여 부팅시점에 실행하도록 한다. 
SERVICE_SYSTEM_START 1 디바이스 드라이버를 시스템 부팅 시 IoInitSystem함수가 호출 되는 시점에 실행되도록 한다.
SERVICE_AUTO_START 2 부팅 시 SCM에 의하여 서비스 또는 디바이스 드라이버가 실행되도록 한다.
SERVICE_DEMAND_START 3 사용자에 의하여 StartService() 함수가  호출되어짐으로써 드라이버가 실행되도록 한다.
SERVICE_DISABLED 4 서비스를 시작하지 못하도록 한다. 

(출처 : Windows 구조와 원리 그리고 Codes - 정덕영 저)

예제

; Service Installation Section
;

[R200_Service_Inst]
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 3                  ; SERVICE_DEMAND_START
ErrorControl   = 0                  ; SERVICE_ERROR_IGNORE
LoadOrderGroup = Video
ServiceBinary  = %12%\r200.sys

레지스트리에서도 HKLM\SYSTEM\CurrentControlSet\Services 를 보면 값을 확인할 수 있다.

Comments