STORAGE_PROTOCOL_COMMAND 構造体 (ntddstor.h)
この構造は、ベンダー固有のプロトコル コマンドをストレージ デバイスに発行する IOCTL_STORAGE_PROTOCOL_COMMAND パススルー メカニズムで使用されます。
構文
typedef struct _STORAGE_PROTOCOL_COMMAND {
ULONG Version;
ULONG Length;
STORAGE_PROTOCOL_TYPE ProtocolType;
ULONG Flags;
ULONG ReturnStatus;
ULONG ErrorCode;
ULONG CommandLength;
ULONG ErrorInfoLength;
ULONG DataToDeviceTransferLength;
ULONG DataFromDeviceTransferLength;
ULONG TimeOutValue;
ULONG ErrorInfoOffset;
ULONG DataToDeviceBufferOffset;
ULONG DataFromDeviceBufferOffset;
ULONG CommandSpecific;
ULONG Reserved0;
ULONG FixedProtocolReturnData;
ULONG Reserved1[3];
UCHAR Command[ANYSIZE_ARRAY];
} STORAGE_PROTOCOL_COMMAND, *PSTORAGE_PROTOCOL_COMMAND;
メンバー
Version
この構造体のバージョン。 これを STORAGE_PROTOCOL_STRUCTURE_VERSIONに設定します。
Length
この構造のサイズ。 これを sizeof(STORAGE_PROTOCOL_COMMAND) に設定します。
ProtocolType
プロトコルの種類。
Flags
この要求に設定されたフラグ。 有効なフラグを次に示します。
フラグ | 説明 |
---|---|
STORAGE_PROTOCOL_COMMAND_FLAG_ADAPTER_REQUEST | このフラグは、デバイスではなくアダプターをターゲットにする要求を示します。 |
ReturnStatus
ストレージ デバイスに対して行われた要求の状態。 Windows 10で返すことができる値は次のとおりです。
ステータス値 | 説明 |
---|---|
STORAGE_PROTOCOL_STATUS_PENDING | 要求は保留中です。 |
STORAGE_PROTOCOL_STATUS_SUCCESS | 要求が正常に完了しました。 |
STORAGE_PROTOCOL_STATUS_ERROR | 要求でエラーが発生しました。 |
STORAGE_PROTOCOL_STATUS_INVALID_REQUEST | 要求が無効です。 |
STORAGE_PROTOCOL_STATUS_NO_DEVICE | 要求を行うためにデバイスを使用できません。 |
STORAGE_PROTOCOL_STATUS_BUSY | デバイスが要求に対して動作中です。 |
STORAGE_PROTOCOL_STATUS_DATA_OVERRUN | 要求に対する操作中に、デバイスでデータ オーバーランが発生しました。 |
STORAGE_PROTOCOL_STATUS_INSUFFICIENT_RESOURCES | リソースが不足しているため、デバイスは要求を完了できません。 |
STORAGE_PROTOCOL_STATUS_NOT_SUPPORTED | 要求はサポートされていません。 |
ErrorCode
この要求に対して返されるバス固有のプロトコル エラー コード。 これは必要に応じて設定されます。
CommandLength
コマンドの長さ (バイト単位)。 呼び出し元はこれを 0 以外の値に設定する必要があります。
ErrorInfoLength
ErrorCode バッファーの長さ (バイト単位)。 これは必要に応じて設定され、0 に設定できます。
DataToDeviceTransferLength
デバイスに転送されるバッファーのサイズ。
DataFromDeviceTransferLength
デバイスから転送されるバッファーのサイズ。
TimeOutValue
タイムアウトになるまでデバイスを待機する時間を指定します。これは秒単位で設定されます。
ErrorInfoOffset
ErrorCode バッファーのオフセット。 これはポインターを合わせる必要があります。
DataToDeviceBufferOffset
デバイスに転送されるバッファーのオフセット。 これはポインターに合わせて配置する必要があり、WRITE 要求でのみ使用されます。
DataFromDeviceBufferOffset
デバイスから転送されるバッファーのオフセット。 これはポインターに合わせて配置する必要があり、READ 要求でのみ使用されます。
CommandSpecific
コマンドと共に渡される追加の コマンド固有のデータ。 これはドライバーからのコマンドによって異なり、必要に応じて設定されます。
Reserved0
将来利用するために予約されています。
FixedProtocolReturnData
返されるデータ。 これは必要に応じて設定されます。 NVMe などの一部のプロトコルでは、個別のデバイス データ転送を必要とせずに、少量のデータ (完了キューエントリから DWORD0) を返す場合があります。
Reserved1[3]
将来利用するために予約されています。
Command[ANYSIZE_ARRAY]
デバイスに渡されるベンダー固有のコマンド。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 |
サポートされている最小のサーバー | Windows Server 2016 |
Header | ntddstor.h (Ntddstor.h を含む) |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示