Share via


실행 중인 EXE 서버 등록

EXE(실행 파일) 서버가 시작되면 클래스 테이블(실행 중인 개체 테이블과 다른 테이블)에 서버에 대한 CLSID를 등록하는 CoRegisterClassObject를 호출해야 합니다. 서버가 클래스 테이블에 등록되면 SCM(서비스 제어 관리자)에서 서버가 이미 실행 중이므로 클래스를 다시 시작할 필요가 없음을 확인할 수 있습니다. 서버가 클래스 테이블에 나열되지 않은 경우에만 SCM은 레지스트리를 적절한 값으로 검사 지정된 CLSID와 연결된 서버를 시작합니다.

클래스에 대한 CLSID 및 해당 IUnknown 인터페이스에 대한 포인터를 CoRegisterClassObject에 전달합니다. 이후에 이 CLSID를 사용하여 CoGetClassObject 를 호출하는 클라이언트는 보안에서 금지하지 않는 한 요청된 인터페이스에 대한 포인터를 검색합니다. (여러 instance 만들기 및 활성화 함수에 대한 설명은 인스턴스 만들기 도우미 함수를 참조하세요.)

클래스 개체의 서버는 CoRevokeClassObject 를 호출하여 클래스 개체를 취소해야 합니다(등록 제거).

  • 개체 정의의 기존 인스턴스가 없습니다.
  • 클래스 개체에 대한 잠금이 없습니다.
  • 클래스 개체에 서비스를 제공하는 애플리케이션은 사용자 제어 하에 있지 않습니다(디스플레이의 사용자에게 표시되지 않음).

서비스 애플리케이션으로 설치

설치 시 클래스 등록

ROT에 개체 등록

자체 등록