次の方法で共有


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 クラスを処理しません。

注釈

仕様上、バッテリ ミニクラス ドライバーは、要求を処理する前に、DpWmiQueryDataBlock ルーチン内で BatteryClassQueryWmiDataBlock を呼び出す必要があります。 ミニクラス ドライバーは、入力として受け取るパラメーターを DpWmiQueryDataBlock ルーチンに渡す必要があります。 バッテリ クラス ドライバーが STATUS_WMI_GUID_NOT_FOUND 以外の状態を返す場合、ルーチンはミニクラス ドライバーの代わりに要求を処理しました。 その場合、クラス ドライバーは既に WmiCompleteRequest を呼び出しており、ミニクラス ドライバーは再度呼び出さないでください。

要件

要件
対象プラットフォーム デスクトップ
Header batclass.h (Batclass.h を含む)
Library Battc.lib

こちらもご覧ください

BatteryClassSystemControl

DpWmiQueryDataBlock

WmiCompleteRequest