IWMDMDevice3::D eviceIoControl 메서드(mswmdm.h)

DeviceIoControl 메서드는 디바이스에 IOCTL(디바이스 I/O 컨트롤) 코드를 보냅니다. 통과 메서드입니다. Windows Media 디바이스 관리자 매개 변수의 유효성을 검사한 후 서비스 공급자에게 호출을 전달합니다.

구문

HRESULT DeviceIoControl(
  [in]      DWORD   dwIoControlCode,
  [in]      BYTE    *lpInBuffer,
  [in]      DWORD   nInBufferSize,
  [out]     BYTE    *lpOutBuffer,
  [in, out] LPDWORD pnOutBufferSize
);

매개 변수

[in] dwIoControlCode

디바이스로 보낼 코드를 제어합니다. MTP 디바이스에서 이 메서드를 호출할 때는 SDK에 포함된 MtpExt.h에 정의된 IOCTL_MTP_CUSTOM_COMMAND 값을 사용합니다.

[in] lpInBuffer

호출자가 제공하는 입력 버퍼에 대한 선택적 포인터입니다. nInBufferSize가 0이면 NULL일 수 있습니다. MTP 디바이스에서 이 메서드를 호출할 때 MTP_COMMAND_DATA_IN 구조를 전달할 수 있습니다.

[in] nInBufferSize

입력 버퍼의 크기(바이트)입니다. MTP 디바이스에서 이 메서드를 호출할 때 매크로 SIZEOF_REQUIRED_COMMAND_DATA_IN 사용하여 크기를 지정할 수 있습니다.

[out] lpOutBuffer

호출자가 제공하는 출력 버퍼에 대한 선택적 포인터입니다. pnOutBufferSize가 0 값을 가리키는 경우 NULL일 수 있습니다. MTP 디바이스에서 이 메서드를 호출할 때 MTP_COMMAND_DATA_OUT 구조를 전달할 수 있습니다.

[in, out] pnOutBufferSize

출력 버퍼의 크기(바이트)입니다. 호출이 반환되면 실제로 반환되는 바이트 수를 지정합니다. MTP 디바이스에서 이 메서드를 호출할 때 MtpExt.h에 정의된 매크로 SIZEOF_REQUIRED_COMMAND_DATA_OUT 사용하여 크기를 지정할 수 있습니다. 이 매개 변수는 NULL일 수 없습니다.

반환 값

이 메서드는 HRESULT를 반환합니다. Windows Media 디바이스 관리자 모든 인터페이스 메서드는 다음 오류 코드 클래스를 반환할 수 있습니다.

  • 표준 COM 오류 코드
  • HRESULT 값으로 변환된 Windows 오류 코드
  • Windows Media 디바이스 관리자 오류 코드
가능한 오류 코드의 광범위한 목록은 오류 코드를 참조하세요.

설명

이 메서드는 애플리케이션과 서비스 공급자 간의 프라이빗 통신 모드를 제공합니다. 그런 다음 서비스 공급자는 이 IOCTL을 처리하고 필요에 따라 수정한 다음 커널 모드 드라이버에 전달할 수 있습니다.

IWMDMDevice::SendOpaqueCommand에 비해 이 메서드는 호출자가 출력 버퍼를 제공하므로 DeviceIoControl Windows API와 더 잘 맞습니다. 또한 IWMDMDevice::SendOpaqueCommand와 달리 이 메서드는 MAC 검사 포함하지 않으며 더 효율적입니다.

예를 들어 이 메서드를 사용하여 사용자 지정 MTP(미디어 전송 프로토콜) 명령을 MTP 디바이스로 보낼 수 있습니다.

요구 사항

   
대상 플랫폼 Windows
헤더 mswmdm.h
라이브러리 Mssachlp.lib

추가 정보

IWMDMDevice3 인터페이스

IWMDMDevice::SendOpaqueCommand