Freigeben über


IOCTL_STORAGE_DEVICE_POWER_CAP IOCTL (ntddstor.h)

Ein Treiber kann IOCTL_STORAGE_DEVICE_POWER_CAP verwenden, um einen maximalen Betriebsenergieverbrauch für ein Speichergerät anzugeben. Das Betriebssystem macht es am besten, das Gerät in einen Leistungszustand zu übertragen, 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 der gewünschte Höchstwert sein.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Irp->AssociatedIrp.SystemBuffer enthält eine STORAGE_DEVICE_POWER_CAP Struktur, die die maximale Leistung angibt.

Eingabepufferlänge

  • Parameters.DeviceIoControl.InputBufferLength gibt die Größe des Eingabeparameterpuffers bei Irp->AssociatedIrp.SystemBufferan, die größer oder gleich sizeof(STORAGE_DEVICE_POWER_CAP)sein muss.

Ausgabepuffer

Wenn der Vorgang erfolgreich ist, enthält der Ausgabepuffer bei Irp->AssociatedIrp.SystemBuffer eine STORAGE_DEVICE_POWER_CAP Struktur.

Länge des Ausgabepuffers

Parameters.DeviceIoControl.OutputBufferLength gibt die Größe des Ausgabeparameterpuffers bei Irp->AssociatedIrp.SystemBufferin Bytes an. OutputBufferLength- muss größer oder gleich sizeof(STORAGE_DEVICE_POWER_CAP)sein.

Statusblock

Das Feld Information wird auf die Anzahl der zurückgegebenen Bytes festgelegt. Das Feld Status wird auf STATUS_SUCCESS oder möglicherweise auf STATUS_INVALID_DEVICE_REQUEST, STATUS_INVALID_PARAMETER oder STATUS_NOT_SUPPORTED festgelegt.

Bemerkungen

Bei einem Neustart ist der IOCTL_STORAGE_DEVICE_POWER_CAP Effekt nicht dauerhaft. Bei einem NVMe-Geräterücksetzungs-/Stromzyklus ist der Effekt des IOCTL persistent.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10
mindestens unterstützte Server- Windows Server 2016
Header- ntddstor.h (include Ntddstor.h)

Siehe auch

IO_STATUS_BLOCK

STORAGE_DEVICE_POWER_CAP

STORAGE_DEVICE_POWER_CAP_UNITS