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