WMI용 COM API

WMI COM(구성 요소 개체 모델) API를 사용하여 관리 클라이언트 애플리케이션을 작성하거나 새 WMI 공급자를 만들 수 있습니다. COM API 참조는 고급 시스템 관리자를 위한 정보는 물론, 클라이언트 및 공급자 애플리케이션을 작성하는 개발자를 위한 정보도 제공합니다.

WMI 엔터프라이즈 관리 애플리케이션 작성에 대한 자세한 내용은 C++를 사용하여 WMI 애플리케이션 만들기를 참조하세요. WMI 공급자를 작성하는 자세한 방법은 WMI에 데이터 제공을 참조하세요.

참고

WMI는 Microsoft Visual C++ 버전 6.0 이상 개발 시스템을 사용하는 C++ 개발만 지원합니다. 그러나 Borland 및 Watcom에서 제공하는 컴파일러 같은 다른 컴파일러를 사용할 수도 있습니다.

 

서로 다른 각각의 WMI 개체는 궁극적으로 IUnknown 인터페이스에서 상속되는 인터페이스에서 상속합니다. COM은 개체 구현자 또는 인터페이스가 메모리 관리, 매개 변수 관리 및 다중 스레딩 같은 작업을 처리하는 방법을 지정합니다. WMI용 COM API는 COM을 준수함으로써, 각 WMI 개체의 인터페이스에서 제공하는 기능 지원을 보장합니다.

WMI는 다음 WMI 전용 COM 인터페이스를 통해 액세스합니다.

인터페이스 설명
IEnumWbemClassObject IWbemClassObject 형식의 개체와 함께 작동하는 열거자입니다. IEnumVariant 같은 표준 COM 열거자와 비슷합니다.
IMofCompiler Mofd.dll로 구현하는 이 인터페이스는 MOF 컴파일러와, MOF 파일을 컴파일하는 다른 애플리케이션에서 사용하는 COM 인터페이스를 제공합니다.
IUnsecuredApartment 클라이언트 프로세스에서 비동기 호출을 하는 프로세스를 간소화하는 데 사용합니다.
IWbemBackupRestore WMI 리포지토리의 콘텐츠를 백업하고 복원합니다.
IWbemCallResult IWbemServices 인터페이스의 semisynchronous 호출에 사용합니다. 이러한 호출을 할 때, 호출된 IWbemServices 메서드는 IWbemCallResult 개체와 함께 즉시 반환됩니다.
IWbemCausalityAnalysis 부모 요청에서 생성된 자식 요청을 추적합니다.
IWbemClassObject 클래스 정의와 클래스 개체 인스턴스를 모두 포함하고 조작합니다. 개발자는 이 인터페이스를 구현하지 않아도 됩니다. WMI에서 구현을 제공합니다.
IWbemConfigureRefresher 클라이언트 코드에서 열거자, 개체 및 중첩된 리프레셔를 리프레셔에 추가하거나 제거하는 데 사용합니다.
IWbemContext 필요한 경우 Windows Management에 IWbemServices 호출을 제출할 때 공급자에게 추가 컨텍스트 정보를 전달하는 용도로 사용합니다.
IWbemDecoupledBasicEventProvider 분리된 공급자를 WMI에 등록합니다.
IWbemDecoupledRegistrar 분리된 공급자를 WMI에 연결합니다. 이 인터페이스를 사용하면 프로세스에서 호스팅한 공급자가 인터페이스의 상호 운용성 수명을 정의하고 다른 공급자와 공존할 수 있습니다.
IWbemEventConsumerProvider 이벤트 소비자 공급자용 기본 인터페이스를 제공합니다. 이 인터페이스와 FindConsumer 메서드를 사용하면, 이벤트 소비자 공급자는 지정된 이벤트를 수신해야 하는 이벤트 소비자를 표시할 수 있습니다.
IWbemEventProvider 이벤트 공급자와의 통신을 시작하는 용도로 사용합니다.
IWbemEventProviderQuerySink 필요한 경우 현재 활성 상태인 이벤트 쿼리 필터 종류를 확인하여 성능을 최적화하려는 이벤트 공급자가 구현합니다.
IWbemEventProviderSecurity 필요한 경우 이벤트 공급자가 구현하여 소비자의 이벤트 액세스를 제한합니다.
IWbemEventSink 제한된 쿼리 집합을 사용하여 이벤트 공급자와의 통신을 시작합니다. 이 인터페이스는 IWbemObjectSink를 확장하여, 보안 및 성능을 다루는 새로운 메서드를 제공합니다.
IWbemHiPerfProvider 새로 고칠 수 있는 개체 및 열거자를 공급자가 제공할 수 있게 합니다.
IWbemHiPerfEnum 새로 고침 작업에서 인스턴스 개체의 열거형에 대한 신속한 액세스를 제공하는 용도로 사용됩니다.
IWbemLocator 특정 호스트 컴퓨터에서 WMI용 IWbemServices 인터페이스에 대한 초기 네임스페이스 포인터를 가져옵니다.
IWbemObjectAccess 개체의 메서드 및 속성에 대한 액세스를 제공합니다. IWbemObjectAccess 개체는 리프레셔에서 업데이트한 인스턴스의 컨테이너입니다.
IWbemObjectSink IWbemServices의 결과와 특정 유형의 이벤트 알림을 모두 수신하는 용도로 사용합니다.
IWbemObjectTextSrc IWbemClassObject 인스턴스를 다양한 텍스트 형식으로 변환하는 용도로 사용합니다.
IWbemPropertyProvider WMI 클래스의 인스턴스에서 개별 속성을 검색하고 업데이트할 수 있게 합니다.
IWbemProviderIdentity 공급자가 동일한 CLSID 값으로 둘 이상의 Name(여러 __Win32Provider 인스턴스)을 사용하여 자신을 등록하는 경우 이벤트 공급자가 구현합니다. 클래스는 사용해야 하는 명명된 공급자를 구분하는 메커니즘을 제공합니다.
IWbemProviderInit 공급자를 초기화하는 용도로 사용합니다.
IWbemProviderInitSink 초기화 상태를 보고하기 위해 WMI에서 구현하고 공급자가 호출합니다.
IWbemQualifierSet 단일 속성 또는 전체 개체(클래스 또는 인스턴스)에 대한 명명된 한정자의 전체 집합용 컨테이너 역할을 합니다.
IWbemQuery WQL(WMI Query Language) 쿼리를 구문 분석할 수 있는 진입점을 제공합니다.
IWbemRefresher 열거자 또는 리프레셔 개체 같은 새로 고칠 수 있는 개체를 새로 고치는 진입점을 제공합니다.
IWbemServices 클라이언트 및 공급자가 WMI 서비스에 액세스하는 용도로 사용합니다. 인터페이스는 WMI로만 구현하며, 기본 WMI 인터페이스입니다.
IWbemStatusCodeText 오류 코드 또는 오류가 발생한 하위 시스템의 이름에 대한 텍스트 문자열 설명을 추출합니다.
IWbemUnboundObjectSink 모든 논리적 이벤트 소비자에 의해 구현됩니다. 이벤트 개체 전달을 허용하는 단순 싱크 인터페이스입니다.

 

참고

대부분의 WMI COM 함수는 명명된 상수로 문서화된 숫자 오류 코드를 반환합니다. 이러한 상수는 PSDK WMI\Include 폴더의 Wbemcli.h에 정의됩니다. 자세한 내용은 WMI 반환 코드를 참조하세요.

 

COM 프로그래밍의 다음 항목에 대한 자세한 내용은 구성 요소 개발을 참조하세요.

  • 인터페이스 및 개체 디자인.
  • IUnknown 구현.
  • 메모리 관리
  • 참조 계산 처리

WMI 참조