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 つのバージョンから次のバージョンに拡張される可能性があるため、ミニポート ドライバーは、ミニポート ドライバーがそのアダプターを構成するために使用する (VIDEO_PORT_CONFIG_INFO) の sizeof少なくともかどうかを判断するには、このメンバーを確認する必要があります。
SystemIoBusNumber
ミニポート ドライバーのアダプターが接続されている可能性がある I/O バスのシステム割り当て番号を指定します。 ビデオ ポート ドライバーは常にこのメンバーを初期化します。
AdapterInterfaceType
バス インターフェイスの種類を指定します。 ビデオ ポート ドライバーは、PnP マネージャーがデバイスを検出したバスに基づいて常にこのメンバーを設定します。
BusInterruptLevel
ビデオ ハードウェアが割り込みを生成しない場合、このメンバーは関係ありません。これは、VIDEO_HW_INITIALIZATION_DATA 構造体の HwInterrupt メンバーを NULL 設定することによって示されます。 それ以外の場合は、Isa または microChannel 型バスの割り込み要求に対応するバス相対 IRQL 指定します。 このメンバーの既定の既定値は 0 です。 ミニポート ドライバーは、Isa または MicroChannel タイプ バス上のビデオ アダプターの割り込みを処理する場合、または Eisa タイプ バスのレベル依存割り込み用に構成されたビデオ アダプターの割り込みを処理する場合は、正しい値を指定する必要があります。
ミニポート ドライバーの HwVidFindAdapter 関数は、ビデオ アダプターが割り込みを生成しないか、アダプターの有効な割り込みベクター/レベルを決定できないことを検出した場合 は、HwVidFindAdapterBusInterruptLevel と BusInterruptVector の両方をゼロに設定する必要があります。
BusInterruptVector
ビデオ ハードウェアが割り込みを生成しない場合、このメンバーは関係ありません。これは、VIDEO_HW_INITIALIZATION_DATA構造体の HwInterrupt メンバーを NULL 設定することによって示されます。 それ以外の場合は、PCI バスなどの割り込みベクトルを使用する I/O バス上のビデオ ハードウェアで使用されるバス相対ベクトルを指定します。 このメンバーの既定の既定値は 0 です。
ミニポート ドライバーの HwVidFindAdapter 関数は、ビデオ アダプターが割り込みを生成しないか、アダプターの有効な割り込みベクター/レベルを決定できないことを検出 した場合、HwVidFindAdapter は、BusInterruptVector と BusInterruptLevel の両方をゼロに設定する必要があります。
InterruptMode
ビデオ ハードウェアで、ラッチされた を使用するか、LevelSensitive 割り込みを するかを示します。 ビデオ ポート ドライバーは、関連する場合は、このメンバーを初期化しますが、ISR を持つミニポート ドライバーは、正しい値が含まれていることを確認し、必要に応じてリセットする必要があります。
NumEmulatorAccessEntries
このメンバーと、HardwareStateSize を介して以降のすべてのメンバーは、x86 ベースの NT ベースのオペレーティング システム プラットフォームで VGA 互換ミニポート ドライバーであることを宣言していないミニポート ドライバーとは無関係です。 x86 ベースのマシンで VGA と互換性のある SVGA アダプターをサポートしていないミニポート ドライバーの場合、このメンバーは 0 にする必要があります。 それ以外の場合は、次の配列内のEMULATOR_ACCESS_RANGE型要素の数を指定します。
EmulatorAccessEntries
VGA 互換ミニポート ドライバーによって設定されたエミュレーター アクセス範囲の配列へのポインター。 各エミュレーター アクセス範囲は、ミニポート ドライバーの VIDEO_ACCESS_RANGE-type 配列の適切なサブセットである必要があります。 各要素は、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
VideoPortGetDeviceBase の
VideoPortGetDeviceData の
VideoPortGetProcAddress の