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 |
---|---|
|
Il valore di Flags non è valido. |
|
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. |
|
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. |
|
Un valore di dati non specificato non è valido. Una possibilità è che il valore ClassGuid non sia valido. |
|
Un parametro non specificato non è valido. |
|
Un buffer utente non è valido. Una possibilità è che PropertyKeyArray è NULL e PropertKeyCount non è zero. |
|
Il nome computer specificato da MachineName non è valido. |
|
Se viene specificato il flag DICLASSPROP_INTERFACE, questo codice di errore indica che la classe dell'interfaccia del dispositivo specificata da ClassGuid non esiste. |
|
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. |
|
Memoria di sistema insufficiente per completare l'operazione. |
|
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 |