Using DC2.EXE V3.2 from WDK 5600 on 32bit Server 2003 SP1…
Despite claims in the documentation, running dc2 with “/dr drivername” does
not test all devices created by that driver. It tests exactly one device
created by that driver. Specifying /a, /sl, or /y along with /dr has no
effect on this behavior. Specifying /d device-name or /rd in addition to
/dr causes dc2 to do nothing.
In my case I have 2 drivers I am trying to test. The first is a volume
class filter driver. In my particular configuration, dc2 picks only device
\Device\HarddiskDmVolumes\PhysicalDmVolumes\BlockVolume1, on which my filter
is in pass-through mode, essentially testing nothing.
My second driver is a non-PNP driver with a control device, and functional
devices which can come and go with generated names. The control device and
functional devices have distinct ioctl interfaces. Dc2 tests only the
control device, leaving the functional devices untested.
I can get DC2 to test devices by specifying the device names explicitly
instead of the driver names. That will be a real PITA, and means I’ll have
to forget about automating the testing.
In addition, the documentation indicates multiple driver names can be
specified with the syntax “/dr driver1 driver2”. This causes dc2 to exit
immediately, doing nothing. The syntax that works is “/dr driver1 /dr
driver2”.
I am submitting this as DDK feedback as well as informing the ntdev list.
- Dan.