Поделиться через


Метод IWMDMDevice3::D eviceIoControl (mswmdm.h)

Метод DeviceIoControl отправляет на устройство код управления вводом-выводом (IOCTL). Это сквозной метод; Windows Media диспетчер устройств просто перенаправит вызов поставщику услуг после проверки параметров.

Синтаксис

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

Параметры

[in] dwIoControlCode

Управляющий код для отправки на устройство. При вызове этого метода на устройстве MTP используйте значение, IOCTL_MTP_CUSTOM_COMMAND определенное в MtpExt.h, входящее в состав пакета SDK.

[in] lpInBuffer

Необязательный указатель на входной буфер, предоставленный вызывающим объектом. Значение может иметь значение NULL , если nInBufferSize равно нулю. При вызове этого метода на устройстве MTP можно передать структуру MTP_COMMAND_DATA_IN .

[in] nInBufferSize

Размер входного буфера в байтах. При вызове этого метода на устройстве MTP можно использовать макрос SIZEOF_REQUIRED_COMMAND_DATA_IN , чтобы указать размер.

[out] lpOutBuffer

Необязательный указатель на выходной буфер, предоставленный вызывающим объектом. Он может иметь значение NULL, если pnOutBufferSize указывает на значение, равное нулю. При вызове этого метода на устройстве MTP можно передать структуру MTP_COMMAND_DATA_OUT .

[in, out] pnOutBufferSize

Размер выходного буфера в байтах. Когда вызов возвращается, он указывает количество фактически возвращенных байтов. При вызове этого метода на устройстве MTP можно использовать макрос SIZEOF_REQUIRED_COMMAND_DATA_OUT , определенный в MtpExt.h, чтобы указать размер. Этот параметр не может иметь значение NULL.

Возвращаемое значение

Метод возвращает HRESULT. Все методы интерфейса в Windows Media диспетчер устройств могут возвращать любой из следующих классов кодов ошибок:

  • Стандартные коды ошибок COM
  • Коды ошибок Windows, преобразованные в значения HRESULT
  • Коды ошибок диспетчер устройств Windows Media
Подробный список возможных кодов ошибок см. в разделе Коды ошибок.

Комментарии

Этот метод обеспечивает частный режим обмена данными между приложением и поставщиком услуг. Затем поставщик услуг может обработать этот IOCTL, при необходимости изменить его и передать драйверу режима ядра.

По сравнению с IWMDMDevice::SendOpaqueCommand этот метод лучше согласуется с API DeviceIoControl для Windows, так как выходной буфер предоставляется вызывающим объектом. Кроме того, в отличие от IWMDMDevice::SendOpaqueCommand, этот метод не использует mac-проверка и является более эффективным.

Этот метод можно использовать, например, для отправки пользовательских команд протокола транспорта мультимедиа (MTP) на устройство MTP.

Требования

   
Целевая платформа Windows
Header mswmdm.h
Библиотека Mssachlp.lib

См. также раздел

Интерфейс IWMDMDevice3

IWMDMDevice::SendOpaqueCommand