Função SetupDiBuildDriverInfoList (setupapi.h)

A função SetupDiBuildDriverInfoList cria uma lista de drivers associados a um dispositivo específico ou à lista de drivers de classe global para um conjunto de informações do dispositivo.

Sintaxe

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

Parâmetros

[in] DeviceInfoSet

Um identificador para as informações do dispositivo definidas para conter a lista de driver, globalmente para todos os elementos de informações do dispositivo ou especificamente para um único elemento de informações do dispositivo. O conjunto de informações do dispositivo não deve conter elementos de informações do dispositivo remoto.

[in, out] DeviceInfoData

Um ponteiro para uma estrutura SP_DEVINFO_DATA para o elemento de informações do dispositivo em DeviceInfoSet que representa o dispositivo para o qual criar uma lista de driver. Esse parâmetro é opcional e pode ser NULL. Se esse parâmetro for especificado, a lista será associada ao dispositivo especificado. Se esse parâmetro for NULL, a lista será associada à lista de driver de classe global para DeviceInfoSet.

Se a classe deste dispositivo for atualizada devido à criação de uma lista de driver compatível, DeviceInfoData.ClassGuid é atualizado após o retorno.

[in] DriverType

O tipo de lista de driver a ser compilada. Deve ser um dos seguintes valores:

Valor Significado
SPDIT_CLASSDRIVER
Crie uma lista de drivers de classe. Se DeviceInfoData for NULL, esse tipo de lista de driver deverá ser especificado.
SPDIT_COMPATDRIVER
Crie uma lista de drivers compatíveis. DeviceInfoData não deverá ser NULL se esse tipo de lista de driver for especificado.

Retornar valor

A função retornará TRUE se for bem-sucedida. Caso contrário, ele retornará FALSE e o erro registrado poderá ser recuperado fazendo uma chamada para GetLastError.

Comentários

O conjunto de informações do dispositivo deve ser para um computador local porque SetupDiBuildDriverInfoList pesquisa drivers somente em um computador local. Se o conjunto de informações do dispositivo for para um computador remoto, a função retornará TRUE , mas não atualizará a lista de driver existente para o conjunto de informações do dispositivo ou, se fornecido, a lista de driver para o elemento de informações do dispositivo.

O chamador pode definir Sinalizadores no SP_DEVINSTALL_PARAMS associados ao conjunto de informações do dispositivo ou a um dispositivo específico (DeviceInfoData) para controlar como a lista é criada. Por exemplo, o chamador pode definir o sinalizador DI_FLAGSEX_ALLOWEXCLUDEDDRVS para incluir drivers marcados como Excluir de Selecionar.

Um driver será "Excluir de Selecionar" se estiver marcado como ExcludeFromSelect no arquivo INF ou se for um driver para um dispositivo cuja classe de instalação inteira está marcada como NoInstallClass ou NoUseClass no arquivo INF do instalador de classe. Os drivers para dispositivos PnP normalmente são "Excluir da Seleção"; Os dispositivos PnP não devem ser instalados manualmente. Para criar uma lista de arquivos de driver para um dispositivo PnP, um chamador de SetupDiBuildDriverInfoList deve definir esse sinalizador.

O DriverPath no SP_DEVINSTALL_PARAMS contém um caminho de um diretório que contém arquivos INF ou um caminho de um arquivo INF específico. Se DI_ENUMSINGLEINF estiver definido, DriverPath conterá um caminho de um único arquivo INF. Se DriverPath for NULL, essa função criará a lista de driveres do local padrão do arquivo INF, %SystemRoot%\inf.

Depois que essa função tiver criado a lista de driver especificada, o chamador poderá enumerar os elementos da lista chamando SetupDiEnumDriverInfo.

Se a lista de driver estiver associada a uma instância de dispositivo (ou seja, DeviceInfoData for especificada), a lista resultante será composta por drivers que têm a mesma classe que a instância do dispositivo à qual eles estão associados. Se essa for uma lista de driver de classe global (ou seja, DriverType será SPDIT_CLASSDRIVER e DeviceInfoData não for especificado), a classe usada ao compilar a lista será a classe associada ao conjunto de informações do dispositivo. Se o conjunto de informações do dispositivo não tiver nenhuma classe associada, os drivers de todas as classes serão usados ao criar a lista.

Outro thread pode encerrar a criação de uma lista de driver por uma chamada para SetupDiCancelDriverInfoSearch.

O DeviceInfoSet deve conter apenas elementos no computador local. Essa função pesquisa apenas drivers locais.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Microsoft Windows 2000 e versões posteriores do Windows.
Plataforma de Destino Área de Trabalho
Cabeçalho setupapi.h (inclua Setupapi.h)
Biblioteca Setupapi.lib
DLL Setupapi.dll
Conjunto de APIs ext-ms-win-setupapi-classinstallers-l1-1-1 (introduzido em Windows 8.1)

Confira também

SetupDiCancelDriverInfoSearch

SetupDiDestroyDriverInfoList

SetupDiEnumDriverInfo