I've got a first version ready for release.  Here is a decription of it.

It is a multi-wizard in that there are 7 wizards, each of which creates a CE subproject under the current CE project.    The stream driver created from the wizard has each of the 12 Stream Interface functions as function prototypes returning the non-errant condition.  The driver implements the Strings functionality used in CE training where a buffer is created, characters are written to it using Write which are read using Read.  A Catalog component is created for each subproject but this hasn't been tested yet.


  • Stream Driver
  • User mode loader application
  • Kernel mode loader application
  • Driver unload application
  • Test if the driver is loaded, write then read and unload application.
  • Test if any stream driver is loaded application. 
  • Test up to 10 IOCTLs on any stream driver application.
    Aborts when it finds one doesn't exist.
    Just sees which IOCTOLs from 0 return true.

User has option to add RETAILMSG and DEBUGMSG macros in each Stream Interface function.

You would use the subprojects as follows:

  • Create a CE project in Retail Mode, build and test the OS
  • Set the Build so that Subprojects don't case MakeImage.
  • Run Wizard:
    • Name the Driver and give it a 3 letter prefix (eg STR)
    • Enable RETAILMSGS
    • Enable each of the subprojects
    • Click on [All selected SubProjects]
  • Add the subprojects via the Wizard. 
    • Right Click on Subprojects in the Solution Explorer.
    • Add Existing
    • Browse into the Driver subproject and select its pbpxml project file
    • Repeat for other subprojects
  • Build them.
  • They output messages to the Output Windows
  • Run the OS and launch them using Menu-Target-Run Programs:
  1. Load the Driver in Usermode
  2. Examine the target registry under Drivers for it including fro it being active (loaded)
  3. Run the Basic Test app providing the stream as a parameter (eg STR1:)
  4. Run the Stream's Test Application
  5. Unload the Driver
  6. Repeat 2 to 5 for Kernel Mode
  7. Load the driver three time.
  8. Using the BasicTest application (and checking registry) to see that all three instances are loaded.
  9. Run the IOCTls application with the driver.

Next version will have Debug Message Zones.

Watch this space for the release.