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 dessen 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;

Member

Length

Die Größe dieser Struktur in Bytes. Der Videoporttreiber initialisiert immer das Length-Element . Tatsächlich gibt sein Wert die Version von VIDEO_PORT_CONFIG_INFO an, die vom System verwendet wird. Da diese Struktur möglicherweise von einer Version des Systems zur nächsten anwächst, sollte ein Miniporttreiber diesen Member überprüfen, um festzustellen, ob es sich um mindestens sizeof(VIDEO_PORT_CONFIG_INFO) handelt, die der Miniporttreiber zum Konfigurieren des Adapters verwendet.

SystemIoBusNumber

Gibt die systemseitig zugewiesene Nummer des E/A-Busses an, an den der Adapter des Miniporttreibers angeschlossen sein könnte. Der Videoporttreiber initialisiert dieses Element immer.

AdapterInterfaceType

Gibt den Typ der Busschnittstelle an. Der Videoporttreiber legt diesen Member immer basierend auf dem Bus fest, auf dem der PnP-Manager das Gerät erkannt hat.

BusInterruptLevel

Dieser Member ist irrelevant, wenn die Videohardware keine Interrupts generiert, die durch Festlegen des HwInterrupt-Elements in der VIDEO_HW_INITIALIZATION_DATA-Struktur auf NULL angegeben werden. Andernfalls wird der busrelative IRQL angegeben, der der Interruptanforderung für Busse vom Typ Isa oder MicroChannel entspricht. Der voreingestellte Standardwert für dieses Element ist 0. Ein Miniporttreiber muss den richtigen Wert angeben, wenn er Interrupts für eine Grafikkarte auf einem Bus des Typs Isa oder MicroChannel oder für eine Grafikkarte verarbeitet, die für levelsensitive Interrupts auf einem Bus vom Typ Eisa konfiguriert ist.

Wenn die HwVidFindAdapter-Funktion eines Miniporttreibers feststellt, dass der Grafikkarte keine Interrupts generiert oder keinen gültigen Interruptvektor/-level für den Adapter ermitteln kann, sollte HwVidFindAdapter sowohl BusInterruptLevel als auch BusInterruptVector auf Null festlegen.

BusInterruptVector

Dieser Member ist irrelevant, wenn die Videohardware keine Interrupts generiert, die durch Festlegen des HwInterrupt-Members in der VIDEO_HW_INITIALIZATION_DATA-Struktur auf NULL angegeben werden. Andernfalls wird der busrelative Vektor angegeben, 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 0.

Wenn die HwVidFindAdapter-Funktion eines Miniporttreibers feststellt, dass der Grafikkarte keine Interrupts generiert oder keinen gültigen Interruptvektor/-level 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 diesen Member, wenn es relevant ist, aber ein Miniporttreiber mit einem ISR sollte überprüfen, ob er den richtigen Wert enthält, und ihn bei Bedarf zurücksetzen.

NumEmulatorAccessEntries

Dieses Member 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. Für Miniporttreiber, die keine VGA-kompatiblen SVGA-Adapter auf x86-basierten Computern unterstützen, sollte dieser Member 0 sein. Andernfalls gibt es die Anzahl der EMULATOR_ACCESS_RANGE-Typ-Elemente im folgenden Array an.

EmulatorAccessEntries

Zeiger auf ein Array von Emulatorzugriffsbereichen, die vom VGA-kompatiblen Miniporttreiber eingerichtet werden. Jeder Emulatorzugriffsbereich muss eine ordnungsgemäße Teilmenge des VIDEO_ACCESS_RANGE-Typarrays des Miniporttreibers sein. Jedes Element gibt einen Bereich von E/A-Ports an, die vom V86-Emulator eingebunden und möglicherweise von einer vom Treiber bereitgestellten SvgaHwIoPortXxx-Funktion überwacht werden sollen, wenn eine MS-DOS-Anwendung mit Vollbild versucht, direkt in das Videoadapterregister 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 dieser Member NULL.

EmulatorAccessEntriesContext

Gibt einen Wert an, der mit jedem Aufruf einer SvgaHwIoPortXxx-Funktion übergeben wird, die im Array EmulatorAccessEntries beschrieben wird. In der Regel legt ein VGA-kompatibler Miniporttreiber den Wert dieses Members auf den HwDeviceExtension-Zeiger oder auf einen Offset innerhalb der Geräteerweiterung fest, damit der Miniporttreiber den Zustand in seinen SvgaHwIoPortXxx-Funktionen beibehalten kann, z. B. Batchanweisungen der Anwendung.

VdmPhysicalVideoMemoryAddress

Gibt die logische Basisadresse (zugeordnet) eines Bereichs von Videospeicher an, der dem Adressraum eines VDM für x86 BIOS INT10-Unterstützung zugeordnet werden soll. Für Miniporttreiber, die keine VGA-kompatiblen Adapter auf x86-basierten Computern unterstützen, sollte dieser Member NULL sein.

VdmPhysicalVideoMemoryLength

Gibt die Größe des Bereichs in Bytes an, der dem Adressraum eines VDM für die x86-BIOS-Unterstützung zugeordnet werden soll. Für Miniporttreiber, die keine VGA-kompatiblen Adapter auf x86-basierten Computern unterstützen, sollte dieser Member 0 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 darf. Der initialisierte Wert für dieses Element ist 0. Ein VGA-kompatibler Miniporttreiber muss diesen Member auf die Anzahl von Bytes festlegen, die zum Speichern des Adapterzustands erforderlich ist.

DmaChannel

Ist für das System reserviert.

DmaPort

Ist für das System reserviert.

DmaShareable

Ist für das System reserviert.

InterruptShareable

Wenn das Gerät des Miniporttreibers unterbricht, sollte dieser Member auf Null festgelegt werden, wenn der Interrupt nicht für ein anderes Gerät freigegeben werden kann, oder auf eins festgelegt werden, wenn der Interrupt freigegeben werden kann. Andernfalls kann ein Miniporttreiber diesen Member ignorieren.

Master

Ist für das System reserviert.

DmaWidth

Ist für das System reserviert.

DmaSpeed

Ist für das System reserviert.

bMapBuffers

Ist für das System reserviert.

NeedPhysicalAddresses

Ist für das System reserviert.

DemandMode

Ist für das System reserviert.

MaximumTransferLength

Ist für das System reserviert.

NumberOfPhysicalBreaks

Ist für das System reserviert.

ScatterGather

Ist für das System reserviert.

MaximumScatterGatherChunkSize

Ist für das System reserviert.

VideoPortGetProcAddress

Zeiger auf die VideoPortGetProcAddress-Rückrufroutine . Dieses Element wird verwendet, um die Adresse einer Videoporttreiberfunktion zu finden, die der Video-Miniporttreiber verwenden kann, ohne direkt zu verknüpfen. Dadurch kann eine Treiberbinärdatei unter einer früheren Version von Windows ausgeführt werden. Ausführliche Informationen finden Sie unter Verwenden von VideoPortGetProcAddress.

DriverRegistryPath

Zeiger auf den Registrierungspfad, der den Dienst des Geräts enthält. Der Anzeigetreiber kann diese Informationen in beliebiger Weise verwenden, die er als nützlich erachtet.

SystemMemorySize

Gibt für einen Treiber die Menge des physischen Arbeitsspeichers im System in Bytes an.

Anforderungen

Anforderung Wert
Header video.h (einschließen von Video.h)

Weitere Informationen

HwVidFindAdapter

IOCTL_VIDEO_SAVE_HARDWARE_STATE

VIDEO_ACCESS_RANGE

VIDEO_HW_INITIALIZATION_DATA

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetProcAddress

VideoPortVerifyAccessRanges