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);
1904 WCHAR szColName[255];
1915 if (nSelectedItems <= 0)
1944 if (nSelectedId < 0 || nSelectedItems <= 0)
2032 i !=
sizeof(Actions) /
sizeof(Actions[0]);
2039 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
2055 if (dap->DeviceStarted)
2065 if (!dap->DeviceStarted)
2115 if (dap->DeviceUsageChanged && dap->IsAdmin && dap->CanDisable)
2117 UINT SelectedUsageAction;
2122 switch (SelectedUsageAction)
2125 if (!dap->DeviceStarted)
2128 &dap->DeviceInfoData,
2136 if (dap->DeviceStarted)
2139 &dap->DeviceInfoData,
2161 FIXME(
"Failed to enable/disable device! LastError: %d\n",
2166 Ret = !dap->DeviceUsageChanged;
2171 dap->DeviceUsageChanged =
FALSE;
2181 HWND hDevUsage, hPropSheetDlg, hDevProbBtn;
2186 BOOL bFlag, bDevActionAvailable =
TRUE;
2192 DWORD nDriverPages = 0;
2197 if (dap->PageInitialized)
2204 if (dap->DevPropSheets !=
NULL)
2207 iPage != dap->nDevPropSheets;
2210 if (dap->DevPropSheets[iPage] !=
NULL)
2214 dap->DevPropSheets[iPage]);
2223 if (dap->FreeDevPropSheets)
2229 dap->DevPropSheets);
2231 dap->FreeDevPropSheets =
FALSE;
2234 dap->DevPropSheets =
NULL;
2235 dap->nDevPropSheets = 0;
2245 dap->ParentDevInst = 0;
2256 &dap->CurrentDeviceInfoData))
2258 if (dap->CloseDevInst)
2263 dap->CloseDevInst =
TRUE;
2264 dap->DeviceInfoSet = dap->CurrentDeviceInfoSet;
2265 dap->DeviceInfoData = dap->CurrentDeviceInfoData;
2276 dap->DeviceInfoData.DevInst,
2298 dap->HasDriverPage =
TRUE;
2299 dap->HasResourcePage =
TRUE;
2300 dap->HasPowerPage =
TRUE;
2319 InstallParams.
Flags = 0;
2330 if (dap->hDevIcon !=
NULL)
2333 dap->hDevIcon =
NULL;
2339 dap->hDevIcon =
NULL;
2346 sizeof(dap->szDevName) /
sizeof(dap->szDevName[0])))
2368 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
2379 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
2391 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
2402 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])))
2419 switch (ProblemNumber)
2479 bDevActionAvailable =
FALSE;
2527 sizeof(dap->szTemp) /
sizeof(dap->szTemp[0])) != 0)
2533 dap->IsAdmin && bDevActionAvailable);
2539 dap->CanDisable =
FALSE;
2540 dap->DeviceStarted =
FALSE;
2546 dap->CanDisable = bFlag;
2553 dap->DeviceStarted = bFlag;
2559 dap->CanDisable && dap->IsAdmin);
2561 dap->CanDisable && dap->IsAdmin);
2568 if (dap->CanDisable)
2588 dap->PropertySheetType) &&
2591 dap->nDevPropSheets += nDriverPages;
2601 if (dap->HasDriverPage)
2602 dap->nDevPropSheets++;
2606 dap->nDevPropSheets++;
2608 if (dap->HasResourcePage && dap->pResourceList !=
NULL)
2609 dap->nDevPropSheets++;
2612 if (dap->nDevPropSheets != 0)
2617 if (dap->DevPropSheets !=
NULL)
2619 if (nDriverPages != 0)
2621 psh.phpage = dap->DevPropSheets;
2627 dap->nDevPropSheets,
2629 dap->PropertySheetType))
2633 iPage < nDriverPages;
2637 dap->DevPropSheets[iPage]))
2643 dap->FreeDevPropSheets =
TRUE;
2648 iPage = nDriverPages;
2649 dap->nDevPropSheets -= nDriverPages;
2657 if (dap->HasDriverPage)
2665 pspDriver.lParam = (
LPARAM)dap;
2666 dap->DevPropSheets[iPage] = dap->pCreatePropertySheetPageW(&pspDriver);
2667 if (dap->DevPropSheets[iPage] !=
NULL)
2670 dap->DevPropSheets[iPage]))
2677 dap->pDestroyPropertySheetPage(dap->DevPropSheets[iPage]);
2678 dap->DevPropSheets[iPage] =
NULL;
2692 pspDetails.lParam = (
LPARAM)dap;
2693 dap->DevPropSheets[iPage] = dap->pCreatePropertySheetPageW(&pspDetails);
2694 if (dap->DevPropSheets[iPage] !=
NULL)
2697 dap->DevPropSheets[iPage]))
2704 dap->pDestroyPropertySheetPage(dap->DevPropSheets[iPage]);
2705 dap->DevPropSheets[iPage] =
NULL;
2710 if (dap->HasResourcePage && dap->pResourceList)
2718 pspDriver.lParam = (
LPARAM)dap;
2719 dap->DevPropSheets[iPage] = dap->pCreatePropertySheetPageW(&pspDriver);
2720 if (dap->DevPropSheets[iPage] !=
NULL)
2723 dap->DevPropSheets[iPage]))
2730 dap->pDestroyPropertySheetPage(dap->DevPropSheets[iPage]);
2731 dap->DevPropSheets[iPage] =
NULL;
2738 dap->nDevPropSheets = 0;
2749 dap->DeviceUsageChanged =
FALSE;
2763 L"DevMgrDevChangeSub");
2878 if (dap->ParentOldWndProc !=
NULL &&
2880 L"DevMgrDevChangeSub",
2927 L"DevMgrDevChangeSub");
2955 DWORD DevIdSize = 0;
2965 "CreatePropertySheetPageW");
2966 pDestroyPropertySheetPage =
2968 "DestroyPropertySheetPage");
2971 pDestroyPropertySheetPage ==
NULL)
2976 if (lpDeviceID ==
NULL)
2985 ERR(
"SetupDiGetDeviceInstanceId unexpectedly returned TRUE!\n");
2999 if (lpMachineName !=
NULL && lpMachineName[0] !=
L'\0')
3015 (DevIdSize *
sizeof(
WCHAR)));
3016 if (DevAdvPropInfo ==
NULL)
3022 if (lpDeviceID ==
NULL)
3047 DevAdvPropInfo->
hMachine = hMachine;
3061 psh.pszCaption = DevAdvPropInfo->
szDevName;
3064 DIGCDP_FLAG_REMOTE_ADVANCED :
3070 if (psh.phpage ==
NULL)
3081 pspGeneral.lParam = (
LPARAM)DevAdvPropInfo;
3083 if (psh.phpage[psh.nPages] !=
NULL)
3090 if (psh.nPages != 0)
3102 if (psh.phpage !=
NULL)
3108 if (psh.phpage[
i] !=
NULL)
3110 pDestroyPropertySheetPage(psh.phpage[
i]);
3134 sizeof(PropChangeParams));
3147 if (DevAdvPropInfo !=
NULL)
3182 if (psh.phpage !=
NULL)
3189 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)
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
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
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
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
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_GetSelectionMark(hwnd)
#define ListView_GetSelectedCount(hwndLV)
struct tagNMLISTVIEW * LPNMLISTVIEW
#define ListView_DeleteAllItems(hwnd)
#define ListView_SetColumn(hwnd, iCol, pcol)
#define SetupOpenFileQueue
#define SetupCloseFileQueue
#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
#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)
_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
HMENU WINAPI CreatePopupMenu(void)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
HANDLE WINAPI SetClipboardData(_In_ UINT, _In_opt_ HANDLE)
BOOL WINAPI CloseClipboard(void)
BOOL WINAPI OpenClipboard(_In_opt_ HWND)
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)
BOOL WINAPI EmptyClipboard(void)
struct tagNMHDR * LPNMHDR
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HWND WINAPI GetParent(_In_ HWND)
BOOL WINAPI DestroyMenu(_In_ HMENU)
BOOL WINAPI ExitWindowsEx(_In_ UINT, _In_ DWORD)
BOOL WINAPI TrackPopupMenu(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _Reserved_ int, _In_ HWND, _Reserved_ LPCRECT)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
#define SendDlgItemMessage
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
BOOL WINAPI AppendMenuW(_In_ HMENU, _In_ UINT, _In_ UINT_PTR, _In_opt_ LPCWSTR)
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