DIF_DETECT
Uma solicitação DIF_DETECT direciona um instalador para detectar dispositivos não PnP de uma classe específica e adicionar os dispositivos ao conjunto de informações do dispositivo. Essa solicitação é usada para dispositivos não PnP.
Quando enviado
Quando o Assistente para Adicionar Hardware estiver detectando dispositivos não PnP.
Quem manipula
Co-instalador de classe |
Pode manipular |
Co-instalador de dispositivo |
Não manipula |
Instalador de Classe |
Pode manipular |
Entrada do instalador
DeviceInfoSet
Fornece um identificador para o conjunto de informações do dispositivo. Há uma classe de configuração de dispositivo associada ao DeviceInfoSet.
Parâmetros de instalação do dispositivo
Há parâmetros de instalação do dispositivo associados ao DeviceInfoSet.
Parâmetros de instalação de classe
Uma estrutura SP_DETECTDEVICE_PARAMS está associada ao DeviceInfoSet. Os parâmetros contêm uma rotina de retorno de chamada que o instalador de classe chama para indicar o progresso da operação de detecção.
Saída do instalador
DeviceInfoSet
Um instalador adiciona um elemento de informações do dispositivo ao DeviceInfoSet para cada dispositivo detectado, independentemente de um dispositivo ter sido detectado e instalado anteriormente.
Parâmetros de instalação do dispositivo
Um instalador pode modificar os parâmetros de instalação do dispositivo para o DeviceInfoSet ou para novos elementos de informações do dispositivo que ele cria.
Valor retornado do instalador
Se um co-instalador não detectar dispositivos, ele retornará NO_ERROR de sua passagem de pré-processamento. Se um co-instalador detectar dispositivos, ele poderá fazê-lo durante o pré-processamento ou pós-processamento e retornar NO_ERROR ou um código de erro Win32.
Se um instalador de classe detectar dispositivos, ele retornará NO_ERROR ou um código de erro Win32 apropriado. Se um instalador de classe não manipular essa solicitação DIF, ele retornará ERROR_DI_DO_DEFAULT.
Manipulador de código DIF padrão
Nenhum
Operação do instalador
Em resposta a uma solicitação de DIF_DETECT, um instalador pode detectar dispositivos de sua classe de instalação.
Se um instalador detectar dispositivos, ele deverá fazer pelo menos o seguinte:
Chame a rotina de retorno de chamada DetectProgressNotify nos parâmetros de instalação da classe SP_DETECTDEVICE_PARAMS , se a detecção potencialmente levar um tempo perceptível.
Para cada dispositivo que o instalador detecta, ele deve:
Criar um elemento de informações do dispositivo (SetupDiCreateDeviceInfo).
Forneça informações para seleção de driver.
O instalador pode selecionar manualmente o driver para o dispositivo ou o instalador pode definir a ID de hardware do dispositivo que o Windows usará para localizar um INF para o dispositivo. Um instalador define a ID de hardware chamando SetupDiSetDeviceRegistryProperty com um valor property de SPDRP_HARDWAREID.
Possivelmente, defina alguns parâmetros de instalação do dispositivo.
Retorne NO_ERROR para detecção bem-sucedida ou retorne um código de erro Win32.
Se um ou mais instaladores detectarem dispositivos em resposta a esse código DIF, o Windows comparará a lista de dispositivos detectados com sua lista atual de dispositivos. Se os instaladores detectarem um novo dispositivo, o Windows tentará instalar o dispositivo. Se os instaladores omitirem um dispositivo que aparece na lista da Instalação, o Windows normalmente removerá o dispositivo.
Para detectar dispositivos não PnP durante a instalação do modo GUI, um instalador deve lidar com a solicitação de DIF_FIRSTTIMESETUP . A configuração do modo GUI não envia uma solicitação de DIF_DETECT para o instalador.
Para obter mais informações sobre códigos DIF, consulte Manipulando códigos DIF.
Requisitos
Versão |
Com suporte no Microsoft Windows 2000 e versões posteriores do Windows. |
parâmetro |
Setupapi.h (inclua Setupapi.h) |