A Rigorous and Disciplined Driver Development Process Allows us to Meet your Needs
Developing Windows Device Drivers is a difficult task. Unlike application software or firmware development, the driver writer is working to extend the capabilities of the Windows Operating System that is by and large a non deterministic black box. Getting a driver to work is an important challenge, but predicting when it will work is critical to the process. The device driver is a fundamental building block of many products. Often-times it must be in place and working before a project can move forward. Hill Driver Solutions applies a rigorous and disciplined development plan. We feel this is key to the development of reliable drivers which will meet your specifications and are completed on time the first time.
Requirements definition is always the first step to developing a killer product that will differentiate your offering from the competition. In the development of successful Windows products, it is essential that the characteristics of the operating system be taken into account. The way the interrupts are processed, the way the individual driver stacks interact, and the way multiple threads are handled not only affect your software but they also affect your hardware design. This is where our extensive experience with all aspects of product development in addition to Windows Operating Systems really pays off. When defining requirements we take into account all aspects of the system to ensure that your product exceeds expectations.
During the design phase we begin turning into reality the concepts that were developed in the requirements definition. Here we break down the requirements into manageable units that will later be realized in code. We often model the design by using state transition diagrams, structure charts, and data flow diagrams. These models not only provide a conceptual way of visualizing the design, but they also serve as communication tools to help make our work visible to the customer. This phase is concluded with a schedule that details what, when and how long it will take to code and test.
It really doesn’t matter how rigorous you were in defining requirements or how thorough your design phase, if the driver is not coded properly, the end product will not provide optimum performance. The Windows Driver API is both extensive and complicated. An inexperienced driver writer may spend a great deal of time just trying to figure out which system calls to use, let alone determining which is best suited to optimize the application. This is where we apply our knowledge and extensive experience as to how “things really work” to ensure that your driver is implemented to meet your requirements. In addition to having intimate knowledge of the Driver API, Hill Driver Solutions applies very strict coding standards to ensure that all code is readable and maintainable.
System test can quickly become a real black hole for predicting time of deliverability for a releasable product. Our rigorous development process eliminates this problem as well as ensures that the product meets its requirements. First of all, we develop test plans based on the requirements. This ensures that the final product meets your needs. We also use the latest Microsoft test tools such as Driver Verifier, ChkInf, and DevCtl to ensure reliability. We increase predictability of the test cycle by using Driver Verifier from the very beginning. By exacerbating hard to find, intermittent problems such as memory leaks, IRQL violations, deadlocks and memory pool problems, Driver Verifier allows us to find and fix problems much earlier in the process thereby avoiding costly development delays or aftermarket repairs.