Condividi tramite


Funzione SetupDiBuildDriverInfoList (setupapi.h)

La funzione SetupDiBuildDriverInfoList compila un elenco di driver associati a un dispositivo specifico o all'elenco di driver di classe globale per un set di informazioni sul dispositivo.

Sintassi

WINSETUPAPI BOOL SetupDiBuildDriverInfoList(
  [in]      HDEVINFO         DeviceInfoSet,
  [in, out] PSP_DEVINFO_DATA DeviceInfoData,
  [in]      DWORD            DriverType
);

Parametri

[in] DeviceInfoSet

Handle per il set di informazioni sul dispositivo per contenere l'elenco dei driver, a livello globale per tutti gli elementi di informazioni sul dispositivo o in particolare per un singolo elemento informativo del dispositivo. Il set di informazioni sul dispositivo non deve contenere elementi di informazioni sul dispositivo remoto.

[in, out] DeviceInfoData

Puntatore a una struttura SP_DEVINFO_DATA per l'elemento informazioni sul dispositivo in DeviceInfoSet che rappresenta il dispositivo per cui compilare un elenco di driver. Questo parametro è facoltativo e può essere NULL. Se questo parametro viene specificato, l'elenco è associato al dispositivo specificato. Se questo parametro è NULL, l'elenco è associato all'elenco di driver di classe globale per DeviceInfoSet.

Se la classe di questo dispositivo viene aggiornata a causa della creazione di un elenco di driver compatibili , DeviceInfoData.ClassGuid viene aggiornato al momento della restituzione.

[in] DriverType

Tipo di elenco di driver da compilare. Deve essere uno dei valori seguenti:

Valore Significato
SPDIT_CLASSDRIVER
Compilare un elenco di driver di classe. Se DeviceInfoData è NULL, è necessario specificare questo tipo di elenco di driver.
SPDIT_COMPATDRIVER
Compilare un elenco di driver compatibili. DeviceInfoData non deve essere NULL se viene specificato questo tipo di elenco di driver.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce TRUE . In caso contrario, restituisce FALSE e l'errore registrato può essere recuperato effettuando una chiamata a GetLastError.

Commenti

Il set di informazioni sul dispositivo deve essere per un computer locale perché SetupDiBuildDriverInfoList cerca i driver solo in un computer locale. Se il set di informazioni sul dispositivo è per un computer remoto, la funzione restituisce TRUE ma non aggiorna effettivamente l'elenco di driver esistente per il set di informazioni sul dispositivo o, se specificato, l'elenco dei driver per l'elemento informazioni sul dispositivo.

Il chiamante può impostare Flag nel SP_DEVINSTALL_PARAMS associati al set di informazioni sul dispositivo o a un dispositivo specifico (DeviceInfoData) per controllare la modalità di compilazione dell'elenco. Ad esempio, il chiamante può impostare il flag DI_FLAGSEX_ALLOWEXCLUDEDDRVS per includere i driver contrassegnati come Escludi da seleziona.

Un driver è "Exclude From Select" se è contrassegnato come ExcludeFromSelect nel file INF oppure è un driver per un dispositivo il cui intero programma di installazione è contrassegnato come NoInstallClass o NoUseClass nel file INF del programma di installazione della classe. I driver per i dispositivi PnP sono in genere "Escludi da seleziona"; I dispositivi PnP non devono essere installati manualmente. Per compilare un elenco di file driver per un dispositivo PnP, è necessario impostare questo flag per un chiamante di SetupDiBuildDriverInfoList .

DriverPath nel SP_DEVINSTALL_PARAMS contiene un percorso di una directory che contiene file INF o un percorso di un file INF specifico. Se DI_ENUMSINGLEINF è impostato, DriverPath contiene un percorso di un singolo file INF. Se DriverPath è NULL, questa funzione compila l'elenco di driver dal percorso predefinito del file INF, %SystemRoot%\inf.

Dopo che questa funzione ha compilato l'elenco di driver specificato, il chiamante può enumerare gli elementi dell'elenco chiamando SetupDiEnumDriverInfo.

Se l'elenco di driver è associato a un'istanza del dispositivo, ovvero DeviceInfoData viene specificato, l'elenco risultante è costituito da driver che hanno la stessa classe dell'istanza del dispositivo a cui sono associati. Se si tratta di un elenco di driver di classe globale( ovvero DriverType è SPDIT_CLASSDRIVER e DeviceInfoData non è specificato), la classe usata durante la compilazione dell'elenco è la classe associata al set di informazioni sul dispositivo. Se il set di informazioni sul dispositivo non ha alcuna classe associata, vengono usati i driver di tutte le classi durante la compilazione dell'elenco.

Un altro thread può terminare la compilazione di un elenco di driver tramite una chiamata a SetupDiCancelDriverInfoSearch.

DeviceInfoSet deve contenere solo elementi nel computer locale. Questa funzione cerca solo i driver locali.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Microsoft Windows 2000 e versioni successive di Windows.
Piattaforma di destinazione Desktop
Intestazione setupapi.h (include Setupapi.h)
Libreria Setupapi.lib
DLL Setupapi.dll
Set di API ext-ms-win-setupapi-classinstallers-l1-1-1 (introdotto in Windows 8.1)

Vedi anche

SetupDiCancelDriverInfoSearch

SetupDiDestroyDriverInfoList

SetupDiEnumDriverInfo