WmiCompleteRequest 함수(wmilib.h)

WmiCompleteRequest 루틴은 드라이버가 DpWmiXxx 루틴에서 WMI 요청 처리를 완료했음을 나타냅니다.

구문

NTSTATUS WmiCompleteRequest(
  [in]      PDEVICE_OBJECT DeviceObject,
  [in, out] PIRP           Irp,
  [in]      NTSTATUS       Status,
  [in]      ULONG          BufferUsed,
  [in]      CCHAR          PriorityBoost
);

매개 변수

[in] DeviceObject

드라이버의 DEVICE_OBJECT 대한 포인터입니다.

[in, out] Irp

IRP에 대한 포인터입니다.

[in] Status

IRP에 대해 반환할 상태 지정합니다.

[in] BufferUsed

드라이버의 DpWmiXxx 루틴에 전달된 버퍼에 필요한 바이트 수를 지정합니다. 버퍼가 너무 작으면 드라이버는 상태를 STATUS_BUFFER_TOO_SMALL 설정하고 BufferUsed 를 반환할 데이터에 필요한 바이트 수로 설정합니다. 전달된 버퍼가 충분히 큰 경우 드라이버는 BufferUsed 를 실제로 사용되는 바이트 수로 설정합니다.

[in] PriorityBoost

작업을 요청한 원래 스레드의 런타임 우선 순위를 증가시키는 시스템 정의 상수를 지정합니다. WMI는 IRP를 완료할 때 PriorityBoost를 사용하여 IoCompleteRequest를 호출합니다. PriorityBoost에 대한 자세한 내용은 IoCompleteRequest를 참조하세요.

반환 값

Status가 STATUS_BUFFER_TOO_SMALL 설정되지 않은 경우 WmiCompleteRequestStatus 매개 변수에 전달된 값을 반환합니다. 드라이버가 상태를 STATUS_BUFFER_TOO_SMALL 같게 설정하면 WmiCompleteRequest 는 WNODE_TOO_SMALL 구조를 빌드하고 STATUS_SUCCESS 반환합니다. WmiCompleteRequest의 반환 값은 드라이버가 DpWmiXxx 루틴에서 반환해야 합니다.

설명

드라이버는 해당 루틴에서 다른 모든 처리를 완료한 후 또는 드라이버가 보류 중인 IRP에 대한 모든 처리를 완료한 후 DpWmiXxx 루틴에서 WmiCompleteRequest를 호출합니다. WmiCompleteRequestWNODE_XXX 를 드라이버에서 반환된 모든 데이터로 채우고 IoCompleteRequest 를 호출하여 IRP를 완료합니다.

드라이버는 항상 DpWmiXxx 루틴에서 WmiCompleteRequest의 반환 값을 반환해야 합니다.

드라이버는 DpWmiQueryRegInfo 루틴에서 WmiCompleteRequest를 호출해서는 안됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wmilib.h(Wmilib.h 포함)
라이브러리 Wmilib.lib
IRQL <= DISPATCH_LEVEL

추가 정보

DpWmiExecuteMethod

DpWmiFunctionControl

DpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

DpWmiSetDataItem

IoCompleteRequest

WmiSystemControl