name    setupx
type    win16
owner	setupapi

1    stub     WEP
2    pascal16 IpOpen(str ptr) IpOpen16
3    stub     IpOpenAppend #(str word)
4    pascal16 IpClose(word) IpClose16
5    stub     IpGetLongField #(word ptr word ptr)
6    stub     IpGetStringField #(word ptr word ptr word ptr)
7    stub     IpFindFirstLine #(word str str ptr)
8    stub     IpGetLineCount #(word str ptr)
9    stub     IpGetFieldCount #(word ptr ptr)
10   stub     IpGetIntField #(word ptr word ptr)
11   stub     IpFindNextLine #(word ptr)
12   stub     IpGetFileName #(word ptr word)
13   pascal16 VcpQueueCopy(str str str str word word ptr word long) VcpQueueCopy16
14   stub     NOAUTORUNWNDPROC
15   stub     __DEBUGMSG
16   stub     __ASSERTMSG
17   pascal16 VcpQueueDelete(str str word long) VcpQueueDelete16
18   stub     TpOpenFile #(str ptr word)
19   stub     TpCloseFile #(word)
20   stub     TpOpenSection #(word ptr str word)
21   stub     TpCloseSection #(word)
22   stub     TpCommitSection #(word word str word)
23   stub     TpGetLine #(word str str word word ptr)
24   stub     TpGetNextLine #(word str str ptr)
25   stub     TpInsertLine #(word str str word word word)
26   stub     TpReplaceLine #(word str str word word word)
27   stub     TpDeleteLine #(word word word word)
28   stub     TpMoveLine #(word word word word word word)
29   stub     TpGetLineContents #(word ptr word ptr word word word)
30   stub     TpGetPrivateProfileString #(str str str ptr word str)
31   stub     TpWritePrivateProfileString #(str str str str)
32   stub     TpGetProfileString #(str str str ptr word)
33   pascal16 CtlSetLdd(ptr) CtlSetLdd16
34   pascal16 CtlGetLdd(ptr) CtlGetLdd16
35   pascal16 CtlFindLdd(ptr) CtlFindLdd16
36   pascal16 CtlAddLdd(ptr) CtlAddLdd16
37   pascal16 CtlDelLdd(word) CtlDelLdd16
38   pascal16 CtlGetLddPath(word ptr) CtlGetLddPath16
39   stub     SURegCloseKey #(word)
40   stub     SURegCreateKey #(word)
41   stub     SURegDeleteKey #(word str)
42   stub     SURegDeleteValue #(word str)
43   stub     SURegEnumKey #(word long ptr long)
44   stub     SURegEnumValue #(word long str ptr ptr ptr ptr ptr)
45   stub     SURegFlush #()
46   stub     SURegInit #()
47   pascal   SURegOpenKey(word str ptr) SURegOpenKey
48   stub     SURegQueryValue
49   stub     SURegQueryValue16 #(word str ptr ptr)
50   pascal   SURegQueryValueEx(long str ptr ptr ptr ptr) SURegQueryValueEx
51   stub     SURegSetValue
52   stub     SURegSetValue16 #(word str long ptr long)
53   stub     SURegSetValueEx #(word str long long ptr long)
54   stub     SURegSaveKey #(word str ptr)
55   stub     SURegLoadKey #(word str str)
56   stub     SURegUnLoadKey #(word str)
60   stub     DiskInfoFromLdid #(word ptr)
61   stub     suErrorToIds #(word word)
62   stub     TPWriteProfileString #(str str str)
63   stub     SURPLSETUP
# does SUSTORELDIDPATH set the path of an LDID in the registry ?
64   stub     SUSTORELDIDPATH
65   stub     WILDCARDSTRCMPI
101  pascal16 GenInstall(word str word) GenInstall16
102  stub     GenWinInitRename #(str str word)
103  pascal   GenFormStrWithoutPlaceHolders(str str word) GenFormStrWithoutPlaceHolders16
104  stub     SETUPX
105  stub     CfgSetupMerge #(word)
106  stub     INITDEPENDANTLDIDS
107  stub     CFGOBJFINDKEYCMD
108  stub     GenSURegSetValueEx
109  stub     GENINSTALLWITHQUEUE
110  stub     GenInstallEx #(word str word word ptr long)
111  stub     GenCopyLogConfig2Reg #(word word str)
112  stub     SUGetSetSetupFlags #(ptr word)
114  stub     CFGPARSELINE # returns array
115  stub     CFGSETAUTOPROCESS
116  stub     CFGOBJTOSTR
117  stub     CFGLNTOOBJ
118  stub     MATCHCMDEXT
119  stub     IpFindNextMatchLine #(word str ptr)
120  stub     P_SETDEFAULTOPTION
121  stub     CFGCLEANBOOT
122  stub     CFGMATCHCMDEXT
123  stub     CFGWASFILEUPDATED
124  stub     AUTOMATCHCMDEXT
125  stub     P_VALIDATEOC
126  stub     GENMAPROOTREGSTR2KEY
127  stub     P_CDROMOC
128  stub     P_MEDIAOC
129  stub     CFGCLEAN1STBOOT
130  stub     suFormatMessage
131  stub     suvFormatMessage #(word str str word ptr)
132  stub     suFormatMessageBox
#133  stub     suHelp # W98SE conflict !!
135  stub     suHelp #(word word)
#135  stub     P_WEBTVOC # W98SE conflict !!
136  stub     P_WBEMOC
137  stub     P_THEMESOC
138  stub     P_IMAGINGOC
139  stub     P_SCHEMESOC
140  stub     suVerConflict #(word ptr word ptr)
141  stub     suVerConflictInit #(word)
142  stub     suVerConflictTerm #(ptr)
# Emergency Boot Disk
143  stub     suCreateEBD #(word ptr long)
144  stub     suCopyToEBD
145  stub     sxIsMSDOS7Running #()
150  stub     DS_INIT
151  stub     DS_DESTROY
152  stub     DS_SSYNCDRIVES
153  stub     DS_GETDRIVEDATA
154  stub     DS_ADDSECTION
155  stub     DS_ENABLESECTION
156  stub     DS_DISABLESECTION
157  stub     DS_SETSWAPSIZE
158  stub     DS_SETREQUIREDPAD
159  stub     DS_SETAVAILABLEPAD
160  stub     SXUPDATEDS
170  stub     SUSETMEM
171  stub     WriteDMFBootData #(word ptr word)
200  pascal   VcpOpen(segptr ptr) VcpOpen16
201  pascal   VcpClose(word str) VcpClose16
202  pascal16 vcpDefCallbackProc(ptr word word long long) vcpDefCallbackProc16
203  stub     vcpEnumFiles #(ptr long)
204  pascal16 VcpQueueRename(str str str str word word long) VcpQueueRename16
205  pascal16 vsmGetStringName(word ptr word) vsmGetStringName16
206  pascal16 vsmStringDelete(word) vsmStringDelete16
207  pascal16 vsmStringAdd(str) vsmStringAdd16
208  pascal   vsmGetStringRawName(word) vsmGetStringRawName16
209  stub     IpSaveRestorePosition #(word word)
210  pascal16 IpGetProfileString(word str str ptr word) IpGetProfileString16
211  stub     IpOpenEx #(str ptr word)
212  stub     IpOpenAppendEx #(str word word)
213  pascal16 vcpUICallbackProc(ptr word word long long) vcpUICallbackProc16
214  stub     VcpAddMRUPath #(str)
300  stub     DiBuildCompatDrvList #(ptr)
301  stub     DiBuildClassDrvList #(ptr)
302  stub     DiDestroyDriverNodeList #(ptr)
303  stub     DiCreateDeviceInfo #(ptr str long str str word)
304  pascal16 DiGetClassDevs(ptr str word word) DiGetClassDevs16
305  stub     DiDestroyDeviceInfoList #(ptr)
306  stub     DiRemoveDevice #(ptr)
308  stub     DiCallClassInstaller #(word ptr)
309  stub     DiCreateDriverNode #(ptr word word word str str str str str str long)
310  stub     DiDrawMiniIcon
311  stub     DiGetClassBitmapIndex #(str ptr)
312  stub     DiSelectDevice #(ptr)
313  stub     DiInstallDevice #(ptr)
314  stub     DiLoadClassIcon #(str ptr ptr)
315  stub     DiAskForOEMDisk #(ptr)
316  stub     Display_SetMode #(ptr word word word)
317  stub     Display_ClassInstaller #(word ptr)
318  stub     DiCreateDevRegKey #(ptr ptr word str word)
319  stub     DiOpenDevRegKey #(ptr ptr word)
320  stub     DiInstallDrvSection #(str str str str long)
321  stub     DiInstallClass #(str long)
322  stub     DiOpenClassRegKey #(ptr str)
323  stub     Display_SetFontSize #(str)
324  stub     Display_OpenFontSizeKey #(ptr)
325  stub     DiBuildClassDrvListFromOldInf #(ptr str ptr long)
326  stub     DiIsThereNeedToCopy #(word long)
333  stub     DiChangeState #(ptr long long long)
334  stub     WALKSUBTREE
340  stub     GetFctn #(word str str ptr ptr)
341  stub     DiBuildClassInfoList #(ptr)
342  stub     DiDestroyClassInfoList #(ptr)
343  stub     DiGetDeviceClassInfo #(ptr ptr)
344  stub     DiDeleteDevRegKey #(ptr word)
350  stub     DiSelectOEMDrv #(word ptr)
351  stub     DiGetINFClass #(str word str long)
353  stub     DIPICKBESTDRIVER
355  stub     COPYINFFILE
360  stub     GenInfLCToDevNode #(word str  word word long)
361  stub     GETDOSMESSAGE
362  stub     Mouse_ClassInstaller #(word ptr)
363  stub     sxCompareDosAppVer #(str str)
364  stub     MONITOR_CLASSINSTALLER
365  stub     FCEGETRESDESOFFSET
366  stub     FCEGETALLOCVALUE
367  stub     FCEADDRESDES
368  stub     FCEDELETERESDES
369  stub     FCEINIT
370  stub     FCEGETRESDES
371  stub     FCEGETFIRSTVALUE
372  stub     FCEGETOTHERVALUE
373  stub     FCEGETVALIDATEVALUE
374  stub     FCEWRITETHISFORCEDCONFIGNOW
375  stub     SUCreatePropertySheetPage #(ptr)
376  stub     SUDestroyPropertySheetPage #(word)
377  stub     SUPropertySheet #(ptr)
380  stub     DiReadRegLogConf #(ptr str ptr ptr)
381  stub     DiReadRegConf #(ptr ptr ptr long)
390  stub     DiBuildPotentialDuplicatesList #(ptr ptr long ptr ptr)
395  stub     InitSubstrData #(ptr str)
396  stub     GetFirstSubstr #(ptr)
397  stub     GetNextSubstr #(ptr)
398  stub     INITSUBSTRDATAEX
400  stub     bIsFileInVMM32 #(str)
401  stub     DiInstallDriverFiles #(ptr)
405  stub     DiBuildClassInfoListEx #(ptr long)
406  stub     DiGetClassDevsEx #(ptr str str word word)
407  stub     DiCopyRegSubKeyValue #(word str str str)
408  stub     IPGETDRIVERDATE
409  stub     IPGETDRIVERVERSION
410  stub     IpGetVersionString #(str str ptr word str)
411  pascal   VcpExplain(ptr long) VcpExplain16
412  stub     DiBuildDriverIndex #(word)
413  stub     DiAddSingleInfToDrvIdx #(str word word)
414  stub     FCEGETFLAGS
450  stub     UiMakeDlgNonBold #(word)
451  stub     UiDeleteNonBoldFont #(word)
500  stub     SUEBDPAGE
501  stub     SUOCPAGE
502  stub     SXLISTSUBPROC
503  stub     SXFILLLB
504  stub     SXOCPAGEDLG
506  stub     SXOCBATCHSETTINGS
507  stub     SXOCFIXNEEDS
508  pascal16 CtlSetLddPath(word str) CtlSetLddPath16
509  stub     SXCALLOCPROC
510  stub     BUILDINFOCS
511  stub     BUILDREGOCS
512  stub     DELETEOCS
520  stub     DiBuildClassDrvInfoList #(ptr)
521  stub     DiBuildCompatDrvInfoList #(ptr)
522  stub     DiDestroyDrvInfoList #(ptr)
523  stub     DiConvertDriverInfoToDriverNode #(ptr ptr)
524  stub     DISELECTBESTCOMPATDRV
525  stub     FirstBootMoveToDOSSTART #(str word)
526  stub     DOSOptEnableCurCfg #(str)
527  pascal16 InstallHinfSection(word word str word) InstallHinfSection16
528  stub     SXMAKEUNCPATH
529  stub     SXISSBSSERVERFILE
530  stub     SXFINDBATCHFILES
531  stub     ISPANEUROPEAN
532  stub     UPGRADENIGGLINGS
533  stub     DISPLAY_ISSECONDDISPLAY
534  stub     ISWINDOWSFILE
540  stub     VERIFYSELECTEDDRIVER
575  stub     SXCALLMIGRATIONDLLS
576  stub     SXCALLMIGRATIONDLLS_RUNDLL
600  stub     PidConstruct #(str str str word)
601  stub     PidValidate #(str str)
602  stub     GETJAPANESEKEYBOARDTYPE
610  stub     CRC32COMPUTE
621  stub     SXSAVEINFO
622  stub     SXADDPAGEEX
623  stub     OPKREMOVEINSTALLEDNETDEVICE
640  stub     DOFIRSTRUNSCREENS
700  stub     SXSHOWREBOOTDLG
701  stub     SXSHOWREBOOTDLG_RUNDLL
750  stub     UIPOSITIONDIALOG
775  stub     ASPICLEAN
800  stub     EXTRACTCABFILE
825  stub     PIDGEN3
826  stub     GETSETUPINFO
827  stub     SETSETUPINFO
828  stub     GETKEYBOARDOPTIONS
829  stub     GETLOCALEOPTIONS
830  stub     SETINTLOPTIONS
831  stub     GETPRODUCTTYPE
832  stub     ISOPKMODE
833  stub     AUDITONETIMEINSTALL
834  stub     DISKDUP
835  stub     OPKPREINSTALL
836  stub     ISAUDITMODE
837  stub     ISAUDITAUTO
838  stub     GETVALIDEULA
