IPB

Google Frontpage Forums Unattended CD/DVD Guide
 Forum Rules Unattended CD/DVD Guide Homepage · MSFN Forum Rules
> Unlimited number of drivers + keeping the drivers., Exception: MassStorage drivers.
schalti
post Apr 13 2005, 07:26 AM
Post #1


Junior
*

Group: Members
Posts: 65
Joined: 22-July 04
Member No.: 25116
Country Flag


welcome.gif

Normally there is one way to integrate drivers in Windows 2k/xp/2k3.
Specify oempnpdriverspath in winnt.sif / unattend.txt / ristndrd.sif / sysprep.inf or patch the resulting DevicePath Registry Value directly using SetDevicePath.exe by Pyron. The problem is there is a length limit of 4096 characters.

I developed two little scripts which will solve the problem of driver integration in a different way (exception: disk drivers).

Script 1 'drvls.cmd' will scan a subdirectory structure where it sits at the very top for INF-files and call

Script 2 'drvcp.cmd' which will create a temporary INF-file in the subdirectory and for the INF-file passed by 'drvls.cmd'. It will then use the INF command 'CopyINF' to integrate the INF-file in Windows. CopyINF
- creates oem<sequencenumber>.inf in %WINDIR%\inf
--> this is an exact copy of the INF-file to be integrated
- creates oem<sequencenumber>.pnf in %WINDIR%\inf
--> this is a compiled INF-file that contains device-ID(s) and (most important) the full path to the original driver location (that was passed to 'drvcp.cmd' by 'drvls.cmd').
- integrates the signature .cat file (if it exists) in the catalog-DB
Finally it will delete the temporary INF-file.

As a result Windows can successfully install any device driver in the subdirectory structure with the normal PnP mechanism. The subirectory names can be readable and contain Spaces etc. since there is no limit resulting from a Registry Value Length etc.

So there are 5 files needed:
- drvls.cmd
- drvcp.cmd
- header.txt (header for temporary INF-file)
- footer.txt (footer for temporary INF-file, needed for W2K only)
- cocpyinf.dll (CoInstaller DLL, needed for W2K only)

Now I try to post these files to this forum as a ZIP smile.gif .

Any suggestions?

EDIT: 19.4.2005 20:20 -> Script solution REMOVED.

Please use SetupCopyOEMInf.exe from Pyron based on his SetDevicePath.exe and my scripts. Downloadable in this thread. Tested successfully on 2k, xp and 2003. thumbup.gif
Go to the top of the page
 
+Quote Post
5 Pages V  « < 3 4 5  
Start new topic
Replies (80 - 94)
Scrapple
post Jul 16 2005, 05:01 AM
Post #81


Newbie


Group: Members
Posts: 46
Joined: 19-June 05
Member No.: 61066
Country Flag


Hi,

First of all: This forum is great! Lots of "guru's" here!

Thanx very much for this SetupCopyOEMInf method!!!

@Pyron/Shalti
Could you put the scripts back online and possibly the sourcecode for the .exe? I want to study how this is put together, instead of just running it.

Maybe I should've made a new thread for the following questions...? I don't know for sure...

Questions:
----------------
It's a pity that this method doesn't work for massstorage drivers; as I understand these are a special kind. But could anyone explain me where the massstorage drivers are actually put on disk and what registry settings are made...?

So what I'm trying to grasp is how windows finds these ide/sata/raid/scsi drivers...

I know a lot of people here ain't fond of/don't use sysprep, which I understand, but it has a nice functionality called the buildmassstorage section, which is prepopulated with the -bmsd switch... and when the reseal is working, it takes a long time (somehow because of the large massstorage section)

Can you guys explain to me in detail what is done at that time? Or give me some link(s).


I've searched so long for these answers, but I can't find it anywhere... :-(

Thanx a lot!


P.S. one more question: would it be possible to somehow check, before pnp enumeration, what hardware is actually in the machine?

For example by running a tool that lists all hwid's and then finds the drivers for those hwid's recursively within a BTS-drvpack-folders residing on a cd/hdd/network and "SetupCopyOEMInf-ing" only those drivers?

Anyone?

Thanx again!
Go to the top of the page
 
+Quote Post
schalti
post Jul 18 2005, 08:44 AM
Post #82


Junior
*

Group: Members
Posts: 65
Joined: 22-July 04
Member No.: 25116
Country Flag


QUOTE (Scrapple @ Jul 16 2005, 05:01 AM)
@Schalti
Could you put the scripts back online

I want to study how this is put together, instead of just running it.


I will not put the scripts back online, the executable is way faster and also runs on Windows 2000 without any problem.

Posted on June 1, 2005:
If you want to create your own utility it's a matter of scanning a directory structure for INF-Files and use the API call SetupCopyOEMInf (which is inside setupapi.dll) on every INF-File.

QUOTE (Scrapple @ Jul 16 2005, 05:01 AM)
I know a lot of people here ain't fond of/don't use sysprep, which I understand, but it has a nice functionality called the buildmassstorage section, which is prepopulated with the -bmsd switch...  and when the reseal is working, it takes a long time (somehow because of the large  massstorage section)

Can you guys explain to me in detail what is done at that time? Or give me some link(s).


All available drivers in the [SysprepMassStorage] Section of sysprep.inf are put in the registry such as they will be loaded on next reboot. You can also put non-storage drivers in this section thumbup.gif , for example to load usb keyboard and mouse drivers which will often be a problem using sysprep.

QUOTE (Scrapple @ Jul 16 2005, 05:01 AM)
P.S. one more question:  would it be possible to somehow check, before pnp enumeration, what hardware is actually in the machine?

For example by running a tool that lists all hwid's and then finds the drivers for those hwid's recursively within a BTS-drvpack-folders residing on a cd/hdd/network and "SetupCopyOEMInf-ing" only those drivers?


You could do this using devcon.exe, a tool from M$ that will list all devices in a PC.

DevCon.exe

I don't know however if it is possible to do it before pnp enumeration.

blushing.gif
Go to the top of the page
 
+Quote Post
a06lp
post Jul 20 2005, 09:19 PM
Post #83


Friend of MSFN
*****

Group: Members
Posts: 976
Joined: 19-August 04
Member No.: 28204



Ok, I don't fully understand this tool, but help me out here.

I use Bashrat's Drivers-From-CD method (outlined here) to install my drivers now.

My basic structure is like this:
QUOTE
i386
$OEM$
...|--Drivers
......|-- Laptop
.........|-- Audio
.........|-- Graphics
.........|-- Modem
......|-- PC
.........|-- Audio
.........|-- WLAN


And I use the 4 files listed in the above-linked post.


Will the tool in this post help me not need all of that? If so, what steps are needed to use this tool?

Or am I totally misunderstanding the purpose of this new tool?

This post has been edited by a06lp: Jul 20 2005, 09:20 PM
Go to the top of the page
 
+Quote Post
Acheron
post Jul 21 2005, 04:03 AM
Post #84


Friend of MSFN
*****

Group: Members
Posts: 879
Joined: 28-June 04
From: Eerbeek
Member No.: 23554
OS: XP Pro x86
Country Flag


QUOTE (Scrapple @ Jul 16 2005, 12:01 PM)
P.S. one more question:  would it be possible to somehow check, before pnp enumeration, what hardware is actually in the machine?

For example by running a tool that lists all hwid's and then finds the drivers for those hwid's recursively within a BTS-drvpack-folders residing on a cd/hdd/network and "SetupCopyOEMInf-ing" only those drivers?

Anyone?

Thanx again!
*


Why don't you want to have all your drivers get recongnized by Windows? It's wonderful and only the setup information is passed to the Windows. No files are copied over in some way. '
The way I use the AutoIt script all drivers stay on CD. Theoraticly I could add a lot more drivers for hardware that doesn't even exist on my system. Then when I change my Hardware Configuration Windows will detect new hardware and ask for my driver cd. You also could use a network path, it's the same principe smile.gif

I still think this should be the methode for most of Basrat's driver packs cool.gif
Go to the top of the page
 
+Quote Post
Scrapple
post Jul 21 2005, 10:36 AM
Post #85


Newbie


Group: Members
Posts: 46
Joined: 19-June 05
Member No.: 61066
Country Flag


QUOTE (hp38guser @ Jul 21 2005, 12:03 PM)
Why don't you want to have all your drivers get recongnized by Windows? It's wonderful and only the setup information is passed to the Windows. No files are copied over in some way. '
The way I use the AutoIt script all drivers stay on CD. Theoraticly I could add a lot more drivers for hardware that doesn't even exist on my system. Then when I change my Hardware Configuration Windows will detect new hardware and ask for my driver cd. You also could use a network path, it's the same principe  smile.gif

I still think this should be the methode for most of Basrat's driver packs cool.gif



Well, because I'm not using unattended (scripting) method, but the sysprep (imaging) method. The company I work for has very heterogeneous hardware, but the unattended installation method is just too slow...

So what I'm trying to think of is a way NOT to re-image every single time I run into a (new) machine for which a massstorage driver is not yet incorporated in the image. As you know, massstorage drivers need to be present for the machine to even boot.

So my goal is to update the drivers(packs) on a network-share regularly and to have a regularly updated BartPE CD (with the latest masstorage/nic drivers) boot the machine and download/restore the universal image from a mounted image/drivers/scripts network-share to the harddisk after partitioning it. Then mount that local partition and detect all hwids of every piece of hardware that's actually in the machine. After that search for only the needed drivers and custom scripts on the netshare and incorporate them into that still unbooted hdd partition.

Incorporating the massstorage drivers into the deployed partition before Windows' boots from it, seems to be the most difficult task, but I think it's possible to script copying driver-file's to and editing the registry of the hdd-partition from within a running BartPE (pxe or CD).

Now, that's why my original question was: What exactly do I put/change in the registry and where do I put the driver files of the massstorage driver in the deployed hdd NTFS filesystem BEFORE windows is able to boot from it?

.....
Running "sysprep -reseal", AFTER "sysprep -bmsd", does exactly what I need (I think), but I need to know WHAT sysprep actually does to the registry and what filecopying sysprep performs on its NTFS boot-partition for windows to be able to boot from it after deployment (on a different machine which possibly needs the newest scsi/raid/sata driver), because I CAN'T run sysprep again BETWEEN capturing and deploying; BartPE is evidently loaded at that time (and not the deployed os on hdd I'm trying to target for doing this on)
.....


I know it all sounds pretty complicated, but I hope you get my idea. Let me know what you think how this can be done... preferably: "a better/easier way"... biggrin.gif

Remember: regular re-imaging and/or unattended installs are NO OPTIONS for us confused.gif

This post has been edited by Scrapple: Jul 21 2005, 11:10 AM
Go to the top of the page
 
+Quote Post
Bfunny27
post Jul 21 2005, 11:07 AM
Post #86





Group: Members
Posts: 1
Joined: 20-July 05
Member No.: 65288
Country Flag


thumbup.gif

Thanks everyone these tools are really helpful!
Go to the top of the page
 
+Quote Post
JuMz
post Jul 28 2005, 09:57 AM
Post #87


Advanced Member
***

Group: Members
Posts: 466
Joined: 9-August 04
From: Edmonton, Alberta
Member No.: 26786
OS: XP Pro x86
Country Flag


Could someone who is using Method 2, pyron's method + keeping the drivers post their presetup.cmd

I am quite confused in how to make BOTH drivers install during and install and after install to work.....

Can I just simply replace the line with pyron's setdevicepath with this new setupcopyoeminf and it will work during GUI install and keep the drivers during regular windows install?

This post has been edited by JuMz: Aug 2 2005, 02:54 PM
Go to the top of the page
 
+Quote Post
JuMz
post Aug 1 2005, 06:55 PM
Post #88


Advanced Member
***

Group: Members
Posts: 466
Joined: 9-August 04
From: Edmonton, Alberta
Member No.: 26786
OS: XP Pro x86
Country Flag


anyone?
Go to the top of the page
 
+Quote Post
osborned_rcc
post Aug 19 2005, 11:29 AM
Post #89


MIS Support Manager


Group: Members
Posts: 22
Joined: 15-July 05
From: El Reno, OK
Member No.: 64513
Country Flag


Is anyone ever going to write a full guide on how to use this SetupCopyOEMInf method? Maybe post it on the guide site?
Go to the top of the page
 
+Quote Post
Oleg_II
post Aug 28 2005, 04:01 AM
Post #90


Senior Member
****

Group: Members
Posts: 679
Joined: 6-August 04
Member No.: 26369
OS: none
Country Flag


Sorry, if it was answered before but I can't find a clear description of using this tool also. I wonder if pyron's modified setup.exe needed for this method? I'm asking because using his set of files seems to influence running svcpack.inf: when I place a .cmd or .exe file in SVCPACK folder and add it in svcpack.inf it doesn't run, but it runs when I use "a clean" installation without modified setup.exe sad.gif
Best regards,
Oleg 2
Go to the top of the page
 
+Quote Post
a06lp
post Aug 28 2005, 06:10 PM
Post #91


Friend of MSFN
*****

Group: Members
Posts: 976
Joined: 19-August 04
Member No.: 28204



QUOTE (osborned_rcc @ Aug 19 2005, 01:29 PM)
Is anyone ever going to write a full guide on how to use this SetupCopyOEMInf method? Maybe post it on the guide site?
*


http://www.msfn.org/board/index.php?showtopic=51406

Enjoy. whistling.gif
Go to the top of the page
 
+Quote Post
Xavierxray
post Aug 30 2005, 04:32 AM
Post #92


Newbie


Group: Members
Posts: 14
Joined: 30-August 05
Member No.: 70942
Country Flag


And this can be used to install missing NIC drivers for the setup program in RIS?
Let me be a bit more spesific...

When I run an image, I seem to be missing some NIC drivers and therefor I can get all the primary stuff done (IP, username input etc.) but it won't start the actuall installation of the OS.
This problem is solvable in other ways but it would seem that the method is simply to microsoft (read: Weird) for me to understand.....
This program and scripts could help me achive what I need much simpler but I do need to know if it gets loaded in before the setup begins so that the drivers can be used when "Detecting hardware" is shown...
Go to the top of the page
 
+Quote Post
Bilou_Gateux
post Sep 1 2005, 07:30 AM
Post #93


Powered by Windows Embedded
*****

Group: Members
Posts: 752
Joined: 3-January 04
From: Underworld
Member No.: 11874
OS: XP Pro x86
Country Flag


@Xavierxray
No.

@all
Try Drivers From CD (AutoIt Method), A newer, better way. =)

and you can get help from the author: hp38guser.

This post has been edited by Bilou_Gateux: Sep 1 2005, 07:31 AM
Go to the top of the page
 
+Quote Post
straycat19
post Sep 21 2005, 02:30 PM
Post #94





Group: Members
Posts: 1
Joined: 14-August 05
Member No.: 68768
Country Flag


I made an xp install cd using nlite, ryanvm cab and driver packs. Everything works fine except when setup is installing devices the SetupcopyOEMInf.exe asks about 200 times for windows logo testing continue/don't install. What did I do wrong? How can I fix it? The first cd I made works fine but with a different version of xp than this one, though that shouldn't make any difference.
Go to the top of the page
 
+Quote Post
Bâshrat the Snea...
post Oct 2 2005, 12:14 PM
Post #95


aka Wim Leers
Group Icon

Group: Patrons
Posts: 2214
Joined: 29-October 03
From: Hasselt, Belgium
Member No.: 8748
OS: none
Country Flag


It seems this topic has been superseeded by another one.

Topic closed to avoid confusion.
Go to the top of the page
 
+Quote Post

Google Frontpage Forums Unattended CD/DVD Guide

5 Pages V  « < 3 4 5
Closed TopicStart new topic
4 User(s) are reading this topic (4 Guests and 0 Anonymous Users)
0 Members:

 




Lo-Fi Version Time is now: 24th November 2009 - 04:02 PM
All trademarks mentioned on this page are the property of their respective owners
MSFN is not affiliated with Microsoft
Copyright © 2001-2009 msfn.org
Privacy Policy