estrutura MTP_COMMAND_DATA_OUT (mtpext.h)

A estrutura MTP_COMMAND_DATA_OUT contém respostas mtp que são preenchidas pelo driver de dispositivo ao sair de uma chamada para IWMDMDevice3::D eviceIoControl.

Sintaxe

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;

Membros

ResponseCode

Código de resposta.

NumParams

Número de parâmetros para essa resposta.

Params[MTP_RESPONSE_MAX_PARAMS]

Parâmetros da resposta. MTP_RESPONSE_MAX_PARAMS é uma constante definida com um valor de 5.

CommandReadDataSize

Tamanho dos dados de CommandReadData[1], em bytes.

CommandReadData[1]

Opcional, primeiro byte de dados a serem lidos do dispositivo se MTP_COMMAND_DATA_IN. NextPhase é MTP_NEXTPHASE_READ_DATA.

Comentários

Espera-se que o buffer de entrada contenha uma estrutura de MTP_COMMAND_DATA_IN preenchida adequadamente. Ao sair, o driver do dispositivo preencherá a estrutura MTP_COMMAND_DATA_OUT e a salvará no buffer de saída. Portanto, qualquer solicitação deve ter um buffer de entrada de pelo menos SIZEOF_REQUIRED_COMMAND_DATA_IN bytes, que é definido como o seguinte:

#define SIZEOF_REQUIRED_COMMAND_DATA_IN (sizeof(MTP_COMMAND_DATA_IN)-1)

Qualquer solicitação também deve ter um buffer de saída de pelo menos SIZEOF_REQUIRED_COMMAND_DATA_OUT bytes, que é definido como o seguinte:

#define SIZEOF_REQUIRED_COMMAND_DATA_OUT (sizeof(MTP_COMMAND_DATA_OUT)-1)

Supõe-se que todos os comandos sejam independentes, ou seja, eles podem ser processados completamente em uma única chamada. Isso tem implicações em transferências de dados longas, porque não há suporte para a divisão em partes no sentido tradicional. (Por exemplo, para emitir uma leitura para 3megabytes, o chamador teria que garantir que ele alocasse um buffer de saída de 3 MB mais SIZEOF_REQUIRED_COMMAND_DATA_OUT bytes.) Transferências de dados longas não devem ser feitas com esse método, mas sim por meio de APIs de transferência de dados normais.

Requisitos

Requisito Valor
Cabeçalho mtpext.h

Confira também

IWMDMDevice3::D eviceIoControl

MTP_COMMAND_DATA_IN

Estruturas