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 |