Partager via


IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE IOCTL (ehstorioctl.h)

La requête IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE est envoyée par les pilotes et applications de silo pour modifier l’état d’une file d’attente de périphérique de stockage. Les demandes d’E/S dans la file d’attente de l’appareil de stockage sont conservées lorsque l’appareil est temporairement non autorisé.

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d’entrée

La mémoire tampon d’entrée à Irp->AssociatedIrp.SystemBuffer contient une structure de ACT_QUEUE_STATE. ACT_QUEUE_STATE est déclaré dans ehstorioctl.h comme suit.

typedef struct tagACT_QUEUE_STATE
{
    BOOLEAN fFrozen;
} ACT_QUEUE_STATE;

Longueur de la mémoire tampon d’entrée

Longueur d’une structure ACT_QUEUE_STATE.

Mémoire tampon de sortie

Aucun.

Longueur de la mémoire tampon de sortie

Aucun.

Bloc d’état

L’une des valeurs suivantes peut être retournée dans le champ Status.

Valeur d’état Description
STATUS_SUCCESS L’état de la file d’attente a été modifié avec succès.
STATUS_INVALID_BUFFER_SIZE La longueur de la mémoire tampon d’entrée est trop petite.
STATUS_ACCESS_DENIED La demande IOCTL n’a pas été émise par un conducteur de silo.

Remarques

Les pilotes de silo ou les applications peuvent figer la file d’attente des demandes d’E/S de périphérique de stockage si une non autorisé temporaire est nécessaire. Normalement, une non-autorisation temporaire se produit pendant des états à faible alimentation ou lorsqu’une stratégie nécessite le verrouillage d’appareils de stockage améliorés tels qu’une session utilisateur verrouillée. Dans ce cas, il est préférable de mettre en attente les requêtes d’E/S en attente plutôt que d’échouer les requêtes d’E/S et de provoquer une perte de données.

Pour éviter l’abus de la demande de IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE par les applications, seul un pilote peut émettre ce IOCTL. Si elle est envoyée à partir d’une application en mode utilisateur, cette requête échoue avec STATUS_ACCESS_DENIED.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 8
d’en-tête ehstorioctl.h (include EhStorIoctl.h)

Voir aussi

IOCTL_EHSTOR_DEVICE_GET_QUEUE_STATE