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_BUFFER_TOO_SMALL。 如果驱动程序 状态 等于STATUS_BUFFER_TOO_SMALL,WmiCompleteRequest 将生成WNODE_TOO_SMALL结构并返回STATUS_SUCCESS。 驱动程序应在其 DpWmiXxx 例程中返回 WmiCompleteRequest 的返回值。

言论

驱动程序从 DpWmiXxx 例程调用 WmiCompleteRequest,该例程完成该例程中的所有其他处理,或者在驱动程序完成挂起的 IRP 的所有处理之后。 WmiCompleteRequest 使用驱动程序返回的任何数据填充 WNODE_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