Freigeben über


PMINIPORT_QUERY_DEVICE_ROUTINE Rückruffunktion (video.h)

HwVidQueryDeviceCallback verwendet die angegebenen Konfigurationsdaten zum Konfigurieren des Adapters und ggf. zum Ausfüllen fehlender Konfigurationsinformationen in der VIDEO_PORT_CONFIG_INFO-Struktur .

Syntax

PMINIPORT_QUERY_DEVICE_ROUTINE PminiportQueryDeviceRoutine;

VP_STATUS PminiportQueryDeviceRoutine(
  PVOID HwDeviceExtension,
  PVOID Context,
  VIDEO_DEVICE_DATA_TYPE DeviceDataType,
  PVOID Identifier,
  ULONG IdentiferLength,
  PVOID ConfigurationData,
  ULONG ConfigurationDataLength,
  PVOID ComponentInformation,
  ULONG ComponentInformationLength
)
{...}

Parameter

HwDeviceExtension

Zeiger auf den Speicherbereich des Miniporttreibers pro Adapter. Weitere Informationen finden Sie unter Geräteerweiterungen.

Context

Zeiger auf den Kontextwert, der von HwVidFindAdapter eingerichtet wurde. In der Regel zeigt er auf den VIDEO_PORT_CONFIG_INFO Puffer oder auf einen Offset in diesem Puffer.

DeviceDataType

Gibt den Typ der angeforderten Konfigurationsinformationen an. Dies ist eine der folgenden:

VpBusData

VpCmosData

VpControllerData

VpMachineData

VpMonitorData

Miniport-Treiber von x86-Grafikkarten geben in der Regel VpBusData an, insbesondere für Adapter in EISA-Bussen. Die Werte VpControllerData und VpMonitorData haben nur auf ARC-kompatiblen Plattformen Bedeutung. Die Werte VpCmosData und VpMachineData werden selten verwendet.

Identifier

Zeiger auf den Namen des Geräts, der von der ARC-Firmware bestimmt wird. Dieser Parameter sollte nur auf ARC-kompatiblen Plattformen verwendet werden. Andernfalls sollte dieser Zeiger NULL sein.

IdentiferLength

Gibt die Größe der gepufferten Bezeichnerzeichenfolge in Byte an. Der Wert sollte null sein, wenn der Computer nicht ARC-konform ist.

ConfigurationData

Zeiger auf Hardwarekonfigurationsdaten. Das Format dieser Daten wird durch den angegebenen DeviceDataType und den AdapterInterfaceType-Wert im VIDEO_PORT_CONFIG_INFO bestimmt.

ConfigurationDataLength

Gibt die Größe des ConfigurationData-Puffers in Byte an. In der Tat gibt dies an, wie viele Informationen aus der Registrierung gesammelt und im ConfigurationData-Puffer gespeichert wurden, der von VideoPortGetDeviceBase zugewiesen wurde.

ComponentInformation

Ist für das System reserviert.

ComponentInformationLength

Ist für das System reserviert.

Rückgabewert

HwVidQueryDeviceCallback gibt den status des Vorgangs zurück.

Hinweise

HwVidQueryDeviceCallback wird in einem Aufruf von VideoPortGetDeviceData von der HwVidFindAdapter-Funktion des Miniporttreibers übergeben. VideoPortGetDeviceData ruft HwVidQueryDeviceCallback auf, nachdem die verfügbaren Konfigurationsinformationen unter dem Knoten \Registry\Machine\Hardware\Description der Registrierung erfasst wurden.

HwVidQueryDeviceCallback untersucht configurationData, die von VideoPortGetDeviceData aus der Registrierung erfasst werden. Diese Informationen werden zum Konfigurieren des Adapters und ggf. zum Ausfüllen fehlender Konfigurationsinformationen in der VIDEO_PORT_CONFIG_INFO-Struktur verwendet.

HwVidQueryDeviceCallback kann die in ConfigurationData gefundenen Zugriffsbereichswerte nicht direkt an VideoPortReadXxx oder VideoPortWriteXxx übergeben. Solche Adressen müssen zuerst durch Aufrufen von VideoPortGetDeviceBase zugeordnet werden.

Wenn der ConfigurationData-Puffer keine Informationen zum Zugriffsbereich enthält und die HwVidFindAdapter-Funktion des Miniporttreibers noch nicht VideoPortGetBusData (oder VideoPortGetAccessRanges) aufgerufen hat, kann die HwVidQueryDeviceCallback-FunktionVideoPortGetBusData aufrufen. Von VideoPortGetBusData zurückgegebene Zugriffsbereichsinformationen müssen ebenfalls an VideoPortVerifyAccessRanges übergeben werden.

Wenn VideoPortVerifyAccessRanges NO_ERROR zurückgibt, kann der Miniporttreiber VideoPortGetDeviceBase aufrufen, um zugeordnete logische Adressen abzurufen, die er für die Kommunikation mit dem Adapter verwenden kann, indem er die Xxx-FunktionenVideoPortReadund/oder VideoPortWrite aufruft.

Wenn er durch Aufrufen von VideoPortGetDeviceData, VideoPortGetBusData oder VideoPortGetAccessRanges keine Werte für busrelative Zugriffsbereiche abrufen kann, kann ein Miniporttreiber einen Satz von vom Treiber bereitgestellten Standardzugriffsbereichswerten verwenden, um den Adapter zu finden. Unter diesen Umständen muss der Miniporttreiber VideoPortVerifyAccessRanges mit den vom Miniporttreiber bereitgestellten Zugriffsbereichen aufrufen und videoPortGetDeviceBase nur dann aufrufen, wenn VideoPortVerifyAccessRanges NO_ERROR zurückgegeben wurde. Wenn ein Aufruf von VideoPortVerifyAccessRanges nicht erfolgreich ist, wird ein bestimmter busrelativer Bereich bereits vom Treiber eines anderen Geräts verwendet.

HwVidQueryDeviceCallback sollte als ausgelagert werden.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile video.h (Video.h einschließen)

Weitere Informationen

VideoPortGetAccessRanges

VideoPortGetBusData

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortVerifyAccessRanges