[DDK]
[reactos.git] / include / psdk / newdev.h
index 7f618de..4034a9c 100644 (file)
  *
  */
 
-#ifndef __NEWDEV_H
-#define __NEWDEV_H
+#pragma once
 
-#if __GNUC__ >=3
-#pragma GCC system_header
-#endif
+#include <setupapi.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#pragma pack(push,4)
+#include <pshpack1.h>
 
 /* UpdateDriverForPlugAndPlayDevices.InstallFlags constants */
 #define INSTALLFLAG_FORCE                 0x00000001
@@ -39,21 +36,25 @@ extern "C" {
 #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
@@ -61,10 +62,96 @@ UpdateDriverForPlugAndPlayDevicesW(
 #define UpdateDriverForPlugAndPlayDevices UpdateDriverForPlugAndPlayDevicesA
 #endif /* UNICODE */
 
-#pragma pack(pop)
+#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 */