#include <winver.h>
-#define NDEBUG
-#include <debug.h>
static UINT WINAPI
EnumDeviceDriverFilesCallback(IN PVOID Context,
return Ret;
}
-BOOL
-WINAPI
-DevInstallW(
- IN HWND hWndParent,
- IN HINSTANCE hInstance,
- IN LPCWSTR InstanceId,
- IN INT Show);
static
VOID
{
TOKEN_PRIVILEGES Privileges;
HANDLE hToken;
+ DWORD dwReboot;
BOOL NeedReboot = FALSE;
// Better use InstallDevInst:
// BOOL bUpdate,
// DWORD *dwReboot);
// See: http://comp.os.ms-windows.programmer.win32.narkive.com/J8FTd4KK/signature-of-undocumented-installdevinstex
- if (!DevInstallW(hwndDlg, NULL, dap->szDeviceID, SW_SHOWNOACTIVATE))
+
+ if (!InstallDevInst(hwndDlg, dap->szDeviceID, TRUE, &dwReboot))
return;
if (NeedReboot == FALSE)
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken))
{
- DPRINT("OpenProcessToken failed\n");
+ ERR("OpenProcessToken failed\n");
return;
}
/* Get the LUID for the Shutdown privilege */
if (!LookupPrivilegeValueW(NULL, SE_SHUTDOWN_NAME, &Privileges.Privileges[0].Luid))
{
- DPRINT("LookupPrivilegeValue failed\n");
+ ERR("LookupPrivilegeValue failed\n");
CloseHandle(hToken);
return;
}
if (!AdjustTokenPrivileges(hToken, FALSE, &Privileges, 0, NULL, NULL))
{
- DPRINT("AdjustTokenPrivileges failed\n");
+ ERR("AdjustTokenPrivileges failed\n");
CloseHandle(hToken);
return;
}
/* Finally shut down the system */
if (!ExitWindowsEx(EWX_REBOOT, SHTDN_REASON_MAJOR_OTHER | SHTDN_REASON_MINOR_OTHER | SHTDN_REASON_FLAG_PLANNED))
{
- DPRINT("ExitWindowsEx failed\n");
+ ERR("ExitWindowsEx failed\n");
CloseHandle(hToken);
}
}
else
{
/* FIXME - display an error message */
- DPRINT1("Failed to enable/disable device! LastError: %d\n",
- GetLastError());
+ FIXME("Failed to enable/disable device! LastError: %d\n",
+ GetLastError());
}
}
else
DWORD nDriverPages = 0;
BOOL RecalcPages = FALSE;
+ TRACE("UpdateDevInfo()\n");
+
hPropSheetDlg = GetParent(hwndDlg);
if (dap->PageInitialized)
dap->PropertySheetType) &&
nDriverPages != 0 && GetLastError() == ERROR_INSUFFICIENT_BUFFER)
{
+TRACE("Count %d additional pages!\n", nDriverPages);
dap->nDevPropSheets += nDriverPages;
}
else
/* add the device property sheets */
if (dap->nDevPropSheets != 0)
{
+TRACE("Show %d pages!\n", dap->nDevPropSheets);
dap->DevPropSheets = HeapAlloc(GetProcessHeap(),
HEAP_ZERO_MEMORY,
dap->nDevPropSheets * sizeof(HPROPSHEETPAGE));
{
/* add the property sheets */
for (iPage = 0;
- iPage != nDriverPages;
+ iPage < nDriverPages;
iPage++)
{
+TRACE("Add page %d\n", iPage);
+TRACE("Sheet %p\n", dap->DevPropSheets[iPage]);
+
if (PropSheet_AddPage(hPropSheetDlg,
dap->DevPropSheets[iPage]))
{
RecalcPages = TRUE;
}
+ else
+ {
+TRACE("PropSheet_AddPage() failed\n");
+ }
}
dap->FreeDevPropSheets = TRUE;
}
else
{
+TRACE("SetupDiGetClassDevPropertySheets() failed\n");
/* cleanup, we were unable to get the device property sheets */
iPage = nDriverPages;
dap->nDevPropSheets -= nDriverPages;
0,
&DevIdSize))
{
- DPRINT1("SetupDiGetDeviceInstanceId unexpectedly returned TRUE!\n");
+ ERR("SetupDiGetDeviceInstanceId unexpectedly returned TRUE!\n");
return -1;
}
if (dwFlags & ~(DPF_EXTENDED | DPF_DEVICE_STATUS_ACTION))
{
- DPRINT1("DevPropertiesExW: Invalid flags: 0x%x\n",
+ FIXME("DevPropertiesExW: Invalid flags: 0x%x\n",
dwFlags & ~(DPF_EXTENDED | DPF_DEVICE_STATUS_ACTION));
SetLastError(ERROR_INVALID_FLAGS);
return -1;
if (bShowDevMgr)
{
- DPRINT("DevPropertiesExW doesn't support bShowDevMgr!\n");
+ FIXME("DevPropertiesExW doesn't support bShowDevMgr!\n");
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
}
else
szDeviceID,
szMachineName))
{
- DPRINT1("DeviceProperties_RunDLLW DeviceID: %S, MachineName: %S\n", szDeviceID, szMachineName);
+ ERR("DeviceProperties_RunDLLW DeviceID: %S, MachineName: %S\n", szDeviceID, szMachineName);
return;
}