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

El método DeviceIoControl envía un código de control de E/S de dispositivo (IOCTL) al dispositivo. Se trata de un método de paso a través; Windows Media Administrador de dispositivos reenvía la llamada al proveedor de servicios después de validar los parámetros.

Sintaxis

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

Parámetros

[in] dwIoControlCode

Controlar el código que se va a enviar al dispositivo. Al llamar a este método en un dispositivo MTP, use el valor IOCTL_MTP_CUSTOM_COMMAND definido en MtpExt.h incluido con el SDK.

[in] lpInBuffer

Puntero opcional a un búfer de entrada proporcionado por el autor de la llamada. Puede ser NULL si nInBufferSize es cero. Al llamar a este método en un dispositivo MTP, puede pasar la estructura MTP_COMMAND_DATA_IN .

[in] nInBufferSize

Tamaño del búfer de entrada, en bytes. Al llamar a este método en un dispositivo MTP, puede usar la macro SIZEOF_REQUIRED_COMMAND_DATA_IN para especificar el tamaño.

[out] lpOutBuffer

Puntero opcional al búfer de salida proporcionado por el autor de la llamada. Puede ser NULL si pnOutBufferSize apunta a un valor de cero. Al llamar a este método en un dispositivo MTP, puede pasar la estructura MTP_COMMAND_DATA_OUT .

[in, out] pnOutBufferSize

Tamaño del búfer de salida, en bytes. Cuando la llamada devuelve, especifica el número de bytes devueltos realmente. Al llamar a este método en un dispositivo MTP, puede usar la macro SIZEOF_REQUIRED_COMMAND_DATA_OUT definida en MtpExt.h para especificar el tamaño. Este parámetro no puede ser NULL.

Valor devuelto

El método devuelve un valor HRESULT. Todos los métodos de interfaz de Windows Media Administrador de dispositivos pueden devolver cualquiera de las siguientes clases de códigos de error:

  • Códigos de error COM estándar
  • Códigos de error de Windows convertidos en valores HRESULT
  • Códigos de error de windows Media Administrador de dispositivos
Para obtener una lista extensa de posibles códigos de error, consulte Códigos de error.

Comentarios

Este método proporciona un modo privado de comunicación entre la aplicación y el proveedor de servicios. Después, el proveedor de servicios puede procesar este IOCTL, opcionalmente modificarlo y pasarlo al controlador de modo kernel.

En comparación con IWMDMDevice::SendOpaqueCommand, este método se alinea mejor con la API de Windows DeviceIoControl porque el autor de la llamada proporciona el búfer de salida. Además, a diferencia de IWMDMDevice::SendOpaqueCommand, este método no implica ninguna comprobación mac y es más eficaz.

Este método se puede usar, por ejemplo, para enviar comandos personalizados del Protocolo de transporte de medios (MTP) a un dispositivo MTP.

Requisitos

   
Plataforma de destino Windows
Encabezado mswmdm.h
Library Mssachlp.lib

Consulte también

IWMDMDevice3 (Interfaz)

IWMDMDevice::SendOpaqueCommand