EMULATOR_ACCESS_ENTRY structure (dispmprt.h)

La structure EMULATOR_ACCESS_ENTRY spécifie un élément dans le tableau EmulatorAccessEntries configuré dans la structure de VIDEO_PORT_CONFIG_INFO par des pilotes d’adaptateurs compatibles VGA (SVGA) sur des plateformes de système d’exploitation NT x86.

Syntaxe

typedef struct _EMULATOR_ACCESS_ENTRY {
  ULONG                     BasePort;
  ULONG                     NumConsecutivePorts;
  EMULATOR_PORT_ACCESS_TYPE AccessType;
  UCHAR                     AccessMode;
  UCHAR                     StringSupport;
  PVOID                     Routine;
} EMULATOR_ACCESS_ENTRY, *PEMULATOR_ACCESS_ENTRY;

Membres

BasePort

Spécifie l’adresse physique relative du bus du ou des ports d’E/S à raccorder par l’émulateur V86. Cette valeur et la plage de ports doivent se trouver dans une plage d’accès de ports d’E/S déjà revendiqués dans le Registre par VideoPortGetAccessRanges ou VideoPortVerifyAccessRanges.

NumConsecutivePorts

Spécifie le nombre de ports consécutifs à raccorder par l’émulateur V86, en commençant à BasePort. Cette valeur est déterminée par la largeur de chaque port d’E/S crocheté. Par exemple, si les adresses de port 0x3C0 et 0x3C1 sont liées en tant que port adressable USHORT unique, cette valeur doit être 1.

AccessType

Spécifie la taille des données transférées via le port d’E/S donné comme Uchar, Ulong ou Ushort.

AccessMode

Spécifie comment le port d’E/S donné est accessible sous la forme d’une ou d’une combinaison (ORed) des valeurs suivantes :

EMULATOR_READ_ACCESS
EMULATOR_WRITE_ACCESS

La plage de ports d’E/S doit être accessible dans au moins l’un des modes précédents.

StringSupport

Indique si la fonction SvgaHwIoPortXxx fournie par le pilote prend en charge les accès aux chaînes dans les cas où de nombreuses valeurs du type AccessType donné sont « pompées » par le biais d’un port d’E/S consécutivement. Si ce membre a la valeur TRUE, le membre Routine doit spécifier le point d’entrée d’une fonction SvgaHwIoPortXxxString fournie par le pilote miniport.

Routine

Pointeur vers svgaHwIoPortXxx du pilote miniport qui gère les accès au ou aux ports décrits dans cette structure.

Remarques

Les pilotes miniport compatibles VGA du matériel vidéo SVGA sur les machines x86 doivent définir des plages d’accès de l’émulateur, qu’un pilote miniport compatible VGA peut configurer avec VideoPortSetTrappedEmulatorPorts pour être accessibles directement à partir d’applications MS-DOS plein écran pour des E/S plus rapides. Un tel pilote doit fournir un ensemble de fonctions SvgaHwIoPortXxx pour valider toute séquence d’INémis par l’application, INSB/INSW/INSD, OUTet/ou OUTSB/OUTSW/OUTSDpour chaque plage de ports d’E/S de ce type.

Les données de chaque élément de type EMULATOR_ACCESS_ENTRY sont utilisées pour déterminer quels ports d’E/S (emplacements mémoire auxquels les registres d’adaptateurs sont accessibles) dans les plages d’accès du pilote miniport ont été pris en charge (raccordés) par l’émulateur V86 sur les plateformes x86. Les valeurs écrites à ces emplacements par les applications MS-DOS plein écran sont interceptées et transférées à la fonction SvgaHwIoPortXxx correspondante du pilote miniport pour validation avant d’être écrites ou lues à partir de la carte vidéo. Toutefois, le pilote miniport peut permettre à l’application d’accéder directement à des plages de ports d’E/S spécifiques en appelant VideoPortSetTrappedEmulatorPorts pour améliorer les performances.

Configuration requise

Condition requise Valeur
En-tête dispmprt.h (include Dispmprt.h)

Voir aussi

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetAccessRanges

VideoPortSetTrappedEmulatorPorts

VideoPortVerifyAccessRanges