VIDEO_HW_INITIALIZATION_DATA structure (video.h)

The VIDEO_HW_INITIALIZATION_DATA structure specifies the entry points and storage requirements for the miniport driver. This structure is created on the stack and initialized by the miniport driver's DriverEntry function.

Syntax

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;
  PVIDEO_HW_START_DMA            HwStartDma;
  PVIDEO_HW_POWER_SET            HwSetPowerState;
  PVIDEO_HW_POWER_GET            HwGetPowerState;
  PVIDEO_HW_GET_CHILD_DESCRIPTOR HwGetVideoChildDescriptor;
  PVIDEO_HW_QUERY_INTERFACE      HwQueryInterface;
  ULONG                          HwChildDeviceExtensionSize;
  PVIDEO_ACCESS_RANGE            HwLegacyResourceList;
  ULONG                          HwLegacyResourceCount;
  PVIDEO_HW_LEGACYRESOURCES      HwGetLegacyResources;
  BOOLEAN                        AllowEarlyEnumeration;
  ULONG                          Reserved;
} VIDEO_HW_INITIALIZATION_DATA, *PVIDEO_HW_INITIALIZATION_DATA;

Members

HwInitDataSize

Is the size in bytes of this structure. In effect, this indicates the version of VIDEO_HW_INITIALIZATION_DATA being used.

AdapterInterfaceType

Is currently ignored by the video port and should remain zero-initialized.

HwFindAdapter

Pointer to the miniport driver's HwVidFindAdapter function, which is required for all miniport drivers.

HwInitialize

Pointer to the miniport driver's HwVidInitialize function, which is required for all miniport drivers.

HwInterrupt

Pointer to the miniport driver's HwVidInterrupt function, which is required only if the miniport driver's adapter generates interrupts. Otherwise, this pointer must be NULL.

HwStartIO

Pointer 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 functions. The video port driver allocates the memory for the device extension and initializes it with zeros before it is passed to the miniport driver's HwVidFindAdapter function.

StartingDeviceNumber

Must be set to zero.

HwResetHw

Pointer to the miniport driver'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

Pointer to a miniport driver's HwVidTimer function, which is optional. This pointer can be NULL.

HwStartDma

Reserved for system use.

HwSetPowerState

Pointer to the miniport driver's HwVidSetPowerState function, which is required for all miniport drivers.

HwGetPowerState

Pointer to the miniport driver's HwVidGetPowerState function, which is required for all miniport drivers.

HwGetVideoChildDescriptor

Pointer to the miniport driver's HwVidGetVideoChildDescriptor function, which is required for all miniport drivers.

HwQueryInterface

Pointer to the miniport driver's HwVidQueryInterface function. This can be optionally implemented in a miniport driver that supports external programming interfaces for inter-device communication, such as I2C (or I²C) support for MPEG decoders. Otherwise, this member should be set to NULL.

HwChildDeviceExtensionSize

Is the size in bytes of the device extension associated with the display output device. The miniport driver should fill in this member only if the miniport driver needs to manage the monitor configuration data separately from the adapter board configuration.

HwLegacyResourceList

Pointer to an array of VIDEO_ACCESS_RANGE structures. Each structure describes a device I/O port or memory range for the video adapter that is not listed in PCI configuration space.

HwLegacyResourceCount

Is the number of elements in the array to which HwLegacyResourceList points.

HwGetLegacyResources

Pointer to the miniport driver's HwVidLegacyResources function, which enables the driver to specify its legacy resources based on its device and vendor IDs.

AllowEarlyEnumeration

Allows the miniport driver to enumerate its child devices before the adapter is started; that is, the video port driver can call HwVidGetVideoChildDescriptor before HwVidFindAdapter when this member is set to TRUE.

Reserved

Reserved for system use.

Remarks

A miniport driver's DriverEntry function must initialize this structure with zeros before it sets relevant values in any member.

The video port driver will ignore the HwLegacyResourceCount and HwLegacyResourceList members when HwGetLegacyResources is initialized with a pointer to a HwVidLegacyResources implementation.

Requirements

Requirement Value
Header video.h (include Video.h)

See also

EMULATOR_ACCESS_ENTRY

HwVidLegacyResources

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortZeroMemory