IOCTL_STORAGE_DEVICE_POWER_CAP IOCTL (winioctl.h)
Windows-Anwendungen können diesen Steuerungscode verwenden, um eine maximale Höhe der Betriebsleistungsaufnahme für ein Speichergerät anzugeben. Das Betriebssystem tut sein Bestes, um das Gerät in einen Energiezustand zu versetzen, der den angegebenen Höchstwert nicht überschreitet. Dies hängt jedoch davon ab, was das Gerät unterstützt. Das tatsächliche Maximum kann kleiner oder größer als das gewünschte Maximum sein.
Um diesen Vorgang auszuführen, rufen Sie die Funktion DeviceIoControl mit den folgenden Parametern auf.
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
);
Hinweise
Diese IOCTL wird an den Gerätetreiber mit einem maximalen Leistungswert gesendet, den der Treiber berücksichtigen soll. Diese IOCTL gibt dann mit einem Wert zurück, der angibt, was der Gerätetreiber tatsächlich erreichen kann. Dieser Wert kann gleich, kleiner als oder größer sein als der gewünschte Wert, der ursprünglich gesendet wurde.
Betrachten Sie beispielsweise einen Speichergerätetreiber, der drei Betriebsleistungszustände mit einem maximalen Stromverbrauch von 10 Watt, 8 Watt und 6 Watt implementiert. Wenn der Aufrufer dieser IOCTL angibt, dass das Gerät nicht mehr als 9 Watt verbrauchen soll, muss es seinen 8-Watt-Zustand auswählen, da dies der höchste Zustand ist, der immer noch kleiner als 9 Watt ist. Wenn der Aufrufer dieser IOCTL angibt, dass das Gerät nicht mehr als 5 Watt verbrauchen soll, wählt der Gerätetreiber den 6-Watt-Zustand aus, da 6 Watt der Mindestwert ist, mit dem das Gerät funktionieren kann.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 10 |
Unterstützte Mindestversion (Server) | Windows Server 2016 |
Kopfzeile | winioctl.h (windows.h einschließen) |