IOCTL_BATTERY_QUERY_STATUS kode kontrol
Mengambil status baterai saat ini.
Untuk melakukan operasi ini, panggil fungsi DeviceIoControl dengan parameter berikut.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to battery
IOCTL_BATTERY_QUERY_STATUS, // dwIoControlCode
(LPVOID) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
(LPVOID) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Parameter
-
hDevice
-
Handel ke baterai tempat informasi akan dikembalikan. Untuk mengambil handel perangkat, panggil fungsi CreateFile .
-
dwIoControlCode
-
Kode kontrol untuk operasi. Nilai ini mengidentifikasi operasi tertentu yang akan dilakukan dan jenis perangkat untuk melakukannya. Gunakan IOCTL_BATTERY_QUERY_STATUS untuk operasi ini.
-
lpInBuffer
-
Penunjuk ke struktur BATTERY_WAIT_STATUS .
-
nInBufferSize
-
Ukuran buffer input, dalam byte.
-
lpOutBuffer
-
Penunjuk ke struktur BATTERY_STATUS .
-
nOutBufferSize
-
Ukuran buffer output, dalam byte.
-
lpBytesReturned
-
Penunjuk ke variabel yang menerima ukuran data yang dikembalikan dalam buffer lpOutBuffer , dalam byte.
Jika buffer output terlalu kecil untuk mengembalikan data apa pun maka panggilan gagal, GetLastError mengembalikan kode kesalahan ERROR_INSUFFICIENT_BUFFER, dan jumlah byte yang dikembalikan adalah nol.
Jika lpOverlapped adalah NULL (I/O yang tidak tumpang tindih), lpBytesReturned tidak boleh NULL.
Jika lpOverlapped bukan NULL (Tumpang tindih I/O), lpBytesReturned bisa NULL. Jika ini adalah operasi yang tumpang tindih, Anda dapat mengambil jumlah byte yang dikembalikan dengan memanggil fungsi GetOverlappedResult . Jika hDevice dikaitkan dengan port penyelesaian I/O, Anda bisa mendapatkan jumlah byte yang dikembalikan dengan memanggil fungsi GetQueuedCompletionStatus .
-
lpOverlapped
-
Penunjuk ke struktur YANG TUMPANG TINDIH .
Jika hDevice dibuka dengan bendera FILE_FLAG_OVERLAPPED , lpOverlapped harus menunjuk ke struktur TUMPANG TINDIH yang valid. Dalam hal ini, DeviceIoControl dilakukan sebagai operasi yang tumpang tindih (asinkron). Jika perangkat dibuka dengan bendera FILE_FLAG_OVERLAPPED dan lpOverlapped adalah NULL, fungsi gagal dengan cara yang tidak dapat diprediksi.
Jika hDevice dibuka tanpa menentukan bendera FILE_FLAG_OVERLAPPED , lpOverlapped diabaikan dan fungsi DeviceIoControl tidak kembali sampai operasi selesai, atau sampai terjadi kesalahan.
Mengembalikan nilai
Jika operasi berhasil diselesaikan, DeviceIoControl mengembalikan nilai bukan nol.
Jika operasi gagal atau tertunda, DeviceIoControl mengembalikan nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Semua permintaan informasi baterai akan selesai dengan status ERROR_NO_SUCH_DEVICE (atau ERROR_FILE_NOT_FOUND dalam versi Windows 10 1809 dan yang lebih lama) setiap kali elemen BatteryTag permintaan tidak cocok dengan tag baterai saat ini. Ini memastikan bahwa informasi baterai yang dikembalikan cocok dengan baterai yang diminta (lihat Tag Baterai untuk informasi selengkapnya).
Keterangan
IOCTL baterai ini mengambil status baterai pada saat operasi kembali. Struktur parameter input, BATTERY_WAIT_STATUS, menunjukkan kapan status baterai akan diproses dan dikembalikan.
Permintaan status baterai dapat segera dikembalikan atau dapat diatur untuk menunggu kondisi tertentu sebelum selesai. Misalnya, permintaan informasi baterai dapat dibuat yang menunggu hingga kapasitas baterai mencapai titik tertentu atau status baterai berubah.
Semua permintaan informasi baterai akan lengkap dengan status ERROR_FILE_NOT_FOUND setiap kali elemen BatteryTag permintaan tidak cocok dengan tag baterai saat ini. (Lihat Tag Baterai untuk informasi selengkapnya.) Ini digunakan untuk memastikan bahwa informasi baterai yang dikembalikan cocok dengan baterai yang diminta.
Untuk implikasi I/O yang tumpang tindih pada operasi ini, lihat bagian Keterangan dari topik DeviceIoControl .
Contoh
Misalnya, lihat Menghitung Perangkat Baterai.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung |
Windows Server 2003 [hanya aplikasi desktop] |
Header |
|