estructura MTP_COMMAND_DATA_OUT (mtpext.h)
La estructura de MTP_COMMAND_DATA_OUT contiene respuestas del Protocolo de transporte multimedia (MTP) rellenadas por el controlador del dispositivo al salir de una llamada a IWMDMDevice3::D eviceIoControl.
Sintaxis
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;
Miembros
ResponseCode
Código de respuesta.
NumParams
Número de parámetros para esta respuesta.
Params[MTP_RESPONSE_MAX_PARAMS]
Parámetros de la respuesta. MTP_RESPONSE_MAX_PARAMS es una constante definida con un valor de 5.
CommandReadDataSize
Tamaño de datos de CommandReadData[1], en bytes.
CommandReadData[1]
Opcional, primer byte de datos que se van a leer desde el dispositivo si MTP_COMMAND_DATA_IN. NextPhase es MTP_NEXTPHASE_READ_DATA.
Comentarios
Se espera que el búfer de entrada contenga una estructura MTP_COMMAND_DATA_IN rellenada correctamente. Al salir, el controlador del dispositivo rellenará la estructura de MTP_COMMAND_DATA_OUT y la guardará en el búfer de salida. Por lo tanto, cualquier solicitud debe tener un búfer de entrada de al menos SIZEOF_REQUIRED_COMMAND_DATA_IN bytes, que se define como el siguiente:
#define SIZEOF_REQUIRED_COMMAND_DATA_IN (sizeof(MTP_COMMAND_DATA_IN)-1)
Cualquier solicitud también debe tener un búfer de salida de al menos SIZEOF_REQUIRED_COMMAND_DATA_OUT bytes, que se define como el siguiente:
#define SIZEOF_REQUIRED_COMMAND_DATA_OUT (sizeof(MTP_COMMAND_DATA_OUT)-1)
Se supone que todos los comandos son independientes, es decir, se pueden procesar completamente en una llamada. Esto tiene implicaciones en las transferencias de datos largas, ya que no se admite la fragmentación en el sentido tradicional. (Por ejemplo, para emitir una lectura para 3megabytes, el autor de la llamada tendría que asegurarse de que asigna un búfer de salida de 3 MB más SIZEOF_REQUIRED_COMMAND_DATA_OUT bytes). Las transferencias de datos largas no deben realizarse con este método, sino mediante las API de transferencia de datos normales.
Requisitos
Requisito | Valor |
---|---|
Header | mtpext.h |