Comandos (WPD API)
O aplicativo cliente e o driver se comunicam por meio de comandos que são enviados do cliente (através da API de dispositivo portátil do Windows) para o driver (através 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 IPortableDeviceService:SendCommand método, ou implicitamente, chamando qualquer um dos métodos das interfaces do cliente. Alguns comandos só podem ser enviados explicitamente; estes são anotados 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 um PROPERTYKEY estrutura. 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 o ID do comando e é usada para distinguir os comandos individuais dentro de uma categoria de comando (os valores 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 comandos e IDs de comando. No entanto, um fabricante não deve adicionar comandos às categorias listadas abaixo, uma vez que estes são reservados pela Microsoft.
Categorias de comando
Categoria de comando | Descrição |
---|---|
WPD_CATEGORY_COMMON | Comandos que são 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 que são usados para dispositivos que suportam a funcionalidade de serviço de mensagens curtas (SMS), que normalmente é exposta em telefones celulares. |
WPD_CATEGORY_STILL_IMAGE_CAPTURE | Comandos que são usados para dispositivos que suportam captura de imagem estática. |
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.
WPD_CATEGORY_COMMON Categoria
Comando | Descrição |
---|---|
WPD_COMMAND_COMMON_RESET_DEVICE | Redefine o dispositivo. |
WPD_CATEGORY_DEVICE_HINTS Categoria
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. |
WPD_CATEGORY_STORAGE Categoria
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. |
WPD_CATEGORY_SMS Categoria
Comando | Descrição |
---|---|
WPD_COMMAND_SMS_SEND | Inicia o envio de uma mensagem SMS por um objeto funcional SMS. |
WPD_CATEGORY_STILL_IMAGE_CAPTURE Categoria
Comando | Descrição |
---|---|
WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE | Inicia uma captura de imagem estática por um objeto funcional de imagem fixa. |
Tópicos relacionados