VIDEO_PORT_CONFIG_INFO 구조체(video.h)

VIDEO_PORT_CONFIG_INFO 구조에는 버스별 어댑터 구성 정보가 포함됩니다. 이 구조는 비디오 하드웨어를 설정하고 비디오 포트 드라이버에 구성 정보를 제공하는 데 사용됩니다. 그런 다음 비디오 포트 드라이버는 미니포트 드라이버 및 해당 어댑터에 필요한 시스템 리소스를 할당할 수 있습니다.

구문

typedef struct _VIDEO_PORT_CONFIG_INFO {
  ULONG                        Length;
  ULONG                        SystemIoBusNumber;
  INTERFACE_TYPE               AdapterInterfaceType;
  ULONG                        BusInterruptLevel;
  ULONG                        BusInterruptVector;
  KINTERRUPT_MODE              InterruptMode;
  ULONG                        NumEmulatorAccessEntries;
  PEMULATOR_ACCESS_ENTRY       EmulatorAccessEntries;
  ULONG_PTR                    EmulatorAccessEntriesContext;
  PHYSICAL_ADDRESS             VdmPhysicalVideoMemoryAddress;
  ULONG                        VdmPhysicalVideoMemoryLength;
  ULONG                        HardwareStateSize;
  ULONG                        DmaChannel;
  ULONG                        DmaPort;
  UCHAR                        DmaShareable;
  UCHAR                        InterruptShareable;
  BOOLEAN                      Master;
  DMA_WIDTH                    DmaWidth;
  DMA_SPEED                    DmaSpeed;
  BOOLEAN                      bMapBuffers;
  BOOLEAN                      NeedPhysicalAddresses;
  BOOLEAN                      DemandMode;
  ULONG                        MaximumTransferLength;
  ULONG                        NumberOfPhysicalBreaks;
  BOOLEAN                      ScatterGather;
  ULONG                        MaximumScatterGatherChunkSize;
  PVIDEO_PORT_GET_PROC_ADDRESS VideoPortGetProcAddress;
  PWSTR                        DriverRegistryPath;
  ULONGLONG                    SystemMemorySize;
} VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO;

멤버

Length

이 구조체의 크기(바이트)입니다. 비디오 포트 드라이버는 항상 Length 멤버를 초기화합니다. 실제로 해당 값은 시스템에서 사용하는 VIDEO_PORT_CONFIG_INFO 버전을 나타냅니다. 이 구조는 시스템의 한 버전에서 다음 버전으로 확장될 수 있으므로 미니포트 드라이버는 이 멤버를 검사 미니포트 드라이버가 어댑터를 구성하는 데 사용하는 최소 sizeof(VIDEO_PORT_CONFIG_INFO)인지 확인해야 합니다.

SystemIoBusNumber

미니포트 드라이버의 어댑터가 연결될 수 있는 시스템 할당 I/O 버스 수를 지정합니다. 비디오 포트 드라이버는 항상 이 멤버를 초기화합니다.

AdapterInterfaceType

버스 인터페이스의 유형을 지정합니다. 비디오 포트 드라이버는 항상 PnP 관리자가 디바이스를 검색한 버스에 따라 이 멤버를 설정합니다.

BusInterruptLevel

비디오 하드웨어가 인터럽트를 생성하지 않는 경우 이 멤버는 VIDEO_HW_INITIALIZATION_DATA 구조의 HwInterrupt 멤버를NULL로 설정하여 나타냅니다. 그렇지 않으면 Isa 또는 MicroChannel 유형 버스의 인터럽트 요청에 해당하는 버스 상대 IRQL을 지정합니다. 이 멤버의 미리 설정된 기본값은 0입니다. 미니포트 드라이버는 Isa 또는 MicroChannel 형식 버스의 비디오 어댑터 또는 Eisa 형식 버스의 수준 구분 인터럽트용으로 구성된 비디오 어댑터의 인터럽트를 처리하는 경우 올바른 값을 제공해야 합니다.

미니포트 드라이버의 HwVidFindAdapter 함수가 비디오 어댑터가 인터럽트를 생성하지 않거나 어댑터의 유효한 인터럽트 벡터/수준을 확인할 수 없는 경우 HwVidFindAdapterBusInterruptLevelBusInterruptVector 를 모두 0으로 설정해야 합니다.

BusInterruptVector

비디오 하드웨어가 인터럽트를 생성하지 않는 경우 이 멤버는 VIDEO_HW_INITIALIZATION_DATA 구조의 HwInterrupt 멤버를NULL로 설정하여 나타냅니다. 그렇지 않으면 PCI 버스와 같은 인터럽트 벡터를 사용하는 I/O 버스의 비디오 하드웨어에서 사용하는 버스 상대 벡터를 지정합니다. 이 멤버의 미리 설정된 기본값은 0입니다.

미니포트 드라이버의 HwVidFindAdapter 함수가 비디오 어댑터가 인터럽트를 생성하지 않거나 어댑터의 유효한 인터럽트 벡터/수준을 확인할 수 없는 경우 HwVidFindAdapterBusInterruptVectorBusInterruptLevel 을 모두 0으로 설정해야 합니다.

InterruptMode

비디오 하드웨어에서 래치 된 인터럽트 또는 LevelSensitive 인터럽트를 사용하는지 여부를 나타냅니다. 비디오 포트 드라이버는 관련된 경우 이 멤버를 초기화하지만 ISR이 있는 미니포트 드라이버는 올바른 값이 포함되어 있는지 검사 필요한 경우 다시 설정해야 합니다.

NumEmulatorAccessEntries

이 멤버와 HardwareStateSize 를 통한 모든 후속 멤버는 x86 기반 NT 기반 운영 체제 플랫폼에서 VGA 호환 미니포트 드라이버로 자신을 선언하지 않는 미니포트 드라이버와 관련이 없습니다. x86 기반 컴퓨터에서 VGA 호환 SVGA 어댑터를 지원하지 않는 미니포트 드라이버의 경우 이 멤버는 0이어야 합니다. 그렇지 않으면 다음 배열의 EMULATOR_ACCESS_RANGE 형식 요소 수를 지정합니다.

EmulatorAccessEntries

VGA 호환 미니포트 드라이버에서 설정한 에뮬레이터 액세스 범위 배열에 대한 포인터입니다. 각 에뮬레이터 액세스 범위는 미니포트 드라이버의 VIDEO_ACCESS_RANGE 형식 배열의 적절한 하위 집합이어야 합니다. 각 요소는 V86 에뮬레이터에 의해 연결될 I/O 포트 범위를 지정하며, 전체 화면을 실행하는 MS-DOS 애플리케이션이 비디오 어댑터 레지스터에 직접 쓰려고 할 때마다 드라이버 제공 SvgaHwIoPortXxx 함수에 의해 모니터링될 수 있습니다. 일반적으로 이 배열은 해당 액세스 범위 배열의 모든 I/O 포트 범위를 설명합니다. 미니포트 드라이버가 드라이버 자체에서 정적으로 에뮬레이터 액세스 항목의 배열을 정의하는 경우 포트 드라이버는 해당 배열에 대한 이 포인터를 초기화합니다. NumEmulatorAccessEntries가 0이면 이 멤버는 NULL입니다.

EmulatorAccessEntriesContext

EmulatorAccessEntries 배열에 설명된 SvgaHwIoPortXxx 함수에 대한 각 호출과 함께 전달되는 값을 지정합니다. 일반적으로 VGA 호환 미니포트 드라이버는 이 멤버의 값을 HwDeviceExtension 포인터 또는 디바이스 확장 내의 오프셋으로 설정하므로 미니포트 드라이버는 SvgaHwIoPortXxx 함수에서 일괄 처리된 애플리케이션 발급 명령과 같은 상태를 유지할 수 있습니다.

VdmPhysicalVideoMemoryAddress

x86 BIOS INT10 지원을 위해 VDM의 주소 공간에 매핑할 비디오 메모리 범위의 기본(매핑된) 논리 주소를 지정합니다. x86 기반 컴퓨터에서 VGA 호환 어댑터를 지원하지 않는 미니포트 드라이버의 경우 이 멤버는 NULL이어야 합니다.

VdmPhysicalVideoMemoryLength

x86 BIOS 지원을 위해 VDM의 주소 공간에 매핑할 범위의 크기(바이트)를 지정합니다. x86 기반 컴퓨터에서 VGA 호환 어댑터를 지원하지 않는 미니포트 드라이버의 경우 이 멤버는 0이어야 합니다.

HardwareStateSize

x86 기반 컴퓨터의 VGA 호환 미니포트 드라이버에서만 지원되어야 하는 IOCTL_VIDEO_SAVE_HARDWARE_STATE 요청에 대한 응답으로 하드웨어 상태 정보를 저장하는 데 필요한 최소 크기(바이트)를 지정합니다. 이 멤버의 초기화된 값은 0입니다. VGA 호환 미니포트 드라이버는 이 멤버를 저장된 어댑터 상태를 유지하는 데 필요한 바이트 수로 설정해야 합니다.

DmaChannel

시스템에서 사용하도록 예약되었습니다.

DmaPort

시스템에서 사용하도록 예약되었습니다.

DmaShareable

시스템에서 사용하도록 예약되었습니다.

InterruptShareable

미니포트 드라이버의 디바이스가 중단되는 경우 인터럽트 를 다른 디바이스와 공유할 수 없는 경우 이 멤버를 0으로 설정하거나 인터럽트 공유가 가능한 경우 1로 설정해야 합니다. 그렇지 않으면 미니포트 드라이버가 이 멤버를 무시할 수 있습니다.

Master

시스템에서 사용하도록 예약되었습니다.

DmaWidth

시스템에서 사용하도록 예약되었습니다.

DmaSpeed

시스템에서 사용하도록 예약되었습니다.

bMapBuffers

시스템에서 사용하도록 예약되었습니다.

NeedPhysicalAddresses

시스템에서 사용하도록 예약되었습니다.

DemandMode

시스템에서 사용하도록 예약되었습니다.

MaximumTransferLength

시스템에서 사용하도록 예약되었습니다.

NumberOfPhysicalBreaks

시스템에서 사용하도록 예약되었습니다.

ScatterGather

시스템에서 사용하도록 예약되었습니다.

MaximumScatterGatherChunkSize

시스템에서 사용하도록 예약되었습니다.

VideoPortGetProcAddress

VideoPortGetProcAddress 콜백 루틴에 대한 포인터입니다. 이 멤버는 비디오 미니포트 드라이버가 직접 연결하지 않고 사용할 수 있는 비디오 포트 드라이버 함수의 주소를 찾는 데 사용됩니다. 이렇게 하면 드라이버 이진 파일을 이전 버전의 Windows에서 실행할 수 있습니다. 자세한 내용은 VideoPortGetProcAddress 사용을 참조하세요.

DriverRegistryPath

디바이스의 서비스를 포함하는 레지스트리 경로에 대한 포인터입니다. 디스플레이 드라이버는 유용하다고 판단되는 방식으로 이 정보를 사용할 수 있습니다.

SystemMemorySize

시스템에 있는 실제 메모리의 양(바이트)을 드라이버에 나타냅니다.

요구 사항

요구 사항
헤더 video.h(Video.h 포함)

추가 정보

HwVidFindAdapter

IOCTL_VIDEO_SAVE_HARDWARE_STATE

VIDEO_ACCESS_RANGE

VIDEO_HW_INITIALIZATION_DATA

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetProcAddress

VideoPortVerifyAccessRanges