pub unsafe fn DiInstallDevice<P0, P1>(
    hwndparent: P0,
    deviceinfoset: P1,
    deviceinfodata: *const SP_DEVINFO_DATA,
    driverinfodata: Option<*const SP_DRVINFO_DATA_V2_W>,
    flags: DIINSTALLDEVICE_FLAGS,
    needreboot: Option<*mut BOOL>,
) -> Result<()>
where P0: Param<HWND>, P1: Param<HDEVINFO>,