VideoPortVerifyAccessRanges-Funktion (video.h)
Die VideoPortVerifyAccessRanges--Funktion überprüft die Registrierung, ob ein anderer Treiber bereits den Besitz der angegebenen busrelativen Zugriffsbereiche und aller anderen Hardwareressourcen in der VIDEO_PORT_CONFIG_INFO-Struktur beansprucht hat. Andernfalls beansprucht diese Funktion die angegebenen Ressourcen für den Aufrufer.
Syntax
VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortVerifyAccessRanges(
PVOID HwDeviceExtension,
ULONG NumAccessRanges,
[in, optional] PVIDEO_ACCESS_RANGE AccessRanges
);
Parameter
HwDeviceExtension
Zeigen Sie auf die Geräteerweiterung des Miniporttreibers.
NumAccessRanges
Gibt die Anzahl der Elemente im AccessRanges Array oder Null an.
[in, optional] AccessRanges
Zeiger auf das Access-Bereichsarray des Miniporttreibers oder NULL-. Jedes VIDEO_ACCESS_RANGE-type-Element in diesem Array gibt einen busrelativen Bereich des Gerätespeichers, E/A-Ports oder Registeradressen für den Adapter an.
Rückgabewert
VideoPortVerifyAccessRanges gibt einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
ERROR_INVALID_PARAMETER | Es ist ein Fehler aufgetreten, oder ein Konflikt wurde gefunden; d. h., ein anderer Treiber hat bereits eine oder mehrere der angegebenen Hardwareressourcen für sein Gerät beansprucht. |
NO_ERROR | Die angegebenen AccessRanges sind gültig und wurden für die Verwendung durch den Aufrufer beansprucht. |
Bemerkungen
Jeder Videominiporttreiber muss entweder VideoPortVerifyAccessRangesaufrufen oder Zugriffsbereiche verwenden, die von VideoPortGetAccessRanges zurückgegeben werden, bevor sie während des Treibers (und des System)-Initialisierungsprozesses auf einen Videoadapter zugreifen möchten.
VideoPortVerifyAccessRanges- kann nur von der HwVidFindAdapter--Funktion eines Miniporttreibers aufgerufen werden.
Jeder Video-Miniporttreiber muss die busrelativen Zugriffsbereiche für sein Gerät definieren, entweder als statisch zugewiesener Speicher in der Headerdatei des Treibers oder Code oder im Stapel. Die meisten Miniporttreiber richten ihre Videozugriffsbereiche im Stapel ein, mit Ausnahme derer, die PC-Standardadressbereiche für den Videospeicher verwenden, z. B. VGA-kompatible SVGA-Miniporttreiber.
Die HwVidFindAdapter--Funktion sollte versuchen, informationen zum busrelativen Zugriffsbereich abzurufen, indem sie VideoPortGetAccessRangesaufrufen oder die Registrierung über Aufrufe von VideoPortGetDeviceData oder VideoPortGetRegistryParametersüberprüfen. Wenn HwVidFindAdapter diese Informationen nicht abrufen kann, sollte der Miniporttreiber über eine Reihe von busrelativen Standardwerten für Zugriffsbereiche verfügen.
Wenn die Zugriffsbereiche eines Miniporttreibers extern konfigurierbar sind, richtet das Installationsprogramm Zugriffsbereiche für den Adapter in der Registrierung ein. Eine solche HwVidFindAdapter--Funktion eines solchen Miniporttreibers kann VideoPortGetRegistryParameters mit einem vom Miniport bereitgestellten HwVidQueryNamedValueCallback Funktion aufrufen, die Informationen verarbeitet, die aus der Registrierung abgerufen wurden.
HwVidFindAdapter- dürfen keine Zugriffsbereichsadressen an VideoPortGetDeviceBase übergeben, es sei denn, sie ruft VideoPortVerifyAccessRanges oder VideoPortGetAccessRange s zuerst auf, und die entsprechende Funktion gibt NO_ERROR zurück.
VideoPortVerifyAccessRanges- kann erneut aufgerufen werden, wenn die ursprüngliche AccessRanges Spezifikation oder wert in der VIDEO_PORT_CONFIG_INFO, z. B. ein Interruptvektor, zurückgibt, dass ein ERROR_XXX- zurückgibt, dass bereits ein anderer Treiber die Ressource(n) beansprucht hat.
Wenn VideoPortVerifyAccessRanges NO_ERROR zurückgibt, überschreibt ein nachfolgenden Aufruf für denselben Adapter den Anspruch des Miniporttreibers auf Ressourcen für diesen Adapter in der Registrierung.
Beachten Sie, dass ein Miniporttreiber nicht mit seinem Grafikkartenadapter kommunizieren kann, außer mithilfe zugeordneter Adressen, die von VideoPortGetDeviceBase mit den funktionen VideoPortRead/WriteXxx zurückgegeben werden.
Wenn der HwVidFindAdapter Funktion busrelative Zugriffsbereiche und möglicherweise andere Hardwareressourcen für einen Adapter angibt, aber dann bestimmt, dass er den Adapter nicht unterstützt, der Miniporttreiber muss seine Ansprüche auf Hardwareressourcen in der Registrierung zuweisen, indem VideoPortVerifyAccessRanges oder VideoPortGetAccessRanges mit NumAccessRanges auf Null festgelegt und AccessRanges auf NULL-festgelegt ist.
Gehen Sie wie folgt vor, um Ansprüche für eine Teilmenge der beanspruchten Zugriffsbereiche zurückzugeben, die der Miniporttreiber nicht mehr verwendet:
- Ändern Sie die AccessRanges Spezifikation für den Adapter so, dass jedes Element, das einen zu veröffentlichenden Bereich beschreibt, weiterhin RangeStart- auf die busrelative Basis eines beanspruchten Bereichs festgelegt ist, aber RangeLength auf Null zurücksetzen.
- Rufen Sie VideoPortVerifyAccessRanges mit diesem geänderten AccessRanges Array auf.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows 2000 und höheren Versionen von Windows-Betriebssystemen. |
Zielplattform- | Desktop |
Header- | video.h (video.h einschließen) |
Library | Videoprt.lib |
DLL- | Videoprt.sys |
IRQL- | PASSIVE_LEVEL |