How to Create a Device Driver (Windows CE 5.0)
After you create an OS design, you can create a device driver for a specific target device to operate under the Windows CE operating system (OS). You create your driver once you have identified the hardware that you want use with the OS.
Hardware and Software Assumptions
- The sample driver code demonstrated in the following steps is merely a starting point and does not actually work with specific hardware. You must modify the driver code in order for it to function correctly for your target device.
- You are creating a power-managed stream interface driver. For more information about stream interface drivers, see Stream Interface Driver Development Concepts. For more information about power management, see Power Management.
- You are familiar with using the Platform Builder command line build tool. For more information, see Build Tool.
- You are familiar with the driver development tools for Windows CE. For more information, see Driver Development Tools.
To track your progress in the following table, select the check box next to each step.
|1. Familiarize yourself with the code structure for Windows CE device drivers.||Layered Drivers vs. Monolithic Drivers|
|2. Familiarize yourself with driver development for Windows CE.||Developing a Device Driver|
|3. If you have not already done so, in the Platform Builder integrated development environment (IDE), create an OS design.||Creating an OS Design|
|4. Copy the power management development sample driver to your OS design.
For example, copy %_WINCEROOT%\Public\Common\Oak\Drivers\PM\Test\Devsample to %_WINCEROOT%\Platform\<your OS design>\drivers\<your driver name>.
|5. Rename the power management development sample driver files to names that correspond with the intended functionality of your driver.||Not applicable|
|6. Edit the ||Not applicable|
|7. Add ||Not applicable|
|8. Modify the source code for your driver to implement the correct stream interface functions.
The power management development sample includes support for the stream interface functions. The XXX prefix for these functions has been replaced with PDX.
|Stream Interface Driver Implementation|
|9. If your driver requires functionality in addition to the functionality provided by the stream interface functions, you may choose to implement custom I/O control codes.||I/O Control Codes|
|10. Modify the source code for your driver to implement the correct power management functions for your driver.
Because you previously created your driver, proceed to step 2 in the corresponding topic.
|How to Add Power Management to a Device Driver|
|11. Verify that the entry points for your driver are exposed correctly. The functions should either be declared using a .def file or by using the |
The sample .def file for the power management development sample driver is located at %_WINCEROOT%\Public\Common\Oak\Drivers\PM\Test\Devsample\Pmdevsample.def.
For more information on the
|12. Add registry information for your driver to the Platform.reg file for your OS design.
For example, you can add the following code example to the Platform.reg file to specify the correct registry information for your driver.
#include "$(_winceroot)\platform\<your OS design>\drivers\<your driver name>\<your driver name>.reg"
|13. Modify the Platform.bib file for your OS design to include your driver.
For example, you can add the following code example to the Modules section of the Platform.bib file to specify the correct location of your driver.
MyDriver.dll $(_FLATRELEASEDIR)\<your driver name>.dll NK SH
|Binary Image Builder File|
|14. Edit the dirs file for your OS design to include your driver.||Dirs File|
|15. From %_WINCEROOT%\Platform\<your OS design>\Drivers\<your driver name> in your OS design, build your driver.||Building a Device Driver from the Command Line|
|16. In the IDE, build your run-time image to include your driver.||Building a Run-Time Image|
|17. Debug the source code for your driver.||How to Debug a Device Driver|
|18. Test your driver using the Windows CE Test Kit (CETK).||How to Use the CETK to Test a Driver|
Device Driver Development Overview | Troubleshooting a Device Driver | Layered Drivers vs. Monolithic Drivers | How-to Topics | Stream Interface Driver Development Concepts | Build Tool | Sources File
Send Feedback on this topic to the authors