struktur MTP_COMMAND_DATA_OUT (mtpext.h)
Struktur MTP_COMMAND_DATA_OUT berisi respons Protokol Transportasi Media (MTP) yang diisi oleh driver perangkat saat keluar dari panggilan ke IWMDMDevice3::D eviceIoControl.
Sintaks
typedef struct _MTP_COMMAND_DATA_OUT {
WORD ResponseCode;
DWORD NumParams;
DWORD Params[MTP_RESPONSE_MAX_PARAMS];
DWORD CommandReadDataSize;
BYTE CommandReadData[1];
} MTP_COMMAND_DATA_OUT, *PMTP_COMMAND_DATA_OUT;
Anggota
ResponseCode
Kode respons.
NumParams
Jumlah parameter untuk respons ini.
Params[MTP_RESPONSE_MAX_PARAMS]
Parameter respons. MTP_RESPONSE_MAX_PARAMS adalah konstanta yang ditentukan dengan nilai 5.
CommandReadDataSize
Ukuran data CommandReadData[1], dalam byte.
CommandReadData[1]
Opsional, byte data pertama yang dibaca dari perangkat jika MTP_COMMAND_DATA_IN. NextPhase adalah MTP_NEXTPHASE_READ_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 berikut:
#define SIZEOF_REQUIRED_COMMAND_DATA_IN (sizeof(MTP_COMMAND_DATA_IN)-1)
Setiap permintaan juga harus memiliki buffer output setidaknya SIZEOF_REQUIRED_COMMAND_DATA_OUT byte, yang didefinisikan sebagai berikut:
#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 |