다음을 통해 공유


PDRIVER_IO_PORT_UCHAR_STRING 콜백 함수(video.h)

SvgaHwIoPortUcharString 은 x86 기반 컴퓨터의 전체 화면 MS-DOS 애플리케이션이 UCHAR 크기의 데이터 시퀀스를 보내는 I/O 포트를 트래핑합니다.

구문

PDRIVER_IO_PORT_UCHAR_STRING PdriverIoPortUcharString;

VP_STATUS PdriverIoPortUcharString(
  ULONG_PTR Context,
  ULONG Port,
  UCHAR AccessMode,
  PUCHAR Data,
  ULONG DataLength
)
{...}

매개 변수

Context

VIDEO_PORT_CONFIG_INFO EmulatorAccessEntriesContext 멤버에 설정된 미니포트 드라이버 결정 컨텍스트 값을 지정합니다.

Port

매핑된 I/O 포트를 지정합니다.

AccessMode

허용되는 액세스 유형을 지정합니다. 이 형식은 다음 값 중 하나 또는 조합(ORed)일 수 있습니다.

EMULATOR_READ_ACCESS
EMULATOR_WRITE_ACCESS

Data

전송할 UCHAR 문자열에 대한 포인터입니다. 전체 문자열이 전송될 때까지 한 번에 하나의 문자가 후크됩니다.

DataLength

문자열의 UCHAR 값 수를 지정합니다.

반환 값

SvgaHwIoPortUcharString은 작업의 최종 상태 반환합니다.

설명

VGA 호환 SVGA 어댑터의 미니포트 드라이버에만 SvgaHwIoPortXxx 함수가 있습니다. ( SVGA 함수를 참조하세요.)

SvgaHwIoPortUcharStringREP OUTSB DX, ESI 및 REP INSB EDI, DX 명령 중 하나 또는 둘 다를 실행하는 전체 화면 MS-DOS 애플리케이션 에서 시도한 바이트 액세스를 가로챌 수 있습니다.

미니포트 드라이버가 VideoSetTrappedEmulatorPorts를 호출하여 포트에 직접 액세스할 수 있도록 설정하면 해당 SvgaHwIoPortUcharString 함수가 호출되지 않습니다. 미니포트 드라이버가 VideoSetTrappedEmulatorPorts에 대한 다른 호출로 포트를 사용하지 않도록 설정하지 않는 한 이러한 애플리케이션은 I/O 포트에 직접 액세스할 수 있습니다.

하나 이상의 애플리케이션에서 발급한 x86 INSB 또는 OUTSB 지침이 VGA 호환 어댑터 시퀀서 레지스터, 기타 출력 레지스터 또는 어댑터별 레지스터의 상태에 영향을 줄 수 있으며, 이로 인해 컴퓨터가 중단될 경우 미니포트 드라이버는 VideoPortSetTrappedEmulatorPorts를 호출하여 포트에 직접 액세스할 수 있도록 설정해서는 안 됩니다.

SvgaHwIoPortUcharString은 애플리케이션의 후속 지침을 버퍼링해야 하며 아무도 머신을 중단하지 않을 수 검사. 애플리케이션이 머신을 중단할 수 있는 명령 시퀀스를 발급하는 경우 SvgaHwIoPortUcharString 은 버퍼링된 지침을 삭제해야 합니다. 그렇지 않으면 지정된 매핑된 I/O 포트에 한 번에 UCHAR를 출력해야 합니다.

SvgaHwIoPortUcharString을 페이징 가능으로 만들어야 합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 video.h(Video.h 포함)

추가 정보

EMULATOR_ACCESS_ENTRY

SVGA 함수

SvgaHwIoPortUchar

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetDeviceBase

VideoPortSetTrappedEmulatorPorts