Bagikan melalui


struktur BATTERY_WAIT_STATUS

Berisi informasi tentang kondisi di mana status baterai akan diambil. Struktur ini digunakan oleh kode kontrol IOCTL_BATTERY_QUERY_STATUS .

Sintaks

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

Anggota

BatteryTag

Tag baterai saat ini untuk baterai. Hanya informasi untuk baterai yang cocok dengan tag yang dapat dikembalikan. Setiap kali nilai ini tidak cocok dengan tag baterai saat ini, operasi DeviceIoControl akan gagal dengan kode kesalahan ERROR_FILE_NOT_FOUND, yang menunjukkan kepada pemanggil bahwa baterai yang memiliki tag tidak lagi diinstal Pemanggil dapat memilih untuk menggunakan operasi IOCTL_BATTERY_QUERY_TAG untuk menentukan tag baterai yang baru diinstal, jika ada. Selain itu, jika permintaan sedang berlangsung saat baterai dilepas, atau tag berubah, operasi dibatalkan dengan status ERROR_FILE_NOT_FOUND. (Lihat Tag Baterai untuk informasi selengkapnya.)

Timeout

Jumlah milidetik permintaan akan menunggu kondisi yang ditentukan oleh anggota PowerState, LowCapacity, dan HighCapacity sebelum selesai. Nilai -1 menunjukkan bahwa permintaan akan menunggu tanpa batas waktu agar kondisi terpenuhi. Nilai nol menunjukkan bahwa informasi baterai yang diminta akan segera dikembalikan, terlepas dari kondisi lainnya. Nilai lain menunjukkan bahwa permintaan harus menunggu lama waktu tersebut, atau sampai salah satu kondisi lain terpenuhi.

Jika komputer telah memasuki mode tidur, jam akan terus berjalan, tetapi menghabiskan hitungan tidak akan membangunkan komputer. Jika jumlah habis ketika komputer sudah sadar, dan kondisi lain terpenuhi, panggilan akan segera kembali saat terbangun.

PowerState

Nol, satu, atau beberapa bit status berikut, yang menunjukkan status baterai. Ini identik dengan anggota PowerState dari struktur BATTERY_STATUS .

Nilai Makna
BATTERY_CHARGING
0x00000004
Menunjukkan bahwa baterai sedang diisi dayanya.
BATTERY_CRITICAL
0x00000008
Menunjukkan bahwa kegagalan baterai akan segera terjadi. Lihat bagian Keterangan untuk informasi selengkapnya.
BATTERY_DISCHARGING
0x00000002
Menunjukkan bahwa baterai saat ini sedang dibuang.
BATTERY_POWER_ON_LINE
0x00000001
Menunjukkan bahwa baterai memiliki akses ke daya AC.

LowCapacity

Kapasitas baterai saat ini, dalam mWh (atau relatif). Nilai ini identik dengan anggota Kapasitas dari struktur BATTERY_STATUS .

HighCapacity

Kapasitas baterai saat ini, dalam mWh (atau relatif). Nilai ini identik dengan anggota Kapasitas dari struktur BATTERY_STATUS .

Keterangan

Permintaan informasi baterai ditunda hingga salah satu hal berikut ini terjadi:

  • Waktu habis kedaluwarsa (dengan asumsi Waktu Habis bukan -1).
  • Status baterai saat ini tidak cocok dengan PowerState.
  • Kapasitas baterai di bawah LowCapacity.
  • Kapasitas baterai berada di atas HighCapacity.
  • Tag baterai berubah.

Ketika salah satu kondisi ini terpenuhi, data dikumpulkan dan operasi kembali. Ini memungkinkan aplikasi untuk memantau informasi baterai dinamis yang khas tanpa polling perangkat.

Sebelum menggunakan salah satu dari dua kondisi Kapasitas, pastikan baterai mendukungnya dengan menggunakan kode kontrol IOCTL_BATTERY_QUERY_STATUS dengan waktu habis nol. Periksa hasilnya untuk menentukan apakah anggota Kapasitas didukung (yaitu, tidak BATTERY_UNKNOWN_CAPACITY).

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows XP [hanya aplikasi desktop]
Server minimum yang didukung
Windows Server 2003 [hanya aplikasi desktop]
Header
Poclass.h;
Batclass.h pada Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP

Lihat juga

BATTERY_STATUS

IOCTL_BATTERY_QUERY_STATUS

IOCTL_BATTERY_QUERY_TAG