Chapter 5 DriverEntry and Reinitialize Routines

This chapter contains the following information:
5.1 DriverEntry Routine Requirements

5.1.1 Every DriverEntry Routine’s Responsibilites

5.1.2 DriverEntry’s Additional Responsibilites

5.2 DriverEntry Routine Functionality
5.2.1 Device Driver’s Initialization

5.2.2 Higher-Level Driver’s Initialization

5.3 Reinitialize Routine Requirements and Functionality

The DriverEntry routine is defined by the I/O Manager as follows:

NTSTATUS 
(*PDRIVER_INITIALIZE) ( 
    IN PDRIVER_OBJECT DriverObject, 
    IN PUNICODE_STRING RegistryPath 
    ); 
 

The Reinitialize routine is defined by the I/O Manager as follows:

VOID 
(*PDRIVER_REINITIALIZE) ( 
    IN PDRIVER_OBJECT DriverObject, 
    IN PVOID Context, 
    IN ULONG Count 
    ); 
 

This chapter summarizes the required functionality of NT drivers’ standard DriverEntry routines. It also summarizes the required functionality of an optional Reinitialize routine.

For specific information about any of the support routines mentioned in this chapter, see the Kernel-mode Driver Reference.