Bagikan melalui


struktur STORAGE_PROTOCOL_COMMAND (ntddstor.h)

Struktur ini digunakan dengan mekanisme pass-through IOCTL_STORAGE_PROTOCOL_COMMAND yang mengeluarkan perintah protokol khusus vendor ke perangkat penyimpanan.

Sintaks

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                 FixedProtocolReturnData2;
  ULONG                 Reserved1[2];
  UCHAR                 Command[ANYSIZE_ARRAY];
} STORAGE_PROTOCOL_COMMAND, *PSTORAGE_PROTOCOL_COMMAND;

Anggota

Version

Versi struktur ini. Atur ini menjadi STORAGE_PROTOCOL_STRUCTURE_VERSION.

Length

Ukuran struktur ini. Atur ini ke sizeof(STORAGE_PROTOCOL_COMMAND).

ProtocolType

Jenis protokol.

Flags

Bendera diatur untuk permintaan ini. Berikut ini adalah bendera yang valid.

Bendera Deskripsi
STORAGE_PROTOCOL_COMMAND_FLAG_ADAPTER_REQUEST Bendera ini menunjukkan permintaan untuk menargetkan adaptor alih-alih perangkat.

ReturnStatus

Status permintaan yang dibuat ke perangkat penyimpanan. Dalam Windows 10, nilai yang mungkin dapat dikembalikan meliputi:

Nilai status Deskripsi
STORAGE_PROTOCOL_STATUS_PENDING Permintaan tertunda.
STORAGE_PROTOCOL_STATUS_SUCCESS Permintaan berhasil diselesaikan.
STORAGE_PROTOCOL_STATUS_ERROR Permintaan mengalami kesalahan.
STORAGE_PROTOCOL_STATUS_INVALID_REQUEST Permintaan tidak valid.
STORAGE_PROTOCOL_STATUS_NO_DEVICE Perangkat tidak tersedia untuk mengajukan permintaan.
STORAGE_PROTOCOL_STATUS_BUSY Perangkat sibuk bertindak berdasarkan permintaan.
STORAGE_PROTOCOL_STATUS_DATA_OVERRUN Perangkat mengalami overrun data saat bertindak berdasarkan permintaan.
STORAGE_PROTOCOL_STATUS_INSUFFICIENT_RESOURCES Perangkat tidak dapat menyelesaikan permintaan karena sumber daya yang tidak mencukup.
STORAGE_PROTOCOL_STATUS_NOT_SUPPORTED Permintaan tidak didukung.

ErrorCode

Kode kesalahan protokol khusus bus untuk kembali untuk permintaan ini. Ini secara opsional diatur.

CommandLength

Panjang perintah, dalam byte. Penelepon harus mengatur ini ke nilai bukan nol.

ErrorInfoLength

Panjang buffer ErrorCode , dalam byte. Ini secara opsional diatur dan dapat diatur ke 0.

DataToDeviceTransferLength

Ukuran buffer yang akan ditransfer ke perangkat.

DataFromDeviceTransferLength

Ukuran buffer ini akan ditransfer dari perangkat.

TimeOutValue

Menentukan berapa lama menunggu perangkat hingga waktu habis. Ini diatur dalam satuan detik.

ErrorInfoOffset

Offset buffer ErrorCode . Ini harus selaras dengan penunjuk.

DataToDeviceBufferOffset

Offset buffer yang akan ditransfer ke perangkat. Ini harus selaras dengan pointer dan hanya digunakan dengan permintaan WRITE.

DataFromDeviceBufferOffset

Offset buffer yang akan ditransfer dari perangkat. Ini harus selaras dengan pointer dan hanya digunakan dengan permintaan READ.

CommandSpecific

Data khusus perintah tambahan yang diteruskan bersama dengan Command. Ini tergantung pada perintah dari driver, dan secara opsional diatur.

Reserved0

Disiapkan untuk penggunaan masa mendatang.

FixedProtocolReturnData

Data yang dikembalikan. Ini secara opsional diatur. Beberapa protokol seperti NVMe, dapat mengembalikan sejumlah kecil data (DWORD0 dari entri antrean penyelesaian) tanpa perlu transfer data perangkat terpisah.

FixedProtocolReturnData2

Data yang dikembalikan2. Ini secara opsional diatur. Beberapa protokol seperti NVMe, dapat mengembalikan data dalam jumlah kecil (DWORD1 dari entri antrean penyelesaian) tanpa perlu transfer data perangkat terpisah.

Reserved1[2]

Disiapkan untuk penggunaan masa mendatang.

Command[ANYSIZE_ARRAY]

Perintah khusus vendor yang akan diteruskan ke perangkat.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10
Server minimum yang didukung Server Windows 2016
Header ntddstor.h (termasuk Ntddstor.h)

Lihat juga