DIF_DETECT

DIF_DETECT请求指示安装程序检测特定类的非 PnP 设备,并将设备添加到设备信息集。 此请求用于非 PnP 设备。

发送时间

“添加硬件向导” 正在检测非 PnP 设备时。

谁处理

类辅助安装程序

可以处理

设备辅助安装程序

不处理

类安装程序

可以处理

安装程序输入

DeviceInfoSet
提供 设备信息集的句柄。 有一个与 DeviceInfoSet 关联的设备安装类

DeviceInfoData

设备安装参数
有与 DeviceInfoSet 关联的设备安装参数。

类安装参数
SP_DETECTDEVICE_PARAMS结构与 DeviceInfoSet 相关联。 参数包含一个回调例程,类安装程序调用该例程来指示检测操作的进度。

安装程序输出

DeviceInfoSet
安装程序将设备信息元素添加到它检测到的每个设备的 DeviceInfoSet 中,而不考虑以前是否检测到并安装了设备。

设备安装参数
安装程序可以修改 DeviceInfoSet 或其创建的新设备信息元素的设备安装参数。

安装程序返回值

如果辅助安装程序未检测到设备,它将从其预处理阶段返回NO_ERROR。 如果辅助安装程序检测到设备,它可以在预处理或后处理期间执行此操作,并返回NO_ERROR或 Win32 错误代码。

如果类安装程序检测到设备,它将返回NO_ERROR或相应的 Win32 错误代码。 如果类安装程序不处理此 DIF 请求,它将返回ERROR_DI_DO_DEFAULT。

默认 DIF 代码处理程序

安装程序操作

在响应DIF_DETECT请求时,安装程序可以检测其安装类的设备。

如果安装程序检测到设备,它至少应执行以下操作:

  • 如果检测可能需要花费大量时间,请在SP_DETECTDEVICE_PARAMS类安装参数中调用 DetectProgressNotify 回调例程。

  • 对于安装程序检测到的每个设备,它应:

    • (SetupDiCreateDeviceInfo) 创建设备信息元素。

    • 提供有关驱动程序选择的信息。

      安装程序可以手动选择设备的驱动程序,或者安装程序可以设置设备的硬件 ID,Windows 将使用该 ID 来查找设备的 INF。 安装程序通过调用 SetupDiSetDeviceRegistryProperty 设置硬件 ID, 属性值 为 SPDRP_HARDWAREID。

    • 可能设置一些设备安装参数。

  • 返回成功检测NO_ERROR或返回 Win32 错误代码。

如果一个或多个安装程序检测到设备 () 响应此 DIF 代码,Windows 会将检测到的设备列表与其当前设备列表进行比较。 如果安装程序检测到新设备,Windows 将尝试安装该设备。 如果安装程序省略了安装程序列表中出现的设备,Windows 通常会删除该设备。

若要在 GUI 模式设置期间检测非 PnP 设备,安装程序必须处理 DIF_FIRSTTIMESETUP 请求。 GUI 模式安装程序不会向安装程序发送DIF_DETECT请求。

有关 DIF 代码的详细信息,请参阅 处理 DIF 代码

要求

版本

在 Microsoft Windows 2000 及更高版本的 Windows 中受支持。

标头

Setupapi.h (包括 Setupapi.h)

另请参阅

DIF_DETECT

DIF_FIRSTTIMESETUP

SetupDiCreateDeviceInfo

SP_DETECTDEVICE_PARAMS

SP_DEVINSTALL_PARAMS