-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrelnote.htm
More file actions
1706 lines (1277 loc) · 113 KB
/
relnote.htm
File metadata and controls
1706 lines (1277 loc) · 113 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<html>
<head>
<!-- saved from url=(0014)about:internet -->
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<base target="_self">
<title> </title>
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
h2
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
page-break-after:avoid;
font-size:14.0pt;
font-family:Arial;
font-weight:bold;
font-style:italic;}
h3
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
page-break-after:avoid;
font-size:13.0pt;
font-family:Arial;
font-weight:bold;}
p.MsoCommentText, li.MsoCommentText, div.MsoCommentText
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
p
{margin-right:0in;
margin-left:0in;
font-size:12.0pt;
font-family:"Times New Roman";}
p.MsoCommentSubject, li.MsoCommentSubject, div.MsoCommentSubject
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Times New Roman";
font-weight:bold;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{margin:0in;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:Tahoma;}
p.Lb1, li.Lb1, div.Lb1
{margin-top:0in;
margin-right:5.75pt;
margin-bottom:3.0pt;
margin-left:.25in;
text-indent:-12.0pt;
punctuation-wrap:simple;
text-autospace:none;
font-size:10.0pt;
font-family:Arial;}
span.BulletedList1Char
{font-family:Arial;}
p.Lp1, li.Lp1, div.Lp1
{margin-top:0in;
margin-right:5.75pt;
margin-bottom:3.0pt;
margin-left:.25in;
punctuation-wrap:simple;
text-autospace:none;
font-size:10.0pt;
font-family:Arial;}
span.HHyperlink
{color:blue;
text-decoration:underline;}
p.Text, li.Text, div.Text
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:2.0pt;
margin-left:0in;
line-height:12.0pt;
font-size:10.0pt;
font-family:Arial;
color:black;}
p.Th, li.Th, div.Th
{margin-top:0in;
margin-right:5.75pt;
margin-bottom:3.0pt;
margin-left:5.75pt;
punctuation-wrap:simple;
text-autospace:none;
font-size:10.0pt;
font-family:Arial;
font-weight:bold;}
p.Tp, li.Tp, div.Tp
{margin-top:0in;
margin-right:5.75pt;
margin-bottom:3.0pt;
margin-left:5.75pt;
punctuation-wrap:simple;
text-autospace:none;
font-size:10.0pt;
font-family:Arial;}
p.Tes, li.Tes, div.Tes
{margin-top:0in;
margin-right:5.75pt;
margin-bottom:0in;
margin-left:5.75pt;
margin-bottom:.0001pt;
punctuation-wrap:simple;
text-autospace:none;
font-size:6.0pt;
font-family:Arial;}
p.NormalVerdana, li.NormalVerdana, div.NormalVerdana
{margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
text-indent:-.25in;
font-size:10.0pt;
font-family:Verdana;}
@page Section1
{size:11.0in 11.0in;
margin:1.0in 1.5in 1.0in 1.5in;}
div.Section1
{page:Section1;}
/* List Definitions */
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width="100%"
style='width:100.0%;border-collapse:collapse'>
<tr style='height:.2in'>
<td width="31%" rowspan=2 valign=top style='width:31.26%;padding:0in 0in 0in 0in;
height:.2in'>
<p class=MsoNormal></p>
</td>
<td width="1%" rowspan=2 valign=top style='width:1.58%;padding:0in 0in 0in 0in;
height:.2in'>
<p class=MsoNormal></p>
</td>
<td width="8%" valign=top style='width:8.1%;background:black;padding:0in 0in 0in 0in;
height:.2in'>
<p class=MsoNormal> </p>
</td>
<td width="59%" style='width:59.08%;background:black;padding:0in 0in 0in 0in;
height:.2in'>
<p class=MsoNormal align=right style='text-align:right'><b><span
style='font-size:7.0pt;font-family:Verdana;color:white'><a
href="http://support.microsoft.com/"><span style='color:white;text-decoration:
none'>Links to the Web: Support</span></a> | <a
href="http://search.microsoft.com/"><span style='color:white;text-decoration:
none'>Search</span></a> | <a href="http://www.msdn.microsoft.com/"><span
style='color:white;text-decoration:none'>MSDN</span></a> | <a
href="http://www.microsoft.com/whdc/devtools/ddk/default.mspx"><span
style='color:white;text-decoration:none'>Windows Driver Kits</span></a> </span></b></p>
</td>
</tr>
<tr style='height:22.1pt'>
<td width="8%" valign=top style='width:8.1%;padding:0in 0in 0in 0in;
height:22.1pt'>
<p class=MsoNormal> </p>
</td>
<td width="59%" valign=top style='width:59.08%;padding:0in 0in 0in 0in;
height:22.1pt'>
<p class=MsoNormal align=right style='text-align:right'></p>
</td>
</tr>
<tr style='height:.2in'>
<td width="100%" colspan=4 style='width:100.0%;background:#336699;padding:
0in 0in 0in 0in;height:.2in'>
<p class=MsoNormal><b><span style='font-size:7.0pt;font-family:Verdana;
color:white'></span></a> </span></b></p>
</td>
</tr>
</table>
<p class=MsoNormal> </p>
<!---------------------------Title----------------------------------->
<FONT FACE="Verdana, Arial, Helvetica" SIZE=2>
<B><FONT FACE="Verdana" SIZE=+2>Microsoft Windows Driver Kit
Release Notes</FONT></B>
</UL>
<!----------------------Table of Contents---------------------------->
<P><B><FONT face="Verdana, Arial, Helvetica" size="+1">Table of Contents</FONT></B>
<UL>
<b><FONT face="Verdana, Arial, Helvetica" size="2">WDK Development Installation
News</FONT></b><br>
<ul>
<A href="relnote.htm#devinstall"><FONT face="Verdana, Arial, Helvetica" size="2">Development Install Issues</FONT><br></a>
<A href="relnote.htm#environments">WDK Build Environment<br></a>
<A href="relnote.htm#versioning"><FONT face="Verdana, Arial, Helvetica" size="2">Header Versioning</FONT><br></a>
<A href="relnote.htm#signing"><FONT face="Verdana, Arial, Helvetica" size="2">Driver Signing</FONT><br></a>
<A href="relnote.htm#samples"><FONT face="Verdana, Arial, Helvetica" size="2">Building WDK Samples</FONT><br></a>
<A href="relnote.htm#compiling"><FONT face="Verdana, Arial, Helvetica" size="2">Compiling and Linking</FONT><br></a>
<A href="relnote.htm#umdf"><FONT face="Verdana, Arial, Helvetica" size="2">UMDF</FONT><br></a>
<A href="relnote.htm#kmdf"><FONT face="Verdana, Arial, Helvetica" size="2">KMDF</FONT><br></a>
<A href="relnote.htm#printsamp"><FONT face="Verdana, Arial, Helvetica" size="2">Print Samples</FONT><br></a>
<A href="relnote.htm#tools"><FONT face="Verdana, Arial, Helvetica" size="2">Tools</FONT><br></a>
<A href="relnote.htm#dsf"><FONT face="Verdana, Arial, Helvetica" size="2">Device Simulation Framework (DSF)</FONT><br></a>
<A href="relnote.htm#miscellaneous"><FONT face="Verdana, Arial, Helvetica" size="2">Miscellaneous</FONT><br></a>
</ul>
<br>
<b><FONT face="Verdana, Arial, Helvetica" size="2">WDK Driver Test Manager News</FONT></b><br>
<ul>
<A href="relnote.htm#INSTALL"><FONT face="Verdana, Arial, Helvetica" size="2">
Installing Driver Test Manager</FONT><br></a>
<A href="relnote.htm#security"><FONT face="Verdana, Arial, Helvetica" size="2">
Security Issues</FONT><br></a>
<A href="relnote.htm#scenarios"><FONT face="Verdana, Arial, Helvetica" size="2">
Tested Scenarios - General</FONT><br></a>
<A href="relnote.htm#pnpd"><FONT face="Verdana, Arial, Helvetica" size="2">Tested Scenarios - PnPD</FONT><br></a>
<A href="relnote.htm#storage"><FONT face="Verdana, Arial, Helvetica" size="2">Tested Scenarios - Storage</FONT><br></a>
<A href="relnote.htm#print"><FONT face="Verdana, Arial, Helvetica" size="2">Tested Scenarios - Print</FONT><br></a>
<A href="relnote.htm#portable"><FONT face="Verdana, Arial, Helvetica" size="2">Tested Scenarios - Portable Devices</FONT><br></a>
<A href="relnote.htm#issues"><FONT face="Verdana, Arial, Helvetica" size="2">
Installation Issues</FONT><br></a>
<A href="relnote.htm#asi"><FONT face="Verdana, Arial, Helvetica" size="2">Automated Software installer (ASI)</FONT><br></a>
<A href="relnote.htm#submissions"><FONT face="Verdana, Arial, Helvetica" size="2">Submissions</FONT><br></a>
<A href="relnote.htm#console"><FONT face="Verdana, Arial, Helvetica" size="2">Device Console</FONT><br></a>
<A href="relnote.htm#drt"><FONT face="Verdana, Arial, Helvetica" size="2">Device Reiability Tests (DRT)</FONT><br></a>
<FONT FACE="Verdana, Arial, Helvetica" SIZE=2>
<A href="relnote.htm#job"><FONT face="Verdana, Arial, Helvetica" size="2">Jobs</FONT><br></a>
<A href="relnote.htm#run"><FONT face="Verdana, Arial, Helvetica" size="2">Run
Time</FONT><br></a>
</ul></font>
<br>
<!----------------------WDK Development Installation News---------------------------->
<P><B><FONT face="Verdana, Arial, Helvetica" size="+2">WDK Development
Installation News</FONT></B>
<UL>
<A name=devinstall></A>
<P><B><FONT face="Verdana, Arial, Helvetica" size="+1">Development Install
Issues</FONT></B>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>WDK Directory Structure</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">The Windows Driver Kit (WDK)
combines and expands on the Windows Driver Development Kit (DDK) and the Windows
Hardware Compatibility Kit (HCT). The structure of the WDK directories is
similar to that of the Microsoft Windows Server 2003 and Windows XP and Windows
Server 2003 releases of the Windows DDK. This structure differs significantly
from the directory structure that was used in the Windows 2000 release of the
Windows DDK.
</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">Drivers should continue to
reference <i>Ntddk.h</i> or <i>Wdm.h</i> by specifying "#include <wdm.h>". The
build environment automatically sets the appropriate include and library file
paths. Drivers may find that some header files have been moved from their
technology-specific directories (such as \network\inc) to a higher-level WDK
directory (such as \inc\wxp). Because these files moved to higher-level
directories, you do not have to specify the specific include path for these
files.
</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Changing the Default Installation Folder</b></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">The WDK installs two major components. The Driver Development Kit, which are known as the Build Environments and the Driver Test Manager. By default they are installed in %SYSTEMDRIVE%\Program Manager\Microsoft Driver Test Manager for the DTM, and the Build Environments are installed under %SYSTEMDRIVE%\WinDDK. To change the default installation paths for these components, you can select the features during WDK Setup and click on Browse for that Feature. <b>Note:</b> that you can not change the default location at the root node, only at the Driver Development Kit and DTM Controller node.</FONT></P>
<A name=Active></A>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Active Perl</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">For more information about ActiveState Corporation's Active Perl, see the <A href="http://go.microsoft.com/fwlink/?linkid=10003&clcid=0x409">ActiveState Web site</A>.</FONT></P>
<P>
</UL>
<!-------------------------WDK Build Environment------------------------------------->
<A name=environments></A>
<P><B><FONT face="Verdana, Arial, Helvetica" size="+1">WDK Build Environments</FONT></B>
<UL>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>When to Use This WDK</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">Use the WDK build
environments in this version of the WDK for evaluation and preview purposes
only. Do not use these WDK build environments for production-level coding. At
this time, you should use the Windows Server 2003 SP1 DDK for production.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">Use the <i>Windows Vista
build environments</i> in the WDK to build drivers that use new features or
functionality that is available only in Windows Vista.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">Use the <i>Windows
Server 2003 build environments</i> in the WDK to build drivers that use new
features or functionality that is available only in Windows Server 2003.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">Use the <i>Windows XP build
environments</i> in the WDK to build drivers that do not use new functionality
that is available only in Windows Vista or only in Windows Server 2003 and
that are targeted for either Windows XP or Windows Server 2003 and Windows XP.
The Windows XP build environments in the WDK contain minor updates to the
Windows DDK that shipped with Windows XP SP1 and with Windows XP.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">Use the <i>Windows 2000 build
environments</i> in the WDK to build drivers that are designed to run on Windows
Vista, Windows </FONT></font>Server 2003, Windows XP, or Windows<FONT FACE="Verdana, Arial, Helvetica" SIZE=2> 2000.
The Windows 2000 build environment in the WDK includes updated headers and
libraries for Windows 2000 Service Pack 4 (SP4).</P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Build Environment Incomplete Following Custom Installation</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">The Custom installation option in Setup does not correctly manage the many component interdependencies and as a result is not guaranteed to produce a complete build environment.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b> In order to ensure that all dependencies are met, you should perform a Complete installation.</font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b><i>Ntddk.h</i> and <i>
Wdm.h</i> Restructured for Windows Vista</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">The Windows Vista version of <i>Ntddk.h</i> now includes <i>Wdm.h</i>
(instead of duplicating information that is contained in <i>Wdm.h</i>). The
headers format changes <i>should not affect</i> which header files you include
or how you write your driver. Please be sure to file a bug report if you
discover any inconsistencies that this restructuring causes.</P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Changes to Support
Conditional Compilation Based on Build Environment</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">The WDK now includes the DDK_TARGET_OS environment variable to enable
conditional testing in the SOURCES file and determine if a driver is being built
in the Windows Vista, Windows Server 2003, Windows XP, or Windows 2000 build
environment. You can set this variable to "Wlh", "WinNET", "WinXP", or "Win2K",
respectively. For more information about this variable, see "DDK_TARGET_OS" in
the index of the WDK documentation.</P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b><i>Winable.h</i>
Removed from the WDK</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">The <i>Winable.h</i> header
file has been removed from the WDK. You can now find the declarations from this
file in <i>Winuser.h</i>.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b> If your
project uses <i>Winable.h</i>, start using <i>Winuser.h</i> instead.</font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>There are no Build Environment icons to build free or checked x64 drivers for Windows XP</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">The Windows XP Build Environments do not provide icons for either a "Windows XP x64 Free Build Environment" or "Windows XP x64 Checked Build Environment" to build drivers for Windows XP.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><B>Workaround</B>: Use the Windows Server 2003 x64 build environment icons to build free or checked x64 drivers for Windows XP.</font></p>
</ul>
<!-------------------------Header Versioning---------------------->
<A name=versioning></A>
<P><B><FONT face="Verdana, Arial, Helvetica" size="+1">Header Versioning</FONT></B>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Header Versioning
Activated</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">This release of the WDK implements a versioned header system. The overall
effect of this new system is that the WDK no longer contains operating
system-specific include directories under \inc. The WDK build environments are
configured for this change, but customized build environments that have
hard-coded include paths might break.</P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b> Use the WDK
build environments, or update customized build environments appropriately.</font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Deprecations and Default Build Environment Settings</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">By default, the WDK build environments produce warnings for deprecated functions. Some developers have reported that they get errors for deprecated functions. This is probably due to the compiler flags being reset in the project's SOURCES file.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b> Remove the line "MSC_WARNING_LEVEL=/W3 /WX" from the SOURCES file.
</font></p>
<br>
</ul>
<!-------------------------Driver Signing---------------------->
<A name=signing></A>
<P><B><FONT face="Verdana, Arial, Helvetica" size="+1">Driver Signing</FONT></B>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>New Tools to Support Driver Signing</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">Windows Vista has a greater emphasis on using signed drivers. Tools have been added to the kit for driver signing during the development and test phases of driver development. To install the tools, during WDK setup, select the WDK Build Environment, Samples and Documentation (Development Kit). Under the Driver Development Kit, install the Build Environment option.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">The tools are all command line tools that are available from all of the WDK Build Environments. You can find the tools in the \bin\selfsign directory. You can read more about the use of these tools in the WDK documentation under "Device Installation\Design Guide\Device Installation Overview\Driver Signing (Windows Vista)".</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">WHQL has created a new tool for INF file validation and CAT file creation called INF2CAT.exe. This tool is the successor to the signability.exe tool that is currently in the WDK. If you are having problems using signability, you should try to install and use INF2CAT.exe. Install INF2CAT from this location: <A href="https://winqual.microsoft.com/member/SubmissionWizard/controls/WinqualSubmissionTool.msi">https://winqual.microsoft.com/member/SubmissionWizard/controls/WinqualSubmissionTool.msi</A></FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">For Help on INF2CAT.exe, see: <A href="https://winqual.microsoft.com/help/default.htm#Inf2cat_FAQ.htm">https://winqual.microsoft.com/help/default.htm#Inf2cat_FAQ.htm</A></FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">When using signability.exe to create catalog files for x64 platforms, the INF file must contain a Manufacturer and Model section. For information on adding these sections to an INF file, look in the WDK documentation in the topic: <b>INF File Platform Extensions and x64-Based Systems.</b> You can also find the information online at: <A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devinst_d/hh/DevInst_d/create-inf_51b5a6ff-b97f-4ff1-89de-c4f212611c45.xml.asp.">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devinst_d/hh/DevInst_d/create-inf_51b5a6ff-b97f-4ff1-89de-c4f212611c45.xml.asp.</A> For general INF file information, see <b>Creating an INF file</B> at: <A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devinst_d/hh/DevInst_d/create-inf_f88cf176-2886-45a4-b93a-a12a572ebb16.xml.asp?frame=true">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devinst_d/hh/DevInst_d/create-inf_f88cf176-2886-45a4-b93a-a12a572ebb16.xml.asp?frame=true.</A></FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">For an example of an INF file with these sections, look at the toastpkg.inf file, found in the WDK under
\src\general\\toaster\toastpkg\toastcd.</FONT></P>
<br>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Driver Signing Enforcement on x64 Vista</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Windows Vista enforces that all drivers for x64 platforms must have a digital signature. Any kernel mode code must be signed with a valid certificate to load.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Information on driver signing requirements for Windows Vista is available on the <A href="http://www.microsoft.com/whdc/default.mspx">WHDC</A> website. A detailed <A href="http://www.microsoft.com/whdc/winlogo/drvsign/kmcs_walkthrough.mspx">walkthrough</A> document is available to aid with driver signing.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2>An additional tool has been added to the WDK that is discussed in the walkthrough, but is not yet documented in the WDK documentation collection. PVK2PFX.exe is used to convert a software publisher certificate into the format required to import it into the certificate store on the signing machine. For information about the use of PVK2PFX.exe, please consult the <A href="http://www.microsoft.com/whdc/winlogo/drvsign/kmcs_walkthrough.mspx">walkthrough</A> document.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2>During development and testing of kernel mode drivers, the following options are available to load kernel mode code which is not signed for public release:
<ol>
<li><b>Attach a kernel debugger</b>. Attaching an active kernel debugger to the target computer allows the driver to load on Windows Vista.
<li><b>Use an F8 boot option</b>. An F8 boot option introduced with Windows VistaDisable Driver Signature Enforcementis available to disable the kernel-signing enforcement only for the current boot session. This setting does not persist across boot sessions.
<li><b>Use a test certificate</b>. Follow the instructions in the WDK documentation to create a test certificate and sign the driver package. On the test system, set the boot configuration to enable test certificates. Windows Vista includes a command-line tool, BCDedit, which can be used to set this option. To use BCDedit, the user must have Elevated User or Administrator privileges on the system.</P>
<p><FONT face="Verdana, Arial, Helvetica" size=2>The syntax to enable test signing using BDCedit at the command prompt:
<ul>
<li>Bcdedit.exe set testsigning ON ---- //enable test certificates
<li>Bcdedit.exe set testsigning OFF ---- //disable test certificates
<li>Bcdedit.exe set {System ID GUID} testsigning ON ---- //enable test certificates on an alternate OS
</ul>
You must reboot after issuing the command. When testsigning is successfully enabled, The four corners of the desktop will display the words "Test Mode".
</ol>
</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2>The BCDEdit option from Windows Vista Beta2 to disable driver integrity enforcement (nointegritychecks), is no longer supported in Windows Vista RTM by Winload or the kernel. If you run the following command:</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2> bcdedit /set nointegritychecks ON</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2>The operation completes successfully. Bcdedit displays NoIntegrityChecks as true (Yes), however, it has no effect on the behavior of the OS loader or kernel. The only method to temporarily disable driver integrity checks is using the F8 boot option, Disable Driver Signature Enforcement.</font></P> <p>
</ul>
<p>
<!-------------------------Building WDK Samples---------------------->
<A name=samples></A>
<P><B><FONT face="Verdana, Arial, Helvetica" size="+1">Building WDK Samples</B></FONT>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size="2">Some samples may use new
features or functionality in Windows Vista. These samples will not build
properly in the Windows Server 2003, Windows XP or Windows 2000 build
environments. In addition, <i>some</i> samples use features or functionality
that first appeared in Windows XP. These samples will not build properly in the
Windows 2000 build environments.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">If you build the entire WDK,
samples that are not supported in the active build environment will not be built
because of one (or more) of the following issues:</FONT></P>
<ul>
<li>Changes to the driver's SOURCES file.<li>Changes to one of the driver's
MAKEFILE files.<li>Changes to a DIRS file.</ul>
<P>As a result, the "correct" set of drivers is always built when you open a
Command Prompt window for a given build environment and enter the <b>build -cZ</b>
command from the WDK base directory.</P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">When you open a Command
Prompt window for a given build environment, you can change directories to the
directory of a driver that uses features or functionality that are not supported
in that environment. If you attempt to build such a driver in an unsupported
environment, and if the driver was blocked from building by means of a DIRS
file, the build command fails with a variety of errors, warnings, or both. This
behavior is expected.</FONT></P>
<br>
<p>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Expected Warnings
- Building Samples in Windows XP and Windows 2000 Environments</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">The Windows Server 2003, Windows XP, and Windows 2000 build environments do
not support some samples in the WDK. These samples now generate the following
warning (which will appear in the build warning log) when they are built in a
non-supported build environment:</P>
<P><FONT face="Verdana, Arial, Helvetica" size="2"><B>BUILDMSG: Warning : The
sample [path to sample] is not valid for the current OS target</B></P>
<br>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Multiple Instances of
the STI Driver Sample Cannot Be Installed</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">The Still Image (STI) driver
sample contains two parts:</FONT></P>
<Ul>
<LI><i>SampUSD</i> is an STI user-mode minidriver. This sample shows how to
implement events in a minidriver. Events are hardware-initiated, usually caused
when the user pushes a button on the device. This sample uses a test file to
simulate hardware events so that you do not have to install hardware. When the
test file or its size changes, the minidriver simulates a hardware event.
<li><i>SampCPL</i> is an STI control panel extension that is located in \src\wdm\wia\Sampcpl.
This example shows how to add a tab to an STI device's Known Issues control
panel. </ul>
<p><FONT face="Verdana, Arial, Helvetica" size="2">You must build both parts to run the STI driver sample. Only one instance of
the STI driver sample should be installed because multiple instances are not
supported. This sample STI minidriver will not generate any events.</p>
<P><FONT face="Verdana, Arial, Helvetica" size="2"><b>Workaround:</b> Only one instance of the STI driver sample should be
installed.</p><br>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Sample STI Driver
Will Not Generate Any Events</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b> See the
preceding STI sample driver description.</font></p>
<br>
</ul>
<!-------------------------Compiling and Linking---------------------->
<A name=compiling></A>
<P><FONT face="Verdana, Arial, Helvetica" size="+1"><B>Compiling and Linking</b></p>
<UL>
<P><FONT face="Verdana, Arial, Helvetica" size="2">No late breaking news for Vista RTM.</p>
</ul>
<!-------------------------Display Drivers---------------------->
</ul>
</ul>
</ul>
<!----------------------Print Samples---------------------------->
<A name=printsamp></A>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size="+1"><B>Printing Samples</b></p>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Printing - Known Issues With The XPSDrv Sample</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>The XPSDrv sample has an incorrect design that will cause the core driver to call the sample plug-in's IPrintOemPrintTicketProvider implementation with a non-conformant PrintTicket. </font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>The root cause of the problem is that the XPSDrv sample defines both JobNUpPresentationOrder and DocumentNUpPresentationOrder in xdnup.gpd. This results in both features being present in the PrintTicket created by the core driver UnidrvUI after parsing the GPD. This is technically a non-conformant PrintTicket. The error messages after running PTConform on this PrintTicket are:</font>
<br>
<p><FONT face="Verdana, Arial, Helvetica" size=2>ERROR: There are 1 duplicate feature nodes for 'JobNUpPresentationOrder' which share the same suffix. This is not allowed as per the PrintSchema.<br>
ERROR: There are 1 duplicate feature nodes for 'DocumentNUpPresentationOrder' which share the same suffix. This is not allowed as per the PrintSchema.</font> <br>
<P><FONT face="Verdana, Arial, Helvetica" size=2>The XPSDrv sample's IPrintOemPrintTicketProvider has specific code to correct this problem. This code deletes all the private features generated by the core driver parser from the GPD. But the design is incorrect in that a GPD must never require the plug-in to perform conformance related cleanup work. </font><br>
<p><FONT face="Verdana, Arial, Helvetica" size=2>In general, driver writers must not define their GPD/PPD in a manner that results in the core driver (UnidrvUI/PS5UI) sending the plug-in's IPrintOemPrintTicketProvider implementation a non-conformant PrintTicket.</font> <br>
<P><FONT face="Verdana, Arial, Helvetica" size=2>When the Printing layer in Application Verifier is enabled, PrintTicket conformance checking will be performed at both the app-driver and driver-plug-in boundaries. Since the non-conformant PrintTicket described above is passed from the core driver to the plug-in, a warning indicating that the core driver is sending an invalid PrintTicket to the plug-in will be seen while running the application under the debugger. Since this message is set by default to be a "no-break" warning, it should not cause any impact apart from additional debug spew.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Printing - Known Issues With The WIA Monster Driver Sample</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>The Extended WIA Monster Driver sample provided in the WDK will not work on Windows Vista if film scanning is chosen as the source of scan. The common scan dialog requires that WIA_IPS_FILM_SCAN_MODE should have value of type WIA_PROP_LIST where as the sample sets it to WIA_PROP_NONE. </font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>The sample should be modified to set the value of WIA_IPS_FILM_SCAN_MODE to WIA_PROP_LIST for it to work for film scanning.</font></P>
<br>
</ul>
</ul>
<!----------------------UMDF---------------------------->
<A name=umdf></A>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size="+1"><B>UMDF</b></p>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>UMDF 1.5 USB Samples Not Working on Windows XP Without Modifications</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>The UMDF 1.5 USB samples in the WDK do not properly use the WinUsbCoinstaller to install WinUSB support. As such they will not install on Windows XP or Windows Professional 2003 without modification. They will install as-is on Windows Vista as WinUSB support is included "in-box".
</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2>These samples will function on pre-Vista systems with a few simple modifications to the INF files.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Three modifications are needed in the INF/INX file in order to invoke the WinUsb co-installer. The modifications needed differ slightly depending on the driver being modifed. Examples are provided based on the INX file in the src\umdf\usb\echo_driver sample.
</font></P> <p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>1) Add an entry to [SourceDisksFiles] to list WinUSBCoinstaller: <br>
[SourceDisksFiles]<br>
WUDFOsrUsbDriver.dll=1<br>
WudfUpdate_$UMDFCOINSTALLERVERSION$.dll=1<br>
WdfCoInstaller01005.dll=1<br>
; Add entry for WinUSB co-installer <br>
WinUSBCoInstaller.dll=1</font></P><br>
<P><FONT face="Verdana, Arial, Helvetica" size=2>2) Add WinUSBCoinstaller.dll to the [CoInstallers_CopyFiles] section: <br>
CoInstallers_CopyFiles]<br>
WudfUpdate_$UMDFCOINSTALLERVERSION$.dll
vWdfCoInstaller01005.dll<br>
; Add entry for WinUsbCoinstaller.dll<br>
WinUsbCoinstaller.dll</font></P><br>
<P><FONT face="Verdana, Arial, Helvetica" size=2>3) Change [CoInstallers_AddReg] to invoke the WinUsb co-installer <br>
[CoInstallers_AddReg]<br>
; add entry to the end of the registry value for WinUSBCoInstaller<br>
HKR,,CoInstallers32,0x00010000,"WudfUpdate_$UMDFCOINSTALLERVERSION$.dll", "WdfCoInstaller01005.dll,WdfCoInstaller"<br>
HKR,,CoInstallers32,0x00010000,"WudfUpdate_$UMDFCOINSTALLERVERSION$.dll", "WdfCoInstaller01005.dll,WdfCoInstaller", "WinUsbCoInstaller.dll"</font></P><br>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Note that this applies only to the samples under the src\umdf\usb directory. The other core UMDF samples (Skeleton and Echo) will function properly on Windows XP, Windows Professional 2003 & Windows Vista.</font></P>
</ul>
</ul>
<!----------------------KMDF---------------------------->
<A name=kmdf></A>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size="+1"><B>KMDF</b></p>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>KMDF 1.5: Migrating from 1.0 or 1.1 to 1.5</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>The following installation and configuration changes are required in order to migrate from KMDF 1.0 or 1.1 to KMDF 1.5.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>If you are already using KMDF version 1.0 or 1.1 and want to migrate to version 1.5, make the following changes to your driver's INF file:<br>
<ul>
<li>DDInstall.CoInstallers section
<ul>
<li>Search and replace all instances of wdfcoinstaller01000.dll or wdfcoinstaller01001.dll with wdfcoinstaller01005.dll.
</ul>
<li>DDInstall.Wdf section
<ul>
<li>[XXX.NT.Wdf]
<li>KmdfService = YYYYY, XXX_wdfsect
<li>[XXX_wdfsect]
<li>KmdfLibraryVersion = 1.5
</ul>
</ul>
</font><br>
<FONT face="Verdana, Arial, Helvetica" size=2>The coinstaller uses the update.exe package installer to install the KMDF components. For Windows XP and Server 2003, the Cryptographic service must be enabled on your computer (This applies to version 1.0 also). To check whether the service is enabled, click Start, and then click Control Panel. Double-click Administrative Tools, and then double-click Computer Management. Click Services and Applications and then on Services. Locate and click on Cryptographic Services and check the service status. If the service is not started click on Start to enable it.
</font><br>
<p><FONT face="Verdana, Arial, Helvetica" size=2>If you installed the beta version of KMDF, remove wdfldr.sys from system32\drivers and do not copy any files manually.
</font><br>
<P><FONT face="Verdana, Arial, Helvetica" size=2>On Windows 2000 systems only, if you install multiple instances of the same driver or multiple KMDF drivers, you will see a dialogue box prompting you to reboot the system. You can ignore this message. The reason for the message is that on Windows 2000 systems, SetupAPI tries to overwrite the already-installed KMDF coinstaller but it can't ignore the file-copy failure if the coinstaller is already present. The reboot message appears if you install multiple instances of the same driver, or multiple drivers that use KMDF, and when you right click on the properties in Device Manager for any of the individual device instances. You do not need to reboot your comuter -- the message can be ignored. To prevent the message from appearing, set the COPYFLG_NO_OVERWRITE flag (0x00000010) in the .CoInstallers section of the driver's INF file, under the CopyFiles directive, as follows: <br>
<ul>
<li>[driver.CoInstallers]
<li>CopyFiles=CoInstaller_CopyFiles
<li>...
<li>[CoInstaller_CopyFiles]
<li>wdfcoinstaller01001.dll,,,0x00000010
</ul>
</font><p>
<br>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>KMDF 1.5 Known Issues</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>The following are known issues in this version of the Kernel-Mode Driver Framework.
</font></P>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Issues:</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>ETW Tracing</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>On Windows 2000, ETW tracing is not supported for miniport drivers. </font> <br>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>IFR Display</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>The KMDF In-flight Recorder (IFR) may display wrong function names in the prefix of some log entries. A workaround is to reformat the log using a trace prefix format string that does not display function names, for example "%7!u!: %2!-20.20s! -- ". This can be done using the debugger command:<br>
-- !wdfsettraceprefix [trace prefix string]<br>
-- KMDF trace file Wdf01005.tmf is located in %BASEDIR%\tools\tracing\i386\<br>
</font> <br>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>KMDF-Based Drivers on Checked Builds
</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>You cannot install a checked build of the KMDF runtime (WdfCoInstaller01005_chk.dll) on a free build of the OS. Similarly, a free build of the KMDF runtime cannot be installed on a checked build of the OS. To work around this issue, you can use a partial checked build and install the driver as follows: <br>
<ol>
<li>Install the partial checked build over a free build of the system, following the guidelines in Installing just the Checked Operating System and HAL in the Windows DDK.
<li>Boot the system in the free build.
<li>Install the KMDF-based driver.
<li>Reboot the system in the partial checked build.
</ol>
<br>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Or after your driver is installed with free version of the KMDF runtime (wdf01000.sys and wdfldr.sys), you can replace them with the checked version of the files provided with the kit. </font> <br>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>OSRUSBFX2 Driver</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>On Windows 2000, a USB device cannot be reset if there are pending transactions. The OSRUSB sample provides an IOCTL interface to reset the device. This driver configures a continuous reader on the interrupt pipe, which is in effect a pending transfer. Therefore, if you send a reset-device request, the request will be stuck in the USB until the pending transactions have been canceled. To work around this issue, the driver should stop the continuous reader (by calling WdfIoTargetStop) before resetting the device, and restart the continuous reader (by calling WdfIoTargetStart) after the request completes.</font> <br>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Serial Driver</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>If the legacy Serial.sys driver (the inbox driver) is the power policy owner for the serial device stack, the stack cannot include a KMDF-based serial filter driver. Replacing the legacy driver with the serial driver provided in the KMDF samples resolves this issue. </font></P> <br>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Work Items</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>A WDFWORKITEM whose parent is a WDFFILEOBJECT (set by the ParentObject field in the WDF_OBJECT_ATTRIBUTES structure) cannot use the framework's automatic synchronization. Attempting to create such a work item causes WdfWorkItemCreate to fail with the error STATUS_INVALID_DEVICE_REQUEST. By default, WDF_WORKITEM_CONFIG_INIT() sets the AutomaticSerialization flag to TRUE. Consequently, to prevent this problem, the driver must set the value of AutomaticSerialization to FALSE in the WDF_WORKITEM_CONFIG structure as follows:<br>
-- WDF_WORKITEM_CONFIG config;<br>
-- WDF_WORKITEM_CONFIG_INIT(&config);<br>
-- config.AutomaticSerialization = FALSE; <br>
</font></P>
</ul>
</ul>
</ul>
<br>
<!----------------------Tools---------------------------->
<A name=tools></A>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size="+1"><B>Tools</b></p>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Traceview</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">Using TraceView to trace a driver, after starting up it sets up the the window, then fails with the error: Cannot start tracing session (StartTrace failed): Access is denied.</p>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b> Use elevated command windows to start Traceview</font></p>
<br>
</ul>
<!----------------------DSF---------------------------->
<A name=dsf></A>
<P><FONT face="Verdana, Arial, Helvetica" size="+1"><B>Device Simulation Framework (DSF)</b></p>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Plugging In Non-powered Simulated Devices Is Not Supported</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>All simulated devices must be either self-powered and powered on, or bus powered before attempting to plug them into a simulated controller.</font></P> <p>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Connecting Multiple Simulated USB Devices Simultaneously May Result In Some Devices Not Eemuerating</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Simulated USB devices must be plugged into a controller or hub one at a time, and enumeration must complete before pluggin in any other device.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>You must wait for a simulated device to enumerate before plugging in any additonal devices to the controller or hub.</font></P> <p>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Simulated Device Fails To Re-enumerate After Unisnstall Or Disable</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>If a simulated USB device is uninstalled or diasbled by using device mager or programatically, and the parent bus is rescanned, the device will fail to enumerate.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>None, will be fixed in next release.</font></P> <p>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Simulated External Hubs Must Be Connected To The Root Hub</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>DSF does not support plugging an external hub into the root hub of the controller if the external hub has any devices connected to its ports.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Connect the external hub to root hub, wait for it to enumerate, and then connect the device to the external hub.</font></P> <p>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>WDTF does not refresh device list after instantiation</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Windows Device Test Framework (WDTF) builds the list of available devices at framework instantiation. As a result, attempts to work around this limitation may be difficult. Creating multiple concurrent copies of WDTF within a process is not supported. Creating an instance of WDTF, retrieving a child object and then destroying the parent WDTF object, is not supported. This sequence of activity results in a WDTF crash when attempting to access the child object.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Choose one of the following workarounds:
<ol>
<li>Attach all desired devices to the system before creating a WDTF object.
<li>To check for device arrival and removal, run WDTF in a seperate process. This process should instantiate WDTF, check for desired information, and return that information as an exit code. This avoids access violation issues.
<li>Release all references to all WDTF objects in a process, and then create a new instance containing an updated device list. Since some languages contain garbage collectors, it may be difficult to verify that all references to an object have been released.
</ol>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Future versions of WDTF will support dynamic refreshing of device data. For more information about WDTF see the WDK documentation.</font></P> <p>
</ul>
<!----------------------Miscellaneous---------------------------->
<A name=miscellaneous></A>
<P><FONT face="Verdana, Arial, Helvetica" size="+1"><B>Miscellaneous</b></p>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Windows SideShow Detailed Documentation Not Available</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">Windows SideShow is a new platform in Windows Vista that allows mini-applications called gadgets, running on the PC to send data to a variety of Windows SideShow-enabled devices, including dedicated devices embedded in a PC form factor (such as the lid of a laptop) or other multi-function devices that want to consume data from Windows SideShow (such as a cell phone).</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">Hardware device manufacturers can create devices to show information from Windows SideShow. They require firmware capable of display the information and a device driver that interfaces with the Windows SideShow platform. </FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">The platform components for Windows SideShow are available in this release. If you are interested in building a Windows SideShow-enabled device and would like further information post RTM, including draft documentation please contact: <A href="mailto:winsshdk@microsoft.com">winsshdk@microsoft.com</A></FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Automated Software Installer appears as a prerequisite to install before installing the Windows Driver Kit or DTM</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size="2">ASI is listed as a prerequisite before installing the Windows Driver Kit. However, ASI is <b>not</b> required to be installed before the WDK Build Environments or DTM can be installed. ASI is optional to install.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b> WpdHelloWorldDriver Memory Leak</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>The declaration of a pointer to the IUnknown interface in the driver.cpp module of the WpdHelloWorldDriver needs to be revised as described in the following workaround.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2> <b>Existing code:</b><br>
//<br>
// Create queue callback object<br>
//<br>
IUnknown *pIUnknown = NULL;<br>
if(S_OK == hr)<br>
{<br>
hr = CQueue::CreateInstance(&pIUnknown);<br>
}<br>
<p><FONT face="Verdana, Arial, Helvetica" size=2> <b>Revised code:</b><br>
//<br>
// Create queue callback object<br>
//<br>
CComPtr<IUnknown> pIUnknown;<br>
if(S_OK == hr)<br>
{<br>
hr = CQueue::CreateInstance(&pIUnknown);<br>
}<br>
</font></P> <p>
</ul>
<br>
<!----------------------Driver Test Manager---------------------------->
<P><B><FONT face="Verdana, Arial, Helvetica" size=+2>WDK Driver Test Manager News</B></P>
<UL>
<FONT face="Verdana, Arial, Helvetica" size="2"><H4>Please read the entire Tested Scenarios
section before installing Driver Test Manager.</H4></FONT></B></P>
<A name=INSTALL></A>
<B><FONT face=Verdana size=+1>Installing Driver Test Manager</FONT></B>
<br>
<br>
<!----------------------DTM Tested Scenarios - General---------------------------->
<A name=scenarios></A>
<P><B><FONT face="Verdana, Arial, Helvetica"><H4>Tested Scenarios</H4></B>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size=2>The DTM computer configuration requires two or more computers, one running the DTM Controller and DTM Studio, and one or more as DTM test Clients. The DTM Controller must be an x86-based computer running Windows Server 2003 SP1. The DTM Installer provides automated installation of the primary prerequisites:</font></P>
<li><FONT face="Verdana, Arial, Helvetica" size=2>Microsoft .NET Framework version 2.0</font>
<li><FONT face="Verdana, Arial, Helvetica" size=2>Microsoft SQL Server 2000 Desktop Engine (MSDE) (less than 25 clients) or Microsoft SQL Server 2000 Workgroup Edition (26 to 150 clients)</font>
<li><FONT face="Verdana, Arial, Helvetica" size=2>DTM Controller</font>
<P><FONT face="Verdana, Arial, Helvetica" size="2">The DTM Controller also requires Microsoft .NET Framework version 1.1, which is included with Windows Server 2003 and is installed with the OS.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">Client computers can be x86, x64, and ia64, running Windows XP, Windows Server 2003, and their appropriate service packs, and Windows Vista.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">DTM Studio can be installed as a remote application on a different machine than the DTM Controller (not a Client), that is connected to the Controller, and can be installed on an x86 or x64-based computer running Windows XP or Windows Server 2003, and their appropriate service packs, or Windows Vista.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2">This early preview release of DTM has not been fully tested on all architectures and operating systems that are intended for the final product. As a result, there are potential risks if you install and run any portion of DTM on untested platforms. The DTM Controller has been tested on x86-based computers that run Windows Server 2003 SP1. (Installing the DTM Controller on Windows XP or Windows Vista is not supported.) DTM Studio has been tested on the Controller computer (running Windows Server 2003 SP1) as well as tested as a remote DTM Studio on a separate computer connected to the Controller, both x86 and x64-based, running Windows XP, Windows Server 2003, and Windows Vista. The DTM clients have been tested on x86-based, IA64-based, and AMD64-based computers that run Windows Vista, Windows Server 2003, and Windows XP.</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size="2"><b>Note:</b> To run the <b>Printing Device Capabilities</b> test or the <b>Printer Driver Stress</b> test on all operating systems except Windows Vista, you must attach a debugger.</FONT></P>
<br>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>ISDN Support Device for Analog Modems</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>When using an ISDN support device for analog modem testing, the protocol setting configured for the ISDN support devices does not get applied to the modem when the support device is placing the call to the test modem until the system is rebooted. The symptoms will be that all 2 machine modem tests will fail when calling from the support device to the test modem.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Reboot the machine that the support modem is connected to after the modem is installed but before you start testing with DTM.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Error Message: "<Machinename> - Cannot reset Machine because the Machine Pool does not have a Job Delivery Agent</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>When the client software is initially installed on any system, the system will show up under its machine name under the DTM Controller's Default Pool. If the user attempts to right-click one of more systems in Default Pool, go to Change Status, and tries to Reset the system(s), they are unable to do so. This is the expected behavior, but the error message is not clear:<b>
"<Machinename> - Cannot reset Machine because the Machine Pool does not have a Job Delivery Agent.</b>" While this error is factually correct, it does not inform the user how to solve the problem.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Machines cannot be set to 'Reset' while still in the Default Pool. The user must move the machine(s) in question to a different Machine Pool before attempting to Change Status to Reset and beginning to schedule jobs.</font></P> <p>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>User Permissions Cannot be Set on a Remote DTM Studio</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>User permissions, such as adding or deleting users, or granting permissions to users, cannot be done on a DTM Studio installation on a computer that is not also the DTM Controller (also referred to as a 'remote DTM Studio'). If this is attempted, an error similar to the following will be displayed:</p>
<ul>
Bulk Operation Error<br>
Error encountered while adding user (domain\alias)
</ul>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Perform all user permission actions on a DTM Studio installation on the same computer as the DTM Controller was installed.</font></P> <p>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>MCE Remote Control Test</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>MCE Remote Control test should be marked as a manual test. The test requires manual interaction despite not being flagged as such. </font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>None</font></P> <p>
<br>
</ul>
</ul>
<!----------------------Tested Scenarios PnPD---------------------------->
<ul>
<br><A name=pnpd></A>
<P><B><FONT face="Verdana, Arial, Helvetica"><H4>Tested Scenarios - PnPD</H4></B></font>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>PnPDTest Job fails On USB Devices Which Support Selective Suspend</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>On Windows Vista clients, the PnpDTest job will fail for USB devices which support the USB Selective Suspend feature.
</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2>During the "surprise remove" task of the PnPDTest job, the test sends a "soft" surprise remove IRP to the device. Because of a bug in the way "software-initiated surprise removals" are handled, the device will come back "Code 10" (the driver will fail to load). The subsequent "rebalance" task will fail because the device is no longer enumerated properly.
</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Because the machine reboots at the end of the PnPDTest job, no subsequent scheduled jobs are affected by this failure.
</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2>Before running the PnPDTest job on the client system:
</font> <br>
<ol>
<li>Open up Device Manager<br>
<li>Find the device, right-click and select "properties" to open up the device properties dialog<br>
<li>On the "Power Management" tab, UN-CHECK the box marked "Allow the computer to turn off this device to save power." This will disable selective suspend on this device.<br>
<li>Select "OK" to save changes to the device properties dialog<br>
<li>Schedule the PnPDTest job normally via Device Console<br>
<li>After the job finishes, on the client re-enable selective suspend on the device by opening the device properties dialog and re-checking the box marked "Allow the computer to turn off this device to save power." <br>
</ol>
</ul>
<br>
<!----------------------Tested Scenarios Storage---------------------------->
<br><A name=storage></A>
<P><B><FONT face="Verdana, Arial, Helvetica"><H4>Tested Scenarios - Storage</H4></B></font>
<ul>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Storage Testing News</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>For up to date information about running tests from the Storage Logo kit, please see <A href="http://blogs.msdn.com/storwdk">http://blogs.msdn.com/storwdk</A>.</font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Storage - CD/DVD Logo Program - UDF Formatter Test</b></font></p>
<P><FONT face="Verdana, Arial, Helvetica" size=2>1) The test does not prompt the user to insert RW media, however, the test will fail if there is no RW media in the drive. The test would run only on CD-RW or DVD+/-RW media. 2) The test will fail if the inserted RW media is bad and the test failed to format it. </font></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2><b>Workaround:</b></font></p>