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