Função SetupDiGetClassPropertyKeys (setupapi.h)

A função SetupDiGetClassPropertyKeys recupera uma matriz das chaves de propriedade do dispositivo que representam as propriedades do dispositivo definidas para uma classe de configuração de dispositivo ou uma classe de interface do dispositivo.

Sintaxe

WINSETUPAPI BOOL SetupDiGetClassPropertyKeys(
  [in]            const GUID *ClassGuid,
  [out, optional] DEVPROPKEY *PropertyKeyArray,
  [in]            DWORD      PropertyKeyCount,
  [out, optional] PDWORD     RequiredPropertyKeyCount,
  [in]            DWORD      Flags
);

Parâmetros

[in] ClassGuid

Um ponteiro para um GUID que representa uma classe de configuração de dispositivo ou uma classe de interface do dispositivo. SetupDiGetClassPropertyKeys recupera uma matriz das chaves de propriedade do dispositivo que representam as propriedades do dispositivo definidas para a classe especificada. Para obter informações sobre como especificar o tipo de classe, consulte o parâmetro Flags .

[out, optional] PropertyKeyArray

Um ponteiro para um buffer que recebe uma matriz de valores do tipo DEVPROPKEY, em que cada valor é uma chave de propriedade do dispositivo que representa uma propriedade de dispositivo definida para a classe de dispositivo. O ponteiro é opcional e pode ser NULL. Para obter mais informações, consulte a seção Comentários mais adiante neste tópico.

[in] PropertyKeyCount

O tamanho, em valores do tipo DEVPROPKEY, do buffer PropertyKeyArray . Se PropertyKeyArray estiver definido como NULL, PropertyKeyCount deverá ser definido como zero.

[out, optional] RequiredPropertyKeyCount

Um ponteiro para uma variável do tipo DWORD que recebe o número de chaves de propriedade solicitadas. O parâmetro é opcional e pode ser definido como NULL.

[in] Flags

Um dos seguintes valores, que especifica se as chaves de propriedade devem ser recuperadas para uma classe de configuração de dispositivo ou para uma classe de interface do dispositivo:

DICLASSPROP_INSTALLER

ClassGuid especifica uma classe de configuração de dispositivo. Esse sinalizador não pode ser usado com DICLASSPROP_INTERFACE.

DICLASSPROP_INTERFACE

ClassGuid especifica uma classe de interface do dispositivo. Esse sinalizador não pode ser usado com DICLASSPROP_INSTALLER.

Valor retornado

SetupDiGetClassPropertyKeys retornará TRUE se for bem-sucedido. Caso contrário, ele retornará FALSE e o erro registrado poderá ser recuperado chamando GetLastError.

A tabela a seguir inclui alguns dos códigos de erro mais comuns que essa função pode registrar.

Código de retorno Descrição
ERROR_INVALID_FLAGS
O valor de Flags não é válido.
ERROR_INVALID_CLASS
Se o sinalizador DICLASSPROP_INSTALLER for especificado, esse código de erro indicará que a classe de instalação do dispositivo especificada por ClassGuid não existe.
ERROR_INVALID_REFERENCE_STRING
A cadeia de caracteres de referência para a interface do dispositivo especificada por ClassGuild não é válida. Esse erro poderá ser retornado se o sinalizador DICLASSPROP_INTERFACE for especificado.
ERROR_INVALID_DATA
Um valor de dados não especificado não é válido. Uma possibilidade é que o valor ClassGuid não seja válido.
ERROR_INVALID_PARAMETER
Um parâmetro não especificado não é válido.
ERROR_INVALID_USER_BUFFER
Um buffer de usuário não é válido. Uma possibilidade é que PropertyKeyArray seja NULL e PropertKeyCount não seja zero.
ERROR_NO_SUCH_INTERFACE_CLASS
Se o sinalizador DICLASSPROP_INTERFACE for especificado, esse código de erro indicará que a classe de interface do dispositivo especificada por ClassGuid não existe.
ERROR_INSUFFICENT_BUFFER
O buffer PropertyKeyArray não é grande o suficiente para manter todas as chaves de propriedade ou um buffer de dados interno que foi passado para uma chamada do sistema era muito pequeno.
ERROR_NOT_ENOUGH_MEMORY
Não havia memória do sistema suficiente disponível para concluir a operação.
ERROR_ACCESS_DENIED
O chamador não tem privilégios de Administrador.

Comentários

SetupDiGetClassPropertyKeys faz parte do modelo de propriedade do dispositivo unificado.

Um chamador de SetupDiGetClassPropertyKeys deve ser membro do grupo Administradores para recuperar chaves de propriedade do dispositivo para uma classe de dispositivo.

Se o buffer PropertyKeyArray não for grande o suficiente para manter todas as chaves de propriedade solicitadas, SetupDiGetClassPropertyKeys não recuperará nenhuma chave de propriedade e retornará ERROR_INSUFFICIENT_BUFFER. Se o chamador forneceu um ponteiro RequiredPropertyKeyCount, SetupDiGetClassPropertyKeys define o valor de *RequiredPropertyKeyCount como o tamanho necessário, em valores do tipo DEVPROPKEY, do buffer PropertyKeyArray.

Para recuperar uma propriedade de classe de dispositivo em um computador local, chame SetupDiGetClassProperty. Para definir uma propriedade de classe de dispositivo em um computador local, chame SetupDiSetClassProperty.

Para recuperar as chaves de propriedade de uma classe de instalação de dispositivo ou classe de interface de dispositivo em um computador remoto, chame SetupDiGetClassPropertyKeysEx.

Requisitos

   
Cliente mínimo com suporte Disponível no Windows Vista e versões posteriores do Windows.
Plataforma de Destino DesktopPara universal, chame CM_Get_Class_Property_Keys
Cabeçalho setupapi.h (inclua Setupapi.h)
Biblioteca Setupapi.lib
DLL Setupapi.dll

Confira também

SetupDiGetClassProperty

SetupDiGetClassPropertyKeysEx

SetupDiSetClassProperty