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 関数は、ビデオ アダプターが割り込みを生成しないこと、またはアダプターの有効な割り込みベクトル/レベルを判断できないことを検出 した場合、HwVidFindAdapter は BusInterruptLevel と 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型配列の適切なサブセットである必要があります。 各要素は、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 を含む) |