MSFN Forum: Is it possible in conjunction with SETUPCOPYOEM.EXE? - MSFN Forum

Jump to content



  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

Is it possible in conjunction with SETUPCOPYOEM.EXE? To pre-copy oem inf files with a batch file... Rate Topic: -----

#1 User is offline   donjuan 

  • Newbie
  • Group: Members
  • Posts: 19
  • Joined: 18-February 05

Posted 08 April 2006 - 09:25 AM

Hi all,
I'll ask directly.Is it possible to pre-copy the inf files which are in driverpacks (7zipped or else doesnt matter) to windows/inf folder and again pre-add those inf entries into the registry just before setup ends by a prepared silent winrar sfx ? The reason why I am asking this is that, everytime ı install windows to a system, it takes so much time to integrate the infs to the installation and setupcopyoeminf.exe integrates every inf file one by one very very slowly.

I mean it would be great if we can prepare a winrar silent sfx so to install these infs quickly and silently and add the registry entries as needed.By the way, I know that everytime I change my driverpack content, I must re-prepare this winrar sfx again but I only want to know is it enough only to put the oem infs and reg entries and add the sfx comment? Or should I first make a virtual pc clean installation and then after setup, gather all infs, Or should I just gather the infs from the driverpacks directly?

Plase I wanna decrease the time of my setup and want also all the drivers recognized and integrated after windows windows setup.

Thanks in advance..


#2 User is offline   RogueSpear 

  • OS: SimplyMEPIS
  • Group: Supreme Sponsor
  • Posts: 1,529
  • Joined: 18-September 04

Posted 08 April 2006 - 12:04 PM

You may want to check out a little project I started that addresses this issue. I originally made this with idea of having it run from RunOnceEx, which is does, but I discovered just today that it's pretty adaptable to pre-existing installs.

I did a full reinstall on my wife's laptop about a month ago, and just today I decided to try this out and worked perfectly. My method does not use setupcopyoeminf.exe. Instead I simply copy over the drivers to %SystemRoot%\D and run SetDevicePath.exe against that directory. The script will even cab up the compressable files if you want.

One benefit is that you can easily come back to the computer a month or however long later, delete the driver directory, run my script again and you'll now have builtin support for the latest drivers. I'm not too comfortable with the way that setupcopyoeminf.exe works so I came up with this method.

#3 User is offline   donjuan 

  • Newbie
  • Group: Members
  • Posts: 19
  • Joined: 18-February 05

Posted 09 April 2006 - 01:59 AM

@RogueSpear

View PostRogueSpear, on Apr 8 2006, 12:04 PM, said:

You may want to check out a little project I started that addresses this issue. I originally made this with idea of having it run from RunOnceEx, which is does, but I discovered just today that it's pretty adaptable to pre-existing installs.

I did a full reinstall on my wife's laptop about a month ago, and just today I decided to try this out and worked perfectly. My method does not use setupcopyoeminf.exe. Instead I simply copy over the drivers to %SystemRoot%\D and run SetDevicePath.exe against that directory. The script will even cab up the compressable files if you want.

One benefit is that you can easily come back to the computer a month or however long later, delete the driver directory, run my script again and you'll now have builtin support for the latest drivers. I'm not too comfortable with the way that setupcopyoeminf.exe works so I came up with this method.


Thanks for the info and forwarding me to to your page.I believe your script is useful and I will try to use it in the future but my point was to pre-copy especially the pnf files, which I suppose includes the path information to the drivers.Let me explain more precisely;

For example, suppose I have my drivers in c:\windows\d folder, precopied by windows setup.At the end of setup I do not want to use setupcopyoeminf.exe because it takes so much time.And for this reason I setup windows to a virtual machine and setupcopyoeminf.exe does its job for me for once.And after that I figure out the oem<sequence number>.inf and oem<sequencenumber>.pnf files and prepare a silent sfx so that instead of setupcopyoeminf.exe, it extracts all the pnf and inf files to windows\inf dir.


My point is exactly as above.

#4 User is offline   RogueSpear 

  • OS: SimplyMEPIS
  • Group: Supreme Sponsor
  • Posts: 1,529
  • Joined: 18-September 04

Posted 09 April 2006 - 07:46 AM

Good luck to you..

#5 User is offline   donjuan 

  • Newbie
  • Group: Members
  • Posts: 19
  • Joined: 18-February 05

Posted 09 April 2006 - 05:13 PM

I mean, will my sequence work in your opinion?

#6 User is offline   RogueSpear 

  • OS: SimplyMEPIS
  • Group: Supreme Sponsor
  • Posts: 1,529
  • Joined: 18-September 04

Posted 09 April 2006 - 06:30 PM

I really forsee some problems with that method. I'm not really expert enough on the procedure that setupcopyoeminf.exe goes through. The procedure that my script goes through definately works, as I have tested it extensively. Also it's very easy to update a computer to a newer set of drivers if you ever wanted to and very easy to select exactly which drivers you want to keep. Lastly, while it may take a little more hard drive space, it's a relatively simple method that has not failed me yet, the integration is extremely fast from a Method 1 source and acceptable from a Method 2 source.

One of the problems I have with setupcopyoeminf.exe is recovering from it. It doesn't seem so easily reversed.

#7 User is offline   schalti 

  • Junior
  • Pip
  • Group: Members
  • Posts: 65
  • Joined: 22-July 04

Posted 12 April 2006 - 04:28 AM

View Postdonjuan, on Apr 9 2006, 01:59 AM, said:

Thanks for the info and forwarding me to to your page.I believe your script is useful and I will try to use it in the future but my point was to pre-copy especially the pnf files, which I suppose includes the path information to the drivers.Let me explain more precisely;

For example, suppose I have my drivers in c:\windows\d folder, precopied by windows setup.At the end of setup I do not want to use setupcopyoeminf.exe because it takes so much time.And for this reason I setup windows to a virtual machine and setupcopyoeminf.exe does its job for me for once.And after that I figure out the oem<sequence number>.inf and oem<sequencenumber>.pnf files and prepare a silent sfx so that instead of setupcopyoeminf.exe, it extracts all the pnf and inf files to windows\inf dir.


It might work, however you will not have the .cat files (driver signature) in your %windir%\system32\CatRoot\{GUID} directory and there will be errors in %windir%\setupapi.log, because the API call SetupCopyOEMInf (that's why this tool has its strange name :) ) in setupapi.dll is one of the few official and supported ways to properly integrate a driver in Windows 2K/XP/2K3. Simply copying oem<number>.INF/oem<number>.PNF/oem<number>.CAT files is not a supported way to do it.

Hopefully we will see an improved version of setupapi.dll that will handle the API call SetupCopyOEMInf faster in XP SP3.

#8 User is offline   schalti 

  • Junior
  • Pip
  • Group: Members
  • Posts: 65
  • Joined: 22-July 04

Posted 12 April 2006 - 04:58 AM

View PostRogueSpear, on Apr 9 2006, 06:30 PM, said:

I'm not really expert enough on the procedure that setupcopyoeminf.exe goes through.

...

One of the problems I have with setupcopyoeminf.exe is recovering from it. It doesn't seem so easily reversed.


The API call SetupCopyOEMInf (part of setupapi.dll) will do the following things:
- copy the INF file to %windir%\inf\oem<sequencenumber>.inf
- create %windir%\inf\oem<sequencenumber>.PNF
PNF files are very important because they contain the path to the original location of the INF file. That's the way Windows finds the driver files when it wants to install the driver.
- update the %windir%\inf\INFCACHE.1
INFCACHE.1 is an Index file that will allow Windows PnP to find a driver very quickly

PLUS if it is a signed driver:
- copy the CAT file to %windir%\system32\CatRoot\<GUID>\oem<sequencenumber>.CAT
- update the Signature Catalogs %windir%\system32\CatRoot2\.......

This is the official way how Microsoft wants OEMs to integrate their device drivers in Windows 2K/XP/2K3. Not all OEMs do it this way, though :) .


To recover from SetupCopyOEMInf.exe means to:
- delete the correct %windir%\inf\oem<sequencenumber>.inf
- delete the corresponding %windir%\inf\oem<sequencenumber>.PNF
- delete the corresponding %windir%\system32\CatRoot\<GUID>\oem<sequencenumber>.CAT (if it is a signed driver)
I'm not sure about a mechanism that will clean %windir%\inf\INFCACHE.1 and the Signature Catalogs. Maybe when Windows will install a driver it will clean up those.

This post has been edited by schalti: 12 April 2006 - 05:02 AM


#9 User is offline   MadBoy 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 464
  • Joined: 21-February 05

Posted 12 April 2006 - 06:31 AM

I could try rewritting SetupCopyOemInf in autoit and add the backup/recover procedures but i don't realy see option how to modify those files.. (as they are not clean text)
- update the Signature Catalogs %windir%\system32\CatRoot2\.......
- update the %windir%\inf\INFCACHE.1
maybe there are some dllcalls or so? If i remember right shalti you had some .bat files that were doing the SetupCopyOemInf procedure that was later on taken by pyron with his program.


@shalti Hope you can give us much info as you can on this. Maybe then i could implement it in my Hardware Installer program.

#10 User is offline   schalti 

  • Junior
  • Pip
  • Group: Members
  • Posts: 65
  • Joined: 22-July 04

Posted 12 April 2006 - 06:59 AM

View PostMadBoy, on Apr 12 2006, 06:31 AM, said:

I could try rewritting SetupCopyOemInf in autoit and add the backup/recover procedures but i don't realy see option how to modify those files.. (as they are not clean text)
- update the Signature Catalogs %windir%\system32\CatRoot2\.......
- update the %windir%\inf\INFCACHE.1
maybe there are some dllcalls or so? If i remember right shalti you had some .bat files that were doing the SetupCopyOemInf procedure that was later on taken by pyron with his program.


@shalti Hope you can give us much info as you can on this. Maybe then i could implement it in my Hardware Installer program.


I don't think it is possible to rewrite SetupCopyOEMInf because it is an API call of setupapi.dll. You would have to disassemble setupapi.dll and write your own optimized DLL/EXE which is almost impossible. The reason why I asked Pyron to write the tool was because he already had written the tool SetDevicePath.exe which also crawls through a subdirectory structure looking for INF files. So he could use most of his existing source code. What he does in SetupCopyOEMInf.exe is to call SetupCopyOEMInf with every INF file instead of writing the path of every INF file in a list and put the list in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath as REG_EXPAND_SZ.

This whole setupapi.dll is like a black box and all we can do is to use the documented API call SetupCopyOEMInf (MSDN on SetupCopyOEMInf).

The batch files that were online for a while are useless because they call the very same API in the end but in an even slower manner. They build an INF file and in the [DefaultInstall] Section use the INF-command CopyINF (WHDC on CopyINF) which as you can see in the documentation uses the very same API call SetupCopyOEMInf in the end. So it is even slower to use this method, and you cannot speed it up.

Bad news, I know, maybe M$ will speed up the SetupCopyOEMInf API call in XP SP3 or Vista/Longhorn Server, although I hear that there are new methods for driver integration in Vista.

This post has been edited by schalti: 12 April 2006 - 07:01 AM


#11 User is offline   MadBoy 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 464
  • Joined: 21-February 05

Posted 12 April 2006 - 08:10 AM

Well i already rewrote SetDevicePath in AutoIt and added support for 64bit (since the regirstry changes). But i don't know how do SetupCopyOemInf. That's why if you can pls upload those .bat files so i can learn more about the way you did it. It's easier for me to see the way it was done by you in .bat way then by pyron in C++. If i'll get the idea maybe it will be quick enough.

#12 User is offline   schalti 

  • Junior
  • Pip
  • Group: Members
  • Posts: 65
  • Joined: 22-July 04

Posted 12 April 2006 - 10:12 AM

View PostMadBoy, on Apr 12 2006, 08:10 AM, said:

Well i already rewrote SetDevicePath in AutoIt and added support for 64bit (since the regirstry changes). But i don't know how do SetupCopyOemInf. That's why if you can pls upload those .bat files so i can learn more about the way you did it. It's easier for me to see the way it was done by you in .bat way then by pyron in C++. If i'll get the idea maybe it will be quick enough.


SetDevicePath.exe is a different story :) because you have to create a Registry Entry (REG_EXPAND_SZ) there and you have to avoid double entries if there are subdirectories with more than one INF file.

SetupCopyOEMInf is an API call in the Windows DLL setupapi.dll.

Shell script / pseudo code like this:
for /F "usebackq delims=" %%i in (`dir /S /B "%~dp0*.inf"`) do call setupapi.dll->SetupCopyOEMInf(%%i)

So you run the API call SetupCopyOEMInf from setupapi.dll with each INF file you find in the subdirectory structure. That's how Pyron's SetupCopyOEMInf.exe works.

It is possible to do an API call to a windows DLL from inside an AutoIt Script (DllOpen, DllCall, DllClose), so you can integrate SetupCopyOEMInf in your tool. I can hardly wait to see if it will be faster but I doubt it.

Like this:

$dll = DllOpen("setupapi.dll")
<loop through all INF files>
$result = DllCall($dll, "int","SetupCopyOEMInf", "<INF-Filename including path>", "", 1, 8, "", 0, 0, "")
<loop next>
DllClose($dll)

Please follow the "MSDN on SetupCopyOEMInf"-Link in the other post to find out about the parameters for the API call.

BOOL WINAPI SetupCopyOEMInf(
PCTSTR SourceInfFileName, <--- important
PCTSTR OEMSourceMediaLocation, <--- NULL
DWORD OEMSourceMediaType, <--- important, set flag SPOST_PATH (1)
DWORD CopyStyle, <--- important, set at least flag SP_COPY_NOOVERWRITE (8)
PTSTR DestinationInfFileName, <--- NULL
DWORD DestinationInfFileNameSize, <--- NULL
PDWORD RequiredSize, <--- NULL
PTSTR DestinationInfFileNameComponent <--- NULL
);

See also here:
pinvoke on SetupCopyOEMInf

Hope this helps and you will get the idea :hello:

This post has been edited by schalti: 12 April 2006 - 10:35 AM


#13 User is offline   MadBoy 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 464
  • Joined: 21-February 05

Posted 12 April 2006 - 11:01 AM

YEah i knew there is dllcall but never realy used it and didn't knew where to start :) As for SetPathDevice in autoit for now it jsut adds every dir it finds.. even those without .ini files but i'll change it soon, shouldn't be too hard (i even have idea right now how to do it so should be done soon). Was developing something else meanwhile in my script ;) I also found that there is SetupUninstallOEMInf so maybe if Install will work i can do Uninstall also ;p So even if it will a bit slower it should be better. Calling external program from autoit makes it harder for me to control. Btw since you seems to be good with dllcalls, maybe you know a way for dllcall that will change driver signing the way it's done by hand with Properties/Hardware/DriverSigning/ignore. I tried to search a lot about it but no good way. It can be done in autoit using it's capabilities but it will be language dependant.

BOOL SetupUninstallOEMInf(
PCWSTR InfFileName,
DWORD Flags,
PVOID Reserved
);

#14 User is offline   MadBoy 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 464
  • Joined: 21-February 05

Posted 12 April 2006 - 01:39 PM

Maybe i am too tired but everytime i call it @error is always = 0 which means everything is great ;p It's always fine even if i change $dll_exe = DllOpen("setupapi.dll") to $dll_exe = DllOpen("setupapi11.dll") ;p

DllCall($dll_exe, "int","SetupCopyOEMInf", $full_path_to_inf, "", 1, 8, "", 0, 0, "")


I'll try to work it out tommorow but any suggestions are welcome ;p

#15 User is offline   schalti 

  • Junior
  • Pip
  • Group: Members
  • Posts: 65
  • Joined: 22-July 04

Posted 12 April 2006 - 03:22 PM

View PostMadBoy, on Apr 12 2006, 01:39 PM, said:

Maybe i am too tired but everytime i call it @error is always = 0 which means everything is great ;p It's always fine even if i change $dll_exe = DllOpen("setupapi.dll") to $dll_exe = DllOpen("setupapi11.dll") ;p

DllCall($dll_exe, "int","SetupCopyOEMInf", $full_path_to_inf, "", 1, 8, "", 0, 0, "")


I'll try to work it out tommorow but any suggestions are welcome ;p


:blushing:

Oops i just checked the syntax of DllCall again, it seems you have to pass the datatype with each parameter also.

Try the following:
DllCall($dll_exe, "int", "SetupCopyOEMInf", "str", $full_path_to_inf, "str", "", "int", 1, "int", 8, "str", "", "int", 0, "int", 0, "str", "")

If it doesn't work try to play with the datatype, the first "int" might be "none", "str" might be "wstr" if you are using Unicode.

#16 User is offline   MadBoy 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 464
  • Joined: 21-February 05

Posted 13 April 2006 - 02:45 AM

Here's the log output from file. Even thou the @error isn't 0 (that's why it says FAILED there) i can still see OEM files created in Windows\Inf. Seems to work just weird that error isn't 0 ;)

[10:30:53] - Detecting Windows version - Windows XP x32
[10:30:53] - Detecting number of devices in system.
[10:30:53] - Found 134 devices without any problems.
[10:30:53] - Checking for drivers directory existance.
[10:30:53] - Drivers directory (e:\Drivers) exist.
[10:30:54] - Manual start used - Waiting for orders.
[10:30:55] - Integrating drivers with SetupCopyOemInf method.
[10:31:00] - Advanced Output: Inf integrated failed: e:\Drivers\1SA207WW\SMAXWDM\SE\SMWDMALI.INF
[10:31:00] - Advanced Output: Inf integrated failed: e:\Drivers\1SA207WW\SMAXWDM\W2K_XP\SMWDMALI.INF
[10:31:02] - Advanced Output: Inf integrated failed: e:\Drivers\1SRO15WW\WIN2K\B57W2K.INF
[10:31:03] - Advanced Output: Inf integrated failed: e:\Drivers\1SRO15WW\WINXP\B57XP32.INF
[10:31:04] - Advanced Output: Inf integrated failed: e:\Drivers\1YG409WW\tp4win2k.inf
[10:31:09] - Advanced Output: Inf integrated failed: e:\Drivers\70CN23WW\RSTRCLMG.INF
[10:31:11] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\EKEYAGT\dk.inf
[10:31:13] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\EKEYAGT\fi.inf
[10:31:15] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\EKEYAGT\fr.inf
[10:31:16] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\EKEYAGT\gr.inf
[10:31:17] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\EKEYAGT\it.inf
[10:31:18] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\EKEYAGT\jp.inf
[10:31:19] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\EKEYAGT\ne.inf
[10:31:20] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\EKEYAGT\no.inf
[10:31:21] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\EKEYAGT\sp.inf
[10:31:22] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\EKEYAGT\sv.inf
[10:31:23] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\EKEYAGT\us.inf
[10:31:25] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\EZBTNS\JP\EZBTNS.INF
[10:31:26] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\FLPTOUCH\Flptouch.inf
[10:31:28] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\OSD\DK.INF
[10:31:29] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\OSD\FI.INF
[10:31:30] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\OSD\FR.INF
[10:31:31] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\OSD\GR.INF
[10:31:32] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\OSD\IT.INF
[10:31:34] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\OSD\JP.INF
[10:31:35] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\OSD\NE.INF
[10:31:36] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\OSD\NO.INF
[10:31:37] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\OSD\SP.INF
[10:31:38] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\OSD\SV.INF
[10:31:39] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\OSD\US.INF
[10:31:41] - Advanced Output: Inf integrated failed: e:\Drivers\75VU08WW\ZOOM\TpScrEx.inf
[10:31:42] - Advanced Output: Inf integrated failed: e:\Drivers\AUDIO\SMWDMALI.INF
[10:31:44] - Advanced Output: Inf integrated failed: e:\Drivers\MODEM\AGRMDWXP.INF
[10:31:45] - Advanced Output: Inf integrated failed: e:\Drivers\NETWORK\AEIWLNIC.INF
[10:31:46] - Advanced Output: Inf integrated failed: e:\Drivers\NETWORK\WIN2K\B57W2K.INF
[10:31:49] - Advanced Output: Inf integrated failed: e:\Drivers\NETWORK\WINXP\B57XP32.INF
[10:31:50] - Advanced Output: Inf integrated failed: e:\Drivers\OTHER\BLUTOOTH.INF
[10:31:51] - Advanced Output: Inf integrated failed: e:\Drivers\OTHER\IBMPMDRV.INF
[10:31:52] - Advanced Output: Inf integrated failed: e:\Drivers\OTHER\IBMTPLCD.INF
[10:31:53] - Advanced Output: Inf integrated failed: e:\Drivers\OTHER\TP4WIN2K.INF
[10:31:54] - Advanced Output: Inf integrated failed: e:\Drivers\VIDEO\CX_06991.INF
[10:31:55] - Advanced Output: Inf integrated failed: e:\Drivers\VIDEO\CX_06992.INF
[10:31:56] - Advanced Output: Inf integrated failed: e:\Drivers\VIDEO\PHILDECN.INF
[10:31:58] - Advanced Output: Inf integrated failed: e:\Drivers\VIDEO\WIN2K\GARTNT.INF
[10:31:59] - Advanced Output: Inf integrated failed: e:\Drivers\VIDEO\WINXP\GARTNT.INF
[10:32:00] - Advanced Output: Inf integrated failed: e:\Drivers\1OMA23WW\nt4\agrmdnt4.inf
[10:32:00] - Advanced Output: Inf integrated failed: e:\Drivers\1OMA23WW\w2kxp\AGRMDwxp.inf
[10:32:05] - Advanced Output: Inf integrated failed: e:\Drivers\1OMA23WW\w98\AGRMDvxd.inf
[10:32:06] - Advanced Output: Inf integrated failed: e:\Drivers\1OMA23WW\wme\AGRMDMEE.inf
[10:32:11] - Advanced Output: Inf integrated failed: e:\Drivers\1OMA23WW\wme\AGRMDMEM.inf
[10:32:13] - Advanced Output: Inf integrated failed: e:\Drivers\1RD631WW\DRIVER\2KXP_INF\C2_21425.INF
[10:32:15] - Advanced Output: Inf integrated failed: e:\Drivers\1RD631WW\DRIVER\2KXP_INF\CX_21425.INF
[10:32:16] - Advanced Output: Inf integrated failed: e:\Drivers\1RD631WW\PHILDEC\WDM_2K\PHILDEC.INF
[10:32:17] - Advanced Output: Inf integrated failed: e:\Drivers\1RD631WW\PHILDEC\WDM_XP\PHILDECN.INF
[10:32:17] - TheENd


Hehe fixed it.. call me id*** ;p Timeings for this log are for inf's that are already integrated. But timeings in my last post gives like 1 inf per second (keep in mind that i have USB 1.1 with drivers so it slows down the whole process a lot i think). Anyway it needs testing ;)

[10:42:39] - Integrating drivers with SetupCopyOemInf method.
[10:42:42] - Advanced Output: Inf integrated ok: e:\Drivers\1SA207WW\SMAXWDM\SE\SMWDMALI.INF
[10:42:42] - Advanced Output: Inf integrated ok: e:\Drivers\1SA207WW\SMAXWDM\W2K_XP\SMWDMALI.INF
[10:42:43] - Advanced Output: Inf integrated ok: e:\Drivers\1SRO15WW\WIN2K\B57W2K.INF
[10:42:43] - Advanced Output: Inf integrated ok: e:\Drivers\1SRO15WW\WINXP\B57XP32.INF
[10:42:44] - Advanced Output: Inf integrated ok: e:\Drivers\1YG409WW\tp4win2k.inf
[10:42:44] - Advanced Output: Inf integrated ok: e:\Drivers\70CN23WW\RSTRCLMG.INF
[10:42:45] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\EKEYAGT\dk.inf
[10:42:45] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\EKEYAGT\fi.inf
[10:42:45] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\EKEYAGT\fr.inf
[10:42:45] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\EKEYAGT\gr.inf
[10:42:45] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\EKEYAGT\it.inf
[10:42:45] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\EKEYAGT\jp.inf
[10:42:46] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\EKEYAGT\ne.inf
[10:42:46] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\EKEYAGT\no.inf
[10:42:46] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\EKEYAGT\sp.inf
[10:42:46] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\EKEYAGT\sv.inf
[10:42:46] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\EKEYAGT\us.inf
[10:42:46] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\EZBTNS\JP\EZBTNS.INF
[10:42:46] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\FLPTOUCH\Flptouch.inf
[10:42:46] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\OSD\DK.INF
[10:42:47] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\OSD\FI.INF
[10:42:47] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\OSD\FR.INF
[10:42:47] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\OSD\GR.INF
[10:42:47] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\OSD\IT.INF
[10:42:47] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\OSD\JP.INF
[10:42:47] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\OSD\NE.INF
[10:42:47] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\OSD\NO.INF
[10:42:47] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\OSD\SP.INF
[10:42:47] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\OSD\SV.INF
[10:42:48] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\OSD\US.INF
[10:42:48] - Advanced Output: Inf integrated ok: e:\Drivers\75VU08WW\ZOOM\TpScrEx.inf
[10:42:48] - Advanced Output: Inf integrated ok: e:\Drivers\AUDIO\SMWDMALI.INF
[10:42:48] - Advanced Output: Inf integrated ok: e:\Drivers\MODEM\AGRMDWXP.INF
[10:42:48] - Advanced Output: Inf integrated ok: e:\Drivers\NETWORK\AEIWLNIC.INF
[10:42:49] - Advanced Output: Inf integrated ok: e:\Drivers\NETWORK\WIN2K\B57W2K.INF
[10:42:49] - Advanced Output: Inf integrated ok: e:\Drivers\NETWORK\WINXP\B57XP32.INF
[10:42:49] - Advanced Output: Inf integrated ok: e:\Drivers\OTHER\BLUTOOTH.INF
[10:42:49] - Advanced Output: Inf integrated ok: e:\Drivers\OTHER\IBMPMDRV.INF
[10:42:50] - Advanced Output: Inf integrated ok: e:\Drivers\OTHER\IBMTPLCD.INF
[10:42:50] - Advanced Output: Inf integrated ok: e:\Drivers\OTHER\TP4WIN2K.INF
[10:42:50] - Advanced Output: Inf integrated ok: e:\Drivers\VIDEO\CX_06991.INF
[10:42:50] - Advanced Output: Inf integrated ok: e:\Drivers\VIDEO\CX_06992.INF
[10:42:50] - Advanced Output: Inf integrated ok: e:\Drivers\VIDEO\PHILDECN.INF
[10:42:51] - Advanced Output: Inf integrated ok: e:\Drivers\VIDEO\WIN2K\GARTNT.INF
[10:42:51] - Advanced Output: Inf integrated ok: e:\Drivers\VIDEO\WINXP\GARTNT.INF
[10:42:51] - Advanced Output: Inf integrated ok: e:\Drivers\1OMA23WW\nt4\agrmdnt4.inf
[10:42:51] - Advanced Output: Inf integrated ok: e:\Drivers\1OMA23WW\w2kxp\AGRMDwxp.inf
[10:42:51] - Advanced Output: Inf integrated ok: e:\Drivers\1OMA23WW\w98\AGRMDvxd.inf
[10:42:52] - Advanced Output: Inf integrated ok: e:\Drivers\1OMA23WW\wme\AGRMDMEE.inf
[10:42:52] - Advanced Output: Inf integrated ok: e:\Drivers\1OMA23WW\wme\AGRMDMEM.inf
[10:42:52] - Advanced Output: Inf integrated ok: e:\Drivers\1RD631WW\DRIVER\2KXP_INF\C2_21425.INF
[10:42:52] - Advanced Output: Inf integrated ok: e:\Drivers\1RD631WW\DRIVER\2KXP_INF\CX_21425.INF
[10:42:53] - Advanced Output: Inf integrated ok: e:\Drivers\1RD631WW\PHILDEC\WDM_2K\PHILDEC.INF
[10:42:53] - Advanced Output: Inf integrated ok: e:\Drivers\1RD631WW\PHILDEC\WDM_XP\PHILDECN.INF
[10:42:53] - TheENd


#17 User is offline   MadBoy 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 464
  • Joined: 21-February 05

Posted 13 April 2006 - 04:41 AM

BOOL SetupUninstallOEMInf(
PCWSTR InfFileName,
DWORD Flags,
PVOID Reserved
);


Now since the SetupOemInf is working maybe SetupUninstall should be done too. Just not sure how the script should know what's the name of script to unninstall inf's. Maybe i should run it on all Oem.inf's and if those aren't used it would unninstall them?

#18 User is offline   donjuan 

  • Newbie
  • Group: Members
  • Posts: 19
  • Joined: 18-February 05

Posted 13 April 2006 - 01:34 PM

So the topic has gone far away from my scope:)) no prob..
Is there any new way of integrating those infs faster than setupcopyoeminf method????

#19 User is offline   schalti 

  • Junior
  • Pip
  • Group: Members
  • Posts: 65
  • Joined: 22-July 04

Posted 13 April 2006 - 02:51 PM

View Postdonjuan, on Apr 13 2006, 01:34 PM, said:

Is there any new way of integrating those infs faster than setupcopyoeminf method????


No there isn't :} .
Both the AutoIt-Application from MadBoy and SetupCopyOEMInf.exe from Pyron use the very same API call and this API call is the one M$ wants you to use when integrating drivers in 2K/XP/2K3. Simply copying the files by script won't do the job correctly.

THANK YOU M$ again for this stupid driver signature stuff :realmad: .
In NT 4.0 you could do whatever you wanted with the setup and the drivers.
In Vista 64Bit Version it isn't even possible anymore to install unsigned drivers!
The whole setup process (setupapi.dll) is a black box already and it will be even worse in the future. All you can do is to use the API calls and if it is slow you cannot do anything about it.

#20 User is offline   RogueSpear 

  • OS: SimplyMEPIS
  • Group: Supreme Sponsor
  • Posts: 1,529
  • Joined: 18-September 04

Posted 13 April 2006 - 03:02 PM

Well I can tell you that my method works perfect and it's pretty simple. I went through my building at work this week rounding up every single USB/FireWire/PCMCIA device I could get my hands on and everything installed like a charm.

Share this topic:


  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users



All trademarks mentioned on this page are the property of their respective owners
Copyright © 2001 - 2011 msfn.org
Privacy Policy