Handle more DIF codes in SetupDiCallClassInstaller. The list should now be complete Modified: trunk/reactos/lib/setupapi/devinst.c Modified: trunk/reactos/lib/setupapi/setupapi.spec Modified: trunk/reactos/lib/setupapi/stubs.c _____
Modified: trunk/reactos/lib/setupapi/devinst.c --- trunk/reactos/lib/setupapi/devinst.c 2005-12-27 11:39:43 UTC (rev 20369) +++ trunk/reactos/lib/setupapi/devinst.c 2005-12-27 15:19:45 UTC (rev 20370) @@ -3631,6 +3631,14 @@
return GetLastError(); }
+static BOOL WINAPI +IntSetupDiRegisterDeviceInfo( + IN HDEVINFO DeviceInfoSet, + IN OUT PSP_DEVINFO_DATA DeviceInfoData) +{ + return SetupDiRegisterDeviceInfo(DeviceInfoSet, DeviceInfoData, 0, NULL, NULL, NULL); +} +
/*********************************************************************** * SetupDiCallClassInstaller (SETUPAPI.@) */ @@ -3667,9 +3675,15 @@ case DIF_ADDPROPERTYPAGE_ADVANCED: CanHandle = CLASS_COINSTALLER | DEVICE_COINSTALLER | CLASS_INSTALLER; break; + case DIF_ADDREMOTEPROPERTYPAGE_ADVANCED: + CanHandle = CLASS_COINSTALLER | DEVICE_COINSTALLER | CLASS_INSTALLER; + break; case DIF_ALLOW_INSTALL: CanHandle = CLASS_COINSTALLER | CLASS_INSTALLER; break; + case DIF_DETECT: + CanHandle = CLASS_COINSTALLER | CLASS_INSTALLER; + break; case DIF_DESTROYPRIVATEDATA: CanHandle = CLASS_INSTALLER; break; @@ -3694,6 +3708,15 @@ case DIF_NEWDEVICEWIZARD_PREANALYZE: CanHandle = CLASS_COINSTALLER | CLASS_INSTALLER; break; + case DIF_NEWDEVICEWIZARD_PRESELECT: + CanHandle = CLASS_COINSTALLER | CLASS_INSTALLER; + break; + case DIF_NEWDEVICEWIZARD_SELECT: + CanHandle = CLASS_COINSTALLER | CLASS_INSTALLER; + break; + case DIF_POWERMESSAGEWAKE: + CanHandle = CLASS_COINSTALLER | DEVICE_COINSTALLER | CLASS_INSTALLER; + break; case DIF_PROPERTYCHANGE: CanHandle = CLASS_COINSTALLER | DEVICE_COINSTALLER | CLASS_INSTALLER; DefaultHandler = SetupDiChangeState; @@ -3702,10 +3725,29 @@ CanHandle = CLASS_COINSTALLER | CLASS_INSTALLER; DefaultHandler = SetupDiRegisterCoDeviceInstallers; break; + case DIF_REGISTERDEVICE: + CanHandle = CLASS_COINSTALLER | CLASS_INSTALLER; + DefaultHandler = IntSetupDiRegisterDeviceInfo; + break; + case DIF_REMOVE: + CanHandle = CLASS_COINSTALLER | DEVICE_COINSTALLER | CLASS_INSTALLER; + DefaultHandler = SetupDiRemoveDevice; + break; case DIF_SELECTBESTCOMPATDRV: CanHandle = CLASS_COINSTALLER | CLASS_INSTALLER; DefaultHandler = SetupDiSelectBestCompatDrv; break; + case DIF_SELECTDEVICE: + CanHandle = CLASS_COINSTALLER | CLASS_INSTALLER; + DefaultHandler = SetupDiSelectBestCompatDrv; + break; + case DIF_TROUBLESHOOTER: + CanHandle = CLASS_COINSTALLER | DEVICE_COINSTALLER | CLASS_INSTALLER; + break; + case DIF_UNREMOVE: + CanHandle = CLASS_COINSTALLER | DEVICE_COINSTALLER | CLASS_INSTALLER; + DefaultHandler = SetupDiUnremoveDevice; + break; default: ERR("Install function %u not supported\n", InstallFunction); SetLastError(ERROR_NOT_SUPPORTED); _____
Modified: trunk/reactos/lib/setupapi/setupapi.spec --- trunk/reactos/lib/setupapi/setupapi.spec 2005-12-27 11:39:43 UTC (rev 20369) +++ trunk/reactos/lib/setupapi/setupapi.spec 2005-12-27 15:19:45 UTC (rev 20370) @@ -368,8 +368,8 @@
@ stub SetupDiOpenDeviceInterfaceRegKey @ stdcall SetupDiOpenDeviceInterfaceW(ptr wstr long ptr) @ stdcall SetupDiRegisterCoDeviceInstallers(ptr ptr) -@ stub SetupDiRegisterDeviceInfo -@ stub SetupDiRemoveDevice +@ stdcall SetupDiRegisterDeviceInfo(ptr ptr long ptr ptr ptr) +@ stdcall SetupDiRemoveDevice(ptr ptr) @ stub SetupDiRemoveDeviceInterface @ stdcall SetupDiSelectBestCompatDrv(ptr ptr) @ stub SetupDiSelectDevice @@ -385,7 +385,7 @@ @ stdcall SetupDiSetSelectedDevice(ptr ptr) @ stdcall SetupDiSetSelectedDriverA(ptr ptr ptr) @ stdcall SetupDiSetSelectedDriverW(ptr ptr ptr) -@ stub SetupDiUnremoveDevice +@ stdcall SetupDiUnremoveDevice(ptr ptr) @ stub SetupDuplicateDiskSpaceListA @ stub SetupDuplicateDiskSpaceListW @ stdcall SetupFindFirstLineA(long str str ptr) _____
Modified: trunk/reactos/lib/setupapi/stubs.c --- trunk/reactos/lib/setupapi/stubs.c 2005-12-27 11:39:43 UTC (rev 20369) +++ trunk/reactos/lib/setupapi/stubs.c 2005-12-27 15:19:45 UTC (rev 20370) @@ -178,3 +178,49 @@
return TRUE; }
+ +/********************************************************************** * + * SetupDiRegisterDeviceInfo(SETUPAPI.@) + */ +BOOL WINAPI +SetupDiRegisterDeviceInfo( + IN HDEVINFO DeviceInfoSet, + IN PSP_DEVINFO_DATA DeviceInfoData, + IN DWORD Flags, + IN PSP_DETSIG_CMPPROC CompareProc OPTIONAL, + IN PVOID CompareContext OPTIONAL, + OUT PSP_DEVINFO_DATA DupDeviceInfoData OPTIONAL) +{ + FIXME ("Stub %p %p 0x%lx %p %p %p\n", DeviceInfoSet, DeviceInfoData, + Flags, CompareProc, CompareContext, DupDeviceInfoData); + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return FALSE; +} + + +/********************************************************************** * + * SetupDiRemoveDevice(SETUPAPI.@) + */ +BOOL WINAPI +SetupDiRemoveDevice( + IN HDEVINFO DeviceInfoSet, + IN PSP_DEVINFO_DATA DeviceInfoData) +{ + FIXME ("Stub %p %p\n", DeviceInfoSet, DeviceInfoData); + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return FALSE; +} + + +/********************************************************************** * + * SetupDiUnremoveDevice(SETUPAPI.@) + */ +BOOL WINAPI +SetupDiUnremoveDevice( + IN HDEVINFO DeviceInfoSet, + IN PSP_DEVINFO_DATA DeviceInfoData) +{ + FIXME ("Stub %p %p\n", DeviceInfoSet, DeviceInfoData); + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return FALSE; +}