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) |