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)
모든 명령은 자체 포함되는 것으로 가정합니다. 즉, 한 번의 호출로 완전히 처리할 수 있습니다. 이는 기존 의미에서 청크가 지원되지 않기 때문에 긴 데이터 전송에 영향을 미칩니다. 예를 들어 3megabytes에 대한 읽기를 실행하려면 호출자가 출력 버퍼 3MB와 SIZEOF_REQUIRED_COMMAND_DATA_OUT 바이트를 할당해야 합니다. 긴 데이터 전송은 이 메서드를 사용하는 것이 아니라 일반적인 데이터 전송 API를 통해 수행되어야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | mtpext.h |