667 TRACE(
"HeapAlloc() failed\n");
680 TRACE(
"SetupDiCreateDeviceInfoListExW() failed with error 0x%x\n",
GetLastError());
693 TRACE(
"SetupDiOpenDeviceInfoW() failed with error 0x%x (InstanceId %s)\n",
713 TRACE(
"HeapAlloc() failed\n");
729 TRACE(
"SetupDiGetDeviceRegistryProperty() failed with error 0x%x (InstanceId %s)\n",
739 (
BYTE *)&config_flags,
740 sizeof(config_flags),
746 TRACE(
"Device is disabled\n");
764 TRACE(
"InstallCurrentDriver() returned %d\n", retval);
777 TRACE(
"Displaying 'Reboot' wizard page\n");
787 TRACE(
"No wizard\n");
792 TRACE(
"Need to show install wizard\n");
801 TRACE(
"SetupDiDestroyDriverInfoList() failed with error 0x%lx\n",
GetLastError());
806 TRACE(
"SetupDiDestroyDeviceInfoList() failed with error 0x%lx\n",
GetLastError());
SP_DEVINFO_DATA devInfoData
#define SetupDiGetDeviceInstallParams
HDEVINFO WINAPI SetupDiCreateDeviceInfoListExW(const GUID *ClassGuid, HWND hwndParent, PCWSTR MachineName, PVOID Reserved)
BOOL WINAPI SetupDiGetDeviceRegistryPropertyW(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DWORD Property, PDWORD PropertyRegDataType, PBYTE PropertyBuffer, DWORD PropertyBufferSize, PDWORD RequiredSize)
#define ERROR_NOT_ENOUGH_MEMORY
#define INVALID_HANDLE_VALUE
VOID WINAPI ExitProcess(IN UINT uExitCode)
DWORD WINAPI GetLastError(VOID)
#define SetupDiGetDeviceRegistryProperty
#define ERROR_ACCESS_DENIED
static BOOL IsUserAdmin(VOID)
_Must_inspect_result_ _In_opt_ PVOID _In_opt_ PVOID InstanceId
#define SPDIT_COMPATDRIVER
struct _SP_DEVINFO_DATA SP_DEVINFO_DATA
BOOL DisplayWizard(IN PDEVINSTDATA DevInstData, IN HWND hwndParent, IN UINT startPage)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO devinfo)
SP_DEVINSTALL_PARAMS_A SP_DEVINSTALL_PARAMS
BOOL InstallCurrentDriver(IN PDEVINSTDATA DevInstData)
BOOL WINAPI SetupDiDestroyDriverInfoList(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, IN DWORD DriverType)
#define SPDRP_CONFIGFLAGS
BOOL WINAPI SetupDiOpenDeviceInfoW(IN HDEVINFO DeviceInfoSet, IN PCWSTR DeviceInstanceId, IN HWND hwndParent OPTIONAL, IN DWORD OpenFlags, OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL)
char * cleanup(char *str)
BOOL PrepareFoldersToScan(IN PDEVINSTDATA DevInstData, IN BOOL IncludeRemovableDevices, IN BOOL IncludeCustomPath, IN HWND hwndCombo OPTIONAL)
#define ERROR_GEN_FAILURE
BOOL ScanFoldersForDriver(IN PDEVINSTDATA DevInstData)
#define HeapFree(x, y, z)
#define CONFIGFLAG_FAILEDINSTALL
#define ERROR_INSUFFICIENT_BUFFER