Miscellaneous guides

Here you can find miscellaneous guides. Expect this to grow over time.

Altering DriverPack MassStorage

glossary

1; driver.INF
Information the Operating System requires to support hardware; including registry entries and files to copy.

2; driver.CAT
Security catalog. A *.CAT file can be WHQL signed but this is not always the case.

3; driver.SYS
System level support for hardware (the driver!)

4; HWID
Hardware identity, vendor and device.
This is the number the device reports to plug and play to match with a driver file.

5; driverpack.INI
This file is used to identify exceptions and special cases, such as, this driver only has windows 2003 support.

6; generic HWID (VendorID&deviceID, NO SUB.)
Example PCI\VEN_13C1&DEV_1002
Example PCI\VEN_1191&DEV_0006

7; SUB Specified HWID
Subversions of a chip can exist. Either proprietary made for an OEM, or an improved mask was used at the Fabrication plant. They will have SUB_SYS and sometimes Revision info after the generic ID.
Example PCI\VEN_13C1&DEV_1002&SUBSYS_100213C1
Example PCI\VEN_1191&DEV_0006&SUBSYS_00061191&REV_01

8; mask
Used in etching process at the Plant. A new mask etches different traces and a different chip is built.

9; Original Equipment Manufacturer (OEM)
Large OEMs like DELL, NEC or HP/Compaq often have proprietary chips on the motherboards.

10; Windows Hardware Quality Labs (WHQL)
Drivers that have been submitted and successfully passed the tests at Microsoft will get the WHQL signed status.
WHQL was introduced when XP was in its infancy and you will seldom find very old WHQL signed drivers because of this.
Windows Driver Model (WDM) are most likely good drivers because this standard is still in use.
Unstable drivers do exist. Information and rants about unstable drivers can be found on the internet.
We will attempt to avoid any known unstable drivers.

---------------------------------------------
Next, a reference TXT written by RuudBoek
---------------------------------------------
Editing the Mass storage driverpack INI.

Q: What does the entry "ms_count = 1" mean?
A: The number next to the "ms_count =" entry represents the amount of *.sys files that are present in the current section and folder that should be used during the slipstream. This entry can also be used to exclude a driver from all OS'es during slipstreaming.
To do this, simply add a zero next to the "ms_count =" entry. For example:

"ms_count = 0"

Q: What does the "ms_1_deviceName" entry mean?
A: The "ms_1_deviceName" entry represents the full driver name (Its friendly name).
One driver can often support multiple hardware devices. For example: "IBM ServeRAID 4H Controller" and "IBM ServeRAID 3H/3L Controller" both share the same driver files. The "ms_1_deviceName" entry enables you to specify one name representing all these different hardware devices. This name is displayed during the loading of the Mass Storage drivers for textmode setup. Since this name has no impact on the proper functioning of the driver itself, it is possible to make up a name by yourself. It is however strongly advised to use a name similar to the name that is used by the driver manufacturer.

Q: What does the "ms_1_tag" entry mean?
A: Most of the time the "ms_1_tag" represents the name of the .sys file included in the driver.
This name is used to create the compressed files which are located in the I386 folder (example: SI3124.SY_).
This compressed file is decompressed during Text Mode* part of setup and loaded into memory so that mass storage media is accessible.

*Textmode setup is the blue screen part at the beginning of the installation and it enables you to partition your hard drive for example.

In some cases there are .sys files present from different driver folders that have the same file names.
They can not be compressed and placed into the I386 folder using the same filename because the resulting compressed files would bear the same filename also. When this occurs a workaround is used. The resulting compressed files get different filenames than the original .sys filename.
The "ms_1_tag" entry enables you to specify unique filenames for filenames that would have otherwise been duplicated during the copy to I386.

Q: Where can I find the "ms_1_sysFile" entry in my driver?
A:The "ms_1_sysFile" entry represents the name of the .sys file which should always be included in your driver. If there is more then one .sys file present in the driverpackage, please bear in mind that only the BUS driver is relevant. Often you will find .sys files which include the following in their names:

filter, filt, fltr, filtr, etc.
For example: xfilt.sys.

Those .sys files are called filters and are NOT bus drivers. They can therefore be ignored.

Often you will also find .sys files which includes the following in their names:
64
For example: videX64.sys

Most of the time that value means that the .sys file was built for the 64-bit version of Windows XP. Since the DriverPacks Mass Storage only supports the 32-bit version of Windows XP, those .sys files can also be ignored.

Q: What does the "ms_1_hwids" entry mean?
A: The "ms_1_hwids" entry represents all the hardware id's that are associated with the driver.

Q: Where can I find the correct hardware id's for my driver?
A: You can usually find the drivers hardware id's inside the txtsetup.oem file.
It is strongly recommended to always use the HWID's inside the txtsetup.oem file when available. If a txtsetup.oem file is not present you will be forced to look inside the .inf files for the driver IDs.

When looking inside a txtsetup.oem file, first Look for a section with the following in its name: HardwareIds.SCSI
For example:
[HardwareIds.SCSI.Si3112_XP]
id = "PCI\VEN_1095&DEV_3112&SUBSYS_31121095", "Si3112"
id = "PCI\VEN_1095&DEV_3112&SUBSYS_34238086", "Si3112"
id = "PCI\VEN_1095&DEV_3112&SUBSYS_311215D9", "Si3112"
id = "PCI\VEN_1095&DEV_3112&SUBSYS_B0021458", "Si3112"

The actual hardwareid's are located in the specified section ([HardwareIds.SCSI.Si3112_XP].
Hardwareid's always start with PCI\... In this example the correct hardwareid's are therefore the following:

PCI\VEN_1095&DEV_3112&SUBSYS_31121095
PCI\VEN_1095&DEV_3112&SUBSYS_34238086
PCI\VEN_1095&DEV_3112&SUBSYS_311215D9
PCI\VEN_1095&DEV_3112&SUBSYS_B0021458

Simple right! Well, there's more.

When no txtsetup.oem file is present you need to look inside the .inf files of the driver.
In this case open the .inf file(s) and look for a section called [Manufacturer] in that section you should be able to find the name of the section where the HWID's can be found.
For example:

[Manufacturer]
%ITE% = ITE.Mfg

In this example, we will thefore find all the hardwareid's in the following section:
[ITE.Mfg]

Sometimes more than one section is specified underneath [Manufacturer]. Bear in mind that if one of those sections include the value 64 that specific section can be normally be ignored. It most probably represents 64-bit Windows driver which is not currently supported.

The hardware id's themselves are located at the end of each line in the specified sections.
For this example:
[ITE.Mfg]
%ITE.DeviceDesc0% = iteraid, PCI\VEN_1283&DEV_8212&SUBSYS_00011283
%ITE.DeviceDesc0% = iteraid, PCI\VEN_1283&DEV_8212&SUBSYS_00000000

Hardwareid's always start with PCI\... In this example the correct hardwareid's are therefore the following:
PCI\VEN_1283&DEV_8212&SUBSYS_00011283
PCI\VEN_1283&DEV_8212&SUBSYS_00000000

Hardware id's should be added to the "ms_1_hwids" entry; all on one line, with no spaces, and each HWID should be separated by a comma, the complete line should also start with double quotes and end with double quotes.
For example:
ms_1_hwids = "PCI\VEN_1283&DEV_8212&SUBSYS_00011283,PCI\VEN_1283&DEV_8212&SUBSYS_00000000"

Q:What does the entry "ms_1_isBusExtender" mean?
A:The "ms_1_isBusExtender" entry specifies wether the driver is a bus extender or not.

Q:How can I find out if my driver is a bus extender?
A:Open the .inf files which should be included in the driver. Look for a line similar to the following:

LoadOrderGroup = System Bus Extender
If that line is present then your driver is a busextender.

Q:What does the entry "ms_1_exc_skipIfOS" mean?
A:The "ms_1_exc_skipIfOS" entry represents the operating system to which the driver(s) will not be slipstreamed.
For example:
ms_1_exc_skipIfOS= "w2k"
In this example the entry will prevent the specified driver from being slipstreamed into Windows 2000.

Q:What does the entry "ms_1_exc_disableIfOS" mean?
A:The "ms_1_exc_disableIfOS" entry represents the operating system in which the driver should not be included during textmode setup.

For example:
Ms_1_exc_disableIfOS= "w2k"

In this example the entry will prevent the specified driver from being loaded into memory during textmode setup when the OS is Windows 2000. After the slipstream completes the driver will be present in txtsetup.sif and dosnet.inf but the entry will be prefixed by a semi-colon which will cause setup to ignore that line and therefore the driver on that line.

Excluding a driver to be loaded during textmode setup can be quite useful. Windows 2000, for example, is very limited in the amount of memory that can be allocated for loading textmode drivers. So we can easily select some rarely used drivers to be "on hold" for text mode but still available to plug and play in windows afterwards. So far we have only needed to do this for windows 2000 and it is technically only supported for windows 2000, however, it is only a matter of time until this limit becomes a factor for XP and eventually 2003.

Q:What does the entry "ms_1_exc_replaceIfOS" mean?
A:The "ms_1_exc_replaceIfOS" entry represents the operating system in which the specified driver should replace an already existing driver.
Some operating systems already contain drivers for textmode setup by default.
For example:
Windows XP contains a driver called "Mylex AcceleRAID 160 Disk Array Controller".
This driver can be found in the I386 folder and it is named dac2w2k.sy_. If you want to overwrite this driver with a newer version you can use the following entry to tell the DPs_Base to overwrite the existing dac2w2k driver:
ms_1_exc_replaceIfOS= "wxp"

When Ruud posted this, the project had not yet gone open source.
The info is now available to you.

=============================

Let us go on about Mass storage Drivers.

First, something about the security catalog file, the CAT:
When one edits a duplicate driver's INF file to add HWIDs, its CAT is no longer valid for all HWIDs.
The supported devices in INF that do not match listed devices in the CAT are not signed when a HWID match occurs. Yes! a CAT file actually lists HWIDs. Engineers using DDK can edit it, but after that it needs to be submitted and re-signed. Signed drivers are published as "WHQL signed" at manufacturers download sites. We do not use DDK since we would not be successful in getting the drivers re-signed. Note that not all original drivers are WHQL signed and work just fine. Base slipstreams a tool as a workaround so unsigned drivers do not halt unattended setup.

Editing drivers, is fun...
Working on a pack, is more fun.

When one looks at a driver, you will find that:

The driver.INF has info on its version, the supported HWIDs, and a section in there [sourcediskfiles] lists the files used to make a driver work.
Compare content of the unpacked driver against all "Copyfile" lines.
When you look at these entries, you know which files are essential.
You can then look whether the required files are present.
The NON essential files can be left out to save space, if you wish.

The driver.SYS file also has version info in it, and the internal name can be looked at too. This is just a right-click away. One sometimes finds that it has a different internal name.
A team member reported and fixed a filename error in an original driver because he had looked at that.
The internal name of the SYS file was used in the INF, but the real name of the file was "wrong".

Also look at its size.
When you compare a driver against a similar driver (pretty often they use same name), you will want to look at the INF.
Besides HWID, version, the files used, one has to compare the rest of the INF txt as well.
You see, if you want to MERGE a driver, then the registry entries have to match as well.
(MERGING means adding the HWIDs of one driver into another driver's INF, so as to not have to use two sets of driver files.)
If these registry entries are different while using same GUI Class keys, you can be almost sure merging won't work.
(You can easily spot the likeness or differences.)
If its SYS file has same name but is different in size, you can be almost sure merging won't work.

Now, if that driver is NOT an update of the one you compare it with, and you want to add it, then you will have to make a new section entry in mass storage INI.
The section entry has to correspond with the folder.
Example; Folder you added is localised at D\M\Z\6
Then the entry title in the INI will be [Z-6]
If it needs to be published, the mass storage pack changelog you write will have to describe it as -\Z\6

One of the first considerations is the name it will be given for txtmode.
Look for existing ms_1_tag names and do not use an existing name if you add a driver.
You will have to look at supported HWIDs and compare with the rest of the pack, even if this one is NOT an update but a new one..

When you find you are able to merge, you edit the driver's INF, and add the HWIDs in the corresponding section in mass storage INI.

Sometimes, there are Updated Drivers which drop support for older hardware.
When you read its INF and find that new DLL files, extra SYS and extra INF files are required and used (like nodrv.inf), then one can edit out the duplicate HWIDs in the older driver, so that only the NEW one will cover these.
You will do that in Mass storage INI to avoid conflicts.
(Otherwise, during Txtmode stage of setup, two sys files would get loaded for the same Chip.)
You can also edit the older driver's INF (sometimes this is a good solution).
This is done to avoid a clash during PNP stage which could occur when both are unsigned.
Of course, you can disable the older one altogether (Do Not Delete), but the newer one will not support some older chip versions and we've seen that old hardware has a tendency to outlive vendor support.

Let's recount a real story.
It happened in Mass storage forum.
An update for LSI was requested, and was looked into.
What could a look at files and the INF tell us?
Old LSI in [L-4] did not use pseudo device, and a 'tactic' like 'nodrv' or 'pseud' is noticed in relatively new drivers.
Then Jaak looked for matching HWIDs to avoid possible conflicts. At first, Jaak forgot to look through ALL drivers and therefore he did not notice there was a DELL using HWIDs this LSI listed.
So, he had looked for double HWIDs only in LSI, found them, but saw he should not edit [L-5] because the last line there told him it was for server.
Because of that oversight, there was an unnoticed DELL driver using HWIDs this updated LSI also listed, and this was pointed out by JSe.

LSe wrote:
In PnP driver install phase (about T=38 to T=34 in WXP installation) there is a ranking for each hardware ID to find the best matching driver. Presence/absence of signature (The CAT), version, matching ID (full/generic) and others make for each matching string from a *.inf file a rank value. The driver with the lowest resulting rank value will be installed.
You can see what happened in this phase by studying setupapi.log file in %windir% after the installation.
So for the PnP the presence of more then one matching string is no problem, normally the best will "win".
The problem is the txtmode setup phase. At this stage there is no ranking, only one driver with the same name can be loaded.
So if we want to keep the Dell and the native LSI version separated we must use the older generic version 1.20.18.00 in txtmode. Obviously it also supports the Dell controllers. If there is a Dell controller installed, this older unsigned driver will be replaced in the PnP phase by symmpi.sys 1.21.08.00. If "only" a LSI controller is installed it will be kept in PnP.
If we would use the Dell driver in txtmode an there is only a LSI controller installed, the PnP must downgrade it. I fear this wont work, but I will try out this cenario in the next days.

Jaak replied;
Trying to make txtmode match what pnp does later on, is what I thought what needs to be done, and it is not easy.
TXTmode uses the mass stor INI, and PNP uses the INF.
Some drivers are unsigned because the version of that sys supports several oems using same sys for their driver, and they got merged, which broke signing.
After somebody had pointed it out, I realised that when a conflicting signed one with matching generic HWID in INF is left signed (by not removing generics) then one can get BSOD.

Because of this finding, we had to make a choice..
In our example, the OEM Dell driver [D-3] has a valid signature unlike the native LSI [L-4].
The same Dell HWIDs were suppored in LSI [L-4].
The Dell driver has also a slightly higher version number (1.21.08.00) and a newer date than the original LSI files.
So? What influences our choice?
If D-3 is signed, keep it.
If the SYS file size for the one in LSI is different, definatetly keep Dell.
Still more considerations were made.
Is there a choice between unsigned generic versus signed proprietary? Keep signed proprietary.
A choice between Subsys and 'proprietary" subsys? Keep signed 'proprietary" subsys.
The filter (mass INI) must be changed to not use non-signed LSI in [L-4] for hwid signed in [D-3]
One could say that generic HWIDs in signed driver should be kept, and unsigned generics can be tossed away if one has it covered by a signed driver. Then, Dell won. BUT... It actually LOST.
In some cases, one can make an edit to a signed driver's INF, and kill the generic in there, keeping the specified subs. You can do that if this one is proprietary, and the other supports a lot more generic and SUB_sys HWIDs as well.
The LSI driver was not signed, older, and therefore Jaak edited the Mass storage INI for [L-4] so that it did not list DELL's HWIDs.
One "could" go as far as editing its INF as well, but since Dell was newer, it was the DELL's INF that got edited to not support the generic. (Jaak did that because Dell, just like Compaq and other OEMs do, often use proprietary chips. And, the SYS they use, is most likely specific for that proprietary chip. Well, the size was different as well.)
LSI's can most probably handle the generics better than Dell's prorietary sys-file.
Will this be the best solution? Time will tell.
====================================

TIPS.
If you want to modify a driverpack, extract it in a separate folder, because later on you have to repack it along with its INI.

You will have to look at the INI, because if you remove folders what got referenced in the INI, finisher would throw an error. (It will show in the LOG.)

BEWARE, you have to repack.
DPs_base uses the packs, not the extracted folders.
The name you give the repacked pack must follow the naming convention for a driverpack.
If you unpacked xxx7041, you could call it xxx7042 so as not to lose the original.
I figure you would want the original in case your modification was not succesful, and if it is, its higher version number will be useful.

When you repack; Don't merge more than one pack into a single archive.
If you do that, it will NOT work.

--------------------------------------------------------
Making a pack perfect is not easy.

a testing version was put on rapidshare by Jaak.
BUT; Jaak had made an error in mass storage INI when he added a driver for servers in [c]
In [C] section, for a driver intended only for SERVER, Ms_1_exc_disableIfOS= "wxp" was used.
This had caused a long list of disabled drivers.

JSe wrote
The problem starts after [AU-3], the first commented out is [C] CPQ32FS2.
Compared to the original 704 there some changes at this point 704 also had
[AU-4] and [AU-5] but no [C].
and have found the problem:
it's the option
ms_1_exc_disableIfOS= "wxp" under the [C] header. From this point on _all_
drivers that follow will be disabled, this seems to be a bug of the Base program. I have replaced this option by
ms_1_exc_skipIfOS = "wxp"

Meanwhile, Jaak had reported what he thought was a bug at the bugtracker..

Because of this, OverFlow wrote:
Because you don't understand something does not mean there is a bug in the
base.
disable was not what you wanted
ms_1_exc_skipIfOS= or set ms_count = 0 are to "Disable" a driver (from
your perspective)
the ms_1_exc_disableIfOS= "wxp" means something totaly different to the Base
program.
"load the driver for plug and play but; in a DISABLEd state during text mode
setup."
We have never needed to do this for any OS except windows 2000.
...

JSe (thinking that was meant for him) then wrote:
Yes, you are right, I did not completly understand this functionality, but please note:
1. It was not me, who used this ms_1_exc_disabledIfOS="wxp", I was only the one who wrote that this option caused the problem of commenting out _all_ drivers, not only that one, that had this option applied that follow this driver.
2. What I still would call a (possible) bug is that an option, regardless if it is usefull or not at the point it had been used acts on all the following drivers. And if you dont like the word bug then let's call this unpredictable behavior we should be aware of if it happens again.
Then Jeff wrote:
I disagree. It does what it was designed to do. It is neither a bug nor unpredictable.
It is used for w2k to prevent drivers from loading into ram to prevent ram from being used up and it does.
We have yet to add enough drivers to find these limits on XP or 2003 and is not needed or supported.
If you put Garbage Into the .inf file you will get Garbage Out (GIGO).
That is not a flaw with the base it's user error. The "meat" virus.
Let's agree it was just not well documented.

And then Jaak wrote
I was unaware of that too, and I made that error in [C]
One could call it "growing pains", and I really think this should be made "more robust" against such "user" error.
I would NOT have posted RUUDBOEK's text had this project not become open-source.
The end user has had the possibility to edit the INI for a while now, and little in depth information was public.
Give me the choice between PM or chat for help... Then I will choose public discussions. Always.

Long time ago, on other boards, some long discussions got summarised, and posted.
A summary like that was welcomed.
It came with all relevant links, and all posts or helpful parts of posts that got included were credited to the original poster.
You can bet there are people using snips of posted tips to write their own reference txt.
I am one of those...
---------
So, this is how this txt came to fruition.
We've now collaborated on this, and we hope it is informative.

Some quoted text was edited for clarity or grammar.
We're an international bunch, and English is only a second language to many.

=======================

revision six, date 2007/05/12

DISM walkthrough - observations from my first ever attempt

REMark WAIK (Windows Automated Installation Kit) is required and is a free download from MS.
REMark references at
REMark http://technet.microsoft.com/en-us/library/dd799258(WS.10).aspxREMark http://technet.microsoft.com/en-us/library/dd744382(WS.10).aspxREMark test code and output from DISM command window on my machineREMark Jeff Herre 2010-01-31==================================================================================================Summary, Adding Mass Storage drivers:REMark Mount Boot.wim (always use Index #2)Dism /Mount-Wim /WimFile:C:\Source-OS\SOURCES\BOOT.WIM /index:2 /MountDir:C:\test\offlineREMark Check for and optionaly remove existing drivers previously addedDism /image:C:\test\offline /Get-DriversDism /image:C:\test\offline /Remove-Driver /driver:oem0.inf /driver:oem1.inf ... /driver:oem99.infREMark Add DriversDism /image:C:\test\offline /Add-Driver /driver:C:\test\DP_Temp([\mydriver.INF] or [/recurse]) [/ForceUnsigned]REMark Save workC:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /Unmount-Wim /MountDir:C:\test\offline /commitREMark Mass storage text mode is doneREMark A bootable ISO is created with the tool oscdimg.exeREMark http://technet.microsoft.com/en-us/library/dd799243(WS.10).aspx==================================================================================================What I did step by step==================================================================================================C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /Get-WimInfo /WimFile:C:\#NT6-Tools\Source-OS\Win7-all\SOURCES\BOOT.WIMDeployment Image Servicing and Management toolVersion: 6.1.7600.16385Details for image : C:\#NT6-Tools\Source-OS\Win7-all\SOURCES\BOOT.WIMIndex : 1Name : Microsoft Windows PE (x86)Description : Microsoft Windows PE (x86)Size : 806,390,831 bytesIndex : 2Name : Microsoft Windows Setup (x86)Description : Microsoft Windows Setup (x86)Size : 881,382,947 bytesThe operation completed successfully. C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /Get-WimInfo /WimFile:C:\#NT6-Tools\Source-OS\Win7-all\SOURCES\BOOT.WIM /index:1Deployment Image Servicing and Management toolVersion: 6.1.7600.16385Details for image : C:\#NT6-Tools\Source-OS\Win7-all\SOURCES\BOOT.WIMIndex : 1Name : Microsoft Windows PE (x86)Description : Microsoft Windows PE (x86)Size : 806,390,831 bytesArchitecture : x86Hal : <undefined>Version : 6.1.7600ServicePack Build : 16385ServicePack Level : 0Edition : WindowsPEInstallation : WindowsPEProductType : WinNTProductSuite :System Root : WINDOWSDirectories : 2133Files : 9578Created : 7/13/2009 - 10:06:36 PMModified : 7/13/2009 - 10:06:38 PMLanguages :        en-US (Default)The operation completed successfully. C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /Get-WimInfo /WimFile:C:\#NT6-Tools\Source-OS\Win7-all\SOURCES\BOOT.WIM /index:2Deployment Image Servicing and Management toolVersion: 6.1.7600.16385Details for image : C:\#NT6-Tools\Source-OS\Win7-all\SOURCES\BOOT.WIMIndex : 2Name : Microsoft Windows Setup (x86)Description : Microsoft Windows Setup (x86)Size : 881,382,947 bytesArchitecture : x86Hal : <undefined>Version : 6.1.7600ServicePack Build : 16385ServicePack Level : 0Edition : WindowsPEInstallation : WindowsPEProductType : WinNTProductSuite :System Root : WINDOWSDirectories : 2364Files : 10257Created : 7/13/2009 - 10:07:35 PMModified : 7/14/2009 - 2:33:35 AMLanguages :        en-US (Default)The operation completed successfully. C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /Get-WimInfo /WimFile:C:\#NT6-Tools\Source-OS\Win7-all\SOURCES\BOOT.WIM /index:3Deployment Image Servicing and Management toolVersion: 6.1.7600.16385Error: 87An error occurred while processing the command.Ensure that the command-line arguments are valid. For more information, review the log file.The DISM log file can be found at H:\WINDOWS\Logs\DISM\dism.log REMark Let's find out what images this Install.wim supports...C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /Get-WimInfo /WimFile:C:\#NT6-Tools\Source-OS\Win7-all\SOURCES\INSTALL.WIMDeployment Image Servicing and Management toolVersion: 6.1.7600.16385Details for image : C:\#NT6-Tools\Source-OS\Win7-all\SOURCES\INSTALL.WIMIndex : 1Name : Windows 7 ENTERPRISE x64Description : Windows 7 ENTERPRISESize : 11,912,905,130 bytesIndex : 2Name : Windows 7 PREMIUM x64Description : Windows 7 HOMEPREMIUMSize : 12,012,660,212 bytesIndex : 3Name : Windows 7 PROFESSIONAL x64Description : Windows 7 PROFESSIONALSize : 11,910,752,928 bytesIndex : 4Name : Windows 7 ULTIMATE x64Description : Windows 7 ULTIMATESize : 12,070,211,908 bytesIndex : 5Name : Windows 7 STARTER x32Description : Windows 7 STARTERSize : 7,936,340,784 bytesIndex : 6Name : Windows 7 BASIC x32Description : Windows 7 HOMEBASICSize : 7,992,394,907 bytesIndex : 7Name : Windows 7 PREMIUM x32Description : Windows 7 HOMEPREMIUMSize : 8,432,859,356 bytesIndex : 8Name : Windows 7 PROFESSIONAL x32Description : Windows 7 PROFESSIONALSize : 8,313,318,889 bytesIndex : 9Name : Windows 7 ULTIMATE x32Description : Windows 7 ULTIMATESize : 8,471,060,645 bytesIndex : 10Name : Windows 7 ENTERPRISE x32Description : Windows 7 ENTERPRISESize : 8,315,649,536 bytesThe operation completed successfully. C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>MD C:\test\offline REMark   Let's Mount the BOOT.wim to the temp folder I Just Created...C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /Mount-Wim /WimFile:C:\#NT6-Tools\Source-OS\Win7-all\SOURCES\BOOT.WIM /index:2 /MountDir:C:\test\offlineDeployment Image Servicing and Management toolVersion: 6.1.7600.16385Mounting image[==========================100.0%==========================]The operation completed successfully. REMark   Note the above line is a PROGRESS BAR! and increments 1%... 2%... 3%... 100.0% YES Wim there is feedback!REMark   To add Textmode drivers we mount the BOOT.wim image and add them to ONLY INDEX:2 (I belive IMAGE:1 is a safe mode / fall back type image)REMark   The correct BOOT.wim is / was mounted with the last command aboveREMark   To add regular drivers like Graphics etc... we have to mount the corresponding Install.wim image and add them to each one or the just the one we intend to use ;).REMark   Images may be mounted by name or index number REMark   Let's find out what drivers exist in the image... and let's take a look at all three output formats just for giggles...C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Get-Drivers /all > C:\test\Temp.TXTREMark   attached Temp.TXTC:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Get-Drivers /all /Format:Table > C:\test\TempTable.TXTREMark   attached TempTable.TXTC:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Get-Drivers /all /Format:List > C:\test\TempList.TXTREMark   attached TempList.TXTREMark   It turns out the 'Default' is /Format:List SO... Temp.txt = TempList.txtREMark   If the /All switch is not used then only Third Party drivers are Displayed. Since I have not added any yet the list is empty...C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Get-Drivers /Format:ListDeployment Image Servicing and Management toolVersion: 6.1.7600.16385Image Version: 6.1.7600.16385Obtaining list of 3rd party drivers from the driver store...Driver packages listing:(No drivers found in the image matching the criteria)The operation completed successfully.  C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>C:\dpsbase\bin\un7zip.exe "C:\dp Vista packs\x86\Masstorage_x86_907.7z" "C:\test\DP_Temp"REMark   Extracted Mass to temp folder C:\test\DP_TempREMark   Let's add the mass pack now!C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Add-Driver /driver:C:\test\DP_Temp /recurse /ForceUnsignedDeployment Image Servicing and Management toolVersion: 6.1.7600.16385Image Version: 6.1.7600.16385Searching for driver packages to install...Found 44 driver package(s) to install.Installing 1 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\1\1\hcix86s.inf: The driver package was successfully installed.Installing 2 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\10\11\ViPrt.inf: The driver package was successfully installed.Installing 3 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\10\12\viamraid.inf: The driver package was successfully installed.Installing 4 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\11\1MegaSR1.INF: The driver package was successfully installed.Installing 5 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\11\1nodev.inf: The driver package was successfully installed.Installing 6 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\11\2nodev.inf: The driver package was successfully installed.Installing 7 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\11\2oemsetup.inf: The driver package was successfully installed.Installing 8 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\11\3nodev.inf: The driver package was successfully installed.Installing 9 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\11\3oemsetup.inf: The driver package was successfully installed.Installing 10 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\11\\lsi_sas.inf: The driver package was successfully installed.Installing 11 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\11\\lsinodrv.inf: The driver package was successfully installed.Installing 12 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\11\\lsi_fc.inf: The driver package was successfully installed.Installing 13 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\12\\iteraid.inf: The driver package was successfully installed.Installing 14 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\2\1rr172x.inf: The driver package was successfully installed.Installing 15 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\2\2rr2522.inf: The driver package was successfully installed.Installing 16 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\2\3hptmv.inf: The driver package was successfully installed.Installing 17 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\3\1iaAHCI.inf: The driver package was successfully installed.Installing 18 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\3\1iaStor.inf: The driver package was successfully installed.Installing 19 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\3\2iSSetup.INF: The driver package was successfully installed.Installing 20 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\4\1jraid_i.inf: The driver package was successfully installed.Installing 21 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\4\2jmcr_jm.inf: The driver package was successfully installed.Installing 22 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\4\2jmcr_sda.inf: The driver package was successfully installed.Installing 23 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\4\3johci.inf: The driver package was successfully installed.Installing 24 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\5\1mv61xx.inf: The driver package was successfully installed.Installing 25 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\5\1mvnodrv.inf: The driver package was successfully installed.Installing 26 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\6\1nvstor32.inf: The driver package was successfully installed.Installing 27 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\6\2\nvrd32.inf: The driver package was successfully installed.Installing 28 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\1\1\SI3112.inf: The driver package was successfully installed.Installing 29 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\1\2\Si3112r.inf: The driver package was successfully installed.Installing 30 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\2\1\SI3114.inf: The driver package was successfully installed.Installing 31 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\2\2\SI3114r.inf: The driver package was successfully installed.Installing 32 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\2\3\si3114r5.inf: The driver package was successfully installed.Installing 33 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\2\3\sippd.inf: The driver package was successfully installed.Installing 34 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\3\1\SI3124.inf: The driver package was successfully installed.Installing 35 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\3\2\si3124r5.inf: The driver package was successfully installed.Installing 36 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\3\2\sippd.inf: The driver package was successfully installed.Installing 37 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\4\1\SI3132.inf: The driver package was successfully installed.Installing 38 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\4\2\si3132r5.inf: The driver package was successfully installed.Installing 39 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\4\2\sippd.inf: The driver package was successfully installed.Installing 40 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\5\1\si3531.inf: The driver package was successfully installed.Installing 41 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\7\5\1\sippd.inf: The driver package was successfully installed.Installing 42 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\8\1\SISRaid2.INF: The driver package was successfully installed.Installing 43 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\8\2\sisraid4.inf: The driver package was successfully installed.Installing 44 of 44 - C:\test\DP_Temp\Masstorage_x86_907\Masstorage_x86_907\9\1\ULISATA.INF: The driver package was successfully installed.The operation completed successfully. REMark   That seems to have worked let's list them to see!C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Get-Drivers /Format:ListDeployment Image Servicing and Management toolVersion: 6.1.7600.16385Image Version: 6.1.7600.16385Obtaining list of 3rd party drivers from the driver store...Driver packages listing:Published Name : oem0.infOriginal File Name : ahcix86s.infInbox : NoClass Name : SCSIAdapterProvider Name : ATI Technologies Inc.Date : 3/21/2007Version : 2.5.1540.41Published Name : oem1.infOriginal File Name : viprt.infInbox : NoClass Name : hdcProvider Name : VIADate : 4/3/2008Version : 6.0.6000.252REMark   Output to > AfterMass.txt is attached with full output, the above is just a sample... REMark   Again that seems to have workedREMark   I think all I have to do now is commit the changes... Let's try that! C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /Commit-Wim /MountDir:C:\test\offlineDeployment Image Servicing and Management toolVersion: 6.1.7600.16385Saving image[==========================100.0%==========================]The operation completed successfully.REMark Similar in fit, form and feel to the mount process...REMark Let's unmount the image Burn and Test!Dism /Unmount-Wim /MountDir:C:\test\offline /commitDeployment Image Servicing and Management toolVersion: 6.1.7600.16385Image File : C:\#NT6-Tools\Source-OS\Win7-all\SOURCES\BOOT.WIMImage Index : 2Saving image[==========================100.0%==========================]Unmounting image[==========================100.0%==========================]The operation completed successfully.REMark I am not sure if i can do the commit and unmount as a single operation... more testing requiredREMark Let's remount and remove the added drivers... Then re-add them and test that theory :D.REMark This will also test the viability of removing previous drivers for a DPsI upgrade process :D :P.REMark The C:\test\offline folder was emptied by the DISM tool... Very cool!C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /Mount-Wim /WimFile:C:\#NT6-Tools\Source-OS\Win7-all\SOURCES\BOOT.WIM /index:2 /MountDir:C:\test\offlineC:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Get-DriversREMark Yes the drivers are there let's remove themC:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Remove-Driver /driver:oem1.inf /driver:oem2.inf /driver:oem3.inf /driver:oem4.inf /driver:oem5.inf /driver:oem6.inf /driver:oem7.inf /driver:oem8.inf /driver:oem9.inf /driver:oem10.inf /driver:oem11.inf /driver:oem12.infDeployment Image Servicing and Management toolVersion: 6.1.7600.16385Image Version: 6.1.7600.16385Found 12 driver package(s) to remove.Removing 1 of 12 - oem1.inf: The driver package was successfully removed.Removing 2 of 12 - oem10.inf: The driver package was successfully removed.Removing 3 of 12 - oem11.inf: The driver package was successfully removed.Removing 4 of 12 - oem12.inf: The driver package was successfully removed.Removing 5 of 12 - oem2.inf: The driver package was successfully removed.Removing 6 of 12 - oem3.inf: The driver package was successfully removed.Removing 7 of 12 - oem4.inf: The driver package was successfully removed.Removing 8 of 12 - oem5.inf: The driver package was successfully removed.Removing 9 of 12 - oem6.inf: The driver package was successfully removed.Removing 10 of 12 - oem7.inf: The driver package was successfully removed.Removing 11 of 12 - oem8.inf: The driver package was successfully removed.Removing 12 of 12 - oem9.inf: The driver package was successfully removed.The operation completed successfully.C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Remove-Driver /driver:oem13.inf /driver:oem14.inf /driver:oem15.inf /driver:oem16.inf /driver:oem17.inf /driver:oem18.inf /driver:oem19.inf /driver:oem20.inf /driver:oem21.inf /driver:oem22.inf /driver:oem23.inf /driver:oem24.infDeployment Image Servicing and Management toolVersion: 6.1.7600.16385Image Version: 6.1.7600.16385Found 12 driver package(s) to remove.Removing 1 of 12 - oem13.inf: The driver package was successfully removed.Removing 2 of 12 - oem14.inf: The driver package was successfully removed.Removing 3 of 12 - oem15.inf: The driver package was successfully removed.Removing 4 of 12 - oem16.inf: The driver package was successfully removed.Removing 5 of 12 - oem17.inf: The driver package was successfully removed.Removing 6 of 12 - oem18.inf: The driver package was successfully removed.Removing 7 of 12 - oem19.inf: The driver package was successfully removed.Removing 8 of 12 - oem20.inf: The driver package was successfully removed.Removing 9 of 12 - oem21.inf: The driver package was successfully removed.Removing 10 of 12 - oem22.inf: The driver package was successfully removed.Removing 11 of 12 - oem23.inf: The driver package was successfully removed.Removing 12 of 12 - oem24.inf: The driver package was successfully removed.The operation completed successfully.C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Remove-Driver /driver:oem25.inf /driver:oem26.inf /driver:oem27.inf /driver:oem28.inf /driver:oem29.inf /driver:oem30.inf /driver:oem31.inf /driver:oem32.inf /driver:oem33.inf /driver:oem34.inf /driver:oem35.inf /driver:oem36.inf...C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Remove-Driver /driver:oem26.inf /driver:oem37.inf /driver:oem38.inf /driver:oem39.inf /driver:oem40.inf /driver:oem41.inf /driver:oem42.inf /driver:oem43.inf /driver:oem44.inf...REMark TEST removal and commit changes and retest...C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Get-DriversDeployment Image Servicing and Management toolVersion: 6.1.7600.16385Image Version: 6.1.7600.16385Obtaining list of 3rd party drivers from the driver store...Driver packages listing:Published Name : oem0.infOriginal File Name : ahcix86s.infInbox : NoClass Name : SCSIAdapterProvider Name : ATI Technologies Inc.Date : 3/21/2007Version : 2.5.1540.41The operation completed successfully.REMark (Forgot oem0.inf)C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Remove-Driver /driver:oem0.inf...C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Get-DriversDeployment Image Servicing and Management toolVersion: 6.1.7600.16385Image Version: 6.1.7600.16385Obtaining list of 3rd party drivers from the driver store...Driver packages listing:(No drivers found in the image matching the criteria)The operation completed successfully. REMark Success... Lets commit now! and then re-add the drivers... LOL (PS The drivers are QSCed :D.)C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /Commit-Wim /MountDir:C:\test\offlineREMark We just Saved the image with all the Mass drivers removed (in theory the wim is in the same state it was in when we started)  REMark Re-Add Drivers (they were not deleted so we don't need to re-extract them)C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /image:C:\test\offline /Add-Driver /driver:C:\test\DP_Temp /recurse /ForceUnsignedREMark Let's see if we can save and commit as one operation!!!C:\#NT6-Tools\Windows AIK - Win7\Tools\PETools>Dism /Unmount-Wim /MountDir:C:\test\offline /commitDeployment Image Servicing and Management toolVersion: 6.1.7600.16385Image File : C:\#NT6-Tools\Source-OS\Win7-all\SOURCES\BOOT.WIMImage Index : 2Saving image[==========================100.0%==========================]Unmounting image[==========================100.0%==========================]The operation completed successfully. REMark Remount and test to see if it commited and saved...REMark Yes Commit and Save can be done as one operation...    

DriverPacks BASE BartPE guide

DriverPacks.net Help file for the DriverPacks Plugin for BartPE

Platform: Currently supporting: x86 32-bit versions of Windows XP and 2003 Section One:Older versions of UBCD4Win previous to 3.05 install directionsDisable or remove any existing Mass Storage Drivers.UBCD4Win came with many drivers and to avoid conflicts these needed to be disabled.To disable the included drivers... Create a new folder in the BartPE / UBCD4win folder called \DISABLED\ then cut and pastethe <UBCD4Win>\drivers\*.*  folder(s) to the <UBCD4Win>\DISABLED folder. You can also simply delete these folders if you wish but this would not allow you to use them later if needed.Newer versions of UBCD4Win Include Bashrat the Sneaky's (BTS) DriverPacks  All other versions of BartPE Extract / install the DriverPacks Base program to a folder that IS NOT in your plugin folder - IE C:\DPsBase\ - We will allow the Base program to automaticaly create our plugin and related folders in your BartPE installation. - The folder structure is key to obtaining the full functionality of DriverPacks BASE and resulting plugins from the PEBuilder plugins page .Download the latest Mass Storage DriverPack directly to your DriverPacks folder. IE C:\DPsBase\DriverPacks\ The other packs are optional and other than LAN and WLAN are generaly not needed.Graphics and Sound drivers will require that other plugins that they depend on are provided by you.Be aware that including more than just the basic packs (Mass and LAN) you will very quickly exceed the size of a CD. you dont need to unzip or do anything else to the packs manually.Run C:\DPsBase\DPs_BASE.exe and select your language on the 'Start' page.Click the button with the > sign on it (or click on settings) to display the 'Settings' page followed by the 'Location' pageOn the location page (see fig1) Select BartPE and "Browse" to your Plugin folder. note - If you select a valid BartPE Plugin folder the OS: field will change from 'N/A' to 'bartpe'note - If you do not select a valid location you will not be shown the rest of the settings pages.Figure 1  Click on DriverPacks™ in the navigation pane or click on the next button '>' (see fig2)If the MassStorage DriverPack exists in the C:\DPsBase\DriverPacks folder then MassStorage text mode will automaticaly be selected.Figure 2Click on 'Slipstream!'That's it your done creating your Mass Storage and any other selected plugins.------------------------------------------------------------------------------------------------------Afterwards you will have the following new folder under \plugins... ' \plugin\DriverPacks.net\BASE' DO NOT CHANGE THE NAME OF THIS FOLDER!!!"plugin\DriverPacks.net\BASE" is hard-coded into the executable and must not be altered in any way.Altering the path will create issues when upgrading or adding new DriverPacksRun UBCD4WINBUILDER.EXE or PEBuilder.exe and open the "plugins" page.there should be new plugins (fig3) "# DriverPacks.net - BASE - Press <CONFIG> to enable drivers or reset DriverPacks plugins"- this should be set to 'NO' because it is only here to 'configure' plugins it is not part of the build. "# DriverPacks.net - MassStorage"- this should be set to yes to enable the MassStorage Plugin and enable the drivers for your build.Figure 3If "# DriverPacks.net - MassStorage" is not there or is out of date then select"# DriverPack - Press <CONFIG> to enable drivers" & press the CONFIG button.This will setup the base.ini file to your local directory and run the driverpacks base which will generate the mass storage drivers plugin. You MUST press REFRESH before you will see the new plugin listed in pebuilder. -------------------------------------------------------------------------------------   Other Sources of help (subject to change without notice - sorry)Links:DriverPacks.net ForumDriverPacks.net Home PageBartPE Home PageUBCD4Win Home PageUBCD4Win Forum Help file updated by Overflow - 2009-12-15 OverFlow - Programmer for mass storage plugin for driverpacksMany thanks to BTS, hilander, cdob, and the ubcd4win team: i could not have done it without you guys

Dutch Unattended Windows XP Tutorial

You can find the old "UWXP" (Unattended Windows XP) tutorial in Dutch over here.

How to use Windows 7 DISM by Muiz.

 

How to use Windows 7 DISM by Muiz.

Q : What is DISM?
A : Deployment Image Servicing and Management (DISM)

Q : Why this guide?
A : 'Cause there is not much information about this tool out yet. (At the time i made this guide)

DISM is the replacement for the older deployment tools from Microsoft, like PKMGR and PEIMG
WAIK doesn't support this yet, so when you want to use WAIK, use it from a Vista or XP, not 
from a Windows 7. When you work from Windows 7, you don't need to install DISM, 'cause its already in it. 
(Or use the latest WAIK beta for Win7)
You can basically do anything to your image with DISM, even apply unattended settings to it, so you can 
use it unattended without XML.
How to get DISM?
Mount your Windows 7 and go to the System32 folder of the offline image, and copy the "DISM" folder and 
"DISM.exe" to your Vista System32 folder. 
Register the dll's inside(Some can't be registered).

Dll's :

CbsProvider.dll
CompatProvider.dll
DismCore.dll
DismCorePS.dll
DismProv.dll
DmiProvider.dll
IntlProvider.dll
MsiProvider.dll
SmiProvider.dll
UnattendProvider.dll
WimProvider.dll

For x64 users, you also have to grab the "SysWOW64" folder and the "DISM.exe" from there.

What I did was also added "DISM.exe" to my WAIK folder to make it even more easy to use.


Here is a small list with commands and a few examples, what you can do with dism.
You can get the example of each command by putting "/?" without the quotes after the command.
I did a few in this guide, but you can do this for each command.

----------------------------------------------------------------------------------------------------------------------

CODE
DISM.exe [dism_options] {WIM_command} [<WIM_arguments>]
DISM.exe {/Image:<path_to_offline_image> | /Online} [dism_options]
         {servicing_command} [<servicing_arguments>]

DESCRIPTION:

  DISM enumerates, installs, uninstalls, configures, and updates features
  and packages in Windows images. The commands that are available depend
  on the image being serviced and whether the image is offline or running.

WIM COMMANDS:

  /Get-MountedWimInfo     - Displays information about mounted WIM images.
  /Get-WimInfo            - Displays information about images in a WIM file.
  /Commit-Wim             - Saves changes to a mounted WIM image.
  /Unmount-Wim            - Unmounts a mounted WIM image.
  /Mount-Wim              - Mounts an image from a WIM file.
  /Remount-Wim            - Recovers an orphaned WIM mount directory.
  /Cleanup-Wim            - Deletes resources associated with mounted WIM
                            images that are corrupt.

Examples :

-------------------------------------------------------------------------------------
/Mount-Wim /WimFile:<path_to_WIM_file> {/Index:<image_index> | /Name:<image_name
>}
  /MountDir:<target_mount_directory> [/readonly]

  Mounts the WIM file to the specified directory so that it is available for
  servicing. /ReadOnly sets the mounted image with read-only permissions.

    Examples:
      DISM.exe /Mount-Wim /WimFile:C:\test\images\myimage.wim /index:1
        /MountDir:C:\test\offline

      DISM.exe /Mount-Wim /WimFile:C:\test\images\myimage.wim /index:1
        /MountDir:C:\test\offline /ReadOnly

-------------------------------------------------------------------------------------
/ScratchDir:<path_to_directory>

  Specifies a temporary directory to be used for extracting files for
  servicing. The directory must exist.

  If not set, the temporary directory will be used.

    Example:
      DISM.exe /Image:C:\test\offline /scratchdir:D:\Scratch

-------------------------------------------------------------------------------------
DISM.exe /Image:C:\test\offline /?

-------------------------------------------------------------------------------------




IMAGE SPECIFICATIONS:

  /Online                 - Targets the running operating system.
  /Image                  - Specifies the path to the root directory of an
                            offline Windows image.

DISM OPTIONS:

  /WinDir                 - Specifies the path to the Windows directory.
  /SysDriveDir            - Specifies the path to the system-loader file named
                            BootMgr.
  /LogPath                - Specifies the logfile path.
  /LogLevel               - Specifies the output level shown in the log (1-4).
  /NoRestart              - Suppresses automatic reboots and reboot prompts.
  /Quiet                  - Suppresses all output except for error messages.
  /ScratchDir             - Specifies the path to a scratch directory.

For more information about these DISM options and their arguments, specify an
option immediately before /?.

  Examples:
    DISM.exe /Mount-Wim /?
    DISM.exe /ScratchDir /?
    DISM.exe /Image:C:\test\offline /?
    DISM.exe /Online /?




WINDOWS EDITION SERVICING COMMANDS:

  /Set-ProductKey         - Populates the product key into the offline image.
  /Get-CurrentEdition     - Displays the editions of the specified image.
  /Get-StagedEditions     - Displays a list of Windows editions that can be
                            removed from the specified image.
  /Get-TargetEditions     - Displays a list of Windows editions that an
                            image can be upgraded to.
  /Remove-StagedEdition   - Removes a staged edition from the image.
  /Set-Edition            - Upgrades the Windows image to a higher edition.

UNATTEND SERVICING COMMANDS:

  /Apply-Unattend         - Applies an unattend file to an image.

DRIVER SERVICING COMMANDS:

  /Remove-Driver          - Removes driver packages from an offline image.
  /Add-Driver             - Adds driver packages to an offline image.
  /Get-DriverInfo         - Displays information about a specific driver
                            in an offline image or a running operating system.
  /Get-Drivers            - Displays information about all drivers in
                            an offline image or a running operating system.

INTERNATIONAL SERVICING COMMANDS:

  /Set-LayeredDriver      - Sets keyboard layered driver.
  /Set-UILang             - Sets the default system UI language that is used
                            in the mounted offline image.
  /Set-UILangFallback     - Sets the fallback default language for the system
                            UI in the mounted offline image.
  /Set-UserLocale         - Sets the user locale in the mounted offline image.
  /Set-SysLocale          - Sets the language for non-Unicode programs (also
                            called system locale) and font settings in the
                            mounted offline image.
  /Set-InputLocale        - Sets the input locales and keyboard layouts to
                            use in the mounted offline image.
  /Set-TimeZone           - Sets the default time zone in the mounted offline
                            image.
  /Set-AllIntl            - Sets all international settings in the mounted
                            offline image.
  /Set-SKUIntlDefaults    - Sets all international settings to the default
                            values for the specified SKU language in the
                            mounted offline image.
  /Gen-LangIni            - Generates a new lang.ini file.
  /Set-SetupUILang        - Defines the default language that will be used
                            by setup.
  /Get-Intl               - Displays information about the international
                            settings and languages.

APPLICATION SERVICING COMMANDS:

  /Check-AppPatch         - Displays information if the MSP patches are
                            applicable to the mounted image.
  /Get-AppPatchInfo       - Displays information about installed MSP patches.
  /Get-AppPatches         - Displays information about all applied MSP patches
                            for all installed applications.
  /Get-AppInfo            - Displays information about a specific installed MSI
                            application.
  /Get-Apps               - Displays information about all installed MSI
                            applications.

PACKAGE SERVICING COMMANDS:

  /Add-Package            - Adds packages to the image.
  /Remove-Package         - Removes packages from the image.
  /Enable-Feature         - Enables a specific feature in the image.
  /Disable-Feature        - Disables a specific feature in the image.
  /Get-Packages           - Displays information about all packages in
                            the image.
  /Get-PackageInfo        - Displays information about a specific package.
  /Get-Features           - Displays information about all features in
                            a package.
  /Get-FeatureInfo        - Displays information about a specific feature.

For more information about these servicing commands and their arguments,
specify a command immediately before /?.

     Examples:
------------------------------------------------------------------------------
         DISM.exe /Image:C:\test\offline /Apply-Unattend /?
         DISM.exe /Image:C:\test\offline /Get-Features /?
         DISM.exe /Online /Get-Drivers /?

/Apply-Unattend:<path_to_unattend.xml>

  Applies an unattend.xml file to an offline image or a running operating
  system.

    Examples:
      DISM.exe /Image:C:\test\offline /Apply-Unattend:C:\unattend.xml
      DISM.exe /Online /Apply-Unattend:C:\unattend.xml\

-------------------------------------------------------------------------------

/Get-Features [/PackagePath:<path_to_package>] [/PackageName:<name_in_image>]

  Displays information about all features found in a specific package.
  If you do not specify a package name or path, all features in the image will
  be listed. /PackagePath can point to either a .cab file or a folder.

    Examples:
      DISM.exe /Image:C:\test\offline /Get-Features

      DISM.exe /Image:C:\test\offline /Get-Features
        /PackagePath:C:\packages\package.cab

      DISM.exe /Image:C:\test\offline /Get-Features
        /PackageName:Microsoft.Windows.Calc.Demo~6595b6144ccf1df~x86~en~1.0.0.0
---------------------------------------------------------------------------------

/Get-Drivers [/all]

  Displays information about drivers in an image. Only shows out-of-box drivers
  by default. Use /all switch to show all drivers in the image.

    Example:
      DISM.exe /Image:C:\test\offline /Get-Drivers
      DISM.exe /Image:C:\test\offline /Get-Drivers /all
---------------------------------------------------------------------------------


This is the beginning of a bigger guide, but it will do for now.

Author : Muiz
Credits : MuizWill post some Windows 7 driverpacks soon.