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 |