Поделиться через


Функция 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

Указывает максимальное количество байтов, доступных для получения данных в буфере, заданном параметром Buffer . Драйвер мини-класса батареи должен передать значение параметра 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.

Комментарии

По умолчанию драйвер мини-класса батареи должен вызвать BatteryClassQueryWmiDataBlock внутри подпрограммы DpWmiQueryDataBlock перед обработкой запроса. Драйвер мини-класса должен передавать получаемые параметры в качестве входных данных в подпрограмму DpWmiQueryDataBlock . Если драйвер класса батареи возвращает состояние, отличное от STATUS_WMI_GUID_NOT_FOUND, подпрограмма обработала запрос от имени драйвера мини-класса. В этом случае драйвер класса уже вызвал WmiCompleteRequest, и драйвер мини-класса не должен вызывать его повторно.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть batclass.h (включая Batclass.h)
Библиотека Battc.lib

См. также раздел

BatteryClassSystemControl

DpWmiQueryDataBlock

WmiCompleteRequest