共用方式為


MTP_COMMAND_DATA_IN 結構 (mtpext.h)

MTP_COMMAND_DATA_IN 結構包含媒體傳輸通訊 協定 (MTP) 使用 IWMDMDevice3::D eviceIoControl 方法傳送至裝置的自定義命令。

語法

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)

假設所有命令都是獨立的,也就是說,可以在一個呼叫中完全處理它們。 這會影響冗長的數據傳輸,因為不支援傳統意義中的區塊化。 (例如,若要發出 3megabytes 的讀取,呼叫端必須確保它配置 3 MB 的輸出緩衝區加上 SIZEOF_REQUIRED_COMMAND_DATA_OUT bytes。) 冗長的數據傳輸不應使用此方法完成,而是透過一般數據傳輸 API。

規格需求

需求
標頭 mtpext.h

另請參閱