MTP_COMMAND_DATA_OUT-Struktur (mtpext.h)

Die MTP_COMMAND_DATA_OUT-Struktur enthält MTP-Antworten (Media Transport Protocol), die vom Gerätetreiber beim Beenden eines Aufrufs von IWMDMDevice3::D eviceIoControl ausgefüllt werden.

Syntax

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;

Member

ResponseCode

Antwortcode.

NumParams

Anzahl der Parameter für diese Antwort.

Params[MTP_RESPONSE_MAX_PARAMS]

Parameter der Antwort. MTP_RESPONSE_MAX_PARAMS ist eine definierte Konstante mit dem Wert 5.

CommandReadDataSize

Datengröße von CommandReadData[1] in Bytes.

CommandReadData[1]

Optional, erstes Byte von Daten, die vom Gerät gelesen werden sollen, wenn MTP_COMMAND_DATA_IN. NextPhase ist MTP_NEXTPHASE_READ_DATA.

Hinweise

Es wird erwartet, dass der Eingabepuffer eine entsprechend ausgefüllte MTP_COMMAND_DATA_IN-Struktur enthält. Beim Beenden füllt der Gerätetreiber die MTP_COMMAND_DATA_OUT-Struktur aus und speichert sie im Ausgabepuffer. Daher muss jede Anforderung über einen Eingabepuffer von mindestens SIZEOF_REQUIRED_COMMAND_DATA_IN Bytes verfügen, der wie folgt definiert ist:

#define SIZEOF_REQUIRED_COMMAND_DATA_IN (sizeof(MTP_COMMAND_DATA_IN)-1)

Jede Anforderung muss außerdem über einen Ausgabepuffer von mindestens SIZEOF_REQUIRED_COMMAND_DATA_OUT Bytes verfügen, der wie folgt definiert ist:

#define SIZEOF_REQUIRED_COMMAND_DATA_OUT (sizeof(MTP_COMMAND_DATA_OUT)-1)

Es wird davon ausgegangen, dass alle Befehle eigenständig sind, d. h. sie können vollständig in einem Aufruf verarbeitet werden. Dies hat Auswirkungen auf langwierige Datenübertragungen, da die Blockerstellung im herkömmlichen Sinne nicht unterstützt wird. (Um beispielsweise einen Lesevorgang für 3 Mb auszugeben, muss der Aufrufer sicherstellen, dass er einen Ausgabepuffer von 3 MB plus SIZEOF_REQUIRED_COMMAND_DATA_OUT Bytes zuordnet.) Lange Datenübertragungen sollten nicht mit dieser Methode erfolgen, sondern über normale Datenübertragungs-APIs.

Anforderungen

Anforderung Wert
Header mtpext.h

Weitere Informationen

IWMDMDevice3::D eviceIoControl

MTP_COMMAND_DATA_IN

Strukturen