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

Consulte también

IWMDMDevice3::D eviceIoControl

MTP_COMMAND_DATA_IN

Estructuras