structure MTP_COMMAND_DATA_OUT (mtpext.h)
La structure MTP_COMMAND_DATA_OUT contient des réponses MTP (Media Transport Protocol) qui sont remplies par le pilote de périphérique à la sortie d’un appel à IWMDMDevice3 ::D eviceIoControl.
Syntaxe
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;
Membres
ResponseCode
Code de réponse.
NumParams
Nombre de paramètres pour cette réponse.
Params[MTP_RESPONSE_MAX_PARAMS]
Paramètres de la réponse. MTP_RESPONSE_MAX_PARAMS est une constante définie avec une valeur de 5.
CommandReadDataSize
Taille des données de CommandReadData[1], en octets.
CommandReadData[1]
Facultatif, premier octet de données à lire à partir de l’appareil si MTP_COMMAND_DATA_IN. NextPhase est MTP_NEXTPHASE_READ_DATA.
Remarques
La mémoire tampon d’entrée doit contenir une structure de MTP_COMMAND_DATA_IN correctement remplie. À la sortie, le pilote de périphérique remplit la structure MTP_COMMAND_DATA_OUT et l’enregistre dans la mémoire tampon de sortie. Par conséquent, toute demande doit avoir une mémoire tampon d’entrée d’au moins SIZEOF_REQUIRED_COMMAND_DATA_IN octets, qui est définie comme suit :
#define SIZEOF_REQUIRED_COMMAND_DATA_IN (sizeof(MTP_COMMAND_DATA_IN)-1)
Toute demande doit également avoir une mémoire tampon de sortie d’au moins SIZEOF_REQUIRED_COMMAND_DATA_OUT octets, qui est définie comme suit :
#define SIZEOF_REQUIRED_COMMAND_DATA_OUT (sizeof(MTP_COMMAND_DATA_OUT)-1)
Il est supposé que toutes les commandes sont autonomes, c’est-à-dire qu’elles peuvent être traitées complètement en un seul appel. Cela a des implications sur les transferts de données longs, car la segmentation au sens traditionnel n’est pas prise en charge. (Par exemple, pour émettre une lecture pour 3 mégaoctets, l’appelant doit s’assurer qu’il alloue une mémoire tampon de sortie de 3 Mo plus SIZEOF_REQUIRED_COMMAND_DATA_OUT octets.) Les transferts de données longs ne doivent pas être effectués avec cette méthode, mais plutôt par le biais d’API de transfert de données normales.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | mtpext.h |