typedef struct _VIDEO_HW_INITIALIZATION_DATA {
ULONG HwInitDataSize;
INTERFACE_TYPE AdapterInterfaceType;
PVIDEO_HW_FIND_ADAPTER HwFindAdapter;
PVIDEO_HW_INITIALIZE HwInitialize;
PVIDEO_HW_INTERRUPT HwInterrupt;
PVIDEO_HW_START_IO HwStartIO;
ULONG HwDeviceExtensionSize;
ULONG StartingDeviceNumber;
PVIDEO_HW_RESET_HW HwResetHw;
PVIDEO_HW_TIMER HwTimer;
} VIDEO_HW_INITIALIZATION_DATA, *PVIDEO_HW_INITIALIZATION_DATA;
VIDEO_HW_INITIALIZATION_DATA is a structure created (on the stack) and initialized by the miniport driver in its DriverEntry function. It specifies the entry points and storage requirements for the miniport driver.
Members
HwInitDataSize
Is the size in bytes of this structure. In effect, this indicates the version of VIDEO_HW_INITIALIZATION_DATA being used.
AdapterInterfaceType
Specifies the type of I/O bus used by the video hardware. Currently, the value can be one of the following:
Internal
Isa
Eisa
MicroChannel
TurboChannel
PCIBus
However, additional types of I/O buses will be supported in future versions of Windows NT. The upper bound on the system-defined AdapterInterfaceType values is always MaximumInterfaceType.
HwFindAdapter
Points to the miniport’s HwVidFindAdapter function, which is required for all miniport drivers.
HwInitialize
Points to the miniport’s HwVidInitialize function, which is required for all miniport drivers.
HwInterrupt
Points to the miniport’s HwVidInterrupt function, which is required only if the miniport’s adapter generates interrupts. If not, this pointer must be NULL.
HwStartIO
Points to the miniport driver’s HwVidStartIO function, which is required for all miniport drivers.
HwDeviceExtensionSize
Specifies the size in bytes of the storage the miniport driver requires for its private, adapter-specific device extension. A miniport driver uses this storage to hold driver-determined per-adapter information, such as the mapped logical address ranges for the adapter registers and whatever context information the driver maintains about its I/O operations.
A pointer to the device extension is passed in every call made to the miniport driver’s standard functions except DriverEntry, HwVidSynchronizeExecutionCallback, and any SvgaHwIoPortXxx. The video port driver allocates the memory for the device extension and initializes it with zeros before it is passed to the miniport’s HwVidFindAdapter function.
StartingDeviceNumber
Set this to zero for the initial call to VideoPortInitialize for each type of I/O bus. Device numbering is used to determine which ..\DeviceNumber subkey of the ..CurrentControlSet\Services\DriverName key in the registry contains the adapter-specific parameters to the miniport driver. The starting number is automatically incremented if the miniport driver’s HwVidFindAdapter function is called more than once for adapters on a particular I/O bus because HwVidFindAdapter returned control with the Again parameter set to TRUE.
HwResetHw
Points to the miniport’s HwVidResetHw function, which is required for any miniport driver of an adapter that does not reset fully on a soft reboot of the machine. Drivers of SVGA adapters that are fully reset to a VGA standard character mode on receipt of an INT10, MODE3-type command usually set this to NULL.
HwTimer
Points to a miniport’s HwVidTimer function, which is optional. This pointer can be NULL.
Comments
A miniport’s DriverEntry function must initialize this structure with zeros before it sets relevant values in any member.
See Also
EMULATOR_ACCESS_ENTRY, HwVidFindAdapter, HwVidInitialize, HwVidInterrupt, HwVidResetHw, HwVidStartIO, HwVidSynchronizeExecutionCallback, HwVidTimer, SvgaHwIoPortXxx, VIDEO_ACCESS_RANGE, VIDEO_PORT_CONFIG_INFO, VideoPortZeroMemory