Partager via


PDRIVER_IO_PORT_UCHAR_STRING fonction de rappel (video.h)

SvgaHwIoPortUcharString intercepte un port d’E/S vers lequel une application MS-DOS plein écran dans une machine x86 envoie une séquence de données de taille UCHAR.

Syntaxe

PDRIVER_IO_PORT_UCHAR_STRING PdriverIoPortUcharString;

VP_STATUS PdriverIoPortUcharString(
  ULONG_PTR Context,
  ULONG Port,
  UCHAR AccessMode,
  PUCHAR Data,
  ULONG DataLength
)
{...}

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é.

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 la chaîne UCHAR à transférer. Un caractère à la fois est accroché jusqu’à ce que la chaîne entière soit transférée.

DataLength

Spécifie le nombre de valeurs UCHAR dans la chaîne.

Valeur retournée

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

SvgaHwIoPortUcharString intercepte tout accès en octets tenté par une application MS-DOS en mode plein écran qui émet les instructions REP OUTSB DX, ESI et REP INSB EDI, DX ou les deux.

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

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

SvgaHwIoPortUcharString 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, SvgaHwIoPortUcharString doit ignorer les instructions mises en mémoire tampon. Sinon, il doit les générer, un UCHAR à la fois, vers le port d’E/S mappé spécifié.

SvgaHwIoPortUcharString doit être rendu paginable.

Configuration requise

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

Voir aussi

EMULATOR_ACCESS_ENTRY

SVGA Functions

SvgaHwIoPortUchar

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetDeviceBase

VideoPortSetTrappedEmulatorPorts