PDRIVER_IO_PORT_UCHAR fonction de rappel (video.h)
SvgaHwIoPortUchar intercepte un port d’E/S auquel une application MS-DOS plein écran dans une machine x86 envoie des données de taille UCHAR.
Syntaxe
PDRIVER_IO_PORT_UCHAR PdriverIoPortUchar;
VP_STATUS PdriverIoPortUchar(
ULONG_PTR Context,
ULONG Port,
UCHAR AccessMode,
PUCHAR Data
)
{...}
Paramètres
Context
Spécifie la valeur de contexte définie 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 à piéger, qui peut être une ou une combinaison (ORed) des valeurs suivantes :
- EMULATOR_READ_ACCESS
- EMULATOR_WRITE_ACCESS
Data
Pointeur vers l’octet à transférer.
Valeur retournée
SvgaHwIoPortUchar 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.)
SvgaHwIoPortUchar intercepte tout accès aux octets tenté par une application MS-DOS en plein écran qui émet l’une ou l’autre des instructions OUT DX, AL et IN AL, DX.
Si le pilote miniport active le port pour l’accès direct en appelant VideoPortSetTrappedEmulatorPorts, sa fonction SvgaHwIoPortUchar n’est pas appelée. Une telle application aura alors un accès direct au port, sauf si le pilote miniport désactive le port avec un autre appel à VideoPortSetTrappedEmulatorPorts.
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.
SvgaHwIoPortUchar doit mettre en mémoire tampon les instructions suivantes de l’application sur le port 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, SvgaHwIoPortUchar 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é.
SvgaHwIoPortUchar doit être rendu paginable.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | video.h (inclure Video.h) |