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

返回值

WmiCompleteRequest 返回在 Status 参数中传递给它的值,除非 Status 设置为 STATUS_BUFFER_TOO_SMALL。 如果驱动程序将 Status 设置为等于 STATUS_BUFFER_TOO_SMALL, 则 WmiCompleteRequest 将生成WNODE_TOO_SMALL结构并返回STATUS_SUCCESS。 WmiCompleteRequest 的返回值应由驱动程序在其 DpWmiXxx 例程中返回。

注解

驱动程序在完成该例程中的所有其他处理后,或者在驱动程序完成挂起 IRP 的所有处理后,从 DpWmiXxx 例程调用 WmiCompleteRequestWmiCompleteRequest 使用驱动程序返回的任何数据填充 WNODE_XXX ,并调用 IoCompleteRequest 来完成 IRP。

驱动程序应始终在其 DpWmiXxx 例程中返回 WmiCompleteRequest 的返回值。

驱动程序不得从其 DpWmiQueryRegInfo 例程调用 WmiCompleteRequest

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 wmilib.h (包括 Wmilib.h)
Library Wmilib.lib
IRQL <= DISPATCH_LEVEL

另请参阅

DpWmiExecuteMethod

DpWmiFunctionControl

DpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

DpWmiSetDataItem

IoCompleteRequest

WmiSystemControl