다음을 통해 공유


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

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

IFunctionDiscovery::CreateInstanceQuery에서 정의한 쿼리를 수행합니다.

구문

HRESULT Execute(
  [out] IFunctionInstance **ppIFunctionInstance
);

매개 변수

[out] ppIFunctionInstance

요청된 함수 instance 수신하는 IFunctionInstance 인터페이스 포인터에 대한 포인터입니다.

반환 값

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

반환 코드/값 Description
S_OK
메서드가 완료되었습니다.
E_INVALIDARG
ppIFunctionInstance 매개 변수는 NULL입니다.
E_OUTOFMEMORY
메서드는 이 작업을 수행하는 데 필요한 메모리를 할당할 수 없습니다.
E_PENDING
공급자가 반환할 결과는 비동기 알림을 통해 제공됩니다.
HRESULT_FROM_WIN32(ERROR_OBJECT_NOT_FOUND)
0x800710d8
지정된 ID로 표시되는 함수 instance 이 컴퓨터에 없습니다.
HRESULT_FROM_WIN32(ERROR_KEY_DELETED)
0x800703fa
instance 함수에 해당하는 키가 다른 프로세스에서 삭제되었기 때문에 함수 instance 반환할 수 없습니다. 이 오류는 쿼리 처리가 진행되는 동안 키가 삭제된 경우 레지스트리 공급자가 반환합니다.
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
0x80070002
함수 instance 해당하는 키를 찾을 수 없으므로 함수 instance 반환할 수 없습니다. 이 오류는 공급자가 instance 쿼리에 대한 일치하는 인스턴스를 찾을 수 없는 경우 레지스트리 공급자가 반환합니다.
 

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

  • 모든 공급자가 S_OK 반환하면 Execute 는 S_OK 반환합니다.
  • 하나 이상의 공급자가 E_PENDING 반환하고 다른 모든 공급자가 S_OK 또는 E_PENDING 반환하는 경우 Execute 는 E_PENDING 반환합니다.
  • 모든 공급자가 오류 값(즉, S_OK 또는 E_PENDING 이외의 값)을 반환하는 경우 Execute 는 마지막으로 쿼리된 네트워크 공급자가 반환한 오류 값을 반환합니다. 또한 클라이언트의 IFunctionDiscoveryNotification 콜백 루틴이 IFunctionDiscovery::CreateInstanceCollectionQuery에 제공된 경우 각 공급자 에 대해 OnError 알림이 전송됩니다. 각 OnError 알림에는 공급자가 반환한 HRESULT가 포함됩니다.
  • 하나 이상의 공급자가 오류 값을 반환하고 다른 모든 공급자가 S_OK 반환하는 경우 Execute 는 S_OK 반환합니다. OnError 알림은 위에서 설명한 대로 전송됩니다.
  • 하나 이상의 공급자가 오류 값을 반환하고 하나 이상의 공급자가 E_PENDING 반환하는 경우 Execute 는 E_PENDING 반환합니다. OnError 알림은 위에서 설명한 대로 전송됩니다.

설명

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

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

Execute가 동일한 쿼리 개체에서 두 번 호출되면 두 번째 쿼리가 실행되기 전에 첫 번째 쿼리가 종료됩니다.

요구 사항

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

추가 정보

함수 검색 쿼리

IFunctionInstanceQuery