Funzione VideoPortVerifyAccessRanges (video.h)

La funzione VideoPortVerifyAccessRanges controlla il Registro di sistema per verificare se un altro driver ha già rivendicato la proprietà degli intervalli di accesso relativi al bus specificati e qualsiasi altra risorsa hardware specificata nella struttura VIDEO_PORT_CONFIG_INFO . In caso contrario, questa funzione dichiara le risorse fornite per il chiamante.

Sintassi

VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortVerifyAccessRanges(
                 PVOID               HwDeviceExtension,
                 ULONG               NumAccessRanges,
  [in, optional] PVIDEO_ACCESS_RANGE AccessRanges
);

Parametri

HwDeviceExtension

Puntatore all'estensione del dispositivo del driver miniport.

NumAccessRanges

Specifica il numero di elementi nella matrice AccessRanges o zero.

[in, optional] AccessRanges

Puntatore alla matrice di intervalli di accesso del driver miniport o NULL. Ogni elemento di tipo VIDEO_ACCESS_RANGE in questa matrice specifica un intervallo relativo al bus di memoria del dispositivo, porte di I/O o indirizzi di registrazione per l'adattatore.

Valore restituito

VideoPortVerifyAccessRanges restituisce uno dei valori seguenti:

Codice restituito Descrizione
ERROR_INVALID_PARAMETER Si è verificato un errore o è stato trovato un conflitto; vale a dire, un altro driver ha già richiesto una o più delle risorse hardware fornite per il dispositivo.
NO_ERROR Gli AccessRange specificati sono validi e sono stati richiesti per l'uso da parte del chiamante.

Commenti

Ogni driver miniport video deve chiamare VideoPortVerifyAccessRanges oppure usare gli intervalli di accesso restituiti da VideoPortGetAccessRanges prima di tentare di accedere a una scheda video durante il processo di inizializzazione del driver e del sistema.

VideoPortVerifyAccessRanges può essere chiamato solo dalla funzione HwVidFindAdapter di un driver miniport.

Ogni driver miniport video deve definire gli intervalli di accesso relativi al bus per il dispositivo, come memoria allocata in modo statico nel file di intestazione del driver o nel codice o nello stack. La maggior parte dei driver miniport configura gli intervalli di accesso video nello stack, ad eccezione di quelli che usano intervalli di indirizzi standard del PC per la memoria video, ad esempio i driver miniport SVGA compatibili con VGA.

La funzione HwVidFindAdapter deve tentare di ottenere informazioni sull'intervallo di accesso relativo al bus chiamando VideoPortGetAccessRanges oppure controllando il Registro di sistema tramite chiamate a VideoPortGetDeviceData o VideoPortGetRegistryParameters. Se HwVidFindAdapter non riesce a ottenere queste informazioni, il driver miniport deve avere un set di valori predefiniti relativi al bus per gli intervalli di accesso.

Se gli intervalli di accesso di un driver miniport sono configurabili esternamente, il programma di installazione configura gli intervalli di accesso per l'adattatore nel Registro di sistema. Tale funzione HwVidFindAdapter di un driver miniport può chiamare VideoPortGetRegistryParameters con una funzione HwVidQueryNamedValueCallback fornita dal driver miniport che elabora le informazioni recuperate dal Registro di sistema.

HwVidFindAdapter non deve passare alcun indirizzo di intervallo di accesso a VideoPortGetDeviceBase a meno che non chiami VideoPortVerifyAccessRanges o VideoPortGetAccessRanges e la rispettiva funzione restituisce NO_ERROR.

VideoPortVerifyAccessRanges può essere chiamato di nuovo se la specifica o il valore di AccessRanges iniziale nel VIDEO_PORT_CONFIG_INFO, ad esempio un vettore di interrupt, lo fa restituire un ERROR_XXX che indica che un altro driver ha già richiesto le risorse.

Se VideoPortVerifyAccessRanges restituisce NO_ERROR, una chiamata successiva per la stessa scheda sovrascrive l'attestazione del driver miniport sulle risorse per tale scheda nel Registro di sistema.

Si noti che un driver miniport non può comunicare con la relativa scheda video, ad eccezione dell'uso di indirizzi mappati restituiti da VideoPortGetDeviceBase con le funzioni VideoPortRead/WriteXxx .

Se la funzione HwVidFindAdapter dichiara intervalli di accesso relativi al bus e possibilmente altre risorse hardware per una scheda, ma determina che non supporta l'adattatore, il driver miniport deve rinunciare alle attestazioni relative alle risorse hardware nel Registro di sistema chiamando VideoPortVerifyAccessRanges o VideoPortGetAccessRanges con NumAccessRanges impostato su zero e AccessRanges impostato su NULL.

Per rinunciare alle attestazioni in un subset di intervalli di accesso richiesti che il driver miniport non usa più, eseguire le operazioni seguenti:

  1. Modificare la specifica AccessRanges per l'adattatore in modo che ogni elemento che descrive un intervallo da rilasciare abbia ancora RangeStart impostato sulla base relativa del bus di un intervallo richiesto, ma RangeLength reimposta su zero.
  2. Chiamare VideoPortVerifyAccessRanges con questa matrice AccessRanges modificata.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows 2000 e versioni successive dei sistemi operativi Windows.
Piattaforma di destinazione Desktop
Intestazione video.h (include Video.h)
Libreria Videoprt.lib
DLL Videoprt.sys
IRQL PASSIVE_LEVEL

Vedi anche

HwVidFindAdapter

HwVidQueryDeviceCallback

HwVidQueryNamedValueCallback

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetRegistryParameters