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 例程调用 WmiCompleteRequest。 WmiCompleteRequest 使用驱动程序返回的任何数据填充 WNODE_XXX ,并调用 IoCompleteRequest 来完成 IRP。
驱动程序应始终在其 DpWmiXxx 例程中返回 WmiCompleteRequest 的返回值。
驱动程序不得从其 DpWmiQueryRegInfo 例程调用 WmiCompleteRequest。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 通用 |
标头 | wmilib.h (包括 Wmilib.h) |
Library | Wmilib.lib |
IRQL | <= DISPATCH_LEVEL |