Comandos (API de WPD)

La aplicación cliente y el controlador se comunican mediante comandos que se envían desde el cliente (a través de la API de dispositivo portátil de Windows) al controlador (a través de User-Mode Driver Framework). Un comando puede incluir o no un parámetro y puede o no devolver un resultado. Un cliente puede enviar un comando explícitamente llamando al método IPortableDevice::SendCommand o al método IPortableDeviceService:SendCommand , o implícitamente, llamando a cualquiera de los métodos de las interfaces de cliente. Algunos comandos solo se pueden enviar explícitamente; se indican en la documentación del comando. Las páginas de referencia de comandos describen el propósito de un comando, así como los parámetros que espera recibir y qué parámetros se espera que devuelva.

Un comando se identifica mediante una estructura PROPERTYKEY . Se compone de dos partes: una parte GUID (el miembro fmtid ) y una parte DWORD (el miembro pid ). La parte GUID se usa para indicar a la categoría a la que pertenece el comando (los comandos relacionados pertenecen a la misma categoría y, por lo tanto, tendrán el mismo fmtid). La parte DWORD indica el identificador de comando y se usa para distinguir los comandos individuales dentro de una categoría de comandos (los valores pid de los comandos de la misma categoría serán diferentes).

En la tabla siguiente se enumeran las categorías de comandos que definen los dispositivos portátiles de Windows. Los fabricantes de dispositivos pueden definir sus propios comandos mediante la creación de sus propias categorías de comandos e identificadores de comandos. Sin embargo, un fabricante no debe agregar comandos a las categorías enumeradas a continuación, ya que están reservadas por Microsoft.

Categorías de comandos

Categoría de comando Descripción
WPD_CATEGORY_COMMON Comandos que son comunes a todos los objetos y dispositivos.
WPD_CATEGORY_DEVICE_HINTS Comandos que se usan para recuperar información opcional del dispositivo que se puede usar para mejorar la experiencia del usuario final.
WPD_CATEGORY_SMS Comandos que se usan para dispositivos que admiten la funcionalidad de servicio de mensajes cortos (SMS), que normalmente se expone en teléfonos móviles.
WPD_CATEGORY_STILL_IMAGE_CAPTURE Comandos que se usan para dispositivos que admiten captura de imágenes fijas.
WPD_CATEGORY_STORAGE Comandos que se usan para objetos funcionales de almacenamiento.

 

Los comandos específicos definidos para cada uno de estos tipos se proporcionan en las tablas siguientes, organizadas por tipo de comando.

categoría de WPD_CATEGORY_COMMON

Get-Help Descripción
WPD_COMMAND_COMMON_RESET_DEVICE Restablece el dispositivo.

 

categoría de WPD_CATEGORY_DEVICE_HINTS

Get-Help Descripción
WPD_COMMAND_DEVICE_HINTS_GET_CONTENT_LOCATION Recupera los identificadores de objeto de carpetas que pueden contener un objeto de un tipo especificado.

 

categoría de WPD_CATEGORY_STORAGE

Get-Help Descripción
WPD_COMMAND_STORAGE_EJECT Expulsa un medio de almacenamiento que el controlador puede expulsar de forma remota.
WPD_COMMAND_STORAGE_FORMAT Da formato a un objeto funcional de almacenamiento en el dispositivo.

 

categoría de WPD_CATEGORY_SMS

Get-Help Descripción
WPD_COMMAND_SMS_SEND Inicia el envío de un mensaje SMS mediante un objeto funcional de SMS.

 

categoría de WPD_CATEGORY_STILL_IMAGE_CAPTURE

Get-Help Descripción
WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE Inicia una captura de imagen fija mediante un objeto funcional de imagen todavía.

 

Referencia de programación