Compartilhar via


Método IWMDMDevice3::D eviceIoControl (mswmdm.h)

O método DeviceIoControl envia um código IOCTL (Controle de E/S do Dispositivo) para o dispositivo. Este é um método de passagem; O Windows Media Gerenciador de Dispositivos apenas encaminha a chamada para o provedor de serviços depois de validar os parâmetros.

Sintaxe

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

Parâmetros

[in] dwIoControlCode

Controlar o código a ser enviado para o dispositivo. Ao chamar esse método em um dispositivo MTP, use o valor IOCTL_MTP_CUSTOM_COMMAND definido em MtpExt.h incluído no SDK.

[in] lpInBuffer

Ponteiro opcional para um buffer de entrada fornecido pelo chamador. Ele poderá ser NULL se nInBufferSize for zero. Ao chamar esse método em um dispositivo MTP, você pode passar a estrutura MTP_COMMAND_DATA_IN .

[in] nInBufferSize

Tamanho do buffer de entrada, em bytes. Ao chamar esse método em um dispositivo MTP, você pode usar a macro SIZEOF_REQUIRED_COMMAND_DATA_IN para especificar o tamanho.

[out] lpOutBuffer

Ponteiro opcional para o buffer de saída fornecido pelo chamador. Ele poderá ser NULL se pnOutBufferSize apontar para um valor igual a zero. Ao chamar esse método em um dispositivo MTP, você pode passar a estrutura MTP_COMMAND_DATA_OUT .

[in, out] pnOutBufferSize

Tamanho do buffer de saída, em bytes. Quando a chamada retorna, ela especifica o número de bytes realmente retornados. Ao chamar esse método em um dispositivo MTP, você pode usar a macro SIZEOF_REQUIRED_COMMAND_DATA_OUT definida em MtpExt.h para especificar o tamanho. Esse parâmetro não pode ser NULL.

Valor retornado

O método retorna um HRESULT. Todos os métodos de interface no Windows Media Gerenciador de Dispositivos podem retornar qualquer uma das seguintes classes de códigos de erro:

  • Códigos de erro COM padrão
  • Códigos de erro do Windows convertidos em valores HRESULT
  • Códigos de erro do Windows Media Gerenciador de Dispositivos
Para obter uma lista abrangente de possíveis códigos de erro, consulte Códigos de erro.

Comentários

Esse método fornece um modo privado de comunicação entre o aplicativo e o provedor de serviços. O provedor de serviços pode processar esse IOCTL, opcionalmente modificá-lo e passá-lo para o driver do modo kernel.

Em comparação com IWMDMDevice::SendOpaqueCommand, esse método se alinha melhor com a API do Windows DeviceIoControl porque o buffer de saída é fornecido pelo chamador. Além disso, ao contrário de IWMDMDevice::SendOpaqueCommand, esse método não envolve nenhuma marcar MAC e é mais eficiente.

Esse método pode ser usado, por exemplo, para enviar comandos mtp personalizados para um dispositivo MTP.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho mswmdm.h
Biblioteca Mssachlp.lib

Confira também

IWMDMDevice3 Interface

IWMDMDevice::SendOpaqueCommand