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)
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)
static VOID DisplayDevNodeEnumerator(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
static LRESULT CALLBACK DlgParentSubWndProc(IN HWND hwnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
struct CM_Power_Data_s * PCM_POWER_DATA
static VOID DisplayDeviceCoinstallers(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
#define PDCAP_WARM_EJECT_SUPPORTED
static VOID UpdateDriver(IN HWND hwndDlg, IN PDEVADVPROP_INFO dap)
static VOID DisplayDevicePropertyText(IN PDEVADVPROP_INFO dap, IN HWND hwndListView, IN DWORD dwProperty)
static VOID InitDevUsageActions(IN HWND hwndDlg, IN HWND hComboBox, IN PDEVADVPROP_INFO dap)
#define PDCAP_D2_SUPPORTED
static VOID DisplayDeviceRelations(IN PDEVADVPROP_INFO dap, IN HWND hwndListView, IN ULONG ulFlags)
struct CM_Power_Data_s CM_POWER_DATA
static UINT WINAPI EnumDeviceDriverFilesCallback(IN PVOID Context, IN UINT Notification, IN UINT_PTR Param1, IN UINT_PTR Param2)
static INT_PTR CALLBACK AdvPropGeneralDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
static INT_PTR CALLBACK AdvProcDriverDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
static VOID UpdateDevInfo(IN HWND hwndDlg, IN PDEVADVPROP_INFO dap, IN BOOL ReOpen)
#define PDCAP_D0_SUPPORTED
static INT_PTR CALLBACK DriverDetailsDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
static BOOL ApplyGeneralSettings(IN HWND hwndDlg, IN PDEVADVPROP_INFO dap)
static VOID DisplayPowerStateMappings(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
static VOID DisplayClassProperties(IN PDEVADVPROP_INFO dap, IN HWND hwndListView, IN LPCWSTR lpProperty)
static VOID UpdateDriverDetailsDlg(IN HWND hwndDlg, IN HWND hDriversListView, IN PDEVADVPROP_INFO dap)
static VOID UpdateDriverDlg(IN HWND hwndDlg, IN PDEVADVPROP_INFO dap)
static VOID DisplayPowerCapabilities(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
static VOID DisplayMatchingDeviceId(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
static VOID SetListViewText(HWND hwnd, INT iItem, LPCWSTR lpText)
#define PDCAP_D1_SUPPORTED
static VOID UpdateDetailsDlg(IN HWND hwndDlg, IN PDEVADVPROP_INFO dap)
#define PDCAP_WAKE_FROM_D3_SUPPORTED
static UINT GetSelectedUsageAction(IN HWND hComboBox)
#define PDCAP_WAKE_FROM_D1_SUPPORTED
static VOID DisplayDevNodeFlags(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
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)
static VOID UninstallDriver(_In_ HWND hwndDlg, _In_ PDEVADVPROP_INFO dap)
#define PDCAP_WAKE_FROM_D0_SUPPORTED
static VOID DisplayClassCoinstallers(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
#define PDCAP_D3_SUPPORTED
static VOID DisplayCurrentPowerState(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
static VOID DisplayCsFlags(IN PDEVADVPROP_INFO dap, IN HWND hwndListView)
static VOID DisplayDeviceProperties(IN PDEVADVPROP_INFO dap, IN HWND hwndComboBox, IN HWND hwndListView)
static INT_PTR CALLBACK UninstallDriverDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
static VOID UpdateDriverVersionInfoDetails(IN HWND hwndDlg, IN LPCWSTR lpszDriverPath)
#define PDCAP_WAKE_FROM_D2_SUPPORTED
static INT_PTR CALLBACK AdvProcDetailsDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
#define RegCloseKey(hKey)
#define CM_PROB_REINSTALL
#define CM_PROB_BOOT_CONFIG_CONFLICT
#define CM_PROB_FAILED_ADD
#define DN_NOT_FIRST_TIMEE
#define CM_PROB_INVALID_DATA
#define CM_PROB_HARDWARE_DISABLED
#define DN_DRIVER_BLOCKED
#define CM_PROB_TRANSLATION_FAILED
#define CM_PROB_PARTIAL_LOG_CONF
#define CM_PROB_REENUMERATION
#define CM_PROB_NORMAL_CONFLICT
#define CM_PROB_NEED_RESTART
#define DN_CHILD_WITH_INVALID_ID
#define CM_PROB_UNKNOWN_RESOURCE
#define CM_PROB_DEVICE_NOT_THERE
#define CM_PROB_FAILED_FILTER
#define CM_PROB_WILL_BE_REMOVED
#define CM_PROB_DEVLOADER_FAILED
#define DN_SILENT_INSTALL
#define CM_PROB_FAILED_START
#define CM_PROB_FAILED_INSTALL
#define CM_PROB_OUT_OF_MEMORY
#define CM_PROB_NOT_VERIFIED
#define DN_WILL_BE_REMOVED
#define DN_ROOT_ENUMERATED
#define CM_PROB_SYSTEM_SHUTDOWN
#define CM_PROB_NO_VALID_LOG_CONF
#define CM_PROB_LACKED_ARBITRATOR
#define DN_REBAL_CANDIDATE
#define DN_PRIVATE_PROBLEM
#define DN_APM_ENUMERATOR
#define CM_PROB_DEVLOADER_NOT_READY
#define CM_PROB_DISABLED_SERVICE
#define CM_PROB_DEVLOADER_NOT_FOUND
#define CM_PROB_TOO_EARLY
#define CM_PROB_ENTRY_IS_WRONG_TYPE
#define CM_PROB_CANT_SHARE_IRQ
#define CM_DEVCAP_LOCKSUPPORTED
#define CM_DRP_ENUMERATOR_NAME
#define CM_DEVCAP_EJECTSUPPORTED
#define CM_DEVCAP_RAWDEVICEOK
#define CM_GETIDLIST_FILTER_REMOVALRELATIONS
#define CM_DEVCAP_HARDWAREDISABLED
#define CM_DEVCAP_UNIQUEID
#define CM_DEVCAP_NONDYNAMIC
#define CM_GETIDLIST_FILTER_EJECTRELATIONS
#define CM_DEVCAP_SURPRISEREMOVALOK
#define CM_DEVCAP_SILENTINSTALL
#define CM_GETIDLIST_FILTER_BUSRELATIONS
#define CM_Get_HW_Prof_Flags_Ex
#define CM_Connect_Machine
#define CM_DEVCAP_DOCKDEVICE
#define CM_DEVCAP_REMOVABLE
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)
CONFIGRET WINAPI CM_Disconnect_Machine(_In_opt_ HMACHINE hMachine)
CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExW(_Out_ PULONG pulLen, _In_opt_ PCWSTR pszFilter, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
CONFIGRET WINAPI CM_Get_DevNode_Status_Ex(_Out_ PULONG pulStatus, _Out_ PULONG pulProblemNumber, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
CONFIGRET WINAPI CM_Get_Parent_Ex(_Out_ PDEVINST pdnDevInst, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
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)
static HINSTANCE hDllInstance
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INSUFFICIENT_BUFFER
BOOL ShowDeviceProblemWizard(IN HWND hWndParent OPTIONAL, IN HDEVINFO hDevInfo, IN PSP_DEVINFO_DATA DevInfoData, IN HMACHINE hMachine OPTIONAL)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
BOOL WINAPI LookupPrivilegeValueW(LPCWSTR lpSystemName, LPCWSTR lpPrivilegeName, PLUID lpLuid)
BOOL WINAPI AdjustTokenPrivileges(HANDLE TokenHandle, BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState, DWORD BufferLength, PTOKEN_PRIVILEGES PreviousState, PDWORD ReturnLength)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
BOOL WINAPI NeedReboot(DWORD dwRebootCheck)
#define GetProcAddress(x, y)
#define INVALID_HANDLE_VALUE
#define GetCurrentProcess()
#define HeapFree(x, y, z)
DWORD WINAPI pSetupGuidFromString(PCWSTR pString, LPGUID lpGUID)
BOOL WINAPI InstallDevInst(IN HWND hWndParent, IN LPCWSTR InstanceId, IN BOOL bUpdate, OUT LPDWORD lpReboot)
BOOL IsDeviceStarted(IN DEVINST DevInst, IN HMACHINE hMachine, OUT BOOL *IsStarted)
BOOL FindCurrentDriver(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, OUT PSP_DRVINFO_DATA DriverInfoData)
BOOL GetDeviceLocationString(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, IN DEVINST dnParentDevInst OPTIONAL, OUT LPWSTR szBuffer, IN DWORD BufferSize)
BOOL GetDeviceManufacturerString(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, OUT LPWSTR szBuffer, IN DWORD BufferSize)
BOOL GetDriverVersionString(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, OUT LPWSTR szBuffer, IN DWORD BufferSize)
BOOL GetDriverDateString(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, OUT LPWSTR szBuffer, IN DWORD BufferSize)
BOOL CanDisableDevice(IN DEVINST DevInst, IN HMACHINE hMachine, OUT BOOL *CanDisable)
BOOL GetDriverProviderString(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)
BOOL GetDeviceStatusString(IN DEVINST DevInst, IN HMACHINE hMachine, OUT LPWSTR szBuffer, IN DWORD BufferSize)
BOOL GetDeviceDescriptionString(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, OUT LPWSTR szBuffer, IN DWORD BufferSize)
BOOL EnableDevice(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DevInfoData OPTIONAL, IN BOOL bEnable, IN DWORD HardwareProfile OPTIONAL, OUT BOOL *bNeedReboot OPTIONAL)
BOOL IsDriverInstalled(IN DEVINST DevInst, IN HMACHINE hMachine, OUT BOOL *Installed)
#define IDS_PROP_CAPABILITIES
#define IDC_DRIVERDETAILS
#define IDC_DEVMANUFACTURER
#define IDD_DEVICERESOURCES
#define IDS_PROP_REMOVALRELATIONS
#define IDS_PROP_FIRMWAREREVISION
#define IDS_PROP_DEVICEID
#define IDD_UNINSTALLDRIVER
#define IDS_PROP_CLASSCOINSTALLER
#define IDS_PROP_DEVLOWERFILTERS
#define IDS_DISABLEDEVICE
#define IDS_PROP_CLASSINSTALLER
#define IDC_UNINSTALLDRIVER
#define IDC_ROLLBACKDRIVER
#define IDS_PROP_DEVICECOINSTALLER
#define IDC_DETAILSPROPNAME
#define IDS_PROP_EJECTIONRELATIONS
#define IDS_PROP_POWERSTATEMAPPINGS
#define IDS_PROP_CLASSLOWERFILTERS
#define IDC_DIGITALSIGNER
#define IDS_PROP_COMPATIBLEIDS
#define IDS_PROP_CLASSUPPERFILTERS
#define IDS_PROP_CSCONFIGFLAGS
#define IDS_PROP_MATCHINGDEVICEID
#define IDD_DEVICEDETAILS
#define IDD_DRIVERDETAILS
#define IDS_PROP_BUSRELATIONS
#define IDC_DEVUSAGELABEL
#define IDD_DEVICEGENERAL
#define IDS_TROUBLESHOOTDEV
#define IDS_PROP_DEVUPPERFILTERS
#define IDS_PROP_DEVNODEFLAGS
#define IDS_PROP_ENUMERATOR
#define IDS_PROP_CONFIGFLAGS
#define IDC_DETAILSPROPVALUE
#define IDS_PROP_POWERCAPABILITIES
#define IDS_PROP_HARDWAREIDS
#define IDC_FILECOPYRIGHT
#define IDS_PROP_CURRENTPOWERSTATE
BOOL WINAPI SetupDiLoadClassIcon(IN CONST GUID *ClassGuid, OUT HICON *LargeIcon OPTIONAL, OUT PINT MiniIconIndex OPTIONAL)
BOOL WINAPI SetupDiSetClassInstallParamsW(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, IN PSP_CLASSINSTALL_HEADER ClassInstallParams OPTIONAL, IN DWORD ClassInstallParamsSize)
BOOL WINAPI SetupDiSetDeviceInstallParamsW(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, IN PSP_DEVINSTALL_PARAMS_W DeviceInstallParams)
BOOL WINAPI SetupDiGetDeviceInstallParamsW(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, OUT PSP_DEVINSTALL_PARAMS_W DeviceInstallParams)
BOOL WINAPI SetupDiCallClassInstaller(DI_FUNCTION InstallFunction, HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData)
HKEY WINAPI SetupDiOpenDevRegKey(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DWORD Scope, DWORD HwProfile, DWORD KeyType, REGSAM samDesired)
HKEY WINAPI SetupDiOpenClassRegKey(const GUID *ClassGuid, REGSAM samDesired)
BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO devinfo)
HSPFILEQ WINAPI SetupOpenFileQueue(void)
static const WCHAR Cleanup[]
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
INT_PTR CALLBACK ResourcesProcDriverDlgProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
PVOID GetResourceList(LPWSTR pszDeviceID)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define ERROR_FILE_NOT_FOUND
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static FN_PropertySheetW pPropertySheetW
static FN_CreatePropertySheetPageW pCreatePropertySheetPageW
struct _PSP * HPROPSHEETPAGE
unsigned __int3264 UINT_PTR
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
struct _DEVADVPROP_INFO * PDEVADVPROP_INFO
HPROPSHEETPAGE(WINAPI * PCREATEPROPERTYSHEETPAGEW)(LPCPROPSHEETPAGEW)
struct _ENUMDRIVERFILES_CONTEXT * PENUMDRIVERFILES_CONTEXT
INT_PTR(WINAPI * PPROPERTYSHEETW)(LPCPROPSHEETHEADERW)
BOOL(WINAPI * PDESTROYPROPERTYSHEETPAGE)(HPROPSHEETPAGE)
#define PropSheet_AddPage(d, p)
#define PropSheet_Changed(d, w)
#define PropSheet_UnChanged(d, w)
#define PropSheet_RemovePage(d, i, p)
#define PropSheet_SetTitle(d, w, s)
#define PropSheet_SetCurSelByID(d, i)
#define PropSheet_RecalcPageSizes(d)
#define PropSheet_RebootSystem(d)
#define ListView_InsertItem(hwnd, pitem)
#define ListView_SetItemState(hwndLV, i, data, mask)
#define ListView_InsertColumn(hwnd, iCol, pcol)
#define ListView_GetItemText(hwndLV, i, iSubItem_, pszText_, cchTextMax_)
#define ListView_GetItemCount(hwnd)
#define ListView_GetSelectedCount(hwndLV)
struct tagNMLISTVIEW * LPNMLISTVIEW
#define ListView_DeleteAllItems(hwnd)
#define ListView_SetColumn(hwnd, iCol, pcol)
#define CSCONFIGFLAG_DO_NOT_CREATE
#define CONFIGFLAG_REMOVED
#define CONFIGFLAG_NET_BOOT
#define CONFIGFLAG_NOREMOVEEXIT
#define CSCONFIGFLAG_DO_NOT_START
#define CONFIGFLAG_OKREMOVEROM
#define CSCONFIGFLAG_DISABLED
#define CONFIGFLAG_MANUAL_INSTALL
#define CONFIGFLAG_FAILEDINSTALL
#define CONFIGFLAG_REINSTALL
#define CONFIGFLAG_CANTSTOPACHILD
#define CONFIGFLAG_IGNORE_BOOT_LC
#define CONFIGFLAG_DISABLED
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_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 DPF_DEVICE_STATUS_ACTION
struct _SP_CLASSINSTALL_HEADER SP_CLASSINSTALL_HEADER
#define SPQ_SCAN_USE_CALLBACK
#define SPDRP_DEVICE_POWER_DATA
#define DI_REMOVEDEVICE_GLOBAL
#define DIF_INSTALLDEVICEFILES
#define SetupDiGetDeviceInstallParams
#define DIF_ADDREMOTEPROPERTYPAGE_ADVANCED
SP_DEVINSTALL_PARAMS_A SP_DEVINSTALL_PARAMS
#define SPDRP_CAPABILITIES
#define DI_RESOURCEPAGE_ADDED
#define SetupDiOpenDeviceInfo
#define SPDRP_COMPATIBLEIDS
#define SPDRP_UPPERFILTERS
#define SetupDiGetDeviceInstanceId
#define SetupDiGetDeviceRegistryProperty
SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA
#define DI_DRIVERPAGE_ADDED
struct _SP_DEVINSTALL_PARAMS_W SP_DEVINSTALL_PARAMS_W
#define SetupDiSetDeviceInstallParams
#define SetupDiCreateDeviceInfoListEx
_In_opt_ PSP_DEVINFO_DATA DeviceInfoData
#define SetupDiSetSelectedDriver
#define SetupDiGetClassDevPropertySheets
struct _SP_DEVINFO_DATA SP_DEVINFO_DATA
#define SPDRP_CONFIGFLAGS
#define DIF_PROPERTYCHANGE
#define DIF_ADDPROPERTYPAGE_ADVANCED
#define DIGCDP_FLAG_ADVANCED
#define SPDRP_LOWERFILTERS
#define DI_FLAGSEX_POWERPAGE_ADDED
#define SetupScanFileQueue
PULONG MinorVersion OPTIONAL
SYSTEM_POWER_STATE PD_DeepestSystemWake
DEVICE_POWER_STATE PD_PowerStateMapping[PowerSystemMaximum]
DEVICE_POWER_STATE PD_MostRecentPowerState
SP_DEVINFO_DATA CurrentDeviceInfoData
PCREATEPROPERTYSHEETPAGEW pCreatePropertySheetPageW
PDESTROYPROPERTYSHEETPAGE pDestroyPropertySheetPage
HPROPSHEETPAGE * DevPropSheets
SP_DEVINFO_DATA DeviceInfoData
HDEVINFO CurrentDeviceInfoSet
SP_CLASSINSTALL_HEADER ClassInstallHeader
SP_CLASSINSTALL_HEADER ClassInstallHeader
#define FIELD_OFFSET(t, f)
BOOL WINAPI SetupCloseFileQueue(IN HSPFILEQ QueueHandle)
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PWDFDEVICE_INIT _In_ PFN_WDF_DEVICE_SHUTDOWN_NOTIFICATION Notification
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
DWORD WINAPI GetLastError(void)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define HKEY_LOCAL_MACHINE
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
HWND WINAPI SetFocus(_In_opt_ HWND)
struct tagNMHDR * LPNMHDR
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HWND WINAPI GetParent(_In_ HWND)
BOOL WINAPI ExitWindowsEx(_In_ UINT, _In_ DWORD)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
#define SendDlgItemMessage
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
BOOL WINAPI DestroyIcon(_In_ HICON)
#define GetFileVersionInfo
#define GetFileVersionInfoSize
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET * Privileges
#define TOKEN_ADJUST_PRIVILEGES
#define SE_PRIVILEGE_ENABLED