• Announcements

    • xper

      MSFN Sponsorship and AdBlockers!   07/10/2016

      Dear members, MSFN is made available via subscriptions, donations and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, become a site sponsor and ads will be disabled automatically and by subscribing you get other sponsor benefits.
tnx

Windows XP Drivers

56 posts in this topic

Found the problem. Dont know why but while compressing the driver file it lost some of it's name ???

Been thinking of why the drivers have to be compressed. Is it just simply to save disc space.

If it is well by adding all the updates,hotfixes and all my drivers it becomes far too big to fit on a cd-r anyway. So it has to fit on a dvd-r and therefore compressing the drivrers is no longer necessary as there is plenty of room on a dvd-r.

So with this in mind I am going to do another test and use regular driver files.

This does how work in my favour. Seing I have allready done all the hard work of adding all the info needed to the DOSNET,TXTSETUP and HIVESFT all I need to do is make a duplcate source "MyDrvrs" with duplicate subfolders containg normal driver files then simple swap the folder on the source for my new one. I wont delete the old one but keep it save. Meaning I will have two virtually identical folders\subfolders to choose from.

Will report back with my findings.

Jess is about to start off in the Olympic park so telly becons.... :thumbup

0

Share this post


Link to post
Share on other sites

Well I recon that will be my final test for this little project.

I swapped all the compressed driver files for NONE compressed driver files and it worked like a charm. NO errors. No warnings. Nothing. Just one re-boot just after the initial install and everything is working fine and when I look into the system hardware there is no unknown devices..

I can say...JOB DONE..... :thumbup

Thanks to every body who had input on this.

This has been a fun and very worth while project....

0

Share this post


Link to post
Share on other sites

For me it's actually FAR from the end yet :ph34r::angel

After doing more tests I've managed to easily integrate SATA/SCSI drivers. It requires more lines to be added to txtsetup/dosnet/hivesys but eventually seems to work fine. I'll describe it later... because at the moment I'm fighting with automatic driver installation but not during the Windows setup but later when the system is already running. The problem is that the system is unable to automatically find driver files in driver.cab. It can do it during the system installation but cannot when a driver is to be installed in a running system. I think that modyfing layout.inf is inevitable. I've just tested it any all files are installed perfectly fine when they are listed in both layout.inf and drvindex.inf (this is the moment when drvindex.inf starts to play a role).

I'll explain everything in details after doing more tests.

Edit: I think there is a workaround which does not require to "patch" other system files because of breaking layout.inf's signature.

Edit2: Indeed, there is a workaround. It's too funny to be real...

Edited by tomasz86
0

Share this post


Link to post
Share on other sites

This is my "final" solution. I'll try to describe everything in details basing on the following example.

Realtek 10/100/1000 PCI-E NIC Family driver (already mentioned before)

1) List of files:

netrtle.cat
Netrtle.inf
Rtenic.sys
RtNicprop32.DLL
RTNUninst32.dll

2) I said in #53 that modifying layout.inf was inevitable. This is only partially true. A proper answer should be that the drivers must use a layout file in order to be automatically installed during the Windows setup and also in a running system when a device is being connected. The method described before didn't work in the second case. The solution to this problem is very simple. Instead of editing the original layout.inf (which is digitally signed) you can just create a new layout file for the drivers. Let's name it "layout2.inf". This is how its basic structure should look like:

layout2.inf

[Version]
Signature="$Windows NT$"
[SourceDisksNames]
1=,,,\i386
[SourceDisksFiles]

3) Normally 3rd party (non-M$) drivers check for files by using the path set in [sourceDisksNames] in their INF files. In order to make them use the structure from layout2.inf you have to:

- add "LayoutFile=layout2.inf" under [Version]

- remove [sourceDisksNames] and [sourceDisksFiles] sections completely

Before:

[version]
Signature = "$Chicago$"
Compatible = 1
Class = Net
ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider = %Realtek%
CatalogFile.NT = netrtle.cat ;;for WHQL certified
DriverVer = 02/22/2012,5.794.0222.2012

[SourceDisksNames]
1=%DISKNAME%,,,

[SourceDisksFiles]
Rtenic.sys = 1
Rtenicxp.sys = 1
Rtenic64.sys = 1
RTNicProp32.dll = 1
RTNicProp64.dll = 1
RTNUninst32.dll = 1
RTNUninst64.dll = 1

After:

[code][version]
Signature = "$Chicago$"
Compatible = 1
Class = Net
ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider = %Realtek%
CatalogFile.NT = netrtle.cat ;;for WHQL certified
DriverVer = 02/22/2012,5.794.0222.2012
LayoutFile = layout2.inf

4) Now you should add the driver files to dosnet.inf, txtsetup.sif, layout2.inf and drvindex.inf:

dosnet.inf (only layout2.inf, *.cat and *.inf)

[Files]
d1,layout2.inf
d1,Netrtle.inf
d1,netrtle.cat

txtsetup.sif (only layout2.inf, *.cat and *.inf)

[SourceDisksFiles]
layout2.inf = 1,,,,,,,20,0,0
Netrtle.inf = 1,,,,,,,20,0,0
netrtle.cat = 1,,,,,,,20,0,0

layout2.inf (no *.cat and *.inf)

[Version]
Signature="$Windows NT$"
[SourceDisksNames]
1=,,,\i386
[SourceDisksFiles]
Rtenic.sys = 1,,,,,,,,3,3
RtNicprop32.DLL = 1,,,,,,,,3,3
RTNUninst32.dll = 1,,,,,,,,3,3

drvindex.inf (no *.cat and *.inf)

[driver]
Rtenic.sys
RtNicprop32.DLL
RTNUninst32.dll

"[driver]" means here that the files are located in driver.cab.

5). Now you can add the files to driver.cab, pack layout2.inf, other *.inf and *.cat and move them to i386. Details about how to do it are available in #41.

In case of mass storage (SATA, SCSI, etc.) drivers more edition is required and I'm going to explain everything in details next time (as I'm running out of time now). I also need to check one thing about the proper location of *.cat files of each driver because they seem not to be signed now... Anyway, the method described above is really exactly the same as the one used by M$. The only difference is that the layout file's name is not "layout.inf" but "layout2.inf" :)

Edited by tomasz86
0

Share this post


Link to post
Share on other sites

Well written......

Great job..... :thumbup

0

Share this post


Link to post
Share on other sites

Edit: Wrong topic :ph34r:

Edited by tomasz86
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.