Метод 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 |