estrutura SP_DEVINSTALL_PARAMS_A (setupapi.h)
Uma estrutura SP_DEVINSTALL_PARAMS contém parâmetros de instalação do dispositivo associados a um elemento de informações de dispositivo específico ou associado globalmente a um conjunto de informações do dispositivo.
Sintaxe
typedef struct _SP_DEVINSTALL_PARAMS_A {
DWORD cbSize;
DWORD Flags;
DWORD FlagsEx;
HWND hwndParent;
PSP_FILE_CALLBACK InstallMsgHandler;
PVOID InstallMsgHandlerContext;
HSPFILEQ FileQueue;
ULONG_PTR ClassInstallReserved;
DWORD Reserved;
CHAR DriverPath[MAX_PATH];
} SP_DEVINSTALL_PARAMS_A, *PSP_DEVINSTALL_PARAMS_A;
Membros
cbSize
O tamanho, em bytes, da estrutura SP_DEVINSTALL_PARAMS.
Flags
Sinalizadores que controlam a instalação e as operações de interface do usuário. Alguns sinalizadores podem ser definidos antes de enviar a solicitação de instalação do dispositivo, enquanto outros sinalizadores são definidos automaticamente durante o processamento de algumas solicitações. Os sinalizadores podem ser uma combinação dos valores a seguir.
Os valores de sinalizador são listados em grupos: graváveis por aplicativos e instaladores de instalação de dispositivo , somente leitura (definidos apenas pelo sistema operacional), reservados e obsoletos. O primeiro grupo lista os sinalizadores graváveis:
DI_CLASSINSTALLPARAMS
Defina para usar os parâmetros de Instalação de Classe. SetupDiSetClassInstallParams define esse sinalizador quando o chamador especifica parâmetros e limpa o sinalizador quando o chamador especifica um ponteiro de parâmetros NULL .
DI_COMPAT_FROM_CLASS
Defina para forçar SetupDiBuildDriverInfoList a criar uma lista de drivers compatíveis de um dispositivo de sua lista de drivers de classe em vez do arquivo INF.
DI_DRIVERPAGE_ADDED
Definido por um instalador de classe ou um co-instalador se o instalador fornecer uma página que substitui a página de propriedades do driver fornecida pelo sistema. Se esse sinalizador estiver definido, o sistema operacional não exibirá a página de driver fornecida pelo sistema.
DI_DONOTCALLCONFIGMG
Defina se o gerenciador de configurações não deve ser chamado para remover ou reenumerar dispositivos durante a execução de determinadas funções de instalação do dispositivo (por exemplo, SetupDiInstallDevice).
Se esse sinalizador estiver definido, os aplicativos de instalação do dispositivo, os instaladores de classe e os co-instaladores não deverão chamar as seguintes funções:
CM_Reenumerate_DevNodeCM_Reenumerate_DevNode_ExCM_Query_And_Remove_SubTreeCM_Query_And_Remove_SubTree_Ex CM_Setup_DevNodeCM_Setup_DevNode_ExCM_Set_HW_Prof_Flags CM_Set_HW_Prof_Flags_ExCM_Enable_DevNodeCM_Enable_DevNode_ExCM_Disable_DevNode CM_Disable_DevNode_Ex
DI_ENUMSINGLEINF
Defina se os instaladores e outros componentes de instalação do dispositivo só devem pesquisar o arquivo INF especificado por SP_DEVINSTALL_PARAMS. DriverPath. Se esse sinalizador for definido, DriverPath conterá o caminho de um único arquivo INF em vez de um caminho de um diretório.
DI_INF_IS_SORTED
Defina para indicar que a página Selecionar Dispositivo deve listar drivers na ordem em que eles aparecem no arquivo INF, em vez de classificá-los em ordem alfabética.
DI_INSTALLDISABLED
Defina se o dispositivo deve ser instalado em um estado desabilitado por padrão. Para ser reconhecido, esse sinalizador deve ser definido antes que o Windows chame o manipulador padrão para a solicitação de DIF_INSTALLDEVICE .
DI_NEEDREBOOT
Para sistemas operacionais baseados em NT, esse sinalizador será definido se o dispositivo exigir que o computador seja reiniciado após a instalação do dispositivo ou uma alteração de estado do dispositivo. Um instalador de classe ou um co-instalador pode definir esse sinalizador a qualquer momento durante a instalação do dispositivo, se o instalador determinar que uma reinicialização é necessária.
DI_NEEDRESTART
O mesmo que DI_NEEDREBOOT.
DI_NOBROWSE
Defina para desabilitar a navegação quando o usuário estiver selecionando um caminho de disco OEM. Um aplicativo de instalação de dispositivo define esse sinalizador para restringir um usuário à instalação somente do local da mídia de instalação.
DI_NODI_DEFAULTACTION
Defina se SetupDiCallClassInstaller não deve executar nenhuma ação padrão se o instalador de classe retornar ERR_DI_DO_DEFAULT ou se não houver um instalador de classe.
DI_NOFILECOPY
Defina se os aplicativos e componentes de instalação do dispositivo, como SetupDiInstallDevice, devem ignorar a cópia de arquivo.
DI_NOVCP
Defina para desabilitar a criação de uma nova fila de cópia. Use a fila de cópia fornecida pelo chamador no SP_DEVINSTALL_PARAMS. FileQueue.
DI_NOWRITE_IDS
Defina para impedir que SetupDiInstallDevice grave as IDs de hardware especificadas pelo INF e as IDs compatíveis nas propriedades do dispositivo para o nó do dispositivo (devnode). Esse sinalizador só deve ser definido para dispositivos enumerados por raiz.
Esse sinalizador substitui o sinalizador DI_FLAGSEX_ALWAYSWRITEIDS.
DI_PROPERTIES_CHANGE
Definido por Gerenciador de Dispositivos se as propriedades de um dispositivo foram alteradas, o que requer uma atualização da interface do usuário do instalador.
DI_QUIETINSTALL
Defina se as funções do instalador do dispositivo devem ser silenciosas e usar opções padrão sempre que possível. Os instaladores de classe e os co-instaladores não deverão exibir nenhuma interface do usuário se esse sinalizador estiver definido.
DI_RESOURCEPAGE_ADDED
Definido por um instalador de classe ou um co-instalador se o instalador fornecer uma página que substitui a página de propriedades do recurso fornecida pelo sistema. Se esse sinalizador estiver definido, o sistema operacional não exibirá a página de recursos fornecida pelo sistema.
DI_SHOWOEM
Defina para permitir o suporte para discos OEM. Se esse sinalizador estiver definido, o sistema operacional apresentará um botão "Ter Disco" na página Selecionar Dispositivo. Esse sinalizador é definido, por padrão, em assistentes fornecidos pelo sistema.
DI_USECI_SELECTSTRINGS
Defina se um instalador de classe ou co-instalador forneceu cadeias de caracteres que devem ser usadas durante SetupDiSelectDevice.
Os sinalizadores a seguir são somente leitura (definidos apenas pelo sistema operacional):
DI_DIDCLASS
Defina se SetupDiBuildDriverInfoList já criou uma lista dos drivers para essa classe de dispositivo. Se essa lista já tiver sido criada, ela conterá todas as informações do driver e esse sinalizador sempre será definido. SetupDiDestroyDriverInfoList limpa esse sinalizador quando exclui uma lista de drivers para uma classe.
Esse sinalizador é somente leitura. Somente o sistema operacional define esse sinalizador.
DI_DIDCOMPAT
Defina se SetupDiBuildDriverInfoList já criou uma lista de drivers compatíveis para este dispositivo. Se essa lista já tiver sido criada, ela conterá todas as informações do driver e esse sinalizador sempre será definido. SetupDiDestroyDriverInfoList limpa esse sinalizador quando exclui uma lista de drivers compatível.
Esse sinalizador só é definido em parâmetros de instalação do dispositivo associados a um elemento de informações de dispositivo específico, não em parâmetros para um conjunto de informações de dispositivo como um todo.
Esse sinalizador é somente leitura. Somente o sistema operacional define esse sinalizador.
DI_MULTMFGS
Definido por SetupDiBuildDriverInfoList se uma lista de drivers para uma classe de configuração de dispositivo contiver drivers fornecidos por vários fabricantes.
Esse sinalizador é somente leitura. Somente o sistema operacional define esse sinalizador.
Os seguintes sinalizadores são reservados:
DI_AUTOASSIGNRES
DI_DISABLED
DI_FORCECOPY
DI_GENERALPAGE_ADDED
DI_OVERRIDE_INFFLAGS
DI_SHOWALL
DI_SHOWCLASS
DI_SHOWCOMPAT
Os seguintes sinalizadores estão obsoletos:
DI_NOSELECTICONS
DI_PROPS_NOCHANGEUSAGE
FlagsEx
Sinalizadores adicionais que fornecem controle sobre operações de instalação e interface do usuário. Alguns sinalizadores podem ser definidos antes de chamar as funções do instalador do dispositivo, enquanto outros sinalizadores são definidos automaticamente durante o processamento de algumas funções. FlagsEx pode ser uma combinação dos valores a seguir.
Os valores de sinalizador são listados em grupos: graváveis por aplicativos e instaladores de instalação de dispositivo, somente leitura (definido apenas pelo sistema operacional), reservados e obsoletos.
O primeiro grupo lista os sinalizadores graváveis:
DI_FLAGSEX_ALLOWEXCLUDEDDRVS
Se definido, inclua drivers marcados como "Excluir de Selecionar".
Por exemplo, se esse sinalizador estiver definido, SetupDiSelectDevice exibirá drivers que têm o estado Excluir de Selecionar e SetupDiBuildDriverInfoList incluirá Excluir de Selecionar drivers na lista de drivers solicitada.
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 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.
DI_FLAGSEX_ALWAYSWRITEIDS
Se definido e o sinalizador DI_NOWRITE_IDS estiver claro, sempre escreva hardware e IDs compatíveis nas propriedades do dispositivo para o devnode. Esse sinalizador só deve ser definido para dispositivos enumerados raiz.
DI_FLAGSEX_APPENDDRIVERLIST
Se definido, SetupDiBuildDriverInfoList acrescentará uma nova lista de driver a uma lista existente. Esse sinalizador é relevante ao pesquisar vários locais.
DI_FLAGSEX_DRIVERLIST_FROM_URL
Se definido, crie a lista de driveres de INF(s) recuperados da URL especificada em SP_DEVINSTALL_PARAMS. DriverPath. Se o DriverPath for uma cadeia de caracteres vazia, use o site Windows Update.
Atualmente, o sistema operacional não dá suporte a URLs. Use esse sinalizador para direcionar SetupDiBuildDriverInfoList para pesquisar o site do Windows Update.
Não defina esse sinalizador se DI_QUIETINSTALL estiver definido.
DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS
Se definido, não inclua drivers de Internet antigos ao criar uma lista de drivers. Esse sinalizador deve ser definido sempre que você estiver criando uma lista de possíveis drivers para um dispositivo. Você poderá limpar esse sinalizador se estiver apenas recebendo uma lista de drivers atualmente instalados para um dispositivo.
DI_FLAGSEX_FILTERCLASSES
Se definido, SetupDiBuildClassInfoList marcar para filtros de inclusão de classe. Isso significa que um dispositivo não será incluído na lista de classes se sua classe estiver marcada como NoInstallClass.
DI_FLAGSEX_FILTERSIMILARDRIVERS
(Windows XP e posterior.) Se definido, SetupDiBuildDriverInfoList inclui drivers "semelhantes" ao criar uma lista de drivers de classe. Um driver "semelhante" é aquele para o qual uma das IDs de hardware ou IDs compatíveis no arquivo INF corresponde parcialmente (ou completamente) a uma das IDs de hardware ou IDs compatíveis do hardware.
DI_FLAGSEX_FINISHINSTALL_ACTION
(Windows Vista e posterior.) Consulte Marcando um dispositivo como tendo uma ação de Finish-Install a ser executada para obter mais informações.
DI_FLAGSEX_INET_DRIVER
Se definido, o driver foi obtido da Internet. O Windows não usará o INF do dispositivo para instalar dispositivos futuros porque o Windows não pode garantir que ele possa recuperar os arquivos de driver novamente da Internet.
DI_FLAGSEX_INSTALLEDDRIVER
(Windows XP e posterior.) Se definido, SetupDiBuildDriverInfoList inclui apenas o driver atualmente instalado ao criar uma lista de drivers de classe ou drivers compatíveis com dispositivos.
DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE
(Windows XP e posterior.) Se definido, ao criar uma lista de drivers de classe, SetupDiBuildDriverInfoList não mesclará nós na lista de driver que são do mesmo INF e têm a mesma descrição e classificação do driver.
DI_FLAGSEX_NO_DRVREG_MODIFY
Não processe as entradas AddReg e DelReg para as chaves de hardware e software (driver) do dispositivo. Ou seja, as entradas AddReg e DelReg no arquivo INF DDInstall e DDInstall. Seções HW .
DI_FLAGSEX_POWERPAGE_ADDED
Se definido, um instalador adicionou sua própria página para a caixa de diálogo propriedades de energia. O sistema operacional não exibirá a página de propriedades de energia fornecidas pelo sistema. Esse sinalizador só será relevante se o dispositivo der suporte ao gerenciamento de energia.
DI_FLAGSEX_PROPCHANGE_PENDING
Se definido, o usuário fez alterações em uma ou mais folhas de propriedades do dispositivo. O provedor de página de propriedades normalmente define esse sinalizador.
Quando o usuário fecha a folha de propriedades do dispositivo, Gerenciador de Dispositivos verifica o sinalizador DI_FLAGSEX_PROPCHANGE_PENDING. Se estiver definido, Gerenciador de Dispositivos limpará esse sinalizador, definirá o sinalizador DI_PROPERTIES_CHANGE e enviará uma solicitação DIF_PROPERTYCHANGE aos instaladores para notificá-los de que algo mudou.
DI_FLAGSEX_RECURSIVESEARCH
(Windows Vista e posterior.) Se definido, quando SetupDiBuildDriverInfoList pesquisar INFs no caminho especificado no valor DriverPath , a pesquisa será recursiva.
DI_FLAGSEX_SEARCH_PUBLISHED_INFS
(Windows Vista e posterior.) Se definido, quando SetupDiBuildDriverInfoList é usado para pesquisar INFs sem um caminho INF ou caminho de pesquisa especificado, isso restringe a pesquisa apenas a INFs que foram importados para o Repositório de Driver.
DI_FLAGSEX_SETFAILEDINSTALL
Defina se a instalação falhou. Se esse sinalizador estiver definido, a função SetupDiInstallDevice apenas definirá o sinalizador FAILEDINSTALL no valor do registro ConfigFlags do dispositivo. Se DI_FLAGSEX_SETFAILEDINSTALL estiver definida, os co-instaladores deverão retornar NO_ERROR em resposta a DIF_INSTALLDEVICE, enquanto os instaladores de classe deverão retornar NO_ERROR ou ERROR_DI_DO_DEFAULT.
DI_FLAGSEX_USECLASSFORCOMPAT
Filtre arquivos INF na classe de instalação do dispositivo ao criar uma lista de drivers compatíveis. Se a classe de instalação de um dispositivo for conhecida, definir esse sinalizador reduzirá o tempo necessário para criar uma lista de drivers compatíveis ao pesquisar arquivos INF que não são pré-compilados. Esse sinalizador será ignorado se DI_COMPAT_FROM_CLASS estiver definido.
Os sinalizadores a seguir são somente leitura; somente o sistema operacional define estes sinalizadores:
DI_FLAGSEX_CI_FAILED
Definido pelo sistema operacional se um instalador de classe não tiver sido carregado ou iniciado. Esse sinalizador é somente leitura.
DI_FLAGSEX_DIDCOMPATINFO
O Windows criou uma lista de nós de driver compatíveis com o dispositivo. Esse sinalizador é somente leitura.
DI_FLAGSEX_DIDINFOLIST
O Windows criou uma lista de nós de driver que inclui todos os drivers listados nos arquivos INF da classe de instalação especificada. Se a classe de instalação especificada for NULL porque o conjunto ou dispositivo HDEVINFO não tem nenhuma classe associada, a lista incluirá todos os nós de driver de todos os arquivos INF disponíveis. Esse sinalizador é somente leitura.
DI_FLAGSEX_IN_SYSTEM_SETUP
Se definido, a instalação ocorrerá durante a instalação inicial do sistema. Esse sinalizador é somente leitura.
Os seguintes sinalizadores são reservados e não devem ser usados:
DI_FLAGSEX_ALTPLATFORM_DRVSEARCH
DI_FLAGSEX_BACKUPONREPLACE
DI_FLAGSEX_DEVICECHANGE
DI_FLAGSEX_OLDINF_IN_CLASSLIST
DI_FLAGSEX_PREINSTALLBACKUP
DI_FLAGSEX_RESTART_DEVICE_ONLY
DI_FLAGSEX_USEOLDINFSEARCH
Os seguintes sinalizadores são obsoletos:
DI_FLAGSEX_AUTOSELECTRANK0
DI_FLAGSEX_NOUIONQUERYREMOVE
hwndParent
Identificador de janela que será o proprietário das caixas de diálogo da interface do usuário relacionadas a este dispositivo.
InstallMsgHandler
Retorno de chamada usado para manipular eventos durante a cópia de arquivo. Um instalador pode usar um retorno de chamada, por exemplo, para executar um processamento especial ao confirmar uma fila de arquivos.
InstallMsgHandlerContext
Dados privados usados pelo retorno de chamada InstallMsgHandler .
FileQueue
Um identificador para uma fila de arquivos fornecida pelo chamador em que as operações de arquivo devem ser enfileiradas, mas não confirmadas.
Se você associar uma fila de arquivos a um conjunto de informações do dispositivo (SetupDiSetDeviceInstallParams), deverá desassociar a fila do conjunto de informações do dispositivo antes de excluir o conjunto de informações do dispositivo. Se você não conseguir desassociar a fila de arquivos, o Windows não poderá diminuir sua contagem de referência no conjunto de informações do dispositivo e não poderá liberar a memória.
Essa fila só será usada se o sinalizador DI_NOVCP estiver definido, indicando que as operações de arquivo devem ser enfileiradas, mas não confirmadas.
ClassInstallReserved
Um ponteiro para dados do instalador de classe. Os co-instaladores não devem usar esse campo.
Reserved
Reservado. Apenas para uso interno.
DriverPath[MAX_PATH]
Esse caminho é usado pela função SetupDiBuildDriverInfoList .
Comentários
Observação
O cabeçalho setupapi.h define SP_DEVINSTALL_PARAMS como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | setupapi.h (inclua Setupapi.h) |