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 |