Hex Artifact Content

Not logged in

Artifact cd6d5cae7d4d0ede3ffd2e04529025090cb4df6f:


0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20  ********\..*    
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0060: 20 20 20 20 20 20 20 20 20 20 20 73 65 74 75 70             setup
0070: 61 70 69 2e 64 20 20 20 20 20 20 20 20 20 20 20  api.d           
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20     *..*         
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d                *.
00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .*              
00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73           Windows
0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75   API header modu
0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20  le              
0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20           *..*   
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20      *..*        
0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61           Transla
0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57  ted from MinGW W
01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20  indows headers  
01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a                 *
01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20  ..*             
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 79                by
01e0: 20 56 6c 61 64 69 6d 69 72 20 56 6c 61 73 6f 76   Vladimir Vlasov
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20            *..*  
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0250: 20 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20       *..*       
0260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0270: 50 6c 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c  Placed into publ
0280: 69 63 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20  ic domain       
0290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
02a0: 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  *..\************
02b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 6d 6f  ***********/..mo
02f0: 64 75 6c 65 20 77 69 6e 33 32 2e 73 65 74 75 70  dule win32.setup
0300: 61 70 69 3b 0d 0a 70 72 61 67 6d 61 28 6c 69 62  api;..pragma(lib
0310: 2c 20 22 73 65 74 75 70 61 70 69 22 29 3b 0d 0a  , "setupapi");..
0320: 0d 0a 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74  ..private import
0330: 20 77 69 6e 33 32 2e 62 61 73 65 74 79 70 73 2c   win32.basetyps,
0340: 20 77 69 6e 33 32 2e 63 6f 6d 6d 63 74 72 6c 2c   win32.commctrl,
0350: 20 77 69 6e 33 32 2e 70 72 73 68 74 2c 20 77 69   win32.prsht, wi
0360: 6e 33 32 2e 77 33 32 61 70 69 2c 0d 0a 20 20 77  n32.w32api,..  w
0370: 69 6e 33 32 2e 77 69 6e 72 65 67 2c 20 77 69 6e  in32.winreg, win
0380: 33 32 2e 77 69 6e 64 65 66 3b 0d 0a 70 72 69 76  32.windef;..priv
0390: 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32  ate import win32
03a0: 2e 77 69 6e 62 61 73 65 3b 20 2f 2f 20 66 6f 72  .winbase; // for
03b0: 20 53 59 53 54 45 4d 54 49 4d 45 0d 0a 0d 0a 2f   SYSTEMTIME..../
03c0: 2a 73 74 61 74 69 63 20 69 66 28 5f 57 49 4e 33  *static if(_WIN3
03d0: 32 5f 57 49 4e 4e 54 20 3c 20 5f 57 49 4e 33 32  2_WINNT < _WIN32
03e0: 5f 57 49 4e 44 4f 57 53 29 20 7b 0d 0a 09 63 6f  _WINDOWS) {...co
03f0: 6e 73 74 20 55 49 4e 54 20 5f 53 45 54 55 50 41  nst UINT _SETUPA
0400: 50 49 5f 56 45 52 20 3d 20 5f 57 49 4e 33 32 5f  PI_VER = _WIN32_
0410: 57 49 4e 4e 54 3b 20 2f 2f 20 53 65 74 75 70 41  WINNT; // SetupA
0420: 50 49 20 76 65 72 73 69 6f 6e 20 66 6f 6c 6c 6f  PI version follo
0430: 77 73 20 57 69 6e 64 6f 77 73 20 4e 54 20 76 65  ws Windows NT ve
0440: 72 73 69 6f 6e 0d 0a 7d 20 65 6c 73 65 20 73 74  rsion..} else st
0450: 61 74 69 63 20 69 66 28 5f 57 49 4e 33 32 5f 57  atic if(_WIN32_W
0460: 49 4e 44 4f 57 53 29 20 7b 0d 0a 09 73 74 61 74  INDOWS) {...stat
0470: 69 63 20 69 66 28 5f 57 49 4e 33 32 5f 57 49 4e  ic if(_WIN32_WIN
0480: 44 4f 57 53 20 3e 3d 20 30 78 30 34 39 30 29 20  DOWS >= 0x0490) 
0490: 7b 0d 0a 09 09 63 6f 6e 73 74 20 55 49 4e 54 20  {....const UINT 
04a0: 5f 53 45 54 55 50 41 50 49 5f 56 45 52 20 3d 20  _SETUPAPI_VER = 
04b0: 30 78 30 35 30 30 3b 20 20 20 20 20 2f 2f 20 57  0x0500;     // W
04c0: 69 6e 4d 45 20 75 73 65 73 20 73 61 6d 65 20 76  inME uses same v
04d0: 65 72 73 69 6f 6e 20 6f 66 20 53 65 74 75 70 41  ersion of SetupA
04e0: 50 49 20 61 73 20 57 69 6e 32 6b 0d 0a 09 7d 20  PI as Win2k...} 
04f0: 65 6c 73 65 20 73 74 61 74 69 63 20 69 66 28 5f  else static if(_
0500: 57 49 4e 33 32 5f 57 49 4e 44 4f 57 53 20 3e 3d  WIN32_WINDOWS >=
0510: 20 30 78 30 34 31 30 29 20 7b 0d 0a 09 09 63 6f   0x0410) {....co
0520: 6e 73 74 20 55 49 4e 54 20 5f 53 45 54 55 50 41  nst UINT _SETUPA
0530: 50 49 5f 56 45 52 20 3d 20 30 78 30 34 31 30 3b  PI_VER = 0x0410;
0540: 20 20 20 20 20 2f 2f 20 49 6e 64 69 63 61 74 65       // Indicate
0550: 73 20 76 65 72 73 69 6f 6e 20 6f 66 20 53 65 74  s version of Set
0560: 75 70 41 50 49 20 73 68 69 70 70 65 64 20 77 69  upAPI shipped wi
0570: 74 68 20 57 69 6e 39 38 0d 0a 09 7d 20 65 6c 73  th Win98...} els
0580: 65 20 7b 0d 0a 09 09 63 6f 6e 73 74 20 55 49 4e  e {....const UIN
0590: 54 20 5f 53 45 54 55 50 41 50 49 5f 56 45 52 20  T _SETUPAPI_VER 
05a0: 3d 20 30 78 30 34 30 30 3b 20 20 20 20 20 2f 2f  = 0x0400;     //
05b0: 20 45 61 72 6c 69 65 73 74 20 53 65 74 75 70 41   Earliest SetupA
05c0: 50 49 20 76 65 72 73 69 6f 6e 0d 0a 09 7d 0d 0a  PI version...}..
05d0: 7d 20 65 6c 73 65 20 7b 0d 0a 09 63 6f 6e 73 74  } else {...const
05e0: 20 55 49 4e 54 20 5f 53 45 54 55 50 41 50 49 5f   UINT _SETUPAPI_
05f0: 56 45 52 20 3d 20 30 78 30 35 30 31 3b 0d 0a 7d  VER = 0x0501;..}
0600: 0d 0a 0d 0a 76 65 72 73 69 6f 6e 20 28 57 69 6e  ....version (Win
0610: 64 6f 77 73 4e 54 6f 6e 6c 79 29 20 7b 0d 0a 09  dowsNTonly) {...
0620: 73 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e 33  static if (_WIN3
0630: 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 35 30 30  2_WINNT >= 0x500
0640: 29 20 7b 0d 0a 09 09 63 6f 6e 73 74 20 55 49 4e  ) {....const UIN
0650: 54 20 55 53 45 5f 53 50 5f 44 52 56 49 4e 46 4f  T USE_SP_DRVINFO
0660: 5f 44 41 54 41 5f 56 31 20 3d 20 30 3b 0d 0a 09  _DATA_V1 = 0;...
0670: 7d 20 65 6c 73 65 20 7b 0d 0a 09 09 63 6f 6e 73  } else {....cons
0680: 74 20 55 49 4e 54 20 55 53 45 5f 53 50 5f 44 52  t UINT USE_SP_DR
0690: 56 49 4e 46 4f 5f 44 41 54 41 5f 56 31 20 3d 20  VINFO_DATA_V1 = 
06a0: 31 3b 0d 0a 09 7d 0d 0a 7d 20 65 6c 73 65 20 7b  1;...}..} else {
06b0: 0d 0a 09 63 6f 6e 73 74 20 55 49 4e 54 20 55 53  ...const UINT US
06c0: 45 5f 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41 54  E_SP_DRVINFO_DAT
06d0: 41 5f 56 31 20 3d 20 31 3b 0d 0a 7d 2a 2f 0d 0a  A_V1 = 1;..}*/..
06e0: 2f 2b 0d 0a 63 6f 6e 73 74 20 55 49 4e 54 20 5f  /+..const UINT _
06f0: 53 45 54 55 50 41 50 49 5f 56 45 52 20 3d 20 30  SETUPAPI_VER = 0
0700: 78 30 34 30 30 3b 20 20 20 20 20 2f 2f 20 45 61  x0400;     // Ea
0710: 72 6c 69 65 73 74 20 53 65 74 75 70 41 50 49 20  rliest SetupAPI 
0720: 76 65 72 73 69 6f 6e 0d 0a 63 6f 6e 73 74 20 55  version..const U
0730: 49 4e 54 20 55 53 45 5f 53 50 5f 44 52 56 49 4e  INT USE_SP_DRVIN
0740: 46 4f 5f 44 41 54 41 5f 56 31 20 3d 20 31 3b 0d  FO_DATA_V1 = 1;.
0750: 0a 2b 2f 0d 0a 63 6f 6e 73 74 20 55 49 4e 54 20  .+/..const UINT 
0760: 5f 53 45 54 55 50 41 50 49 5f 56 45 52 20 20 20  _SETUPAPI_VER   
0770: 20 20 20 20 20 20 20 3d 20 5f 57 49 4e 33 32 5f         = _WIN32_
0780: 57 49 4e 4e 54 3b 0d 0a 63 6f 6e 73 74 20 62 6f  WINNT;..const bo
0790: 6f 6c 20 55 53 45 5f 53 50 5f 44 52 56 49 4e 46  ol USE_SP_DRVINF
07a0: 4f 5f 44 41 54 41 5f 56 31 20 3d 20 5f 57 49 4e  O_DATA_V1 = _WIN
07b0: 33 32 5f 57 49 4e 4e 54 20 3c 20 30 78 35 30 30  32_WINNT < 0x500
07c0: 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  ;....enum : uint
07d0: 20 7b 0d 0a 09 4c 49 4e 45 5f 4c 45 4e 20 20 20   {...LINE_LEN   
07e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d                 =
07f0: 20 32 35 36 2c 0d 0a 09 4d 41 58 5f 49 4e 46 5f   256,...MAX_INF_
0800: 53 54 52 49 4e 47 5f 4c 45 4e 47 54 48 20 20 20  STRING_LENGTH   
0810: 20 20 3d 20 34 30 39 36 2c 0d 0a 09 4d 41 58 5f    = 4096,...MAX_
0820: 54 49 54 4c 45 5f 4c 45 4e 20 20 20 20 20 20 20  TITLE_LEN       
0830: 20 20 20 20 20 20 3d 20 36 30 2c 0d 0a 09 4d 41        = 60,...MA
0840: 58 5f 49 4e 53 54 52 55 43 54 49 4f 4e 5f 4c 45  X_INSTRUCTION_LE
0850: 4e 20 20 20 20 20 20 20 3d 20 32 35 36 2c 0d 0a  N       = 256,..
0860: 09 4d 41 58 5f 4c 41 42 45 4c 5f 4c 45 4e 20 20  .MAX_LABEL_LEN  
0870: 20 20 20 20 20 20 20 20 20 20 20 3d 20 33 30 2c             = 30,
0880: 0d 0a 09 4d 41 58 5f 53 45 52 56 49 43 45 5f 4e  ...MAX_SERVICE_N
0890: 41 4d 45 5f 4c 45 4e 20 20 20 20 20 20 3d 20 32  AME_LEN      = 2
08a0: 35 36 2c 0d 0a 09 4d 41 58 5f 53 55 42 54 49 54  56,...MAX_SUBTIT
08b0: 4c 45 5f 4c 45 4e 20 20 20 20 20 20 20 20 20 20  LE_LEN          
08c0: 3d 20 32 35 36 2c 0d 0a 09 53 50 5f 4d 41 58 5f  = 256,...SP_MAX_
08d0: 4d 41 43 48 49 4e 45 4e 41 4d 45 5f 4c 45 4e 47  MACHINENAME_LENG
08e0: 54 48 20 3d 20 4d 41 58 5f 50 41 54 48 20 2b 20  TH = MAX_PATH + 
08f0: 33 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44  3..}....enum : D
0900: 57 4f 52 44 20 7b 0d 0a 09 43 4f 50 59 46 4c 47  WORD {...COPYFLG
0910: 5f 57 41 52 4e 5f 49 46 5f 53 4b 49 50 20 20 20  _WARN_IF_SKIP   
0920: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
0930: 30 31 2c 0d 0a 09 43 4f 50 59 46 4c 47 5f 4e 4f  01,...COPYFLG_NO
0940: 53 4b 49 50 20 20 20 20 20 20 20 20 20 20 20 20  SKIP            
0950: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 32 2c     = 0x00000002,
0960: 0d 0a 09 43 4f 50 59 46 4c 47 5f 4e 4f 56 45 52  ...COPYFLG_NOVER
0970: 53 49 4f 4e 43 48 45 43 4b 20 20 20 20 20 20 20  SIONCHECK       
0980: 3d 20 30 78 30 30 30 30 30 30 30 34 2c 0d 0a 09  = 0x00000004,...
0990: 43 4f 50 59 46 4c 47 5f 46 4f 52 43 45 5f 46 49  COPYFLG_FORCE_FI
09a0: 4c 45 5f 49 4e 5f 55 53 45 20 20 20 20 3d 20 30  LE_IN_USE    = 0
09b0: 78 30 30 30 30 30 30 30 38 2c 0d 0a 09 43 4f 50  x00000008,...COP
09c0: 59 46 4c 47 5f 4e 4f 5f 4f 56 45 52 57 52 49 54  YFLG_NO_OVERWRIT
09d0: 45 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30  E         = 0x00
09e0: 30 30 30 30 31 30 2c 0d 0a 09 43 4f 50 59 46 4c  000010,...COPYFL
09f0: 47 5f 4e 4f 5f 56 45 52 53 49 4f 4e 5f 44 49 41  G_NO_VERSION_DIA
0a00: 4c 4f 47 20 20 20 20 3d 20 30 78 30 30 30 30 30  LOG    = 0x00000
0a10: 30 32 30 2c 0d 0a 09 43 4f 50 59 46 4c 47 5f 4f  020,...COPYFLG_O
0a20: 56 45 52 57 52 49 54 45 5f 4f 4c 44 45 52 5f 4f  VERWRITE_OLDER_O
0a30: 4e 4c 59 20 3d 20 30 78 30 30 30 30 30 30 34 30  NLY = 0x00000040
0a40: 2c 0d 0a 09 43 4f 50 59 46 4c 47 5f 52 45 50 4c  ,...COPYFLG_REPL
0a50: 41 43 45 4f 4e 4c 59 20 20 20 20 20 20 20 20 20  ACEONLY         
0a60: 20 3d 20 30 78 30 30 30 30 30 34 30 30 2c 0d 0a   = 0x00000400,..
0a70: 09 43 4f 50 59 46 4c 47 5f 4e 4f 44 45 43 4f 4d  .COPYFLG_NODECOM
0a80: 50 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  P             = 
0a90: 30 78 30 30 30 30 30 38 30 30 2c 0d 0a 09 43 4f  0x00000800,...CO
0aa0: 50 59 46 4c 47 5f 52 45 50 4c 41 43 45 5f 42 4f  PYFLG_REPLACE_BO
0ab0: 4f 54 5f 46 49 4c 45 20 20 20 20 3d 20 30 78 30  OT_FILE    = 0x0
0ac0: 30 30 30 31 30 30 30 2c 0d 0a 09 43 4f 50 59 46  0001000,...COPYF
0ad0: 4c 47 5f 4e 4f 50 52 55 4e 45 20 20 20 20 20 20  LG_NOPRUNE      
0ae0: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30          = 0x0000
0af0: 32 30 30 30 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20  2000..}....enum 
0b00: 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 44 45 4c 46  : DWORD {...DELF
0b10: 4c 47 5f 49 4e 5f 55 53 45 20 20 3d 20 30 78 30  LG_IN_USE  = 0x0
0b20: 30 30 30 30 30 30 31 2c 0d 0a 09 44 45 4c 46 4c  0000001,...DELFL
0b30: 47 5f 49 4e 5f 55 53 45 31 20 3d 20 30 78 30 30  G_IN_USE1 = 0x00
0b40: 30 31 30 30 30 30 0d 0a 7d 0d 0a 0d 0a 65 6e 75  010000..}....enu
0b50: 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 44 49  m : DWORD {...DI
0b60: 5f 52 45 4d 4f 56 45 44 45 56 49 43 45 5f 47 4c  _REMOVEDEVICE_GL
0b70: 4f 42 41 4c 20 20 20 20 20 20 20 20 20 20 20 20  OBAL            
0b80: 20 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0d    = 0x00000001,.
0b90: 0a 09 44 49 5f 52 45 4d 4f 56 45 44 45 56 49 43  ..DI_REMOVEDEVIC
0ba0: 45 5f 43 4f 4e 46 49 47 53 50 45 43 49 46 49 43  E_CONFIGSPECIFIC
0bb0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
0bc0: 30 32 2c 0d 0a 09 44 49 5f 55 4e 52 45 4d 4f 56  02,...DI_UNREMOV
0bd0: 45 44 45 56 49 43 45 5f 43 4f 4e 46 49 47 53 50  EDEVICE_CONFIGSP
0be0: 45 43 49 46 49 43 20 20 20 20 3d 20 30 78 30 30  ECIFIC    = 0x00
0bf0: 30 30 30 30 30 32 2c 0d 0a 09 44 49 5f 53 48 4f  000002,...DI_SHO
0c00: 57 4f 45 4d 20 20 20 20 20 20 20 20 20 20 20 20  WOEM            
0c10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
0c20: 30 78 30 30 30 30 30 30 30 31 2c 0d 0a 09 44 49  0x00000001,...DI
0c30: 5f 53 48 4f 57 43 4f 4d 50 41 54 20 20 20 20 20  _SHOWCOMPAT     
0c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0c50: 20 20 3d 20 30 78 30 30 30 30 30 30 30 32 2c 0d    = 0x00000002,.
0c60: 0a 09 44 49 5f 53 48 4f 57 43 4c 41 53 53 20 20  ..DI_SHOWCLASS  
0c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0c80: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
0c90: 30 34 2c 0d 0a 09 44 49 5f 53 48 4f 57 41 4c 4c  04,...DI_SHOWALL
0ca0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0cb0: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
0cc0: 30 30 30 30 30 37 2c 0d 0a 09 44 49 5f 4e 4f 56  000007,...DI_NOV
0cd0: 43 50 20 20 20 20 20 20 20 20 20 20 20 20 20 20  CP              
0ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
0cf0: 30 78 30 30 30 30 30 30 30 38 2c 0d 0a 09 44 49  0x00000008,...DI
0d00: 5f 44 49 44 43 4f 4d 50 41 54 20 20 20 20 20 20  _DIDCOMPAT      
0d10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0d20: 20 20 3d 20 30 78 30 30 30 30 30 30 31 30 2c 0d    = 0x00000010,.
0d30: 0a 09 44 49 5f 44 49 44 43 4c 41 53 53 20 20 20  ..DI_DIDCLASS   
0d40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0d50: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
0d60: 32 30 2c 0d 0a 09 44 49 5f 41 55 54 4f 41 53 53  20,...DI_AUTOASS
0d70: 49 47 4e 52 45 53 20 20 20 20 20 20 20 20 20 20  IGNRES          
0d80: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
0d90: 30 30 30 30 34 30 2c 0d 0a 09 44 49 5f 4e 45 45  000040,...DI_NEE
0da0: 44 52 45 53 54 41 52 54 20 20 20 20 20 20 20 20  DRESTART        
0db0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
0dc0: 30 78 30 30 30 30 30 30 38 30 2c 0d 0a 09 44 49  0x00000080,...DI
0dd0: 5f 4e 45 45 44 52 45 42 4f 4f 54 20 20 20 20 20  _NEEDREBOOT     
0de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0df0: 20 20 3d 20 30 78 30 30 30 30 30 31 30 30 2c 0d    = 0x00000100,.
0e00: 0a 09 44 49 5f 4e 4f 42 52 4f 57 53 45 20 20 20  ..DI_NOBROWSE   
0e10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0e20: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 32        = 0x000002
0e30: 30 30 2c 0d 0a 09 44 49 5f 4d 55 4c 54 4d 46 47  00,...DI_MULTMFG
0e40: 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  S               
0e50: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
0e60: 30 30 30 34 30 30 2c 0d 0a 09 44 49 5f 44 49 53  000400,...DI_DIS
0e70: 41 42 4c 45 44 20 20 20 20 20 20 20 20 20 20 20  ABLED           
0e80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
0e90: 30 78 30 30 30 30 30 38 30 30 2c 0d 0a 09 44 49  0x00000800,...DI
0ea0: 5f 47 45 4e 45 52 41 4c 50 41 47 45 5f 41 44 44  _GENERALPAGE_ADD
0eb0: 45 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ED              
0ec0: 20 20 3d 20 30 78 30 30 30 30 31 30 30 30 2c 0d    = 0x00001000,.
0ed0: 0a 09 44 49 5f 52 45 53 4f 55 52 43 45 50 41 47  ..DI_RESOURCEPAG
0ee0: 45 5f 41 44 44 45 44 20 20 20 20 20 20 20 20 20  E_ADDED         
0ef0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 32 30        = 0x000020
0f00: 30 30 2c 0d 0a 09 44 49 5f 50 52 4f 50 45 52 54  00,...DI_PROPERT
0f10: 49 45 53 5f 43 48 41 4e 47 45 20 20 20 20 20 20  IES_CHANGE      
0f20: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
0f30: 30 30 34 30 30 30 2c 0d 0a 09 44 49 5f 49 4e 46  004000,...DI_INF
0f40: 5f 49 53 5f 53 4f 52 54 45 44 20 20 20 20 20 20  _IS_SORTED      
0f50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
0f60: 30 78 30 30 30 30 38 30 30 30 2c 0d 0a 09 44 49  0x00008000,...DI
0f70: 5f 45 4e 55 4d 53 49 4e 47 4c 45 49 4e 46 20 20  _ENUMSINGLEINF  
0f80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0f90: 20 20 3d 20 30 78 30 30 30 31 30 30 30 30 2c 0d    = 0x00010000,.
0fa0: 0a 09 44 49 5f 44 4f 4e 4f 54 43 41 4c 4c 43 4f  ..DI_DONOTCALLCO
0fb0: 4e 46 49 47 4d 47 20 20 20 20 20 20 20 20 20 20  NFIGMG          
0fc0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 32 30 30        = 0x000200
0fd0: 30 30 2c 0d 0a 09 44 49 5f 49 4e 53 54 41 4c 4c  00,...DI_INSTALL
0fe0: 44 49 53 41 42 4c 45 44 20 20 20 20 20 20 20 20  DISABLED        
0ff0: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
1000: 30 34 30 30 30 30 2c 0d 0a 09 44 49 5f 43 4f 4d  040000,...DI_COM
1010: 50 41 54 5f 46 52 4f 4d 5f 43 4c 41 53 53 20 20  PAT_FROM_CLASS  
1020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
1030: 30 78 30 30 30 38 30 30 30 30 2c 0d 0a 09 44 49  0x00080000,...DI
1040: 5f 43 4c 41 53 53 49 4e 53 54 41 4c 4c 50 41 52  _CLASSINSTALLPAR
1050: 41 4d 53 20 20 20 20 20 20 20 20 20 20 20 20 20  AMS             
1060: 20 20 3d 20 30 78 30 30 31 30 30 30 30 30 2c 0d    = 0x00100000,.
1070: 0a 09 44 49 5f 4e 4f 44 49 5f 44 45 46 41 55 4c  ..DI_NODI_DEFAUL
1080: 54 41 43 54 49 4f 4e 20 20 20 20 20 20 20 20 20  TACTION         
1090: 20 20 20 20 20 20 3d 20 30 78 30 30 32 30 30 30        = 0x002000
10a0: 30 30 2c 0d 0a 09 44 49 5f 51 55 49 45 54 49 4e  00,...DI_QUIETIN
10b0: 53 54 41 4c 4c 20 20 20 20 20 20 20 20 20 20 20  STALL           
10c0: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
10d0: 38 30 30 30 30 30 2c 0d 0a 09 44 49 5f 4e 4f 46  800000,...DI_NOF
10e0: 49 4c 45 43 4f 50 59 20 20 20 20 20 20 20 20 20  ILECOPY         
10f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
1100: 30 78 30 31 30 30 30 30 30 30 2c 0d 0a 09 44 49  0x01000000,...DI
1110: 5f 46 4f 52 43 45 43 4f 50 59 20 20 20 20 20 20  _FORCECOPY      
1120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1130: 20 20 3d 20 30 78 30 32 30 30 30 30 30 30 2c 0d    = 0x02000000,.
1140: 0a 09 44 49 5f 44 52 49 56 45 52 50 41 47 45 5f  ..DI_DRIVERPAGE_
1150: 41 44 44 45 44 20 20 20 20 20 20 20 20 20 20 20  ADDED           
1160: 20 20 20 20 20 20 3d 20 30 78 30 34 30 30 30 30        = 0x040000
1170: 30 30 2c 0d 0a 09 44 49 5f 55 53 45 43 49 5f 53  00,...DI_USECI_S
1180: 45 4c 45 43 54 53 54 52 49 4e 47 53 20 20 20 20  ELECTSTRINGS    
1190: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 38            = 0x08
11a0: 30 30 30 30 30 30 2c 0d 0a 09 44 49 5f 4f 56 45  000000,...DI_OVE
11b0: 52 52 49 44 45 5f 49 4e 46 46 4c 41 47 53 20 20  RRIDE_INFFLAGS  
11c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
11d0: 30 78 31 30 30 30 30 30 30 30 2c 0d 0a 09 44 49  0x10000000,...DI
11e0: 5f 50 52 4f 50 53 5f 4e 4f 43 48 41 4e 47 45 55  _PROPS_NOCHANGEU
11f0: 53 41 47 45 20 20 20 20 20 20 20 20 20 20 20 20  SAGE            
1200: 20 20 3d 20 30 78 32 30 30 30 30 30 30 30 2c 0d    = 0x20000000,.
1210: 0a 09 44 49 5f 4e 4f 53 45 4c 45 43 54 49 43 4f  ..DI_NOSELECTICO
1220: 4e 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20  NS              
1230: 20 20 20 20 20 20 3d 20 30 78 34 30 30 30 30 30        = 0x400000
1240: 30 30 2c 0d 0a 09 44 49 5f 4e 4f 57 52 49 54 45  00,...DI_NOWRITE
1250: 5f 49 44 53 20 20 20 20 20 20 20 20 20 20 20 20  _IDS            
1260: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 38 30            = 0x80
1270: 30 30 30 30 30 30 2c 0d 0a 09 44 49 5f 46 4c 41  000000,...DI_FLA
1280: 47 53 45 58 5f 55 53 45 4f 4c 44 49 4e 46 53 45  GSEX_USEOLDINFSE
1290: 41 52 43 48 20 20 20 20 20 20 20 20 20 20 3d 20  ARCH          = 
12a0: 30 78 30 30 30 30 30 30 30 31 2c 0d 0a 09 44 49  0x00000001,...DI
12b0: 5f 46 4c 41 47 53 45 58 5f 41 55 54 4f 53 45 4c  _FLAGSEX_AUTOSEL
12c0: 45 43 54 52 41 4e 4b 30 20 20 20 20 20 20 20 20  ECTRANK0        
12d0: 20 20 3d 20 30 78 30 30 30 30 30 30 30 32 2c 0d    = 0x00000002,.
12e0: 0a 09 44 49 5f 46 4c 41 47 53 45 58 5f 43 49 5f  ..DI_FLAGSEX_CI_
12f0: 46 41 49 4c 45 44 20 20 20 20 20 20 20 20 20 20  FAILED          
1300: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
1310: 30 34 2c 0d 0a 09 44 49 5f 46 4c 41 47 53 45 58  04,...DI_FLAGSEX
1320: 5f 44 49 44 49 4e 46 4f 4c 49 53 54 20 20 20 20  _DIDINFOLIST    
1330: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
1340: 30 30 30 30 31 30 2c 0d 0a 09 44 49 5f 46 4c 41  000010,...DI_FLA
1350: 47 53 45 58 5f 44 49 44 43 4f 4d 50 41 54 49 4e  GSEX_DIDCOMPATIN
1360: 46 4f 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  FO            = 
1370: 30 78 30 30 30 30 30 30 32 30 2c 0d 0a 09 44 49  0x00000020,...DI
1380: 5f 46 4c 41 47 53 45 58 5f 46 49 4c 54 45 52 43  _FLAGSEX_FILTERC
1390: 4c 41 53 53 45 53 20 20 20 20 20 20 20 20 20 20  LASSES          
13a0: 20 20 3d 20 30 78 30 30 30 30 30 30 34 30 2c 0d    = 0x00000040,.
13b0: 0a 09 44 49 5f 46 4c 41 47 53 45 58 5f 53 45 54  ..DI_FLAGSEX_SET
13c0: 46 41 49 4c 45 44 49 4e 53 54 41 4c 4c 20 20 20  FAILEDINSTALL   
13d0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
13e0: 38 30 2c 0d 0a 09 44 49 5f 46 4c 41 47 53 45 58  80,...DI_FLAGSEX
13f0: 5f 44 45 56 49 43 45 43 48 41 4e 47 45 20 20 20  _DEVICECHANGE   
1400: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
1410: 30 30 30 31 30 30 2c 0d 0a 09 44 49 5f 46 4c 41  000100,...DI_FLA
1420: 47 53 45 58 5f 41 4c 57 41 59 53 57 52 49 54 45  GSEX_ALWAYSWRITE
1430: 49 44 53 20 20 20 20 20 20 20 20 20 20 20 3d 20  IDS           = 
1440: 30 78 30 30 30 30 30 32 30 30 2c 0d 0a 09 44 49  0x00000200,...DI
1450: 5f 46 4c 41 47 53 45 58 5f 50 52 4f 50 43 48 41  _FLAGSEX_PROPCHA
1460: 4e 47 45 5f 50 45 4e 44 49 4e 47 20 20 20 20 20  NGE_PENDING     
1470: 20 20 3d 20 30 78 30 30 30 30 30 34 30 30 2c 0d    = 0x00000400,.
1480: 0a 09 44 49 5f 46 4c 41 47 53 45 58 5f 41 4c 4c  ..DI_FLAGSEX_ALL
1490: 4f 57 45 58 43 4c 55 44 45 44 44 52 56 53 20 20  OWEXCLUDEDDRVS  
14a0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 38        = 0x000008
14b0: 30 30 2c 0d 0a 09 44 49 5f 46 4c 41 47 53 45 58  00,...DI_FLAGSEX
14c0: 5f 4e 4f 55 49 4f 4e 51 55 45 52 59 52 45 4d 4f  _NOUIONQUERYREMO
14d0: 56 45 20 20 20 20 20 20 20 20 3d 20 30 78 30 30  VE        = 0x00
14e0: 30 30 31 30 30 30 2c 0d 0a 09 44 49 5f 46 4c 41  001000,...DI_FLA
14f0: 47 53 45 58 5f 55 53 45 43 4c 41 53 53 46 4f 52  GSEX_USECLASSFOR
1500: 43 4f 4d 50 41 54 20 20 20 20 20 20 20 20 3d 20  COMPAT        = 
1510: 30 78 30 30 30 30 32 30 30 30 2c 0d 0a 09 44 49  0x00002000,...DI
1520: 5f 46 4c 41 47 53 45 58 5f 4f 4c 44 49 4e 46 5f  _FLAGSEX_OLDINF_
1530: 49 4e 5f 43 4c 41 53 53 4c 49 53 54 20 20 20 20  IN_CLASSLIST    
1540: 20 20 3d 20 30 78 30 30 30 30 34 30 30 30 2c 0d    = 0x00004000,.
1550: 0a 09 44 49 5f 46 4c 41 47 53 45 58 5f 4e 4f 5f  ..DI_FLAGSEX_NO_
1560: 44 52 56 52 45 47 5f 4d 4f 44 49 46 59 20 20 20  DRVREG_MODIFY   
1570: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 38 30        = 0x000080
1580: 30 30 2c 0d 0a 09 44 49 5f 46 4c 41 47 53 45 58  00,...DI_FLAGSEX
1590: 5f 49 4e 5f 53 59 53 54 45 4d 5f 53 45 54 55 50  _IN_SYSTEM_SETUP
15a0: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
15b0: 30 31 30 30 30 30 2c 0d 0a 09 44 49 5f 46 4c 41  010000,...DI_FLA
15c0: 47 53 45 58 5f 49 4e 45 54 5f 44 52 49 56 45 52  GSEX_INET_DRIVER
15d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
15e0: 30 78 30 30 30 32 30 30 30 30 2c 0d 0a 09 44 49  0x00020000,...DI
15f0: 5f 46 4c 41 47 53 45 58 5f 41 50 50 45 4e 44 44  _FLAGSEX_APPENDD
1600: 52 49 56 45 52 4c 49 53 54 20 20 20 20 20 20 20  RIVERLIST       
1610: 20 20 3d 20 30 78 30 30 30 34 30 30 30 30 2c 0d    = 0x00040000,.
1620: 0a 09 44 49 5f 46 4c 41 47 53 45 58 5f 50 52 45  ..DI_FLAGSEX_PRE
1630: 49 4e 53 54 41 4c 4c 42 41 43 4b 55 50 20 20 20  INSTALLBACKUP   
1640: 20 20 20 20 20 20 3d 20 30 78 30 30 30 38 30 30        = 0x000800
1650: 30 30 2c 0d 0a 09 44 49 5f 46 4c 41 47 53 45 58  00,...DI_FLAGSEX
1660: 5f 42 41 43 4b 55 50 4f 4e 52 45 50 4c 41 43 45  _BACKUPONREPLACE
1670: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
1680: 31 30 30 30 30 30 2c 0d 0a 09 44 49 5f 46 4c 41  100000,...DI_FLA
1690: 47 53 45 58 5f 44 52 49 56 45 52 4c 49 53 54 5f  GSEX_DRIVERLIST_
16a0: 46 52 4f 4d 5f 55 52 4c 20 20 20 20 20 20 3d 20  FROM_URL      = 
16b0: 30 78 30 30 32 30 30 30 30 30 2c 0d 0a 09 44 49  0x00200000,...DI
16c0: 5f 46 4c 41 47 53 45 58 5f 52 45 53 45 52 56 45  _FLAGSEX_RESERVE
16d0: 44 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20  D1              
16e0: 20 20 3d 20 30 78 30 30 34 30 30 30 30 30 2c 0d    = 0x00400000,.
16f0: 0a 09 44 49 5f 46 4c 41 47 53 45 58 5f 45 58 43  ..DI_FLAGSEX_EXC
1700: 4c 55 44 45 5f 4f 4c 44 5f 49 4e 45 54 5f 44 52  LUDE_OLD_INET_DR
1710: 49 56 45 52 53 20 3d 20 30 78 30 30 38 30 30 30  IVERS = 0x008000
1720: 30 30 2c 0d 0a 09 44 49 5f 46 4c 41 47 53 45 58  00,...DI_FLAGSEX
1730: 5f 50 4f 57 45 52 50 41 47 45 5f 41 44 44 45 44  _POWERPAGE_ADDED
1740: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 31            = 0x01
1750: 30 30 30 30 30 30 0d 0a 7d 0d 0a 0d 0a 65 6e 75  000000..}....enu
1760: 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 44 49  m : DWORD {...DI
1770: 42 43 49 5f 4e 4f 49 4e 53 54 41 4c 4c 43 4c 41  BCI_NOINSTALLCLA
1780: 53 53 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c  SS = 0x00000001,
1790: 0d 0a 09 44 49 42 43 49 5f 4e 4f 44 49 53 50 4c  ...DIBCI_NODISPL
17a0: 41 59 43 4c 41 53 53 20 3d 20 30 78 30 30 30 30  AYCLASS = 0x0000
17b0: 30 30 30 32 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20  0002..}....enum 
17c0: 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 44 49 43 44  : DWORD {...DICD
17d0: 5f 47 45 4e 45 52 41 54 45 5f 49 44 20 20 20 20  _GENERATE_ID    
17e0: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c     = 0x00000001,
17f0: 0d 0a 09 44 49 43 44 5f 49 4e 48 45 52 49 54 5f  ...DICD_INHERIT_
1800: 43 4c 41 53 53 44 52 56 53 20 3d 20 30 78 30 30  CLASSDRVS = 0x00
1810: 30 30 30 30 30 32 0d 0a 7d 0d 0a 0d 0a 65 6e 75  000002..}....enu
1820: 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 44 49  m : DWORD {...DI
1830: 43 53 5f 45 4e 41 42 4c 45 20 3d 20 31 2c 0d 0a  CS_ENABLE = 1,..
1840: 09 44 49 43 53 5f 44 49 53 41 42 4c 45 2c 0d 0a  .DICS_DISABLE,..
1850: 09 44 49 43 53 5f 50 52 4f 50 43 48 41 4e 47 45  .DICS_PROPCHANGE
1860: 2c 0d 0a 09 44 49 43 53 5f 53 54 41 52 54 2c 0d  ,...DICS_START,.
1870: 0a 09 44 49 43 53 5f 53 54 4f 50 20 2f 2f 20 3d  ..DICS_STOP // =
1880: 20 35 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20   5..}....enum : 
1890: 44 57 4f 52 44 20 7b 0d 0a 09 44 49 43 53 5f 46  DWORD {...DICS_F
18a0: 4c 41 47 5f 47 4c 4f 42 41 4c 20 20 20 20 20 20  LAG_GLOBAL      
18b0: 20 20 20 3d 20 31 2c 0d 0a 09 44 49 43 53 5f 46     = 1,...DICS_F
18c0: 4c 41 47 5f 43 4f 4e 46 49 47 53 50 45 43 49 46  LAG_CONFIGSPECIF
18d0: 49 43 20 3d 20 32 2c 0d 0a 09 44 49 43 53 5f 46  IC = 2,...DICS_F
18e0: 4c 41 47 5f 43 4f 4e 46 49 47 47 45 4e 45 52 41  LAG_CONFIGGENERA
18f0: 4c 20 20 3d 20 34 0d 0a 7d 0d 0a 0d 0a 61 6c 69  L  = 4..}....ali
1900: 61 73 20 55 49 4e 54 20 44 49 5f 46 55 4e 43 54  as UINT DI_FUNCT
1910: 49 4f 4e 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44  ION;....enum : D
1920: 49 5f 46 55 4e 43 54 49 4f 4e 20 7b 0d 0a 09 44  I_FUNCTION {...D
1930: 49 46 5f 53 45 4c 45 43 54 44 45 56 49 43 45 20  IF_SELECTDEVICE 
1940: 3d 20 31 2c 0d 0a 09 44 49 46 5f 49 4e 53 54 41  = 1,...DIF_INSTA
1950: 4c 4c 44 45 56 49 43 45 2c 0d 0a 09 44 49 46 5f  LLDEVICE,...DIF_
1960: 41 53 53 49 47 4e 52 45 53 4f 55 52 43 45 53 2c  ASSIGNRESOURCES,
1970: 0d 0a 09 44 49 46 5f 50 52 4f 50 45 52 54 49 45  ...DIF_PROPERTIE
1980: 53 2c 0d 0a 09 44 49 46 5f 52 45 4d 4f 56 45 2c  S,...DIF_REMOVE,
1990: 0d 0a 09 44 49 46 5f 46 49 52 53 54 54 49 4d 45  ...DIF_FIRSTTIME
19a0: 53 45 54 55 50 2c 0d 0a 09 44 49 46 5f 46 4f 55  SETUP,...DIF_FOU
19b0: 4e 44 44 45 56 49 43 45 2c 0d 0a 09 44 49 46 5f  NDDEVICE,...DIF_
19c0: 53 45 4c 45 43 54 43 4c 41 53 53 44 52 49 56 45  SELECTCLASSDRIVE
19d0: 52 53 2c 0d 0a 09 44 49 46 5f 56 41 4c 49 44 41  RS,...DIF_VALIDA
19e0: 54 45 43 4c 41 53 53 44 52 49 56 45 52 53 2c 0d  TECLASSDRIVERS,.
19f0: 0a 09 44 49 46 5f 49 4e 53 54 41 4c 4c 43 4c 41  ..DIF_INSTALLCLA
1a00: 53 53 44 52 49 56 45 52 53 2c 0d 0a 09 44 49 46  SSDRIVERS,...DIF
1a10: 5f 43 41 4c 43 44 49 53 4b 53 50 41 43 45 2c 0d  _CALCDISKSPACE,.
1a20: 0a 09 44 49 46 5f 44 45 53 54 52 4f 59 50 52 49  ..DIF_DESTROYPRI
1a30: 56 41 54 45 44 41 54 41 2c 0d 0a 09 44 49 46 5f  VATEDATA,...DIF_
1a40: 56 41 4c 49 44 41 54 45 44 52 49 56 45 52 2c 0d  VALIDATEDRIVER,.
1a50: 0a 09 44 49 46 5f 4d 4f 56 45 44 45 56 49 43 45  ..DIF_MOVEDEVICE
1a60: 2c 0d 0a 09 44 49 46 5f 44 45 54 45 43 54 2c 0d  ,...DIF_DETECT,.
1a70: 0a 09 44 49 46 5f 49 4e 53 54 41 4c 4c 57 49 5a  ..DIF_INSTALLWIZ
1a80: 41 52 44 2c 0d 0a 09 44 49 46 5f 44 45 53 54 52  ARD,...DIF_DESTR
1a90: 4f 59 57 49 5a 41 52 44 44 41 54 41 2c 0d 0a 09  OYWIZARDDATA,...
1aa0: 44 49 46 5f 50 52 4f 50 45 52 54 59 43 48 41 4e  DIF_PROPERTYCHAN
1ab0: 47 45 2c 0d 0a 09 44 49 46 5f 45 4e 41 42 4c 45  GE,...DIF_ENABLE
1ac0: 43 4c 41 53 53 2c 0d 0a 09 44 49 46 5f 44 45 54  CLASS,...DIF_DET
1ad0: 45 43 54 56 45 52 49 46 59 2c 0d 0a 09 44 49 46  ECTVERIFY,...DIF
1ae0: 5f 49 4e 53 54 41 4c 4c 44 45 56 49 43 45 46 49  _INSTALLDEVICEFI
1af0: 4c 45 53 2c 0d 0a 09 44 49 46 5f 55 4e 52 45 4d  LES,...DIF_UNREM
1b00: 4f 56 45 2c 0d 0a 09 44 49 46 5f 53 45 4c 45 43  OVE,...DIF_SELEC
1b10: 54 42 45 53 54 43 4f 4d 50 41 54 44 52 56 2c 0d  TBESTCOMPATDRV,.
1b20: 0a 09 44 49 46 5f 41 4c 4c 4f 57 5f 49 4e 53 54  ..DIF_ALLOW_INST
1b30: 41 4c 4c 2c 0d 0a 09 44 49 46 5f 52 45 47 49 53  ALL,...DIF_REGIS
1b40: 54 45 52 44 45 56 49 43 45 2c 0d 0a 09 44 49 46  TERDEVICE,...DIF
1b50: 5f 4e 45 57 44 45 56 49 43 45 57 49 5a 41 52 44  _NEWDEVICEWIZARD
1b60: 5f 50 52 45 53 45 4c 45 43 54 2c 0d 0a 09 44 49  _PRESELECT,...DI
1b70: 46 5f 4e 45 57 44 45 56 49 43 45 57 49 5a 41 52  F_NEWDEVICEWIZAR
1b80: 44 5f 53 45 4c 45 43 54 2c 0d 0a 09 44 49 46 5f  D_SELECT,...DIF_
1b90: 4e 45 57 44 45 56 49 43 45 57 49 5a 41 52 44 5f  NEWDEVICEWIZARD_
1ba0: 50 52 45 41 4e 41 4c 59 5a 45 2c 0d 0a 09 44 49  PREANALYZE,...DI
1bb0: 46 5f 4e 45 57 44 45 56 49 43 45 57 49 5a 41 52  F_NEWDEVICEWIZAR
1bc0: 44 5f 50 4f 53 54 41 4e 41 4c 59 5a 45 2c 0d 0a  D_POSTANALYZE,..
1bd0: 09 44 49 46 5f 4e 45 57 44 45 56 49 43 45 57 49  .DIF_NEWDEVICEWI
1be0: 5a 41 52 44 5f 46 49 4e 49 53 48 49 4e 53 54 41  ZARD_FINISHINSTA
1bf0: 4c 4c 2c 0d 0a 09 44 49 46 5f 55 4e 55 53 45 44  LL,...DIF_UNUSED
1c00: 31 2c 0d 0a 09 44 49 46 5f 49 4e 53 54 41 4c 4c  1,...DIF_INSTALL
1c10: 49 4e 54 45 52 46 41 43 45 53 2c 0d 0a 09 44 49  INTERFACES,...DI
1c20: 46 5f 44 45 54 45 43 54 43 41 4e 43 45 4c 2c 0d  F_DETECTCANCEL,.
1c30: 0a 09 44 49 46 5f 52 45 47 49 53 54 45 52 5f 43  ..DIF_REGISTER_C
1c40: 4f 49 4e 53 54 41 4c 4c 45 52 53 2c 0d 0a 09 44  OINSTALLERS,...D
1c50: 49 46 5f 41 44 44 50 52 4f 50 45 52 54 59 50 41  IF_ADDPROPERTYPA
1c60: 47 45 5f 41 44 56 41 4e 43 45 44 2c 0d 0a 09 44  GE_ADVANCED,...D
1c70: 49 46 5f 41 44 44 50 52 4f 50 45 52 54 59 50 41  IF_ADDPROPERTYPA
1c80: 47 45 5f 42 41 53 49 43 2c 0d 0a 09 44 49 46 5f  GE_BASIC,...DIF_
1c90: 52 45 53 45 52 56 45 44 31 2c 0d 0a 09 44 49 46  RESERVED1,...DIF
1ca0: 5f 54 52 4f 55 42 4c 45 53 48 4f 4f 54 45 52 2c  _TROUBLESHOOTER,
1cb0: 0d 0a 09 44 49 46 5f 50 4f 57 45 52 4d 45 53 53  ...DIF_POWERMESS
1cc0: 41 47 45 57 41 4b 45 20 2f 2f 20 3d 20 33 39 0d  AGEWAKE // = 39.
1cd0: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f  .}....enum : DWO
1ce0: 52 44 20 7b 0d 0a 09 44 49 47 43 46 5f 44 45 46  RD {...DIGCF_DEF
1cf0: 41 55 4c 54 20 20 20 20 20 20 20 20 20 3d 20 30  AULT         = 0
1d00: 78 30 30 30 30 30 30 30 31 2c 0d 0a 09 44 49 47  x00000001,...DIG
1d10: 43 46 5f 50 52 45 53 45 4e 54 20 20 20 20 20 20  CF_PRESENT      
1d20: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 32 2c     = 0x00000002,
1d30: 0d 0a 09 44 49 47 43 46 5f 41 4c 4c 43 4c 41 53  ...DIGCF_ALLCLAS
1d40: 53 45 53 20 20 20 20 20 20 3d 20 30 78 30 30 30  SES      = 0x000
1d50: 30 30 30 30 34 2c 0d 0a 09 44 49 47 43 46 5f 50  00004,...DIGCF_P
1d60: 52 4f 46 49 4c 45 20 20 20 20 20 20 20 20 20 3d  ROFILE         =
1d70: 20 30 78 30 30 30 30 30 30 30 38 2c 0d 0a 09 44   0x00000008,...D
1d80: 49 47 43 46 5f 44 45 56 49 43 45 49 4e 54 45 52  IGCF_DEVICEINTER
1d90: 46 41 43 45 20 3d 20 30 78 30 30 30 30 30 30 31  FACE = 0x0000001
1da0: 30 0d 0a 7d 0d 0a 0d 0a 64 65 70 72 65 63 61 74  0..}....deprecat
1db0: 65 64 20 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20  ed enum : DWORD 
1dc0: 7b 0d 0a 09 44 49 47 43 46 5f 49 4e 54 45 52 46  {...DIGCF_INTERF
1dd0: 41 43 45 44 45 56 49 43 45 20 3d 20 44 49 47 43  ACEDEVICE = DIGC
1de0: 46 5f 44 45 56 49 43 45 49 4e 54 45 52 46 41 43  F_DEVICEINTERFAC
1df0: 45 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44  E..}....enum : D
1e00: 57 4f 52 44 20 7b 0d 0a 09 44 49 47 43 44 50 5f  WORD {...DIGCDP_
1e10: 46 4c 41 47 5f 42 41 53 49 43 20 20 20 20 3d 20  FLAG_BASIC    = 
1e20: 30 78 30 30 30 30 30 30 30 31 2c 0d 0a 09 44 49  0x00000001,...DI
1e30: 47 43 44 50 5f 46 4c 41 47 5f 41 44 56 41 4e 43  GCDP_FLAG_ADVANC
1e40: 45 44 20 3d 20 30 78 30 30 30 30 30 30 30 32 0d  ED = 0x00000002.
1e50: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f  .}....enum : DWO
1e60: 52 44 20 7b 0d 0a 09 44 49 4f 43 52 5f 49 4e 53  RD {...DIOCR_INS
1e70: 54 41 4c 4c 45 52 20 3d 20 30 78 30 30 30 30 30  TALLER = 0x00000
1e80: 30 30 31 2c 0d 0a 09 44 49 4f 43 52 5f 49 4e 54  001,...DIOCR_INT
1e90: 45 52 46 41 43 45 20 3d 20 30 78 30 30 30 30 30  ERFACE = 0x00000
1ea0: 30 30 32 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a  002..}....enum :
1eb0: 20 44 57 4f 52 44 20 7b 0d 0a 09 44 49 4f 44 49   DWORD {...DIODI
1ec0: 5f 4e 4f 5f 41 44 44 20 3d 20 30 78 30 30 30 30  _NO_ADD = 0x0000
1ed0: 30 30 30 31 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20  0001..}....enum 
1ee0: 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 44 49 4f 44  : DWORD {...DIOD
1ef0: 5f 49 4e 48 45 52 49 54 5f 43 4c 41 53 53 44 52  _INHERIT_CLASSDR
1f00: 56 53 20 3d 20 30 78 30 30 30 30 30 30 30 32 2c  VS = 0x00000002,
1f10: 0d 0a 09 44 49 4f 44 5f 43 41 4e 43 45 4c 5f 52  ...DIOD_CANCEL_R
1f20: 45 4d 4f 56 45 20 20 20 20 20 3d 20 30 78 30 30  EMOVE     = 0x00
1f30: 30 30 30 30 30 34 0d 0a 7d 0d 0a 0d 0a 65 6e 75  000004..}....enu
1f40: 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 44 49  m : DWORD {...DI
1f50: 52 45 47 5f 44 45 56 20 20 3d 20 30 78 30 30 30  REG_DEV  = 0x000
1f60: 30 30 30 30 31 2c 0d 0a 09 44 49 52 45 47 5f 44  00001,...DIREG_D
1f70: 52 56 20 20 3d 20 30 78 30 30 30 30 30 30 30 32  RV  = 0x00000002
1f80: 2c 0d 0a 09 44 49 52 45 47 5f 42 4f 54 48 20 3d  ,...DIREG_BOTH =
1f90: 20 30 78 30 30 30 30 30 30 30 34 0d 0a 7d 0d 0a   0x00000004..}..
1fa0: 0d 0a 65 6e 75 6d 20 3a 20 69 6e 74 20 7b 0d 0a  ..enum : int {..
1fb0: 09 44 49 52 49 44 5f 41 42 53 4f 4c 55 54 45 20  .DIRID_ABSOLUTE 
1fc0: 20 20 20 20 20 20 3d 20 2d 31 2c 0d 0a 09 44 49        = -1,...DI
1fd0: 52 49 44 5f 4e 55 4c 4c 20 20 20 20 20 20 20 20  RID_NULL        
1fe0: 20 20 20 3d 20 30 2c 0d 0a 09 44 49 52 49 44 5f     = 0,...DIRID_
1ff0: 53 52 43 50 41 54 48 20 20 20 20 20 20 20 20 3d  SRCPATH        =
2000: 20 31 2c 0d 0a 09 44 49 52 49 44 5f 57 49 4e 44   1,...DIRID_WIND
2010: 4f 57 53 20 20 20 20 20 20 20 20 3d 20 31 30 2c  OWS        = 10,
2020: 0d 0a 09 44 49 52 49 44 5f 53 59 53 54 45 4d 20  ...DIRID_SYSTEM 
2030: 20 20 20 20 20 20 20 20 3d 20 31 31 2c 0d 0a 09          = 11,...
2040: 44 49 52 49 44 5f 44 52 49 56 45 52 53 20 20 20  DIRID_DRIVERS   
2050: 20 20 20 20 20 3d 20 31 32 2c 0d 0a 09 44 49 52       = 12,...DIR
2060: 49 44 5f 49 4f 53 55 42 53 59 53 20 20 20 20 20  ID_IOSUBSYS     
2070: 20 20 3d 20 44 49 52 49 44 5f 44 52 49 56 45 52    = DIRID_DRIVER
2080: 53 2c 0d 0a 09 44 49 52 49 44 5f 49 4e 46 20 20  S,...DIRID_INF  
2090: 20 20 20 20 20 20 20 20 20 20 3d 20 31 37 2c 0d            = 17,.
20a0: 0a 09 44 49 52 49 44 5f 48 45 4c 50 20 20 20 20  ..DIRID_HELP    
20b0: 20 20 20 20 20 20 20 3d 20 31 38 2c 0d 0a 09 44         = 18,...D
20c0: 49 52 49 44 5f 46 4f 4e 54 53 20 20 20 20 20 20  IRID_FONTS      
20d0: 20 20 20 20 3d 20 32 30 2c 0d 0a 09 44 49 52 49      = 20,...DIRI
20e0: 44 5f 56 49 45 57 45 52 53 20 20 20 20 20 20 20  D_VIEWERS       
20f0: 20 3d 20 32 31 2c 0d 0a 09 44 49 52 49 44 5f 43   = 21,...DIRID_C
2100: 4f 4c 4f 52 20 20 20 20 20 20 20 20 20 20 3d 20  OLOR          = 
2110: 32 33 2c 0d 0a 09 44 49 52 49 44 5f 41 50 50 53  23,...DIRID_APPS
2120: 20 20 20 20 20 20 20 20 20 20 20 3d 20 32 34 2c             = 24,
2130: 0d 0a 09 44 49 52 49 44 5f 53 48 41 52 45 44 20  ...DIRID_SHARED 
2140: 20 20 20 20 20 20 20 20 3d 20 32 35 2c 0d 0a 09          = 25,...
2150: 44 49 52 49 44 5f 42 4f 4f 54 20 20 20 20 20 20  DIRID_BOOT      
2160: 20 20 20 20 20 3d 20 33 30 2c 0d 0a 09 44 49 52       = 30,...DIR
2170: 49 44 5f 53 59 53 54 45 4d 31 36 20 20 20 20 20  ID_SYSTEM16     
2180: 20 20 3d 20 35 30 2c 0d 0a 09 44 49 52 49 44 5f    = 50,...DIRID_
2190: 53 50 4f 4f 4c 20 20 20 20 20 20 20 20 20 20 3d  SPOOL          =
21a0: 20 35 31 2c 0d 0a 09 44 49 52 49 44 5f 53 50 4f   51,...DIRID_SPO
21b0: 4f 4c 44 52 49 56 45 52 53 20 20 20 3d 20 35 32  OLDRIVERS   = 52
21c0: 2c 0d 0a 09 44 49 52 49 44 5f 55 53 45 52 50 52  ,...DIRID_USERPR
21d0: 4f 46 49 4c 45 20 20 20 20 3d 20 35 33 2c 0d 0a  OFILE    = 53,..
21e0: 09 44 49 52 49 44 5f 4c 4f 41 44 45 52 20 20 20  .DIRID_LOADER   
21f0: 20 20 20 20 20 20 3d 20 35 34 2c 0d 0a 09 44 49        = 54,...DI
2200: 52 49 44 5f 50 52 49 4e 54 50 52 4f 43 45 53 53  RID_PRINTPROCESS
2210: 4f 52 20 3d 20 35 35 2c 0d 0a 09 44 49 52 49 44  OR = 55,...DIRID
2220: 5f 44 45 46 41 55 4c 54 20 20 20 20 20 20 20 20  _DEFAULT        
2230: 3d 20 44 49 52 49 44 5f 53 59 53 54 45 4d 0d 0a  = DIRID_SYSTEM..
2240: 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 69 6e 74 20  }....enum : int 
2250: 7b 0d 0a 09 44 49 52 49 44 5f 43 4f 4d 4d 4f 4e  {...DIRID_COMMON
2260: 5f 53 54 41 52 54 4d 45 4e 55 20 20 20 20 20 20  _STARTMENU      
2270: 20 20 3d 20 31 36 34 30 36 2c 0d 0a 09 44 49 52    = 16406,...DIR
2280: 49 44 5f 43 4f 4d 4d 4f 4e 5f 50 52 4f 47 52 41  ID_COMMON_PROGRA
2290: 4d 53 20 20 20 20 20 20 20 20 20 3d 20 31 36 34  MS         = 164
22a0: 30 37 2c 0d 0a 09 44 49 52 49 44 5f 43 4f 4d 4d  07,...DIRID_COMM
22b0: 4f 4e 5f 53 54 41 52 54 55 50 20 20 20 20 20 20  ON_STARTUP      
22c0: 20 20 20 20 3d 20 31 36 34 30 38 2c 0d 0a 09 44      = 16408,...D
22d0: 49 52 49 44 5f 43 4f 4d 4d 4f 4e 5f 44 45 53 4b  IRID_COMMON_DESK
22e0: 54 4f 50 44 49 52 45 43 54 4f 52 59 20 3d 20 31  TOPDIRECTORY = 1
22f0: 36 34 30 39 2c 0d 0a 09 44 49 52 49 44 5f 43 4f  6409,...DIRID_CO
2300: 4d 4d 4f 4e 5f 46 41 56 4f 52 49 54 45 53 20 20  MMON_FAVORITES  
2310: 20 20 20 20 20 20 3d 20 31 36 34 31 35 2c 0d 0a        = 16415,..
2320: 09 44 49 52 49 44 5f 43 4f 4d 4d 4f 4e 5f 41 50  .DIRID_COMMON_AP
2330: 50 44 41 54 41 20 20 20 20 20 20 20 20 20 20 3d  PDATA          =
2340: 20 31 36 34 31 39 2c 0d 0a 09 44 49 52 49 44 5f   16419,...DIRID_
2350: 50 52 4f 47 52 41 4d 5f 46 49 4c 45 53 20 20 20  PROGRAM_FILES   
2360: 20 20 20 20 20 20 20 20 3d 20 31 36 34 32 32 2c          = 16422,
2370: 0d 0a 09 44 49 52 49 44 5f 53 59 53 54 45 4d 5f  ...DIRID_SYSTEM_
2380: 58 38 36 20 20 20 20 20 20 20 20 20 20 20 20 20  X86             
2390: 20 3d 20 31 36 34 32 35 2c 0d 0a 09 44 49 52 49   = 16425,...DIRI
23a0: 44 5f 50 52 4f 47 52 41 4d 5f 46 49 4c 45 53 5f  D_PROGRAM_FILES_
23b0: 58 38 36 20 20 20 20 20 20 20 3d 20 31 36 34 32  X86       = 1642
23c0: 36 2c 0d 0a 09 44 49 52 49 44 5f 50 52 4f 47 52  6,...DIRID_PROGR
23d0: 41 4d 5f 46 49 4c 45 53 5f 43 4f 4d 4d 4f 4e 20  AM_FILES_COMMON 
23e0: 20 20 20 3d 20 31 36 34 32 37 2c 0d 0a 09 44 49     = 16427,...DI
23f0: 52 49 44 5f 50 52 4f 47 52 41 4d 5f 46 49 4c 45  RID_PROGRAM_FILE
2400: 53 5f 43 4f 4d 4d 4f 4e 58 38 36 20 3d 20 31 36  S_COMMONX86 = 16
2410: 34 32 38 2c 0d 0a 09 44 49 52 49 44 5f 43 4f 4d  428,...DIRID_COM
2420: 4d 4f 4e 5f 54 45 4d 50 4c 41 54 45 53 20 20 20  MON_TEMPLATES   
2430: 20 20 20 20 20 3d 20 31 36 34 32 39 2c 0d 0a 09       = 16429,...
2440: 44 49 52 49 44 5f 43 4f 4d 4d 4f 4e 5f 44 4f 43  DIRID_COMMON_DOC
2450: 55 4d 45 4e 54 53 20 20 20 20 20 20 20 20 3d 20  UMENTS        = 
2460: 31 36 34 33 30 2c 0d 0a 09 44 49 52 49 44 5f 55  16430,...DIRID_U
2470: 53 45 52 20 20 20 20 20 20 20 20 20 20 20 20 20  SER             
2480: 20 20 20 20 20 20 20 3d 20 30 78 38 30 30 30 2c         = 0x8000,
2490: 0d 0a 09 44 49 52 49 44 5f 41 42 53 4f 4c 55 54  ...DIRID_ABSOLUT
24a0: 45 5f 31 36 42 49 54 20 20 20 20 20 20 20 20 20  E_16BIT         
24b0: 20 3d 20 30 78 66 66 66 66 0d 0a 7d 0d 0a 0d 0a   = 0xffff..}....
24c0: 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a  enum : DWORD {..
24d0: 09 44 4d 49 5f 4d 41 53 4b 20 20 20 20 3d 20 30  .DMI_MASK    = 0
24e0: 78 30 30 30 30 30 30 30 31 2c 0d 0a 09 44 4d 49  x00000001,...DMI
24f0: 5f 42 4b 43 4f 4c 4f 52 20 3d 20 30 78 30 30 30  _BKCOLOR = 0x000
2500: 30 30 30 30 32 2c 0d 0a 09 44 4d 49 5f 55 53 45  00002,...DMI_USE
2510: 52 45 43 54 20 3d 20 30 78 30 30 30 30 30 30 30  RECT = 0x0000000
2520: 34 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44  4..}....enum : D
2530: 57 4f 52 44 20 7b 0d 0a 09 44 4e 46 5f 44 55 50  WORD {...DNF_DUP
2540: 44 45 53 43 20 20 20 20 20 20 20 20 20 20 20 3d  DESC           =
2550: 20 30 78 30 30 30 30 30 30 30 31 2c 0d 0a 09 44   0x00000001,...D
2560: 4e 46 5f 4f 4c 44 44 52 49 56 45 52 20 20 20 20  NF_OLDDRIVER    
2570: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30       = 0x0000000
2580: 32 2c 0d 0a 09 44 4e 46 5f 45 58 43 4c 55 44 45  2,...DNF_EXCLUDE
2590: 46 52 4f 4d 4c 49 53 54 20 20 20 3d 20 30 78 30  FROMLIST   = 0x0
25a0: 30 30 30 30 30 30 34 2c 0d 0a 09 44 4e 46 5f 4e  0000004,...DNF_N
25b0: 4f 44 52 49 56 45 52 20 20 20 20 20 20 20 20 20  ODRIVER         
25c0: 20 3d 20 30 78 30 30 30 30 30 30 30 38 2c 0d 0a   = 0x00000008,..
25d0: 09 44 4e 46 5f 4c 45 47 41 43 59 49 4e 46 20 20  .DNF_LEGACYINF  
25e0: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30         = 0x00000
25f0: 30 31 30 2c 0d 0a 09 44 4e 46 5f 43 4c 41 53 53  010,...DNF_CLASS
2600: 5f 44 52 49 56 45 52 20 20 20 20 20 20 3d 20 30  _DRIVER      = 0
2610: 78 30 30 30 30 30 30 32 30 2c 0d 0a 09 44 4e 46  x00000020,...DNF
2620: 5f 43 4f 4d 50 41 54 49 42 4c 45 5f 44 52 49 56  _COMPATIBLE_DRIV
2630: 45 52 20 3d 20 30 78 30 30 30 30 30 30 34 30 2c  ER = 0x00000040,
2640: 0d 0a 09 44 4e 46 5f 49 4e 45 54 5f 44 52 49 56  ...DNF_INET_DRIV
2650: 45 52 20 20 20 20 20 20 20 3d 20 30 78 30 30 30  ER       = 0x000
2660: 30 30 30 38 30 2c 0d 0a 09 44 4e 46 5f 55 4e 55  00080,...DNF_UNU
2670: 53 45 44 31 20 20 20 20 20 20 20 20 20 20 20 3d  SED1           =
2680: 20 30 78 30 30 30 30 30 31 30 30 2c 0d 0a 09 44   0x00000100,...D
2690: 4e 46 5f 49 4e 44 45 58 45 44 5f 44 52 49 56 45  NF_INDEXED_DRIVE
26a0: 52 20 20 20 20 3d 20 30 78 30 30 30 30 30 32 30  R    = 0x0000020
26b0: 30 2c 0d 0a 09 44 4e 46 5f 4f 4c 44 5f 49 4e 45  0,...DNF_OLD_INE
26c0: 54 5f 44 52 49 56 45 52 20 20 20 3d 20 30 78 30  T_DRIVER   = 0x0
26d0: 30 30 30 30 34 30 30 2c 0d 0a 09 44 4e 46 5f 42  0000400,...DNF_B
26e0: 41 44 5f 44 52 49 56 45 52 20 20 20 20 20 20 20  AD_DRIVER       
26f0: 20 3d 20 30 78 30 30 30 30 30 38 30 30 2c 0d 0a   = 0x00000800,..
2700: 09 44 4e 46 5f 44 55 50 50 52 4f 56 49 44 45 52  .DNF_DUPPROVIDER
2710: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 31         = 0x00001
2720: 30 30 30 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a  000..}....enum :
2730: 20 55 49 4e 54 20 7b 0d 0a 09 44 50 52 4f 4d 50   UINT {...DPROMP
2740: 54 5f 53 55 43 43 45 53 53 2c 0d 0a 09 44 50 52  T_SUCCESS,...DPR
2750: 4f 4d 50 54 5f 43 41 4e 43 45 4c 2c 0d 0a 09 44  OMPT_CANCEL,...D
2760: 50 52 4f 4d 50 54 5f 53 4b 49 50 46 49 4c 45 2c  PROMPT_SKIPFILE,
2770: 0d 0a 09 44 50 52 4f 4d 50 54 5f 42 55 46 46 45  ...DPROMPT_BUFFE
2780: 52 54 4f 4f 53 4d 41 4c 4c 2c 0d 0a 09 44 50 52  RTOOSMALL,...DPR
2790: 4f 4d 50 54 5f 4f 55 54 4f 46 4d 45 4d 4f 52 59  OMPT_OUTOFMEMORY
27a0: 20 2f 2f 20 3d 20 34 0d 0a 7d 0d 0a 0d 0a 65 6e   // = 4..}....en
27b0: 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 44  um : DWORD {...D
27c0: 52 49 56 45 52 5f 48 41 52 44 57 41 52 45 49 44  RIVER_HARDWAREID
27d0: 5f 52 41 4e 4b 20 20 20 20 20 20 20 20 20 20 20  _RANK           
27e0: 20 20 3d 20 30 78 30 30 30 30 30 46 46 46 2c 0d    = 0x00000FFF,.
27f0: 0a 09 44 52 49 56 45 52 5f 43 4f 4d 50 41 54 49  ..DRIVER_COMPATI
2800: 44 5f 52 41 4e 4b 20 20 20 20 20 20 20 20 20 20  D_RANK          
2810: 20 20 20 20 20 3d 20 30 78 30 30 30 30 33 46 46       = 0x00003FF
2820: 46 2c 0d 0a 09 44 52 49 56 45 52 5f 55 4e 54 52  F,...DRIVER_UNTR
2830: 55 53 54 45 44 5f 52 41 4e 4b 20 20 20 20 20 20  USTED_RANK      
2840: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30          = 0x0000
2850: 38 30 30 30 2c 0d 0a 09 44 52 49 56 45 52 5f 55  8000,...DRIVER_U
2860: 4e 54 52 55 53 54 45 44 5f 48 41 52 44 57 41 52  NTRUSTED_HARDWAR
2870: 45 49 44 5f 52 41 4e 4b 20 20 20 3d 20 30 78 30  EID_RANK   = 0x0
2880: 30 30 30 38 46 46 46 2c 0d 0a 09 44 52 49 56 45  0008FFF,...DRIVE
2890: 52 5f 55 4e 54 52 55 53 54 45 44 5f 43 4f 4d 50  R_UNTRUSTED_COMP
28a0: 41 54 49 44 5f 52 41 4e 4b 20 20 20 20 20 3d 20  ATID_RANK     = 
28b0: 30 78 30 30 30 30 42 46 46 46 2c 0d 0a 09 44 52  0x0000BFFF,...DR
28c0: 49 56 45 52 5f 57 39 58 5f 53 55 53 50 45 43 54  IVER_W9X_SUSPECT
28d0: 5f 52 41 4e 4b 20 20 20 20 20 20 20 20 20 20 20  _RANK           
28e0: 20 3d 20 30 78 30 30 30 30 43 30 30 30 2c 0d 0a   = 0x0000C000,..
28f0: 09 44 52 49 56 45 52 5f 57 39 58 5f 53 55 53 50  .DRIVER_W9X_SUSP
2900: 45 43 54 5f 48 41 52 44 57 41 52 45 49 44 5f 52  ECT_HARDWAREID_R
2910: 41 4e 4b 20 3d 20 30 78 30 30 30 30 43 46 46 46  ANK = 0x0000CFFF
2920: 2c 0d 0a 09 44 52 49 56 45 52 5f 57 39 58 5f 53  ,...DRIVER_W9X_S
2930: 55 53 50 45 43 54 5f 43 4f 4d 50 41 54 49 44 5f  USPECT_COMPATID_
2940: 52 41 4e 4b 20 20 20 3d 20 30 78 30 30 30 30 46  RANK   = 0x0000F
2950: 46 46 46 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a  FFF..}....enum :
2960: 20 44 57 4f 52 44 20 7b 0d 0a 09 44 59 4e 41 57   DWORD {...DYNAW
2970: 49 5a 5f 46 4c 41 47 5f 50 41 47 45 53 41 44 44  IZ_FLAG_PAGESADD
2980: 45 44 20 20 20 20 20 20 20 20 20 20 20 20 20 3d  ED             =
2990: 20 30 78 30 30 30 30 30 30 30 31 2c 0d 0a 09 44   0x00000001,...D
29a0: 59 4e 41 57 49 5a 5f 46 4c 41 47 5f 49 4e 53 54  YNAWIZ_FLAG_INST
29b0: 41 4c 4c 44 45 54 5f 4e 45 58 54 20 20 20 20 20  ALLDET_NEXT     
29c0: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 32 2c     = 0x00000002,
29d0: 0d 0a 09 44 59 4e 41 57 49 5a 5f 46 4c 41 47 5f  ...DYNAWIZ_FLAG_
29e0: 49 4e 53 54 41 4c 4c 44 45 54 5f 50 52 45 56 20  INSTALLDET_PREV 
29f0: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30         = 0x00000
2a00: 30 30 34 2c 0d 0a 09 44 59 4e 41 57 49 5a 5f 46  004,...DYNAWIZ_F
2a10: 4c 41 47 5f 41 4e 41 4c 59 5a 45 5f 48 41 4e 44  LAG_ANALYZE_HAND
2a20: 4c 45 43 4f 4e 46 4c 49 43 54 20 3d 20 30 78 30  LECONFLICT = 0x0
2a30: 30 30 30 30 30 30 38 0d 0a 7d 0d 0a 0d 0a 65 6e  0000008..}....en
2a40: 75 6d 20 3a 20 57 4f 52 44 20 7b 0d 0a 09 45 4e  um : WORD {...EN
2a50: 41 42 4c 45 43 4c 41 53 53 5f 51 55 45 52 59 2c  ABLECLASS_QUERY,
2a60: 0d 0a 09 45 4e 41 42 4c 45 43 4c 41 53 53 5f 53  ...ENABLECLASS_S
2a70: 55 43 43 45 53 53 2c 0d 0a 09 45 4e 41 42 4c 45  UCCESS,...ENABLE
2a80: 43 4c 41 53 53 5f 46 41 49 4c 55 52 45 20 2f 2f  CLASS_FAILURE //
2a90: 20 3d 20 32 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20   = 2..}....enum 
2aa0: 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 45 52 52 4f  : DWORD {...ERRO
2ab0: 52 5f 45 58 50 45 43 54 45 44 5f 53 45 43 54 49  R_EXPECTED_SECTI
2ac0: 4f 4e 5f 4e 41 4d 45 20 20 20 20 20 20 20 3d 20  ON_NAME       = 
2ad0: 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f  APPLICATION_ERRO
2ae0: 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53  R_MASK | ERROR_S
2af0: 45 56 45 52 49 54 59 5f 45 52 52 4f 52 20 7c 20  EVERITY_ERROR | 
2b00: 30 2c 0d 0a 09 45 52 52 4f 52 5f 42 41 44 5f 53  0,...ERROR_BAD_S
2b10: 45 43 54 49 4f 4e 5f 4e 41 4d 45 5f 4c 49 4e 45  ECTION_NAME_LINE
2b20: 20 20 20 20 20 20 20 3d 20 41 50 50 4c 49 43 41         = APPLICA
2b30: 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20  TION_ERROR_MASK 
2b40: 7c 20 45 52 52 4f 52 5f 53 45 56 45 52 49 54 59  | ERROR_SEVERITY
2b50: 5f 45 52 52 4f 52 20 7c 20 31 2c 0d 0a 09 45 52  _ERROR | 1,...ER
2b60: 52 4f 52 5f 53 45 43 54 49 4f 4e 5f 4e 41 4d 45  ROR_SECTION_NAME
2b70: 5f 54 4f 4f 5f 4c 4f 4e 47 20 20 20 20 20 20 20  _TOO_LONG       
2b80: 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52  = APPLICATION_ER
2b90: 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52  ROR_MASK | ERROR
2ba0: 5f 53 45 56 45 52 49 54 59 5f 45 52 52 4f 52 20  _SEVERITY_ERROR 
2bb0: 7c 20 32 2c 0d 0a 09 45 52 52 4f 52 5f 47 45 4e  | 2,...ERROR_GEN
2bc0: 45 52 41 4c 5f 53 59 4e 54 41 58 20 20 20 20 20  ERAL_SYNTAX     
2bd0: 20 20 20 20 20 20 20 20 20 3d 20 41 50 50 4c 49           = APPLI
2be0: 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53  CATION_ERROR_MAS
2bf0: 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56 45 52 49  K | ERROR_SEVERI
2c00: 54 59 5f 45 52 52 4f 52 20 7c 20 33 2c 0d 0a 09  TY_ERROR | 3,...
2c10: 45 52 52 4f 52 5f 57 52 4f 4e 47 5f 49 4e 46 5f  ERROR_WRONG_INF_
2c20: 53 54 59 4c 45 20 20 20 20 20 20 20 20 20 20 20  STYLE           
2c30: 20 20 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f    = APPLICATION_
2c40: 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52  ERROR_MASK | ERR
2c50: 4f 52 5f 53 45 56 45 52 49 54 59 5f 45 52 52 4f  OR_SEVERITY_ERRO
2c60: 52 20 7c 20 30 78 31 30 30 2c 0d 0a 09 45 52 52  R | 0x100,...ERR
2c70: 4f 52 5f 4e 4f 54 5f 49 4e 53 54 41 4c 4c 45 44  OR_NOT_INSTALLED
2c80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d                 =
2c90: 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52   APPLICATION_ERR
2ca0: 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f  OR_MASK | ERROR_
2cb0: 53 45 56 45 52 49 54 59 5f 45 52 52 4f 52 20 7c  SEVERITY_ERROR |
2cc0: 20 30 78 31 30 30 30 2c 0d 0a 09 45 52 52 4f 52   0x1000,...ERROR
2cd0: 5f 53 45 43 54 49 4f 4e 5f 4e 4f 54 5f 46 4f 55  _SECTION_NOT_FOU
2ce0: 4e 44 20 20 20 20 20 20 20 20 20 20 20 3d 20 41  ND           = A
2cf0: 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52  PPLICATION_ERROR
2d00: 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45  _MASK | ERROR_SE
2d10: 56 45 52 49 54 59 5f 45 52 52 4f 52 20 7c 20 30  VERITY_ERROR | 0
2d20: 78 31 30 31 2c 0d 0a 09 45 52 52 4f 52 5f 4c 49  x101,...ERROR_LI
2d30: 4e 45 5f 4e 4f 54 5f 46 4f 55 4e 44 20 20 20 20  NE_NOT_FOUND    
2d40: 20 20 20 20 20 20 20 20 20 20 3d 20 41 50 50 4c            = APPL
2d50: 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41  ICATION_ERROR_MA
2d60: 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56 45 52  SK | ERROR_SEVER
2d70: 49 54 59 5f 45 52 52 4f 52 20 7c 20 30 78 31 30  ITY_ERROR | 0x10
2d80: 32 2c 0d 0a 09 45 52 52 4f 52 5f 4e 4f 5f 42 41  2,...ERROR_NO_BA
2d90: 43 4b 55 50 20 20 20 20 20 20 20 20 20 20 20 20  CKUP            
2da0: 20 20 20 20 20 20 20 3d 20 41 50 50 4c 49 43 41         = APPLICA
2db0: 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20  TION_ERROR_MASK 
2dc0: 7c 20 45 52 52 4f 52 5f 53 45 56 45 52 49 54 59  | ERROR_SEVERITY
2dd0: 5f 45 52 52 4f 52 20 7c 20 30 78 31 30 33 2c 0d  _ERROR | 0x103,.
2de0: 0a 09 45 52 52 4f 52 5f 4e 4f 5f 41 53 53 4f 43  ..ERROR_NO_ASSOC
2df0: 49 41 54 45 44 5f 43 4c 41 53 53 20 20 20 20 20  IATED_CLASS     
2e00: 20 20 20 20 3d 20 41 50 50 4c 49 43 41 54 49 4f      = APPLICATIO
2e10: 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45  N_ERROR_MASK | E
2e20: 52 52 4f 52 5f 53 45 56 45 52 49 54 59 5f 45 52  RROR_SEVERITY_ER
2e30: 52 4f 52 20 7c 20 30 78 32 30 30 2c 0d 0a 09 45  ROR | 0x200,...E
2e40: 52 52 4f 52 5f 43 4c 41 53 53 5f 4d 49 53 4d 41  RROR_CLASS_MISMA
2e50: 54 43 48 20 20 20 20 20 20 20 20 20 20 20 20 20  TCH             
2e60: 20 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45   = APPLICATION_E
2e70: 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f  RROR_MASK | ERRO
2e80: 52 5f 53 45 56 45 52 49 54 59 5f 45 52 52 4f 52  R_SEVERITY_ERROR
2e90: 20 7c 20 30 78 32 30 31 2c 0d 0a 09 45 52 52 4f   | 0x201,...ERRO
2ea0: 52 5f 44 55 50 4c 49 43 41 54 45 5f 46 4f 55 4e  R_DUPLICATE_FOUN
2eb0: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  D             = 
2ec0: 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f  APPLICATION_ERRO
2ed0: 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53  R_MASK | ERROR_S
2ee0: 45 56 45 52 49 54 59 5f 45 52 52 4f 52 20 7c 20  EVERITY_ERROR | 
2ef0: 30 78 32 30 32 2c 0d 0a 09 45 52 52 4f 52 5f 4e  0x202,...ERROR_N
2f00: 4f 5f 44 52 49 56 45 52 5f 53 45 4c 45 43 54 45  O_DRIVER_SELECTE
2f10: 44 20 20 20 20 20 20 20 20 20 20 3d 20 41 50 50  D          = APP
2f20: 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d  LICATION_ERROR_M
2f30: 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56 45  ASK | ERROR_SEVE
2f40: 52 49 54 59 5f 45 52 52 4f 52 20 7c 20 30 78 32  RITY_ERROR | 0x2
2f50: 30 33 2c 0d 0a 09 45 52 52 4f 52 5f 4b 45 59 5f  03,...ERROR_KEY_
2f60: 44 4f 45 53 5f 4e 4f 54 5f 45 58 49 53 54 20 20  DOES_NOT_EXIST  
2f70: 20 20 20 20 20 20 20 20 3d 20 41 50 50 4c 49 43          = APPLIC
2f80: 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b  ATION_ERROR_MASK
2f90: 20 7c 20 45 52 52 4f 52 5f 53 45 56 45 52 49 54   | ERROR_SEVERIT
2fa0: 59 5f 45 52 52 4f 52 20 7c 20 30 78 32 30 34 2c  Y_ERROR | 0x204,
2fb0: 0d 0a 09 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44  ...ERROR_INVALID
2fc0: 5f 44 45 56 49 4e 53 54 5f 4e 41 4d 45 20 20 20  _DEVINST_NAME   
2fd0: 20 20 20 20 20 3d 20 41 50 50 4c 49 43 41 54 49       = APPLICATI
2fe0: 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20  ON_ERROR_MASK | 
2ff0: 45 52 52 4f 52 5f 53 45 56 45 52 49 54 59 5f 45  ERROR_SEVERITY_E
3000: 52 52 4f 52 20 7c 20 30 78 32 30 35 2c 0d 0a 09  RROR | 0x205,...
3010: 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 43 4c  ERROR_INVALID_CL
3020: 41 53 53 20 20 20 20 20 20 20 20 20 20 20 20 20  ASS             
3030: 20 20 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f    = APPLICATION_
3040: 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52  ERROR_MASK | ERR
3050: 4f 52 5f 53 45 56 45 52 49 54 59 5f 45 52 52 4f  OR_SEVERITY_ERRO
3060: 52 20 7c 20 30 78 32 30 36 2c 0d 0a 09 45 52 52  R | 0x206,...ERR
3070: 4f 52 5f 44 45 56 49 4e 53 54 5f 41 4c 52 45 41  OR_DEVINST_ALREA
3080: 44 59 5f 45 58 49 53 54 53 20 20 20 20 20 20 3d  DY_EXISTS      =
3090: 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52   APPLICATION_ERR
30a0: 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f  OR_MASK | ERROR_
30b0: 53 45 56 45 52 49 54 59 5f 45 52 52 4f 52 20 7c  SEVERITY_ERROR |
30c0: 20 30 78 32 30 37 2c 0d 0a 09 45 52 52 4f 52 5f   0x207,...ERROR_
30d0: 44 45 56 49 4e 46 4f 5f 4e 4f 54 5f 52 45 47 49  DEVINFO_NOT_REGI
30e0: 53 54 45 52 45 44 20 20 20 20 20 20 3d 20 41 50  STERED      = AP
30f0: 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f  PLICATION_ERROR_
3100: 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56  MASK | ERROR_SEV
3110: 45 52 49 54 59 5f 45 52 52 4f 52 20 7c 20 30 78  ERITY_ERROR | 0x
3120: 32 30 38 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 56  208,...ERROR_INV
3130: 41 4c 49 44 5f 52 45 47 5f 50 52 4f 50 45 52 54  ALID_REG_PROPERT
3140: 59 20 20 20 20 20 20 20 20 3d 20 41 50 50 4c 49  Y        = APPLI
3150: 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53  CATION_ERROR_MAS
3160: 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56 45 52 49  K | ERROR_SEVERI
3170: 54 59 5f 45 52 52 4f 52 20 7c 20 30 78 32 30 39  TY_ERROR | 0x209
3180: 2c 0d 0a 09 45 52 52 4f 52 5f 4e 4f 5f 49 4e 46  ,...ERROR_NO_INF
3190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
31a0: 20 20 20 20 20 20 3d 20 41 50 50 4c 49 43 41 54        = APPLICAT
31b0: 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20 7c  ION_ERROR_MASK |
31c0: 20 45 52 52 4f 52 5f 53 45 56 45 52 49 54 59 5f   ERROR_SEVERITY_
31d0: 45 52 52 4f 52 20 7c 20 30 78 32 30 41 2c 0d 0a  ERROR | 0x20A,..
31e0: 09 45 52 52 4f 52 5f 4e 4f 5f 53 55 43 48 5f 44  .ERROR_NO_SUCH_D
31f0: 45 56 49 4e 53 54 20 20 20 20 20 20 20 20 20 20  EVINST          
3200: 20 20 20 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e     = APPLICATION
3210: 5f 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52  _ERROR_MASK | ER
3220: 52 4f 52 5f 53 45 56 45 52 49 54 59 5f 45 52 52  ROR_SEVERITY_ERR
3230: 4f 52 20 7c 20 30 78 32 30 42 2c 0d 0a 09 45 52  OR | 0x20B,...ER
3240: 52 4f 52 5f 43 41 4e 54 5f 4c 4f 41 44 5f 43 4c  ROR_CANT_LOAD_CL
3250: 41 53 53 5f 49 43 4f 4e 20 20 20 20 20 20 20 20  ASS_ICON        
3260: 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52  = APPLICATION_ER
3270: 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52  ROR_MASK | ERROR
3280: 5f 53 45 56 45 52 49 54 59 5f 45 52 52 4f 52 20  _SEVERITY_ERROR 
3290: 7c 20 30 78 32 30 43 2c 0d 0a 09 45 52 52 4f 52  | 0x20C,...ERROR
32a0: 5f 49 4e 56 41 4c 49 44 5f 43 4c 41 53 53 5f 49  _INVALID_CLASS_I
32b0: 4e 53 54 41 4c 4c 45 52 20 20 20 20 20 3d 20 41  NSTALLER     = A
32c0: 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52  PPLICATION_ERROR
32d0: 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45  _MASK | ERROR_SE
32e0: 56 45 52 49 54 59 5f 45 52 52 4f 52 20 7c 20 30  VERITY_ERROR | 0
32f0: 78 32 30 44 2c 0d 0a 09 45 52 52 4f 52 5f 44 49  x20D,...ERROR_DI
3300: 5f 44 4f 5f 44 45 46 41 55 4c 54 20 20 20 20 20  _DO_DEFAULT     
3310: 20 20 20 20 20 20 20 20 20 20 3d 20 41 50 50 4c            = APPL
3320: 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41  ICATION_ERROR_MA
3330: 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56 45 52  SK | ERROR_SEVER
3340: 49 54 59 5f 45 52 52 4f 52 20 7c 20 30 78 32 30  ITY_ERROR | 0x20
3350: 45 2c 0d 0a 09 45 52 52 4f 52 5f 44 49 5f 4e 4f  E,...ERROR_DI_NO
3360: 46 49 4c 45 43 4f 50 59 20 20 20 20 20 20 20 20  FILECOPY        
3370: 20 20 20 20 20 20 20 3d 20 41 50 50 4c 49 43 41         = APPLICA
3380: 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20  TION_ERROR_MASK 
3390: 7c 20 45 52 52 4f 52 5f 53 45 56 45 52 49 54 59  | ERROR_SEVERITY
33a0: 5f 45 52 52 4f 52 20 7c 20 30 78 32 30 46 2c 0d  _ERROR | 0x20F,.
33b0: 0a 09 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f  ..ERROR_INVALID_
33c0: 48 57 50 52 4f 46 49 4c 45 20 20 20 20 20 20 20  HWPROFILE       
33d0: 20 20 20 20 3d 20 41 50 50 4c 49 43 41 54 49 4f      = APPLICATIO
33e0: 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45  N_ERROR_MASK | E
33f0: 52 52 4f 52 5f 53 45 56 45 52 49 54 59 5f 45 52  RROR_SEVERITY_ER
3400: 52 4f 52 20 7c 20 30 78 32 31 30 2c 0d 0a 09 45  ROR | 0x210,...E
3410: 52 52 4f 52 5f 4e 4f 5f 44 45 56 49 43 45 5f 53  RROR_NO_DEVICE_S
3420: 45 4c 45 43 54 45 44 20 20 20 20 20 20 20 20 20  ELECTED         
3430: 20 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45   = APPLICATION_E
3440: 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f  RROR_MASK | ERRO
3450: 52 5f 53 45 56 45 52 49 54 59 5f 45 52 52 4f 52  R_SEVERITY_ERROR
3460: 20 7c 20 30 78 32 31 31 2c 0d 0a 09 45 52 52 4f   | 0x211,...ERRO
3470: 52 5f 44 45 56 49 4e 46 4f 5f 4c 49 53 54 5f 4c  R_DEVINFO_LIST_L
3480: 4f 43 4b 45 44 20 20 20 20 20 20 20 20 20 3d 20  OCKED         = 
3490: 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f  APPLICATION_ERRO
34a0: 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53  R_MASK | ERROR_S
34b0: 45 56 45 52 49 54 59 5f 45 52 52 4f 52 20 7c 20  EVERITY_ERROR | 
34c0: 30 78 32 31 32 2c 0d 0a 09 45 52 52 4f 52 5f 44  0x212,...ERROR_D
34d0: 45 56 49 4e 46 4f 5f 44 41 54 41 5f 4c 4f 43 4b  EVINFO_DATA_LOCK
34e0: 45 44 20 20 20 20 20 20 20 20 20 3d 20 41 50 50  ED         = APP
34f0: 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d  LICATION_ERROR_M
3500: 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56 45  ASK | ERROR_SEVE
3510: 52 49 54 59 5f 45 52 52 4f 52 20 7c 20 30 78 32  RITY_ERROR | 0x2
3520: 31 33 2c 0d 0a 09 45 52 52 4f 52 5f 44 49 5f 42  13,...ERROR_DI_B
3530: 41 44 5f 50 41 54 48 20 20 20 20 20 20 20 20 20  AD_PATH         
3540: 20 20 20 20 20 20 20 20 3d 20 41 50 50 4c 49 43          = APPLIC
3550: 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b  ATION_ERROR_MASK
3560: 20 7c 20 45 52 52 4f 52 5f 53 45 56 45 52 49 54   | ERROR_SEVERIT
3570: 59 5f 45 52 52 4f 52 20 7c 20 30 78 32 31 34 2c  Y_ERROR | 0x214,
3580: 0d 0a 09 45 52 52 4f 52 5f 4e 4f 5f 43 4c 41 53  ...ERROR_NO_CLAS
3590: 53 49 4e 53 54 41 4c 4c 5f 50 41 52 41 4d 53 20  SINSTALL_PARAMS 
35a0: 20 20 20 20 20 3d 20 41 50 50 4c 49 43 41 54 49       = APPLICATI
35b0: 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20  ON_ERROR_MASK | 
35c0: 45 52 52 4f 52 5f 53 45 56 45 52 49 54 59 5f 45  ERROR_SEVERITY_E
35d0: 52 52 4f 52 20 7c 20 30 78 32 31 35 2c 0d 0a 09  RROR | 0x215,...
35e0: 45 52 52 4f 52 5f 46 49 4c 45 51 55 45 55 45 5f  ERROR_FILEQUEUE_
35f0: 4c 4f 43 4b 45 44 20 20 20 20 20 20 20 20 20 20  LOCKED          
3600: 20 20 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f    = APPLICATION_
3610: 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52  ERROR_MASK | ERR
3620: 4f 52 5f 53 45 56 45 52 49 54 59 5f 45 52 52 4f  OR_SEVERITY_ERRO
3630: 52 20 7c 20 30 78 32 31 36 2c 0d 0a 09 45 52 52  R | 0x216,...ERR
3640: 4f 52 5f 42 41 44 5f 53 45 52 56 49 43 45 5f 49  OR_BAD_SERVICE_I
3650: 4e 53 54 41 4c 4c 53 45 43 54 20 20 20 20 20 3d  NSTALLSECT     =
3660: 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52   APPLICATION_ERR
3670: 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f  OR_MASK | ERROR_
3680: 53 45 56 45 52 49 54 59 5f 45 52 52 4f 52 20 7c  SEVERITY_ERROR |
3690: 20 30 78 32 31 37 2c 0d 0a 09 45 52 52 4f 52 5f   0x217,...ERROR_
36a0: 4e 4f 5f 43 4c 41 53 53 5f 44 52 49 56 45 52 5f  NO_CLASS_DRIVER_
36b0: 4c 49 53 54 20 20 20 20 20 20 20 20 3d 20 41 50  LIST        = AP
36c0: 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f  PLICATION_ERROR_
36d0: 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56  MASK | ERROR_SEV
36e0: 45 52 49 54 59 5f 45 52 52 4f 52 20 7c 20 30 78  ERITY_ERROR | 0x
36f0: 32 31 38 2c 0d 0a 09 45 52 52 4f 52 5f 4e 4f 5f  218,...ERROR_NO_
3700: 41 53 53 4f 43 49 41 54 45 44 5f 53 45 52 56 49  ASSOCIATED_SERVI
3710: 43 45 20 20 20 20 20 20 20 3d 20 41 50 50 4c 49  CE       = APPLI
3720: 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53  CATION_ERROR_MAS
3730: 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56 45 52 49  K | ERROR_SEVERI
3740: 54 59 5f 45 52 52 4f 52 20 7c 20 30 78 32 31 39  TY_ERROR | 0x219
3750: 2c 0d 0a 09 45 52 52 4f 52 5f 4e 4f 5f 44 45 46  ,...ERROR_NO_DEF
3760: 41 55 4c 54 5f 44 45 56 49 43 45 5f 49 4e 54 45  AULT_DEVICE_INTE
3770: 52 46 41 43 45 20 3d 20 41 50 50 4c 49 43 41 54  RFACE = APPLICAT
3780: 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20 7c  ION_ERROR_MASK |
3790: 20 45 52 52 4f 52 5f 53 45 56 45 52 49 54 59 5f   ERROR_SEVERITY_
37a0: 45 52 52 4f 52 20 7c 20 30 78 32 31 41 2c 0d 0a  ERROR | 0x21A,..
37b0: 09 45 52 52 4f 52 5f 44 45 56 49 43 45 5f 49 4e  .ERROR_DEVICE_IN
37c0: 54 45 52 46 41 43 45 5f 41 43 54 49 56 45 20 20  TERFACE_ACTIVE  
37d0: 20 20 20 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e     = APPLICATION
37e0: 5f 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52  _ERROR_MASK | ER
37f0: 52 4f 52 5f 53 45 56 45 52 49 54 59 5f 45 52 52  ROR_SEVERITY_ERR
3800: 4f 52 20 7c 20 30 78 32 31 42 2c 0d 0a 09 45 52  OR | 0x21B,...ER
3810: 52 4f 52 5f 44 45 56 49 43 45 5f 49 4e 54 45 52  ROR_DEVICE_INTER
3820: 46 41 43 45 5f 52 45 4d 4f 56 45 44 20 20 20 20  FACE_REMOVED    
3830: 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52  = APPLICATION_ER
3840: 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52  ROR_MASK | ERROR
3850: 5f 53 45 56 45 52 49 54 59 5f 45 52 52 4f 52 20  _SEVERITY_ERROR 
3860: 7c 20 30 78 32 31 43 2c 0d 0a 09 45 52 52 4f 52  | 0x21C,...ERROR
3870: 5f 42 41 44 5f 49 4e 54 45 52 46 41 43 45 5f 49  _BAD_INTERFACE_I
3880: 4e 53 54 41 4c 4c 53 45 43 54 20 20 20 3d 20 41  NSTALLSECT   = A
3890: 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52  PPLICATION_ERROR
38a0: 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45  _MASK | ERROR_SE
38b0: 56 45 52 49 54 59 5f 45 52 52 4f 52 20 7c 20 30  VERITY_ERROR | 0
38c0: 78 32 31 44 2c 0d 0a 09 45 52 52 4f 52 5f 4e 4f  x21D,...ERROR_NO
38d0: 5f 53 55 43 48 5f 49 4e 54 45 52 46 41 43 45 5f  _SUCH_INTERFACE_
38e0: 43 4c 41 53 53 20 20 20 20 20 3d 20 41 50 50 4c  CLASS     = APPL
38f0: 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41  ICATION_ERROR_MA
3900: 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56 45 52  SK | ERROR_SEVER
3910: 49 54 59 5f 45 52 52 4f 52 20 7c 20 30 78 32 31  ITY_ERROR | 0x21
3920: 45 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 56 41 4c  E,...ERROR_INVAL
3930: 49 44 5f 52 45 46 45 52 45 4e 43 45 5f 53 54 52  ID_REFERENCE_STR
3940: 49 4e 47 20 20 20 20 3d 20 41 50 50 4c 49 43 41  ING    = APPLICA
3950: 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20  TION_ERROR_MASK 
3960: 7c 20 45 52 52 4f 52 5f 53 45 56 45 52 49 54 59  | ERROR_SEVERITY
3970: 5f 45 52 52 4f 52 20 7c 20 30 78 32 31 46 2c 0d  _ERROR | 0x21F,.
3980: 0a 09 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f  ..ERROR_INVALID_
3990: 4d 41 43 48 49 4e 45 4e 41 4d 45 20 20 20 20 20  MACHINENAME     
39a0: 20 20 20 20 3d 20 41 50 50 4c 49 43 41 54 49 4f      = APPLICATIO
39b0: 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45  N_ERROR_MASK | E
39c0: 52 52 4f 52 5f 53 45 56 45 52 49 54 59 5f 45 52  RROR_SEVERITY_ER
39d0: 52 4f 52 20 7c 20 30 78 32 32 30 2c 0d 0a 09 45  ROR | 0x220,...E
39e0: 52 52 4f 52 5f 52 45 4d 4f 54 45 5f 43 4f 4d 4d  RROR_REMOTE_COMM
39f0: 5f 46 41 49 4c 55 52 45 20 20 20 20 20 20 20 20  _FAILURE        
3a00: 20 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45   = APPLICATION_E
3a10: 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f  RROR_MASK | ERRO
3a20: 52 5f 53 45 56 45 52 49 54 59 5f 45 52 52 4f 52  R_SEVERITY_ERROR
3a30: 20 7c 20 30 78 32 32 31 2c 0d 0a 09 45 52 52 4f   | 0x221,...ERRO
3a40: 52 5f 4d 41 43 48 49 4e 45 5f 55 4e 41 56 41 49  R_MACHINE_UNAVAI
3a50: 4c 41 42 4c 45 20 20 20 20 20 20 20 20 20 3d 20  LABLE         = 
3a60: 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f  APPLICATION_ERRO
3a70: 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53  R_MASK | ERROR_S
3a80: 45 56 45 52 49 54 59 5f 45 52 52 4f 52 20 7c 20  EVERITY_ERROR | 
3a90: 30 78 32 32 32 2c 0d 0a 09 45 52 52 4f 52 5f 4e  0x222,...ERROR_N
3aa0: 4f 5f 43 4f 4e 46 49 47 4d 47 52 5f 53 45 52 56  O_CONFIGMGR_SERV
3ab0: 49 43 45 53 20 20 20 20 20 20 20 3d 20 41 50 50  ICES       = APP
3ac0: 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d  LICATION_ERROR_M
3ad0: 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56 45  ASK | ERROR_SEVE
3ae0: 52 49 54 59 5f 45 52 52 4f 52 20 7c 20 30 78 32  RITY_ERROR | 0x2
3af0: 32 33 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 56 41  23,...ERROR_INVA
3b00: 4c 49 44 5f 50 52 4f 50 50 41 47 45 5f 50 52 4f  LID_PROPPAGE_PRO
3b10: 56 49 44 45 52 20 20 20 3d 20 41 50 50 4c 49 43  VIDER   = APPLIC
3b20: 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b  ATION_ERROR_MASK
3b30: 20 7c 20 45 52 52 4f 52 5f 53 45 56 45 52 49 54   | ERROR_SEVERIT
3b40: 59 5f 45 52 52 4f 52 20 7c 20 30 78 32 32 34 2c  Y_ERROR | 0x224,
3b50: 0d 0a 09 45 52 52 4f 52 5f 4e 4f 5f 53 55 43 48  ...ERROR_NO_SUCH
3b60: 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46 41 43  _DEVICE_INTERFAC
3b70: 45 20 20 20 20 3d 20 41 50 50 4c 49 43 41 54 49  E    = APPLICATI
3b80: 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20  ON_ERROR_MASK | 
3b90: 45 52 52 4f 52 5f 53 45 56 45 52 49 54 59 5f 45  ERROR_SEVERITY_E
3ba0: 52 52 4f 52 20 7c 20 30 78 32 32 35 2c 0d 0a 09  RROR | 0x225,...
3bb0: 45 52 52 4f 52 5f 44 49 5f 50 4f 53 54 50 52 4f  ERROR_DI_POSTPRO
3bc0: 43 45 53 53 49 4e 47 5f 52 45 51 55 49 52 45 44  CESSING_REQUIRED
3bd0: 20 20 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f    = APPLICATION_
3be0: 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52  ERROR_MASK | ERR
3bf0: 4f 52 5f 53 45 56 45 52 49 54 59 5f 45 52 52 4f  OR_SEVERITY_ERRO
3c00: 52 20 7c 20 30 78 32 32 36 2c 0d 0a 09 45 52 52  R | 0x226,...ERR
3c10: 4f 52 5f 49 4e 56 41 4c 49 44 5f 43 4f 49 4e 53  OR_INVALID_COINS
3c20: 54 41 4c 4c 45 52 20 20 20 20 20 20 20 20 20 3d  TALLER         =
3c30: 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52   APPLICATION_ERR
3c40: 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f  OR_MASK | ERROR_
3c50: 53 45 56 45 52 49 54 59 5f 45 52 52 4f 52 20 7c  SEVERITY_ERROR |
3c60: 20 30 78 32 32 37 2c 0d 0a 09 45 52 52 4f 52 5f   0x227,...ERROR_
3c70: 4e 4f 5f 43 4f 4d 50 41 54 5f 44 52 49 56 45 52  NO_COMPAT_DRIVER
3c80: 53 20 20 20 20 20 20 20 20 20 20 20 3d 20 41 50  S           = AP
3c90: 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f  PLICATION_ERROR_
3ca0: 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56  MASK | ERROR_SEV
3cb0: 45 52 49 54 59 5f 45 52 52 4f 52 20 7c 20 30 78  ERITY_ERROR | 0x
3cc0: 32 32 38 2c 0d 0a 09 45 52 52 4f 52 5f 4e 4f 5f  228,...ERROR_NO_
3cd0: 44 45 56 49 43 45 5f 49 43 4f 4e 20 20 20 20 20  DEVICE_ICON     
3ce0: 20 20 20 20 20 20 20 20 20 3d 20 41 50 50 4c 49           = APPLI
3cf0: 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53  CATION_ERROR_MAS
3d00: 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56 45 52 49  K | ERROR_SEVERI
3d10: 54 59 5f 45 52 52 4f 52 20 7c 20 30 78 32 32 39  TY_ERROR | 0x229
3d20: 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 56 41 4c 49  ,...ERROR_INVALI
3d30: 44 5f 49 4e 46 5f 4c 4f 47 43 4f 4e 46 49 47 20  D_INF_LOGCONFIG 
3d40: 20 20 20 20 20 20 3d 20 41 50 50 4c 49 43 41 54        = APPLICAT
3d50: 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20 7c  ION_ERROR_MASK |
3d60: 20 45 52 52 4f 52 5f 53 45 56 45 52 49 54 59 5f   ERROR_SEVERITY_
3d70: 45 52 52 4f 52 20 7c 20 30 78 32 32 41 2c 0d 0a  ERROR | 0x22A,..
3d80: 09 45 52 52 4f 52 5f 44 49 5f 44 4f 4e 54 5f 49  .ERROR_DI_DONT_I
3d90: 4e 53 54 41 4c 4c 20 20 20 20 20 20 20 20 20 20  NSTALL          
3da0: 20 20 20 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e     = APPLICATION
3db0: 5f 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52  _ERROR_MASK | ER
3dc0: 52 4f 52 5f 53 45 56 45 52 49 54 59 5f 45 52 52  ROR_SEVERITY_ERR
3dd0: 4f 52 20 7c 20 30 78 32 32 42 2c 0d 0a 09 45 52  OR | 0x22B,...ER
3de0: 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 46 49 4c 54  ROR_INVALID_FILT
3df0: 45 52 5f 44 52 49 56 45 52 20 20 20 20 20 20 20  ER_DRIVER       
3e00: 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52  = APPLICATION_ER
3e10: 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52  ROR_MASK | ERROR
3e20: 5f 53 45 56 45 52 49 54 59 5f 45 52 52 4f 52 20  _SEVERITY_ERROR 
3e30: 7c 20 30 78 32 32 43 2c 0d 0a 09 45 52 52 4f 52  | 0x22C,...ERROR
3e40: 5f 4e 4f 4e 5f 57 49 4e 44 4f 57 53 5f 4e 54 5f  _NON_WINDOWS_NT_
3e50: 44 52 49 56 45 52 20 20 20 20 20 20 20 3d 20 41  DRIVER       = A
3e60: 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52  PPLICATION_ERROR
3e70: 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45  _MASK | ERROR_SE
3e80: 56 45 52 49 54 59 5f 45 52 52 4f 52 20 7c 20 30  VERITY_ERROR | 0
3e90: 78 32 32 44 2c 0d 0a 09 45 52 52 4f 52 5f 4e 4f  x22D,...ERROR_NO
3ea0: 4e 5f 57 49 4e 44 4f 57 53 5f 44 52 49 56 45 52  N_WINDOWS_DRIVER
3eb0: 20 20 20 20 20 20 20 20 20 20 3d 20 41 50 50 4c            = APPL
3ec0: 49 43 41 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41  ICATION_ERROR_MA
3ed0: 53 4b 20 7c 20 45 52 52 4f 52 5f 53 45 56 45 52  SK | ERROR_SEVER
3ee0: 49 54 59 5f 45 52 52 4f 52 20 7c 20 30 78 32 32  ITY_ERROR | 0x22
3ef0: 45 2c 0d 0a 09 45 52 52 4f 52 5f 4e 4f 5f 43 41  E,...ERROR_NO_CA
3f00: 54 41 4c 4f 47 5f 46 4f 52 5f 4f 45 4d 5f 49 4e  TALOG_FOR_OEM_IN
3f10: 46 20 20 20 20 20 20 3d 20 41 50 50 4c 49 43 41  F      = APPLICA
3f20: 54 49 4f 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20  TION_ERROR_MASK 
3f30: 7c 20 45 52 52 4f 52 5f 53 45 56 45 52 49 54 59  | ERROR_SEVERITY
3f40: 5f 45 52 52 4f 52 20 7c 20 30 78 32 32 46 2c 0d  _ERROR | 0x22F,.
3f50: 0a 09 45 52 52 4f 52 5f 44 45 56 49 4e 53 54 41  ..ERROR_DEVINSTA
3f60: 4c 4c 5f 51 55 45 55 45 5f 4e 4f 4e 4e 41 54 49  LL_QUEUE_NONNATI
3f70: 56 45 20 20 3d 20 41 50 50 4c 49 43 41 54 49 4f  VE  = APPLICATIO
3f80: 4e 5f 45 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45  N_ERROR_MASK | E
3f90: 52 52 4f 52 5f 53 45 56 45 52 49 54 59 5f 45 52  RROR_SEVERITY_ER
3fa0: 52 4f 52 20 7c 20 30 78 32 33 30 2c 0d 0a 09 45  ROR | 0x230,...E
3fb0: 52 52 4f 52 5f 4e 4f 54 5f 44 49 53 41 42 4c 45  RROR_NOT_DISABLE
3fc0: 41 42 4c 45 20 20 20 20 20 20 20 20 20 20 20 20  ABLE            
3fd0: 20 3d 20 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45   = APPLICATION_E
3fe0: 52 52 4f 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f  RROR_MASK | ERRO
3ff0: 52 5f 53 45 56 45 52 49 54 59 5f 45 52 52 4f 52  R_SEVERITY_ERROR
4000: 20 7c 20 30 78 32 33 31 2c 0d 0a 09 45 52 52 4f   | 0x231,...ERRO
4010: 52 5f 43 41 4e 54 5f 52 45 4d 4f 56 45 5f 44 45  R_CANT_REMOVE_DE
4020: 56 49 4e 53 54 20 20 20 20 20 20 20 20 20 3d 20  VINST         = 
4030: 41 50 50 4c 49 43 41 54 49 4f 4e 5f 45 52 52 4f  APPLICATION_ERRO
4040: 52 5f 4d 41 53 4b 20 7c 20 45 52 52 4f 52 5f 53  R_MASK | ERROR_S
4050: 45 56 45 52 49 54 59 5f 45 52 52 4f 52 20 7c 20  EVERITY_ERROR | 
4060: 30 78 32 33 32 0d 0a 7d 0d 0a 0d 0a 64 65 70 72  0x232..}....depr
4070: 65 63 61 74 65 64 20 65 6e 75 6d 20 3a 20 44 57  ecated enum : DW
4080: 4f 52 44 20 7b 0d 0a 09 45 52 52 4f 52 5f 4e 4f  ORD {...ERROR_NO
4090: 5f 44 45 46 41 55 4c 54 5f 49 4e 54 45 52 46 41  _DEFAULT_INTERFA
40a0: 43 45 5f 44 45 56 49 43 45 20 3d 20 45 52 52 4f  CE_DEVICE = ERRO
40b0: 52 5f 4e 4f 5f 44 45 46 41 55 4c 54 5f 44 45 56  R_NO_DEFAULT_DEV
40c0: 49 43 45 5f 49 4e 54 45 52 46 41 43 45 2c 0d 0a  ICE_INTERFACE,..
40d0: 09 45 52 52 4f 52 5f 49 4e 54 45 52 46 41 43 45  .ERROR_INTERFACE
40e0: 5f 44 45 56 49 43 45 5f 41 43 54 49 56 45 20 20  _DEVICE_ACTIVE  
40f0: 20 20 20 3d 20 45 52 52 4f 52 5f 44 45 56 49 43     = ERROR_DEVIC
4100: 45 5f 49 4e 54 45 52 46 41 43 45 5f 41 43 54 49  E_INTERFACE_ACTI
4110: 56 45 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45  VE,...ERROR_INTE
4120: 52 46 41 43 45 5f 44 45 56 49 43 45 5f 52 45 4d  RFACE_DEVICE_REM
4130: 4f 56 45 44 20 20 20 20 3d 20 45 52 52 4f 52 5f  OVED    = ERROR_
4140: 44 45 56 49 43 45 5f 49 4e 54 45 52 46 41 43 45  DEVICE_INTERFACE
4150: 5f 52 45 4d 4f 56 45 44 2c 0d 0a 09 45 52 52 4f  _REMOVED,...ERRO
4160: 52 5f 4e 4f 5f 53 55 43 48 5f 49 4e 54 45 52 46  R_NO_SUCH_INTERF
4170: 41 43 45 5f 44 45 56 49 43 45 20 20 20 20 3d 20  ACE_DEVICE    = 
4180: 45 52 52 4f 52 5f 4e 4f 5f 53 55 43 48 5f 44 45  ERROR_NO_SUCH_DE
4190: 56 49 43 45 5f 49 4e 54 45 52 46 41 43 45 2c 0d  VICE_INTERFACE,.
41a0: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 55 49 4e  .}....enum : UIN
41b0: 54 20 7b 0d 0a 09 46 49 4c 45 4f 50 5f 43 4f 50  T {...FILEOP_COP
41c0: 59 2c 0d 0a 09 46 49 4c 45 4f 50 5f 52 45 4e 41  Y,...FILEOP_RENA
41d0: 4d 45 2c 0d 0a 09 46 49 4c 45 4f 50 5f 44 45 4c  ME,...FILEOP_DEL
41e0: 45 54 45 2c 0d 0a 09 46 49 4c 45 4f 50 5f 42 41  ETE,...FILEOP_BA
41f0: 43 4b 55 50 2c 0d 0a 09 46 49 4c 45 4f 50 5f 4e  CKUP,...FILEOP_N
4200: 45 57 50 41 54 48 2c 20 2f 2f 20 3d 20 34 0d 0a  EWPATH, // = 4..
4210: 09 46 49 4c 45 4f 50 5f 41 42 4f 52 54 20 3d 20  .FILEOP_ABORT = 
4220: 30 2c 0d 0a 09 46 49 4c 45 4f 50 5f 44 4f 49 54  0,...FILEOP_DOIT
4230: 2c 0d 0a 09 46 49 4c 45 4f 50 5f 53 4b 49 50 2c  ,...FILEOP_SKIP,
4240: 20 2f 2f 20 3d 20 32 0d 0a 09 46 49 4c 45 4f 50   // = 2...FILEOP
4250: 5f 52 45 54 52 59 20 3d 20 46 49 4c 45 4f 50 5f  _RETRY = FILEOP_
4260: 44 4f 49 54 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20  DOIT..}....enum 
4270: 3a 20 55 49 4e 54 20 7b 0d 0a 09 46 49 4c 45 5f  : UINT {...FILE_
4280: 43 4f 4d 50 52 45 53 53 49 4f 4e 5f 4e 4f 4e 45  COMPRESSION_NONE
4290: 2c 0d 0a 09 46 49 4c 45 5f 43 4f 4d 50 52 45 53  ,...FILE_COMPRES
42a0: 53 49 4f 4e 5f 57 49 4e 4c 5a 41 2c 0d 0a 09 46  SION_WINLZA,...F
42b0: 49 4c 45 5f 43 4f 4d 50 52 45 53 53 49 4f 4e 5f  ILE_COMPRESSION_
42c0: 4d 53 5a 49 50 2c 0d 0a 09 46 49 4c 45 5f 43 4f  MSZIP,...FILE_CO
42d0: 4d 50 52 45 53 53 49 4f 4e 5f 4e 54 43 41 42 20  MPRESSION_NTCAB 
42e0: 2f 2f 20 3d 20 33 0d 0a 7d 0d 0a 0d 0a 65 6e 75  // = 3..}....enu
42f0: 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 46 4c  m : DWORD {...FL
4300: 47 5f 41 44 44 52 45 47 5f 54 59 50 45 5f 53 5a  G_ADDREG_TYPE_SZ
4310: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30          = 0x0000
4320: 30 30 30 30 2c 0d 0a 09 46 4c 47 5f 41 44 44 52  0000,...FLG_ADDR
4330: 45 47 5f 42 49 4e 56 41 4c 55 45 54 59 50 45 20  EG_BINVALUETYPE 
4340: 20 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0d    = 0x00000001,.
4350: 0a 09 46 4c 47 5f 41 44 44 52 45 47 5f 4e 4f 43  ..FLG_ADDREG_NOC
4360: 4c 4f 42 42 45 52 20 20 20 20 20 20 3d 20 30 78  LOBBER      = 0x
4370: 30 30 30 30 30 30 30 32 2c 0d 0a 09 46 4c 47 5f  00000002,...FLG_
4380: 41 44 44 52 45 47 5f 44 45 4c 56 41 4c 20 20 20  ADDREG_DELVAL   
4390: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
43a0: 30 34 2c 0d 0a 09 46 4c 47 5f 41 44 44 52 45 47  04,...FLG_ADDREG
43b0: 5f 41 50 50 45 4e 44 20 20 20 20 20 20 20 20 20  _APPEND         
43c0: 3d 20 30 78 30 30 30 30 30 30 30 38 2c 0d 0a 09  = 0x00000008,...
43d0: 46 4c 47 5f 41 44 44 52 45 47 5f 4b 45 59 4f 4e  FLG_ADDREG_KEYON
43e0: 4c 59 20 20 20 20 20 20 20 20 3d 20 30 78 30 30  LY        = 0x00
43f0: 30 30 30 30 31 30 2c 0d 0a 09 46 4c 47 5f 41 44  000010,...FLG_AD
4400: 44 52 45 47 5f 4f 56 45 52 57 52 49 54 45 4f 4e  DREG_OVERWRITEON
4410: 4c 59 20 20 3d 20 30 78 30 30 30 30 30 30 32 30  LY  = 0x00000020
4420: 2c 0d 0a 09 46 4c 47 5f 41 44 44 52 45 47 5f 54  ,...FLG_ADDREG_T
4430: 59 50 45 5f 4d 55 4c 54 49 5f 53 5a 20 20 3d 20  YPE_MULTI_SZ  = 
4440: 30 78 30 30 30 31 30 30 30 30 2c 0d 0a 09 46 4c  0x00010000,...FL
4450: 47 5f 41 44 44 52 45 47 5f 54 59 50 45 5f 45 58  G_ADDREG_TYPE_EX
4460: 50 41 4e 44 5f 53 5a 20 3d 20 30 78 30 30 30 32  PAND_SZ = 0x0002
4470: 30 30 30 30 2c 0d 0a 09 46 4c 47 5f 41 44 44 52  0000,...FLG_ADDR
4480: 45 47 5f 54 59 50 45 5f 42 49 4e 41 52 59 20 20  EG_TYPE_BINARY  
4490: 20 20 3d 20 30 78 30 30 30 30 30 30 30 30 20 7c    = 0x00000000 |
44a0: 20 46 4c 47 5f 41 44 44 52 45 47 5f 42 49 4e 56   FLG_ADDREG_BINV
44b0: 41 4c 55 45 54 59 50 45 2c 0d 0a 09 46 4c 47 5f  ALUETYPE,...FLG_
44c0: 41 44 44 52 45 47 5f 54 59 50 45 5f 44 57 4f 52  ADDREG_TYPE_DWOR
44d0: 44 20 20 20 20 20 3d 20 30 78 30 30 30 31 30 30  D     = 0x000100
44e0: 30 30 20 7c 20 46 4c 47 5f 41 44 44 52 45 47 5f  00 | FLG_ADDREG_
44f0: 42 49 4e 56 41 4c 55 45 54 59 50 45 2c 0d 0a 09  BINVALUETYPE,...
4500: 46 4c 47 5f 41 44 44 52 45 47 5f 54 59 50 45 5f  FLG_ADDREG_TYPE_
4510: 4e 4f 4e 45 20 20 20 20 20 20 3d 20 30 78 30 30  NONE      = 0x00
4520: 30 32 30 30 30 30 20 7c 20 46 4c 47 5f 41 44 44  020000 | FLG_ADD
4530: 52 45 47 5f 42 49 4e 56 41 4c 55 45 54 59 50 45  REG_BINVALUETYPE
4540: 2c 0d 0a 09 46 4c 47 5f 41 44 44 52 45 47 5f 54  ,...FLG_ADDREG_T
4550: 59 50 45 5f 4d 41 53 4b 20 20 20 20 20 20 3d 20  YPE_MASK      = 
4560: 30 78 46 46 46 46 30 30 30 30 20 7c 20 46 4c 47  0xFFFF0000 | FLG
4570: 5f 41 44 44 52 45 47 5f 42 49 4e 56 41 4c 55 45  _ADDREG_BINVALUE
4580: 54 59 50 45 0d 0a 7d 0d 0a 0d 0a 73 74 61 74 69  TYPE..}....stati
4590: 63 20 69 66 28 5f 53 45 54 55 50 41 50 49 5f 56  c if(_SETUPAPI_V
45a0: 45 52 20 3e 3d 20 30 78 30 35 30 31 29 20 7b 0d  ER >= 0x0501) {.
45b0: 0a 09 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b  ..enum : DWORD {
45c0: 0d 0a 09 09 46 4c 47 5f 41 44 44 52 45 47 5f 36  ....FLG_ADDREG_6
45d0: 34 42 49 54 4b 45 59 20 20 20 20 20 20 20 3d 20  4BITKEY       = 
45e0: 30 78 30 30 30 30 31 30 30 30 2c 0d 0a 09 09 46  0x00001000,....F
45f0: 4c 47 5f 41 44 44 52 45 47 5f 4b 45 59 4f 4e 4c  LG_ADDREG_KEYONL
4600: 59 5f 43 4f 4d 4d 4f 4e 20 3d 20 30 78 30 30 30  Y_COMMON = 0x000
4610: 30 32 30 30 30 2c 0d 0a 09 09 46 4c 47 5f 41 44  02000,....FLG_AD
4620: 44 52 45 47 5f 33 32 42 49 54 4b 45 59 20 20 20  DREG_32BITKEY   
4630: 20 20 20 20 3d 20 30 78 30 30 30 30 34 30 30 30      = 0x00004000
4640: 2c 0d 0a 09 09 46 4c 47 5f 41 44 44 52 45 47 5f  ,....FLG_ADDREG_
4650: 44 45 4c 52 45 47 5f 42 49 54 20 20 20 20 20 3d  DELREG_BIT     =
4660: 20 30 78 30 30 30 30 38 30 30 30 0d 0a 09 7d 0d   0x00008000...}.
4670: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f  .}....enum : DWO
4680: 52 44 20 7b 0d 0a 09 46 4c 47 5f 44 45 4c 52 45  RD {...FLG_DELRE
4690: 47 5f 56 41 4c 55 45 20 3d 20 30 78 30 30 30 30  G_VALUE = 0x0000
46a0: 30 30 30 30 0d 0a 7d 0d 0a 0d 0a 73 74 61 74 69  0000..}....stati
46b0: 63 20 69 66 28 5f 53 45 54 55 50 41 50 49 5f 56  c if(_SETUPAPI_V
46c0: 45 52 20 3e 3d 20 30 78 30 35 30 31 29 20 7b 0d  ER >= 0x0501) {.
46d0: 0a 09 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b  ..enum : DWORD {
46e0: 0d 0a 09 09 46 4c 47 5f 44 45 4c 52 45 47 5f 54  ....FLG_DELREG_T
46f0: 59 50 45 5f 4d 41 53 4b 20 20 20 20 20 20 20 20  YPE_MASK        
4700: 20 20 3d 20 46 4c 47 5f 41 44 44 52 45 47 5f 54    = FLG_ADDREG_T
4710: 59 50 45 5f 4d 41 53 4b 2c 0d 0a 09 09 46 4c 47  YPE_MASK,....FLG
4720: 5f 44 45 4c 52 45 47 5f 54 59 50 45 5f 53 5a 20  _DELREG_TYPE_SZ 
4730: 20 20 20 20 20 20 20 20 20 20 20 3d 20 46 4c 47             = FLG
4740: 5f 41 44 44 52 45 47 5f 54 59 50 45 5f 53 5a 2c  _ADDREG_TYPE_SZ,
4750: 0d 0a 09 09 46 4c 47 5f 44 45 4c 52 45 47 5f 54  ....FLG_DELREG_T
4760: 59 50 45 5f 4d 55 4c 54 49 5f 53 5a 20 20 20 20  YPE_MULTI_SZ    
4770: 20 20 3d 20 46 4c 47 5f 41 44 44 52 45 47 5f 54    = FLG_ADDREG_T
4780: 59 50 45 5f 4d 55 4c 54 49 5f 53 5a 2c 0d 0a 09  YPE_MULTI_SZ,...
4790: 09 46 4c 47 5f 44 45 4c 52 45 47 5f 54 59 50 45  .FLG_DELREG_TYPE
47a0: 5f 45 58 50 41 4e 44 5f 53 5a 20 20 20 20 20 3d  _EXPAND_SZ     =
47b0: 20 46 4c 47 5f 41 44 44 52 45 47 5f 54 59 50 45   FLG_ADDREG_TYPE
47c0: 5f 45 58 50 41 4e 44 5f 53 5a 2c 0d 0a 09 09 46  _EXPAND_SZ,....F
47d0: 4c 47 5f 44 45 4c 52 45 47 5f 54 59 50 45 5f 42  LG_DELREG_TYPE_B
47e0: 49 4e 41 52 59 20 20 20 20 20 20 20 20 3d 20 46  INARY        = F
47f0: 4c 47 5f 41 44 44 52 45 47 5f 54 59 50 45 5f 42  LG_ADDREG_TYPE_B
4800: 49 4e 41 52 59 2c 0d 0a 09 09 46 4c 47 5f 44 45  INARY,....FLG_DE
4810: 4c 52 45 47 5f 54 59 50 45 5f 44 57 4f 52 44 20  LREG_TYPE_DWORD 
4820: 20 20 20 20 20 20 20 20 3d 20 46 4c 47 5f 41 44          = FLG_AD
4830: 44 52 45 47 5f 54 59 50 45 5f 44 57 4f 52 44 2c  DREG_TYPE_DWORD,
4840: 0d 0a 09 09 46 4c 47 5f 44 45 4c 52 45 47 5f 54  ....FLG_DELREG_T
4850: 59 50 45 5f 4e 4f 4e 45 20 20 20 20 20 20 20 20  YPE_NONE        
4860: 20 20 3d 20 46 4c 47 5f 41 44 44 52 45 47 5f 54    = FLG_ADDREG_T
4870: 59 50 45 5f 4e 4f 4e 45 2c 0d 0a 09 09 46 4c 47  YPE_NONE,....FLG
4880: 5f 44 45 4c 52 45 47 5f 36 34 42 49 54 4b 45 59  _DELREG_64BITKEY
4890: 20 20 20 20 20 20 20 20 20 20 20 3d 20 46 4c 47             = FLG
48a0: 5f 41 44 44 52 45 47 5f 36 34 42 49 54 4b 45 59  _ADDREG_64BITKEY
48b0: 2c 0d 0a 09 09 46 4c 47 5f 44 45 4c 52 45 47 5f  ,....FLG_DELREG_
48c0: 4b 45 59 4f 4e 4c 59 5f 43 4f 4d 4d 4f 4e 20 20  KEYONLY_COMMON  
48d0: 20 20 20 3d 20 46 4c 47 5f 41 44 44 52 45 47 5f     = FLG_ADDREG_
48e0: 4b 45 59 4f 4e 4c 59 5f 43 4f 4d 4d 4f 4e 2c 0d  KEYONLY_COMMON,.
48f0: 0a 09 09 46 4c 47 5f 44 45 4c 52 45 47 5f 33 32  ...FLG_DELREG_32
4900: 42 49 54 4b 45 59 20 20 20 20 20 20 20 20 20 20  BITKEY          
4910: 20 3d 20 46 4c 47 5f 41 44 44 52 45 47 5f 33 32   = FLG_ADDREG_32
4920: 42 49 54 4b 45 59 2c 0d 0a 09 09 46 4c 47 5f 44  BITKEY,....FLG_D
4930: 45 4c 52 45 47 5f 4f 50 45 52 41 54 49 4f 4e 5f  ELREG_OPERATION_
4940: 4d 41 53 4b 20 20 20 20 20 3d 20 30 78 30 30 30  MASK     = 0x000
4950: 30 30 30 46 45 2c 0d 0a 09 09 46 4c 47 5f 44 45  000FE,....FLG_DE
4960: 4c 52 45 47 5f 4d 55 4c 54 49 5f 53 5a 5f 44 45  LREG_MULTI_SZ_DE
4970: 4c 53 54 52 49 4e 47 20 3d 20 30 78 30 30 30 30  LSTRING = 0x0000
4980: 30 30 30 32 20 7c 20 46 4c 47 5f 44 45 4c 52 45  0002 | FLG_DELRE
4990: 47 5f 54 59 50 45 5f 4d 55 4c 54 49 5f 53 5a 20  G_TYPE_MULTI_SZ 
49a0: 7c 20 46 4c 47 5f 41 44 44 52 45 47 5f 44 45 4c  | FLG_ADDREG_DEL
49b0: 52 45 47 5f 42 49 54 0d 0a 09 7d 0d 0a 7d 0d 0a  REG_BIT...}..}..
49c0: 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b  ..enum : DWORD {
49d0: 0d 0a 09 46 4c 47 5f 42 49 54 52 45 47 5f 43 4c  ...FLG_BITREG_CL
49e0: 45 41 52 42 49 54 53 20 3d 20 30 78 30 30 30 30  EARBITS = 0x0000
49f0: 30 30 30 30 2c 0d 0a 09 46 4c 47 5f 42 49 54 52  0000,...FLG_BITR
4a00: 45 47 5f 53 45 54 42 49 54 53 20 20 20 3d 20 30  EG_SETBITS   = 0
4a10: 78 30 30 30 30 30 30 30 31 0d 0a 7d 0d 0a 0d 0a  x00000001..}....
4a20: 73 74 61 74 69 63 20 69 66 28 5f 53 45 54 55 50  static if(_SETUP
4a30: 41 50 49 5f 56 45 52 20 3e 3d 20 30 78 30 35 30  API_VER >= 0x050
4a40: 31 29 20 7b 0d 0a 09 65 6e 75 6d 20 3a 20 44 57  1) {...enum : DW
4a50: 4f 52 44 20 7b 0d 0a 09 09 46 4c 47 5f 42 49 54  ORD {....FLG_BIT
4a60: 52 45 47 5f 36 34 42 49 54 4b 45 59 20 3d 20 30  REG_64BITKEY = 0
4a70: 78 30 30 30 30 31 30 30 30 2c 0d 0a 09 09 46 4c  x00001000,....FL
4a80: 47 5f 42 49 54 52 45 47 5f 33 32 42 49 54 4b 45  G_BITREG_32BITKE
4a90: 59 20 3d 20 30 78 30 30 30 30 34 30 30 30 0d 0a  Y = 0x00004000..
4aa0: 09 7d 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  .}..}....enum : 
4ab0: 44 57 4f 52 44 20 7b 0d 0a 09 46 4c 47 5f 50 52  DWORD {...FLG_PR
4ac0: 4f 46 49 54 45 4d 5f 43 55 52 52 45 4e 54 55 53  OFITEM_CURRENTUS
4ad0: 45 52 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c  ER = 0x00000001,
4ae0: 0d 0a 09 46 4c 47 5f 50 52 4f 46 49 54 45 4d 5f  ...FLG_PROFITEM_
4af0: 44 45 4c 45 54 45 20 20 20 20 20 20 3d 20 30 78  DELETE      = 0x
4b00: 30 30 30 30 30 30 30 32 2c 0d 0a 09 46 4c 47 5f  00000002,...FLG_
4b10: 50 52 4f 46 49 54 45 4d 5f 47 52 4f 55 50 20 20  PROFITEM_GROUP  
4b20: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30       = 0x0000000
4b30: 34 2c 0d 0a 09 46 4c 47 5f 50 52 4f 46 49 54 45  4,...FLG_PROFITE
4b40: 4d 5f 43 53 49 44 4c 20 20 20 20 20 20 20 3d 20  M_CSIDL       = 
4b50: 30 78 30 30 30 30 30 30 30 38 0d 0a 7d 0d 0a 0d  0x00000008..}...
4b60: 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0d  .enum : DWORD {.
4b70: 0a 09 46 4c 47 5f 52 45 47 53 56 52 5f 44 4c 4c  ..FLG_REGSVR_DLL
4b80: 52 45 47 49 53 54 45 52 20 3d 20 30 78 30 30 30  REGISTER = 0x000
4b90: 30 30 30 30 31 2c 0d 0a 09 46 4c 47 5f 52 45 47  00001,...FLG_REG
4ba0: 53 56 52 5f 44 4c 4c 49 4e 53 54 41 4c 4c 20 20  SVR_DLLINSTALL  
4bb0: 3d 20 30 78 30 30 30 30 30 30 30 32 0d 0a 7d 0d  = 0x00000002..}.
4bc0: 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 49 44 44 5f  ...enum {...IDD_
4bd0: 44 59 4e 41 57 49 5a 5f 46 49 52 53 54 50 41 47  DYNAWIZ_FIRSTPAG
4be0: 45 20 3d 20 31 30 30 30 30 2c 0d 0a 09 49 44 44  E = 10000,...IDD
4bf0: 5f 44 59 4e 41 57 49 5a 5f 53 45 4c 45 43 54 5f  _DYNAWIZ_SELECT_
4c00: 50 52 45 56 50 41 47 45 2c 0d 0a 09 49 44 44 5f  PREVPAGE,...IDD_
4c10: 44 59 4e 41 57 49 5a 5f 53 45 4c 45 43 54 5f 4e  DYNAWIZ_SELECT_N
4c20: 45 58 54 50 41 47 45 2c 0d 0a 09 49 44 44 5f 44  EXTPAGE,...IDD_D
4c30: 59 4e 41 57 49 5a 5f 41 4e 41 4c 59 5a 45 5f 50  YNAWIZ_ANALYZE_P
4c40: 52 45 56 50 41 47 45 2c 0d 0a 09 49 44 44 5f 44  REVPAGE,...IDD_D
4c50: 59 4e 41 57 49 5a 5f 41 4e 41 4c 59 5a 45 5f 4e  YNAWIZ_ANALYZE_N
4c60: 45 58 54 50 41 47 45 2c 20 2f 2f 20 3d 20 31 30  EXTPAGE, // = 10
4c70: 30 34 0d 0a 09 49 44 44 5f 44 59 4e 41 57 49 5a  04...IDD_DYNAWIZ
4c80: 5f 49 4e 53 54 41 4c 4c 44 45 54 45 43 54 45 44  _INSTALLDETECTED
4c90: 5f 50 52 45 56 50 41 47 45 20 3d 20 31 30 30 30  _PREVPAGE = 1000
4ca0: 36 2c 0d 0a 09 49 44 44 5f 44 59 4e 41 57 49 5a  6,...IDD_DYNAWIZ
4cb0: 5f 49 4e 53 54 41 4c 4c 44 45 54 45 43 54 45 44  _INSTALLDETECTED
4cc0: 5f 4e 45 58 54 50 41 47 45 2c 0d 0a 09 49 44 44  _NEXTPAGE,...IDD
4cd0: 5f 44 59 4e 41 57 49 5a 5f 49 4e 53 54 41 4c 4c  _DYNAWIZ_INSTALL
4ce0: 44 45 54 45 43 54 45 44 5f 4e 4f 44 45 56 53 2c  DETECTED_NODEVS,
4cf0: 0d 0a 09 49 44 44 5f 44 59 4e 41 57 49 5a 5f 53  ...IDD_DYNAWIZ_S
4d00: 45 4c 45 43 54 44 45 56 5f 50 41 47 45 2c 0d 0a  ELECTDEV_PAGE,..
4d10: 09 49 44 44 5f 44 59 4e 41 57 49 5a 5f 41 4e 41  .IDD_DYNAWIZ_ANA
4d20: 4c 59 5a 45 44 45 56 5f 50 41 47 45 2c 0d 0a 09  LYZEDEV_PAGE,...
4d30: 49 44 44 5f 44 59 4e 41 57 49 5a 5f 49 4e 53 54  IDD_DYNAWIZ_INST
4d40: 41 4c 4c 44 45 54 45 43 54 45 44 44 45 56 53 5f  ALLDETECTEDDEVS_
4d50: 50 41 47 45 2c 0d 0a 09 49 44 44 5f 44 59 4e 41  PAGE,...IDD_DYNA
4d60: 57 49 5a 5f 53 45 4c 45 43 54 43 4c 41 53 53 5f  WIZ_SELECTCLASS_
4d70: 50 41 47 45 2c 20 2f 2f 20 3d 20 31 30 30 31 32  PAGE, // = 10012
4d80: 0d 0a 09 4d 49 4e 5f 49 44 44 5f 44 59 4e 41 57  ...MIN_IDD_DYNAW
4d90: 49 5a 5f 52 45 53 4f 55 52 43 45 5f 49 44 20 3d  IZ_RESOURCE_ID =
4da0: 20 31 30 30 30 30 2c 0d 0a 09 4d 41 58 5f 49 44   10000,...MAX_ID
4db0: 44 5f 44 59 4e 41 57 49 5a 5f 52 45 53 4f 55 52  D_DYNAWIZ_RESOUR
4dc0: 43 45 5f 49 44 20 3d 20 31 31 30 30 30 0d 0a 7d  CE_ID = 11000..}
4dd0: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 44  ....enum : DWORD
4de0: 20 7b 0d 0a 09 49 44 46 5f 4e 4f 42 52 4f 57 53   {...IDF_NOBROWS
4df0: 45 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30  E     = 0x000000
4e00: 30 31 2c 0d 0a 09 49 44 46 5f 4e 4f 53 4b 49 50  01,...IDF_NOSKIP
4e10: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30         = 0x00000
4e20: 30 30 32 2c 0d 0a 09 49 44 46 5f 4e 4f 44 45 54  002,...IDF_NODET
4e30: 41 49 4c 53 20 20 20 20 3d 20 30 78 30 30 30 30  AILS    = 0x0000
4e40: 30 30 30 34 2c 0d 0a 09 49 44 46 5f 4e 4f 43 4f  0004,...IDF_NOCO
4e50: 4d 50 52 45 53 53 45 44 20 3d 20 30 78 30 30 30  MPRESSED = 0x000
4e60: 30 30 30 30 38 2c 0d 0a 09 49 44 46 5f 43 48 45  00008,...IDF_CHE
4e70: 43 4b 46 49 52 53 54 20 20 20 3d 20 30 78 30 30  CKFIRST   = 0x00
4e80: 30 30 30 31 30 30 2c 0d 0a 09 49 44 46 5f 4e 4f  000100,...IDF_NO
4e90: 42 45 45 50 20 20 20 20 20 20 20 3d 20 30 78 30  BEEP       = 0x0
4ea0: 30 30 30 30 32 30 30 2c 0d 0a 09 49 44 46 5f 4e  0000200,...IDF_N
4eb0: 4f 46 4f 52 45 47 52 4f 55 4e 44 20 3d 20 30 78  OFOREGROUND = 0x
4ec0: 30 30 30 30 30 34 30 30 2c 0d 0a 09 49 44 46 5f  00000400,...IDF_
4ed0: 57 41 52 4e 49 46 53 4b 49 50 20 20 20 3d 20 30  WARNIFSKIP   = 0
4ee0: 78 30 30 30 30 30 38 30 30 0d 0a 7d 0d 0a 0d 0a  x00000800..}....
4ef0: 73 74 61 74 69 63 20 69 66 28 5f 53 45 54 55 50  static if(_SETUP
4f00: 41 50 49 5f 56 45 52 20 3e 3d 20 30 78 30 35 30  API_VER >= 0x050
4f10: 31 29 20 7b 0d 0a 09 65 6e 75 6d 20 3a 20 44 57  1) {...enum : DW
4f20: 4f 52 44 20 7b 0d 0a 09 09 49 44 46 5f 4e 4f 52  ORD {....IDF_NOR
4f30: 45 4d 4f 56 41 42 4c 45 4d 45 44 49 41 50 52 4f  EMOVABLEMEDIAPRO
4f40: 4d 50 54 20 3d 20 30 78 30 30 30 30 31 30 30 30  MPT = 0x00001000
4f50: 2c 0d 0a 09 09 49 44 46 5f 55 53 45 44 49 53 4b  ,....IDF_USEDISK
4f60: 4e 41 4d 45 41 53 50 52 4f 4d 50 54 20 20 20 20  NAMEASPROMPT    
4f70: 3d 20 30 78 30 30 30 30 32 30 30 30 2c 0d 0a 09  = 0x00002000,...
4f80: 09 49 44 46 5f 4f 45 4d 44 49 53 4b 20 20 20 20  .IDF_OEMDISK    
4f90: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78              = 0x
4fa0: 38 30 30 30 30 30 30 30 0d 0a 09 7d 0d 0a 7d 0d  80000000...}..}.
4fb0: 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 49 44 49 5f  ...enum {...IDI_
4fc0: 52 45 53 4f 55 52 43 45 46 49 52 53 54 20 20 20  RESOURCEFIRST   
4fd0: 20 20 20 20 20 20 20 3d 20 31 35 39 2c 0d 0a 09         = 159,...
4fe0: 49 44 49 5f 52 45 53 4f 55 52 43 45 20 20 20 20  IDI_RESOURCE    
4ff0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 35 39             = 159
5000: 2c 0d 0a 09 49 44 49 5f 52 45 53 4f 55 52 43 45  ,...IDI_RESOURCE
5010: 4c 41 53 54 20 20 20 20 20 20 20 20 20 20 20 3d  LAST           =
5020: 20 31 36 31 2c 0d 0a 09 49 44 49 5f 52 45 53 4f   161,...IDI_RESO
5030: 55 52 43 45 4f 56 45 52 4c 41 59 46 49 52 53 54  URCEOVERLAYFIRST
5040: 20 20 20 3d 20 31 36 31 2c 0d 0a 09 49 44 49 5f     = 161,...IDI_
5050: 52 45 53 4f 55 52 43 45 4f 56 45 52 4c 41 59 4c  RESOURCEOVERLAYL
5060: 41 53 54 20 20 20 20 3d 20 31 36 31 2c 0d 0a 09  AST    = 161,...
5070: 49 44 49 5f 43 4f 4e 46 4c 49 43 54 20 20 20 20  IDI_CONFLICT    
5080: 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 36 31             = 161
5090: 2c 0d 0a 09 49 44 49 5f 50 52 4f 42 4c 45 4d 5f  ,...IDI_PROBLEM_
50a0: 4f 56 4c 20 20 20 20 20 20 20 20 20 20 20 20 3d  OVL            =
50b0: 20 35 30 30 2c 0d 0a 09 49 44 49 5f 44 49 53 41   500,...IDI_DISA
50c0: 42 4c 45 44 5f 4f 56 4c 20 20 20 20 20 20 20 20  BLED_OVL        
50d0: 20 20 20 3d 20 35 30 31 2c 0d 0a 09 49 44 49 5f     = 501,...IDI_
50e0: 46 4f 52 43 45 44 5f 4f 56 4c 20 20 20 20 20 20  FORCED_OVL      
50f0: 20 20 20 20 20 20 20 3d 20 35 30 32 2c 0d 0a 09         = 502,...
5100: 49 44 49 5f 43 4c 41 53 53 49 43 4f 4e 5f 4f 56  IDI_CLASSICON_OV
5110: 45 52 4c 41 59 46 49 52 53 54 20 3d 20 35 30 30  ERLAYFIRST = 500
5120: 2c 0d 0a 09 49 44 49 5f 43 4c 41 53 53 49 43 4f  ,...IDI_CLASSICO
5130: 4e 5f 4f 56 45 52 4c 41 59 4c 41 53 54 20 20 3d  N_OVERLAYLAST  =
5140: 20 35 30 32 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20   502..}....enum 
5150: 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 49 4e 46 5f  : DWORD {...INF_
5160: 53 54 59 4c 45 5f 4e 4f 4e 45 20 20 20 20 20 20  STYLE_NONE      
5170: 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 30      = 0x00000000
5180: 2c 0d 0a 09 49 4e 46 5f 53 54 59 4c 45 5f 4f 4c  ,...INF_STYLE_OL
5190: 44 4e 54 20 20 20 20 20 20 20 20 20 3d 20 30 78  DNT         = 0x
51a0: 30 30 30 30 30 30 30 31 2c 0d 0a 09 49 4e 46 5f  00000001,...INF_
51b0: 53 54 59 4c 45 5f 57 49 4e 34 20 20 20 20 20 20  STYLE_WIN4      
51c0: 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 32      = 0x00000002
51d0: 2c 0d 0a 09 49 4e 46 5f 53 54 59 4c 45 5f 43 41  ,...INF_STYLE_CA
51e0: 43 48 45 5f 45 4e 41 42 4c 45 20 20 3d 20 30 78  CHE_ENABLE  = 0x
51f0: 30 30 30 30 30 30 31 30 2c 0d 0a 09 49 4e 46 5f  00000010,...INF_
5200: 53 54 59 4c 45 5f 43 41 43 48 45 5f 44 49 53 41  STYLE_CACHE_DISA
5210: 42 4c 45 20 3d 20 30 78 30 30 30 30 30 30 32 30  BLE = 0x00000020
5220: 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 57  ..}....enum : DW
5230: 4f 52 44 20 7b 0d 0a 09 49 4e 46 49 4e 46 4f 5f  ORD {...INFINFO_
5240: 49 4e 46 5f 53 50 45 43 5f 49 53 5f 48 49 4e 46  INF_SPEC_IS_HINF
5250: 20 3d 20 31 2c 0d 0a 09 49 4e 46 49 4e 46 4f 5f   = 1,...INFINFO_
5260: 49 4e 46 5f 4e 41 4d 45 5f 49 53 5f 41 42 53 4f  INF_NAME_IS_ABSO
5270: 4c 55 54 45 2c 0d 0a 09 49 4e 46 49 4e 46 4f 5f  LUTE,...INFINFO_
5280: 44 45 46 41 55 4c 54 5f 53 45 41 52 43 48 2c 0d  DEFAULT_SEARCH,.
5290: 0a 09 49 4e 46 49 4e 46 4f 5f 52 45 56 45 52 53  ..INFINFO_REVERS
52a0: 45 5f 44 45 46 41 55 4c 54 5f 53 45 41 52 43 48  E_DEFAULT_SEARCH
52b0: 2c 0d 0a 09 49 4e 46 49 4e 46 4f 5f 49 4e 46 5f  ,...INFINFO_INF_
52c0: 50 41 54 48 5f 4c 49 53 54 5f 53 45 41 52 43 48  PATH_LIST_SEARCH
52d0: 20 2f 2f 20 3d 20 35 0d 0a 7d 0d 0a 0d 0a 61 6c   // = 5..}....al
52e0: 69 61 73 20 44 57 4f 52 44 20 4c 6f 67 53 65 76  ias DWORD LogSev
52f0: 65 72 69 74 79 3b 0d 0a 65 6e 75 6d 20 3a 20 4c  erity;..enum : L
5300: 6f 67 53 65 76 65 72 69 74 79 20 7b 0d 0a 09 4c  ogSeverity {...L
5310: 6f 67 53 65 76 49 6e 66 6f 72 6d 61 74 69 6f 6e  ogSevInformation
5320: 2c 0d 0a 09 4c 6f 67 53 65 76 57 61 72 6e 69 6e  ,...LogSevWarnin
5330: 67 2c 0d 0a 09 4c 6f 67 53 65 76 45 72 72 6f 72  g,...LogSevError
5340: 2c 0d 0a 09 4c 6f 67 53 65 76 46 61 74 61 6c 45  ,...LogSevFatalE
5350: 72 72 6f 72 2c 0d 0a 09 4c 6f 67 53 65 76 4d 61  rror,...LogSevMa
5360: 78 69 6d 75 6d 20 2f 2f 20 3d 20 34 0d 0a 7d 0d  ximum // = 4..}.
5370: 0a 0d 0a 63 6f 6e 73 74 20 4d 41 58 5f 49 4e 53  ...const MAX_INS
5380: 54 41 4c 4c 57 49 5a 41 52 44 5f 44 59 4e 41 50  TALLWIZARD_DYNAP
5390: 41 47 45 53 20 3d 20 32 30 3b 0d 0a 0d 0a 65 6e  AGES = 20;....en
53a0: 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 4e  um : DWORD {...N
53b0: 44 57 5f 49 4e 53 54 41 4c 4c 46 4c 41 47 5f 44  DW_INSTALLFLAG_D
53c0: 49 44 46 41 43 54 44 45 46 53 20 20 20 20 20 20  IDFACTDEFS      
53d0: 20 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0d    = 0x00000001,.
53e0: 0a 09 4e 44 57 5f 49 4e 53 54 41 4c 4c 46 4c 41  ..NDW_INSTALLFLA
53f0: 47 5f 48 41 52 44 57 41 52 45 41 4c 4c 52 45 41  G_HARDWAREALLREA
5400: 44 59 49 4e 20 3d 20 30 78 30 30 30 30 30 30 30  DYIN = 0x0000000
5410: 32 2c 0d 0a 09 4e 44 57 5f 49 4e 53 54 41 4c 4c  2,...NDW_INSTALL
5420: 46 4c 41 47 5f 4e 45 45 44 53 48 55 54 44 4f 57  FLAG_NEEDSHUTDOW
5430: 4e 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30  N       = 0x0000
5440: 30 32 30 30 2c 0d 0a 09 4e 44 57 5f 49 4e 53 54  0200,...NDW_INST
5450: 41 4c 4c 46 4c 41 47 5f 45 58 50 52 45 53 53 49  ALLFLAG_EXPRESSI
5460: 4e 54 52 4f 20 20 20 20 20 20 20 3d 20 30 78 30  NTRO       = 0x0
5470: 30 30 30 30 34 30 30 2c 0d 0a 09 4e 44 57 5f 49  0000400,...NDW_I
5480: 4e 53 54 41 4c 4c 46 4c 41 47 5f 53 4b 49 50 49  NSTALLFLAG_SKIPI
5490: 53 44 45 56 49 4e 53 54 41 4c 4c 45 44 20 3d 20  SDEVINSTALLED = 
54a0: 30 78 30 30 30 30 30 38 30 30 2c 0d 0a 09 4e 44  0x00000800,...ND
54b0: 57 5f 49 4e 53 54 41 4c 4c 46 4c 41 47 5f 4e 4f  W_INSTALLFLAG_NO
54c0: 44 45 54 45 43 54 45 44 44 45 56 53 20 20 20 20  DETECTEDDEVS    
54d0: 20 3d 20 30 78 30 30 30 30 31 30 30 30 2c 0d 0a   = 0x00001000,..
54e0: 09 4e 44 57 5f 49 4e 53 54 41 4c 4c 46 4c 41 47  .NDW_INSTALLFLAG
54f0: 5f 49 4e 53 54 41 4c 4c 53 50 45 43 49 46 49 43  _INSTALLSPECIFIC
5500: 20 20 20 20 3d 20 30 78 30 30 30 30 32 30 30 30      = 0x00002000
5510: 2c 0d 0a 09 4e 44 57 5f 49 4e 53 54 41 4c 4c 46  ,...NDW_INSTALLF
5520: 4c 41 47 5f 53 4b 49 50 43 4c 41 53 53 4c 49 53  LAG_SKIPCLASSLIS
5530: 54 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 34  T      = 0x00004
5540: 30 30 30 2c 0d 0a 09 4e 44 57 5f 49 4e 53 54 41  000,...NDW_INSTA
5550: 4c 4c 46 4c 41 47 5f 43 49 5f 50 49 43 4b 45 44  LLFLAG_CI_PICKED
5560: 5f 4f 45 4d 20 20 20 20 20 20 3d 20 30 78 30 30  _OEM      = 0x00
5570: 30 30 38 30 30 30 2c 0d 0a 09 4e 44 57 5f 49 4e  008000,...NDW_IN
5580: 53 54 41 4c 4c 46 4c 41 47 5f 50 43 4d 43 49 41  STALLFLAG_PCMCIA
5590: 4d 4f 44 45 20 20 20 20 20 20 20 20 20 3d 20 30  MODE         = 0
55a0: 78 30 30 30 31 30 30 30 30 2c 0d 0a 09 4e 44 57  x00010000,...NDW
55b0: 5f 49 4e 53 54 41 4c 4c 46 4c 41 47 5f 50 43 4d  _INSTALLFLAG_PCM
55c0: 43 49 41 44 45 56 49 43 45 20 20 20 20 20 20 20  CIADEVICE       
55d0: 3d 20 30 78 30 30 30 32 30 30 30 30 2c 0d 0a 09  = 0x00020000,...
55e0: 4e 44 57 5f 49 4e 53 54 41 4c 4c 46 4c 41 47 5f  NDW_INSTALLFLAG_
55f0: 55 53 45 52 43 41 4e 43 45 4c 20 20 20 20 20 20  USERCANCEL      
5600: 20 20 20 3d 20 30 78 30 30 30 34 30 30 30 30 2c     = 0x00040000,
5610: 0d 0a 09 4e 44 57 5f 49 4e 53 54 41 4c 4c 46 4c  ...NDW_INSTALLFL
5620: 41 47 5f 4b 4e 4f 57 4e 43 4c 41 53 53 20 20 20  AG_KNOWNCLASS   
5630: 20 20 20 20 20 20 3d 20 30 78 30 30 30 38 30 30        = 0x000800
5640: 30 30 2c 0d 0a 09 4e 44 57 5f 49 4e 53 54 41 4c  00,...NDW_INSTAL
5650: 4c 46 4c 41 47 5f 4e 45 45 44 52 45 53 54 41 52  LFLAG_NEEDRESTAR
5660: 54 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30  T        = 0x000
5670: 30 30 30 38 30 2c 0d 0a 09 4e 44 57 5f 49 4e 53  00080,...NDW_INS
5680: 54 41 4c 4c 46 4c 41 47 5f 4e 45 45 44 52 45 42  TALLFLAG_NEEDREB
5690: 4f 4f 54 20 20 20 20 20 20 20 20 20 3d 20 30 78  OOT         = 0x
56a0: 30 30 30 30 30 31 30 30 0d 0a 7d 0d 0a 0d 0a 65  00000100..}....e
56b0: 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a 09  num : DWORD {...
56c0: 53 45 54 44 49 52 49 44 5f 4e 4f 54 5f 46 55 4c  SETDIRID_NOT_FUL
56d0: 4c 5f 50 41 54 48 20 3d 20 30 78 30 30 30 30 30  L_PATH = 0x00000
56e0: 30 30 31 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a  001..}....enum :
56f0: 20 44 57 4f 52 44 20 7b 0d 0a 09 53 50 5f 43 4f   DWORD {...SP_CO
5700: 50 59 5f 44 45 4c 45 54 45 53 4f 55 52 43 45 20  PY_DELETESOURCE 
5710: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30         = 0x00000
5720: 30 31 2c 0d 0a 09 53 50 5f 43 4f 50 59 5f 52 45  01,...SP_COPY_RE
5730: 50 4c 41 43 45 4f 4e 4c 59 20 20 20 20 20 20 20  PLACEONLY       
5740: 20 20 3d 20 30 78 30 30 30 30 30 30 32 2c 0d 0a    = 0x0000002,..
5750: 09 53 50 5f 43 4f 50 59 5f 4e 45 57 45 52 20 20  .SP_COPY_NEWER  
5760: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30               = 0
5770: 78 30 30 30 30 30 30 34 2c 0d 0a 09 53 50 5f 43  x0000004,...SP_C
5780: 4f 50 59 5f 4e 45 57 45 52 5f 4f 52 5f 53 41 4d  OPY_NEWER_OR_SAM
5790: 45 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30  E       = 0x0000
57a0: 30 30 34 2c 0d 0a 09 53 50 5f 43 4f 50 59 5f 4e  004,...SP_COPY_N
57b0: 4f 4f 56 45 52 57 52 49 54 45 20 20 20 20 20 20  OOVERWRITE      
57c0: 20 20 20 3d 20 30 78 30 30 30 30 30 30 38 2c 0d     = 0x0000008,.
57d0: 0a 09 53 50 5f 43 4f 50 59 5f 4e 4f 44 45 43 4f  ..SP_COPY_NODECO
57e0: 4d 50 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  MP            = 
57f0: 30 78 30 30 30 30 30 31 30 2c 0d 0a 09 53 50 5f  0x0000010,...SP_
5800: 43 4f 50 59 5f 4c 41 4e 47 55 41 47 45 41 57 41  COPY_LANGUAGEAWA
5810: 52 45 20 20 20 20 20 20 20 3d 20 30 78 30 30 30  RE       = 0x000
5820: 30 30 32 30 2c 0d 0a 09 53 50 5f 43 4f 50 59 5f  0020,...SP_COPY_
5830: 53 4f 55 52 43 45 5f 41 42 53 4f 4c 55 54 45 20  SOURCE_ABSOLUTE 
5840: 20 20 20 20 3d 20 30 78 30 30 30 30 30 34 30 2c      = 0x0000040,
5850: 0d 0a 09 53 50 5f 43 4f 50 59 5f 53 4f 55 52 43  ...SP_COPY_SOURC
5860: 45 50 41 54 48 5f 41 42 53 4f 4c 55 54 45 20 3d  EPATH_ABSOLUTE =
5870: 20 30 78 30 30 30 30 30 38 30 2c 0d 0a 09 53 50   0x0000080,...SP
5880: 5f 43 4f 50 59 5f 49 4e 5f 55 53 45 5f 4e 45 45  _COPY_IN_USE_NEE
5890: 44 53 5f 52 45 42 4f 4f 54 20 3d 20 30 78 30 30  DS_REBOOT = 0x00
58a0: 30 30 31 30 30 2c 0d 0a 09 53 50 5f 43 4f 50 59  00100,...SP_COPY
58b0: 5f 46 4f 52 43 45 5f 49 4e 5f 55 53 45 20 20 20  _FORCE_IN_USE   
58c0: 20 20 20 20 20 3d 20 30 78 30 30 30 30 32 30 30       = 0x0000200
58d0: 2c 0d 0a 09 53 50 5f 43 4f 50 59 5f 4e 4f 53 4b  ,...SP_COPY_NOSK
58e0: 49 50 20 20 20 20 20 20 20 20 20 20 20 20 20 20  IP              
58f0: 3d 20 30 78 30 30 30 30 34 30 30 2c 0d 0a 09 53  = 0x0000400,...S
5900: 50 5f 46 4c 41 47 5f 43 41 42 49 4e 45 54 43 4f  P_FLAG_CABINETCO
5910: 4e 54 49 4e 55 41 54 49 4f 4e 20 3d 20 30 78 30  NTINUATION = 0x0
5920: 30 30 30 38 30 30 2c 0d 0a 09 53 50 5f 43 4f 50  000800,...SP_COP
5930: 59 5f 46 4f 52 43 45 5f 4e 4f 4f 56 45 52 57 52  Y_FORCE_NOOVERWR
5940: 49 54 45 20 20 20 3d 20 30 78 30 30 30 31 30 30  ITE   = 0x000100
5950: 30 2c 0d 0a 09 53 50 5f 43 4f 50 59 5f 46 4f 52  0,...SP_COPY_FOR
5960: 43 45 5f 4e 45 57 45 52 20 20 20 20 20 20 20 20  CE_NEWER        
5970: 20 3d 20 30 78 30 30 30 32 30 30 30 2c 0d 0a 09   = 0x0002000,...
5980: 53 50 5f 43 4f 50 59 5f 57 41 52 4e 49 46 53 4b  SP_COPY_WARNIFSK
5990: 49 50 20 20 20 20 20 20 20 20 20 20 3d 20 30 78  IP          = 0x
59a0: 30 30 30 34 30 30 30 2c 0d 0a 09 53 50 5f 43 4f  0004000,...SP_CO
59b0: 50 59 5f 4e 4f 42 52 4f 57 53 45 20 20 20 20 20  PY_NOBROWSE     
59c0: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 38 30         = 0x00080
59d0: 30 30 2c 0d 0a 09 53 50 5f 43 4f 50 59 5f 4e 45  00,...SP_COPY_NE
59e0: 57 45 52 5f 4f 4e 4c 59 20 20 20 20 20 20 20 20  WER_ONLY        
59f0: 20 20 3d 20 30 78 30 30 31 30 30 30 30 2c 0d 0a    = 0x0010000,..
5a00: 09 53 50 5f 43 4f 50 59 5f 53 4f 55 52 43 45 5f  .SP_COPY_SOURCE_
5a10: 53 49 53 5f 4d 41 53 54 45 52 20 20 20 3d 20 30  SIS_MASTER   = 0
5a20: 78 30 30 32 30 30 30 30 2c 0d 0a 09 53 50 5f 43  x0020000,...SP_C
5a30: 4f 50 59 5f 4f 45 4d 49 4e 46 5f 43 41 54 41 4c  OPY_OEMINF_CATAL
5a40: 4f 47 5f 4f 4e 4c 59 20 3d 20 30 78 30 30 34 30  OG_ONLY = 0x0040
5a50: 30 30 30 2c 0d 0a 09 53 50 5f 43 4f 50 59 5f 52  000,...SP_COPY_R
5a60: 45 50 4c 41 43 45 5f 42 4f 4f 54 5f 46 49 4c 45  EPLACE_BOOT_FILE
5a70: 20 20 20 3d 20 30 78 30 30 38 30 30 30 30 2c 0d     = 0x0080000,.
5a80: 0a 09 53 50 5f 43 4f 50 59 5f 4e 4f 50 52 55 4e  ..SP_COPY_NOPRUN
5a90: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  E             = 
5aa0: 30 78 30 31 30 30 30 30 30 0d 0a 7d 0d 0a 0d 0a  0x0100000..}....
5ab0: 73 74 61 74 69 63 20 69 66 28 5f 53 45 54 55 50  static if(_SETUP
5ac0: 41 50 49 5f 56 45 52 20 3e 3d 20 30 78 30 35 30  API_VER >= 0x050
5ad0: 31 29 20 7b 0d 0a 09 65 6e 75 6d 20 3a 20 44 57  1) {...enum : DW
5ae0: 4f 52 44 20 7b 0d 0a 09 09 53 50 5f 43 4f 50 59  ORD {....SP_COPY
5af0: 5f 4f 45 4d 5f 46 36 5f 49 4e 46 20 3d 20 30 78  _OEM_F6_INF = 0x
5b00: 30 32 30 30 30 30 30 0d 0a 09 7d 0d 0a 7d 0d 0a  0200000...}..}..
5b10: 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b  ..enum : DWORD {
5b20: 0d 0a 09 53 50 43 52 50 5f 53 45 43 55 52 49 54  ...SPCRP_SECURIT
5b30: 59 20 3d 20 32 33 2c 0d 0a 09 53 50 43 52 50 5f  Y = 23,...SPCRP_
5b40: 53 45 43 55 52 49 54 59 5f 53 44 53 2c 0d 0a 09  SECURITY_SDS,...
5b50: 53 50 43 52 50 5f 44 45 56 54 59 50 45 2c 0d 0a  SPCRP_DEVTYPE,..
5b60: 09 53 50 43 52 50 5f 45 58 43 4c 55 53 49 56 45  .SPCRP_EXCLUSIVE
5b70: 2c 0d 0a 09 53 50 43 52 50 5f 43 48 41 52 41 43  ,...SPCRP_CHARAC
5b80: 54 45 52 49 53 54 49 43 53 2c 0d 0a 09 53 50 43  TERISTICS,...SPC
5b90: 52 50 5f 4d 41 58 49 4d 55 4d 5f 50 52 4f 50 45  RP_MAXIMUM_PROPE
5ba0: 52 54 59 20 2f 2f 20 3d 20 32 38 0d 0a 7d 0d 0a  RTY // = 28..}..
5bb0: 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b  ..enum : DWORD {
5bc0: 0d 0a 09 53 50 44 49 54 5f 4e 4f 44 52 49 56 45  ...SPDIT_NODRIVE
5bd0: 52 2c 0d 0a 09 53 50 44 49 54 5f 43 4c 41 53 53  R,...SPDIT_CLASS
5be0: 44 52 49 56 45 52 2c 0d 0a 09 53 50 44 49 54 5f  DRIVER,...SPDIT_
5bf0: 43 4f 4d 50 41 54 44 52 49 56 45 52 20 2f 2f 20  COMPATDRIVER // 
5c00: 3d 20 32 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a  = 2..}....enum :
5c10: 20 44 57 4f 52 44 20 7b 0d 0a 09 53 50 44 52 50   DWORD {...SPDRP
5c20: 5f 44 45 56 49 43 45 44 45 53 43 2c 0d 0a 09 53  _DEVICEDESC,...S
5c30: 50 44 52 50 5f 48 41 52 44 57 41 52 45 49 44 2c  PDRP_HARDWAREID,
5c40: 0d 0a 09 53 50 44 52 50 5f 43 4f 4d 50 41 54 49  ...SPDRP_COMPATI
5c50: 42 4c 45 49 44 53 2c 0d 0a 09 53 50 44 52 50 5f  BLEIDS,...SPDRP_
5c60: 55 4e 55 53 45 44 30 2c 0d 0a 09 53 50 44 52 50  UNUSED0,...SPDRP
5c70: 5f 53 45 52 56 49 43 45 2c 0d 0a 09 53 50 44 52  _SERVICE,...SPDR
5c80: 50 5f 55 4e 55 53 45 44 31 2c 0d 0a 09 53 50 44  P_UNUSED1,...SPD
5c90: 52 50 5f 55 4e 55 53 45 44 32 2c 0d 0a 09 53 50  RP_UNUSED2,...SP
5ca0: 44 52 50 5f 43 4c 41 53 53 2c 0d 0a 09 53 50 44  DRP_CLASS,...SPD
5cb0: 52 50 5f 43 4c 41 53 53 47 55 49 44 2c 0d 0a 09  RP_CLASSGUID,...
5cc0: 53 50 44 52 50 5f 44 52 49 56 45 52 2c 0d 0a 09  SPDRP_DRIVER,...
5cd0: 53 50 44 52 50 5f 43 4f 4e 46 49 47 46 4c 41 47  SPDRP_CONFIGFLAG
5ce0: 53 2c 0d 0a 09 53 50 44 52 50 5f 4d 46 47 2c 0d  S,...SPDRP_MFG,.
5cf0: 0a 09 53 50 44 52 50 5f 46 52 49 45 4e 44 4c 59  ..SPDRP_FRIENDLY
5d00: 4e 41 4d 45 2c 0d 0a 09 53 50 44 52 50 5f 4c 4f  NAME,...SPDRP_LO
5d10: 43 41 54 49 4f 4e 5f 49 4e 46 4f 52 4d 41 54 49  CATION_INFORMATI
5d20: 4f 4e 2c 0d 0a 09 53 50 44 52 50 5f 50 48 59 53  ON,...SPDRP_PHYS
5d30: 49 43 41 4c 5f 44 45 56 49 43 45 5f 4f 42 4a 45  ICAL_DEVICE_OBJE
5d40: 43 54 5f 4e 41 4d 45 2c 0d 0a 09 53 50 44 52 50  CT_NAME,...SPDRP
5d50: 5f 43 41 50 41 42 49 4c 49 54 49 45 53 2c 0d 0a  _CAPABILITIES,..
5d60: 09 53 50 44 52 50 5f 55 49 5f 4e 55 4d 42 45 52  .SPDRP_UI_NUMBER
5d70: 2c 0d 0a 09 53 50 44 52 50 5f 55 50 50 45 52 46  ,...SPDRP_UPPERF
5d80: 49 4c 54 45 52 53 2c 0d 0a 09 53 50 44 52 50 5f  ILTERS,...SPDRP_
5d90: 4c 4f 57 45 52 46 49 4c 54 45 52 53 2c 0d 0a 09  LOWERFILTERS,...
5da0: 53 50 44 52 50 5f 42 55 53 54 59 50 45 47 55 49  SPDRP_BUSTYPEGUI
5db0: 44 2c 0d 0a 09 53 50 44 52 50 5f 4c 45 47 41 43  D,...SPDRP_LEGAC
5dc0: 59 42 55 53 54 59 50 45 2c 0d 0a 09 53 50 44 52  YBUSTYPE,...SPDR
5dd0: 50 5f 42 55 53 4e 55 4d 42 45 52 2c 0d 0a 09 53  P_BUSNUMBER,...S
5de0: 50 44 52 50 5f 45 4e 55 4d 45 52 41 54 4f 52 5f  PDRP_ENUMERATOR_
5df0: 4e 41 4d 45 2c 0d 0a 09 53 50 44 52 50 5f 53 45  NAME,...SPDRP_SE
5e00: 43 55 52 49 54 59 2c 0d 0a 09 53 50 44 52 50 5f  CURITY,...SPDRP_
5e10: 53 45 43 55 52 49 54 59 5f 53 44 53 2c 0d 0a 09  SECURITY_SDS,...
5e20: 53 50 44 52 50 5f 44 45 56 54 59 50 45 2c 0d 0a  SPDRP_DEVTYPE,..
5e30: 09 53 50 44 52 50 5f 45 58 43 4c 55 53 49 56 45  .SPDRP_EXCLUSIVE
5e40: 2c 0d 0a 09 53 50 44 52 50 5f 43 48 41 52 41 43  ,...SPDRP_CHARAC
5e50: 54 45 52 49 53 54 49 43 53 2c 0d 0a 09 53 50 44  TERISTICS,...SPD
5e60: 52 50 5f 41 44 44 52 45 53 53 2c 20 2f 2f 20 3d  RP_ADDRESS, // =
5e70: 20 32 38 0d 0a 09 53 50 44 52 50 5f 55 49 5f 4e   28...SPDRP_UI_N
5e80: 55 4d 42 45 52 5f 44 45 53 43 5f 46 4f 52 4d 41  UMBER_DESC_FORMA
5e90: 54 20 3d 20 33 30 2c 0d 0a 09 53 50 44 52 50 5f  T = 30,...SPDRP_
5ea0: 4d 41 58 49 4d 55 4d 5f 50 52 4f 50 45 52 54 59  MAXIMUM_PROPERTY
5eb0: 20 20 20 20 20 20 3d 20 33 31 0d 0a 7d 0d 0a 0d        = 31..}...
5ec0: 0a 65 6e 75 6d 20 3a 20 55 49 4e 54 20 7b 0d 0a  .enum : UINT {..
5ed0: 09 53 50 44 53 4c 5f 49 47 4e 4f 52 45 5f 44 49  .SPDSL_IGNORE_DI
5ee0: 53 4b 20 3d 20 31 2c 0d 0a 09 53 50 44 53 4c 5f  SK = 1,...SPDSL_
5ef0: 44 49 53 41 4c 4c 4f 57 5f 4e 45 47 41 54 49 56  DISALLOW_NEGATIV
5f00: 45 5f 41 44 4a 55 53 54 0d 0a 7d 0d 0a 0d 0a 65  E_ADJUST..}....e
5f10: 6e 75 6d 20 3a 20 55 49 4e 54 20 7b 0d 0a 09 53  num : UINT {...S
5f20: 50 46 49 4c 45 4e 4f 54 49 46 59 5f 53 54 41 52  PFILENOTIFY_STAR
5f30: 54 51 55 45 55 45 20 3d 20 31 2c 0d 0a 09 53 50  TQUEUE = 1,...SP
5f40: 46 49 4c 45 4e 4f 54 49 46 59 5f 45 4e 44 51 55  FILENOTIFY_ENDQU
5f50: 45 55 45 2c 0d 0a 09 53 50 46 49 4c 45 4e 4f 54  EUE,...SPFILENOT
5f60: 49 46 59 5f 53 54 41 52 54 53 55 42 51 55 45 55  IFY_STARTSUBQUEU
5f70: 45 2c 0d 0a 09 53 50 46 49 4c 45 4e 4f 54 49 46  E,...SPFILENOTIF
5f80: 59 5f 45 4e 44 53 55 42 51 55 45 55 45 2c 0d 0a  Y_ENDSUBQUEUE,..
5f90: 09 53 50 46 49 4c 45 4e 4f 54 49 46 59 5f 53 54  .SPFILENOTIFY_ST
5fa0: 41 52 54 44 45 4c 45 54 45 2c 0d 0a 09 53 50 46  ARTDELETE,...SPF
5fb0: 49 4c 45 4e 4f 54 49 46 59 5f 45 4e 44 44 45 4c  ILENOTIFY_ENDDEL
5fc0: 45 54 45 2c 0d 0a 09 53 50 46 49 4c 45 4e 4f 54  ETE,...SPFILENOT
5fd0: 49 46 59 5f 44 45 4c 45 54 45 45 52 52 4f 52 2c  IFY_DELETEERROR,
5fe0: 0d 0a 09 53 50 46 49 4c 45 4e 4f 54 49 46 59 5f  ...SPFILENOTIFY_
5ff0: 53 54 41 52 54 52 45 4e 41 4d 45 2c 0d 0a 09 53  STARTRENAME,...S
6000: 50 46 49 4c 45 4e 4f 54 49 46 59 5f 45 4e 44 52  PFILENOTIFY_ENDR
6010: 45 4e 41 4d 45 2c 0d 0a 09 53 50 46 49 4c 45 4e  ENAME,...SPFILEN
6020: 4f 54 49 46 59 5f 52 45 4e 41 4d 45 45 52 52 4f  OTIFY_RENAMEERRO
6030: 52 2c 0d 0a 09 53 50 46 49 4c 45 4e 4f 54 49 46  R,...SPFILENOTIF
6040: 59 5f 53 54 41 52 54 43 4f 50 59 2c 0d 0a 09 53  Y_STARTCOPY,...S
6050: 50 46 49 4c 45 4e 4f 54 49 46 59 5f 45 4e 44 43  PFILENOTIFY_ENDC
6060: 4f 50 59 2c 0d 0a 09 53 50 46 49 4c 45 4e 4f 54  OPY,...SPFILENOT
6070: 49 46 59 5f 43 4f 50 59 45 52 52 4f 52 2c 0d 0a  IFY_COPYERROR,..
6080: 09 53 50 46 49 4c 45 4e 4f 54 49 46 59 5f 4e 45  .SPFILENOTIFY_NE
6090: 45 44 4d 45 44 49 41 2c 0d 0a 09 53 50 46 49 4c  EDMEDIA,...SPFIL
60a0: 45 4e 4f 54 49 46 59 5f 51 55 45 55 45 53 43 41  ENOTIFY_QUEUESCA
60b0: 4e 2c 0d 0a 09 53 50 46 49 4c 45 4e 4f 54 49 46  N,...SPFILENOTIF
60c0: 59 5f 43 41 42 49 4e 45 54 49 4e 46 4f 2c 0d 0a  Y_CABINETINFO,..
60d0: 09 53 50 46 49 4c 45 4e 4f 54 49 46 59 5f 46 49  .SPFILENOTIFY_FI
60e0: 4c 45 49 4e 43 41 42 49 4e 45 54 2c 0d 0a 09 53  LEINCABINET,...S
60f0: 50 46 49 4c 45 4e 4f 54 49 46 59 5f 4e 45 45 44  PFILENOTIFY_NEED
6100: 4e 45 57 43 41 42 49 4e 45 54 2c 0d 0a 09 53 50  NEWCABINET,...SP
6110: 46 49 4c 45 4e 4f 54 49 46 59 5f 46 49 4c 45 45  FILENOTIFY_FILEE
6120: 58 54 52 41 43 54 45 44 2c 0d 0a 09 53 50 46 49  XTRACTED,...SPFI
6130: 4c 45 4e 4f 54 49 46 59 5f 46 49 4c 45 4f 50 44  LENOTIFY_FILEOPD
6140: 45 4c 41 59 45 44 2c 0d 0a 09 53 50 46 49 4c 45  ELAYED,...SPFILE
6150: 4e 4f 54 49 46 59 5f 53 54 41 52 54 42 41 43 4b  NOTIFY_STARTBACK
6160: 55 50 2c 0d 0a 09 53 50 46 49 4c 45 4e 4f 54 49  UP,...SPFILENOTI
6170: 46 59 5f 42 41 43 4b 55 50 45 52 52 4f 52 2c 0d  FY_BACKUPERROR,.
6180: 0a 09 53 50 46 49 4c 45 4e 4f 54 49 46 59 5f 45  ..SPFILENOTIFY_E
6190: 4e 44 42 41 43 4b 55 50 2c 0d 0a 09 53 50 46 49  NDBACKUP,...SPFI
61a0: 4c 45 4e 4f 54 49 46 59 5f 51 55 45 55 45 53 43  LENOTIFY_QUEUESC
61b0: 41 4e 5f 45 58 2c 0d 0a 09 53 50 46 49 4c 45 4e  AN_EX,...SPFILEN
61c0: 4f 54 49 46 59 5f 53 54 41 52 54 52 45 47 49 53  OTIFY_STARTREGIS
61d0: 54 52 41 54 49 4f 4e 2c 20 2f 2f 20 3d 20 32 35  TRATION, // = 25
61e0: 0d 0a 09 53 50 46 49 4c 45 4e 4f 54 49 46 59 5f  ...SPFILENOTIFY_
61f0: 45 4e 44 52 45 47 49 53 54 52 41 54 49 4f 4e 20  ENDREGISTRATION 
6200: 3d 20 33 32 2c 0d 0a 09 53 50 46 49 4c 45 4e 4f  = 32,...SPFILENO
6210: 54 49 46 59 5f 4c 41 4e 47 4d 49 53 4d 41 54 43  TIFY_LANGMISMATC
6220: 48 20 20 20 20 3d 20 30 78 30 30 30 31 30 30 30  H    = 0x0001000
6230: 30 2c 0d 0a 09 53 50 46 49 4c 45 4e 4f 54 49 46  0,...SPFILENOTIF
6240: 59 5f 54 41 52 47 45 54 45 58 49 53 54 53 20 20  Y_TARGETEXISTS  
6250: 20 20 3d 20 30 78 30 30 30 32 30 30 30 30 2c 0d    = 0x00020000,.
6260: 0a 09 53 50 46 49 4c 45 4e 4f 54 49 46 59 5f 54  ..SPFILENOTIFY_T
6270: 41 52 47 45 54 4e 45 57 45 52 20 20 20 20 20 3d  ARGETNEWER     =
6280: 20 30 78 30 30 30 34 30 30 30 30 0d 0a 7d 0d 0a   0x00040000..}..
6290: 0d 0a 73 74 61 74 69 63 20 69 66 28 5f 53 45 54  ..static if(_SET
62a0: 55 50 41 50 49 5f 56 45 52 20 3e 3d 20 30 78 30  UPAPI_VER >= 0x0
62b0: 35 30 31 29 20 7b 0d 0a 09 65 6e 75 6d 20 3a 20  501) {...enum : 
62c0: 55 49 4e 54 20 7b 0d 0a 09 09 53 50 46 49 4c 45  UINT {....SPFILE
62d0: 4e 4f 54 49 46 59 5f 51 55 45 55 45 53 43 41 4e  NOTIFY_QUEUESCAN
62e0: 5f 53 49 47 4e 45 52 49 4e 46 4f 20 3d 20 30 78  _SIGNERINFO = 0x
62f0: 30 30 30 30 30 30 34 30 0d 0a 09 7d 0d 0a 7d 0d  00000040...}..}.
6300: 0a 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20  ...enum : DWORD 
6310: 7b 0d 0a 09 53 50 46 49 4c 45 4c 4f 47 5f 53 59  {...SPFILELOG_SY
6320: 53 54 45 4d 4c 4f 47 20 3d 20 30 78 30 30 30 30  STEMLOG = 0x0000
6330: 30 30 30 31 2c 0d 0a 09 53 50 46 49 4c 45 4c 4f  0001,...SPFILELO
6340: 47 5f 4f 45 4d 46 49 4c 45 20 20 20 3d 20 30 78  G_OEMFILE   = 0x
6350: 30 30 30 30 30 30 30 31 2c 0d 0a 09 53 50 46 49  00000001,...SPFI
6360: 4c 45 4c 4f 47 5f 46 4f 52 43 45 4e 45 57 20 20  LELOG_FORCENEW  
6370: 3d 20 30 78 30 30 30 30 30 30 30 32 2c 0d 0a 09  = 0x00000002,...
6380: 53 50 46 49 4c 45 4c 4f 47 5f 51 55 45 52 59 4f  SPFILELOG_QUERYO
6390: 4e 4c 59 20 3d 20 30 78 30 30 30 30 30 30 30 34  NLY = 0x00000004
63a0: 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 49 4e  ..}....enum : IN
63b0: 54 20 7b 0d 0a 09 53 50 46 49 4c 45 51 5f 46 49  T {...SPFILEQ_FI
63c0: 4c 45 5f 49 4e 5f 55 53 45 20 20 20 20 20 20 20  LE_IN_USE       
63d0: 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0d 0a   = 0x00000001,..
63e0: 09 53 50 46 49 4c 45 51 5f 52 45 42 4f 4f 54 5f  .SPFILEQ_REBOOT_
63f0: 52 45 43 4f 4d 4d 45 4e 44 45 44 20 3d 20 30 78  RECOMMENDED = 0x
6400: 30 30 30 30 30 30 30 32 2c 0d 0a 09 53 50 46 49  00000002,...SPFI
6410: 4c 45 51 5f 52 45 42 4f 4f 54 5f 49 4e 5f 50 52  LEQ_REBOOT_IN_PR
6420: 4f 47 52 45 53 53 20 3d 20 30 78 30 30 30 30 30  OGRESS = 0x00000
6430: 30 30 34 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a  004..}....enum :
6440: 20 44 57 4f 52 44 20 7b 0d 0a 09 53 50 49 4e 54   DWORD {...SPINT
6450: 5f 41 43 54 49 56 45 20 20 3d 20 30 78 30 30 30  _ACTIVE  = 0x000
6460: 30 30 30 30 31 2c 0d 0a 09 53 50 49 4e 54 5f 44  00001,...SPINT_D
6470: 45 46 41 55 4c 54 20 3d 20 30 78 30 30 30 30 30  EFAULT = 0x00000
6480: 30 30 32 2c 0d 0a 09 53 50 49 4e 54 5f 52 45 4d  002,...SPINT_REM
6490: 4f 56 45 44 20 3d 20 30 78 30 30 30 30 30 30 30  OVED = 0x0000000
64a0: 34 0d 0a 7d 0d 0a 0d 0a 64 65 70 72 65 63 61 74  4..}....deprecat
64b0: 65 64 20 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20  ed enum : DWORD 
64c0: 7b 0d 0a 09 53 50 49 44 5f 41 43 54 49 56 45 20  {...SPID_ACTIVE 
64d0: 20 3d 20 53 50 49 4e 54 5f 41 43 54 49 56 45 2c   = SPINT_ACTIVE,
64e0: 0d 0a 09 53 50 49 44 5f 44 45 46 41 55 4c 54 20  ...SPID_DEFAULT 
64f0: 3d 20 53 50 49 4e 54 5f 44 45 46 41 55 4c 54 2c  = SPINT_DEFAULT,
6500: 0d 0a 09 53 50 49 44 5f 52 45 4d 4f 56 45 44 20  ...SPID_REMOVED 
6510: 3d 20 53 50 49 4e 54 5f 52 45 4d 4f 56 45 44 0d  = SPINT_REMOVED.
6520: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 55 49 4e  .}....enum : UIN
6530: 54 20 7b 0d 0a 09 53 50 49 4e 53 54 5f 4c 4f 47  T {...SPINST_LOG
6540: 43 4f 4e 46 49 47 20 20 20 20 20 20 20 20 20 20  CONFIG          
6550: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
6560: 30 31 2c 0d 0a 09 53 50 49 4e 53 54 5f 49 4e 49  01,...SPINST_INI
6570: 46 49 4c 45 53 20 20 20 20 20 20 20 20 20 20 20  FILES           
6580: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
6590: 30 32 2c 0d 0a 09 53 50 49 4e 53 54 5f 52 45 47  02,...SPINST_REG
65a0: 49 53 54 52 59 20 20 20 20 20 20 20 20 20 20 20  ISTRY           
65b0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
65c0: 30 34 2c 0d 0a 09 53 50 49 4e 53 54 5f 49 4e 49  04,...SPINST_INI
65d0: 32 52 45 47 20 20 20 20 20 20 20 20 20 20 20 20  2REG            
65e0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
65f0: 30 38 2c 0d 0a 09 53 50 49 4e 53 54 5f 46 49 4c  08,...SPINST_FIL
6600: 45 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ES              
6610: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
6620: 31 30 2c 0d 0a 09 53 50 49 4e 53 54 5f 42 49 54  10,...SPINST_BIT
6630: 52 45 47 20 20 20 20 20 20 20 20 20 20 20 20 20  REG             
6640: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
6650: 32 30 2c 0d 0a 09 53 50 49 4e 53 54 5f 52 45 47  20,...SPINST_REG
6660: 53 56 52 20 20 20 20 20 20 20 20 20 20 20 20 20  SVR             
6670: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
6680: 34 30 2c 0d 0a 09 53 50 49 4e 53 54 5f 55 4e 52  40,...SPINST_UNR
6690: 45 47 53 56 52 20 20 20 20 20 20 20 20 20 20 20  EGSVR           
66a0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
66b0: 38 30 2c 0d 0a 09 53 50 49 4e 53 54 5f 50 52 4f  80,...SPINST_PRO
66c0: 46 49 4c 45 49 54 45 4d 53 20 20 20 20 20 20 20  FILEITEMS       
66d0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 31        = 0x000001
66e0: 30 30 2c 0d 0a 09 53 50 49 4e 53 54 5f 53 49 4e  00,...SPINST_SIN
66f0: 47 4c 45 53 45 43 54 49 4f 4e 20 20 20 20 20 20  GLESECTION      
6700: 20 20 20 20 20 20 3d 20 30 78 30 30 30 31 30 30        = 0x000100
6710: 30 30 2c 0d 0a 09 53 50 49 4e 53 54 5f 4c 4f 47  00,...SPINST_LOG
6720: 43 4f 4e 46 49 47 5f 49 53 5f 46 4f 52 43 45 44  CONFIG_IS_FORCED
6730: 20 20 20 20 20 20 3d 20 30 78 30 30 30 32 30 30        = 0x000200
6740: 30 30 2c 0d 0a 09 53 50 49 4e 53 54 5f 4c 4f 47  00,...SPINST_LOG
6750: 43 4f 4e 46 49 47 53 5f 41 52 45 5f 4f 56 45 52  CONFIGS_ARE_OVER
6760: 52 49 44 45 53 20 3d 20 30 78 30 30 30 34 30 30  RIDES = 0x000400
6770: 30 30 0d 0a 7d 0d 0a 0d 0a 73 74 61 74 69 63 20  00..}....static 
6780: 69 66 28 5f 53 45 54 55 50 41 50 49 5f 56 45 52  if(_SETUPAPI_VER
6790: 20 3e 3d 20 30 78 30 35 30 31 29 20 7b 0d 0a 09   >= 0x0501) {...
67a0: 65 6e 75 6d 20 3a 20 55 49 4e 54 20 7b 0d 0a 09  enum : UINT {...
67b0: 09 53 50 49 4e 53 54 5f 43 4f 50 59 49 4e 46 20  .SPINST_COPYINF 
67c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
67d0: 30 78 30 30 30 30 30 32 30 30 2c 0d 0a 09 09 53  0x00000200,....S
67e0: 50 49 4e 53 54 5f 41 4c 4c 20 20 20 20 20 20 20  PINST_ALL       
67f0: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78              = 0x
6800: 30 30 30 30 30 33 66 66 2c 0d 0a 09 09 53 50 49  000003ff,....SPI
6810: 4e 53 54 5f 52 45 47 49 53 54 45 52 43 41 4c 4c  NST_REGISTERCALL
6820: 42 41 43 4b 41 57 41 52 45 20 3d 20 30 78 30 30  BACKAWARE = 0x00
6830: 30 38 30 30 30 30 0d 0a 09 7d 0d 0a 7d 20 65 6c  080000...}..} el
6840: 73 65 20 7b 0d 0a 09 65 6e 75 6d 20 3a 20 55 49  se {...enum : UI
6850: 4e 54 20 7b 0d 0a 09 09 53 50 49 4e 53 54 5f 41  NT {....SPINST_A
6860: 4c 4c 20 3d 20 30 78 30 30 30 30 30 31 66 66 0d  LL = 0x000001ff.
6870: 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a  ..}..}....enum :
6880: 20 44 57 4f 52 44 20 7b 0d 0a 09 53 50 4f 53 54   DWORD {...SPOST
6890: 5f 4e 4f 4e 45 2c 0d 0a 09 53 50 4f 53 54 5f 50  _NONE,...SPOST_P
68a0: 41 54 48 2c 0d 0a 09 53 50 4f 53 54 5f 55 52 4c  ATH,...SPOST_URL
68b0: 2c 0d 0a 09 53 50 4f 53 54 5f 4d 41 58 20 2f 2f  ,...SPOST_MAX //
68c0: 20 3d 20 33 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20   = 3..}....enum 
68d0: 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 53 50 50 53  : DWORD {...SPPS
68e0: 52 5f 53 45 4c 45 43 54 5f 44 45 56 49 43 45 5f  R_SELECT_DEVICE_
68f0: 52 45 53 4f 55 52 43 45 53 20 3d 20 31 2c 0d 0a  RESOURCES = 1,..
6900: 09 53 50 50 53 52 5f 45 4e 55 4d 5f 42 41 53 49  .SPPSR_ENUM_BASI
6910: 43 5f 44 45 56 49 43 45 5f 50 52 4f 50 45 52 54  C_DEVICE_PROPERT
6920: 49 45 53 2c 0d 0a 09 53 50 50 53 52 5f 45 4e 55  IES,...SPPSR_ENU
6930: 4d 5f 41 44 56 5f 44 45 56 49 43 45 5f 50 52 4f  M_ADV_DEVICE_PRO
6940: 50 45 52 54 49 45 53 0d 0a 7d 0d 0a 0d 0a 65 6e  PERTIES..}....en
6950: 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 53  um : DWORD {...S
6960: 50 51 5f 53 43 41 4e 5f 46 49 4c 45 5f 50 52 45  PQ_SCAN_FILE_PRE
6970: 53 45 4e 43 45 20 20 20 20 3d 20 30 78 30 30 30  SENCE    = 0x000
6980: 30 30 30 30 31 2c 0d 0a 09 53 50 51 5f 53 43 41  00001,...SPQ_SCA
6990: 4e 5f 46 49 4c 45 5f 56 41 4c 49 44 49 54 59 20  N_FILE_VALIDITY 
69a0: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 32 2c     = 0x00000002,
69b0: 0d 0a 09 53 50 51 5f 53 43 41 4e 5f 55 53 45 5f  ...SPQ_SCAN_USE_
69c0: 43 41 4c 4c 42 41 43 4b 20 20 20 20 20 3d 20 30  CALLBACK     = 0
69d0: 78 30 30 30 30 30 30 30 34 2c 0d 0a 09 53 50 51  x00000004,...SPQ
69e0: 5f 53 43 41 4e 5f 55 53 45 5f 43 41 4c 4c 42 41  _SCAN_USE_CALLBA
69f0: 43 4b 45 58 20 20 20 3d 20 30 78 30 30 30 30 30  CKEX   = 0x00000
6a00: 30 30 38 2c 0d 0a 09 53 50 51 5f 53 43 41 4e 5f  008,...SPQ_SCAN_
6a10: 49 4e 46 4f 52 4d 5f 55 53 45 52 20 20 20 20 20  INFORM_USER     
6a20: 20 3d 20 30 78 30 30 30 30 30 30 31 30 2c 0d 0a   = 0x00000010,..
6a30: 09 53 50 51 5f 53 43 41 4e 5f 50 52 55 4e 45 5f  .SPQ_SCAN_PRUNE_
6a40: 43 4f 50 59 5f 51 55 45 55 45 20 3d 20 30 78 30  COPY_QUEUE = 0x0
6a50: 30 30 30 30 30 32 30 0d 0a 7d 0d 0a 0d 0a 73 74  0000020..}....st
6a60: 61 74 69 63 20 69 66 28 5f 53 45 54 55 50 41 50  atic if(_SETUPAP
6a70: 49 5f 56 45 52 20 3e 3d 20 30 78 30 35 30 31 29  I_VER >= 0x0501)
6a80: 20 7b 0d 0a 09 65 6e 75 6d 20 3a 20 44 57 4f 52   {...enum : DWOR
6a90: 44 20 7b 0d 0a 09 09 53 50 51 5f 53 43 41 4e 5f  D {....SPQ_SCAN_
6aa0: 55 53 45 5f 43 41 4c 4c 42 41 43 4b 5f 53 49 47  USE_CALLBACK_SIG
6ab0: 4e 45 52 49 4e 46 4f 20 3d 20 30 78 30 30 30 30  NERINFO = 0x0000
6ac0: 30 30 34 30 2c 0d 0a 09 09 53 50 51 5f 53 43 41  0040,....SPQ_SCA
6ad0: 4e 5f 50 52 55 4e 45 5f 44 45 4c 52 45 4e 20 20  N_PRUNE_DELREN  
6ae0: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
6af0: 30 30 30 30 38 30 0d 0a 09 7d 0d 0a 7d 0d 0a 0d  000080...}..}...
6b00: 0a 65 6e 75 6d 20 3a 20 55 49 4e 54 5f 50 54 52  .enum : UINT_PTR
6b10: 20 7b 0d 0a 09 53 50 51 5f 44 45 4c 41 59 45 44   {...SPQ_DELAYED
6b20: 5f 43 4f 50 59 20 3d 20 30 78 30 30 30 30 30 30  _COPY = 0x000000
6b30: 30 31 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  01..}....enum : 
6b40: 44 57 4f 52 44 20 7b 0d 0a 09 53 50 52 44 49 5f  DWORD {...SPRDI_
6b50: 46 49 4e 44 5f 44 55 50 53 20 3d 20 30 78 30 30  FIND_DUPS = 0x00
6b60: 30 30 30 30 30 31 2c 0d 0a 7d 0d 0a 0d 0a 65 6e  000001,..}....en
6b70: 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 53  um : DWORD {...S
6b80: 50 53 56 43 49 4e 53 54 5f 54 41 47 54 4f 46 52  PSVCINST_TAGTOFR
6b90: 4f 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 20  ONT             
6ba0: 20 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0d    = 0x00000001,.
6bb0: 0a 09 53 50 53 56 43 49 4e 53 54 5f 41 53 53 4f  ..SPSVCINST_ASSO
6bc0: 43 53 45 52 56 49 43 45 20 20 20 20 20 20 20 20  CSERVICE        
6bd0: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30       = 0x0000000
6be0: 32 2c 0d 0a 09 53 50 53 56 43 49 4e 53 54 5f 44  2,...SPSVCINST_D
6bf0: 45 4c 45 54 45 45 56 45 4e 54 4c 4f 47 45 4e 54  ELETEEVENTLOGENT
6c00: 52 59 20 20 20 20 20 20 3d 20 30 78 30 30 30 30  RY      = 0x0000
6c10: 30 30 30 34 2c 0d 0a 09 53 50 53 56 43 49 4e 53  0004,...SPSVCINS
6c20: 54 5f 4e 4f 43 4c 4f 42 42 45 52 5f 44 49 53 50  T_NOCLOBBER_DISP
6c30: 4c 41 59 4e 41 4d 45 20 20 20 20 3d 20 30 78 30  LAYNAME    = 0x0
6c40: 30 30 30 30 30 30 38 2c 0d 0a 09 53 50 53 56 43  0000008,...SPSVC
6c50: 49 4e 53 54 5f 4e 4f 43 4c 4f 42 42 45 52 5f 53  INST_NOCLOBBER_S
6c60: 54 41 52 54 54 59 50 45 20 20 20 20 20 20 3d 20  TARTTYPE      = 
6c70: 30 78 30 30 30 30 30 30 31 30 2c 0d 0a 09 53 50  0x00000010,...SP
6c80: 53 56 43 49 4e 53 54 5f 4e 4f 43 4c 4f 42 42 45  SVCINST_NOCLOBBE
6c90: 52 5f 45 52 52 4f 52 43 4f 4e 54 52 4f 4c 20 20  R_ERRORCONTROL  
6ca0: 20 3d 20 30 78 30 30 30 30 30 30 32 30 2c 0d 0a   = 0x00000020,..
6cb0: 09 53 50 53 56 43 49 4e 53 54 5f 4e 4f 43 4c 4f  .SPSVCINST_NOCLO
6cc0: 42 42 45 52 5f 4c 4f 41 44 4f 52 44 45 52 47 52  BBER_LOADORDERGR
6cd0: 4f 55 50 20 3d 20 30 78 30 30 30 30 30 30 34 30  OUP = 0x00000040
6ce0: 2c 0d 0a 09 53 50 53 56 43 49 4e 53 54 5f 4e 4f  ,...SPSVCINST_NO
6cf0: 43 4c 4f 42 42 45 52 5f 44 45 50 45 4e 44 45 4e  CLOBBER_DEPENDEN
6d00: 43 49 45 53 20 20 20 3d 20 30 78 30 30 30 30 30  CIES   = 0x00000
6d10: 30 38 30 2c 0d 0a 09 53 50 53 56 43 49 4e 53 54  080,...SPSVCINST
6d20: 5f 4e 4f 43 4c 4f 42 42 45 52 5f 44 45 53 43 52  _NOCLOBBER_DESCR
6d30: 49 50 54 49 4f 4e 20 20 20 20 3d 20 30 78 30 30  IPTION    = 0x00
6d40: 30 30 30 31 30 30 2c 0d 0a 09 53 50 53 56 43 49  000100,...SPSVCI
6d50: 4e 53 54 5f 53 54 4f 50 53 45 52 56 49 43 45 20  NST_STOPSERVICE 
6d60: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30               = 0
6d70: 78 30 30 30 30 30 32 30 30 0d 0a 7d 0d 0a 0d 0a  x00000200..}....
6d80: 73 74 61 74 69 63 20 69 66 28 5f 53 45 54 55 50  static if(_SETUP
6d90: 41 50 49 5f 56 45 52 20 3e 3d 20 30 78 30 35 30  API_VER >= 0x050
6da0: 31 29 20 7b 0d 0a 09 65 6e 75 6d 20 3a 20 44 57  1) {...enum : DW
6db0: 4f 52 44 20 7b 0d 0a 09 09 53 50 53 56 43 49 4e  ORD {....SPSVCIN
6dc0: 53 54 5f 43 4c 4f 42 42 45 52 5f 53 45 43 55 52  ST_CLOBBER_SECUR
6dd0: 49 54 59 20 3d 20 30 78 30 30 30 30 30 34 30 30  ITY = 0x00000400
6de0: 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20  ...}..}....enum 
6df0: 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 53 50 57 50  : DWORD {...SPWP
6e00: 54 5f 53 45 4c 45 43 54 44 45 56 49 43 45 20 3d  T_SELECTDEVICE =
6e10: 20 30 78 30 30 30 30 30 30 30 31 0d 0a 7d 0d 0a   0x00000001..}..
6e20: 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b  ..enum : DWORD {
6e30: 0d 0a 09 53 50 57 50 5f 55 53 45 5f 44 45 56 49  ...SPWP_USE_DEVI
6e40: 4e 46 4f 5f 44 41 54 41 20 3d 20 30 78 30 30 30  NFO_DATA = 0x000
6e50: 30 30 30 30 31 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d  00001..}....enum
6e60: 20 3a 20 55 49 4e 54 20 7b 0d 0a 09 53 52 43 49   : UINT {...SRCI
6e70: 4e 46 4f 5f 50 41 54 48 20 3d 20 31 2c 0d 0a 09  NFO_PATH = 1,...
6e80: 53 52 43 49 4e 46 4f 5f 54 41 47 46 49 4c 45 2c  SRCINFO_TAGFILE,
6e90: 0d 0a 09 53 52 43 49 4e 46 4f 5f 44 45 53 43 52  ...SRCINFO_DESCR
6ea0: 49 50 54 49 4f 4e 2c 0d 0a 09 53 52 43 49 4e 46  IPTION,...SRCINF
6eb0: 4f 5f 46 4c 41 47 53 20 2f 2f 20 3d 20 34 0d 0a  O_FLAGS // = 4..
6ec0: 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f 52  }....enum : DWOR
6ed0: 44 20 7b 0d 0a 09 53 52 43 4c 49 53 54 5f 54 45  D {...SRCLIST_TE
6ee0: 4d 50 4f 52 41 52 59 20 20 20 20 20 20 20 3d 20  MPORARY       = 
6ef0: 30 78 30 30 30 30 30 30 30 31 2c 0d 0a 09 53 52  0x00000001,...SR
6f00: 43 4c 49 53 54 5f 4e 4f 42 52 4f 57 53 45 20 20  CLIST_NOBROWSE  
6f10: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
6f20: 30 32 2c 0d 0a 09 53 52 43 4c 49 53 54 5f 53 59  02,...SRCLIST_SY
6f30: 53 54 45 4d 20 20 20 20 20 20 20 20 20 20 3d 20  STEM          = 
6f40: 30 78 30 30 30 30 30 30 31 30 2c 0d 0a 09 53 52  0x00000010,...SR
6f50: 43 4c 49 53 54 5f 55 53 45 52 20 20 20 20 20 20  CLIST_USER      
6f60: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
6f70: 32 30 2c 0d 0a 09 53 52 43 4c 49 53 54 5f 53 59  20,...SRCLIST_SY
6f80: 53 49 46 41 44 4d 49 4e 20 20 20 20 20 20 3d 20  SIFADMIN      = 
6f90: 30 78 30 30 30 30 30 30 34 30 2c 0d 0a 09 53 52  0x00000040,...SR
6fa0: 43 4c 49 53 54 5f 53 55 42 44 49 52 53 20 20 20  CLIST_SUBDIRS   
6fb0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 31        = 0x000001
6fc0: 30 30 2c 0d 0a 09 53 52 43 4c 49 53 54 5f 41 50  00,...SRCLIST_AP
6fd0: 50 45 4e 44 20 20 20 20 20 20 20 20 20 20 3d 20  PEND          = 
6fe0: 30 78 30 30 30 30 30 32 30 30 2c 0d 0a 09 53 52  0x00000200,...SR
6ff0: 43 4c 49 53 54 5f 4e 4f 53 54 52 49 50 50 4c 41  CLIST_NOSTRIPPLA
7000: 54 46 4f 52 4d 20 3d 20 30 78 30 30 30 30 30 34  TFORM = 0x000004
7010: 30 30 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 50  00..}....alias P
7020: 56 4f 49 44 20 48 49 4e 46 3b 0d 0a 61 6c 69 61  VOID HINF;..alia
7030: 73 20 50 56 4f 49 44 20 48 44 53 4b 53 50 43 3b  s PVOID HDSKSPC;
7040: 0d 0a 6d 69 78 69 6e 20 44 45 43 4c 41 52 45 5f  ..mixin DECLARE_
7050: 48 41 4e 44 4c 45 21 28 22 48 44 45 56 49 4e 46  HANDLE!("HDEVINF
7060: 4f 22 29 3b 0d 0a 61 6c 69 61 73 20 50 56 4f 49  O");..alias PVOI
7070: 44 20 48 53 50 46 49 4c 45 51 3b 0d 0a 61 6c 69  D HSPFILEQ;..ali
7080: 61 73 20 50 56 4f 49 44 20 48 53 50 46 49 4c 45  as PVOID HSPFILE
7090: 4c 4f 47 3b 0d 0a 0d 0a 65 6e 75 6d 20 53 65 74  LOG;....enum Set
70a0: 75 70 46 69 6c 65 4c 6f 67 49 6e 66 6f 20 7b 0d  upFileLogInfo {.
70b0: 0a 09 53 65 74 75 70 46 69 6c 65 4c 6f 67 53 6f  ..SetupFileLogSo
70c0: 75 72 63 65 46 69 6c 65 6e 61 6d 65 2c 0d 0a 09  urceFilename,...
70d0: 53 65 74 75 70 46 69 6c 65 4c 6f 67 43 68 65 63  SetupFileLogChec
70e0: 6b 73 75 6d 2c 0d 0a 09 53 65 74 75 70 46 69 6c  ksum,...SetupFil
70f0: 65 4c 6f 67 44 69 73 6b 54 61 67 66 69 6c 65 2c  eLogDiskTagfile,
7100: 0d 0a 09 53 65 74 75 70 46 69 6c 65 4c 6f 67 44  ...SetupFileLogD
7110: 69 73 6b 44 65 73 63 72 69 70 74 69 6f 6e 2c 0d  iskDescription,.
7120: 0a 09 53 65 74 75 70 46 69 6c 65 4c 6f 67 4f 74  ..SetupFileLogOt
7130: 68 65 72 49 6e 66 6f 2c 0d 0a 09 53 65 74 75 70  herInfo,...Setup
7140: 46 69 6c 65 4c 6f 67 4d 61 78 0d 0a 7d 0d 0a 0d  FileLogMax..}...
7150: 0a 61 6c 69 67 6e 28 31 29 3a 0d 0a 0d 0a 73 74  .align(1):....st
7160: 72 75 63 74 20 49 4e 46 43 4f 4e 54 45 58 54 20  ruct INFCONTEXT 
7170: 7b 0d 0a 09 50 56 4f 49 44 20 49 6e 66 3b 0d 0a  {...PVOID Inf;..
7180: 09 50 56 4f 49 44 20 43 75 72 72 65 6e 74 49 6e  .PVOID CurrentIn
7190: 66 3b 0d 0a 09 55 49 4e 54 20 20 53 65 63 74 69  f;...UINT  Secti
71a0: 6f 6e 3b 0d 0a 09 55 49 4e 54 20 20 4c 69 6e 65  on;...UINT  Line
71b0: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 49 4e 46 43  ;..}..alias INFC
71c0: 4f 4e 54 45 58 54 2a 20 50 49 4e 46 43 4f 4e 54  ONTEXT* PINFCONT
71d0: 45 58 54 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53  EXT;....struct S
71e0: 50 5f 49 4e 46 5f 49 4e 46 4f 52 4d 41 54 49 4f  P_INF_INFORMATIO
71f0: 4e 20 7b 0d 0a 09 44 57 4f 52 44 20 49 6e 66 53  N {...DWORD InfS
7200: 74 79 6c 65 3b 0d 0a 09 44 57 4f 52 44 20 49 6e  tyle;...DWORD In
7210: 66 43 6f 75 6e 74 3b 0d 0a 09 42 59 54 45 5b 31  fCount;...BYTE[1
7220: 5d 20 5f 56 65 72 73 69 6f 6e 44 61 74 61 3b 0d  ] _VersionData;.
7230: 0a 09 42 59 54 45 2a 20 56 65 72 73 69 6f 6e 44  ..BYTE* VersionD
7240: 61 74 61 28 29 20 7b 20 72 65 74 75 72 6e 20 5f  ata() { return _
7250: 56 65 72 73 69 6f 6e 44 61 74 61 2e 70 74 72 3b  VersionData.ptr;
7260: 20 7d 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50 5f   }..}..alias SP_
7270: 49 4e 46 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 2a  INF_INFORMATION*
7280: 20 50 53 50 5f 49 4e 46 5f 49 4e 46 4f 52 4d 41   PSP_INF_INFORMA
7290: 54 49 4f 4e 3b 0d 0a 0d 0a 73 74 72 75 63 74 20  TION;....struct 
72a0: 53 50 5f 41 4c 54 50 4c 41 54 46 4f 52 4d 5f 49  SP_ALTPLATFORM_I
72b0: 4e 46 4f 20 7b 0d 0a 09 44 57 4f 52 44 20 63 62  NFO {...DWORD cb
72c0: 53 69 7a 65 20 3d 20 53 50 5f 41 4c 54 50 4c 41  Size = SP_ALTPLA
72d0: 54 46 4f 52 4d 5f 49 4e 46 4f 2e 73 69 7a 65 6f  TFORM_INFO.sizeo
72e0: 66 3b 0d 0a 09 44 57 4f 52 44 20 50 6c 61 74 66  f;...DWORD Platf
72f0: 6f 72 6d 3b 0d 0a 09 44 57 4f 52 44 20 4d 61 6a  orm;...DWORD Maj
7300: 6f 72 56 65 72 73 69 6f 6e 3b 0d 0a 09 44 57 4f  orVersion;...DWO
7310: 52 44 20 4d 69 6e 6f 72 56 65 72 73 69 6f 6e 3b  RD MinorVersion;
7320: 0d 0a 09 57 4f 52 44 20 20 50 72 6f 63 65 73 73  ...WORD  Process
7330: 6f 72 41 72 63 68 69 74 65 63 74 75 72 65 3b 0d  orArchitecture;.
7340: 0a 09 57 4f 52 44 20 20 52 65 73 65 72 76 65 64  ..WORD  Reserved
7350: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50 5f 41  ;..}..alias SP_A
7360: 4c 54 50 4c 41 54 46 4f 52 4d 5f 49 4e 46 4f 2a  LTPLATFORM_INFO*
7370: 20 50 53 50 5f 41 4c 54 50 4c 41 54 46 4f 52 4d   PSP_ALTPLATFORM
7380: 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73 74 72 75 63 74  _INFO;....struct
7390: 20 53 50 5f 4f 52 49 47 49 4e 41 4c 5f 46 49 4c   SP_ORIGINAL_FIL
73a0: 45 5f 49 4e 46 4f 5f 41 20 7b 0d 0a 09 44 57 4f  E_INFO_A {...DWO
73b0: 52 44 20 63 62 53 69 7a 65 20 3d 20 53 50 5f 4f  RD cbSize = SP_O
73c0: 52 49 47 49 4e 41 4c 5f 46 49 4c 45 5f 49 4e 46  RIGINAL_FILE_INF
73d0: 4f 5f 41 2e 73 69 7a 65 6f 66 3b 0d 0a 09 43 48  O_A.sizeof;...CH
73e0: 41 52 5b 4d 41 58 5f 50 41 54 48 5d 20 4f 72 69  AR[MAX_PATH] Ori
73f0: 67 69 6e 61 6c 49 6e 66 4e 61 6d 65 3b 0d 0a 09  ginalInfName;...
7400: 43 48 41 52 5b 4d 41 58 5f 50 41 54 48 5d 20 4f  CHAR[MAX_PATH] O
7410: 72 69 67 69 6e 61 6c 43 61 74 61 6c 6f 67 4e 61  riginalCatalogNa
7420: 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50  me;..}..alias SP
7430: 5f 4f 52 49 47 49 4e 41 4c 5f 46 49 4c 45 5f 49  _ORIGINAL_FILE_I
7440: 4e 46 4f 5f 41 2a 20 50 53 50 5f 4f 52 49 47 49  NFO_A* PSP_ORIGI
7450: 4e 41 4c 5f 46 49 4c 45 5f 49 4e 46 4f 5f 41 3b  NAL_FILE_INFO_A;
7460: 0d 0a 0d 0a 73 74 72 75 63 74 20 53 50 5f 4f 52  ....struct SP_OR
7470: 49 47 49 4e 41 4c 5f 46 49 4c 45 5f 49 4e 46 4f  IGINAL_FILE_INFO
7480: 5f 57 20 7b 0d 0a 09 44 57 4f 52 44 20 63 62 53  _W {...DWORD cbS
7490: 69 7a 65 20 3d 20 53 50 5f 4f 52 49 47 49 4e 41  ize = SP_ORIGINA
74a0: 4c 5f 46 49 4c 45 5f 49 4e 46 4f 5f 57 2e 73 69  L_FILE_INFO_W.si
74b0: 7a 65 6f 66 3b 0d 0a 09 57 43 48 41 52 5b 4d 41  zeof;...WCHAR[MA
74c0: 58 5f 50 41 54 48 5d 20 4f 72 69 67 69 6e 61 6c  X_PATH] Original
74d0: 49 6e 66 4e 61 6d 65 3b 0d 0a 09 57 43 48 41 52  InfName;...WCHAR
74e0: 5b 4d 41 58 5f 50 41 54 48 5d 20 4f 72 69 67 69  [MAX_PATH] Origi
74f0: 6e 61 6c 43 61 74 61 6c 6f 67 4e 61 6d 65 3b 0d  nalCatalogName;.
7500: 0a 7d 0d 0a 61 6c 69 61 73 20 53 50 5f 4f 52 49  .}..alias SP_ORI
7510: 47 49 4e 41 4c 5f 46 49 4c 45 5f 49 4e 46 4f 5f  GINAL_FILE_INFO_
7520: 57 2a 20 50 53 50 5f 4f 52 49 47 49 4e 41 4c 5f  W* PSP_ORIGINAL_
7530: 46 49 4c 45 5f 49 4e 46 4f 5f 57 3b 0d 0a 0d 0a  FILE_INFO_W;....
7540: 73 74 72 75 63 74 20 46 49 4c 45 50 41 54 48 53  struct FILEPATHS
7550: 5f 41 20 7b 0d 0a 09 50 43 53 54 52 20 54 61 72  _A {...PCSTR Tar
7560: 67 65 74 3b 0d 0a 09 50 43 53 54 52 20 53 6f 75  get;...PCSTR Sou
7570: 72 63 65 3b 0d 0a 09 55 49 4e 54 20 20 57 69 6e  rce;...UINT  Win
7580: 33 32 45 72 72 6f 72 3b 0d 0a 09 44 57 4f 52 44  32Error;...DWORD
7590: 20 46 6c 61 67 73 3b 0d 0a 7d 0d 0a 61 6c 69 61   Flags;..}..alia
75a0: 73 20 46 49 4c 45 50 41 54 48 53 5f 41 2a 20 50  s FILEPATHS_A* P
75b0: 46 49 4c 45 50 41 54 48 53 5f 41 3b 0d 0a 0d 0a  FILEPATHS_A;....
75c0: 73 74 72 75 63 74 20 46 49 4c 45 50 41 54 48 53  struct FILEPATHS
75d0: 5f 57 20 7b 0d 0a 09 50 43 57 53 54 52 20 54 61  _W {...PCWSTR Ta
75e0: 72 67 65 74 3b 0d 0a 09 50 43 57 53 54 52 20 53  rget;...PCWSTR S
75f0: 6f 75 72 63 65 3b 0d 0a 09 55 49 4e 54 20 20 20  ource;...UINT   
7600: 57 69 6e 33 32 45 72 72 6f 72 3b 0d 0a 09 44 57  Win32Error;...DW
7610: 4f 52 44 20 20 46 6c 61 67 73 3b 0d 0a 7d 0d 0a  ORD  Flags;..}..
7620: 61 6c 69 61 73 20 46 49 4c 45 50 41 54 48 53 5f  alias FILEPATHS_
7630: 57 2a 20 50 46 49 4c 45 50 41 54 48 53 5f 57 3b  W* PFILEPATHS_W;
7640: 0d 0a 0d 0a 73 74 72 75 63 74 20 53 4f 55 52 43  ....struct SOURC
7650: 45 5f 4d 45 44 49 41 5f 41 20 7b 0d 0a 09 50 43  E_MEDIA_A {...PC
7660: 53 54 52 20 52 65 73 65 72 76 65 64 3b 0d 0a 09  STR Reserved;...
7670: 50 43 53 54 52 20 54 61 67 66 69 6c 65 3b 0d 0a  PCSTR Tagfile;..
7680: 09 50 43 53 54 52 20 44 65 73 63 72 69 70 74 69  .PCSTR Descripti
7690: 6f 6e 3b 0d 0a 09 50 43 53 54 52 20 53 6f 75 72  on;...PCSTR Sour
76a0: 63 65 50 61 74 68 3b 0d 0a 09 50 43 53 54 52 20  cePath;...PCSTR 
76b0: 53 6f 75 72 63 65 46 69 6c 65 3b 0d 0a 09 44 57  SourceFile;...DW
76c0: 4f 52 44 20 46 6c 61 67 73 3b 0d 0a 7d 0d 0a 61  ORD Flags;..}..a
76d0: 6c 69 61 73 20 53 4f 55 52 43 45 5f 4d 45 44 49  lias SOURCE_MEDI
76e0: 41 5f 41 2a 20 50 53 4f 55 52 43 45 5f 4d 45 44  A_A* PSOURCE_MED
76f0: 49 41 5f 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20  IA_A;....struct 
7700: 53 4f 55 52 43 45 5f 4d 45 44 49 41 5f 57 20 7b  SOURCE_MEDIA_W {
7710: 0d 0a 09 50 43 57 53 54 52 20 52 65 73 65 72 76  ...PCWSTR Reserv
7720: 65 64 3b 0d 0a 09 50 43 57 53 54 52 20 54 61 67  ed;...PCWSTR Tag
7730: 66 69 6c 65 3b 0d 0a 09 50 43 57 53 54 52 20 44  file;...PCWSTR D
7740: 65 73 63 72 69 70 74 69 6f 6e 3b 0d 0a 09 50 43  escription;...PC
7750: 57 53 54 52 20 53 6f 75 72 63 65 50 61 74 68 3b  WSTR SourcePath;
7760: 0d 0a 09 50 43 57 53 54 52 20 53 6f 75 72 63 65  ...PCWSTR Source
7770: 46 69 6c 65 3b 0d 0a 09 44 57 4f 52 44 20 20 46  File;...DWORD  F
7780: 6c 61 67 73 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  lags;..}..alias 
7790: 53 4f 55 52 43 45 5f 4d 45 44 49 41 5f 57 2a 20  SOURCE_MEDIA_W* 
77a0: 50 53 4f 55 52 43 45 5f 4d 45 44 49 41 5f 57 3b  PSOURCE_MEDIA_W;
77b0: 0d 0a 0d 0a 73 74 72 75 63 74 20 43 41 42 49 4e  ....struct CABIN
77c0: 45 54 5f 49 4e 46 4f 5f 41 20 7b 0d 0a 09 50 43  ET_INFO_A {...PC
77d0: 53 54 52 20 20 43 61 62 69 6e 65 74 50 61 74 68  STR  CabinetPath
77e0: 3b 0d 0a 09 50 43 53 54 52 20 20 43 61 62 69 6e  ;...PCSTR  Cabin
77f0: 65 74 46 69 6c 65 3b 0d 0a 09 50 43 53 54 52 20  etFile;...PCSTR 
7800: 20 44 69 73 6b 4e 61 6d 65 3b 0d 0a 09 55 53 48   DiskName;...USH
7810: 4f 52 54 20 53 65 74 49 64 3b 0d 0a 09 55 53 48  ORT SetId;...USH
7820: 4f 52 54 20 43 61 62 69 6e 65 74 4e 75 6d 62 65  ORT CabinetNumbe
7830: 72 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 43 41 42  r;..}..alias CAB
7840: 49 4e 45 54 5f 49 4e 46 4f 5f 41 2a 20 50 43 41  INET_INFO_A* PCA
7850: 42 49 4e 45 54 5f 49 4e 46 4f 5f 41 3b 0d 0a 0d  BINET_INFO_A;...
7860: 0a 73 74 72 75 63 74 20 43 41 42 49 4e 45 54 5f  .struct CABINET_
7870: 49 4e 46 4f 5f 57 20 7b 0d 0a 09 50 43 57 53 54  INFO_W {...PCWST
7880: 52 20 43 61 62 69 6e 65 74 50 61 74 68 3b 0d 0a  R CabinetPath;..
7890: 09 50 43 57 53 54 52 20 43 61 62 69 6e 65 74 46  .PCWSTR CabinetF
78a0: 69 6c 65 3b 0d 0a 09 50 43 57 53 54 52 20 44 69  ile;...PCWSTR Di
78b0: 73 6b 4e 61 6d 65 3b 0d 0a 09 55 53 48 4f 52 54  skName;...USHORT
78c0: 20 53 65 74 49 64 3b 0d 0a 09 55 53 48 4f 52 54   SetId;...USHORT
78d0: 20 43 61 62 69 6e 65 74 4e 75 6d 62 65 72 3b 0d   CabinetNumber;.
78e0: 0a 7d 0d 0a 61 6c 69 61 73 20 43 41 42 49 4e 45  .}..alias CABINE
78f0: 54 5f 49 4e 46 4f 5f 57 2a 20 50 43 41 42 49 4e  T_INFO_W* PCABIN
7900: 45 54 5f 49 4e 46 4f 5f 57 3b 0d 0a 0d 0a 73 74  ET_INFO_W;....st
7910: 72 75 63 74 20 46 49 4c 45 5f 49 4e 5f 43 41 42  ruct FILE_IN_CAB
7920: 49 4e 45 54 5f 49 4e 46 4f 5f 41 20 7b 0d 0a 09  INET_INFO_A {...
7930: 50 43 53 54 52 20 4e 61 6d 65 49 6e 43 61 62 69  PCSTR NameInCabi
7940: 6e 65 74 3b 0d 0a 09 44 57 4f 52 44 20 46 69 6c  net;...DWORD Fil
7950: 65 53 69 7a 65 3b 0d 0a 09 44 57 4f 52 44 20 57  eSize;...DWORD W
7960: 69 6e 33 32 45 72 72 6f 72 3b 0d 0a 09 57 4f 52  in32Error;...WOR
7970: 44 20 20 44 6f 73 44 61 74 65 3b 0d 0a 09 57 4f  D  DosDate;...WO
7980: 52 44 20 20 44 6f 73 54 69 6d 65 3b 0d 0a 09 57  RD  DosTime;...W
7990: 4f 52 44 20 20 44 6f 73 41 74 74 72 69 62 73 3b  ORD  DosAttribs;
79a0: 0d 0a 09 43 48 41 52 5b 4d 41 58 5f 50 41 54 48  ...CHAR[MAX_PATH
79b0: 5d 20 46 75 6c 6c 54 61 72 67 65 74 4e 61 6d 65  ] FullTargetName
79c0: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 46 49 4c 45  ;..}..alias FILE
79d0: 5f 49 4e 5f 43 41 42 49 4e 45 54 5f 49 4e 46 4f  _IN_CABINET_INFO
79e0: 5f 41 2a 20 50 46 49 4c 45 5f 49 4e 5f 43 41 42  _A* PFILE_IN_CAB
79f0: 49 4e 45 54 5f 49 4e 46 4f 5f 41 3b 0d 0a 0d 0a  INET_INFO_A;....
7a00: 73 74 72 75 63 74 20 46 49 4c 45 5f 49 4e 5f 43  struct FILE_IN_C
7a10: 41 42 49 4e 45 54 5f 49 4e 46 4f 5f 57 20 7b 0d  ABINET_INFO_W {.
7a20: 0a 09 50 43 57 53 54 52 20 4e 61 6d 65 49 6e 43  ..PCWSTR NameInC
7a30: 61 62 69 6e 65 74 3b 0d 0a 09 44 57 4f 52 44 20  abinet;...DWORD 
7a40: 20 46 69 6c 65 53 69 7a 65 3b 0d 0a 09 44 57 4f   FileSize;...DWO
7a50: 52 44 20 20 57 69 6e 33 32 45 72 72 6f 72 3b 0d  RD  Win32Error;.
7a60: 0a 09 57 4f 52 44 20 20 20 44 6f 73 44 61 74 65  ..WORD   DosDate
7a70: 3b 0d 0a 09 57 4f 52 44 20 20 20 44 6f 73 54 69  ;...WORD   DosTi
7a80: 6d 65 3b 0d 0a 09 57 4f 52 44 20 20 20 44 6f 73  me;...WORD   Dos
7a90: 41 74 74 72 69 62 73 3b 0d 0a 09 57 43 48 41 52  Attribs;...WCHAR
7aa0: 5b 4d 41 58 5f 50 41 54 48 5d 20 46 75 6c 6c 54  [MAX_PATH] FullT
7ab0: 61 72 67 65 74 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61  argetName;..}..a
7ac0: 6c 69 61 73 20 46 49 4c 45 5f 49 4e 5f 43 41 42  lias FILE_IN_CAB
7ad0: 49 4e 45 54 5f 49 4e 46 4f 5f 57 2a 20 50 46 49  INET_INFO_W* PFI
7ae0: 4c 45 5f 49 4e 5f 43 41 42 49 4e 45 54 5f 49 4e  LE_IN_CABINET_IN
7af0: 46 4f 5f 57 3b 0d 0a 0d 0a 73 74 72 75 63 74 20  FO_W;....struct 
7b00: 53 50 5f 46 49 4c 45 5f 43 4f 50 59 5f 50 41 52  SP_FILE_COPY_PAR
7b10: 41 4d 53 5f 41 20 7b 0d 0a 09 44 57 4f 52 44 20  AMS_A {...DWORD 
7b20: 20 20 20 63 62 53 69 7a 65 20 3d 20 53 50 5f 46     cbSize = SP_F
7b30: 49 4c 45 5f 43 4f 50 59 5f 50 41 52 41 4d 53 5f  ILE_COPY_PARAMS_
7b40: 41 2e 73 69 7a 65 6f 66 3b 0d 0a 09 48 53 50 46  A.sizeof;...HSPF
7b50: 49 4c 45 51 20 51 75 65 75 65 48 61 6e 64 6c 65  ILEQ QueueHandle
7b60: 3b 0d 0a 09 50 43 53 54 52 20 20 20 20 53 6f 75  ;...PCSTR    Sou
7b70: 72 63 65 52 6f 6f 74 50 61 74 68 3b 0d 0a 09 50  rceRootPath;...P
7b80: 43 53 54 52 20 20 20 20 53 6f 75 72 63 65 50 61  CSTR    SourcePa
7b90: 74 68 3b 0d 0a 09 50 43 53 54 52 20 20 20 20 53  th;...PCSTR    S
7ba0: 6f 75 72 63 65 46 69 6c 65 6e 61 6d 65 3b 0d 0a  ourceFilename;..
7bb0: 09 50 43 53 54 52 20 20 20 20 53 6f 75 72 63 65  .PCSTR    Source
7bc0: 44 65 73 63 72 69 70 74 69 6f 6e 3b 0d 0a 09 50  Description;...P
7bd0: 43 53 54 52 20 20 20 20 53 6f 75 72 63 65 54 61  CSTR    SourceTa
7be0: 67 66 69 6c 65 3b 0d 0a 09 50 43 53 54 52 20 20  gfile;...PCSTR  
7bf0: 20 20 54 61 72 67 65 74 44 69 72 65 63 74 6f 72    TargetDirector
7c00: 79 3b 0d 0a 09 50 43 53 54 52 20 20 20 20 54 61  y;...PCSTR    Ta
7c10: 72 67 65 74 46 69 6c 65 6e 61 6d 65 3b 0d 0a 09  rgetFilename;...
7c20: 44 57 4f 52 44 20 20 20 20 43 6f 70 79 53 74 79  DWORD    CopySty
7c30: 6c 65 3b 0d 0a 09 48 49 4e 46 20 20 20 20 20 4c  le;...HINF     L
7c40: 61 79 6f 75 74 49 6e 66 3b 0d 0a 09 50 43 53 54  ayoutInf;...PCST
7c50: 52 20 20 20 20 53 65 63 75 72 69 74 79 44 65 73  R    SecurityDes
7c60: 63 72 69 70 74 6f 72 3b 0d 0a 7d 0d 0a 61 6c 69  criptor;..}..ali
7c70: 61 73 20 53 50 5f 46 49 4c 45 5f 43 4f 50 59 5f  as SP_FILE_COPY_
7c80: 50 41 52 41 4d 53 5f 41 2a 20 50 53 50 5f 46 49  PARAMS_A* PSP_FI
7c90: 4c 45 5f 43 4f 50 59 5f 50 41 52 41 4d 53 5f 41  LE_COPY_PARAMS_A
7ca0: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53 50 5f 46  ;....struct SP_F
7cb0: 49 4c 45 5f 43 4f 50 59 5f 50 41 52 41 4d 53 5f  ILE_COPY_PARAMS_
7cc0: 57 20 7b 0d 0a 09 44 57 4f 52 44 20 20 20 20 63  W {...DWORD    c
7cd0: 62 53 69 7a 65 20 3d 20 53 50 5f 46 49 4c 45 5f  bSize = SP_FILE_
7ce0: 43 4f 50 59 5f 50 41 52 41 4d 53 5f 57 2e 73 69  COPY_PARAMS_W.si
7cf0: 7a 65 6f 66 3b 0d 0a 09 48 53 50 46 49 4c 45 51  zeof;...HSPFILEQ
7d00: 20 51 75 65 75 65 48 61 6e 64 6c 65 3b 0d 0a 09   QueueHandle;...
7d10: 50 43 57 53 54 52 20 20 20 53 6f 75 72 63 65 52  PCWSTR   SourceR
7d20: 6f 6f 74 50 61 74 68 3b 0d 0a 09 50 43 57 53 54  ootPath;...PCWST
7d30: 52 20 20 20 53 6f 75 72 63 65 50 61 74 68 3b 0d  R   SourcePath;.
7d40: 0a 09 50 43 57 53 54 52 20 20 20 53 6f 75 72 63  ..PCWSTR   Sourc
7d50: 65 46 69 6c 65 6e 61 6d 65 3b 0d 0a 09 50 43 57  eFilename;...PCW
7d60: 53 54 52 20 20 20 53 6f 75 72 63 65 44 65 73 63  STR   SourceDesc
7d70: 72 69 70 74 69 6f 6e 3b 0d 0a 09 50 43 57 53 54  ription;...PCWST
7d80: 52 20 20 20 53 6f 75 72 63 65 54 61 67 66 69 6c  R   SourceTagfil
7d90: 65 3b 0d 0a 09 50 43 57 53 54 52 20 20 20 54 61  e;...PCWSTR   Ta
7da0: 72 67 65 74 44 69 72 65 63 74 6f 72 79 3b 0d 0a  rgetDirectory;..
7db0: 09 50 43 57 53 54 52 20 20 20 54 61 72 67 65 74  .PCWSTR   Target
7dc0: 46 69 6c 65 6e 61 6d 65 3b 0d 0a 09 44 57 4f 52  Filename;...DWOR
7dd0: 44 20 20 20 20 43 6f 70 79 53 74 79 6c 65 3b 0d  D    CopyStyle;.
7de0: 0a 09 48 49 4e 46 20 20 20 20 20 4c 61 79 6f 75  ..HINF     Layou
7df0: 74 49 6e 66 3b 0d 0a 09 50 43 57 53 54 52 20 20  tInf;...PCWSTR  
7e00: 20 53 65 63 75 72 69 74 79 44 65 73 63 72 69 70   SecurityDescrip
7e10: 74 6f 72 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53  tor;..}..alias S
7e20: 50 5f 46 49 4c 45 5f 43 4f 50 59 5f 50 41 52 41  P_FILE_COPY_PARA
7e30: 4d 53 5f 57 2a 20 50 53 50 5f 46 49 4c 45 5f 43  MS_W* PSP_FILE_C
7e40: 4f 50 59 5f 50 41 52 41 4d 53 5f 57 3b 0d 0a 0d  OPY_PARAMS_W;...
7e50: 0a 73 74 72 75 63 74 20 53 50 5f 44 45 56 49 4e  .struct SP_DEVIN
7e60: 46 4f 5f 44 41 54 41 20 7b 0d 0a 09 44 57 4f 52  FO_DATA {...DWOR
7e70: 44 20 20 20 20 20 63 62 53 69 7a 65 20 3d 20 53  D     cbSize = S
7e80: 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41 2e 73  P_DEVINFO_DATA.s
7e90: 69 7a 65 6f 66 3b 0d 0a 09 47 55 49 44 20 20 20  izeof;...GUID   
7ea0: 20 20 20 43 6c 61 73 73 47 75 69 64 3b 0d 0a 09     ClassGuid;...
7eb0: 44 57 4f 52 44 20 20 20 20 20 44 65 76 49 6e 73  DWORD     DevIns
7ec0: 74 3b 0d 0a 09 55 4c 4f 4e 47 5f 50 54 52 20 52  t;...ULONG_PTR R
7ed0: 65 73 65 72 76 65 64 3b 0d 0a 7d 0d 0a 61 6c 69  eserved;..}..ali
7ee0: 61 73 20 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41  as SP_DEVINFO_DA
7ef0: 54 41 2a 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f  TA* PSP_DEVINFO_
7f00: 44 41 54 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20  DATA;....struct 
7f10: 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46  SP_DEVICE_INTERF
7f20: 41 43 45 5f 44 41 54 41 20 7b 0d 0a 09 44 57 4f  ACE_DATA {...DWO
7f30: 52 44 20 20 20 20 20 63 62 53 69 7a 65 20 3d 20  RD     cbSize = 
7f40: 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46  SP_DEVICE_INTERF
7f50: 41 43 45 5f 44 41 54 41 2e 73 69 7a 65 6f 66 3b  ACE_DATA.sizeof;
7f60: 0d 0a 09 47 55 49 44 20 20 20 20 20 20 49 6e 74  ...GUID      Int
7f70: 65 72 66 61 63 65 43 6c 61 73 73 47 75 69 64 3b  erfaceClassGuid;
7f80: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 46 6c 61  ...DWORD     Fla
7f90: 67 73 3b 0d 0a 09 55 4c 4f 4e 47 5f 50 54 52 20  gs;...ULONG_PTR 
7fa0: 52 65 73 65 72 76 65 64 3b 0d 0a 7d 0d 0a 61 6c  Reserved;..}..al
7fb0: 69 61 73 20 53 50 5f 44 45 56 49 43 45 5f 49 4e  ias SP_DEVICE_IN
7fc0: 54 45 52 46 41 43 45 5f 44 41 54 41 2a 20 50 53  TERFACE_DATA* PS
7fd0: 50 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46 41  P_DEVICE_INTERFA
7fe0: 43 45 5f 44 41 54 41 3b 0d 0a 64 65 70 72 65 63  CE_DATA;..deprec
7ff0: 61 74 65 64 20 61 6c 69 61 73 20 53 50 5f 44 45  ated alias SP_DE
8000: 56 49 43 45 5f 49 4e 54 45 52 46 41 43 45 5f 44  VICE_INTERFACE_D
8010: 41 54 41 20 53 50 5f 49 4e 54 45 52 46 41 43 45  ATA SP_INTERFACE
8020: 5f 44 45 56 49 43 45 5f 44 41 54 41 3b 0d 0a 64  _DEVICE_DATA;..d
8030: 65 70 72 65 63 61 74 65 64 20 61 6c 69 61 73 20  eprecated alias 
8040: 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46  SP_DEVICE_INTERF
8050: 41 43 45 5f 44 41 54 41 2a 20 50 53 50 5f 49 4e  ACE_DATA* PSP_IN
8060: 54 45 52 46 41 43 45 5f 44 45 56 49 43 45 5f 44  TERFACE_DEVICE_D
8070: 41 54 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53  ATA;....struct S
8080: 50 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46 41  P_DEVICE_INTERFA
8090: 43 45 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f 41  CE_DETAIL_DATA_A
80a0: 20 7b 0d 0a 09 44 57 4f 52 44 20 63 62 53 69 7a   {...DWORD cbSiz
80b0: 65 20 3d 20 53 50 5f 44 45 56 49 43 45 5f 49 4e  e = SP_DEVICE_IN
80c0: 54 45 52 46 41 43 45 5f 44 45 54 41 49 4c 5f 44  TERFACE_DETAIL_D
80d0: 41 54 41 5f 41 2e 73 69 7a 65 6f 66 3b 0d 0a 09  ATA_A.sizeof;...
80e0: 43 48 41 52 5b 31 5d 20 5f 44 65 76 69 63 65 50  CHAR[1] _DeviceP
80f0: 61 74 68 3b 0d 0a 09 43 48 41 52 2a 20 44 65 76  ath;...CHAR* Dev
8100: 69 63 65 50 61 74 68 28 29 20 7b 20 72 65 74 75  icePath() { retu
8110: 72 6e 20 5f 44 65 76 69 63 65 50 61 74 68 2e 70  rn _DevicePath.p
8120: 74 72 3b 20 7d 0d 0a 7d 0d 0a 61 6c 69 61 73 20  tr; }..}..alias 
8130: 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46  SP_DEVICE_INTERF
8140: 41 43 45 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f  ACE_DETAIL_DATA_
8150: 41 2a 20 50 53 50 5f 44 45 56 49 43 45 5f 49 4e  A* PSP_DEVICE_IN
8160: 54 45 52 46 41 43 45 5f 44 45 54 41 49 4c 5f 44  TERFACE_DETAIL_D
8170: 41 54 41 5f 41 3b 0d 0a 0d 0a 73 74 72 75 63 74  ATA_A;....struct
8180: 20 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45 52   SP_DEVICE_INTER
8190: 46 41 43 45 5f 44 45 54 41 49 4c 5f 44 41 54 41  FACE_DETAIL_DATA
81a0: 5f 57 20 7b 0d 0a 09 44 57 4f 52 44 20 20 63 62  _W {...DWORD  cb
81b0: 53 69 7a 65 20 3d 20 53 50 5f 44 45 56 49 43 45  Size = SP_DEVICE
81c0: 5f 49 4e 54 45 52 46 41 43 45 5f 44 45 54 41 49  _INTERFACE_DETAI
81d0: 4c 5f 44 41 54 41 5f 57 2e 73 69 7a 65 6f 66 3b  L_DATA_W.sizeof;
81e0: 0d 0a 09 57 43 48 41 52 5b 31 5d 20 5f 44 65 76  ...WCHAR[1] _Dev
81f0: 69 63 65 50 61 74 68 3b 0d 0a 09 57 43 48 41 52  icePath;...WCHAR
8200: 2a 20 44 65 76 69 63 65 50 61 74 68 28 29 20 7b  * DevicePath() {
8210: 20 72 65 74 75 72 6e 20 5f 44 65 76 69 63 65 50   return _DeviceP
8220: 61 74 68 2e 70 74 72 3b 20 7d 0d 0a 7d 0d 0a 61  ath.ptr; }..}..a
8230: 6c 69 61 73 20 53 50 5f 44 45 56 49 43 45 5f 49  lias SP_DEVICE_I
8240: 4e 54 45 52 46 41 43 45 5f 44 45 54 41 49 4c 5f  NTERFACE_DETAIL_
8250: 44 41 54 41 5f 57 2a 20 50 53 50 5f 44 45 56 49  DATA_W* PSP_DEVI
8260: 43 45 5f 49 4e 54 45 52 46 41 43 45 5f 44 45 54  CE_INTERFACE_DET
8270: 41 49 4c 5f 44 41 54 41 5f 57 3b 0d 0a 0d 0a 64  AIL_DATA_W;....d
8280: 65 70 72 65 63 61 74 65 64 20 61 6c 69 61 73 20  eprecated alias 
8290: 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46  SP_DEVICE_INTERF
82a0: 41 43 45 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f  ACE_DETAIL_DATA_
82b0: 41 20 53 50 5f 49 4e 54 45 52 46 41 43 45 5f 44  A SP_INTERFACE_D
82c0: 45 56 49 43 45 5f 44 45 54 41 49 4c 5f 44 41 54  EVICE_DETAIL_DAT
82d0: 41 5f 41 3b 0d 0a 64 65 70 72 65 63 61 74 65 64  A_A;..deprecated
82e0: 20 61 6c 69 61 73 20 53 50 5f 44 45 56 49 43 45   alias SP_DEVICE
82f0: 5f 49 4e 54 45 52 46 41 43 45 5f 44 45 54 41 49  _INTERFACE_DETAI
8300: 4c 5f 44 41 54 41 5f 41 2a 20 50 53 50 5f 49 4e  L_DATA_A* PSP_IN
8310: 54 45 52 46 41 43 45 5f 44 45 56 49 43 45 5f 44  TERFACE_DEVICE_D
8320: 45 54 41 49 4c 5f 44 41 54 41 5f 41 3b 0d 0a 64  ETAIL_DATA_A;..d
8330: 65 70 72 65 63 61 74 65 64 20 61 6c 69 61 73 20  eprecated alias 
8340: 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46  SP_DEVICE_INTERF
8350: 41 43 45 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f  ACE_DETAIL_DATA_
8360: 57 20 53 50 5f 49 4e 54 45 52 46 41 43 45 5f 44  W SP_INTERFACE_D
8370: 45 56 49 43 45 5f 44 45 54 41 49 4c 5f 44 41 54  EVICE_DETAIL_DAT
8380: 41 5f 57 3b 0d 0a 64 65 70 72 65 63 61 74 65 64  A_W;..deprecated
8390: 20 61 6c 69 61 73 20 53 50 5f 44 45 56 49 43 45   alias SP_DEVICE
83a0: 5f 49 4e 54 45 52 46 41 43 45 5f 44 45 54 41 49  _INTERFACE_DETAI
83b0: 4c 5f 44 41 54 41 5f 57 2a 20 50 53 50 5f 49 4e  L_DATA_W* PSP_IN
83c0: 54 45 52 46 41 43 45 5f 44 45 56 49 43 45 5f 44  TERFACE_DEVICE_D
83d0: 45 54 41 49 4c 5f 44 41 54 41 5f 57 3b 0d 0a 0d  ETAIL_DATA_W;...
83e0: 0a 73 74 72 75 63 74 20 53 50 5f 44 45 56 49 4e  .struct SP_DEVIN
83f0: 46 4f 5f 4c 49 53 54 5f 44 45 54 41 49 4c 5f 44  FO_LIST_DETAIL_D
8400: 41 54 41 5f 41 20 7b 0d 0a 09 44 57 4f 52 44 20  ATA_A {...DWORD 
8410: 20 63 62 53 69 7a 65 20 3d 20 53 50 5f 44 45 56   cbSize = SP_DEV
8420: 49 4e 46 4f 5f 4c 49 53 54 5f 44 45 54 41 49 4c  INFO_LIST_DETAIL
8430: 5f 44 41 54 41 5f 41 2e 73 69 7a 65 6f 66 3b 0d  _DATA_A.sizeof;.
8440: 0a 09 47 55 49 44 20 20 20 43 6c 61 73 73 47 75  ..GUID   ClassGu
8450: 69 64 3b 0d 0a 09 48 41 4e 44 4c 45 20 52 65 6d  id;...HANDLE Rem
8460: 6f 74 65 4d 61 63 68 69 6e 65 48 61 6e 64 6c 65  oteMachineHandle
8470: 3b 0d 0a 09 43 48 41 52 5b 53 50 5f 4d 41 58 5f  ;...CHAR[SP_MAX_
8480: 4d 41 43 48 49 4e 45 4e 41 4d 45 5f 4c 45 4e 47  MACHINENAME_LENG
8490: 54 48 5d 20 52 65 6d 6f 74 65 4d 61 63 68 69 6e  TH] RemoteMachin
84a0: 65 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73  eName;..}..alias
84b0: 20 53 50 5f 44 45 56 49 4e 46 4f 5f 4c 49 53 54   SP_DEVINFO_LIST
84c0: 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f 41 2a 20  _DETAIL_DATA_A* 
84d0: 50 53 50 5f 44 45 56 49 4e 46 4f 5f 4c 49 53 54  PSP_DEVINFO_LIST
84e0: 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f 41 3b 0d  _DETAIL_DATA_A;.
84f0: 0a 0d 0a 73 74 72 75 63 74 20 53 50 5f 44 45 56  ...struct SP_DEV
8500: 49 4e 46 4f 5f 4c 49 53 54 5f 44 45 54 41 49 4c  INFO_LIST_DETAIL
8510: 5f 44 41 54 41 5f 57 20 7b 0d 0a 09 44 57 4f 52  _DATA_W {...DWOR
8520: 44 20 20 63 62 53 69 7a 65 20 3d 20 53 50 5f 44  D  cbSize = SP_D
8530: 45 56 49 4e 46 4f 5f 4c 49 53 54 5f 44 45 54 41  EVINFO_LIST_DETA
8540: 49 4c 5f 44 41 54 41 5f 57 2e 73 69 7a 65 6f 66  IL_DATA_W.sizeof
8550: 3b 0d 0a 09 47 55 49 44 20 20 20 43 6c 61 73 73  ;...GUID   Class
8560: 47 75 69 64 3b 0d 0a 09 48 41 4e 44 4c 45 20 52  Guid;...HANDLE R
8570: 65 6d 6f 74 65 4d 61 63 68 69 6e 65 48 61 6e 64  emoteMachineHand
8580: 6c 65 3b 0d 0a 09 57 43 48 41 52 5b 53 50 5f 4d  le;...WCHAR[SP_M
8590: 41 58 5f 4d 41 43 48 49 4e 45 4e 41 4d 45 5f 4c  AX_MACHINENAME_L
85a0: 45 4e 47 54 48 5d 20 52 65 6d 6f 74 65 4d 61 63  ENGTH] RemoteMac
85b0: 68 69 6e 65 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c  hineName;..}..al
85c0: 69 61 73 20 53 50 5f 44 45 56 49 4e 46 4f 5f 4c  ias SP_DEVINFO_L
85d0: 49 53 54 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f  IST_DETAIL_DATA_
85e0: 57 2a 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f 4c  W* PSP_DEVINFO_L
85f0: 49 53 54 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f  IST_DETAIL_DATA_
8600: 57 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  W;....extern(Win
8610: 64 6f 77 73 29 20 61 6c 69 61 73 20 55 49 4e 54  dows) alias UINT
8620: 20 66 75 6e 63 74 69 6f 6e 28 50 56 4f 49 44 2c   function(PVOID,
8630: 20 55 49 4e 54 2c 20 55 49 4e 54 5f 50 54 52 2c   UINT, UINT_PTR,
8640: 20 55 49 4e 54 5f 50 54 52 29 20 50 53 50 5f 46   UINT_PTR) PSP_F
8650: 49 4c 45 5f 43 41 4c 4c 42 41 43 4b 5f 41 3b 0d  ILE_CALLBACK_A;.
8660: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
8670: 20 61 6c 69 61 73 20 55 49 4e 54 20 66 75 6e 63   alias UINT func
8680: 74 69 6f 6e 28 50 56 4f 49 44 2c 20 55 49 4e 54  tion(PVOID, UINT
8690: 2c 20 55 49 4e 54 5f 50 54 52 2c 20 55 49 4e 54  , UINT_PTR, UINT
86a0: 5f 50 54 52 29 20 50 53 50 5f 46 49 4c 45 5f 43  _PTR) PSP_FILE_C
86b0: 41 4c 4c 42 41 43 4b 5f 57 3b 0d 0a 0d 0a 73 74  ALLBACK_W;....st
86c0: 72 75 63 74 20 53 50 5f 44 45 56 49 4e 53 54 41  ruct SP_DEVINSTA
86d0: 4c 4c 5f 50 41 52 41 4d 53 5f 41 20 7b 0d 0a 09  LL_PARAMS_A {...
86e0: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20  DWORD           
86f0: 20 20 20 20 63 62 53 69 7a 65 20 3d 20 53 50 5f      cbSize = SP_
8700: 44 45 56 49 4e 53 54 41 4c 4c 5f 50 41 52 41 4d  DEVINSTALL_PARAM
8710: 53 5f 41 2e 73 69 7a 65 6f 66 3b 0d 0a 09 44 57  S_A.sizeof;...DW
8720: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20  ORD             
8730: 20 20 46 6c 61 67 73 3b 0d 0a 09 44 57 4f 52 44    Flags;...DWORD
8740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46                 F
8750: 6c 61 67 73 45 78 3b 0d 0a 09 48 57 4e 44 20 20  lagsEx;...HWND  
8760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 77                hw
8770: 6e 64 50 61 72 65 6e 74 3b 0d 0a 09 50 53 50 5f  ndParent;...PSP_
8780: 46 49 4c 45 5f 43 41 4c 4c 42 41 43 4b 5f 41 20  FILE_CALLBACK_A 
8790: 49 6e 73 74 61 6c 6c 4d 73 67 48 61 6e 64 6c 65  InstallMsgHandle
87a0: 72 3b 0d 0a 09 50 56 4f 49 44 20 20 20 20 20 20  r;...PVOID      
87b0: 20 20 20 20 20 20 20 20 20 49 6e 73 74 61 6c 6c           Install
87c0: 4d 73 67 48 61 6e 64 6c 65 72 43 6f 6e 74 65 78  MsgHandlerContex
87d0: 74 3b 0d 0a 09 48 53 50 46 49 4c 45 51 20 20 20  t;...HSPFILEQ   
87e0: 20 20 20 20 20 20 20 20 20 46 69 6c 65 51 75 65           FileQue
87f0: 75 65 3b 0d 0a 09 55 4c 4f 4e 47 5f 50 54 52 20  ue;...ULONG_PTR 
8800: 20 20 20 20 20 20 20 20 20 20 43 6c 61 73 73 49            ClassI
8810: 6e 73 74 61 6c 6c 52 65 73 65 72 76 65 64 3b 0d  nstallReserved;.
8820: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
8830: 20 20 20 20 20 20 52 65 73 65 72 76 65 64 3b 0d        Reserved;.
8840: 0a 09 43 48 41 52 5b 4d 41 58 5f 50 41 54 48 5d  ..CHAR[MAX_PATH]
8850: 20 20 20 20 20 20 44 72 69 76 65 72 50 61 74 68        DriverPath
8860: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50 5f 44  ;..}..alias SP_D
8870: 45 56 49 4e 53 54 41 4c 4c 5f 50 41 52 41 4d 53  EVINSTALL_PARAMS
8880: 5f 41 2a 20 50 53 50 5f 44 45 56 49 4e 53 54 41  _A* PSP_DEVINSTA
8890: 4c 4c 5f 50 41 52 41 4d 53 5f 41 3b 0d 0a 0d 0a  LL_PARAMS_A;....
88a0: 73 74 72 75 63 74 20 53 50 5f 44 45 56 49 4e 53  struct SP_DEVINS
88b0: 54 41 4c 4c 5f 50 41 52 41 4d 53 5f 57 20 7b 0d  TALL_PARAMS_W {.
88c0: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
88d0: 20 20 20 20 20 20 63 62 53 69 7a 65 20 3d 20 53        cbSize = S
88e0: 50 5f 44 45 56 49 4e 53 54 41 4c 4c 5f 50 41 52  P_DEVINSTALL_PAR
88f0: 41 4d 53 5f 57 2e 73 69 7a 65 6f 66 3b 0d 0a 09  AMS_W.sizeof;...
8900: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20  DWORD           
8910: 20 20 20 20 46 6c 61 67 73 3b 0d 0a 09 44 57 4f      Flags;...DWO
8920: 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20  RD              
8930: 20 46 6c 61 67 73 45 78 3b 0d 0a 09 48 57 4e 44   FlagsEx;...HWND
8940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8950: 68 77 6e 64 50 61 72 65 6e 74 3b 0d 0a 09 50 53  hwndParent;...PS
8960: 50 5f 46 49 4c 45 5f 43 41 4c 4c 42 41 43 4b 5f  P_FILE_CALLBACK_
8970: 57 20 49 6e 73 74 61 6c 6c 4d 73 67 48 61 6e 64  W InstallMsgHand
8980: 6c 65 72 3b 0d 0a 09 50 56 4f 49 44 20 20 20 20  ler;...PVOID    
8990: 20 20 20 20 20 20 20 20 20 20 20 49 6e 73 74 61             Insta
89a0: 6c 6c 4d 73 67 48 61 6e 64 6c 65 72 43 6f 6e 74  llMsgHandlerCont
89b0: 65 78 74 3b 0d 0a 09 48 53 50 46 49 4c 45 51 20  ext;...HSPFILEQ 
89c0: 20 20 20 20 20 20 20 20 20 20 20 46 69 6c 65 51             FileQ
89d0: 75 65 75 65 3b 0d 0a 09 55 4c 4f 4e 47 5f 50 54  ueue;...ULONG_PT
89e0: 52 20 20 20 20 20 20 20 20 20 20 20 43 6c 61 73  R           Clas
89f0: 73 49 6e 73 74 61 6c 6c 52 65 73 65 72 76 65 64  sInstallReserved
8a00: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20  ;...DWORD       
8a10: 20 20 20 20 20 20 20 20 52 65 73 65 72 76 65 64          Reserved
8a20: 3b 0d 0a 09 57 43 48 41 52 5b 4d 41 58 5f 50 41  ;...WCHAR[MAX_PA
8a30: 54 48 5d 20 20 20 20 20 44 72 69 76 65 72 50 61  TH]     DriverPa
8a40: 74 68 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50  th;..}..alias SP
8a50: 5f 44 45 56 49 4e 53 54 41 4c 4c 5f 50 41 52 41  _DEVINSTALL_PARA
8a60: 4d 53 5f 57 2a 20 50 53 50 5f 44 45 56 49 4e 53  MS_W* PSP_DEVINS
8a70: 54 41 4c 4c 5f 50 41 52 41 4d 53 5f 57 3b 0d 0a  TALL_PARAMS_W;..
8a80: 0d 0a 73 74 72 75 63 74 20 53 50 5f 43 4c 41 53  ..struct SP_CLAS
8a90: 53 49 4e 53 54 41 4c 4c 5f 48 45 41 44 45 52 20  SINSTALL_HEADER 
8aa0: 7b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20  {...DWORD       
8ab0: 63 62 53 69 7a 65 20 3d 20 53 50 5f 43 4c 41 53  cbSize = SP_CLAS
8ac0: 53 49 4e 53 54 41 4c 4c 5f 48 45 41 44 45 52 2e  SINSTALL_HEADER.
8ad0: 73 69 7a 65 6f 66 3b 0d 0a 09 44 49 5f 46 55 4e  sizeof;...DI_FUN
8ae0: 43 54 49 4f 4e 20 49 6e 73 74 61 6c 6c 46 75 6e  CTION InstallFun
8af0: 63 74 69 6f 6e 3b 0d 0a 7d 0d 0a 61 6c 69 61 73  ction;..}..alias
8b00: 20 53 50 5f 43 4c 41 53 53 49 4e 53 54 41 4c 4c   SP_CLASSINSTALL
8b10: 5f 48 45 41 44 45 52 2a 20 50 53 50 5f 43 4c 41  _HEADER* PSP_CLA
8b20: 53 53 49 4e 53 54 41 4c 4c 5f 48 45 41 44 45 52  SSINSTALL_HEADER
8b30: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53 50 5f 45  ;....struct SP_E
8b40: 4e 41 42 4c 45 43 4c 41 53 53 5f 50 41 52 41 4d  NABLECLASS_PARAM
8b50: 53 20 7b 0d 0a 09 53 50 5f 43 4c 41 53 53 49 4e  S {...SP_CLASSIN
8b60: 53 54 41 4c 4c 5f 48 45 41 44 45 52 20 43 6c 61  STALL_HEADER Cla
8b70: 73 73 49 6e 73 74 61 6c 6c 48 65 61 64 65 72 3b  ssInstallHeader;
8b80: 0d 0a 09 47 55 49 44 20 20 20 20 20 20 20 20 20  ...GUID         
8b90: 20 20 20 20 20 20 20 20 20 20 43 6c 61 73 73 47            ClassG
8ba0: 75 69 64 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20  uid;...DWORD    
8bb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 6e                En
8bc0: 61 62 6c 65 4d 65 73 73 61 67 65 3b 0d 0a 7d 0d  ableMessage;..}.
8bd0: 0a 61 6c 69 61 73 20 53 50 5f 45 4e 41 42 4c 45  .alias SP_ENABLE
8be0: 43 4c 41 53 53 5f 50 41 52 41 4d 53 2a 20 50 53  CLASS_PARAMS* PS
8bf0: 50 5f 45 4e 41 42 4c 45 43 4c 41 53 53 5f 50 41  P_ENABLECLASS_PA
8c00: 52 41 4d 53 3b 0d 0a 0d 0a 73 74 72 75 63 74 20  RAMS;....struct 
8c10: 53 50 5f 4d 4f 56 45 44 45 56 5f 50 41 52 41 4d  SP_MOVEDEV_PARAM
8c20: 53 20 7b 0d 0a 09 53 50 5f 43 4c 41 53 53 49 4e  S {...SP_CLASSIN
8c30: 53 54 41 4c 4c 5f 48 45 41 44 45 52 20 43 6c 61  STALL_HEADER Cla
8c40: 73 73 49 6e 73 74 61 6c 6c 48 65 61 64 65 72 3b  ssInstallHeader;
8c50: 0d 0a 09 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41  ...SP_DEVINFO_DA
8c60: 54 41 20 20 20 20 20 20 20 20 53 6f 75 72 63 65  TA        Source
8c70: 44 65 76 69 63 65 49 6e 66 6f 44 61 74 61 3b 0d  DeviceInfoData;.
8c80: 0a 7d 0d 0a 61 6c 69 61 73 20 53 50 5f 4d 4f 56  .}..alias SP_MOV
8c90: 45 44 45 56 5f 50 41 52 41 4d 53 2a 20 50 53 50  EDEV_PARAMS* PSP
8ca0: 5f 4d 4f 56 45 44 45 56 5f 50 41 52 41 4d 53 3b  _MOVEDEV_PARAMS;
8cb0: 0d 0a 0d 0a 73 74 72 75 63 74 20 53 50 5f 50 52  ....struct SP_PR
8cc0: 4f 50 43 48 41 4e 47 45 5f 50 41 52 41 4d 53 20  OPCHANGE_PARAMS 
8cd0: 7b 0d 0a 09 53 50 5f 43 4c 41 53 53 49 4e 53 54  {...SP_CLASSINST
8ce0: 41 4c 4c 5f 48 45 41 44 45 52 20 43 6c 61 73 73  ALL_HEADER Class
8cf0: 49 6e 73 74 61 6c 6c 48 65 61 64 65 72 3b 0d 0a  InstallHeader;..
8d00: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20  .DWORD          
8d10: 20 20 20 20 20 20 20 20 53 74 61 74 65 43 68 61          StateCha
8d20: 6e 67 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20  nge;...DWORD    
8d30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 63                Sc
8d40: 6f 70 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20  ope;...DWORD    
8d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 77                Hw
8d60: 50 72 6f 66 69 6c 65 3b 0d 0a 7d 0d 0a 61 6c 69  Profile;..}..ali
8d70: 61 73 20 53 50 5f 50 52 4f 50 43 48 41 4e 47 45  as SP_PROPCHANGE
8d80: 5f 50 41 52 41 4d 53 2a 20 50 53 50 5f 50 52 4f  _PARAMS* PSP_PRO
8d90: 50 43 48 41 4e 47 45 5f 50 41 52 41 4d 53 3b 0d  PCHANGE_PARAMS;.
8da0: 0a 0d 0a 73 74 72 75 63 74 20 53 50 5f 52 45 4d  ...struct SP_REM
8db0: 4f 56 45 44 45 56 49 43 45 5f 50 41 52 41 4d 53  OVEDEVICE_PARAMS
8dc0: 20 7b 0d 0a 09 53 50 5f 43 4c 41 53 53 49 4e 53   {...SP_CLASSINS
8dd0: 54 41 4c 4c 5f 48 45 41 44 45 52 20 43 6c 61 73  TALL_HEADER Clas
8de0: 73 49 6e 73 74 61 6c 6c 48 65 61 64 65 72 3b 0d  sInstallHeader;.
8df0: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
8e00: 20 20 20 20 20 20 20 20 20 53 63 6f 70 65 3b 0d           Scope;.
8e10: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
8e20: 20 20 20 20 20 20 20 20 20 48 77 50 72 6f 66 69           HwProfi
8e30: 6c 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50  le;..}..alias SP
8e40: 5f 52 45 4d 4f 56 45 44 45 56 49 43 45 5f 50 41  _REMOVEDEVICE_PA
8e50: 52 41 4d 53 2a 20 50 53 50 5f 52 45 4d 4f 56 45  RAMS* PSP_REMOVE
8e60: 44 45 56 49 43 45 5f 50 41 52 41 4d 53 3b 0d 0a  DEVICE_PARAMS;..
8e70: 0d 0a 73 74 72 75 63 74 20 53 50 5f 55 4e 52 45  ..struct SP_UNRE
8e80: 4d 4f 56 45 44 45 56 49 43 45 5f 50 41 52 41 4d  MOVEDEVICE_PARAM
8e90: 53 20 7b 0d 0a 09 53 50 5f 43 4c 41 53 53 49 4e  S {...SP_CLASSIN
8ea0: 53 54 41 4c 4c 5f 48 45 41 44 45 52 20 43 6c 61  STALL_HEADER Cla
8eb0: 73 73 49 6e 73 74 61 6c 6c 48 65 61 64 65 72 3b  ssInstallHeader;
8ec0: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
8ed0: 20 20 20 20 20 20 20 20 20 20 53 63 6f 70 65 3b            Scope;
8ee0: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
8ef0: 20 20 20 20 20 20 20 20 20 20 48 77 50 72 6f 66            HwProf
8f00: 69 6c 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53  ile;..}..alias S
8f10: 50 5f 55 4e 52 45 4d 4f 56 45 44 45 56 49 43 45  P_UNREMOVEDEVICE
8f20: 5f 50 41 52 41 4d 53 2a 20 50 53 50 5f 55 4e 52  _PARAMS* PSP_UNR
8f30: 45 4d 4f 56 45 44 45 56 49 43 45 5f 50 41 52 41  EMOVEDEVICE_PARA
8f40: 4d 53 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53 50  MS;....struct SP
8f50: 5f 53 45 4c 45 43 54 44 45 56 49 43 45 5f 50 41  _SELECTDEVICE_PA
8f60: 52 41 4d 53 5f 41 20 7b 0d 0a 09 53 50 5f 43 4c  RAMS_A {...SP_CL
8f70: 41 53 53 49 4e 53 54 41 4c 4c 5f 48 45 41 44 45  ASSINSTALL_HEADE
8f80: 52 20 20 20 20 43 6c 61 73 73 49 6e 73 74 61 6c  R    ClassInstal
8f90: 6c 48 65 61 64 65 72 3b 0d 0a 09 43 48 41 52 5b  lHeader;...CHAR[
8fa0: 4d 41 58 5f 54 49 54 4c 45 5f 4c 45 4e 5d 20 20  MAX_TITLE_LEN]  
8fb0: 20 20 20 20 20 54 69 74 6c 65 3b 0d 0a 09 43 48       Title;...CH
8fc0: 41 52 5b 4d 41 58 5f 49 4e 53 54 52 55 43 54 49  AR[MAX_INSTRUCTI
8fd0: 4f 4e 5f 4c 45 4e 5d 20 49 6e 73 74 72 75 63 74  ON_LEN] Instruct
8fe0: 69 6f 6e 73 3b 0d 0a 09 43 48 41 52 5b 4d 41 58  ions;...CHAR[MAX
8ff0: 5f 4c 41 42 45 4c 5f 4c 45 4e 5d 20 20 20 20 20  _LABEL_LEN]     
9000: 20 20 4c 69 73 74 4c 61 62 65 6c 3b 0d 0a 09 43    ListLabel;...C
9010: 48 41 52 5b 4d 41 58 5f 53 55 42 54 49 54 4c 45  HAR[MAX_SUBTITLE
9020: 5f 4c 45 4e 5d 20 20 20 20 53 75 62 54 69 74 6c  _LEN]    SubTitl
9030: 65 3b 0d 0a 09 42 59 54 45 5b 32 5d 20 20 20 20  e;...BYTE[2]    
9040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52                 R
9050: 65 73 65 72 76 65 64 3b 0d 0a 7d 0d 0a 61 6c 69  eserved;..}..ali
9060: 61 73 20 53 50 5f 53 45 4c 45 43 54 44 45 56 49  as SP_SELECTDEVI
9070: 43 45 5f 50 41 52 41 4d 53 5f 41 2a 20 50 53 50  CE_PARAMS_A* PSP
9080: 5f 53 45 4c 45 43 54 44 45 56 49 43 45 5f 50 41  _SELECTDEVICE_PA
9090: 52 41 4d 53 5f 41 3b 0d 0a 0d 0a 73 74 72 75 63  RAMS_A;....struc
90a0: 74 20 53 50 5f 53 45 4c 45 43 54 44 45 56 49 43  t SP_SELECTDEVIC
90b0: 45 5f 50 41 52 41 4d 53 5f 57 20 7b 0d 0a 09 53  E_PARAMS_W {...S
90c0: 50 5f 43 4c 41 53 53 49 4e 53 54 41 4c 4c 5f 48  P_CLASSINSTALL_H
90d0: 45 41 44 45 52 20 20 20 20 20 43 6c 61 73 73 49  EADER     ClassI
90e0: 6e 73 74 61 6c 6c 48 65 61 64 65 72 3b 0d 0a 09  nstallHeader;...
90f0: 57 43 48 41 52 5b 4d 41 58 5f 54 49 54 4c 45 5f  WCHAR[MAX_TITLE_
9100: 4c 45 4e 5d 20 20 20 20 20 20 20 54 69 74 6c 65  LEN]       Title
9110: 3b 0d 0a 09 57 43 48 41 52 5b 4d 41 58 5f 49 4e  ;...WCHAR[MAX_IN
9120: 53 54 52 55 43 54 49 4f 4e 5f 4c 45 4e 5d 20 49  STRUCTION_LEN] I
9130: 6e 73 74 72 75 63 74 69 6f 6e 73 3b 0d 0a 09 57  nstructions;...W
9140: 43 48 41 52 5b 4d 41 58 5f 4c 41 42 45 4c 5f 4c  CHAR[MAX_LABEL_L
9150: 45 4e 5d 20 20 20 20 20 20 20 4c 69 73 74 4c 61  EN]       ListLa
9160: 62 65 6c 3b 0d 0a 09 57 43 48 41 52 5b 4d 41 58  bel;...WCHAR[MAX
9170: 5f 53 55 42 54 49 54 4c 45 5f 4c 45 4e 5d 20 20  _SUBTITLE_LEN]  
9180: 20 20 53 75 62 54 69 74 6c 65 3b 0d 0a 7d 0d 0a    SubTitle;..}..
9190: 61 6c 69 61 73 20 53 50 5f 53 45 4c 45 43 54 44  alias SP_SELECTD
91a0: 45 56 49 43 45 5f 50 41 52 41 4d 53 5f 57 2a 20  EVICE_PARAMS_W* 
91b0: 50 53 50 5f 53 45 4c 45 43 54 44 45 56 49 43 45  PSP_SELECTDEVICE
91c0: 5f 50 41 52 41 4d 53 5f 57 3b 0d 0a 0d 0a 65 78  _PARAMS_W;....ex
91d0: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 61 6c  tern(Windows) al
91e0: 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69 6f  ias BOOL functio
91f0: 6e 28 50 56 4f 49 44 2c 20 44 57 4f 52 44 29 20  n(PVOID, DWORD) 
9200: 50 44 45 54 45 43 54 5f 50 52 4f 47 52 45 53 53  PDETECT_PROGRESS
9210: 5f 4e 4f 54 49 46 59 3b 0d 0a 0d 0a 73 74 72 75  _NOTIFY;....stru
9220: 63 74 20 53 50 5f 44 45 54 45 43 54 44 45 56 49  ct SP_DETECTDEVI
9230: 43 45 5f 50 41 52 41 4d 53 20 7b 0d 0a 09 53 50  CE_PARAMS {...SP
9240: 5f 43 4c 41 53 53 49 4e 53 54 41 4c 4c 5f 48 45  _CLASSINSTALL_HE
9250: 41 44 45 52 20 20 43 6c 61 73 73 49 6e 73 74 61  ADER  ClassInsta
9260: 6c 6c 48 65 61 64 65 72 3b 0d 0a 09 50 44 45 54  llHeader;...PDET
9270: 45 43 54 5f 50 52 4f 47 52 45 53 53 5f 4e 4f 54  ECT_PROGRESS_NOT
9280: 49 46 59 20 44 65 74 65 63 74 50 72 6f 67 72 65  IFY DetectProgre
9290: 73 73 4e 6f 74 69 66 79 3b 0d 0a 09 50 56 4f 49  ssNotify;...PVOI
92a0: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  D               
92b0: 20 20 20 20 50 72 6f 67 72 65 73 73 4e 6f 74 69      ProgressNoti
92c0: 66 79 50 61 72 61 6d 3b 0d 0a 7d 0d 0a 61 6c 69  fyParam;..}..ali
92d0: 61 73 20 53 50 5f 44 45 54 45 43 54 44 45 56 49  as SP_DETECTDEVI
92e0: 43 45 5f 50 41 52 41 4d 53 2a 20 50 53 50 5f 44  CE_PARAMS* PSP_D
92f0: 45 54 45 43 54 44 45 56 49 43 45 5f 50 41 52 41  ETECTDEVICE_PARA
9300: 4d 53 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53 50  MS;....struct SP
9310: 5f 49 4e 53 54 41 4c 4c 57 49 5a 41 52 44 5f 44  _INSTALLWIZARD_D
9320: 41 54 41 20 7b 0d 0a 09 53 50 5f 43 4c 41 53 53  ATA {...SP_CLASS
9330: 49 4e 53 54 41 4c 4c 5f 48 45 41 44 45 52 20 43  INSTALL_HEADER C
9340: 6c 61 73 73 49 6e 73 74 61 6c 6c 48 65 61 64 65  lassInstallHeade
9350: 72 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20  r;...DWORD      
9360: 20 20 20 20 20 20 20 20 20 20 20 20 46 6c 61 67              Flag
9370: 73 3b 0d 0a 09 48 50 52 4f 50 53 48 45 45 54 50  s;...HPROPSHEETP
9380: 41 47 45 5b 4d 41 58 5f 49 4e 53 54 41 4c 4c 57  AGE[MAX_INSTALLW
9390: 49 5a 41 52 44 5f 44 59 4e 41 50 41 47 45 53 5d  IZARD_DYNAPAGES]
93a0: 20 44 79 6e 61 6d 69 63 50 61 67 65 73 3b 0d 0a   DynamicPages;..
93b0: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20  .DWORD          
93c0: 20 20 20 20 20 20 20 20 4e 75 6d 44 79 6e 61 6d          NumDynam
93d0: 69 63 50 61 67 65 73 3b 0d 0a 09 44 57 4f 52 44  icPages;...DWORD
93e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
93f0: 20 20 44 79 6e 61 6d 69 63 50 61 67 65 46 6c 61    DynamicPageFla
9400: 67 73 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20  gs;...DWORD     
9410: 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 69               Pri
9420: 76 61 74 65 46 6c 61 67 73 3b 0d 0a 09 4c 50 41  vateFlags;...LPA
9430: 52 41 4d 20 20 20 20 20 20 20 20 20 20 20 20 20  RAM             
9440: 20 20 20 20 50 72 69 76 61 74 65 44 61 74 61 3b      PrivateData;
9450: 0d 0a 09 48 57 4e 44 20 20 20 20 20 20 20 20 20  ...HWND         
9460: 20 20 20 20 20 20 20 20 20 20 68 77 6e 64 57 69            hwndWi
9470: 7a 61 72 64 44 6c 67 3b 0d 0a 7d 0d 0a 61 6c 69  zardDlg;..}..ali
9480: 61 73 20 53 50 5f 49 4e 53 54 41 4c 4c 57 49 5a  as SP_INSTALLWIZ
9490: 41 52 44 5f 44 41 54 41 2a 20 50 53 50 5f 49 4e  ARD_DATA* PSP_IN
94a0: 53 54 41 4c 4c 57 49 5a 41 52 44 5f 44 41 54 41  STALLWIZARD_DATA
94b0: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53 50 5f 4e  ;....struct SP_N
94c0: 45 57 44 45 56 49 43 45 57 49 5a 41 52 44 5f 44  EWDEVICEWIZARD_D
94d0: 41 54 41 20 7b 0d 0a 09 53 50 5f 43 4c 41 53 53  ATA {...SP_CLASS
94e0: 49 4e 53 54 41 4c 4c 5f 48 45 41 44 45 52 20 43  INSTALL_HEADER C
94f0: 6c 61 73 73 49 6e 73 74 61 6c 6c 48 65 61 64 65  lassInstallHeade
9500: 72 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20  r;...DWORD      
9510: 20 20 20 20 20 20 20 20 20 20 20 20 46 6c 61 67              Flag
9520: 73 3b 0d 0a 09 48 50 52 4f 50 53 48 45 45 54 50  s;...HPROPSHEETP
9530: 41 47 45 5b 4d 41 58 5f 49 4e 53 54 41 4c 4c 57  AGE[MAX_INSTALLW
9540: 49 5a 41 52 44 5f 44 59 4e 41 50 41 47 45 53 5d  IZARD_DYNAPAGES]
9550: 20 20 44 79 6e 61 6d 69 63 50 61 67 65 73 3b 0d    DynamicPages;.
9560: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
9570: 20 20 20 20 20 20 20 20 20 4e 75 6d 44 79 6e 61           NumDyna
9580: 6d 69 63 50 61 67 65 73 3b 0d 0a 09 48 57 4e 44  micPages;...HWND
9590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
95a0: 20 20 20 68 77 6e 64 57 69 7a 61 72 64 44 6c 67     hwndWizardDlg
95b0: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50 5f 4e  ;..}..alias SP_N
95c0: 45 57 44 45 56 49 43 45 57 49 5a 41 52 44 5f 44  EWDEVICEWIZARD_D
95d0: 41 54 41 2a 20 50 53 50 5f 4e 45 57 44 45 56 49  ATA* PSP_NEWDEVI
95e0: 43 45 57 49 5a 41 52 44 5f 44 41 54 41 3b 0d 0a  CEWIZARD_DATA;..
95f0: 61 6c 69 61 73 20 53 50 5f 4e 45 57 44 45 56 49  alias SP_NEWDEVI
9600: 43 45 57 49 5a 41 52 44 5f 44 41 54 41 20 53 50  CEWIZARD_DATA SP
9610: 5f 41 44 44 50 52 4f 50 45 52 54 59 50 41 47 45  _ADDPROPERTYPAGE
9620: 5f 44 41 54 41 3b 0d 0a 61 6c 69 61 73 20 53 50  _DATA;..alias SP
9630: 5f 4e 45 57 44 45 56 49 43 45 57 49 5a 41 52 44  _NEWDEVICEWIZARD
9640: 5f 44 41 54 41 2a 20 50 53 50 5f 41 44 44 50 52  _DATA* PSP_ADDPR
9650: 4f 50 45 52 54 59 50 41 47 45 5f 44 41 54 41 3b  OPERTYPAGE_DATA;
9660: 0d 0a 0d 0a 73 74 72 75 63 74 20 53 50 5f 54 52  ....struct SP_TR
9670: 4f 55 42 4c 45 53 48 4f 4f 54 45 52 5f 50 41 52  OUBLESHOOTER_PAR
9680: 41 4d 53 5f 41 20 7b 0d 0a 09 53 50 5f 43 4c 41  AMS_A {...SP_CLA
9690: 53 53 49 4e 53 54 41 4c 4c 5f 48 45 41 44 45 52  SSINSTALL_HEADER
96a0: 20 43 6c 61 73 73 49 6e 73 74 61 6c 6c 48 65 61   ClassInstallHea
96b0: 64 65 72 3b 0d 0a 09 43 48 41 52 5b 4d 41 58 5f  der;...CHAR[MAX_
96c0: 50 41 54 48 5d 20 20 20 20 20 20 20 20 20 43 68  PATH]         Ch
96d0: 6d 46 69 6c 65 3b 0d 0a 09 43 48 41 52 5b 4d 41  mFile;...CHAR[MA
96e0: 58 5f 50 41 54 48 5d 20 20 20 20 20 20 20 20 20  X_PATH]         
96f0: 48 74 6d 6c 54 72 6f 75 62 6c 65 53 68 6f 6f 74  HtmlTroubleShoot
9700: 65 72 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50  er;..}..alias SP
9710: 5f 54 52 4f 55 42 4c 45 53 48 4f 4f 54 45 52 5f  _TROUBLESHOOTER_
9720: 50 41 52 41 4d 53 5f 41 2a 20 50 53 50 5f 54 52  PARAMS_A* PSP_TR
9730: 4f 55 42 4c 45 53 48 4f 4f 54 45 52 5f 50 41 52  OUBLESHOOTER_PAR
9740: 41 4d 53 5f 41 3b 0d 0a 0d 0a 73 74 72 75 63 74  AMS_A;....struct
9750: 20 53 50 5f 54 52 4f 55 42 4c 45 53 48 4f 4f 54   SP_TROUBLESHOOT
9760: 45 52 5f 50 41 52 41 4d 53 5f 57 20 7b 0d 0a 09  ER_PARAMS_W {...
9770: 53 50 5f 43 4c 41 53 53 49 4e 53 54 41 4c 4c 5f  SP_CLASSINSTALL_
9780: 48 45 41 44 45 52 20 43 6c 61 73 73 49 6e 73 74  HEADER ClassInst
9790: 61 6c 6c 48 65 61 64 65 72 3b 0d 0a 09 57 43 48  allHeader;...WCH
97a0: 41 52 5b 4d 41 58 5f 50 41 54 48 5d 20 20 20 20  AR[MAX_PATH]    
97b0: 20 20 20 20 43 68 6d 46 69 6c 65 3b 0d 0a 09 57      ChmFile;...W
97c0: 43 48 41 52 5b 4d 41 58 5f 50 41 54 48 5d 20 20  CHAR[MAX_PATH]  
97d0: 20 20 20 20 20 20 48 74 6d 6c 54 72 6f 75 62 6c        HtmlTroubl
97e0: 65 53 68 6f 6f 74 65 72 3b 0d 0a 7d 0d 0a 61 6c  eShooter;..}..al
97f0: 69 61 73 20 53 50 5f 54 52 4f 55 42 4c 45 53 48  ias SP_TROUBLESH
9800: 4f 4f 54 45 52 5f 50 41 52 41 4d 53 5f 57 2a 20  OOTER_PARAMS_W* 
9810: 50 53 50 5f 54 52 4f 55 42 4c 45 53 48 4f 4f 54  PSP_TROUBLESHOOT
9820: 45 52 5f 50 41 52 41 4d 53 5f 57 3b 0d 0a 0d 0a  ER_PARAMS_W;....
9830: 73 74 72 75 63 74 20 53 50 5f 50 4f 57 45 52 4d  struct SP_POWERM
9840: 45 53 53 41 47 45 57 41 4b 45 5f 50 41 52 41 4d  ESSAGEWAKE_PARAM
9850: 53 5f 41 20 7b 0d 0a 09 53 50 5f 43 4c 41 53 53  S_A {...SP_CLASS
9860: 49 4e 53 54 41 4c 4c 5f 48 45 41 44 45 52 20 43  INSTALL_HEADER C
9870: 6c 61 73 73 49 6e 73 74 61 6c 6c 48 65 61 64 65  lassInstallHeade
9880: 72 3b 0d 0a 09 43 48 41 52 5b 4c 49 4e 45 5f 4c  r;...CHAR[LINE_L
9890: 45 4e 2a 32 5d 20 20 20 20 20 20 20 50 6f 77 65  EN*2]       Powe
98a0: 72 4d 65 73 73 61 67 65 57 61 6b 65 3b 0d 0a 7d  rMessageWake;..}
98b0: 0d 0a 61 6c 69 61 73 20 53 50 5f 50 4f 57 45 52  ..alias SP_POWER
98c0: 4d 45 53 53 41 47 45 57 41 4b 45 5f 50 41 52 41  MESSAGEWAKE_PARA
98d0: 4d 53 5f 41 2a 20 50 53 50 5f 50 4f 57 45 52 4d  MS_A* PSP_POWERM
98e0: 45 53 53 41 47 45 57 41 4b 45 5f 50 41 52 41 4d  ESSAGEWAKE_PARAM
98f0: 53 5f 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53  S_A;....struct S
9900: 50 5f 50 4f 57 45 52 4d 45 53 53 41 47 45 57 41  P_POWERMESSAGEWA
9910: 4b 45 5f 50 41 52 41 4d 53 5f 57 20 7b 0d 0a 09  KE_PARAMS_W {...
9920: 53 50 5f 43 4c 41 53 53 49 4e 53 54 41 4c 4c 5f  SP_CLASSINSTALL_
9930: 48 45 41 44 45 52 20 43 6c 61 73 73 49 6e 73 74  HEADER ClassInst
9940: 61 6c 6c 48 65 61 64 65 72 3b 0d 0a 09 57 43 48  allHeader;...WCH
9950: 41 52 5b 4c 49 4e 45 5f 4c 45 4e 2a 32 5d 20 20  AR[LINE_LEN*2]  
9960: 20 20 20 20 50 6f 77 65 72 4d 65 73 73 61 67 65      PowerMessage
9970: 57 61 6b 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  Wake;..}..alias 
9980: 53 50 5f 50 4f 57 45 52 4d 45 53 53 41 47 45 57  SP_POWERMESSAGEW
9990: 41 4b 45 5f 50 41 52 41 4d 53 5f 57 2a 20 50 53  AKE_PARAMS_W* PS
99a0: 50 5f 50 4f 57 45 52 4d 45 53 53 41 47 45 57 41  P_POWERMESSAGEWA
99b0: 4b 45 5f 50 41 52 41 4d 53 5f 57 3b 0d 0a 0d 0a  KE_PARAMS_W;....
99c0: 73 74 72 75 63 74 20 53 50 5f 44 52 56 49 4e 46  struct SP_DRVINF
99d0: 4f 5f 44 41 54 41 5f 56 32 5f 41 20 7b 0d 0a 09  O_DATA_V2_A {...
99e0: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 63  DWORD          c
99f0: 62 53 69 7a 65 20 3d 20 53 50 5f 44 52 56 49 4e  bSize = SP_DRVIN
9a00: 46 4f 5f 44 41 54 41 5f 56 32 5f 41 2e 73 69 7a  FO_DATA_V2_A.siz
9a10: 65 6f 66 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20  eof;...DWORD    
9a20: 20 20 20 20 20 20 44 72 69 76 65 72 54 79 70 65        DriverType
9a30: 3b 0d 0a 09 55 4c 4f 4e 47 5f 50 54 52 20 20 20  ;...ULONG_PTR   
9a40: 20 20 20 52 65 73 65 72 76 65 64 3b 0d 0a 09 43     Reserved;...C
9a50: 48 41 52 5b 4c 49 4e 45 5f 4c 45 4e 5d 20 44 65  HAR[LINE_LEN] De
9a60: 73 63 72 69 70 74 69 6f 6e 3b 0d 0a 09 43 48 41  scription;...CHA
9a70: 52 5b 4c 49 4e 45 5f 4c 45 4e 5d 20 4d 66 67 4e  R[LINE_LEN] MfgN
9a80: 61 6d 65 3b 0d 0a 09 43 48 41 52 5b 4c 49 4e 45  ame;...CHAR[LINE
9a90: 5f 4c 45 4e 5d 20 50 72 6f 76 69 64 65 72 4e 61  _LEN] ProviderNa
9aa0: 6d 65 3b 0d 0a 09 46 49 4c 45 54 49 4d 45 20 20  me;...FILETIME  
9ab0: 20 20 20 20 20 44 72 69 76 65 72 44 61 74 65 3b       DriverDate;
9ac0: 0d 0a 09 44 57 4f 52 44 4c 4f 4e 47 20 20 20 20  ...DWORDLONG    
9ad0: 20 20 44 72 69 76 65 72 56 65 72 73 69 6f 6e 3b    DriverVersion;
9ae0: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50 5f 44 52  ..}..alias SP_DR
9af0: 56 49 4e 46 4f 5f 44 41 54 41 5f 56 32 5f 41 2a  VINFO_DATA_V2_A*
9b00: 20 50 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41 54   PSP_DRVINFO_DAT
9b10: 41 5f 56 32 5f 41 3b 0d 0a 0d 0a 73 74 72 75 63  A_V2_A;....struc
9b20: 74 20 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41 54  t SP_DRVINFO_DAT
9b30: 41 5f 56 32 5f 57 20 7b 0d 0a 09 44 57 4f 52 44  A_V2_W {...DWORD
9b40: 20 20 20 20 20 20 20 20 20 20 20 63 62 53 69 7a             cbSiz
9b50: 65 20 3d 20 53 50 5f 44 52 56 49 4e 46 4f 5f 44  e = SP_DRVINFO_D
9b60: 41 54 41 5f 56 32 5f 41 2e 73 69 7a 65 6f 66 3b  ATA_V2_A.sizeof;
9b70: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
9b80: 20 20 20 44 72 69 76 65 72 54 79 70 65 3b 0d 0a     DriverType;..
9b90: 09 55 4c 4f 4e 47 5f 50 54 52 20 20 20 20 20 20  .ULONG_PTR      
9ba0: 20 52 65 73 65 72 76 65 64 3b 0d 0a 09 57 43 48   Reserved;...WCH
9bb0: 41 52 5b 4c 49 4e 45 5f 4c 45 4e 5d 20 44 65 73  AR[LINE_LEN] Des
9bc0: 63 72 69 70 74 69 6f 6e 3b 0d 0a 09 57 43 48 41  cription;...WCHA
9bd0: 52 5b 4c 49 4e 45 5f 4c 45 4e 5d 20 4d 66 67 4e  R[LINE_LEN] MfgN
9be0: 61 6d 65 3b 0d 0a 09 57 43 48 41 52 5b 4c 49 4e  ame;...WCHAR[LIN
9bf0: 45 5f 4c 45 4e 5d 20 50 72 6f 76 69 64 65 72 4e  E_LEN] ProviderN
9c00: 61 6d 65 3b 0d 0a 09 46 49 4c 45 54 49 4d 45 20  ame;...FILETIME 
9c10: 20 20 20 20 20 20 20 44 72 69 76 65 72 44 61 74         DriverDat
9c20: 65 3b 0d 0a 09 44 57 4f 52 44 4c 4f 4e 47 20 20  e;...DWORDLONG  
9c30: 20 20 20 20 20 44 72 69 76 65 72 56 65 72 73 69       DriverVersi
9c40: 6f 6e 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50  on;..}..alias SP
9c50: 5f 44 52 56 49 4e 46 4f 5f 44 41 54 41 5f 56 32  _DRVINFO_DATA_V2
9c60: 5f 57 2a 20 50 53 50 5f 44 52 56 49 4e 46 4f 5f  _W* PSP_DRVINFO_
9c70: 44 41 54 41 5f 56 32 5f 57 3b 0d 0a 0d 0a 73 74  DATA_V2_W;....st
9c80: 72 75 63 74 20 53 50 5f 44 52 56 49 4e 46 4f 5f  ruct SP_DRVINFO_
9c90: 44 41 54 41 5f 56 31 5f 41 20 7b 0d 0a 09 44 57  DATA_V1_A {...DW
9ca0: 4f 52 44 20 20 20 20 20 20 20 20 20 20 63 62 53  ORD          cbS
9cb0: 69 7a 65 20 3d 20 53 50 5f 44 52 56 49 4e 46 4f  ize = SP_DRVINFO
9cc0: 5f 44 41 54 41 5f 56 31 5f 41 2e 73 69 7a 65 6f  _DATA_V1_A.sizeo
9cd0: 66 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20  f;...DWORD      
9ce0: 20 20 20 20 44 72 69 76 65 72 54 79 70 65 3b 0d      DriverType;.
9cf0: 0a 09 55 4c 4f 4e 47 5f 50 54 52 20 20 20 20 20  ..ULONG_PTR     
9d00: 20 52 65 73 65 72 76 65 64 3b 0d 0a 09 43 48 41   Reserved;...CHA
9d10: 52 5b 4c 49 4e 45 5f 4c 45 4e 5d 20 44 65 73 63  R[LINE_LEN] Desc
9d20: 72 69 70 74 69 6f 6e 3b 0d 0a 09 43 48 41 52 5b  ription;...CHAR[
9d30: 4c 49 4e 45 5f 4c 45 4e 5d 20 4d 66 67 4e 61 6d  LINE_LEN] MfgNam
9d40: 65 3b 0d 0a 09 43 48 41 52 5b 4c 49 4e 45 5f 4c  e;...CHAR[LINE_L
9d50: 45 4e 5d 20 50 72 6f 76 69 64 65 72 4e 61 6d 65  EN] ProviderName
9d60: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50 5f 44  ;..}..alias SP_D
9d70: 52 56 49 4e 46 4f 5f 44 41 54 41 5f 56 31 5f 41  RVINFO_DATA_V1_A
9d80: 2a 20 50 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41  * PSP_DRVINFO_DA
9d90: 54 41 5f 56 31 5f 41 3b 0d 0a 0d 0a 73 74 72 75  TA_V1_A;....stru
9da0: 63 74 20 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41  ct SP_DRVINFO_DA
9db0: 54 41 5f 56 31 5f 57 20 7b 0d 0a 09 44 57 4f 52  TA_V1_W {...DWOR
9dc0: 44 20 20 20 20 20 20 20 20 20 20 20 63 62 53 69  D           cbSi
9dd0: 7a 65 20 3d 20 53 50 5f 44 52 56 49 4e 46 4f 5f  ze = SP_DRVINFO_
9de0: 44 41 54 41 5f 56 31 5f 57 2e 73 69 7a 65 6f 66  DATA_V1_W.sizeof
9df0: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20  ;...DWORD       
9e00: 20 20 20 20 44 72 69 76 65 72 54 79 70 65 3b 0d      DriverType;.
9e10: 0a 09 55 4c 4f 4e 47 5f 50 54 52 20 20 20 20 20  ..ULONG_PTR     
9e20: 20 20 52 65 73 65 72 76 65 64 3b 0d 0a 09 57 43    Reserved;...WC
9e30: 48 41 52 5b 4c 49 4e 45 5f 4c 45 4e 5d 20 44 65  HAR[LINE_LEN] De
9e40: 73 63 72 69 70 74 69 6f 6e 3b 0d 0a 09 57 43 48  scription;...WCH
9e50: 41 52 5b 4c 49 4e 45 5f 4c 45 4e 5d 20 4d 66 67  AR[LINE_LEN] Mfg
9e60: 4e 61 6d 65 3b 0d 0a 09 57 43 48 41 52 5b 4c 49  Name;...WCHAR[LI
9e70: 4e 45 5f 4c 45 4e 5d 20 50 72 6f 76 69 64 65 72  NE_LEN] Provider
9e80: 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  Name;..}..alias 
9e90: 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41 54 41 5f  SP_DRVINFO_DATA_
9ea0: 56 31 5f 57 2a 20 50 53 50 5f 44 52 56 49 4e 46  V1_W* PSP_DRVINF
9eb0: 4f 5f 44 41 54 41 5f 56 31 5f 57 3b 0d 0a 0d 0a  O_DATA_V1_W;....
9ec0: 76 65 72 73 69 6f 6e 20 28 55 6e 69 63 6f 64 65  version (Unicode
9ed0: 29 20 7b 0d 0a 09 61 6c 69 61 73 20 53 50 5f 44  ) {...alias SP_D
9ee0: 52 56 49 4e 46 4f 5f 44 41 54 41 5f 56 31 5f 57  RVINFO_DATA_V1_W
9ef0: 20 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41 54 41   SP_DRVINFO_DATA
9f00: 5f 56 31 3b 0d 0a 09 61 6c 69 61 73 20 53 50 5f  _V1;...alias SP_
9f10: 44 52 56 49 4e 46 4f 5f 44 41 54 41 5f 56 32 5f  DRVINFO_DATA_V2_
9f20: 57 20 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41 54  W SP_DRVINFO_DAT
9f30: 41 5f 56 32 3b 0d 0a 7d 20 65 6c 73 65 20 7b 0d  A_V2;..} else {.
9f40: 0a 09 61 6c 69 61 73 20 53 50 5f 44 52 56 49 4e  ..alias SP_DRVIN
9f50: 46 4f 5f 44 41 54 41 5f 56 31 5f 41 20 53 50 5f  FO_DATA_V1_A SP_
9f60: 44 52 56 49 4e 46 4f 5f 44 41 54 41 5f 56 31 3b  DRVINFO_DATA_V1;
9f70: 0d 0a 09 61 6c 69 61 73 20 53 50 5f 44 52 56 49  ...alias SP_DRVI
9f80: 4e 46 4f 5f 44 41 54 41 5f 56 32 5f 41 20 53 50  NFO_DATA_V2_A SP
9f90: 5f 44 52 56 49 4e 46 4f 5f 44 41 54 41 5f 56 32  _DRVINFO_DATA_V2
9fa0: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50 5f 44  ;..}..alias SP_D
9fb0: 52 56 49 4e 46 4f 5f 44 41 54 41 5f 56 31 2a 20  RVINFO_DATA_V1* 
9fc0: 50 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41 54 41  PSP_DRVINFO_DATA
9fd0: 5f 56 31 3b 0d 0a 61 6c 69 61 73 20 53 50 5f 44  _V1;..alias SP_D
9fe0: 52 56 49 4e 46 4f 5f 44 41 54 41 5f 56 32 2a 20  RVINFO_DATA_V2* 
9ff0: 50 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41 54 41  PSP_DRVINFO_DATA
a000: 5f 56 32 3b 0d 0a 0d 0a 73 74 61 74 69 63 20 69  _V2;....static i
a010: 66 28 55 53 45 5f 53 50 5f 44 52 56 49 4e 46 4f  f(USE_SP_DRVINFO
a020: 5f 44 41 54 41 5f 56 31 29 20 7b 0d 0a 09 61 6c  _DATA_V1) {...al
a030: 69 61 73 20 53 50 5f 44 52 56 49 4e 46 4f 5f 44  ias SP_DRVINFO_D
a040: 41 54 41 5f 56 31 5f 41 20 53 50 5f 44 52 56 49  ATA_V1_A SP_DRVI
a050: 4e 46 4f 5f 44 41 54 41 5f 41 3b 0d 0a 09 61 6c  NFO_DATA_A;...al
a060: 69 61 73 20 53 50 5f 44 52 56 49 4e 46 4f 5f 44  ias SP_DRVINFO_D
a070: 41 54 41 5f 56 31 5f 41 2a 20 50 53 50 5f 44 52  ATA_V1_A* PSP_DR
a080: 56 49 4e 46 4f 5f 44 41 54 41 5f 41 3b 0d 0a 09  VINFO_DATA_A;...
a090: 61 6c 69 61 73 20 53 50 5f 44 52 56 49 4e 46 4f  alias SP_DRVINFO
a0a0: 5f 44 41 54 41 5f 56 31 5f 57 20 53 50 5f 44 52  _DATA_V1_W SP_DR
a0b0: 56 49 4e 46 4f 5f 44 41 54 41 5f 57 3b 0d 0a 09  VINFO_DATA_W;...
a0c0: 61 6c 69 61 73 20 53 50 5f 44 52 56 49 4e 46 4f  alias SP_DRVINFO
a0d0: 5f 44 41 54 41 5f 56 31 5f 57 2a 20 50 53 50 5f  _DATA_V1_W* PSP_
a0e0: 44 52 56 49 4e 46 4f 5f 44 41 54 41 5f 57 3b 0d  DRVINFO_DATA_W;.
a0f0: 0a 09 61 6c 69 61 73 20 53 50 5f 44 52 56 49 4e  ..alias SP_DRVIN
a100: 46 4f 5f 44 41 54 41 5f 56 31 20 53 50 5f 44 52  FO_DATA_V1 SP_DR
a110: 56 49 4e 46 4f 5f 44 41 54 41 3b 0d 0a 09 61 6c  VINFO_DATA;...al
a120: 69 61 73 20 53 50 5f 44 52 56 49 4e 46 4f 5f 44  ias SP_DRVINFO_D
a130: 41 54 41 5f 56 31 2a 20 50 53 50 5f 44 52 56 49  ATA_V1* PSP_DRVI
a140: 4e 46 4f 5f 44 41 54 41 3b 0d 0a 7d 20 65 6c 73  NFO_DATA;..} els
a150: 65 20 7b 0d 0a 09 61 6c 69 61 73 20 53 50 5f 44  e {...alias SP_D
a160: 52 56 49 4e 46 4f 5f 44 41 54 41 5f 56 32 5f 41  RVINFO_DATA_V2_A
a170: 20 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41 54 41   SP_DRVINFO_DATA
a180: 5f 41 3b 0d 0a 09 61 6c 69 61 73 20 53 50 5f 44  _A;...alias SP_D
a190: 52 56 49 4e 46 4f 5f 44 41 54 41 5f 56 32 5f 41  RVINFO_DATA_V2_A
a1a0: 2a 20 50 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41  * PSP_DRVINFO_DA
a1b0: 54 41 5f 41 3b 0d 0a 09 61 6c 69 61 73 20 53 50  TA_A;...alias SP
a1c0: 5f 44 52 56 49 4e 46 4f 5f 44 41 54 41 5f 56 32  _DRVINFO_DATA_V2
a1d0: 5f 57 20 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41  _W SP_DRVINFO_DA
a1e0: 54 41 5f 57 3b 0d 0a 09 61 6c 69 61 73 20 53 50  TA_W;...alias SP
a1f0: 5f 44 52 56 49 4e 46 4f 5f 44 41 54 41 5f 56 32  _DRVINFO_DATA_V2
a200: 5f 57 2a 20 50 53 50 5f 44 52 56 49 4e 46 4f 5f  _W* PSP_DRVINFO_
a210: 44 41 54 41 5f 57 3b 0d 0a 09 61 6c 69 61 73 20  DATA_W;...alias 
a220: 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41 54 41 5f  SP_DRVINFO_DATA_
a230: 56 32 20 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41  V2 SP_DRVINFO_DA
a240: 54 41 3b 0d 0a 09 61 6c 69 61 73 20 53 50 5f 44  TA;...alias SP_D
a250: 52 56 49 4e 46 4f 5f 44 41 54 41 5f 56 32 2a 20  RVINFO_DATA_V2* 
a260: 50 53 50 5f 44 52 56 49 4e 46 4f 5f 44 41 54 41  PSP_DRVINFO_DATA
a270: 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ;..}....extern(W
a280: 69 6e 64 6f 77 73 29 20 61 6c 69 61 73 20 44 57  indows) alias DW
a290: 4f 52 44 20 66 75 6e 63 74 69 6f 6e 28 48 44 45  ORD function(HDE
a2a0: 56 49 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e  VINFO, PSP_DEVIN
a2b0: 46 4f 5f 44 41 54 41 2c 20 50 53 50 5f 44 45 56  FO_DATA, PSP_DEV
a2c0: 49 4e 46 4f 5f 44 41 54 41 2c 20 50 56 4f 49 44  INFO_DATA, PVOID
a2d0: 29 20 50 53 50 5f 44 45 54 53 49 47 5f 43 4d 50  ) PSP_DETSIG_CMP
a2e0: 50 52 4f 43 3b 0d 0a 0d 0a 73 74 72 75 63 74 20  PROC;....struct 
a2f0: 53 50 5f 44 52 56 49 4e 46 4f 5f 44 45 54 41 49  SP_DRVINFO_DETAI
a300: 4c 5f 44 41 54 41 5f 41 20 7b 0d 0a 09 44 57 4f  L_DATA_A {...DWO
a310: 52 44 20 20 20 20 20 20 20 20 20 20 63 62 53 69  RD          cbSi
a320: 7a 65 20 3d 20 53 50 5f 44 52 56 49 4e 46 4f 5f  ze = SP_DRVINFO_
a330: 44 45 54 41 49 4c 5f 44 41 54 41 5f 41 2e 73 69  DETAIL_DATA_A.si
a340: 7a 65 6f 66 3b 0d 0a 09 46 49 4c 45 54 49 4d 45  zeof;...FILETIME
a350: 20 20 20 20 20 20 20 49 6e 66 44 61 74 65 3b 0d         InfDate;.
a360: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
a370: 20 43 6f 6d 70 61 74 49 44 73 4f 66 66 73 65 74   CompatIDsOffset
a380: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20  ;...DWORD       
a390: 20 20 20 43 6f 6d 70 61 74 49 44 73 4c 65 6e 67     CompatIDsLeng
a3a0: 74 68 3b 0d 0a 09 55 4c 4f 4e 47 5f 50 54 52 20  th;...ULONG_PTR 
a3b0: 20 20 20 20 20 52 65 73 65 72 76 65 64 3b 0d 0a       Reserved;..
a3c0: 09 43 48 41 52 5b 4c 49 4e 45 5f 4c 45 4e 5d 20  .CHAR[LINE_LEN] 
a3d0: 53 65 63 74 69 6f 6e 4e 61 6d 65 3b 0d 0a 09 43  SectionName;...C
a3e0: 48 41 52 5b 4d 41 58 5f 50 41 54 48 5d 20 49 6e  HAR[MAX_PATH] In
a3f0: 66 46 69 6c 65 4e 61 6d 65 3b 0d 0a 09 43 48 41  fFileName;...CHA
a400: 52 5b 4c 49 4e 45 5f 4c 45 4e 5d 20 44 72 76 44  R[LINE_LEN] DrvD
a410: 65 73 63 72 69 70 74 69 6f 6e 3b 0d 0a 09 43 48  escription;...CH
a420: 41 52 5b 31 5d 20 20 20 20 20 20 20 20 5f 48 61  AR[1]        _Ha
a430: 72 64 77 61 72 65 49 44 3b 0d 0a 09 43 48 41 52  rdwareID;...CHAR
a440: 2a 20 20 20 20 20 20 20 20 20 20 48 61 72 64 77  *          Hardw
a450: 61 72 65 49 44 28 29 20 7b 20 72 65 74 75 72 6e  areID() { return
a460: 20 5f 48 61 72 64 77 61 72 65 49 44 2e 70 74 72   _HardwareID.ptr
a470: 3b 20 7d 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50  ; }..}..alias SP
a480: 5f 44 52 56 49 4e 46 4f 5f 44 45 54 41 49 4c 5f  _DRVINFO_DETAIL_
a490: 44 41 54 41 5f 41 2a 20 50 53 50 5f 44 52 56 49  DATA_A* PSP_DRVI
a4a0: 4e 46 4f 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f  NFO_DETAIL_DATA_
a4b0: 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53 50 5f  A;....struct SP_
a4c0: 44 52 56 49 4e 46 4f 5f 44 45 54 41 49 4c 5f 44  DRVINFO_DETAIL_D
a4d0: 41 54 41 5f 57 20 7b 0d 0a 09 44 57 4f 52 44 20  ATA_W {...DWORD 
a4e0: 20 20 20 20 20 20 20 20 20 20 63 62 53 69 7a 65            cbSize
a4f0: 20 3d 20 53 50 5f 44 52 56 49 4e 46 4f 5f 44 45   = SP_DRVINFO_DE
a500: 54 41 49 4c 5f 44 41 54 41 5f 57 2e 73 69 7a 65  TAIL_DATA_W.size
a510: 6f 66 3b 0d 0a 09 46 49 4c 45 54 49 4d 45 20 20  of;...FILETIME  
a520: 20 20 20 20 20 20 49 6e 66 44 61 74 65 3b 0d 0a        InfDate;..
a530: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20  .DWORD          
a540: 20 43 6f 6d 70 61 74 49 44 73 4f 66 66 73 65 74   CompatIDsOffset
a550: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20  ;...DWORD       
a560: 20 20 20 20 43 6f 6d 70 61 74 49 44 73 4c 65 6e      CompatIDsLen
a570: 67 74 68 3b 0d 0a 09 55 4c 4f 4e 47 5f 50 54 52  gth;...ULONG_PTR
a580: 20 20 20 20 20 20 20 52 65 73 65 72 76 65 64 3b         Reserved;
a590: 0d 0a 09 57 43 48 41 52 5b 4c 49 4e 45 5f 4c 45  ...WCHAR[LINE_LE
a5a0: 4e 5d 20 53 65 63 74 69 6f 6e 4e 61 6d 65 3b 0d  N] SectionName;.
a5b0: 0a 09 57 43 48 41 52 5b 4d 41 58 5f 50 41 54 48  ..WCHAR[MAX_PATH
a5c0: 5d 20 49 6e 66 46 69 6c 65 4e 61 6d 65 3b 0d 0a  ] InfFileName;..
a5d0: 09 57 43 48 41 52 5b 4c 49 4e 45 5f 4c 45 4e 5d  .WCHAR[LINE_LEN]
a5e0: 20 44 72 76 44 65 73 63 72 69 70 74 69 6f 6e 3b   DrvDescription;
a5f0: 0d 0a 09 57 43 48 41 52 5b 31 5d 20 20 20 20 20  ...WCHAR[1]     
a600: 20 20 20 5f 48 61 72 64 77 61 72 65 49 44 3b 0d     _HardwareID;.
a610: 0a 09 57 43 48 41 52 2a 20 20 20 20 20 20 20 20  ..WCHAR*        
a620: 20 20 48 61 72 64 77 61 72 65 49 44 28 29 20 7b    HardwareID() {
a630: 20 72 65 74 75 72 6e 20 5f 48 61 72 64 77 61 72   return _Hardwar
a640: 65 49 44 2e 70 74 72 3b 20 7d 0d 0a 7d 0d 0a 61  eID.ptr; }..}..a
a650: 6c 69 61 73 20 53 50 5f 44 52 56 49 4e 46 4f 5f  lias SP_DRVINFO_
a660: 44 45 54 41 49 4c 5f 44 41 54 41 5f 57 2a 20 50  DETAIL_DATA_W* P
a670: 53 50 5f 44 52 56 49 4e 46 4f 5f 44 45 54 41 49  SP_DRVINFO_DETAI
a680: 4c 5f 44 41 54 41 5f 57 3b 0d 0a 0d 0a 73 74 72  L_DATA_W;....str
a690: 75 63 74 20 53 50 5f 44 52 56 49 4e 53 54 41 4c  uct SP_DRVINSTAL
a6a0: 4c 5f 50 41 52 41 4d 53 20 7b 0d 0a 09 44 57 4f  L_PARAMS {...DWO
a6b0: 52 44 20 63 62 53 69 7a 65 20 3d 20 53 50 5f 44  RD cbSize = SP_D
a6c0: 52 56 49 4e 53 54 41 4c 4c 5f 50 41 52 41 4d 53  RVINSTALL_PARAMS
a6d0: 2e 73 69 7a 65 6f 66 3b 0d 0a 09 44 57 4f 52 44  .sizeof;...DWORD
a6e0: 20 52 61 6e 6b 3b 0d 0a 09 44 57 4f 52 44 20 46   Rank;...DWORD F
a6f0: 6c 61 67 73 3b 0d 0a 09 44 57 4f 52 44 5f 50 54  lags;...DWORD_PT
a700: 52 20 50 72 69 76 61 74 65 44 61 74 61 3b 0d 0a  R PrivateData;..
a710: 09 44 57 4f 52 44 20 52 65 73 65 72 76 65 64 3b  .DWORD Reserved;
a720: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 50 5f 44 52  ..}..alias SP_DR
a730: 56 49 4e 53 54 41 4c 4c 5f 50 41 52 41 4d 53 2a  VINSTALL_PARAMS*
a740: 20 50 53 50 5f 44 52 56 49 4e 53 54 41 4c 4c 5f   PSP_DRVINSTALL_
a750: 50 41 52 41 4d 53 3b 0d 0a 0d 0a 73 74 72 75 63  PARAMS;....struc
a760: 74 20 43 4f 49 4e 53 54 41 4c 4c 45 52 5f 43 4f  t COINSTALLER_CO
a770: 4e 54 45 58 54 5f 44 41 54 41 20 7b 0d 0a 09 42  NTEXT_DATA {...B
a780: 4f 4f 4c 20 20 50 6f 73 74 50 72 6f 63 65 73 73  OOL  PostProcess
a790: 69 6e 67 3b 0d 0a 09 44 57 4f 52 44 20 49 6e 73  ing;...DWORD Ins
a7a0: 74 61 6c 6c 52 65 73 75 6c 74 3b 0d 0a 09 50 56  tallResult;...PV
a7b0: 4f 49 44 20 50 72 69 76 61 74 65 44 61 74 61 3b  OID PrivateData;
a7c0: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 43 4f 49 4e 53  ..}..alias COINS
a7d0: 54 41 4c 4c 45 52 5f 43 4f 4e 54 45 58 54 5f 44  TALLER_CONTEXT_D
a7e0: 41 54 41 2a 20 50 43 4f 49 4e 53 54 41 4c 4c 45  ATA* PCOINSTALLE
a7f0: 52 5f 43 4f 4e 54 45 58 54 5f 44 41 54 41 3b 0d  R_CONTEXT_DATA;.
a800: 0a 0d 0a 73 74 72 75 63 74 20 53 50 5f 43 4c 41  ...struct SP_CLA
a810: 53 53 49 4d 41 47 45 4c 49 53 54 5f 44 41 54 41  SSIMAGELIST_DATA
a820: 20 7b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20   {...DWORD      
a830: 63 62 53 69 7a 65 20 3d 20 53 50 5f 43 4c 41 53  cbSize = SP_CLAS
a840: 53 49 4d 41 47 45 4c 49 53 54 5f 44 41 54 41 2e  SIMAGELIST_DATA.
a850: 73 69 7a 65 6f 66 3b 0d 0a 09 48 49 4d 41 47 45  sizeof;...HIMAGE
a860: 4c 49 53 54 20 49 6d 61 67 65 4c 69 73 74 3b 0d  LIST ImageList;.
a870: 0a 09 55 4c 4f 4e 47 5f 50 54 52 20 20 52 65 73  ..ULONG_PTR  Res
a880: 65 72 76 65 64 3b 0d 0a 7d 0d 0a 61 6c 69 61 73  erved;..}..alias
a890: 20 53 50 5f 43 4c 41 53 53 49 4d 41 47 45 4c 49   SP_CLASSIMAGELI
a8a0: 53 54 5f 44 41 54 41 2a 20 50 53 50 5f 43 4c 41  ST_DATA* PSP_CLA
a8b0: 53 53 49 4d 41 47 45 4c 49 53 54 5f 44 41 54 41  SSIMAGELIST_DATA
a8c0: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53 50 5f 50  ;....struct SP_P
a8d0: 52 4f 50 53 48 45 45 54 50 41 47 45 5f 52 45 51  ROPSHEETPAGE_REQ
a8e0: 55 45 53 54 20 7b 0d 0a 09 44 57 4f 52 44 20 20  UEST {...DWORD  
a8f0: 20 20 20 20 20 20 20 20 20 20 63 62 53 69 7a 65            cbSize
a900: 20 3d 20 53 50 5f 50 52 4f 50 53 48 45 45 54 50   = SP_PROPSHEETP
a910: 41 47 45 5f 52 45 51 55 45 53 54 2e 73 69 7a 65  AGE_REQUEST.size
a920: 6f 66 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20  of;...DWORD     
a930: 20 20 20 20 20 20 20 50 61 67 65 52 65 71 75 65         PageReque
a940: 73 74 65 64 3b 0d 0a 09 48 44 45 56 49 4e 46 4f  sted;...HDEVINFO
a950: 20 20 20 20 20 20 20 20 20 44 65 76 69 63 65 49           DeviceI
a960: 6e 66 6f 53 65 74 3b 0d 0a 09 50 53 50 5f 44 45  nfoSet;...PSP_DE
a970: 56 49 4e 46 4f 5f 44 41 54 41 20 44 65 76 69 63  VINFO_DATA Devic
a980: 65 49 6e 66 6f 44 61 74 61 3b 0d 0a 7d 0d 0a 61  eInfoData;..}..a
a990: 6c 69 61 73 20 53 50 5f 50 52 4f 50 53 48 45 45  lias SP_PROPSHEE
a9a0: 54 50 41 47 45 5f 52 45 51 55 45 53 54 2a 20 50  TPAGE_REQUEST* P
a9b0: 53 50 5f 50 52 4f 50 53 48 45 45 54 50 41 47 45  SP_PROPSHEETPAGE
a9c0: 5f 52 45 51 55 45 53 54 3b 0d 0a 0d 0a 73 74 72  _REQUEST;....str
a9d0: 75 63 74 20 53 50 5f 42 41 43 4b 55 50 5f 51 55  uct SP_BACKUP_QU
a9e0: 45 55 45 5f 50 41 52 41 4d 53 5f 41 20 7b 0d 0a  EUE_PARAMS_A {..
a9f0: 09 44 57 4f 52 44 20 63 62 53 69 7a 65 20 3d 20  .DWORD cbSize = 
aa00: 53 50 5f 42 41 43 4b 55 50 5f 51 55 45 55 45 5f  SP_BACKUP_QUEUE_
aa10: 50 41 52 41 4d 53 5f 41 2e 73 69 7a 65 6f 66 3b  PARAMS_A.sizeof;
aa20: 0d 0a 09 43 48 41 52 5b 4d 41 58 5f 50 41 54 48  ...CHAR[MAX_PATH
aa30: 5d 20 46 75 6c 6c 49 6e 66 50 61 74 68 3b 0d 0a  ] FullInfPath;..
aa40: 09 49 4e 54 20 46 69 6c 65 6e 61 6d 65 4f 66 66  .INT FilenameOff
aa50: 73 65 74 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53  set;..}..alias S
aa60: 50 5f 42 41 43 4b 55 50 5f 51 55 45 55 45 5f 50  P_BACKUP_QUEUE_P
aa70: 41 52 41 4d 53 5f 41 2a 20 50 53 50 5f 42 41 43  ARAMS_A* PSP_BAC
aa80: 4b 55 50 5f 51 55 45 55 45 5f 50 41 52 41 4d 53  KUP_QUEUE_PARAMS
aa90: 5f 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53 50  _A;....struct SP
aaa0: 5f 42 41 43 4b 55 50 5f 51 55 45 55 45 5f 50 41  _BACKUP_QUEUE_PA
aab0: 52 41 4d 53 5f 57 20 7b 0d 0a 09 44 57 4f 52 44  RAMS_W {...DWORD
aac0: 20 63 62 53 69 7a 65 20 3d 20 53 50 5f 42 41 43   cbSize = SP_BAC
aad0: 4b 55 50 5f 51 55 45 55 45 5f 50 41 52 41 4d 53  KUP_QUEUE_PARAMS
aae0: 5f 57 2e 73 69 7a 65 6f 66 3b 0d 0a 09 57 43 48  _W.sizeof;...WCH
aaf0: 41 52 5b 4d 41 58 5f 50 41 54 48 5d 20 46 75 6c  AR[MAX_PATH] Ful
ab00: 6c 49 6e 66 50 61 74 68 3b 0d 0a 09 49 4e 54 20  lInfPath;...INT 
ab10: 46 69 6c 65 6e 61 6d 65 4f 66 66 73 65 74 3b 0d  FilenameOffset;.
ab20: 0a 7d 0d 0a 61 6c 69 61 73 20 53 50 5f 42 41 43  .}..alias SP_BAC
ab30: 4b 55 50 5f 51 55 45 55 45 5f 50 41 52 41 4d 53  KUP_QUEUE_PARAMS
ab40: 5f 57 2a 20 50 53 50 5f 42 41 43 4b 55 50 5f 51  _W* PSP_BACKUP_Q
ab50: 55 45 55 45 5f 50 41 52 41 4d 53 5f 57 3b 0d 0a  UEUE_PARAMS_W;..
ab60: 0d 0a 76 65 72 73 69 6f 6e 20 28 55 6e 69 63 6f  ..version (Unico
ab70: 64 65 29 20 7b 0d 0a 09 61 6c 69 61 73 20 53 50  de) {...alias SP
ab80: 5f 4f 52 49 47 49 4e 41 4c 5f 46 49 4c 45 5f 49  _ORIGINAL_FILE_I
ab90: 4e 46 4f 5f 57 20 53 50 5f 4f 52 49 47 49 4e 41  NFO_W SP_ORIGINA
aba0: 4c 5f 46 49 4c 45 5f 49 4e 46 4f 3b 0d 0a 09 61  L_FILE_INFO;...a
abb0: 6c 69 61 73 20 53 50 5f 4f 52 49 47 49 4e 41 4c  lias SP_ORIGINAL
abc0: 5f 46 49 4c 45 5f 49 4e 46 4f 5f 57 2a 20 50 53  _FILE_INFO_W* PS
abd0: 50 5f 4f 52 49 47 49 4e 41 4c 5f 46 49 4c 45 5f  P_ORIGINAL_FILE_
abe0: 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 20 46 49  INFO;...alias FI
abf0: 4c 45 50 41 54 48 53 5f 57 20 46 49 4c 45 50 41  LEPATHS_W FILEPA
ac00: 54 48 53 3b 0d 0a 09 61 6c 69 61 73 20 46 49 4c  THS;...alias FIL
ac10: 45 50 41 54 48 53 5f 57 2a 20 50 46 49 4c 45 50  EPATHS_W* PFILEP
ac20: 41 54 48 53 3b 0d 0a 09 61 6c 69 61 73 20 53 4f  ATHS;...alias SO
ac30: 55 52 43 45 5f 4d 45 44 49 41 5f 57 20 53 4f 55  URCE_MEDIA_W SOU
ac40: 52 43 45 5f 4d 45 44 49 41 3b 0d 0a 09 61 6c 69  RCE_MEDIA;...ali
ac50: 61 73 20 53 4f 55 52 43 45 5f 4d 45 44 49 41 5f  as SOURCE_MEDIA_
ac60: 57 2a 20 50 53 4f 55 52 43 45 5f 4d 45 44 49 41  W* PSOURCE_MEDIA
ac70: 3b 0d 0a 09 61 6c 69 61 73 20 43 41 42 49 4e 45  ;...alias CABINE
ac80: 54 5f 49 4e 46 4f 5f 57 20 43 41 42 49 4e 45 54  T_INFO_W CABINET
ac90: 5f 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 20 43  _INFO;...alias C
aca0: 41 42 49 4e 45 54 5f 49 4e 46 4f 5f 57 2a 20 50  ABINET_INFO_W* P
acb0: 43 41 42 49 4e 45 54 5f 49 4e 46 4f 3b 0d 0a 09  CABINET_INFO;...
acc0: 61 6c 69 61 73 20 46 49 4c 45 5f 49 4e 5f 43 41  alias FILE_IN_CA
acd0: 42 49 4e 45 54 5f 49 4e 46 4f 5f 57 20 46 49 4c  BINET_INFO_W FIL
ace0: 45 5f 49 4e 5f 43 41 42 49 4e 45 54 5f 49 4e 46  E_IN_CABINET_INF
acf0: 4f 3b 0d 0a 09 61 6c 69 61 73 20 46 49 4c 45 5f  O;...alias FILE_
ad00: 49 4e 5f 43 41 42 49 4e 45 54 5f 49 4e 46 4f 5f  IN_CABINET_INFO_
ad10: 57 2a 20 50 46 49 4c 45 5f 49 4e 5f 43 41 42 49  W* PFILE_IN_CABI
ad20: 4e 45 54 5f 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61  NET_INFO;...alia
ad30: 73 20 53 50 5f 46 49 4c 45 5f 43 4f 50 59 5f 50  s SP_FILE_COPY_P
ad40: 41 52 41 4d 53 5f 57 20 53 50 5f 46 49 4c 45 5f  ARAMS_W SP_FILE_
ad50: 43 4f 50 59 5f 50 41 52 41 4d 53 3b 0d 0a 09 61  COPY_PARAMS;...a
ad60: 6c 69 61 73 20 53 50 5f 46 49 4c 45 5f 43 4f 50  lias SP_FILE_COP
ad70: 59 5f 50 41 52 41 4d 53 5f 57 2a 20 50 53 50 5f  Y_PARAMS_W* PSP_
ad80: 46 49 4c 45 5f 43 4f 50 59 5f 50 41 52 41 4d 53  FILE_COPY_PARAMS
ad90: 3b 0d 0a 09 61 6c 69 61 73 20 53 50 5f 44 45 56  ;...alias SP_DEV
ada0: 49 43 45 5f 49 4e 54 45 52 46 41 43 45 5f 44 45  ICE_INTERFACE_DE
adb0: 54 41 49 4c 5f 44 41 54 41 5f 57 20 53 50 5f 44  TAIL_DATA_W SP_D
adc0: 45 56 49 43 45 5f 49 4e 54 45 52 46 41 43 45 5f  EVICE_INTERFACE_
add0: 44 45 54 41 49 4c 5f 44 41 54 41 3b 0d 0a 09 61  DETAIL_DATA;...a
ade0: 6c 69 61 73 20 53 50 5f 44 45 56 49 43 45 5f 49  lias SP_DEVICE_I
adf0: 4e 54 45 52 46 41 43 45 5f 44 45 54 41 49 4c 5f  NTERFACE_DETAIL_
ae00: 44 41 54 41 5f 57 2a 20 50 53 50 5f 44 45 56 49  DATA_W* PSP_DEVI
ae10: 43 45 5f 49 4e 54 45 52 46 41 43 45 5f 44 45 54  CE_INTERFACE_DET
ae20: 41 49 4c 5f 44 41 54 41 3b 0d 0a 09 64 65 70 72  AIL_DATA;...depr
ae30: 65 63 61 74 65 64 20 7b 0d 0a 09 09 61 6c 69 61  ecated {....alia
ae40: 73 20 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45  s SP_DEVICE_INTE
ae50: 52 46 41 43 45 5f 44 45 54 41 49 4c 5f 44 41 54  RFACE_DETAIL_DAT
ae60: 41 5f 57 20 53 50 5f 49 4e 54 45 52 46 41 43 45  A_W SP_INTERFACE
ae70: 5f 44 45 56 49 43 45 5f 44 45 54 41 49 4c 5f 44  _DEVICE_DETAIL_D
ae80: 41 54 41 3b 0d 0a 09 09 61 6c 69 61 73 20 53 50  ATA;....alias SP
ae90: 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46 41 43  _DEVICE_INTERFAC
aea0: 45 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f 57 2a  E_DETAIL_DATA_W*
aeb0: 20 50 53 50 5f 49 4e 54 45 52 46 41 43 45 5f 44   PSP_INTERFACE_D
aec0: 45 56 49 43 45 5f 44 45 54 41 49 4c 5f 44 41 54  EVICE_DETAIL_DAT
aed0: 41 3b 0d 0a 09 7d 0d 0a 09 61 6c 69 61 73 20 53  A;...}...alias S
aee0: 50 5f 44 45 56 49 4e 46 4f 5f 4c 49 53 54 5f 44  P_DEVINFO_LIST_D
aef0: 45 54 41 49 4c 5f 44 41 54 41 5f 57 20 53 50 5f  ETAIL_DATA_W SP_
af00: 44 45 56 49 4e 46 4f 5f 4c 49 53 54 5f 44 45 54  DEVINFO_LIST_DET
af10: 41 49 4c 5f 44 41 54 41 3b 0d 0a 09 61 6c 69 61  AIL_DATA;...alia
af20: 73 20 53 50 5f 44 45 56 49 4e 46 4f 5f 4c 49 53  s SP_DEVINFO_LIS
af30: 54 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f 57 20  T_DETAIL_DATA_W 
af40: 2a 50 53 50 5f 44 45 56 49 4e 46 4f 5f 4c 49 53  *PSP_DEVINFO_LIS
af50: 54 5f 44 45 54 41 49 4c 5f 44 41 54 41 3b 0d 0a  T_DETAIL_DATA;..
af60: 09 61 6c 69 61 73 20 53 50 5f 44 45 56 49 4e 53  .alias SP_DEVINS
af70: 54 41 4c 4c 5f 50 41 52 41 4d 53 5f 57 20 53 50  TALL_PARAMS_W SP
af80: 5f 44 45 56 49 4e 53 54 41 4c 4c 5f 50 41 52 41  _DEVINSTALL_PARA
af90: 4d 53 3b 0d 0a 09 61 6c 69 61 73 20 53 50 5f 44  MS;...alias SP_D
afa0: 45 56 49 4e 53 54 41 4c 4c 5f 50 41 52 41 4d 53  EVINSTALL_PARAMS
afb0: 5f 57 2a 20 50 53 50 5f 44 45 56 49 4e 53 54 41  _W* PSP_DEVINSTA
afc0: 4c 4c 5f 50 41 52 41 4d 53 3b 0d 0a 09 61 6c 69  LL_PARAMS;...ali
afd0: 61 73 20 53 50 5f 53 45 4c 45 43 54 44 45 56 49  as SP_SELECTDEVI
afe0: 43 45 5f 50 41 52 41 4d 53 5f 57 20 53 50 5f 53  CE_PARAMS_W SP_S
aff0: 45 4c 45 43 54 44 45 56 49 43 45 5f 50 41 52 41  ELECTDEVICE_PARA
b000: 4d 53 3b 0d 0a 09 61 6c 69 61 73 20 53 50 5f 53  MS;...alias SP_S
b010: 45 4c 45 43 54 44 45 56 49 43 45 5f 50 41 52 41  ELECTDEVICE_PARA
b020: 4d 53 5f 57 2a 20 50 53 50 5f 53 45 4c 45 43 54  MS_W* PSP_SELECT
b030: 44 45 56 49 43 45 5f 50 41 52 41 4d 53 3b 0d 0a  DEVICE_PARAMS;..
b040: 09 61 6c 69 61 73 20 53 50 5f 54 52 4f 55 42 4c  .alias SP_TROUBL
b050: 45 53 48 4f 4f 54 45 52 5f 50 41 52 41 4d 53 5f  ESHOOTER_PARAMS_
b060: 57 20 53 50 5f 54 52 4f 55 42 4c 45 53 48 4f 4f  W SP_TROUBLESHOO
b070: 54 45 52 5f 50 41 52 41 4d 53 3b 0d 0a 09 61 6c  TER_PARAMS;...al
b080: 69 61 73 20 53 50 5f 54 52 4f 55 42 4c 45 53 48  ias SP_TROUBLESH
b090: 4f 4f 54 45 52 5f 50 41 52 41 4d 53 5f 57 2a 20  OOTER_PARAMS_W* 
b0a0: 50 53 50 5f 54 52 4f 55 42 4c 45 53 48 4f 4f 54  PSP_TROUBLESHOOT
b0b0: 45 52 5f 50 41 52 41 4d 53 3b 0d 0a 09 61 6c 69  ER_PARAMS;...ali
b0c0: 61 73 20 53 50 5f 50 4f 57 45 52 4d 45 53 53 41  as SP_POWERMESSA
b0d0: 47 45 57 41 4b 45 5f 50 41 52 41 4d 53 5f 57 20  GEWAKE_PARAMS_W 
b0e0: 53 50 5f 50 4f 57 45 52 4d 45 53 53 41 47 45 57  SP_POWERMESSAGEW
b0f0: 41 4b 45 5f 50 41 52 41 4d 53 3b 0d 0a 09 61 6c  AKE_PARAMS;...al
b100: 69 61 73 20 53 50 5f 50 4f 57 45 52 4d 45 53 53  ias SP_POWERMESS
b110: 41 47 45 57 41 4b 45 5f 50 41 52 41 4d 53 5f 57  AGEWAKE_PARAMS_W
b120: 2a 20 50 53 50 5f 50 4f 57 45 52 4d 45 53 53 41  * PSP_POWERMESSA
b130: 47 45 57 41 4b 45 5f 50 41 52 41 4d 53 3b 0d 0a  GEWAKE_PARAMS;..
b140: 09 61 6c 69 61 73 20 53 50 5f 44 52 56 49 4e 46  .alias SP_DRVINF
b150: 4f 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f 57 20  O_DETAIL_DATA_W 
b160: 53 50 5f 44 52 56 49 4e 46 4f 5f 44 45 54 41 49  SP_DRVINFO_DETAI
b170: 4c 5f 44 41 54 41 3b 0d 0a 09 61 6c 69 61 73 20  L_DATA;...alias 
b180: 53 50 5f 44 52 56 49 4e 46 4f 5f 44 45 54 41 49  SP_DRVINFO_DETAI
b190: 4c 5f 44 41 54 41 5f 57 2a 20 50 53 50 5f 44 52  L_DATA_W* PSP_DR
b1a0: 56 49 4e 46 4f 5f 44 45 54 41 49 4c 5f 44 41 54  VINFO_DETAIL_DAT
b1b0: 41 3b 0d 0a 09 61 6c 69 61 73 20 53 50 5f 42 41  A;...alias SP_BA
b1c0: 43 4b 55 50 5f 51 55 45 55 45 5f 50 41 52 41 4d  CKUP_QUEUE_PARAM
b1d0: 53 5f 57 20 53 50 5f 42 41 43 4b 55 50 5f 51 55  S_W SP_BACKUP_QU
b1e0: 45 55 45 5f 50 41 52 41 4d 53 3b 0d 0a 09 61 6c  EUE_PARAMS;...al
b1f0: 69 61 73 20 53 50 5f 42 41 43 4b 55 50 5f 51 55  ias SP_BACKUP_QU
b200: 45 55 45 5f 50 41 52 41 4d 53 5f 57 2a 20 50 53  EUE_PARAMS_W* PS
b210: 50 5f 42 41 43 4b 55 50 5f 51 55 45 55 45 5f 50  P_BACKUP_QUEUE_P
b220: 41 52 41 4d 53 3b 0d 0a 7d 20 65 6c 73 65 20 7b  ARAMS;..} else {
b230: 0d 0a 09 61 6c 69 61 73 20 53 50 5f 4f 52 49 47  ...alias SP_ORIG
b240: 49 4e 41 4c 5f 46 49 4c 45 5f 49 4e 46 4f 5f 41  INAL_FILE_INFO_A
b250: 20 53 50 5f 4f 52 49 47 49 4e 41 4c 5f 46 49 4c   SP_ORIGINAL_FIL
b260: 45 5f 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 20  E_INFO;...alias 
b270: 53 50 5f 4f 52 49 47 49 4e 41 4c 5f 46 49 4c 45  SP_ORIGINAL_FILE
b280: 5f 49 4e 46 4f 5f 41 2a 20 50 53 50 5f 4f 52 49  _INFO_A* PSP_ORI
b290: 47 49 4e 41 4c 5f 46 49 4c 45 5f 49 4e 46 4f 3b  GINAL_FILE_INFO;
b2a0: 0d 0a 09 61 6c 69 61 73 20 46 49 4c 45 50 41 54  ...alias FILEPAT
b2b0: 48 53 5f 41 20 46 49 4c 45 50 41 54 48 53 3b 0d  HS_A FILEPATHS;.
b2c0: 0a 09 61 6c 69 61 73 20 46 49 4c 45 50 41 54 48  ..alias FILEPATH
b2d0: 53 5f 41 2a 20 50 46 49 4c 45 50 41 54 48 53 3b  S_A* PFILEPATHS;
b2e0: 0d 0a 09 61 6c 69 61 73 20 53 4f 55 52 43 45 5f  ...alias SOURCE_
b2f0: 4d 45 44 49 41 5f 41 20 53 4f 55 52 43 45 5f 4d  MEDIA_A SOURCE_M
b300: 45 44 49 41 3b 0d 0a 09 61 6c 69 61 73 20 53 4f  EDIA;...alias SO
b310: 55 52 43 45 5f 4d 45 44 49 41 5f 41 2a 20 50 53  URCE_MEDIA_A* PS
b320: 4f 55 52 43 45 5f 4d 45 44 49 41 3b 0d 0a 09 61  OURCE_MEDIA;...a
b330: 6c 69 61 73 20 43 41 42 49 4e 45 54 5f 49 4e 46  lias CABINET_INF
b340: 4f 5f 41 20 43 41 42 49 4e 45 54 5f 49 4e 46 4f  O_A CABINET_INFO
b350: 3b 0d 0a 09 61 6c 69 61 73 20 43 41 42 49 4e 45  ;...alias CABINE
b360: 54 5f 49 4e 46 4f 5f 41 2a 20 50 43 41 42 49 4e  T_INFO_A* PCABIN
b370: 45 54 5f 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73  ET_INFO;...alias
b380: 20 46 49 4c 45 5f 49 4e 5f 43 41 42 49 4e 45 54   FILE_IN_CABINET
b390: 5f 49 4e 46 4f 5f 41 20 46 49 4c 45 5f 49 4e 5f  _INFO_A FILE_IN_
b3a0: 43 41 42 49 4e 45 54 5f 49 4e 46 4f 3b 0d 0a 09  CABINET_INFO;...
b3b0: 61 6c 69 61 73 20 46 49 4c 45 5f 49 4e 5f 43 41  alias FILE_IN_CA
b3c0: 42 49 4e 45 54 5f 49 4e 46 4f 5f 41 2a 20 50 46  BINET_INFO_A* PF
b3d0: 49 4c 45 5f 49 4e 5f 43 41 42 49 4e 45 54 5f 49  ILE_IN_CABINET_I
b3e0: 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 20 53 50 5f  NFO;...alias SP_
b3f0: 46 49 4c 45 5f 43 4f 50 59 5f 50 41 52 41 4d 53  FILE_COPY_PARAMS
b400: 5f 41 20 53 50 5f 46 49 4c 45 5f 43 4f 50 59 5f  _A SP_FILE_COPY_
b410: 50 41 52 41 4d 53 3b 0d 0a 09 61 6c 69 61 73 20  PARAMS;...alias 
b420: 53 50 5f 46 49 4c 45 5f 43 4f 50 59 5f 50 41 52  SP_FILE_COPY_PAR
b430: 41 4d 53 5f 41 2a 20 50 53 50 5f 46 49 4c 45 5f  AMS_A* PSP_FILE_
b440: 43 4f 50 59 5f 50 41 52 41 4d 53 3b 0d 0a 09 61  COPY_PARAMS;...a
b450: 6c 69 61 73 20 53 50 5f 44 45 56 49 43 45 5f 49  lias SP_DEVICE_I
b460: 4e 54 45 52 46 41 43 45 5f 44 45 54 41 49 4c 5f  NTERFACE_DETAIL_
b470: 44 41 54 41 5f 41 20 53 50 5f 44 45 56 49 43 45  DATA_A SP_DEVICE
b480: 5f 49 4e 54 45 52 46 41 43 45 5f 44 45 54 41 49  _INTERFACE_DETAI
b490: 4c 5f 44 41 54 41 3b 0d 0a 09 61 6c 69 61 73 20  L_DATA;...alias 
b4a0: 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46  SP_DEVICE_INTERF
b4b0: 41 43 45 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f  ACE_DETAIL_DATA_
b4c0: 41 2a 20 50 53 50 5f 44 45 56 49 43 45 5f 49 4e  A* PSP_DEVICE_IN
b4d0: 54 45 52 46 41 43 45 5f 44 45 54 41 49 4c 5f 44  TERFACE_DETAIL_D
b4e0: 41 54 41 3b 0d 0a 09 64 65 70 72 65 63 61 74 65  ATA;...deprecate
b4f0: 64 20 7b 0d 0a 09 09 61 6c 69 61 73 20 53 50 5f  d {....alias SP_
b500: 44 45 56 49 43 45 5f 49 4e 54 45 52 46 41 43 45  DEVICE_INTERFACE
b510: 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f 41 20 53  _DETAIL_DATA_A S
b520: 50 5f 49 4e 54 45 52 46 41 43 45 5f 44 45 56 49  P_INTERFACE_DEVI
b530: 43 45 5f 44 45 54 41 49 4c 5f 44 41 54 41 3b 0d  CE_DETAIL_DATA;.
b540: 0a 09 09 61 6c 69 61 73 20 53 50 5f 44 45 56 49  ...alias SP_DEVI
b550: 43 45 5f 49 4e 54 45 52 46 41 43 45 5f 44 45 54  CE_INTERFACE_DET
b560: 41 49 4c 5f 44 41 54 41 5f 41 2a 20 50 53 50 5f  AIL_DATA_A* PSP_
b570: 49 4e 54 45 52 46 41 43 45 5f 44 45 56 49 43 45  INTERFACE_DEVICE
b580: 5f 44 45 54 41 49 4c 5f 44 41 54 41 3b 0d 0a 09  _DETAIL_DATA;...
b590: 7d 0d 0a 09 61 6c 69 61 73 20 53 50 5f 44 45 56  }...alias SP_DEV
b5a0: 49 4e 46 4f 5f 4c 49 53 54 5f 44 45 54 41 49 4c  INFO_LIST_DETAIL
b5b0: 5f 44 41 54 41 5f 41 20 53 50 5f 44 45 56 49 4e  _DATA_A SP_DEVIN
b5c0: 46 4f 5f 4c 49 53 54 5f 44 45 54 41 49 4c 5f 44  FO_LIST_DETAIL_D
b5d0: 41 54 41 3b 0d 0a 09 61 6c 69 61 73 20 53 50 5f  ATA;...alias SP_
b5e0: 44 45 56 49 4e 46 4f 5f 4c 49 53 54 5f 44 45 54  DEVINFO_LIST_DET
b5f0: 41 49 4c 5f 44 41 54 41 5f 41 2a 20 50 53 50 5f  AIL_DATA_A* PSP_
b600: 44 45 56 49 4e 46 4f 5f 4c 49 53 54 5f 44 45 54  DEVINFO_LIST_DET
b610: 41 49 4c 5f 44 41 54 41 3b 0d 0a 09 61 6c 69 61  AIL_DATA;...alia
b620: 73 20 53 50 5f 44 45 56 49 4e 53 54 41 4c 4c 5f  s SP_DEVINSTALL_
b630: 50 41 52 41 4d 53 5f 41 20 53 50 5f 44 45 56 49  PARAMS_A SP_DEVI
b640: 4e 53 54 41 4c 4c 5f 50 41 52 41 4d 53 3b 0d 0a  NSTALL_PARAMS;..
b650: 09 61 6c 69 61 73 20 53 50 5f 44 45 56 49 4e 53  .alias SP_DEVINS
b660: 54 41 4c 4c 5f 50 41 52 41 4d 53 5f 41 2a 20 50  TALL_PARAMS_A* P
b670: 53 50 5f 44 45 56 49 4e 53 54 41 4c 4c 5f 50 41  SP_DEVINSTALL_PA
b680: 52 41 4d 53 3b 0d 0a 09 61 6c 69 61 73 20 53 50  RAMS;...alias SP
b690: 5f 53 45 4c 45 43 54 44 45 56 49 43 45 5f 50 41  _SELECTDEVICE_PA
b6a0: 52 41 4d 53 5f 41 20 53 50 5f 53 45 4c 45 43 54  RAMS_A SP_SELECT
b6b0: 44 45 56 49 43 45 5f 50 41 52 41 4d 53 3b 0d 0a  DEVICE_PARAMS;..
b6c0: 09 61 6c 69 61 73 20 53 50 5f 53 45 4c 45 43 54  .alias SP_SELECT
b6d0: 44 45 56 49 43 45 5f 50 41 52 41 4d 53 5f 41 2a  DEVICE_PARAMS_A*
b6e0: 20 50 53 50 5f 53 45 4c 45 43 54 44 45 56 49 43   PSP_SELECTDEVIC
b6f0: 45 5f 50 41 52 41 4d 53 3b 0d 0a 09 61 6c 69 61  E_PARAMS;...alia
b700: 73 20 53 50 5f 54 52 4f 55 42 4c 45 53 48 4f 4f  s SP_TROUBLESHOO
b710: 54 45 52 5f 50 41 52 41 4d 53 5f 41 20 53 50 5f  TER_PARAMS_A SP_
b720: 54 52 4f 55 42 4c 45 53 48 4f 4f 54 45 52 5f 50  TROUBLESHOOTER_P
b730: 41 52 41 4d 53 3b 0d 0a 09 61 6c 69 61 73 20 53  ARAMS;...alias S
b740: 50 5f 54 52 4f 55 42 4c 45 53 48 4f 4f 54 45 52  P_TROUBLESHOOTER
b750: 5f 50 41 52 41 4d 53 5f 41 2a 20 50 53 50 5f 54  _PARAMS_A* PSP_T
b760: 52 4f 55 42 4c 45 53 48 4f 4f 54 45 52 5f 50 41  ROUBLESHOOTER_PA
b770: 52 41 4d 53 3b 0d 0a 09 61 6c 69 61 73 20 53 50  RAMS;...alias SP
b780: 5f 50 4f 57 45 52 4d 45 53 53 41 47 45 57 41 4b  _POWERMESSAGEWAK
b790: 45 5f 50 41 52 41 4d 53 5f 41 20 53 50 5f 50 4f  E_PARAMS_A SP_PO
b7a0: 57 45 52 4d 45 53 53 41 47 45 57 41 4b 45 5f 50  WERMESSAGEWAKE_P
b7b0: 41 52 41 4d 53 3b 0d 0a 09 61 6c 69 61 73 20 53  ARAMS;...alias S
b7c0: 50 5f 50 4f 57 45 52 4d 45 53 53 41 47 45 57 41  P_POWERMESSAGEWA
b7d0: 4b 45 5f 50 41 52 41 4d 53 5f 41 2a 20 50 53 50  KE_PARAMS_A* PSP
b7e0: 5f 50 4f 57 45 52 4d 45 53 53 41 47 45 57 41 4b  _POWERMESSAGEWAK
b7f0: 45 5f 50 41 52 41 4d 53 3b 0d 0a 09 61 6c 69 61  E_PARAMS;...alia
b800: 73 20 53 50 5f 44 52 56 49 4e 46 4f 5f 44 45 54  s SP_DRVINFO_DET
b810: 41 49 4c 5f 44 41 54 41 5f 41 20 53 50 5f 44 52  AIL_DATA_A SP_DR
b820: 56 49 4e 46 4f 5f 44 45 54 41 49 4c 5f 44 41 54  VINFO_DETAIL_DAT
b830: 41 3b 0d 0a 09 61 6c 69 61 73 20 53 50 5f 44 52  A;...alias SP_DR
b840: 56 49 4e 46 4f 5f 44 45 54 41 49 4c 5f 44 41 54  VINFO_DETAIL_DAT
b850: 41 5f 41 2a 20 50 53 50 5f 44 52 56 49 4e 46 4f  A_A* PSP_DRVINFO
b860: 5f 44 45 54 41 49 4c 5f 44 41 54 41 3b 0d 0a 09  _DETAIL_DATA;...
b870: 61 6c 69 61 73 20 53 50 5f 42 41 43 4b 55 50 5f  alias SP_BACKUP_
b880: 51 55 45 55 45 5f 50 41 52 41 4d 53 5f 41 20 53  QUEUE_PARAMS_A S
b890: 50 5f 42 41 43 4b 55 50 5f 51 55 45 55 45 5f 50  P_BACKUP_QUEUE_P
b8a0: 41 52 41 4d 53 3b 0d 0a 09 61 6c 69 61 73 20 53  ARAMS;...alias S
b8b0: 50 5f 42 41 43 4b 55 50 5f 51 55 45 55 45 5f 50  P_BACKUP_QUEUE_P
b8c0: 41 52 41 4d 53 5f 41 2a 20 50 53 50 5f 42 41 43  ARAMS_A* PSP_BAC
b8d0: 4b 55 50 5f 51 55 45 55 45 5f 50 41 52 41 4d 53  KUP_QUEUE_PARAMS
b8e0: 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20 28  ;..}....extern (
b8f0: 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 42 4f 4f  Windows) {...BOO
b900: 4c 20 53 65 74 75 70 41 64 64 49 6e 73 74 61 6c  L SetupAddInstal
b910: 6c 53 65 63 74 69 6f 6e 54 6f 44 69 73 6b 53 70  lSectionToDiskSp
b920: 61 63 65 4c 69 73 74 41 28 48 44 53 4b 53 50 43  aceListA(HDSKSPC
b930: 2c 20 48 49 4e 46 2c 20 48 49 4e 46 2c 20 50 43  , HINF, HINF, PC
b940: 53 54 52 2c 20 50 56 4f 49 44 2c 20 55 49 4e 54  STR, PVOID, UINT
b950: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 41  );...BOOL SetupA
b960: 64 64 49 6e 73 74 61 6c 6c 53 65 63 74 69 6f 6e  ddInstallSection
b970: 54 6f 44 69 73 6b 53 70 61 63 65 4c 69 73 74 57  ToDiskSpaceListW
b980: 28 48 44 53 4b 53 50 43 2c 20 48 49 4e 46 2c 20  (HDSKSPC, HINF, 
b990: 48 49 4e 46 2c 20 50 43 57 53 54 52 2c 20 50 56  HINF, PCWSTR, PV
b9a0: 4f 49 44 2c 20 55 49 4e 54 29 3b 0d 0a 09 42 4f  OID, UINT);...BO
b9b0: 4f 4c 20 53 65 74 75 70 41 64 64 53 65 63 74 69  OL SetupAddSecti
b9c0: 6f 6e 54 6f 44 69 73 6b 53 70 61 63 65 4c 69 73  onToDiskSpaceLis
b9d0: 74 41 28 48 44 53 4b 53 50 43 2c 20 48 49 4e 46  tA(HDSKSPC, HINF
b9e0: 2c 20 48 49 4e 46 2c 20 50 43 53 54 52 2c 20 55  , HINF, PCSTR, U
b9f0: 49 4e 54 2c 20 50 56 4f 49 44 2c 20 55 49 4e 54  INT, PVOID, UINT
ba00: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 41  );...BOOL SetupA
ba10: 64 64 53 65 63 74 69 6f 6e 54 6f 44 69 73 6b 53  ddSectionToDiskS
ba20: 70 61 63 65 4c 69 73 74 57 28 48 44 53 4b 53 50  paceListW(HDSKSP
ba30: 43 2c 20 48 49 4e 46 2c 20 48 49 4e 46 2c 20 50  C, HINF, HINF, P
ba40: 43 57 53 54 52 2c 20 55 49 4e 54 2c 20 50 56 4f  CWSTR, UINT, PVO
ba50: 49 44 2c 20 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f  ID, UINT);...BOO
ba60: 4c 20 53 65 74 75 70 41 64 64 54 6f 44 69 73 6b  L SetupAddToDisk
ba70: 53 70 61 63 65 4c 69 73 74 41 28 48 44 53 4b 53  SpaceListA(HDSKS
ba80: 50 43 2c 20 50 43 53 54 52 2c 20 4c 4f 4e 47 4c  PC, PCSTR, LONGL
ba90: 4f 4e 47 2c 20 55 49 4e 54 2c 20 50 56 4f 49 44  ONG, UINT, PVOID
baa0: 2c 20 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f 4c 20  , UINT);...BOOL 
bab0: 53 65 74 75 70 41 64 64 54 6f 44 69 73 6b 53 70  SetupAddToDiskSp
bac0: 61 63 65 4c 69 73 74 57 28 48 44 53 4b 53 50 43  aceListW(HDSKSPC
bad0: 2c 20 50 43 57 53 54 52 2c 20 4c 4f 4e 47 4c 4f  , PCWSTR, LONGLO
bae0: 4e 47 2c 20 55 49 4e 54 2c 20 50 56 4f 49 44 2c  NG, UINT, PVOID,
baf0: 20 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f 4c 20 53   UINT);...BOOL S
bb00: 65 74 75 70 41 64 64 54 6f 53 6f 75 72 63 65 4c  etupAddToSourceL
bb10: 69 73 74 41 28 44 57 4f 52 44 2c 20 50 43 53 54  istA(DWORD, PCST
bb20: 52 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70  R);...BOOL Setup
bb30: 41 64 64 54 6f 53 6f 75 72 63 65 4c 69 73 74 57  AddToSourceListW
bb40: 28 44 57 4f 52 44 2c 20 50 43 57 53 54 52 29 3b  (DWORD, PCWSTR);
bb50: 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 51 75 65  ...BOOL SetupQue
bb60: 72 79 53 6f 75 72 63 65 4c 69 73 74 41 28 44 57  rySourceListA(DW
bb70: 4f 52 44 2c 20 50 43 53 54 52 2a 2a 4c 69 73 74  ORD, PCSTR**List
bb80: 2c 20 50 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f 4c  , PUINT);...BOOL
bb90: 20 53 65 74 75 70 51 75 65 72 79 53 6f 75 72 63   SetupQuerySourc
bba0: 65 4c 69 73 74 57 28 44 57 4f 52 44 2c 20 50 43  eListW(DWORD, PC
bbb0: 57 53 54 52 2a 2a 4c 69 73 74 2c 20 50 55 49 4e  WSTR**List, PUIN
bbc0: 54 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70  T);...BOOL Setup
bbd0: 46 72 65 65 53 6f 75 72 63 65 4c 69 73 74 41 28  FreeSourceListA(
bbe0: 50 43 53 54 52 2a 2a 4c 69 73 74 2c 20 55 49 4e  PCSTR**List, UIN
bbf0: 54 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70  T);...BOOL Setup
bc00: 46 72 65 65 53 6f 75 72 63 65 4c 69 73 74 57 28  FreeSourceListW(
bc10: 50 43 57 53 54 52 2a 2a 4c 69 73 74 2c 20 55 49  PCWSTR**List, UI
bc20: 4e 54 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75  NT);...BOOL Setu
bc30: 70 41 64 6a 75 73 74 44 69 73 6b 53 70 61 63 65  pAdjustDiskSpace
bc40: 4c 69 73 74 41 28 48 44 53 4b 53 50 43 2c 20 4c  ListA(HDSKSPC, L
bc50: 50 43 53 54 52 2c 20 4c 4f 4e 47 4c 4f 4e 47 2c  PCSTR, LONGLONG,
bc60: 20 50 56 4f 49 44 2c 20 55 49 4e 54 29 3b 0d 0a   PVOID, UINT);..
bc70: 09 42 4f 4f 4c 20 53 65 74 75 70 41 64 6a 75 73  .BOOL SetupAdjus
bc80: 74 44 69 73 6b 53 70 61 63 65 4c 69 73 74 57 28  tDiskSpaceListW(
bc90: 48 44 53 4b 53 50 43 2c 20 4c 50 43 57 53 54 52  HDSKSPC, LPCWSTR
bca0: 2c 20 4c 4f 4e 47 4c 4f 4e 47 2c 20 50 56 4f 49  , LONGLONG, PVOI
bcb0: 44 2c 20 55 49 4e 54 29 3b 0d 0a 09 55 49 4e 54  D, UINT);...UINT
bcc0: 20 53 65 74 75 70 42 61 63 6b 75 70 45 72 72 6f   SetupBackupErro
bcd0: 72 41 28 48 57 4e 44 2c 20 50 43 53 54 52 2c 20  rA(HWND, PCSTR, 
bce0: 50 43 53 54 52 2c 20 50 43 53 54 52 2c 20 55 49  PCSTR, PCSTR, UI
bcf0: 4e 54 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 55 49  NT, DWORD);...UI
bd00: 4e 54 20 53 65 74 75 70 42 61 63 6b 75 70 45 72  NT SetupBackupEr
bd10: 72 6f 72 57 28 48 57 4e 44 2c 20 50 43 57 53 54  rorW(HWND, PCWST
bd20: 52 2c 20 50 43 57 53 54 52 2c 20 50 43 57 53 54  R, PCWSTR, PCWST
bd30: 52 2c 20 55 49 4e 54 2c 20 44 57 4f 52 44 29 3b  R, UINT, DWORD);
bd40: 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 43 61 6e  ...BOOL SetupCan
bd50: 63 65 6c 54 65 6d 70 6f 72 61 72 79 28 29 3b 0d  celTemporary();.
bd60: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 43 6c 6f 73  ..BOOL SetupClos
bd70: 65 46 69 6c 65 51 75 65 75 65 28 48 53 50 46 49  eFileQueue(HSPFI
bd80: 4c 45 51 29 3b 0d 0a 09 56 4f 49 44 20 53 65 74  LEQ);...VOID Set
bd90: 75 70 43 6c 6f 73 65 49 6e 66 46 69 6c 65 28 48  upCloseInfFile(H
bda0: 49 4e 46 29 3b 0d 0a 09 56 4f 49 44 20 53 65 74  INF);...VOID Set
bdb0: 75 70 43 6c 6f 73 65 4c 6f 67 28 29 3b 0d 0a 09  upCloseLog();...
bdc0: 42 4f 4f 4c 20 53 65 74 75 70 43 6f 6d 6d 69 74  BOOL SetupCommit
bdd0: 46 69 6c 65 51 75 65 75 65 41 28 48 57 4e 44 2c  FileQueueA(HWND,
bde0: 20 48 53 50 46 49 4c 45 51 2c 20 50 53 50 5f 46   HSPFILEQ, PSP_F
bdf0: 49 4c 45 5f 43 41 4c 4c 42 41 43 4b 5f 41 2c 20  ILE_CALLBACK_A, 
be00: 50 56 4f 49 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53  PVOID);...BOOL S
be10: 65 74 75 70 43 6f 6d 6d 69 74 46 69 6c 65 51 75  etupCommitFileQu
be20: 65 75 65 57 28 48 57 4e 44 2c 20 48 53 50 46 49  eueW(HWND, HSPFI
be30: 4c 45 51 2c 20 50 53 50 5f 46 49 4c 45 5f 43 41  LEQ, PSP_FILE_CA
be40: 4c 4c 42 41 43 4b 5f 57 2c 20 50 56 4f 49 44 29  LLBACK_W, PVOID)
be50: 3b 0d 0a 09 55 49 4e 54 20 53 65 74 75 70 43 6f  ;...UINT SetupCo
be60: 70 79 45 72 72 6f 72 41 28 48 57 4e 44 2c 20 50  pyErrorA(HWND, P
be70: 43 53 54 52 2c 20 50 43 53 54 52 2c 20 50 43 53  CSTR, PCSTR, PCS
be80: 54 52 2c 20 50 43 53 54 52 2c 20 50 43 53 54 52  TR, PCSTR, PCSTR
be90: 2c 20 55 49 4e 54 2c 20 44 57 4f 52 44 2c 20 50  , UINT, DWORD, P
bea0: 53 54 52 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f  STR, DWORD, PDWO
beb0: 52 44 29 3b 0d 0a 09 55 49 4e 54 20 53 65 74 75  RD);...UINT Setu
bec0: 70 43 6f 70 79 45 72 72 6f 72 57 28 48 57 4e 44  pCopyErrorW(HWND
bed0: 2c 20 50 43 57 53 54 52 2c 20 50 43 57 53 54 52  , PCWSTR, PCWSTR
bee0: 2c 20 50 43 57 53 54 52 2c 20 50 43 57 53 54 52  , PCWSTR, PCWSTR
bef0: 2c 20 50 43 57 53 54 52 2c 20 55 49 4e 54 2c 20  , PCWSTR, UINT, 
bf00: 44 57 4f 52 44 2c 20 50 57 53 54 52 2c 20 44 57  DWORD, PWSTR, DW
bf10: 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09  ORD, PDWORD);...
bf20: 42 4f 4f 4c 20 53 65 74 75 70 43 6f 70 79 4f 45  BOOL SetupCopyOE
bf30: 4d 49 6e 66 41 28 50 43 53 54 52 2c 20 50 43 53  MInfA(PCSTR, PCS
bf40: 54 52 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44  TR, DWORD, DWORD
bf50: 2c 20 50 53 54 52 2c 20 44 57 4f 52 44 2c 20 50  , PSTR, DWORD, P
bf60: 44 57 4f 52 44 2c 20 50 53 54 52 2a 29 3b 0d 0a  DWORD, PSTR*);..
bf70: 09 42 4f 4f 4c 20 53 65 74 75 70 43 6f 70 79 4f  .BOOL SetupCopyO
bf80: 45 4d 49 6e 66 57 28 50 43 57 53 54 52 2c 20 50  EMInfW(PCWSTR, P
bf90: 43 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 44 57  CWSTR, DWORD, DW
bfa0: 4f 52 44 2c 20 50 57 53 54 52 2c 20 44 57 4f 52  ORD, PWSTR, DWOR
bfb0: 44 2c 20 50 44 57 4f 52 44 2c 20 50 57 53 54 52  D, PDWORD, PWSTR
bfc0: 2a 29 3b 0d 0a 09 48 44 53 4b 53 50 43 20 53 65  *);...HDSKSPC Se
bfd0: 74 75 70 43 72 65 61 74 65 44 69 73 6b 53 70 61  tupCreateDiskSpa
bfe0: 63 65 4c 69 73 74 41 28 50 56 4f 49 44 2c 20 44  ceListA(PVOID, D
bff0: 57 4f 52 44 2c 20 55 49 4e 54 29 3b 0d 0a 09 48  WORD, UINT);...H
c000: 44 53 4b 53 50 43 20 53 65 74 75 70 43 72 65 61  DSKSPC SetupCrea
c010: 74 65 44 69 73 6b 53 70 61 63 65 4c 69 73 74 57  teDiskSpaceListW
c020: 28 50 56 4f 49 44 2c 20 44 57 4f 52 44 2c 20 55  (PVOID, DWORD, U
c030: 49 4e 54 29 3b 0d 0a 09 44 57 4f 52 44 20 53 65  INT);...DWORD Se
c040: 74 75 70 44 65 63 6f 6d 70 72 65 73 73 4f 72 43  tupDecompressOrC
c050: 6f 70 79 46 69 6c 65 41 28 50 43 53 54 52 2c 20  opyFileA(PCSTR, 
c060: 50 43 53 54 52 2c 20 50 55 49 4e 54 29 3b 0d 0a  PCSTR, PUINT);..
c070: 09 44 57 4f 52 44 20 53 65 74 75 70 44 65 63 6f  .DWORD SetupDeco
c080: 6d 70 72 65 73 73 4f 72 43 6f 70 79 46 69 6c 65  mpressOrCopyFile
c090: 57 28 50 43 57 53 54 52 2c 20 50 43 57 53 54 52  W(PCWSTR, PCWSTR
c0a0: 2c 20 50 55 49 4e 54 29 3b 0d 0a 09 55 49 4e 54  , PUINT);...UINT
c0b0: 20 53 65 74 75 70 44 65 66 61 75 6c 74 51 75 65   SetupDefaultQue
c0c0: 75 65 43 61 6c 6c 62 61 63 6b 41 28 50 56 4f 49  ueCallbackA(PVOI
c0d0: 44 2c 20 55 49 4e 54 2c 20 55 49 4e 54 5f 50 54  D, UINT, UINT_PT
c0e0: 52 2c 20 55 49 4e 54 5f 50 54 52 29 3b 0d 0a 09  R, UINT_PTR);...
c0f0: 55 49 4e 54 20 53 65 74 75 70 44 65 66 61 75 6c  UINT SetupDefaul
c100: 74 51 75 65 75 65 43 61 6c 6c 62 61 63 6b 57 28  tQueueCallbackW(
c110: 50 56 4f 49 44 2c 20 55 49 4e 54 2c 20 55 49 4e  PVOID, UINT, UIN
c120: 54 5f 50 54 52 2c 20 55 49 4e 54 5f 50 54 52 29  T_PTR, UINT_PTR)
c130: 3b 0d 0a 09 55 49 4e 54 20 53 65 74 75 70 44 65  ;...UINT SetupDe
c140: 6c 65 74 65 45 72 72 6f 72 41 28 48 57 4e 44 2c  leteErrorA(HWND,
c150: 20 50 43 53 54 52 2c 20 50 43 53 54 52 2c 20 55   PCSTR, PCSTR, U
c160: 49 4e 54 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 55  INT, DWORD);...U
c170: 49 4e 54 20 53 65 74 75 70 44 65 6c 65 74 65 45  INT SetupDeleteE
c180: 72 72 6f 72 57 28 48 57 4e 44 2c 20 50 43 57 53  rrorW(HWND, PCWS
c190: 54 52 2c 20 50 43 57 53 54 52 2c 20 55 49 4e 54  TR, PCWSTR, UINT
c1a0: 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c  , DWORD);...BOOL
c1b0: 20 53 65 74 75 70 44 65 73 74 72 6f 79 44 69 73   SetupDestroyDis
c1c0: 6b 53 70 61 63 65 4c 69 73 74 28 48 44 53 4b 53  kSpaceList(HDSKS
c1d0: 50 43 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75  PC);...BOOL Setu
c1e0: 70 44 69 41 73 6b 46 6f 72 4f 45 4d 44 69 73 6b  pDiAskForOEMDisk
c1f0: 28 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f 44  (HDEVINFO, PSP_D
c200: 45 56 49 4e 46 4f 5f 44 41 54 41 29 3b 0d 0a 09  EVINFO_DATA);...
c210: 42 4f 4f 4c 20 53 65 74 75 70 44 69 42 75 69 6c  BOOL SetupDiBuil
c220: 64 43 6c 61 73 73 49 6e 66 6f 4c 69 73 74 28 44  dClassInfoList(D
c230: 57 4f 52 44 2c 20 4c 50 47 55 49 44 2c 20 44 57  WORD, LPGUID, DW
c240: 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09  ORD, PDWORD);...
c250: 42 4f 4f 4c 20 53 65 74 75 70 44 69 42 75 69 6c  BOOL SetupDiBuil
c260: 64 43 6c 61 73 73 49 6e 66 6f 4c 69 73 74 45 78  dClassInfoListEx
c270: 41 28 44 57 4f 52 44 2c 20 4c 50 47 55 49 44 2c  A(DWORD, LPGUID,
c280: 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20   DWORD, PDWORD, 
c290: 50 43 53 54 52 2c 20 50 56 4f 49 44 29 3b 0d 0a  PCSTR, PVOID);..
c2a0: 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 42 75 69  .BOOL SetupDiBui
c2b0: 6c 64 43 6c 61 73 73 49 6e 66 6f 4c 69 73 74 45  ldClassInfoListE
c2c0: 78 57 28 44 57 4f 52 44 2c 20 4c 50 47 55 49 44  xW(DWORD, LPGUID
c2d0: 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c  , DWORD, PDWORD,
c2e0: 20 50 43 57 53 54 52 2c 20 50 56 4f 49 44 29 3b   PCWSTR, PVOID);
c2f0: 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 42  ...BOOL SetupDiB
c300: 75 69 6c 64 44 72 69 76 65 72 49 6e 66 6f 4c 69  uildDriverInfoLi
c310: 73 74 28 48 44 45 56 49 4e 46 4f 2c 20 50 53 50  st(HDEVINFO, PSP
c320: 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41 2c 20 44  _DEVINFO_DATA, D
c330: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  WORD);...BOOL Se
c340: 74 75 70 44 69 43 61 6c 6c 43 6c 61 73 73 49 6e  tupDiCallClassIn
c350: 73 74 61 6c 6c 65 72 28 44 49 5f 46 55 4e 43 54  staller(DI_FUNCT
c360: 49 4f 4e 2c 20 48 44 45 56 49 4e 46 4f 2c 20 50  ION, HDEVINFO, P
c370: 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41 29  SP_DEVINFO_DATA)
c380: 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69  ;...BOOL SetupDi
c390: 43 61 6e 63 65 6c 44 72 69 76 65 72 49 6e 66 6f  CancelDriverInfo
c3a0: 53 65 61 72 63 68 28 48 44 45 56 49 4e 46 4f 29  Search(HDEVINFO)
c3b0: 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69  ;...BOOL SetupDi
c3c0: 43 68 61 6e 67 65 53 74 61 74 65 28 48 44 45 56  ChangeState(HDEV
c3d0: 49 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46  INFO, PSP_DEVINF
c3e0: 4f 5f 44 41 54 41 29 3b 0d 0a 09 42 4f 4f 4c 20  O_DATA);...BOOL 
c3f0: 53 65 74 75 70 44 69 43 6c 61 73 73 47 75 69 64  SetupDiClassGuid
c400: 73 46 72 6f 6d 4e 61 6d 65 41 28 50 43 53 54 52  sFromNameA(PCSTR
c410: 2c 20 4c 50 47 55 49 44 2c 20 44 57 4f 52 44 2c  , LPGUID, DWORD,
c420: 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c   PDWORD);...BOOL
c430: 20 53 65 74 75 70 44 69 43 6c 61 73 73 47 75 69   SetupDiClassGui
c440: 64 73 46 72 6f 6d 4e 61 6d 65 57 28 50 43 57 53  dsFromNameW(PCWS
c450: 54 52 2c 20 4c 50 47 55 49 44 2c 20 44 57 4f 52  TR, LPGUID, DWOR
c460: 44 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f  D, PDWORD);...BO
c470: 4f 4c 20 53 65 74 75 70 44 69 43 6c 61 73 73 47  OL SetupDiClassG
c480: 75 69 64 73 46 72 6f 6d 4e 61 6d 65 45 78 41 28  uidsFromNameExA(
c490: 50 43 53 54 52 2c 20 4c 50 47 55 49 44 2c 20 44  PCSTR, LPGUID, D
c4a0: 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20 50 43  WORD, PDWORD, PC
c4b0: 53 54 52 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 42  STR, PVOID);...B
c4c0: 4f 4f 4c 20 53 65 74 75 70 44 69 43 6c 61 73 73  OOL SetupDiClass
c4d0: 47 75 69 64 73 46 72 6f 6d 4e 61 6d 65 45 78 57  GuidsFromNameExW
c4e0: 28 50 43 57 53 54 52 2c 20 4c 50 47 55 49 44 2c  (PCWSTR, LPGUID,
c4f0: 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20   DWORD, PDWORD, 
c500: 50 43 57 53 54 52 2c 20 50 56 4f 49 44 29 3b 0d  PCWSTR, PVOID);.
c510: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 43 6c  ..BOOL SetupDiCl
c520: 61 73 73 4e 61 6d 65 46 72 6f 6d 47 75 69 64 41  assNameFromGuidA
c530: 28 63 6f 6e 73 74 28 47 55 49 44 29 2a 2c 20 50  (const(GUID)*, P
c540: 53 54 52 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f  STR, DWORD, PDWO
c550: 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75  RD);...BOOL Setu
c560: 70 44 69 43 6c 61 73 73 4e 61 6d 65 46 72 6f 6d  pDiClassNameFrom
c570: 47 75 69 64 57 28 63 6f 6e 73 74 28 47 55 49 44  GuidW(const(GUID
c580: 29 2a 2c 20 50 57 53 54 52 2c 20 44 57 4f 52 44  )*, PWSTR, DWORD
c590: 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f  , PDWORD);...BOO
c5a0: 4c 20 53 65 74 75 70 44 69 43 6c 61 73 73 4e 61  L SetupDiClassNa
c5b0: 6d 65 46 72 6f 6d 47 75 69 64 45 78 41 28 63 6f  meFromGuidExA(co
c5c0: 6e 73 74 28 47 55 49 44 29 2a 2c 20 50 53 54 52  nst(GUID)*, PSTR
c5d0: 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c  , DWORD, PDWORD,
c5e0: 20 50 43 53 54 52 2c 20 50 56 4f 49 44 29 3b 0d   PCSTR, PVOID);.
c5f0: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 43 6c  ..BOOL SetupDiCl
c600: 61 73 73 4e 61 6d 65 46 72 6f 6d 47 75 69 64 45  assNameFromGuidE
c610: 78 57 28 63 6f 6e 73 74 28 47 55 49 44 29 2a 2c  xW(const(GUID)*,
c620: 20 50 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 50   PWSTR, DWORD, P
c630: 44 57 4f 52 44 2c 20 50 43 57 53 54 52 2c 20 50  DWORD, PCWSTR, P
c640: 56 4f 49 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  VOID);...BOOL Se
c650: 74 75 70 44 69 43 72 65 61 74 65 44 65 76 69 63  tupDiCreateDevic
c660: 65 49 6e 66 6f 41 28 48 44 45 56 49 4e 46 4f 2c  eInfoA(HDEVINFO,
c670: 20 50 43 53 54 52 2c 20 63 6f 6e 73 74 28 47 55   PCSTR, const(GU
c680: 49 44 29 2a 2c 20 50 43 53 54 52 2c 20 48 57 4e  ID)*, PCSTR, HWN
c690: 44 2c 20 44 57 4f 52 44 2c 20 50 53 50 5f 44 45  D, DWORD, PSP_DE
c6a0: 56 49 4e 46 4f 5f 44 41 54 41 29 3b 0d 0a 09 42  VINFO_DATA);...B
c6b0: 4f 4f 4c 20 53 65 74 75 70 44 69 43 72 65 61 74  OOL SetupDiCreat
c6c0: 65 44 65 76 69 63 65 49 6e 66 6f 57 28 48 44 45  eDeviceInfoW(HDE
c6d0: 56 49 4e 46 4f 2c 20 50 43 57 53 54 52 2c 20 63  VINFO, PCWSTR, c
c6e0: 6f 6e 73 74 28 47 55 49 44 29 2a 2c 20 50 43 57  onst(GUID)*, PCW
c6f0: 53 54 52 2c 20 48 57 4e 44 2c 20 44 57 4f 52 44  STR, HWND, DWORD
c700: 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41  , PSP_DEVINFO_DA
c710: 54 41 29 3b 0d 0a 09 48 44 45 56 49 4e 46 4f 20  TA);...HDEVINFO 
c720: 53 65 74 75 70 44 69 43 72 65 61 74 65 44 65 76  SetupDiCreateDev
c730: 69 63 65 49 6e 66 6f 4c 69 73 74 28 63 6f 6e 73  iceInfoList(cons
c740: 74 28 47 55 49 44 29 2a 2c 20 48 57 4e 44 29 3b  t(GUID)*, HWND);
c750: 0d 0a 09 48 44 45 56 49 4e 46 4f 20 53 65 74 75  ...HDEVINFO Setu
c760: 70 44 69 43 72 65 61 74 65 44 65 76 69 63 65 49  pDiCreateDeviceI
c770: 6e 66 6f 4c 69 73 74 45 78 41 28 63 6f 6e 73 74  nfoListExA(const
c780: 28 47 55 49 44 29 2a 2c 20 48 57 4e 44 2c 20 50  (GUID)*, HWND, P
c790: 43 53 54 52 2c 20 50 56 4f 49 44 29 3b 0d 0a 09  CSTR, PVOID);...
c7a0: 48 44 45 56 49 4e 46 4f 20 53 65 74 75 70 44 69  HDEVINFO SetupDi
c7b0: 43 72 65 61 74 65 44 65 76 69 63 65 49 6e 66 6f  CreateDeviceInfo
c7c0: 4c 69 73 74 45 78 57 28 63 6f 6e 73 74 28 47 55  ListExW(const(GU
c7d0: 49 44 29 2a 2c 20 48 57 4e 44 2c 20 50 43 57 53  ID)*, HWND, PCWS
c7e0: 54 52 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 42 4f  TR, PVOID);...BO
c7f0: 4f 4c 20 53 65 74 75 70 44 69 43 72 65 61 74 65  OL SetupDiCreate
c800: 44 65 76 69 63 65 49 6e 74 65 72 66 61 63 65 41  DeviceInterfaceA
c810: 28 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f 44  (HDEVINFO, PSP_D
c820: 45 56 49 4e 46 4f 5f 44 41 54 41 2c 20 63 6f 6e  EVINFO_DATA, con
c830: 73 74 28 47 55 49 44 29 2a 2c 20 50 43 53 54 52  st(GUID)*, PCSTR
c840: 2c 20 44 57 4f 52 44 2c 20 50 53 50 5f 44 45 56  , DWORD, PSP_DEV
c850: 49 43 45 5f 49 4e 54 45 52 46 41 43 45 5f 44 41  ICE_INTERFACE_DA
c860: 54 41 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75  TA);...BOOL Setu
c870: 70 44 69 43 72 65 61 74 65 44 65 76 69 63 65 49  pDiCreateDeviceI
c880: 6e 74 65 72 66 61 63 65 57 28 48 44 45 56 49 4e  nterfaceW(HDEVIN
c890: 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f  FO, PSP_DEVINFO_
c8a0: 44 41 54 41 2c 20 63 6f 6e 73 74 28 47 55 49 44  DATA, const(GUID
c8b0: 29 2a 2c 20 50 43 57 53 54 52 2c 20 44 57 4f 52  )*, PCWSTR, DWOR
c8c0: 44 2c 20 50 53 50 5f 44 45 56 49 43 45 5f 49 4e  D, PSP_DEVICE_IN
c8d0: 54 45 52 46 41 43 45 5f 44 41 54 41 29 3b 0d 0a  TERFACE_DATA);..
c8e0: 09 48 4b 45 59 20 53 65 74 75 70 44 69 43 72 65  .HKEY SetupDiCre
c8f0: 61 74 65 44 65 76 69 63 65 49 6e 74 65 72 66 61  ateDeviceInterfa
c900: 63 65 52 65 67 4b 65 79 41 28 48 44 45 56 49 4e  ceRegKeyA(HDEVIN
c910: 46 4f 2c 20 50 53 50 5f 44 45 56 49 43 45 5f 49  FO, PSP_DEVICE_I
c920: 4e 54 45 52 46 41 43 45 5f 44 41 54 41 2c 20 44  NTERFACE_DATA, D
c930: 57 4f 52 44 2c 20 52 45 47 53 41 4d 2c 20 48 49  WORD, REGSAM, HI
c940: 4e 46 2c 20 50 43 53 54 52 29 3b 0d 0a 09 48 4b  NF, PCSTR);...HK
c950: 45 59 20 53 65 74 75 70 44 69 43 72 65 61 74 65  EY SetupDiCreate
c960: 44 65 76 69 63 65 49 6e 74 65 72 66 61 63 65 52  DeviceInterfaceR
c970: 65 67 4b 65 79 57 28 48 44 45 56 49 4e 46 4f 2c  egKeyW(HDEVINFO,
c980: 20 50 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45   PSP_DEVICE_INTE
c990: 52 46 41 43 45 5f 44 41 54 41 2c 20 44 57 4f 52  RFACE_DATA, DWOR
c9a0: 44 2c 20 52 45 47 53 41 4d 2c 20 48 49 4e 46 2c  D, REGSAM, HINF,
c9b0: 20 50 43 57 53 54 52 29 3b 0d 0a 09 48 4b 45 59   PCWSTR);...HKEY
c9c0: 20 53 65 74 75 70 44 69 43 72 65 61 74 65 44 65   SetupDiCreateDe
c9d0: 76 52 65 67 4b 65 79 41 28 48 44 45 56 49 4e 46  vRegKeyA(HDEVINF
c9e0: 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44  O, PSP_DEVINFO_D
c9f0: 41 54 41 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52  ATA, DWORD, DWOR
ca00: 44 2c 20 44 57 4f 52 44 2c 20 48 49 4e 46 2c 20  D, DWORD, HINF, 
ca10: 50 43 53 54 52 29 3b 0d 0a 09 48 4b 45 59 20 53  PCSTR);...HKEY S
ca20: 65 74 75 70 44 69 43 72 65 61 74 65 44 65 76 52  etupDiCreateDevR
ca30: 65 67 4b 65 79 57 28 48 44 45 56 49 4e 46 4f 2c  egKeyW(HDEVINFO,
ca40: 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54   PSP_DEVINFO_DAT
ca50: 41 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c  A, DWORD, DWORD,
ca60: 20 44 57 4f 52 44 2c 20 48 49 4e 46 2c 20 50 43   DWORD, HINF, PC
ca70: 57 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  WSTR);...BOOL Se
ca80: 74 75 70 44 69 44 65 6c 65 74 65 44 65 76 69 63  tupDiDeleteDevic
ca90: 65 49 6e 66 6f 28 48 44 45 56 49 4e 46 4f 2c 20  eInfo(HDEVINFO, 
caa0: 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41  PSP_DEVINFO_DATA
cab0: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44  );...BOOL SetupD
cac0: 69 44 65 6c 65 74 65 44 65 76 69 63 65 49 6e 74  iDeleteDeviceInt
cad0: 65 72 66 61 63 65 44 61 74 61 28 48 44 45 56 49  erfaceData(HDEVI
cae0: 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 43 45 5f  NFO, PSP_DEVICE_
caf0: 49 4e 54 45 52 46 41 43 45 5f 44 41 54 41 29 3b  INTERFACE_DATA);
cb00: 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 44  ...BOOL SetupDiD
cb10: 65 6c 65 74 65 44 65 76 69 63 65 49 6e 74 65 72  eleteDeviceInter
cb20: 66 61 63 65 52 65 67 4b 65 79 28 48 44 45 56 49  faceRegKey(HDEVI
cb30: 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 43 45 5f  NFO, PSP_DEVICE_
cb40: 49 4e 54 45 52 46 41 43 45 5f 44 41 54 41 2c 20  INTERFACE_DATA, 
cb50: 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53  DWORD);...BOOL S
cb60: 65 74 75 70 44 69 44 65 6c 65 74 65 44 65 76 52  etupDiDeleteDevR
cb70: 65 67 4b 65 79 28 48 44 45 56 49 4e 46 4f 2c 20  egKey(HDEVINFO, 
cb80: 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41  PSP_DEVINFO_DATA
cb90: 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20  , DWORD, DWORD, 
cba0: 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53  DWORD);...BOOL S
cbb0: 65 74 75 70 44 69 44 65 73 74 72 6f 79 43 6c 61  etupDiDestroyCla
cbc0: 73 73 49 6d 61 67 65 4c 69 73 74 28 50 53 50 5f  ssImageList(PSP_
cbd0: 43 4c 41 53 53 49 4d 41 47 45 4c 49 53 54 5f 44  CLASSIMAGELIST_D
cbe0: 41 54 41 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74  ATA);...BOOL Set
cbf0: 75 70 44 69 44 65 73 74 72 6f 79 44 65 76 69 63  upDiDestroyDevic
cc00: 65 49 6e 66 6f 4c 69 73 74 28 48 44 45 56 49 4e  eInfoList(HDEVIN
cc10: 46 4f 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75  FO);...BOOL Setu
cc20: 70 44 69 44 65 73 74 72 6f 79 44 72 69 76 65 72  pDiDestroyDriver
cc30: 49 6e 66 6f 4c 69 73 74 28 48 44 45 56 49 4e 46  InfoList(HDEVINF
cc40: 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44  O, PSP_DEVINFO_D
cc50: 41 54 41 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 49  ATA, DWORD);...I
cc60: 4e 54 20 53 65 74 75 70 44 69 44 72 61 77 4d 69  NT SetupDiDrawMi
cc70: 6e 69 49 63 6f 6e 28 48 44 43 2c 20 52 45 43 54  niIcon(HDC, RECT
cc80: 2c 20 49 4e 54 2c 20 44 57 4f 52 44 29 3b 0d 0a  , INT, DWORD);..
cc90: 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 45 6e 75  .BOOL SetupDiEnu
cca0: 6d 44 65 76 69 63 65 49 6e 66 6f 28 48 44 45 56  mDeviceInfo(HDEV
ccb0: 49 4e 46 4f 2c 20 44 57 4f 52 44 2c 20 50 53 50  INFO, DWORD, PSP
ccc0: 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41 29 3b 0d  _DEVINFO_DATA);.
ccd0: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 45 6e  ..BOOL SetupDiEn
cce0: 75 6d 44 65 76 69 63 65 49 6e 74 65 72 66 61 63  umDeviceInterfac
ccf0: 65 73 28 48 44 45 56 49 4e 46 4f 2c 20 50 53 50  es(HDEVINFO, PSP
cd00: 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41 2c 20 63  _DEVINFO_DATA, c
cd10: 6f 6e 73 74 28 47 55 49 44 29 2a 2c 20 44 57 4f  onst(GUID)*, DWO
cd20: 52 44 2c 20 50 53 50 5f 44 45 56 49 43 45 5f 49  RD, PSP_DEVICE_I
cd30: 4e 54 45 52 46 41 43 45 5f 44 41 54 41 29 3b 0d  NTERFACE_DATA);.
cd40: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 45 6e  ..BOOL SetupDiEn
cd50: 75 6d 44 72 69 76 65 72 49 6e 66 6f 41 28 48 44  umDriverInfoA(HD
cd60: 45 56 49 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49  EVINFO, PSP_DEVI
cd70: 4e 46 4f 5f 44 41 54 41 2c 20 44 57 4f 52 44 2c  NFO_DATA, DWORD,
cd80: 20 44 57 4f 52 44 2c 20 50 53 50 5f 44 52 56 49   DWORD, PSP_DRVI
cd90: 4e 46 4f 5f 44 41 54 41 5f 41 29 3b 0d 0a 09 42  NFO_DATA_A);...B
cda0: 4f 4f 4c 20 53 65 74 75 70 44 69 45 6e 75 6d 44  OOL SetupDiEnumD
cdb0: 72 69 76 65 72 49 6e 66 6f 57 28 48 44 45 56 49  riverInfoW(HDEVI
cdc0: 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f  NFO, PSP_DEVINFO
cdd0: 5f 44 41 54 41 2c 20 44 57 4f 52 44 2c 20 44 57  _DATA, DWORD, DW
cde0: 4f 52 44 2c 20 50 53 50 5f 44 52 56 49 4e 46 4f  ORD, PSP_DRVINFO
cdf0: 5f 44 41 54 41 5f 57 29 3b 0d 0a 09 42 4f 4f 4c  _DATA_W);...BOOL
ce00: 20 53 65 74 75 70 44 69 47 65 74 41 63 74 75 61   SetupDiGetActua
ce10: 6c 53 65 63 74 69 6f 6e 54 6f 49 6e 73 74 61 6c  lSectionToInstal
ce20: 6c 41 28 48 49 4e 46 2c 20 50 43 53 54 52 2c 20  lA(HINF, PCSTR, 
ce30: 50 53 54 52 2c 20 44 57 4f 52 44 2c 20 50 44 57  PSTR, DWORD, PDW
ce40: 4f 52 44 2c 20 50 53 54 52 2a 29 3b 0d 0a 09 42  ORD, PSTR*);...B
ce50: 4f 4f 4c 20 53 65 74 75 70 44 69 47 65 74 41 63  OOL SetupDiGetAc
ce60: 74 75 61 6c 53 65 63 74 69 6f 6e 54 6f 49 6e 73  tualSectionToIns
ce70: 74 61 6c 6c 57 28 48 49 4e 46 2c 20 50 43 57 53  tallW(HINF, PCWS
ce80: 54 52 2c 20 50 57 53 54 52 2c 20 44 57 4f 52 44  TR, PWSTR, DWORD
ce90: 2c 20 50 44 57 4f 52 44 2c 20 50 57 53 54 52 2a  , PDWORD, PWSTR*
cea0: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44  );...BOOL SetupD
ceb0: 69 47 65 74 43 6c 61 73 73 42 69 74 6d 61 70 49  iGetClassBitmapI
cec0: 6e 64 65 78 28 63 6f 6e 73 74 28 47 55 49 44 29  ndex(const(GUID)
ced0: 2a 2c 20 50 49 4e 54 29 3b 0d 0a 09 42 4f 4f 4c  *, PINT);...BOOL
cee0: 20 53 65 74 75 70 44 69 47 65 74 43 6c 61 73 73   SetupDiGetClass
cef0: 44 65 73 63 72 69 70 74 69 6f 6e 41 28 63 6f 6e  DescriptionA(con
cf00: 73 74 28 47 55 49 44 29 2a 2c 20 50 53 54 52 2c  st(GUID)*, PSTR,
cf10: 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b   DWORD, PDWORD);
cf20: 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 47  ...BOOL SetupDiG
cf30: 65 74 43 6c 61 73 73 44 65 73 63 72 69 70 74 69  etClassDescripti
cf40: 6f 6e 57 28 63 6f 6e 73 74 28 47 55 49 44 29 2a  onW(const(GUID)*
cf50: 2c 20 50 57 53 54 52 2c 20 44 57 4f 52 44 2c 20  , PWSTR, DWORD, 
cf60: 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20  PDWORD);...BOOL 
cf70: 53 65 74 75 70 44 69 47 65 74 43 6c 61 73 73 44  SetupDiGetClassD
cf80: 65 73 63 72 69 70 74 69 6f 6e 45 78 41 28 63 6f  escriptionExA(co
cf90: 6e 73 74 28 47 55 49 44 29 2a 2c 20 50 53 54 52  nst(GUID)*, PSTR
cfa0: 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c  , DWORD, PDWORD,
cfb0: 20 50 43 53 54 52 2c 20 50 56 4f 49 44 29 3b 0d   PCSTR, PVOID);.
cfc0: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 47 65  ..BOOL SetupDiGe
cfd0: 74 43 6c 61 73 73 44 65 73 63 72 69 70 74 69 6f  tClassDescriptio
cfe0: 6e 45 78 57 28 63 6f 6e 73 74 28 47 55 49 44 29  nExW(const(GUID)
cff0: 2a 2c 20 50 57 53 54 52 2c 20 44 57 4f 52 44 2c  *, PWSTR, DWORD,
d000: 20 50 44 57 4f 52 44 2c 20 50 43 57 53 54 52 2c   PDWORD, PCWSTR,
d010: 20 50 56 4f 49 44 29 3b 0d 0a 09 42 4f 4f 4c 20   PVOID);...BOOL 
d020: 53 65 74 75 70 44 69 47 65 74 43 6c 61 73 73 44  SetupDiGetClassD
d030: 65 76 50 72 6f 70 65 72 74 79 53 68 65 65 74 73  evPropertySheets
d040: 41 28 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f  A(HDEVINFO, PSP_
d050: 44 45 56 49 4e 46 4f 5f 44 41 54 41 2c 20 4c 50  DEVINFO_DATA, LP
d060: 50 52 4f 50 53 48 45 45 54 48 45 41 44 45 52 41  PROPSHEETHEADERA
d070: 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c  , DWORD, PDWORD,
d080: 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20   DWORD);...BOOL 
d090: 53 65 74 75 70 44 69 47 65 74 43 6c 61 73 73 44  SetupDiGetClassD
d0a0: 65 76 50 72 6f 70 65 72 74 79 53 68 65 65 74 73  evPropertySheets
d0b0: 57 28 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f  W(HDEVINFO, PSP_
d0c0: 44 45 56 49 4e 46 4f 5f 44 41 54 41 2c 20 4c 50  DEVINFO_DATA, LP
d0d0: 50 52 4f 50 53 48 45 45 54 48 45 41 44 45 52 57  PROPSHEETHEADERW
d0e0: 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c  , DWORD, PDWORD,
d0f0: 20 44 57 4f 52 44 29 3b 0d 0a 09 48 44 45 56 49   DWORD);...HDEVI
d100: 4e 46 4f 20 53 65 74 75 70 44 69 47 65 74 43 6c  NFO SetupDiGetCl
d110: 61 73 73 44 65 76 73 41 28 63 6f 6e 73 74 28 47  assDevsA(const(G
d120: 55 49 44 29 2a 2c 20 50 43 53 54 52 2c 20 48 57  UID)*, PCSTR, HW
d130: 4e 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 48 44  ND, DWORD);...HD
d140: 45 56 49 4e 46 4f 20 53 65 74 75 70 44 69 47 65  EVINFO SetupDiGe
d150: 74 43 6c 61 73 73 44 65 76 73 57 28 63 6f 6e 73  tClassDevsW(cons
d160: 74 28 47 55 49 44 29 2a 2c 20 50 43 57 53 54 52  t(GUID)*, PCWSTR
d170: 2c 20 48 57 4e 44 2c 20 44 57 4f 52 44 29 3b 0d  , HWND, DWORD);.
d180: 0a 09 48 44 45 56 49 4e 46 4f 20 53 65 74 75 70  ..HDEVINFO Setup
d190: 44 69 47 65 74 43 6c 61 73 73 44 65 76 73 45 78  DiGetClassDevsEx
d1a0: 41 28 63 6f 6e 73 74 28 47 55 49 44 29 2a 2c 20  A(const(GUID)*, 
d1b0: 50 43 53 54 52 2c 20 48 57 4e 44 2c 20 44 57 4f  PCSTR, HWND, DWO
d1c0: 52 44 2c 20 48 44 45 56 49 4e 46 4f 2c 20 50 43  RD, HDEVINFO, PC
d1d0: 53 54 52 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 48  STR, PVOID);...H
d1e0: 44 45 56 49 4e 46 4f 20 53 65 74 75 70 44 69 47  DEVINFO SetupDiG
d1f0: 65 74 43 6c 61 73 73 44 65 76 73 45 78 57 28 63  etClassDevsExW(c
d200: 6f 6e 73 74 28 47 55 49 44 29 2a 2c 20 50 43 57  onst(GUID)*, PCW
d210: 53 54 52 2c 20 48 57 4e 44 2c 20 44 57 4f 52 44  STR, HWND, DWORD
d220: 2c 20 48 44 45 56 49 4e 46 4f 2c 20 50 43 57 53  , HDEVINFO, PCWS
d230: 54 52 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 42 4f  TR, PVOID);...BO
d240: 4f 4c 20 53 65 74 75 70 44 69 47 65 74 43 6c 61  OL SetupDiGetCla
d250: 73 73 49 6d 61 67 65 49 6e 64 65 78 28 50 53 50  ssImageIndex(PSP
d260: 5f 43 4c 41 53 53 49 4d 41 47 45 4c 49 53 54 5f  _CLASSIMAGELIST_
d270: 44 41 54 41 2c 20 63 6f 6e 73 74 28 47 55 49 44  DATA, const(GUID
d280: 29 2a 2c 20 50 49 4e 54 29 3b 0d 0a 09 42 4f 4f  )*, PINT);...BOO
d290: 4c 20 53 65 74 75 70 44 69 47 65 74 43 6c 61 73  L SetupDiGetClas
d2a0: 73 49 6d 61 67 65 4c 69 73 74 28 50 53 50 5f 43  sImageList(PSP_C
d2b0: 4c 41 53 53 49 4d 41 47 45 4c 49 53 54 5f 44 41  LASSIMAGELIST_DA
d2c0: 54 41 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75  TA);...BOOL Setu
d2d0: 70 44 69 47 65 74 43 6c 61 73 73 49 6d 61 67 65  pDiGetClassImage
d2e0: 4c 69 73 74 45 78 41 28 50 53 50 5f 43 4c 41 53  ListExA(PSP_CLAS
d2f0: 53 49 4d 41 47 45 4c 49 53 54 5f 44 41 54 41 2c  SIMAGELIST_DATA,
d300: 20 50 43 53 54 52 2c 20 50 56 4f 49 44 29 3b 0d   PCSTR, PVOID);.
d310: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 47 65  ..BOOL SetupDiGe
d320: 74 43 6c 61 73 73 49 6d 61 67 65 4c 69 73 74 45  tClassImageListE
d330: 78 57 28 50 53 50 5f 43 4c 41 53 53 49 4d 41 47  xW(PSP_CLASSIMAG
d340: 45 4c 49 53 54 5f 44 41 54 41 2c 20 50 43 57 53  ELIST_DATA, PCWS
d350: 54 52 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 42 4f  TR, PVOID);...BO
d360: 4f 4c 20 53 65 74 75 70 44 69 47 65 74 43 6c 61  OL SetupDiGetCla
d370: 73 73 49 6e 73 74 61 6c 6c 50 61 72 61 6d 73 41  ssInstallParamsA
d380: 28 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f 44  (HDEVINFO, PSP_D
d390: 45 56 49 4e 46 4f 5f 44 41 54 41 2c 20 50 53 50  EVINFO_DATA, PSP
d3a0: 5f 43 4c 41 53 53 49 4e 53 54 41 4c 4c 5f 48 45  _CLASSINSTALL_HE
d3b0: 41 44 45 52 2c 20 44 57 4f 52 44 2c 20 50 44 57  ADER, DWORD, PDW
d3c0: 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74  ORD);...BOOL Set
d3d0: 75 70 44 69 47 65 74 43 6c 61 73 73 49 6e 73 74  upDiGetClassInst
d3e0: 61 6c 6c 50 61 72 61 6d 73 57 28 48 44 45 56 49  allParamsW(HDEVI
d3f0: 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f  NFO, PSP_DEVINFO
d400: 5f 44 41 54 41 2c 20 50 53 50 5f 43 4c 41 53 53  _DATA, PSP_CLASS
d410: 49 4e 53 54 41 4c 4c 5f 48 45 41 44 45 52 2c 20  INSTALL_HEADER, 
d420: 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d  DWORD, PDWORD);.
d430: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 47 65  ..BOOL SetupDiGe
d440: 74 43 6c 61 73 73 52 65 67 69 73 74 72 79 50 72  tClassRegistryPr
d450: 6f 70 65 72 74 79 41 28 4c 50 47 55 49 44 2c 20  opertyA(LPGUID, 
d460: 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20 50  DWORD, PDWORD, P
d470: 42 59 54 45 2c 20 44 57 4f 52 44 2c 20 50 44 57  BYTE, DWORD, PDW
d480: 4f 52 44 2c 20 50 43 53 54 52 2c 20 50 56 4f 49  ORD, PCSTR, PVOI
d490: 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70  D);...BOOL Setup
d4a0: 44 69 47 65 74 43 6c 61 73 73 52 65 67 69 73 74  DiGetClassRegist
d4b0: 72 79 50 72 6f 70 65 72 74 79 57 28 4c 50 47 55  ryPropertyW(LPGU
d4c0: 49 44 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f 52  ID, DWORD, PDWOR
d4d0: 44 2c 20 50 42 59 54 45 2c 20 44 57 4f 52 44 2c  D, PBYTE, DWORD,
d4e0: 20 50 44 57 4f 52 44 2c 20 50 43 57 53 54 52 2c   PDWORD, PCWSTR,
d4f0: 20 50 56 4f 49 44 29 3b 0d 0a 09 42 4f 4f 4c 20   PVOID);...BOOL 
d500: 53 65 74 75 70 44 69 47 65 74 44 65 76 69 63 65  SetupDiGetDevice
d510: 49 6e 66 6f 4c 69 73 74 43 6c 61 73 73 28 48 44  InfoListClass(HD
d520: 45 56 49 4e 46 4f 2c 20 4c 50 47 55 49 44 29 3b  EVINFO, LPGUID);
d530: 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 47  ...BOOL SetupDiG
d540: 65 74 44 65 76 69 63 65 49 6e 66 6f 4c 69 73 74  etDeviceInfoList
d550: 44 65 74 61 69 6c 41 28 48 44 45 56 49 4e 46 4f  DetailA(HDEVINFO
d560: 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f 4c 49  , PSP_DEVINFO_LI
d570: 53 54 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f 41  ST_DETAIL_DATA_A
d580: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44  );...BOOL SetupD
d590: 69 47 65 74 44 65 76 69 63 65 49 6e 66 6f 4c 69  iGetDeviceInfoLi
d5a0: 73 74 44 65 74 61 69 6c 57 28 48 44 45 56 49 4e  stDetailW(HDEVIN
d5b0: 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f  FO, PSP_DEVINFO_
d5c0: 4c 49 53 54 5f 44 45 54 41 49 4c 5f 44 41 54 41  LIST_DETAIL_DATA
d5d0: 5f 57 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75  _W);...BOOL Setu
d5e0: 70 44 69 47 65 74 44 65 76 69 63 65 49 6e 73 74  pDiGetDeviceInst
d5f0: 61 6c 6c 50 61 72 61 6d 73 41 28 48 44 45 56 49  allParamsA(HDEVI
d600: 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f  NFO, PSP_DEVINFO
d610: 5f 44 41 54 41 2c 20 50 53 50 5f 44 45 56 49 4e  _DATA, PSP_DEVIN
d620: 53 54 41 4c 4c 5f 50 41 52 41 4d 53 5f 41 29 3b  STALL_PARAMS_A);
d630: 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 47  ...BOOL SetupDiG
d640: 65 74 44 65 76 69 63 65 49 6e 73 74 61 6c 6c 50  etDeviceInstallP
d650: 61 72 61 6d 73 57 28 48 44 45 56 49 4e 46 4f 2c  aramsW(HDEVINFO,
d660: 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54   PSP_DEVINFO_DAT
d670: 41 2c 20 50 53 50 5f 44 45 56 49 4e 53 54 41 4c  A, PSP_DEVINSTAL
d680: 4c 5f 50 41 52 41 4d 53 5f 57 29 3b 0d 0a 09 42  L_PARAMS_W);...B
d690: 4f 4f 4c 20 53 65 74 75 70 44 69 47 65 74 44 65  OOL SetupDiGetDe
d6a0: 76 69 63 65 49 6e 73 74 61 6e 63 65 49 64 41 28  viceInstanceIdA(
d6b0: 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f 44 45  HDEVINFO, PSP_DE
d6c0: 56 49 4e 46 4f 5f 44 41 54 41 2c 20 50 53 54 52  VINFO_DATA, PSTR
d6d0: 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 29  , DWORD, PDWORD)
d6e0: 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69  ;...BOOL SetupDi
d6f0: 47 65 74 44 65 76 69 63 65 49 6e 73 74 61 6e 63  GetDeviceInstanc
d700: 65 49 64 57 28 48 44 45 56 49 4e 46 4f 2c 20 50  eIdW(HDEVINFO, P
d710: 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41 2c  SP_DEVINFO_DATA,
d720: 20 50 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 50   PWSTR, DWORD, P
d730: 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53  DWORD);...BOOL S
d740: 65 74 75 70 44 69 47 65 74 44 65 76 69 63 65 49  etupDiGetDeviceI
d750: 6e 74 65 72 66 61 63 65 41 6c 69 61 73 28 48 44  nterfaceAlias(HD
d760: 45 56 49 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49  EVINFO, PSP_DEVI
d770: 43 45 5f 49 4e 54 45 52 46 41 43 45 5f 44 41 54  CE_INTERFACE_DAT
d780: 41 2c 20 63 6f 6e 73 74 28 47 55 49 44 29 2a 2c  A, const(GUID)*,
d790: 20 50 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45   PSP_DEVICE_INTE
d7a0: 52 46 41 43 45 5f 44 41 54 41 29 3b 0d 0a 09 42  RFACE_DATA);...B
d7b0: 4f 4f 4c 20 53 65 74 75 70 44 69 47 65 74 44 65  OOL SetupDiGetDe
d7c0: 76 69 63 65 49 6e 74 65 72 66 61 63 65 44 65 74  viceInterfaceDet
d7d0: 61 69 6c 41 28 48 44 45 56 49 4e 46 4f 2c 20 50  ailA(HDEVINFO, P
d7e0: 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46  SP_DEVICE_INTERF
d7f0: 41 43 45 5f 44 41 54 41 2c 20 50 53 50 5f 44 45  ACE_DATA, PSP_DE
d800: 56 49 43 45 5f 49 4e 54 45 52 46 41 43 45 5f 44  VICE_INTERFACE_D
d810: 45 54 41 49 4c 5f 44 41 54 41 5f 41 2c 20 44 57  ETAIL_DATA_A, DW
d820: 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20 50 53 50  ORD, PDWORD, PSP
d830: 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41 29 3b 0d  _DEVINFO_DATA);.
d840: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 47 65  ..BOOL SetupDiGe
d850: 74 44 65 76 69 63 65 49 6e 74 65 72 66 61 63 65  tDeviceInterface
d860: 44 65 74 61 69 6c 57 28 48 44 45 56 49 4e 46 4f  DetailW(HDEVINFO
d870: 2c 20 50 53 50 5f 44 45 56 49 43 45 5f 49 4e 54  , PSP_DEVICE_INT
d880: 45 52 46 41 43 45 5f 44 41 54 41 2c 20 50 53 50  ERFACE_DATA, PSP
d890: 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46 41 43  _DEVICE_INTERFAC
d8a0: 45 5f 44 45 54 41 49 4c 5f 44 41 54 41 5f 57 2c  E_DETAIL_DATA_W,
d8b0: 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20   DWORD, PDWORD, 
d8c0: 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41  PSP_DEVINFO_DATA
d8d0: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44  );...BOOL SetupD
d8e0: 69 47 65 74 44 65 76 69 63 65 52 65 67 69 73 74  iGetDeviceRegist
d8f0: 72 79 50 72 6f 70 65 72 74 79 41 28 48 44 45 56  ryPropertyA(HDEV
d900: 49 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46  INFO, PSP_DEVINF
d910: 4f 5f 44 41 54 41 2c 20 44 57 4f 52 44 2c 20 50  O_DATA, DWORD, P
d920: 44 57 4f 52 44 2c 20 50 42 59 54 45 2c 20 44 57  DWORD, PBYTE, DW
d930: 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09  ORD, PDWORD);...
d940: 42 4f 4f 4c 20 53 65 74 75 70 44 69 47 65 74 44  BOOL SetupDiGetD
d950: 65 76 69 63 65 52 65 67 69 73 74 72 79 50 72 6f  eviceRegistryPro
d960: 70 65 72 74 79 57 28 48 44 45 56 49 4e 46 4f 2c  pertyW(HDEVINFO,
d970: 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54   PSP_DEVINFO_DAT
d980: 41 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44  A, DWORD, PDWORD
d990: 2c 20 50 42 59 54 45 2c 20 44 57 4f 52 44 2c 20  , PBYTE, DWORD, 
d9a0: 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20  PDWORD);...BOOL 
d9b0: 53 65 74 75 70 44 69 47 65 74 44 72 69 76 65 72  SetupDiGetDriver
d9c0: 49 6e 66 6f 44 65 74 61 69 6c 41 28 48 44 45 56  InfoDetailA(HDEV
d9d0: 49 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46  INFO, PSP_DEVINF
d9e0: 4f 5f 44 41 54 41 2c 20 50 53 50 5f 44 52 56 49  O_DATA, PSP_DRVI
d9f0: 4e 46 4f 5f 44 41 54 41 5f 41 2c 20 50 53 50 5f  NFO_DATA_A, PSP_
da00: 44 52 56 49 4e 46 4f 5f 44 45 54 41 49 4c 5f 44  DRVINFO_DETAIL_D
da10: 41 54 41 5f 41 2c 20 44 57 4f 52 44 2c 20 50 44  ATA_A, DWORD, PD
da20: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  WORD);...BOOL Se
da30: 74 75 70 44 69 47 65 74 44 72 69 76 65 72 49 6e  tupDiGetDriverIn
da40: 66 6f 44 65 74 61 69 6c 57 28 48 44 45 56 49 4e  foDetailW(HDEVIN
da50: 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f  FO, PSP_DEVINFO_
da60: 44 41 54 41 2c 20 50 53 50 5f 44 52 56 49 4e 46  DATA, PSP_DRVINF
da70: 4f 5f 44 41 54 41 5f 57 2c 20 50 53 50 5f 44 52  O_DATA_W, PSP_DR
da80: 56 49 4e 46 4f 5f 44 45 54 41 49 4c 5f 44 41 54  VINFO_DETAIL_DAT
da90: 41 5f 57 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f  A_W, DWORD, PDWO
daa0: 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75  RD);...BOOL Setu
dab0: 70 44 69 47 65 74 44 72 69 76 65 72 49 6e 73 74  pDiGetDriverInst
dac0: 61 6c 6c 50 61 72 61 6d 73 41 28 48 44 45 56 49  allParamsA(HDEVI
dad0: 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f  NFO, PSP_DEVINFO
dae0: 5f 44 41 54 41 2c 20 50 53 50 5f 44 52 56 49 4e  _DATA, PSP_DRVIN
daf0: 46 4f 5f 44 41 54 41 5f 41 2c 20 50 53 50 5f 44  FO_DATA_A, PSP_D
db00: 52 56 49 4e 53 54 41 4c 4c 5f 50 41 52 41 4d 53  RVINSTALL_PARAMS
db10: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44  );...BOOL SetupD
db20: 69 47 65 74 44 72 69 76 65 72 49 6e 73 74 61 6c  iGetDriverInstal
db30: 6c 50 61 72 61 6d 73 57 28 48 44 45 56 49 4e 46  lParamsW(HDEVINF
db40: 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44  O, PSP_DEVINFO_D
db50: 41 54 41 2c 20 50 53 50 5f 44 52 56 49 4e 46 4f  ATA, PSP_DRVINFO
db60: 5f 44 41 54 41 5f 57 2c 20 50 53 50 5f 44 52 56  _DATA_W, PSP_DRV
db70: 49 4e 53 54 41 4c 4c 5f 50 41 52 41 4d 53 29 3b  INSTALL_PARAMS);
db80: 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 47  ...BOOL SetupDiG
db90: 65 74 48 77 50 72 6f 66 69 6c 65 46 72 69 65 6e  etHwProfileFrien
dba0: 64 6c 79 4e 61 6d 65 41 28 44 57 4f 52 44 2c 20  dlyNameA(DWORD, 
dbb0: 50 53 54 52 2c 20 44 57 4f 52 44 2c 20 50 44 57  PSTR, DWORD, PDW
dbc0: 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74  ORD);...BOOL Set
dbd0: 75 70 44 69 47 65 74 48 77 50 72 6f 66 69 6c 65  upDiGetHwProfile
dbe0: 46 72 69 65 6e 64 6c 79 4e 61 6d 65 45 78 41 28  FriendlyNameExA(
dbf0: 44 57 4f 52 44 2c 20 50 53 54 52 2c 20 44 57 4f  DWORD, PSTR, DWO
dc00: 52 44 2c 20 50 44 57 4f 52 44 2c 20 50 43 53 54  RD, PDWORD, PCST
dc10: 52 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 42 4f 4f  R, PVOID);...BOO
dc20: 4c 20 53 65 74 75 70 44 69 47 65 74 48 77 50 72  L SetupDiGetHwPr
dc30: 6f 66 69 6c 65 46 72 69 65 6e 64 6c 79 4e 61 6d  ofileFriendlyNam
dc40: 65 45 78 57 28 44 57 4f 52 44 2c 20 50 57 53 54  eExW(DWORD, PWST
dc50: 52 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44  R, DWORD, PDWORD
dc60: 2c 20 50 43 57 53 54 52 2c 20 50 56 4f 49 44 29  , PCWSTR, PVOID)
dc70: 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69  ;...BOOL SetupDi
dc80: 47 65 74 48 77 50 72 6f 66 69 6c 65 46 72 69 65  GetHwProfileFrie
dc90: 6e 64 6c 79 4e 61 6d 65 57 28 44 57 4f 52 44 2c  ndlyNameW(DWORD,
dca0: 20 50 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 50   PWSTR, DWORD, P
dcb0: 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53  DWORD);...BOOL S
dcc0: 65 74 75 70 44 69 47 65 74 48 77 50 72 6f 66 69  etupDiGetHwProfi
dcd0: 6c 65 4c 69 73 74 28 50 44 57 4f 52 44 2c 20 44  leList(PDWORD, D
dce0: 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20 50 44  WORD, PDWORD, PD
dcf0: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  WORD);...BOOL Se
dd00: 74 75 70 44 69 47 65 74 48 77 50 72 6f 66 69 6c  tupDiGetHwProfil
dd10: 65 4c 69 73 74 45 78 41 28 50 44 57 4f 52 44 2c  eListExA(PDWORD,
dd20: 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20   DWORD, PDWORD, 
dd30: 50 44 57 4f 52 44 2c 20 50 43 53 54 52 2c 20 50  PDWORD, PCSTR, P
dd40: 56 4f 49 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  VOID);...BOOL Se
dd50: 74 75 70 44 69 47 65 74 48 77 50 72 6f 66 69 6c  tupDiGetHwProfil
dd60: 65 4c 69 73 74 45 78 57 28 50 44 57 4f 52 44 2c  eListExW(PDWORD,
dd70: 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20   DWORD, PDWORD, 
dd80: 50 44 57 4f 52 44 2c 20 50 43 57 53 54 52 2c 20  PDWORD, PCWSTR, 
dd90: 50 56 4f 49 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53  PVOID);...BOOL S
dda0: 65 74 75 70 44 69 47 65 74 49 4e 46 43 6c 61 73  etupDiGetINFClas
ddb0: 73 41 28 50 43 53 54 52 2c 20 4c 50 47 55 49 44  sA(PCSTR, LPGUID
ddc0: 2c 20 50 53 54 52 2c 20 44 57 4f 52 44 2c 20 50  , PSTR, DWORD, P
ddd0: 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53  DWORD);...BOOL S
dde0: 65 74 75 70 44 69 47 65 74 49 4e 46 43 6c 61 73  etupDiGetINFClas
ddf0: 73 57 28 50 43 57 53 54 52 2c 20 4c 50 47 55 49  sW(PCWSTR, LPGUI
de00: 44 2c 20 50 57 53 54 52 2c 20 44 57 4f 52 44 2c  D, PWSTR, DWORD,
de10: 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c   PDWORD);...BOOL
de20: 20 53 65 74 75 70 44 69 47 65 74 53 65 6c 65 63   SetupDiGetSelec
de30: 74 65 64 44 65 76 69 63 65 28 48 44 45 56 49 4e  tedDevice(HDEVIN
de40: 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f  FO, PSP_DEVINFO_
de50: 44 41 54 41 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  DATA);...BOOL Se
de60: 74 75 70 44 69 47 65 74 53 65 6c 65 63 74 65 64  tupDiGetSelected
de70: 44 72 69 76 65 72 41 28 48 44 45 56 49 4e 46 4f  DriverA(HDEVINFO
de80: 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41  , PSP_DEVINFO_DA
de90: 54 41 2c 20 50 53 50 5f 44 52 56 49 4e 46 4f 5f  TA, PSP_DRVINFO_
dea0: 44 41 54 41 5f 41 29 3b 0d 0a 09 42 4f 4f 4c 20  DATA_A);...BOOL 
deb0: 53 65 74 75 70 44 69 47 65 74 53 65 6c 65 63 74  SetupDiGetSelect
dec0: 65 64 44 72 69 76 65 72 57 28 48 44 45 56 49 4e  edDriverW(HDEVIN
ded0: 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f  FO, PSP_DEVINFO_
dee0: 44 41 54 41 2c 20 50 53 50 5f 44 52 56 49 4e 46  DATA, PSP_DRVINF
def0: 4f 5f 44 41 54 41 5f 57 29 3b 0d 0a 09 48 50 52  O_DATA_W);...HPR
df00: 4f 50 53 48 45 45 54 50 41 47 45 20 53 65 74 75  OPSHEETPAGE Setu
df10: 70 44 69 47 65 74 57 69 7a 61 72 64 61 67 65 28  pDiGetWizardage(
df20: 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f 44 45  HDEVINFO, PSP_DE
df30: 56 49 4e 46 4f 5f 44 41 54 41 2c 20 50 53 50 5f  VINFO_DATA, PSP_
df40: 49 4e 53 54 41 4c 4c 57 49 5a 41 52 44 5f 44 41  INSTALLWIZARD_DA
df50: 54 41 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44  TA, DWORD, DWORD
df60: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44  );...BOOL SetupD
df70: 69 49 6e 73 74 61 6c 6c 43 6c 61 73 73 41 28 48  iInstallClassA(H
df80: 57 4e 44 2c 20 50 43 53 54 52 2c 20 44 57 4f 52  WND, PCSTR, DWOR
df90: 44 2c 20 48 53 50 46 49 4c 45 51 29 3b 0d 0a 09  D, HSPFILEQ);...
dfa0: 42 4f 4f 4c 20 53 65 74 75 70 44 69 49 6e 73 74  BOOL SetupDiInst
dfb0: 61 6c 6c 43 6c 61 73 73 57 28 48 57 4e 44 2c 20  allClassW(HWND, 
dfc0: 50 43 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 48  PCWSTR, DWORD, H
dfd0: 53 50 46 49 4c 45 51 29 3b 0d 0a 09 42 4f 4f 4c  SPFILEQ);...BOOL
dfe0: 20 53 65 74 75 70 44 69 49 6e 73 74 61 6c 6c 43   SetupDiInstallC
dff0: 6c 61 73 73 45 78 41 28 48 57 4e 44 2c 20 50 43  lassExA(HWND, PC
e000: 53 54 52 2c 20 44 57 4f 52 44 2c 20 48 53 50 46  STR, DWORD, HSPF
e010: 49 4c 45 51 2c 20 63 6f 6e 73 74 28 47 55 49 44  ILEQ, const(GUID
e020: 29 2a 2c 20 50 56 4f 49 44 2c 20 50 56 4f 49 44  )*, PVOID, PVOID
e030: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44  );...BOOL SetupD
e040: 69 49 6e 73 74 61 6c 6c 43 6c 61 73 73 45 78 57  iInstallClassExW
e050: 28 48 57 4e 44 2c 20 50 43 57 53 54 52 2c 20 44  (HWND, PCWSTR, D
e060: 57 4f 52 44 2c 20 48 53 50 46 49 4c 45 51 2c 20  WORD, HSPFILEQ, 
e070: 63 6f 6e 73 74 28 47 55 49 44 29 2a 2c 20 50 56  const(GUID)*, PV
e080: 4f 49 44 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 42  OID, PVOID);...B
e090: 4f 4f 4c 20 53 65 74 75 70 44 69 49 6e 73 74 61  OOL SetupDiInsta
e0a0: 6c 6c 44 65 76 69 63 65 28 48 44 45 56 49 4e 46  llDevice(HDEVINF
e0b0: 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44  O, PSP_DEVINFO_D
e0c0: 41 54 41 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74  ATA);...BOOL Set
e0d0: 75 70 44 69 49 6e 73 74 61 6c 6c 44 65 76 69 63  upDiInstallDevic
e0e0: 65 49 6e 74 65 72 66 61 63 65 73 28 48 44 45 56  eInterfaces(HDEV
e0f0: 49 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46  INFO, PSP_DEVINF
e100: 4f 5f 44 41 54 41 29 3b 0d 0a 09 42 4f 4f 4c 20  O_DATA);...BOOL 
e110: 53 65 74 75 70 44 69 49 6e 73 74 61 6c 6c 44 72  SetupDiInstallDr
e120: 69 76 65 72 46 69 6c 65 73 28 48 44 45 56 49 4e  iverFiles(HDEVIN
e130: 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f  FO, PSP_DEVINFO_
e140: 44 41 54 41 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  DATA);...BOOL Se
e150: 74 75 70 44 69 4c 6f 61 64 43 6c 61 73 73 49 63  tupDiLoadClassIc
e160: 6f 6e 28 63 6f 6e 73 74 28 47 55 49 44 29 2a 2c  on(const(GUID)*,
e170: 20 48 49 43 4f 4e 2a 2c 20 50 49 4e 54 29 3b 0d   HICON*, PINT);.
e180: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 4d 6f  ..BOOL SetupDiMo
e190: 76 65 44 75 70 6c 69 63 61 74 65 44 65 76 69 63  veDuplicateDevic
e1a0: 65 28 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f  e(HDEVINFO, PSP_
e1b0: 44 45 56 49 4e 46 4f 5f 44 41 54 41 29 3b 0d 0a  DEVINFO_DATA);..
e1c0: 09 48 4b 45 59 20 53 65 74 75 70 44 69 4f 70 65  .HKEY SetupDiOpe
e1d0: 6e 43 6c 61 73 73 52 65 67 4b 65 79 28 63 6f 6e  nClassRegKey(con
e1e0: 73 74 28 47 55 49 44 29 2a 2c 20 52 45 47 53 41  st(GUID)*, REGSA
e1f0: 4d 29 3b 0d 0a 09 48 4b 45 59 20 53 65 74 75 70  M);...HKEY Setup
e200: 44 69 4f 70 65 6e 43 6c 61 73 73 52 65 67 4b 65  DiOpenClassRegKe
e210: 79 45 78 41 28 63 6f 6e 73 74 28 47 55 49 44 29  yExA(const(GUID)
e220: 2a 2c 20 52 45 47 53 41 4d 2c 20 44 57 4f 52 44  *, REGSAM, DWORD
e230: 2c 20 50 43 53 54 52 2c 20 50 56 4f 49 44 29 3b  , PCSTR, PVOID);
e240: 0d 0a 09 48 4b 45 59 20 53 65 74 75 70 44 69 4f  ...HKEY SetupDiO
e250: 70 65 6e 43 6c 61 73 73 52 65 67 4b 65 79 45 78  penClassRegKeyEx
e260: 57 28 63 6f 6e 73 74 28 47 55 49 44 29 2a 2c 20  W(const(GUID)*, 
e270: 52 45 47 53 41 4d 2c 20 44 57 4f 52 44 2c 20 50  REGSAM, DWORD, P
e280: 43 57 53 54 52 2c 20 50 56 4f 49 44 29 3b 0d 0a  CWSTR, PVOID);..
e290: 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 4f 70 65  .BOOL SetupDiOpe
e2a0: 6e 44 65 76 69 63 65 49 6e 66 6f 41 28 48 44 45  nDeviceInfoA(HDE
e2b0: 56 49 4e 46 4f 2c 20 50 43 53 54 52 2c 20 48 57  VINFO, PCSTR, HW
e2c0: 4e 44 2c 20 44 57 4f 52 44 2c 20 50 53 50 5f 44  ND, DWORD, PSP_D
e2d0: 45 56 49 4e 46 4f 5f 44 41 54 41 29 3b 0d 0a 09  EVINFO_DATA);...
e2e0: 42 4f 4f 4c 20 53 65 74 75 70 44 69 4f 70 65 6e  BOOL SetupDiOpen
e2f0: 44 65 76 69 63 65 49 6e 66 6f 57 28 48 44 45 56  DeviceInfoW(HDEV
e300: 49 4e 46 4f 2c 20 50 43 57 53 54 52 2c 20 48 57  INFO, PCWSTR, HW
e310: 4e 44 2c 20 44 57 4f 52 44 2c 20 50 53 50 5f 44  ND, DWORD, PSP_D
e320: 45 56 49 4e 46 4f 5f 44 41 54 41 29 3b 0d 0a 09  EVINFO_DATA);...
e330: 42 4f 4f 4c 20 53 65 74 75 70 44 69 4f 70 65 6e  BOOL SetupDiOpen
e340: 44 65 76 69 63 65 49 6e 74 65 72 66 61 63 65 41  DeviceInterfaceA
e350: 28 48 44 45 56 49 4e 46 4f 2c 20 50 43 53 54 52  (HDEVINFO, PCSTR
e360: 2c 20 44 57 4f 52 44 2c 20 50 53 50 5f 44 45 56  , DWORD, PSP_DEV
e370: 49 43 45 5f 49 4e 54 45 52 46 41 43 45 5f 44 41  ICE_INTERFACE_DA
e380: 54 41 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75  TA);...BOOL Setu
e390: 70 44 69 4f 70 65 6e 44 65 76 69 63 65 49 6e 74  pDiOpenDeviceInt
e3a0: 65 72 66 61 63 65 57 28 48 44 45 56 49 4e 46 4f  erfaceW(HDEVINFO
e3b0: 2c 20 50 43 57 53 54 52 2c 20 44 57 4f 52 44 2c  , PCWSTR, DWORD,
e3c0: 20 50 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45   PSP_DEVICE_INTE
e3d0: 52 46 41 43 45 5f 44 41 54 41 29 3b 0d 0a 09 48  RFACE_DATA);...H
e3e0: 4b 45 59 20 53 65 74 75 70 44 69 4f 70 65 6e 44  KEY SetupDiOpenD
e3f0: 65 76 69 63 65 49 6e 74 65 72 66 61 63 65 52 65  eviceInterfaceRe
e400: 67 4b 65 79 28 48 44 45 56 49 4e 46 4f 2c 20 50  gKey(HDEVINFO, P
e410: 53 50 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46  SP_DEVICE_INTERF
e420: 41 43 45 5f 44 41 54 41 2c 20 44 57 4f 52 44 2c  ACE_DATA, DWORD,
e430: 20 52 45 47 53 41 4d 29 3b 0d 0a 09 48 4b 45 59   REGSAM);...HKEY
e440: 20 53 65 74 75 70 44 69 4f 70 65 6e 44 65 76 52   SetupDiOpenDevR
e450: 65 67 4b 65 79 28 48 44 45 56 49 4e 46 4f 2c 20  egKey(HDEVINFO, 
e460: 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41  PSP_DEVINFO_DATA
e470: 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20  , DWORD, DWORD, 
e480: 44 57 4f 52 44 2c 20 52 45 47 53 41 4d 29 3b 0d  DWORD, REGSAM);.
e490: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 52 65  ..BOOL SetupDiRe
e4a0: 67 69 73 74 65 72 43 6f 44 65 76 69 63 65 49 6e  gisterCoDeviceIn
e4b0: 73 74 61 6c 6c 65 72 73 28 48 44 45 56 49 4e 46  stallers(HDEVINF
e4c0: 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44  O, PSP_DEVINFO_D
e4d0: 41 54 41 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74  ATA);...BOOL Set
e4e0: 75 70 44 69 52 65 67 69 73 74 65 72 44 65 76 69  upDiRegisterDevi
e4f0: 63 65 49 6e 66 6f 28 48 44 45 56 49 4e 46 4f 2c  ceInfo(HDEVINFO,
e500: 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54   PSP_DEVINFO_DAT
e510: 41 2c 20 44 57 4f 52 44 2c 20 50 53 50 5f 44 45  A, DWORD, PSP_DE
e520: 54 53 49 47 5f 43 4d 50 50 52 4f 43 2c 20 50 56  TSIG_CMPPROC, PV
e530: 4f 49 44 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f  OID, PSP_DEVINFO
e540: 5f 44 41 54 41 29 3b 0d 0a 09 42 4f 4f 4c 20 53  _DATA);...BOOL S
e550: 65 74 75 70 44 69 52 65 6d 6f 76 65 44 65 76 69  etupDiRemoveDevi
e560: 63 65 28 48 44 45 56 49 4e 46 4f 2c 20 50 53 50  ce(HDEVINFO, PSP
e570: 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41 29 3b 0d  _DEVINFO_DATA);.
e580: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 52 65  ..BOOL SetupDiRe
e590: 6d 6f 76 65 44 65 76 69 63 65 49 6e 74 65 72 66  moveDeviceInterf
e5a0: 61 63 65 28 48 44 45 56 49 4e 46 4f 2c 20 50 53  ace(HDEVINFO, PS
e5b0: 50 5f 44 45 56 49 43 45 5f 49 4e 54 45 52 46 41  P_DEVICE_INTERFA
e5c0: 43 45 5f 44 41 54 41 29 3b 0d 0a 09 42 4f 4f 4c  CE_DATA);...BOOL
e5d0: 20 53 65 74 75 70 44 69 53 65 6c 65 63 74 42 65   SetupDiSelectBe
e5e0: 73 74 43 6f 6d 70 61 74 44 72 76 28 48 44 45 56  stCompatDrv(HDEV
e5f0: 49 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46  INFO, PSP_DEVINF
e600: 4f 5f 44 41 54 41 29 3b 0d 0a 09 42 4f 4f 4c 20  O_DATA);...BOOL 
e610: 53 65 74 75 70 44 69 53 65 6c 65 63 74 44 65 76  SetupDiSelectDev
e620: 69 63 65 28 48 44 45 56 49 4e 46 4f 2c 20 50 53  ice(HDEVINFO, PS
e630: 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41 29 3b  P_DEVINFO_DATA);
e640: 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 53  ...BOOL SetupDiS
e650: 65 6c 65 63 74 4f 45 4d 44 72 76 28 48 57 4e 44  electOEMDrv(HWND
e660: 2c 20 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f  , HDEVINFO, PSP_
e670: 44 45 56 49 4e 46 4f 5f 44 41 54 41 29 3b 0d 0a  DEVINFO_DATA);..
e680: 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 53 65 74  .BOOL SetupDiSet
e690: 43 6c 61 73 73 49 6e 73 74 61 6c 6c 50 61 72 61  ClassInstallPara
e6a0: 6d 73 41 28 48 44 45 56 49 4e 46 4f 2c 20 50 53  msA(HDEVINFO, PS
e6b0: 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41 2c 20  P_DEVINFO_DATA, 
e6c0: 50 53 50 5f 43 4c 41 53 53 49 4e 53 54 41 4c 4c  PSP_CLASSINSTALL
e6d0: 5f 48 45 41 44 45 52 2c 20 44 57 4f 52 44 29 3b  _HEADER, DWORD);
e6e0: 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 53  ...BOOL SetupDiS
e6f0: 65 74 43 6c 61 73 73 49 6e 73 74 61 6c 6c 50 61  etClassInstallPa
e700: 72 61 6d 73 57 28 48 44 45 56 49 4e 46 4f 2c 20  ramsW(HDEVINFO, 
e710: 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41  PSP_DEVINFO_DATA
e720: 2c 20 50 53 50 5f 43 4c 41 53 53 49 4e 53 54 41  , PSP_CLASSINSTA
e730: 4c 4c 5f 48 45 41 44 45 52 2c 20 44 57 4f 52 44  LL_HEADER, DWORD
e740: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44  );...BOOL SetupD
e750: 69 53 65 74 43 6c 61 73 73 52 65 67 69 73 74 72  iSetClassRegistr
e760: 79 50 72 6f 70 65 72 74 79 41 28 4c 50 47 55 49  yPropertyA(LPGUI
e770: 44 2c 20 44 57 4f 52 44 2c 20 63 6f 6e 73 74 28  D, DWORD, const(
e780: 42 59 54 45 29 2a 2c 20 44 57 4f 52 44 2c 20 50  BYTE)*, DWORD, P
e790: 43 53 54 52 2c 20 50 56 4f 49 44 29 3b 0d 0a 09  CSTR, PVOID);...
e7a0: 42 4f 4f 4c 20 53 65 74 75 70 44 69 53 65 74 43  BOOL SetupDiSetC
e7b0: 6c 61 73 73 52 65 67 69 73 74 72 79 50 72 6f 70  lassRegistryProp
e7c0: 65 72 74 79 57 28 4c 50 47 55 49 44 2c 20 44 57  ertyW(LPGUID, DW
e7d0: 4f 52 44 2c 20 63 6f 6e 73 74 28 42 59 54 45 29  ORD, const(BYTE)
e7e0: 2a 2c 20 44 57 4f 52 44 2c 20 50 43 57 53 54 52  *, DWORD, PCWSTR
e7f0: 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 42 4f 4f 4c  , PVOID);...BOOL
e800: 20 53 65 74 75 70 44 69 53 65 74 44 65 76 69 63   SetupDiSetDevic
e810: 65 49 6e 73 74 61 6c 6c 50 61 72 61 6d 73 41 28  eInstallParamsA(
e820: 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f 44 45  HDEVINFO, PSP_DE
e830: 56 49 4e 46 4f 5f 44 41 54 41 2c 20 50 53 50 5f  VINFO_DATA, PSP_
e840: 44 45 56 49 4e 53 54 41 4c 4c 5f 50 41 52 41 4d  DEVINSTALL_PARAM
e850: 53 5f 41 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74  S_A);...BOOL Set
e860: 75 70 44 69 53 65 74 44 65 76 69 63 65 49 6e 73  upDiSetDeviceIns
e870: 74 61 6c 6c 50 61 72 61 6d 73 57 28 48 44 45 56  tallParamsW(HDEV
e880: 49 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46  INFO, PSP_DEVINF
e890: 4f 5f 44 41 54 41 2c 20 50 53 50 5f 44 45 56 49  O_DATA, PSP_DEVI
e8a0: 4e 53 54 41 4c 4c 5f 50 41 52 41 4d 53 5f 57 29  NSTALL_PARAMS_W)
e8b0: 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69  ;...BOOL SetupDi
e8c0: 53 65 74 44 65 76 69 63 65 52 65 67 69 73 74 72  SetDeviceRegistr
e8d0: 79 50 72 6f 70 65 72 74 79 41 28 48 44 45 56 49  yPropertyA(HDEVI
e8e0: 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f  NFO, PSP_DEVINFO
e8f0: 5f 44 41 54 41 2c 20 44 57 4f 52 44 2c 20 63 6f  _DATA, DWORD, co
e900: 6e 73 74 28 42 59 54 45 29 2a 2c 20 44 57 4f 52  nst(BYTE)*, DWOR
e910: 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70  D);...BOOL Setup
e920: 44 69 53 65 74 44 65 76 69 63 65 52 65 67 69 73  DiSetDeviceRegis
e930: 74 72 79 50 72 6f 70 65 72 74 79 57 28 48 44 45  tryPropertyW(HDE
e940: 56 49 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e  VINFO, PSP_DEVIN
e950: 46 4f 5f 44 41 54 41 2c 20 44 57 4f 52 44 2c 20  FO_DATA, DWORD, 
e960: 63 6f 6e 73 74 28 42 59 54 45 29 2a 2c 20 44 57  const(BYTE)*, DW
e970: 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74  ORD);...BOOL Set
e980: 75 70 44 69 53 65 74 44 72 69 76 65 72 49 6e 73  upDiSetDriverIns
e990: 74 61 6c 6c 50 61 72 61 6d 73 41 28 48 44 45 56  tallParamsA(HDEV
e9a0: 49 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46  INFO, PSP_DEVINF
e9b0: 4f 5f 44 41 54 41 2c 20 50 53 50 5f 44 52 56 49  O_DATA, PSP_DRVI
e9c0: 4e 46 4f 5f 44 41 54 41 5f 41 2c 20 50 53 50 5f  NFO_DATA_A, PSP_
e9d0: 44 52 56 49 4e 53 54 41 4c 4c 5f 50 41 52 41 4d  DRVINSTALL_PARAM
e9e0: 53 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70  S);...BOOL Setup
e9f0: 44 69 53 65 74 44 72 69 76 65 72 49 6e 73 74 61  DiSetDriverInsta
ea00: 6c 6c 50 61 72 61 6d 73 57 28 48 44 45 56 49 4e  llParamsW(HDEVIN
ea10: 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46 4f 5f  FO, PSP_DEVINFO_
ea20: 44 41 54 41 2c 20 50 53 50 5f 44 52 56 49 4e 46  DATA, PSP_DRVINF
ea30: 4f 5f 44 41 54 41 5f 57 2c 20 50 53 50 5f 44 52  O_DATA_W, PSP_DR
ea40: 56 49 4e 53 54 41 4c 4c 5f 50 41 52 41 4d 53 29  VINSTALL_PARAMS)
ea50: 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69  ;...BOOL SetupDi
ea60: 53 65 74 53 65 6c 65 63 74 65 64 44 65 76 69 63  SetSelectedDevic
ea70: 65 28 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f  e(HDEVINFO, PSP_
ea80: 44 45 56 49 4e 46 4f 5f 44 41 54 41 29 3b 0d 0a  DEVINFO_DATA);..
ea90: 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 53 65 74  .BOOL SetupDiSet
eaa0: 53 65 6c 65 63 74 65 64 44 72 69 76 65 72 41 28  SelectedDriverA(
eab0: 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f 44 45  HDEVINFO, PSP_DE
eac0: 56 49 4e 46 4f 5f 44 41 54 41 2c 20 50 53 50 5f  VINFO_DATA, PSP_
ead0: 44 52 56 49 4e 46 4f 5f 44 41 54 41 5f 41 29 3b  DRVINFO_DATA_A);
eae0: 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44 69 53  ...BOOL SetupDiS
eaf0: 65 74 53 65 6c 65 63 74 65 64 44 72 69 76 65 72  etSelectedDriver
eb00: 57 28 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f  W(HDEVINFO, PSP_
eb10: 44 45 56 49 4e 46 4f 5f 44 41 54 41 2c 20 50 53  DEVINFO_DATA, PS
eb20: 50 5f 44 52 56 49 4e 46 4f 5f 44 41 54 41 5f 57  P_DRVINFO_DATA_W
eb30: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 44  );...BOOL SetupD
eb40: 69 55 6e 72 65 6d 6f 76 65 44 65 76 69 63 65 28  iUnremoveDevice(
eb50: 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f 44 45  HDEVINFO, PSP_DE
eb60: 56 49 4e 46 4f 5f 44 41 54 41 29 3b 0d 0a 09 48  VINFO_DATA);...H
eb70: 44 53 4b 53 50 43 20 53 65 74 75 70 44 75 70 6c  DSKSPC SetupDupl
eb80: 69 63 61 74 65 44 69 73 6b 53 70 61 63 65 4c 69  icateDiskSpaceLi
eb90: 73 74 41 28 48 44 53 4b 53 50 43 2c 20 50 56 4f  stA(HDSKSPC, PVO
eba0: 49 44 2c 20 44 57 4f 52 44 2c 20 55 49 4e 54 29  ID, DWORD, UINT)
ebb0: 3b 0d 0a 09 48 44 53 4b 53 50 43 20 53 65 74 75  ;...HDSKSPC Setu
ebc0: 70 44 75 70 6c 69 63 61 74 65 44 69 73 6b 53 70  pDuplicateDiskSp
ebd0: 61 63 65 4c 69 73 74 57 28 48 44 53 4b 53 50 43  aceListW(HDSKSPC
ebe0: 2c 20 50 56 4f 49 44 2c 20 44 57 4f 52 44 2c 20  , PVOID, DWORD, 
ebf0: 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  UINT);...BOOL Se
ec00: 74 75 70 46 69 6e 64 46 69 72 73 74 4c 69 6e 65  tupFindFirstLine
ec10: 41 28 48 49 4e 46 2c 20 50 43 53 54 52 2c 20 50  A(HINF, PCSTR, P
ec20: 43 53 54 52 2c 20 50 49 4e 46 43 4f 4e 54 45 58  CSTR, PINFCONTEX
ec30: 54 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70  T);...BOOL Setup
ec40: 46 69 6e 64 46 69 72 73 74 4c 69 6e 65 57 28 48  FindFirstLineW(H
ec50: 49 4e 46 2c 20 50 43 57 53 54 52 2c 20 50 43 57  INF, PCWSTR, PCW
ec60: 53 54 52 2c 20 50 49 4e 46 43 4f 4e 54 45 58 54  STR, PINFCONTEXT
ec70: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 46  );...BOOL SetupF
ec80: 69 6e 64 4e 65 78 74 4c 69 6e 65 28 50 49 4e 46  indNextLine(PINF
ec90: 43 4f 4e 54 45 58 54 2c 20 50 49 4e 46 43 4f 4e  CONTEXT, PINFCON
eca0: 54 45 58 54 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  TEXT);...BOOL Se
ecb0: 74 75 70 46 69 6e 64 4e 65 78 74 4d 61 74 63 68  tupFindNextMatch
ecc0: 4c 69 6e 65 41 28 50 49 4e 46 43 4f 4e 54 45 58  LineA(PINFCONTEX
ecd0: 54 2c 20 50 43 53 54 52 2c 20 50 49 4e 46 43 4f  T, PCSTR, PINFCO
ece0: 4e 54 45 58 54 29 3b 0d 0a 09 42 4f 4f 4c 20 53  NTEXT);...BOOL S
ecf0: 65 74 75 70 46 69 6e 64 4e 65 78 74 4d 61 74 63  etupFindNextMatc
ed00: 68 4c 69 6e 65 57 28 50 49 4e 46 43 4f 4e 54 45  hLineW(PINFCONTE
ed10: 58 54 2c 20 50 43 57 53 54 52 2c 20 50 49 4e 46  XT, PCWSTR, PINF
ed20: 43 4f 4e 54 45 58 54 29 3b 0d 0a 09 42 4f 4f 4c  CONTEXT);...BOOL
ed30: 20 53 65 74 75 70 46 72 65 65 41 28 50 43 53 54   SetupFreeA(PCST
ed40: 52 2a 2a 2c 20 55 49 4e 54 29 3b 0d 0a 09 42 4f  R**, UINT);...BO
ed50: 4f 4c 20 53 65 74 75 70 46 72 65 65 57 28 50 43  OL SetupFreeW(PC
ed60: 57 53 54 52 2a 2a 2c 20 55 49 4e 54 29 3b 0d 0a  WSTR**, UINT);..
ed70: 09 42 4f 4f 4c 20 53 65 74 75 70 47 65 74 42 61  .BOOL SetupGetBa
ed80: 63 6b 75 70 49 6e 66 6f 72 6d 61 74 69 6f 6e 41  ckupInformationA
ed90: 28 48 53 50 46 49 4c 45 51 2c 20 50 53 50 5f 42  (HSPFILEQ, PSP_B
eda0: 41 43 4b 55 50 5f 51 55 45 55 45 5f 50 41 52 41  ACKUP_QUEUE_PARA
edb0: 4d 53 5f 41 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  MS_A);...BOOL Se
edc0: 74 75 70 47 65 74 42 61 63 6b 75 70 49 6e 66 6f  tupGetBackupInfo
edd0: 72 6d 61 74 69 6f 6e 57 28 48 53 50 46 49 4c 45  rmationW(HSPFILE
ede0: 51 2c 20 50 53 50 5f 42 41 43 4b 55 50 5f 51 55  Q, PSP_BACKUP_QU
edf0: 45 55 45 5f 50 41 52 41 4d 53 5f 57 29 3b 0d 0a  EUE_PARAMS_W);..
ee00: 09 42 4f 4f 4c 20 53 65 74 75 70 47 65 74 42 69  .BOOL SetupGetBi
ee10: 6e 61 72 79 46 69 65 6c 64 28 50 49 4e 46 43 4f  naryField(PINFCO
ee20: 4e 54 45 58 54 2c 20 44 57 4f 52 44 2c 20 50 42  NTEXT, DWORD, PB
ee30: 59 54 45 2c 20 44 57 4f 52 44 2c 20 4c 50 44 57  YTE, DWORD, LPDW
ee40: 4f 52 44 29 3b 0d 0a 09 44 57 4f 52 44 20 53 65  ORD);...DWORD Se
ee50: 74 75 70 47 65 74 46 69 65 6c 64 43 6f 75 6e 74  tupGetFieldCount
ee60: 28 50 49 4e 46 43 4f 4e 54 45 58 54 29 3b 0d 0a  (PINFCONTEXT);..
ee70: 09 44 57 4f 52 44 20 53 65 74 75 70 47 65 74 46  .DWORD SetupGetF
ee80: 69 6c 65 43 6f 6d 70 72 65 73 73 69 6f 6e 49 6e  ileCompressionIn
ee90: 66 6f 41 28 50 43 53 54 52 2c 20 50 53 54 52 2a  foA(PCSTR, PSTR*
eea0: 2c 20 50 44 57 4f 52 44 2c 20 50 44 57 4f 52 44  , PDWORD, PDWORD
eeb0: 2c 20 50 55 49 4e 54 29 3b 0d 0a 09 44 57 4f 52  , PUINT);...DWOR
eec0: 44 20 53 65 74 75 70 47 65 74 46 69 6c 65 43 6f  D SetupGetFileCo
eed0: 6d 70 72 65 73 73 69 6f 6e 49 6e 66 6f 57 28 50  mpressionInfoW(P
eee0: 43 57 53 54 52 2c 20 50 57 53 54 52 2a 2c 20 50  CWSTR, PWSTR*, P
eef0: 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20 50  DWORD, PDWORD, P
ef00: 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  UINT);...BOOL Se
ef10: 74 75 70 47 65 74 49 6e 66 46 69 6c 65 4c 69 73  tupGetInfFileLis
ef20: 74 41 28 50 43 53 54 52 2c 20 44 57 4f 52 44 2c  tA(PCSTR, DWORD,
ef30: 20 50 53 54 52 2c 20 44 57 4f 52 44 2c 20 50 44   PSTR, DWORD, PD
ef40: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  WORD);...BOOL Se
ef50: 74 75 70 47 65 74 49 6e 66 46 69 6c 65 4c 69 73  tupGetInfFileLis
ef60: 74 57 28 50 43 57 53 54 52 2c 20 44 57 4f 52 44  tW(PCWSTR, DWORD
ef70: 2c 20 50 57 53 54 52 2c 20 44 57 4f 52 44 2c 20  , PWSTR, DWORD, 
ef80: 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20  PDWORD);...BOOL 
ef90: 53 65 74 75 70 47 65 74 49 6e 66 49 6e 66 6f 72  SetupGetInfInfor
efa0: 6d 61 74 69 6f 6e 41 28 4c 50 43 56 4f 49 44 2c  mationA(LPCVOID,
efb0: 20 44 57 4f 52 44 2c 20 50 53 50 5f 49 4e 46 5f   DWORD, PSP_INF_
efc0: 49 4e 46 4f 52 4d 41 54 49 4f 4e 2c 20 44 57 4f  INFORMATION, DWO
efd0: 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42  RD, PDWORD);...B
efe0: 4f 4f 4c 20 53 65 74 75 70 47 65 74 49 6e 66 49  OOL SetupGetInfI
eff0: 6e 66 6f 72 6d 61 74 69 6f 6e 57 28 4c 50 43 56  nformationW(LPCV
f000: 4f 49 44 2c 20 44 57 4f 52 44 2c 20 50 53 50 5f  OID, DWORD, PSP_
f010: 49 4e 46 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 2c  INF_INFORMATION,
f020: 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b   DWORD, PDWORD);
f030: 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 47 65 74  ...BOOL SetupGet
f040: 49 6e 74 46 69 65 6c 64 28 50 49 4e 46 43 4f 4e  IntField(PINFCON
f050: 54 45 58 54 2c 20 44 57 4f 52 44 2c 20 50 49 4e  TEXT, DWORD, PIN
f060: 54 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70  T);...BOOL Setup
f070: 47 65 74 4c 69 6e 65 42 79 49 6e 64 65 78 41 28  GetLineByIndexA(
f080: 48 49 4e 46 2c 20 50 43 53 54 52 2c 20 44 57 4f  HINF, PCSTR, DWO
f090: 52 44 2c 20 50 49 4e 46 43 4f 4e 54 45 58 54 29  RD, PINFCONTEXT)
f0a0: 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 47 65  ;...BOOL SetupGe
f0b0: 74 4c 69 6e 65 42 79 49 6e 64 65 78 57 28 48 49  tLineByIndexW(HI
f0c0: 4e 46 2c 20 50 43 57 53 54 52 2c 20 44 57 4f 52  NF, PCWSTR, DWOR
f0d0: 44 2c 20 50 49 4e 46 43 4f 4e 54 45 58 54 29 3b  D, PINFCONTEXT);
f0e0: 0d 0a 09 4c 4f 4e 47 20 53 65 74 75 70 47 65 74  ...LONG SetupGet
f0f0: 4c 69 6e 65 43 6f 75 6e 74 41 28 48 49 4e 46 2c  LineCountA(HINF,
f100: 20 50 43 53 54 52 29 3b 0d 0a 09 4c 4f 4e 47 20   PCSTR);...LONG 
f110: 53 65 74 75 70 47 65 74 4c 69 6e 65 43 6f 75 6e  SetupGetLineCoun
f120: 74 57 28 48 49 4e 46 2c 20 50 43 57 53 54 52 29  tW(HINF, PCWSTR)
f130: 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 47 65  ;...BOOL SetupGe
f140: 74 4c 69 6e 65 54 65 78 74 41 28 50 49 4e 46 43  tLineTextA(PINFC
f150: 4f 4e 54 45 58 54 2c 20 48 49 4e 46 2c 20 50 43  ONTEXT, HINF, PC
f160: 53 54 52 2c 20 50 43 53 54 52 2c 20 50 53 54 52  STR, PCSTR, PSTR
f170: 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 29  , DWORD, PDWORD)
f180: 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 47 65  ;...BOOL SetupGe
f190: 74 4c 69 6e 65 54 65 78 74 57 28 50 49 4e 46 43  tLineTextW(PINFC
f1a0: 4f 4e 54 45 58 54 2c 20 48 49 4e 46 2c 20 50 43  ONTEXT, HINF, PC
f1b0: 57 53 54 52 2c 20 50 43 57 53 54 52 2c 20 50 57  WSTR, PCWSTR, PW
f1c0: 53 54 52 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f  STR, DWORD, PDWO
f1d0: 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75  RD);...BOOL Setu
f1e0: 70 47 65 74 4d 75 6c 74 69 53 7a 46 69 65 6c 64  pGetMultiSzField
f1f0: 41 28 50 49 4e 46 43 4f 4e 54 45 58 54 2c 20 44  A(PINFCONTEXT, D
f200: 57 4f 52 44 2c 20 50 53 54 52 2c 20 44 57 4f 52  WORD, PSTR, DWOR
f210: 44 2c 20 4c 50 44 57 4f 52 44 29 3b 0d 0a 09 42  D, LPDWORD);...B
f220: 4f 4f 4c 20 53 65 74 75 70 47 65 74 4d 75 6c 74  OOL SetupGetMult
f230: 69 53 7a 46 69 65 6c 64 57 28 50 49 4e 46 43 4f  iSzFieldW(PINFCO
f240: 4e 54 45 58 54 2c 20 44 57 4f 52 44 2c 20 50 57  NTEXT, DWORD, PW
f250: 53 54 52 2c 20 44 57 4f 52 44 2c 20 4c 50 44 57  STR, DWORD, LPDW
f260: 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74  ORD);...BOOL Set
f270: 75 70 47 65 74 53 6f 75 72 63 65 46 69 6c 65 4c  upGetSourceFileL
f280: 6f 63 61 74 69 6f 6e 41 28 48 49 4e 46 2c 20 50  ocationA(HINF, P
f290: 49 4e 46 43 4f 4e 54 45 58 54 2c 20 50 43 53 54  INFCONTEXT, PCST
f2a0: 52 2c 20 50 55 49 4e 54 2c 20 50 53 54 52 2c 20  R, PUINT, PSTR, 
f2b0: 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d  DWORD, PDWORD);.
f2c0: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 47 65 74 53  ..BOOL SetupGetS
f2d0: 6f 75 72 63 65 46 69 6c 65 4c 6f 63 61 74 69 6f  ourceFileLocatio
f2e0: 6e 57 28 48 49 4e 46 2c 20 50 49 4e 46 43 4f 4e  nW(HINF, PINFCON
f2f0: 54 45 58 54 2c 20 50 43 57 53 54 52 2c 20 50 55  TEXT, PCWSTR, PU
f300: 49 4e 54 2c 20 50 57 53 54 52 2c 20 44 57 4f 52  INT, PWSTR, DWOR
f310: 44 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f  D, PDWORD);...BO
f320: 4f 4c 20 53 65 74 75 70 47 65 74 53 6f 75 72 63  OL SetupGetSourc
f330: 65 46 69 6c 65 53 69 7a 65 41 28 48 49 4e 46 2c  eFileSizeA(HINF,
f340: 20 50 49 4e 46 43 4f 4e 54 45 58 54 2c 20 50 43   PINFCONTEXT, PC
f350: 53 54 52 2c 20 50 43 53 54 52 2c 20 50 44 57 4f  STR, PCSTR, PDWO
f360: 52 44 2c 20 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f  RD, UINT);...BOO
f370: 4c 20 53 65 74 75 70 47 65 74 53 6f 75 72 63 65  L SetupGetSource
f380: 46 69 6c 65 53 69 7a 65 57 28 48 49 4e 46 2c 20  FileSizeW(HINF, 
f390: 50 49 4e 46 43 4f 4e 54 45 58 54 2c 20 50 43 57  PINFCONTEXT, PCW
f3a0: 53 54 52 2c 20 50 43 57 53 54 52 2c 20 50 44 57  STR, PCWSTR, PDW
f3b0: 4f 52 44 2c 20 55 49 4e 54 29 3b 0d 0a 09 42 4f  ORD, UINT);...BO
f3c0: 4f 4c 20 53 65 74 75 70 47 65 74 53 6f 75 72 63  OL SetupGetSourc
f3d0: 65 49 6e 66 6f 41 28 48 49 4e 46 2c 20 55 49 4e  eInfoA(HINF, UIN
f3e0: 54 2c 20 55 49 4e 54 2c 20 50 53 54 52 2c 20 44  T, UINT, PSTR, D
f3f0: 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d 0a  WORD, PDWORD);..
f400: 09 42 4f 4f 4c 20 53 65 74 75 70 47 65 74 53 6f  .BOOL SetupGetSo
f410: 75 72 63 65 49 6e 66 6f 57 28 48 49 4e 46 2c 20  urceInfoW(HINF, 
f420: 55 49 4e 54 2c 20 55 49 4e 54 2c 20 50 57 53 54  UINT, UINT, PWST
f430: 52 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44  R, DWORD, PDWORD
f440: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 47  );...BOOL SetupG
f450: 65 74 53 74 72 69 6e 67 46 69 65 6c 64 41 28 50  etStringFieldA(P
f460: 49 4e 46 43 4f 4e 54 45 58 54 2c 20 44 57 4f 52  INFCONTEXT, DWOR
f470: 44 2c 20 50 53 54 52 2c 20 44 57 4f 52 44 2c 20  D, PSTR, DWORD, 
f480: 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20  PDWORD);...BOOL 
f490: 53 65 74 75 70 47 65 74 53 74 72 69 6e 67 46 69  SetupGetStringFi
f4a0: 65 6c 64 57 28 50 49 4e 46 43 4f 4e 54 45 58 54  eldW(PINFCONTEXT
f4b0: 2c 20 44 57 4f 52 44 2c 20 50 57 53 54 52 2c 20  , DWORD, PWSTR, 
f4c0: 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d  DWORD, PDWORD);.
f4d0: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 47 65 74 54  ..BOOL SetupGetT
f4e0: 61 72 67 65 74 50 61 74 68 41 28 48 49 4e 46 2c  argetPathA(HINF,
f4f0: 20 50 49 4e 46 43 4f 4e 54 45 58 54 2c 20 50 43   PINFCONTEXT, PC
f500: 53 54 52 2c 20 50 53 54 52 2c 20 44 57 4f 52 44  STR, PSTR, DWORD
f510: 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f  , PDWORD);...BOO
f520: 4c 20 53 65 74 75 70 47 65 74 54 61 72 67 65 74  L SetupGetTarget
f530: 50 61 74 68 57 28 48 49 4e 46 2c 20 50 49 4e 46  PathW(HINF, PINF
f540: 43 4f 4e 54 45 58 54 2c 20 50 43 57 53 54 52 2c  CONTEXT, PCWSTR,
f550: 20 50 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 50   PWSTR, DWORD, P
f560: 44 57 4f 52 44 29 3b 0d 0a 09 50 56 4f 49 44 20  DWORD);...PVOID 
f570: 53 65 74 75 70 49 6e 69 74 44 65 66 61 75 6c 74  SetupInitDefault
f580: 51 75 65 75 65 43 61 6c 6c 62 61 63 6b 28 48 57  QueueCallback(HW
f590: 4e 44 29 3b 0d 0a 09 50 56 4f 49 44 20 53 65 74  ND);...PVOID Set
f5a0: 75 70 49 6e 69 74 44 65 66 61 75 6c 74 51 75 65  upInitDefaultQue
f5b0: 75 65 43 61 6c 6c 62 61 63 6b 45 78 28 48 57 4e  ueCallbackEx(HWN
f5c0: 44 2c 20 48 57 4e 44 2c 20 55 49 4e 54 2c 20 44  D, HWND, UINT, D
f5d0: 57 4f 52 44 2c 20 50 56 4f 49 44 29 3b 0d 0a 09  WORD, PVOID);...
f5e0: 48 53 50 46 49 4c 45 4c 4f 47 20 53 65 74 75 70  HSPFILELOG Setup
f5f0: 49 6e 69 74 69 61 6c 69 7a 65 46 69 6c 65 4c 6f  InitializeFileLo
f600: 67 41 28 50 43 53 54 52 2c 20 44 57 4f 52 44 29  gA(PCSTR, DWORD)
f610: 3b 0d 0a 09 48 53 50 46 49 4c 45 4c 4f 47 20 53  ;...HSPFILELOG S
f620: 65 74 75 70 49 6e 69 74 69 61 6c 69 7a 65 46 69  etupInitializeFi
f630: 6c 65 4c 6f 67 57 28 50 43 57 53 54 52 2c 20 44  leLogW(PCWSTR, D
f640: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  WORD);...BOOL Se
f650: 74 75 70 49 6e 73 74 61 6c 6c 46 69 6c 65 41 28  tupInstallFileA(
f660: 48 49 4e 46 2c 20 50 49 4e 46 43 4f 4e 54 45 58  HINF, PINFCONTEX
f670: 54 2c 20 50 43 53 54 52 2c 20 50 43 53 54 52 2c  T, PCSTR, PCSTR,
f680: 20 50 43 53 54 52 2c 20 44 57 4f 52 44 2c 20 50   PCSTR, DWORD, P
f690: 53 50 5f 46 49 4c 45 5f 43 41 4c 4c 42 41 43 4b  SP_FILE_CALLBACK
f6a0: 5f 41 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 42 4f  _A, PVOID);...BO
f6b0: 4f 4c 20 53 65 74 75 70 49 6e 73 74 61 6c 6c 46  OL SetupInstallF
f6c0: 69 6c 65 57 28 48 49 4e 46 2c 20 50 49 4e 46 43  ileW(HINF, PINFC
f6d0: 4f 4e 54 45 58 54 2c 20 50 43 57 53 54 52 2c 20  ONTEXT, PCWSTR, 
f6e0: 50 43 57 53 54 52 2c 20 50 43 57 53 54 52 2c 20  PCWSTR, PCWSTR, 
f6f0: 44 57 4f 52 44 2c 20 50 53 50 5f 46 49 4c 45 5f  DWORD, PSP_FILE_
f700: 43 41 4c 4c 42 41 43 4b 5f 57 2c 20 50 56 4f 49  CALLBACK_W, PVOI
f710: 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70  D);...BOOL Setup
f720: 49 6e 73 74 61 6c 6c 46 69 6c 65 45 78 41 28 48  InstallFileExA(H
f730: 49 4e 46 2c 20 50 49 4e 46 43 4f 4e 54 45 58 54  INF, PINFCONTEXT
f740: 2c 20 50 43 53 54 52 2c 20 50 43 53 54 52 2c 20  , PCSTR, PCSTR, 
f750: 50 43 53 54 52 2c 20 44 57 4f 52 44 2c 20 50 53  PCSTR, DWORD, PS
f760: 50 5f 46 49 4c 45 5f 43 41 4c 4c 42 41 43 4b 5f  P_FILE_CALLBACK_
f770: 41 2c 20 50 56 4f 49 44 2c 20 50 42 4f 4f 4c 29  A, PVOID, PBOOL)
f780: 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 49 6e  ;...BOOL SetupIn
f790: 73 74 61 6c 6c 46 69 6c 65 45 78 57 28 48 49 4e  stallFileExW(HIN
f7a0: 46 2c 20 50 49 4e 46 43 4f 4e 54 45 58 54 2c 20  F, PINFCONTEXT, 
f7b0: 50 43 57 53 54 52 2c 20 50 43 57 53 54 52 2c 20  PCWSTR, PCWSTR, 
f7c0: 50 43 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 50  PCWSTR, DWORD, P
f7d0: 53 50 5f 46 49 4c 45 5f 43 41 4c 4c 42 41 43 4b  SP_FILE_CALLBACK
f7e0: 5f 57 2c 20 50 56 4f 49 44 2c 20 50 42 4f 4f 4c  _W, PVOID, PBOOL
f7f0: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 49  );...BOOL SetupI
f800: 6e 73 74 61 6c 6c 46 69 6c 65 73 46 72 6f 6d 49  nstallFilesFromI
f810: 6e 66 53 65 63 74 69 6f 6e 41 28 48 49 4e 46 2c  nfSectionA(HINF,
f820: 20 48 49 4e 46 2c 20 48 53 50 46 49 4c 45 51 2c   HINF, HSPFILEQ,
f830: 20 50 43 53 54 52 2c 20 50 43 53 54 52 2c 20 55   PCSTR, PCSTR, U
f840: 49 4e 54 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74  INT);...BOOL Set
f850: 75 70 49 6e 73 74 61 6c 6c 46 69 6c 65 73 46 72  upInstallFilesFr
f860: 6f 6d 49 6e 66 53 65 63 74 69 6f 6e 57 28 48 49  omInfSectionW(HI
f870: 4e 46 2c 20 48 49 4e 46 2c 20 48 53 50 46 49 4c  NF, HINF, HSPFIL
f880: 45 51 2c 20 50 43 57 53 54 52 2c 20 50 43 57 53  EQ, PCWSTR, PCWS
f890: 54 52 2c 20 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f  TR, UINT);...BOO
f8a0: 4c 20 53 65 74 75 70 49 6e 73 74 61 6c 6c 46 72  L SetupInstallFr
f8b0: 6f 6d 49 6e 66 53 65 63 74 69 6f 6e 41 28 48 57  omInfSectionA(HW
f8c0: 4e 44 2c 20 48 49 4e 46 2c 20 50 43 53 54 52 2c  ND, HINF, PCSTR,
f8d0: 20 55 49 4e 54 2c 20 48 4b 45 59 2c 20 50 43 53   UINT, HKEY, PCS
f8e0: 54 52 2c 20 55 49 4e 54 2c 20 50 53 50 5f 46 49  TR, UINT, PSP_FI
f8f0: 4c 45 5f 43 41 4c 4c 42 41 43 4b 5f 41 2c 20 50  LE_CALLBACK_A, P
f900: 56 4f 49 44 2c 20 48 44 45 56 49 4e 46 4f 2c 20  VOID, HDEVINFO, 
f910: 50 53 50 5f 44 45 56 49 4e 46 4f 5f 44 41 54 41  PSP_DEVINFO_DATA
f920: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 49  );...BOOL SetupI
f930: 6e 73 74 61 6c 6c 46 72 6f 6d 49 6e 66 53 65 63  nstallFromInfSec
f940: 74 69 6f 6e 57 28 48 57 4e 44 2c 20 48 49 4e 46  tionW(HWND, HINF
f950: 2c 20 50 43 57 53 54 52 2c 20 55 49 4e 54 2c 20  , PCWSTR, UINT, 
f960: 48 4b 45 59 2c 20 50 43 57 53 54 52 2c 20 55 49  HKEY, PCWSTR, UI
f970: 4e 54 2c 20 50 53 50 5f 46 49 4c 45 5f 43 41 4c  NT, PSP_FILE_CAL
f980: 4c 42 41 43 4b 5f 57 2c 20 50 56 4f 49 44 2c 20  LBACK_W, PVOID, 
f990: 48 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f 44 45  HDEVINFO, PSP_DE
f9a0: 56 49 4e 46 4f 5f 44 41 54 41 29 3b 0d 0a 09 42  VINFO_DATA);...B
f9b0: 4f 4f 4c 20 53 65 74 75 70 49 6e 73 74 61 6c 6c  OOL SetupInstall
f9c0: 53 65 72 76 69 63 65 73 46 72 6f 6d 49 6e 66 53  ServicesFromInfS
f9d0: 65 63 74 69 6f 6e 41 28 48 49 4e 46 2c 20 50 43  ectionA(HINF, PC
f9e0: 53 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42  STR, DWORD);...B
f9f0: 4f 4f 4c 20 53 65 74 75 70 49 6e 73 74 61 6c 6c  OOL SetupInstall
fa00: 53 65 72 76 69 63 65 73 46 72 6f 6d 49 6e 66 53  ServicesFromInfS
fa10: 65 63 74 69 6f 6e 57 28 48 49 4e 46 2c 20 50 43  ectionW(HINF, PC
fa20: 57 53 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09  WSTR, DWORD);...
fa30: 42 4f 4f 4c 20 53 65 74 75 70 49 6e 73 74 61 6c  BOOL SetupInstal
fa40: 6c 53 65 72 76 69 63 65 73 46 72 6f 6d 49 6e 66  lServicesFromInf
fa50: 53 65 63 74 69 6f 6e 45 78 41 28 48 49 4e 46 2c  SectionExA(HINF,
fa60: 20 50 43 53 54 52 2c 20 44 57 4f 52 44 2c 20 48   PCSTR, DWORD, H
fa70: 44 45 56 49 4e 46 4f 2c 20 50 53 50 5f 44 45 56  DEVINFO, PSP_DEV
fa80: 49 4e 46 4f 5f 44 41 54 41 2c 20 50 56 4f 49 44  INFO_DATA, PVOID
fa90: 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 42 4f 4f 4c  , PVOID);...BOOL
faa0: 20 53 65 74 75 70 49 6e 73 74 61 6c 6c 53 65 72   SetupInstallSer
fab0: 76 69 63 65 73 46 72 6f 6d 49 6e 66 53 65 63 74  vicesFromInfSect
fac0: 69 6f 6e 45 78 57 28 48 49 4e 46 2c 20 50 43 57  ionExW(HINF, PCW
fad0: 53 54 52 2c 20 44 57 4f 52 44 2c 20 48 44 45 56  STR, DWORD, HDEV
fae0: 49 4e 46 4f 2c 20 50 53 50 5f 44 45 56 49 4e 46  INFO, PSP_DEVINF
faf0: 4f 5f 44 41 54 41 2c 20 50 56 4f 49 44 2c 20 50  O_DATA, PVOID, P
fb00: 56 4f 49 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  VOID);...BOOL Se
fb10: 74 75 70 49 74 65 72 61 74 65 43 61 62 69 6e 65  tupIterateCabine
fb20: 74 41 28 50 43 53 54 52 2c 20 44 57 4f 52 44 2c  tA(PCSTR, DWORD,
fb30: 20 50 53 50 5f 46 49 4c 45 5f 43 41 4c 4c 42 41   PSP_FILE_CALLBA
fb40: 43 4b 5f 41 2c 20 50 56 4f 49 44 29 3b 0d 0a 09  CK_A, PVOID);...
fb50: 42 4f 4f 4c 20 53 65 74 75 70 49 74 65 72 61 74  BOOL SetupIterat
fb60: 65 43 61 62 69 6e 65 74 57 28 50 43 57 53 54 52  eCabinetW(PCWSTR
fb70: 2c 20 44 57 4f 52 44 2c 20 50 53 50 5f 46 49 4c  , DWORD, PSP_FIL
fb80: 45 5f 43 41 4c 4c 42 41 43 4b 5f 57 2c 20 50 56  E_CALLBACK_W, PV
fb90: 4f 49 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74  OID);...BOOL Set
fba0: 75 70 4c 6f 67 45 72 72 6f 72 41 28 4c 50 43 53  upLogErrorA(LPCS
fbb0: 54 52 2c 20 4c 6f 67 53 65 76 65 72 69 74 79 29  TR, LogSeverity)
fbc0: 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 4c 6f  ;...BOOL SetupLo
fbd0: 67 45 72 72 6f 72 57 28 4c 50 43 57 53 54 52 2c  gErrorW(LPCWSTR,
fbe0: 20 4c 6f 67 53 65 76 65 72 69 74 79 29 3b 0d 0a   LogSeverity);..
fbf0: 09 42 4f 4f 4c 20 53 65 74 75 70 4c 6f 67 46 69  .BOOL SetupLogFi
fc00: 6c 65 41 28 48 53 50 46 49 4c 45 4c 4f 47 2c 20  leA(HSPFILELOG, 
fc10: 50 43 53 54 52 2c 20 50 43 53 54 52 2c 20 50 43  PCSTR, PCSTR, PC
fc20: 53 54 52 2c 20 44 57 4f 52 44 2c 20 50 43 53 54  STR, DWORD, PCST
fc30: 52 2c 20 50 43 53 54 52 2c 20 50 43 53 54 52 2c  R, PCSTR, PCSTR,
fc40: 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20   DWORD);...BOOL 
fc50: 53 65 74 75 70 4c 6f 67 46 69 6c 65 57 28 48 53  SetupLogFileW(HS
fc60: 50 46 49 4c 45 4c 4f 47 2c 20 50 43 57 53 54 52  PFILELOG, PCWSTR
fc70: 2c 20 50 43 57 53 54 52 2c 20 50 43 57 53 54 52  , PCWSTR, PCWSTR
fc80: 2c 20 44 57 4f 52 44 2c 20 50 43 57 53 54 52 2c  , DWORD, PCWSTR,
fc90: 20 50 43 57 53 54 52 2c 20 50 43 57 53 54 52 2c   PCWSTR, PCWSTR,
fca0: 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20   DWORD);...BOOL 
fcb0: 53 65 74 75 70 4f 70 65 6e 41 70 70 65 6e 64 49  SetupOpenAppendI
fcc0: 6e 66 46 69 6c 65 41 28 50 43 53 54 52 2c 20 48  nfFileA(PCSTR, H
fcd0: 49 4e 46 2c 20 50 55 49 4e 54 29 3b 0d 0a 09 42  INF, PUINT);...B
fce0: 4f 4f 4c 20 53 65 74 75 70 4f 70 65 6e 41 70 70  OOL SetupOpenApp
fcf0: 65 6e 64 49 6e 66 46 69 6c 65 57 28 50 43 57 53  endInfFileW(PCWS
fd00: 54 52 2c 20 48 49 4e 46 2c 20 50 55 49 4e 54 29  TR, HINF, PUINT)
fd10: 3b 0d 0a 09 48 53 50 46 49 4c 45 51 20 53 65 74  ;...HSPFILEQ Set
fd20: 75 70 4f 70 65 6e 46 69 6c 65 51 75 65 75 65 28  upOpenFileQueue(
fd30: 29 3b 0d 0a 09 48 49 4e 46 20 53 65 74 75 70 4f  );...HINF SetupO
fd40: 70 65 6e 49 6e 66 46 69 6c 65 41 28 50 43 53 54  penInfFileA(PCST
fd50: 52 2c 20 50 43 53 54 52 2c 20 44 57 4f 52 44 2c  R, PCSTR, DWORD,
fd60: 20 50 55 49 4e 54 29 3b 0d 0a 09 48 49 4e 46 20   PUINT);...HINF 
fd70: 53 65 74 75 70 4f 70 65 6e 49 6e 66 46 69 6c 65  SetupOpenInfFile
fd80: 57 28 50 43 57 53 54 52 2c 20 50 43 57 53 54 52  W(PCWSTR, PCWSTR
fd90: 2c 20 44 57 4f 52 44 2c 20 50 55 49 4e 54 29 3b  , DWORD, PUINT);
fda0: 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 4f 70 65  ...BOOL SetupOpe
fdb0: 6e 4c 6f 67 28 42 4f 4f 4c 29 3b 0d 0a 09 48 49  nLog(BOOL);...HI
fdc0: 4e 46 20 53 65 74 75 70 4f 70 65 6e 4d 61 73 74  NF SetupOpenMast
fdd0: 65 72 49 6e 66 28 29 3b 0d 0a 09 55 49 4e 54 20  erInf();...UINT 
fde0: 53 65 74 75 70 50 72 6f 6d 70 74 46 6f 72 44 69  SetupPromptForDi
fdf0: 73 6b 41 28 48 57 4e 44 2c 20 50 43 53 54 52 2c  skA(HWND, PCSTR,
fe00: 20 50 43 53 54 52 2c 20 50 43 53 54 52 2c 20 50   PCSTR, PCSTR, P
fe10: 43 53 54 52 2c 20 50 43 53 54 52 2c 20 44 57 4f  CSTR, PCSTR, DWO
fe20: 52 44 2c 20 50 53 54 52 2c 20 44 57 4f 52 44 2c  RD, PSTR, DWORD,
fe30: 20 50 44 57 4f 52 44 29 3b 0d 0a 09 55 49 4e 54   PDWORD);...UINT
fe40: 20 53 65 74 75 70 50 72 6f 6d 70 74 46 6f 72 44   SetupPromptForD
fe50: 69 73 6b 57 28 48 57 4e 44 2c 20 50 43 57 53 54  iskW(HWND, PCWST
fe60: 52 2c 20 50 43 57 53 54 52 2c 20 50 43 57 53 54  R, PCWSTR, PCWST
fe70: 52 2c 20 50 43 57 53 54 52 2c 20 50 43 57 53 54  R, PCWSTR, PCWST
fe80: 52 2c 20 44 57 4f 52 44 2c 20 50 57 53 54 52 2c  R, DWORD, PWSTR,
fe90: 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b   DWORD, PDWORD);
fea0: 0d 0a 09 49 4e 54 20 53 65 74 75 70 50 72 6f 6d  ...INT SetupProm
feb0: 70 74 52 65 62 6f 6f 74 28 48 53 50 46 49 4c 45  ptReboot(HSPFILE
fec0: 51 2c 20 48 57 4e 44 2c 20 42 4f 4f 4c 29 3b 0d  Q, HWND, BOOL);.
fed0: 0a 09 42 4f 4f 4c 20 53 65 74 75 70 51 75 65 72  ..BOOL SetupQuer
fee0: 79 41 28 44 57 4f 52 44 2c 20 50 43 53 54 52 2a  yA(DWORD, PCSTR*
fef0: 2a 2c 20 50 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f  *, PUINT);...BOO
ff00: 4c 20 53 65 74 75 70 51 75 65 72 79 57 28 44 57  L SetupQueryW(DW
ff10: 4f 52 44 2c 20 50 43 57 53 54 52 2a 2a 2c 20 50  ORD, PCWSTR**, P
ff20: 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  UINT);...BOOL Se
ff30: 74 75 70 51 75 65 72 79 44 72 69 76 65 73 49 6e  tupQueryDrivesIn
ff40: 44 69 73 6b 53 70 61 63 65 4c 69 73 74 41 28 48  DiskSpaceListA(H
ff50: 44 53 4b 53 50 43 2c 20 50 53 54 52 2c 20 44 57  DSKSPC, PSTR, DW
ff60: 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09  ORD, PDWORD);...
ff70: 42 4f 4f 4c 20 53 65 74 75 70 51 75 65 72 79 44  BOOL SetupQueryD
ff80: 72 69 76 65 73 49 6e 44 69 73 6b 53 70 61 63 65  rivesInDiskSpace
ff90: 4c 69 73 74 57 28 48 44 53 4b 53 50 43 2c 20 50  ListW(HDSKSPC, P
ffa0: 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 50 44 57  WSTR, DWORD, PDW
ffb0: 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74  ORD);...BOOL Set
ffc0: 75 70 51 75 65 72 79 46 69 6c 65 4c 6f 67 41 28  upQueryFileLogA(
ffd0: 48 53 50 46 49 4c 45 4c 4f 47 2c 20 50 43 53 54  HSPFILELOG, PCST
ffe0: 52 2c 20 50 43 53 54 52 2c 20 53 65 74 75 70 46  R, PCSTR, SetupF
fff0: 69 6c 65 4c 6f 67 49 6e 66 6f 2c 20 50 53 54 52  ileLogInfo, PSTR
10000 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 29  , DWORD, PDWORD)
10010 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 51 75  ;...BOOL SetupQu
10020 65 72 79 46 69 6c 65 4c 6f 67 57 28 48 53 50 46  eryFileLogW(HSPF
10030 49 4c 45 4c 4f 47 2c 20 50 43 57 53 54 52 2c 20  ILELOG, PCWSTR, 
10040 50 43 57 53 54 52 2c 20 53 65 74 75 70 46 69 6c  PCWSTR, SetupFil
10050 65 4c 6f 67 49 6e 66 6f 2c 20 50 57 53 54 52 2c  eLogInfo, PWSTR,
10060 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b   DWORD, PDWORD);
10070 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 51 75 65  ...BOOL SetupQue
10080 72 79 49 6e 66 46 69 6c 65 49 6e 66 6f 72 6d 61  ryInfFileInforma
10090 74 69 6f 6e 41 28 50 53 50 5f 49 4e 46 5f 49 4e  tionA(PSP_INF_IN
100a0 46 4f 52 4d 41 54 49 4f 4e 2c 20 55 49 4e 54 2c  FORMATION, UINT,
100b0 20 50 53 54 52 2c 20 44 57 4f 52 44 2c 20 50 44   PSTR, DWORD, PD
100c0 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  WORD);...BOOL Se
100d0 74 75 70 51 75 65 72 79 49 6e 66 46 69 6c 65 49  tupQueryInfFileI
100e0 6e 66 6f 72 6d 61 74 69 6f 6e 57 28 50 53 50 5f  nformationW(PSP_
100f0 49 4e 46 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 2c  INF_INFORMATION,
10100 20 55 49 4e 54 2c 20 50 57 53 54 52 2c 20 44 57   UINT, PWSTR, DW
10110 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09  ORD, PDWORD);...
10120 42 4f 4f 4c 20 53 65 74 75 70 51 75 65 72 79 49  BOOL SetupQueryI
10130 6e 66 4f 72 69 67 69 6e 61 6c 46 69 6c 65 49 6e  nfOriginalFileIn
10140 66 6f 72 6d 61 74 69 6f 6e 41 28 50 53 50 5f 49  formationA(PSP_I
10150 4e 46 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 2c 20  NF_INFORMATION, 
10160 55 49 4e 54 2c 20 50 53 50 5f 41 4c 54 50 4c 41  UINT, PSP_ALTPLA
10170 54 46 4f 52 4d 5f 49 4e 46 4f 2c 20 50 53 50 5f  TFORM_INFO, PSP_
10180 4f 52 49 47 49 4e 41 4c 5f 46 49 4c 45 5f 49 4e  ORIGINAL_FILE_IN
10190 46 4f 5f 41 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  FO_A);...BOOL Se
101a0 74 75 70 51 75 65 72 79 49 6e 66 4f 72 69 67 69  tupQueryInfOrigi
101b0 6e 61 6c 46 69 6c 65 49 6e 66 6f 72 6d 61 74 69  nalFileInformati
101c0 6f 6e 57 28 50 53 50 5f 49 4e 46 5f 49 4e 46 4f  onW(PSP_INF_INFO
101d0 52 4d 41 54 49 4f 4e 2c 20 55 49 4e 54 2c 20 50  RMATION, UINT, P
101e0 53 50 5f 41 4c 54 50 4c 41 54 46 4f 52 4d 5f 49  SP_ALTPLATFORM_I
101f0 4e 46 4f 2c 20 50 53 50 5f 4f 52 49 47 49 4e 41  NFO, PSP_ORIGINA
10200 4c 5f 46 49 4c 45 5f 49 4e 46 4f 5f 57 29 3b 0d  L_FILE_INFO_W);.
10210 0a 09 42 4f 4f 4c 20 53 65 74 75 70 51 75 65 72  ..BOOL SetupQuer
10220 79 49 6e 66 56 65 72 73 69 6f 6e 49 6e 66 6f 72  yInfVersionInfor
10230 6d 61 74 69 6f 6e 41 28 50 53 50 5f 49 4e 46 5f  mationA(PSP_INF_
10240 49 4e 46 4f 52 4d 41 54 49 4f 4e 2c 20 55 49 4e  INFORMATION, UIN
10250 54 2c 20 50 53 54 52 2c 20 50 53 54 52 2c 20 44  T, PSTR, PSTR, D
10260 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d 0a  WORD, PDWORD);..
10270 09 42 4f 4f 4c 20 53 65 74 75 70 51 75 65 72 79  .BOOL SetupQuery
10280 49 6e 66 56 65 72 73 69 6f 6e 49 6e 66 6f 72 6d  InfVersionInform
10290 61 74 69 6f 6e 57 28 50 53 50 5f 49 4e 46 5f 49  ationW(PSP_INF_I
102a0 4e 46 4f 52 4d 41 54 49 4f 4e 2c 20 55 49 4e 54  NFORMATION, UINT
102b0 2c 20 50 43 57 53 54 52 2c 20 50 57 53 54 52 2c  , PCWSTR, PWSTR,
102c0 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b   DWORD, PDWORD);
102d0 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 51 75 65  ...BOOL SetupQue
102e0 72 79 53 70 61 63 65 52 65 71 75 69 72 65 64 4f  rySpaceRequiredO
102f0 6e 44 72 69 76 65 41 28 48 44 53 4b 53 50 43 2c  nDriveA(HDSKSPC,
10300 20 50 43 53 54 52 2c 20 4c 4f 4e 47 4c 4f 4e 47   PCSTR, LONGLONG
10310 2a 2c 20 50 56 4f 49 44 2c 20 55 49 4e 54 29 3b  *, PVOID, UINT);
10320 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 51 75 65  ...BOOL SetupQue
10330 72 79 53 70 61 63 65 52 65 71 75 69 72 65 64 4f  rySpaceRequiredO
10340 6e 44 72 69 76 65 57 28 48 44 53 4b 53 50 43 2c  nDriveW(HDSKSPC,
10350 20 50 43 57 53 54 52 2c 20 4c 4f 4e 47 4c 4f 4e   PCWSTR, LONGLON
10360 47 2a 2c 20 50 56 4f 49 44 2c 20 55 49 4e 54 29  G*, PVOID, UINT)
10370 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 51 75  ;...BOOL SetupQu
10380 65 75 65 43 6f 70 79 41 28 48 53 50 46 49 4c 45  eueCopyA(HSPFILE
10390 51 2c 20 50 43 53 54 52 2c 20 50 43 53 54 52 2c  Q, PCSTR, PCSTR,
103a0 20 50 43 53 54 52 2c 20 50 43 53 54 52 2c 20 50   PCSTR, PCSTR, P
103b0 43 53 54 52 2c 20 50 43 53 54 52 2c 20 50 43 53  CSTR, PCSTR, PCS
103c0 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f  TR, DWORD);...BO
103d0 4f 4c 20 53 65 74 75 70 51 75 65 75 65 43 6f 70  OL SetupQueueCop
103e0 79 57 28 48 53 50 46 49 4c 45 51 2c 20 50 43 57  yW(HSPFILEQ, PCW
103f0 53 54 52 2c 20 50 43 57 53 54 52 2c 20 50 43 57  STR, PCWSTR, PCW
10400 53 54 52 2c 20 50 43 57 53 54 52 2c 20 50 43 57  STR, PCWSTR, PCW
10410 53 54 52 2c 20 50 43 57 53 54 52 2c 20 50 43 57  STR, PCWSTR, PCW
10420 53 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42  STR, DWORD);...B
10430 4f 4f 4c 20 53 65 74 75 70 51 75 65 75 65 43 6f  OOL SetupQueueCo
10440 70 79 49 6e 64 69 72 65 63 74 41 28 50 53 50 5f  pyIndirectA(PSP_
10450 46 49 4c 45 5f 43 4f 50 59 5f 50 41 52 41 4d 53  FILE_COPY_PARAMS
10460 5f 41 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75  _A);...BOOL Setu
10470 70 51 75 65 75 65 43 6f 70 79 49 6e 64 69 72 65  pQueueCopyIndire
10480 63 74 57 28 50 53 50 5f 46 49 4c 45 5f 43 4f 50  ctW(PSP_FILE_COP
10490 59 5f 50 41 52 41 4d 53 5f 57 29 3b 0d 0a 09 42  Y_PARAMS_W);...B
104a0 4f 4f 4c 20 53 65 74 75 70 51 75 65 75 65 43 6f  OOL SetupQueueCo
104b0 70 79 53 65 63 74 69 6f 6e 41 28 48 53 50 46 49  pySectionA(HSPFI
104c0 4c 45 51 2c 20 50 43 53 54 52 2c 20 48 49 4e 46  LEQ, PCSTR, HINF
104d0 2c 20 48 49 4e 46 2c 20 50 43 53 54 52 2c 20 44  , HINF, PCSTR, D
104e0 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  WORD);...BOOL Se
104f0 74 75 70 51 75 65 75 65 43 6f 70 79 53 65 63 74  tupQueueCopySect
10500 69 6f 6e 57 28 48 53 50 46 49 4c 45 51 2c 20 50  ionW(HSPFILEQ, P
10510 43 57 53 54 52 2c 20 48 49 4e 46 2c 20 48 49 4e  CWSTR, HINF, HIN
10520 46 2c 20 50 43 57 53 54 52 2c 20 44 57 4f 52 44  F, PCWSTR, DWORD
10530 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 51  );...BOOL SetupQ
10540 75 65 75 65 44 65 66 61 75 6c 74 43 6f 70 79 41  ueueDefaultCopyA
10550 28 48 53 50 46 49 4c 45 51 2c 20 48 49 4e 46 2c  (HSPFILEQ, HINF,
10560 20 50 43 53 54 52 2c 20 50 43 53 54 52 2c 20 50   PCSTR, PCSTR, P
10570 43 53 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09  CSTR, DWORD);...
10580 42 4f 4f 4c 20 53 65 74 75 70 51 75 65 75 65 44  BOOL SetupQueueD
10590 65 66 61 75 6c 74 43 6f 70 79 57 28 48 53 50 46  efaultCopyW(HSPF
105a0 49 4c 45 51 2c 20 48 49 4e 46 2c 20 50 43 57 53  ILEQ, HINF, PCWS
105b0 54 52 2c 20 50 43 57 53 54 52 2c 20 50 43 57 53  TR, PCWSTR, PCWS
105c0 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f  TR, DWORD);...BO
105d0 4f 4c 20 53 65 74 75 70 51 75 65 75 65 44 65 6c  OL SetupQueueDel
105e0 65 74 65 41 28 48 53 50 46 49 4c 45 51 2c 20 50  eteA(HSPFILEQ, P
105f0 43 53 54 52 2c 20 50 43 53 54 52 29 3b 0d 0a 09  CSTR, PCSTR);...
10600 42 4f 4f 4c 20 53 65 74 75 70 51 75 65 75 65 44  BOOL SetupQueueD
10610 65 6c 65 74 65 57 28 48 53 50 46 49 4c 45 51 2c  eleteW(HSPFILEQ,
10620 20 50 43 57 53 54 52 2c 20 50 43 57 53 54 52 29   PCWSTR, PCWSTR)
10630 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 51 75  ;...BOOL SetupQu
10640 65 75 65 44 65 6c 65 74 65 53 65 63 74 69 6f 6e  eueDeleteSection
10650 41 28 48 53 50 46 49 4c 45 51 2c 20 48 49 4e 46  A(HSPFILEQ, HINF
10660 2c 20 48 49 4e 46 2c 20 50 43 53 54 52 29 3b 0d  , HINF, PCSTR);.
10670 0a 09 42 4f 4f 4c 20 53 65 74 75 70 51 75 65 75  ..BOOL SetupQueu
10680 65 44 65 6c 65 74 65 53 65 63 74 69 6f 6e 57 28  eDeleteSectionW(
10690 48 53 50 46 49 4c 45 51 2c 20 48 49 4e 46 2c 20  HSPFILEQ, HINF, 
106a0 48 49 4e 46 2c 20 50 43 57 53 54 52 29 3b 0d 0a  HINF, PCWSTR);..
106b0 09 42 4f 4f 4c 20 53 65 74 75 70 51 75 65 75 65  .BOOL SetupQueue
106c0 52 65 6e 61 6d 65 41 28 48 53 50 46 49 4c 45 51  RenameA(HSPFILEQ
106d0 2c 20 50 43 53 54 52 2c 20 50 43 53 54 52 2c 20  , PCSTR, PCSTR, 
106e0 50 43 53 54 52 2c 20 50 43 53 54 52 29 3b 0d 0a  PCSTR, PCSTR);..
106f0 09 42 4f 4f 4c 20 53 65 74 75 70 51 75 65 75 65  .BOOL SetupQueue
10700 52 65 6e 61 6d 65 57 28 48 53 50 46 49 4c 45 51  RenameW(HSPFILEQ
10710 2c 20 50 43 57 53 54 52 2c 20 50 43 57 53 54 52  , PCWSTR, PCWSTR
10720 2c 20 50 43 57 53 54 52 2c 20 50 43 57 53 54 52  , PCWSTR, PCWSTR
10730 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 51  );...BOOL SetupQ
10740 75 65 75 65 52 65 6e 61 6d 65 53 65 63 74 69 6f  ueueRenameSectio
10750 6e 41 28 48 53 50 46 49 4c 45 51 2c 20 48 49 4e  nA(HSPFILEQ, HIN
10760 46 2c 20 48 49 4e 46 2c 20 50 43 53 54 52 29 3b  F, HINF, PCSTR);
10770 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 51 75 65  ...BOOL SetupQue
10780 75 65 52 65 6e 61 6d 65 53 65 63 74 69 6f 6e 57  ueRenameSectionW
10790 28 48 53 50 46 49 4c 45 51 2c 20 48 49 4e 46 2c  (HSPFILEQ, HINF,
107a0 20 48 49 4e 46 2c 20 50 43 57 53 54 52 29 3b 0d   HINF, PCWSTR);.
107b0 0a 09 42 4f 4f 4c 20 53 65 74 75 70 52 65 6d 6f  ..BOOL SetupRemo
107c0 76 65 46 69 6c 65 4c 6f 67 45 6e 74 72 79 41 28  veFileLogEntryA(
107d0 48 53 50 46 49 4c 45 4c 4f 47 2c 20 50 43 53 54  HSPFILELOG, PCST
107e0 52 2c 20 50 43 53 54 52 29 3b 0d 0a 09 42 4f 4f  R, PCSTR);...BOO
107f0 4c 20 53 65 74 75 70 52 65 6d 6f 76 65 46 69 6c  L SetupRemoveFil
10800 65 4c 6f 67 45 6e 74 72 79 57 28 48 53 50 46 49  eLogEntryW(HSPFI
10810 4c 45 4c 4f 47 2c 20 50 43 57 53 54 52 2c 20 50  LELOG, PCWSTR, P
10820 43 57 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c 20 53  CWSTR);...BOOL S
10830 65 74 75 70 52 65 6d 6f 76 65 46 72 6f 6d 44 69  etupRemoveFromDi
10840 73 6b 53 70 61 63 65 4c 69 73 74 41 28 48 44 53  skSpaceListA(HDS
10850 4b 53 50 43 2c 20 50 43 53 54 52 2c 20 55 49 4e  KSPC, PCSTR, UIN
10860 54 2c 20 50 56 4f 49 44 2c 20 55 49 4e 54 29 3b  T, PVOID, UINT);
10870 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 52 65 6d  ...BOOL SetupRem
10880 6f 76 65 46 72 6f 6d 44 69 73 6b 53 70 61 63 65  oveFromDiskSpace
10890 4c 69 73 74 57 28 48 44 53 4b 53 50 43 2c 20 50  ListW(HDSKSPC, P
108a0 43 57 53 54 52 2c 20 55 49 4e 54 2c 20 50 56 4f  CWSTR, UINT, PVO
108b0 49 44 2c 20 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f  ID, UINT);...BOO
108c0 4c 20 53 65 74 75 70 52 65 6d 6f 76 65 46 72 6f  L SetupRemoveFro
108d0 6d 53 6f 75 72 63 65 4c 69 73 74 41 28 44 57 4f  mSourceListA(DWO
108e0 52 44 2c 20 50 43 53 54 52 29 3b 0d 0a 09 42 4f  RD, PCSTR);...BO
108f0 4f 4c 20 53 65 74 75 70 52 65 6d 6f 76 65 46 72  OL SetupRemoveFr
10900 6f 6d 53 6f 75 72 63 65 4c 69 73 74 57 28 44 57  omSourceListW(DW
10910 4f 52 44 2c 20 50 43 57 53 54 52 29 3b 0d 0a 09  ORD, PCWSTR);...
10920 42 4f 4f 4c 20 53 65 74 75 70 52 65 6d 6f 76 65  BOOL SetupRemove
10930 49 6e 73 74 61 6c 6c 53 65 63 74 69 6f 6e 46 72  InstallSectionFr
10940 6f 6d 44 69 73 6b 53 70 61 63 65 4c 69 73 74 41  omDiskSpaceListA
10950 28 48 44 53 4b 53 50 43 2c 20 48 49 4e 46 2c 20  (HDSKSPC, HINF, 
10960 48 49 4e 46 2c 20 50 43 53 54 52 2c 20 50 56 4f  HINF, PCSTR, PVO
10970 49 44 2c 20 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f  ID, UINT);...BOO
10980 4c 20 53 65 74 75 70 52 65 6d 6f 76 65 49 6e 73  L SetupRemoveIns
10990 74 61 6c 6c 53 65 63 74 69 6f 6e 46 72 6f 6d 44  tallSectionFromD
109a0 69 73 6b 53 70 61 63 65 4c 69 73 74 57 28 48 44  iskSpaceListW(HD
109b0 53 4b 53 50 43 2c 20 48 49 4e 46 2c 20 48 49 4e  SKSPC, HINF, HIN
109c0 46 2c 20 50 43 57 53 54 52 2c 20 50 56 4f 49 44  F, PCWSTR, PVOID
109d0 2c 20 55 49 4e 54 29 3b 0d 0a 09 42 4f 4f 4c 20  , UINT);...BOOL 
109e0 53 65 74 75 70 52 65 6d 6f 76 65 53 65 63 74 69  SetupRemoveSecti
109f0 6f 6e 46 72 6f 6d 44 69 73 6b 53 70 61 63 65 4c  onFromDiskSpaceL
10a00 69 73 74 41 28 48 44 53 4b 53 50 43 2c 20 48 49  istA(HDSKSPC, HI
10a10 4e 46 2c 20 48 49 4e 46 2c 20 50 43 53 54 52 2c  NF, HINF, PCSTR,
10a20 20 55 49 4e 54 2c 20 50 56 4f 49 44 2c 20 55 49   UINT, PVOID, UI
10a30 4e 54 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75  NT);...BOOL Setu
10a40 70 52 65 6d 6f 76 65 53 65 63 74 69 6f 6e 46 72  pRemoveSectionFr
10a50 6f 6d 44 69 73 6b 53 70 61 63 65 4c 69 73 74 57  omDiskSpaceListW
10a60 28 48 44 53 4b 53 50 43 2c 20 48 49 4e 46 2c 20  (HDSKSPC, HINF, 
10a70 48 49 4e 46 2c 20 50 43 57 53 54 52 2c 20 55 49  HINF, PCWSTR, UI
10a80 4e 54 2c 20 50 56 4f 49 44 2c 20 55 49 4e 54 29  NT, PVOID, UINT)
10a90 3b 0d 0a 09 55 49 4e 54 20 53 65 74 75 70 52 65  ;...UINT SetupRe
10aa0 6e 61 6d 65 45 72 72 6f 72 41 28 48 57 4e 44 2c  nameErrorA(HWND,
10ab0 20 50 43 53 54 52 2c 20 50 43 53 54 52 2c 20 50   PCSTR, PCSTR, P
10ac0 43 53 54 52 2c 20 55 49 4e 54 2c 20 44 57 4f 52  CSTR, UINT, DWOR
10ad0 44 29 3b 0d 0a 09 55 49 4e 54 20 53 65 74 75 70  D);...UINT Setup
10ae0 52 65 6e 61 6d 65 45 72 72 6f 72 57 28 48 57 4e  RenameErrorW(HWN
10af0 44 2c 20 50 43 57 53 54 52 2c 20 50 43 57 53 54  D, PCWSTR, PCWST
10b00 52 2c 20 50 43 57 53 54 52 2c 20 55 49 4e 54 2c  R, PCWSTR, UINT,
10b10 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20   DWORD);...BOOL 
10b20 53 65 74 75 70 53 63 61 6e 46 69 6c 65 51 75 65  SetupScanFileQue
10b30 75 65 41 28 48 53 50 46 49 4c 45 51 2c 20 44 57  ueA(HSPFILEQ, DW
10b40 4f 52 44 2c 20 48 57 4e 44 2c 20 50 53 50 5f 46  ORD, HWND, PSP_F
10b50 49 4c 45 5f 43 41 4c 4c 42 41 43 4b 5f 41 2c 20  ILE_CALLBACK_A, 
10b60 50 56 4f 49 44 2c 20 50 44 57 4f 52 44 29 3b 0d  PVOID, PDWORD);.
10b70 0a 09 42 4f 4f 4c 20 53 65 74 75 70 53 63 61 6e  ..BOOL SetupScan
10b80 46 69 6c 65 51 75 65 75 65 57 28 48 53 50 46 49  FileQueueW(HSPFI
10b90 4c 45 51 2c 20 44 57 4f 52 44 2c 20 48 57 4e 44  LEQ, DWORD, HWND
10ba0 2c 20 50 53 50 5f 46 49 4c 45 5f 43 41 4c 4c 42  , PSP_FILE_CALLB
10bb0 41 43 4b 5f 57 2c 20 50 56 4f 49 44 2c 20 50 44  ACK_W, PVOID, PD
10bc0 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65  WORD);...BOOL Se
10bd0 74 75 70 53 65 74 44 69 72 65 63 74 6f 72 79 49  tupSetDirectoryI
10be0 64 41 28 48 49 4e 46 2c 20 44 57 4f 52 44 2c 20  dA(HINF, DWORD, 
10bf0 50 43 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c 20 53  PCSTR);...BOOL S
10c00 65 74 75 70 53 65 74 44 69 72 65 63 74 6f 72 79  etupSetDirectory
10c10 49 64 57 28 48 49 4e 46 2c 20 44 57 4f 52 44 2c  IdW(HINF, DWORD,
10c20 20 50 43 57 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c   PCWSTR);...BOOL
10c30 20 53 65 74 75 70 53 65 74 44 69 72 65 63 74 6f   SetupSetDirecto
10c40 72 79 49 64 45 78 41 28 48 49 4e 46 2c 20 44 57  ryIdExA(HINF, DW
10c50 4f 52 44 2c 20 50 43 53 54 52 2c 20 44 57 4f 52  ORD, PCSTR, DWOR
10c60 44 2c 20 44 57 4f 52 44 2c 20 50 56 4f 49 44 29  D, DWORD, PVOID)
10c70 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 53 65  ;...BOOL SetupSe
10c80 74 44 69 72 65 63 74 6f 72 79 49 64 45 78 57 28  tDirectoryIdExW(
10c90 48 49 4e 46 2c 20 44 57 4f 52 44 2c 20 50 43 57  HINF, DWORD, PCW
10ca0 53 54 52 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52  STR, DWORD, DWOR
10cb0 44 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 42 4f 4f  D, PVOID);...BOO
10cc0 4c 20 53 65 74 75 70 53 65 74 46 69 6c 65 51 75  L SetupSetFileQu
10cd0 65 75 65 41 6c 74 65 72 6e 61 74 65 50 6c 61 74  eueAlternatePlat
10ce0 66 6f 72 6d 41 28 48 53 50 46 49 4c 45 51 2c 20  formA(HSPFILEQ, 
10cf0 50 53 50 5f 41 4c 54 50 4c 41 54 46 4f 52 4d 5f  PSP_ALTPLATFORM_
10d00 49 4e 46 4f 2c 20 50 43 53 54 52 29 3b 0d 0a 09  INFO, PCSTR);...
10d10 42 4f 4f 4c 20 53 65 74 75 70 53 65 74 46 69 6c  BOOL SetupSetFil
10d20 65 51 75 65 75 65 41 6c 74 65 72 6e 61 74 65 50  eQueueAlternateP
10d30 6c 61 74 66 6f 72 6d 57 28 48 53 50 46 49 4c 45  latformW(HSPFILE
10d40 51 2c 20 50 53 50 5f 41 4c 54 50 4c 41 54 46 4f  Q, PSP_ALTPLATFO
10d50 52 4d 5f 49 4e 46 4f 2c 20 50 43 57 53 54 52 29  RM_INFO, PCWSTR)
10d60 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 75 70 53 65  ;...BOOL SetupSe
10d70 74 50 6c 61 74 66 6f 72 6d 50 61 74 68 4f 76 65  tPlatformPathOve
10d80 72 72 69 64 65 41 28 50 43 53 54 52 29 3b 0d 0a  rrideA(PCSTR);..
10d90 09 42 4f 4f 4c 20 53 65 74 75 70 53 65 74 50 6c  .BOOL SetupSetPl
10da0 61 74 66 6f 72 6d 50 61 74 68 4f 76 65 72 72 69  atformPathOverri
10db0 64 65 57 28 50 43 57 53 54 52 29 3b 0d 0a 09 42  deW(PCWSTR);...B
10dc0 4f 4f 4c 20 53 65 74 75 70 53 65 74 53 6f 75 72  OOL SetupSetSour
10dd0 63 65 4c 69 73 74 41 28 44 57 4f 52 44 2c 20 50  ceListA(DWORD, P
10de0 43 53 54 52 2a 2c 20 55 49 4e 54 29 3b 0d 0a 09  CSTR*, UINT);...
10df0 42 4f 4f 4c 20 53 65 74 75 70 53 65 74 53 6f 75  BOOL SetupSetSou
10e00 72 63 65 4c 69 73 74 57 28 44 57 4f 52 44 2c 20  rceListW(DWORD, 
10e10 50 43 57 53 54 52 2a 2c 20 55 49 4e 54 29 3b 0d  PCWSTR*, UINT);.
10e20 0a 09 56 4f 49 44 20 53 65 74 75 70 54 65 72 6d  ..VOID SetupTerm
10e30 44 65 66 61 75 6c 74 51 75 65 75 65 43 61 6c 6c  DefaultQueueCall
10e40 62 61 63 6b 28 50 56 4f 49 44 29 3b 0d 0a 09 42  back(PVOID);...B
10e50 4f 4f 4c 20 53 65 74 75 70 54 65 72 6d 69 6e 61  OOL SetupTermina
10e60 74 65 46 69 6c 65 4c 6f 67 28 48 53 50 46 49 4c  teFileLog(HSPFIL
10e70 45 4c 4f 47 29 3b 0d 0a 7d 0d 0a 0d 0a 64 65 70  ELOG);..}....dep
10e80 72 65 63 61 74 65 64 20 7b 0d 0a 09 61 6c 69 61  recated {...alia
10e90 73 20 53 65 74 75 70 44 69 43 72 65 61 74 65 44  s SetupDiCreateD
10ea0 65 76 69 63 65 49 6e 74 65 72 66 61 63 65 57 20  eviceInterfaceW 
10eb0 53 65 74 75 70 44 69 43 72 65 61 74 65 49 6e 74  SetupDiCreateInt
10ec0 65 72 66 61 63 65 44 65 76 69 63 65 57 3b 0d 0a  erfaceDeviceW;..
10ed0 09 61 6c 69 61 73 20 53 65 74 75 70 44 69 43 72  .alias SetupDiCr
10ee0 65 61 74 65 44 65 76 69 63 65 49 6e 74 65 72 66  eateDeviceInterf
10ef0 61 63 65 52 65 67 4b 65 79 57 20 53 65 74 75 70  aceRegKeyW Setup
10f00 44 69 43 72 65 61 74 65 49 6e 74 65 72 66 61 63  DiCreateInterfac
10f10 65 44 65 76 69 63 65 52 65 67 4b 65 79 57 3b 0d  eDeviceRegKeyW;.
10f20 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44 69 4f  ..alias SetupDiO
10f30 70 65 6e 44 65 76 69 63 65 49 6e 74 65 72 66 61  penDeviceInterfa
10f40 63 65 57 20 53 65 74 75 70 44 69 4f 70 65 6e 49  ceW SetupDiOpenI
10f50 6e 74 65 72 66 61 63 65 44 65 76 69 63 65 57 3b  nterfaceDeviceW;
10f60 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44 69  ...alias SetupDi
10f70 47 65 74 44 65 76 69 63 65 49 6e 74 65 72 66 61  GetDeviceInterfa
10f80 63 65 44 65 74 61 69 6c 57 20 53 65 74 75 70 44  ceDetailW SetupD
10f90 69 47 65 74 49 6e 74 65 72 66 61 63 65 44 65 76  iGetInterfaceDev
10fa0 69 63 65 44 65 74 61 69 6c 57 3b 0d 0a 09 61 6c  iceDetailW;...al
10fb0 69 61 73 20 53 65 74 75 70 44 69 43 72 65 61 74  ias SetupDiCreat
10fc0 65 44 65 76 69 63 65 49 6e 74 65 72 66 61 63 65  eDeviceInterface
10fd0 41 20 53 65 74 75 70 44 69 43 72 65 61 74 65 49  A SetupDiCreateI
10fe0 6e 74 65 72 66 61 63 65 44 65 76 69 63 65 41 3b  nterfaceDeviceA;
10ff0 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44 69  ...alias SetupDi
11000 43 72 65 61 74 65 44 65 76 69 63 65 49 6e 74 65  CreateDeviceInte
11010 72 66 61 63 65 52 65 67 4b 65 79 41 20 53 65 74  rfaceRegKeyA Set
11020 75 70 44 69 43 72 65 61 74 65 49 6e 74 65 72 66  upDiCreateInterf
11030 61 63 65 44 65 76 69 63 65 52 65 67 4b 65 79 41  aceDeviceRegKeyA
11040 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44  ;...alias SetupD
11050 69 4f 70 65 6e 44 65 76 69 63 65 49 6e 74 65 72  iOpenDeviceInter
11060 66 61 63 65 41 20 53 65 74 75 70 44 69 4f 70 65  faceA SetupDiOpe
11070 6e 49 6e 74 65 72 66 61 63 65 44 65 76 69 63 65  nInterfaceDevice
11080 41 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  A;...alias Setup
11090 44 69 47 65 74 44 65 76 69 63 65 49 6e 74 65 72  DiGetDeviceInter
110a0 66 61 63 65 44 65 74 61 69 6c 41 20 53 65 74 75  faceDetailA Setu
110b0 70 44 69 47 65 74 49 6e 74 65 72 66 61 63 65 44  pDiGetInterfaceD
110c0 65 76 69 63 65 44 65 74 61 69 6c 41 3b 0d 0a 7d  eviceDetailA;..}
110d0 0d 0a 0d 0a 76 65 72 73 69 6f 6e 20 28 55 6e 69  ....version (Uni
110e0 63 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61 73 20  code) {...alias 
110f0 50 53 50 5f 46 49 4c 45 5f 43 41 4c 4c 42 41 43  PSP_FILE_CALLBAC
11100 4b 5f 57 20 50 53 50 5f 46 49 4c 45 5f 43 41 4c  K_W PSP_FILE_CAL
11110 4c 42 41 43 4b 3b 0d 0a 09 61 6c 69 61 73 20 53  LBACK;...alias S
11120 65 74 75 70 41 64 64 49 6e 73 74 61 6c 6c 53 65  etupAddInstallSe
11130 63 74 69 6f 6e 54 6f 44 69 73 6b 53 70 61 63 65  ctionToDiskSpace
11140 4c 69 73 74 57 20 53 65 74 75 70 41 64 64 49 6e  ListW SetupAddIn
11150 73 74 61 6c 6c 53 65 63 74 69 6f 6e 54 6f 44 69  stallSectionToDi
11160 73 6b 53 70 61 63 65 4c 69 73 74 3b 0d 0a 09 61  skSpaceList;...a
11170 6c 69 61 73 20 53 65 74 75 70 41 64 64 53 65 63  lias SetupAddSec
11180 74 69 6f 6e 54 6f 44 69 73 6b 53 70 61 63 65 4c  tionToDiskSpaceL
11190 69 73 74 57 20 53 65 74 75 70 41 64 64 53 65 63  istW SetupAddSec
111a0 74 69 6f 6e 54 6f 44 69 73 6b 53 70 61 63 65 4c  tionToDiskSpaceL
111b0 69 73 74 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ist;...alias Set
111c0 75 70 41 64 64 54 6f 44 69 73 6b 53 70 61 63 65  upAddToDiskSpace
111d0 4c 69 73 74 57 20 53 65 74 75 70 41 64 64 54 6f  ListW SetupAddTo
111e0 44 69 73 6b 53 70 61 63 65 4c 69 73 74 3b 0d 0a  DiskSpaceList;..
111f0 09 61 6c 69 61 73 20 53 65 74 75 70 41 64 64 54  .alias SetupAddT
11200 6f 53 6f 75 72 63 65 4c 69 73 74 57 20 53 65 74  oSourceListW Set
11210 75 70 41 64 64 54 6f 53 6f 75 72 63 65 4c 69 73  upAddToSourceLis
11220 74 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  t;...alias Setup
11230 41 64 6a 75 73 74 44 69 73 6b 53 70 61 63 65 4c  AdjustDiskSpaceL
11240 69 73 74 57 20 53 65 74 75 70 41 64 6a 75 73 74  istW SetupAdjust
11250 44 69 73 6b 53 70 61 63 65 4c 69 73 74 3b 0d 0a  DiskSpaceList;..
11260 09 61 6c 69 61 73 20 53 65 74 75 70 42 61 63 6b  .alias SetupBack
11270 75 70 45 72 72 6f 72 57 20 53 65 74 75 70 42 61  upErrorW SetupBa
11280 63 6b 75 70 45 72 72 6f 72 3b 0d 0a 09 61 6c 69  ckupError;...ali
11290 61 73 20 53 65 74 75 70 43 6f 6d 6d 69 74 46 69  as SetupCommitFi
112a0 6c 65 51 75 65 75 65 57 20 53 65 74 75 70 43 6f  leQueueW SetupCo
112b0 6d 6d 69 74 46 69 6c 65 51 75 65 75 65 3b 0d 0a  mmitFileQueue;..
112c0 09 61 6c 69 61 73 20 53 65 74 75 70 43 6f 70 79  .alias SetupCopy
112d0 45 72 72 6f 72 57 20 53 65 74 75 70 43 6f 70 79  ErrorW SetupCopy
112e0 45 72 72 6f 72 3b 0d 0a 09 61 6c 69 61 73 20 53  Error;...alias S
112f0 65 74 75 70 43 6f 70 79 4f 45 4d 49 6e 66 57 20  etupCopyOEMInfW 
11300 53 65 74 75 70 43 6f 70 79 4f 45 4d 49 6e 66 3b  SetupCopyOEMInf;
11310 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 43 72  ...alias SetupCr
11320 65 61 74 65 44 69 73 6b 53 70 61 63 65 4c 69 73  eateDiskSpaceLis
11330 74 57 20 53 65 74 75 70 43 72 65 61 74 65 44 69  tW SetupCreateDi
11340 73 6b 53 70 61 63 65 4c 69 73 74 3b 0d 0a 09 61  skSpaceList;...a
11350 6c 69 61 73 20 53 65 74 75 70 44 65 63 6f 6d 70  lias SetupDecomp
11360 72 65 73 73 4f 72 43 6f 70 79 46 69 6c 65 57 20  ressOrCopyFileW 
11370 53 65 74 75 70 44 65 63 6f 6d 70 72 65 73 73 4f  SetupDecompressO
11380 72 43 6f 70 79 46 69 6c 65 3b 0d 0a 09 61 6c 69  rCopyFile;...ali
11390 61 73 20 53 65 74 75 70 44 65 66 61 75 6c 74 51  as SetupDefaultQ
113a0 75 65 75 65 43 61 6c 6c 62 61 63 6b 57 20 53 65  ueueCallbackW Se
113b0 74 75 70 44 65 66 61 75 6c 74 51 75 65 75 65 43  tupDefaultQueueC
113c0 61 6c 6c 62 61 63 6b 3b 0d 0a 09 61 6c 69 61 73  allback;...alias
113d0 20 53 65 74 75 70 44 65 6c 65 74 65 45 72 72 6f   SetupDeleteErro
113e0 72 57 20 53 65 74 75 70 44 65 6c 65 74 65 45 72  rW SetupDeleteEr
113f0 72 6f 72 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ror;...alias Set
11400 75 70 44 69 42 75 69 6c 64 43 6c 61 73 73 49 6e  upDiBuildClassIn
11410 66 6f 4c 69 73 74 45 78 57 20 53 65 74 75 70 44  foListExW SetupD
11420 69 42 75 69 6c 64 43 6c 61 73 73 49 6e 66 6f 4c  iBuildClassInfoL
11430 69 73 74 45 78 3b 0d 0a 09 61 6c 69 61 73 20 53  istEx;...alias S
11440 65 74 75 70 44 69 43 6c 61 73 73 47 75 69 64 73  etupDiClassGuids
11450 46 72 6f 6d 4e 61 6d 65 45 78 57 20 53 65 74 75  FromNameExW Setu
11460 70 44 69 43 6c 61 73 73 47 75 69 64 73 46 72 6f  pDiClassGuidsFro
11470 6d 4e 61 6d 65 45 78 3b 0d 0a 09 61 6c 69 61 73  mNameEx;...alias
11480 20 53 65 74 75 70 44 69 43 6c 61 73 73 47 75 69   SetupDiClassGui
11490 64 73 46 72 6f 6d 4e 61 6d 65 57 20 53 65 74 75  dsFromNameW Setu
114a0 70 44 69 43 6c 61 73 73 47 75 69 64 73 46 72 6f  pDiClassGuidsFro
114b0 6d 4e 61 6d 65 3b 0d 0a 09 61 6c 69 61 73 20 53  mName;...alias S
114c0 65 74 75 70 44 69 43 6c 61 73 73 4e 61 6d 65 46  etupDiClassNameF
114d0 72 6f 6d 47 75 69 64 45 78 57 20 53 65 74 75 70  romGuidExW Setup
114e0 44 69 43 6c 61 73 73 4e 61 6d 65 46 72 6f 6d 47  DiClassNameFromG
114f0 75 69 64 45 78 3b 0d 0a 09 61 6c 69 61 73 20 53  uidEx;...alias S
11500 65 74 75 70 44 69 43 6c 61 73 73 4e 61 6d 65 46  etupDiClassNameF
11510 72 6f 6d 47 75 69 64 57 20 53 65 74 75 70 44 69  romGuidW SetupDi
11520 43 6c 61 73 73 4e 61 6d 65 46 72 6f 6d 47 75 69  ClassNameFromGui
11530 64 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  d;...alias Setup
11540 44 69 43 72 65 61 74 65 44 65 76 69 63 65 49 6e  DiCreateDeviceIn
11550 66 6f 4c 69 73 74 45 78 57 20 53 65 74 75 70 44  foListExW SetupD
11560 69 43 72 65 61 74 65 44 65 76 69 63 65 49 6e 66  iCreateDeviceInf
11570 6f 4c 69 73 74 45 78 3b 0d 0a 09 61 6c 69 61 73  oListEx;...alias
11580 20 53 65 74 75 70 44 69 43 72 65 61 74 65 44 65   SetupDiCreateDe
11590 76 69 63 65 49 6e 66 6f 57 20 53 65 74 75 70 44  viceInfoW SetupD
115a0 69 43 72 65 61 74 65 44 65 76 69 63 65 49 6e 66  iCreateDeviceInf
115b0 6f 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  o;...alias Setup
115c0 44 69 43 72 65 61 74 65 44 65 76 69 63 65 49 6e  DiCreateDeviceIn
115d0 74 65 72 66 61 63 65 52 65 67 4b 65 79 57 20 53  terfaceRegKeyW S
115e0 65 74 75 70 44 69 43 72 65 61 74 65 44 65 76 69  etupDiCreateDevi
115f0 63 65 49 6e 74 65 72 66 61 63 65 52 65 67 4b 65  ceInterfaceRegKe
11600 79 3b 0d 0a 09 64 65 70 72 65 63 61 74 65 64 20  y;...deprecated 
11610 61 6c 69 61 73 20 53 65 74 75 70 44 69 43 72 65  alias SetupDiCre
11620 61 74 65 44 65 76 69 63 65 49 6e 74 65 72 66 61  ateDeviceInterfa
11630 63 65 52 65 67 4b 65 79 57 20 53 65 74 75 70 44  ceRegKeyW SetupD
11640 69 43 72 65 61 74 65 49 6e 74 65 72 66 61 63 65  iCreateInterface
11650 44 65 76 69 63 65 52 65 67 4b 65 79 3b 0d 0a 09  DeviceRegKey;...
11660 61 6c 69 61 73 20 53 65 74 75 70 44 69 43 72 65  alias SetupDiCre
11670 61 74 65 44 65 76 69 63 65 49 6e 74 65 72 66 61  ateDeviceInterfa
11680 63 65 57 20 53 65 74 75 70 44 69 43 72 65 61 74  ceW SetupDiCreat
11690 65 44 65 76 69 63 65 49 6e 74 65 72 66 61 63 65  eDeviceInterface
116a0 3b 0d 0a 09 64 65 70 72 65 63 61 74 65 64 20 61  ;...deprecated a
116b0 6c 69 61 73 20 53 65 74 75 70 44 69 43 72 65 61  lias SetupDiCrea
116c0 74 65 44 65 76 69 63 65 49 6e 74 65 72 66 61 63  teDeviceInterfac
116d0 65 57 20 53 65 74 75 70 44 69 43 72 65 61 74 65  eW SetupDiCreate
116e0 49 6e 74 65 72 66 61 63 65 44 65 76 69 63 65 3b  InterfaceDevice;
116f0 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44 69  ...alias SetupDi
11700 43 72 65 61 74 65 44 65 76 52 65 67 4b 65 79 57  CreateDevRegKeyW
11710 20 53 65 74 75 70 44 69 43 72 65 61 74 65 44 65   SetupDiCreateDe
11720 76 52 65 67 4b 65 79 3b 0d 0a 09 61 6c 69 61 73  vRegKey;...alias
11730 20 53 65 74 75 70 44 69 45 6e 75 6d 44 72 69 76   SetupDiEnumDriv
11740 65 72 49 6e 66 6f 57 20 53 65 74 75 70 44 69 45  erInfoW SetupDiE
11750 6e 75 6d 44 72 69 76 65 72 49 6e 66 6f 3b 0d 0a  numDriverInfo;..
11760 09 61 6c 69 61 73 20 53 65 74 75 70 44 69 47 65  .alias SetupDiGe
11770 74 41 63 74 75 61 6c 53 65 63 74 69 6f 6e 54 6f  tActualSectionTo
11780 49 6e 73 74 61 6c 6c 57 20 53 65 74 75 70 44 69  InstallW SetupDi
11790 47 65 74 41 63 74 75 61 6c 53 65 63 74 69 6f 6e  GetActualSection
117a0 54 6f 49 6e 73 74 61 6c 6c 3b 0d 0a 09 61 6c 69  ToInstall;...ali
117b0 61 73 20 53 65 74 75 70 44 69 47 65 74 43 6c 61  as SetupDiGetCla
117c0 73 73 44 65 73 63 72 69 70 74 69 6f 6e 45 78 57  ssDescriptionExW
117d0 20 53 65 74 75 70 44 69 47 65 74 43 6c 61 73 73   SetupDiGetClass
117e0 44 65 73 63 72 69 70 74 69 6f 6e 45 78 3b 0d 0a  DescriptionEx;..
117f0 09 61 6c 69 61 73 20 53 65 74 75 70 44 69 47 65  .alias SetupDiGe
11800 74 43 6c 61 73 73 44 65 73 63 72 69 70 74 69 6f  tClassDescriptio
11810 6e 57 20 53 65 74 75 70 44 69 47 65 74 43 6c 61  nW SetupDiGetCla
11820 73 73 44 65 73 63 72 69 70 74 69 6f 6e 3b 0d 0a  ssDescription;..
11830 09 61 6c 69 61 73 20 53 65 74 75 70 44 69 47 65  .alias SetupDiGe
11840 74 43 6c 61 73 73 44 65 76 50 72 6f 70 65 72 74  tClassDevPropert
11850 79 53 68 65 65 74 73 57 20 53 65 74 75 70 44 69  ySheetsW SetupDi
11860 47 65 74 43 6c 61 73 73 44 65 76 50 72 6f 70 65  GetClassDevPrope
11870 72 74 79 53 68 65 65 74 73 3b 0d 0a 09 61 6c 69  rtySheets;...ali
11880 61 73 20 53 65 74 75 70 44 69 47 65 74 43 6c 61  as SetupDiGetCla
11890 73 73 44 65 76 73 45 78 57 20 53 65 74 75 70 44  ssDevsExW SetupD
118a0 69 47 65 74 43 6c 61 73 73 44 65 76 73 45 78 3b  iGetClassDevsEx;
118b0 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44 69  ...alias SetupDi
118c0 47 65 74 43 6c 61 73 73 44 65 76 73 57 20 53 65  GetClassDevsW Se
118d0 74 75 70 44 69 47 65 74 43 6c 61 73 73 44 65 76  tupDiGetClassDev
118e0 73 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  s;...alias Setup
118f0 44 69 47 65 74 43 6c 61 73 73 49 6d 61 67 65 4c  DiGetClassImageL
11900 69 73 74 45 78 57 20 53 65 74 75 70 44 69 47 65  istExW SetupDiGe
11910 74 43 6c 61 73 73 49 6d 61 67 65 4c 69 73 74 45  tClassImageListE
11920 78 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  x;...alias Setup
11930 44 69 47 65 74 43 6c 61 73 73 49 6e 73 74 61 6c  DiGetClassInstal
11940 6c 50 61 72 61 6d 73 57 20 53 65 74 75 70 44 69  lParamsW SetupDi
11950 47 65 74 43 6c 61 73 73 49 6e 73 74 61 6c 6c 50  GetClassInstallP
11960 61 72 61 6d 73 3b 0d 0a 09 61 6c 69 61 73 20 53  arams;...alias S
11970 65 74 75 70 44 69 47 65 74 43 6c 61 73 73 52 65  etupDiGetClassRe
11980 67 69 73 74 72 79 50 72 6f 70 65 72 74 79 57 20  gistryPropertyW 
11990 53 65 74 75 70 44 69 47 65 74 43 6c 61 73 73 52  SetupDiGetClassR
119a0 65 67 69 73 74 72 79 50 72 6f 70 65 72 74 79 3b  egistryProperty;
119b0 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44 69  ...alias SetupDi
119c0 47 65 74 44 65 76 69 63 65 49 6e 66 6f 4c 69 73  GetDeviceInfoLis
119d0 74 44 65 74 61 69 6c 57 20 53 65 74 75 70 44 69  tDetailW SetupDi
119e0 47 65 74 44 65 76 69 63 65 49 6e 66 6f 4c 69 73  GetDeviceInfoLis
119f0 74 44 65 74 61 69 6c 3b 0d 0a 09 61 6c 69 61 73  tDetail;...alias
11a00 20 53 65 74 75 70 44 69 47 65 74 44 65 76 69 63   SetupDiGetDevic
11a10 65 49 6e 73 74 61 6c 6c 50 61 72 61 6d 73 57 20  eInstallParamsW 
11a20 53 65 74 75 70 44 69 47 65 74 44 65 76 69 63 65  SetupDiGetDevice
11a30 49 6e 73 74 61 6c 6c 50 61 72 61 6d 73 3b 0d 0a  InstallParams;..
11a40 09 61 6c 69 61 73 20 53 65 74 75 70 44 69 47 65  .alias SetupDiGe
11a50 74 44 65 76 69 63 65 49 6e 73 74 61 6e 63 65 49  tDeviceInstanceI
11a60 64 57 20 53 65 74 75 70 44 69 47 65 74 44 65 76  dW SetupDiGetDev
11a70 69 63 65 49 6e 73 74 61 6e 63 65 49 64 3b 0d 0a  iceInstanceId;..
11a80 09 61 6c 69 61 73 20 53 65 74 75 70 44 69 47 65  .alias SetupDiGe
11a90 74 44 65 76 69 63 65 49 6e 74 65 72 66 61 63 65  tDeviceInterface
11aa0 44 65 74 61 69 6c 57 20 53 65 74 75 70 44 69 47  DetailW SetupDiG
11ab0 65 74 44 65 76 69 63 65 49 6e 74 65 72 66 61 63  etDeviceInterfac
11ac0 65 44 65 74 61 69 6c 3b 0d 0a 09 64 65 70 72 65  eDetail;...depre
11ad0 63 61 74 65 64 20 61 6c 69 61 73 20 53 65 74 75  cated alias Setu
11ae0 70 44 69 47 65 74 44 65 76 69 63 65 49 6e 74 65  pDiGetDeviceInte
11af0 72 66 61 63 65 44 65 74 61 69 6c 57 20 53 65 74  rfaceDetailW Set
11b00 75 70 44 69 47 65 74 49 6e 74 65 72 66 61 63 65  upDiGetInterface
11b10 44 65 76 69 63 65 44 65 74 61 69 6c 3b 0d 0a 09  DeviceDetail;...
11b20 61 6c 69 61 73 20 53 65 74 75 70 44 69 47 65 74  alias SetupDiGet
11b30 44 65 76 69 63 65 52 65 67 69 73 74 72 79 50 72  DeviceRegistryPr
11b40 6f 70 65 72 74 79 57 20 53 65 74 75 70 44 69 47  opertyW SetupDiG
11b50 65 74 44 65 76 69 63 65 52 65 67 69 73 74 72 79  etDeviceRegistry
11b60 50 72 6f 70 65 72 74 79 3b 0d 0a 09 61 6c 69 61  Property;...alia
11b70 73 20 53 65 74 75 70 44 69 47 65 74 44 72 69 76  s SetupDiGetDriv
11b80 65 72 49 6e 66 6f 44 65 74 61 69 6c 57 20 53 65  erInfoDetailW Se
11b90 74 75 70 44 69 47 65 74 44 72 69 76 65 72 49 6e  tupDiGetDriverIn
11ba0 66 6f 44 65 74 61 69 6c 3b 0d 0a 09 61 6c 69 61  foDetail;...alia
11bb0 73 20 53 65 74 75 70 44 69 47 65 74 44 72 69 76  s SetupDiGetDriv
11bc0 65 72 49 6e 73 74 61 6c 6c 50 61 72 61 6d 73 57  erInstallParamsW
11bd0 20 53 65 74 75 70 44 69 47 65 74 44 72 69 76 65   SetupDiGetDrive
11be0 72 49 6e 73 74 61 6c 6c 50 61 72 61 6d 73 3b 0d  rInstallParams;.
11bf0 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44 69 47  ..alias SetupDiG
11c00 65 74 48 77 50 72 6f 66 69 6c 65 46 72 69 65 6e  etHwProfileFrien
11c10 64 6c 79 4e 61 6d 65 45 78 57 20 53 65 74 75 70  dlyNameExW Setup
11c20 44 69 47 65 74 48 77 50 72 6f 66 69 6c 65 46 72  DiGetHwProfileFr
11c30 69 65 6e 64 6c 79 4e 61 6d 65 45 78 3b 0d 0a 09  iendlyNameEx;...
11c40 61 6c 69 61 73 20 53 65 74 75 70 44 69 47 65 74  alias SetupDiGet
11c50 48 77 50 72 6f 66 69 6c 65 46 72 69 65 6e 64 6c  HwProfileFriendl
11c60 79 4e 61 6d 65 57 20 53 65 74 75 70 44 69 47 65  yNameW SetupDiGe
11c70 74 48 77 50 72 6f 66 69 6c 65 46 72 69 65 6e 64  tHwProfileFriend
11c80 6c 79 4e 61 6d 65 3b 0d 0a 09 61 6c 69 61 73 20  lyName;...alias 
11c90 53 65 74 75 70 44 69 47 65 74 48 77 50 72 6f 66  SetupDiGetHwProf
11ca0 69 6c 65 4c 69 73 74 45 78 57 20 53 65 74 75 70  ileListExW Setup
11cb0 44 69 47 65 74 48 77 50 72 6f 66 69 6c 65 4c 69  DiGetHwProfileLi
11cc0 73 74 45 78 3b 0d 0a 09 61 6c 69 61 73 20 53 65  stEx;...alias Se
11cd0 74 75 70 44 69 47 65 74 49 4e 46 43 6c 61 73 73  tupDiGetINFClass
11ce0 57 20 53 65 74 75 70 44 69 47 65 74 49 4e 46 43  W SetupDiGetINFC
11cf0 6c 61 73 73 3b 0d 0a 09 61 6c 69 61 73 20 53 65  lass;...alias Se
11d00 74 75 70 44 69 47 65 74 53 65 6c 65 63 74 65 64  tupDiGetSelected
11d10 44 72 69 76 65 72 57 20 53 65 74 75 70 44 69 47  DriverW SetupDiG
11d20 65 74 53 65 6c 65 63 74 65 64 44 72 69 76 65 72  etSelectedDriver
11d30 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44  ;...alias SetupD
11d40 69 49 6e 73 74 61 6c 6c 43 6c 61 73 73 45 78 57  iInstallClassExW
11d50 20 53 65 74 75 70 44 69 49 6e 73 74 61 6c 6c 43   SetupDiInstallC
11d60 6c 61 73 73 45 78 3b 0d 0a 09 61 6c 69 61 73 20  lassEx;...alias 
11d70 53 65 74 75 70 44 69 49 6e 73 74 61 6c 6c 43 6c  SetupDiInstallCl
11d80 61 73 73 57 20 53 65 74 75 70 44 69 49 6e 73 74  assW SetupDiInst
11d90 61 6c 6c 43 6c 61 73 73 3b 0d 0a 09 61 6c 69 61  allClass;...alia
11da0 73 20 53 65 74 75 70 44 69 4f 70 65 6e 43 6c 61  s SetupDiOpenCla
11db0 73 73 52 65 67 4b 65 79 45 78 57 20 53 65 74 75  ssRegKeyExW Setu
11dc0 70 44 69 4f 70 65 6e 43 6c 61 73 73 52 65 67 4b  pDiOpenClassRegK
11dd0 65 79 45 78 3b 0d 0a 09 61 6c 69 61 73 20 53 65  eyEx;...alias Se
11de0 74 75 70 44 69 4f 70 65 6e 44 65 76 69 63 65 49  tupDiOpenDeviceI
11df0 6e 66 6f 57 20 53 65 74 75 70 44 69 4f 70 65 6e  nfoW SetupDiOpen
11e00 44 65 76 69 63 65 49 6e 66 6f 3b 0d 0a 09 61 6c  DeviceInfo;...al
11e10 69 61 73 20 53 65 74 75 70 44 69 4f 70 65 6e 44  ias SetupDiOpenD
11e20 65 76 69 63 65 49 6e 74 65 72 66 61 63 65 57 20  eviceInterfaceW 
11e30 53 65 74 75 70 44 69 4f 70 65 6e 44 65 76 69 63  SetupDiOpenDevic
11e40 65 49 6e 74 65 72 66 61 63 65 3b 0d 0a 09 64 65  eInterface;...de
11e50 70 72 65 63 61 74 65 64 20 61 6c 69 61 73 20 53  precated alias S
11e60 65 74 75 70 44 69 4f 70 65 6e 44 65 76 69 63 65  etupDiOpenDevice
11e70 49 6e 74 65 72 66 61 63 65 57 20 53 65 74 75 70  InterfaceW Setup
11e80 44 69 4f 70 65 6e 49 6e 74 65 72 66 61 63 65 44  DiOpenInterfaceD
11e90 65 76 69 63 65 3b 0d 0a 09 61 6c 69 61 73 20 53  evice;...alias S
11ea0 65 74 75 70 44 69 53 65 74 43 6c 61 73 73 49 6e  etupDiSetClassIn
11eb0 73 74 61 6c 6c 50 61 72 61 6d 73 57 20 53 65 74  stallParamsW Set
11ec0 75 70 44 69 53 65 74 43 6c 61 73 73 49 6e 73 74  upDiSetClassInst
11ed0 61 6c 6c 50 61 72 61 6d 73 3b 0d 0a 09 61 6c 69  allParams;...ali
11ee0 61 73 20 53 65 74 75 70 44 69 53 65 74 43 6c 61  as SetupDiSetCla
11ef0 73 73 52 65 67 69 73 74 72 79 50 72 6f 70 65 72  ssRegistryProper
11f00 74 79 57 20 53 65 74 75 70 44 69 53 65 74 43 6c  tyW SetupDiSetCl
11f10 61 73 73 52 65 67 69 73 74 72 79 50 72 6f 70 65  assRegistryPrope
11f20 72 74 79 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  rty;...alias Set
11f30 75 70 44 69 53 65 74 44 65 76 69 63 65 49 6e 73  upDiSetDeviceIns
11f40 74 61 6c 6c 50 61 72 61 6d 73 57 20 53 65 74 75  tallParamsW Setu
11f50 70 44 69 53 65 74 44 65 76 69 63 65 49 6e 73 74  pDiSetDeviceInst
11f60 61 6c 6c 50 61 72 61 6d 73 3b 0d 0a 09 61 6c 69  allParams;...ali
11f70 61 73 20 53 65 74 75 70 44 69 53 65 74 44 65 76  as SetupDiSetDev
11f80 69 63 65 52 65 67 69 73 74 72 79 50 72 6f 70 65  iceRegistryPrope
11f90 72 74 79 57 20 53 65 74 75 70 44 69 53 65 74 44  rtyW SetupDiSetD
11fa0 65 76 69 63 65 52 65 67 69 73 74 72 79 50 72 6f  eviceRegistryPro
11fb0 70 65 72 74 79 3b 0d 0a 09 61 6c 69 61 73 20 53  perty;...alias S
11fc0 65 74 75 70 44 69 53 65 74 44 72 69 76 65 72 49  etupDiSetDriverI
11fd0 6e 73 74 61 6c 6c 50 61 72 61 6d 73 57 20 53 65  nstallParamsW Se
11fe0 74 75 70 44 69 53 65 74 44 72 69 76 65 72 49 6e  tupDiSetDriverIn
11ff0 73 74 61 6c 6c 50 61 72 61 6d 73 3b 0d 0a 09 61  stallParams;...a
12000 6c 69 61 73 20 53 65 74 75 70 44 69 53 65 74 53  lias SetupDiSetS
12010 65 6c 65 63 74 65 64 44 72 69 76 65 72 57 20 53  electedDriverW S
12020 65 74 75 70 44 69 53 65 74 53 65 6c 65 63 74 65  etupDiSetSelecte
12030 64 44 72 69 76 65 72 3b 0d 0a 09 61 6c 69 61 73  dDriver;...alias
12040 20 53 65 74 75 70 44 75 70 6c 69 63 61 74 65 44   SetupDuplicateD
12050 69 73 6b 53 70 61 63 65 4c 69 73 74 57 20 53 65  iskSpaceListW Se
12060 74 75 70 44 75 70 6c 69 63 61 74 65 44 69 73 6b  tupDuplicateDisk
12070 53 70 61 63 65 4c 69 73 74 3b 0d 0a 09 61 6c 69  SpaceList;...ali
12080 61 73 20 53 65 74 75 70 46 69 6e 64 46 69 72 73  as SetupFindFirs
12090 74 4c 69 6e 65 57 20 53 65 74 75 70 46 69 6e 64  tLineW SetupFind
120a0 46 69 72 73 74 4c 69 6e 65 3b 0d 0a 09 61 6c 69  FirstLine;...ali
120b0 61 73 20 53 65 74 75 70 46 69 6e 64 4e 65 78 74  as SetupFindNext
120c0 4d 61 74 63 68 4c 69 6e 65 57 20 53 65 74 75 70  MatchLineW Setup
120d0 46 69 6e 64 4e 65 78 74 4d 61 74 63 68 4c 69 6e  FindNextMatchLin
120e0 65 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  e;...alias Setup
120f0 46 72 65 65 53 6f 75 72 63 65 4c 69 73 74 57 20  FreeSourceListW 
12100 53 65 74 75 70 46 72 65 65 53 6f 75 72 63 65 4c  SetupFreeSourceL
12110 69 73 74 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ist;...alias Set
12120 75 70 47 65 74 42 61 63 6b 75 70 49 6e 66 6f 72  upGetBackupInfor
12130 6d 61 74 69 6f 6e 57 20 53 65 74 75 70 47 65 74  mationW SetupGet
12140 42 61 63 6b 75 70 49 6e 66 6f 72 6d 61 74 69 6f  BackupInformatio
12150 6e 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  n;...alias Setup
12160 47 65 74 46 69 6c 65 43 6f 6d 70 72 65 73 73 69  GetFileCompressi
12170 6f 6e 49 6e 66 6f 57 20 53 65 74 75 70 47 65 74  onInfoW SetupGet
12180 46 69 6c 65 43 6f 6d 70 72 65 73 73 69 6f 6e 49  FileCompressionI
12190 6e 66 6f 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  nfo;...alias Set
121a0 75 70 47 65 74 49 6e 66 46 69 6c 65 4c 69 73 74  upGetInfFileList
121b0 57 20 53 65 74 75 70 47 65 74 49 6e 66 46 69 6c  W SetupGetInfFil
121c0 65 4c 69 73 74 3b 0d 0a 09 61 6c 69 61 73 20 53  eList;...alias S
121d0 65 74 75 70 47 65 74 49 6e 66 49 6e 66 6f 72 6d  etupGetInfInform
121e0 61 74 69 6f 6e 57 20 53 65 74 75 70 47 65 74 49  ationW SetupGetI
121f0 6e 66 49 6e 66 6f 72 6d 61 74 69 6f 6e 3b 0d 0a  nfInformation;..
12200 09 61 6c 69 61 73 20 53 65 74 75 70 47 65 74 4c  .alias SetupGetL
12210 69 6e 65 42 79 49 6e 64 65 78 57 20 53 65 74 75  ineByIndexW Setu
12220 70 47 65 74 4c 69 6e 65 42 79 49 6e 64 65 78 3b  pGetLineByIndex;
12230 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 47 65  ...alias SetupGe
12240 74 4c 69 6e 65 43 6f 75 6e 74 57 20 53 65 74 75  tLineCountW Setu
12250 70 47 65 74 4c 69 6e 65 43 6f 75 6e 74 3b 0d 0a  pGetLineCount;..
12260 09 61 6c 69 61 73 20 53 65 74 75 70 47 65 74 4c  .alias SetupGetL
12270 69 6e 65 54 65 78 74 57 20 53 65 74 75 70 47 65  ineTextW SetupGe
12280 74 4c 69 6e 65 54 65 78 74 3b 0d 0a 09 61 6c 69  tLineText;...ali
12290 61 73 20 53 65 74 75 70 47 65 74 4d 75 6c 74 69  as SetupGetMulti
122a0 53 7a 46 69 65 6c 64 57 20 53 65 74 75 70 47 65  SzFieldW SetupGe
122b0 74 4d 75 6c 74 69 53 7a 46 69 65 6c 64 3b 0d 0a  tMultiSzField;..
122c0 09 61 6c 69 61 73 20 53 65 74 75 70 47 65 74 53  .alias SetupGetS
122d0 6f 75 72 63 65 46 69 6c 65 4c 6f 63 61 74 69 6f  ourceFileLocatio
122e0 6e 57 20 53 65 74 75 70 47 65 74 53 6f 75 72 63  nW SetupGetSourc
122f0 65 46 69 6c 65 4c 6f 63 61 74 69 6f 6e 3b 0d 0a  eFileLocation;..
12300 09 61 6c 69 61 73 20 53 65 74 75 70 47 65 74 53  .alias SetupGetS
12310 6f 75 72 63 65 46 69 6c 65 53 69 7a 65 57 20 53  ourceFileSizeW S
12320 65 74 75 70 47 65 74 53 6f 75 72 63 65 46 69 6c  etupGetSourceFil
12330 65 53 69 7a 65 3b 0d 0a 09 61 6c 69 61 73 20 53  eSize;...alias S
12340 65 74 75 70 47 65 74 53 6f 75 72 63 65 49 6e 66  etupGetSourceInf
12350 6f 57 20 53 65 74 75 70 47 65 74 53 6f 75 72 63  oW SetupGetSourc
12360 65 49 6e 66 6f 3b 0d 0a 09 61 6c 69 61 73 20 53  eInfo;...alias S
12370 65 74 75 70 47 65 74 53 74 72 69 6e 67 46 69 65  etupGetStringFie
12380 6c 64 57 20 53 65 74 75 70 47 65 74 53 74 72 69  ldW SetupGetStri
12390 6e 67 46 69 65 6c 64 3b 0d 0a 09 61 6c 69 61 73  ngField;...alias
123a0 20 53 65 74 75 70 47 65 74 54 61 72 67 65 74 50   SetupGetTargetP
123b0 61 74 68 57 20 53 65 74 75 70 47 65 74 54 61 72  athW SetupGetTar
123c0 67 65 74 50 61 74 68 3b 0d 0a 09 61 6c 69 61 73  getPath;...alias
123d0 20 53 65 74 75 70 49 6e 69 74 69 61 6c 69 7a 65   SetupInitialize
123e0 46 69 6c 65 4c 6f 67 57 20 53 65 74 75 70 49 6e  FileLogW SetupIn
123f0 69 74 69 61 6c 69 7a 65 46 69 6c 65 4c 6f 67 3b  itializeFileLog;
12400 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 49 6e  ...alias SetupIn
12410 73 74 61 6c 6c 46 69 6c 65 45 78 57 20 53 65 74  stallFileExW Set
12420 75 70 49 6e 73 74 61 6c 6c 46 69 6c 65 45 78 3b  upInstallFileEx;
12430 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 49 6e  ...alias SetupIn
12440 73 74 61 6c 6c 46 69 6c 65 73 46 72 6f 6d 49 6e  stallFilesFromIn
12450 66 53 65 63 74 69 6f 6e 57 20 53 65 74 75 70 49  fSectionW SetupI
12460 6e 73 74 61 6c 6c 46 69 6c 65 73 46 72 6f 6d 49  nstallFilesFromI
12470 6e 66 53 65 63 74 69 6f 6e 3b 0d 0a 09 61 6c 69  nfSection;...ali
12480 61 73 20 53 65 74 75 70 49 6e 73 74 61 6c 6c 46  as SetupInstallF
12490 69 6c 65 57 20 53 65 74 75 70 49 6e 73 74 61 6c  ileW SetupInstal
124a0 6c 46 69 6c 65 3b 0d 0a 09 61 6c 69 61 73 20 53  lFile;...alias S
124b0 65 74 75 70 49 6e 73 74 61 6c 6c 46 72 6f 6d 49  etupInstallFromI
124c0 6e 66 53 65 63 74 69 6f 6e 57 20 53 65 74 75 70  nfSectionW Setup
124d0 49 6e 73 74 61 6c 6c 46 72 6f 6d 49 6e 66 53 65  InstallFromInfSe
124e0 63 74 69 6f 6e 3b 0d 0a 09 61 6c 69 61 73 20 53  ction;...alias S
124f0 65 74 75 70 49 6e 73 74 61 6c 6c 53 65 72 76 69  etupInstallServi
12500 63 65 73 46 72 6f 6d 49 6e 66 53 65 63 74 69 6f  cesFromInfSectio
12510 6e 45 78 57 20 53 65 74 75 70 49 6e 73 74 61 6c  nExW SetupInstal
12520 6c 53 65 72 76 69 63 65 73 46 72 6f 6d 49 6e 66  lServicesFromInf
12530 53 65 63 74 69 6f 6e 45 78 3b 0d 0a 09 61 6c 69  SectionEx;...ali
12540 61 73 20 53 65 74 75 70 49 6e 73 74 61 6c 6c 53  as SetupInstallS
12550 65 72 76 69 63 65 73 46 72 6f 6d 49 6e 66 53 65  ervicesFromInfSe
12560 63 74 69 6f 6e 57 20 53 65 74 75 70 49 6e 73 74  ctionW SetupInst
12570 61 6c 6c 53 65 72 76 69 63 65 73 46 72 6f 6d 49  allServicesFromI
12580 6e 66 53 65 63 74 69 6f 6e 3b 0d 0a 09 61 6c 69  nfSection;...ali
12590 61 73 20 53 65 74 75 70 49 74 65 72 61 74 65 43  as SetupIterateC
125a0 61 62 69 6e 65 74 57 20 53 65 74 75 70 49 74 65  abinetW SetupIte
125b0 72 61 74 65 43 61 62 69 6e 65 74 3b 0d 0a 09 61  rateCabinet;...a
125c0 6c 69 61 73 20 53 65 74 75 70 4c 6f 67 45 72 72  lias SetupLogErr
125d0 6f 72 57 20 53 65 74 75 70 4c 6f 67 45 72 72 6f  orW SetupLogErro
125e0 72 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  r;...alias Setup
125f0 4c 6f 67 46 69 6c 65 57 20 53 65 74 75 70 4c 6f  LogFileW SetupLo
12600 67 46 69 6c 65 3b 0d 0a 09 61 6c 69 61 73 20 53  gFile;...alias S
12610 65 74 75 70 4f 70 65 6e 41 70 70 65 6e 64 49 6e  etupOpenAppendIn
12620 66 46 69 6c 65 57 20 53 65 74 75 70 4f 70 65 6e  fFileW SetupOpen
12630 41 70 70 65 6e 64 49 6e 66 46 69 6c 65 3b 0d 0a  AppendInfFile;..
12640 09 61 6c 69 61 73 20 53 65 74 75 70 4f 70 65 6e  .alias SetupOpen
12650 49 6e 66 46 69 6c 65 57 20 53 65 74 75 70 4f 70  InfFileW SetupOp
12660 65 6e 49 6e 66 46 69 6c 65 3b 0d 0a 09 61 6c 69  enInfFile;...ali
12670 61 73 20 53 65 74 75 70 50 72 6f 6d 70 74 46 6f  as SetupPromptFo
12680 72 44 69 73 6b 57 20 53 65 74 75 70 50 72 6f 6d  rDiskW SetupProm
12690 70 74 46 6f 72 44 69 73 6b 3b 0d 0a 09 61 6c 69  ptForDisk;...ali
126a0 61 73 20 53 65 74 75 70 51 75 65 72 79 44 72 69  as SetupQueryDri
126b0 76 65 73 49 6e 44 69 73 6b 53 70 61 63 65 4c 69  vesInDiskSpaceLi
126c0 73 74 57 20 53 65 74 75 70 51 75 65 72 79 44 72  stW SetupQueryDr
126d0 69 76 65 73 49 6e 44 69 73 6b 53 70 61 63 65 4c  ivesInDiskSpaceL
126e0 69 73 74 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ist;...alias Set
126f0 75 70 51 75 65 72 79 46 69 6c 65 4c 6f 67 57 20  upQueryFileLogW 
12700 53 65 74 75 70 51 75 65 72 79 46 69 6c 65 4c 6f  SetupQueryFileLo
12710 67 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  g;...alias Setup
12720 51 75 65 72 79 49 6e 66 46 69 6c 65 49 6e 66 6f  QueryInfFileInfo
12730 72 6d 61 74 69 6f 6e 57 20 53 65 74 75 70 51 75  rmationW SetupQu
12740 65 72 79 49 6e 66 46 69 6c 65 49 6e 66 6f 72 6d  eryInfFileInform
12750 61 74 69 6f 6e 3b 0d 0a 09 61 6c 69 61 73 20 53  ation;...alias S
12760 65 74 75 70 51 75 65 72 79 49 6e 66 4f 72 69 67  etupQueryInfOrig
12770 69 6e 61 6c 46 69 6c 65 49 6e 66 6f 72 6d 61 74  inalFileInformat
12780 69 6f 6e 57 20 53 65 74 75 70 51 75 65 72 79 49  ionW SetupQueryI
12790 6e 66 4f 72 69 67 69 6e 61 6c 46 69 6c 65 49 6e  nfOriginalFileIn
127a0 66 6f 72 6d 61 74 69 6f 6e 3b 0d 0a 09 61 6c 69  formation;...ali
127b0 61 73 20 53 65 74 75 70 51 75 65 72 79 49 6e 66  as SetupQueryInf
127c0 56 65 72 73 69 6f 6e 49 6e 66 6f 72 6d 61 74 69  VersionInformati
127d0 6f 6e 57 20 53 65 74 75 70 51 75 65 72 79 49 6e  onW SetupQueryIn
127e0 66 56 65 72 73 69 6f 6e 49 6e 66 6f 72 6d 61 74  fVersionInformat
127f0 69 6f 6e 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ion;...alias Set
12800 75 70 51 75 65 72 79 53 6f 75 72 63 65 4c 69 73  upQuerySourceLis
12810 74 57 20 53 65 74 75 70 51 75 65 72 79 53 6f 75  tW SetupQuerySou
12820 72 63 65 4c 69 73 74 3b 0d 0a 09 61 6c 69 61 73  rceList;...alias
12830 20 53 65 74 75 70 51 75 65 72 79 53 70 61 63 65   SetupQuerySpace
12840 52 65 71 75 69 72 65 64 4f 6e 44 72 69 76 65 57  RequiredOnDriveW
12850 20 53 65 74 75 70 51 75 65 72 79 53 70 61 63 65   SetupQuerySpace
12860 52 65 71 75 69 72 65 64 4f 6e 44 72 69 76 65 3b  RequiredOnDrive;
12870 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 51 75  ...alias SetupQu
12880 65 75 65 43 6f 70 79 49 6e 64 69 72 65 63 74 57  eueCopyIndirectW
12890 20 53 65 74 75 70 51 75 65 75 65 43 6f 70 79 49   SetupQueueCopyI
128a0 6e 64 69 72 65 63 74 3b 0d 0a 09 61 6c 69 61 73  ndirect;...alias
128b0 20 53 65 74 75 70 51 75 65 75 65 43 6f 70 79 53   SetupQueueCopyS
128c0 65 63 74 69 6f 6e 57 20 53 65 74 75 70 51 75 65  ectionW SetupQue
128d0 75 65 43 6f 70 79 53 65 63 74 69 6f 6e 3b 0d 0a  ueCopySection;..
128e0 09 61 6c 69 61 73 20 53 65 74 75 70 51 75 65 75  .alias SetupQueu
128f0 65 43 6f 70 79 57 20 53 65 74 75 70 51 75 65 75  eCopyW SetupQueu
12900 65 43 6f 70 79 3b 0d 0a 09 61 6c 69 61 73 20 53  eCopy;...alias S
12910 65 74 75 70 51 75 65 75 65 44 65 66 61 75 6c 74  etupQueueDefault
12920 43 6f 70 79 57 20 53 65 74 75 70 51 75 65 75 65  CopyW SetupQueue
12930 44 65 66 61 75 6c 74 43 6f 70 79 3b 0d 0a 09 61  DefaultCopy;...a
12940 6c 69 61 73 20 53 65 74 75 70 51 75 65 75 65 44  lias SetupQueueD
12950 65 6c 65 74 65 53 65 63 74 69 6f 6e 57 20 53 65  eleteSectionW Se
12960 74 75 70 51 75 65 75 65 44 65 6c 65 74 65 53 65  tupQueueDeleteSe
12970 63 74 69 6f 6e 3b 0d 0a 09 61 6c 69 61 73 20 53  ction;...alias S
12980 65 74 75 70 51 75 65 75 65 44 65 6c 65 74 65 57  etupQueueDeleteW
12990 20 53 65 74 75 70 51 75 65 75 65 44 65 6c 65 74   SetupQueueDelet
129a0 65 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  e;...alias Setup
129b0 51 75 65 75 65 52 65 6e 61 6d 65 53 65 63 74 69  QueueRenameSecti
129c0 6f 6e 57 20 53 65 74 75 70 51 75 65 75 65 52 65  onW SetupQueueRe
129d0 6e 61 6d 65 53 65 63 74 69 6f 6e 3b 0d 0a 09 61  nameSection;...a
129e0 6c 69 61 73 20 53 65 74 75 70 51 75 65 75 65 52  lias SetupQueueR
129f0 65 6e 61 6d 65 57 20 53 65 74 75 70 51 75 65 75  enameW SetupQueu
12a00 65 52 65 6e 61 6d 65 3b 0d 0a 09 61 6c 69 61 73  eRename;...alias
12a10 20 53 65 74 75 70 52 65 6d 6f 76 65 46 69 6c 65   SetupRemoveFile
12a20 4c 6f 67 45 6e 74 72 79 57 20 53 65 74 75 70 52  LogEntryW SetupR
12a30 65 6d 6f 76 65 46 69 6c 65 4c 6f 67 45 6e 74 72  emoveFileLogEntr
12a40 79 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  y;...alias Setup
12a50 52 65 6d 6f 76 65 46 72 6f 6d 44 69 73 6b 53 70  RemoveFromDiskSp
12a60 61 63 65 4c 69 73 74 57 20 53 65 74 75 70 52 65  aceListW SetupRe
12a70 6d 6f 76 65 46 72 6f 6d 44 69 73 6b 53 70 61 63  moveFromDiskSpac
12a80 65 4c 69 73 74 3b 0d 0a 09 61 6c 69 61 73 20 53  eList;...alias S
12a90 65 74 75 70 52 65 6d 6f 76 65 46 72 6f 6d 53 6f  etupRemoveFromSo
12aa0 75 72 63 65 4c 69 73 74 57 20 53 65 74 75 70 52  urceListW SetupR
12ab0 65 6d 6f 76 65 46 72 6f 6d 53 6f 75 72 63 65 4c  emoveFromSourceL
12ac0 69 73 74 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ist;...alias Set
12ad0 75 70 52 65 6d 6f 76 65 49 6e 73 74 61 6c 6c 53  upRemoveInstallS
12ae0 65 63 74 69 6f 6e 46 72 6f 6d 44 69 73 6b 53 70  ectionFromDiskSp
12af0 61 63 65 4c 69 73 74 57 20 53 65 74 75 70 52 65  aceListW SetupRe
12b00 6d 6f 76 65 49 6e 73 74 61 6c 6c 53 65 63 74 69  moveInstallSecti
12b10 6f 6e 46 72 6f 6d 44 69 73 6b 53 70 61 63 65 4c  onFromDiskSpaceL
12b20 69 73 74 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ist;...alias Set
12b30 75 70 52 65 6d 6f 76 65 53 65 63 74 69 6f 6e 46  upRemoveSectionF
12b40 72 6f 6d 44 69 73 6b 53 70 61 63 65 4c 69 73 74  romDiskSpaceList
12b50 57 20 53 65 74 75 70 52 65 6d 6f 76 65 53 65 63  W SetupRemoveSec
12b60 74 69 6f 6e 46 72 6f 6d 44 69 73 6b 53 70 61 63  tionFromDiskSpac
12b70 65 4c 69 73 74 3b 0d 0a 09 61 6c 69 61 73 20 53  eList;...alias S
12b80 65 74 75 70 52 65 6e 61 6d 65 45 72 72 6f 72 57  etupRenameErrorW
12b90 20 53 65 74 75 70 52 65 6e 61 6d 65 45 72 72 6f   SetupRenameErro
12ba0 72 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  r;...alias Setup
12bb0 53 63 61 6e 46 69 6c 65 51 75 65 75 65 57 20 53  ScanFileQueueW S
12bc0 65 74 75 70 53 63 61 6e 46 69 6c 65 51 75 65 75  etupScanFileQueu
12bd0 65 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  e;...alias Setup
12be0 53 65 74 44 69 72 65 63 74 6f 72 79 49 64 45 78  SetDirectoryIdEx
12bf0 57 20 53 65 74 75 70 53 65 74 44 69 72 65 63 74  W SetupSetDirect
12c00 6f 72 79 49 64 45 78 3b 0d 0a 09 61 6c 69 61 73  oryIdEx;...alias
12c10 20 53 65 74 75 70 53 65 74 44 69 72 65 63 74 6f   SetupSetDirecto
12c20 72 79 49 64 57 20 53 65 74 75 70 53 65 74 44 69  ryIdW SetupSetDi
12c30 72 65 63 74 6f 72 79 49 64 3b 0d 0a 09 61 6c 69  rectoryId;...ali
12c40 61 73 20 53 65 74 75 70 53 65 74 46 69 6c 65 51  as SetupSetFileQ
12c50 75 65 75 65 41 6c 74 65 72 6e 61 74 65 50 6c 61  ueueAlternatePla
12c60 74 66 6f 72 6d 57 20 53 65 74 75 70 53 65 74 46  tformW SetupSetF
12c70 69 6c 65 51 75 65 75 65 41 6c 74 65 72 6e 61 74  ileQueueAlternat
12c80 65 50 6c 61 74 66 6f 72 6d 3b 0d 0a 09 61 6c 69  ePlatform;...ali
12c90 61 73 20 53 65 74 75 70 53 65 74 50 6c 61 74 66  as SetupSetPlatf
12ca0 6f 72 6d 50 61 74 68 4f 76 65 72 72 69 64 65 57  ormPathOverrideW
12cb0 20 53 65 74 75 70 53 65 74 50 6c 61 74 66 6f 72   SetupSetPlatfor
12cc0 6d 50 61 74 68 4f 76 65 72 72 69 64 65 3b 0d 0a  mPathOverride;..
12cd0 09 61 6c 69 61 73 20 53 65 74 75 70 53 65 74 53  .alias SetupSetS
12ce0 6f 75 72 63 65 4c 69 73 74 57 20 53 65 74 75 70  ourceListW Setup
12cf0 53 65 74 53 6f 75 72 63 65 4c 69 73 74 3b 0d 0a  SetSourceList;..
12d00 7d 20 65 6c 73 65 20 7b 0d 0a 09 61 6c 69 61 73  } else {...alias
12d10 20 50 53 50 5f 46 49 4c 45 5f 43 41 4c 4c 42 41   PSP_FILE_CALLBA
12d20 43 4b 5f 41 20 50 53 50 5f 46 49 4c 45 5f 43 41  CK_A PSP_FILE_CA
12d30 4c 4c 42 41 43 4b 3b 0d 0a 09 61 6c 69 61 73 20  LLBACK;...alias 
12d40 53 65 74 75 70 41 64 64 49 6e 73 74 61 6c 6c 53  SetupAddInstallS
12d50 65 63 74 69 6f 6e 54 6f 44 69 73 6b 53 70 61 63  ectionToDiskSpac
12d60 65 4c 69 73 74 41 20 53 65 74 75 70 41 64 64 49  eListA SetupAddI
12d70 6e 73 74 61 6c 6c 53 65 63 74 69 6f 6e 54 6f 44  nstallSectionToD
12d80 69 73 6b 53 70 61 63 65 4c 69 73 74 3b 0d 0a 09  iskSpaceList;...
12d90 61 6c 69 61 73 20 53 65 74 75 70 41 64 64 53 65  alias SetupAddSe
12da0 63 74 69 6f 6e 54 6f 44 69 73 6b 53 70 61 63 65  ctionToDiskSpace
12db0 4c 69 73 74 41 20 53 65 74 75 70 41 64 64 53 65  ListA SetupAddSe
12dc0 63 74 69 6f 6e 54 6f 44 69 73 6b 53 70 61 63 65  ctionToDiskSpace
12dd0 4c 69 73 74 3b 0d 0a 09 61 6c 69 61 73 20 53 65  List;...alias Se
12de0 74 75 70 41 64 64 54 6f 44 69 73 6b 53 70 61 63  tupAddToDiskSpac
12df0 65 4c 69 73 74 41 20 53 65 74 75 70 41 64 64 54  eListA SetupAddT
12e00 6f 44 69 73 6b 53 70 61 63 65 4c 69 73 74 3b 0d  oDiskSpaceList;.
12e10 0a 09 61 6c 69 61 73 20 53 65 74 75 70 41 64 64  ..alias SetupAdd
12e20 54 6f 53 6f 75 72 63 65 4c 69 73 74 41 20 53 65  ToSourceListA Se
12e30 74 75 70 41 64 64 54 6f 53 6f 75 72 63 65 4c 69  tupAddToSourceLi
12e40 73 74 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75  st;...alias Setu
12e50 70 41 64 6a 75 73 74 44 69 73 6b 53 70 61 63 65  pAdjustDiskSpace
12e60 4c 69 73 74 41 20 53 65 74 75 70 41 64 6a 75 73  ListA SetupAdjus
12e70 74 44 69 73 6b 53 70 61 63 65 4c 69 73 74 3b 0d  tDiskSpaceList;.
12e80 0a 09 61 6c 69 61 73 20 53 65 74 75 70 42 61 63  ..alias SetupBac
12e90 6b 75 70 45 72 72 6f 72 41 20 53 65 74 75 70 42  kupErrorA SetupB
12ea0 61 63 6b 75 70 45 72 72 6f 72 3b 0d 0a 09 61 6c  ackupError;...al
12eb0 69 61 73 20 53 65 74 75 70 43 6f 6d 6d 69 74 46  ias SetupCommitF
12ec0 69 6c 65 51 75 65 75 65 41 20 53 65 74 75 70 43  ileQueueA SetupC
12ed0 6f 6d 6d 69 74 46 69 6c 65 51 75 65 75 65 3b 0d  ommitFileQueue;.
12ee0 0a 09 61 6c 69 61 73 20 53 65 74 75 70 43 6f 70  ..alias SetupCop
12ef0 79 45 72 72 6f 72 41 20 53 65 74 75 70 43 6f 70  yErrorA SetupCop
12f00 79 45 72 72 6f 72 3b 0d 0a 09 61 6c 69 61 73 20  yError;...alias 
12f10 53 65 74 75 70 43 6f 70 79 4f 45 4d 49 6e 66 41  SetupCopyOEMInfA
12f20 20 53 65 74 75 70 43 6f 70 79 4f 45 4d 49 6e 66   SetupCopyOEMInf
12f30 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 43  ;...alias SetupC
12f40 72 65 61 74 65 44 69 73 6b 53 70 61 63 65 4c 69  reateDiskSpaceLi
12f50 73 74 41 20 53 65 74 75 70 43 72 65 61 74 65 44  stA SetupCreateD
12f60 69 73 6b 53 70 61 63 65 4c 69 73 74 3b 0d 0a 09  iskSpaceList;...
12f70 61 6c 69 61 73 20 53 65 74 75 70 44 65 63 6f 6d  alias SetupDecom
12f80 70 72 65 73 73 4f 72 43 6f 70 79 46 69 6c 65 41  pressOrCopyFileA
12f90 20 53 65 74 75 70 44 65 63 6f 6d 70 72 65 73 73   SetupDecompress
12fa0 4f 72 43 6f 70 79 46 69 6c 65 3b 0d 0a 09 61 6c  OrCopyFile;...al
12fb0 69 61 73 20 53 65 74 75 70 44 65 66 61 75 6c 74  ias SetupDefault
12fc0 51 75 65 75 65 43 61 6c 6c 62 61 63 6b 41 20 53  QueueCallbackA S
12fd0 65 74 75 70 44 65 66 61 75 6c 74 51 75 65 75 65  etupDefaultQueue
12fe0 43 61 6c 6c 62 61 63 6b 3b 0d 0a 09 61 6c 69 61  Callback;...alia
12ff0 73 20 53 65 74 75 70 44 65 6c 65 74 65 45 72 72  s SetupDeleteErr
13000 6f 72 41 20 53 65 74 75 70 44 65 6c 65 74 65 45  orA SetupDeleteE
13010 72 72 6f 72 3b 0d 0a 09 61 6c 69 61 73 20 53 65  rror;...alias Se
13020 74 75 70 44 69 42 75 69 6c 64 43 6c 61 73 73 49  tupDiBuildClassI
13030 6e 66 6f 4c 69 73 74 45 78 41 20 53 65 74 75 70  nfoListExA Setup
13040 44 69 42 75 69 6c 64 43 6c 61 73 73 49 6e 66 6f  DiBuildClassInfo
13050 4c 69 73 74 45 78 3b 0d 0a 09 61 6c 69 61 73 20  ListEx;...alias 
13060 53 65 74 75 70 44 69 43 6c 61 73 73 47 75 69 64  SetupDiClassGuid
13070 73 46 72 6f 6d 4e 61 6d 65 41 20 53 65 74 75 70  sFromNameA Setup
13080 44 69 43 6c 61 73 73 47 75 69 64 73 46 72 6f 6d  DiClassGuidsFrom
13090 4e 61 6d 65 3b 0d 0a 09 61 6c 69 61 73 20 53 65  Name;...alias Se
130a0 74 75 70 44 69 43 6c 61 73 73 47 75 69 64 73 46  tupDiClassGuidsF
130b0 72 6f 6d 4e 61 6d 65 45 78 41 20 53 65 74 75 70  romNameExA Setup
130c0 44 69 43 6c 61 73 73 47 75 69 64 73 46 72 6f 6d  DiClassGuidsFrom
130d0 4e 61 6d 65 45 78 3b 0d 0a 09 61 6c 69 61 73 20  NameEx;...alias 
130e0 53 65 74 75 70 44 69 43 6c 61 73 73 4e 61 6d 65  SetupDiClassName
130f0 46 72 6f 6d 47 75 69 64 41 20 53 65 74 75 70 44  FromGuidA SetupD
13100 69 43 6c 61 73 73 4e 61 6d 65 46 72 6f 6d 47 75  iClassNameFromGu
13110 69 64 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75  id;...alias Setu
13120 70 44 69 43 6c 61 73 73 4e 61 6d 65 46 72 6f 6d  pDiClassNameFrom
13130 47 75 69 64 45 78 41 20 53 65 74 75 70 44 69 43  GuidExA SetupDiC
13140 6c 61 73 73 4e 61 6d 65 46 72 6f 6d 47 75 69 64  lassNameFromGuid
13150 45 78 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75  Ex;...alias Setu
13160 70 44 69 43 72 65 61 74 65 44 65 76 69 63 65 49  pDiCreateDeviceI
13170 6e 66 6f 41 20 53 65 74 75 70 44 69 43 72 65 61  nfoA SetupDiCrea
13180 74 65 44 65 76 69 63 65 49 6e 66 6f 3b 0d 0a 09  teDeviceInfo;...
13190 61 6c 69 61 73 20 53 65 74 75 70 44 69 43 72 65  alias SetupDiCre
131a0 61 74 65 44 65 76 69 63 65 49 6e 66 6f 4c 69 73  ateDeviceInfoLis
131b0 74 45 78 41 20 53 65 74 75 70 44 69 43 72 65 61  tExA SetupDiCrea
131c0 74 65 44 65 76 69 63 65 49 6e 66 6f 4c 69 73 74  teDeviceInfoList
131d0 45 78 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75  Ex;...alias Setu
131e0 70 44 69 43 72 65 61 74 65 44 65 76 69 63 65 49  pDiCreateDeviceI
131f0 6e 74 65 72 66 61 63 65 41 20 53 65 74 75 70 44  nterfaceA SetupD
13200 69 43 72 65 61 74 65 44 65 76 69 63 65 49 6e 74  iCreateDeviceInt
13210 65 72 66 61 63 65 3b 0d 0a 09 64 65 70 72 65 63  erface;...deprec
13220 61 74 65 64 20 61 6c 69 61 73 20 53 65 74 75 70  ated alias Setup
13230 44 69 43 72 65 61 74 65 44 65 76 69 63 65 49 6e  DiCreateDeviceIn
13240 74 65 72 66 61 63 65 41 20 53 65 74 75 70 44 69  terfaceA SetupDi
13250 43 72 65 61 74 65 49 6e 74 65 72 66 61 63 65 44  CreateInterfaceD
13260 65 76 69 63 65 3b 0d 0a 09 61 6c 69 61 73 20 53  evice;...alias S
13270 65 74 75 70 44 69 43 72 65 61 74 65 44 65 76 69  etupDiCreateDevi
13280 63 65 49 6e 74 65 72 66 61 63 65 52 65 67 4b 65  ceInterfaceRegKe
13290 79 41 20 53 65 74 75 70 44 69 43 72 65 61 74 65  yA SetupDiCreate
132a0 44 65 76 69 63 65 49 6e 74 65 72 66 61 63 65 52  DeviceInterfaceR
132b0 65 67 4b 65 79 3b 0d 0a 09 64 65 70 72 65 63 61  egKey;...depreca
132c0 74 65 64 20 61 6c 69 61 73 20 53 65 74 75 70 44  ted alias SetupD
132d0 69 43 72 65 61 74 65 44 65 76 69 63 65 49 6e 74  iCreateDeviceInt
132e0 65 72 66 61 63 65 52 65 67 4b 65 79 41 20 53 65  erfaceRegKeyA Se
132f0 74 75 70 44 69 43 72 65 61 74 65 49 6e 74 65 72  tupDiCreateInter
13300 66 61 63 65 44 65 76 69 63 65 52 65 67 4b 65 79  faceDeviceRegKey
13310 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44  ;...alias SetupD
13320 69 43 72 65 61 74 65 44 65 76 52 65 67 4b 65 79  iCreateDevRegKey
13330 41 20 53 65 74 75 70 44 69 43 72 65 61 74 65 44  A SetupDiCreateD
13340 65 76 52 65 67 4b 65 79 3b 0d 0a 09 61 6c 69 61  evRegKey;...alia
13350 73 20 53 65 74 75 70 44 69 44 65 6c 65 74 65 44  s SetupDiDeleteD
13360 65 76 69 63 65 49 6e 74 65 72 66 61 63 65 44 61  eviceInterfaceDa
13370 74 61 20 53 65 74 75 70 44 69 44 65 6c 65 74 65  ta SetupDiDelete
13380 49 6e 74 65 72 66 61 63 65 44 65 76 69 63 65 44  InterfaceDeviceD
13390 61 74 61 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ata;...alias Set
133a0 75 70 44 69 45 6e 75 6d 44 72 69 76 65 72 49 6e  upDiEnumDriverIn
133b0 66 6f 41 20 53 65 74 75 70 44 69 45 6e 75 6d 44  foA SetupDiEnumD
133c0 72 69 76 65 72 49 6e 66 6f 3b 0d 0a 09 61 6c 69  riverInfo;...ali
133d0 61 73 20 53 65 74 75 70 44 69 47 65 74 41 63 74  as SetupDiGetAct
133e0 75 61 6c 53 65 63 74 69 6f 6e 54 6f 49 6e 73 74  ualSectionToInst
133f0 61 6c 6c 41 20 53 65 74 75 70 44 69 47 65 74 41  allA SetupDiGetA
13400 63 74 75 61 6c 53 65 63 74 69 6f 6e 54 6f 49 6e  ctualSectionToIn
13410 73 74 61 6c 6c 3b 0d 0a 09 61 6c 69 61 73 20 53  stall;...alias S
13420 65 74 75 70 44 69 47 65 74 43 6c 61 73 73 44 65  etupDiGetClassDe
13430 73 63 72 69 70 74 69 6f 6e 41 20 53 65 74 75 70  scriptionA Setup
13440 44 69 47 65 74 43 6c 61 73 73 44 65 73 63 72 69  DiGetClassDescri
13450 70 74 69 6f 6e 3b 0d 0a 09 61 6c 69 61 73 20 53  ption;...alias S
13460 65 74 75 70 44 69 47 65 74 43 6c 61 73 73 44 65  etupDiGetClassDe
13470 73 63 72 69 70 74 69 6f 6e 45 78 41 20 53 65 74  scriptionExA Set
13480 75 70 44 69 47 65 74 43 6c 61 73 73 44 65 73 63  upDiGetClassDesc
13490 72 69 70 74 69 6f 6e 45 78 3b 0d 0a 09 61 6c 69  riptionEx;...ali
134a0 61 73 20 53 65 74 75 70 44 69 47 65 74 43 6c 61  as SetupDiGetCla
134b0 73 73 44 65 76 50 72 6f 70 65 72 74 79 53 68 65  ssDevPropertyShe
134c0 65 74 73 41 20 53 65 74 75 70 44 69 47 65 74 43  etsA SetupDiGetC
134d0 6c 61 73 73 44 65 76 50 72 6f 70 65 72 74 79 53  lassDevPropertyS
134e0 68 65 65 74 73 3b 0d 0a 09 61 6c 69 61 73 20 53  heets;...alias S
134f0 65 74 75 70 44 69 47 65 74 43 6c 61 73 73 44 65  etupDiGetClassDe
13500 76 73 41 20 53 65 74 75 70 44 69 47 65 74 43 6c  vsA SetupDiGetCl
13510 61 73 73 44 65 76 73 3b 0d 0a 09 61 6c 69 61 73  assDevs;...alias
13520 20 53 65 74 75 70 44 69 47 65 74 43 6c 61 73 73   SetupDiGetClass
13530 44 65 76 73 45 78 41 20 53 65 74 75 70 44 69 47  DevsExA SetupDiG
13540 65 74 43 6c 61 73 73 44 65 76 73 45 78 3b 0d 0a  etClassDevsEx;..
13550 09 61 6c 69 61 73 20 53 65 74 75 70 44 69 47 65  .alias SetupDiGe
13560 74 43 6c 61 73 73 49 6d 61 67 65 4c 69 73 74 45  tClassImageListE
13570 78 41 20 53 65 74 75 70 44 69 47 65 74 43 6c 61  xA SetupDiGetCla
13580 73 73 49 6d 61 67 65 4c 69 73 74 45 78 3b 0d 0a  ssImageListEx;..
13590 09 61 6c 69 61 73 20 53 65 74 75 70 44 69 47 65  .alias SetupDiGe
135a0 74 43 6c 61 73 73 49 6e 73 74 61 6c 6c 50 61 72  tClassInstallPar
135b0 61 6d 73 41 20 53 65 74 75 70 44 69 47 65 74 43  amsA SetupDiGetC
135c0 6c 61 73 73 49 6e 73 74 61 6c 6c 50 61 72 61 6d  lassInstallParam
135d0 73 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  s;...alias Setup
135e0 44 69 47 65 74 43 6c 61 73 73 52 65 67 69 73 74  DiGetClassRegist
135f0 72 79 50 72 6f 70 65 72 74 79 41 20 53 65 74 75  ryPropertyA Setu
13600 70 44 69 47 65 74 43 6c 61 73 73 52 65 67 69 73  pDiGetClassRegis
13610 74 72 79 50 72 6f 70 65 72 74 79 3b 0d 0a 09 61  tryProperty;...a
13620 6c 69 61 73 20 53 65 74 75 70 44 69 47 65 74 44  lias SetupDiGetD
13630 65 76 69 63 65 49 6e 66 6f 4c 69 73 74 44 65 74  eviceInfoListDet
13640 61 69 6c 41 20 53 65 74 75 70 44 69 47 65 74 44  ailA SetupDiGetD
13650 65 76 69 63 65 49 6e 66 6f 4c 69 73 74 44 65 74  eviceInfoListDet
13660 61 69 6c 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ail;...alias Set
13670 75 70 44 69 47 65 74 44 65 76 69 63 65 49 6e 73  upDiGetDeviceIns
13680 74 61 6c 6c 50 61 72 61 6d 73 41 20 53 65 74 75  tallParamsA Setu
13690 70 44 69 47 65 74 44 65 76 69 63 65 49 6e 73 74  pDiGetDeviceInst
136a0 61 6c 6c 50 61 72 61 6d 73 3b 0d 0a 09 61 6c 69  allParams;...ali
136b0 61 73 20 53 65 74 75 70 44 69 47 65 74 44 65 76  as SetupDiGetDev
136c0 69 63 65 49 6e 73 74 61 6e 63 65 49 64 41 20 53  iceInstanceIdA S
136d0 65 74 75 70 44 69 47 65 74 44 65 76 69 63 65 49  etupDiGetDeviceI
136e0 6e 73 74 61 6e 63 65 49 64 3b 0d 0a 09 61 6c 69  nstanceId;...ali
136f0 61 73 20 53 65 74 75 70 44 69 47 65 74 44 65 76  as SetupDiGetDev
13700 69 63 65 49 6e 74 65 72 66 61 63 65 44 65 74 61  iceInterfaceDeta
13710 69 6c 41 20 53 65 74 75 70 44 69 47 65 74 44 65  ilA SetupDiGetDe
13720 76 69 63 65 49 6e 74 65 72 66 61 63 65 44 65 74  viceInterfaceDet
13730 61 69 6c 3b 0d 0a 09 64 65 70 72 65 63 61 74 65  ail;...deprecate
13740 64 20 61 6c 69 61 73 20 53 65 74 75 70 44 69 47  d alias SetupDiG
13750 65 74 44 65 76 69 63 65 49 6e 74 65 72 66 61 63  etDeviceInterfac
13760 65 44 65 74 61 69 6c 41 20 53 65 74 75 70 44 69  eDetailA SetupDi
13770 47 65 74 49 6e 74 65 72 66 61 63 65 44 65 76 69  GetInterfaceDevi
13780 63 65 44 65 74 61 69 6c 3b 0d 0a 09 61 6c 69 61  ceDetail;...alia
13790 73 20 53 65 74 75 70 44 69 47 65 74 44 65 76 69  s SetupDiGetDevi
137a0 63 65 52 65 67 69 73 74 72 79 50 72 6f 70 65 72  ceRegistryProper
137b0 74 79 41 20 53 65 74 75 70 44 69 47 65 74 44 65  tyA SetupDiGetDe
137c0 76 69 63 65 52 65 67 69 73 74 72 79 50 72 6f 70  viceRegistryProp
137d0 65 72 74 79 3b 0d 0a 09 61 6c 69 61 73 20 53 65  erty;...alias Se
137e0 74 75 70 44 69 47 65 74 44 72 69 76 65 72 49 6e  tupDiGetDriverIn
137f0 66 6f 44 65 74 61 69 6c 41 20 53 65 74 75 70 44  foDetailA SetupD
13800 69 47 65 74 44 72 69 76 65 72 49 6e 66 6f 44 65  iGetDriverInfoDe
13810 74 61 69 6c 3b 0d 0a 09 61 6c 69 61 73 20 53 65  tail;...alias Se
13820 74 75 70 44 69 47 65 74 44 72 69 76 65 72 49 6e  tupDiGetDriverIn
13830 73 74 61 6c 6c 50 61 72 61 6d 73 41 20 53 65 74  stallParamsA Set
13840 75 70 44 69 47 65 74 44 72 69 76 65 72 49 6e 73  upDiGetDriverIns
13850 74 61 6c 6c 50 61 72 61 6d 73 3b 0d 0a 09 61 6c  tallParams;...al
13860 69 61 73 20 53 65 74 75 70 44 69 47 65 74 48 77  ias SetupDiGetHw
13870 50 72 6f 66 69 6c 65 46 72 69 65 6e 64 6c 79 4e  ProfileFriendlyN
13880 61 6d 65 41 20 53 65 74 75 70 44 69 47 65 74 48  ameA SetupDiGetH
13890 77 50 72 6f 66 69 6c 65 46 72 69 65 6e 64 6c 79  wProfileFriendly
138a0 4e 61 6d 65 3b 0d 0a 09 61 6c 69 61 73 20 53 65  Name;...alias Se
138b0 74 75 70 44 69 47 65 74 48 77 50 72 6f 66 69 6c  tupDiGetHwProfil
138c0 65 46 72 69 65 6e 64 6c 79 4e 61 6d 65 45 78 41  eFriendlyNameExA
138d0 20 53 65 74 75 70 44 69 47 65 74 48 77 50 72 6f   SetupDiGetHwPro
138e0 66 69 6c 65 46 72 69 65 6e 64 6c 79 4e 61 6d 65  fileFriendlyName
138f0 45 78 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75  Ex;...alias Setu
13900 70 44 69 47 65 74 48 77 50 72 6f 66 69 6c 65 4c  pDiGetHwProfileL
13910 69 73 74 45 78 41 20 53 65 74 75 70 44 69 47 65  istExA SetupDiGe
13920 74 48 77 50 72 6f 66 69 6c 65 4c 69 73 74 45 78  tHwProfileListEx
13930 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44  ;...alias SetupD
13940 69 47 65 74 49 4e 46 43 6c 61 73 73 41 20 53 65  iGetINFClassA Se
13950 74 75 70 44 69 47 65 74 49 4e 46 43 6c 61 73 73  tupDiGetINFClass
13960 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44  ;...alias SetupD
13970 69 47 65 74 53 65 6c 65 63 74 65 64 44 72 69 76  iGetSelectedDriv
13980 65 72 41 20 53 65 74 75 70 44 69 47 65 74 53 65  erA SetupDiGetSe
13990 6c 65 63 74 65 64 44 72 69 76 65 72 3b 0d 0a 09  lectedDriver;...
139a0 61 6c 69 61 73 20 53 65 74 75 70 44 69 49 6e 73  alias SetupDiIns
139b0 74 61 6c 6c 43 6c 61 73 73 41 20 53 65 74 75 70  tallClassA Setup
139c0 44 69 49 6e 73 74 61 6c 6c 43 6c 61 73 73 3b 0d  DiInstallClass;.
139d0 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44 69 49  ..alias SetupDiI
139e0 6e 73 74 61 6c 6c 43 6c 61 73 73 45 78 41 20 53  nstallClassExA S
139f0 65 74 75 70 44 69 49 6e 73 74 61 6c 6c 43 6c 61  etupDiInstallCla
13a00 73 73 45 78 3b 0d 0a 09 61 6c 69 61 73 20 53 65  ssEx;...alias Se
13a10 74 75 70 44 69 4f 70 65 6e 43 6c 61 73 73 52 65  tupDiOpenClassRe
13a20 67 4b 65 79 45 78 41 20 53 65 74 75 70 44 69 4f  gKeyExA SetupDiO
13a30 70 65 6e 43 6c 61 73 73 52 65 67 4b 65 79 45 78  penClassRegKeyEx
13a40 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44  ;...alias SetupD
13a50 69 4f 70 65 6e 44 65 76 69 63 65 49 6e 66 6f 41  iOpenDeviceInfoA
13a60 20 53 65 74 75 70 44 69 4f 70 65 6e 44 65 76 69   SetupDiOpenDevi
13a70 63 65 49 6e 66 6f 3b 0d 0a 09 61 6c 69 61 73 20  ceInfo;...alias 
13a80 53 65 74 75 70 44 69 4f 70 65 6e 44 65 76 69 63  SetupDiOpenDevic
13a90 65 49 6e 74 65 72 66 61 63 65 41 20 53 65 74 75  eInterfaceA Setu
13aa0 70 44 69 4f 70 65 6e 44 65 76 69 63 65 49 6e 74  pDiOpenDeviceInt
13ab0 65 72 66 61 63 65 3b 0d 0a 09 64 65 70 72 65 63  erface;...deprec
13ac0 61 74 65 64 20 61 6c 69 61 73 20 53 65 74 75 70  ated alias Setup
13ad0 44 69 4f 70 65 6e 44 65 76 69 63 65 49 6e 74 65  DiOpenDeviceInte
13ae0 72 66 61 63 65 41 20 53 65 74 75 70 44 69 4f 70  rfaceA SetupDiOp
13af0 65 6e 49 6e 74 65 72 66 61 63 65 44 65 76 69 63  enInterfaceDevic
13b00 65 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  e;...alias Setup
13b10 44 69 53 65 74 43 6c 61 73 73 49 6e 73 74 61 6c  DiSetClassInstal
13b20 6c 50 61 72 61 6d 73 41 20 53 65 74 75 70 44 69  lParamsA SetupDi
13b30 53 65 74 43 6c 61 73 73 49 6e 73 74 61 6c 6c 50  SetClassInstallP
13b40 61 72 61 6d 73 3b 0d 0a 09 61 6c 69 61 73 20 53  arams;...alias S
13b50 65 74 75 70 44 69 53 65 74 43 6c 61 73 73 52 65  etupDiSetClassRe
13b60 67 69 73 74 72 79 50 72 6f 70 65 72 74 79 41 20  gistryPropertyA 
13b70 53 65 74 75 70 44 69 53 65 74 43 6c 61 73 73 52  SetupDiSetClassR
13b80 65 67 69 73 74 72 79 50 72 6f 70 65 72 74 79 3b  egistryProperty;
13b90 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 44 69  ...alias SetupDi
13ba0 53 65 74 44 65 76 69 63 65 49 6e 73 74 61 6c 6c  SetDeviceInstall
13bb0 50 61 72 61 6d 73 41 20 53 65 74 75 70 44 69 53  ParamsA SetupDiS
13bc0 65 74 44 65 76 69 63 65 49 6e 73 74 61 6c 6c 50  etDeviceInstallP
13bd0 61 72 61 6d 73 3b 0d 0a 09 61 6c 69 61 73 20 53  arams;...alias S
13be0 65 74 75 70 44 69 53 65 74 44 65 76 69 63 65 52  etupDiSetDeviceR
13bf0 65 67 69 73 74 72 79 50 72 6f 70 65 72 74 79 41  egistryPropertyA
13c00 20 53 65 74 75 70 44 69 53 65 74 44 65 76 69 63   SetupDiSetDevic
13c10 65 52 65 67 69 73 74 72 79 50 72 6f 70 65 72 74  eRegistryPropert
13c20 79 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  y;...alias Setup
13c30 44 69 53 65 74 44 72 69 76 65 72 49 6e 73 74 61  DiSetDriverInsta
13c40 6c 6c 50 61 72 61 6d 73 41 20 53 65 74 75 70 44  llParamsA SetupD
13c50 69 53 65 74 44 72 69 76 65 72 49 6e 73 74 61 6c  iSetDriverInstal
13c60 6c 50 61 72 61 6d 73 3b 0d 0a 09 61 6c 69 61 73  lParams;...alias
13c70 20 53 65 74 75 70 44 69 53 65 74 53 65 6c 65 63   SetupDiSetSelec
13c80 74 65 64 44 72 69 76 65 72 41 20 53 65 74 75 70  tedDriverA Setup
13c90 44 69 53 65 74 53 65 6c 65 63 74 65 64 44 72 69  DiSetSelectedDri
13ca0 76 65 72 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ver;...alias Set
13cb0 75 70 44 75 70 6c 69 63 61 74 65 44 69 73 6b 53  upDuplicateDiskS
13cc0 70 61 63 65 4c 69 73 74 41 20 53 65 74 75 70 44  paceListA SetupD
13cd0 75 70 6c 69 63 61 74 65 44 69 73 6b 53 70 61 63  uplicateDiskSpac
13ce0 65 4c 69 73 74 3b 0d 0a 09 61 6c 69 61 73 20 53  eList;...alias S
13cf0 65 74 75 70 46 69 6e 64 46 69 72 73 74 4c 69 6e  etupFindFirstLin
13d00 65 41 20 53 65 74 75 70 46 69 6e 64 46 69 72 73  eA SetupFindFirs
13d10 74 4c 69 6e 65 3b 0d 0a 09 61 6c 69 61 73 20 53  tLine;...alias S
13d20 65 74 75 70 46 69 6e 64 4e 65 78 74 4d 61 74 63  etupFindNextMatc
13d30 68 4c 69 6e 65 41 20 53 65 74 75 70 46 69 6e 64  hLineA SetupFind
13d40 4e 65 78 74 4d 61 74 63 68 4c 69 6e 65 3b 0d 0a  NextMatchLine;..
13d50 09 61 6c 69 61 73 20 53 65 74 75 70 46 72 65 65  .alias SetupFree
13d60 53 6f 75 72 63 65 4c 69 73 74 41 20 53 65 74 75  SourceListA Setu
13d70 70 46 72 65 65 53 6f 75 72 63 65 4c 69 73 74 3b  pFreeSourceList;
13d80 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 47 65  ...alias SetupGe
13d90 74 42 61 63 6b 75 70 49 6e 66 6f 72 6d 61 74 69  tBackupInformati
13da0 6f 6e 41 20 53 65 74 75 70 47 65 74 42 61 63 6b  onA SetupGetBack
13db0 75 70 49 6e 66 6f 72 6d 61 74 69 6f 6e 3b 0d 0a  upInformation;..
13dc0 09 61 6c 69 61 73 20 53 65 74 75 70 47 65 74 46  .alias SetupGetF
13dd0 69 6c 65 43 6f 6d 70 72 65 73 73 69 6f 6e 49 6e  ileCompressionIn
13de0 66 6f 41 20 53 65 74 75 70 47 65 74 46 69 6c 65  foA SetupGetFile
13df0 43 6f 6d 70 72 65 73 73 69 6f 6e 49 6e 66 6f 3b  CompressionInfo;
13e00 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 47 65  ...alias SetupGe
13e10 74 49 6e 66 46 69 6c 65 4c 69 73 74 41 20 53 65  tInfFileListA Se
13e20 74 75 70 47 65 74 49 6e 66 46 69 6c 65 4c 69 73  tupGetInfFileLis
13e30 74 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  t;...alias Setup
13e40 47 65 74 49 6e 66 49 6e 66 6f 72 6d 61 74 69 6f  GetInfInformatio
13e50 6e 41 20 53 65 74 75 70 47 65 74 49 6e 66 49 6e  nA SetupGetInfIn
13e60 66 6f 72 6d 61 74 69 6f 6e 3b 0d 0a 09 61 6c 69  formation;...ali
13e70 61 73 20 53 65 74 75 70 47 65 74 4c 69 6e 65 42  as SetupGetLineB
13e80 79 49 6e 64 65 78 41 20 53 65 74 75 70 47 65 74  yIndexA SetupGet
13e90 4c 69 6e 65 42 79 49 6e 64 65 78 3b 0d 0a 09 61  LineByIndex;...a
13ea0 6c 69 61 73 20 53 65 74 75 70 47 65 74 4c 69 6e  lias SetupGetLin
13eb0 65 43 6f 75 6e 74 41 20 53 65 74 75 70 47 65 74  eCountA SetupGet
13ec0 4c 69 6e 65 43 6f 75 6e 74 3b 0d 0a 09 61 6c 69  LineCount;...ali
13ed0 61 73 20 53 65 74 75 70 47 65 74 4c 69 6e 65 54  as SetupGetLineT
13ee0 65 78 74 41 20 53 65 74 75 70 47 65 74 4c 69 6e  extA SetupGetLin
13ef0 65 54 65 78 74 3b 0d 0a 09 61 6c 69 61 73 20 53  eText;...alias S
13f00 65 74 75 70 47 65 74 4d 75 6c 74 69 53 7a 46 69  etupGetMultiSzFi
13f10 65 6c 64 41 20 53 65 74 75 70 47 65 74 4d 75 6c  eldA SetupGetMul
13f20 74 69 53 7a 46 69 65 6c 64 3b 0d 0a 09 61 6c 69  tiSzField;...ali
13f30 61 73 20 53 65 74 75 70 47 65 74 53 6f 75 72 63  as SetupGetSourc
13f40 65 46 69 6c 65 4c 6f 63 61 74 69 6f 6e 41 20 53  eFileLocationA S
13f50 65 74 75 70 47 65 74 53 6f 75 72 63 65 46 69 6c  etupGetSourceFil
13f60 65 4c 6f 63 61 74 69 6f 6e 3b 0d 0a 09 61 6c 69  eLocation;...ali
13f70 61 73 20 53 65 74 75 70 47 65 74 53 6f 75 72 63  as SetupGetSourc
13f80 65 46 69 6c 65 53 69 7a 65 41 20 53 65 74 75 70  eFileSizeA Setup
13f90 47 65 74 53 6f 75 72 63 65 46 69 6c 65 53 69 7a  GetSourceFileSiz
13fa0 65 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  e;...alias Setup
13fb0 47 65 74 53 6f 75 72 63 65 49 6e 66 6f 41 20 53  GetSourceInfoA S
13fc0 65 74 75 70 47 65 74 53 6f 75 72 63 65 49 6e 66  etupGetSourceInf
13fd0 6f 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  o;...alias Setup
13fe0 47 65 74 53 74 72 69 6e 67 46 69 65 6c 64 41 20  GetStringFieldA 
13ff0 53 65 74 75 70 47 65 74 53 74 72 69 6e 67 46 69  SetupGetStringFi
14000 65 6c 64 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  eld;...alias Set
14010 75 70 47 65 74 54 61 72 67 65 74 50 61 74 68 41  upGetTargetPathA
14020 20 53 65 74 75 70 47 65 74 54 61 72 67 65 74 50   SetupGetTargetP
14030 61 74 68 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ath;...alias Set
14040 75 70 49 6e 69 74 69 61 6c 69 7a 65 46 69 6c 65  upInitializeFile
14050 4c 6f 67 41 20 53 65 74 75 70 49 6e 69 74 69 61  LogA SetupInitia
14060 6c 69 7a 65 46 69 6c 65 4c 6f 67 3b 0d 0a 09 61  lizeFileLog;...a
14070 6c 69 61 73 20 53 65 74 75 70 49 6e 73 74 61 6c  lias SetupInstal
14080 6c 46 69 6c 65 41 20 53 65 74 75 70 49 6e 73 74  lFileA SetupInst
14090 61 6c 6c 46 69 6c 65 3b 0d 0a 09 61 6c 69 61 73  allFile;...alias
140a0 20 53 65 74 75 70 49 6e 73 74 61 6c 6c 46 69 6c   SetupInstallFil
140b0 65 45 78 41 20 53 65 74 75 70 49 6e 73 74 61 6c  eExA SetupInstal
140c0 6c 46 69 6c 65 45 78 3b 0d 0a 09 61 6c 69 61 73  lFileEx;...alias
140d0 20 53 65 74 75 70 49 6e 73 74 61 6c 6c 46 69 6c   SetupInstallFil
140e0 65 73 46 72 6f 6d 49 6e 66 53 65 63 74 69 6f 6e  esFromInfSection
140f0 41 20 53 65 74 75 70 49 6e 73 74 61 6c 6c 46 69  A SetupInstallFi
14100 6c 65 73 46 72 6f 6d 49 6e 66 53 65 63 74 69 6f  lesFromInfSectio
14110 6e 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  n;...alias Setup
14120 49 6e 73 74 61 6c 6c 46 72 6f 6d 49 6e 66 53 65  InstallFromInfSe
14130 63 74 69 6f 6e 41 20 53 65 74 75 70 49 6e 73 74  ctionA SetupInst
14140 61 6c 6c 46 72 6f 6d 49 6e 66 53 65 63 74 69 6f  allFromInfSectio
14150 6e 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  n;...alias Setup
14160 49 6e 73 74 61 6c 6c 53 65 72 76 69 63 65 73 46  InstallServicesF
14170 72 6f 6d 49 6e 66 53 65 63 74 69 6f 6e 41 20 53  romInfSectionA S
14180 65 74 75 70 49 6e 73 74 61 6c 6c 53 65 72 76 69  etupInstallServi
14190 63 65 73 46 72 6f 6d 49 6e 66 53 65 63 74 69 6f  cesFromInfSectio
141a0 6e 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  n;...alias Setup
141b0 49 6e 73 74 61 6c 6c 53 65 72 76 69 63 65 73 46  InstallServicesF
141c0 72 6f 6d 49 6e 66 53 65 63 74 69 6f 6e 45 78 41  romInfSectionExA
141d0 20 53 65 74 75 70 49 6e 73 74 61 6c 6c 53 65 72   SetupInstallSer
141e0 76 69 63 65 73 46 72 6f 6d 49 6e 66 53 65 63 74  vicesFromInfSect
141f0 69 6f 6e 45 78 3b 0d 0a 09 61 6c 69 61 73 20 53  ionEx;...alias S
14200 65 74 75 70 49 74 65 72 61 74 65 43 61 62 69 6e  etupIterateCabin
14210 65 74 41 20 53 65 74 75 70 49 74 65 72 61 74 65  etA SetupIterate
14220 43 61 62 69 6e 65 74 3b 0d 0a 09 61 6c 69 61 73  Cabinet;...alias
14230 20 53 65 74 75 70 4c 6f 67 45 72 72 6f 72 41 20   SetupLogErrorA 
14240 53 65 74 75 70 4c 6f 67 45 72 72 6f 72 3b 0d 0a  SetupLogError;..
14250 09 61 6c 69 61 73 20 53 65 74 75 70 4c 6f 67 46  .alias SetupLogF
14260 69 6c 65 41 20 53 65 74 75 70 4c 6f 67 46 69 6c  ileA SetupLogFil
14270 65 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  e;...alias Setup
14280 4f 70 65 6e 41 70 70 65 6e 64 49 6e 66 46 69 6c  OpenAppendInfFil
14290 65 41 20 53 65 74 75 70 4f 70 65 6e 41 70 70 65  eA SetupOpenAppe
142a0 6e 64 49 6e 66 46 69 6c 65 3b 0d 0a 09 61 6c 69  ndInfFile;...ali
142b0 61 73 20 53 65 74 75 70 4f 70 65 6e 49 6e 66 46  as SetupOpenInfF
142c0 69 6c 65 41 20 53 65 74 75 70 4f 70 65 6e 49 6e  ileA SetupOpenIn
142d0 66 46 69 6c 65 3b 0d 0a 09 61 6c 69 61 73 20 53  fFile;...alias S
142e0 65 74 75 70 50 72 6f 6d 70 74 46 6f 72 44 69 73  etupPromptForDis
142f0 6b 41 20 53 65 74 75 70 50 72 6f 6d 70 74 46 6f  kA SetupPromptFo
14300 72 44 69 73 6b 3b 0d 0a 09 61 6c 69 61 73 20 53  rDisk;...alias S
14310 65 74 75 70 51 75 65 72 79 44 72 69 76 65 73 49  etupQueryDrivesI
14320 6e 44 69 73 6b 53 70 61 63 65 4c 69 73 74 41 20  nDiskSpaceListA 
14330 53 65 74 75 70 51 75 65 72 79 44 72 69 76 65 73  SetupQueryDrives
14340 49 6e 44 69 73 6b 53 70 61 63 65 4c 69 73 74 3b  InDiskSpaceList;
14350 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 51 75  ...alias SetupQu
14360 65 72 79 46 69 6c 65 4c 6f 67 41 20 53 65 74 75  eryFileLogA Setu
14370 70 51 75 65 72 79 46 69 6c 65 4c 6f 67 3b 0d 0a  pQueryFileLog;..
14380 09 61 6c 69 61 73 20 53 65 74 75 70 51 75 65 72  .alias SetupQuer
14390 79 49 6e 66 46 69 6c 65 49 6e 66 6f 72 6d 61 74  yInfFileInformat
143a0 69 6f 6e 41 20 53 65 74 75 70 51 75 65 72 79 49  ionA SetupQueryI
143b0 6e 66 46 69 6c 65 49 6e 66 6f 72 6d 61 74 69 6f  nfFileInformatio
143c0 6e 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  n;...alias Setup
143d0 51 75 65 72 79 49 6e 66 4f 72 69 67 69 6e 61 6c  QueryInfOriginal
143e0 46 69 6c 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 41  FileInformationA
143f0 20 53 65 74 75 70 51 75 65 72 79 49 6e 66 4f 72   SetupQueryInfOr
14400 69 67 69 6e 61 6c 46 69 6c 65 49 6e 66 6f 72 6d  iginalFileInform
14410 61 74 69 6f 6e 3b 0d 0a 09 61 6c 69 61 73 20 53  ation;...alias S
14420 65 74 75 70 51 75 65 72 79 49 6e 66 56 65 72 73  etupQueryInfVers
14430 69 6f 6e 49 6e 66 6f 72 6d 61 74 69 6f 6e 41 20  ionInformationA 
14440 53 65 74 75 70 51 75 65 72 79 49 6e 66 56 65 72  SetupQueryInfVer
14450 73 69 6f 6e 49 6e 66 6f 72 6d 61 74 69 6f 6e 3b  sionInformation;
14460 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 51 75  ...alias SetupQu
14470 65 72 79 53 6f 75 72 63 65 4c 69 73 74 41 20 53  erySourceListA S
14480 65 74 75 70 51 75 65 72 79 53 6f 75 72 63 65 4c  etupQuerySourceL
14490 69 73 74 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ist;...alias Set
144a0 75 70 51 75 65 72 79 53 70 61 63 65 52 65 71 75  upQuerySpaceRequ
144b0 69 72 65 64 4f 6e 44 72 69 76 65 41 20 53 65 74  iredOnDriveA Set
144c0 75 70 51 75 65 72 79 53 70 61 63 65 52 65 71 75  upQuerySpaceRequ
144d0 69 72 65 64 4f 6e 44 72 69 76 65 3b 0d 0a 09 61  iredOnDrive;...a
144e0 6c 69 61 73 20 53 65 74 75 70 51 75 65 75 65 43  lias SetupQueueC
144f0 6f 70 79 41 20 53 65 74 75 70 51 75 65 75 65 43  opyA SetupQueueC
14500 6f 70 79 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  opy;...alias Set
14510 75 70 51 75 65 75 65 43 6f 70 79 49 6e 64 69 72  upQueueCopyIndir
14520 65 63 74 41 20 53 65 74 75 70 51 75 65 75 65 43  ectA SetupQueueC
14530 6f 70 79 49 6e 64 69 72 65 63 74 3b 0d 0a 09 61  opyIndirect;...a
14540 6c 69 61 73 20 53 65 74 75 70 51 75 65 75 65 43  lias SetupQueueC
14550 6f 70 79 53 65 63 74 69 6f 6e 41 20 53 65 74 75  opySectionA Setu
14560 70 51 75 65 75 65 43 6f 70 79 53 65 63 74 69 6f  pQueueCopySectio
14570 6e 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  n;...alias Setup
14580 51 75 65 75 65 44 65 66 61 75 6c 74 43 6f 70 79  QueueDefaultCopy
14590 41 20 53 65 74 75 70 51 75 65 75 65 44 65 66 61  A SetupQueueDefa
145a0 75 6c 74 43 6f 70 79 3b 0d 0a 09 61 6c 69 61 73  ultCopy;...alias
145b0 20 53 65 74 75 70 51 75 65 75 65 44 65 6c 65 74   SetupQueueDelet
145c0 65 41 20 53 65 74 75 70 51 75 65 75 65 44 65 6c  eA SetupQueueDel
145d0 65 74 65 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ete;...alias Set
145e0 75 70 51 75 65 75 65 44 65 6c 65 74 65 53 65 63  upQueueDeleteSec
145f0 74 69 6f 6e 41 20 53 65 74 75 70 51 75 65 75 65  tionA SetupQueue
14600 44 65 6c 65 74 65 53 65 63 74 69 6f 6e 3b 0d 0a  DeleteSection;..
14610 09 61 6c 69 61 73 20 53 65 74 75 70 51 75 65 75  .alias SetupQueu
14620 65 52 65 6e 61 6d 65 41 20 53 65 74 75 70 51 75  eRenameA SetupQu
14630 65 75 65 52 65 6e 61 6d 65 3b 0d 0a 09 61 6c 69  eueRename;...ali
14640 61 73 20 53 65 74 75 70 51 75 65 75 65 52 65 6e  as SetupQueueRen
14650 61 6d 65 53 65 63 74 69 6f 6e 41 20 53 65 74 75  ameSectionA Setu
14660 70 51 75 65 75 65 52 65 6e 61 6d 65 53 65 63 74  pQueueRenameSect
14670 69 6f 6e 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74  ion;...alias Set
14680 75 70 52 65 6d 6f 76 65 46 69 6c 65 4c 6f 67 45  upRemoveFileLogE
14690 6e 74 72 79 41 20 53 65 74 75 70 52 65 6d 6f 76  ntryA SetupRemov
146a0 65 46 69 6c 65 4c 6f 67 45 6e 74 72 79 3b 0d 0a  eFileLogEntry;..
146b0 09 61 6c 69 61 73 20 53 65 74 75 70 52 65 6d 6f  .alias SetupRemo
146c0 76 65 46 72 6f 6d 44 69 73 6b 53 70 61 63 65 4c  veFromDiskSpaceL
146d0 69 73 74 41 20 53 65 74 75 70 52 65 6d 6f 76 65  istA SetupRemove
146e0 46 72 6f 6d 44 69 73 6b 53 70 61 63 65 4c 69 73  FromDiskSpaceLis
146f0 74 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  t;...alias Setup
14700 52 65 6d 6f 76 65 46 72 6f 6d 53 6f 75 72 63 65  RemoveFromSource
14710 4c 69 73 74 41 20 53 65 74 75 70 52 65 6d 6f 76  ListA SetupRemov
14720 65 46 72 6f 6d 53 6f 75 72 63 65 4c 69 73 74 3b  eFromSourceList;
14730 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 52 65  ...alias SetupRe
14740 6d 6f 76 65 49 6e 73 74 61 6c 6c 53 65 63 74 69  moveInstallSecti
14750 6f 6e 46 72 6f 6d 44 69 73 6b 53 70 61 63 65 4c  onFromDiskSpaceL
14760 69 73 74 41 20 53 65 74 75 70 52 65 6d 6f 76 65  istA SetupRemove
14770 49 6e 73 74 61 6c 6c 53 65 63 74 69 6f 6e 46 72  InstallSectionFr
14780 6f 6d 44 69 73 6b 53 70 61 63 65 4c 69 73 74 3b  omDiskSpaceList;
14790 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 52 65  ...alias SetupRe
147a0 6d 6f 76 65 53 65 63 74 69 6f 6e 46 72 6f 6d 44  moveSectionFromD
147b0 69 73 6b 53 70 61 63 65 4c 69 73 74 41 20 53 65  iskSpaceListA Se
147c0 74 75 70 52 65 6d 6f 76 65 53 65 63 74 69 6f 6e  tupRemoveSection
147d0 46 72 6f 6d 44 69 73 6b 53 70 61 63 65 4c 69 73  FromDiskSpaceLis
147e0 74 3b 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70  t;...alias Setup
147f0 52 65 6e 61 6d 65 45 72 72 6f 72 41 20 53 65 74  RenameErrorA Set
14800 75 70 52 65 6e 61 6d 65 45 72 72 6f 72 3b 0d 0a  upRenameError;..
14810 09 61 6c 69 61 73 20 53 65 74 75 70 53 63 61 6e  .alias SetupScan
14820 46 69 6c 65 51 75 65 75 65 41 20 53 65 74 75 70  FileQueueA Setup
14830 53 63 61 6e 46 69 6c 65 51 75 65 75 65 3b 0d 0a  ScanFileQueue;..
14840 09 61 6c 69 61 73 20 53 65 74 75 70 53 65 74 44  .alias SetupSetD
14850 69 72 65 63 74 6f 72 79 49 64 41 20 53 65 74 75  irectoryIdA Setu
14860 70 53 65 74 44 69 72 65 63 74 6f 72 79 49 64 3b  pSetDirectoryId;
14870 0d 0a 09 61 6c 69 61 73 20 53 65 74 75 70 53 65  ...alias SetupSe
14880 74 44 69 72 65 63 74 6f 72 79 49 64 45 78 41 20  tDirectoryIdExA 
14890 53 65 74 75 70 53 65 74 44 69 72 65 63 74 6f 72  SetupSetDirector
148a0 79 49 64 45 78 3b 0d 0a 09 61 6c 69 61 73 20 53  yIdEx;...alias S
148b0 65 74 75 70 53 65 74 46 69 6c 65 51 75 65 75 65  etupSetFileQueue
148c0 41 6c 74 65 72 6e 61 74 65 50 6c 61 74 66 6f 72  AlternatePlatfor
148d0 6d 41 20 53 65 74 75 70 53 65 74 46 69 6c 65 51  mA SetupSetFileQ
148e0 75 65 75 65 41 6c 74 65 72 6e 61 74 65 50 6c 61  ueueAlternatePla
148f0 74 66 6f 72 6d 3b 0d 0a 09 61 6c 69 61 73 20 53  tform;...alias S
14900 65 74 75 70 53 65 74 50 6c 61 74 66 6f 72 6d 50  etupSetPlatformP
14910 61 74 68 4f 76 65 72 72 69 64 65 41 20 53 65 74  athOverrideA Set
14920 75 70 53 65 74 50 6c 61 74 66 6f 72 6d 50 61 74  upSetPlatformPat
14930 68 4f 76 65 72 72 69 64 65 3b 0d 0a 09 61 6c 69  hOverride;...ali
14940 61 73 20 53 65 74 75 70 53 65 74 53 6f 75 72 63  as SetupSetSourc
14950 65 4c 69 73 74 41 20 53 65 74 75 70 53 65 74 53  eListA SetupSetS
14960 6f 75 72 63 65 4c 69 73 74 3b 0d 0a 7d 0d 0a     ourceList;..}..