36 #define PDCAP_D0_SUPPORTED 0x00000001 37 #define PDCAP_D1_SUPPORTED 0x00000002 38 #define PDCAP_D2_SUPPORTED 0x00000004 39 #define PDCAP_D3_SUPPORTED 0x00000008 40 #define PDCAP_WAKE_FROM_D0_SUPPORTED 0x00000010 41 #define PDCAP_WAKE_FROM_D1_SUPPORTED 0x00000020 42 #define PDCAP_WAKE_FROM_D2_SUPPORTED 0x00000040 43 #define PDCAP_WAKE_FROM_D3_SUPPORTED 0x00000080 44 #define PDCAP_WARM_EJECT_SUPPORTED 0x00000100 69 li.iItem = EnumDriverFilesContext->
nCount++;
115 EnumDriverFilesContext.
nCount = 0;
156 &EnumDriverFilesContext,
163 lvc.cx = rcClient.
right;
195 WCHAR szLangInfo[255];
202 WCHAR szNotAvailable[255];
223 L"\\VarFileInfo\\Translation",
229 swprintf(szLangInfo,
L"\\StringFileInfo\\%04x%04x\\",
233 wcscpy(szLangPath, szLangInfo);
234 wcscat(szLangPath,
L"CompanyName");
238 (
void **)&lpCompanyName,
242 wcscpy(szLangPath, szLangInfo);
243 wcscat(szLangPath,
L"FileVersion");
247 (
void **)&lpFileVersion,
251 wcscpy(szLangPath, szLangInfo);
252 wcscat(szLangPath,
L"LegalCopyright");
256 (
void **)&lpLegalCopyright,
265 sizeof(szNotAvailable) /
sizeof(
WCHAR)))
267 wcscpy(szNotAvailable,
L"n/a");
272 lpCompanyName = szNotAvailable;
278 lpFileVersion = szNotAvailable;
283 if (!lpLegalCopyright)
284 lpLegalCopyright = szNotAvailable;
289 if (!lpDigitalSigner)
290 lpDigitalSigner = szNotAvailable;
344 HWND hDriversListView;
383 switch (pnmhdr->
code)
515 &dap->DeviceInfoData,
521 &dap->DeviceInfoData);
524 &dap->DeviceInfoData,
563 ERR(
"OpenProcessToken failed\n");
570 ERR(
"LookupPrivilegeValue failed\n");
581 ERR(
"AdjustTokenPrivileges failed\n");
587 if (!
ExitWindowsEx(
EWX_REBOOT, SHTDN_REASON_MAJOR_OTHER | SHTDN_REASON_MINOR_OTHER | SHTDN_REASON_FLAG_PLANNED))
589 ERR(
"ExitWindowsEx failed\n");
632 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
643 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
654 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
664 dap->DeviceInfoData.DevInst,
827 for (
i = 0;
i !=
sizeof(Properties) /
sizeof(Properties[0]);
i++)
833 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
849 lvc.cx = rcClient.
right;
955 swprintf(dap->szTemp,
L"%08lx", dwValue);
981 swprintf(dap->szTemp,
L"%08lx", dwValue);
1006 swprintf(dap->szTemp,
L"0x%08lx", dwValue);
1032 DWORD dwProblem = 0;
1037 dap->DeviceInfoData.DevInst,
1120 WCHAR szBuffer[256];
1158 swprintf(dap->szTemp,
L"%08lx", dwValue);
1178 WCHAR szBuffer[256];
1204 L"MatchingDeviceId",
1224 WCHAR szClassGuid[45];
1256 L"SYSTEM\\CurrentControlSet\\Control\\CoDeviceInstallers",
1391 WCHAR szClassGuid[45];
1498 ulLength *
sizeof(
WCHAR));
1499 if (pszBuffer ==
NULL)
1515 while (*pszStr != 0)
1561 switch (PowerData.PD_MostRecentPowerState)
1662 WCHAR szSystemStateBuffer[40];
1663 WCHAR szDeviceStateBuffer[40];
1664 WCHAR szOutBuffer[100];
1692 swprintf(szSystemStateBuffer,
L"S%u",
i - 1);
1697 wcscpy(szDeviceStateBuffer,
L"Not specified");
1701 wcscpy(szDeviceStateBuffer,
L"D0");
1705 wcscpy(szDeviceStateBuffer,
L"D1");
1709 wcscpy(szDeviceStateBuffer,
L"D2");
1713 wcscpy(szDeviceStateBuffer,
L"D3");
1720 swprintf(szOutBuffer,
L"%s -> %s", szSystemStateBuffer, szDeviceStateBuffer);
1961 i !=
sizeof(Actions) /
sizeof(Actions[0]);
1968 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
1984 if (dap->DeviceStarted)
1994 if (!dap->DeviceStarted)
2044 if (dap->DeviceUsageChanged && dap->IsAdmin && dap->CanDisable)
2046 UINT SelectedUsageAction;
2051 switch (SelectedUsageAction)
2054 if (!dap->DeviceStarted)
2057 &dap->DeviceInfoData,
2065 if (dap->DeviceStarted)
2068 &dap->DeviceInfoData,
2090 FIXME(
"Failed to enable/disable device! LastError: %d\n",
2095 Ret = !dap->DeviceUsageChanged;
2100 dap->DeviceUsageChanged =
FALSE;
2110 HWND hDevUsage, hPropSheetDlg, hDevProbBtn;
2115 BOOL bFlag, bDevActionAvailable =
TRUE;
2121 DWORD nDriverPages = 0;
2126 if (dap->PageInitialized)
2133 if (dap->DevPropSheets !=
NULL)
2136 iPage != dap->nDevPropSheets;
2139 if (dap->DevPropSheets[iPage] !=
NULL)
2143 dap->DevPropSheets[iPage]);
2152 if (dap->FreeDevPropSheets)
2158 dap->DevPropSheets);
2160 dap->FreeDevPropSheets =
FALSE;
2163 dap->DevPropSheets =
NULL;
2164 dap->nDevPropSheets = 0;
2174 dap->ParentDevInst = 0;
2185 &dap->CurrentDeviceInfoData))
2187 if (dap->CloseDevInst)
2192 dap->CloseDevInst =
TRUE;
2193 dap->DeviceInfoSet = dap->CurrentDeviceInfoSet;
2194 dap->DeviceInfoData = dap->CurrentDeviceInfoData;
2205 dap->DeviceInfoData.DevInst,
2227 dap->HasDriverPage =
TRUE;
2228 dap->HasResourcePage =
TRUE;
2229 dap->HasPowerPage =
TRUE;
2248 InstallParams.
Flags = 0;
2259 if (dap->hDevIcon !=
NULL)
2262 dap->hDevIcon =
NULL;
2268 dap->hDevIcon =
NULL;
2275 sizeof(dap->szDevName) /
sizeof(dap->szDevName[0])))
2297 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
2308 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
2320 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
2331 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
2348 switch (ProblemNumber)
2408 bDevActionAvailable =
FALSE;
2456 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])) != 0)
2462 dap->IsAdmin && bDevActionAvailable);
2468 dap->CanDisable =
FALSE;
2469 dap->DeviceStarted =
FALSE;
2475 dap->CanDisable = bFlag;
2482 dap->DeviceStarted = bFlag;
2488 dap->CanDisable && dap->IsAdmin);
2490 dap->CanDisable && dap->IsAdmin);
2497 if (dap->CanDisable)
2517 dap->PropertySheetType) &&
2520 dap->nDevPropSheets += nDriverPages;
2530 if (dap->HasDriverPage)
2531 dap->nDevPropSheets++;
2535 dap->nDevPropSheets++;
2537 if (dap->HasResourcePage && dap->pResourceList !=
NULL)
2538 dap->nDevPropSheets++;
2541 if (dap->nDevPropSheets != 0)
2546 if (dap->DevPropSheets !=
NULL)
2548 if (nDriverPages != 0)
2550 psh.phpage = dap->DevPropSheets;
2556 dap->nDevPropSheets,
2558 dap->PropertySheetType))
2562 iPage < nDriverPages;
2566 dap->DevPropSheets[iPage]))
2572 dap->FreeDevPropSheets =
TRUE;
2577 iPage = nDriverPages;
2578 dap->nDevPropSheets -= nDriverPages;
2586 if (dap->HasDriverPage)
2594 pspDriver.lParam = (
LPARAM)dap;
2595 dap->DevPropSheets[iPage] = dap->pCreatePropertySheetPageW(&pspDriver);
2596 if (dap->DevPropSheets[iPage] !=
NULL)
2599 dap->DevPropSheets[iPage]))
2606 dap->pDestroyPropertySheetPage(dap->DevPropSheets[iPage]);
2607 dap->DevPropSheets[iPage] =
NULL;
2621 pspDetails.lParam = (
LPARAM)dap;
2622 dap->DevPropSheets[iPage] = dap->pCreatePropertySheetPageW(&pspDetails);
2623 if (dap->DevPropSheets[iPage] !=
NULL)
2626 dap->DevPropSheets[iPage]))
2633 dap->pDestroyPropertySheetPage(dap->DevPropSheets[iPage]);
2634 dap->DevPropSheets[iPage] =
NULL;
2639 if (dap->HasResourcePage && dap->pResourceList)
2647 pspDriver.lParam = (
LPARAM)dap;
2648 dap->DevPropSheets[iPage] = dap->pCreatePropertySheetPageW(&pspDriver);
2649 if (dap->DevPropSheets[iPage] !=
NULL)
2652 dap->DevPropSheets[iPage]))
2659 dap->pDestroyPropertySheetPage(dap->DevPropSheets[iPage]);
2660 dap->DevPropSheets[iPage] =
NULL;
2667 dap->nDevPropSheets = 0;
2678 dap->DeviceUsageChanged =
FALSE;
2692 L"DevMgrDevChangeSub");
2807 if (dap->ParentOldWndProc !=
NULL &&
2809 L"DevMgrDevChangeSub",
2856 L"DevMgrDevChangeSub");
2884 DWORD DevIdSize = 0;
2894 "CreatePropertySheetPageW");
2895 pDestroyPropertySheetPage =
2897 "DestroyPropertySheetPage");
2900 pDestroyPropertySheetPage ==
NULL)
2905 if (lpDeviceID ==
NULL)
2914 ERR(
"SetupDiGetDeviceInstanceId unexpectedly returned TRUE!\n");
2928 if (lpMachineName !=
NULL && lpMachineName[0] !=
L'\0')
2944 (DevIdSize *
sizeof(
WCHAR)));
2945 if (DevAdvPropInfo ==
NULL)
2951 if (lpDeviceID ==
NULL)
2976 DevAdvPropInfo->
hMachine = hMachine;
2990 psh.pszCaption = DevAdvPropInfo->
szDevName;
2993 DIGCDP_FLAG_REMOTE_ADVANCED :
2999 if (psh.phpage ==
NULL)
3010 pspGeneral.lParam = (
LPARAM)DevAdvPropInfo;
3012 if (psh.phpage[psh.nPages] !=
NULL)
3019 if (psh.nPages != 0)
3031 if (psh.phpage !=
NULL)
3037 if (psh.phpage[
i] !=
NULL)
3039 pDestroyPropertySheetPage(psh.phpage[
i]);
3063 sizeof(PropChangeParams));
3076 if (DevAdvPropInfo !=
NULL)
3111 if (psh.phpage !=
NULL)
3118 if (hMachine !=
NULL)
#define SetupDiSetSelectedDriver
static VOID UpdateDriverDetailsDlg(IN HWND hwndDlg, IN HWND hDriversListView, IN PDEVADVPROP_INFO dap)
static VOID UpdateDriverDlg(IN HWND hwndDlg, IN PDEVADVPROP_INFO dap)
#define GetFileVersionInfo
#define IDS_PROP_HARDWAREIDS
static VOID UninstallDriver(_In_ HWND hwndDlg, _In_ PDEVADVPROP_INFO dap)
BOOL WINAPI NeedReboot(DWORD dwRebootCheck)
#define ListView_SetColumn(hwnd, iCol, pcol)
#define CM_DEVCAP_LOCKSUPPORTED
CONFIGRET WINAPI CM_Get_DevNode_Status_Ex(_Out_ PULONG pulStatus, _Out_ PULONG pulProblemNumber, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
#define DN_NOT_FIRST_TIMEE
#define IDS_TROUBLESHOOTDEV
#define IDC_DETAILSPROPVALUE
HDEVINFO CurrentDeviceInfoSet
#define PDCAP_WARM_EJECT_SUPPORTED
#define IDS_PROP_FIRMWAREREVISION
#define CM_DEVCAP_REMOVABLE
BOOL WINAPI LookupPrivilegeValueW(LPCWSTR lpSystemName, LPCWSTR lpPrivilegeName, PLUID lpLuid)
CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExW(_In_ DEVINST dnDevInst, _In_ ULONG ulProperty, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
#define CM_PROB_REENUMERATION
INT_PTR CALLBACK ResourcesProcDriverDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
struct _DEVADVPROP_INFO * PDEVADVPROP_INFO
#define CM_DEVCAP_EJECTSUPPORTED
#define SPDRP_DEVICE_POWER_DATA
BOOL WINAPI SetupDiSetDeviceInstallParamsW(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, IN PSP_DEVINSTALL_PARAMS_W DeviceInstallParams)
#define PDCAP_D1_SUPPORTED
#define IDD_DEVICERESOURCES
#define IDS_PROP_COMPATIBLEIDS
BOOL WINAPI DestroyIcon(_In_ HICON)
#define DN_ROOT_ENUMERATED
#define CM_Get_HW_Prof_Flags_Ex
#define DN_DRIVER_BLOCKED
#define CM_PROB_NOT_VERIFIED
#define CM_PROB_LACKED_ARBITRATOR
CONFIGRET WINAPI CM_Disconnect_Machine(_In_opt_ HMACHINE hMachine)
#define DIF_ADDREMOTEPROPERTYPAGE_ADVANCED
BOOL IsDriverInstalled(IN DEVINST DevInst, IN HMACHINE hMachine, OUT BOOL *Installed)
#define GetFileVersionInfoSize
#define SetupDiGetDeviceInstallParams
#define ListView_GetItemText(hwndLV, i, iSubItem_, pszText_, cchTextMax_)
#define CM_PROB_OUT_OF_MEMORY
BOOL GetDriverVersionString(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, OUT LPWSTR szBuffer, IN DWORD BufferSize)
BOOL(WINAPI * PDESTROYPROPERTYSHEETPAGE)(HPROPSHEETPAGE)
HSPFILEQ WINAPI SetupOpenFileQueue(VOID)
BOOL FindCurrentDriver(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, OUT PSP_DRVINFO_DATA DriverInfoData)
#define CM_DEVCAP_SILENTINSTALL
PDESTROYPROPERTYSHEETPAGE pDestroyPropertySheetPage
static FN_PropertySheetW pPropertySheetW
#define ERROR_NOT_ENOUGH_MEMORY
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
BOOL GetDeviceDescriptionString(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, OUT LPWSTR szBuffer, IN DWORD BufferSize)
BOOL GetDeviceTypeString(IN PSP_DEVINFO_DATA DeviceInfoData, OUT LPWSTR szBuffer, IN DWORD BufferSize)
#define CM_PROB_FAILED_START
INT_PTR(WINAPI * PPROPERTYSHEETW)(LPCPROPSHEETHEADERW)
HWND WINAPI SetFocus(_In_opt_ HWND)
#define IDS_PROP_CLASSLOWERFILTERS
#define SetupDiGetDeviceRegistryProperty
static INT_PTR CALLBACK AdvProcDriverDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
#define CSCONFIGFLAG_DISABLED
#define IDS_PROP_CONFIGFLAGS
#define IDC_DIGITALSIGNER
BOOL WINAPI SetupDiCallClassInstaller(DI_FUNCTION InstallFunction, HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData)
#define SendDlgItemMessage
#define ListView_InsertItem(hwnd, pitem)
#define DIF_PROPERTYCHANGE
BOOL CanDisableDevice(IN DEVINST DevInst, IN HMACHINE hMachine, OUT BOOL *CanDisable)
#define PropSheet_RemovePage(d, i, p)
#define DI_DRIVERPAGE_ADDED
#define CM_GETIDLIST_FILTER_BUSRELATIONS
#define CM_PROB_WILL_BE_REMOVED
#define PropSheet_RecalcPageSizes(d)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
#define SPDRP_LOWERFILTERS
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
#define PropSheet_AddPage(d, p)
SP_DEVINFO_DATA DeviceInfoData
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
#define CM_GETIDLIST_FILTER_EJECTRELATIONS
#define DIGCDP_FLAG_ADVANCED
struct tagNMHDR * LPNMHDR
HPROPSHEETPAGE(WINAPI * PCREATEPROPERTYSHEETPAGEW)(LPCPROPSHEETPAGEW)
static VOID DisplayPowerCapabilities(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
static VOID DisplayCurrentPowerState(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
static VOID UpdateDetailsDlg(IN HWND hwndDlg, IN PDEVADVPROP_INFO dap)
#define DN_SILENT_INSTALL
#define IDS_PROP_DEVLOWERFILTERS
#define SPQ_SCAN_USE_CALLBACK
static INT_PTR CALLBACK DriverDetailsDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
#define DI_FLAGSEX_POWERPAGE_ADDED
#define SE_PRIVILEGE_ENABLED
static VOID DisplayPowerStateMappings(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
#define CM_PROB_PARTIAL_LOG_CONF
#define ListView_InsertColumn(hwnd, iCol, pcol)
#define IDS_PROP_DEVICEID
#define ListView_GetSelectedCount(hwndLV)
static VOID DisplayDeviceProperties(IN PDEVADVPROP_INFO dap, IN HWND hwndComboBox, IN HWND hwndListView)
#define ListView_SetItemState(hwndLV, i, data, mask)
#define IDD_DEVICEGENERAL
#define DI_REMOVEDEVICE_GLOBAL
#define PDCAP_D2_SUPPORTED
#define IDS_PROP_POWERSTATEMAPPINGS
struct _PSP * HPROPSHEETPAGE
#define CM_PROB_INVALID_DATA
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
BOOL WINAPI SetupDiGetDeviceInstallParamsW(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, OUT PSP_DEVINSTALL_PARAMS_W DeviceInstallParams)
#define IDC_DETAILSPROPNAME
#define CM_DEVCAP_NONDYNAMIC
#define IDS_DISABLEDEVICE
#define CM_DRP_ENUMERATOR_NAME
BOOL GetDeviceLocationString(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, IN DEVINST dnParentDevInst OPTIONAL, OUT LPWSTR szBuffer, IN DWORD BufferSize)
#define CONFIGFLAG_NOREMOVEEXIT
#define CM_PROB_NORMAL_CONFLICT
#define DIF_ADDPROPERTYPAGE_ADVANCED
#define IDC_UNINSTALLDRIVER
#define ListView_GetItemCount(hwnd)
SP_DEVINFO_DATA CurrentDeviceInfoData
#define PDCAP_D3_SUPPORTED
static LRESULT CALLBACK DlgParentSubWndProc(IN HWND hwnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
#define SetupDiCreateDeviceInfoListEx
static BOOL ApplyGeneralSettings(IN HWND hwndDlg, IN PDEVADVPROP_INFO dap)
#define ERROR_FILE_NOT_FOUND
BOOL IsDeviceStarted(IN DEVINST DevInst, IN HMACHINE hMachine, OUT BOOL *IsStarted)
#define CONFIGFLAG_REMOVED
struct _SP_DEVINFO_DATA SP_DEVINFO_DATA
#define CM_GETIDLIST_FILTER_REMOVALRELATIONS
static HINSTANCE hDllInstance
#define CM_PROB_DEVLOADER_NOT_FOUND
#define IDS_PROP_DEVICECOINSTALLER
static VOID SetListViewText(HWND hwnd, INT iItem, LPCWSTR lpText)
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
struct _ENUMDRIVERFILES_CONTEXT * PENUMDRIVERFILES_CONTEXT
SP_CLASSINSTALL_HEADER ClassInstallHeader
#define IDD_DRIVERDETAILS
#define CM_PROB_HARDWARE_DISABLED
#define IDS_PROP_REMOVALRELATIONS
BOOL WINAPI SetupDiSetClassInstallParamsW(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, IN PSP_CLASSINSTALL_HEADER ClassInstallParams OPTIONAL, IN DWORD ClassInstallParamsSize)
#define CONFIGFLAG_DISABLED
#define DN_PRIVATE_PROBLEM
#define IDS_PROP_POWERCAPABILITIES
#define IDC_DRIVERDETAILS
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
static VOID UpdateDevInfo(IN HWND hwndDlg, IN PDEVADVPROP_INFO dap, IN BOOL ReOpen)
#define IDC_FILECOPYRIGHT
PVOID GetResourceList(LPWSTR pszDeviceID)
int WINAPI MessageBoxW(_In_opt_ HWND, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_ UINT)
#define IDS_PROP_DEVUPPERFILTERS
#define PropSheet_UnChanged(d, w)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define CONFIGFLAG_IGNORE_BOOT_LC
static FN_CreatePropertySheetPageW pCreatePropertySheetPageW
#define CONFIGFLAG_CANTSTOPACHILD
#define PropSheet_Changed(d, w)
_In_ WDFCOLLECTION _In_ ULONG Index
#define IDC_DEVUSAGELABEL
#define CM_PROB_DISABLED_SERVICE
BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO devinfo)
#define SetupDiSetDeviceInstallParams
#define CM_PROB_TRANSLATION_FAILED
static VOID DisplayDeviceCoinstallers(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
#define PropSheet_RebootSystem(d)
static UINT GetSelectedUsageAction(IN HWND hComboBox)
_In_opt_ PSP_DEVINFO_DATA DeviceInfoData
static VOID DisplayDevNodeEnumerator(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
SP_DEVINSTALL_PARAMS_A SP_DEVINSTALL_PARAMS
#define IDS_PROP_BUSRELATIONS
unsigned __int3264 UINT_PTR
BOOL WINAPI InstallDevInst(IN HWND hWndParent, IN LPCWSTR InstanceId, IN BOOL bUpdate, OUT LPDWORD lpReboot)
BOOL GetDeviceManufacturerString(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, OUT LPWSTR szBuffer, IN DWORD BufferSize)
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET * Privileges
SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA
#define DI_RESOURCEPAGE_ADDED
static INT_PTR CALLBACK UninstallDriverDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
#define CM_PROB_CANT_SHARE_IRQ
#define CM_PROB_REINSTALL
#define IDS_PROP_ENUMERATOR
#define PropSheet_SetCurSelByID(d, i)
#define IDD_DEVICEDETAILS
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define SetupDiGetDeviceInstanceId
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
static VOID DisplayDevNodeFlags(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
#define IDS_PROP_MATCHINGDEVICEID
#define CONFIGFLAG_MANUAL_INSTALL
#define GetCurrentProcess()
HKEY WINAPI SetupDiOpenDevRegKey(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DWORD Scope, DWORD HwProfile, DWORD KeyType, REGSAM samDesired)
#define IDS_PROP_EJECTIONRELATIONS
#define IDS_PROP_DEVNODEFLAGS
static const WCHAR Cleanup[]
int _cdecl swprintf(const WCHAR *,...)
#define CM_PROB_UNKNOWN_RESOURCE
_In_ PWDFDEVICE_INIT _In_ PFN_WDF_DEVICE_SHUTDOWN_NOTIFICATION Notification
BOOL WINAPI ExitWindowsEx(_In_ UINT, _In_ DWORD)
static VOID DisplayClassProperties(IN PDEVADVPROP_INFO dap, IN HWND hwndListView, IN LPCWSTR lpProperty)
HPROPSHEETPAGE * DevPropSheets
#define CM_PROB_NEED_RESTART
BOOL WINAPI AdjustTokenPrivileges(HANDLE TokenHandle, BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState, DWORD BufferLength, PTOKEN_PRIVILEGES PreviousState, PDWORD ReturnLength)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
#define PDCAP_WAKE_FROM_D1_SUPPORTED
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
#define CSCONFIGFLAG_DO_NOT_CREATE
static INT_PTR CALLBACK AdvPropGeneralDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define SPDRP_CONFIGFLAGS
#define SPDRP_UPPERFILTERS
HWND WINAPI GetParent(_In_ HWND)
BOOL GetDriverProviderString(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, OUT LPWSTR szBuffer, IN DWORD BufferSize)
BOOL ShowDeviceProblemWizard(IN HWND hWndParent OPTIONAL, IN HDEVINFO hDevInfo, IN PSP_DEVINFO_DATA DevInfoData, IN HMACHINE hMachine OPTIONAL)
static VOID DisplayDevicePropertyText(IN PDEVADVPROP_INFO dap, IN HWND hwndListView, IN DWORD dwProperty)
SYSTEM_POWER_STATE PD_DeepestSystemWake
#define SPDRP_COMPATIBLEIDS
#define DN_APM_ENUMERATOR
#define CM_PROB_TOO_EARLY
CONFIGRET WINAPI CM_Get_Device_ID_List_ExW(_In_ PCWSTR pszFilter, _Out_writes_(BufferLen) PWCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
#define SetupScanFileQueue
#define CM_PROB_DEVLOADER_NOT_READY
#define SetupDiGetClassDevPropertySheets
BOOL EnableDevice(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DevInfoData OPTIONAL, IN BOOL bEnable, IN DWORD HardwareProfile OPTIONAL, OUT BOOL *bNeedReboot OPTIONAL)
#define CM_DEVCAP_RAWDEVICEOK
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define IDC_DEVMANUFACTURER
PCREATEPROPERTYSHEETPAGEW pCreatePropertySheetPageW
struct CM_Power_Data_s CM_POWER_DATA
struct tagNMLISTVIEW * LPNMLISTVIEW
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
struct CM_Power_Data_s * PCM_POWER_DATA
static UINT WINAPI EnumDeviceDriverFilesCallback(IN PVOID Context, IN UINT Notification, IN UINT_PTR Param1, IN UINT_PTR Param2)
#define FIELD_OFFSET(t, f)
static INT_PTR CALLBACK AdvProcDetailsDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define CM_PROB_DEVICE_NOT_THERE
#define DPF_DEVICE_STATUS_ACTION
static VOID DisplayMatchingDeviceId(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
#define CONFIGFLAG_REINSTALL
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
#define CM_PROB_SYSTEM_SHUTDOWN
DEVICE_POWER_STATE PD_PowerStateMapping[PowerSystemMaximum]
#define IDS_PROP_CLASSCOINSTALLER
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
INT_PTR DisplayDeviceAdvancedProperties(IN HWND hWndParent, IN LPCWSTR lpDeviceID OPTIONAL, IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, IN HINSTANCE hComCtl32, IN LPCWSTR lpMachineName, IN DWORD dwFlags)
#define IDS_PROP_CSCONFIGFLAGS
#define CM_PROB_FAILED_INSTALL
struct _SP_DEVINSTALL_PARAMS_W SP_DEVINSTALL_PARAMS_W
#define CSCONFIGFLAG_DO_NOT_START
static VOID DisplayClassCoinstallers(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
#define DN_CHILD_WITH_INVALID_ID
static VOID DisplayDeviceRelations(IN PDEVADVPROP_INFO dap, IN HWND hwndListView, IN ULONG ulFlags)
struct _SP_CLASSINSTALL_HEADER SP_CLASSINSTALL_HEADER
BOOL GetDriverDateString(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, OUT LPWSTR szBuffer, IN DWORD BufferSize)
static VOID UpdateDriver(IN HWND hwndDlg, IN PDEVADVPROP_INFO dap)
#define IDC_ROLLBACKDRIVER
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
static VOID InitDevUsageActions(IN HWND hwndDlg, IN HWND hComboBox, IN PDEVADVPROP_INFO dap)
BOOL WINAPI IsWindowVisible(_In_ HWND)
#define CM_PROB_FAILED_FILTER
#define CM_PROB_BOOT_CONFIG_CONFLICT
CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExW(_Out_ PULONG pulLen, _In_opt_ PCWSTR pszFilter, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
#define PDCAP_WAKE_FROM_D0_SUPPORTED
#define IDS_PROP_CURRENTPOWERSTATE
#define GetProcAddress(x, y)
#define IDS_PROP_CLASSINSTALLER
#define CM_DEVCAP_SURPRISEREMOVALOK
DEVICE_POWER_STATE PD_MostRecentPowerState
BOOL GetDeviceStatusString(IN DEVINST DevInst, IN HMACHINE hMachine, OUT LPWSTR szBuffer, IN DWORD BufferSize)
#define CM_PROB_ENTRY_IS_WRONG_TYPE
#define CM_PROB_FAILED_ADD
CONFIGRET WINAPI CM_Get_Parent_Ex(_Out_ PDEVINST pdnDevInst, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
#define PropSheet_SetTitle(d, w, s)
#define CM_DEVCAP_DOCKDEVICE
#define PDCAP_WAKE_FROM_D2_SUPPORTED
BOOL WINAPI SetupDiLoadClassIcon(IN CONST GUID *ClassGuid, OUT HICON *LargeIcon OPTIONAL, OUT PINT MiniIconIndex OPTIONAL)
#define SetupDiOpenDeviceInfo
static VOID DisplayCsFlags(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
#define DN_REBAL_CANDIDATE
#define DIF_INSTALLDEVICEFILES
#define DN_WILL_BE_REMOVED
#define IDS_PROP_CLASSUPPERFILTERS
#define CM_PROB_DEVLOADER_FAILED
#define TOKEN_ADJUST_PRIVILEGES
SP_CLASSINSTALL_HEADER ClassInstallHeader
#define CONFIGFLAG_NET_BOOT
#define DI_FLAGSEX_PROPCHANGE_PENDING
#define CM_Connect_Machine
#define IDD_UNINSTALLDRIVER
BOOL WINAPI SetupCloseFileQueue(IN HSPFILEQ QueueHandle)
#define HeapFree(x, y, z)
HKEY WINAPI SetupDiOpenClassRegKey(const GUID *ClassGuid, REGSAM samDesired)
#define RegCloseKey(hKey)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
#define PDCAP_WAKE_FROM_D3_SUPPORTED
#define CM_DEVCAP_HARDWAREDISABLED
#define CONFIGFLAG_FAILEDINSTALL
#define SPDRP_CAPABILITIES
#define IDS_PROP_CAPABILITIES
#define CM_PROB_NO_VALID_LOG_CONF
#define PDCAP_D0_SUPPORTED
#define CM_DEVCAP_UNIQUEID
#define ListView_DeleteAllItems(hwnd)
#define HKEY_LOCAL_MACHINE
#define CONFIGFLAG_OKREMOVEROM
static VOID UpdateDriverVersionInfoDetails(IN HWND hwndDlg, IN LPCWSTR lpszDriverPath)
#define ERROR_INSUFFICIENT_BUFFER
PULONG MinorVersion OPTIONAL
DWORD WINAPI pSetupGuidFromString(PCWSTR pString, LPGUID lpGUID)