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.
Subprojects:
- 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:
- Load the Driver in Usermode
- Examine the target registry under Drivers for it including fro it being active (loaded)
- Run the Basic Test app providing the stream as a parameter (eg STR1:)
- Run the Stream's Test Application
- Unload the Driver
- Repeat 2 to 5 for Kernel Mode
- Load the driver three time.
- Using the BasicTest application (and checking registry) to see that all three instances are loaded.
- Run the IOCTls application with the driver.
Next version will have Debug Message Zones.
Watch this space for the release.