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
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) |