Comandos (API do WPD)

O aplicativo cliente e o driver se comunicam por meio de comandos enviados do cliente (por meio da API de Dispositivo Portátil do Windows) para o driver (por meio do User-Mode Driver Framework). Um comando pode ou não incluir um parâmetro e pode ou não retornar um resultado. Um cliente pode enviar um comando explicitamente, chamando o método IPortableDevice::SendCommand ou o método IPortableDeviceService:SendCommand ou implicitamente, chamando qualquer um dos métodos das interfaces do cliente. Alguns comandos só podem ser enviados explicitamente; eles são observados na documentação do comando. As páginas de referência de comando descrevem a finalidade de um comando, bem como quais parâmetros ele espera receber e quais parâmetros ele deve retornar.

Um comando é identificado por uma estrutura PROPERTYKEY . Isso é composto por duas partes: uma parte GUID (o membro fmtid ) e uma parte DWORD (o membro pid ). A parte GUID é usada para indicar a categoria à qual o comando pertence (os comandos relacionados pertencem à mesma categoria e, portanto, terão o mesmo fmtid). A parte DWORD indica a ID do comando e é usada para distinguir os comandos individuais dentro de uma categoria de comando (os valores de pid para comandos na mesma categoria serão diferentes).

A tabela a seguir lista as categorias de comandos que os Dispositivos Portáteis do Windows definem. Os fabricantes de dispositivos podem definir seus próprios comandos criando suas próprias categorias de comando e IDs de comando. No entanto, um fabricante não deve adicionar comandos às categorias listadas abaixo, pois elas são reservadas pela Microsoft.

Categorias de comando

Categoria de comando Descrição
WPD_CATEGORY_COMMON Comandos comuns a todos os objetos e dispositivos.
WPD_CATEGORY_DEVICE_HINTS Comandos usados para recuperar informações opcionais do dispositivo que podem ser usadas para melhorar a experiência do usuário final.
WPD_CATEGORY_SMS Comandos usados para dispositivos que dão suporte à funcionalidade de SMS (serviço de mensagens curtas), que normalmente é exposta em telefones celulares.
WPD_CATEGORY_STILL_IMAGE_CAPTURE Comandos usados para dispositivos que dão suporte à captura de imagens ainda.
WPD_CATEGORY_STORAGE Comandos usados para armazenar objetos funcionais.

 

Os comandos específicos definidos para cada um desses tipos são fornecidos nas tabelas a seguir, organizadas por tipo de comando.

Categoria WPD_CATEGORY_COMMON

Comando Descrição
WPD_COMMAND_COMMON_RESET_DEVICE Redefine o dispositivo.

 

Categoria WPD_CATEGORY_DEVICE_HINTS

Comando Descrição
WPD_COMMAND_DEVICE_HINTS_GET_CONTENT_LOCATION Recupera as IDs de objeto de pastas que podem conter um objeto de um tipo especificado.

 

Categoria WPD_CATEGORY_STORAGE

Comando Descrição
WPD_COMMAND_STORAGE_EJECT Ejeta um meio de armazenamento que pode ser ejetado remotamente pelo driver.
WPD_COMMAND_STORAGE_FORMAT Formata um objeto funcional de armazenamento no dispositivo.

 

Categoria WPD_CATEGORY_SMS

Comando Descrição
WPD_COMMAND_SMS_SEND Inicia o envio de uma mensagem SMS por um objeto funcional SMS.

 

Categoria WPD_CATEGORY_STILL_IMAGE_CAPTURE

Comando Descrição
WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE Inicia uma captura de imagem parada por um objeto funcional de imagem ainda.

 

Referência de programação