функция обратного вызова PDRIVER_IO_PORT_USHORT_STRING (video.h)
SvgaHwIoPortUshortString перехватывает диапазон портов ввода-вывода, в который полноэкранное приложение MS-DOS на компьютере x86 отправляет последовательность данных размера USHORT.
Синтаксис
PDRIVER_IO_PORT_USHORT_STRING PdriverIoPortUshortString;
VP_STATUS PdriverIoPortUshortString(
ULONG_PTR Context,
ULONG Port,
UCHAR AccessMode,
PUSHORT Data,
ULONG DataLength
)
{...}
Параметры
Context
Задает значение контекста, определяемое драйвером мини-порта, которое было задано в EmulatorAccessEntriesContext VIDEO_PORT_CONFIG_INFO.
Port
Указывает сопоставленный порт ввода-вывода для перехвата.
AccessMode
Указывает тип разрешенного доступа, который может быть одним или сочетанием (ORed) следующих значений:
- EMULATOR_READ_ACCESS
- EMULATOR_WRITE_ACCESS
Data
Указатель на строку передаваемых значений данных USHORT. Доступ к этой строке осуществляется по одному значению за раз, пока все значения не будут подключены.
DataLength
Указывает количество значений USHORT в строке.
Возвращаемое значение
SvgaHwIoPortUshortString возвращает окончательное состояние операции.
Комментарии
Функции SvgaHwIoPortXxx поддерживают только драйверы минипортов адаптеров SVGA, совместимых с VGA. (См. раздел Функции SVGA.)
SvgaHwIoPortUshortString перехватывает любой доступ к диапазону, предпринятый полноэкранным приложением MS-DOS, выдающим инструкции REP OUTSW DX, ESI и REP INSW EDI, DX.
Если драйвер мини-порта включает диапазон портов для прямого доступа путем вызова VideoSetTrappedEmulatorPorts, его функция SvgaHwIoPortUshortString вызываться не будет. Такое приложение будет иметь прямой доступ к диапазону портов ввода-вывода, если драйвер мини-порта не отключит диапазон портов с помощью другого вызова VideoSetTrappedEmulatorPorts.
Если одна или несколько выданных приложением инструкций INSW или OUTSW , выданных приложением, могут повлиять на состояние регистра последовательности адаптера, совместимого с VGA, разного выходного регистра или любого регистра адаптера и, таким образом, вызвать зависание компьютера, драйвер мини-порта не должен включать порт для прямого доступа, вызвав VideoPortSetTrappedEmulatorPorts.
SvgaHwIoPortUshortString должен буферизать последующие инструкции из приложения и проверка, что компьютер не может зависнуть. Если приложение выдает какую-либо последовательность инструкций, которые могут зависнуть на компьютере, SvgaHwIoPortUshortString должен отменить буферизацию инструкций. В противном случае он должен выводить их ( USHORT за раз) в указанный сопоставленный порт ввода-вывода.
SvgaHwIoPortUshortString следует сделать страничной.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | video.h (включить Video.h) |