다음을 통해 공유


MTP_COMMAND_DATA_OUT 구조체(mtpext.h)

MTP_COMMAND_DATA_OUT 구조에는 IWMDMDevice3::D eviceIoControl 호출을 종료할 때 디바이스 드라이버가 채우는 MTP(미디어 전송 프로토콜) 응답이 포함됩니다.

구문

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에 대한 읽기를 실행하려면 호출자가 출력 버퍼 3MB와 SIZEOF_REQUIRED_COMMAND_DATA_OUT 바이트를 할당해야 합니다. 긴 데이터 전송은 이 메서드를 사용하는 것이 아니라 일반적인 데이터 전송 API를 통해 수행되어야 합니다.

요구 사항

요구 사항
헤더 mtpext.h

추가 정보

IWMDMDevice3::D eviceIoControl

MTP_COMMAND_DATA_IN

구조체