IOCTL_BATTERY_SET_INFORMATION codice di controllo
Imposta varie informazioni sulla batteria. La struttura dei parametri di input, BATTERY_SET_INFORMATION, indica quali informazioni sullo stato della batteria devono essere impostate.
Per eseguire questa operazione, chiamare la funzione DeviceIoControl con i parametri seguenti.
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
);
Parametri
-
hDevice
-
Handle alla batteria in cui devono essere impostate le informazioni. Per recuperare un handle del dispositivo, chiamare la funzione CreateFile .
-
dwIoControlCode
-
Codice di controllo per l'operazione. Questo valore identifica l'operazione specifica da eseguire e il tipo di dispositivo su cui eseguirlo. Usare IOCTL_BATTERY_SET_INFORMATION per questa operazione.
-
lpInBuffer
-
Puntatore a una struttura BATTERY_SET_INFORMATION .
-
nInBufferSize
-
Dimensioni del buffer di input, in byte.
-
lpOutBuffer
-
Non usato con questa operazione; impostato su NULL.
-
nOutBufferSize
-
Non usato con questa operazione; impostato su zero.
-
lpBytesReturned
-
Puntatore a una variabile che riceve le dimensioni dei dati restituiti nel buffer lpOutBuffer , in byte.
Se il buffer di output è troppo piccolo per restituire i dati, la chiamata ha esito negativo, GetLastError restituisce il codice di errore ERROR_INSUFFICIENT_BUFFER e il conteggio dei byte restituito è zero.
Se lpOverlapped è NULL (I/O non sovrapposto), lpBytesReturned non può essere NULL, anche se lpOutBuffer è NULL.
Se lpOverlapped non è NULL (sovrapposto I/O), lpBytesReturned può essere NULL. Se si tratta di un'operazione sovrapposta, è possibile recuperare il numero di byte restituiti chiamando la funzione GetOverlappedResult . Se hDevice è associato a una porta di completamento di I/O, è possibile ottenere il numero di byte restituiti chiamando la funzione GetQueuedCompletionStatus .
-
lpOverlapped
-
Puntatore a una struttura OVERLAPPED .
Se hDevice è stato aperto con il flag FILE_FLAG_OVERLAPPED, lpOverlapped deve puntare a una struttura OVERLAPPED valida. In questo caso, DeviceIoControl viene eseguito come operazione sovrapposta (asincrona). Se il dispositivo è stato aperto con il flag FILE_FLAG_OVERLAPPED e lpOverlapped è NULL, la funzione non riesce in modi imprevedibili.
Se hDevice è stato aperto senza specificare il flag FILE_FLAG_OVERLAPPED, lpOverlapped viene ignorato e la funzione DeviceIoControl non restituisce fino al completamento dell'operazione o fino a quando non si verifica un errore.
Valore restituito
Se l'operazione viene completata correttamente, DeviceIoControl restituisce un valore diverso da zero.
Se l'operazione ha esito negativo o è in sospeso, DeviceIoControl restituisce zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Tutte le richieste di informazioni sulla batteria verranno completate con lo stato di ERROR_NO_SUCH_DEVICE (o ERROR_FILE_NOT_FOUND in Windows 10 versione 1809 e versioni precedenti) ogni volta che l'elemento BatteryTag della richiesta non corrisponde a quello del tag della batteria corrente. Ciò garantisce che le informazioni sulla batteria restituite corrispondano a quella della batteria richiesta (vedere Tag batteria per altre informazioni).
Commenti
Tutte le richieste per impostare le informazioni sulla batteria verranno completate con lo stato di ERROR_FILE_NOT_FOUND se il tag della batteria della richiesta non corrisponde a quello del tag della batteria corrente.
Per le implicazioni dell'I/O sovrapposta in questa operazione, vedere la sezione Osservazioni dell'argomento DeviceIoControl .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows XP [solo app desktop] |
Server minimo supportato |
Windows Server 2003 [solo app desktop] |
Intestazione |
|