BOOL
WINAPI
-InstallDevInst(
+InstallDevInstEx(
IN HWND hWndParent,
IN LPCWSTR InstanceId,
IN BOOL bUpdate,
- OUT LPDWORD lpReboot)
+ OUT LPDWORD lpReboot,
+ IN DWORD Unknown)
{
PDEVINSTDATA DevInstData = NULL;
BOOL ret;
BOOL retval = FALSE;
- TRACE("InstllDevInst(%p, %s, %d, %p)\n", hWndParent, debugstr_w(InstanceId), bUpdate, lpReboot);
+ TRACE("InstllDevInstEx(%p, %s, %d, %p, %lx)\n",
+ hWndParent, debugstr_w(InstanceId), bUpdate, lpReboot, Unknown);
DevInstData = HeapAlloc(GetProcessHeap(), 0, sizeof(DEVINSTDATA));
if (!DevInstData)
}
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+InstallDevInst(
+ IN HWND hWndParent,
+ IN LPCWSTR InstanceId,
+ IN BOOL bUpdate,
+ OUT LPDWORD lpReboot)
+{
+ return InstallDevInstEx(hWndParent, InstanceId, bUpdate, lpReboot, 0);
+}
+
+
/*
* @implemented
*/
HANDLE hPipe = INVALID_HANDLE_VALUE;
PWSTR DeviceInstance = NULL;
PWSTR InstallEventName = NULL;
+ HANDLE hInstallEvent;
/* Open the pipe */
hPipe = CreateFileW(lpNamedPipeName, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
}
ReturnValue = DevInstallW(NULL, NULL, DeviceInstance, ShowWizard ? SW_SHOWNOACTIVATE : SW_HIDE);
+ if(!ReturnValue)
+ {
+ ERR("DevInstallW failed with error %lu\n", GetLastError());
+ goto cleanup;
+ }
+
+ hInstallEvent = CreateEventW(NULL, TRUE, FALSE, InstallEventName);
+ if(!hInstallEvent)
+ {
+ TRACE("CreateEventW('%ls') failed with error %lu\n", InstallEventName, GetLastError());
+ goto cleanup;
+ }
+
+ SetEvent(hInstallEvent);
+ CloseHandle(hInstallEvent);
cleanup:
if(hPipe != INVALID_HANDLE_VALUE)