Partager via


PDRIVER_IO_PORT_ULONG fonction de rappel (video.h)

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

Syntaxe

PDRIVER_IO_PORT_ULONG PdriverIoPortUlong;

VP_STATUS PdriverIoPortUlong(
  ULONG_PTR Context,
  ULONG Port,
  UCHAR AccessMode,
  PULONG Data
)
{...}

Paramètres

Context

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

Port

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

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 ULONG à transférer.

Valeur de retour

SvgaHwIoPortUlong retourne l’état final de l’opération.

Remarques

Seuls les pilotes miniports des adaptateurs SVGA compatibles AVEC SVGA ont fonctions SvgaHwIoPortXxx. (Voir fonctions SVGA.)

SvgaHwIoPortUlong intercepte toute tentative d’accès à une plage tentée par une application MS-DOS en plein écran qui émet des instructions OUT DX, EAX et IN EAX, DX.

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

Si une ou plusieurs instructions x86 émises par l’application IN ou OUT instructions peuvent affecter l’état du registre de séquenceurs compatibles AVEC L’application, le registre de sortie divers ou tout registre spécifique à l’adaptateur et, par conséquent, provoquer le blocage de la machine, le pilote miniport doit pas activer le port pour l’accès direct en appelant VideoPortSetTrappedEmulatorPorts.

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

SvgaHwIoPortUlong doit être rendu paginable.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête video.h (include Video.h)

Voir aussi

EMULATOR_ACCESS_ENTRY

fonctions SVGA

SvgaHwIoPortUlongString

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetDeviceBase

VideoPortSetTrappedEmulatorPorts