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