IOCTL_STORAGE_DEVICE_POWER_CAP IOCTL (winioctl.h)
Windows アプリケーションでは、この制御コードを使用して、ストレージ デバイスの最大動作電力消費量レベルを指定できます。 OS は、デバイスを指定された最大値を超えない電源状態に移行するようにします。 ただし、これはデバイスでサポートされている内容によって異なります。 実際の最大値は、指定の最大値より小さくなることも大きくなることもあります。
この操作を実行するには、次のパラメーターを指定して DeviceIoControl 関数を呼び出します。
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
);
解説
この IOCTL は、ドライバーが受け入されることが期待される最大電力値を持つデバイス ドライバーに送信されます。 次に、この IOCTL は、デバイス ドライバーが実際に達成できる機能を表す値を返します。 この値は、最初に送信された目的の値と等しいか、より小さいか、またはより大きい値である可能性があります。
たとえば、最大電力消費レベルが 10 ワット、8 ワット、6 ワットの 3 つの動作電源状態を実装するストレージ デバイス ドライバーについて考えてみましょう。 この IOCTL の呼び出し元が、デバイスが 9 ワットを超える消費をしないように指定した場合は、8 ワットの状態を選択する必要があります。これは、9 ワット未満の最も高い状態であるためです。 この IOCTL の呼び出し元が、デバイスが 5 ワットを超える消費をしないように指定した場合、デバイス ドライバーは 6 ワットの状態を選択します。これは、デバイスが機能できる最小値が 6 ワットであるためです。
要件
サポートされている最小のクライアント | Windows 10 |
サポートされている最小のサーバー | Windows Server 2016 |
Header | winioctl.h (Windows.h を含む) |