본문 바로가기

Programming/Windows&C#

[Windows/WinAPI] WindowsAPI / RegisterServiceCtrlHandler

728x90
반응형

SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandler( _In_  LPCTSTR lpServiceName,                -----① _In_  LPHANDLER_FUNCTION lpHandlerProc      -----② );




함수설명 :

서비스 시작, 종료 재시작 등을 관리하는 콜백을 등록할 때 사용. 성공시 서비스 상태 변수가 넘어온다.


① lpServiceName : 서비스 이름


② lpHandleProc : 서비스 시작, 종료, 재시작 등의 상태가 넘어오는 콜백



콜백 함수 - Handler()


VOID WINAPI Handler(
  _In_  DWORD fdwControl
);



 제어 코드

 의미 

 SERVICE_CONTROL_CONTINUE

 0x00000003

 다시 시작 해야하는 일시 중지된 서비스

 SERVICE_CONTROL_INTERROGATE

 0x00000004

 서비스 제어 매니저에 그것의 현재 상태 정보를 보고하는 서비스를 통지한다. 핸들러는 NO_ERROR를 반환하며 SCM에서는 현재 서비스 상태를 인식한다.

 SERVICE_CONTROL_NETBINDADD

 0x00000007

 바인딩에 새로운 구성 요소가 있다는 것을 네트워스 서비스에 알린다. 이 서비스는 새로운 구성 요소에 바인딩 해야한다.

 SERVICE_CONTROL_NETBINDDISABLE

 0X0000000A

 바인딩중 하나가 비 활성화 된 것을 네트워크 서비스에 알린다. 서비스는 바인딩 정보를 다시 읽고 바인딩을 제거해야한다.

 SERVICE_CONTROL_NETBINDENABLE

 0x00000009

 잘못된 바이딩이 활성화되어있는 네트워크 서비스를 알린다. 서비스는 바인딩 정보를 다시 읽고 새로운 바인딩을 추가 해야 한다.

 SERVICE_CONTROL_NETBINDREMOVE

 0x00000008

바인딩에 대한 구성 요소가 제거 된 네트워크 서비스를 알린다. 서비스는 바인딩 정보를 다시 읽고 제거 된 구성 요소에서 바인딩을 해제해야 한다.  

 SERVICE_CONTROL_PARAMCHANGE

 0x00000006

 서비스의 시작 매개 변수가 변경되었음을 알린다.

서비스는 바뀐 시작 매개 변수를 다시 읽어야 한다.

 SERVICE_CONTROL_PAUSE

 0x00000002

 일시 중지해야하는 서비스를 알린다.

 SERVICE_CONTROL_SHUTDOWN
 0x00000005

 시스템이 정리 작업을 할 수 잇는 서비스 종료를 알린다.

 SERVICE_CONTROL_STOP
 0x00000001
 중지해야 하는 서비스를 알린다.





반응형