다음을 통해 공유


IFunctionInstanceCollectionQuery::Execute 메서드(functiondiscoveryapi.h)

[Function Discovery는 요구 사항 섹션에 지정된 운영 체제에서 사용할 수 있습니다. 이후 버전에서는 변경되거나 제공되지 않을 수 있습니다.]

IFunctionDiscovery::CreateInstanceCollectionQuery로 정의된 쿼리를 수행합니다.

구문

HRESULT Execute(
  [out] IFunctionInstanceCollection **ppIFunctionInstanceCollection
);

매개 변수

[out] ppIFunctionInstanceCollection

요청된 함수 instance 컬렉션을 수신하는 IFunctionInstanceCollection 인터페이스 포인터에 대한 포인터입니다.

반환 값

가능한 반환 값에는 다음이 포함되지만 이에 국한되지는 않습니다.

반환 코드 Description
S_OK
메서드가 완료되었습니다. 결과는 ppIFunctonInstanceCollecton에서 동기적으로 반환됩니다.
E_OUTOFMEMORY
메서드는 이 작업을 수행하는 데 필요한 메모리를 할당할 수 없습니다.
E_PENDING
일부 결과는 비동기 알림에 의해 반환됩니다. 자세한 내용은 설명 부분을 참조하십시오.
 

미리 정의된 쿼리는 계층화된 범주의 쿼리입니다. 미리 정의된 쿼리가 실행되면 함수 instance 반환하는 각 공급자도 HRESULT 값을 반환합니다. 공급자 HRESULT 값이 집계되고 Execute 메서드에서 반환된 값은 이러한 집계 결과를 반영합니다. 결과는 다음과 같이 집계됩니다.

  • 모든 공급자가 S_OK 반환하면 ExecuteS_OK 반환합니다.
  • 하나 이상의 공급자가 E_PENDING 반환하고 다른 모든 공급자가 S_OK 또는 E_PENDING 반환하는 경우 ExecuteE_PENDING 반환합니다.
  • 모든 공급자가 오류 값(즉, S_OK 또는 E_PENDING 이외의 값)을 반환하는 경우 Execute 는 마지막으로 쿼리된 네트워크 공급자가 반환한 오류 값을 반환합니다. 또한 클라이언트의 IFunctionDiscoveryNotification 콜백 루틴이 IFunctionDiscovery::CreateInstanceCollectionQuery에 제공된 경우 각 공급자 에 대해 OnError 알림이 전송됩니다. 각 OnError 알림에는 공급자가 반환한 HRESULT가 포함됩니다.
  • 하나 이상의 공급자가 오류 값을 반환하고 다른 모든 공급자가 S_OK 반환하는 경우 ExecuteS_OK 반환합니다. OnError 알림은 위에서 설명한 대로 전송됩니다.
  • 하나 이상의 공급자가 오류 값을 반환하고 하나 이상의 공급자가 E_PENDING 반환하는 경우 ExecuteE_PENDING 반환합니다. OnError 알림은 위에서 설명한 대로 전송됩니다.
ExecuteS_OK 반환하면 ppIFunctionInstanceCollection에는 쿼리 결과가 포함됩니다. IFunctionDiscoveryNotification 인터페이스가 IFunctionDiscoveryCreateInstanceCollectionQuery 메서드에 제공되면 해당 인터페이스를 사용하여 결과 변경 내용이 전달됩니다.

ExecuteE_PENDING 반환하면 결과 집합은 IFunctionDiscovery의 CreateInstanceCollectionQuery 메서드에 제공된 IFunctionDiscoveryNotification 인터페이스를 통해 비동기적으로 반환됩니다. ppIFunctionInstanceCollectionNULL 이거나 부분 결과 집합을 포함할 수 있습니다. IFunctionDiscoveryNotificationOnEvent 메서드가 FD_EVENTID_SEARCHCOMPLETE 함께 호출되면 열거가 완료됩니다. FD_EVENTID_SEARCHCOMPLETE 이벤트가 수신되면 결과에 대한 추가 알림이 업데이트됩니다.

설명

쿼리 개체에서 데이터를 검색하려면 먼저 클라이언트 프로그램에서 이 메서드를 호출해야 합니다. 이 메서드가 호출되면 다음을 수행합니다.

  1. 함수 instance 컬렉션 개체를 검색합니다.
  2. IFunctionDiscovery::CreateInstanceCollectionQuery에 전달되는 범주의 공급자를 쿼리합니다.
  3. 범주 공급자를 검색합니다.
  4. 하위 범주 데이터를 사용하여 범주 공급자를 쿼리하여 쿼리 제약 조건을 사용하여 컬렉션을 생성합니다.
  5. 클라이언트 프로그램의 IFunctionDiscoveryNotification 콜백 루틴의 주소가 IFunctionDiscovery::CreateInstanceCollectionQuery에 제공된 경우 업데이트 알림 메커니즘을 시작합니다.
  6. 컬렉션 데이터를 캐시하고 를 반환합니다.
함수 검색 네트워크 공급자는 IFunctionDiscoveryNotification 인터페이스를 통해서만 함수 인스턴스를 반환합니다. 이 메서드를 호출할 때 함수 인스턴스를 직접 반환하지 않습니다. 대신 Execute 는 완전히 비동기 검색 작업을 시작하고 E_PENDING 반환하여 결과가 비동기적으로 반환됨을 나타냅니다. 알림은 함수 검색 네트워크 공급자에서 함수 인스턴스를 검색하는 데 사용해야 합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 functiondiscoveryapi.h
DLL FunDisc.dll

추가 정보

함수 검색 쿼리

IFunctionInstanceCollectionQuery