*
*/
-#ifndef __NEWDEV_H
-#define __NEWDEV_H
+#pragma once
+
+#include <setupapi.h>
#ifdef __cplusplus
extern "C" {
#endif
+#include <pshpack1.h>
+
/* UpdateDriverForPlugAndPlayDevices.InstallFlags constants */
#define INSTALLFLAG_FORCE 0x00000001
#define INSTALLFLAG_READONLY 0x00000002
#define INSTALLFLAG_NONINTERACTIVE 0x00000004
#define INSTALLFLAG_BITS 0x00000007
-BOOL WINAPI
+#if (WINVER >= _WIN32_WINNT_WIN2K)
+
+BOOL
+WINAPI
UpdateDriverForPlugAndPlayDevicesA(
- HWND hwndParent,
- LPCSTR HardwareId,
- LPCSTR FullInfPath,
- DWORD InstallFlags,
- PBOOL bRebootRequired OPTIONAL);
+ HWND hwndParent,
+ LPCSTR HardwareId,
+ LPCSTR FullInfPath,
+ DWORD InstallFlags,
+ PBOOL bRebootRequired OPTIONAL);
-BOOL WINAPI
+BOOL
+WINAPI
UpdateDriverForPlugAndPlayDevicesW(
- HWND hwndParent,
- LPCWSTR HardwareId,
- LPCWSTR FullInfPath,
- DWORD InstallFlags,
- PBOOL bRebootRequired OPTIONAL);
+ HWND hwndParent,
+ LPCWSTR HardwareId,
+ LPCWSTR FullInfPath,
+ DWORD InstallFlags,
+ PBOOL bRebootRequired OPTIONAL);
#ifdef UNICODE
#define UpdateDriverForPlugAndPlayDevices UpdateDriverForPlugAndPlayDevicesW
#define UpdateDriverForPlugAndPlayDevices UpdateDriverForPlugAndPlayDevicesA
#endif /* UNICODE */
+#endif /* (WINVER >= _WIN32_WINNT_WIN2K) */
+
+#if (WINVER >= _WIN32_WINNT_VISTA)
+
+#define DIIDFLAG_SHOWSEARCHUI 0x00000001
+#define DIIDFLAG_NOFINISHINSTALLUI 0x00000002
+#define DIIDFLAG_INSTALLNULLDRIVER 0x00000004
+#define DIIDFLAG_BITS 0x00000007
+
+#define DIIRFLAG_INF_ALREADY_COPIED 0x00000001
+#define DIIRFLAG_FORCE_INF 0x00000002
+#define DIIRFLAG_HW_USING_THE_INF 0x00000004
+#define DIIRFLAG_HOTPATCH 0x00000008
+#define DIIRFLAG_NOBACKUP 0x00000010
+#define DIIRFLAG_BITS ( DIIRFLAG_FORCE_INF | DIIRFLAG_HOTPATCH)
+#define DIIRFLAG_SYSTEM_BITS ( DIIRFLAG_INF_ALREADY_COPIED |\
+ DIIRFLAG_FORCE_INF |\
+ DIIRFLAG_HW_USING_THE_INF |\
+ DIIRFLAG_HOTPATCH |\
+ DIIRFLAG_NOBACKUP )
+
+#define ROLLBACK_FLAG_NO_UI 0x00000001
+#define ROLLBACK_BITS 0x00000001
+
+BOOL
+WINAPI
+DiInstallDevice(
+ HWND hwndParent OPTIONAL,
+ HDEVINFO DeviceInfoSet,
+ PSP_DEVINFO_DATA DeviceInfoData,
+ PSP_DRVINFO_DATA DriverInfoData OPTIONAL,
+ DWORD Flags,
+ PBOOL NeedReboot OPTIONAL);
+
+BOOL
+WINAPI
+DiShowUpdateDevice(
+ HWND hwndParent OPTIONAL,
+ HDEVINFO DeviceInfoSet,
+ PSP_DEVINFO_DATA DeviceInfoData,
+ DWORD Flags,
+ PBOOL NeedReboot OPTIONAL);
+
+BOOL
+WINAPI
+DiRollbackDriver(
+ HDEVINFO DeviceInfoSet,
+ PSP_DEVINFO_DATA DeviceInfoData,
+ HWND hwndParent OPTIONAL,
+ DWORD Flags,
+ PBOOL NeedReboot OPTIONAL);
+
+BOOL
+WINAPI
+DiInstallDriverW(
+ HWND hwndParent OPTIONAL,
+ LPCWSTR InfPath,
+ DWORD Flags,
+ PBOOL NeedReboot OPTIONAL);
+
+BOOL
+WINAPI
+DiInstallDriverA(
+ HWND hwndParent OPTIONAL,
+ LPCSTR InfPath,
+ DWORD Flags,
+ PBOOL NeedReboot OPTIONAL);
+
+
+#ifdef UNICODE
+#define DiInstallDriver DiInstallDriverW
+#else
+#define DiInstallDriver DiInstallDriverA
+#endif
+
+#endif /* (WINVER >= _WIN32_WINNT_VISTA) */
+
+#if (WINVER >= _WIN32_WINNT_WIN7)
+BOOL
+WINAPI
+DiUninstallDevice(
+ HWND hwndParent,
+ HDEVINFO DeviceInfoSet,
+ PSP_DEVINFO_DATA DeviceInfoData,
+ DWORD Flags,
+ PBOOL NeedReboot OPTIONAL);
+#endif /* (WINVER >= _WIN32_WINNT_WIN7) */
+
+#include <poppack.h>
+
#ifdef __cplusplus
}
#endif
-
-#endif /* __NEWDEV_H */