Freigeben über


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:

  1. Ä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.
  2. 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

Siehe auch

HwVidFindAdapter

HwVidQueryDeviceCallback-

HwVidQueryNamedValueCallback-

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetAccessRanges-

VideoPortGetDeviceBase-

VideoPortGetDeviceData-

VideoPortGetRegistryParameters