PageRenderTime 27ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 1ms

/mingw-w64-headers/include/setupapi.h

https://gitlab.com/ubuntu-trusty/mingw-w64
C Header | 1169 lines | 1014 code | 150 blank | 5 comment | 0 complexity | 5919ae2c91bc0dc20a3ce8d3fe15a7c8 MD5 | raw file
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _INC_SETUPAPI
  7. #define _INC_SETUPAPI
  8. #include <_mingw_unicode.h>
  9. #ifndef _SETUPAPI_
  10. #define WINSETUPAPI DECLSPEC_IMPORT
  11. #else
  12. #define WINSETUPAPI
  13. #endif
  14. #ifndef _SETUPAPI_VER
  15. #define _SETUPAPI_VER 0x0502
  16. #endif
  17. #ifndef __LPGUID_DEFINED__
  18. #define __LPGUID_DEFINED__
  19. typedef GUID *LPGUID;
  20. #endif
  21. #include <commctrl.h>
  22. #ifdef _WIN64
  23. #include <pshpack8.h>
  24. #else
  25. #include <pshpack1.h>
  26. #endif
  27. #ifdef __cplusplus
  28. extern "C" {
  29. #endif
  30. #define LINE_LEN 256
  31. #define MAX_INF_STRING_LENGTH 4096
  32. #define MAX_INF_SECTION_NAME_LENGTH 255
  33. #define MAX_TITLE_LEN 60
  34. #define MAX_INSTRUCTION_LEN 256
  35. #define MAX_LABEL_LEN 30
  36. #define MAX_SERVICE_NAME_LEN 256
  37. #define MAX_SUBTITLE_LEN 256
  38. #define SP_MAX_MACHINENAME_LENGTH (MAX_PATH + 3)
  39. typedef PVOID HINF;
  40. typedef struct _INFCONTEXT {
  41. PVOID Inf;
  42. PVOID CurrentInf;
  43. UINT Section;
  44. UINT Line;
  45. } INFCONTEXT,*PINFCONTEXT;
  46. typedef struct _SP_INF_INFORMATION {
  47. DWORD InfStyle;
  48. DWORD InfCount;
  49. BYTE VersionData[ANYSIZE_ARRAY];
  50. } SP_INF_INFORMATION,*PSP_INF_INFORMATION;
  51. typedef struct _SP_ALTPLATFORM_INFO_V2 {
  52. DWORD cbSize;
  53. DWORD Platform;
  54. DWORD MajorVersion;
  55. DWORD MinorVersion;
  56. WORD ProcessorArchitecture;
  57. __C89_NAMELESS union {
  58. WORD Reserved;
  59. WORD Flags;
  60. };
  61. DWORD FirstValidatedMajorVersion;
  62. DWORD FirstValidatedMinorVersion;
  63. } SP_ALTPLATFORM_INFO_V2,*PSP_ALTPLATFORM_INFO_V2;
  64. typedef struct _SP_ALTPLATFORM_INFO_V1 {
  65. DWORD cbSize;
  66. DWORD Platform;
  67. DWORD MajorVersion;
  68. DWORD MinorVersion;
  69. WORD ProcessorArchitecture;
  70. WORD Reserved;
  71. } SP_ALTPLATFORM_INFO_V1,*PSP_ALTPLATFORM_INFO_V1;
  72. #if USE_SP_ALTPLATFORM_INFO_V1
  73. typedef SP_ALTPLATFORM_INFO_V1 SP_ALTPLATFORM_INFO;
  74. typedef PSP_ALTPLATFORM_INFO_V1 PSP_ALTPLATFORM_INFO;
  75. #else
  76. typedef SP_ALTPLATFORM_INFO_V2 SP_ALTPLATFORM_INFO;
  77. typedef PSP_ALTPLATFORM_INFO_V2 PSP_ALTPLATFORM_INFO;
  78. #define SP_ALTPLATFORM_FLAGS_VERSION_RANGE (0x0001)
  79. #endif
  80. typedef struct _SP_ORIGINAL_FILE_INFO_A {
  81. DWORD cbSize;
  82. CHAR OriginalInfName[MAX_PATH];
  83. CHAR OriginalCatalogName[MAX_PATH];
  84. } SP_ORIGINAL_FILE_INFO_A,*PSP_ORIGINAL_FILE_INFO_A;
  85. typedef struct _SP_ORIGINAL_FILE_INFO_W {
  86. DWORD cbSize;
  87. WCHAR OriginalInfName[MAX_PATH];
  88. WCHAR OriginalCatalogName[MAX_PATH];
  89. } SP_ORIGINAL_FILE_INFO_W,*PSP_ORIGINAL_FILE_INFO_W;
  90. __MINGW_TYPEDEF_UAW(SP_ORIGINAL_FILE_INFO)
  91. __MINGW_TYPEDEF_UAW(PSP_ORIGINAL_FILE_INFO)
  92. #define INF_STYLE_NONE 0x00000000
  93. #define INF_STYLE_OLDNT 0x00000001
  94. #define INF_STYLE_WIN4 0x00000002
  95. #define INF_STYLE_CACHE_ENABLE 0x00000010
  96. #define INF_STYLE_CACHE_DISABLE 0x00000020
  97. #define INF_STYLE_CACHE_IGNORE 0x00000040
  98. #define DIRID_ABSOLUTE -1
  99. #define DIRID_ABSOLUTE_16BIT 0xffff
  100. #define DIRID_NULL 0
  101. #define DIRID_SRCPATH 1
  102. #define DIRID_WINDOWS 10
  103. #define DIRID_SYSTEM 11
  104. #define DIRID_DRIVERS 12
  105. #define DIRID_IOSUBSYS DIRID_DRIVERS
  106. #define DIRID_INF 17
  107. #define DIRID_HELP 18
  108. #define DIRID_FONTS 20
  109. #define DIRID_VIEWERS 21
  110. #define DIRID_COLOR 23
  111. #define DIRID_APPS 24
  112. #define DIRID_SHARED 25
  113. #define DIRID_BOOT 30
  114. #define DIRID_SYSTEM16 50
  115. #define DIRID_SPOOL 51
  116. #define DIRID_SPOOLDRIVERS 52
  117. #define DIRID_USERPROFILE 53
  118. #define DIRID_LOADER 54
  119. #define DIRID_PRINTPROCESSOR 55
  120. #define DIRID_DEFAULT DIRID_SYSTEM
  121. #define DIRID_COMMON_STARTMENU 16406
  122. #define DIRID_COMMON_PROGRAMS 16407
  123. #define DIRID_COMMON_STARTUP 16408
  124. #define DIRID_COMMON_DESKTOPDIRECTORY 16409
  125. #define DIRID_COMMON_FAVORITES 16415
  126. #define DIRID_COMMON_APPDATA 16419
  127. #define DIRID_PROGRAM_FILES 16422
  128. #define DIRID_SYSTEM_X86 16425
  129. #define DIRID_PROGRAM_FILES_X86 16426
  130. #define DIRID_PROGRAM_FILES_COMMON 16427
  131. #define DIRID_PROGRAM_FILES_COMMONX86 16428
  132. #define DIRID_COMMON_TEMPLATES 16429
  133. #define DIRID_COMMON_DOCUMENTS 16430
  134. #define DIRID_USER 0x8000
  135. typedef UINT (CALLBACK *PSP_FILE_CALLBACK_A)(PVOID Context,UINT Notification,UINT_PTR Param1,UINT_PTR Param2);
  136. typedef UINT (CALLBACK *PSP_FILE_CALLBACK_W)(PVOID Context,UINT Notification,UINT_PTR Param1,UINT_PTR Param2);
  137. #define PSP_FILE_CALLBACK __MINGW_NAME_UAW(PSP_FILE_CALLBACK)
  138. #define SPFILENOTIFY_STARTQUEUE 0x00000001
  139. #define SPFILENOTIFY_ENDQUEUE 0x00000002
  140. #define SPFILENOTIFY_STARTSUBQUEUE 0x00000003
  141. #define SPFILENOTIFY_ENDSUBQUEUE 0x00000004
  142. #define SPFILENOTIFY_STARTDELETE 0x00000005
  143. #define SPFILENOTIFY_ENDDELETE 0x00000006
  144. #define SPFILENOTIFY_DELETEERROR 0x00000007
  145. #define SPFILENOTIFY_STARTRENAME 0x00000008
  146. #define SPFILENOTIFY_ENDRENAME 0x00000009
  147. #define SPFILENOTIFY_RENAMEERROR 0x0000000a
  148. #define SPFILENOTIFY_STARTCOPY 0x0000000b
  149. #define SPFILENOTIFY_ENDCOPY 0x0000000c
  150. #define SPFILENOTIFY_COPYERROR 0x0000000d
  151. #define SPFILENOTIFY_NEEDMEDIA 0x0000000e
  152. #define SPFILENOTIFY_QUEUESCAN 0x0000000f
  153. #define SPFILENOTIFY_CABINETINFO 0x00000010
  154. #define SPFILENOTIFY_FILEINCABINET 0x00000011
  155. #define SPFILENOTIFY_NEEDNEWCABINET 0x00000012
  156. #define SPFILENOTIFY_FILEEXTRACTED 0x00000013
  157. #define SPFILENOTIFY_FILEOPDELAYED 0x00000014
  158. #define SPFILENOTIFY_STARTBACKUP 0x00000015
  159. #define SPFILENOTIFY_BACKUPERROR 0x00000016
  160. #define SPFILENOTIFY_ENDBACKUP 0x00000017
  161. #define SPFILENOTIFY_QUEUESCAN_EX 0x00000018
  162. #define SPFILENOTIFY_STARTREGISTRATION 0x00000019
  163. #define SPFILENOTIFY_ENDREGISTRATION 0x00000020
  164. #define SPFILENOTIFY_QUEUESCAN_SIGNERINFO 0x00000040
  165. #define SPFILENOTIFY_LANGMISMATCH 0x00010000
  166. #define SPFILENOTIFY_TARGETEXISTS 0x00020000
  167. #define SPFILENOTIFY_TARGETNEWER 0x00040000
  168. #define FILEOP_COPY 0
  169. #define FILEOP_RENAME 1
  170. #define FILEOP_DELETE 2
  171. #define FILEOP_BACKUP 3
  172. #define FILEOP_ABORT 0
  173. #define FILEOP_DOIT 1
  174. #define FILEOP_SKIP 2
  175. #define FILEOP_RETRY FILEOP_DOIT
  176. #define FILEOP_NEWPATH 4
  177. #define COPYFLG_WARN_IF_SKIP 0x00000001
  178. #define COPYFLG_NOSKIP 0x00000002
  179. #define COPYFLG_NOVERSIONCHECK 0x00000004
  180. #define COPYFLG_FORCE_FILE_IN_USE 0x00000008
  181. #define COPYFLG_NO_OVERWRITE 0x00000010
  182. #define COPYFLG_NO_VERSION_DIALOG 0x00000020
  183. #define COPYFLG_OVERWRITE_OLDER_ONLY 0x00000040
  184. #define COPYFLG_REPLACEONLY 0x00000400
  185. #define COPYFLG_NODECOMP 0x00000800
  186. #define COPYFLG_REPLACE_BOOT_FILE 0x00001000
  187. #define COPYFLG_NOPRUNE 0x00002000
  188. #define DELFLG_IN_USE 0x00000001
  189. #define DELFLG_IN_USE1 0x00010000
  190. typedef struct _FILEPATHS_A {
  191. PCSTR Target;
  192. PCSTR Source;
  193. UINT Win32Error;
  194. DWORD Flags;
  195. } FILEPATHS_A,*PFILEPATHS_A;
  196. typedef struct _FILEPATHS_W {
  197. PCWSTR Target;
  198. PCWSTR Source;
  199. UINT Win32Error;
  200. DWORD Flags;
  201. } FILEPATHS_W,*PFILEPATHS_W;
  202. __MINGW_TYPEDEF_UAW(FILEPATHS)
  203. __MINGW_TYPEDEF_UAW(PFILEPATHS)
  204. typedef struct _FILEPATHS_SIGNERINFO_A {
  205. PCSTR Target;
  206. PCSTR Source;
  207. UINT Win32Error;
  208. DWORD Flags;
  209. PCSTR DigitalSigner;
  210. PCSTR Version;
  211. PCSTR CatalogFile;
  212. } FILEPATHS_SIGNERINFO_A,*PFILEPATHS_SIGNERINFO_A;
  213. typedef struct _FILEPATHS_SIGNERINFO_W {
  214. PCWSTR Target;
  215. PCWSTR Source;
  216. UINT Win32Error;
  217. DWORD Flags;
  218. PCWSTR DigitalSigner;
  219. PCWSTR Version;
  220. PCWSTR CatalogFile;
  221. } FILEPATHS_SIGNERINFO_W,*PFILEPATHS_SIGNERINFO_W;
  222. __MINGW_TYPEDEF_UAW(FILEPATHS_SIGNERINFO)
  223. __MINGW_TYPEDEF_UAW(PFILEPATHS_SIGNERINFO)
  224. typedef struct _SOURCE_MEDIA_A {
  225. PCSTR Reserved;
  226. PCSTR Tagfile;
  227. PCSTR Description;
  228. PCSTR SourcePath;
  229. PCSTR SourceFile;
  230. DWORD Flags;
  231. } SOURCE_MEDIA_A,*PSOURCE_MEDIA_A;
  232. typedef struct _SOURCE_MEDIA_W {
  233. PCWSTR Reserved;
  234. PCWSTR Tagfile;
  235. PCWSTR Description;
  236. PCWSTR SourcePath;
  237. PCWSTR SourceFile;
  238. DWORD Flags;
  239. } SOURCE_MEDIA_W,*PSOURCE_MEDIA_W;
  240. __MINGW_TYPEDEF_UAW(SOURCE_MEDIA)
  241. __MINGW_TYPEDEF_UAW(PSOURCE_MEDIA)
  242. typedef struct _CABINET_INFO_A {
  243. PCSTR CabinetPath;
  244. PCSTR CabinetFile;
  245. PCSTR DiskName;
  246. USHORT SetId;
  247. USHORT CabinetNumber;
  248. } CABINET_INFO_A,*PCABINET_INFO_A;
  249. typedef struct _CABINET_INFO_W {
  250. PCWSTR CabinetPath;
  251. PCWSTR CabinetFile;
  252. PCWSTR DiskName;
  253. USHORT SetId;
  254. USHORT CabinetNumber;
  255. } CABINET_INFO_W,*PCABINET_INFO_W;
  256. __MINGW_TYPEDEF_UAW(CABINET_INFO)
  257. __MINGW_TYPEDEF_UAW(PCABINET_INFO)
  258. typedef struct _FILE_IN_CABINET_INFO_A {
  259. PCSTR NameInCabinet;
  260. DWORD FileSize;
  261. DWORD Win32Error;
  262. WORD DosDate;
  263. WORD DosTime;
  264. WORD DosAttribs;
  265. CHAR FullTargetName[MAX_PATH];
  266. } FILE_IN_CABINET_INFO_A,*PFILE_IN_CABINET_INFO_A;
  267. typedef struct _FILE_IN_CABINET_INFO_W {
  268. PCWSTR NameInCabinet;
  269. DWORD FileSize;
  270. DWORD Win32Error;
  271. WORD DosDate;
  272. WORD DosTime;
  273. WORD DosAttribs;
  274. WCHAR FullTargetName[MAX_PATH];
  275. } FILE_IN_CABINET_INFO_W,*PFILE_IN_CABINET_INFO_W;
  276. __MINGW_TYPEDEF_UAW(FILE_IN_CABINET_INFO)
  277. __MINGW_TYPEDEF_UAW(PFILE_IN_CABINET_INFO)
  278. typedef struct _SP_REGISTER_CONTROL_STATUSA {
  279. DWORD cbSize;
  280. PCSTR FileName;
  281. DWORD Win32Error;
  282. DWORD FailureCode;
  283. } SP_REGISTER_CONTROL_STATUSA,*PSP_REGISTER_CONTROL_STATUSA;
  284. typedef struct _SP_REGISTER_CONTROL_STATUSW {
  285. DWORD cbSize;
  286. PCWSTR FileName;
  287. DWORD Win32Error;
  288. DWORD FailureCode;
  289. } SP_REGISTER_CONTROL_STATUSW,*PSP_REGISTER_CONTROL_STATUSW;
  290. __MINGW_TYPEDEF_AW(SP_REGISTER_CONTROL_STATUS)
  291. __MINGW_TYPEDEF_AW(PSP_REGISTER_CONTROL_STATUS)
  292. #define SPREG_SUCCESS 0x00000000
  293. #define SPREG_LOADLIBRARY 0x00000001
  294. #define SPREG_GETPROCADDR 0x00000002
  295. #define SPREG_REGSVR 0x00000003
  296. #define SPREG_DLLINSTALL 0x00000004
  297. #define SPREG_TIMEOUT 0x00000005
  298. #define SPREG_UNKNOWN 0xFFFFFFFF
  299. typedef PVOID HSPFILEQ;
  300. typedef struct _SP_FILE_COPY_PARAMS_A {
  301. DWORD cbSize;
  302. HSPFILEQ QueueHandle;
  303. PCSTR SourceRootPath;
  304. PCSTR SourcePath;
  305. PCSTR SourceFilename;
  306. PCSTR SourceDescription;
  307. PCSTR SourceTagfile;
  308. PCSTR TargetDirectory;
  309. PCSTR TargetFilename;
  310. DWORD CopyStyle;
  311. HINF LayoutInf;
  312. PCSTR SecurityDescriptor;
  313. } SP_FILE_COPY_PARAMS_A,*PSP_FILE_COPY_PARAMS_A;
  314. typedef struct _SP_FILE_COPY_PARAMS_W {
  315. DWORD cbSize;
  316. HSPFILEQ QueueHandle;
  317. PCWSTR SourceRootPath;
  318. PCWSTR SourcePath;
  319. PCWSTR SourceFilename;
  320. PCWSTR SourceDescription;
  321. PCWSTR SourceTagfile;
  322. PCWSTR TargetDirectory;
  323. PCWSTR TargetFilename;
  324. DWORD CopyStyle;
  325. HINF LayoutInf;
  326. PCWSTR SecurityDescriptor;
  327. } SP_FILE_COPY_PARAMS_W,*PSP_FILE_COPY_PARAMS_W;
  328. __MINGW_TYPEDEF_UAW(SP_FILE_COPY_PARAMS)
  329. __MINGW_TYPEDEF_UAW(PSP_FILE_COPY_PARAMS)
  330. typedef PVOID HDSKSPC;
  331. typedef PVOID HDEVINFO;
  332. typedef struct _SP_DEVINFO_DATA {
  333. DWORD cbSize;
  334. GUID ClassGuid;
  335. DWORD DevInst;
  336. ULONG_PTR Reserved;
  337. } SP_DEVINFO_DATA,*PSP_DEVINFO_DATA;
  338. typedef struct _SP_DEVICE_INTERFACE_DATA {
  339. DWORD cbSize;
  340. GUID InterfaceClassGuid;
  341. DWORD Flags;
  342. ULONG_PTR Reserved;
  343. } SP_DEVICE_INTERFACE_DATA,*PSP_DEVICE_INTERFACE_DATA;
  344. #define SPINT_ACTIVE 0x00000001
  345. #define SPINT_DEFAULT 0x00000002
  346. #define SPINT_REMOVED 0x00000004
  347. typedef SP_DEVICE_INTERFACE_DATA SP_INTERFACE_DEVICE_DATA;
  348. typedef PSP_DEVICE_INTERFACE_DATA PSP_INTERFACE_DEVICE_DATA;
  349. #define SPID_ACTIVE SPINT_ACTIVE
  350. #define SPID_DEFAULT SPINT_DEFAULT
  351. #define SPID_REMOVED SPINT_REMOVED
  352. typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_A {
  353. DWORD cbSize;
  354. CHAR DevicePath[ANYSIZE_ARRAY];
  355. } SP_DEVICE_INTERFACE_DETAIL_DATA_A,*PSP_DEVICE_INTERFACE_DETAIL_DATA_A;
  356. typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W {
  357. DWORD cbSize;
  358. WCHAR DevicePath[ANYSIZE_ARRAY];
  359. } SP_DEVICE_INTERFACE_DETAIL_DATA_W,*PSP_DEVICE_INTERFACE_DETAIL_DATA_W;
  360. __MINGW_TYPEDEF_UAW(SP_DEVICE_INTERFACE_DETAIL_DATA)
  361. __MINGW_TYPEDEF_UAW(PSP_DEVICE_INTERFACE_DETAIL_DATA)
  362. typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA_W;
  363. typedef PSP_DEVICE_INTERFACE_DETAIL_DATA_W PSP_INTERFACE_DEVICE_DETAIL_DATA_W;
  364. typedef SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA_A;
  365. typedef PSP_DEVICE_INTERFACE_DETAIL_DATA_A PSP_INTERFACE_DEVICE_DETAIL_DATA_A;
  366. __MINGW_TYPEDEF_UAW(SP_INTERFACE_DEVICE_DETAIL_DATA)
  367. __MINGW_TYPEDEF_UAW(PSP_INTERFACE_DEVICE_DETAIL_DATA)
  368. typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_A {
  369. DWORD cbSize;
  370. GUID ClassGuid;
  371. HANDLE RemoteMachineHandle;
  372. CHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH];
  373. } SP_DEVINFO_LIST_DETAIL_DATA_A,*PSP_DEVINFO_LIST_DETAIL_DATA_A;
  374. typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_W {
  375. DWORD cbSize;
  376. GUID ClassGuid;
  377. HANDLE RemoteMachineHandle;
  378. WCHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH];
  379. } SP_DEVINFO_LIST_DETAIL_DATA_W,*PSP_DEVINFO_LIST_DETAIL_DATA_W;
  380. __MINGW_TYPEDEF_UAW(SP_DEVINFO_LIST_DETAIL_DATA)
  381. __MINGW_TYPEDEF_UAW(PSP_DEVINFO_LIST_DETAIL_DATA)
  382. #define DIF_SELECTDEVICE 0x00000001
  383. #define DIF_INSTALLDEVICE 0x00000002
  384. #define DIF_ASSIGNRESOURCES 0x00000003
  385. #define DIF_PROPERTIES 0x00000004
  386. #define DIF_REMOVE 0x00000005
  387. #define DIF_FIRSTTIMESETUP 0x00000006
  388. #define DIF_FOUNDDEVICE 0x00000007
  389. #define DIF_SELECTCLASSDRIVERS 0x00000008
  390. #define DIF_VALIDATECLASSDRIVERS 0x00000009
  391. #define DIF_INSTALLCLASSDRIVERS 0x0000000A
  392. #define DIF_CALCDISKSPACE 0x0000000B
  393. #define DIF_DESTROYPRIVATEDATA 0x0000000C
  394. #define DIF_VALIDATEDRIVER 0x0000000D
  395. #define DIF_DETECT 0x0000000F
  396. #define DIF_INSTALLWIZARD 0x00000010
  397. #define DIF_DESTROYWIZARDDATA 0x00000011
  398. #define DIF_PROPERTYCHANGE 0x00000012
  399. #define DIF_ENABLECLASS 0x00000013
  400. #define DIF_DETECTVERIFY 0x00000014
  401. #define DIF_INSTALLDEVICEFILES 0x00000015
  402. #define DIF_UNREMOVE 0x00000016
  403. #define DIF_SELECTBESTCOMPATDRV 0x00000017
  404. #define DIF_ALLOW_INSTALL 0x00000018
  405. #define DIF_REGISTERDEVICE 0x00000019
  406. #define DIF_NEWDEVICEWIZARD_PRESELECT 0x0000001A
  407. #define DIF_NEWDEVICEWIZARD_SELECT 0x0000001B
  408. #define DIF_NEWDEVICEWIZARD_PREANALYZE 0x0000001C
  409. #define DIF_NEWDEVICEWIZARD_POSTANALYZE 0x0000001D
  410. #define DIF_NEWDEVICEWIZARD_FINISHINSTALL 0x0000001E
  411. #define DIF_UNUSED1 0x0000001F
  412. #define DIF_INSTALLINTERFACES 0x00000020
  413. #define DIF_DETECTCANCEL 0x00000021
  414. #define DIF_REGISTER_COINSTALLERS 0x00000022
  415. #define DIF_ADDPROPERTYPAGE_ADVANCED 0x00000023
  416. #define DIF_ADDPROPERTYPAGE_BASIC 0x00000024
  417. #define DIF_RESERVED1 0x00000025
  418. #define DIF_TROUBLESHOOTER 0x00000026
  419. #define DIF_POWERMESSAGEWAKE 0x00000027
  420. #define DIF_ADDREMOTEPROPERTYPAGE_ADVANCED 0x00000028
  421. #define DIF_UPDATEDRIVER_UI 0x00000029
  422. #define DIF_RESERVED2 0x00000030
  423. #define DIF_MOVEDEVICE 0x0000000E
  424. typedef UINT DI_FUNCTION;
  425. typedef struct _SP_DEVINSTALL_PARAMS_A {
  426. DWORD cbSize;
  427. DWORD Flags;
  428. DWORD FlagsEx;
  429. HWND hwndParent;
  430. PSP_FILE_CALLBACK InstallMsgHandler;
  431. PVOID InstallMsgHandlerContext;
  432. HSPFILEQ FileQueue;
  433. ULONG_PTR ClassInstallReserved;
  434. DWORD Reserved;
  435. CHAR DriverPath[MAX_PATH];
  436. } SP_DEVINSTALL_PARAMS_A,*PSP_DEVINSTALL_PARAMS_A;
  437. typedef struct _SP_DEVINSTALL_PARAMS_W {
  438. DWORD cbSize;
  439. DWORD Flags;
  440. DWORD FlagsEx;
  441. HWND hwndParent;
  442. PSP_FILE_CALLBACK InstallMsgHandler;
  443. PVOID InstallMsgHandlerContext;
  444. HSPFILEQ FileQueue;
  445. ULONG_PTR ClassInstallReserved;
  446. DWORD Reserved;
  447. WCHAR DriverPath[MAX_PATH];
  448. } SP_DEVINSTALL_PARAMS_W,*PSP_DEVINSTALL_PARAMS_W;
  449. __MINGW_TYPEDEF_UAW(SP_DEVINSTALL_PARAMS)
  450. __MINGW_TYPEDEF_UAW(PSP_DEVINSTALL_PARAMS)
  451. #define DI_SHOWOEM __MSABI_LONG(0x00000001)
  452. #define DI_SHOWCOMPAT __MSABI_LONG(0x00000002)
  453. #define DI_SHOWCLASS __MSABI_LONG(0x00000004)
  454. #define DI_SHOWALL __MSABI_LONG(0x00000007)
  455. #define DI_NOVCP __MSABI_LONG(0x00000008)
  456. #define DI_DIDCOMPAT __MSABI_LONG(0x00000010)
  457. #define DI_DIDCLASS __MSABI_LONG(0x00000020)
  458. #define DI_AUTOASSIGNRES __MSABI_LONG(0x00000040)
  459. #define DI_NEEDRESTART __MSABI_LONG(0x00000080)
  460. #define DI_NEEDREBOOT __MSABI_LONG(0x00000100)
  461. #define DI_NOBROWSE __MSABI_LONG(0x00000200)
  462. #define DI_MULTMFGS __MSABI_LONG(0x00000400)
  463. #define DI_DISABLED __MSABI_LONG(0x00000800)
  464. #define DI_GENERALPAGE_ADDED __MSABI_LONG(0x00001000)
  465. #define DI_RESOURCEPAGE_ADDED __MSABI_LONG(0x00002000)
  466. #define DI_PROPERTIES_CHANGE __MSABI_LONG(0x00004000)
  467. #define DI_INF_IS_SORTED __MSABI_LONG(0x00008000)
  468. #define DI_ENUMSINGLEINF __MSABI_LONG(0x00010000)
  469. #define DI_DONOTCALLCONFIGMG __MSABI_LONG(0x00020000)
  470. #define DI_INSTALLDISABLED __MSABI_LONG(0x00040000)
  471. #define DI_COMPAT_FROM_CLASS __MSABI_LONG(0x00080000)
  472. #define DI_CLASSINSTALLPARAMS __MSABI_LONG(0x00100000)
  473. #define DI_NODI_DEFAULTACTION __MSABI_LONG(0x00200000)
  474. #define DI_QUIETINSTALL __MSABI_LONG(0x00800000)
  475. #define DI_NOFILECOPY __MSABI_LONG(0x01000000)
  476. #define DI_FORCECOPY __MSABI_LONG(0x02000000)
  477. #define DI_DRIVERPAGE_ADDED __MSABI_LONG(0x04000000)
  478. #define DI_USECI_SELECTSTRINGS __MSABI_LONG(0x08000000)
  479. #define DI_OVERRIDE_INFFLAGS __MSABI_LONG(0x10000000)
  480. #define DI_PROPS_NOCHANGEUSAGE __MSABI_LONG(0x20000000)
  481. #define DI_NOSELECTICONS __MSABI_LONG(0x40000000)
  482. #define DI_NOWRITE_IDS __MSABI_LONG(0x80000000)
  483. #define DI_FLAGSEX_USEOLDINFSEARCH __MSABI_LONG(0x00000001)
  484. #define DI_FLAGSEX_RESERVED2 __MSABI_LONG(0x00000002)
  485. #define DI_FLAGSEX_CI_FAILED __MSABI_LONG(0x00000004)
  486. #define DI_FLAGSEX_DIDINFOLIST __MSABI_LONG(0x00000010)
  487. #define DI_FLAGSEX_DIDCOMPATINFO __MSABI_LONG(0x00000020)
  488. #define DI_FLAGSEX_FILTERCLASSES __MSABI_LONG(0x00000040)
  489. #define DI_FLAGSEX_SETFAILEDINSTALL __MSABI_LONG(0x00000080)
  490. #define DI_FLAGSEX_DEVICECHANGE __MSABI_LONG(0x00000100)
  491. #define DI_FLAGSEX_ALWAYSWRITEIDS __MSABI_LONG(0x00000200)
  492. #define DI_FLAGSEX_PROPCHANGE_PENDING __MSABI_LONG(0x00000400)
  493. #define DI_FLAGSEX_ALLOWEXCLUDEDDRVS __MSABI_LONG(0x00000800)
  494. #define DI_FLAGSEX_NOUIONQUERYREMOVE __MSABI_LONG(0x00001000)
  495. #define DI_FLAGSEX_USECLASSFORCOMPAT __MSABI_LONG(0x00002000)
  496. #define DI_FLAGSEX_RESERVED3 __MSABI_LONG(0x00004000)
  497. #define DI_FLAGSEX_NO_DRVREG_MODIFY __MSABI_LONG(0x00008000)
  498. #define DI_FLAGSEX_IN_SYSTEM_SETUP __MSABI_LONG(0x00010000)
  499. #define DI_FLAGSEX_INET_DRIVER __MSABI_LONG(0x00020000)
  500. #define DI_FLAGSEX_APPENDDRIVERLIST __MSABI_LONG(0x00040000)
  501. #define DI_FLAGSEX_PREINSTALLBACKUP __MSABI_LONG(0x00080000)
  502. #define DI_FLAGSEX_BACKUPONREPLACE __MSABI_LONG(0x00100000)
  503. #define DI_FLAGSEX_DRIVERLIST_FROM_URL __MSABI_LONG(0x00200000)
  504. #define DI_FLAGSEX_RESERVED1 __MSABI_LONG(0x00400000)
  505. #define DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS __MSABI_LONG(0x00800000)
  506. #define DI_FLAGSEX_POWERPAGE_ADDED __MSABI_LONG(0x01000000)
  507. #define DI_FLAGSEX_FILTERSIMILARDRIVERS __MSABI_LONG(0x02000000)
  508. #define DI_FLAGSEX_INSTALLEDDRIVER __MSABI_LONG(0x04000000)
  509. #define DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE __MSABI_LONG(0x08000000)
  510. #define DI_FLAGSEX_ALTPLATFORM_DRVSEARCH __MSABI_LONG(0x10000000)
  511. #define DI_FLAGSEX_RESTART_DEVICE_ONLY __MSABI_LONG(0x20000000)
  512. typedef struct _SP_CLASSINSTALL_HEADER {
  513. DWORD cbSize;
  514. DI_FUNCTION InstallFunction;
  515. } SP_CLASSINSTALL_HEADER,*PSP_CLASSINSTALL_HEADER;
  516. typedef struct _SP_ENABLECLASS_PARAMS {
  517. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  518. GUID ClassGuid;
  519. DWORD EnableMessage;
  520. } SP_ENABLECLASS_PARAMS,*PSP_ENABLECLASS_PARAMS;
  521. #define ENABLECLASS_QUERY 0
  522. #define ENABLECLASS_SUCCESS 1
  523. #define ENABLECLASS_FAILURE 2
  524. #define DICS_ENABLE 0x00000001
  525. #define DICS_DISABLE 0x00000002
  526. #define DICS_PROPCHANGE 0x00000003
  527. #define DICS_START 0x00000004
  528. #define DICS_STOP 0x00000005
  529. #define DICS_FLAG_GLOBAL 0x00000001
  530. #define DICS_FLAG_CONFIGSPECIFIC 0x00000002
  531. #define DICS_FLAG_CONFIGGENERAL 0x00000004
  532. typedef struct _SP_PROPCHANGE_PARAMS {
  533. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  534. DWORD StateChange;
  535. DWORD Scope;
  536. DWORD HwProfile;
  537. } SP_PROPCHANGE_PARAMS,*PSP_PROPCHANGE_PARAMS;
  538. typedef struct _SP_REMOVEDEVICE_PARAMS {
  539. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  540. DWORD Scope;
  541. DWORD HwProfile;
  542. } SP_REMOVEDEVICE_PARAMS,*PSP_REMOVEDEVICE_PARAMS;
  543. #define DI_REMOVEDEVICE_GLOBAL 0x00000001
  544. #define DI_REMOVEDEVICE_CONFIGSPECIFIC 0x00000002
  545. typedef struct _SP_UNREMOVEDEVICE_PARAMS {
  546. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  547. DWORD Scope;
  548. DWORD HwProfile;
  549. } SP_UNREMOVEDEVICE_PARAMS,*PSP_UNREMOVEDEVICE_PARAMS;
  550. #define DI_UNREMOVEDEVICE_CONFIGSPECIFIC 0x00000002
  551. typedef struct _SP_SELECTDEVICE_PARAMS_A {
  552. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  553. CHAR Title[MAX_TITLE_LEN];
  554. CHAR Instructions[MAX_INSTRUCTION_LEN];
  555. CHAR ListLabel[MAX_LABEL_LEN];
  556. CHAR SubTitle[MAX_SUBTITLE_LEN];
  557. BYTE Reserved[2];
  558. } SP_SELECTDEVICE_PARAMS_A,*PSP_SELECTDEVICE_PARAMS_A;
  559. typedef struct _SP_SELECTDEVICE_PARAMS_W {
  560. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  561. WCHAR Title[MAX_TITLE_LEN];
  562. WCHAR Instructions[MAX_INSTRUCTION_LEN];
  563. WCHAR ListLabel[MAX_LABEL_LEN];
  564. WCHAR SubTitle[MAX_SUBTITLE_LEN];
  565. } SP_SELECTDEVICE_PARAMS_W,*PSP_SELECTDEVICE_PARAMS_W;
  566. __MINGW_TYPEDEF_UAW(SP_SELECTDEVICE_PARAMS)
  567. __MINGW_TYPEDEF_UAW(PSP_SELECTDEVICE_PARAMS)
  568. typedef WINBOOL (CALLBACK *PDETECT_PROGRESS_NOTIFY)(PVOID ProgressNotifyParam,DWORD DetectComplete);
  569. typedef struct _SP_DETECTDEVICE_PARAMS {
  570. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  571. PDETECT_PROGRESS_NOTIFY DetectProgressNotify;
  572. PVOID ProgressNotifyParam;
  573. } SP_DETECTDEVICE_PARAMS,*PSP_DETECTDEVICE_PARAMS;
  574. #define MAX_INSTALLWIZARD_DYNAPAGES 20
  575. typedef struct _SP_INSTALLWIZARD_DATA {
  576. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  577. DWORD Flags;
  578. HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES];
  579. DWORD NumDynamicPages;
  580. DWORD DynamicPageFlags;
  581. DWORD PrivateFlags;
  582. LPARAM PrivateData;
  583. HWND hwndWizardDlg;
  584. } SP_INSTALLWIZARD_DATA,*PSP_INSTALLWIZARD_DATA;
  585. #define NDW_INSTALLFLAG_DIDFACTDEFS 0x00000001
  586. #define NDW_INSTALLFLAG_HARDWAREALLREADYIN 0x00000002
  587. #define NDW_INSTALLFLAG_NEEDRESTART DI_NEEDRESTART
  588. #define NDW_INSTALLFLAG_NEEDREBOOT DI_NEEDREBOOT
  589. #define NDW_INSTALLFLAG_NEEDSHUTDOWN 0x00000200
  590. #define NDW_INSTALLFLAG_EXPRESSINTRO 0x00000400
  591. #define NDW_INSTALLFLAG_SKIPISDEVINSTALLED 0x00000800
  592. #define NDW_INSTALLFLAG_NODETECTEDDEVS 0x00001000
  593. #define NDW_INSTALLFLAG_INSTALLSPECIFIC 0x00002000
  594. #define NDW_INSTALLFLAG_SKIPCLASSLIST 0x00004000
  595. #define NDW_INSTALLFLAG_CI_PICKED_OEM 0x00008000
  596. #define NDW_INSTALLFLAG_PCMCIAMODE 0x00010000
  597. #define NDW_INSTALLFLAG_PCMCIADEVICE 0x00020000
  598. #define NDW_INSTALLFLAG_USERCANCEL 0x00040000
  599. #define NDW_INSTALLFLAG_KNOWNCLASS 0x00080000
  600. #define DYNAWIZ_FLAG_PAGESADDED 0x00000001
  601. #define DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT 0x00000008
  602. #define DYNAWIZ_FLAG_INSTALLDET_NEXT 0x00000002
  603. #define DYNAWIZ_FLAG_INSTALLDET_PREV 0x00000004
  604. #define MIN_IDD_DYNAWIZ_RESOURCE_ID 10000
  605. #define MAX_IDD_DYNAWIZ_RESOURCE_ID 11000
  606. #define IDD_DYNAWIZ_FIRSTPAGE 10000
  607. #define IDD_DYNAWIZ_SELECT_PREVPAGE 10001
  608. #define IDD_DYNAWIZ_SELECT_NEXTPAGE 10002
  609. #define IDD_DYNAWIZ_ANALYZE_PREVPAGE 10003
  610. #define IDD_DYNAWIZ_ANALYZE_NEXTPAGE 10004
  611. #define IDD_DYNAWIZ_SELECTDEV_PAGE 10009
  612. #define IDD_DYNAWIZ_ANALYZEDEV_PAGE 10010
  613. #define IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE 10011
  614. #define IDD_DYNAWIZ_SELECTCLASS_PAGE 10012
  615. #define IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE 10006
  616. #define IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE 10007
  617. #define IDD_DYNAWIZ_INSTALLDETECTED_NODEVS 10008
  618. typedef struct _SP_NEWDEVICEWIZARD_DATA {
  619. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  620. DWORD Flags;
  621. HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES];
  622. DWORD NumDynamicPages;
  623. HWND hwndWizardDlg;
  624. } SP_NEWDEVICEWIZARD_DATA,*PSP_NEWDEVICEWIZARD_DATA;
  625. typedef SP_NEWDEVICEWIZARD_DATA SP_ADDPROPERTYPAGE_DATA;
  626. typedef PSP_NEWDEVICEWIZARD_DATA PSP_ADDPROPERTYPAGE_DATA;
  627. typedef struct _SP_TROUBLESHOOTER_PARAMS_A {
  628. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  629. CHAR ChmFile[MAX_PATH];
  630. CHAR HtmlTroubleShooter[MAX_PATH];
  631. } SP_TROUBLESHOOTER_PARAMS_A,*PSP_TROUBLESHOOTER_PARAMS_A;
  632. typedef struct _SP_TROUBLESHOOTER_PARAMS_W {
  633. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  634. WCHAR ChmFile[MAX_PATH];
  635. WCHAR HtmlTroubleShooter[MAX_PATH];
  636. } SP_TROUBLESHOOTER_PARAMS_W,*PSP_TROUBLESHOOTER_PARAMS_W;
  637. __MINGW_TYPEDEF_UAW(SP_TROUBLESHOOTER_PARAMS)
  638. __MINGW_TYPEDEF_UAW(PSP_TROUBLESHOOTER_PARAMS)
  639. typedef struct _SP_POWERMESSAGEWAKE_PARAMS_A {
  640. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  641. CHAR PowerMessageWake[LINE_LEN*2];
  642. } SP_POWERMESSAGEWAKE_PARAMS_A,*PSP_POWERMESSAGEWAKE_PARAMS_A;
  643. typedef struct _SP_POWERMESSAGEWAKE_PARAMS_W {
  644. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  645. WCHAR PowerMessageWake[LINE_LEN*2];
  646. } SP_POWERMESSAGEWAKE_PARAMS_W,*PSP_POWERMESSAGEWAKE_PARAMS_W;
  647. __MINGW_TYPEDEF_UAW(SP_POWERMESSAGEWAKE_PARAMS)
  648. __MINGW_TYPEDEF_UAW(PSP_POWERMESSAGEWAKE_PARAMS)
  649. typedef struct _SP_DRVINFO_DATA_V2_A {
  650. DWORD cbSize;
  651. DWORD DriverType;
  652. ULONG_PTR Reserved;
  653. CHAR Description[LINE_LEN];
  654. CHAR MfgName[LINE_LEN];
  655. CHAR ProviderName[LINE_LEN];
  656. FILETIME DriverDate;
  657. DWORDLONG DriverVersion;
  658. } SP_DRVINFO_DATA_V2_A,*PSP_DRVINFO_DATA_V2_A;
  659. typedef struct _SP_DRVINFO_DATA_V2_W {
  660. DWORD cbSize;
  661. DWORD DriverType;
  662. ULONG_PTR Reserved;
  663. WCHAR Description[LINE_LEN];
  664. WCHAR MfgName[LINE_LEN];
  665. WCHAR ProviderName[LINE_LEN];
  666. FILETIME DriverDate;
  667. DWORDLONG DriverVersion;
  668. } SP_DRVINFO_DATA_V2_W,*PSP_DRVINFO_DATA_V2_W;
  669. typedef struct _SP_DRVINFO_DATA_V1_A {
  670. DWORD cbSize;
  671. DWORD DriverType;
  672. ULONG_PTR Reserved;
  673. CHAR Description[LINE_LEN];
  674. CHAR MfgName[LINE_LEN];
  675. CHAR ProviderName[LINE_LEN];
  676. } SP_DRVINFO_DATA_V1_A,*PSP_DRVINFO_DATA_V1_A;
  677. typedef struct _SP_DRVINFO_DATA_V1_W {
  678. DWORD cbSize;
  679. DWORD DriverType;
  680. ULONG_PTR Reserved;
  681. WCHAR Description[LINE_LEN];
  682. WCHAR MfgName[LINE_LEN];
  683. WCHAR ProviderName[LINE_LEN];
  684. } SP_DRVINFO_DATA_V1_W,*PSP_DRVINFO_DATA_V1_W;
  685. __MINGW_TYPEDEF_UAW(SP_DRVINFO_DATA_V1)
  686. __MINGW_TYPEDEF_UAW(PSP_DRVINFO_DATA_V1)
  687. __MINGW_TYPEDEF_UAW(SP_DRVINFO_DATA_V2)
  688. __MINGW_TYPEDEF_UAW(PSP_DRVINFO_DATA_V2)
  689. #if USE_SP_DRVINFO_DATA_V1
  690. typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_A;
  691. typedef PSP_DRVINFO_DATA_V1_A PSP_DRVINFO_DATA_A;
  692. typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_W;
  693. typedef PSP_DRVINFO_DATA_V1_W PSP_DRVINFO_DATA_W;
  694. typedef SP_DRVINFO_DATA_V1 SP_DRVINFO_DATA;
  695. typedef PSP_DRVINFO_DATA_V1 PSP_DRVINFO_DATA;
  696. #else
  697. typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_A;
  698. typedef PSP_DRVINFO_DATA_V2_A PSP_DRVINFO_DATA_A;
  699. typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_W;
  700. typedef PSP_DRVINFO_DATA_V2_W PSP_DRVINFO_DATA_W;
  701. typedef SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA;
  702. typedef PSP_DRVINFO_DATA_V2 PSP_DRVINFO_DATA;
  703. #endif
  704. typedef struct _SP_DRVINFO_DETAIL_DATA_A {
  705. DWORD cbSize;
  706. FILETIME InfDate;
  707. DWORD CompatIDsOffset;
  708. DWORD CompatIDsLength;
  709. ULONG_PTR Reserved;
  710. CHAR SectionName[LINE_LEN];
  711. CHAR InfFileName[MAX_PATH];
  712. CHAR DrvDescription[LINE_LEN];
  713. CHAR HardwareID[ANYSIZE_ARRAY];
  714. } SP_DRVINFO_DETAIL_DATA_A,*PSP_DRVINFO_DETAIL_DATA_A;
  715. typedef struct _SP_DRVINFO_DETAIL_DATA_W {
  716. DWORD cbSize;
  717. FILETIME InfDate;
  718. DWORD CompatIDsOffset;
  719. DWORD CompatIDsLength;
  720. ULONG_PTR Reserved;
  721. WCHAR SectionName[LINE_LEN];
  722. WCHAR InfFileName[MAX_PATH];
  723. WCHAR DrvDescription[LINE_LEN];
  724. WCHAR HardwareID[ANYSIZE_ARRAY];
  725. } SP_DRVINFO_DETAIL_DATA_W,*PSP_DRVINFO_DETAIL_DATA_W;
  726. __MINGW_TYPEDEF_UAW(SP_DRVINFO_DETAIL_DATA)
  727. __MINGW_TYPEDEF_UAW(PSP_DRVINFO_DETAIL_DATA)
  728. typedef struct _SP_DRVINSTALL_PARAMS {
  729. DWORD cbSize;
  730. DWORD Rank;
  731. DWORD Flags;
  732. DWORD_PTR PrivateData;
  733. DWORD Reserved;
  734. } SP_DRVINSTALL_PARAMS,*PSP_DRVINSTALL_PARAMS;
  735. #define DNF_DUPDESC 0x00000001
  736. #define DNF_OLDDRIVER 0x00000002
  737. #define DNF_EXCLUDEFROMLIST 0x00000004
  738. #define DNF_NODRIVER 0x00000008
  739. #define DNF_LEGACYINF 0x00000010
  740. #define DNF_CLASS_DRIVER 0x00000020
  741. #define DNF_COMPATIBLE_DRIVER 0x00000040
  742. #define DNF_INET_DRIVER 0x00000080
  743. #define DNF_UNUSED1 0x00000100
  744. #define DNF_INDEXED_DRIVER 0x00000200
  745. #define DNF_OLD_INET_DRIVER 0x00000400
  746. #define DNF_BAD_DRIVER 0x00000800
  747. #define DNF_DUPPROVIDER 0x00001000
  748. #define DNF_INF_IS_SIGNED 0x00002000
  749. #define DNF_OEM_F6_INF 0x00004000
  750. #define DNF_DUPDRIVERVER 0x00008000
  751. #define DNF_BASIC_DRIVER 0x00010000
  752. #define DNF_AUTHENTICODE_SIGNED 0x00020000
  753. #define DRIVER_HARDWAREID_RANK 0x00000FFF
  754. #define DRIVER_COMPATID_RANK 0x00003FFF
  755. #define DRIVER_UNTRUSTED_RANK 0x00008000
  756. #define DRIVER_UNTRUSTED_HARDWAREID_RANK 0x00008FFF
  757. #define DRIVER_UNTRUSTED_COMPATID_RANK 0x0000BFFF
  758. #define DRIVER_W9X_SUSPECT_RANK 0x0000C000
  759. #define DRIVER_W9X_SUSPECT_HARDWAREID_RANK 0x0000CFFF
  760. #define DRIVER_W9X_SUSPECT_COMPATID_RANK 0x0000FFFF
  761. typedef DWORD (CALLBACK *PSP_DETSIG_CMPPROC)(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA NewDeviceData,PSP_DEVINFO_DATA ExistingDeviceData,PVOID CompareContext);
  762. typedef struct _COINSTALLER_CONTEXT_DATA {
  763. WINBOOL PostProcessing;
  764. DWORD InstallResult;
  765. PVOID PrivateData;
  766. } COINSTALLER_CONTEXT_DATA,*PCOINSTALLER_CONTEXT_DATA;
  767. typedef struct _SP_CLASSIMAGELIST_DATA {
  768. DWORD cbSize;
  769. HIMAGELIST ImageList;
  770. ULONG_PTR Reserved;
  771. } SP_CLASSIMAGELIST_DATA,*PSP_CLASSIMAGELIST_DATA;
  772. typedef struct _SP_PROPSHEETPAGE_REQUEST {
  773. DWORD cbSize;
  774. DWORD PageRequested;
  775. HDEVINFO DeviceInfoSet;
  776. PSP_DEVINFO_DATA DeviceInfoData;
  777. } SP_PROPSHEETPAGE_REQUEST,*PSP_PROPSHEETPAGE_REQUEST;
  778. #define SPPSR_SELECT_DEVICE_RESOURCES 1
  779. #define SPPSR_ENUM_BASIC_DEVICE_PROPERTIES 2
  780. #define SPPSR_ENUM_ADV_DEVICE_PROPERTIES 3
  781. typedef struct _SP_BACKUP_QUEUE_PARAMS_V2_A {
  782. DWORD cbSize;
  783. CHAR FullInfPath[MAX_PATH];
  784. INT FilenameOffset;
  785. CHAR ReinstallInstance[MAX_PATH];
  786. } SP_BACKUP_QUEUE_PARAMS_V2_A,*PSP_BACKUP_QUEUE_PARAMS_V2_A;
  787. typedef struct _SP_BACKUP_QUEUE_PARAMS_V2_W {
  788. DWORD cbSize;
  789. WCHAR FullInfPath[MAX_PATH];
  790. INT FilenameOffset;
  791. WCHAR ReinstallInstance[MAX_PATH];
  792. } SP_BACKUP_QUEUE_PARAMS_V2_W,*PSP_BACKUP_QUEUE_PARAMS_V2_W;
  793. typedef struct _SP_BACKUP_QUEUE_PARAMS_V1_A {
  794. DWORD cbSize;
  795. CHAR FullInfPath[MAX_PATH];
  796. INT FilenameOffset;
  797. } SP_BACKUP_QUEUE_PARAMS_V1_A,*PSP_BACKUP_QUEUE_PARAMS_V1_A;
  798. typedef struct _SP_BACKUP_QUEUE_PARAMS_V1_W {
  799. DWORD cbSize;
  800. WCHAR FullInfPath[MAX_PATH];
  801. INT FilenameOffset;
  802. } SP_BACKUP_QUEUE_PARAMS_V1_W,*PSP_BACKUP_QUEUE_PARAMS_V1_W;
  803. __MINGW_TYPEDEF_UAW(SP_BACKUP_QUEUE_PARAMS_V1)
  804. __MINGW_TYPEDEF_UAW(PSP_BACKUP_QUEUE_PARAMS_V1)
  805. __MINGW_TYPEDEF_UAW(SP_BACKUP_QUEUE_PARAMS_V2)
  806. __MINGW_TYPEDEF_UAW(PSP_BACKUP_QUEUE_PARAMS_V2)
  807. #if USE_SP_BACKUP_QUEUE_PARAMS_V1
  808. typedef SP_BACKUP_QUEUE_PARAMS_V1_A SP_BACKUP_QUEUE_PARAMS_A;
  809. typedef PSP_BACKUP_QUEUE_PARAMS_V1_A PSP_BACKUP_QUEUE_PARAMS_A;
  810. typedef SP_BACKUP_QUEUE_PARAMS_V1_W SP_BACKUP_QUEUE_PARAMS_W;
  811. typedef PSP_BACKUP_QUEUE_PARAMS_V1_W PSP_BACKUP_QUEUE_PARAMS_W;
  812. typedef SP_BACKUP_QUEUE_PARAMS_V1 SP_BACKUP_QUEUE_PARAMS;
  813. typedef PSP_BACKUP_QUEUE_PARAMS_V1 PSP_BACKUP_QUEUE_PARAMS;
  814. #else
  815. typedef SP_BACKUP_QUEUE_PARAMS_V2_A SP_BACKUP_QUEUE_PARAMS_A;
  816. typedef PSP_BACKUP_QUEUE_PARAMS_V2_A PSP_BACKUP_QUEUE_PARAMS_A;
  817. typedef SP_BACKUP_QUEUE_PARAMS_V2_W SP_BACKUP_QUEUE_PARAMS_W;
  818. typedef PSP_BACKUP_QUEUE_PARAMS_V2_W PSP_BACKUP_QUEUE_PARAMS_W;
  819. typedef SP_BACKUP_QUEUE_PARAMS_V2 SP_BACKUP_QUEUE_PARAMS;
  820. typedef PSP_BACKUP_QUEUE_PARAMS_V2 PSP_BACKUP_QUEUE_PARAMS;
  821. #endif
  822. #define ERROR_EXPECTED_SECTION_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0)
  823. #define ERROR_BAD_SECTION_NAME_LINE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|1)
  824. #define ERROR_SECTION_NAME_TOO_LONG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|2)
  825. #define ERROR_GENERAL_SYNTAX (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|3)
  826. #define ERROR_WRONG_INF_STYLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x100)
  827. #define ERROR_SECTION_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x101)
  828. #define ERROR_LINE_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x102)
  829. #define ERROR_NO_BACKUP (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x103)
  830. #define ERROR_NO_ASSOCIATED_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x200)
  831. #define ERROR_CLASS_MISMATCH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x201)
  832. #define ERROR_DUPLICATE_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x202)
  833. #define ERROR_NO_DRIVER_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x203)
  834. #define ERROR_KEY_DOES_NOT_EXIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x204)
  835. #define ERROR_INVALID_DEVINST_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x205)
  836. #define ERROR_INVALID_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x206)
  837. #define ERROR_DEVINST_ALREADY_EXISTS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x207)
  838. #define ERROR_DEVINFO_NOT_REGISTERED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x208)
  839. #define ERROR_INVALID_REG_PROPERTY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x209)
  840. #define ERROR_NO_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20A)
  841. #define ERROR_NO_SUCH_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20B)
  842. #define ERROR_CANT_LOAD_CLASS_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20C)
  843. #define ERROR_INVALID_CLASS_INSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20D)
  844. #define ERROR_DI_DO_DEFAULT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20E)
  845. #define ERROR_DI_NOFILECOPY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20F)
  846. #define ERROR_INVALID_HWPROFILE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x210)
  847. #define ERROR_NO_DEVICE_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x211)
  848. #define ERROR_DEVINFO_LIST_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x212)
  849. #define ERROR_DEVINFO_DATA_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x213)
  850. #define ERROR_DI_BAD_PATH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x214)
  851. #define ERROR_NO_CLASSINSTALL_PARAMS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x215)
  852. #define ERROR_FILEQUEUE_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x216)
  853. #define ERROR_BAD_SERVICE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x217)
  854. #define ERROR_NO_CLASS_DRIVER_LIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x218)
  855. #define ERROR_NO_ASSOCIATED_SERVICE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x219)
  856. #define ERROR_NO_DEFAULT_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21A)
  857. #define ERROR_DEVICE_INTERFACE_ACTIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21B)
  858. #define ERROR_DEVICE_INTERFACE_REMOVED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21C)
  859. #define ERROR_BAD_INTERFACE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21D)
  860. #define ERROR_NO_SUCH_INTERFACE_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21E)
  861. #define ERROR_INVALID_REFERENCE_STRING (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21F)
  862. #define ERROR_INVALID_MACHINENAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x220)
  863. #define ERROR_REMOTE_COMM_FAILURE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x221)
  864. #define ERROR_MACHINE_UNAVAILABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x222)
  865. #define ERROR_NO_CONFIGMGR_SERVICES (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x223)
  866. #define ERROR_INVALID_PROPPAGE_PROVIDER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x224)
  867. #define ERROR_NO_SUCH_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x225)
  868. #define ERROR_DI_POSTPROCESSING_REQUIRED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x226)
  869. #define ERROR_INVALID_COINSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x227)
  870. #define ERROR_NO_COMPAT_DRIVERS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x228)
  871. #define ERROR_NO_DEVICE_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x229)
  872. #define ERROR_INVALID_INF_LOGCONFIG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22A)
  873. #define ERROR_DI_DONT_INSTALL (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22B)
  874. #define ERROR_INVALID_FILTER_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22C)
  875. #define ERROR_NON_WINDOWS_NT_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22D)
  876. #define ERROR_NON_WINDOWS_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22E)
  877. #define ERROR_NO_CATALOG_FOR_OEM_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22F)
  878. #define ERROR_DEVINSTALL_QUEUE_NONNATIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x230)
  879. #define ERROR_NOT_DISABLEABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x231)
  880. #define ERROR_CANT_REMOVE_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x232)
  881. #define ERROR_INVALID_TARGET (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x233)
  882. #define ERROR_DRIVER_NONNATIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x234)
  883. #define ERROR_IN_WOW64 (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x235)
  884. #define ERROR_SET_SYSTEM_RESTORE_POINT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x236)
  885. #define ERROR_INCORRECTLY_COPIED_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x237)
  886. #define ERROR_SCE_DISABLED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x238)
  887. #define ERROR_UNKNOWN_EXCEPTION (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x239)
  888. #define ERROR_PNP_REGISTRY_ERROR (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23A)
  889. #define ERROR_REMOTE_REQUEST_UNSUPPORTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23B)
  890. #define ERROR_NOT_AN_INSTALLED_OEM_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23C)
  891. #define ERROR_INF_IN_USE_BY_DEVICES (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23D)
  892. #define ERROR_DI_FUNCTION_OBSOLETE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23E)
  893. #define ERROR_NO_AUTHENTICODE_CATALOG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23F)
  894. #define ERROR_AUTHENTICODE_DISALLOWED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x240)
  895. #define ERROR_AUTHENTICODE_TRUSTED_PUBLISHER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x241)
  896. #define ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x242)
  897. #define ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x243)
  898. #define ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x244)
  899. #define ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x245)
  900. #define ERROR_UNRECOVERABLE_STACK_OVERFLOW (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x300)
  901. #define EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW ERROR_UNRECOVERABLE_STACK_OVERFLOW
  902. #define ERROR_NO_DEFAULT_INTERFACE_DEVICE ERROR_NO_DEFAULT_DEVICE_INTERFACE
  903. #define ERROR_INTERFACE_DEVICE_ACTIVE ERROR_DEVICE_INTERFACE_ACTIVE
  904. #define ERROR_INTERFACE_DEVICE_REMOVED ERROR_DEVICE_INTERFACE_REMOVED
  905. #define ERROR_NO_SUCH_INTERFACE_DEVICE ERROR_NO_SUCH_DEVICE_INTERFACE
  906. #define ERROR_NOT_INSTALLED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x1000)
  907. WINSETUPAPI WINBOOL WINAPI SetupGetInfInformationA(LPCVOID InfSpec,DWORD SearchControl,PSP_INF_INFORMATION ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  908. WINSETUPAPI WINBOOL WINAPI SetupGetInfInformationW(LPCVOID InfSpec,DWORD SearchControl,PSP_INF_INFORMATION ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  909. #define INFINFO_INF_SPEC_IS_HINF 1
  910. #define INFINFO_INF_NAME_IS_ABSOLUTE 2
  911. #define INFINFO_DEFAULT_SEARCH 3
  912. #define INFINFO_REVERSE_DEFAULT_SEARCH 4
  913. #define INFINFO_INF_PATH_LIST_SEARCH 5
  914. #define SetupGetInfInformation __MINGW_NAME_AW(SetupGetInfInformation)
  915. #define SetupQueryInfFileInformation __MINGW_NAME_AW(SetupQueryInfFileInformation)
  916. #define SetupQueryInfOriginalFileInformation __MINGW_NAME_AW(SetupQueryInfOriginalFileInformation)
  917. #define SetupQueryInfVersionInformation __MINGW_NAME_AW(SetupQueryInfVersionInformation)
  918. #define SetupGetInfFileList __MINGW_NAME_AW(SetupGetInfFileList)
  919. #define SetupOpenInfFile __MINGW_NAME_AW(SetupOpenInfFile)
  920. #define SetupOpenAppendInfFile __MINGW_NAME_AW(SetupOpenAppendInfFile)
  921. #define SetupFindFirstLine __MINGW_NAME_AW(SetupFindFirstLine)
  922. #define SetupFindNextMatchLine __MINGW_NAME_AW(SetupFindNextMatchLine)
  923. #define SetupGetLineByIndex __MINGW_NAME_AW(SetupGetLineByIndex)
  924. #define SetupGetLineCount __MINGW_NAME_AW(SetupGetLineCount)
  925. #define SetupGetLineText __MINGW_NAME_AW(SetupGetLineText)
  926. #define SetupGetStringField __MINGW_NAME_AW(SetupGetStringField)
  927. #define SetupGetMultiSzField __MINGW_NAME_AW(SetupGetMultiSzField)
  928. #define SetupGetFileCompressionInfo __MINGW_NAME_AW(SetupGetFileCompressionInfo)
  929. #define SetupGetFileCompressionInfoEx __MINGW_NAME_AW(SetupGetFileCompressionInfoEx)
  930. #define SetupDecompressOrCopyFile __MINGW_NAME_AW(SetupDecompressOrCopyFile)
  931. #define SetupGetSourceFileLocation __MINGW_NAME_AW(SetupGetSourceFileLocation)
  932. #define SetupGetSourceFileSize __MINGW_NAME_AW(SetupGetSourceFileSize)
  933. #define SetupGetTargetPath __MINGW_NAME_AW(SetupGetTargetPath)
  934. #define SetupSetSourceList __MINGW_NAME_AW(SetupSetSourceList)
  935. #define SetupAddToSourceList __MINGW_NAME_AW(SetupAddToSourceList)
  936. #define SetupRemoveFromSourceList __MINGW_NAME_AW(SetupRemoveFromSourceList)
  937. #define SetupQuerySourceList __MINGW_NAME_AW(SetupQuerySourceList)
  938. #define SetupFreeSourceList __MINGW_NAME_AW(SetupFreeSourceList)
  939. #define SetupPromptForDisk __MINGW_NAME_AW(SetupPromptForDisk)
  940. #define SetupCopyError __MINGW_NAME_AW(SetupCopyError)
  941. #define SetupRenameError __MINGW_NAME_AW(SetupRenameError)
  942. #define SetupDeleteError __MINGW_NAME_AW(SetupDeleteError)
  943. #define SetupBackupError __MINGW_NAME_AW(SetupBackupError)
  944. #define SRCLIST_TEMPORARY 0x00000001
  945. #define SRCLIST_NOBROWSE 0x00000002
  946. #define SRCLIST_SYSTEM 0x00000010
  947. #define SRCLIST_USER 0x00000020
  948. #define SRCLIST_SYSIFADMIN 0x00000040
  949. #define SRCLIST_SUBDIRS 0x00000100
  950. #define SRCLIST_APPEND 0x00000200
  951. #define SRCLIST_NOSTRIPPLATFORM 0x00000400
  952. #define FILE_COMPRESSION_NONE 0
  953. #define FILE_COMPRESSION_WINLZA 1
  954. #define FILE_COMPRESSION_MSZIP 2
  955. #define FILE_COMPRESSION_NTCAB 3
  956. WINSETUPAPI WINBOOL WINAPI SetupQueryInfFileInformationA(PSP_INF_INFORMATION InfInformation,UINT InfIndex,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  957. WINSETUPAPI WINBOOL WINAPI SetupQueryInfFileInformationW(PSP_INF_INFORMATION InfInformation,UINT InfIndex,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  958. WINSETUPAPI WINBOOL WINAPI SetupQueryInfOriginalFileInformationA(PSP_INF_INFORMATION InfInformation,UINT InfIndex,PSP_ALTPLATFORM_INFO AlternatePlatformInfo,PSP_ORIGINAL_FILE_INFO_A OriginalFileInfo);
  959. WINSETUPAPI WINBOOL WINAPI SetupQueryInfOriginalFileInformationW(PSP_INF_INFORMATION InfInformation,UINT InfIndex,PSP_ALTPLATFORM_INFO AlternatePlatformInfo,PSP_ORIGINAL_FILE_INFO_W OriginalFileInfo);
  960. WINSETUPAPI WINBOOL WINAPI SetupQueryInfVersionInformationA(PSP_INF_INFORMATION InfInformation,UINT InfIndex,PCSTR Key,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  961. WINSETUPAPI WINBOOL WINAPI SetupQueryInfVersionInformationW(PSP_INF_INFORMATION InfInformation,UINT InfIndex,PCWSTR Key,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  962. WINSETUPAPI WINBOOL WINAPI SetupGetInfFileListA(PCSTR DirectoryPath,DWORD InfStyle,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  963. WINSETUPAPI WINBOOL WINAPI SetupGetInfFileListW(PCWSTR DirectoryPath,DWORD InfStyle,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  964. WINSETUPAPI HINF WINAPI SetupOpenInfFileW(PCWSTR FileName,PCWSTR InfClass,DWORD InfStyle,PUINT ErrorLine);
  965. WINSETUPAPI HINF WINAPI SetupOpenInfFileA(PCSTR FileName,PCSTR InfClass,DWORD InfStyle,PUINT ErrorLine);
  966. WINSETUPAPI HINF WINAPI SetupOpenMasterInf(VOID);
  967. WINSETUPAPI WINBOOL WINAPI SetupOpenAppendInfFileW(PCWSTR FileName,HINF InfHandle,PUINT ErrorLine);
  968. WINSETUPAPI WINBOOL WINAPI SetupOpenAppendInfFileA(PCSTR FileName,HINF InfHandle,PUINT ErrorLine);
  969. WINSETUPAPI VOID WINAPI SetupCloseInfFile(HINF InfHandle);
  970. WINSETUPAPI WINBOOL WINAPI SetupFindFirstLineA(HINF InfHandle,PCSTR Section,PCSTR Key,PINFCONTEXT Context);
  971. WINSETUPAPI WINBOOL WINAPI SetupFindFirstLineW(HINF InfHandle,PCWSTR Section,PCWSTR Key,PINFCONTEXT Context);
  972. WINSETUPAPI WINBOOL WINAPI SetupFindNextLine(PINFCONTEXT ContextIn,PINFCONTEXT ContextOut);
  973. WINSETUPAPI WINBOOL WINAPI SetupFindNextMatchLineA(PINFCONTEXT ContextIn,PCSTR Key,PINFCONTEXT ContextOut);
  974. WINSETUPAPI WINBOOL WINAPI SetupFindNextMatchLineW(PINFCONTEXT ContextIn,PCWSTR Key,PINFCONTEXT ContextOut);
  975. WINSETUPAPI WINBOOL WINAPI SetupGetLineByIndexA(HINF InfHandle,PCSTR Section,DWORD Index,PINFCONTEXT Context);
  976. WINSETUPAPI WINBOOL WINAPI SetupGetLineByIndexW(HINF InfHandle,PCWSTR Section,DWORD Index,PINFCONTEXT Context);
  977. WINSETUPAPI LONG WINAPI SetupGetLineCountA(HINF InfHandle,PCSTR Section);
  978. WINSETUPAPI LONG WINAPI SetupGetLineCountW(HINF InfHandle,PCWSTR Section);
  979. WINSETUPAPI WINBOOL WINAPI SetupGetLineTextA(PINFCONTEXT Context,HINF InfHandle,PCSTR Section,PCSTR Key,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  980. WINSETUPAPI WINBOOL WINAPI SetupGetLineTextW(PINFCONTEXT Context,HINF InfHandle,PCWSTR Section,PCWSTR Key,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  981. WINSETUPAPI DWORD WINAPI SetupGetFieldCount(PINFCONTEXT Context);
  982. WINSETUPAPI WINBOOL WINAPI SetupGetStringFieldA(PINFCONTEXT Context,DWORD FieldIndex,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  983. WINSETUPAPI WINBOOL WINAPI SetupGetStringFieldW(PINFCONTEXT Context,DWORD FieldIndex,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  984. WINSETUPAPI WINBOOL WINAPI SetupGetIntField(PINFCONTEXT Context,DWORD FieldIndex,PINT IntegerValue);
  985. WINSETUPAPI WINBOOL WINAPI SetupGetMultiSzFieldA(PINFCONTEXT Context,DWORD FieldIndex,PSTR ReturnBuffer,DWORD ReturnBufferSize,LPDWORD RequiredSize);
  986. WINSETUPAPI WINBOOL WINAPI SetupGetMultiSzFieldW(PINFCONTEXT Context,DWORD FieldIndex,PWSTR ReturnBuffer,DWORD ReturnBufferSize,LPDWORD RequiredSize);
  987. WINSETUPAPI WINBOOL WINAPI SetupGetBinaryField(PINFCONTEXT Context,DWORD FieldIndex,PBYTE ReturnBuffer,DWORD ReturnBufferSize,LPDWORD RequiredSize);
  988. WINSETUPAPI DWORD WINAPI SetupGetFileCompressionInfoA(PCSTR SourceFileName,PSTR *ActualSourceFileName,PDWORD SourceFileSize,PDWORD TargetFileSize,PUINT CompressionType);
  989. WINSETUPAPI DWORD WINAPI SetupGetFileCompressionInfoW(PCWSTR SourceFileName,PWSTR *ActualSourceFileName,PDWORD SourceFileSize,PDWORD TargetFileSize,PUINT CompressionType);
  990. WINSETUPAPI WINBOOL WINAPI SetupGetFileCompressionInfoExA(PCSTR SourceFileName,PSTR ActualSourceFileNameBuffer,DWORD ActualSourceFileNameBufferLen,PDWORD RequiredBufferLen,PDWORD SourceFileSize,PDWORD TargetFileSize,PUINT CompressionType);
  991. WINSETUPAPI WINBOOL WINAPI SetupGetFileCompressionInfoExW(PCWSTR SourceFileName,PWSTR ActualSourceFileNameBuffer,DWORD ActualSourceFileNameBufferLen,PDWORD RequiredBufferLen,PDWORD SourceFileSize,PDWORD TargetFileSize,PUINT CompressionType);
  992. WINSETUPAPI DWORD WINAPI SetupDecompressOrCopyFileA(PCSTR SourceFileName,PCSTR TargetFileName,PUINT CompressionType);
  993. WINSETUPAPI DWORD WINAPI SetupDecompressOrCopyFileW(PCWSTR SourceFileName,PCWSTR TargetFileName,PUINT CompressionType);
  994. WINSETUPAPI WINBOOL WINAPI SetupGetSourceFileLocationA(HINF InfHandle,PINFCONTEXT InfContext,PCSTR FileName,PUINT SourceId,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  995. WINSETUPAPI WINBOOL WINAPI SetupGetSourceFileLocationW(HINF InfHandle,PINFCONTEXT InfContext,PCWSTR FileName,PUINT SourceId,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  996. WINSETUPAPI WINBOOL WINAPI SetupGetSourceFileSizeA(HINF InfHandle,PINFCONTEXT InfContext,PCSTR FileName,PCSTR Section,PDWORD FileSize,UINT RoundingFactor);
  997. WINSETUPAPI WINBOOL WINAPI SetupGetSourceFileSizeW(HINF InfHandle,PINFCONTEXT InfContext,PCWSTR FileName,PCWSTR Section,PDWORD FileSize,UINT RoundingFactor);
  998. WINSETUPAPI WINBOOL WINAPI SetupGetTargetPathA(HINF InfHandle,PINFCONTEXT InfContext,PCSTR Section,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  999. WINSETUPAPI WINBOOL WINAPI SetupGetTargetPathW(HINF InfHandle,PINFCONTEXT InfContext,PCWSTR Section,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  1000. WINSETUPAPI WINBOOL WINAPI SetupSetSourceListA(DWORD Flags,PCSTR *SourceList,UINT SourceCount);
  1001. WINSETUPAPI WINBOOL WINAPI SetupSetSourceListW(DWORD Flags,PCWSTR *SourceList,UINT SourceCount);
  1002. WINSETUPAPI WINBOOL WINAPI SetupCancelTemporarySourceList(VOID);
  1003. WINSETUPAPI WINBOOL WINAPI SetupAddToSourceListA(DWORD Flags,PCSTR Source);
  1004. WINSETUPAPI WINBOOL WINAPI SetupAddToSourceListW(DWORD Flags,PCWSTR Source);
  1005. WINSETUPAPI WINBOOL WINAPI SetupRemoveFromSourceListA(DWORD Flags,PCSTR Source);
  1006. WINSETUPAPI WINBOOL WINAPI SetupRemoveFromSourceListW(DWORD Flags,PCWSTR Source);
  1007. WINSETUPAPI WINBOOL WINAPI SetupQuerySourceListA(DWORD Flags,PCSTR **List,PUINT Count);
  1008. WINSETUPAPI WINBOOL WINAPI SetupQuerySourceListW(DWORD Flags,PCWSTR **List,PUINT Count);
  1009. WINSETUPAPI WINBOOL WINAPI SetupFreeSourceListA(PCSTR **List,UINT Count);
  1010. WINSETUPAPI WINBOOL WINAPI SetupFreeSourceListW(PCWSTR **List,UINT Count);
  1011. WINSETUPAPI UINT WINAPI SetupPromptForDiskA(HWND hwndParent,PCSTR DialogTitle,PCSTR DiskName,PCSTR PathToSource,PCSTR FileSought,PCSTR TagFile,DWORD DiskPromptStyle,PSTR PathBuffer,DWORD PathBufferSize,PDWORD PathRequiredSize);
  1012. WINSETUPAPI UINT WINAPI SetupPromptForDiskW(HWND hwndParent,PCWSTR DialogTitle,PCWSTR DiskName,PCWSTR PathToSource,PCWSTR FileSought,PCWSTR TagFile,DWORD DiskPromptStyle,PWSTR PathBuffer,DWORD PathBufferSize,PDWORD PathRequiredSize);
  1013. WINSETUPAPI UINT WINAPI SetupCopyErrorA(HWND hwndParent,PCSTR DialogTitle,PCSTR DiskName,PCSTR PathToSource,PCSTR SourceFile,PCSTR TargetPathFile,UINT Win32ErrorCode,DWORD Style,PSTR PathBuffer,DWORD PathBufferSize,PDWORD PathRequiredSize);
  1014. WINSETUPAPI UINT WINAPI SetupCopyErrorW(HWND hwndParent,PCWSTR DialogTitle,PCWSTR DiskName,PCWSTR PathToSource,PCWSTR SourceFile,PCWSTR TargetPathFile,UINT Win32ErrorCode,DWORD Style,PWSTR PathBuffer,DWORD PathBufferSize,PDWORD PathRequiredSize);
  1015. WINSETUPAPI UINT WINAPI SetupRenameErrorA(HWND hwndParent,PCSTR DialogTitle,PCSTR SourceFile,PCSTR TargetFile,UINT Win32ErrorCode,DWORD Style);
  1016. WINSETUPAPI UINT WINAPI SetupRenameErrorW(HWND hwndParent,PCWSTR DialogTitle,PCWSTR SourceFile,PCWSTR TargetFile,UINT Win32ErrorCode,DWORD Style);
  1017. WINSETUPAPI UINT WINAPI SetupDeleteErrorA(HWND hwndParent,PCSTR DialogTitle,PCSTR File,UINT Win32ErrorCode,DWORD Style);
  1018. WINSETUPAPI UINT WINAPI SetupDeleteErrorW(HWND hwndParent,PCWSTR DialogTitle,PCWSTR File,UINT Win32ErrorCode,DWORD Style);
  1019. WINSETUPAPI UIN