BatteryClassQueryWmiDataBlock 函数 (batclass.h)
BatteryClassQueryWmiDataBlock 例程由其 DpWmiQueryDataBlock 例程中的电池小类驱动程序使用,以允许电池类驱动程序处理它代表驱动程序处理的 WMI 数据块查询请求。
语法
NTSTATUS BATTERYCLASSAPI BatteryClassQueryWmiDataBlock(
[in] PVOID ClassData,
[in, out] PDEVICE_OBJECT DeviceObject,
[in, out] PIRP Irp,
[in] ULONG GuidIndex,
[out] PULONG InstanceLengthArray,
[in] ULONG OutBufferSize,
[out, optional] PUCHAR Buffer
);
参数
[in] ClassData
指向以前从 BatteryClassInitializeDevice 接收的电池类句柄的指针。
[in, out] DeviceObject
指向驱动程序的设备对象的指针。 电池微型类驱动程序应将其收到的匹配参数作为输入传递给其 DpWmiQueryDataBlock 例程。
[in, out] Irp
指向 WMI 查询数据块请求的指针。 电池微型类驱动程序应将其收到的匹配参数作为输入传递给其 DpWmiQueryDataBlock 例程。
[in] GuidIndex
按其索引指定 WMI 类。 电池微型类驱动程序应将其收到的匹配参数作为输入传递给其 DpWmiQueryDataBlock 例程。
[out] InstanceLengthArray
指向 ULONG 值的数组的指针,该值指示要返回的每个实例的长度。 电池微型类驱动程序应将其收到的匹配参数作为输入传递给其 DpWmiQueryDataBlock 例程。
[in] OutBufferSize
指定 缓冲区参数指定的 缓冲区中可用于接收数据的最大字节数。 电池微型类驱动程序应将其接收的 BufferAvail 参数的值作为输入传递到其 DpWmiQueryDataBlock 例程。
[out, optional] Buffer
指向用于接收实例数据的缓冲区的指针。 如果缓冲区太小而无法保存数据, BatteryClassQueryWmiDataBlock 将返回状态值STATUS_BUFFER_TOO_SMALL。 电池微型类驱动程序应将其收到的匹配参数作为输入传递给其 DpWmiQueryDataBlock 例程。
返回值
BatteryClassQueryWmiDataBlock 返回 NT 状态代码。 可能的返回值包括:
返回代码 | 说明 |
---|---|
|
电池类驱动程序已成功处理请求。 |
|
电池类驱动程序无法处理请求,因为 Buffer 参数指定的 缓冲区 太小。 |
|
电池类驱动程序不处理此 WMI 类。 |
注解
根据设计,电池微型类驱动程序应在处理请求之前在其 DpWmiQueryDataBlock 例程中调用 BatteryClassQueryWmiDataBlock。 微型类驱动程序应将其接收的参数作为输入传递给其 DpWmiQueryDataBlock 例程。 如果电池类驱动程序返回除STATUS_WMI_GUID_NOT_FOUND以外的任何状态,则例程已代表微型类驱动程序处理请求。 在这种情况下,类驱动程序已调用 WmiCompleteRequest,而微型类驱动程序不得再次调用它。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | batclass.h (包括 Batclass.h) |
Library | Battc.lib |