Partager via


PDRIVER_IO_PORT_USHORT fonction de rappel (video.h)

SvgaHwIoPortUshort intercepte une plage de ports d’E/S à laquelle une application MS-DOS plein écran d’une machine x86 envoie une séquence de données de taille USHORT.

Syntaxe

PDRIVER_IO_PORT_USHORT PdriverIoPortUshort;

VP_STATUS PdriverIoPortUshort(
  ULONG_PTR Context,
  ULONG Port,
  UCHAR AccessMode,
  PUSHORT Data
)
{...}

Paramètres

Context

Spécifie la valeur de contexte déterminée par le pilote miniport qui a été définie dans le membre EmulatorAccessEntriesContext de VIDEO_PORT_CONFIG_INFO.

Port

Spécifie le port d’E/S mappé à piéger.

AccessMode

Spécifie le type d’accès autorisé, qui peut être une ou une combinaison (ORed) des valeurs suivantes :

EMULATOR_READ_ACCESS
EMULATOR_WRITE_ACCESS

Data

Pointeur vers les données USHORT à transférer.

Valeur retournée

SvgaHwIoPortUshort retourne la status finale de l’opération.

Remarques

Seuls les pilotes miniport des adaptateurs SVGA compatibles VGA ont des fonctions SvgaHwIoPortXxx . (Voir SVGA Functions.)

SvgaHwIoPortUshort intercepte tout accès à la plage tenté par une application MS-DOS en plein écran qui émet l’une ou l’autre des instructions OUT DX, AX et IN AX, DX.

Si le pilote miniport active la plage de ports pour l’accès direct en appelant VideoSetTrappedEmulatorPorts, sa fonction SvgaHwIoPortUshort n’est pas appelée. Une telle application aura alors un accès direct à la plage de ports d’E/S, sauf si le pilote miniport désactive la plage de ports avec un autre appel à VideoSetTrappedEmulatorPorts.

Si une ou plusieurs instructions x86 IN ou OUT émises par l’application peuvent affecter l’état du registre de séquenceurs d’adaptateurs compatible VGA, du registre de sortie divers ou d’un registre spécifique à l’adaptateur et, par conséquent, provoquer le blocage de l’ordinateur, le pilote miniport ne doit pas activer le port d’accès direct en appelant VideoPortSetTrappedEmulatorPorts.

SvgaHwIoPortUshort doit mettre en mémoire tampon les instructions suivantes de l’application et case activée qu’aucune ne peut bloquer la machine. Si l’application émet une séquence d’instructions qui peut bloquer la machine, SvgaHwIoPortUshort doit ignorer les instructions mises en mémoire tampon. Sinon, il doit les générer, un USHORT à la fois, vers le port d’E/S mappé spécifié.

SvgaHwIoPortUshort doit être rendu paginable.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête video.h (inclure Video.h)

Voir aussi

EMULATOR_ACCESS_ENTRY

Fonctions SVGA

SvgaHwIoPortUshortString

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetDeviceBase

VideoPortSetTrappedEmulatorPorts