структура MTP_COMMAND_DATA_OUT (mtpext.h)

Структура MTP_COMMAND_DATA_OUT содержит ответы MTP, которые заполняются драйвером устройства при выходе из вызова IWMDMDevice3::D eviceIoControl.

Синтаксис

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;

Члены

ResponseCode

Код ответа.

NumParams

Количество параметров для этого ответа.

Params[MTP_RESPONSE_MAX_PARAMS]

Параметры ответа. MTP_RESPONSE_MAX_PARAMS является определенной константой со значением 5.

CommandReadDataSize

Размер данных CommandReadData[1], в байтах.

CommandReadData[1]

Необязательный— первый байт данных для чтения с устройства, если MTP_COMMAND_DATA_IN. NextPhase имеет MTP_NEXTPHASE_READ_DATA.

Комментарии

Ожидается, что входной буфер будет содержать надлежащим образом заполненную MTP_COMMAND_DATA_IN структуру. При выходе драйвер устройства заполнит структуру MTP_COMMAND_DATA_OUT и сохранит ее в выходном буфере. Таким образом, любой запрос должен иметь входной буфер не менее SIZEOF_REQUIRED_COMMAND_DATA_IN байтов, который определяется следующим образом:

#define SIZEOF_REQUIRED_COMMAND_DATA_IN (sizeof(MTP_COMMAND_DATA_IN)-1)

Любой запрос также должен иметь выходной буфер не менее SIZEOF_REQUIRED_COMMAND_DATA_OUT байтов, который определяется следующим образом:

#define SIZEOF_REQUIRED_COMMAND_DATA_OUT (sizeof(MTP_COMMAND_DATA_OUT)-1)

Предполагается, что все команды являются автономными, то есть могут быть полностью обработаны в одном вызове. Это влияет на длительную передачу данных, так как фрагментация в традиционном смысле не поддерживается. (Например, чтобы выполнить чтение в течение 3 мегабайт, вызывающему объекту необходимо обеспечить выделение выходного буфера размером 3 МБ плюс SIZEOF_REQUIRED_COMMAND_DATA_OUT байт.) Длительные передачи данных следует выполнять не с помощью этого метода, а через обычные API передачи данных.

Требования

Требование Значение
Заголовок mtpext.h

См. также раздел

IWMDMDevice3::D eviceIoControl

MTP_COMMAND_DATA_IN

Структуры