IOCTL_STORAGE_DEVICE_POWER_CAP IOCTL (winioctl.h)

Os aplicativos do Windows podem usar esse código de controle para especificar um nível máximo de consumo de energia operacional para um dispositivo de armazenamento. O sistema operacional fará o melhor para fazer a transição do dispositivo para um estado de energia que não excederá o máximo determinado. No entanto, isso depende do que o dispositivo dá suporte. O máximo real pode ser menor ou maior que o máximo desejado.

Para executar essa operação, chame a função DeviceIoControl com os parâmetros a seguir.

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to device
  IOCTL_STORAGE_DEVICE_POWER_CAP,   // dwIoControlCode
  (LPDWORD) lpInBuffer,             // input buffer
  (DWORD) nInBufferSize,            // size of input buffer
  (LPDWORD) lpOutBuffer,            // output buffer
  (DWORD) nOutBufferSize,           // size of output buffer
  (LPDWORD) lpBytesReturned,        // number of bytes returned
  (LPOVERLAPPED) lpOverlapped       // OVERLAPPED structure
);

Comentários

Esse IOCTL é enviado para o driver de dispositivo com um valor máximo de energia que o driver deve honrar. Esse IOCTL retorna com um valor que representa o que o driver de dispositivo realmente é capaz de alcançar. Esse valor pode ser igual a, menor ou maior que o valor desejado que foi enviado originalmente.

Por exemplo, considere um driver de dispositivo de armazenamento que implementa três estados de energia operacional que têm um nível máximo de consumo de energia de 10 watts, 8 watts e 6 watts. Se o chamador deste IOCTL especificar que o dispositivo não deve consumir mais de 9 watts, ele deve escolher seu estado de 8 watts, pois esse é o estado mais alto que ele tem, que ainda é menor que 9 watts. Se o chamador deste IOCTL especificar que o dispositivo não deve consumir mais de 5 watts, o driver do dispositivo escolherá o estado de 6 watts porque 6 watts é o valor mínimo em que o dispositivo pode funcionar.

Requisitos

   
Cliente mínimo com suporte Windows 10
Servidor mínimo com suporte Windows Server 2016
Cabeçalho winioctl.h (inclua Windows.h)

Confira também