struttura MTP_COMMAND_DATA_OUT (mtpext.h)
La struttura MTP_COMMAND_DATA_OUT contiene risposte MTP (Media Transport Protocol) compilate dal driver di dispositivo all'uscita da una chiamata a IWMDMDevice3::D eviceIoControl.
Sintassi
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;
Members
ResponseCode
Codice di risposta.
NumParams
Numero di parametri per questa risposta.
Params[MTP_RESPONSE_MAX_PARAMS]
Parametri della risposta. MTP_RESPONSE_MAX_PARAMS è una costante definita con un valore pari a 5.
CommandReadDataSize
Dimensioni dei dati di CommandReadData[1], in byte.
CommandReadData[1]
Facoltativo, primo byte di dati da leggere dal dispositivo se MTP_COMMAND_DATA_IN. NextPhase è MTP_NEXTPHASE_READ_DATA.
Commenti
Il buffer di input deve contenere una struttura MTP_COMMAND_DATA_IN compilata in modo appropriato. All'uscita, il driver di dispositivo compilerà la struttura MTP_COMMAND_DATA_OUT e la salverà nel buffer di output. Pertanto, qualsiasi richiesta deve avere un buffer di input di almeno SIZEOF_REQUIRED_COMMAND_DATA_IN byte, definito come segue:
#define SIZEOF_REQUIRED_COMMAND_DATA_IN (sizeof(MTP_COMMAND_DATA_IN)-1)
Qualsiasi richiesta deve avere anche un buffer di output di almeno SIZEOF_REQUIRED_COMMAND_DATA_OUT byte, definito come segue:
#define SIZEOF_REQUIRED_COMMAND_DATA_OUT (sizeof(MTP_COMMAND_DATA_OUT)-1)
Si presuppone che tutti i comandi siano autonomi, vale a dire che possono essere elaborati completamente in una sola chiamata. Ciò ha implicazioni sui trasferimenti di dati lunghi, perché la suddivisione in blocchi nel senso tradizionale non è supportata. Ad esempio, per eseguire una lettura per 3megabyte, il chiamante deve assicurarsi che allochi un buffer di output di 3 MB più SIZEOF_REQUIRED_COMMAND_DATA_OUT byte. I trasferimenti di dati lunghi non devono essere eseguiti con questo metodo, ma piuttosto tramite le NORMALI API di trasferimento dei dati.
Requisiti
Requisito | Valore |
---|---|
Intestazione | mtpext.h |