DIF_DETECT

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

发送时间

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

Who句柄

类共同安装程序

可以处理

设备共同安装程序

不处理

类安装程序

可以处理

安装程序输入

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查找设备的 INF。 安装程序通过调用 SetupDiSetDeviceRegistryProperty,其属性值为 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