📄 mtp_types.h
字号:
/* =============================================================================
*
* @copyright (C) COPYRIGHT MICROSOFT CORPORATION, 2004
*
* =============================================================================
*/
/** @file
* @brief MTP types and constants
*
* Contains:
* - types built from the base types defined in platform_specific.h
* - constants for all MTP properties, operations, and events
*/
#ifndef MTP_TYPES_H
#define MTP_TYPES_H
//#include "platform_specific.h"
#if 0
#define MAX_ARRAY_ALLOC_SIZE (0xFFFFFFFF) /**< @brief Most bytes to allocate for a single array */
#define MAXSTRINGSIZE (255) /**< @brief per mtp spec: most characters a string can have */
#define OBJECTHANDLE_ALL (0xFFFFFFFF) /**< @brief per mtp spec: special value to indicate all object handles */
#define OBJECTHANDLE_UNDEFINED (0x0) /**< @brief per mtp spec: special value to indicate an undefined object handle */
#define OBJECTHANDLE_ROOT (0xFFFFFFFF) /**< @brief per mtp spec: special value to indicate root object handle */
#define STORAGEID_ALL (0xFFFFFFFF) /**< @brief per mtp spec: special value to indicate all storage ids */
#define STORAGEID_DEFAULT (0) /**< @brief per mtp spec: special value to indicate default storage id */
#define STORAGEID_UNDEFINED (0) /**< @brief per mtp spec: special value to indicate an undefined storage id */
#define STORAGEID_PHYSICAL (0xFFFF0000) /**< @brief per mtp spec: physical portion of storage id */
#define STORAGEID_LOGICAL (0x0000FFFF) /**< @brief per mtp spec: logical portion of storage id */
#define SESSIONID_ALL (0) /**< @brief per mtp spec: special value to indicate all session ids */
#define SESSIONID_NOSESSION (0) /**< @brief per mtp spec: special value to indicate no session id */
#define TRANSACTIONID_ALL (0xFFFFFFFF) /**< @brief per mtp spec: special value to indicate all transaction ids */
#define TRANSACTIONID_NOSESSION (0) /**< @brief per mtp spec: special value to indicate no nession */
#define TRANSACTIONID_MIN (1) /**< @brief per mtp spec: minimum transaction id */
#define TRANSACTIONID_MAX (0xFFFFFFFE) /**< @brief per mtp spec: maximum transaction id, will wrap to min after this */
#define DATASIZE_UNKNOWN (0xFFFFFFFF)
#define COMMAND_NUMPARAMS_MAX (5) /**< @brief per mtp spec: max parameters a command can have */
#define RESPONSE_NUMPARAMS_MAX (5) /**< @brief per mtp spec: max parameters a response can have */
#define EVENT_NUMPARAMS_MAX (3) /**< @brief per mtp spec: max parameters an event can have */
#define FORMATMASK_IMAGE (0x0800)
#define DATATYPE_ARRAYMASK (0x4000)
#define ERROR_MTP_SPECIFIC (0x80004005) /**< TODO: move this mtp_results.h */
#endif
/** @brief Values for CMDCODE datatype
*
*/
#if 0 //no need to define so far
enum _CMDCODE
{
CMDCODE_OPEN = 0x0001,
CMDCODE_CLOSE = 0x0002,
CMDCODE_HELP = 0x0003,
CMDCODE_ECHO = 0x0004,
CMDCODE_QUIT = 0x0005,
CMDCODE_DEBUG = 0x0006,
CMDCODE_UNDEFINED = 0x1000,
CMDCODE_GETDEVICEINFO = 0x1001,
CMDCODE_OPENSESSION = 0x1002,
CMDCODE_CLOSESESSION = 0x1003,
CMDCODE_GETSTORAGEIDS = 0x1004,
CMDCODE_GETSTORAGEINFO = 0x1005,
CMDCODE_GETNUMOBJECTS = 0x1006,
CMDCODE_GETOBJECTHANDLES = 0x1007,
CMDCODE_GETOBJECTINFO = 0x1008,
CMDCODE_GETOBJECT = 0x1009,
CMDCODE_GETTHUMB = 0x100a,
CMDCODE_DELETEOBJECT = 0x100b,
CMDCODE_SENDOBJECTINFO = 0x100c,
CMDCODE_SENDOBJECT = 0x100d,
CMDCODE_INITIATECAPTURE = 0x100e,
CMDCODE_FORMATSTORE = 0x100f,
CMDCODE_RESETDEVICE = 0x1010,
CMDCODE_SELFTEST = 0x1011,
CMDCODE_SETOBJECTPROTECTION = 0x1012,
CMDCODE_POWERDOWN = 0x1013,
CMDCODE_GETDEVICEPROPDESC = 0x1014,
CMDCODE_GETDEVICEPROPVALUE = 0x1015,
CMDCODE_SETDEVICEPROPVALUE = 0x1016,
CMDCODE_RESETDEVICEPROPVALUE = 0x1017,
CMDCODE_TERMINATEOPENCAPTURE = 0x1018,
CMDCODE_MOVEOBJECT = 0x1019,
CMDCODE_COPYOBJECT = 0x101a,
CMDCODE_GETPARTIALOBJECT = 0x101b,
CMDCODE_INITIATEOPENCAPTURE = 0x101c,
#if 1 // FHA added.
/* MTP Extentions : Advanced Audio/Video Transfer (AAVT) Extention for MTP */
CMDCODE_OPENMEDIASESSION = 0x9170,
CMDCODE_CLOSEMEDIASESSION = 0x9171,
CMDCODE_GETNEXTDATABLOCK = 0x9172,
CMDCODE_SETCURRENTTIMEPOSITION = 0x9173,
/* MTP Extentions : Windows Media DRM for Network Devices MTP Extention */
CMDCODE_SENDREGISTRATIONREQUST = 0x9180,
CMDCODE_GETREGISTRATIONRESPONSE = 0x9181,
CMDCODE_GETPROXIMITYCHALLENGE = 0x9182,
CMDCODE_SENDPROXIMITYRESPONSE = 0x9183,
CMDCODE_SENDWMDRMNDLICENSEREQUEST = 0x9184,
CMDCODE_GETWMDRMNDLICENSERESPONSE = 0x9185,
#endif
CMDCODE_GETOBJECTPROPSSUPPORTED = 0x9801,
CMDCODE_GETOBJECTPROPDESC = 0x9802,
CMDCODE_GETOBJECTPROPVALUE = 0x9803,
CMDCODE_SETOBJECTPROPVALUE = 0x9804,
CMDCODE_GETOBJECTPROPLIST = 0x9805,
CMDCODE_SETOBJECTPROPLIST = 0x9806,
CMDCODE_GETINTERDEPENDENTPROPDESC = 0x9807,
CMDCODE_SENDOBJECTPROPLIST = 0x9808,
CMDCODE_GETOBJECTREFERENCES = 0x9810,
CMDCODE_SETOBJECTREFERENCES = 0x9811,
CMDCODE_UPDATEDEVICEFIRMWARE = 0x9812,
CMDCODE_RESETOBJECTPROPVALUE = 0x9813,
CMDCODE_RESERVED_FIRST = 0x1026,
CMDCODE_RESERVED_LAST = 0x1fff,
CMDCODE_VENDOREXTENSION_FIRST = 0x9000,
/** @brief CMDcode for the 'skip' playback operation. */
CMDCODE_PLAYBACK_SKIP = 0x9820,
//#ifdef MTP_PLAYBACK_SUPPORT
CMDCODE_GETTRACKS = 0x9821,
CMDCODE_PLAYTRACK = 0x9822,
CMDCODE_PAUSE = 0x9823,
CMDCODE_STOP = 0x9824,
CMDCODE_NEXTTRACK = 0x9825,
CMDCODE_PREVIOUSTRACK = 0x9826,
CMDCODE_FFREW = 0x9827,
CMDCODE_MUTE = 0x9828,
/* these are all aliased to other commands, basically */
CMDCODE_DELETETRACK = 0x9829,
CMDCODE_SENDTRACK = 0x982A,
CMDCODE_COPYTRACK = 0x982B,
//#endif
CMDCODE_CREATEFOLDER = 0x9830,
CMDCODE_SENDFILE = 0x9831,
CMDCODE_USAGE = 0x9832,
CMDCODE_STATUS = 0x9833,
CMDCODE_VENDOREXTENSION_LAST = 0x9fff
};
#endif
#if (1 == HAVE_WMDRM)
/** @brief Values for OPCODE datatype
*
*/
enum _OPCODE
{
OPCODE_UNDEFINED = 0x1000,
OPCODE_GETDEVICEINFO = 0x1001,
OPCODE_OPENSESSION = 0x1002,
OPCODE_CLOSESESSION = 0x1003,
OPCODE_GETSTORAGEIDS = 0x1004,
OPCODE_GETSTORAGEINFO = 0x1005,
OPCODE_GETNUMOBJECTS = 0x1006,
OPCODE_GETOBJECTHANDLES = 0x1007,
OPCODE_GETOBJECTINFO = 0x1008,
OPCODE_GETOBJECT = 0x1009,
OPCODE_GETTHUMB = 0x100a,
OPCODE_DELETEOBJECT = 0x100b,
OPCODE_SENDOBJECTINFO = 0x100c,
OPCODE_SENDOBJECT = 0x100d,
OPCODE_INITIATECAPTURE = 0x100e,
OPCODE_FORMATSTORE = 0x100f,
OPCODE_RESETDEVICE = 0x1010,
OPCODE_SELFTEST = 0x1011,
OPCODE_SETOBJECTPROTECTION = 0x1012,
OPCODE_POWERDOWN = 0x1013,
OPCODE_GETDEVICEPROPDESC = 0x1014,
OPCODE_GETDEVICEPROPVALUE = 0x1015,
OPCODE_SETDEVICEPROPVALUE = 0x1016,
OPCODE_RESETDEVICEPROPVALUE = 0x1017,
OPCODE_TERMINATECAPTURE = 0x1018,
OPCODE_MOVEOBJECT = 0x1019,
OPCODE_COPYOBJECT = 0x101a,
OPCODE_GETPARTIALOBJECT = 0x101b,
OPCODE_INITIATEOPENCAPTURE = 0x101c,
#if 1 // FHA added.
/* MTP Extentions : Advanced Audio/Video Transfer (AAVT) Extention for MTP */
OPCODE_OPENMEDIASESSION = 0x9170,
OPCODE_CLOSEMEDIASESSION = 0x9171,
OPCODE_GETNEXTDATABLOCK = 0x9172,
OPCODE_SETCURRENTTIMEPOSITION = 0x9173,
/* MTP Extentions : Windows Media DRM for Network Devices MTP Extention */
OPCODE_SENDREGISTRATIONREQUST = 0x9180,
OPCODE_GETREGISTRATIONRESPONSE = 0x9181,
OPCODE_GETPROXIMITYCHALLENGE = 0x9182,
OPCODE_SENDPROXIMITYRESPONSE = 0x9183,
OPCODE_SENDWMDRMNDLICENSEREQUEST = 0x9184,
OPCODE_GETWMDRMNDLICENSERESPONSE = 0x9185,
#endif
OPCODE_GETOBJECTPROPSSUPPORTED = 0x9801,
OPCODE_GETOBJECTPROPDESC = 0x9802,
OPCODE_GETOBJECTPROPVALUE = 0x9803,
OPCODE_SETOBJECTPROPVALUE = 0x9804,
OPCODE_GETOBJECTPROPLIST = 0x9805,
OPCODE_SETOBJECTPROPLIST = 0x9806,
OPCODE_GETINTERDEPENDENTPROPDESC = 0x9807,
OPCODE_SENDOBJECTPROPLIST = 0x9808,
OPCODE_GETOBJECTREFERENCES = 0x9810,
OPCODE_SETOBJECTREFERENCES = 0x9811,
OPCODE_UPDATEDEVICEFIRMWARE = 0x9812,
OPCODE_RESETOBJECTPROPVALUE = 0x9813,
OPCODE_RESERVED_FIRST = 0x1026,
OPCODE_RESERVED_LAST = 0x1fff,
OPCODE_VENDOREXTENSION_FIRST = 0x9000,
/** @brief Opcode for the 'skip' playback operation. */
OPCODE_PLAYBACK_SKIP = 0x9820,
OPCODE_VENDOREXTENSION_LAST = 0x9fff
};
/** @brief Values for RESPONSECODE datatype
*
*/
enum _RESPONSECODE
{
RESPONSECODE_UNDEFINED = 0x2000,
RESPONSECODE_OK = 0x2001,
RESPONSECODE_GENERALERROR = 0x2002,
RESPONSECODE_SESSIONNOTOPEN = 0x2003,
RESPONSECODE_INVALIDTRANSACTIONID = 0x2004,
RESPONSECODE_OPERATIONNOTSUPPORTED = 0x2005,
RESPONSECODE_PARAMETERNOTSUPPORTED = 0x2006,
RESPONSECODE_INCOMPLETETRANSFER = 0x2007,
RESPONSECODE_INVALIDSTORAGEID = 0x2008,
RESPONSECODE_INVALIDOBJECTHANDLE = 0x2009,
RESPONSECODE_INVALIDPROPERTYCODE = 0x200a,
RESPONSECODE_INVALIDOBJECTFORMATCODE = 0x200b,
RESPONSECODE_STOREFULL = 0x200c,
RESPONSECODE_OBJECTWRITEPROTECTED = 0x200d,
RESPONSECODE_STOREWRITEPROTECTED = 0x200e,
RESPONSECODE_ACCESSDENIED = 0x200f,
RESPONSECODE_NOTHUMBNAILPRESENT = 0x2010,
RESPONSECODE_SELFTESTFAILED = 0x2011,
RESPONSECODE_PARTIALDELETION = 0x2012,
RESPONSECODE_STORENOTAVAILABLE = 0x2013,
RESPONSECODE_NOSPECIFICATIONBYFORMAT = 0x2014,
RESPONSECODE_NOVALIDOBJECTINFO = 0x2015,
RESPONSECODE_INVALIDCODEFORMAT = 0x2016,
RESPONSECODE_UNKNOWNVENDORCODE = 0x2017,
RESPONSECODE_CAPTUREALREADYTERMINATED = 0x2018,
RESPONSECODE_DEVICEBUSY = 0x2019,
RESPONSECODE_INVALIDPARENT = 0x201a,
RESPONSECODE_INVALIDPROPFORMAT = 0x201b,
RESPONSECODE_INVALIDPROPVALUE = 0x201c,
RESPONSECODE_INVALIDPARAMETER = 0x201d,
RESPONSECODE_SESSIONALREADYOPENED = 0x201e,
RESPONSECODE_TRANSACTIONCANCELLED = 0x201f,
RESPONSECODE_DESTINATIONUNSUPPORTED = 0x2020,
RESPONSECODE_RESERVED_FIRST = 0x2021,
RESPONSECODE_RESERVED_LAST = 0x2fff,
RESPONSECODE_VENDOREXTENSION_FIRST = 0xa000,
RESPONSECODE_VENDOREXTENSION_LAST = 0xa7ff,
RESPONSECODE_INVALIDOBJECTPROPCODE = 0xa801,
RESPONSECODE_INVALIDOBJECTPROPFORMAT = 0xa802,
RESPONSECODE_INVALIDOBJECTPROPVALUE = 0xa803,
RESPONSECODE_INVALIDOBJECTREFERENCE = 0xa804,
RESPONSECODE_INVALIDOBJECTGROUPCODE = 0xa805,
RESPONSECODE_INVALIDDATASET = 0xa806,
RESPONSECODE_NOSPECIFICATIONBYGROUP = 0xa807,
RESPONSECODE_NOSPECIFICATIONBYDEPTH = 0xa808,
RESPONSECODE_OBJECTTOOLARGE = 0xa809,
/* Added Mishima for Network Devices Extension */
RESPONSECODE_INVALIDCERTIFICATE = 0xa180,
RESPONSECODE_CERTIFICATEREVOKED = 0xa181,
RESPONSECODE_MUSTAPPROVE = 0xa182,
RESPONSECODE_LICENSEUNAVAILABLE = 0xa183,
RESPONSECODE_TRANSMITTERFAILURE = 0xa184,
RESPONSECODE_UNABLETOVERIFYPROXIMITY = 0xa186,
RESPONSECODE_MUSTREGISTER = 0xa187,
RESPONSECODE_MUSTREVALIDATE = 0xa188,
RESPONSECODE_INVALIDPROXIMITYRESPONSE = 0xa189,
RESPONSECODE_INVALIDSESSION = 0xa18a,
RESPONSECODE_UNABLETOOPENFILE = 0xa18b,
RESPONSECODE_UNSUPPORTEDPROTOCOLVERSION = 0xa18c,
RESPONSECODE_BADREQUEST = 0xa18d
};
#endif //end of #if (1 == HAVE_WMDRM)
/** @brief Values for EVENTCODE datatype
*
*/
#if 0 // no need to define so far
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -