次の方法で共有


BATTERY_WAIT_STATUS構造体

バッテリーの状態を取得する条件に関する情報が含まれます。 この構造体は、 IOCTL_BATTERY_QUERY_STATUS コントロール コードによって使用されます。

構文

typedef struct _BATTERY_WAIT_STATUS {
  ULONG BatteryTag;
  ULONG Timeout;
  ULONG PowerState;
  ULONG LowCapacity;
  ULONG HighCapacity;
} BATTERY_WAIT_STATUS, *PBATTERY_WAIT_STATUS;

メンバー

BatteryTag

バッテリーの現在のバッテリー タグ。 タグに一致するバッテリーの情報のみを返すことができます。 この値がバッテリの現在のタグと一致しない場合、 DeviceIoControl 操作はエラー コード ERROR_FILE_NOT_FOUNDで失敗します。これは、タグを持つバッテリがインストールされなくなったことを呼び出し元に示します。呼び出し元は 、IOCTL_BATTERY_QUERY_TAG 操作を使用して、新しくインストールされたバッテリのタグを決定することを選択できます。 ある場合は 。 また、バッテリの取り外し時に要求が進行中の場合、またはタグが変更された場合、操作はERROR_FILE_NOT_FOUNDの状態で中止されます。 (詳細については、「 バッテリー タグ 」を参照してください)。

タイムアウト

要求が PowerStateLowCapacityおよび HighCapacity メンバーによって指定された条件を待機してから完了するまでのミリ秒数。 値 -1 は、条件が満たされるまで要求が無期限に待機することを示します。 値 0 は、他の条件に関係なく、要求されたバッテリー情報がすぐに返されることを示します。 その他の値は、要求がその時間の長さ、または他の条件のいずれかが満たされるまで待機する必要があることを示します。

コンピューターがスリープ モードに入った場合、クロックは引き続き実行されますが、カウントを使い果たしてもコンピューターはスリープ解除されません。 コンピューターが目覚めたときにカウントが使い果たされ、その他の条件が満たされた場合、呼び出しは覚醒時に直ちに返されます。

PowerState

バッテリの状態を示す、次の状態ビットの 0、1、または複数。 これは、BATTERY_STATUS構造体の PowerState メンバー 同じです。

説明
BATTERY_CHARGING
0x00000004
バッテリーが現在充電中であることを示します。
BATTERY_CRITICAL
0x00000008
バッテリーの故障が差し迫っていることを示します。 詳細については、次の「解説」を参照してください。
BATTERY_DISCHARGING
0x00000002
バッテリが現在放電中であることを示します。
BATTERY_POWER_ON_LINE
0x00000001
バッテリが AC 電源にアクセス可能であることを示します。

LowCapacity

現在のバッテリ容量 (mWh (または相対単位)。 この値は、BATTERY_STATUS構造体の Capacity メンバーと同じです。

HighCapacity

現在のバッテリ容量 (mWh (または相対単位)。 この値は、BATTERY_STATUS構造体の Capacity メンバーと同じです。

注釈

バッテリー情報の要求は、次のいずれかが発生するまで延期されます。

  • タイムアウトの有効期限が切れます ( タイムアウト が -1 でない場合)。
  • バッテリーの現在の状態が PowerState と一致しません。
  • バッテリーの容量が LowCapacity を下回っている。
  • バッテリーの容量が HighCapacity を超えています。
  • バッテリー タグが変更されます。

これらの条件のいずれかが満たされると、データが収集され、操作が返されます。 これにより、アプリケーションはデバイスをポーリングすることなく、一般的な動的バッテリ情報を監視できます。

2 つの容量条件のいずれかを使用する前に、タイムアウトが 0 の IOCTL_BATTERY_QUERY_STATUS コントロール コードを使用して、バッテリーでサポートされていることを確認します。 結果を調べて、 Capacity メンバーがサポートされているかどうかを確認します (つまり、BATTERY_UNKNOWN_CAPACITYではありません)。

要件

要件
サポートされている最小のクライアント
Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2003 [デスクトップ アプリのみ]
Header
Poclass.h;
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP の Batclass.h

こちらもご覧ください

BATTERY_STATUS

IOCTL_BATTERY_QUERY_STATUS

IOCTL_BATTERY_QUERY_TAG