Поделиться через


функция обратного вызова 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)

См. также

EMULATOR_ACCESS_ENTRY

функции SVGA

SvgaHwIoPortUshort

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetDeviceBase

VideoPortSetTrappedEmulatorPorts