IoWMIExecuteMethod 함수(wdm.h)

IoWMIExecuteMethod 루틴은 지정된 WMI 데이터 블록 instance WMI 클래스 메서드를 실행합니다.

구문

NTSTATUS IoWMIExecuteMethod(
  [in]      PVOID           DataBlockObject,
  [in]      PUNICODE_STRING InstanceName,
  [in]      ULONG           MethodId,
  [in]      ULONG           InBufferSize,
  [in, out] PULONG          OutBufferSize,
  [in, out] PUCHAR          InOutBuffer
);

매개 변수

[in] DataBlockObject

WMI 데이터 블록 개체에 대한 포인터입니다. 호출자는 IoWMIOpenBlock을 사용하여 WMI 클래스에 대한 데이터 블록 개체를 엽니다. 개체는 WMIGUID_EXECUTE 액세스 권한으로 열어야 합니다.

[in] InstanceName

데이터 블록의 instance 이름을 지정합니다. 이 값은 블록의 InstanceName 속성 값에 해당합니다.

[in] MethodId

설정할 메서드의 메서드 항목 ID를 지정합니다. 이 매개 변수의 값은 메서드의 WmiMethodId 한정자에서 선언된 값에 해당합니다.

[in] InBufferSize

메서드에 대한 입력 데이터의 크기(바이트)를 지정합니다. 실제 입력 데이터는 InOutBuffer 매개 변수가 가리키는 버퍼에 전달됩니다.

[in, out] OutBufferSize

메서드에서 데이터 출력의 예상 크기(바이트)를 지정하는 ULONG에 대한 포인터입니다. 실제 출력 데이터는 InOutBuffer 매개 변수가 가리키는 버퍼에 반환됩니다. 루틴이 성공하면 메모리 위치를 업데이트하여 InOutBuffer에 실제로 저장된 바이트 수를 지정합니다. 루틴이 STATUS_BUFFER_TOO_SMALL 실패하면 데이터를 반환하는 데 필요한 바이트 수를 반환합니다.

[in, out] InOutBuffer

호출자가 WMI 메서드의 입력 데이터를 전달하고 WMI 메서드의 출력 데이터를 수신하는 버퍼에 대한 포인터입니다.

반환 값

루틴은 NTSTATUS 코드를 반환합니다. 가능한 반환 값은 다음과 같습니다.

반환 코드 설명
STATUS_SUCCESS
작업에 성공했습니다. 루틴은 InOutBuffer 매개 변수가 가리키는 버퍼의 WMI 데이터를 반환합니다. 또한 루틴은 OutBufferSize 매개 변수가 가리키는 메모리 위치에 반환된 데이터의 크기(바이트)를 반환합니다.
STATUS_WMI_GUID_NOT_FOUND
WMI 클래스를 구현하는 드라이버가 없습니다.
STATUS_WMI_INSTANCE_NOT_FOUND
InstanceName 속성이 InstanceName 매개 변수에 지정된 값과 같은 WMI 클래스의 instance 구현하는 드라이버는 없습니다.
STATUS_WMI_ITEMID_NOT_FOUND
WMI 클래스에는 메서드 ID가 MethodId 값과 같은 메서드가 포함되어 있지 않습니다.
STATUS_BUFFER_TOO_SMALL
OutBuffer 매개 변수에서 호출자가 전달한 버퍼가 너무 작습니다. 루틴은 InOutBufferSize 매개 변수가 가리키는 메모리 위치에 필요한 버퍼 크기를 반환합니다.
STATUS_WMI_GUID_DISCONNECTED
WMI GUID는 더 이상 사용할 수 없거나 사용할 수 없습니다.

설명

IoWMIExecuteMethod는 지정된 WMI 클래스 및 instance 이름을 지원할 수 있는 드라이버를 결정합니다. 이러한 각 드라이버에 IRP_MN_EXECUTE_METHOD 요청을 발급합니다. 데이터 블록을 내보내는 드라이버는 InstanceName 속성과 일치하는 instance 지정된 WMI 메서드를 실행합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

추가 정보

IRP_MN_EXECUTE_METHOD

IoWMIOpenBlock