Condividi tramite


IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE IOCTL (ehstorioctl.h)

La richiesta di IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE viene inviata da driver e applicazioni silo per modificare lo stato di una coda di dispositivi di archiviazione. Le richieste di I/O nella coda dei dispositivi di archiviazione vengono mantenute quando il dispositivo è temporaneamente non autorizzato.

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di input

Il buffer di input in Irp-AssociatedIrp.SystemBuffer> contiene una struttura ACT_QUEUE_STATE. ACT_QUEUE_STATE viene dichiarato in ehstorioctl.h come indicato di seguito.

typedef struct tagACT_QUEUE_STATE
{
    BOOLEAN fFrozen;
} ACT_QUEUE_STATE;

Lunghezza del buffer di input

Lunghezza di una struttura ACT_QUEUE_STATE .

Buffer di output

Nessuno.

Lunghezza del buffer di output

Nessuno.

Blocco dello stato

È possibile restituire uno dei valori seguenti nel campo Stato .

Valore di stato Descrizione
STATUS_SUCCESS Lo stato della coda è stato modificato correttamente.
STATUS_INVALID_BUFFER_SIZE La lunghezza del buffer di input è troppo piccola.
STATUS_ACCESS_DENIED La richiesta IOCTL non è stata eseguita da un driver silo.

Commenti

I driver o le applicazioni silo possono bloccare la coda delle richieste di I/O del dispositivo di archiviazione se è necessaria l'annullamento dell'autenticazione temporanea. In genere, l'annullamento temporaneo si verifica durante gli stati a basso consumo o quando un criterio richiede il blocco di dispositivi di archiviazione avanzata, ad esempio una sessione utente bloccata. In questo caso, è preferibile mettere in attesa le richieste di I/O in sospeso anziché interrompere le richieste di I/O e causare la perdita di dati.

Per evitare abusi della richiesta di IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE da parte delle applicazioni, solo un driver può emettere questo IOCTL. Se inviato da un'applicazione in modalità utente, questa richiesta avrà esito negativo con STATUS_ACCESS_DENIED.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 8
Intestazione ehstorioctl.h (include EhStorIoctl.h)

Vedi anche

IOCTL_EHSTOR_DEVICE_GET_QUEUE_STATE