次の方法で共有


IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE IOCTL (ehstorioctl.h)

IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE要求は、ストレージ デバイス キューの状態を変更するためにサイロ ドライバーとアプリケーションによって送信されます。 ストレージ デバイス キュー内の IO 要求は、デバイスが一時的に承認されていない場合に保持されます。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

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 を含む)

こちらもご覧ください

IOCTL_EHSTOR_DEVICE_GET_QUEUE_STATE