VIDEO_PORT_CONFIG_INFO structure (video.h)

La structure VIDEO_PORT_CONFIG_INFO contient des informations de configuration d’adaptateur spécifiques au bus. Cette structure est utilisée pour configurer le matériel vidéo et fournir au pilote de port vidéo des informations de configuration. Le pilote de port vidéo peut ensuite allouer les ressources système nécessaires pour le pilote miniport et son adaptateur.

Syntaxe

typedef struct _VIDEO_PORT_CONFIG_INFO {
  ULONG                        Length;
  ULONG                        SystemIoBusNumber;
  INTERFACE_TYPE               AdapterInterfaceType;
  ULONG                        BusInterruptLevel;
  ULONG                        BusInterruptVector;
  KINTERRUPT_MODE              InterruptMode;
  ULONG                        NumEmulatorAccessEntries;
  PEMULATOR_ACCESS_ENTRY       EmulatorAccessEntries;
  ULONG_PTR                    EmulatorAccessEntriesContext;
  PHYSICAL_ADDRESS             VdmPhysicalVideoMemoryAddress;
  ULONG                        VdmPhysicalVideoMemoryLength;
  ULONG                        HardwareStateSize;
  ULONG                        DmaChannel;
  ULONG                        DmaPort;
  UCHAR                        DmaShareable;
  UCHAR                        InterruptShareable;
  BOOLEAN                      Master;
  DMA_WIDTH                    DmaWidth;
  DMA_SPEED                    DmaSpeed;
  BOOLEAN                      bMapBuffers;
  BOOLEAN                      NeedPhysicalAddresses;
  BOOLEAN                      DemandMode;
  ULONG                        MaximumTransferLength;
  ULONG                        NumberOfPhysicalBreaks;
  BOOLEAN                      ScatterGather;
  ULONG                        MaximumScatterGatherChunkSize;
  PVIDEO_PORT_GET_PROC_ADDRESS VideoPortGetProcAddress;
  PWSTR                        DriverRegistryPath;
  ULONGLONG                    SystemMemorySize;
} VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO;

Membres

Length

Taille en octets de cette structure. Le pilote de port vidéo initialise toujours le membre Length . En effet, sa valeur indique la version de VIDEO_PORT_CONFIG_INFO utilisée par le système. Étant donné que cette structure peut croître d’une version du système à l’autre, un pilote miniport doit case activée ce membre pour déterminer s’il s’agit d’au moins sizeof(VIDEO_PORT_CONFIG_INFO) que le pilote miniport utilise pour configurer son adaptateur.

SystemIoBusNumber

Spécifie le numéro attribué par le système du bus d’E/S sur lequel l’adaptateur du pilote miniport peut être connecté. Le pilote de port vidéo initialise toujours ce membre.

AdapterInterfaceType

Spécifie le type d’interface de bus. Le pilote de port vidéo définit toujours ce membre en fonction du bus sur lequel le gestionnaire PnP a détecté l’appareil.

BusInterruptLevel

Ce membre n’est pas pertinent si le matériel vidéo ne génère pas d’interruptions, comme indiqué par la définition du membre HwInterrupt dans la structure VIDEO_HW_INITIALIZATION_DATA sur NULL. Sinon, il spécifie l’IRQL relatif au bus qui correspond à la demande d’interruption sur les bus de type Isa ou MicroChannel . La valeur par défaut prédéfinie pour ce membre est zéro. Un pilote miniport doit fournir la valeur correcte s’il gère les interruptions d’une carte vidéo sur un bus de type Isa ou MicroChannel , ou pour une carte vidéo configurée pour les interruptions sensibles au niveau sur un bus de type Eisa .

Si la fonction HwVidFindAdapter d’un pilote miniport détecte que la carte vidéo ne génère pas d’interruptions ou qu’elle ne peut pas déterminer un vecteur/niveau d’interruption valide pour l’adaptateur, HwVidFindAdapter doit définir BusInterruptLevel et BusInterruptVector sur zéro.

BusInterruptVector

Ce membre n’est pas pertinent si le matériel vidéo ne génère pas d’interruptions, comme indiqué par la définition du membre HwInterrupt dans la structure VIDEO_HW_INITIALIZATION_DATA sur NULL. Sinon, elle spécifie le vecteur relatif du bus utilisé par le matériel vidéo sur les bus d’E/S qui utilisent des vecteurs d’interruption, tels que les bus PCI. La valeur par défaut prédéfinie pour ce membre est zéro.

Si la fonction HwVidFindAdapter d’un pilote miniport détecte que la carte vidéo ne génère pas d’interruptions ou qu’elle ne peut pas déterminer un vecteur/niveau d’interruption valide pour l’adaptateur, HwVidFindAdapter doit définir BusInterruptVector et BusInterruptLevel sur zéro.

InterruptMode

Indique si le matériel vidéo utilise des interruptions Latched ou LevelSensitive . Le pilote de port vidéo initialise ce membre s’il est pertinent, mais un pilote miniport avec un ISR doit case activée qu’il contient la valeur correcte et le réinitialiser si nécessaire.

NumEmulatorAccessEntries

Ce membre et tous les membres suivants via HardwareStateSize ne sont pas pertinents pour les pilotes miniport qui ne se déclarent pas comme des pilotes miniport compatibles VGA sur les plateformes de système d’exploitation NT basées sur x86. Pour les pilotes miniport qui ne prennent pas en charge les adaptateurs SVGA compatibles VGA sur les machines x86, ce membre doit être égal à zéro. Sinon, il spécifie le nombre d’éléments de type EMULATOR_ACCESS_RANGE dans le tableau suivant.

EmulatorAccessEntries

Pointeur vers un tableau de plages d’accès de l’émulateur configurées par le pilote miniport compatible VGA. Chaque plage d’accès de l’émulateur doit être un sous-ensemble approprié du tableau de type VIDEO_ACCESS_RANGE du pilote miniport. Chaque élément spécifie une plage de ports d’E/S à raccorder par l’émulateur V86 et, éventuellement, à surveiller par une fonction SvgaHwIoPortXxx fournie par le pilote chaque fois qu’une application MS-DOS, en mode plein écran, tente d’écrire directement dans les registres de la carte vidéo. En règle générale, ce tableau décrit toutes les plages de ports d’E/S dans le tableau de plages d’accès correspondant. Si le pilote miniport définit son tableau d’entrées d’accès de l’émulateur de manière statique dans le pilote lui-même, le pilote de port initialise ce pointeur vers ce tableau. Si NumEmulatorAccessEntries est égal à zéro, ce membre est NULL.

EmulatorAccessEntriesContext

Spécifie une valeur passée avec chaque appel à une fonction SvgaHwIoPortXxx décrite dans le tableau EmulatorAccessEntries . En règle générale, un pilote miniport compatible VGA définit la valeur de ce membre sur le pointeur HwDeviceExtension ou sur un décalage au sein de l’extension de périphérique, de sorte que le pilote miniport peut conserver l’état, tel que les instructions émises par lot par l’application, dans ses fonctions SvgaHwIoPortXxx .

VdmPhysicalVideoMemoryAddress

Spécifie l’adresse logique de base (mappée) d’une plage de mémoire vidéo à mapper dans l’espace d’adressage d’un VDM pour la prise en charge du BIOS INT10 x86. Pour les pilotes miniport qui ne prennent pas en charge les adaptateurs compatibles VGA sur les machines x86, ce membre doit être NULL.

VdmPhysicalVideoMemoryLength

Spécifie la taille en octets de la plage à mapper à l’espace d’adressage d’un VDM pour la prise en charge du BIOS x86. Pour les pilotes miniport qui ne prennent pas en charge les adaptateurs compatibles VGA sur les machines x86, ce membre doit être égal à zéro.

HardwareStateSize

Spécifie la taille minimale en octets requise pour stocker les informations d’état du matériel en réponse à une demande de IOCTL_VIDEO_SAVE_HARDWARE_STATE , qui doit être prise en charge uniquement par les pilotes miniport compatibles VGA sur les machines x86. La valeur initialisée pour ce membre est zéro. Un pilote miniport compatible VGA doit définir ce membre sur le nombre d’octets dont il a besoin pour conserver l’état de l’adaptateur enregistré.

DmaChannel

Réservé pour le système.

DmaPort

Réservé pour le système.

DmaShareable

Réservé pour le système.

InterruptShareable

Si le périphérique du pilote miniport est interrompu, ce membre doit être défini sur zéro si l’interruption ne peut pas être partagée avec un autre appareil, ou sur un si l’interruption peut être partagée. Sinon, un pilote miniport peut ignorer ce membre.

Master

Réservé pour le système.

DmaWidth

Réservé pour le système.

DmaSpeed

Réservé pour le système.

bMapBuffers

Réservé pour le système.

NeedPhysicalAddresses

Réservé pour le système.

DemandMode

Réservé pour le système.

MaximumTransferLength

Réservé pour le système.

NumberOfPhysicalBreaks

Réservé pour le système.

ScatterGather

Réservé pour le système.

MaximumScatterGatherChunkSize

Réservé pour le système.

VideoPortGetProcAddress

Pointeur vers la routine de rappel VideoPortGetProcAddress . Ce membre est utilisé pour rechercher l’adresse d’une fonction de pilote de port vidéo que le pilote de miniport vidéo peut utiliser sans la lier directement. Cela permet à un fichier binaire de pilote de s’exécuter sur une version antérieure de Windows. Pour plus d’informations, consultez Utilisation de VideoPortGetProcAddress.

DriverRegistryPath

Pointeur vers le chemin d’accès du Registre contenant le service de l’appareil. Le pilote d’affichage peut utiliser ces informations de la manière qu’il juge utile.

SystemMemorySize

Indique à un pilote la quantité, en octets, de mémoire physique dans le système.

Configuration requise

Condition requise Valeur
En-tête video.h (incluez Video.h)

Voir aussi

HwVidFindAdapter

IOCTL_VIDEO_SAVE_HARDWARE_STATE

VIDEO_ACCESS_RANGE

VIDEO_HW_INITIALIZATION_DATA

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetProcAddress

VideoPortVerifyAccessRanges