1.1.3 Standard Driver Routines
-
IoRegisterDriverReinitialization
-
Sets up a driver-supplied Reinitialize routine, together with its context, so
the Reinitialize routine will be called when every subsequently loaded
driver’s DriverEntry routine has returned control.
-
IoRegisterShutdownNotification
-
Sets up a (nonmass-storage) driver’s DispatchShutdown routine to be called
when the system is being shut down.
-
IoUnregisterShutdownNotification
-
Removes a (nonmass-storage) driver’s DispatchShutdown routine from the list of
those to be called when the system is being shut down.
-
HalGetInterruptVector
-
Returns a mapped system interrupt vector, DIRQL, and processor-affinity mask a
driver can use to set up its ISR, given the type of bus on which the driver’s
device is connected, the system-assigned bus number, and the bus’s interrupt
vector and IRQL.
-
IoConnectInterrupt
-
Registers an ISR and sets up interrupt objects, using values supplied by HalGetInterruptVector.
Returns a pointer to a set of interrupt objects that must be passed, along
with the driver’s SynchCritSection entry point, to KeSynchronizeExecution.
-
IoDisconnectInterrupt
-
Releases a driver’s interrupt objects.
-
IoInitializeDpcRequest
-
Associates a driver-supplied DpcForIsr routine with a given device object, so
the DpcForIsr can complete interrupt-driven I/O operations.
-
KeInitializeDpc
-
Initializes a DPC object, setting up a driver-supplied CustomDpc routine that
can be called with a given context.
-
KeInitializeTimer
-
Initializes a notification timer object to the Not-Signaled state.
-
KeInitializeTimerEx
-
Initializes a notification or synchronization timer object to the Not-Signaled
state.
-
IoInitializeTimer
-
Associates a timer with the given device object and registers a
driver-supplied IoTimer routine for the device object.
-
MmLockPagableCodeSection
-
Locks a set of driver routines marked with a special compiler directive into
system space, sometimes during driver initialization but usually in its
DispatchCreate routine.
-
MmLockPagableDataSection
-
Locks a named data section marked with a special compiler directive into
system space, when that data is used infrequently, predictably and at an IRQL
less than DISPATCH_LEVEL.
-
MmLockPagableSectionByHandle
-
Locks a pageable section into system memory using a handle returned from MmLockPagableCodeSection
or MmLockPagableDataSection.
-
MmUnlockPagableImageSection
-
Releases a set of driver routines or a set of data that were locked into
nonpaged system space when the driver is no longer processing IRPs.
-
MmPageEntireDriver
-
MmPageEntireDriver allows a driver to page out all of its code and data
regardless of the attributes of the various sections in the driver’s image.
-
MmResetDriverPaging
-
MmResetDriverPaging resets a driver’s pageable status to that specified
by the sections which make up the driver’s image.