Share via


MTP_COMMAND_DATA_IN構造体 (mtpext.h)

MTP_COMMAND_DATA_IN構造体には、IWMDMDevice3::D eviceIoControl メソッドを使用してデバイスに送信されるメディア トランスポート プロトコル (MTP) カスタム コマンドが含まれています。

構文

typedef struct _MTP_COMMAND_DATA_IN {
  WORD  OpCode;
  DWORD NumParams;
  DWORD Params[MTP_COMMAND_MAX_PARAMS];
  DWORD NextPhase;
  DWORD CommandWriteDataSize;
  BYTE  CommandWriteData[1];
} MTP_COMMAND_DATA_IN, *PMTP_COMMAND_DATA_IN;

メンバー

OpCode

操作コード。

NumParams

渡されたパラメーターの数。

Params[MTP_COMMAND_MAX_PARAMS]

コマンドのパラメーター。 MTP_COMMAND_MAX_PARAMS は、値が 5 の定義済み定数です。

NextPhase

コマンドに読み取りデータ フェーズ、書き込みデータ フェーズ、またはデータ フェーズがないかどうかを示します。 有効な値は、次の表で定義されています。

CommandWriteDataSize

CommandWriteData[1]のデータ サイズ (バイト単位)。

CommandWriteData[1]

NextPhase がMTP_NEXTPHASE_WRITE_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)

すべてのコマンドは自己完結型であると想定されます。つまり、1 回の呼び出しで完全に処理できます。 従来の意味でのチャンクはサポートされていないため、これは長いデータ転送に影響します。 (たとえば、3 メガバイトの読み取りを発行するには、呼び出し元が 3 MB とSIZEOF_REQUIRED_COMMAND_DATA_OUT バイトの出力バッファーを確実に割り当てる必要があります)。長いデータ転送は、このメソッドではなく、通常のデータ転送 API を使用して行う必要があります。

要件

要件
Header mtpext.h

こちらもご覧ください