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. |