VIDEO_PORT_CONFIG_INFO Struktur (video.h)
Die VIDEO_PORT_CONFIG_INFO-Struktur enthält busspezifische Adapterkonfigurationsinformationen. Diese Struktur wird verwendet, um die Videohardware einzurichten und den Videoporttreiber mit Konfigurationsinformationen zu versorgen. Der Videoporttreiber kann dann die erforderlichen Systemressourcen für den Miniporttreiber und seinen Adapter zuordnen.
Syntax
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;
Angehörige
Length
Ist die Größe in Byte dieser Struktur. Der Videoporttreiber initialisiert immer den Length Member. Der Wert gibt die Version der VIDEO_PORT_CONFIG_INFO an, die vom System verwendet wird. Da diese Struktur von einer Version des Systems auf die nächste wachsen kann, sollte ein Miniporttreiber dieses Element überprüfen, um festzustellen, ob es sich um mindestens Größe von(VIDEO_PORT_CONFIG_INFO) handelt, die der Miniporttreiber zum Konfigurieren des Adapters verwendet.
SystemIoBusNumber
Gibt die vom System zugewiesene Nummer des E/A-Busses an, auf dem der Adapter des Miniporttreibers möglicherweise angeschlossen ist. Der Videoporttreiber initialisiert dieses Element immer.
AdapterInterfaceType
Gibt den Typ der Busschnittstelle an. Der Videoporttreiber legt dieses Element immer basierend auf dem Bus fest, auf dem der PnP-Manager das Gerät erkannt hat.
BusInterruptLevel
Dieses Element ist irrelevant, wenn die Videohardware keine Unterbrechungen generiert, angegeben durch Festlegen des HwInterrupt- Members in der VIDEO_HW_INITIALIZATION_DATA-Struktur auf NULL-. Andernfalls gibt sie die busrelative IRQL an, die der Interruptanforderung auf Isa oder MicroChannel Typbusse entspricht. Der voreingestellte Standardwert für dieses Element ist Null. Ein Miniporttreiber muss den richtigen Wert angeben, wenn er Unterbrechungen für einen Grafikkarten auf einem Isa oder MicroChannel Typbus verarbeitet, oder für einen Videoadapter, der für levelsensitive Interrupts auf einem Eisa Typbus konfiguriert ist.
Wenn die HwVidFindAdapter-Funktion eines Miniporttreibers feststellt, dass der Grafikkarte keine Unterbrechungen generiert oder keinen gültigen Unterbrechungsvektor/eine gültige Unterbrechungsebene für den Adapter bestimmen kann, sollte HwVidFindAdapter- sowohl BusInterruptLevel als auch BusInterruptVector auf Null festlegen.
BusInterruptVector
Dieses Element ist irrelevant, wenn die Videohardware keine Unterbrechungen generiert, angegeben durch Festlegen des HwInterrupt- Members in der VIDEO_HW_INITIALIZATION_DATA-Struktur auf NULL-. Andernfalls gibt sie den busrelativen Vektor an, der von der Videohardware auf E/A-Bussen verwendet wird, die Interruptvektoren verwenden, z. B. PCI-Busse. Der voreingestellte Standardwert für dieses Element ist Null.
Wenn die HwVidFindAdapter-Funktion eines Miniporttreibers feststellt, dass der Grafikkarte keine Unterbrechungen generiert oder keinen gültigen Interruptvektor/eine gültige Unterbrechungsebene für den Adapter bestimmen kann, sollte HwVidFindAdapter- sowohl BusInterruptVector als auch BusInterruptLevel- auf Null festlegen.
InterruptMode
Gibt an, ob die Videohardware latched oder LevelSensitive Interrupts verwendet. Der Videoporttreiber initialisiert dieses Element, wenn es relevant ist, aber ein Miniporttreiber mit einem ISR sollte überprüfen, ob er den richtigen Wert enthält und bei Bedarf zurückgesetzt wird.
NumEmulatorAccessEntries
Dieses Mitglied und alle nachfolgenden Member über HardwareStateSize- sind irrelevant für Miniporttreiber, die sich nicht als VGA-kompatible Miniporttreiber auf x86-basierten NT-basierten Betriebssystemplattformen deklarieren. Bei Miniporttreibern, die KEINE VGA-kompatiblen SVGA-Adapter auf x86-basierten Computern unterstützen, sollte dieses Element null sein. Andernfalls gibt sie die Anzahl der EMULATOR_ACCESS_RANGE-Typelemente im folgenden Array an.
EmulatorAccessEntries
Zeiger auf ein Array von Emulatorzugriffsbereichen, die vom VGA-kompatiblen Miniporttreiber eingerichtet wurden. Jeder Emulatorzugriffsbereich muss eine richtige Teilmenge des VIDEO_ACCESS_RANGE-Typ-Arrays des Miniporttreibers sein. Jedes Element gibt einen Bereich von E/A-Ports an, die vom V86-Emulator eingebunden werden sollen und ggf. von einer vom Treiber bereitgestellten SvgaHwIoPortXxx-Funktion überwacht werden, wenn eine MS-DOS Anwendung, die vollbildbereit ist, versucht, direkt in den Videoadapter zu schreiben. In der Regel beschreibt dieses Array alle E/A-Portbereiche im entsprechenden Zugriffsbereichsarray. Wenn der Miniporttreiber sein Array von Emulatorzugriffseinträgen statisch im Treiber selbst definiert, initialisiert der Porttreiber diesen Zeiger auf dieses Array. Wenn NumEmulatorAccessEntries null ist, ist dieses Element NULL-.
EmulatorAccessEntriesContext
Gibt einen Wert an, der mit jedem Aufruf eines SvgaHwIoPortXxx Funktion übergeben wird, die im EmulatorAccessEntries Array beschrieben wird. In der Regel legt ein VGA-kompatibler Miniporttreiber den Wert dieses Elements auf den HwDeviceExtension Zeiger oder auf einen Offset innerhalb der Geräteerweiterung fest, sodass der Miniporttreiber den Zustand beibehalten kann, z. B. vom Batch ausgegebene Anweisungen, in seinen SvgaHwIoPortXxx Funktionen.
VdmPhysicalVideoMemoryAddress
Gibt die logische Basisadresse (zugeordnet) eines Bereichs von Videospeicher an, der in den Adressraum eines VDM für die x86 BIOS INT10-Unterstützung zugeordnet werden soll. Bei Miniporttreibern, die VGA-kompatible Adapter auf x86-basierten Computern nicht unterstützen, sollte dieses Element NULL-sein.
VdmPhysicalVideoMemoryLength
Gibt die Größe in Byte des Bereichs an, die im Adressraum eines VDM für die x86-BIOS-Unterstützung zugeordnet werden soll. Bei Miniporttreibern, die VGA-kompatible Adapter auf x86-basierten Computern nicht unterstützen, sollte dieses Element null sein.
HardwareStateSize
Gibt die Mindestgröße in Bytes an, die zum Speichern von Hardwarestatusinformationen als Reaktion auf eine IOCTL_VIDEO_SAVE_HARDWARE_STATE Anforderung erforderlich ist, die nur von VGA-kompatiblen Miniporttreibern auf x86-basierten Computern unterstützt werden muss. Der initialisierte Wert für dieses Element ist Null. Ein VGA-kompatibler Miniporttreiber muss dieses Element auf die Anzahl der Bytes festlegen, die zum Speichern des Adapterzustands erforderlich sind.
DmaChannel
Reserviert für die Systemverwendung.
DmaPort
Reserviert für die Systemverwendung.
DmaShareable
Reserviert für die Systemverwendung.
InterruptShareable
Wenn das Gerät des Miniporttreibers unterbrochen wird, sollte dieses Element auf Null festgelegt werden, wenn der Interrupt nicht für ein anderes Gerät freigegeben werden kann, oder auf eines festgelegt, wenn der Interrupt freigegeben werden kann. Andernfalls kann ein Miniporttreiber dieses Element ignorieren.
Master
Reserviert für die Systemverwendung.
DmaWidth
Reserviert für die Systemverwendung.
DmaSpeed
Reserviert für die Systemverwendung.
bMapBuffers
Reserviert für die Systemverwendung.
NeedPhysicalAddresses
Reserviert für die Systemverwendung.
DemandMode
Reserviert für die Systemverwendung.
MaximumTransferLength
Reserviert für die Systemverwendung.
NumberOfPhysicalBreaks
Reserviert für die Systemverwendung.
ScatterGather
Reserviert für die Systemverwendung.
MaximumScatterGatherChunkSize
Reserviert für die Systemverwendung.
VideoPortGetProcAddress
Zeiger auf die VideoPortGetProcAddress Rückrufroutine. Dieses Mitglied wird verwendet, um die Adresse einer Videoporttreiberfunktion zu finden, die der Video-Miniporttreiber verwenden kann, ohne eine direkte Verknüpfung mit diesem zu erstellen. Dadurch kann ein Treiber binär auf einer früheren Version von Windows ausgeführt werden. Ausführliche Informationen finden Sie unter Using VideoPortGetProcAddress.
DriverRegistryPath
Zeigen Sie auf den Registrierungspfad, der den Dienst des Geräts enthält. Der Anzeigetreiber kann diese Informationen auf jede Weise verwenden, die als nützlich erachtet wird.
SystemMemorySize
Gibt an, dass ein Treiber die Menge des physischen Arbeitsspeichers im System in Byte angibt.
Anforderungen
Anforderung | Wert |
---|---|
Header- | video.h (video.h einschließen) |