Required and Optional Miniport Routines
Every video miniport driver must have at least the following system-defined
functions:
-
DriverEntry to initialize
the miniport driver
-
HwVidFindAdapter to
detect whether driver-supported video adapter(s) are in the machine, to claim
hardware resources for supported video adapter(s) in the registry, and to set
up communication with those adapter(s)
-
HwVidInitialize, which
is called in response to a request to open the adapter, to perform one-time
initialization of the adapter for the corresponding display driver
-
HwVidStartIO to begin
processing for each incoming VRP
Depending on a given adapter’s features and on the driver designer, video
miniport drivers also can or must have the following system-defined functions:
-
HwVidQueryDeviceCallback
and/or HwVidQueryNamedValueCallback
to process configuration information stored in the registry, which are
optional if the miniport’s HwVidFindAdapter function uses I/O
bus-type-specific configuration information or driver-supplied defaults
-
HwVidInterrupt to handle
adapter-generated interrupts, which is required if the miniport’s adapter
generates interrupts
-
HwVidSynchronizeExecutionCallback
for critical sections of code to be run at a higher than normal software or
hardware priority (IRQL, with some device and system interrupts masked off),
which is required if other miniport functions share state with a HwVidInterrupt
function
-
HwVidResetHw to reset the
adapter to character mode so the HAL can display system shutdown information
in case of a controlled shutdown (crash) of the machine and initialization
information on a soft reboot of the machine, which is required unless the
adapter’s registers can be automatically reset by an Int10
-
HwVidTimer to be called
periodically at approximately one-second intervals by the port driver, which
is optional
-
SvgaHwIoPortXxx functions in VGA-compatible SVGA miniport
drivers to validate accesses to I/O ports by full-screen MS-DOS applications
in x86-based machines. See VGA-Compatible
Miniport’s SvgaHwIoPortXxx for more information.
Except for DriverEntry, this documentation uses pseudonames for
standard miniport functions that suggest the required functionality of each.
In other words, the name given to each standard miniport function, except DriverEntry,
can be anything the miniport driver writer chooses.
The following sections describe the requirements for and functionality of each
of these standard miniport driver functions.