newdev.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. /*
  2. * newdev.h
  3. *
  4. * Driver installation DLL interface
  5. *
  6. * This file is part of the w32api package.
  7. *
  8. * Contributors:
  9. * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
  10. *
  11. * THIS SOFTWARE IS NOT COPYRIGHTED
  12. *
  13. * This source code is offered for use in the public domain. You may
  14. * use, modify or distribute it freely.
  15. *
  16. * This code is distributed in the hope that it will be useful but
  17. * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
  18. * DISCLAIMED. This includes but is not limited to warranties of
  19. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  20. *
  21. */
  22. #pragma once
  23. #include <setupapi.h>
  24. #ifdef __cplusplus
  25. extern "C" {
  26. #endif
  27. #include <pshpack1.h>
  28. /* UpdateDriverForPlugAndPlayDevices.InstallFlags constants */
  29. #define INSTALLFLAG_FORCE 0x00000001
  30. #define INSTALLFLAG_READONLY 0x00000002
  31. #define INSTALLFLAG_NONINTERACTIVE 0x00000004
  32. #define INSTALLFLAG_BITS 0x00000007
  33. #if (WINVER >= _WIN32_WINNT_WIN2K)
  34. WINBOOL
  35. WINAPI
  36. UpdateDriverForPlugAndPlayDevicesA(
  37. HWND hwndParent,
  38. LPCSTR HardwareId,
  39. LPCSTR FullInfPath,
  40. DWORD InstallFlags,
  41. PBOOL bRebootRequired OPTIONAL);
  42. WINBOOL
  43. WINAPI
  44. UpdateDriverForPlugAndPlayDevicesW(
  45. HWND hwndParent,
  46. LPCWSTR HardwareId,
  47. LPCWSTR FullInfPath,
  48. DWORD InstallFlags,
  49. PBOOL bRebootRequired OPTIONAL);
  50. #ifdef UNICODE
  51. #define UpdateDriverForPlugAndPlayDevices UpdateDriverForPlugAndPlayDevicesW
  52. #else
  53. #define UpdateDriverForPlugAndPlayDevices UpdateDriverForPlugAndPlayDevicesA
  54. #endif /* UNICODE */
  55. #endif /* (WINVER >= _WIN32_WINNT_WIN2K) */
  56. #if (WINVER >= _WIN32_WINNT_VISTA)
  57. #define DIIDFLAG_SHOWSEARCHUI 0x00000001
  58. #define DIIDFLAG_NOFINISHINSTALLUI 0x00000002
  59. #define DIIDFLAG_INSTALLNULLDRIVER 0x00000004
  60. #define DIIDFLAG_BITS 0x00000007
  61. #define DIIRFLAG_INF_ALREADY_COPIED 0x00000001
  62. #define DIIRFLAG_FORCE_INF 0x00000002
  63. #define DIIRFLAG_HW_USING_THE_INF 0x00000004
  64. #define DIIRFLAG_HOTPATCH 0x00000008
  65. #define DIIRFLAG_NOBACKUP 0x00000010
  66. #define DIIRFLAG_BITS ( DIIRFLAG_FORCE_INF | DIIRFLAG_HOTPATCH)
  67. #define DIIRFLAG_SYSTEM_BITS ( DIIRFLAG_INF_ALREADY_COPIED |\
  68. DIIRFLAG_FORCE_INF |\
  69. DIIRFLAG_HW_USING_THE_INF |\
  70. DIIRFLAG_HOTPATCH |\
  71. DIIRFLAG_NOBACKUP )
  72. #define ROLLBACK_FLAG_NO_UI 0x00000001
  73. #define ROLLBACK_BITS 0x00000001
  74. WINBOOL
  75. WINAPI
  76. DiInstallDevice(
  77. HWND hwndParent OPTIONAL,
  78. HDEVINFO DeviceInfoSet,
  79. PSP_DEVINFO_DATA DeviceInfoData,
  80. PSP_DRVINFO_DATA DriverInfoData OPTIONAL,
  81. DWORD Flags,
  82. PBOOL NeedReboot OPTIONAL);
  83. WINBOOL
  84. WINAPI
  85. DiShowUpdateDevice(
  86. HWND hwndParent OPTIONAL,
  87. HDEVINFO DeviceInfoSet,
  88. PSP_DEVINFO_DATA DeviceInfoData,
  89. DWORD Flags,
  90. PBOOL NeedReboot OPTIONAL);
  91. WINBOOL
  92. WINAPI
  93. DiRollbackDriver(
  94. HDEVINFO DeviceInfoSet,
  95. PSP_DEVINFO_DATA DeviceInfoData,
  96. HWND hwndParent OPTIONAL,
  97. DWORD Flags,
  98. PBOOL NeedReboot OPTIONAL);
  99. WINBOOL
  100. WINAPI
  101. DiInstallDriverW(
  102. HWND hwndParent OPTIONAL,
  103. LPCWSTR InfPath,
  104. DWORD Flags,
  105. PBOOL NeedReboot OPTIONAL);
  106. WINBOOL
  107. WINAPI
  108. DiInstallDriverA(
  109. HWND hwndParent OPTIONAL,
  110. LPCSTR InfPath,
  111. DWORD Flags,
  112. PBOOL NeedReboot OPTIONAL);
  113. #ifdef UNICODE
  114. #define DiInstallDriver DiInstallDriverW
  115. #else
  116. #define DiInstallDriver DiInstallDriverA
  117. #endif
  118. #endif /* (WINVER >= _WIN32_WINNT_VISTA) */
  119. #if (WINVER >= _WIN32_WINNT_WIN7)
  120. WINBOOL
  121. WINAPI
  122. DiUninstallDevice(
  123. HWND hwndParent,
  124. HDEVINFO DeviceInfoSet,
  125. PSP_DEVINFO_DATA DeviceInfoData,
  126. DWORD Flags,
  127. PBOOL NeedReboot OPTIONAL);
  128. #endif /* (WINVER >= _WIN32_WINNT_WIN7) */
  129. #include <poppack.h>
  130. #ifdef __cplusplus
  131. }
  132. #endif