IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE IOCTL (ehstorioctl.h)
IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE要求は、ストレージ デバイス キューの状態を変更するためにサイロ ドライバーとアプリケーションによって送信されます。 ストレージ デバイス キュー内の IO 要求は、デバイスが一時的に承認されていない場合に保持されます。
メジャー コード
[入力バッファー]
Irp-AssociatedIrp.SystemBuffer> の入力バッファーには、ACT_QUEUE_STATE構造体が含まれています。 ACT_QUEUE_STATE は、 ehstorioctl.h で次のように宣言されています。
typedef struct tagACT_QUEUE_STATE
{
BOOLEAN fFrozen;
} ACT_QUEUE_STATE;
入力バッファーの長さ
ACT_QUEUE_STATE構造体の長さ。
出力バッファー
[なし] :
出力バッファーの長さ
[なし] :
ステータス ブロック
[状態] フィールドには、次のいずれかの値を返すことができます。
状態の値 | 説明 |
---|---|
STATUS_SUCCESS | キューの状態が正常に変更されました。 |
STATUS_INVALID_BUFFER_SIZE | 入力バッファーの長さが小さすぎます。 |
STATUS_ACCESS_DENIED | IOCTL 要求がサイロ ドライバーによって発行されませんでした。 |
注釈
サイロ ドライバーまたはアプリケーションは、一時的な認証が必要な場合に、ストレージ デバイス IO 要求キューを固定できます。 通常、一時的な非認証は、低電力状態の間、またはポリシーでロックされたユーザー セッションなどの拡張ストレージ デバイスのロックが必要な場合に発生します。 このような場合は、IO 要求を失敗させ、データ損失を引き起こすのではなく、保留中の IO 要求を保留にすることをお勧めします。
アプリケーションによる IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE 要求の不正使用を防ぐために、ドライバーのみがこの IOCTL を発行できます。 ユーザー モード アプリケーションから送信された場合、この要求はSTATUS_ACCESS_DENIEDで失敗します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 以降で使用可能 |
Header | ehstorioctl.h (EhStorIoctl.h を含む) |