共用方式為


MTP_COMMAND_DATA_OUT 結構 (mtpext.h)

MTP_COMMAND_DATA_OUT 結構包含媒體傳輸通訊協定 (MTP) 回應,這些回應會在結束 IWMDMDevice3::D eviceIoControl 時由設備驅動器填入。

語法

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;

成員

ResponseCode

回應碼。

NumParams

此回應的參數數目。

Params[MTP_RESPONSE_MAX_PARAMS]

回應的參數。 MTP_RESPONSE_MAX_PARAMS 是值為5的已定義常數。

CommandReadDataSize

CommandReadData[1]的數據大小,以位元組為單位。

CommandReadData[1]

選擇性,如果MTP_COMMAND_DATA_IN,則為從裝置讀取的第一個字節數據 。NextPhase 是MTP_NEXTPHASE_READ_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

另請參閱

IWMDMDevice3::D eviceIoControl

MTP_COMMAND_DATA_IN

結構