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 状态代码。 可能的返回值包括:

返回代码 说明
STATUS_SUCCESS
电池类驱动程序已成功处理请求。
STATUS_BUFFER_TOO_SMALL
电池类驱动程序无法处理请求,因为 Buffer 参数指定的 缓冲区 太小。
STATUS_WMI_GUID_NOT_FOUND
电池类驱动程序不处理此 WMI 类。

注解

根据设计,电池微型类驱动程序应在处理请求之前在其 DpWmiQueryDataBlock 例程中调用 BatteryClassQueryWmiDataBlock 微型类驱动程序应将其接收的参数作为输入传递给其 DpWmiQueryDataBlock 例程。 如果电池类驱动程序返回除STATUS_WMI_GUID_NOT_FOUND以外的任何状态,则例程已代表微型类驱动程序处理请求。 在这种情况下,类驱动程序已调用 WmiCompleteRequest,而微型类驱动程序不得再次调用它。

要求

要求
目标平台 桌面
标头 batclass.h (包括 Batclass.h)
Library Battc.lib

另请参阅

BatteryClassSystemControl

DpWmiQueryDataBlock

WmiCompleteRequest