Resources For Investigating and Fixing Windows Driver Framework Installation Issues
Currently there is some more information I need to accumulate here:
- Summary of services for each framework
- Other registry settings needed for a healthy installation
- Other registry settings that are typically created by our packages (NOT all possible keys, just those we might write ourselves).
- Provision a source point with some text files for our known workarounds, data collection scripts and such- then link to those from here.
Turning up SetupApi logging level on OS before Windows Vista
To set the logging level for all device-installation programs
- 1. If the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup registry subkey does not contain a LogLevel entry, create one as a new REG_DWORD value.
- 2. Set the value of the LogLevel entry to the logging level that you want.
For most purposes, a value of 0x6060 is sufficient for the level of detail needed to debug WDF installation issues. A value of 0xFFFF is also usable, but it lists all INFs searched in matching an ID, and in most cases, this won't matter to you.
See http://www.microsoft.com/whdc/driver/install/setupapilog.mspx for further information, and a useful paper on setupapi logs and installation debugging.
Files making up the Windows Driver Frameworks
This is a summary of the individual files and their correct post-install locations.
KMDF
|
File Name |
Location |
|
WdfCoinstaller01???.DLL (??? Is minor version number)* |
%windir%\system32 |
|
Wdf01000.sys |
%windir%\system32\drivers |
|
WdfLdr.Sys |
%windir%\system32\drivers |
UMDF
|
File Name |
Location |
|
WudfUpdate_01???.dll (??? Is minor version number)* |
%windir%\system32 |
|
WUDFCoinstaller.dll |
%windir%\system32 |
|
WUDFHost.exe |
%windir%\system32 |
|
WUDFPlatform.dll |
%windir%\system32 |
|
WUDFSvc.dll |
%windir%\system32 |
|
WUDFx.dll |
%windir%\system32 |
|
WUDFPf.sys |
%windir%\system32\drivers |
|
WUDFRd.sys |
%windir%\system32\drivers |
Coinstaller sizes for all WDF versions
KMDF
|
Version |
Date |
X86 fre |
X86 chk |
Amd64fre |
Amd64chk |
Ia64fre |
Ia64chk |
|
1.0 |
Nov 30, 2005 |
1,060,424 |
N/A |
1,491,528 |
N/A |
2,302,024 |
N/A |
|
1.1 |
Apr 20, 2006 |
1,418,720 |
1,460,192 |
1,912,800 |
1,983,968 |
2,914,272 |
3,100,640 |
|
1.5 |
Nov 2, 2006 |
1,419,232 |
1,512,928 |
1,919,968 |
2,059,744 |
3,084,768 |
3,552,224 |
|
1.7 |
Mar 27, 2008 |
1,112,288 |
815,328 |
1,490,656 |
1,087,200 |
1,626,848 |
1,764,576 |
Notes:
- KMDF 1.0 had no checked coinstallers- binaries for the checked version were a part of the kit (in wdf\kmdf10\bin\debug)
- KMDF 1.7 binaries are smaller because a multi-OS update package was used. Checked coinstallers [except IA64] cannot update Windows Vista (they are smaller because no package is included for this)- the underlying technology does not support checked OS updates. IA64 checked is larger because the multi-OS update package is much larger, even after compression.
UMDF
|
Version |
Date |
X86fre |
X86chk |
Amd64fre |
Amd64chk |
Ia64fre |
Ia64chk |
|
1.5 |
Nov 2, 2006 |
831,096 |
972,408 |
996,984 |
1,170,040 |
N/A |
N/A |
|
1.7 |
Mar 27, 2008 |
1,302,600 |
997,960 |
1,533,512 |
1,197,128 |
1,798,728 |
2,142,280 |
Notes:
- UMDF 1.5 did not support the IA64 platform.
- The 1.7 checked coinstallers [except IA64] are smaller for the same reason as KMDF.
Binary sizes for all released WDF versions
KMDF
|
File and version |
Date |
X86fre |
X86chk |
Amd64fre |
Amd64chk |
Ia64fre |
Ia64chk |
|
1.0 wdf01000.sys |
Nov 30, 2005 |
474,184 |
544,840 |
1,017,928 |
1,145,416 |
1,598,536 |
1,747,528 |
|
1.0 wdfldr.sys |
Nov 30, 2005 |
31,304 |
31,816 |
37,960 |
38,984 |
58,440 |
59,464 |
|
1.1 wdf01000.sys |
Apr 20, 2006 |
479,200 |
556,512 |
838,624 |
944,608 |
1,350,624 |
1,536,480 |
|
1.1 wdfldr.sys |
Apr 20, 2006 |
30,688 |
31,200 |
32,736 |
33,760 |
53,216 |
55,264 |
|
1.5 wdf01000.sys |
Nov 2, 2006 |
492,000 |
577,504 |
865,760 |
969,184 |
1,376,224 |
1,587,680 |
|
1.5 wdfldr.sys |
Nov 2, 2006 |
32,224 |
32,736 |
34,784 |
35,296 |
60,384 |
61,920 |
|
1.7 wdf01000.sys |
Mar 27, 2008 |
503,008 |
590,048 |
880,864 |
985,824 |
1,405,664 |
1,623,776 |
|
1.7 wdfldr.sys |
Mar 27, 2008 |
35,040 |
35,552 |
37,088 |
38,112 |
62,688 |
65,248 |
- KMDF 1.0 has no version resources in its binaries, all others have them in both binaries
- KMDF 1.1 version is 1.1.0.0.
- KMDF 1.5 version is 1.5.6000.0
- KMDF 1.7 product version is 1.7.6001.0 [the file version may differ on Windows Vista- otherwise, both version numbers are identical]
UMDF 1.7
|
File and version |
Date |
X86fre |
X86chk |
Amd64fre |
Amd64chk |
Ia64fre |
Ia64chk |
|
Wudfcoinstaller.dll |
Jan 19, 2008 |
87,552 |
163,328 |
89,600 |
174,592 |
183,368 |
347,136 |
|
Wudfhost.exe |
Jan 19, 2008 |
142,336 |
151,040 |
166,400 |
175,616 |
298,496 |
317,952 |
|
Wudfpf.sys |
Jan 18, 2008 |
77,696 |
83,840 |
95,744 |
106,496 |
190,464 |
201,216 |
|
Wudfplatform.dll |
Jan 18, 2008 |
163,840 |
243,712 |
172,544 |
265,728 |
348,160 |
515,584 |
|
Wudfrd.sys |
Jan 19, 2008 |
83,328 |
94,592 |
108,544 |
121,856 |
258,048 |
284,160 |
|
Wudfsvc.dll |
Jan 19, 2008 |
55,296 |
59,392 |
66,560 |
70,656 |
151,552 |
157,696 |
|
Wudfx.dll |
Jan 19, 2008 |
305,152 |
334,336 |
377,344 |
410,624 |
648,192 |
726,528 |
- Binaries should have version resource for 6.0.6001.1800
UMDF 1.5
|
File |
Date |
X86fre |
X86chk |
Amd64fre |
Amd64chk |
|
Wudfcoinstaller.dll |
Nov 2, 2006 |
87,552 |
163,840 |
89,600 |
174,080 |
|
Wudfhost.exe |
Nov 2, 2006 |
143,360 |
152,576 |
167,424 |
177,152 |
|
Wudfpf.sys |
Nov 2, 2006 |
76,672 |
82,560 |
95,232 |
104,960 |
|
Wudfplatform.dll |
Nov 2, 2006 |
164,352 |
244,224 |
172,544 |
266,240 |
|
Wudfrd.sys |
Nov 2, 2006 |
82,560 |
93,440 |
108,032 |
120,320 |
|
Wudfsvc.dll |
Nov 2, 2006 |
55,296 |
59,904 |
66,560 |
70,656 |
|
Wudfx.dll |
Nov 2, 2006 |
309,760 |
338,944 |
381,952 |
414,208 |
- Binaries should have version resource for 6.0.6000.16386
- There is no IA64 version of UMDF 1.5.