PDRIVER_IO_PORT_USHORT_STRING fonction de rappel (video.h)
SvgaHwIoPortUshortString intercepte une plage de ports d’E/S vers laquelle une application MS-DOS plein écran dans une machine x86 envoie une séquence de données de taille USHORT.
Syntaxe
PDRIVER_IO_PORT_USHORT_STRING PdriverIoPortUshortString;
VP_STATUS PdriverIoPortUshortString(
ULONG_PTR Context,
ULONG Port,
UCHAR AccessMode,
PUSHORT 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 EmulatorAccessEntriesContext 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 la chaîne de valeurs de données USHORT à transférer. Cette chaîne est accessible une valeur à la fois jusqu’à ce que toutes les valeurs aient été accrochées.
DataLength
Spécifie le nombre de valeurs USHORT dans la chaîne.
Valeur retournée
SvgaHwIoPortUshortString 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.)
SvgaHwIoPortUshortString intercepte tout accès à la plage tenté par une application MS-DOS en plein écran qui émet l’une ou l’autre des instructions REP OUTSW DX, ESI et REP INSW EDI, DX.
Si le pilote miniport active la plage de ports pour l’accès direct en appelant VideoSetTrappedEmulatorPorts, sa fonction SvgaHwIoPortUshortString 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 INSW ou OUTSW x86 émises par l’application peuvent affecter l’état du registre du 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.
SvgaHwIoPortUshortString 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, SvgaHwIoPortUshortString 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é.
SvgaHwIoPortUshortString doit être rendu paginable.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | video.h (incluez Video.h) |