PDRIVER_IO_PORT_UCHAR_STRING funzione di callback (video.h)
SvgaHwIoPortUcharString trapa una porta di I/O a cui un'applicazione MS-DOS a schermo intero in un computer basato su x86 invia una sequenza di dati di dimensioni UCHAR.
Sintassi
PDRIVER_IO_PORT_UCHAR_STRING PdriverIoPortUcharString;
VP_STATUS PdriverIoPortUcharString(
ULONG_PTR Context,
ULONG Port,
UCHAR AccessMode,
PUCHAR Data,
ULONG DataLength
)
{...}
Parametri
Context
Specifica il valore di contesto determinato dal driver miniport impostato nel membro EmulatorAccessEntriesContext di VIDEO_PORT_CONFIG_INFO.
Port
Specifica la porta di I/O mappata.
AccessMode
Specifica il tipo di accesso consentito, che può essere una o una combinazione (ORed) dei valori seguenti:
- EMULATOR_READ_ACCESS
- EMULATOR_WRITE_ACCESS
Data
Puntatore alla stringa UCHAR da trasferire. Un carattere alla volta viene collegato fino a quando non viene trasferita l'intera stringa.
DataLength
Specifica il numero di valori UCHAR nella stringa.
Valore restituito
SvgaHwIoPortUcharString restituisce lo stato finale dell'operazione.
Commenti
Solo i driver miniport di adattatori SVGA compatibili con VGA hanno funzioni SvgaHwIoPortXxx . Vedere Funzioni SVGA.
SvgaHwIoPortUcharString intercetta qualsiasi accesso a byte tentato da un'applicazione MS-DOS a schermo intero che emette o entrambe le istruzioni REP OUTSB DX, ESI e REP INSB EDI, DX.
Se il driver miniport abilita la porta per l'accesso diretto chiamando VideoSetTrappedEmulatorPorts, la relativa funzione SvgaHwIoPortUcharString non verrà chiamata. Tale applicazione avrà quindi accesso diretto alla porta di I/O, a meno che il driver miniport non disabiliti la porta con un'altra chiamata a VideoSetTrappedEmulatorPorts.
Se una o più istruzioni X86 INSB o OUTSB rilasciate dall'applicazione potrebbero influire sullo stato del registro del sequencer compatibile con VGA, del registro di output varie o di qualsiasi registro specifico dell'adattatore e, di conseguenza, causare il blocco del computer, il driver miniport non deve abilitare la porta per l'accesso diretto chiamando VideoPortSetTrappedEmulatorPorts.
SvgaHwIoPortUcharString deve memorizzare nel buffer le istruzioni successive dell'applicazione e verificare che nessuno possa bloccarsi. Se l'applicazione emette una sequenza di istruzioni che potrebbero bloccarsi nel computer, SvgaHwIoPortUcharString deve rimuovere le istruzioni memorizzate nel buffer. In caso contrario, dovrebbe restituirli, un UCHAR alla volta, alla porta di I/O specificata.
SvgaHwIoPortUcharString deve essere reso pageable.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | video.h (include Video.h) |