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版本。 由於此結構可能會從某個版本的系統成長到下一個版本,所以迷你埠驅動程式應該檢查此成員,以判斷迷你埠驅動程式用來設定其配接器是否至少 大小為(VIDEO_PORT_CONFIG_INFO)。
SystemIoBusNumber
指定小型埠驅動程式配接器可能連接的 I/O 總線系統指派數目。 視訊埠驅動程式一律會初始化這個成員。
AdapterInterfaceType
指定總線介面的類型。 視訊埠驅動程式一律會根據 PnP 管理員偵測到裝置的總線來設定此成員。
BusInterruptLevel
如果視訊硬體不會產生中斷,則此成員無關緊要,方法是將 VIDEO_HW_INITIALIZATION_DATA 結構中的 HwInterrupt 成員設定為 NULL。 否則,它會指定與 Isa 或 MicroChannel 類型總線 上之中斷要求對應的總線相對 IRQL。 這個成員的預設預設值為零。 如果迷你埠驅動程式處理 Isa 或 MicroChannel 類型總線上的視訊配接器中斷,或是針對 Eisa 類型總線上設定的區分層級中斷的視訊配接器,則必須提供正確的值。
如果迷你埠驅動程式的 HwVidFindAdapter 函式發現視訊配接器不會產生插斷,或無法判斷適配卡的有效插斷向量/層級,HwVidFindAdapter 應將兩者 BusInterruptLevel 和 BusInterruptVector 設為零。
BusInterruptVector
如果視訊硬體不會產生中斷,則此成員無關緊要,方法是將 VIDEO_HW_INITIALIZATION_DATA 結構中的 HwInterrupt 成員設定為 NULL。 否則,它會指定使用插斷向量之 I/O 總線上的視訊硬體所使用的總線相對向量,例如 PCI 總線。 這個成員的預設預設值為零。
如果迷你埠驅動程式的 HwVidFindAdapter 函式發現視訊配接器不會產生插斷,或無法判斷適配卡的有效插斷向量/層級,HwVidFindAdapter 應該將兩者 BusInterruptVector 和 BusInterruptLevel 設為零。
InterruptMode
指出視訊硬體是否使用 閂鎖 或 LevelSensitive 中斷。 視訊埠驅動程式會在相關時初始化此成員,但具有ISR的迷你埠驅動程式應該檢查它是否包含正確的值,並視需要重設。
NumEmulatorAccessEntries
透過 HardwareStateSize,此成員和所有後續成員都與未在 x86 型 NT 型作系統平臺上宣告為 VGA 相容的迷你埠驅動程式的迷你埠驅動程序無關。 對於不支援 x86 型機器上 VGA 相容 SVGA 適配卡的迷你埠驅動程式,此成員應為零。 否則,它會指定下列陣列中的EMULATOR_ACCESS_RANGE類型元素數目。
EmulatorAccessEntries
VGA 相容迷你埠驅動程式所設定之模擬器存取範圍的陣列指標。 每個模擬器存取範圍都必須是迷你埠驅動程式 VIDEO_ACCESS_RANGE類型數位的適當子集。 每個元素都會指定 V86 模擬器所要掛接的 I/O 連接埠範圍,而且,每當 MS-DOS 應用程式執行全螢幕時,驅動程式提供的 SvgaHwIoPortXxx 函式可能會監視這些埠,並嘗試直接寫入視訊配接器緩存器。 此陣列通常描述對應存取範圍數位中的所有I/O埠範圍。 如果迷你埠驅動程式在驅動程式本身中以靜態方式定義其模擬器存取專案的數位,則埠驅動程式會將這個指標初始化為該數位。 如果 NumEmulatorAccessEntries 為零,則此成員 NULL。
EmulatorAccessEntriesContext
指定每個呼叫 SvgaHwIoPortXxx 函式所傳遞的值,EmulatorAccessEntries 陣列中所述。 通常,VGA 相容的迷你埠驅動程式會將這個成員的值設定為 HwDeviceExtension 指標,或設定裝置擴充功能內的位移,讓迷你埠驅動程式可以在其 SvgaHwIoPortXxx 函式中維護狀態,例如批次應用程式發出的指令。
VdmPhysicalVideoMemoryAddress
指定要對應至 x86 BIOS INT10 支援之 VDM 位址空間之視訊記憶體範圍的基底 (mapped) 邏輯位址。 對於不支援 x86 型機器上 VGA 相容適配卡的迷你埠驅動程式,此成員應 NULL。
VdmPhysicalVideoMemoryLength
指定範圍的大小,以位元組為單位對應至 VDM 的 x86 BIOS 支援地址空間。 對於不支援 x86 型機器上 VGA 相容適配卡的迷你埠驅動程式,此成員應為零。
HardwareStateSize
指定儲存硬體狀態資訊以回應 IOCTL_VIDEO_SAVE_HARDWARE_STATE 要求所需的最小大小,這隻能由 x86 型機器上的 VGA 相容迷你埠驅動程序支援。 這個成員的初始化值為零。 VGA 相容的迷你埠驅動程式必須將這個成員設定為保留儲存的配接器狀態所需的位元組數目。
DmaChannel
保留供系統使用。
DmaPort
保留供系統使用。
DmaShareable
保留供系統使用。
InterruptShareable
如果迷你埠驅動程式的裝置中斷,如果中斷無法與另一部裝置共用,則此成員應設定為零,如果可以共用中斷,則此成員應設定為 1。 否則,迷你埠驅動程式可以忽略這個成員。
Master
保留供系統使用。
DmaWidth
保留供系統使用。
DmaSpeed
保留供系統使用。
bMapBuffers
保留供系統使用。
NeedPhysicalAddresses
保留供系統使用。
DemandMode
保留供系統使用。
MaximumTransferLength
保留供系統使用。
NumberOfPhysicalBreaks
保留供系統使用。
ScatterGather
保留供系統使用。
MaximumScatterGatherChunkSize
保留供系統使用。
VideoPortGetProcAddress
VideoPortGetProcAddress 回呼例程的指標。 此成員可用來尋找視訊埠驅動程式函式的位址,而視訊迷你埠驅動程式可以使用,而不需直接連結至該驅動程式。 這可讓驅動程式二進位檔在舊版 Windows 上執行。 如需詳細資訊,請參閱 使用 VideoPortGetProcAddress。
DriverRegistryPath
包含裝置服務的登錄路徑指標。 顯示驅動程式可以用它認為有用的任何方式來使用這項資訊。
SystemMemorySize
指示驅動程式系統中物理記憶體的數量,以位元組為單位。
要求
要求 | 價值 |
---|---|
標頭 | video.h (include Video.h) |