mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 13:45:50 +00:00
Fix usage of DI_NOVCP flag
svn path=/trunk/; revision=20336
This commit is contained in:
parent
5531d9e68d
commit
ad04c03732
2 changed files with 15 additions and 34 deletions
|
@ -7369,34 +7369,6 @@ InfIsFromOEMLocation(
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static UINT WINAPI
|
|
||||||
NullInstallMsgHandler(
|
|
||||||
IN PVOID Context,
|
|
||||||
UINT Notification,
|
|
||||||
UINT_PTR Param1,
|
|
||||||
UINT_PTR Param2)
|
|
||||||
{
|
|
||||||
switch (Notification)
|
|
||||||
{
|
|
||||||
case SPFILENOTIFY_STARTQUEUE: return TRUE;
|
|
||||||
case SPFILENOTIFY_ENDQUEUE: return 0;
|
|
||||||
case SPFILENOTIFY_STARTSUBQUEUE: return TRUE;
|
|
||||||
case SPFILENOTIFY_ENDSUBQUEUE: return 0;
|
|
||||||
case SPFILENOTIFY_STARTDELETE: return FILEOP_SKIP;
|
|
||||||
case SPFILENOTIFY_ENDDELETE: return 0;
|
|
||||||
case SPFILENOTIFY_STARTRENAME: return FILEOP_SKIP;
|
|
||||||
case SPFILENOTIFY_ENDRENAME: return 0;
|
|
||||||
case SPFILENOTIFY_STARTCOPY: return FILEOP_SKIP;
|
|
||||||
case SPFILENOTIFY_ENDCOPY: return 0;
|
|
||||||
case SPFILENOTIFY_NEEDMEDIA: return FILEOP_SKIP;
|
|
||||||
default:
|
|
||||||
FIXME("Notification %u params %p, %p\n", Notification, Param1, Param2 );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* SetupDiInstallDevice (SETUPAPI.@)
|
* SetupDiInstallDevice (SETUPAPI.@)
|
||||||
*/
|
*/
|
||||||
|
@ -7516,7 +7488,7 @@ SetupDiInstallDevice(
|
||||||
Result = SetupInstallFromInfSectionW(InstallParams.hwndParent,
|
Result = SetupInstallFromInfSectionW(InstallParams.hwndParent,
|
||||||
SelectedDriver->InfFileDetails->hInf, SectionName,
|
SelectedDriver->InfFileDetails->hInf, SectionName,
|
||||||
DoAction, hKey, NULL, SP_COPY_NEWER,
|
DoAction, hKey, NULL, SP_COPY_NEWER,
|
||||||
InstallParams.Flags & (DI_NOFILECOPY | DI_NOVCP) ? NullInstallMsgHandler : SetupDefaultQueueCallback, Context,
|
SetupDefaultQueueCallback, Context,
|
||||||
DeviceInfoSet, DeviceInfoData);
|
DeviceInfoSet, DeviceInfoData);
|
||||||
if (!Result)
|
if (!Result)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
|
@ -864,20 +864,29 @@ BOOL WINAPI SetupInstallFromInfSectionW( HWND owner, HINF hinf, PCWSTR section,
|
||||||
|
|
||||||
if (flags & SPINST_FILES)
|
if (flags & SPINST_FILES)
|
||||||
{
|
{
|
||||||
|
SP_DEVINSTALL_PARAMS_W install_params;
|
||||||
struct files_callback_info info;
|
struct files_callback_info info;
|
||||||
HSPFILEQ queue;
|
HSPFILEQ queue;
|
||||||
|
BOOL use_custom_queue;
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
|
|
||||||
if (!(queue = SetupOpenFileQueue())) return FALSE;
|
install_params.cbSize = sizeof(SP_DEVINSTALL_PARAMS);
|
||||||
info.queue = queue;
|
use_custom_queue = SetupDiGetDeviceInstallParamsW(devinfo, devinfo_data, &install_params) && (install_params.Flags & DI_NOVCP);
|
||||||
|
if (!use_custom_queue && ((queue = SetupOpenFileQueue()) == (HSPFILEQ)INVALID_HANDLE_VALUE ))
|
||||||
|
return FALSE;
|
||||||
|
info.queue = use_custom_queue ? install_params.FileQueue : queue;
|
||||||
info.src_root = src_root;
|
info.src_root = src_root;
|
||||||
info.copy_flags = copy_flags;
|
info.copy_flags = copy_flags;
|
||||||
info.layout = hinf;
|
info.layout = hinf;
|
||||||
ret = (iterate_section_fields( hinf, section, CopyFiles, copy_files_callback, &info ) &&
|
ret = (iterate_section_fields( hinf, section, CopyFiles, copy_files_callback, &info ) &&
|
||||||
iterate_section_fields( hinf, section, DelFiles, delete_files_callback, &info ) &&
|
iterate_section_fields( hinf, section, DelFiles, delete_files_callback, &info ) &&
|
||||||
iterate_section_fields( hinf, section, RenFiles, rename_files_callback, &info ) &&
|
iterate_section_fields( hinf, section, RenFiles, rename_files_callback, &info ));
|
||||||
SetupCommitFileQueueW( owner, queue, callback, context ));
|
if (!use_custom_queue)
|
||||||
SetupCloseFileQueue( queue );
|
{
|
||||||
|
if (ret)
|
||||||
|
ret = SetupCommitFileQueueW( owner, queue, callback, context );
|
||||||
|
SetupCloseFileQueue( queue );
|
||||||
|
}
|
||||||
if (!ret) return FALSE;
|
if (!ret) return FALSE;
|
||||||
}
|
}
|
||||||
if (flags & SPINST_INIFILES)
|
if (flags & SPINST_INIFILES)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue