IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE IOCTL (ehstorioctl.h)
Die IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE-Anforderung wird von Silotreibern und Anwendungen gesendet, um den Zustand einer Speichergerätewarteschlange zu ändern. E/A-Anforderungen in der Speichergerätewarteschlange werden gehalten, wenn das Gerät vorübergehend nicht autorisiert ist.
Hauptcode
Eingabepuffer
Der Eingabepuffer bei Irp-AssociatedIrp.SystemBuffer> enthält eine ACT_QUEUE_STATE-Struktur. ACT_QUEUE_STATE wird in ehstorioctl.h wie folgt deklariert.
typedef struct tagACT_QUEUE_STATE
{
BOOLEAN fFrozen;
} ACT_QUEUE_STATE;
Länge des Eingabepuffers
Die Länge einer ACT_QUEUE_STATE-Struktur .
Ausgabepuffer
Keine.
Länge des Ausgabepuffers
Keine.
Statusblock
Einer der folgenden Werte kann im Feld Status zurückgegeben werden.
Statuswert | BESCHREIBUNG |
---|---|
STATUS_SUCCESS | Der Warteschlangenstatus wurde erfolgreich geändert. |
STATUS_INVALID_BUFFER_SIZE | Die Länge des Eingabepuffers ist zu klein. |
STATUS_ACCESS_DENIED | Die IOCTL-Anforderung wurde nicht von einem Silotreiber ausgestellt. |
Hinweise
Silotreiber oder Anwendungen können die E/A-Anforderungswarteschlange für Speichergeräte einfrieren, wenn eine temporäre Aufhebung der Autorisierung erforderlich ist. Normalerweise erfolgt die vorübergehende Aufhebung der Autorisierung während des Zustands mit geringem Stromverbrauch oder wenn eine Richtlinie die Sperre von Erweiterten Speichergeräten wie einer gesperrten Benutzersitzung erfordert. In einem solchen Fall ist es besser, ausstehende E/A-Anforderungen in die Zurückhaltung zu setzen, anstatt die E/A-Anforderungen fehlzuschlagen und Datenverlust zu verursachen.
Um einen Missbrauch der IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE-Anforderung durch Anwendungen zu verhindern, kann nur ein Treiber diese IOCTL ausstellen. Wenn sie von einer Benutzermodusanwendung gesendet wird, schlägt diese Anforderung mit STATUS_ACCESS_DENIED fehl.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 8 |
Kopfzeile | ehstorioctl.h (include EhStorIoctl.h) |