有时需要访问设备的父级。 例如,某些类型的硬件设备的操作取决于特定父设备和子设备集之间的固定关系。 若要卸载此类硬件设备,除了所有子设备外,还必须卸载父设备。 若要卸载父级,必须获取父级 SP_DEVINFO_DATA 结构。 通用串行总线 (USB) 复合设备(例如多功能打印机)是此类设备。 它由父复合设备和一个或多个子接口设备表示, (请参阅 USB 驱动程序堆栈体系结构 ) 。 若要卸载多功能打印机,除了卸载其所有子接口设备外,还必须卸载其父复合设备。

当 即插即用 (PnP) 管理器在系统中配置设备时,它将设备节点 ( 开发节点 ) 添加到 设备树 。 当 PnP 管理器从系统中删除设备时,它会从设备树中删除设备的开发节点,设备将成为 非现有设备

若要确定设备的父级 的设备实例 ID ,可以使用 SetupDiGetDeviceProperty 查询设备上的 DEVPKEY_Device_Parent 属性。 对于 当前 设备,这将提供该设备父级的设备实例 ID。 对于 非现有 设备:

  • 在Windows 8及更高版本:
    • 如果来自上次 当前 设备的父设备仍作为系统 ( 存在 不存在 的设备) 存在, DEVPKEY_Device_Parent 将提供该父设备的设备实例 ID。
    • 如果来自上次 非当前 设备的父设备尚不存在作为系统上的设备, DEVPKEY_Device_Parent 将返回位于设备树根处的设备的设备实例 ID。
    • 在Windows 8之前:
  •