Freigeben über


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)

Siehe auch

HwVidFindAdapter

IOCTL_VIDEO_SAVE_HARDWARE_STATE

VIDEO_ACCESS_RANGE

VIDEO_HW_INITIALIZATION_DATA

VideoPortGetAccessRanges-

VideoPortGetDeviceBase-

VideoPortGetDeviceData-

VideoPortGetProcAddress

VideoPortVerifyAccessRanges