Funzione SetupDiGetClassPropertyKeysExW (setupapi.h)

La funzione SetupDiGetClassPropertyKeysEx recupera una matrice delle chiavi delle proprietà del dispositivo che rappresentano le proprietà del dispositivo impostate per una classe di installazione del dispositivo o una classe dell'interfaccia del dispositivo in un computer locale o remoto.

Sintassi

WINSETUPAPI BOOL SetupDiGetClassPropertyKeysExW(
  [in]            const GUID *ClassGuid,
  [out, optional] DEVPROPKEY *PropertyKeyArray,
  [in]            DWORD      PropertyKeyCount,
  [out, optional] PDWORD     RequiredPropertyKeyCount,
  [in]            DWORD      Flags,
  [in, optional]  PCWSTR     MachineName,
                  PVOID      Reserved
);

Parametri

[in] ClassGuid

Puntatore a un GUID che rappresenta una classe di installazione del dispositivo o una classe di interfaccia del dispositivo. SetupDiGetClassPropertyKeysEx recupera una matrice delle chiavi delle proprietà del dispositivo che rappresentano le proprietà del dispositivo impostate per la classe specificata. Per informazioni sulla specifica del tipo di classe, vedere il parametro Flags .

[out, optional] PropertyKeyArray

Puntatore a un buffer che riceve una matrice di valori tipizzati DEVPROPKEY, in cui ogni valore è una chiave della proprietà del dispositivo che rappresenta una proprietà del dispositivo impostata per la classe di installazione del dispositivo. Il puntatore è facoltativo e può essere NULL. Per altre informazioni, vedere la sezione Osservazioni più avanti in questo argomento.

[in] PropertyKeyCount

Dimensioni, in valori di tipo DEVPROPKEY, del buffer PropertyKeyArray . Se PropertyKeyArray è impostato su NULL, PropertyKeyCount deve essere impostato su zero.

[out, optional] RequiredPropertyKeyCount

Puntatore a una variabile tipizzata DWORD che riceve il numero di chiavi di proprietà richieste. Il puntatore è facoltativo e può essere impostato su NULL.

[in] Flags

Uno dei valori seguenti, che specifica se recuperare le chiavi delle proprietà della classe per una classe di installazione del dispositivo o per una classe dell'interfaccia del dispositivo.

DICLASSPROP_INSTALLER

ClassGuid specifica una classe di installazione del dispositivo. Questo flag non può essere usato con DICLASSPROP_INTERFACE.

DICLASSPROP_INTERFACE

ClassGuid specifica una classe di interfaccia del dispositivo. Questo flag non può essere usato con DICLASSPROP_INSTALLER.

[in, optional] MachineName

Puntatore a una stringa con terminazione NULL contenente il nome UNC, incluso il prefisso "\" di un computer. Il puntatore può essere NULL. Se il puntatore è NULL, SetupDiGetClassPropertyKeysEx recupera le informazioni richieste dal computer locale.

Attenzione

L'uso di questa funzione per accedere ai computer remoti non è supportato a partire da Windows 8 e Windows Server 2012, perché questa funzionalità è stata rimossa.

Reserved

Questo parametro deve essere impostato su NULL.

Valore restituito

SetupDiGetClassPropertyKeysEx restituisce TRUE se ha esito positivo. In caso contrario, restituisce FALSE e l'errore registrato può essere recuperato chiamando GetLastError.

La tabella seguente include alcuni dei codici di errore più comuni che questa funzione potrebbe registrare.

Codice restituito Descrizione
ERROR_INVALID_FLAGS
Il valore di Flags non è valido.
ERROR_INVALID_CLASS
Se viene specificato il flag di DICLASSPROP_INSTALLER, questo codice di errore indica che la classe di installazione del dispositivo specificata da ClassGuid non esiste.
ERROR_INVALID_REFERENCE_STRING
La stringa di riferimento per l'interfaccia del dispositivo specificata da ClassGuild non è valida. Questo errore può essere restituito quando viene specificato il flag DICLASSPROP_INTERFACE.
ERROR_INVALID_DATA
Un valore di dati non specificato non è valido. Una possibilità è che il valore ClassGuid non sia valido.
ERROR_INVALID_PARAMETER
Un parametro non specificato non è valido.
ERROR_INVALID_USER_BUFFER
Un buffer utente non è valido. Una possibilità è che PropertyKeyArray è NULL e PropertKeyCount non è zero.
ERROR_INVALID_MACHINENAME
Il nome computer specificato da MachineName non è valido.
ERROR_NO_SUCH_INTERFACE_CLASS
Se viene specificato il flag DICLASSPROP_INTERFACE, questo codice di errore indica che la classe dell'interfaccia del dispositivo specificata da ClassGuid non esiste.
ERROR_INSUFFICENT_BUFFER
Il buffer PropertyKeyArray non è sufficientemente grande da contenere tutte le chiavi di proprietà o un buffer di dati interno passato a una chiamata di sistema era troppo piccolo.
ERROR_NOT_ENOUGH_MEMORY
Memoria di sistema insufficiente per completare l'operazione.
ERROR_ACCESS_DENIED
Il chiamante non dispone dei privilegi di amministratore.

Commenti

SetupDiGetClassPropertyKeysEx fa parte del modello di proprietà del dispositivo unificato.

Un chiamante di SetupDiGetClassPropertyKeysEx deve essere membro del gruppo Administrators per recuperare le chiavi delle proprietà del dispositivo per una classe di dispositivo.

Se il buffer PropertyKeyArray non è sufficientemente grande da contenere tutte le chiavi di proprietà richieste, SetupDiGetClassPropertyKeysEx non recupera chiavi di proprietà e restituisce ERROR_INSUFFICIENT_BUFFER. Se il chiamante ha fornito un puntatore RequiredPropertyKeyCount, SetupDiGetClassPropertyKeysEx imposta il valore di *RequiredPropertyKeyCount sulle dimensioni necessarie, nei valori tipizzati DEVPROPKEY del buffer PropertyKeyArray.

Per recuperare una proprietà della classe di dispositivo in un computer remoto, chiamare SetupDiGetClassPropertyEx e impostare una proprietà della classe di dispositivo in un computer remoto, chiamare SetupDiSetClassPropertyEx.

Per recuperare le chiavi di proprietà per una classe di configurazione del dispositivo o una classe di interfaccia del dispositivo in un computer locale, chiamare SetupDiGetClassPropertyKeys.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e versioni successive di Windows.
Piattaforma di destinazione DesktopFor universal, chiamare CM_Get_Class_Property_Keys_Ex
Intestazione setupapi.h (include Setupapi.h)
Libreria Setupapi.lib

Vedi anche

SetupDiGetClassPropertyEx

SetupDiGetClassPropertyKeys

SetupDiSetClassPropertyEx