Freigeben über


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
Poclass.h;
Batclass.h unter Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP

Siehe auch

Akkuinformationen

Steuerungscodes für die Energieverwaltung

Deviceiocontrol

BATTERY_SET_INFORMATION

IOCTL_BATTERY_QUERY_INFORMATION

IOCTL_BATTERY_QUERY_STATUS

IOCTL_BATTERY_QUERY_TAG