функция обратного вызова 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 возвращает окончательное состояние операции.
Замечания
Только мини-драйверы адаптеров SVGA, совместимых с VGA, имеют функции SvgaHwIoPortXxx. (См. функции SVGA.)
SvgaHwIoPortUshortString перехватывает любой доступ к диапазону, предпринятому полноэкранным MS-DOS приложением, выдаваемым либо как инструкции REP OUTSW DX, ESI и REP INSW EDI, DX.
Если драйвер минипорта включает диапазон порта для прямого доступа путем вызова VideoSetTrappedEmulatorPorts, его функция SvgaHwIoPortUshortString не будет вызвана. Затем такое приложение будет иметь прямой доступ к диапазону портов ввода-вывода, если драйвер мини-порта не отключает диапазон порта с другим вызовом VideoSetTrappedEmulatorPorts.
Если одна или несколько инструкций, выданных приложением x86 INSW или OUTSW, могут повлиять на состояние регистра последовательности адаптеров, совместимого с VGA, Другие выходные регистры или любой регистр, зависящий от адаптера, и, таким образом, вызывают зависание компьютера, мини-драйвер должен не включить порт для прямого доступа путем вызова VideoPortSetTrappedEmulatorPorts.
SvgaHwIoPortUshortString должен буферизать последующие инструкции из приложения и проверить, что компьютер не может зависнуть. Если приложение выдает любую последовательность инструкций, которые могут зависнуть на компьютере, SvgaHwIoPortUshortString должны отменить буферные инструкции. В противном случае он должен выводить их, USHORT в определенный, сопоставленный порт ввода-вывода.
svgaHwIoPortUshortString должен быть создан на страницу.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | video.h (include Video.h) |