функция обратного вызова PDRIVER_IO_PORT_UCHAR_STRING (video.h)
SvgaHwIoPortUcharString перехватывает порт ввода-вывода, на который полноэкранное MS-DOS приложение на компьютере на основе x86 отправляет последовательность данных размера UCHAR.
Синтаксис
PDRIVER_IO_PORT_UCHAR_STRING PdriverIoPortUcharString;
VP_STATUS PdriverIoPortUcharString(
ULONG_PTR Context,
ULONG Port,
UCHAR AccessMode,
PUCHAR Data,
ULONG DataLength
)
{...}
Параметры
Context
Указывает значение контекста, определяемое драйвером мини-порта, которое было задано в элементе EmulatorAccessEntriesContext элемента VIDEO_PORT_CONFIG_INFO.
Port
Указывает сопоставленный порт ввода-вывода.
AccessMode
Указывает тип разрешенного доступа, который может быть одним или сочетанием (ORed) следующих значений:
- EMULATOR_READ_ACCESS
- EMULATOR_WRITE_ACCESS
Data
Указатель на строку UCHAR для передачи. Один символ за раз перехватывается до передачи всей строки.
DataLength
Указывает количество значений UCHAR в строке.
Возвращаемое значение
SvgaHwIoPortUcharString возвращает окончательное состояние операции.
Замечания
Только мини-драйверы адаптеров SVGA, совместимых с VGA, имеют функции SvgaHwIoPortXxx. (См. функции SVGA.)
SvgaHwIoPortUcharString перехватывает любой байтовый доступ, предпринятый полноэкранным MS-DOS приложением, выдающим либо оба инструкции REP OUTSB DX, ESI и REP INSB EDI, DX.
Если драйвер минипорта включает порт для прямого доступа путем вызова VideoSetTrappedEmulatorPorts, ее функция SvgaHwIoPortUcharString не будет вызвана. После этого такое приложение будет иметь прямой доступ к порту ввода-вывода, если драйвер мини-порта не отключает порт с другим вызовом VideoSetTrappedEmulatorPorts.
Если одно или несколько выданных приложением x86 INSB или OUTSB инструкции могут повлиять на состояние регистра последовательности адаптера, совместимого с VGA, Прочие выходные регистры или любой регистр для конкретного адаптера и, таким образом, вызывают зависание компьютера, драйвер мини-порта должен не включить порт для прямого доступа путем вызова VideoPortSetTrappedEmulatorPorts.
SvgaHwIoPortUcharString должен буферизуть последующие инструкции из приложения и проверить, что компьютер не может зависнуть. Если приложение выдает любую последовательность инструкций, которые могут зависнуть на компьютере, svgaHwIoPortUcharString должны отменить буферные инструкции. В противном случае он должен выводить их, UCHAR за раз, на указанный, сопоставленный порт ввода-вывода.
svgaHwIoPortUcharString должен быть создан на страницу.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | video.h (include Video.h) |