DIF_DETECT
DIF_DETECT请求指示安装程序检测特定类的非 PnP 设备,并将设备添加到设备信息集。 此请求用于非 PnP 设备。
发送时间
当 “添加硬件向导” 正在检测非 PnP 设备时。
谁处理
类辅助安装程序 |
可以处理 |
设备辅助安装程序 |
不处理 |
类安装程序 |
可以处理 |
安装程序输入
DeviceInfoSet
提供 设备信息集的句柄。 有一个与 DeviceInfoSet 关联的设备安装类。
设备安装参数
有与 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) |