setupapi.h 105 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901
  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. /* FIXME: #include <spapidef.h> */
  22. #include <commctrl.h>
  23. #include <devpropdef.h>
  24. #ifdef _WIN64
  25. #include <pshpack8.h>
  26. #else
  27. #include <pshpack1.h>
  28. #endif
  29. #ifdef __cplusplus
  30. extern "C" {
  31. #endif
  32. #define LINE_LEN 256
  33. #define MAX_INF_STRING_LENGTH 4096
  34. #define MAX_INF_SECTION_NAME_LENGTH 255
  35. #define MAX_TITLE_LEN 60
  36. #define MAX_INSTRUCTION_LEN 256
  37. #define MAX_LABEL_LEN 30
  38. #define MAX_SERVICE_NAME_LEN 256
  39. #define MAX_SUBTITLE_LEN 256
  40. #define SP_MAX_MACHINENAME_LENGTH (MAX_PATH + 3)
  41. typedef PVOID HINF;
  42. typedef struct _INFCONTEXT {
  43. PVOID Inf;
  44. PVOID CurrentInf;
  45. UINT Section;
  46. UINT Line;
  47. } INFCONTEXT,*PINFCONTEXT;
  48. typedef struct _SP_INF_INFORMATION {
  49. DWORD InfStyle;
  50. DWORD InfCount;
  51. BYTE VersionData[ANYSIZE_ARRAY];
  52. } SP_INF_INFORMATION,*PSP_INF_INFORMATION;
  53. typedef struct _SP_ALTPLATFORM_INFO_V2 {
  54. DWORD cbSize;
  55. DWORD Platform;
  56. DWORD MajorVersion;
  57. DWORD MinorVersion;
  58. WORD ProcessorArchitecture;
  59. __C89_NAMELESS union {
  60. WORD Reserved;
  61. WORD Flags;
  62. };
  63. DWORD FirstValidatedMajorVersion;
  64. DWORD FirstValidatedMinorVersion;
  65. } SP_ALTPLATFORM_INFO_V2,*PSP_ALTPLATFORM_INFO_V2;
  66. typedef struct _SP_ALTPLATFORM_INFO_V1 {
  67. DWORD cbSize;
  68. DWORD Platform;
  69. DWORD MajorVersion;
  70. DWORD MinorVersion;
  71. WORD ProcessorArchitecture;
  72. WORD Reserved;
  73. } SP_ALTPLATFORM_INFO_V1,*PSP_ALTPLATFORM_INFO_V1;
  74. #if USE_SP_ALTPLATFORM_INFO_V1
  75. typedef SP_ALTPLATFORM_INFO_V1 SP_ALTPLATFORM_INFO;
  76. typedef PSP_ALTPLATFORM_INFO_V1 PSP_ALTPLATFORM_INFO;
  77. #else
  78. typedef SP_ALTPLATFORM_INFO_V2 SP_ALTPLATFORM_INFO;
  79. typedef PSP_ALTPLATFORM_INFO_V2 PSP_ALTPLATFORM_INFO;
  80. #define SP_ALTPLATFORM_FLAGS_VERSION_RANGE (0x0001)
  81. #endif
  82. typedef struct _SP_ORIGINAL_FILE_INFO_A {
  83. DWORD cbSize;
  84. CHAR OriginalInfName[MAX_PATH];
  85. CHAR OriginalCatalogName[MAX_PATH];
  86. } SP_ORIGINAL_FILE_INFO_A,*PSP_ORIGINAL_FILE_INFO_A;
  87. typedef struct _SP_ORIGINAL_FILE_INFO_W {
  88. DWORD cbSize;
  89. WCHAR OriginalInfName[MAX_PATH];
  90. WCHAR OriginalCatalogName[MAX_PATH];
  91. } SP_ORIGINAL_FILE_INFO_W,*PSP_ORIGINAL_FILE_INFO_W;
  92. __MINGW_TYPEDEF_UAW(SP_ORIGINAL_FILE_INFO)
  93. __MINGW_TYPEDEF_UAW(PSP_ORIGINAL_FILE_INFO)
  94. #define INF_STYLE_NONE 0x00000000
  95. #define INF_STYLE_OLDNT 0x00000001
  96. #define INF_STYLE_WIN4 0x00000002
  97. #define INF_STYLE_CACHE_ENABLE 0x00000010
  98. #define INF_STYLE_CACHE_DISABLE 0x00000020
  99. #define INF_STYLE_CACHE_IGNORE 0x00000040
  100. #define DIRID_ABSOLUTE -1
  101. #define DIRID_ABSOLUTE_16BIT 0xffff
  102. #define DIRID_NULL 0
  103. #define DIRID_SRCPATH 1
  104. #define DIRID_WINDOWS 10
  105. #define DIRID_SYSTEM 11
  106. #define DIRID_DRIVERS 12
  107. #define DIRID_IOSUBSYS DIRID_DRIVERS
  108. #define DIRID_INF 17
  109. #define DIRID_HELP 18
  110. #define DIRID_FONTS 20
  111. #define DIRID_VIEWERS 21
  112. #define DIRID_COLOR 23
  113. #define DIRID_APPS 24
  114. #define DIRID_SHARED 25
  115. #define DIRID_BOOT 30
  116. #define DIRID_SYSTEM16 50
  117. #define DIRID_SPOOL 51
  118. #define DIRID_SPOOLDRIVERS 52
  119. #define DIRID_USERPROFILE 53
  120. #define DIRID_LOADER 54
  121. #define DIRID_PRINTPROCESSOR 55
  122. #define DIRID_DEFAULT DIRID_SYSTEM
  123. #define DIRID_COMMON_STARTMENU 16406
  124. #define DIRID_COMMON_PROGRAMS 16407
  125. #define DIRID_COMMON_STARTUP 16408
  126. #define DIRID_COMMON_DESKTOPDIRECTORY 16409
  127. #define DIRID_COMMON_FAVORITES 16415
  128. #define DIRID_COMMON_APPDATA 16419
  129. #define DIRID_PROGRAM_FILES 16422
  130. #define DIRID_SYSTEM_X86 16425
  131. #define DIRID_PROGRAM_FILES_X86 16426
  132. #define DIRID_PROGRAM_FILES_COMMON 16427
  133. #define DIRID_PROGRAM_FILES_COMMONX86 16428
  134. #define DIRID_COMMON_TEMPLATES 16429
  135. #define DIRID_COMMON_DOCUMENTS 16430
  136. #define DIRID_USER 0x8000
  137. typedef UINT (CALLBACK *PSP_FILE_CALLBACK_A)(PVOID Context,UINT Notification,UINT_PTR Param1,UINT_PTR Param2);
  138. typedef UINT (CALLBACK *PSP_FILE_CALLBACK_W)(PVOID Context,UINT Notification,UINT_PTR Param1,UINT_PTR Param2);
  139. #define PSP_FILE_CALLBACK __MINGW_NAME_UAW(PSP_FILE_CALLBACK)
  140. #define SPFILENOTIFY_STARTQUEUE 0x00000001
  141. #define SPFILENOTIFY_ENDQUEUE 0x00000002
  142. #define SPFILENOTIFY_STARTSUBQUEUE 0x00000003
  143. #define SPFILENOTIFY_ENDSUBQUEUE 0x00000004
  144. #define SPFILENOTIFY_STARTDELETE 0x00000005
  145. #define SPFILENOTIFY_ENDDELETE 0x00000006
  146. #define SPFILENOTIFY_DELETEERROR 0x00000007
  147. #define SPFILENOTIFY_STARTRENAME 0x00000008
  148. #define SPFILENOTIFY_ENDRENAME 0x00000009
  149. #define SPFILENOTIFY_RENAMEERROR 0x0000000a
  150. #define SPFILENOTIFY_STARTCOPY 0x0000000b
  151. #define SPFILENOTIFY_ENDCOPY 0x0000000c
  152. #define SPFILENOTIFY_COPYERROR 0x0000000d
  153. #define SPFILENOTIFY_NEEDMEDIA 0x0000000e
  154. #define SPFILENOTIFY_QUEUESCAN 0x0000000f
  155. #define SPFILENOTIFY_CABINETINFO 0x00000010
  156. #define SPFILENOTIFY_FILEINCABINET 0x00000011
  157. #define SPFILENOTIFY_NEEDNEWCABINET 0x00000012
  158. #define SPFILENOTIFY_FILEEXTRACTED 0x00000013
  159. #define SPFILENOTIFY_FILEOPDELAYED 0x00000014
  160. #define SPFILENOTIFY_STARTBACKUP 0x00000015
  161. #define SPFILENOTIFY_BACKUPERROR 0x00000016
  162. #define SPFILENOTIFY_ENDBACKUP 0x00000017
  163. #define SPFILENOTIFY_QUEUESCAN_EX 0x00000018
  164. #define SPFILENOTIFY_STARTREGISTRATION 0x00000019
  165. #define SPFILENOTIFY_ENDREGISTRATION 0x00000020
  166. #define SPFILENOTIFY_QUEUESCAN_SIGNERINFO 0x00000040
  167. #define SPFILENOTIFY_LANGMISMATCH 0x00010000
  168. #define SPFILENOTIFY_TARGETEXISTS 0x00020000
  169. #define SPFILENOTIFY_TARGETNEWER 0x00040000
  170. #define FILEOP_COPY 0
  171. #define FILEOP_RENAME 1
  172. #define FILEOP_DELETE 2
  173. #define FILEOP_BACKUP 3
  174. #define FILEOP_ABORT 0
  175. #define FILEOP_DOIT 1
  176. #define FILEOP_SKIP 2
  177. #define FILEOP_RETRY FILEOP_DOIT
  178. #define FILEOP_NEWPATH 4
  179. #define COPYFLG_WARN_IF_SKIP 0x00000001
  180. #define COPYFLG_NOSKIP 0x00000002
  181. #define COPYFLG_NOVERSIONCHECK 0x00000004
  182. #define COPYFLG_FORCE_FILE_IN_USE 0x00000008
  183. #define COPYFLG_NO_OVERWRITE 0x00000010
  184. #define COPYFLG_NO_VERSION_DIALOG 0x00000020
  185. #define COPYFLG_OVERWRITE_OLDER_ONLY 0x00000040
  186. #define COPYFLG_REPLACEONLY 0x00000400
  187. #define COPYFLG_NODECOMP 0x00000800
  188. #define COPYFLG_REPLACE_BOOT_FILE 0x00001000
  189. #define COPYFLG_NOPRUNE 0x00002000
  190. #define DELFLG_IN_USE 0x00000001
  191. #define DELFLG_IN_USE1 0x00010000
  192. typedef struct _FILEPATHS_A {
  193. PCSTR Target;
  194. PCSTR Source;
  195. UINT Win32Error;
  196. DWORD Flags;
  197. } FILEPATHS_A,*PFILEPATHS_A;
  198. typedef struct _FILEPATHS_W {
  199. PCWSTR Target;
  200. PCWSTR Source;
  201. UINT Win32Error;
  202. DWORD Flags;
  203. } FILEPATHS_W,*PFILEPATHS_W;
  204. __MINGW_TYPEDEF_UAW(FILEPATHS)
  205. __MINGW_TYPEDEF_UAW(PFILEPATHS)
  206. typedef struct _FILEPATHS_SIGNERINFO_A {
  207. PCSTR Target;
  208. PCSTR Source;
  209. UINT Win32Error;
  210. DWORD Flags;
  211. PCSTR DigitalSigner;
  212. PCSTR Version;
  213. PCSTR CatalogFile;
  214. } FILEPATHS_SIGNERINFO_A,*PFILEPATHS_SIGNERINFO_A;
  215. typedef struct _FILEPATHS_SIGNERINFO_W {
  216. PCWSTR Target;
  217. PCWSTR Source;
  218. UINT Win32Error;
  219. DWORD Flags;
  220. PCWSTR DigitalSigner;
  221. PCWSTR Version;
  222. PCWSTR CatalogFile;
  223. } FILEPATHS_SIGNERINFO_W,*PFILEPATHS_SIGNERINFO_W;
  224. __MINGW_TYPEDEF_UAW(FILEPATHS_SIGNERINFO)
  225. __MINGW_TYPEDEF_UAW(PFILEPATHS_SIGNERINFO)
  226. typedef struct _SOURCE_MEDIA_A {
  227. PCSTR Reserved;
  228. PCSTR Tagfile;
  229. PCSTR Description;
  230. PCSTR SourcePath;
  231. PCSTR SourceFile;
  232. DWORD Flags;
  233. } SOURCE_MEDIA_A,*PSOURCE_MEDIA_A;
  234. typedef struct _SOURCE_MEDIA_W {
  235. PCWSTR Reserved;
  236. PCWSTR Tagfile;
  237. PCWSTR Description;
  238. PCWSTR SourcePath;
  239. PCWSTR SourceFile;
  240. DWORD Flags;
  241. } SOURCE_MEDIA_W,*PSOURCE_MEDIA_W;
  242. __MINGW_TYPEDEF_UAW(SOURCE_MEDIA)
  243. __MINGW_TYPEDEF_UAW(PSOURCE_MEDIA)
  244. typedef struct _CABINET_INFO_A {
  245. PCSTR CabinetPath;
  246. PCSTR CabinetFile;
  247. PCSTR DiskName;
  248. USHORT SetId;
  249. USHORT CabinetNumber;
  250. } CABINET_INFO_A,*PCABINET_INFO_A;
  251. typedef struct _CABINET_INFO_W {
  252. PCWSTR CabinetPath;
  253. PCWSTR CabinetFile;
  254. PCWSTR DiskName;
  255. USHORT SetId;
  256. USHORT CabinetNumber;
  257. } CABINET_INFO_W,*PCABINET_INFO_W;
  258. __MINGW_TYPEDEF_UAW(CABINET_INFO)
  259. __MINGW_TYPEDEF_UAW(PCABINET_INFO)
  260. typedef struct _FILE_IN_CABINET_INFO_A {
  261. PCSTR NameInCabinet;
  262. DWORD FileSize;
  263. DWORD Win32Error;
  264. WORD DosDate;
  265. WORD DosTime;
  266. WORD DosAttribs;
  267. CHAR FullTargetName[MAX_PATH];
  268. } FILE_IN_CABINET_INFO_A,*PFILE_IN_CABINET_INFO_A;
  269. typedef struct _FILE_IN_CABINET_INFO_W {
  270. PCWSTR NameInCabinet;
  271. DWORD FileSize;
  272. DWORD Win32Error;
  273. WORD DosDate;
  274. WORD DosTime;
  275. WORD DosAttribs;
  276. WCHAR FullTargetName[MAX_PATH];
  277. } FILE_IN_CABINET_INFO_W,*PFILE_IN_CABINET_INFO_W;
  278. __MINGW_TYPEDEF_UAW(FILE_IN_CABINET_INFO)
  279. __MINGW_TYPEDEF_UAW(PFILE_IN_CABINET_INFO)
  280. typedef struct _SP_REGISTER_CONTROL_STATUSA {
  281. DWORD cbSize;
  282. PCSTR FileName;
  283. DWORD Win32Error;
  284. DWORD FailureCode;
  285. } SP_REGISTER_CONTROL_STATUSA,*PSP_REGISTER_CONTROL_STATUSA;
  286. typedef struct _SP_REGISTER_CONTROL_STATUSW {
  287. DWORD cbSize;
  288. PCWSTR FileName;
  289. DWORD Win32Error;
  290. DWORD FailureCode;
  291. } SP_REGISTER_CONTROL_STATUSW,*PSP_REGISTER_CONTROL_STATUSW;
  292. __MINGW_TYPEDEF_AW(SP_REGISTER_CONTROL_STATUS)
  293. __MINGW_TYPEDEF_AW(PSP_REGISTER_CONTROL_STATUS)
  294. #define SPREG_SUCCESS 0x00000000
  295. #define SPREG_LOADLIBRARY 0x00000001
  296. #define SPREG_GETPROCADDR 0x00000002
  297. #define SPREG_REGSVR 0x00000003
  298. #define SPREG_DLLINSTALL 0x00000004
  299. #define SPREG_TIMEOUT 0x00000005
  300. #define SPREG_UNKNOWN 0xFFFFFFFF
  301. typedef PVOID HSPFILEQ;
  302. typedef struct _SP_FILE_COPY_PARAMS_A {
  303. DWORD cbSize;
  304. HSPFILEQ QueueHandle;
  305. PCSTR SourceRootPath;
  306. PCSTR SourcePath;
  307. PCSTR SourceFilename;
  308. PCSTR SourceDescription;
  309. PCSTR SourceTagfile;
  310. PCSTR TargetDirectory;
  311. PCSTR TargetFilename;
  312. DWORD CopyStyle;
  313. HINF LayoutInf;
  314. PCSTR SecurityDescriptor;
  315. } SP_FILE_COPY_PARAMS_A,*PSP_FILE_COPY_PARAMS_A;
  316. typedef struct _SP_FILE_COPY_PARAMS_W {
  317. DWORD cbSize;
  318. HSPFILEQ QueueHandle;
  319. PCWSTR SourceRootPath;
  320. PCWSTR SourcePath;
  321. PCWSTR SourceFilename;
  322. PCWSTR SourceDescription;
  323. PCWSTR SourceTagfile;
  324. PCWSTR TargetDirectory;
  325. PCWSTR TargetFilename;
  326. DWORD CopyStyle;
  327. HINF LayoutInf;
  328. PCWSTR SecurityDescriptor;
  329. } SP_FILE_COPY_PARAMS_W,*PSP_FILE_COPY_PARAMS_W;
  330. __MINGW_TYPEDEF_UAW(SP_FILE_COPY_PARAMS)
  331. __MINGW_TYPEDEF_UAW(PSP_FILE_COPY_PARAMS)
  332. typedef PVOID HDSKSPC;
  333. typedef PVOID HDEVINFO;
  334. typedef struct _SP_DEVINFO_DATA {
  335. DWORD cbSize;
  336. GUID ClassGuid;
  337. DWORD DevInst;
  338. ULONG_PTR Reserved;
  339. } SP_DEVINFO_DATA,*PSP_DEVINFO_DATA;
  340. typedef struct _SP_DEVICE_INTERFACE_DATA {
  341. DWORD cbSize;
  342. GUID InterfaceClassGuid;
  343. DWORD Flags;
  344. ULONG_PTR Reserved;
  345. } SP_DEVICE_INTERFACE_DATA,*PSP_DEVICE_INTERFACE_DATA;
  346. #define SPINT_ACTIVE 0x00000001
  347. #define SPINT_DEFAULT 0x00000002
  348. #define SPINT_REMOVED 0x00000004
  349. typedef SP_DEVICE_INTERFACE_DATA SP_INTERFACE_DEVICE_DATA;
  350. typedef PSP_DEVICE_INTERFACE_DATA PSP_INTERFACE_DEVICE_DATA;
  351. #define SPID_ACTIVE SPINT_ACTIVE
  352. #define SPID_DEFAULT SPINT_DEFAULT
  353. #define SPID_REMOVED SPINT_REMOVED
  354. typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_A {
  355. DWORD cbSize;
  356. CHAR DevicePath[ANYSIZE_ARRAY];
  357. } SP_DEVICE_INTERFACE_DETAIL_DATA_A,*PSP_DEVICE_INTERFACE_DETAIL_DATA_A;
  358. typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W {
  359. DWORD cbSize;
  360. WCHAR DevicePath[ANYSIZE_ARRAY];
  361. } SP_DEVICE_INTERFACE_DETAIL_DATA_W,*PSP_DEVICE_INTERFACE_DETAIL_DATA_W;
  362. __MINGW_TYPEDEF_UAW(SP_DEVICE_INTERFACE_DETAIL_DATA)
  363. __MINGW_TYPEDEF_UAW(PSP_DEVICE_INTERFACE_DETAIL_DATA)
  364. typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA_W;
  365. typedef PSP_DEVICE_INTERFACE_DETAIL_DATA_W PSP_INTERFACE_DEVICE_DETAIL_DATA_W;
  366. typedef SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA_A;
  367. typedef PSP_DEVICE_INTERFACE_DETAIL_DATA_A PSP_INTERFACE_DEVICE_DETAIL_DATA_A;
  368. __MINGW_TYPEDEF_UAW(SP_INTERFACE_DEVICE_DETAIL_DATA)
  369. __MINGW_TYPEDEF_UAW(PSP_INTERFACE_DEVICE_DETAIL_DATA)
  370. typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_A {
  371. DWORD cbSize;
  372. GUID ClassGuid;
  373. HANDLE RemoteMachineHandle;
  374. CHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH];
  375. } SP_DEVINFO_LIST_DETAIL_DATA_A,*PSP_DEVINFO_LIST_DETAIL_DATA_A;
  376. typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_W {
  377. DWORD cbSize;
  378. GUID ClassGuid;
  379. HANDLE RemoteMachineHandle;
  380. WCHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH];
  381. } SP_DEVINFO_LIST_DETAIL_DATA_W,*PSP_DEVINFO_LIST_DETAIL_DATA_W;
  382. __MINGW_TYPEDEF_UAW(SP_DEVINFO_LIST_DETAIL_DATA)
  383. __MINGW_TYPEDEF_UAW(PSP_DEVINFO_LIST_DETAIL_DATA)
  384. #define DIF_SELECTDEVICE 0x00000001
  385. #define DIF_INSTALLDEVICE 0x00000002
  386. #define DIF_ASSIGNRESOURCES 0x00000003
  387. #define DIF_PROPERTIES 0x00000004
  388. #define DIF_REMOVE 0x00000005
  389. #define DIF_FIRSTTIMESETUP 0x00000006
  390. #define DIF_FOUNDDEVICE 0x00000007
  391. #define DIF_SELECTCLASSDRIVERS 0x00000008
  392. #define DIF_VALIDATECLASSDRIVERS 0x00000009
  393. #define DIF_INSTALLCLASSDRIVERS 0x0000000A
  394. #define DIF_CALCDISKSPACE 0x0000000B
  395. #define DIF_DESTROYPRIVATEDATA 0x0000000C
  396. #define DIF_VALIDATEDRIVER 0x0000000D
  397. #define DIF_DETECT 0x0000000F
  398. #define DIF_INSTALLWIZARD 0x00000010
  399. #define DIF_DESTROYWIZARDDATA 0x00000011
  400. #define DIF_PROPERTYCHANGE 0x00000012
  401. #define DIF_ENABLECLASS 0x00000013
  402. #define DIF_DETECTVERIFY 0x00000014
  403. #define DIF_INSTALLDEVICEFILES 0x00000015
  404. #define DIF_UNREMOVE 0x00000016
  405. #define DIF_SELECTBESTCOMPATDRV 0x00000017
  406. #define DIF_ALLOW_INSTALL 0x00000018
  407. #define DIF_REGISTERDEVICE 0x00000019
  408. #define DIF_NEWDEVICEWIZARD_PRESELECT 0x0000001A
  409. #define DIF_NEWDEVICEWIZARD_SELECT 0x0000001B
  410. #define DIF_NEWDEVICEWIZARD_PREANALYZE 0x0000001C
  411. #define DIF_NEWDEVICEWIZARD_POSTANALYZE 0x0000001D
  412. #define DIF_NEWDEVICEWIZARD_FINISHINSTALL 0x0000001E
  413. #define DIF_UNUSED1 0x0000001F
  414. #define DIF_INSTALLINTERFACES 0x00000020
  415. #define DIF_DETECTCANCEL 0x00000021
  416. #define DIF_REGISTER_COINSTALLERS 0x00000022
  417. #define DIF_ADDPROPERTYPAGE_ADVANCED 0x00000023
  418. #define DIF_ADDPROPERTYPAGE_BASIC 0x00000024
  419. #define DIF_RESERVED1 0x00000025
  420. #define DIF_TROUBLESHOOTER 0x00000026
  421. #define DIF_POWERMESSAGEWAKE 0x00000027
  422. #define DIF_ADDREMOTEPROPERTYPAGE_ADVANCED 0x00000028
  423. #define DIF_UPDATEDRIVER_UI 0x00000029
  424. #define DIF_RESERVED2 0x00000030
  425. #define DIF_MOVEDEVICE 0x0000000E
  426. typedef UINT DI_FUNCTION;
  427. typedef struct _SP_DEVINSTALL_PARAMS_A {
  428. DWORD cbSize;
  429. DWORD Flags;
  430. DWORD FlagsEx;
  431. HWND hwndParent;
  432. PSP_FILE_CALLBACK InstallMsgHandler;
  433. PVOID InstallMsgHandlerContext;
  434. HSPFILEQ FileQueue;
  435. ULONG_PTR ClassInstallReserved;
  436. DWORD Reserved;
  437. CHAR DriverPath[MAX_PATH];
  438. } SP_DEVINSTALL_PARAMS_A,*PSP_DEVINSTALL_PARAMS_A;
  439. typedef struct _SP_DEVINSTALL_PARAMS_W {
  440. DWORD cbSize;
  441. DWORD Flags;
  442. DWORD FlagsEx;
  443. HWND hwndParent;
  444. PSP_FILE_CALLBACK InstallMsgHandler;
  445. PVOID InstallMsgHandlerContext;
  446. HSPFILEQ FileQueue;
  447. ULONG_PTR ClassInstallReserved;
  448. DWORD Reserved;
  449. WCHAR DriverPath[MAX_PATH];
  450. } SP_DEVINSTALL_PARAMS_W,*PSP_DEVINSTALL_PARAMS_W;
  451. __MINGW_TYPEDEF_UAW(SP_DEVINSTALL_PARAMS)
  452. __MINGW_TYPEDEF_UAW(PSP_DEVINSTALL_PARAMS)
  453. #define DI_SHOWOEM __MSABI_LONG(0x00000001)
  454. #define DI_SHOWCOMPAT __MSABI_LONG(0x00000002)
  455. #define DI_SHOWCLASS __MSABI_LONG(0x00000004)
  456. #define DI_SHOWALL __MSABI_LONG(0x00000007)
  457. #define DI_NOVCP __MSABI_LONG(0x00000008)
  458. #define DI_DIDCOMPAT __MSABI_LONG(0x00000010)
  459. #define DI_DIDCLASS __MSABI_LONG(0x00000020)
  460. #define DI_AUTOASSIGNRES __MSABI_LONG(0x00000040)
  461. #define DI_NEEDRESTART __MSABI_LONG(0x00000080)
  462. #define DI_NEEDREBOOT __MSABI_LONG(0x00000100)
  463. #define DI_NOBROWSE __MSABI_LONG(0x00000200)
  464. #define DI_MULTMFGS __MSABI_LONG(0x00000400)
  465. #define DI_DISABLED __MSABI_LONG(0x00000800)
  466. #define DI_GENERALPAGE_ADDED __MSABI_LONG(0x00001000)
  467. #define DI_RESOURCEPAGE_ADDED __MSABI_LONG(0x00002000)
  468. #define DI_PROPERTIES_CHANGE __MSABI_LONG(0x00004000)
  469. #define DI_INF_IS_SORTED __MSABI_LONG(0x00008000)
  470. #define DI_ENUMSINGLEINF __MSABI_LONG(0x00010000)
  471. #define DI_DONOTCALLCONFIGMG __MSABI_LONG(0x00020000)
  472. #define DI_INSTALLDISABLED __MSABI_LONG(0x00040000)
  473. #define DI_COMPAT_FROM_CLASS __MSABI_LONG(0x00080000)
  474. #define DI_CLASSINSTALLPARAMS __MSABI_LONG(0x00100000)
  475. #define DI_NODI_DEFAULTACTION __MSABI_LONG(0x00200000)
  476. #define DI_QUIETINSTALL __MSABI_LONG(0x00800000)
  477. #define DI_NOFILECOPY __MSABI_LONG(0x01000000)
  478. #define DI_FORCECOPY __MSABI_LONG(0x02000000)
  479. #define DI_DRIVERPAGE_ADDED __MSABI_LONG(0x04000000)
  480. #define DI_USECI_SELECTSTRINGS __MSABI_LONG(0x08000000)
  481. #define DI_OVERRIDE_INFFLAGS __MSABI_LONG(0x10000000)
  482. #define DI_PROPS_NOCHANGEUSAGE __MSABI_LONG(0x20000000)
  483. #define DI_NOSELECTICONS __MSABI_LONG(0x40000000)
  484. #define DI_NOWRITE_IDS __MSABI_LONG(0x80000000)
  485. #define DI_FLAGSEX_USEOLDINFSEARCH __MSABI_LONG(0x00000001)
  486. #define DI_FLAGSEX_RESERVED2 __MSABI_LONG(0x00000002)
  487. #define DI_FLAGSEX_CI_FAILED __MSABI_LONG(0x00000004)
  488. #define DI_FLAGSEX_DIDINFOLIST __MSABI_LONG(0x00000010)
  489. #define DI_FLAGSEX_DIDCOMPATINFO __MSABI_LONG(0x00000020)
  490. #define DI_FLAGSEX_FILTERCLASSES __MSABI_LONG(0x00000040)
  491. #define DI_FLAGSEX_SETFAILEDINSTALL __MSABI_LONG(0x00000080)
  492. #define DI_FLAGSEX_DEVICECHANGE __MSABI_LONG(0x00000100)
  493. #define DI_FLAGSEX_ALWAYSWRITEIDS __MSABI_LONG(0x00000200)
  494. #define DI_FLAGSEX_PROPCHANGE_PENDING __MSABI_LONG(0x00000400)
  495. #define DI_FLAGSEX_ALLOWEXCLUDEDDRVS __MSABI_LONG(0x00000800)
  496. #define DI_FLAGSEX_NOUIONQUERYREMOVE __MSABI_LONG(0x00001000)
  497. #define DI_FLAGSEX_USECLASSFORCOMPAT __MSABI_LONG(0x00002000)
  498. #define DI_FLAGSEX_RESERVED3 __MSABI_LONG(0x00004000)
  499. #define DI_FLAGSEX_NO_DRVREG_MODIFY __MSABI_LONG(0x00008000)
  500. #define DI_FLAGSEX_IN_SYSTEM_SETUP __MSABI_LONG(0x00010000)
  501. #define DI_FLAGSEX_INET_DRIVER __MSABI_LONG(0x00020000)
  502. #define DI_FLAGSEX_APPENDDRIVERLIST __MSABI_LONG(0x00040000)
  503. #define DI_FLAGSEX_PREINSTALLBACKUP __MSABI_LONG(0x00080000)
  504. #define DI_FLAGSEX_BACKUPONREPLACE __MSABI_LONG(0x00100000)
  505. #define DI_FLAGSEX_DRIVERLIST_FROM_URL __MSABI_LONG(0x00200000)
  506. #define DI_FLAGSEX_RESERVED1 __MSABI_LONG(0x00400000)
  507. #define DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS __MSABI_LONG(0x00800000)
  508. #define DI_FLAGSEX_POWERPAGE_ADDED __MSABI_LONG(0x01000000)
  509. #define DI_FLAGSEX_FILTERSIMILARDRIVERS __MSABI_LONG(0x02000000)
  510. #define DI_FLAGSEX_INSTALLEDDRIVER __MSABI_LONG(0x04000000)
  511. #define DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE __MSABI_LONG(0x08000000)
  512. #define DI_FLAGSEX_ALTPLATFORM_DRVSEARCH __MSABI_LONG(0x10000000)
  513. #define DI_FLAGSEX_RESTART_DEVICE_ONLY __MSABI_LONG(0x20000000)
  514. typedef struct _SP_CLASSINSTALL_HEADER {
  515. DWORD cbSize;
  516. DI_FUNCTION InstallFunction;
  517. } SP_CLASSINSTALL_HEADER,*PSP_CLASSINSTALL_HEADER;
  518. typedef struct _SP_ENABLECLASS_PARAMS {
  519. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  520. GUID ClassGuid;
  521. DWORD EnableMessage;
  522. } SP_ENABLECLASS_PARAMS,*PSP_ENABLECLASS_PARAMS;
  523. #define ENABLECLASS_QUERY 0
  524. #define ENABLECLASS_SUCCESS 1
  525. #define ENABLECLASS_FAILURE 2
  526. #define DICS_ENABLE 0x00000001
  527. #define DICS_DISABLE 0x00000002
  528. #define DICS_PROPCHANGE 0x00000003
  529. #define DICS_START 0x00000004
  530. #define DICS_STOP 0x00000005
  531. #define DICS_FLAG_GLOBAL 0x00000001
  532. #define DICS_FLAG_CONFIGSPECIFIC 0x00000002
  533. #define DICS_FLAG_CONFIGGENERAL 0x00000004
  534. typedef struct _SP_PROPCHANGE_PARAMS {
  535. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  536. DWORD StateChange;
  537. DWORD Scope;
  538. DWORD HwProfile;
  539. } SP_PROPCHANGE_PARAMS,*PSP_PROPCHANGE_PARAMS;
  540. typedef struct _SP_REMOVEDEVICE_PARAMS {
  541. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  542. DWORD Scope;
  543. DWORD HwProfile;
  544. } SP_REMOVEDEVICE_PARAMS,*PSP_REMOVEDEVICE_PARAMS;
  545. #define DI_REMOVEDEVICE_GLOBAL 0x00000001
  546. #define DI_REMOVEDEVICE_CONFIGSPECIFIC 0x00000002
  547. typedef struct _SP_UNREMOVEDEVICE_PARAMS {
  548. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  549. DWORD Scope;
  550. DWORD HwProfile;
  551. } SP_UNREMOVEDEVICE_PARAMS,*PSP_UNREMOVEDEVICE_PARAMS;
  552. #define DI_UNREMOVEDEVICE_CONFIGSPECIFIC 0x00000002
  553. typedef struct _SP_SELECTDEVICE_PARAMS_A {
  554. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  555. CHAR Title[MAX_TITLE_LEN];
  556. CHAR Instructions[MAX_INSTRUCTION_LEN];
  557. CHAR ListLabel[MAX_LABEL_LEN];
  558. CHAR SubTitle[MAX_SUBTITLE_LEN];
  559. BYTE Reserved[2];
  560. } SP_SELECTDEVICE_PARAMS_A,*PSP_SELECTDEVICE_PARAMS_A;
  561. typedef struct _SP_SELECTDEVICE_PARAMS_W {
  562. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  563. WCHAR Title[MAX_TITLE_LEN];
  564. WCHAR Instructions[MAX_INSTRUCTION_LEN];
  565. WCHAR ListLabel[MAX_LABEL_LEN];
  566. WCHAR SubTitle[MAX_SUBTITLE_LEN];
  567. } SP_SELECTDEVICE_PARAMS_W,*PSP_SELECTDEVICE_PARAMS_W;
  568. __MINGW_TYPEDEF_UAW(SP_SELECTDEVICE_PARAMS)
  569. __MINGW_TYPEDEF_UAW(PSP_SELECTDEVICE_PARAMS)
  570. typedef WINBOOL (CALLBACK *PDETECT_PROGRESS_NOTIFY)(PVOID ProgressNotifyParam,DWORD DetectComplete);
  571. typedef struct _SP_DETECTDEVICE_PARAMS {
  572. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  573. PDETECT_PROGRESS_NOTIFY DetectProgressNotify;
  574. PVOID ProgressNotifyParam;
  575. } SP_DETECTDEVICE_PARAMS,*PSP_DETECTDEVICE_PARAMS;
  576. #define MAX_INSTALLWIZARD_DYNAPAGES 20
  577. typedef struct _SP_INSTALLWIZARD_DATA {
  578. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  579. DWORD Flags;
  580. HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES];
  581. DWORD NumDynamicPages;
  582. DWORD DynamicPageFlags;
  583. DWORD PrivateFlags;
  584. LPARAM PrivateData;
  585. HWND hwndWizardDlg;
  586. } SP_INSTALLWIZARD_DATA,*PSP_INSTALLWIZARD_DATA;
  587. #define NDW_INSTALLFLAG_DIDFACTDEFS 0x00000001
  588. #define NDW_INSTALLFLAG_HARDWAREALLREADYIN 0x00000002
  589. #define NDW_INSTALLFLAG_NEEDRESTART DI_NEEDRESTART
  590. #define NDW_INSTALLFLAG_NEEDREBOOT DI_NEEDREBOOT
  591. #define NDW_INSTALLFLAG_NEEDSHUTDOWN 0x00000200
  592. #define NDW_INSTALLFLAG_EXPRESSINTRO 0x00000400
  593. #define NDW_INSTALLFLAG_SKIPISDEVINSTALLED 0x00000800
  594. #define NDW_INSTALLFLAG_NODETECTEDDEVS 0x00001000
  595. #define NDW_INSTALLFLAG_INSTALLSPECIFIC 0x00002000
  596. #define NDW_INSTALLFLAG_SKIPCLASSLIST 0x00004000
  597. #define NDW_INSTALLFLAG_CI_PICKED_OEM 0x00008000
  598. #define NDW_INSTALLFLAG_PCMCIAMODE 0x00010000
  599. #define NDW_INSTALLFLAG_PCMCIADEVICE 0x00020000
  600. #define NDW_INSTALLFLAG_USERCANCEL 0x00040000
  601. #define NDW_INSTALLFLAG_KNOWNCLASS 0x00080000
  602. #define DYNAWIZ_FLAG_PAGESADDED 0x00000001
  603. #define DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT 0x00000008
  604. #define DYNAWIZ_FLAG_INSTALLDET_NEXT 0x00000002
  605. #define DYNAWIZ_FLAG_INSTALLDET_PREV 0x00000004
  606. #define MIN_IDD_DYNAWIZ_RESOURCE_ID 10000
  607. #define MAX_IDD_DYNAWIZ_RESOURCE_ID 11000
  608. #define IDD_DYNAWIZ_FIRSTPAGE 10000
  609. #define IDD_DYNAWIZ_SELECT_PREVPAGE 10001
  610. #define IDD_DYNAWIZ_SELECT_NEXTPAGE 10002
  611. #define IDD_DYNAWIZ_ANALYZE_PREVPAGE 10003
  612. #define IDD_DYNAWIZ_ANALYZE_NEXTPAGE 10004
  613. #define IDD_DYNAWIZ_SELECTDEV_PAGE 10009
  614. #define IDD_DYNAWIZ_ANALYZEDEV_PAGE 10010
  615. #define IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE 10011
  616. #define IDD_DYNAWIZ_SELECTCLASS_PAGE 10012
  617. #define IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE 10006
  618. #define IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE 10007
  619. #define IDD_DYNAWIZ_INSTALLDETECTED_NODEVS 10008
  620. typedef struct _SP_NEWDEVICEWIZARD_DATA {
  621. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  622. DWORD Flags;
  623. HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES];
  624. DWORD NumDynamicPages;
  625. HWND hwndWizardDlg;
  626. } SP_NEWDEVICEWIZARD_DATA,*PSP_NEWDEVICEWIZARD_DATA;
  627. typedef SP_NEWDEVICEWIZARD_DATA SP_ADDPROPERTYPAGE_DATA;
  628. typedef PSP_NEWDEVICEWIZARD_DATA PSP_ADDPROPERTYPAGE_DATA;
  629. typedef struct _SP_TROUBLESHOOTER_PARAMS_A {
  630. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  631. CHAR ChmFile[MAX_PATH];
  632. CHAR HtmlTroubleShooter[MAX_PATH];
  633. } SP_TROUBLESHOOTER_PARAMS_A,*PSP_TROUBLESHOOTER_PARAMS_A;
  634. typedef struct _SP_TROUBLESHOOTER_PARAMS_W {
  635. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  636. WCHAR ChmFile[MAX_PATH];
  637. WCHAR HtmlTroubleShooter[MAX_PATH];
  638. } SP_TROUBLESHOOTER_PARAMS_W,*PSP_TROUBLESHOOTER_PARAMS_W;
  639. __MINGW_TYPEDEF_UAW(SP_TROUBLESHOOTER_PARAMS)
  640. __MINGW_TYPEDEF_UAW(PSP_TROUBLESHOOTER_PARAMS)
  641. typedef struct _SP_POWERMESSAGEWAKE_PARAMS_A {
  642. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  643. CHAR PowerMessageWake[LINE_LEN*2];
  644. } SP_POWERMESSAGEWAKE_PARAMS_A,*PSP_POWERMESSAGEWAKE_PARAMS_A;
  645. typedef struct _SP_POWERMESSAGEWAKE_PARAMS_W {
  646. SP_CLASSINSTALL_HEADER ClassInstallHeader;
  647. WCHAR PowerMessageWake[LINE_LEN*2];
  648. } SP_POWERMESSAGEWAKE_PARAMS_W,*PSP_POWERMESSAGEWAKE_PARAMS_W;
  649. __MINGW_TYPEDEF_UAW(SP_POWERMESSAGEWAKE_PARAMS)
  650. __MINGW_TYPEDEF_UAW(PSP_POWERMESSAGEWAKE_PARAMS)
  651. typedef struct _SP_DRVINFO_DATA_V2_A {
  652. DWORD cbSize;
  653. DWORD DriverType;
  654. ULONG_PTR Reserved;
  655. CHAR Description[LINE_LEN];
  656. CHAR MfgName[LINE_LEN];
  657. CHAR ProviderName[LINE_LEN];
  658. FILETIME DriverDate;
  659. DWORDLONG DriverVersion;
  660. } SP_DRVINFO_DATA_V2_A,*PSP_DRVINFO_DATA_V2_A;
  661. typedef struct _SP_DRVINFO_DATA_V2_W {
  662. DWORD cbSize;
  663. DWORD DriverType;
  664. ULONG_PTR Reserved;
  665. WCHAR Description[LINE_LEN];
  666. WCHAR MfgName[LINE_LEN];
  667. WCHAR ProviderName[LINE_LEN];
  668. FILETIME DriverDate;
  669. DWORDLONG DriverVersion;
  670. } SP_DRVINFO_DATA_V2_W,*PSP_DRVINFO_DATA_V2_W;
  671. typedef struct _SP_DRVINFO_DATA_V1_A {
  672. DWORD cbSize;
  673. DWORD DriverType;
  674. ULONG_PTR Reserved;
  675. CHAR Description[LINE_LEN];
  676. CHAR MfgName[LINE_LEN];
  677. CHAR ProviderName[LINE_LEN];
  678. } SP_DRVINFO_DATA_V1_A,*PSP_DRVINFO_DATA_V1_A;
  679. typedef struct _SP_DRVINFO_DATA_V1_W {
  680. DWORD cbSize;
  681. DWORD DriverType;
  682. ULONG_PTR Reserved;
  683. WCHAR Description[LINE_LEN];
  684. WCHAR MfgName[LINE_LEN];
  685. WCHAR ProviderName[LINE_LEN];
  686. } SP_DRVINFO_DATA_V1_W,*PSP_DRVINFO_DATA_V1_W;
  687. __MINGW_TYPEDEF_UAW(SP_DRVINFO_DATA_V1)
  688. __MINGW_TYPEDEF_UAW(PSP_DRVINFO_DATA_V1)
  689. __MINGW_TYPEDEF_UAW(SP_DRVINFO_DATA_V2)
  690. __MINGW_TYPEDEF_UAW(PSP_DRVINFO_DATA_V2)
  691. #if USE_SP_DRVINFO_DATA_V1
  692. typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_A;
  693. typedef PSP_DRVINFO_DATA_V1_A PSP_DRVINFO_DATA_A;
  694. typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_W;
  695. typedef PSP_DRVINFO_DATA_V1_W PSP_DRVINFO_DATA_W;
  696. typedef SP_DRVINFO_DATA_V1 SP_DRVINFO_DATA;
  697. typedef PSP_DRVINFO_DATA_V1 PSP_DRVINFO_DATA;
  698. #else
  699. typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_A;
  700. typedef PSP_DRVINFO_DATA_V2_A PSP_DRVINFO_DATA_A;
  701. typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_W;
  702. typedef PSP_DRVINFO_DATA_V2_W PSP_DRVINFO_DATA_W;
  703. typedef SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA;
  704. typedef PSP_DRVINFO_DATA_V2 PSP_DRVINFO_DATA;
  705. #endif
  706. typedef struct _SP_DRVINFO_DETAIL_DATA_A {
  707. DWORD cbSize;
  708. FILETIME InfDate;
  709. DWORD CompatIDsOffset;
  710. DWORD CompatIDsLength;
  711. ULONG_PTR Reserved;
  712. CHAR SectionName[LINE_LEN];
  713. CHAR InfFileName[MAX_PATH];
  714. CHAR DrvDescription[LINE_LEN];
  715. CHAR HardwareID[ANYSIZE_ARRAY];
  716. } SP_DRVINFO_DETAIL_DATA_A,*PSP_DRVINFO_DETAIL_DATA_A;
  717. typedef struct _SP_DRVINFO_DETAIL_DATA_W {
  718. DWORD cbSize;
  719. FILETIME InfDate;
  720. DWORD CompatIDsOffset;
  721. DWORD CompatIDsLength;
  722. ULONG_PTR Reserved;
  723. WCHAR SectionName[LINE_LEN];
  724. WCHAR InfFileName[MAX_PATH];
  725. WCHAR DrvDescription[LINE_LEN];
  726. WCHAR HardwareID[ANYSIZE_ARRAY];
  727. } SP_DRVINFO_DETAIL_DATA_W,*PSP_DRVINFO_DETAIL_DATA_W;
  728. __MINGW_TYPEDEF_UAW(SP_DRVINFO_DETAIL_DATA)
  729. __MINGW_TYPEDEF_UAW(PSP_DRVINFO_DETAIL_DATA)
  730. typedef struct _SP_DRVINSTALL_PARAMS {
  731. DWORD cbSize;
  732. DWORD Rank;
  733. DWORD Flags;
  734. DWORD_PTR PrivateData;
  735. DWORD Reserved;
  736. } SP_DRVINSTALL_PARAMS,*PSP_DRVINSTALL_PARAMS;
  737. #define DNF_DUPDESC 0x00000001
  738. #define DNF_OLDDRIVER 0x00000002
  739. #define DNF_EXCLUDEFROMLIST 0x00000004
  740. #define DNF_NODRIVER 0x00000008
  741. #define DNF_LEGACYINF 0x00000010
  742. #define DNF_CLASS_DRIVER 0x00000020
  743. #define DNF_COMPATIBLE_DRIVER 0x00000040
  744. #define DNF_INET_DRIVER 0x00000080
  745. #define DNF_UNUSED1 0x00000100
  746. #define DNF_INDEXED_DRIVER 0x00000200
  747. #define DNF_OLD_INET_DRIVER 0x00000400
  748. #define DNF_BAD_DRIVER 0x00000800
  749. #define DNF_DUPPROVIDER 0x00001000
  750. #define DNF_INF_IS_SIGNED 0x00002000
  751. #define DNF_OEM_F6_INF 0x00004000
  752. #define DNF_DUPDRIVERVER 0x00008000
  753. #define DNF_BASIC_DRIVER 0x00010000
  754. #define DNF_AUTHENTICODE_SIGNED 0x00020000
  755. #define DRIVER_HARDWAREID_RANK 0x00000FFF
  756. #define DRIVER_COMPATID_RANK 0x00003FFF
  757. #define DRIVER_UNTRUSTED_RANK 0x00008000
  758. #define DRIVER_UNTRUSTED_HARDWAREID_RANK 0x00008FFF
  759. #define DRIVER_UNTRUSTED_COMPATID_RANK 0x0000BFFF
  760. #define DRIVER_W9X_SUSPECT_RANK 0x0000C000
  761. #define DRIVER_W9X_SUSPECT_HARDWAREID_RANK 0x0000CFFF
  762. #define DRIVER_W9X_SUSPECT_COMPATID_RANK 0x0000FFFF
  763. typedef DWORD (CALLBACK *PSP_DETSIG_CMPPROC)(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA NewDeviceData,PSP_DEVINFO_DATA ExistingDeviceData,PVOID CompareContext);
  764. typedef struct _COINSTALLER_CONTEXT_DATA {
  765. WINBOOL PostProcessing;
  766. DWORD InstallResult;
  767. PVOID PrivateData;
  768. } COINSTALLER_CONTEXT_DATA,*PCOINSTALLER_CONTEXT_DATA;
  769. typedef struct _SP_CLASSIMAGELIST_DATA {
  770. DWORD cbSize;
  771. HIMAGELIST ImageList;
  772. ULONG_PTR Reserved;
  773. } SP_CLASSIMAGELIST_DATA,*PSP_CLASSIMAGELIST_DATA;
  774. typedef struct _SP_PROPSHEETPAGE_REQUEST {
  775. DWORD cbSize;
  776. DWORD PageRequested;
  777. HDEVINFO DeviceInfoSet;
  778. PSP_DEVINFO_DATA DeviceInfoData;
  779. } SP_PROPSHEETPAGE_REQUEST,*PSP_PROPSHEETPAGE_REQUEST;
  780. #define SPPSR_SELECT_DEVICE_RESOURCES 1
  781. #define SPPSR_ENUM_BASIC_DEVICE_PROPERTIES 2
  782. #define SPPSR_ENUM_ADV_DEVICE_PROPERTIES 3
  783. typedef struct _SP_BACKUP_QUEUE_PARAMS_V2_A {
  784. DWORD cbSize;
  785. CHAR FullInfPath[MAX_PATH];
  786. INT FilenameOffset;
  787. CHAR ReinstallInstance[MAX_PATH];
  788. } SP_BACKUP_QUEUE_PARAMS_V2_A,*PSP_BACKUP_QUEUE_PARAMS_V2_A;
  789. typedef struct _SP_BACKUP_QUEUE_PARAMS_V2_W {
  790. DWORD cbSize;
  791. WCHAR FullInfPath[MAX_PATH];
  792. INT FilenameOffset;
  793. WCHAR ReinstallInstance[MAX_PATH];
  794. } SP_BACKUP_QUEUE_PARAMS_V2_W,*PSP_BACKUP_QUEUE_PARAMS_V2_W;
  795. typedef struct _SP_BACKUP_QUEUE_PARAMS_V1_A {
  796. DWORD cbSize;
  797. CHAR FullInfPath[MAX_PATH];
  798. INT FilenameOffset;
  799. } SP_BACKUP_QUEUE_PARAMS_V1_A,*PSP_BACKUP_QUEUE_PARAMS_V1_A;
  800. typedef struct _SP_BACKUP_QUEUE_PARAMS_V1_W {
  801. DWORD cbSize;
  802. WCHAR FullInfPath[MAX_PATH];
  803. INT FilenameOffset;
  804. } SP_BACKUP_QUEUE_PARAMS_V1_W,*PSP_BACKUP_QUEUE_PARAMS_V1_W;
  805. __MINGW_TYPEDEF_UAW(SP_BACKUP_QUEUE_PARAMS_V1)
  806. __MINGW_TYPEDEF_UAW(PSP_BACKUP_QUEUE_PARAMS_V1)
  807. __MINGW_TYPEDEF_UAW(SP_BACKUP_QUEUE_PARAMS_V2)
  808. __MINGW_TYPEDEF_UAW(PSP_BACKUP_QUEUE_PARAMS_V2)
  809. #if USE_SP_BACKUP_QUEUE_PARAMS_V1
  810. typedef SP_BACKUP_QUEUE_PARAMS_V1_A SP_BACKUP_QUEUE_PARAMS_A;
  811. typedef PSP_BACKUP_QUEUE_PARAMS_V1_A PSP_BACKUP_QUEUE_PARAMS_A;
  812. typedef SP_BACKUP_QUEUE_PARAMS_V1_W SP_BACKUP_QUEUE_PARAMS_W;
  813. typedef PSP_BACKUP_QUEUE_PARAMS_V1_W PSP_BACKUP_QUEUE_PARAMS_W;
  814. typedef SP_BACKUP_QUEUE_PARAMS_V1 SP_BACKUP_QUEUE_PARAMS;
  815. typedef PSP_BACKUP_QUEUE_PARAMS_V1 PSP_BACKUP_QUEUE_PARAMS;
  816. #else
  817. typedef SP_BACKUP_QUEUE_PARAMS_V2_A SP_BACKUP_QUEUE_PARAMS_A;
  818. typedef PSP_BACKUP_QUEUE_PARAMS_V2_A PSP_BACKUP_QUEUE_PARAMS_A;
  819. typedef SP_BACKUP_QUEUE_PARAMS_V2_W SP_BACKUP_QUEUE_PARAMS_W;
  820. typedef PSP_BACKUP_QUEUE_PARAMS_V2_W PSP_BACKUP_QUEUE_PARAMS_W;
  821. typedef SP_BACKUP_QUEUE_PARAMS_V2 SP_BACKUP_QUEUE_PARAMS;
  822. typedef PSP_BACKUP_QUEUE_PARAMS_V2 PSP_BACKUP_QUEUE_PARAMS;
  823. #endif
  824. #ifndef _SPAPI_ERRORS
  825. #define _SPAPI_ERRORS
  826. #define ERROR_EXPECTED_SECTION_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0)
  827. #define ERROR_BAD_SECTION_NAME_LINE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|1)
  828. #define ERROR_SECTION_NAME_TOO_LONG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|2)
  829. #define ERROR_GENERAL_SYNTAX (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|3)
  830. #define ERROR_WRONG_INF_STYLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x100)
  831. #define ERROR_SECTION_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x101)
  832. #define ERROR_LINE_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x102)
  833. #define ERROR_NO_BACKUP (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x103)
  834. #define ERROR_NO_ASSOCIATED_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x200)
  835. #define ERROR_CLASS_MISMATCH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x201)
  836. #define ERROR_DUPLICATE_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x202)
  837. #define ERROR_NO_DRIVER_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x203)
  838. #define ERROR_KEY_DOES_NOT_EXIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x204)
  839. #define ERROR_INVALID_DEVINST_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x205)
  840. #define ERROR_INVALID_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x206)
  841. #define ERROR_DEVINST_ALREADY_EXISTS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x207)
  842. #define ERROR_DEVINFO_NOT_REGISTERED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x208)
  843. #define ERROR_INVALID_REG_PROPERTY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x209)
  844. #define ERROR_NO_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20A)
  845. #define ERROR_NO_SUCH_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20B)
  846. #define ERROR_CANT_LOAD_CLASS_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20C)
  847. #define ERROR_INVALID_CLASS_INSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20D)
  848. #define ERROR_DI_DO_DEFAULT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20E)
  849. #define ERROR_DI_NOFILECOPY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20F)
  850. #define ERROR_INVALID_HWPROFILE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x210)
  851. #define ERROR_NO_DEVICE_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x211)
  852. #define ERROR_DEVINFO_LIST_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x212)
  853. #define ERROR_DEVINFO_DATA_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x213)
  854. #define ERROR_DI_BAD_PATH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x214)
  855. #define ERROR_NO_CLASSINSTALL_PARAMS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x215)
  856. #define ERROR_FILEQUEUE_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x216)
  857. #define ERROR_BAD_SERVICE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x217)
  858. #define ERROR_NO_CLASS_DRIVER_LIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x218)
  859. #define ERROR_NO_ASSOCIATED_SERVICE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x219)
  860. #define ERROR_NO_DEFAULT_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21A)
  861. #define ERROR_DEVICE_INTERFACE_ACTIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21B)
  862. #define ERROR_DEVICE_INTERFACE_REMOVED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21C)
  863. #define ERROR_BAD_INTERFACE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21D)
  864. #define ERROR_NO_SUCH_INTERFACE_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21E)
  865. #define ERROR_INVALID_REFERENCE_STRING (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21F)
  866. #define ERROR_INVALID_MACHINENAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x220)
  867. #define ERROR_REMOTE_COMM_FAILURE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x221)
  868. #define ERROR_MACHINE_UNAVAILABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x222)
  869. #define ERROR_NO_CONFIGMGR_SERVICES (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x223)
  870. #define ERROR_INVALID_PROPPAGE_PROVIDER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x224)
  871. #define ERROR_NO_SUCH_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x225)
  872. #define ERROR_DI_POSTPROCESSING_REQUIRED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x226)
  873. #define ERROR_INVALID_COINSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x227)
  874. #define ERROR_NO_COMPAT_DRIVERS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x228)
  875. #define ERROR_NO_DEVICE_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x229)
  876. #define ERROR_INVALID_INF_LOGCONFIG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22A)
  877. #define ERROR_DI_DONT_INSTALL (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22B)
  878. #define ERROR_INVALID_FILTER_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22C)
  879. #define ERROR_NON_WINDOWS_NT_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22D)
  880. #define ERROR_NON_WINDOWS_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22E)
  881. #define ERROR_NO_CATALOG_FOR_OEM_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22F)
  882. #define ERROR_DEVINSTALL_QUEUE_NONNATIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x230)
  883. #define ERROR_NOT_DISABLEABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x231)
  884. #define ERROR_CANT_REMOVE_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x232)
  885. #define ERROR_INVALID_TARGET (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x233)
  886. #define ERROR_DRIVER_NONNATIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x234)
  887. #define ERROR_IN_WOW64 (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x235)
  888. #define ERROR_SET_SYSTEM_RESTORE_POINT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x236)
  889. #define ERROR_INCORRECTLY_COPIED_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x237)
  890. #define ERROR_SCE_DISABLED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x238)
  891. #define ERROR_UNKNOWN_EXCEPTION (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x239)
  892. #define ERROR_PNP_REGISTRY_ERROR (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23A)
  893. #define ERROR_REMOTE_REQUEST_UNSUPPORTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23B)
  894. #define ERROR_NOT_AN_INSTALLED_OEM_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23C)
  895. #define ERROR_INF_IN_USE_BY_DEVICES (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23D)
  896. #define ERROR_DI_FUNCTION_OBSOLETE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23E)
  897. #define ERROR_NO_AUTHENTICODE_CATALOG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x23F)
  898. #define ERROR_AUTHENTICODE_DISALLOWED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x240)
  899. #define ERROR_AUTHENTICODE_TRUSTED_PUBLISHER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x241)
  900. #define ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x242)
  901. #define ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x243)
  902. #define ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x244)
  903. #define ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x245)
  904. #define ERROR_DEVICE_INSTALLER_NOT_READY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x246)
  905. #define ERROR_DRIVER_STORE_ADD_FAILED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x247)
  906. #define ERROR_DEVICE_INSTALL_BLOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x248)
  907. #define ERROR_DRIVER_INSTALL_BLOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x249)
  908. #define ERROR_WRONG_INF_TYPE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x24A)
  909. #define ERROR_FILE_HASH_NOT_IN_CATALOG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x24B)
  910. #define ERROR_DRIVER_STORE_DELETE_FAILED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x24C)
  911. #define ERROR_UNRECOVERABLE_STACK_OVERFLOW (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x300)
  912. #define EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW ERROR_UNRECOVERABLE_STACK_OVERFLOW
  913. #define ERROR_NO_DEFAULT_INTERFACE_DEVICE ERROR_NO_DEFAULT_DEVICE_INTERFACE
  914. #define ERROR_INTERFACE_DEVICE_ACTIVE ERROR_DEVICE_INTERFACE_ACTIVE
  915. #define ERROR_INTERFACE_DEVICE_REMOVED ERROR_DEVICE_INTERFACE_REMOVED
  916. #define ERROR_NO_SUCH_INTERFACE_DEVICE ERROR_NO_SUCH_DEVICE_INTERFACE
  917. #define ERROR_NOT_INSTALLED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x1000)
  918. #endif /* _SPAPI_ERRORS */
  919. WINSETUPAPI WINBOOL WINAPI SetupGetInfInformationA(LPCVOID InfSpec,DWORD SearchControl,PSP_INF_INFORMATION ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  920. WINSETUPAPI WINBOOL WINAPI SetupGetInfInformationW(LPCVOID InfSpec,DWORD SearchControl,PSP_INF_INFORMATION ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  921. #define INFINFO_INF_SPEC_IS_HINF 1
  922. #define INFINFO_INF_NAME_IS_ABSOLUTE 2
  923. #define INFINFO_DEFAULT_SEARCH 3
  924. #define INFINFO_REVERSE_DEFAULT_SEARCH 4
  925. #define INFINFO_INF_PATH_LIST_SEARCH 5
  926. #define SetupGetInfInformation __MINGW_NAME_AW(SetupGetInfInformation)
  927. #define SetupQueryInfFileInformation __MINGW_NAME_AW(SetupQueryInfFileInformation)
  928. #define SetupQueryInfOriginalFileInformation __MINGW_NAME_AW(SetupQueryInfOriginalFileInformation)
  929. #define SetupQueryInfVersionInformation __MINGW_NAME_AW(SetupQueryInfVersionInformation)
  930. #define SetupGetInfFileList __MINGW_NAME_AW(SetupGetInfFileList)
  931. #define SetupOpenInfFile __MINGW_NAME_AW(SetupOpenInfFile)
  932. #define SetupOpenAppendInfFile __MINGW_NAME_AW(SetupOpenAppendInfFile)
  933. #define SetupFindFirstLine __MINGW_NAME_AW(SetupFindFirstLine)
  934. #define SetupFindNextMatchLine __MINGW_NAME_AW(SetupFindNextMatchLine)
  935. #define SetupGetLineByIndex __MINGW_NAME_AW(SetupGetLineByIndex)
  936. #define SetupGetLineCount __MINGW_NAME_AW(SetupGetLineCount)
  937. #define SetupGetLineText __MINGW_NAME_AW(SetupGetLineText)
  938. #define SetupGetStringField __MINGW_NAME_AW(SetupGetStringField)
  939. #define SetupGetMultiSzField __MINGW_NAME_AW(SetupGetMultiSzField)
  940. #define SetupGetFileCompressionInfo __MINGW_NAME_AW(SetupGetFileCompressionInfo)
  941. #define SetupGetFileCompressionInfoEx __MINGW_NAME_AW(SetupGetFileCompressionInfoEx)
  942. #define SetupDecompressOrCopyFile __MINGW_NAME_AW(SetupDecompressOrCopyFile)
  943. #define SetupGetSourceFileLocation __MINGW_NAME_AW(SetupGetSourceFileLocation)
  944. #define SetupGetSourceFileSize __MINGW_NAME_AW(SetupGetSourceFileSize)
  945. #define SetupGetTargetPath __MINGW_NAME_AW(SetupGetTargetPath)
  946. #define SetupSetSourceList __MINGW_NAME_AW(SetupSetSourceList)
  947. #define SetupAddToSourceList __MINGW_NAME_AW(SetupAddToSourceList)
  948. #define SetupRemoveFromSourceList __MINGW_NAME_AW(SetupRemoveFromSourceList)
  949. #define SetupQuerySourceList __MINGW_NAME_AW(SetupQuerySourceList)
  950. #define SetupFreeSourceList __MINGW_NAME_AW(SetupFreeSourceList)
  951. #define SetupPromptForDisk __MINGW_NAME_AW(SetupPromptForDisk)
  952. #define SetupCopyError __MINGW_NAME_AW(SetupCopyError)
  953. #define SetupRenameError __MINGW_NAME_AW(SetupRenameError)
  954. #define SetupDeleteError __MINGW_NAME_AW(SetupDeleteError)
  955. #define SetupBackupError __MINGW_NAME_AW(SetupBackupError)
  956. #define SRCLIST_TEMPORARY 0x00000001
  957. #define SRCLIST_NOBROWSE 0x00000002
  958. #define SRCLIST_SYSTEM 0x00000010
  959. #define SRCLIST_USER 0x00000020
  960. #define SRCLIST_SYSIFADMIN 0x00000040
  961. #define SRCLIST_SUBDIRS 0x00000100
  962. #define SRCLIST_APPEND 0x00000200
  963. #define SRCLIST_NOSTRIPPLATFORM 0x00000400
  964. #define FILE_COMPRESSION_NONE 0
  965. #define FILE_COMPRESSION_WINLZA 1
  966. #define FILE_COMPRESSION_MSZIP 2
  967. #define FILE_COMPRESSION_NTCAB 3
  968. WINSETUPAPI WINBOOL WINAPI SetupQueryInfFileInformationA(PSP_INF_INFORMATION InfInformation,UINT InfIndex,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  969. WINSETUPAPI WINBOOL WINAPI SetupQueryInfFileInformationW(PSP_INF_INFORMATION InfInformation,UINT InfIndex,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  970. WINSETUPAPI WINBOOL WINAPI SetupQueryInfOriginalFileInformationA(PSP_INF_INFORMATION InfInformation,UINT InfIndex,PSP_ALTPLATFORM_INFO AlternatePlatformInfo,PSP_ORIGINAL_FILE_INFO_A OriginalFileInfo);
  971. WINSETUPAPI WINBOOL WINAPI SetupQueryInfOriginalFileInformationW(PSP_INF_INFORMATION InfInformation,UINT InfIndex,PSP_ALTPLATFORM_INFO AlternatePlatformInfo,PSP_ORIGINAL_FILE_INFO_W OriginalFileInfo);
  972. WINSETUPAPI WINBOOL WINAPI SetupQueryInfVersionInformationA(PSP_INF_INFORMATION InfInformation,UINT InfIndex,PCSTR Key,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  973. WINSETUPAPI WINBOOL WINAPI SetupQueryInfVersionInformationW(PSP_INF_INFORMATION InfInformation,UINT InfIndex,PCWSTR Key,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  974. WINSETUPAPI WINBOOL WINAPI SetupGetInfFileListA(PCSTR DirectoryPath,DWORD InfStyle,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  975. WINSETUPAPI WINBOOL WINAPI SetupGetInfFileListW(PCWSTR DirectoryPath,DWORD InfStyle,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  976. WINSETUPAPI HINF WINAPI SetupOpenInfFileW(PCWSTR FileName,PCWSTR InfClass,DWORD InfStyle,PUINT ErrorLine);
  977. WINSETUPAPI HINF WINAPI SetupOpenInfFileA(PCSTR FileName,PCSTR InfClass,DWORD InfStyle,PUINT ErrorLine);
  978. WINSETUPAPI HINF WINAPI SetupOpenMasterInf(VOID);
  979. WINSETUPAPI WINBOOL WINAPI SetupOpenAppendInfFileW(PCWSTR FileName,HINF InfHandle,PUINT ErrorLine);
  980. WINSETUPAPI WINBOOL WINAPI SetupOpenAppendInfFileA(PCSTR FileName,HINF InfHandle,PUINT ErrorLine);
  981. WINSETUPAPI VOID WINAPI SetupCloseInfFile(HINF InfHandle);
  982. WINSETUPAPI WINBOOL WINAPI SetupFindFirstLineA(HINF InfHandle,PCSTR Section,PCSTR Key,PINFCONTEXT Context);
  983. WINSETUPAPI WINBOOL WINAPI SetupFindFirstLineW(HINF InfHandle,PCWSTR Section,PCWSTR Key,PINFCONTEXT Context);
  984. WINSETUPAPI WINBOOL WINAPI SetupFindNextLine(PINFCONTEXT ContextIn,PINFCONTEXT ContextOut);
  985. WINSETUPAPI WINBOOL WINAPI SetupFindNextMatchLineA(PINFCONTEXT ContextIn,PCSTR Key,PINFCONTEXT ContextOut);
  986. WINSETUPAPI WINBOOL WINAPI SetupFindNextMatchLineW(PINFCONTEXT ContextIn,PCWSTR Key,PINFCONTEXT ContextOut);
  987. WINSETUPAPI WINBOOL WINAPI SetupGetLineByIndexA(HINF InfHandle,PCSTR Section,DWORD Index,PINFCONTEXT Context);
  988. WINSETUPAPI WINBOOL WINAPI SetupGetLineByIndexW(HINF InfHandle,PCWSTR Section,DWORD Index,PINFCONTEXT Context);
  989. WINSETUPAPI LONG WINAPI SetupGetLineCountA(HINF InfHandle,PCSTR Section);
  990. WINSETUPAPI LONG WINAPI SetupGetLineCountW(HINF InfHandle,PCWSTR Section);
  991. WINSETUPAPI WINBOOL WINAPI SetupGetLineTextA(PINFCONTEXT Context,HINF InfHandle,PCSTR Section,PCSTR Key,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  992. WINSETUPAPI WINBOOL WINAPI SetupGetLineTextW(PINFCONTEXT Context,HINF InfHandle,PCWSTR Section,PCWSTR Key,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  993. WINSETUPAPI DWORD WINAPI SetupGetFieldCount(PINFCONTEXT Context);
  994. WINSETUPAPI WINBOOL WINAPI SetupGetStringFieldA(PINFCONTEXT Context,DWORD FieldIndex,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  995. WINSETUPAPI WINBOOL WINAPI SetupGetStringFieldW(PINFCONTEXT Context,DWORD FieldIndex,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  996. WINSETUPAPI WINBOOL WINAPI SetupGetIntField(PINFCONTEXT Context,DWORD FieldIndex,PINT IntegerValue);
  997. WINSETUPAPI WINBOOL WINAPI SetupGetMultiSzFieldA(PINFCONTEXT Context,DWORD FieldIndex,PSTR ReturnBuffer,DWORD ReturnBufferSize,LPDWORD RequiredSize);
  998. WINSETUPAPI WINBOOL WINAPI SetupGetMultiSzFieldW(PINFCONTEXT Context,DWORD FieldIndex,PWSTR ReturnBuffer,DWORD ReturnBufferSize,LPDWORD RequiredSize);
  999. WINSETUPAPI WINBOOL WINAPI SetupGetBinaryField(PINFCONTEXT Context,DWORD FieldIndex,PBYTE ReturnBuffer,DWORD ReturnBufferSize,LPDWORD RequiredSize);
  1000. WINSETUPAPI DWORD WINAPI SetupGetFileCompressionInfoA(PCSTR SourceFileName,PSTR *ActualSourceFileName,PDWORD SourceFileSize,PDWORD TargetFileSize,PUINT CompressionType);
  1001. WINSETUPAPI DWORD WINAPI SetupGetFileCompressionInfoW(PCWSTR SourceFileName,PWSTR *ActualSourceFileName,PDWORD SourceFileSize,PDWORD TargetFileSize,PUINT CompressionType);
  1002. WINSETUPAPI WINBOOL WINAPI SetupGetFileCompressionInfoExA(PCSTR SourceFileName,PSTR ActualSourceFileNameBuffer,DWORD ActualSourceFileNameBufferLen,PDWORD RequiredBufferLen,PDWORD SourceFileSize,PDWORD TargetFileSize,PUINT CompressionType);
  1003. WINSETUPAPI WINBOOL WINAPI SetupGetFileCompressionInfoExW(PCWSTR SourceFileName,PWSTR ActualSourceFileNameBuffer,DWORD ActualSourceFileNameBufferLen,PDWORD RequiredBufferLen,PDWORD SourceFileSize,PDWORD TargetFileSize,PUINT CompressionType);
  1004. WINSETUPAPI DWORD WINAPI SetupDecompressOrCopyFileA(PCSTR SourceFileName,PCSTR TargetFileName,PUINT CompressionType);
  1005. WINSETUPAPI DWORD WINAPI SetupDecompressOrCopyFileW(PCWSTR SourceFileName,PCWSTR TargetFileName,PUINT CompressionType);
  1006. WINSETUPAPI WINBOOL WINAPI SetupGetSourceFileLocationA(HINF InfHandle,PINFCONTEXT InfContext,PCSTR FileName,PUINT SourceId,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  1007. WINSETUPAPI WINBOOL WINAPI SetupGetSourceFileLocationW(HINF InfHandle,PINFCONTEXT InfContext,PCWSTR FileName,PUINT SourceId,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  1008. WINSETUPAPI WINBOOL WINAPI SetupGetSourceFileSizeA(HINF InfHandle,PINFCONTEXT InfContext,PCSTR FileName,PCSTR Section,PDWORD FileSize,UINT RoundingFactor);
  1009. WINSETUPAPI WINBOOL WINAPI SetupGetSourceFileSizeW(HINF InfHandle,PINFCONTEXT InfContext,PCWSTR FileName,PCWSTR Section,PDWORD FileSize,UINT RoundingFactor);
  1010. WINSETUPAPI WINBOOL WINAPI SetupGetTargetPathA(HINF InfHandle,PINFCONTEXT InfContext,PCSTR Section,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  1011. WINSETUPAPI WINBOOL WINAPI SetupGetTargetPathW(HINF InfHandle,PINFCONTEXT InfContext,PCWSTR Section,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  1012. WINSETUPAPI WINBOOL WINAPI SetupSetSourceListA(DWORD Flags,PCSTR *SourceList,UINT SourceCount);
  1013. WINSETUPAPI WINBOOL WINAPI SetupSetSourceListW(DWORD Flags,PCWSTR *SourceList,UINT SourceCount);
  1014. WINSETUPAPI WINBOOL WINAPI SetupCancelTemporarySourceList(VOID);
  1015. WINSETUPAPI WINBOOL WINAPI SetupAddToSourceListA(DWORD Flags,PCSTR Source);
  1016. WINSETUPAPI WINBOOL WINAPI SetupAddToSourceListW(DWORD Flags,PCWSTR Source);
  1017. WINSETUPAPI WINBOOL WINAPI SetupRemoveFromSourceListA(DWORD Flags,PCSTR Source);
  1018. WINSETUPAPI WINBOOL WINAPI SetupRemoveFromSourceListW(DWORD Flags,PCWSTR Source);
  1019. WINSETUPAPI WINBOOL WINAPI SetupQuerySourceListA(DWORD Flags,PCSTR **List,PUINT Count);
  1020. WINSETUPAPI WINBOOL WINAPI SetupQuerySourceListW(DWORD Flags,PCWSTR **List,PUINT Count);
  1021. WINSETUPAPI WINBOOL WINAPI SetupFreeSourceListA(PCSTR **List,UINT Count);
  1022. WINSETUPAPI WINBOOL WINAPI SetupFreeSourceListW(PCWSTR **List,UINT Count);
  1023. WINSETUPAPI UINT WINAPI SetupPromptForDiskA(HWND hwndParent,PCSTR DialogTitle,PCSTR DiskName,PCSTR PathToSource,PCSTR FileSought,PCSTR TagFile,DWORD DiskPromptStyle,PSTR PathBuffer,DWORD PathBufferSize,PDWORD PathRequiredSize);
  1024. WINSETUPAPI UINT WINAPI SetupPromptForDiskW(HWND hwndParent,PCWSTR DialogTitle,PCWSTR DiskName,PCWSTR PathToSource,PCWSTR FileSought,PCWSTR TagFile,DWORD DiskPromptStyle,PWSTR PathBuffer,DWORD PathBufferSize,PDWORD PathRequiredSize);
  1025. 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);
  1026. 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);
  1027. WINSETUPAPI UINT WINAPI SetupRenameErrorA(HWND hwndParent,PCSTR DialogTitle,PCSTR SourceFile,PCSTR TargetFile,UINT Win32ErrorCode,DWORD Style);
  1028. WINSETUPAPI UINT WINAPI SetupRenameErrorW(HWND hwndParent,PCWSTR DialogTitle,PCWSTR SourceFile,PCWSTR TargetFile,UINT Win32ErrorCode,DWORD Style);
  1029. WINSETUPAPI UINT WINAPI SetupDeleteErrorA(HWND hwndParent,PCSTR DialogTitle,PCSTR File,UINT Win32ErrorCode,DWORD Style);
  1030. WINSETUPAPI UINT WINAPI SetupDeleteErrorW(HWND hwndParent,PCWSTR DialogTitle,PCWSTR File,UINT Win32ErrorCode,DWORD Style);
  1031. WINSETUPAPI UINT WINAPI SetupBackupErrorA(HWND hwndParent,PCSTR DialogTitle,PCSTR SourceFile,PCSTR TargetFile,UINT Win32ErrorCode,DWORD Style);
  1032. WINSETUPAPI UINT WINAPI SetupBackupErrorW(HWND hwndParent,PCWSTR DialogTitle,PCWSTR SourceFile,PCWSTR TargetFile,UINT Win32ErrorCode,DWORD Style);
  1033. #define IDF_NOBROWSE 0x00000001
  1034. #define IDF_NOSKIP 0x00000002
  1035. #define IDF_NODETAILS 0x00000004
  1036. #define IDF_NOCOMPRESSED 0x00000008
  1037. #define IDF_CHECKFIRST 0x00000100
  1038. #define IDF_NOBEEP 0x00000200
  1039. #define IDF_NOFOREGROUND 0x00000400
  1040. #define IDF_WARNIFSKIP 0x00000800
  1041. #define IDF_NOREMOVABLEMEDIAPROMPT 0x00001000
  1042. #define IDF_USEDISKNAMEASPROMPT 0x00002000
  1043. #define IDF_OEMDISK 0x80000000
  1044. #define DPROMPT_SUCCESS 0
  1045. #define DPROMPT_CANCEL 1
  1046. #define DPROMPT_SKIPFILE 2
  1047. #define DPROMPT_BUFFERTOOSMALL 3
  1048. #define DPROMPT_OUTOFMEMORY 4
  1049. #define SETDIRID_NOT_FULL_PATH 0x00000001
  1050. #define SRCINFO_PATH 1
  1051. #define SRCINFO_TAGFILE 2
  1052. #define SRCINFO_DESCRIPTION 3
  1053. #define SRCINFO_FLAGS 4
  1054. #define SRCINFO_TAGFILE2 5
  1055. #define SRC_FLAGS_CABFILE (0x0010)
  1056. #define SetupSetDirectoryId __MINGW_NAME_AW(SetupSetDirectoryId)
  1057. #define SetupSetDirectoryIdEx __MINGW_NAME_AW(SetupSetDirectoryIdEx)
  1058. #define SetupGetSourceInfo __MINGW_NAME_AW(SetupGetSourceInfo)
  1059. #define SetupInstallFile __MINGW_NAME_AW(SetupInstallFile)
  1060. #define SetupInstallFileEx __MINGW_NAME_AW(SetupInstallFileEx)
  1061. WINSETUPAPI WINBOOL WINAPI SetupSetDirectoryIdA(HINF InfHandle,DWORD Id,PCSTR Directory);
  1062. WINSETUPAPI WINBOOL WINAPI SetupSetDirectoryIdW(HINF InfHandle,DWORD Id,PCWSTR Directory);
  1063. WINSETUPAPI WINBOOL WINAPI SetupSetDirectoryIdExA(HINF InfHandle,DWORD Id,PCSTR Directory,DWORD Flags,DWORD Reserved1,PVOID Reserved2);
  1064. WINSETUPAPI WINBOOL WINAPI SetupSetDirectoryIdExW(HINF InfHandle,DWORD Id,PCWSTR Directory,DWORD Flags,DWORD Reserved1,PVOID Reserved2);
  1065. WINSETUPAPI WINBOOL WINAPI SetupGetSourceInfoA(HINF InfHandle,UINT SourceId,UINT InfoDesired,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  1066. WINSETUPAPI WINBOOL WINAPI SetupGetSourceInfoW(HINF InfHandle,UINT SourceId,UINT InfoDesired,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  1067. WINSETUPAPI WINBOOL WINAPI SetupInstallFileA(HINF InfHandle,PINFCONTEXT InfContext,PCSTR SourceFile,PCSTR SourcePathRoot,PCSTR DestinationName,DWORD CopyStyle,PSP_FILE_CALLBACK_A CopyMsgHandler,PVOID Context);
  1068. WINSETUPAPI WINBOOL WINAPI SetupInstallFileW(HINF InfHandle,PINFCONTEXT InfContext,PCWSTR SourceFile,PCWSTR SourcePathRoot,PCWSTR DestinationName,DWORD CopyStyle,PSP_FILE_CALLBACK_W CopyMsgHandler,PVOID Context);
  1069. WINSETUPAPI WINBOOL WINAPI SetupInstallFileExA(HINF InfHandle,PINFCONTEXT InfContext,PCSTR SourceFile,PCSTR SourcePathRoot,PCSTR DestinationName,DWORD CopyStyle,PSP_FILE_CALLBACK_A CopyMsgHandler,PVOID Context,PBOOL FileWasInUse);
  1070. WINSETUPAPI WINBOOL WINAPI SetupInstallFileExW(HINF InfHandle,PINFCONTEXT InfContext,PCWSTR SourceFile,PCWSTR SourcePathRoot,PCWSTR DestinationName,DWORD CopyStyle,PSP_FILE_CALLBACK_W CopyMsgHandler,PVOID Context,PBOOL FileWasInUse);
  1071. #define SP_COPY_DELETESOURCE 0x0000001
  1072. #define SP_COPY_REPLACEONLY 0x0000002
  1073. #define SP_COPY_NEWER 0x0000004
  1074. #define SP_COPY_NEWER_OR_SAME SP_COPY_NEWER
  1075. #define SP_COPY_NOOVERWRITE 0x0000008
  1076. #define SP_COPY_NODECOMP 0x0000010
  1077. #define SP_COPY_LANGUAGEAWARE 0x0000020
  1078. #define SP_COPY_SOURCE_ABSOLUTE 0x0000040
  1079. #define SP_COPY_SOURCEPATH_ABSOLUTE 0x0000080
  1080. #define SP_COPY_IN_USE_NEEDS_REBOOT 0x0000100
  1081. #define SP_COPY_FORCE_IN_USE 0x0000200
  1082. #define SP_COPY_NOSKIP 0x0000400
  1083. #define SP_FLAG_CABINETCONTINUATION 0x0000800
  1084. #define SP_COPY_FORCE_NOOVERWRITE 0x0001000
  1085. #define SP_COPY_FORCE_NEWER 0x0002000
  1086. #define SP_COPY_WARNIFSKIP 0x0004000
  1087. #define SP_COPY_NOBROWSE 0x0008000
  1088. #define SP_COPY_NEWER_ONLY 0x0010000
  1089. #define SP_COPY_SOURCE_SIS_MASTER 0x0020000
  1090. #define SP_COPY_OEMINF_CATALOG_ONLY 0x0040000
  1091. #define SP_COPY_REPLACE_BOOT_FILE 0x0080000
  1092. #define SP_COPY_NOPRUNE 0x0100000
  1093. #define SP_COPY_OEM_F6_INF 0x0200000
  1094. #define SP_BACKUP_BACKUPPASS 0x00000001
  1095. #define SP_BACKUP_DEMANDPASS 0x00000002
  1096. #define SP_BACKUP_SPECIAL 0x00000004
  1097. #define SP_BACKUP_BOOTFILE 0x00000008
  1098. #define SetupSetFileQueueAlternatePlatform __MINGW_NAME_AW(SetupSetFileQueueAlternatePlatform)
  1099. #define SetupQueueDeleteSection __MINGW_NAME_AW(SetupQueueDeleteSection)
  1100. #define SetupQueueRename __MINGW_NAME_AW(SetupQueueRename)
  1101. #define SetupQueueRenameSection __MINGW_NAME_AW(SetupQueueRenameSection)
  1102. #define SetupCommitFileQueue __MINGW_NAME_AW(SetupCommitFileQueue)
  1103. #define SetupScanFileQueue __MINGW_NAME_AW(SetupScanFileQueue)
  1104. #define SetupSetPlatformPathOverride __MINGW_NAME_AW(SetupSetPlatformPathOverride)
  1105. #define SetupQueueCopy __MINGW_NAME_AW(SetupQueueCopy)
  1106. #define SetupQueueCopyIndirect __MINGW_NAME_AW(SetupQueueCopyIndirect)
  1107. #define SetupQueueDefaultCopy __MINGW_NAME_AW(SetupQueueDefaultCopy)
  1108. #define SetupQueueCopySection __MINGW_NAME_AW(SetupQueueCopySection)
  1109. #define SetupQueueDelete __MINGW_NAME_AW(SetupQueueDelete)
  1110. WINSETUPAPI HSPFILEQ WINAPI SetupOpenFileQueue(VOID);
  1111. WINSETUPAPI WINBOOL WINAPI SetupCloseFileQueue(HSPFILEQ QueueHandle);
  1112. WINSETUPAPI WINBOOL WINAPI SetupSetFileQueueAlternatePlatformA(HSPFILEQ QueueHandle,PSP_ALTPLATFORM_INFO AlternatePlatformInfo,PCSTR AlternateDefaultCatalogFile);
  1113. WINSETUPAPI WINBOOL WINAPI SetupSetFileQueueAlternatePlatformW(HSPFILEQ QueueHandle,PSP_ALTPLATFORM_INFO AlternatePlatformInfo,PCWSTR AlternateDefaultCatalogFile);
  1114. WINSETUPAPI WINBOOL WINAPI SetupSetPlatformPathOverrideA(PCSTR Override);
  1115. WINSETUPAPI WINBOOL WINAPI SetupSetPlatformPathOverrideW(PCWSTR Override);
  1116. WINSETUPAPI WINBOOL WINAPI SetupQueueCopyA(HSPFILEQ QueueHandle,PCSTR SourceRootPath,PCSTR SourcePath,PCSTR SourceFilename,PCSTR SourceDescription,PCSTR SourceTagfile,PCSTR TargetDirectory,PCSTR TargetFilename,DWORD CopyStyle);
  1117. WINSETUPAPI WINBOOL WINAPI SetupQueueCopyW(HSPFILEQ QueueHandle,PCWSTR SourceRootPath,PCWSTR SourcePath,PCWSTR SourceFilename,PCWSTR SourceDescription,PCWSTR SourceTagfile,PCWSTR TargetDirectory,PCWSTR TargetFilename,DWORD CopyStyle);
  1118. WINSETUPAPI WINBOOL WINAPI SetupQueueCopyIndirectA(PSP_FILE_COPY_PARAMS_A CopyParams);
  1119. WINSETUPAPI WINBOOL WINAPI SetupQueueCopyIndirectW(PSP_FILE_COPY_PARAMS_W CopyParams);
  1120. WINSETUPAPI WINBOOL WINAPI SetupQueueDefaultCopyA(HSPFILEQ QueueHandle,HINF InfHandle,PCSTR SourceRootPath,PCSTR SourceFilename,PCSTR TargetFilename,DWORD CopyStyle);
  1121. WINSETUPAPI WINBOOL WINAPI SetupQueueDefaultCopyW(HSPFILEQ QueueHandle,HINF InfHandle,PCWSTR SourceRootPath,PCWSTR SourceFilename,PCWSTR TargetFilename,DWORD CopyStyle);
  1122. WINSETUPAPI WINBOOL WINAPI SetupQueueCopySectionA(HSPFILEQ QueueHandle,PCSTR SourceRootPath,HINF InfHandle,HINF ListInfHandle,PCSTR Section,DWORD CopyStyle);
  1123. WINSETUPAPI WINBOOL WINAPI SetupQueueCopySectionW(HSPFILEQ QueueHandle,PCWSTR SourceRootPath,HINF InfHandle,HINF ListInfHandle,PCWSTR Section,DWORD CopyStyle);
  1124. WINSETUPAPI WINBOOL WINAPI SetupQueueDeleteA(HSPFILEQ QueueHandle,PCSTR PathPart1,PCSTR PathPart2);
  1125. WINSETUPAPI WINBOOL WINAPI SetupQueueDeleteW(HSPFILEQ QueueHandle,PCWSTR PathPart1,PCWSTR PathPart2);
  1126. WINSETUPAPI WINBOOL WINAPI SetupQueueDeleteSectionA(HSPFILEQ QueueHandle,HINF InfHandle,HINF ListInfHandle,PCSTR Section);
  1127. WINSETUPAPI WINBOOL WINAPI SetupQueueDeleteSectionW(HSPFILEQ QueueHandle,HINF InfHandle,HINF ListInfHandle,PCWSTR Section);
  1128. WINSETUPAPI WINBOOL WINAPI SetupQueueRenameA(HSPFILEQ QueueHandle,PCSTR SourcePath,PCSTR SourceFilename,PCSTR TargetPath,PCSTR TargetFilename);
  1129. WINSETUPAPI WINBOOL WINAPI SetupQueueRenameW(HSPFILEQ QueueHandle,PCWSTR SourcePath,PCWSTR SourceFilename,PCWSTR TargetPath,PCWSTR TargetFilename);
  1130. WINSETUPAPI WINBOOL WINAPI SetupQueueRenameSectionA(HSPFILEQ QueueHandle,HINF InfHandle,HINF ListInfHandle,PCSTR Section);
  1131. WINSETUPAPI WINBOOL WINAPI SetupQueueRenameSectionW(HSPFILEQ QueueHandle,HINF InfHandle,HINF ListInfHandle,PCWSTR Section);
  1132. WINSETUPAPI WINBOOL WINAPI SetupCommitFileQueueA(HWND Owner,HSPFILEQ QueueHandle,PSP_FILE_CALLBACK_A MsgHandler,PVOID Context);
  1133. WINSETUPAPI WINBOOL WINAPI SetupCommitFileQueueW(HWND Owner,HSPFILEQ QueueHandle,PSP_FILE_CALLBACK_W MsgHandler,PVOID Context);
  1134. WINSETUPAPI WINBOOL WINAPI SetupScanFileQueueA(HSPFILEQ FileQueue,DWORD Flags,HWND Window,PSP_FILE_CALLBACK_A CallbackRoutine,PVOID CallbackContext,PDWORD Result);
  1135. WINSETUPAPI WINBOOL WINAPI SetupScanFileQueueW(HSPFILEQ FileQueue,DWORD Flags,HWND Window,PSP_FILE_CALLBACK_W CallbackRoutine,PVOID CallbackContext,PDWORD Result);
  1136. #define SPQ_SCAN_FILE_PRESENCE 0x00000001
  1137. #define SPQ_SCAN_FILE_VALIDITY 0x00000002
  1138. #define SPQ_SCAN_USE_CALLBACK 0x00000004
  1139. #define SPQ_SCAN_USE_CALLBACKEX 0x00000008
  1140. #define SPQ_SCAN_INFORM_USER 0x00000010
  1141. #define SPQ_SCAN_PRUNE_COPY_QUEUE 0x00000020
  1142. #define SPQ_SCAN_USE_CALLBACK_SIGNERINFO 0x00000040
  1143. #define SPQ_SCAN_PRUNE_DELREN 0x00000080
  1144. #define SPQ_DELAYED_COPY 0x00000001
  1145. WINSETUPAPI WINBOOL WINAPI SetupGetFileQueueCount(HSPFILEQ FileQueue,UINT SubQueueFileOp,PUINT NumOperations);
  1146. WINSETUPAPI WINBOOL WINAPI SetupGetFileQueueFlags(HSPFILEQ FileQueue,PDWORD Flags);
  1147. WINSETUPAPI WINBOOL WINAPI SetupSetFileQueueFlags(HSPFILEQ FileQueue,DWORD FlagMask,DWORD Flags);
  1148. #define SPQ_FLAG_BACKUP_AWARE 0x00000001
  1149. #define SPQ_FLAG_ABORT_IF_UNSIGNED 0x00000002
  1150. #define SPQ_FLAG_FILES_MODIFIED 0x00000004
  1151. #define SPQ_FLAG_VALID 0x00000007
  1152. #define SPOST_NONE 0
  1153. #define SPOST_PATH 1
  1154. #define SPOST_URL 2
  1155. #define SPOST_MAX 3
  1156. #define SetupCopyOEMInf __MINGW_NAME_AW(SetupCopyOEMInf)
  1157. WINSETUPAPI WINBOOL WINAPI SetupCopyOEMInfA(PCSTR SourceInfFileName,PCSTR OEMSourceMediaLocation,DWORD OEMSourceMediaType,DWORD CopyStyle,PSTR DestinationInfFileName,DWORD DestinationInfFileNameSize,PDWORD RequiredSize,PSTR *DestinationInfFileNameComponent);
  1158. WINSETUPAPI WINBOOL WINAPI SetupCopyOEMInfW(PCWSTR SourceInfFileName,PCWSTR OEMSourceMediaLocation,DWORD OEMSourceMediaType,DWORD CopyStyle,PWSTR DestinationInfFileName,DWORD DestinationInfFileNameSize,PDWORD RequiredSize,PWSTR *DestinationInfFileNameComponent);
  1159. #define SUOI_FORCEDELETE 0x00000001
  1160. #define SetupUninstallOEMInf __MINGW_NAME_AW(SetupUninstallOEMInf)
  1161. #define SetupCreateDiskSpaceList __MINGW_NAME_AW(SetupCreateDiskSpaceList)
  1162. WINSETUPAPI WINBOOL WINAPI SetupUninstallOEMInfA(PCSTR InfFileName,DWORD Flags,PVOID Reserved);
  1163. WINSETUPAPI WINBOOL WINAPI SetupUninstallOEMInfW(PCWSTR InfFileName,DWORD Flags,PVOID Reserved);
  1164. WINSETUPAPI WINBOOL WINAPI SetupUninstallNewlyCopiedInfs(HSPFILEQ FileQueue,DWORD Flags,PVOID Reserved);
  1165. WINSETUPAPI HDSKSPC WINAPI SetupCreateDiskSpaceListA(PVOID Reserved1,DWORD Reserved2,UINT Flags);
  1166. WINSETUPAPI HDSKSPC WINAPI SetupCreateDiskSpaceListW(PVOID Reserved1,DWORD Reserved2,UINT Flags);
  1167. #define SPDSL_IGNORE_DISK 0x00000001
  1168. #define SPDSL_DISALLOW_NEGATIVE_ADJUST 0x00000002
  1169. #define SetupDuplicateDiskSpaceList __MINGW_NAME_AW(SetupDuplicateDiskSpaceList)
  1170. #define SetupQueryDrivesInDiskSpaceList __MINGW_NAME_AW(SetupQueryDrivesInDiskSpaceList)
  1171. #define SetupQuerySpaceRequiredOnDrive __MINGW_NAME_AW(SetupQuerySpaceRequiredOnDrive)
  1172. #define SetupAdjustDiskSpaceList __MINGW_NAME_AW(SetupAdjustDiskSpaceList)
  1173. #define SetupAddToDiskSpaceList __MINGW_NAME_AW(SetupAddToDiskSpaceList)
  1174. #define SetupAddSectionToDiskSpaceList __MINGW_NAME_AW(SetupAddSectionToDiskSpaceList)
  1175. #define SetupAddInstallSectionToDiskSpaceList __MINGW_NAME_AW(SetupAddInstallSectionToDiskSpaceList)
  1176. #define SetupRemoveFromDiskSpaceList __MINGW_NAME_AW(SetupRemoveFromDiskSpaceList)
  1177. #define SetupRemoveSectionFromDiskSpaceList __MINGW_NAME_AW(SetupRemoveSectionFromDiskSpaceList)
  1178. #define SetupRemoveInstallSectionFromDiskSpaceList __MINGW_NAME_AW(SetupRemoveInstallSectionFromDiskSpaceList)
  1179. #define SetupIterateCabinet __MINGW_NAME_AW(SetupIterateCabinet)
  1180. WINSETUPAPI HDSKSPC WINAPI SetupDuplicateDiskSpaceListA(HDSKSPC DiskSpace,PVOID Reserved1,DWORD Reserved2,UINT Flags);
  1181. WINSETUPAPI HDSKSPC WINAPI SetupDuplicateDiskSpaceListW(HDSKSPC DiskSpace,PVOID Reserved1,DWORD Reserved2,UINT Flags);
  1182. WINSETUPAPI WINBOOL WINAPI SetupDestroyDiskSpaceList(HDSKSPC DiskSpace);
  1183. WINSETUPAPI WINBOOL WINAPI SetupQueryDrivesInDiskSpaceListA(HDSKSPC DiskSpace,PSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  1184. WINSETUPAPI WINBOOL WINAPI SetupQueryDrivesInDiskSpaceListW(HDSKSPC DiskSpace,PWSTR ReturnBuffer,DWORD ReturnBufferSize,PDWORD RequiredSize);
  1185. WINSETUPAPI WINBOOL WINAPI SetupQuerySpaceRequiredOnDriveA(HDSKSPC DiskSpace,PCSTR DriveSpec,LONGLONG *SpaceRequired,PVOID Reserved1,UINT Reserved2);
  1186. WINSETUPAPI WINBOOL WINAPI SetupQuerySpaceRequiredOnDriveW(HDSKSPC DiskSpace,PCWSTR DriveSpec,LONGLONG *SpaceRequired,PVOID Reserved1,UINT Reserved2);
  1187. WINSETUPAPI WINBOOL WINAPI SetupAdjustDiskSpaceListA(HDSKSPC DiskSpace,LPCSTR DriveRoot,LONGLONG Amount,PVOID Reserved1,UINT Reserved2);
  1188. WINSETUPAPI WINBOOL WINAPI SetupAdjustDiskSpaceListW(HDSKSPC DiskSpace,LPCWSTR DriveRoot,LONGLONG Amount,PVOID Reserved1,UINT Reserved2);
  1189. WINSETUPAPI WINBOOL WINAPI SetupAddToDiskSpaceListA(HDSKSPC DiskSpace,PCSTR TargetFilespec,LONGLONG FileSize,UINT Operation,PVOID Reserved1,UINT Reserved2);
  1190. WINSETUPAPI WINBOOL WINAPI SetupAddToDiskSpaceListW(HDSKSPC DiskSpace,PCWSTR TargetFilespec,LONGLONG FileSize,UINT Operation,PVOID Reserved1,UINT Reserved2);
  1191. WINSETUPAPI WINBOOL WINAPI SetupAddSectionToDiskSpaceListA(HDSKSPC DiskSpace,HINF InfHandle,HINF ListInfHandle,PCSTR SectionName,UINT Operation,PVOID Reserved1,UINT Reserved2);
  1192. WINSETUPAPI WINBOOL WINAPI SetupAddSectionToDiskSpaceListW(HDSKSPC DiskSpace,HINF InfHandle,HINF ListInfHandle,PCWSTR SectionName,UINT Operation,PVOID Reserved1,UINT Reserved2);
  1193. WINSETUPAPI WINBOOL WINAPI SetupAddInstallSectionToDiskSpaceListA(HDSKSPC DiskSpace,HINF InfHandle,HINF LayoutInfHandle,PCSTR SectionName,PVOID Reserved1,UINT Reserved2);
  1194. WINSETUPAPI WINBOOL WINAPI SetupAddInstallSectionToDiskSpaceListW(HDSKSPC DiskSpace,HINF InfHandle,HINF LayoutInfHandle,PCWSTR SectionName,PVOID Reserved1,UINT Reserved2);
  1195. WINSETUPAPI WINBOOL WINAPI SetupRemoveFromDiskSpaceListA(HDSKSPC DiskSpace,PCSTR TargetFilespec,UINT Operation,PVOID Reserved1,UINT Reserved2);
  1196. WINSETUPAPI WINBOOL WINAPI SetupRemoveFromDiskSpaceListW(HDSKSPC DiskSpace,PCWSTR TargetFilespec,UINT Operation,PVOID Reserved1,UINT Reserved2);
  1197. WINSETUPAPI WINBOOL WINAPI SetupRemoveSectionFromDiskSpaceListA(HDSKSPC DiskSpace,HINF InfHandle,HINF ListInfHandle,PCSTR SectionName,UINT Operation,PVOID Reserved1,UINT Reserved2);
  1198. WINSETUPAPI WINBOOL WINAPI SetupRemoveSectionFromDiskSpaceListW(HDSKSPC DiskSpace,HINF InfHandle,HINF ListInfHandle,PCWSTR SectionName,UINT Operation,PVOID Reserved1,UINT Reserved2);
  1199. WINSETUPAPI WINBOOL WINAPI SetupRemoveInstallSectionFromDiskSpaceListA(HDSKSPC DiskSpace,HINF InfHandle,HINF LayoutInfHandle,PCSTR SectionName,PVOID Reserved1,UINT Reserved2);
  1200. WINSETUPAPI WINBOOL WINAPI SetupRemoveInstallSectionFromDiskSpaceListW(HDSKSPC DiskSpace,HINF InfHandle,HINF LayoutInfHandle,PCWSTR SectionName,PVOID Reserved1,UINT Reserved2);
  1201. WINSETUPAPI WINBOOL WINAPI SetupIterateCabinetA(PCSTR CabinetFile,DWORD Reserved,PSP_FILE_CALLBACK_A MsgHandler,PVOID Context);
  1202. WINSETUPAPI WINBOOL WINAPI SetupIterateCabinetW(PCWSTR CabinetFile,DWORD Reserved,PSP_FILE_CALLBACK_W MsgHandler,PVOID Context);
  1203. WINSETUPAPI INT WINAPI SetupPromptReboot(HSPFILEQ FileQueue,HWND Owner,WINBOOL ScanOnly);
  1204. #define SPFILEQ_FILE_IN_USE 0x00000001
  1205. #define SPFILEQ_REBOOT_RECOMMENDED 0x00000002
  1206. #define SPFILEQ_REBOOT_IN_PROGRESS 0x00000004
  1207. #define SetupDefaultQueueCallback __MINGW_NAME_AW(SetupDefaultQueueCallback)
  1208. WINSETUPAPI PVOID WINAPI SetupInitDefaultQueueCallback(HWND OwnerWindow);
  1209. WINSETUPAPI PVOID WINAPI SetupInitDefaultQueueCallbackEx(HWND OwnerWindow,HWND AlternateProgressWindow,UINT ProgressMessage,DWORD Reserved1,PVOID Reserved2);
  1210. WINSETUPAPI VOID WINAPI SetupTermDefaultQueueCallback(PVOID Context);
  1211. WINSETUPAPI UINT WINAPI SetupDefaultQueueCallbackA(PVOID Context,UINT Notification,UINT_PTR Param1,UINT_PTR Param2);
  1212. WINSETUPAPI UINT WINAPI SetupDefaultQueueCallbackW(PVOID Context,UINT Notification,UINT_PTR Param1,UINT_PTR Param2);
  1213. #define FLG_ADDREG_DELREG_BIT (0x00008000)
  1214. #define FLG_ADDREG_BINVALUETYPE (0x00000001)
  1215. #define FLG_ADDREG_NOCLOBBER (0x00000002)
  1216. #define FLG_ADDREG_DELVAL (0x00000004)
  1217. #define FLG_ADDREG_APPEND (0x00000008)
  1218. #define FLG_ADDREG_KEYONLY (0x00000010)
  1219. #define FLG_ADDREG_OVERWRITEONLY (0x00000020)
  1220. #define FLG_ADDREG_64BITKEY (0x00001000)
  1221. #define FLG_ADDREG_KEYONLY_COMMON (0x00002000)
  1222. #define FLG_ADDREG_32BITKEY (0x00004000)
  1223. #define FLG_ADDREG_TYPE_MASK (0xFFFF0000 | FLG_ADDREG_BINVALUETYPE)
  1224. #define FLG_ADDREG_TYPE_SZ (0x00000000)
  1225. #define FLG_ADDREG_TYPE_MULTI_SZ (0x00010000)
  1226. #define FLG_ADDREG_TYPE_EXPAND_SZ (0x00020000)
  1227. #define FLG_ADDREG_TYPE_BINARY (0x00000000 | FLG_ADDREG_BINVALUETYPE)
  1228. #define FLG_ADDREG_TYPE_DWORD (0x00010000 | FLG_ADDREG_BINVALUETYPE)
  1229. #define FLG_ADDREG_TYPE_NONE (0x00020000 | FLG_ADDREG_BINVALUETYPE)
  1230. #define FLG_DELREG_VALUE (0x00000000)
  1231. #define FLG_DELREG_TYPE_MASK FLG_ADDREG_TYPE_MASK
  1232. #define FLG_DELREG_TYPE_SZ FLG_ADDREG_TYPE_SZ
  1233. #define FLG_DELREG_TYPE_MULTI_SZ FLG_ADDREG_TYPE_MULTI_SZ
  1234. #define FLG_DELREG_TYPE_EXPAND_SZ FLG_ADDREG_TYPE_EXPAND_SZ
  1235. #define FLG_DELREG_TYPE_BINARY FLG_ADDREG_TYPE_BINARY
  1236. #define FLG_DELREG_TYPE_DWORD FLG_ADDREG_TYPE_DWORD
  1237. #define FLG_DELREG_TYPE_NONE FLG_ADDREG_TYPE_NONE
  1238. #define FLG_DELREG_64BITKEY FLG_ADDREG_64BITKEY
  1239. #define FLG_DELREG_KEYONLY_COMMON FLG_ADDREG_KEYONLY_COMMON
  1240. #define FLG_DELREG_32BITKEY FLG_ADDREG_32BITKEY
  1241. #define FLG_DELREG_OPERATION_MASK (0x000000FE)
  1242. #define FLG_DELREG_MULTI_SZ_DELSTRING (FLG_DELREG_TYPE_MULTI_SZ | FLG_ADDREG_DELREG_BIT | 0x00000002)
  1243. #define FLG_BITREG_CLEARBITS (0x00000000)
  1244. #define FLG_BITREG_SETBITS (0x00000001)
  1245. #define FLG_BITREG_64BITKEY (0x00001000)
  1246. #define FLG_BITREG_32BITKEY (0x00004000)
  1247. #define FLG_INI2REG_64BITKEY (0x00001000)
  1248. #define FLG_INI2REG_32BITKEY (0x00004000)
  1249. #define FLG_REGSVR_DLLREGISTER (0x00000001)
  1250. #define FLG_REGSVR_DLLINSTALL (0x00000002)
  1251. #define FLG_PROFITEM_CURRENTUSER (0x00000001)
  1252. #define FLG_PROFITEM_DELETE (0x00000002)
  1253. #define FLG_PROFITEM_GROUP (0x00000004)
  1254. #define FLG_PROFITEM_CSIDL (0x00000008)
  1255. #define SetupInstallFromInfSection __MINGW_NAME_AW(SetupInstallFromInfSection)
  1256. WINSETUPAPI WINBOOL WINAPI SetupInstallFromInfSectionA(HWND Owner,HINF InfHandle,PCSTR SectionName,UINT Flags,HKEY RelativeKeyRoot,PCSTR SourceRootPath,UINT CopyFlags,PSP_FILE_CALLBACK_A MsgHandler,PVOID Context,HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1257. WINSETUPAPI WINBOOL WINAPI SetupInstallFromInfSectionW(HWND Owner,HINF InfHandle,PCWSTR SectionName,UINT Flags,HKEY RelativeKeyRoot,PCWSTR SourceRootPath,UINT CopyFlags,PSP_FILE_CALLBACK_W MsgHandler,PVOID Context,HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1258. #define SPINST_LOGCONFIG 0x00000001
  1259. #define SPINST_INIFILES 0x00000002
  1260. #define SPINST_REGISTRY 0x00000004
  1261. #define SPINST_INI2REG 0x00000008
  1262. #define SPINST_FILES 0x00000010
  1263. #define SPINST_BITREG 0x00000020
  1264. #define SPINST_REGSVR 0x00000040
  1265. #define SPINST_UNREGSVR 0x00000080
  1266. #define SPINST_PROFILEITEMS 0x00000100
  1267. #define SPINST_COPYINF 0x00000200
  1268. #define SPINST_ALL 0x000003ff
  1269. #define SPINST_SINGLESECTION 0x00010000
  1270. #define SPINST_LOGCONFIG_IS_FORCED 0x00020000
  1271. #define SPINST_LOGCONFIGS_ARE_OVERRIDES 0x00040000
  1272. #define SPINST_REGISTERCALLBACKAWARE 0x00080000
  1273. #define SetupInstallFilesFromInfSection __MINGW_NAME_AW(SetupInstallFilesFromInfSection)
  1274. WINSETUPAPI WINBOOL WINAPI SetupInstallFilesFromInfSectionA(HINF InfHandle,HINF LayoutInfHandle,HSPFILEQ FileQueue,PCSTR SectionName,PCSTR SourceRootPath,UINT CopyFlags);
  1275. WINSETUPAPI WINBOOL WINAPI SetupInstallFilesFromInfSectionW(HINF InfHandle,HINF LayoutInfHandle,HSPFILEQ FileQueue,PCWSTR SectionName,PCWSTR SourceRootPath,UINT CopyFlags);
  1276. #define SPSVCINST_TAGTOFRONT (0x00000001)
  1277. #define SPSVCINST_ASSOCSERVICE (0x00000002)
  1278. #define SPSVCINST_DELETEEVENTLOGENTRY (0x00000004)
  1279. #define SPSVCINST_NOCLOBBER_DISPLAYNAME (0x00000008)
  1280. #define SPSVCINST_NOCLOBBER_STARTTYPE (0x00000010)
  1281. #define SPSVCINST_NOCLOBBER_ERRORCONTROL (0x00000020)
  1282. #define SPSVCINST_NOCLOBBER_LOADORDERGROUP (0x00000040)
  1283. #define SPSVCINST_NOCLOBBER_DEPENDENCIES (0x00000080)
  1284. #define SPSVCINST_NOCLOBBER_DESCRIPTION (0x00000100)
  1285. #define SPSVCINST_STOPSERVICE (0x00000200)
  1286. #define SPSVCINST_CLOBBER_SECURITY (0x00000400)
  1287. #define SPFILELOG_SYSTEMLOG 0x00000001
  1288. #define SPFILELOG_FORCENEW 0x00000002
  1289. #define SPFILELOG_QUERYONLY 0x00000004
  1290. #define SPFILELOG_OEMFILE 0x00000001
  1291. typedef PVOID HSPFILELOG;
  1292. #define SetupInstallServicesFromInfSection __MINGW_NAME_AW(SetupInstallServicesFromInfSection)
  1293. #define SetupInstallServicesFromInfSectionEx __MINGW_NAME_AW(SetupInstallServicesFromInfSectionEx)
  1294. #define InstallHinfSection __MINGW_NAME_AW(InstallHinfSection)
  1295. #define SetupInitializeFileLog __MINGW_NAME_AW(SetupInitializeFileLog)
  1296. #define SetupLogFile __MINGW_NAME_AW(SetupLogFile)
  1297. #define SetupRemoveFileLogEntry __MINGW_NAME_AW(SetupRemoveFileLogEntry)
  1298. WINSETUPAPI WINBOOL WINAPI SetupInstallServicesFromInfSectionA(HINF InfHandle,PCSTR SectionName,DWORD Flags);
  1299. WINSETUPAPI WINBOOL WINAPI SetupInstallServicesFromInfSectionW(HINF InfHandle,PCWSTR SectionName,DWORD Flags);
  1300. WINSETUPAPI WINBOOL WINAPI SetupInstallServicesFromInfSectionExA(HINF InfHandle,PCSTR SectionName,DWORD Flags,HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PVOID Reserved1,PVOID Reserved2);
  1301. WINSETUPAPI WINBOOL WINAPI SetupInstallServicesFromInfSectionExW(HINF InfHandle,PCWSTR SectionName,DWORD Flags,HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PVOID Reserved1,PVOID Reserved2);
  1302. VOID WINAPI InstallHinfSectionA(HWND Window,HINSTANCE ModuleHandle,PCSTR CommandLine,INT ShowCommand);
  1303. VOID WINAPI InstallHinfSectionW(HWND Window,HINSTANCE ModuleHandle,PCWSTR CommandLine,INT ShowCommand);
  1304. WINSETUPAPI HSPFILELOG WINAPI SetupInitializeFileLogA(PCSTR LogFileName,DWORD Flags);
  1305. WINSETUPAPI HSPFILELOG WINAPI SetupInitializeFileLogW(PCWSTR LogFileName,DWORD Flags);
  1306. WINSETUPAPI WINBOOL WINAPI SetupTerminateFileLog(HSPFILELOG FileLogHandle);
  1307. WINSETUPAPI WINBOOL WINAPI SetupLogFileA(HSPFILELOG FileLogHandle,PCSTR LogSectionName,PCSTR SourceFilename,PCSTR TargetFilename,DWORD Checksum,PCSTR DiskTagfile,PCSTR DiskDescription,PCSTR OtherInfo,DWORD Flags);
  1308. WINSETUPAPI WINBOOL WINAPI SetupLogFileW(HSPFILELOG FileLogHandle,PCWSTR LogSectionName,PCWSTR SourceFilename,PCWSTR TargetFilename,DWORD Checksum,PCWSTR DiskTagfile,PCWSTR DiskDescription,PCWSTR OtherInfo,DWORD Flags);
  1309. WINSETUPAPI WINBOOL WINAPI SetupRemoveFileLogEntryA(HSPFILELOG FileLogHandle,PCSTR LogSectionName,PCSTR TargetFilename);
  1310. WINSETUPAPI WINBOOL WINAPI SetupRemoveFileLogEntryW(HSPFILELOG FileLogHandle,PCWSTR LogSectionName,PCWSTR TargetFilename);
  1311. typedef enum {
  1312. SetupFileLogSourceFilename,SetupFileLogChecksum,SetupFileLogDiskTagfile,SetupFileLogDiskDescription,SetupFileLogOtherInfo,SetupFileLogMax
  1313. } SetupFileLogInfo;
  1314. #define SetupQueryFileLog __MINGW_NAME_AW(SetupQueryFileLog)
  1315. WINSETUPAPI WINBOOL WINAPI SetupQueryFileLogA(HSPFILELOG FileLogHandle,PCSTR LogSectionName,PCSTR TargetFilename,SetupFileLogInfo DesiredInfo,PSTR DataOut,DWORD ReturnBufferSize,PDWORD RequiredSize);
  1316. WINSETUPAPI WINBOOL WINAPI SetupQueryFileLogW(HSPFILELOG FileLogHandle,PCWSTR LogSectionName,PCWSTR TargetFilename,SetupFileLogInfo DesiredInfo,PWSTR DataOut,DWORD ReturnBufferSize,PDWORD RequiredSize);
  1317. #define LogSeverity DWORD
  1318. #define LogSevInformation 0x00000000
  1319. #define LogSevWarning 0x00000001
  1320. #define LogSevError 0x00000002
  1321. #define LogSevFatalError 0x00000003
  1322. #define LogSevMaximum 0x00000004
  1323. #define DICD_GENERATE_ID 0x00000001
  1324. #define DICD_INHERIT_CLASSDRVS 0x00000002
  1325. #define DIOD_INHERIT_CLASSDRVS 0x00000002
  1326. #define DIOD_CANCEL_REMOVE 0x00000004
  1327. #define DIODI_NO_ADD 0x00000001
  1328. #define SPRDI_FIND_DUPS 0x00000001
  1329. #define SPDIT_NODRIVER 0x00000000
  1330. #define SPDIT_CLASSDRIVER 0x00000001
  1331. #define SPDIT_COMPATDRIVER 0x00000002
  1332. #define SetupLogError __MINGW_NAME_AW(SetupLogError)
  1333. #define SetupGetBackupInformation __MINGW_NAME_AW(SetupGetBackupInformation)
  1334. #define SetupPrepareQueueForRestore __MINGW_NAME_AW(SetupPrepareQueueForRestore)
  1335. #define SetupDiCreateDeviceInfoListEx __MINGW_NAME_AW(SetupDiCreateDeviceInfoListEx)
  1336. #define SetupDiGetDeviceInfoListDetail __MINGW_NAME_AW(SetupDiGetDeviceInfoListDetail)
  1337. #define SetupDiCreateDeviceInfo __MINGW_NAME_AW(SetupDiCreateDeviceInfo)
  1338. #define SetupDiOpenDeviceInfo __MINGW_NAME_AW(SetupDiOpenDeviceInfo)
  1339. #define SetupDiGetDeviceInstanceId __MINGW_NAME_AW(SetupDiGetDeviceInstanceId)
  1340. #define SetupDiCreateDeviceInterface __MINGW_NAME_AW(SetupDiCreateDeviceInterface)
  1341. #define SetupDiCreateInterfaceDevice __MINGW_NAME_AW(SetupDiCreateDeviceInterface)
  1342. #define SetupDiOpenDeviceInterface __MINGW_NAME_AW(SetupDiOpenDeviceInterface)
  1343. WINSETUPAPI WINBOOL WINAPI SetupOpenLog(WINBOOL Erase);
  1344. WINSETUPAPI WINBOOL WINAPI SetupLogErrorA(LPCSTR MessageString,LogSeverity Severity);
  1345. WINSETUPAPI WINBOOL WINAPI SetupLogErrorW(LPCWSTR MessageString,LogSeverity Severity);
  1346. WINSETUPAPI VOID WINAPI SetupCloseLog(VOID);
  1347. WINSETUPAPI WINBOOL WINAPI SetupGetBackupInformationA(HSPFILEQ QueueHandle,PSP_BACKUP_QUEUE_PARAMS_A BackupParams);
  1348. WINSETUPAPI WINBOOL WINAPI SetupGetBackupInformationW(HSPFILEQ QueueHandle,PSP_BACKUP_QUEUE_PARAMS_W BackupParams);
  1349. WINSETUPAPI WINBOOL WINAPI SetupPrepareQueueForRestoreA(HSPFILEQ QueueHandle,PCSTR BackupPath,DWORD RestoreFlags);
  1350. WINSETUPAPI WINBOOL WINAPI SetupPrepareQueueForRestoreW(HSPFILEQ QueueHandle,PCWSTR BackupPath,DWORD RestoreFlags);
  1351. WINSETUPAPI WINBOOL WINAPI SetupSetNonInteractiveMode(WINBOOL NonInteractiveFlag);
  1352. WINSETUPAPI WINBOOL WINAPI SetupGetNonInteractiveMode(VOID);
  1353. WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoList(CONST GUID *ClassGuid,HWND hwndParent);
  1354. WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoListExA(CONST GUID *ClassGuid,HWND hwndParent,PCSTR MachineName,PVOID Reserved);
  1355. WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoListExW(CONST GUID *ClassGuid,HWND hwndParent,PCWSTR MachineName,PVOID Reserved);
  1356. WINSETUPAPI WINBOOL WINAPI SetupDiGetDeviceInfoListClass(HDEVINFO DeviceInfoSet,LPGUID ClassGuid);
  1357. WINSETUPAPI WINBOOL WINAPI SetupDiGetDeviceInfoListDetailA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_LIST_DETAIL_DATA_A DeviceInfoSetDetailData);
  1358. WINSETUPAPI WINBOOL WINAPI SetupDiGetDeviceInfoListDetailW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_LIST_DETAIL_DATA_W DeviceInfoSetDetailData);
  1359. WINSETUPAPI WINBOOL WINAPI SetupDiCreateDeviceInfoA(HDEVINFO DeviceInfoSet,PCSTR DeviceName,CONST GUID *ClassGuid,PCSTR DeviceDescription,HWND hwndParent,DWORD CreationFlags,PSP_DEVINFO_DATA DeviceInfoData);
  1360. WINSETUPAPI WINBOOL WINAPI SetupDiCreateDeviceInfoW(HDEVINFO DeviceInfoSet,PCWSTR DeviceName,CONST GUID *ClassGuid,PCWSTR DeviceDescription,HWND hwndParent,DWORD CreationFlags,PSP_DEVINFO_DATA DeviceInfoData);
  1361. WINSETUPAPI WINBOOL WINAPI SetupDiOpenDeviceInfoA(HDEVINFO DeviceInfoSet,PCSTR DeviceInstanceId,HWND hwndParent,DWORD OpenFlags,PSP_DEVINFO_DATA DeviceInfoData);
  1362. WINSETUPAPI WINBOOL WINAPI SetupDiOpenDeviceInfoW(HDEVINFO DeviceInfoSet,PCWSTR DeviceInstanceId,HWND hwndParent,DWORD OpenFlags,PSP_DEVINFO_DATA DeviceInfoData);
  1363. WINSETUPAPI WINBOOL WINAPI SetupDiGetDeviceInstanceIdA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSTR DeviceInstanceId,DWORD DeviceInstanceIdSize,PDWORD RequiredSize);
  1364. WINSETUPAPI WINBOOL WINAPI SetupDiGetDeviceInstanceIdW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PWSTR DeviceInstanceId,DWORD DeviceInstanceIdSize,PDWORD RequiredSize);
  1365. WINSETUPAPI WINBOOL WINAPI SetupDiDeleteDeviceInfo(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1366. WINSETUPAPI WINBOOL WINAPI SetupDiEnumDeviceInfo(HDEVINFO DeviceInfoSet,DWORD MemberIndex,PSP_DEVINFO_DATA DeviceInfoData);
  1367. WINSETUPAPI WINBOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO DeviceInfoSet);
  1368. WINSETUPAPI WINBOOL WINAPI SetupDiEnumDeviceInterfaces(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,CONST GUID *InterfaceClassGuid,DWORD MemberIndex,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData);
  1369. #define SetupDiEnumInterfaceDevice SetupDiEnumDeviceInterfaces
  1370. WINSETUPAPI WINBOOL WINAPI SetupDiCreateDeviceInterfaceA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,CONST GUID *InterfaceClassGuid,PCSTR ReferenceString,DWORD CreationFlags,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData);
  1371. WINSETUPAPI WINBOOL WINAPI SetupDiCreateDeviceInterfaceW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,CONST GUID *InterfaceClassGuid,PCWSTR ReferenceString,DWORD CreationFlags,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData);
  1372. #define SetupDiCreateInterfaceDeviceW SetupDiCreateDeviceInterfaceW
  1373. #define SetupDiCreateInterfaceDeviceA SetupDiCreateDeviceInterfaceA
  1374. WINSETUPAPI WINBOOL WINAPI SetupDiOpenDeviceInterfaceA(HDEVINFO DeviceInfoSet,PCSTR DevicePath,DWORD OpenFlags,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData);
  1375. WINSETUPAPI WINBOOL WINAPI SetupDiOpenDeviceInterfaceW(HDEVINFO DeviceInfoSet,PCWSTR DevicePath,DWORD OpenFlags,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData);
  1376. #define SetupDiOpenInterfaceDeviceW SetupDiOpenDeviceInterfaceW
  1377. #define SetupDiOpenInterfaceDeviceA SetupDiOpenDeviceInterfaceA
  1378. #define SetupDiOpenInterfaceDevice __MINGW_NAME_AW(SetupDiOpenDeviceInterface)
  1379. #define SetupDiGetDeviceInterfaceDetail __MINGW_NAME_AW(SetupDiGetDeviceInterfaceDetail)
  1380. #define SetupDiGetInterfaceDeviceDetail __MINGW_NAME_AW(SetupDiGetDeviceInterfaceDetail)
  1381. #define SetupDiEnumDriverInfo __MINGW_NAME_AW(SetupDiEnumDriverInfo)
  1382. #define SetupDiGetSelectedDriver __MINGW_NAME_AW(SetupDiGetSelectedDriver)
  1383. #define SetupDiSetSelectedDriver __MINGW_NAME_AW(SetupDiSetSelectedDriver)
  1384. #define SetupDiGetDriverInfoDetail __MINGW_NAME_AW(SetupDiGetDriverInfoDetail)
  1385. WINSETUPAPI WINBOOL WINAPI SetupDiGetDeviceInterfaceAlias(HDEVINFO DeviceInfoSet,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,CONST GUID *AliasInterfaceClassGuid,PSP_DEVICE_INTERFACE_DATA AliasDeviceInterfaceData);
  1386. #define SetupDiGetInterfaceDeviceAlias SetupDiGetDeviceInterfaceAlias
  1387. WINSETUPAPI WINBOOL WINAPI SetupDiDeleteDeviceInterfaceData(HDEVINFO DeviceInfoSet,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData);
  1388. #define SetupDiDeleteInterfaceDeviceData SetupDiDeleteDeviceInterfaceData
  1389. WINSETUPAPI WINBOOL WINAPI SetupDiRemoveDeviceInterface(HDEVINFO DeviceInfoSet,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData);
  1390. #define SetupDiRemoveInterfaceDevice SetupDiRemoveDeviceInterface
  1391. WINSETUPAPI WINBOOL WINAPI SetupDiGetDeviceInterfaceDetailA(HDEVINFO DeviceInfoSet,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData,DWORD DeviceInterfaceDetailDataSize,PDWORD RequiredSize,PSP_DEVINFO_DATA DeviceInfoData);
  1392. WINSETUPAPI WINBOOL WINAPI SetupDiGetDeviceInterfaceDetailW(HDEVINFO DeviceInfoSet,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData,DWORD DeviceInterfaceDetailDataSize,PDWORD RequiredSize,PSP_DEVINFO_DATA DeviceInfoData);
  1393. #define SetupDiGetInterfaceDeviceDetailW SetupDiGetDeviceInterfaceDetailW
  1394. #define SetupDiGetInterfaceDeviceDetailA SetupDiGetDeviceInterfaceDetailA
  1395. WINSETUPAPI WINBOOL WINAPI SetupDiInstallDeviceInterfaces(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1396. #define SetupDiInstallInterfaceDevices SetupDiInstallDeviceInterfaces
  1397. WINSETUPAPI WINBOOL WINAPI SetupDiSetDeviceInterfaceDefault(HDEVINFO DeviceInfoSet,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,DWORD Flags,PVOID Reserved);
  1398. WINSETUPAPI WINBOOL WINAPI SetupDiRegisterDeviceInfo(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,DWORD Flags,PSP_DETSIG_CMPPROC CompareProc,PVOID CompareContext,PSP_DEVINFO_DATA DupDeviceInfoData);
  1399. WINSETUPAPI WINBOOL WINAPI SetupDiBuildDriverInfoList(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,DWORD DriverType);
  1400. WINSETUPAPI WINBOOL WINAPI SetupDiCancelDriverInfoSearch(HDEVINFO DeviceInfoSet);
  1401. WINSETUPAPI WINBOOL WINAPI SetupDiEnumDriverInfoA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,DWORD DriverType,DWORD MemberIndex,PSP_DRVINFO_DATA_A DriverInfoData);
  1402. WINSETUPAPI WINBOOL WINAPI SetupDiEnumDriverInfoW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,DWORD DriverType,DWORD MemberIndex,PSP_DRVINFO_DATA_W DriverInfoData);
  1403. WINSETUPAPI WINBOOL WINAPI SetupDiGetSelectedDriverA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DRVINFO_DATA_A DriverInfoData);
  1404. WINSETUPAPI WINBOOL WINAPI SetupDiGetSelectedDriverW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DRVINFO_DATA_W DriverInfoData);
  1405. WINSETUPAPI WINBOOL WINAPI SetupDiSetSelectedDriverA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DRVINFO_DATA_A DriverInfoData);
  1406. WINSETUPAPI WINBOOL WINAPI SetupDiSetSelectedDriverW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DRVINFO_DATA_W DriverInfoData);
  1407. WINSETUPAPI WINBOOL WINAPI SetupDiGetDriverInfoDetailA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DRVINFO_DATA_A DriverInfoData,PSP_DRVINFO_DETAIL_DATA_A DriverInfoDetailData,DWORD DriverInfoDetailDataSize,PDWORD RequiredSize);
  1408. WINSETUPAPI WINBOOL WINAPI SetupDiGetDriverInfoDetailW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DRVINFO_DATA_W DriverInfoData,PSP_DRVINFO_DETAIL_DATA_W DriverInfoDetailData,DWORD DriverInfoDetailDataSize,PDWORD RequiredSize);
  1409. WINSETUPAPI WINBOOL WINAPI SetupDiDestroyDriverInfoList(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,DWORD DriverType);
  1410. #define DIGCF_DEFAULT 0x00000001
  1411. #define DIGCF_PRESENT 0x00000002
  1412. #define DIGCF_ALLCLASSES 0x00000004
  1413. #define DIGCF_PROFILE 0x00000008
  1414. #define DIGCF_DEVICEINTERFACE 0x00000010
  1415. #define DIGCF_INTERFACEDEVICE DIGCF_DEVICEINTERFACE
  1416. #define DIBCI_NOINSTALLCLASS 0x00000001
  1417. #define DIBCI_NODISPLAYCLASS 0x00000002
  1418. #define SetupDiGetClassDevs __MINGW_NAME_AW(SetupDiGetClassDevs)
  1419. #define SetupDiGetClassDevsEx __MINGW_NAME_AW(SetupDiGetClassDevsEx)
  1420. #define SetupDiGetINFClass __MINGW_NAME_AW(SetupDiGetINFClass)
  1421. #define SetupDiBuildClassInfoListEx __MINGW_NAME_AW(SetupDiBuildClassInfoListEx)
  1422. #define SetupDiGetClassDescription __MINGW_NAME_AW(SetupDiGetClassDescription)
  1423. #define SetupDiGetClassDescriptionEx __MINGW_NAME_AW(SetupDiGetClassDescriptionEx)
  1424. #define SetupDiInstallClass __MINGW_NAME_AW(SetupDiInstallClass)
  1425. #define SetupDiInstallClassEx __MINGW_NAME_AW(SetupDiInstallClassEx)
  1426. #define SetupDiOpenClassRegKeyEx __MINGW_NAME_AW(SetupDiOpenClassRegKeyEx)
  1427. #define SetupDiCreateDeviceInterfaceRegKey __MINGW_NAME_AW(SetupDiCreateDeviceInterfaceRegKey)
  1428. #define SetupDiCreateInterfaceDeviceRegKey __MINGW_NAME_AW(SetupDiCreateDeviceInterfaceRegKey)
  1429. #define SetupDiCreateDevRegKey __MINGW_NAME_AW(SetupDiCreateDevRegKey)
  1430. #define SetupDiGetHwProfileListEx __MINGW_NAME_AW(SetupDiGetHwProfileListEx)
  1431. WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsA(CONST GUID *ClassGuid,PCSTR Enumerator,HWND hwndParent,DWORD Flags);
  1432. WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsW(CONST GUID *ClassGuid,PCWSTR Enumerator,HWND hwndParent,DWORD Flags);
  1433. WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsExA(CONST GUID *ClassGuid,PCSTR Enumerator,HWND hwndParent,DWORD Flags,HDEVINFO DeviceInfoSet,PCSTR MachineName,PVOID Reserved);
  1434. WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsExW(CONST GUID *ClassGuid,PCWSTR Enumerator,HWND hwndParent,DWORD Flags,HDEVINFO DeviceInfoSet,PCWSTR MachineName,PVOID Reserved);
  1435. WINSETUPAPI WINBOOL WINAPI SetupDiGetINFClassA(PCSTR InfName,LPGUID ClassGuid,PSTR ClassName,DWORD ClassNameSize,PDWORD RequiredSize);
  1436. WINSETUPAPI WINBOOL WINAPI SetupDiGetINFClassW(PCWSTR InfName,LPGUID ClassGuid,PWSTR ClassName,DWORD ClassNameSize,PDWORD RequiredSize);
  1437. WINSETUPAPI WINBOOL WINAPI SetupDiBuildClassInfoList(DWORD Flags,LPGUID ClassGuidList,DWORD ClassGuidListSize,PDWORD RequiredSize);
  1438. WINSETUPAPI WINBOOL WINAPI SetupDiBuildClassInfoListExA(DWORD Flags,LPGUID ClassGuidList,DWORD ClassGuidListSize,PDWORD RequiredSize,PCSTR MachineName,PVOID Reserved);
  1439. WINSETUPAPI WINBOOL WINAPI SetupDiBuildClassInfoListExW(DWORD Flags,LPGUID ClassGuidList,DWORD ClassGuidListSize,PDWORD RequiredSize,PCWSTR MachineName,PVOID Reserved);
  1440. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassDescriptionA(CONST GUID *ClassGuid,PSTR ClassDescription,DWORD ClassDescriptionSize,PDWORD RequiredSize);
  1441. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassDescriptionW(CONST GUID *ClassGuid,PWSTR ClassDescription,DWORD ClassDescriptionSize,PDWORD RequiredSize);
  1442. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassDescriptionExA(CONST GUID *ClassGuid,PSTR ClassDescription,DWORD ClassDescriptionSize,PDWORD RequiredSize,PCSTR MachineName,PVOID Reserved);
  1443. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassDescriptionExW(CONST GUID *ClassGuid,PWSTR ClassDescription,DWORD ClassDescriptionSize,PDWORD RequiredSize,PCWSTR MachineName,PVOID Reserved);
  1444. WINSETUPAPI WINBOOL WINAPI SetupDiCallClassInstaller(DI_FUNCTION InstallFunction,HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1445. WINSETUPAPI WINBOOL WINAPI SetupDiSelectDevice(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1446. WINSETUPAPI WINBOOL WINAPI SetupDiSelectBestCompatDrv(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1447. WINSETUPAPI WINBOOL WINAPI SetupDiInstallDevice(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1448. WINSETUPAPI WINBOOL WINAPI SetupDiInstallDriverFiles(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1449. WINSETUPAPI WINBOOL WINAPI SetupDiRegisterCoDeviceInstallers(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1450. WINSETUPAPI WINBOOL WINAPI SetupDiRemoveDevice(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1451. WINSETUPAPI WINBOOL WINAPI SetupDiUnremoveDevice(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1452. WINSETUPAPI WINBOOL WINAPI SetupDiRestartDevices(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1453. WINSETUPAPI WINBOOL WINAPI SetupDiChangeState(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1454. WINSETUPAPI WINBOOL WINAPI SetupDiInstallClassA(HWND hwndParent,PCSTR InfFileName,DWORD Flags,HSPFILEQ FileQueue);
  1455. WINSETUPAPI WINBOOL WINAPI SetupDiInstallClassW(HWND hwndParent,PCWSTR InfFileName,DWORD Flags,HSPFILEQ FileQueue);
  1456. WINSETUPAPI WINBOOL WINAPI SetupDiInstallClassExA(HWND hwndParent,PCSTR InfFileName,DWORD Flags,HSPFILEQ FileQueue,CONST GUID *InterfaceClassGuid,PVOID Reserved1,PVOID Reserved2);
  1457. WINSETUPAPI WINBOOL WINAPI SetupDiInstallClassExW(HWND hwndParent,PCWSTR InfFileName,DWORD Flags,HSPFILEQ FileQueue,CONST GUID *InterfaceClassGuid,PVOID Reserved1,PVOID Reserved2);
  1458. WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKey(CONST GUID *ClassGuid,REGSAM samDesired);
  1459. #define DIOCR_INSTALLER 0x00000001
  1460. #define DIOCR_INTERFACE 0x00000002
  1461. WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKeyExA(CONST GUID *ClassGuid,REGSAM samDesired,DWORD Flags,PCSTR MachineName,PVOID Reserved);
  1462. WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKeyExW(CONST GUID *ClassGuid,REGSAM samDesired,DWORD Flags,PCWSTR MachineName,PVOID Reserved);
  1463. WINSETUPAPI HKEY WINAPI SetupDiCreateDeviceInterfaceRegKeyA(HDEVINFO DeviceInfoSet,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,DWORD Reserved,REGSAM samDesired,HINF InfHandle,PCSTR InfSectionName);
  1464. WINSETUPAPI HKEY WINAPI SetupDiCreateDeviceInterfaceRegKeyW(HDEVINFO DeviceInfoSet,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,DWORD Reserved,REGSAM samDesired,HINF InfHandle,PCWSTR InfSectionName);
  1465. #define SetupDiCreateInterfaceDeviceRegKeyW SetupDiCreateDeviceInterfaceRegKeyW
  1466. #define SetupDiCreateInterfaceDeviceRegKeyA SetupDiCreateDeviceInterfaceRegKeyA
  1467. WINSETUPAPI HKEY WINAPI SetupDiOpenDeviceInterfaceRegKey(HDEVINFO DeviceInfoSet,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,DWORD Reserved,REGSAM samDesired);
  1468. #define SetupDiOpenInterfaceDeviceRegKey SetupDiOpenDeviceInterfaceRegKey
  1469. WINSETUPAPI WINBOOL WINAPI SetupDiDeleteDeviceInterfaceRegKey(HDEVINFO DeviceInfoSet,PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,DWORD Reserved);
  1470. #define SetupDiDeleteInterfaceDeviceRegKey SetupDiDeleteDeviceInterfaceRegKey
  1471. #define DIREG_DEV 0x00000001
  1472. #define DIREG_DRV 0x00000002
  1473. #define DIREG_BOTH 0x00000004
  1474. WINSETUPAPI HKEY WINAPI SetupDiCreateDevRegKeyA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,DWORD Scope,DWORD HwProfile,DWORD KeyType,HINF InfHandle,PCSTR InfSectionName);
  1475. WINSETUPAPI HKEY WINAPI SetupDiCreateDevRegKeyW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,DWORD Scope,DWORD HwProfile,DWORD KeyType,HINF InfHandle,PCWSTR InfSectionName);
  1476. WINSETUPAPI HKEY WINAPI SetupDiOpenDevRegKey(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,DWORD Scope,DWORD HwProfile,DWORD KeyType,REGSAM samDesired);
  1477. WINSETUPAPI WINBOOL WINAPI SetupDiDeleteDevRegKey(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,DWORD Scope,DWORD HwProfile,DWORD KeyType);
  1478. WINSETUPAPI WINBOOL WINAPI SetupDiGetHwProfileList(PDWORD HwProfileList,DWORD HwProfileListSize,PDWORD RequiredSize,PDWORD CurrentlyActiveIndex);
  1479. WINSETUPAPI WINBOOL WINAPI SetupDiGetHwProfileListExA(PDWORD HwProfileList,DWORD HwProfileListSize,PDWORD RequiredSize,PDWORD CurrentlyActiveIndex,PCSTR MachineName,PVOID Reserved);
  1480. WINSETUPAPI WINBOOL WINAPI SetupDiGetHwProfileListExW(PDWORD HwProfileList,DWORD HwProfileListSize,PDWORD RequiredSize,PDWORD CurrentlyActiveIndex,PCWSTR MachineName,PVOID Reserved);
  1481. #define SPDRP_DEVICEDESC (0x00000000)
  1482. #define SPDRP_HARDWAREID (0x00000001)
  1483. #define SPDRP_COMPATIBLEIDS (0x00000002)
  1484. #define SPDRP_UNUSED0 (0x00000003)
  1485. #define SPDRP_SERVICE (0x00000004)
  1486. #define SPDRP_UNUSED1 (0x00000005)
  1487. #define SPDRP_UNUSED2 (0x00000006)
  1488. #define SPDRP_CLASS (0x00000007)
  1489. #define SPDRP_CLASSGUID (0x00000008)
  1490. #define SPDRP_DRIVER (0x00000009)
  1491. #define SPDRP_CONFIGFLAGS (0x0000000A)
  1492. #define SPDRP_MFG (0x0000000B)
  1493. #define SPDRP_FRIENDLYNAME (0x0000000C)
  1494. #define SPDRP_LOCATION_INFORMATION (0x0000000D)
  1495. #define SPDRP_PHYSICAL_DEVICE_OBJECT_NAME (0x0000000E)
  1496. #define SPDRP_CAPABILITIES (0x0000000F)
  1497. #define SPDRP_UI_NUMBER (0x00000010)
  1498. #define SPDRP_UPPERFILTERS (0x00000011)
  1499. #define SPDRP_LOWERFILTERS (0x00000012)
  1500. #define SPDRP_BUSTYPEGUID (0x00000013)
  1501. #define SPDRP_LEGACYBUSTYPE (0x00000014)
  1502. #define SPDRP_BUSNUMBER (0x00000015)
  1503. #define SPDRP_ENUMERATOR_NAME (0x00000016)
  1504. #define SPDRP_SECURITY (0x00000017)
  1505. #define SPDRP_SECURITY_SDS (0x00000018)
  1506. #define SPDRP_DEVTYPE (0x00000019)
  1507. #define SPDRP_EXCLUSIVE (0x0000001A)
  1508. #define SPDRP_CHARACTERISTICS (0x0000001B)
  1509. #define SPDRP_ADDRESS (0x0000001C)
  1510. #define SPDRP_UI_NUMBER_DESC_FORMAT (0X0000001D)
  1511. #define SPDRP_DEVICE_POWER_DATA (0x0000001E)
  1512. #define SPDRP_REMOVAL_POLICY (0x0000001F)
  1513. #define SPDRP_REMOVAL_POLICY_HW_DEFAULT (0x00000020)
  1514. #define SPDRP_REMOVAL_POLICY_OVERRIDE (0x00000021)
  1515. #define SPDRP_INSTALL_STATE (0x00000022)
  1516. #define SPDRP_LOCATION_PATHS (0x00000023)
  1517. #define SPDRP_MAXIMUM_PROPERTY (0x00000024)
  1518. #define SPCRP_SECURITY (0x00000017)
  1519. #define SPCRP_SECURITY_SDS (0x00000018)
  1520. #define SPCRP_DEVTYPE (0x00000019)
  1521. #define SPCRP_EXCLUSIVE (0x0000001A)
  1522. #define SPCRP_CHARACTERISTICS (0x0000001B)
  1523. #define SPCRP_MAXIMUM_PROPERTY (0x0000001C)
  1524. #define SetupDiGetDeviceRegistryProperty __MINGW_NAME_AW(SetupDiGetDeviceRegistryProperty)
  1525. #define SetupDiGetClassRegistryProperty __MINGW_NAME_AW(SetupDiGetClassRegistryProperty)
  1526. #define SetupDiSetDeviceRegistryProperty __MINGW_NAME_AW(SetupDiSetDeviceRegistryProperty)
  1527. #define SetupDiSetClassRegistryProperty __MINGW_NAME_AW(SetupDiSetClassRegistryProperty)
  1528. #define SetupDiGetDeviceInstallParams __MINGW_NAME_AW(SetupDiGetDeviceInstallParams)
  1529. #define SetupDiGetClassInstallParams __MINGW_NAME_AW(SetupDiGetClassInstallParams)
  1530. #define SetupDiSetDeviceInstallParams __MINGW_NAME_AW(SetupDiSetDeviceInstallParams)
  1531. #define SetupDiSetClassInstallParams __MINGW_NAME_AW(SetupDiSetClassInstallParams)
  1532. #define SetupDiGetDriverInstallParams __MINGW_NAME_AW(SetupDiGetDriverInstallParams)
  1533. #define SetupDiSetDriverInstallParams __MINGW_NAME_AW(SetupDiSetDriverInstallParams)
  1534. #define SetupDiGetClassImageListEx __MINGW_NAME_AW(SetupDiGetClassImageListEx)
  1535. #define SetupDiGetClassDevPropertySheets __MINGW_NAME_AW(SetupDiGetClassDevPropertySheets)
  1536. #define SetupDiClassNameFromGuid __MINGW_NAME_AW(SetupDiClassNameFromGuid)
  1537. #define SetupDiClassNameFromGuidEx __MINGW_NAME_AW(SetupDiClassNameFromGuidEx)
  1538. #define SetupDiClassGuidsFromName __MINGW_NAME_AW(SetupDiClassGuidsFromName)
  1539. #define SetupDiClassGuidsFromNameEx __MINGW_NAME_AW(SetupDiClassGuidsFromNameEx)
  1540. #define SetupDiGetHwProfileFriendlyName __MINGW_NAME_AW(SetupDiGetHwProfileFriendlyName)
  1541. #define SetupDiGetHwProfileFriendlyNameEx __MINGW_NAME_AW(SetupDiGetHwProfileFriendlyNameEx)
  1542. #define SetupDiGetActualModelsSection __MINGW_NAME_AW(SetupDiGetActualModelsSection)
  1543. #define SetupDiGetActualSectionToInstall __MINGW_NAME_AW(SetupDiGetActualSectionToInstall)
  1544. #define SetupDiGetActualSectionToInstallEx __MINGW_NAME_AW(SetupDiGetActualSectionToInstallEx)
  1545. #define SetupEnumInfSections __MINGW_NAME_AW(SetupEnumInfSections)
  1546. WINSETUPAPI WINBOOL WINAPI SetupDiGetDeviceRegistryPropertyA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,DWORD Property,PDWORD PropertyRegDataType,PBYTE PropertyBuffer,DWORD PropertyBufferSize,PDWORD RequiredSize);
  1547. WINSETUPAPI WINBOOL WINAPI SetupDiGetDeviceRegistryPropertyW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,DWORD Property,PDWORD PropertyRegDataType,PBYTE PropertyBuffer,DWORD PropertyBufferSize,PDWORD RequiredSize);
  1548. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassRegistryPropertyA(CONST GUID *ClassGuid,DWORD Property,PDWORD PropertyRegDataType,PBYTE PropertyBuffer,DWORD PropertyBufferSize,PDWORD RequiredSize,PCSTR MachineName,PVOID Reserved);
  1549. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassRegistryPropertyW(CONST GUID *ClassGuid,DWORD Property,PDWORD PropertyRegDataType,PBYTE PropertyBuffer,DWORD PropertyBufferSize,PDWORD RequiredSize,PCWSTR MachineName,PVOID Reserved);
  1550. WINSETUPAPI WINBOOL WINAPI SetupDiSetDeviceRegistryPropertyA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,DWORD Property,CONST BYTE *PropertyBuffer,DWORD PropertyBufferSize);
  1551. WINSETUPAPI WINBOOL WINAPI SetupDiSetDeviceRegistryPropertyW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,DWORD Property,CONST BYTE *PropertyBuffer,DWORD PropertyBufferSize);
  1552. WINSETUPAPI WINBOOL WINAPI SetupDiSetClassRegistryPropertyA(CONST GUID *ClassGuid,DWORD Property,CONST BYTE *PropertyBuffer,DWORD PropertyBufferSize,PCSTR MachineName,PVOID Reserved);
  1553. WINSETUPAPI WINBOOL WINAPI SetupDiSetClassRegistryPropertyW(CONST GUID *ClassGuid,DWORD Property,CONST BYTE *PropertyBuffer,DWORD PropertyBufferSize,PCWSTR MachineName,PVOID Reserved);
  1554. WINSETUPAPI WINBOOL WINAPI SetupDiGetDeviceInstallParamsA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DEVINSTALL_PARAMS_A DeviceInstallParams);
  1555. WINSETUPAPI WINBOOL WINAPI SetupDiGetDeviceInstallParamsW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DEVINSTALL_PARAMS_W DeviceInstallParams);
  1556. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassInstallParamsA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_CLASSINSTALL_HEADER ClassInstallParams,DWORD ClassInstallParamsSize,PDWORD RequiredSize);
  1557. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassInstallParamsW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_CLASSINSTALL_HEADER ClassInstallParams,DWORD ClassInstallParamsSize,PDWORD RequiredSize);
  1558. WINSETUPAPI WINBOOL WINAPI SetupDiSetDeviceInstallParamsA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DEVINSTALL_PARAMS_A DeviceInstallParams);
  1559. WINSETUPAPI WINBOOL WINAPI SetupDiSetDeviceInstallParamsW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DEVINSTALL_PARAMS_W DeviceInstallParams);
  1560. WINSETUPAPI WINBOOL WINAPI SetupDiSetClassInstallParamsA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_CLASSINSTALL_HEADER ClassInstallParams,DWORD ClassInstallParamsSize);
  1561. WINSETUPAPI WINBOOL WINAPI SetupDiSetClassInstallParamsW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_CLASSINSTALL_HEADER ClassInstallParams,DWORD ClassInstallParamsSize);
  1562. WINSETUPAPI WINBOOL WINAPI SetupDiGetDriverInstallParamsA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DRVINFO_DATA_A DriverInfoData,PSP_DRVINSTALL_PARAMS DriverInstallParams);
  1563. WINSETUPAPI WINBOOL WINAPI SetupDiGetDriverInstallParamsW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DRVINFO_DATA_W DriverInfoData,PSP_DRVINSTALL_PARAMS DriverInstallParams);
  1564. WINSETUPAPI WINBOOL WINAPI SetupDiSetDriverInstallParamsA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DRVINFO_DATA_A DriverInfoData,PSP_DRVINSTALL_PARAMS DriverInstallParams);
  1565. WINSETUPAPI WINBOOL WINAPI SetupDiSetDriverInstallParamsW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_DRVINFO_DATA_W DriverInfoData,PSP_DRVINSTALL_PARAMS DriverInstallParams);
  1566. WINSETUPAPI WINBOOL WINAPI SetupDiLoadClassIcon(CONST GUID *ClassGuid,HICON *LargeIcon,PINT MiniIconIndex);
  1567. #define DMI_MASK 0x00000001
  1568. #define DMI_BKCOLOR 0x00000002
  1569. #define DMI_USERECT 0x00000004
  1570. WINSETUPAPI INT WINAPI SetupDiDrawMiniIcon(HDC hdc,RECT rc,INT MiniIconIndex,DWORD Flags);
  1571. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassBitmapIndex(CONST GUID *ClassGuid,PINT MiniIconIndex);
  1572. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassImageList(PSP_CLASSIMAGELIST_DATA ClassImageListData);
  1573. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassImageListExA(PSP_CLASSIMAGELIST_DATA ClassImageListData,PCSTR MachineName,PVOID Reserved);
  1574. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassImageListExW(PSP_CLASSIMAGELIST_DATA ClassImageListData,PCWSTR MachineName,PVOID Reserved);
  1575. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassImageIndex(PSP_CLASSIMAGELIST_DATA ClassImageListData,CONST GUID *ClassGuid,PINT ImageIndex);
  1576. WINSETUPAPI WINBOOL WINAPI SetupDiDestroyClassImageList(PSP_CLASSIMAGELIST_DATA ClassImageListData);
  1577. #define DIGCDP_FLAG_BASIC 0x00000001
  1578. #define DIGCDP_FLAG_ADVANCED 0x00000002
  1579. #define DIGCDP_FLAG_REMOTE_BASIC 0x00000003
  1580. #define DIGCDP_FLAG_REMOTE_ADVANCED 0x00000004
  1581. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassDevPropertySheetsA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,LPPROPSHEETHEADERA PropertySheetHeader,DWORD PropertySheetHeaderPageListSize,PDWORD RequiredSize,DWORD PropertySheetType);
  1582. WINSETUPAPI WINBOOL WINAPI SetupDiGetClassDevPropertySheetsW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,LPPROPSHEETHEADERW PropertySheetHeader,DWORD PropertySheetHeaderPageListSize,PDWORD RequiredSize,DWORD PropertySheetType);
  1583. #define IDI_RESOURCEFIRST 159
  1584. #define IDI_RESOURCE 159
  1585. #define IDI_RESOURCELAST 161
  1586. #define IDI_RESOURCEOVERLAYFIRST 161
  1587. #define IDI_RESOURCEOVERLAYLAST 161
  1588. #define IDI_CONFLICT 161
  1589. #define IDI_CLASSICON_OVERLAYFIRST 500
  1590. #define IDI_CLASSICON_OVERLAYLAST 502
  1591. #define IDI_PROBLEM_OVL 500
  1592. #define IDI_DISABLED_OVL 501
  1593. #define IDI_FORCED_OVL 502
  1594. WINSETUPAPI WINBOOL WINAPI SetupDiAskForOEMDisk(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1595. WINSETUPAPI WINBOOL WINAPI SetupDiSelectOEMDrv(HWND hwndParent,HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1596. WINSETUPAPI WINBOOL WINAPI SetupDiClassNameFromGuidA(CONST GUID *ClassGuid,PSTR ClassName,DWORD ClassNameSize,PDWORD RequiredSize);
  1597. WINSETUPAPI WINBOOL WINAPI SetupDiClassNameFromGuidW(CONST GUID *ClassGuid,PWSTR ClassName,DWORD ClassNameSize,PDWORD RequiredSize);
  1598. WINSETUPAPI WINBOOL WINAPI SetupDiClassNameFromGuidExA(CONST GUID *ClassGuid,PSTR ClassName,DWORD ClassNameSize,PDWORD RequiredSize,PCSTR MachineName,PVOID Reserved);
  1599. WINSETUPAPI WINBOOL WINAPI SetupDiClassNameFromGuidExW(CONST GUID *ClassGuid,PWSTR ClassName,DWORD ClassNameSize,PDWORD RequiredSize,PCWSTR MachineName,PVOID Reserved);
  1600. WINSETUPAPI WINBOOL WINAPI SetupDiClassGuidsFromNameA(PCSTR ClassName,LPGUID ClassGuidList,DWORD ClassGuidListSize,PDWORD RequiredSize);
  1601. WINSETUPAPI WINBOOL WINAPI SetupDiClassGuidsFromNameW(PCWSTR ClassName,LPGUID ClassGuidList,DWORD ClassGuidListSize,PDWORD RequiredSize);
  1602. WINSETUPAPI WINBOOL WINAPI SetupDiClassGuidsFromNameExA(PCSTR ClassName,LPGUID ClassGuidList,DWORD ClassGuidListSize,PDWORD RequiredSize,PCSTR MachineName,PVOID Reserved);
  1603. WINSETUPAPI WINBOOL WINAPI SetupDiClassGuidsFromNameExW(PCWSTR ClassName,LPGUID ClassGuidList,DWORD ClassGuidListSize,PDWORD RequiredSize,PCWSTR MachineName,PVOID Reserved);
  1604. WINSETUPAPI WINBOOL WINAPI SetupDiGetHwProfileFriendlyNameA(DWORD HwProfile,PSTR FriendlyName,DWORD FriendlyNameSize,PDWORD RequiredSize);
  1605. WINSETUPAPI WINBOOL WINAPI SetupDiGetHwProfileFriendlyNameW(DWORD HwProfile,PWSTR FriendlyName,DWORD FriendlyNameSize,PDWORD RequiredSize);
  1606. WINSETUPAPI WINBOOL WINAPI SetupDiGetHwProfileFriendlyNameExA(DWORD HwProfile,PSTR FriendlyName,DWORD FriendlyNameSize,PDWORD RequiredSize,PCSTR MachineName,PVOID Reserved);
  1607. WINSETUPAPI WINBOOL WINAPI SetupDiGetHwProfileFriendlyNameExW(DWORD HwProfile,PWSTR FriendlyName,DWORD FriendlyNameSize,PDWORD RequiredSize,PCWSTR MachineName,PVOID Reserved);
  1608. #define SPWPT_SELECTDEVICE 0x00000001
  1609. #define SPWP_USE_DEVINFO_DATA 0x00000001
  1610. WINSETUPAPI HPROPSHEETPAGE WINAPI SetupDiGetWizardPage(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PSP_INSTALLWIZARD_DATA InstallWizardData,DWORD PageType,DWORD Flags);
  1611. WINSETUPAPI WINBOOL WINAPI SetupDiGetSelectedDevice(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1612. WINSETUPAPI WINBOOL WINAPI SetupDiSetSelectedDevice(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData);
  1613. WINSETUPAPI WINBOOL WINAPI SetupDiGetActualModelsSectionA(PINFCONTEXT Context,PSP_ALTPLATFORM_INFO AlternatePlatformInfo,PSTR InfSectionWithExt,DWORD InfSectionWithExtSize,PDWORD RequiredSize,PVOID Reserved);
  1614. WINSETUPAPI WINBOOL WINAPI SetupDiGetActualModelsSectionW(PINFCONTEXT Context,PSP_ALTPLATFORM_INFO AlternatePlatformInfo,PWSTR InfSectionWithExt,DWORD InfSectionWithExtSize,PDWORD RequiredSize,PVOID Reserved);
  1615. WINSETUPAPI WINBOOL WINAPI SetupDiGetActualSectionToInstallA(HINF InfHandle,PCSTR InfSectionName,PSTR InfSectionWithExt,DWORD InfSectionWithExtSize,PDWORD RequiredSize,PSTR *Extension);
  1616. WINSETUPAPI WINBOOL WINAPI SetupDiGetActualSectionToInstallW(HINF InfHandle,PCWSTR InfSectionName,PWSTR InfSectionWithExt,DWORD InfSectionWithExtSize,PDWORD RequiredSize,PWSTR *Extension);
  1617. WINSETUPAPI WINBOOL WINAPI SetupDiGetActualSectionToInstallExA(HINF InfHandle,PCSTR InfSectionName,PSP_ALTPLATFORM_INFO AlternatePlatformInfo,PSTR InfSectionWithExt,DWORD InfSectionWithExtSize,PDWORD RequiredSize,PSTR *Extension,PVOID Reserved);
  1618. WINSETUPAPI WINBOOL WINAPI SetupDiGetActualSectionToInstallExW(HINF InfHandle,PCWSTR InfSectionName,PSP_ALTPLATFORM_INFO AlternatePlatformInfo,PWSTR InfSectionWithExt,DWORD InfSectionWithExtSize,PDWORD RequiredSize,PWSTR *Extension,PVOID Reserved);
  1619. WINSETUPAPI WINBOOL WINAPI SetupEnumInfSectionsA (HINF InfHandle,UINT Index,PSTR Buffer,UINT Size,UINT *SizeNeeded);
  1620. WINSETUPAPI WINBOOL WINAPI SetupEnumInfSectionsW (HINF InfHandle,UINT Index,PWSTR Buffer,UINT Size,UINT *SizeNeeded);
  1621. typedef struct _SP_INF_SIGNER_INFO_A {
  1622. DWORD cbSize;
  1623. CHAR CatalogFile[MAX_PATH];
  1624. CHAR DigitalSigner[MAX_PATH];
  1625. CHAR DigitalSignerVersion[MAX_PATH];
  1626. } SP_INF_SIGNER_INFO_A,*PSP_INF_SIGNER_INFO_A;
  1627. typedef struct _SP_INF_SIGNER_INFO_W {
  1628. DWORD cbSize;
  1629. WCHAR CatalogFile[MAX_PATH];
  1630. WCHAR DigitalSigner[MAX_PATH];
  1631. WCHAR DigitalSignerVersion[MAX_PATH];
  1632. } SP_INF_SIGNER_INFO_W,*PSP_INF_SIGNER_INFO_W;
  1633. __MINGW_TYPEDEF_UAW(SP_INF_SIGNER_INFO)
  1634. __MINGW_TYPEDEF_UAW(PSP_INF_SIGNER_INFO)
  1635. #define SetupVerifyInfFile __MINGW_NAME_AW(SetupVerifyInfFile)
  1636. #define SetupDiGetCustomDeviceProperty __MINGW_NAME_AW(SetupDiGetCustomDeviceProperty)
  1637. #define SetupConfigureWmiFromInfSection __MINGW_NAME_AW(SetupConfigureWmiFromInfSection)
  1638. WINSETUPAPI WINBOOL WINAPI SetupVerifyInfFileA(PCSTR InfName,PSP_ALTPLATFORM_INFO AltPlatformInfo,PSP_INF_SIGNER_INFO_A InfSignerInfo);
  1639. WINSETUPAPI WINBOOL WINAPI SetupVerifyInfFileW(PCWSTR InfName,PSP_ALTPLATFORM_INFO AltPlatformInfo,PSP_INF_SIGNER_INFO_W InfSignerInfo);
  1640. #define DICUSTOMDEVPROP_MERGE_MULTISZ 0x00000001
  1641. WINSETUPAPI WINBOOL WINAPI SetupDiGetCustomDevicePropertyA(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PCSTR CustomPropertyName,DWORD Flags,PDWORD PropertyRegDataType,PBYTE PropertyBuffer,DWORD PropertyBufferSize,PDWORD RequiredSize);
  1642. WINSETUPAPI WINBOOL WINAPI SetupDiGetCustomDevicePropertyW(HDEVINFO DeviceInfoSet,PSP_DEVINFO_DATA DeviceInfoData,PCWSTR CustomPropertyName,DWORD Flags,PDWORD PropertyRegDataType,PBYTE PropertyBuffer,DWORD PropertyBufferSize,PDWORD RequiredSize);
  1643. #define SCWMI_CLOBBER_SECURITY 0x00000001
  1644. WINSETUPAPI WINBOOL WINAPI SetupConfigureWmiFromInfSectionA(HINF InfHandle,PCSTR SectionName,DWORD Flags);
  1645. WINSETUPAPI WINBOOL WINAPI SetupConfigureWmiFromInfSectionW(HINF InfHandle,PCWSTR SectionName,DWORD Flags);
  1646. #if _WIN32_WINNT >= 0x0600
  1647. WINSETUPAPI WINBOOL WINAPI SetupDiGetDevicePropertyW(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, const DEVPROPKEY *PropertyKey, DEVPROPTYPE *PropertyType, PBYTE PropertyBuffer, DWORD PropertyBufferSize, PDWORD RequiredSize, DWORD Flags);
  1648. WINSETUPAPI WINBOOL WINAPI SetupDiGetDevicePropertyKeys(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DEVPROPKEY *PropertyKeyArray, DWORD PropertyKeyCount, PDWORD RequiredPropertyKeyCount, DWORD Flags);
  1649. #endif
  1650. #ifdef __cplusplus
  1651. }
  1652. #endif
  1653. #include <poppack.h>
  1654. #endif