IOCTL_BATTERY_SET_INFORMATION-Steuerelementcode
Legt verschiedene Akkuinformationen fest. Die Eingabeparameterstruktur BATTERY_SET_INFORMATION gibt an, welche Akku-status-Informationen festgelegt werden sollen.
Um diesen Vorgang auszuführen, rufen Sie die DeviceIoControl-Funktion mit den folgenden Parametern auf.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to battery
IOCTL_BATTERY_SET_INFORMATION, // dwIoControlCode
(LPVOID) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
NULL, // lpOutBuffer
0, // nOutBufferSize
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Parameter
-
hDevice
-
Ein Ziehpunkt für den Akku, auf dem die Informationen festgelegt werden sollen. Um ein Gerätehandle abzurufen, rufen Sie die CreateFile-Funktion auf.
-
dwIoControlCode
-
Der Steuerelementcode für den Vorgang. Dieser Wert gibt den auszuführenden Vorgang und den Typ des Geräts an, auf dem er ausgeführt werden soll. Verwenden Sie für diesen Vorgang IOCTL_BATTERY_SET_INFORMATION .
-
lpInBuffer
-
Ein Zeiger auf eine BATTERY_SET_INFORMATION-Struktur .
-
nInBufferSize
-
Die Größe des Eingabepuffers in Bytes.
-
lpOutBuffer
-
Nicht für diesen Vorgang verwendet; auf NULL festgelegt.
-
nOutBufferSize
-
Nicht für diesen Vorgang verwendet; auf 0 (null) festgelegt.
-
lpBytesReturned
-
Ein Zeiger auf eine Variable, die die Größe der im lpOutBuffer-Puffer zurückgegebenen Daten in Bytes empfängt.
Wenn der Ausgabepuffer zu klein ist, um Daten zurückzugeben, schlägt der Aufruf fehl, GetLastError gibt den Fehlercode ERROR_INSUFFICIENT_BUFFER zurück, und die zurückgegebene Byteanzahl ist null.
Wenn lpOverlappedNULL (nicht überlappende E/A) ist, kann lpBytesReturned nicht NULL sein, auch wenn lpOutBufferNULL ist.
Wenn lpOverlapped nicht NULL ist (überlappende E/A), kann lpBytesReturnedNULL sein. Wenn es sich um einen überlappenden Vorgang handelt, können Sie die Anzahl der zurückgegebenen Bytes abrufen, indem Sie die GetOverlappedResult-Funktion aufrufen. Wenn hDevice einem E/A-Abschlussport zugeordnet ist, können Sie die Anzahl der zurückgegebenen Bytes abrufen, indem Sie die GetQueuedCompletionStatus-Funktion aufrufen.
-
lpOverlapped
-
Ein Zeiger auf eine OVERLAPPED-Struktur .
Wenn hDevice mit dem flag FILE_FLAG_OVERLAPPED geöffnet wurde, muss lpOverlapped auf eine gültige OVERLAPPED-Struktur verweisen. In diesem Fall wird DeviceIoControl als überlappender (asynchroner) Vorgang ausgeführt. Wenn das Gerät mit dem flag FILE_FLAG_OVERLAPPED geöffnet wurde und lpOverlappedNULL ist, schlägt die Funktion auf unvorhersehbare Weise fehl.
Wenn hDevice geöffnet wurde, ohne das flag FILE_FLAG_OVERLAPPED anzugeben, wird lpOverlapped ignoriert, und die DeviceIoControl-Funktion wird erst zurückgegeben, wenn der Vorgang abgeschlossen ist oder ein Fehler auftritt.
Rückgabewert
Wenn der Vorgang erfolgreich abgeschlossen wird, gibt DeviceIoControl einen Wert ungleich null zurück.
Wenn der Vorgang fehlschlägt oder aussteht, gibt DeviceIoControl null zurück. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Alle Anforderungen für Akkuinformationen werden mit der status von ERROR_NO_SUCH_DEVICE (oder ERROR_FILE_NOT_FOUND in Windows 10 Version 1809 und früher) abgeschlossen, wenn das BatteryTag-Element der Anforderung nicht mit dem des aktuellen Akkutags übereinstimmt. Dadurch wird sichergestellt, dass die zurückgegebenen Akkuinformationen mit denen des angeforderten Akkus übereinstimmen (weitere Informationen finden Sie unter Akkutags ).
Bemerkungen
Alle Anforderungen zum Festlegen von Akkuinformationen werden mit der status von ERROR_FILE_NOT_FOUND abgeschlossen, wenn das Akkutag der Anforderung nicht mit dem des aktuellen Akkutags übereinstimmt.
Die Auswirkungen von überlappenden E/A-Vorgängen auf diesen Vorgang finden Sie im Abschnitt Hinweise des Themas DeviceIoControl .
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows Server 2003 [nur Desktop-Apps] |
Header |
|