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. |
Tópicos relacionados