Compartilhar via


Função BatteryClassQueryWmiDataBlock (batclass.h)

A rotina BatteryClassQueryWmiDataBlock é usada por drivers de miniclasse de bateria dentro de suas rotinas DpWmiQueryDataBlock para permitir que o driver da classe de bateria processe as solicitações de consulta de bloco de dados WMI que ele manipula em nome do driver.

Sintaxe

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
);

Parâmetros

[in] ClassData

Ponteiro para um identificador de classe de bateria que foi recebido anteriormente de BatteryClassInitializeDevice.

[in, out] DeviceObject

Ponteiro para o objeto de dispositivo do driver. O driver de miniclasse de bateria deve passar o parâmetro correspondente que recebe como entrada para sua rotina DpWmiQueryDataBlock .

[in, out] Irp

Ponteiro para a solicitação de bloco de dados de consulta WMI. O driver de miniclasse de bateria deve passar o parâmetro correspondente que recebe como entrada para sua rotina DpWmiQueryDataBlock .

[in] GuidIndex

Especifica a classe WMI por seu índice. O driver de miniclasse de bateria deve passar o parâmetro correspondente que recebe como entrada para sua rotina DpWmiQueryDataBlock .

[out] InstanceLengthArray

Ponteiro para uma matriz de valores ULONG que indicam o comprimento de cada instância a ser retornada. O driver de miniclasse de bateria deve passar o parâmetro correspondente que recebe como entrada para sua rotina DpWmiQueryDataBlock .

[in] OutBufferSize

Especifica o número máximo de bytes disponíveis para receber dados no buffer especificado pelo parâmetro Buffer . O driver de miniclasse de bateria deve passar o valor do parâmetro BufferAvail que recebe como entrada para sua rotina DpWmiQueryDataBlock .

[out, optional] Buffer

Ponteiro para o buffer para receber os dados da instância. Se o buffer for muito pequeno para conter os dados, BatteryClassQueryWmiDataBlock retornará um valor status de STATUS_BUFFER_TOO_SMALL. O driver de miniclasse de bateria deve passar o parâmetro correspondente que recebe como entrada para sua rotina DpWmiQueryDataBlock .

Retornar valor

BatteryClassQueryWmiDataBlock retorna um código status NT. Os possíveis valores retornados incluem:

Código de retorno Descrição
STATUS_SUCCESS
O driver da classe de bateria lidou com êxito com a solicitação.
STATUS_BUFFER_TOO_SMALL
O driver da classe de bateria não pode manipular a solicitação porque o buffer especificado pelo parâmetro Buffer é muito pequeno.
STATUS_WMI_GUID_NOT_FOUND
O driver da classe de bateria não lida com essa classe WMI.

Comentários

Por design, um driver de miniclasse de bateria deve chamar BatteryClassQueryWmiDataBlock dentro de sua rotina DpWmiQueryDataBlock antes de processar a solicitação. O driver de miniclasse deve passar os parâmetros que recebe como entrada para sua rotina DpWmiQueryDataBlock . Se o driver da classe de bateria retornar qualquer status diferente de STATUS_WMI_GUID_NOT_FOUND, a rotina manipulará a solicitação em nome do driver de miniclasse. Nesse caso, o driver de classe já chamou WmiCompleteRequest e o driver de miniclasse não deve chamá-lo novamente.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho batclass.h (inclua Batclass.h)
Biblioteca Battc.lib

Confira também

BatteryClassSystemControl

DpWmiQueryDataBlock

WmiCompleteRequest