다음을 통해 공유


클래스 공급자 작성

클래스 공급자는 WMI에 대한 클래스 또는 클래스 시리즈를 관리합니다. 클래스 공급자는 푸시 또는 끌어오기일 수 있습니다. 즉, 자체 데이터를 저장하거나 WMI가 Windows 관리 서비스에 데이터를 저장하도록 허용할 수 있습니다. 클래스 공급자는 특정 컴퓨터에 설치되어 있지만 전체 엔터프라이즈에서 클래스 정의를 변경할 수 있습니다. 따라서 대부분의 개발자는 클래스 공급자를 만들지 않습니다.

클래스 공급자를 생성하기 전에 지원되는 클래스가 실제로 동적으로 생성되어야 하는지 확인합니다. 대부분의 경우 클래스 목록은 느리게 변경되고 유한합니다. 이 경우 클래스 공급자를 만들 필요가 없습니다. 대신 WMI API 또는 MOF 파일을 사용하여 WMI 리포지토리에 클래스 정의를 배치할 수 있습니다.

다음 절차에서는 클래스 공급자를 구현하는 방법을 설명합니다.

클래스 공급자를 구현하려면

  1. 공급자가 푸시 또는 끌어오기 공급자인지 확인합니다.

    끌어오기 공급자는 애플리케이션 요청에 대한 응답으로 데이터를 동적으로 제공하는 반면, 푸시 공급자는 WMI 리포지토리에 데이터를 한 번 저장합니다. 자세한 내용은 밀어넣기 또는 끌어오기 상태 확인을 참조하세요.

  2. WMI를 사용하여 클래스 공급자를 디자인하고 등록합니다.

    클래스 공급자는 __Win32Provider 인스턴스 및 __ClassProviderRegistration 인스턴스를 만들어 WMI에 등록합니다. 자세한 내용은 클래스 공급자 등록을 참조하세요.

  3. 공급자에 대한 IWbemProviderInit 인터페이스를 구현합니다.

    WMI는 IWbemProviderInit를 사용하여 공급자를 로드하고 초기화합니다. 푸시 공급자를 디자인하는 경우 구현할 유일한 인터페이스는 IWbemProviderInit입니다. 자세한 내용은 공급자 초기화를 참조하세요.

    참고

    클래스 공급자는 다중 스레딩 모델 “둘 다”를 사용하는 것이 좋습니다.

     

  4. 공급자에 필요한 코드를 추가합니다.

    공급자를 디자인할 때 WMI 인터페이스를 호출해야 할 가능성이 큽니다. 자세한 내용은 메서드 호출공급자에서 보안 수준 유지 관리를 참조하세요.

    클라이언트에 대한 정보를 검색할 때 해당 클라이언트의 보안 수준에 액세스해야 할 수 있습니다. 자세한 내용은 클라이언트 가장을 참조하세요.

  5. 공급자에 대한 IWbemServices 인터페이스를 구현합니다.

    IWbemServices 인터페이스는 끌어오기 클래스 공급자의 기본 인터페이스입니다. 자세한 내용은 클래스 공급자의 기본 인터페이스 구현을 참조하세요.

  6. 기존 공급자를 새 코드로 바꿉니다.

    복사할 기존 공급자가 없는 경우 이 단계를 수행할 필요가 없습니다. 자세한 내용은 공급자 업데이트를 참조하세요.