Entry Points

This document describes the entry points for each type of device driver.

Driver entry points

The Device Driver framework supports the following device driver models:

  • The LDD-PDD model: drivers of this type must be loaded by a user application.

  • The kernel extension model: drivers of this type are loaded by the Kernel at boot up.

  • The combined model is a combination of the kernel extension and LDD-PDD models. This is used when the driver must perform some initialization at the time of boot up.

For each model, the Kernel provides a standard API for the entry points to the driver.

Standard LDD

For a standard LDD-PDD driver, the driver entry points are defined by the following macros:

For LDDs, use DECLARE_STANDARD_LDD. For example:

// LDD entry point
DECLARE_STANDARD_LDD()
    {
    // create LDD factory object
    return new DExDriverLogicalDevice;
    }

Standard PDD

For PDDs, use DECLARE_STANDARD_PDD. For example:

// PDD entry point
DECLARE_STANDARD_PDD()
    {
    // create PDD factory object
    return new DExH4PhysicalDevice;
    }

Kernel extension

For a kernel extension, the entry point is defined by the macro DECLARE_STANDARD_EXTENSION.

Combined model

For drivers with a combined model, the entry points are defined by the following macros:

A driver creates factory objects in the entry point routines.