struktur MTP_COMMAND_DATA_IN (mtpext.h)
Struktur MTP_COMMAND_DATA_IN berisi perintah kustom Protokol Transportasi Media (MTP) yang dikirim ke perangkat dengan menggunakan metode IWMDMDevice3::D eviceIoControl .
Sintaks
typedef struct _MTP_COMMAND_DATA_IN {
WORD OpCode;
DWORD NumParams;
DWORD Params[MTP_COMMAND_MAX_PARAMS];
DWORD NextPhase;
DWORD CommandWriteDataSize;
BYTE CommandWriteData[1];
} MTP_COMMAND_DATA_IN, *PMTP_COMMAND_DATA_IN;
Anggota
OpCode
Kode operasi.
NumParams
Jumlah parameter yang diteruskan.
Params[MTP_COMMAND_MAX_PARAMS]
Parameter ke perintah . MTP_COMMAND_MAX_PARAMS adalah konstanta yang ditentukan dengan nilai 5.
NextPhase
Menunjukkan apakah perintah memiliki fase data baca, fase data tulis, atau tanpa fase data. Nilai yang valid ditentukan dalam tabel berikut.
CommandWriteDataSize
Ukuran data CommandWriteData[1], dalam byte.
CommandWriteData[1]
Opsional, byte pertama data untuk menulis ke perangkat jika NextPhase MTP_NEXTPHASE_WRITE_DATA.
Keterangan
Buffer input diharapkan berisi struktur MTP_COMMAND_DATA_IN yang diisi dengan tepat. Saat keluar, driver perangkat akan mengisi struktur MTP_COMMAND_DATA_OUT dan menyimpannya ke buffer output. Oleh karena itu, setiap permintaan harus memiliki buffer input setidaknya SIZEOF_REQUIRED_COMMAND_DATA_IN byte, yang didefinisikan sebagai
#define SIZEOF_REQUIRED_COMMAND_DATA_IN (sizeof(MTP_COMMAND_DATA_IN)-1)
dan buffer output setidaknya SIZEOF_REQUIRED_COMMAND_DATA_OUT byte, yang didefinisikan sebagai
#define SIZEOF_REQUIRED_COMMAND_DATA_OUT (sizeof(MTP_COMMAND_DATA_OUT)-1)
Diasumsikan bahwa semua perintah mandiri, yaitu, mereka dapat diproses sepenuhnya dalam satu panggilan. Ini memiliki implikasi pada transfer data yang panjang, karena pemotongan dalam arti tradisional tidak didukung. (Misalnya, untuk mengeluarkan bacaan untuk 3megabyte, pemanggil harus memastikan bahwa ia mengalokasikan buffer output 3 MB plus SIZEOF_REQUIRED_COMMAND_DATA_OUT byte.) Transfer data yang panjang tidak boleh dilakukan dengan metode ini, melainkan melalui API transfer data normal.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | mtpext.h |