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のバージョンを示します。 この構造はシステムの 1 つのバージョンから次のバージョンに拡張される可能性があるため、ミニポート ドライバーは、ミニポート ドライバーがアダプターの構成に使用する 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 の両方をゼロに設定する必要があります。

BusInterruptVector

ビデオ ハードウェアが割り込みを生成しない場合、このメンバーは関係ありません。これは、VIDEO_HW_INITIALIZATION_DATA構造体の HwInterrupt メンバーを NULL に設定することによって示されます。 それ以外の場合は、PCI バスなどの割り込みベクトルを使用する I/O バス上のビデオ ハードウェアによって使用されるバス相対ベクトルを指定します。 このメンバーの既定の既定値は 0 です。

ミニポート ドライバーの HwVidFindAdapter 関数は、ビデオ アダプターが割り込みを生成しないこと、またはアダプターの有効な割り込みベクトル/レベルを決定できないことを検出 した場合、HwVidFindAdapterBusInterruptVectorBusInterruptLevel の両方をゼロに設定する必要があります。

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

IOCTL_VIDEO_SAVE_HARDWARE_STATE要求に応答してハードウェア状態情報を格納するために必要な最小サイズ (バイト単位) を指定します。これは、x86 ベースのマシン上の VGA 互換ミニポート ドライバーでのみサポートされる必要があります。 このメンバーの初期化された値は 0 です。 VGA 互換ミニポート ドライバーは、保存されたアダプターの状態を保持するために必要なバイト数にこのメンバーを設定する必要があります。

DmaChannel

システムで使用するために予約されています。

DmaPort

システムで使用するために予約されています。

DmaShareable

システムで使用するために予約されています。

InterruptShareable

ミニポート ドライバーのデバイス割り込みの場合、割り込みを別のデバイスと共有できない場合は、このメンバーを 0 に設定するか、割り込みを共有できる場合は 1 に設定する必要があります。 それ以外の場合、ミニポート ドライバーは、このメンバーを無視できます。

Master

システムで使用するために予約されています。

DmaWidth

システムで使用するために予約されています。

DmaSpeed

システムで使用するために予約されています。

bMapBuffers

システムで使用するために予約されています。

NeedPhysicalAddresses

システムで使用するために予約されています。

DemandMode

システムで使用するために予約されています。

MaximumTransferLength

システムで使用するために予約されています。

NumberOfPhysicalBreaks

システムで使用するために予約されています。

ScatterGather

システムで使用するために予約されています。

MaximumScatterGatherChunkSize

システムで使用するために予約されています。

VideoPortGetProcAddress

VideoPortGetProcAddress コールバック ルーチンへのポインター。 このメンバーは、ビデオ ミニポート ドライバーに直接リンクせずに使用できるビデオ ポート ドライバー関数のアドレスを検索するために使用されます。 これにより、ドライバー バイナリを以前のバージョンの Windows で実行できます。 詳細については、「 VideoPortGetProcAddress の使用」を参照してください。

DriverRegistryPath

デバイスのサービスを含むレジストリ パスへのポインター。 ディスプレイ ドライバーは、役に立つと思われる任意の方法でこの情報を使用できます。

SystemMemorySize

システム内の物理メモリの量 (バイト単位) をドライバーに示します。

要件

要件
Header video.h (Video.h を含む)

こちらもご覧ください

HwVidFindAdapter

IOCTL_VIDEO_SAVE_HARDWARE_STATE

VIDEO_ACCESS_RANGE

VIDEO_HW_INITIALIZATION_DATA

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetProcAddress

VideoPortVerifyAccessRanges