All Compact 7 drivers are coded as DLLs and therefore implement the DLL entry point (DllEntrypoint/DLLMain), the normal entry point for any Windows DLL whether a driver or just an application library (API DLL). Normally, the operating system uses the LoadDriver to load a driver’s DLL when its manager loads the driver, whereas LoadLibrary is always used to load an API DLL. LoadDriver makes sure that the driver is never paged out. A driver can be loaded using LoadLibrary and be paged out though using a registry setting. The source code for a driver DLL implements the functions required for the interface to the OS through which the driver interacts with the OS. For native drivers, these functions are specific to the type of driver. For a stream driver there is the standard set of functions, a specific API to load and interact with the driver, and some standard registry locations for stream driver configuration entries. Within the set of 13 functions for a Compact 7 stream driver, some must be implemented; some if implemented require others to be implemented, whereas others need to be implemented only if specific functionality is required. Besides the standardized interface provided by these functions, the IOControl (IOCTLs) interface provides a customizable interface for stream drivers. But even with this, there are standard sets of IOCTLs that a driver will implement depending upon the class of the driver and depending upon whether it ...

Get Professional Windows® Embedded Compact 7 now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.