다음을 통해 공유


ExecQueryWmi 함수

쿼리를 실행하여 개체를 검색합니다.

참고

이 API는 내부 전용입니다. 개발자 코드에서 사용할 수 없습니다.

구문

HRESULT ExecQueryWmi (
   [in] BSTR                    strQueryLanguage,
   [in] BSTR                    strQuery,
   [in] long                    lFlags,
   [in] IWbemContext*           pCtx,
   [out] IEnumWbemClassObject** ppEnum,
   [in] DWORD                   authLevel,
   [in] DWORD                   impLevel,
   [in] IWbemServices*          pCurrentNamespace,
   [in] BSTR                    strUser,
   [in] BSTR                    strPassword,
   [in] BSTR                    strAuthority
);

매개 변수

strQueryLanguage
[in] Windows 관리에서 지원하는 유효한 쿼리 언어가 있는 문자열입니다. WMI Query Language의 약어인 "WQL"이어야 합니다.

strQuery
[in] 쿼리의 텍스트입니다. 이 매개 변수는 null일 수 없습니다.

lFlags
[in] 이 함수의 동작에 영향을 주는 플래그의 조합입니다. 다음 값은 WbemCli.h 헤더 파일에 정의되어 있거나 코드에서 상수로 정의할 수 있습니다.

상수 Description
WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x20000 설정되면 함수는 현재 연결 로캘의 지역화된 네임스페이스에 저장된 수정된 한정자를 검색합니다.
설정되지 않은 경우 함수는 직접 네임스페이스에 저장된 한정자만 검색합니다.
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 플래그는 일부 동기 호출을 유발합니다.
WBEM_FLAG_FORWARD_ONLY 0x20 이 함수는 정방향 전용 열거자를 반환합니다. 일반적으로 순방향 전용 열거자는 기존 열거자보다 더 빠르고 메모리를 덜 사용하지만 Clone 호출을 허용하지 않습니다.
WBEM_FLAG_BIDIRECTIONAL 0 WMI는 해제될 때까지 열거형의 개체에 대한 포인터를 유지합니다.
WBEM_FLAG_ENSURE_LOCATABLE 0x100 __PATH, __RELPATH__SERVER와 같은 시스템 속성이 null이 되지 않도록 반환된 개체에 충분한 정보가 있는지 확인합니다.
WBEM_FLAG_PROTOTYPE 2 이 플래그는 프로토타이핑에 사용됩니다. 쿼리를 실행하지 않고 대신 일반적인 결과 개체처럼 보이는 개체를 반환합니다.
WBEM_FLAG_DIRECT_READ 0x200 부모 클래스나 하위 클래스에 관계없이 지정된 클래스의 공급자에 직접 액세스하도록 합니다.

최상의 성능을 위해 권장되는 플래그는 WBEM_FLAG_RETURN_IMMEDIATELYWBEM_FLAG_FORWARD_ONLY입니다.

pCtx
[in] 일반적으로 이 값은 null입니다. 그렇지 않으면 요청된 클래스를 제공하는 공급자가 사용할 수 있는 IWbemContext 인스턴스에 대한 포인터입니다.

ppEnum
[out] 오류가 발생하지 않으면 호출자가 쿼리의 결과 집합에서 인스턴스를 쿼리할 수 있도록 하는 열거자에 대한 포인터를 받습니다. 쿼리에는 인스턴스가 없는 결과 집합이 있을 수 있습니다. 자세한 내용은 설명 부분을 참조하세요.

authLevel
[in] 권한 부여 수준입니다.

impLevel
[in] 가장 수준입니다.

pCurrentNamespace
[in] 현재 네임스페이스를 나타내는 IWbemServices 개체에 대한 포인터입니다.

strUser
[in] 사용자 이름입니다. 자세한 내용은 ConnectServerWmi 함수를 참조하세요.

strPassword
[in] 암호입니다. 자세한 내용은 ConnectServerWmi 함수를 참조하세요.

strAuthority
[in] 사용자의 도메인 이름입니다. 자세한 내용은 ConnectServerWmi 함수를 참조하세요.

반환 값

이 함수가 반환하는 다음 값은 WbemCli.h 헤더 파일에 정의되어 있거나 코드에서 상수로 정의할 수 있습니다.

상수 Description
WBEM_E_ACCESS_DENIED 0x80041003 사용자는 함수가 반환할 수 있는 하나 이상의 클래스를 볼 수 있는 권한이 없습니다.
WBEM_E_FAILED 0x80041001 알 수 없는 오류가 발생했습니다.
WBEM_E_INVALID_PARAMETER 0x80041008 매개 변수가 잘못된 경우
WBEM_E_INVALID_QUERY 0x80041017 쿼리에 구문 오류가 있습니다.
WBEM_E_INVALID_QUERY_TYPE 0x80041018 요청된 쿼리 언어가 지원되지 않는 경우
WBEM_E_QUOTA_VIOLATION 0x8004106c 쿼리가 너무 복잡합니다.
WBEM_E_OUT_OF_MEMORY 0x80041006 메모리가 부족 하 여 작업을 완료할 수 없습니다.
WBEM_E_SHUTTING_DOWN 0x80041033 WMI가 중지되었다가 다시 시작되었을 수 있습니다. ConnectServerWmi를 다시 호출합니다.
WBEM_E_TRANSPORT_FAILURE 0x80041015 현재 프로세스와 WMI 간의 RPC(원격 프로시저 호출) 링크가 실패했습니다.
WBEM_E_NOT_FOUND 0x80041002 쿼리에서 존재하지 않는 지정한 클래스를 지정합니다.
WBEM_S_NO_ERROR 0 함수 호출에 성공했습니다.

설명

이 함수는 IWbemServices::ExecQuery 메서드에 대한 호출을 래핑합니다.

이 함수는 strQuery 매개 변수에 지정된 쿼리를 처리하고 호출자가 쿼리 결과에 액세스할 수 있는 열거자를 만듭니다. 열거자는 IEnumWbemClassObject 인터페이스에 대한 포인터입니다. 쿼리 결과는 IWbemClassObject 인터페이스를 통해 사용할 수 있는 클래스 개체의 인스턴스입니다.

WQL 쿼리에 사용할 수 있는 ANDOR 키워드의 수에는 제한이 있습니다. 복잡한 쿼리에 사용되는 WQL 키워드가 많으면 WMI가 WBEM_E_QUOTA_VIOLATION(또는 0x8004106c) 오류 코드를 HRESULT 값으로 반환할 수 있습니다. WQL 키워드의 제한은 쿼리가 얼마나 복잡한지에 따라 달라집니다.

함수 호출이 실패하면 GetErrorInfo 함수를 호출하여 추가 오류 정보를 얻을 수 있습니다.

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: WMINet_Utils.idl

.NET Framework 버전: 4.7.2부터 사용 가능

참고 항목