IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE control code

The IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE request is sent by silo drivers and applications to change the state of a storage device queue. IO requests in the storage device queue are held when the device is temporarily unauthorized.

Input Parameters

The input buffer at Irp->AssociatedIrp.SystemBuffer contains an ACT_QUEUE_STATE structure. ACT_QUEUE_STATE is declared in ehstorioctl.h as the following.


typedef struct tagACT_QUEUE_STATE
{
    BOOLEAN fFrozen;
} ACT_QUEUE_STATE;

fFrozen

The freeze state of the IO request queue for a storage device. If set to TRUE, the queue is frozen and all IO requests sent to the storage device are held. Otherwise, IO requests in the device queue are processed.

Output Parameters

None.

I/O Status Block

One of the following values can be returned in the Status field.

Status ValueDescription
STATUS_SUCCESSThe queue state was changed successfully.
STATUS_INVALID_BUFFER_SIZEThe input buffer length is too small.
STATUS_ACCESS_DENIEDThe IOCTL request was not issued by a silo driver.

 

Remarks

Silo drivers or applications can freeze the storage device IO request queue if temporary unauthorization is needed. Normally, temporary unauthorization occurs during low power states or when a policy requires locking of Enhanced Storage devices such as a locked user session. In such a case, it is preferable to put pending IO requests on hold rather than fail the IO requests and cause data loss.

To prevent abuse of the IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE request by applications, only a driver can issue this IOCTL. If sent from a user mode application, this request will fail with STATUS_ACCESS_DENIED.

Requirements

Version

Available starting with Windows 8

Header

EhStorIoctl.h (include EhStorIoctl.h)

See also

IOCTL_EHSTOR_DEVICE_GET_QUEUE_STATE

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft