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) |