Provider::EnumerateInstances 메서드(provider.h)

[Provider 클래스는 현재 최종 상태로 간주되는 WMI 공급자 프레임워크의 일부이며 라이브러리에 영향을 미치는 비보안 관련 문제에 대해서는 더 이상 개발, 개선 또는 업데이트를 사용할 수 없습니다. 모든 새로운 개발에서는 MI API를 사용해야 합니다.]

EnumerateInstances 메서드는 프레임워크 공급자 클래스의 모든 인스턴스를 검색하기 위해 WMI에서 호출됩니다.

구문

HRESULT EnumerateInstances(
  MethodContext *pMethodContext,
  long          lFlags
);

매개 변수

pMethodContext

이 호출에 대한 컨텍스트 개체에 대한 포인터입니다. 이 값에는 클라이언트에서 지정한 모든 IWbemContext 속성이 포함됩니다. 또한 이 포인터는 WMI로의 모든 호출에 대한 매개 변수로 사용해야 합니다.

lFlags

EnumerateInstances 작업에 대한 정보가 포함된 플래그의 비트 마스크입니다. IWbemServices::CreateInstanceEnum 메서드에서 클라이언트가 지정한 값입니다.

다음 플래그는 WMI에 의해 처리되고 필터링됩니다.

  • WBEM_FLAG_DEEP
  • WBEM_FLAG_SHALLOW
  • WBEM_FLAG_RETURN_IMMEDIATELY
  • WBEM_FLAG_FORWARD_ONLY
  • WBEM_FLAG_BIDIRECTIONAL
  • WBEM_FLAG_USE_AMENDED_QUALIFIERS

반환 값

이 메서드의 기본 프레임워크 공급자 구현은 호출 메서드에 WBEM_E_PROVIDER_NOT_CAPABLE 반환합니다. IWbemServices::CreateInstanceEnum 메서드는 가장 일반적인 반환 값을 나열하지만 COM 반환 코드를 반환하도록 선택할 수 있습니다.

설명

EnumerateInstances가 0개의 CInstance 인스턴스를 인스턴스화하고 반환 값을 WBEM_S_NO_ERROR 설정하여 0개의 인스턴스를 반환하는 것은 오류가 아닙니다.

WMI는 클라이언트 애플리케이션이 IWbemServices::CreateInstanceEnum을 호출할 때 EnumerateInstances를 호출하는 경우가 많지만 WMI는 다른 상황에서도 EnumerateInstances를 호출할 수 있습니다. 다음은 EnumerateInstances를 재정의하는 일반적인 방법입니다.

  1. Provider::CreateNewInstance를 사용하여 클래스의 빈 instance 만듭니다.
  2. CInstance::SetByte 또는 CInstance::SetStringArray와 같은 CInstance 클래스의 Set 메서드를 사용하여 빈 instance 속성을 채웁합니다.
  3. CInstance::Commit을 사용하여 instance 클라이언트로 다시 보냅니다.
메서드 전용 공급자를 빌드하고 인스턴스가 없거나 클래스의 인스턴스를 열거하면 너무 많은 인스턴스가 반환되는 경우 특정 인스턴스만 검색하는 쿼리를 지원하도록 결정할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 provider.h(FwCommon.h 포함)
라이브러리 FrameDyn.lib
DLL FrameDynOS.dll; FrameDyn.dll