struttura VIDEO_PORT_CONFIG_INFO (video.h)

La struttura VIDEO_PORT_CONFIG_INFO contiene informazioni di configurazione dell'adattatore specifiche del bus. Questa struttura viene usata per configurare l'hardware video e fornire al driver della porta video informazioni di configurazione. Il driver della porta video può quindi allocare le risorse di sistema necessarie per il driver miniport e la relativa scheda.

Sintassi

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;

Members

Length

Dimensione in byte di questa struttura. Il driver della porta video inizializza sempre il membro Length . In effetti, il valore indica la versione di VIDEO_PORT_CONFIG_INFO utilizzata dal sistema. Poiché questa struttura potrebbe crescere da una versione del sistema alla successiva, un driver miniport deve controllare questo membro per determinare se è almeno sizeof(VIDEO_PORT_CONFIG_INFO) usato dal driver miniport per configurare la relativa scheda.

SystemIoBusNumber

Specifica il numero assegnato dal sistema del bus di I/O in cui potrebbe essere collegata la scheda del driver miniport. Il driver della porta video inizializza sempre questo membro.

AdapterInterfaceType

Specifica il tipo di interfaccia del bus. Il driver della porta video imposta sempre questo membro in base al bus in cui il gestore PnP ha rilevato il dispositivo.

BusInterruptLevel

Questo membro è irrilevante se l'hardware video non genera interruzioni, indicato impostando il membro HwInterrupt nella struttura VIDEO_HW_INITIALIZATION_DATA su NULL. In caso contrario, specifica l'IRQL relativo al bus che corrisponde alla richiesta di interruzione nei bus di tipo Isa o MicroChannel . Il valore predefinito predefinito per questo membro è zero. Un driver miniport deve fornire il valore corretto se gestisce gli interrupt per una scheda video in un bus di tipo Isa o MicroChannel oppure per una scheda video configurata per interruzioni sensibili a livello su un bus di tipo Eisa .

Se la funzione HwVidFindAdapter di un driver miniport rileva che la scheda video non genera interruzioni o che non è in grado di determinare un vettore di interruzione/livello valido per la scheda, HwVidFindAdapter deve impostare busInterruptLevel e BusInterruptVector su zero.

BusInterruptVector

Questo membro è irrilevante se l'hardware video non genera interruzioni, indicato impostando il membro HwInterrupt nella struttura VIDEO_HW_INITIALIZATION_DATA su NULL. In caso contrario, specifica il vettore relativo al bus utilizzato dall'hardware video sui bus di I/O che utilizzano vettori di interruzione, ad esempio bus PCI. Il valore predefinito predefinito per questo membro è zero.

Se la funzione HwVidFindAdapter di un driver miniport rileva che la scheda video non genera interruzioni o che non è in grado di determinare un vettore di interruzione/livello valido per la scheda, HwVidFindAdapter deve impostare busInterruptVector e BusInterruptLevel su zero.

InterruptMode

Indica se l'hardware video usa interrupt Latched o LevelSensitive . Il driver della porta video inizializza questo membro, se pertinente, ma un driver miniport con un ISR deve verificare che contenga il valore corretto e reimpostarlo, se necessario.

NumEmulatorAccessEntries

Questo membro e tutti i membri successivi tramite HardwareStateSize sono irrilevanti per i driver miniport che non dichiarano di essere driver miniport compatibili con VGA su piattaforme di sistema operativo basate su NT x86. Per i driver miniport che non supportano adattatori SVGA compatibili con VGA nei computer basati su x86, questo membro deve essere zero. In caso contrario, specifica il numero di elementi di tipo EMULATOR_ACCESS_RANGE nella matrice seguente.

EmulatorAccessEntries

Puntatore a una matrice di intervalli di accesso dell'emulatore configurati dal driver miniport compatibile con VGA. Ogni intervallo di accesso dell'emulatore deve essere un subset appropriato della matrice di tipo VIDEO_ACCESS_RANGE del driver miniport. Ogni elemento specifica un intervallo di porte di I/O da associare all'emulatore V86 e, possibilmente, monitorato da una funzione SvgaHwIoPortXxx fornita dal driver ogni volta che un'applicazione MS-DOS, in esecuzione a schermo intero, tenta di scrivere direttamente nei registri della scheda video. In genere, questa matrice descrive tutti gli intervalli di porte di I/O nella matrice degli intervalli di accesso corrispondente. Se il driver miniport definisce la relativa matrice di voci di accesso all'emulatore in modo statico nel driver stesso, il driver della porta inizializza questo puntatore a tale matrice. Se NumEmulatorAccessEntries è zero, questo membro è NULL.

EmulatorAccessEntriesContext

Specifica un valore passato con ogni chiamata a una funzione SvgaHwIoPortXxx descritta nella matrice EmulatorAccessEntries . In genere, un driver miniport compatibile con VGA imposta il valore di questo membro sul puntatore HwDeviceExtension o su un offset all'interno dell'estensione del dispositivo, in modo che il driver miniport possa mantenere lo stato, ad esempio le istruzioni rilasciate dall'applicazione in batch, nelle funzioni SvgaHwIoPortXxx .

VdmPhysicalVideoMemoryAddress

Specifica l'indirizzo logico di base (mappato) di un intervallo di memoria video di cui eseguire il mapping nello spazio indirizzi di un VDM per il supporto di BIOS INT10 x86. Per i driver miniport che non supportano schede compatibili con VGA nei computer basati su x86, questo membro deve essere NULL.

VdmPhysicalVideoMemoryLength

Specifica le dimensioni in byte dell'intervallo di cui è stato eseguito il mapping nello spazio indirizzi di un VDM per il supporto bios x86. Per i driver miniport che non supportano schede compatibili con VGA nei computer basati su x86, questo membro deve essere zero.

HardwareStateSize

Specifica le dimensioni minime in byte necessarie per archiviare le informazioni sullo stato hardware in risposta a una richiesta di IOCTL_VIDEO_SAVE_HARDWARE_STATE , che deve essere supportata solo dai driver miniport compatibili con VGA nei computer basati su x86. Il valore inizializzato per questo membro è zero. Un driver miniport compatibile con VGA deve impostare questo membro sul numero di byte necessario per mantenere lo stato dell'adattatore salvato.

DmaChannel

Riservato per l'utilizzo nel sistema.

DmaPort

Riservato per l'utilizzo nel sistema.

DmaShareable

Riservato per l'utilizzo nel sistema.

InterruptShareable

Se il dispositivo del miniport driver interrompe, questo membro deve essere impostato su zero se l'interrupt non può essere condiviso con un altro dispositivo o impostato su uno se l'interrupt può essere condiviso. In caso contrario, un driver miniport può ignorare questo membro.

Master

Riservato per l'utilizzo nel sistema.

DmaWidth

Riservato per l'utilizzo nel sistema.

DmaSpeed

Riservato per l'utilizzo nel sistema.

bMapBuffers

Riservato per l'utilizzo nel sistema.

NeedPhysicalAddresses

Riservato per l'utilizzo nel sistema.

DemandMode

Riservato per l'utilizzo nel sistema.

MaximumTransferLength

Riservato per l'utilizzo nel sistema.

NumberOfPhysicalBreaks

Riservato per l'utilizzo nel sistema.

ScatterGather

Riservato per l'utilizzo nel sistema.

MaximumScatterGatherChunkSize

Riservato per l'utilizzo nel sistema.

VideoPortGetProcAddress

Puntatore alla routine di callback VideoPortGetProcAddress . Questo membro viene usato per trovare l'indirizzo di una funzione driver di porta video che il driver miniport video può usare senza collegarsi direttamente a esso. Ciò consente l'esecuzione di un file binario del driver in una versione precedente di Windows. Per informazioni dettagliate, vedere Uso di VideoPortGetProcAddress.

DriverRegistryPath

Puntatore al percorso del Registro di sistema contenente il servizio del dispositivo. Il driver di visualizzazione può utilizzare queste informazioni in qualsiasi modo ritiene utile.

SystemMemorySize

Indica a un driver la quantità, in byte, della memoria fisica nel sistema.

Requisiti

Requisito Valore
Intestazione video.h (include Video.h)

Vedi anche

HwVidFindAdapter

IOCTL_VIDEO_SAVE_HARDWARE_STATE

VIDEO_ACCESS_RANGE

VIDEO_HW_INITIALIZATION_DATA

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetProcAddress

VideoPortVerifyAccessRanges